| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | 
							- /* *
 
-  * (c) 2016 Highsoft AS
 
-  * Authors: Lars A. V. Cabrera
 
-  *
 
-  * License: www.highcharts.com/license
 
-  */
 
- 'use strict';
 
- import H from '../parts/Globals.js';
 
- import 'GanttSeries.js';
 
- var merge = H.merge,
 
-     splat = H.splat,
 
-     Chart = H.Chart;
 
- /**
 
-  * Factory function for Gantt charts.
 
-  *
 
-  * @example
 
-  * // Render a chart in to div#container
 
-  * var chart = Highcharts.ganttChart('container', {
 
-  *     title: {
 
-  *         text: 'My chart'
 
-  *     },
 
-  *     series: [{
 
-  *         data: ...
 
-  *     }]
 
-  * });
 
-  *
 
-  * @function Highcharts.ganttChart
 
-  *
 
-  * @param {string|Highcharts.HTMLDOMElement} [renderTo]
 
-  *        The DOM element to render to, or its id.
 
-  *
 
-  * @param {Highcharts.Options} options
 
-  *        The chart options structure.
 
-  *
 
-  * @param {Highcharts.ChartCallbackFunction} [callback]
 
-  *        Function to run when the chart has loaded and and all external images
 
-  *        are loaded. Defining a
 
-  *        [chart.events.load](https://api.highcharts.com/highcharts/chart.events.load)
 
-  *        handler is equivalent.
 
-  *
 
-  * @return {Highcharts.Chart}
 
-  *         Returns the Chart object.
 
-  */
 
- H.ganttChart = function (renderTo, options, callback) {
 
-     var hasRenderToArg = typeof renderTo === 'string' || renderTo.nodeName,
 
-         seriesOptions = options.series,
 
-         defaultOptions = H.getOptions(),
 
-         defaultLinkedTo,
 
-         userOptions = options;
 
-     options = arguments[hasRenderToArg ? 1 : 0];
 
-     // If user hasn't defined axes as array, make it into an array and add a
 
-     // second axis by default.
 
-     if (!H.isArray(options.xAxis)) {
 
-         options.xAxis = [options.xAxis || {}, {}];
 
-     }
 
-     // apply X axis options to both single and multi x axes
 
-     options.xAxis = options.xAxis.map(function (xAxisOptions, i) {
 
-         if (i === 1) { // Second xAxis
 
-             defaultLinkedTo = 0;
 
-         }
 
-         return merge(
 
-             defaultOptions.xAxis,
 
-             { // defaults
 
-                 grid: {
 
-                     enabled: true
 
-                 },
 
-                 opposite: true,
 
-                 linkedTo: defaultLinkedTo
 
-             },
 
-             xAxisOptions, // user options
 
-             { // forced options
 
-                 type: 'datetime'
 
-             }
 
-         );
 
-     });
 
-     // apply Y axis options to both single and multi y axes
 
-     options.yAxis = (splat(options.yAxis || {})).map(function (yAxisOptions) {
 
-         return merge(
 
-             defaultOptions.yAxis, // #3802
 
-             { // defaults
 
-                 grid: {
 
-                     enabled: true
 
-                 },
 
-                 staticScale: 50,
 
-                 reversed: true,
 
-                 // Set default type treegrid, but only if 'categories' is
 
-                 // undefined
 
-                 type: yAxisOptions.categories ? yAxisOptions.type : 'treegrid'
 
-             },
 
-             yAxisOptions // user options
 
-         );
 
-     });
 
-     options.series = null;
 
-     options = merge(
 
-         true,
 
-         {
 
-             chart: {
 
-                 type: 'gantt'
 
-             },
 
-             title: {
 
-                 text: null
 
-             },
 
-             legend: {
 
-                 enabled: false
 
-             }
 
-         },
 
-         options, // user's options
 
-         // forced options
 
-         {
 
-             isGantt: true
 
-         }
 
-     );
 
-     options.series = userOptions.series = seriesOptions;
 
-     options.series.forEach(function (series) {
 
-         series.data.forEach(function (point) {
 
-             H.seriesTypes.gantt.prototype.setGanttPointAliases(point);
 
-         });
 
-     });
 
-     return hasRenderToArg ?
 
-         new Chart(renderTo, options, callback) :
 
-         new Chart(options, options);
 
- };
 
 
  |