echarts-rails 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -91,16 +91,16 @@ return /******/ (function(modules) { // webpackBootstrap
91
91
  __webpack_require__(315);
92
92
 
93
93
  __webpack_require__(316);
94
- __webpack_require__(329);
94
+ __webpack_require__(330);
95
95
 
96
- __webpack_require__(344);
97
- __webpack_require__(350);
98
- __webpack_require__(353);
96
+ __webpack_require__(345);
97
+ __webpack_require__(351);
98
+ __webpack_require__(354);
99
99
 
100
- __webpack_require__(356);
101
- __webpack_require__(365);
100
+ __webpack_require__(357);
101
+ __webpack_require__(366);
102
102
 
103
- __webpack_require__(378);
103
+ __webpack_require__(379);
104
104
 
105
105
 
106
106
  /***/ },
@@ -176,6 +176,9 @@ return /******/ (function(modules) { // webpackBootstrap
176
176
  var IN_MAIN_PROCESS = '__flag_in_main_process';
177
177
  var HAS_GRADIENT_OR_PATTERN_BG = '_hasGradientOrPatternBg';
178
178
 
179
+
180
+ var OPTION_UPDATED = '_optionUpdated';
181
+
179
182
  function createRegisterEventWithLowercaseName(method) {
180
183
  return function (eventName, handler, context) {
181
184
  // Event name is all lowercase
@@ -291,10 +294,25 @@ return /******/ (function(modules) { // webpackBootstrap
291
294
  }
292
295
  timsort(visualFuncs, prioritySortFunc);
293
296
  timsort(dataProcessorFuncs, prioritySortFunc);
297
+
298
+ this._zr.animation.on('frame', this._onframe, this);
294
299
  }
295
300
 
296
301
  var echartsProto = ECharts.prototype;
297
302
 
303
+ echartsProto._onframe = function () {
304
+ // Lazy update
305
+ if (this[OPTION_UPDATED]) {
306
+
307
+ this[IN_MAIN_PROCESS] = true;
308
+
309
+ updateMethods.prepareAndUpdate.call(this);
310
+
311
+ this[IN_MAIN_PROCESS] = false;
312
+
313
+ this[OPTION_UPDATED] = false;
314
+ }
315
+ };
298
316
  /**
299
317
  * @return {HTMLDomElement}
300
318
  */
@@ -312,9 +330,9 @@ return /******/ (function(modules) { // webpackBootstrap
312
330
  /**
313
331
  * @param {Object} option
314
332
  * @param {boolean} notMerge
315
- * @param {boolean} [notRefreshImmediately=false] Useful when setOption frequently.
333
+ * @param {boolean} [lazyUpdate=false] Useful when setOption frequently.
316
334
  */
317
- echartsProto.setOption = function (option, notMerge, notRefreshImmediately) {
335
+ echartsProto.setOption = function (option, notMerge, lazyUpdate) {
318
336
  if (true) {
319
337
  zrUtil.assert(!this[IN_MAIN_PROCESS], '`setOption` should not be called during main process.');
320
338
  }
@@ -330,13 +348,18 @@ return /******/ (function(modules) { // webpackBootstrap
330
348
 
331
349
  this._model.setOption(option, optionPreprocessorFuncs);
332
350
 
333
- updateMethods.prepareAndUpdate.call(this);
351
+ if (lazyUpdate) {
352
+ this[OPTION_UPDATED] = true;
353
+ }
354
+ else {
355
+ updateMethods.prepareAndUpdate.call(this);
356
+ this._zr.refreshImmediately();
357
+ this[OPTION_UPDATED] = false;
358
+ }
334
359
 
335
360
  this[IN_MAIN_PROCESS] = false;
336
361
 
337
362
  this._flushPendingActions();
338
-
339
- !notRefreshImmediately && this._zr.refreshImmediately();
340
363
  };
341
364
 
342
365
  /**
@@ -357,7 +380,7 @@ return /******/ (function(modules) { // webpackBootstrap
357
380
  * @return {Object}
358
381
  */
359
382
  echartsProto.getOption = function () {
360
- return this._model.getOption();
383
+ return this._model && this._model.getOption();
361
384
  };
362
385
 
363
386
  /**
@@ -727,7 +750,6 @@ return /******/ (function(modules) { // webpackBootstrap
727
750
  this._flushPendingActions();
728
751
  };
729
752
 
730
- var defaultLoadingEffect = __webpack_require__(93);
731
753
  /**
732
754
  * Show loading effect
733
755
  * @param {string} [name='default']
@@ -736,10 +758,18 @@ return /******/ (function(modules) { // webpackBootstrap
736
758
  echartsProto.showLoading = function (name, cfg) {
737
759
  if (zrUtil.isObject(name)) {
738
760
  cfg = name;
739
- name = 'default';
761
+ name = '';
740
762
  }
763
+ name = name || 'default';
764
+
741
765
  this.hideLoading();
742
- var el = defaultLoadingEffect(this._api, cfg);
766
+ if (!loadingEffects[name]) {
767
+ if (true) {
768
+ console.warn('Loading effects ' + name + ' not exists.');
769
+ }
770
+ return;
771
+ }
772
+ var el = loadingEffects[name](this._api, cfg);
743
773
  var zr = this._zr;
744
774
  this._loadingFX = el;
745
775
 
@@ -824,8 +854,17 @@ return /******/ (function(modules) { // webpackBootstrap
824
854
  isHighlightOrDownplay && updateMethods[updateMethod].call(this, batchItem);
825
855
  }
826
856
 
827
- (updateMethod !== 'none' && !isHighlightOrDownplay)
828
- && updateMethods[updateMethod].call(this, payload);
857
+ if (updateMethod !== 'none' && !isHighlightOrDownplay) {
858
+ // Still dirty
859
+ if (this[OPTION_UPDATED]) {
860
+ // FIXME Pass payload ?
861
+ updateMethods.prepareAndUpdate.call(this, payload);
862
+ this[OPTION_UPDATED] = false;
863
+ }
864
+ else {
865
+ updateMethods[updateMethod].call(this, payload);
866
+ }
867
+ }
829
868
 
830
869
  // Follow the rule of action batch
831
870
  if (batched) {
@@ -1063,7 +1102,7 @@ return /******/ (function(modules) { // webpackBootstrap
1063
1102
  }
1064
1103
 
1065
1104
  var MOUSE_EVENT_NAMES = [
1066
- 'click', 'dblclick', 'mouseover', 'mouseout', 'mousedown', 'mouseup', 'globalout'
1105
+ 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout'
1067
1106
  ];
1068
1107
  /**
1069
1108
  * @private
@@ -1105,7 +1144,7 @@ return /******/ (function(modules) { // webpackBootstrap
1105
1144
  * Clear
1106
1145
  */
1107
1146
  echartsProto.clear = function () {
1108
- this.setOption({}, true);
1147
+ this.setOption({ series: [] }, true);
1109
1148
  };
1110
1149
  /**
1111
1150
  * Dispose instance
@@ -1246,6 +1285,10 @@ return /******/ (function(modules) { // webpackBootstrap
1246
1285
  * @type {Object.<key, Object>}
1247
1286
  */
1248
1287
  var themeStorage = {};
1288
+ /**
1289
+ * Loading effects
1290
+ */
1291
+ var loadingEffects = {};
1249
1292
 
1250
1293
 
1251
1294
  var instances = {};
@@ -1261,9 +1304,9 @@ return /******/ (function(modules) { // webpackBootstrap
1261
1304
  /**
1262
1305
  * @type {number}
1263
1306
  */
1264
- version: '3.2.2',
1307
+ version: '3.2.3',
1265
1308
  dependencies: {
1266
- zrender: '3.1.2'
1309
+ zrender: '3.1.3'
1267
1310
  }
1268
1311
  };
1269
1312
 
@@ -1485,7 +1528,7 @@ return /******/ (function(modules) { // webpackBootstrap
1485
1528
  * Most visual encoding like color are common for different chart
1486
1529
  * But each chart has it's own layout algorithm
1487
1530
  *
1488
- * @param {string} [priority=1000]
1531
+ * @param {number} [priority=1000]
1489
1532
  * @param {Function} layoutFunc
1490
1533
  */
1491
1534
  echarts.registerLayout = function (priority, layoutFunc) {
@@ -1506,7 +1549,7 @@ return /******/ (function(modules) { // webpackBootstrap
1506
1549
  };
1507
1550
 
1508
1551
  /**
1509
- * @param {string} [priority=3000]
1552
+ * @param {number} [priority=3000]
1510
1553
  * @param {Function} visualFunc
1511
1554
  */
1512
1555
  echarts.registerVisual = function (priority, visualFunc) {
@@ -1525,6 +1568,14 @@ return /******/ (function(modules) { // webpackBootstrap
1525
1568
  });
1526
1569
  };
1527
1570
 
1571
+ /**
1572
+ * @param {string} name
1573
+ */
1574
+ echarts.registerLoading = function (name, loadingFx) {
1575
+ loadingEffects[name] = loadingFx;
1576
+ };
1577
+
1578
+
1528
1579
  var parseClassType = ComponentModel.parseClassType;
1529
1580
  /**
1530
1581
  * @param {Object} opts
@@ -1577,7 +1628,7 @@ return /******/ (function(modules) { // webpackBootstrap
1577
1628
  var classType = parseClassType(superClass);
1578
1629
  Clazz = ChartView.getClass(classType.main, true);
1579
1630
  }
1580
- return ChartView.extend(opts);
1631
+ return Clazz.extend(opts);
1581
1632
  };
1582
1633
 
1583
1634
  /**
@@ -1600,8 +1651,9 @@ return /******/ (function(modules) { // webpackBootstrap
1600
1651
  zrUtil.createCanvas = creator;
1601
1652
  };
1602
1653
 
1603
- echarts.registerVisual(PRIORITY_VISUAL_GLOBAL, __webpack_require__(94));
1604
- echarts.registerPreprocessor(__webpack_require__(95));
1654
+ echarts.registerVisual(PRIORITY_VISUAL_GLOBAL, __webpack_require__(93));
1655
+ echarts.registerPreprocessor(__webpack_require__(94));
1656
+ echarts.registerLoading('default', __webpack_require__(96));
1605
1657
 
1606
1658
  // Default action
1607
1659
  echarts.registerAction({
@@ -1923,6 +1975,8 @@ return /******/ (function(modules) { // webpackBootstrap
1923
1975
  newCptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this
1924
1976
  );
1925
1977
 
1978
+ this._seriesIndices = this._seriesIndices || [];
1979
+
1926
1980
  function visitComponent(mainType, dependencies) {
1927
1981
  var newCptOptionList = modelUtil.normalizeToArray(newOption[mainType]);
1928
1982
 
@@ -2092,6 +2146,10 @@ return /******/ (function(modules) { // webpackBootstrap
2092
2146
  || (!isNameArray && cpt.name === name);
2093
2147
  });
2094
2148
  }
2149
+ else {
2150
+ // Return all components with mainType
2151
+ result = cpts;
2152
+ }
2095
2153
 
2096
2154
  return filterBySubType(result, condition);
2097
2155
  },
@@ -3054,60 +3112,8 @@ return /******/ (function(modules) { // webpackBootstrap
3054
3112
  var Model = __webpack_require__(12);
3055
3113
  var zrUtil = __webpack_require__(4);
3056
3114
 
3057
- var AXIS_DIMS = ['x', 'y', 'z', 'radius', 'angle'];
3058
-
3059
3115
  var modelUtil = {};
3060
3116
 
3061
- /**
3062
- * Create "each" method to iterate names.
3063
- *
3064
- * @pubilc
3065
- * @param {Array.<string>} names
3066
- * @param {Array.<string>=} attrs
3067
- * @return {Function}
3068
- */
3069
- modelUtil.createNameEach = function (names, attrs) {
3070
- names = names.slice();
3071
- var capitalNames = zrUtil.map(names, modelUtil.capitalFirst);
3072
- attrs = (attrs || []).slice();
3073
- var capitalAttrs = zrUtil.map(attrs, modelUtil.capitalFirst);
3074
-
3075
- return function (callback, context) {
3076
- zrUtil.each(names, function (name, index) {
3077
- var nameObj = {name: name, capital: capitalNames[index]};
3078
-
3079
- for (var j = 0; j < attrs.length; j++) {
3080
- nameObj[attrs[j]] = name + capitalAttrs[j];
3081
- }
3082
-
3083
- callback.call(context, nameObj);
3084
- });
3085
- };
3086
- };
3087
-
3088
- /**
3089
- * @public
3090
- */
3091
- modelUtil.capitalFirst = function (str) {
3092
- return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;
3093
- };
3094
-
3095
- /**
3096
- * Iterate each dimension name.
3097
- *
3098
- * @public
3099
- * @param {Function} callback The parameter is like:
3100
- * {
3101
- * name: 'angle',
3102
- * capital: 'Angle',
3103
- * axis: 'angleAxis',
3104
- * axisIndex: 'angleAixs',
3105
- * index: 'angleIndex'
3106
- * }
3107
- * @param {Object} context
3108
- */
3109
- modelUtil.eachAxisDim = modelUtil.createNameEach(AXIS_DIMS, ['axisIndex', 'axis', 'index']);
3110
-
3111
3117
  /**
3112
3118
  * If value is not array, then translate it to array.
3113
3119
  * @param {*} value
@@ -3121,76 +3127,6 @@ return /******/ (function(modules) { // webpackBootstrap
3121
3127
  : [value];
3122
3128
  };
3123
3129
 
3124
- /**
3125
- * If tow dataZoomModels has the same axis controlled, we say that they are 'linked'.
3126
- * dataZoomModels and 'links' make up one or more graphics.
3127
- * This function finds the graphic where the source dataZoomModel is in.
3128
- *
3129
- * @public
3130
- * @param {Function} forEachNode Node iterator.
3131
- * @param {Function} forEachEdgeType edgeType iterator
3132
- * @param {Function} edgeIdGetter Giving node and edgeType, return an array of edge id.
3133
- * @return {Function} Input: sourceNode, Output: Like {nodes: [], dims: {}}
3134
- */
3135
- modelUtil.createLinkedNodesFinder = function (forEachNode, forEachEdgeType, edgeIdGetter) {
3136
-
3137
- return function (sourceNode) {
3138
- var result = {
3139
- nodes: [],
3140
- records: {} // key: edgeType.name, value: Object (key: edge id, value: boolean).
3141
- };
3142
-
3143
- forEachEdgeType(function (edgeType) {
3144
- result.records[edgeType.name] = {};
3145
- });
3146
-
3147
- if (!sourceNode) {
3148
- return result;
3149
- }
3150
-
3151
- absorb(sourceNode, result);
3152
-
3153
- var existsLink;
3154
- do {
3155
- existsLink = false;
3156
- forEachNode(processSingleNode);
3157
- }
3158
- while (existsLink);
3159
-
3160
- function processSingleNode(node) {
3161
- if (!isNodeAbsorded(node, result) && isLinked(node, result)) {
3162
- absorb(node, result);
3163
- existsLink = true;
3164
- }
3165
- }
3166
-
3167
- return result;
3168
- };
3169
-
3170
- function isNodeAbsorded(node, result) {
3171
- return zrUtil.indexOf(result.nodes, node) >= 0;
3172
- }
3173
-
3174
- function isLinked(node, result) {
3175
- var hasLink = false;
3176
- forEachEdgeType(function (edgeType) {
3177
- zrUtil.each(edgeIdGetter(node, edgeType) || [], function (edgeId) {
3178
- result.records[edgeType.name][edgeId] && (hasLink = true);
3179
- });
3180
- });
3181
- return hasLink;
3182
- }
3183
-
3184
- function absorb(node, result) {
3185
- result.nodes.push(node);
3186
- forEachEdgeType(function (edgeType) {
3187
- zrUtil.each(edgeIdGetter(node, edgeType) || [], function (edgeId) {
3188
- result.records[edgeType.name][edgeId] = true;
3189
- });
3190
- });
3191
- }
3192
- };
3193
-
3194
3130
  /**
3195
3131
  * Sync default option between normal and emphasis like `position` and `show`
3196
3132
  * In case some one will write code like
@@ -3414,22 +3350,31 @@ return /******/ (function(modules) { // webpackBootstrap
3414
3350
  return;
3415
3351
  }
3416
3352
 
3353
+ // id has highest priority.
3354
+ for (var i = 0; i < result.length; i++) {
3355
+ if (!result[i].option // Consider name: two map to one.
3356
+ && cptOption.id != null
3357
+ && result[i].exist.id === cptOption.id + ''
3358
+ ) {
3359
+ result[i].option = cptOption;
3360
+ newCptOptions[index] = null;
3361
+ return;
3362
+ }
3363
+ }
3364
+
3417
3365
  for (var i = 0; i < result.length; i++) {
3418
3366
  var exist = result[i].exist;
3419
3367
  if (!result[i].option // Consider name: two map to one.
3420
- && (
3421
- // id has highest priority.
3422
- (cptOption.id != null && exist.id === cptOption.id + '')
3423
- || (cptOption.name != null
3424
- && !modelUtil.isIdInner(cptOption)
3425
- && !modelUtil.isIdInner(exist)
3426
- && exist.name === cptOption.name + ''
3427
- )
3428
- )
3368
+ // Can not match when both ids exist but different.
3369
+ && (exist.id == null || cptOption.id == null)
3370
+ && cptOption.name != null
3371
+ && !modelUtil.isIdInner(cptOption)
3372
+ && !modelUtil.isIdInner(exist)
3373
+ && exist.name === cptOption.name + ''
3429
3374
  ) {
3430
3375
  result[i].option = cptOption;
3431
3376
  newCptOptions[index] = null;
3432
- break;
3377
+ return;
3433
3378
  }
3434
3379
  }
3435
3380
  });
@@ -3542,28 +3487,29 @@ return /******/ (function(modules) { // webpackBootstrap
3542
3487
  var numberUtil = __webpack_require__(7);
3543
3488
  var textContain = __webpack_require__(8);
3544
3489
 
3490
+ var formatUtil = {};
3545
3491
  /**
3546
3492
  * 每三位默认加,格式化
3547
3493
  * @type {string|number} x
3548
3494
  */
3549
- function addCommas(x) {
3495
+ formatUtil.addCommas = function (x) {
3550
3496
  if (isNaN(x)) {
3551
3497
  return '-';
3552
3498
  }
3553
3499
  x = (x + '').split('.');
3554
3500
  return x[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,'$1,')
3555
3501
  + (x.length > 1 ? ('.' + x[1]) : '');
3556
- }
3502
+ };
3557
3503
 
3558
3504
  /**
3559
3505
  * @param {string} str
3560
3506
  * @return {string} str
3561
3507
  */
3562
- function toCamelCase(str) {
3508
+ formatUtil.toCamelCase = function (str) {
3563
3509
  return str.toLowerCase().replace(/-(.)/g, function(match, group1) {
3564
3510
  return group1.toUpperCase();
3565
3511
  });
3566
- }
3512
+ };
3567
3513
 
3568
3514
  /**
3569
3515
  * Normalize css liked array configuration
@@ -3573,7 +3519,7 @@ return /******/ (function(modules) { // webpackBootstrap
3573
3519
  * [4, 3, 2] => [4, 3, 2, 3]
3574
3520
  * @param {number|Array.<number>} val
3575
3521
  */
3576
- function normalizeCssArray(val) {
3522
+ formatUtil.normalizeCssArray = function (val) {
3577
3523
  var len = val.length;
3578
3524
  if (typeof (val) === 'number') {
3579
3525
  return [val, val, val, val];
@@ -3587,29 +3533,30 @@ return /******/ (function(modules) { // webpackBootstrap
3587
3533
  return [val[0], val[1], val[2], val[1]];
3588
3534
  }
3589
3535
  return val;
3590
- }
3536
+ };
3591
3537
 
3592
- function encodeHTML(source) {
3538
+ formatUtil.encodeHTML = function (source) {
3593
3539
  return String(source)
3594
3540
  .replace(/&/g, '&amp;')
3595
3541
  .replace(/</g, '&lt;')
3596
3542
  .replace(/>/g, '&gt;')
3597
3543
  .replace(/"/g, '&quot;')
3598
3544
  .replace(/'/g, '&#39;');
3599
- }
3545
+ };
3600
3546
 
3601
3547
  var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
3602
3548
 
3603
- function wrapVar(varName, seriesIdx) {
3549
+ var wrapVar = function (varName, seriesIdx) {
3604
3550
  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';
3605
- }
3551
+ };
3552
+
3606
3553
  /**
3607
3554
  * Template formatter
3608
3555
  * @param {string} tpl
3609
3556
  * @param {Array.<Object>|Object} paramsList
3610
3557
  * @return {string}
3611
3558
  */
3612
- function formatTpl(tpl, paramsList) {
3559
+ formatUtil.formatTpl = function (tpl, paramsList) {
3613
3560
  if (!zrUtil.isArray(paramsList)) {
3614
3561
  paramsList = [paramsList];
3615
3562
  }
@@ -3633,7 +3580,17 @@ return /******/ (function(modules) { // webpackBootstrap
3633
3580
  }
3634
3581
 
3635
3582
  return tpl;
3636
- }
3583
+ };
3584
+
3585
+
3586
+ /**
3587
+ * @param {string} str
3588
+ * @return {string}
3589
+ * @inner
3590
+ */
3591
+ var s2d = function (str) {
3592
+ return str < 10 ? ('0' + str) : str;
3593
+ };
3637
3594
 
3638
3595
  /**
3639
3596
  * ISO Date format
@@ -3641,7 +3598,7 @@ return /******/ (function(modules) { // webpackBootstrap
3641
3598
  * @param {number} value
3642
3599
  * @inner
3643
3600
  */
3644
- function formatTime(tpl, value) {
3601
+ formatUtil.formatTime = function (tpl, value) {
3645
3602
  if (tpl === 'week'
3646
3603
  || tpl === 'month'
3647
3604
  || tpl === 'quarter'
@@ -3673,33 +3630,20 @@ return /******/ (function(modules) { // webpackBootstrap
3673
3630
  .replace('s', s);
3674
3631
 
3675
3632
  return tpl;
3676
- }
3633
+ };
3677
3634
 
3678
3635
  /**
3636
+ * Capital first
3679
3637
  * @param {string} str
3680
3638
  * @return {string}
3681
- * @inner
3682
3639
  */
3683
- function s2d(str) {
3684
- return str < 10 ? ('0' + str) : str;
3685
- }
3686
-
3687
- module.exports = {
3688
-
3689
- normalizeCssArray: normalizeCssArray,
3690
-
3691
- addCommas: addCommas,
3692
-
3693
- toCamelCase: toCamelCase,
3694
-
3695
- encodeHTML: encodeHTML,
3696
-
3697
- formatTpl: formatTpl,
3640
+ formatUtil.capitalFirst = function (str) {
3641
+ return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;
3642
+ };
3698
3643
 
3699
- formatTime: formatTime,
3644
+ formatUtil.truncateText = textContain.truncateText;
3700
3645
 
3701
- truncateText: textContain.truncateText
3702
- };
3646
+ module.exports = formatUtil;
3703
3647
 
3704
3648
 
3705
3649
  /***/ },
@@ -3814,9 +3758,12 @@ return /******/ (function(modules) { // webpackBootstrap
3814
3758
  * @param {number} x
3815
3759
  * @return {number}
3816
3760
  */
3817
- number.round = function (x) {
3761
+ number.round = function (x, precision) {
3762
+ if (precision == null) {
3763
+ precision = 10;
3764
+ }
3818
3765
  // PENDING
3819
- return +(+x).toFixed(10);
3766
+ return +(+x).toFixed(precision);
3820
3767
  };
3821
3768
 
3822
3769
  number.asc = function (arr) {
@@ -3848,6 +3795,15 @@ return /******/ (function(modules) { // webpackBootstrap
3848
3795
  return count;
3849
3796
  };
3850
3797
 
3798
+ number.getPrecisionSafe = function (val) {
3799
+ var str = val.toString();
3800
+ var dotIndex = str.indexOf('.');
3801
+ if (dotIndex < 0) {
3802
+ return 0;
3803
+ }
3804
+ return str.length - 1 - dotIndex;
3805
+ };
3806
+
3851
3807
  /**
3852
3808
  * @param {Array.<number>} dataExtent
3853
3809
  * @param {Array.<number>} pixelExtent
@@ -3887,17 +3843,23 @@ return /******/ (function(modules) { // webpackBootstrap
3887
3843
 
3888
3844
  /**
3889
3845
  * @param {string|Date|number} value
3890
- * @return {number} timestamp
3846
+ * @return {Date} date
3891
3847
  */
3892
3848
  number.parseDate = function (value) {
3893
- return value instanceof Date
3894
- ? value
3895
- : new Date(
3896
- typeof value === 'string'
3897
- // FIXME Date.parse('1970-01-01') is UTC, Date.parse('1970/01/01') is local
3898
- ? (new Date(value.replace(/-/g, '/')) - new Date('1970/01/01'))
3899
- : Math.round(value)
3900
- );
3849
+ if (value instanceof Date) {
3850
+ return value;
3851
+ }
3852
+ else if (typeof value === 'string') {
3853
+ // Treat as ISO format. See issue #3623
3854
+ var ret = new Date(value);
3855
+ if (isNaN(+ret)) {
3856
+ // FIXME new Date('1970-01-01') is UTC, new Date('1970/01/01') is local
3857
+ ret = new Date(new Date(value.replace(/-/g, '/')) - new Date('1970/01/01'));
3858
+ }
3859
+ return ret;
3860
+ }
3861
+
3862
+ return new Date(Math.round(value));
3901
3863
  };
3902
3864
 
3903
3865
  /**
@@ -4937,7 +4899,8 @@ return /******/ (function(modules) { // webpackBootstrap
4937
4899
  */
4938
4900
  getShallow: function (key, ignoreParent) {
4939
4901
  var option = this.option;
4940
- var val = option && option[key];
4902
+
4903
+ var val = option == null ? option : option[key];
4941
4904
  var parentModel = this.parentModel;
4942
4905
  if (val == null && parentModel && !ignoreParent) {
4943
4906
  val = parentModel.getShallow(key);
@@ -5236,7 +5199,7 @@ return /******/ (function(modules) { // webpackBootstrap
5236
5199
  getLineDash: function () {
5237
5200
  var lineType = this.get('type');
5238
5201
  return (lineType === 'solid' || lineType == null) ? null
5239
- : (lineType === 'dashed' ? [5, 5] : [1, 1]);
5202
+ : (lineType === 'dashed' ? [5, 5] : [2, 2]);
5240
5203
  }
5241
5204
  };
5242
5205
 
@@ -6206,7 +6169,7 @@ return /******/ (function(modules) { // webpackBootstrap
6206
6169
  color: ['#c23531','#2f4554', '#61a0a8', '#d48265', '#91c7ae','#749f83', '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'],
6207
6170
 
6208
6171
  // 默认需要 Grid 配置项
6209
- grid: {},
6172
+ // grid: {},
6210
6173
  // 主题,主题
6211
6174
  textStyle: {
6212
6175
  // color: '#000',
@@ -8160,16 +8123,19 @@ return /******/ (function(modules) { // webpackBootstrap
8160
8123
  */
8161
8124
  transformableProto.setTransform = function (ctx) {
8162
8125
  var m = this.transform;
8126
+ var dpr = ctx.dpr || 1;
8163
8127
  if (m) {
8164
- ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
8128
+ ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);
8129
+ }
8130
+ else {
8131
+ ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
8165
8132
  }
8166
8133
  };
8167
8134
 
8168
8135
  transformableProto.restoreTransform = function (ctx) {
8169
- var m = this.invTransform;
8170
- if (m) {
8171
- ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
8172
- }
8136
+ var m = this.transform;
8137
+ var dpr = ctx.dpr || 1;
8138
+ ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
8173
8139
  }
8174
8140
 
8175
8141
  var tmpTransform = [];
@@ -8856,7 +8822,11 @@ return /******/ (function(modules) { // webpackBootstrap
8856
8822
  // kf1-----kf2---------current--------kf3
8857
8823
  // find kf2 and kf3 and do interpolation
8858
8824
  var frame;
8859
- if (percent < lastFramePercent) {
8825
+ // In the easing function like elasticOut, percent may less than 0
8826
+ if (percent < 0) {
8827
+ frame = 0;
8828
+ }
8829
+ else if (percent < lastFramePercent) {
8860
8830
  // Start from next key
8861
8831
  // PENDING start from lastFrame ?
8862
8832
  start = Math.min(lastFrame + 1, trackLen - 1);
@@ -9211,15 +9181,15 @@ return /******/ (function(modules) { // webpackBootstrap
9211
9181
 
9212
9182
  constructor: Clip,
9213
9183
 
9214
- step: function (time) {
9184
+ step: function (globalTime) {
9215
9185
  // Set startTime on first step, or _startTime may has milleseconds different between clips
9216
9186
  // PENDING
9217
9187
  if (!this._initialized) {
9218
- this._startTime = new Date().getTime() + this._delay;
9188
+ this._startTime = globalTime + this._delay;
9219
9189
  this._initialized = true;
9220
9190
  }
9221
9191
 
9222
- var percent = (time - this._startTime) / this._life;
9192
+ var percent = (globalTime - this._startTime) / this._life;
9223
9193
 
9224
9194
  // 还没开始
9225
9195
  if (percent < 0) {
@@ -9239,7 +9209,7 @@ return /******/ (function(modules) { // webpackBootstrap
9239
9209
  // 结束
9240
9210
  if (percent == 1) {
9241
9211
  if (this.loop) {
9242
- this.restart();
9212
+ this.restart (globalTime);
9243
9213
  // 重新开始周期
9244
9214
  // 抛出而不是直接调用事件直到 stage.update 后再统一调用这些事件
9245
9215
  return 'restart';
@@ -9254,10 +9224,9 @@ return /******/ (function(modules) { // webpackBootstrap
9254
9224
  return null;
9255
9225
  },
9256
9226
 
9257
- restart: function() {
9258
- var time = new Date().getTime();
9259
- var remainder = (time - this._startTime) % this._life;
9260
- this._startTime = new Date().getTime() - remainder + this.gap;
9227
+ restart: function (globalTime) {
9228
+ var remainder = (globalTime - this._startTime) % this._life;
9229
+ this._startTime = globalTime - remainder + this.gap;
9261
9230
 
9262
9231
  this._needsRemove = false;
9263
9232
  },
@@ -11233,6 +11202,7 @@ return /******/ (function(modules) { // webpackBootstrap
11233
11202
  transform = matrix.create();
11234
11203
  }
11235
11204
  matrix.mul(transform, m, transform);
11205
+ this.dirty(true);
11236
11206
  };
11237
11207
 
11238
11208
  return opts;
@@ -12082,25 +12052,42 @@ return /******/ (function(modules) { // webpackBootstrap
12082
12052
  textVerticalAlign: null,
12083
12053
 
12084
12054
  /**
12055
+ * Only useful in Path and Image element
12085
12056
  * @type {number}
12086
12057
  */
12087
12058
  textDistance: 5,
12088
12059
 
12089
12060
  /**
12061
+ * Only useful in Path and Image element
12090
12062
  * @type {number}
12091
12063
  */
12092
12064
  textShadowBlur: 0,
12093
12065
 
12094
12066
  /**
12067
+ * Only useful in Path and Image element
12095
12068
  * @type {number}
12096
12069
  */
12097
12070
  textShadowOffsetX: 0,
12098
12071
 
12099
12072
  /**
12073
+ * Only useful in Path and Image element
12100
12074
  * @type {number}
12101
12075
  */
12102
12076
  textShadowOffsetY: 0,
12103
12077
 
12078
+ /**
12079
+ * If transform text
12080
+ * Only useful in Path and Image element
12081
+ * @type {boolean}
12082
+ */
12083
+ textTransform: false,
12084
+
12085
+ /**
12086
+ * Text rotate around position of Path or Image
12087
+ * Only useful in Path and Image element and textTransform is false.
12088
+ */
12089
+ textRotation: 0,
12090
+
12104
12091
  /**
12105
12092
  * @type {string}
12106
12093
  * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation
@@ -12253,10 +12240,6 @@ return /******/ (function(modules) { // webpackBootstrap
12253
12240
  return value;
12254
12241
  }
12255
12242
 
12256
- function setTransform(ctx, m) {
12257
- ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
12258
- }
12259
-
12260
12243
  RectText.prototype = {
12261
12244
 
12262
12245
  constructor: RectText,
@@ -12292,10 +12275,15 @@ return /******/ (function(modules) { // webpackBootstrap
12292
12275
 
12293
12276
  // Transform rect to view space
12294
12277
  var transform = this.transform;
12295
- if (transform) {
12296
- tmpRect.copy(rect);
12297
- tmpRect.applyTransform(transform);
12298
- rect = tmpRect;
12278
+ if (!style.textTransform) {
12279
+ if (transform) {
12280
+ tmpRect.copy(rect);
12281
+ tmpRect.applyTransform(transform);
12282
+ rect = tmpRect;
12283
+ }
12284
+ }
12285
+ else {
12286
+ this.setTransform(ctx);
12299
12287
  }
12300
12288
 
12301
12289
  // Text position represented by coord
@@ -12341,7 +12329,9 @@ return /******/ (function(modules) { // webpackBootstrap
12341
12329
  var textStroke = style.textStroke;
12342
12330
  textFill && (ctx.fillStyle = textFill);
12343
12331
  textStroke && (ctx.strokeStyle = textStroke);
12344
- ctx.font = font;
12332
+
12333
+ // TODO Invalid font
12334
+ ctx.font = font || '12px sans-serif';
12345
12335
 
12346
12336
  // Text shadow
12347
12337
  // Always set shadowBlur and shadowOffset to avoid leak from displayable
@@ -12351,6 +12341,13 @@ return /******/ (function(modules) { // webpackBootstrap
12351
12341
  ctx.shadowOffsetY = style.textShadowOffsetY;
12352
12342
 
12353
12343
  var textLines = text.split('\n');
12344
+
12345
+ if (style.textRotation) {
12346
+ transform && ctx.translate(transform[4], transform[5]);
12347
+ ctx.rotate(style.textRotation);
12348
+ transform && ctx.translate(-transform[4], -transform[5]);
12349
+ }
12350
+
12354
12351
  for (var i = 0; i < textLines.length; i++) {
12355
12352
  textFill && ctx.fillText(textLines[i], x, y);
12356
12353
  textStroke && ctx.strokeText(textLines[i], x, y);
@@ -12470,10 +12467,13 @@ return /******/ (function(modules) { // webpackBootstrap
12470
12467
  * @return {module:zrender/core/PathProxy}
12471
12468
  */
12472
12469
  beginPath: function (ctx) {
12470
+
12473
12471
  this._ctx = ctx;
12474
12472
 
12475
12473
  ctx && ctx.beginPath();
12476
12474
 
12475
+ ctx && (this.dpr = ctx.dpr);
12476
+
12477
12477
  // Reset
12478
12478
  this._len = 0;
12479
12479
 
@@ -14770,7 +14770,6 @@ return /******/ (function(modules) { // webpackBootstrap
14770
14770
 
14771
14771
  // Must bind each time
14772
14772
  style.bind(ctx, this, prevEl);
14773
-
14774
14773
  // style.image is a url string
14775
14774
  if (typeof src === 'string') {
14776
14775
  image = this._image;
@@ -15143,7 +15142,8 @@ return /******/ (function(modules) { // webpackBootstrap
15143
15142
  textBaseline = style.textBaseline;
15144
15143
  }
15145
15144
 
15146
- ctx.font = font;
15145
+ // TODO Invalid font
15146
+ ctx.font = font || '12px sans-serif';
15147
15147
  ctx.textAlign = textAlign || 'left';
15148
15148
  // Use canvas default left textAlign. Giving invalid value will cause state not change
15149
15149
  if (ctx.textAlign !== textAlign) {
@@ -15243,7 +15243,6 @@ return /******/ (function(modules) { // webpackBootstrap
15243
15243
  * @module zrender/graphic/shape/Sector
15244
15244
  */
15245
15245
 
15246
- // FIXME clockwise seems wrong
15247
15246
 
15248
15247
 
15249
15248
  module.exports = __webpack_require__(45).extend({
@@ -16220,7 +16219,7 @@ return /******/ (function(modules) { // webpackBootstrap
16220
16219
  /**
16221
16220
  * @type {string}
16222
16221
  */
16223
- zrender.version = '3.1.2';
16222
+ zrender.version = '3.1.3';
16224
16223
 
16225
16224
  /**
16226
16225
  * Initializing a zrender instance
@@ -17204,7 +17203,7 @@ return /******/ (function(modules) { // webpackBootstrap
17204
17203
  if (el instanceof Group) {
17205
17204
  el.__storage = this;
17206
17205
  }
17207
- el.dirty();
17206
+ el.dirty(false);
17208
17207
 
17209
17208
  this._elements[el.id] = el;
17210
17209
 
@@ -17988,7 +17987,13 @@ return /******/ (function(modules) { // webpackBootstrap
17988
17987
 
17989
17988
  this._running = false;
17990
17989
 
17991
- this._time = 0;
17990
+ this._time;
17991
+
17992
+ this._pausedTime;
17993
+
17994
+ this._pauseStart;
17995
+
17996
+ this._paused = false;
17992
17997
 
17993
17998
  Dispatcher.call(this);
17994
17999
  };
@@ -18039,7 +18044,7 @@ return /******/ (function(modules) { // webpackBootstrap
18039
18044
 
18040
18045
  _update: function() {
18041
18046
 
18042
- var time = new Date().getTime();
18047
+ var time = new Date().getTime() - this._pausedTime;
18043
18048
  var delta = time - this._time;
18044
18049
  var clips = this._clips;
18045
18050
  var len = clips.length;
@@ -18084,10 +18089,8 @@ return /******/ (function(modules) { // webpackBootstrap
18084
18089
  this.stage.update();
18085
18090
  }
18086
18091
  },
18087
- /**
18088
- * 开始运行动画
18089
- */
18090
- start: function () {
18092
+
18093
+ _startLoop: function () {
18091
18094
  var self = this;
18092
18095
 
18093
18096
  this._running = true;
@@ -18097,19 +18100,50 @@ return /******/ (function(modules) { // webpackBootstrap
18097
18100
 
18098
18101
  requestAnimationFrame(step);
18099
18102
 
18100
- self._update();
18103
+ !self._paused && self._update();
18101
18104
  }
18102
18105
  }
18103
18106
 
18104
- this._time = new Date().getTime();
18105
18107
  requestAnimationFrame(step);
18106
18108
  },
18109
+
18110
+ /**
18111
+ * 开始运行动画
18112
+ */
18113
+ start: function () {
18114
+
18115
+ this._time = new Date().getTime();
18116
+ this._pausedTime = 0;
18117
+
18118
+ this._startLoop();
18119
+ },
18107
18120
  /**
18108
18121
  * 停止运行动画
18109
18122
  */
18110
18123
  stop: function () {
18111
18124
  this._running = false;
18112
18125
  },
18126
+
18127
+ /**
18128
+ * Pause
18129
+ */
18130
+ pause: function () {
18131
+ if (!this._paused) {
18132
+ this._pauseStart = new Date().getTime();
18133
+ this._paused = true;
18134
+ }
18135
+ },
18136
+
18137
+ /**
18138
+ * Resume
18139
+ */
18140
+ resume: function () {
18141
+ if (this._paused) {
18142
+ this._pausedTime += (new Date().getTime()) - this._pauseStart;
18143
+ this._paused = false;
18144
+ }
18145
+ },
18146
+
18113
18147
  /**
18114
18148
  * 清除所有动画片段
18115
18149
  */
@@ -18127,6 +18161,7 @@ return /******/ (function(modules) { // webpackBootstrap
18127
18161
  * 如果指定setter函数,会通过setter函数设置属性值
18128
18162
  * @return {module:zrender/animation/Animation~Animator}
18129
18163
  */
18164
+ // TODO Gap
18130
18165
  animate: function (target, options) {
18131
18166
  options = options || {};
18132
18167
  var animator = new Animator(
@@ -18762,28 +18797,14 @@ return /******/ (function(modules) { // webpackBootstrap
18762
18797
  function doClip(clipPaths, ctx) {
18763
18798
  for (var i = 0; i < clipPaths.length; i++) {
18764
18799
  var clipPath = clipPaths[i];
18765
- var m;
18766
- if (clipPath.transform) {
18767
- m = clipPath.transform;
18768
- ctx.transform(
18769
- m[0], m[1],
18770
- m[2], m[3],
18771
- m[4], m[5]
18772
- );
18773
- }
18774
18800
  var path = clipPath.path;
18801
+
18802
+ clipPath.setTransform(ctx);
18775
18803
  path.beginPath(ctx);
18776
18804
  clipPath.buildPath(path, clipPath.shape);
18777
18805
  ctx.clip();
18778
18806
  // Transform back
18779
- if (clipPath.transform) {
18780
- m = clipPath.invTransform;
18781
- ctx.transform(
18782
- m[0], m[1],
18783
- m[2], m[3],
18784
- m[4], m[5]
18785
- );
18786
- }
18807
+ clipPath.restoreTransform(ctx);
18787
18808
  }
18788
18809
  }
18789
18810
 
@@ -19102,15 +19123,15 @@ return /******/ (function(modules) { // webpackBootstrap
19102
19123
  var layerProgress;
19103
19124
  var frame = this._progress;
19104
19125
  function flushProgressiveLayer(layer) {
19126
+ var dpr = ctx.dpr || 1;
19105
19127
  ctx.save();
19106
19128
  ctx.globalAlpha = 1;
19107
19129
  ctx.shadowBlur = 0;
19108
19130
  // Avoid layer don't clear in next progressive frame
19109
19131
  currentLayer.__dirty = true;
19110
- ctx.drawImage(layer.dom, 0, 0, width, height);
19132
+ ctx.setTransform(1, 0, 0, 1, 0, 0);
19133
+ ctx.drawImage(layer.dom, 0, 0, width * dpr, height * dpr);
19111
19134
  ctx.restore();
19112
-
19113
- currentLayer.ctx.restore();
19114
19135
  }
19115
19136
 
19116
19137
  for (var i = 0, l = list.length; i < l; i++) {
@@ -19160,6 +19181,7 @@ return /******/ (function(modules) { // webpackBootstrap
19160
19181
  if (!(currentLayer.__dirty || paintAll)) {
19161
19182
  continue;
19162
19183
  }
19184
+
19163
19185
  if (elFrame >= 0) {
19164
19186
  // Progressive layer changed
19165
19187
  if (!currentProgressiveLayer) {
@@ -19223,7 +19245,7 @@ return /******/ (function(modules) { // webpackBootstrap
19223
19245
 
19224
19246
  _doPaintEl: function (el, currentLayer, forcePaint, scope) {
19225
19247
  var ctx = currentLayer.ctx;
19226
-
19248
+ var m = el.transform;
19227
19249
  if (
19228
19250
  (currentLayer.__dirty || forcePaint)
19229
19251
  // Ignore invisible element
@@ -19232,7 +19254,8 @@ return /******/ (function(modules) { // webpackBootstrap
19232
19254
  && el.style.opacity !== 0
19233
19255
  // Ignore scale 0 element, in some environment like node-canvas
19234
19256
  // Draw a scale 0 element can cause all following draw wrong
19235
- && el.scale[0] && el.scale[1]
19257
+ // And setTransform with scale 0 will cause set back transform failed.
19258
+ && !(m && !m[0] && !m[3])
19236
19259
  // Ignore culled element
19237
19260
  && !(el.culling && isDisplayableCulled(el, this._width, this._height))
19238
19261
  ) {
@@ -19859,10 +19882,7 @@ return /******/ (function(modules) { // webpackBootstrap
19859
19882
  initContext: function () {
19860
19883
  this.ctx = this.dom.getContext('2d');
19861
19884
 
19862
- var dpr = this.dpr;
19863
- if (dpr != 1) {
19864
- this.ctx.scale(dpr, dpr);
19865
- }
19885
+ this.ctx.dpr = this.dpr;
19866
19886
  },
19867
19887
 
19868
19888
  createBackBuffer: function () {
@@ -19893,10 +19913,6 @@ return /******/ (function(modules) { // webpackBootstrap
19893
19913
  dom.width = width * dpr;
19894
19914
  dom.height = height * dpr;
19895
19915
 
19896
- if (dpr != 1) {
19897
- this.ctx.scale(dpr, dpr);
19898
- }
19899
-
19900
19916
  if (domBack) {
19901
19917
  domBack.width = width * dpr;
19902
19918
  domBack.height = height * dpr;
@@ -19936,7 +19952,7 @@ return /******/ (function(modules) { // webpackBootstrap
19936
19952
  );
19937
19953
  }
19938
19954
 
19939
- ctx.clearRect(0, 0, width / dpr, height / dpr);
19955
+ ctx.clearRect(0, 0, width, height);
19940
19956
  if (clearColor) {
19941
19957
  var clearColorGradientOrPattern;
19942
19958
  // Gradient
@@ -19945,8 +19961,8 @@ return /******/ (function(modules) { // webpackBootstrap
19945
19961
  clearColorGradientOrPattern = clearColor.__canvasGradient || Style.getGradient(ctx, clearColor, {
19946
19962
  x: 0,
19947
19963
  y: 0,
19948
- width: width / dpr,
19949
- height: height / dpr
19964
+ width: width,
19965
+ height: height
19950
19966
  });
19951
19967
 
19952
19968
  clearColor.__canvasGradient = clearColorGradientOrPattern;
@@ -19957,7 +19973,7 @@ return /******/ (function(modules) { // webpackBootstrap
19957
19973
  }
19958
19974
  ctx.save();
19959
19975
  ctx.fillStyle = clearColorGradientOrPattern || clearColor;
19960
- ctx.fillRect(0, 0, width / dpr, height / dpr);
19976
+ ctx.fillRect(0, 0, width, height);
19961
19977
  ctx.restore();
19962
19978
  }
19963
19979
 
@@ -19965,7 +19981,7 @@ return /******/ (function(modules) { // webpackBootstrap
19965
19981
  var domBack = this.domBack;
19966
19982
  ctx.save();
19967
19983
  ctx.globalAlpha = lastFrameAlpha;
19968
- ctx.drawImage(domBack, 0, 0, width / dpr, height / dpr);
19984
+ ctx.drawImage(domBack, 0, 0, width, height);
19969
19985
  ctx.restore();
19970
19986
  }
19971
19987
  }
@@ -19979,109 +19995,6 @@ return /******/ (function(modules) { // webpackBootstrap
19979
19995
  /***/ function(module, exports, __webpack_require__) {
19980
19996
 
19981
19997
 
19982
-
19983
- var graphic = __webpack_require__(43);
19984
- var zrUtil = __webpack_require__(4);
19985
- var PI = Math.PI;
19986
- /**
19987
- * @param {module:echarts/ExtensionAPI} api
19988
- * @param {Object} [opts]
19989
- * @param {string} [opts.text]
19990
- * @param {string} [opts.color]
19991
- * @param {string} [opts.textColor]
19992
- * @return {module:zrender/Element}
19993
- */
19994
- module.exports = function (api, opts) {
19995
- opts = opts || {};
19996
- zrUtil.defaults(opts, {
19997
- text: 'loading',
19998
- color: '#c23531',
19999
- textColor: '#000',
20000
- maskColor: 'rgba(255, 255, 255, 0.8)',
20001
- zlevel: 0
20002
- });
20003
- var mask = new graphic.Rect({
20004
- style: {
20005
- fill: opts.maskColor
20006
- },
20007
- zlevel: opts.zlevel,
20008
- z: 10000
20009
- });
20010
- var arc = new graphic.Arc({
20011
- shape: {
20012
- startAngle: -PI / 2,
20013
- endAngle: -PI / 2 + 0.1,
20014
- r: 10
20015
- },
20016
- style: {
20017
- stroke: opts.color,
20018
- lineCap: 'round',
20019
- lineWidth: 5
20020
- },
20021
- zlevel: opts.zlevel,
20022
- z: 10001
20023
- });
20024
- var labelRect = new graphic.Rect({
20025
- style: {
20026
- fill: 'none',
20027
- text: opts.text,
20028
- textPosition: 'right',
20029
- textDistance: 10,
20030
- textFill: opts.textColor
20031
- },
20032
- zlevel: opts.zlevel,
20033
- z: 10001
20034
- });
20035
-
20036
- arc.animateShape(true)
20037
- .when(1000, {
20038
- endAngle: PI * 3 / 2
20039
- })
20040
- .start('circularInOut');
20041
- arc.animateShape(true)
20042
- .when(1000, {
20043
- startAngle: PI * 3 / 2
20044
- })
20045
- .delay(300)
20046
- .start('circularInOut');
20047
-
20048
- var group = new graphic.Group();
20049
- group.add(arc);
20050
- group.add(labelRect);
20051
- group.add(mask);
20052
- // Inject resize
20053
- group.resize = function () {
20054
- var cx = api.getWidth() / 2;
20055
- var cy = api.getHeight() / 2;
20056
- arc.setShape({
20057
- cx: cx,
20058
- cy: cy
20059
- });
20060
- var r = arc.shape.r;
20061
- labelRect.setShape({
20062
- x: cx - r,
20063
- y: cy - r,
20064
- width: r * 2,
20065
- height: r * 2
20066
- });
20067
-
20068
- mask.setShape({
20069
- x: 0,
20070
- y: 0,
20071
- width: api.getWidth(),
20072
- height: api.getHeight()
20073
- });
20074
- };
20075
- group.resize();
20076
- return group;
20077
- };
20078
-
20079
-
20080
- /***/ },
20081
- /* 94 */
20082
- /***/ function(module, exports, __webpack_require__) {
20083
-
20084
-
20085
19998
  var Gradient = __webpack_require__(61);
20086
19999
  module.exports = function (ecModel) {
20087
20000
  function encodeColor(seriesModel) {
@@ -20118,14 +20031,14 @@ return /******/ (function(modules) { // webpackBootstrap
20118
20031
 
20119
20032
 
20120
20033
  /***/ },
20121
- /* 95 */
20034
+ /* 94 */
20122
20035
  /***/ function(module, exports, __webpack_require__) {
20123
20036
 
20124
20037
  // Compatitable with 2.0
20125
20038
 
20126
20039
 
20127
20040
  var zrUtil = __webpack_require__(4);
20128
- var compatStyle = __webpack_require__(96);
20041
+ var compatStyle = __webpack_require__(95);
20129
20042
 
20130
20043
  function get(opt, path) {
20131
20044
  path = path.split(',');
@@ -20228,7 +20141,7 @@ return /******/ (function(modules) { // webpackBootstrap
20228
20141
 
20229
20142
 
20230
20143
  /***/ },
20231
- /* 96 */
20144
+ /* 95 */
20232
20145
  /***/ function(module, exports, __webpack_require__) {
20233
20146
 
20234
20147
 
@@ -20308,6 +20221,109 @@ return /******/ (function(modules) { // webpackBootstrap
20308
20221
  };
20309
20222
 
20310
20223
 
20224
+ /***/ },
20225
+ /* 96 */
20226
+ /***/ function(module, exports, __webpack_require__) {
20227
+
20228
+
20229
+
20230
+ var graphic = __webpack_require__(43);
20231
+ var zrUtil = __webpack_require__(4);
20232
+ var PI = Math.PI;
20233
+ /**
20234
+ * @param {module:echarts/ExtensionAPI} api
20235
+ * @param {Object} [opts]
20236
+ * @param {string} [opts.text]
20237
+ * @param {string} [opts.color]
20238
+ * @param {string} [opts.textColor]
20239
+ * @return {module:zrender/Element}
20240
+ */
20241
+ module.exports = function (api, opts) {
20242
+ opts = opts || {};
20243
+ zrUtil.defaults(opts, {
20244
+ text: 'loading',
20245
+ color: '#c23531',
20246
+ textColor: '#000',
20247
+ maskColor: 'rgba(255, 255, 255, 0.8)',
20248
+ zlevel: 0
20249
+ });
20250
+ var mask = new graphic.Rect({
20251
+ style: {
20252
+ fill: opts.maskColor
20253
+ },
20254
+ zlevel: opts.zlevel,
20255
+ z: 10000
20256
+ });
20257
+ var arc = new graphic.Arc({
20258
+ shape: {
20259
+ startAngle: -PI / 2,
20260
+ endAngle: -PI / 2 + 0.1,
20261
+ r: 10
20262
+ },
20263
+ style: {
20264
+ stroke: opts.color,
20265
+ lineCap: 'round',
20266
+ lineWidth: 5
20267
+ },
20268
+ zlevel: opts.zlevel,
20269
+ z: 10001
20270
+ });
20271
+ var labelRect = new graphic.Rect({
20272
+ style: {
20273
+ fill: 'none',
20274
+ text: opts.text,
20275
+ textPosition: 'right',
20276
+ textDistance: 10,
20277
+ textFill: opts.textColor
20278
+ },
20279
+ zlevel: opts.zlevel,
20280
+ z: 10001
20281
+ });
20282
+
20283
+ arc.animateShape(true)
20284
+ .when(1000, {
20285
+ endAngle: PI * 3 / 2
20286
+ })
20287
+ .start('circularInOut');
20288
+ arc.animateShape(true)
20289
+ .when(1000, {
20290
+ startAngle: PI * 3 / 2
20291
+ })
20292
+ .delay(300)
20293
+ .start('circularInOut');
20294
+
20295
+ var group = new graphic.Group();
20296
+ group.add(arc);
20297
+ group.add(labelRect);
20298
+ group.add(mask);
20299
+ // Inject resize
20300
+ group.resize = function () {
20301
+ var cx = api.getWidth() / 2;
20302
+ var cy = api.getHeight() / 2;
20303
+ arc.setShape({
20304
+ cx: cx,
20305
+ cy: cy
20306
+ });
20307
+ var r = arc.shape.r;
20308
+ labelRect.setShape({
20309
+ x: cx - r,
20310
+ y: cy - r,
20311
+ width: r * 2,
20312
+ height: r * 2
20313
+ });
20314
+
20315
+ mask.setShape({
20316
+ x: 0,
20317
+ y: 0,
20318
+ width: api.getWidth(),
20319
+ height: api.getHeight()
20320
+ });
20321
+ };
20322
+ group.resize();
20323
+ return group;
20324
+ };
20325
+
20326
+
20311
20327
  /***/ },
20312
20328
  /* 97 */
20313
20329
  /***/ function(module, exports, __webpack_require__) {
@@ -21631,10 +21647,10 @@ return /******/ (function(modules) { // webpackBootstrap
21631
21647
 
21632
21648
  hoverAnimation: true,
21633
21649
  // stack: null
21634
- xAxisIndex: 0,
21635
- yAxisIndex: 0,
21650
+ // xAxisIndex: 0,
21651
+ // yAxisIndex: 0,
21636
21652
 
21637
- polarIndex: 0,
21653
+ // polarIndex: 0,
21638
21654
 
21639
21655
  // If clip the overflow value
21640
21656
  clipOverflow: true,
@@ -21808,15 +21824,31 @@ return /******/ (function(modules) { // webpackBootstrap
21808
21824
  var creators = {
21809
21825
 
21810
21826
  cartesian2d: function (data, seriesModel, ecModel) {
21811
- var xAxisModel = ecModel.getComponent('xAxis', seriesModel.get('xAxisIndex'));
21812
- var yAxisModel = ecModel.getComponent('yAxis', seriesModel.get('yAxisIndex'));
21827
+
21828
+ var axesModels = zrUtil.map(['xAxis', 'yAxis'], function (name) {
21829
+ return ecModel.queryComponents({
21830
+ mainType: name,
21831
+ index: seriesModel.get(name + 'Index'),
21832
+ id: seriesModel.get(name + 'Id')
21833
+ })[0];
21834
+ });
21835
+ var xAxisModel = axesModels[0];
21836
+ var yAxisModel = axesModels[1];
21813
21837
 
21814
21838
  if (true) {
21815
21839
  if (!xAxisModel) {
21816
- throw new Error('xAxis "' + seriesModel.get('xAxisIndex') + '" not found');
21840
+ throw new Error('xAxis "' + zrUtil.retrieve(
21841
+ seriesModel.get('xAxisIndex'),
21842
+ seriesModel.get('xAxisId'),
21843
+ 0
21844
+ ) + '" not found');
21817
21845
  }
21818
21846
  if (!yAxisModel) {
21819
- throw new Error('yAxis "' + seriesModel.get('yAxisIndex') + '" not found');
21847
+ throw new Error('yAxis "' + zrUtil.retrieve(
21848
+ seriesModel.get('xAxisIndex'),
21849
+ seriesModel.get('yAxisId'),
21850
+ 0
21851
+ ) + '" not found');
21820
21852
  }
21821
21853
  }
21822
21854
 
@@ -21857,19 +21889,15 @@ return /******/ (function(modules) { // webpackBootstrap
21857
21889
  },
21858
21890
 
21859
21891
  polar: function (data, seriesModel, ecModel) {
21860
- var polarIndex = seriesModel.get('polarIndex') || 0;
21861
-
21862
- var axisFinder = function (axisModel) {
21863
- return axisModel.get('polarIndex') === polarIndex;
21864
- };
21865
-
21866
- var angleAxisModel = ecModel.findComponents({
21867
- mainType: 'angleAxis', filter: axisFinder
21868
- })[0];
21869
- var radiusAxisModel = ecModel.findComponents({
21870
- mainType: 'radiusAxis', filter: axisFinder
21892
+ var polarModel = ecModel.queryComponents({
21893
+ mainType: 'polar',
21894
+ index: seriesModel.get('polarIndex'),
21895
+ id: seriesModel.get('polarId')
21871
21896
  })[0];
21872
21897
 
21898
+ var angleAxisModel = polarModel.findAxisModel('angleAxis');
21899
+ var radiusAxisModel = polarModel.findAxisModel('radiusAxis');
21900
+
21873
21901
  if (true) {
21874
21902
  if (!angleAxisModel) {
21875
21903
  throw new Error('angleAxis option not found');
@@ -22461,6 +22489,13 @@ return /******/ (function(modules) { // webpackBootstrap
22461
22489
  );
22462
22490
  }
22463
22491
  else {
22492
+ // Not do it in update with animation
22493
+ if (step) {
22494
+ // TODO If stacked series is not step
22495
+ points = turnPointsIntoStep(points, coordSys, step);
22496
+ stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);
22497
+ }
22498
+
22464
22499
  polyline.setShape({
22465
22500
  points: points
22466
22501
  });
@@ -22771,6 +22806,10 @@ return /******/ (function(modules) { // webpackBootstrap
22771
22806
 
22772
22807
  function symbolNeedsDraw(data, idx, isIgnore) {
22773
22808
  var point = data.getItemLayout(idx);
22809
+ // Is an object
22810
+ // if (point && point.hasOwnProperty('point')) {
22811
+ // point = point.point;
22812
+ // }
22774
22813
  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(isIgnore && isIgnore(idx))
22775
22814
  && data.getItemVisual(idx, 'symbol') !== 'none';
22776
22815
  }
@@ -22950,6 +22989,13 @@ return /******/ (function(modules) { // webpackBootstrap
22950
22989
  this.childAt(0).stopAnimation(toLastFrame);
22951
22990
  };
22952
22991
 
22992
+ /**
22993
+ * Get symbol path element
22994
+ */
22995
+ symbolProto.getSymbolPath = function () {
22996
+ return this.childAt(0);
22997
+ };
22998
+
22953
22999
  /**
22954
23000
  * Get scale(aka, current symbol size).
22955
23001
  * Including the change caused by animation
@@ -23120,7 +23166,9 @@ return /******/ (function(modules) { // webpackBootstrap
23120
23166
  .off('emphasis')
23121
23167
  .off('normal');
23122
23168
 
23123
- graphic.setHoverStyle(symbolPath, hoverItemStyle);
23169
+ symbolPath.hoverStyle = hoverItemStyle;
23170
+
23171
+ graphic.setHoverStyle(symbolPath);
23124
23172
 
23125
23173
  if (hoverAnimation && seriesModel.ifEnableAnimation()) {
23126
23174
  var onEmphasis = function() {
@@ -24161,13 +24209,14 @@ return /******/ (function(modules) { // webpackBootstrap
24161
24209
 
24162
24210
  var graphic = __webpack_require__(43);
24163
24211
  var zrUtil = __webpack_require__(4);
24212
+ var echarts = __webpack_require__(1);
24164
24213
 
24165
24214
  __webpack_require__(113);
24166
24215
 
24167
24216
  __webpack_require__(130);
24168
24217
 
24169
24218
  // Grid view
24170
- __webpack_require__(1).extendComponentView({
24219
+ echarts.extendComponentView({
24171
24220
 
24172
24221
  type: 'grid',
24173
24222
 
@@ -24185,6 +24234,13 @@ return /******/ (function(modules) { // webpackBootstrap
24185
24234
  }
24186
24235
  });
24187
24236
 
24237
+ echarts.registerPreprocessor(function (option) {
24238
+ // Only create grid when need
24239
+ if (option.xAxis && option.yAxis && !option.grid) {
24240
+ option.grid = {};
24241
+ }
24242
+ });
24243
+
24188
24244
 
24189
24245
  /***/ },
24190
24246
  /* 113 */
@@ -24217,7 +24273,7 @@ return /******/ (function(modules) { // webpackBootstrap
24217
24273
  * @inner
24218
24274
  */
24219
24275
  function isAxisUsedInTheGrid(axisModel, gridModel, ecModel) {
24220
- return ecModel.getComponent('grid', axisModel.get('gridIndex')) === gridModel;
24276
+ return axisModel.findGridModel() === gridModel;
24221
24277
  }
24222
24278
 
24223
24279
  function getLabelUnionRect(axis) {
@@ -24530,12 +24586,10 @@ return /******/ (function(modules) { // webpackBootstrap
24530
24586
  axis.scale.setExtent(Infinity, -Infinity);
24531
24587
  });
24532
24588
  ecModel.eachSeries(function (seriesModel) {
24533
- if (seriesModel.get('coordinateSystem') === 'cartesian2d') {
24534
- var xAxisIndex = seriesModel.get('xAxisIndex');
24535
- var yAxisIndex = seriesModel.get('yAxisIndex');
24536
-
24537
- var xAxisModel = ecModel.getComponent('xAxis', xAxisIndex);
24538
- var yAxisModel = ecModel.getComponent('yAxis', yAxisIndex);
24589
+ if (isCartesian2D(seriesModel)) {
24590
+ var axesModels = findAxesModels(seriesModel, ecModel);
24591
+ var xAxisModel = axesModels[0];
24592
+ var yAxisModel = axesModels[1];
24539
24593
 
24540
24594
  if (!isAxisUsedInTheGrid(xAxisModel, gridModel, ecModel)
24541
24595
  || !isAxisUsedInTheGrid(yAxisModel, gridModel, ecModel)
@@ -24543,7 +24597,9 @@ return /******/ (function(modules) { // webpackBootstrap
24543
24597
  return;
24544
24598
  }
24545
24599
 
24546
- var cartesian = this.getCartesian(xAxisIndex, yAxisIndex);
24600
+ var cartesian = this.getCartesian(
24601
+ xAxisModel.componentIndex, yAxisModel.componentIndex
24602
+ );
24547
24603
  var data = seriesModel.getData();
24548
24604
  var xAxis = cartesian.getAxis('x');
24549
24605
  var yAxis = cartesian.getAxis('y');
@@ -24588,6 +24644,38 @@ return /******/ (function(modules) { // webpackBootstrap
24588
24644
  };
24589
24645
  }
24590
24646
 
24647
+ var axesTypes = ['xAxis', 'yAxis'];
24648
+ /**
24649
+ * @inner
24650
+ */
24651
+ function findAxesModels(seriesModel, ecModel) {
24652
+ return zrUtil.map(axesTypes, function (axisType) {
24653
+ var axisModel = ecModel.queryComponents({
24654
+ mainType: axisType,
24655
+ index: seriesModel.get(axisType + 'Index'),
24656
+ id: seriesModel.get(axisType + 'Id')
24657
+ })[0];
24658
+
24659
+ if (true) {
24660
+ if (!axisModel) {
24661
+ throw new Error(axisType + ' "' + zrUtil.retrieve(
24662
+ seriesModel.get(axisType + 'Index'),
24663
+ seriesModel.get(axisType + 'Id'),
24664
+ 0
24665
+ ) + '" not found');
24666
+ }
24667
+ }
24668
+ return axisModel;
24669
+ });
24670
+ }
24671
+
24672
+ /**
24673
+ * @inner
24674
+ */
24675
+ function isCartesian2D(seriesModel) {
24676
+ return seriesModel.get('coordinateSystem') === 'cartesian2d';
24677
+ }
24678
+
24591
24679
  Grid.create = function (ecModel, api) {
24592
24680
  var grids = [];
24593
24681
  ecModel.eachComponent('grid', function (gridModel, idx) {
@@ -24602,21 +24690,36 @@ return /******/ (function(modules) { // webpackBootstrap
24602
24690
 
24603
24691
  // Inject the coordinateSystems into seriesModel
24604
24692
  ecModel.eachSeries(function (seriesModel) {
24605
- if (seriesModel.get('coordinateSystem') !== 'cartesian2d') {
24693
+ if (!isCartesian2D(seriesModel)) {
24606
24694
  return;
24607
24695
  }
24608
- var xAxisIndex = seriesModel.get('xAxisIndex');
24609
- var yAxisIndex = seriesModel.get('yAxisIndex');
24610
- var xAxisModel = ecModel.getComponent('xAxis', xAxisIndex);
24696
+
24697
+ var axesModels = findAxesModels(seriesModel, ecModel);
24698
+ var xAxisModel = axesModels[0];
24699
+ var yAxisModel = axesModels[1];
24700
+
24701
+ var gridModel = xAxisModel.findGridModel();
24611
24702
 
24612
24703
  if (true) {
24613
- var yAxisModel = ecModel.getComponent('yAxis', yAxisIndex);
24614
- if (xAxisModel.get('gridIndex') !== yAxisModel.get('gridIndex')) {
24704
+ if (!gridModel) {
24705
+ throw new Error(
24706
+ 'Grid "' + zrUtil.retrieve(
24707
+ xAxisModel.get('gridIndex'),
24708
+ xAxisModel.get('gridId'),
24709
+ 0
24710
+ ) + '" not found'
24711
+ );
24712
+ }
24713
+ if (xAxisModel.findGridModel() !== yAxisModel.findGridModel()) {
24615
24714
  throw new Error('xAxis and yAxis must use the same grid');
24616
24715
  }
24617
24716
  }
24618
- var grid = grids[xAxisModel.get('gridIndex')];
24619
- seriesModel.coordinateSystem = grid.getCartesian(xAxisIndex, yAxisIndex);
24717
+
24718
+ var grid = gridModel.coordinateSystem;
24719
+
24720
+ seriesModel.coordinateSystem = grid.getCartesian(
24721
+ xAxisModel.componentIndex, yAxisModel.componentIndex
24722
+ );
24620
24723
  });
24621
24724
 
24622
24725
  return grids;
@@ -24710,6 +24813,11 @@ return /******/ (function(modules) { // webpackBootstrap
24710
24813
  var fixMin = (model.getMin ? model.getMin() : model.get('min')) != null;
24711
24814
  var fixMax = (model.getMax ? model.getMax() : model.get('max')) != null;
24712
24815
  var splitNumber = model.get('splitNumber');
24816
+
24817
+ if (scale.type === 'log') {
24818
+ scale.base = model.get('logBase');
24819
+ }
24820
+
24713
24821
  scale.setExtent(extent[0], extent[1]);
24714
24822
  scale.niceExtent(splitNumber, fixMin, fixMax);
24715
24823
 
@@ -25104,6 +25212,9 @@ return /******/ (function(modules) { // webpackBootstrap
25104
25212
 
25105
25213
  var mathFloor = Math.floor;
25106
25214
  var mathCeil = Math.ceil;
25215
+
25216
+ var getPrecisionSafe = numberUtil.getPrecisionSafe;
25217
+ var roundingErrorFix = numberUtil.round;
25107
25218
  /**
25108
25219
  * @alias module:echarts/coord/scale/Interval
25109
25220
  * @constructor
@@ -25169,6 +25280,8 @@ return /******/ (function(modules) { // webpackBootstrap
25169
25280
 
25170
25281
  if (interval) {
25171
25282
  var niceExtent = this._niceExtent;
25283
+ var precision = getPrecisionSafe(interval) + 2;
25284
+
25172
25285
  if (extent[0] < niceExtent[0]) {
25173
25286
  ticks.push(extent[0]);
25174
25287
  }
@@ -25176,7 +25289,7 @@ return /******/ (function(modules) { // webpackBootstrap
25176
25289
  while (tick <= niceExtent[1]) {
25177
25290
  ticks.push(tick);
25178
25291
  // Avoid rounding error
25179
- tick = numberUtil.round(tick + interval);
25292
+ tick = roundingErrorFix(tick + interval, precision);
25180
25293
  if (ticks.length > safeLimit) {
25181
25294
  return [];
25182
25295
  }
@@ -25230,12 +25343,21 @@ return /******/ (function(modules) { // webpackBootstrap
25230
25343
 
25231
25344
  // From "Nice Numbers for Graph Labels" of Graphic Gems
25232
25345
  // var niceSpan = numberUtil.nice(span, false);
25233
- var step = numberUtil.nice(span / splitNumber, true);
25346
+ var step = roundingErrorFix(
25347
+ numberUtil.nice(span / splitNumber, true),
25348
+ Math.max(
25349
+ getPrecisionSafe(extent[0]),
25350
+ getPrecisionSafe(extent[1])
25351
+ // extent may be [0, 1], and step should have 1 more digits.
25352
+ // To make it safe we add 2 more digits
25353
+ ) + 2
25354
+ );
25234
25355
 
25356
+ var precision = getPrecisionSafe(step) + 2;
25235
25357
  // Niced extent inside original extent
25236
25358
  var niceExtent = [
25237
- numberUtil.round(mathCeil(extent[0] / step) * step),
25238
- numberUtil.round(mathFloor(extent[1] / step) * step)
25359
+ roundingErrorFix(mathCeil(extent[0] / step) * step, precision),
25360
+ roundingErrorFix(mathFloor(extent[1] / step) * step, precision)
25239
25361
  ];
25240
25362
 
25241
25363
  this._interval = step;
@@ -25285,10 +25407,10 @@ return /******/ (function(modules) { // webpackBootstrap
25285
25407
  var interval = this._interval;
25286
25408
 
25287
25409
  if (!fixMin) {
25288
- extent[0] = numberUtil.round(mathFloor(extent[0] / interval) * interval);
25410
+ extent[0] = roundingErrorFix(mathFloor(extent[0] / interval) * interval);
25289
25411
  }
25290
25412
  if (!fixMax) {
25291
- extent[1] = numberUtil.round(mathCeil(extent[1] / interval) * interval);
25413
+ extent[1] = roundingErrorFix(mathCeil(extent[1] / interval) * interval);
25292
25414
  }
25293
25415
  }
25294
25416
  });
@@ -25494,20 +25616,21 @@ return /******/ (function(modules) { // webpackBootstrap
25494
25616
  var mathCeil = Math.ceil;
25495
25617
  var mathPow = Math.pow;
25496
25618
 
25497
- var LOG_BASE = 10;
25498
25619
  var mathLog = Math.log;
25499
25620
 
25500
25621
  var LogScale = Scale.extend({
25501
25622
 
25502
25623
  type: 'log',
25503
25624
 
25625
+ base: 10,
25626
+
25504
25627
  /**
25505
25628
  * @return {Array.<number>}
25506
25629
  */
25507
25630
  getTicks: function () {
25508
25631
  return zrUtil.map(intervalScaleProto.getTicks.call(this), function (val) {
25509
- return numberUtil.round(mathPow(LOG_BASE, val));
25510
- });
25632
+ return numberUtil.round(mathPow(this.base, val));
25633
+ }, this);
25511
25634
  },
25512
25635
 
25513
25636
  /**
@@ -25522,7 +25645,7 @@ return /******/ (function(modules) { // webpackBootstrap
25522
25645
  */
25523
25646
  scale: function (val) {
25524
25647
  val = scaleProto.scale.call(this, val);
25525
- return mathPow(LOG_BASE, val);
25648
+ return mathPow(this.base, val);
25526
25649
  },
25527
25650
 
25528
25651
  /**
@@ -25530,8 +25653,9 @@ return /******/ (function(modules) { // webpackBootstrap
25530
25653
  * @param {number} end
25531
25654
  */
25532
25655
  setExtent: function (start, end) {
25533
- start = mathLog(start) / mathLog(LOG_BASE);
25534
- end = mathLog(end) / mathLog(LOG_BASE);
25656
+ var base = this.base;
25657
+ start = mathLog(start) / mathLog(base);
25658
+ end = mathLog(end) / mathLog(base);
25535
25659
  intervalScaleProto.setExtent.call(this, start, end);
25536
25660
  },
25537
25661
 
@@ -25539,9 +25663,10 @@ return /******/ (function(modules) { // webpackBootstrap
25539
25663
  * @return {number} end
25540
25664
  */
25541
25665
  getExtent: function () {
25666
+ var base = this.base;
25542
25667
  var extent = scaleProto.getExtent.call(this);
25543
- extent[0] = mathPow(LOG_BASE, extent[0]);
25544
- extent[1] = mathPow(LOG_BASE, extent[1]);
25668
+ extent[0] = mathPow(base, extent[0]);
25669
+ extent[1] = mathPow(base, extent[1]);
25545
25670
  return extent;
25546
25671
  },
25547
25672
 
@@ -25549,8 +25674,9 @@ return /******/ (function(modules) { // webpackBootstrap
25549
25674
  * @param {Array.<number>} extent
25550
25675
  */
25551
25676
  unionExtent: function (extent) {
25552
- extent[0] = mathLog(extent[0]) / mathLog(LOG_BASE);
25553
- extent[1] = mathLog(extent[1]) / mathLog(LOG_BASE);
25677
+ var base = this.base;
25678
+ extent[0] = mathLog(extent[0]) / mathLog(base);
25679
+ extent[1] = mathLog(extent[1]) / mathLog(base);
25554
25680
  scaleProto.unionExtent.call(this, extent);
25555
25681
  },
25556
25682
 
@@ -25566,13 +25692,19 @@ return /******/ (function(modules) { // webpackBootstrap
25566
25692
  return;
25567
25693
  }
25568
25694
 
25569
- var interval = mathPow(10, mathFloor(mathLog(span / approxTickNum) / Math.LN10));
25695
+ var interval = numberUtil.quantity(span);
25570
25696
  var err = approxTickNum / span * interval;
25571
25697
 
25572
25698
  // Filter ticks to get closer to the desired count.
25573
25699
  if (err <= 0.5) {
25574
25700
  interval *= 10;
25575
25701
  }
25702
+
25703
+ // Interval should be integer
25704
+ while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {
25705
+ interval *= 10;
25706
+ }
25707
+
25576
25708
  var niceExtent = [
25577
25709
  numberUtil.round(mathCeil(extent[0] / interval) * interval),
25578
25710
  numberUtil.round(mathFloor(extent[1] / interval) * interval)
@@ -25593,7 +25725,7 @@ return /******/ (function(modules) { // webpackBootstrap
25593
25725
 
25594
25726
  zrUtil.each(['contain', 'normalize'], function (methodName) {
25595
25727
  LogScale.prototype[methodName] = function (val) {
25596
- val = mathLog(val) / mathLog(LOG_BASE);
25728
+ val = mathLog(val) / mathLog(this.base);
25597
25729
  return scaleProto[methodName].call(this, val);
25598
25730
  };
25599
25731
  });
@@ -26343,6 +26475,17 @@ return /******/ (function(modules) { // webpackBootstrap
26343
26475
  ? false : !option.scale;
26344
26476
  },
26345
26477
 
26478
+ /**
26479
+ * @return {module:echarts/model/Model}
26480
+ */
26481
+ findGridModel: function () {
26482
+ return this.ecModel.queryComponents({
26483
+ mainType: 'grid',
26484
+ index: this.get('gridIndex'),
26485
+ id: this.get('gridId')
26486
+ })[0];
26487
+ },
26488
+
26346
26489
  /**
26347
26490
  * @private
26348
26491
  */
@@ -26361,7 +26504,8 @@ return /******/ (function(modules) { // webpackBootstrap
26361
26504
  zrUtil.merge(AxisModel.prototype, __webpack_require__(129));
26362
26505
 
26363
26506
  var extraOption = {
26364
- gridIndex: 0,
26507
+ // gridIndex: 0,
26508
+ // gridId: '',
26365
26509
 
26366
26510
  // Offset is for multiple axis on the same position
26367
26511
  offset: 0
@@ -26581,7 +26725,9 @@ return /******/ (function(modules) { // webpackBootstrap
26581
26725
  min: 'dataMin',
26582
26726
  max: 'dataMax'
26583
26727
  }, valueAxis);
26584
- var logAxis = zrUtil.defaults({}, valueAxis);
26728
+ var logAxis = zrUtil.defaults({
26729
+ logBase: 10
26730
+ }, valueAxis);
26585
26731
  logAxis.scale = true;
26586
26732
 
26587
26733
  module.exports = {
@@ -26693,7 +26839,7 @@ return /******/ (function(modules) { // webpackBootstrap
26693
26839
  return;
26694
26840
  }
26695
26841
 
26696
- var gridModel = ecModel.getComponent('grid', axisModel.get('gridIndex'));
26842
+ var gridModel = axisModel.findGridModel();
26697
26843
 
26698
26844
  var layout = layoutAxis(gridModel, axisModel);
26699
26845
 
@@ -27615,8 +27761,8 @@ return /******/ (function(modules) { // webpackBootstrap
27615
27761
  // stack: null
27616
27762
 
27617
27763
  // Cartesian coordinate system
27618
- xAxisIndex: 0,
27619
- yAxisIndex: 0,
27764
+ // xAxisIndex: 0,
27765
+ // yAxisIndex: 0,
27620
27766
 
27621
27767
  // 最小高度改为0
27622
27768
  barMinHeight: 0,
@@ -28809,15 +28955,21 @@ return /******/ (function(modules) { // webpackBootstrap
28809
28955
  // FIXME Performance
28810
28956
  var itemModel = dataAll.getItemModel(rawIdx);
28811
28957
  var filteredIdx = idxMap[rawIdx];
28958
+
28812
28959
  // If series.itemStyle.normal.color is a function. itemVisual may be encoded
28813
- var singleDataColor = data.getItemVisual(filteredIdx, 'color', true);
28960
+ var singleDataColor = filteredIdx != null
28961
+ && data.getItemVisual(filteredIdx, 'color', true);
28814
28962
 
28815
28963
  if (!singleDataColor) {
28816
28964
  var color = itemModel.get('itemStyle.normal.color')
28817
28965
  || seriesModel.getColorFromPalette(dataAll.getName(rawIdx), paletteScope);
28818
28966
  // Legend may use the visual info in data before processed
28819
28967
  dataAll.setItemVisual(rawIdx, 'color', color);
28820
- data.setItemVisual(filteredIdx, 'color', color);
28968
+
28969
+ // Data is not filtered
28970
+ if (filteredIdx != null) {
28971
+ data.setItemVisual(filteredIdx, 'color', color);
28972
+ }
28821
28973
  }
28822
28974
  else {
28823
28975
  // Set data all color for legend
@@ -29270,14 +29422,14 @@ return /******/ (function(modules) { // webpackBootstrap
29270
29422
 
29271
29423
  hoverAnimation: true,
29272
29424
  // Cartesian coordinate system
29273
- xAxisIndex: 0,
29274
- yAxisIndex: 0,
29425
+ // xAxisIndex: 0,
29426
+ // yAxisIndex: 0,
29275
29427
 
29276
29428
  // Polar coordinate system
29277
- polarIndex: 0,
29429
+ // polarIndex: 0,
29278
29430
 
29279
29431
  // Geo coordinate system
29280
- geoIndex: 0,
29432
+ // geoIndex: 0,
29281
29433
 
29282
29434
  // symbol: null, // 图形类型
29283
29435
  symbolSize: 10, // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2
@@ -29862,10 +30014,10 @@ return /******/ (function(modules) { // webpackBootstrap
29862
30014
  var nameGap = this.get('nameGap');
29863
30015
  var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {
29864
30016
  // PENDING
29865
- if (indicatorOpt.max != null && indicatorOpt.max > 0) {
30017
+ if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {
29866
30018
  indicatorOpt.min = 0;
29867
30019
  }
29868
- else if (indicatorOpt.min != null && indicatorOpt.min < 0) {
30020
+ else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {
29869
30021
  indicatorOpt.max = 0;
29870
30022
  }
29871
30023
  // Use same configuration
@@ -30074,7 +30226,15 @@ return /******/ (function(modules) { // webpackBootstrap
30074
30226
  points.push(axesTicksPoints[j][i]);
30075
30227
  }
30076
30228
  // Close
30077
- points.push(points[0].slice());
30229
+ if (points[0]) {
30230
+ points.push(points[0].slice());
30231
+ }
30232
+ else {
30233
+ if (true) {
30234
+ console.error('Can\'t draw value axis ' + i);
30235
+ continue;
30236
+ }
30237
+ }
30078
30238
  if (showSplitLine) {
30079
30239
  var colorIndex = getColorIndex(splitLines, splitLineColors, i);
30080
30240
  splitLines[colorIndex].push(new graphic.Polyline({
@@ -31971,8 +32131,8 @@ return /******/ (function(modules) { // webpackBootstrap
31971
32131
  group.removeAll();
31972
32132
  // Not update map if it is an roam action from self
31973
32133
  if (!(payload && payload.type === 'geoRoam'
31974
- && payload.component === 'series'
31975
- && payload.name === mapModel.name)) {
32134
+ && payload.componentType === 'series'
32135
+ && payload.seriesId === mapModel.id)) {
31976
32136
 
31977
32137
  if (mapModel.needsDrawMap) {
31978
32138
  var mapDraw = this._mapDraw || new MapDraw(api, true);
@@ -36783,6 +36943,12 @@ return /******/ (function(modules) { // webpackBootstrap
36783
36943
  this.option.center = center;
36784
36944
  },
36785
36945
 
36946
+ ifEnableAnimation: function () {
36947
+ return GraphSeries.superCall(this, 'ifEnableAnimation')
36948
+ // Not enable animation when do force layout
36949
+ && !(this.get('layout') === 'force' && this.get('force.layoutAnimation'));
36950
+ },
36951
+
36786
36952
  defaultOption: {
36787
36953
  zlevel: 0,
36788
36954
  z: 2,
@@ -36790,10 +36956,10 @@ return /******/ (function(modules) { // webpackBootstrap
36790
36956
  coordinateSystem: 'view',
36791
36957
 
36792
36958
  // Default option for all coordinate systems
36793
- xAxisIndex: 0,
36794
- yAxisIndex: 0,
36795
- polarIndex: 0,
36796
- geoIndex: 0,
36959
+ // xAxisIndex: 0,
36960
+ // yAxisIndex: 0,
36961
+ // polarIndex: 0,
36962
+ // geoIndex: 0,
36797
36963
 
36798
36964
  legendHoverLink: true,
36799
36965
 
@@ -36803,11 +36969,18 @@ return /******/ (function(modules) { // webpackBootstrap
36803
36969
 
36804
36970
  focusNodeAdjacency: false,
36805
36971
 
36806
- // Configuration of force
36972
+ // Configuration of circular layout
36973
+ circular: {
36974
+ rotateLabel: false
36975
+ },
36976
+ // Configuration of force directed layout
36807
36977
  force: {
36808
36978
  initLayout: null,
36809
- repulsion: 50,
36979
+ // Node repulsion. Can be an array to represent range.
36980
+ repulsion: [0, 50],
36810
36981
  gravity: 0.1,
36982
+
36983
+ // Edge length. Can be an array to represent range.
36811
36984
  edgeLength: 30,
36812
36985
 
36813
36986
  layoutAnimation: true
@@ -36908,14 +37081,16 @@ return /******/ (function(modules) { // webpackBootstrap
36908
37081
 
36909
37082
  var linkNameList = [];
36910
37083
  var validEdges = [];
37084
+ var linkCount = 0;
36911
37085
  for (var i = 0; i < edges.length; i++) {
36912
37086
  var link = edges[i];
36913
37087
  var source = link.source;
36914
37088
  var target = link.target;
36915
37089
  // addEdge may fail when source or target not exists
36916
- if (graph.addEdge(source, target, i)) {
37090
+ if (graph.addEdge(source, target, linkCount)) {
36917
37091
  validEdges.push(link);
36918
37092
  linkNameList.push(zrUtil.retrieve(link.id, source + ' > ' + target));
37093
+ linkCount++;
36919
37094
  }
36920
37095
  }
36921
37096
 
@@ -37591,6 +37766,35 @@ return /******/ (function(modules) { // webpackBootstrap
37591
37766
  }
37592
37767
  }, this);
37593
37768
 
37769
+ var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get('circular.rotateLabel');
37770
+ var cx = data.getLayout('cx');
37771
+ var cy = data.getLayout('cy');
37772
+ data.eachItemGraphicEl(function (el, idx) {
37773
+ var symbolPath = el.getSymbolPath();
37774
+ if (circularRotateLabel) {
37775
+ var pos = data.getItemLayout(idx);
37776
+ var rad = Math.atan2(pos[1] - cy, pos[0] - cx);
37777
+ if (rad < 0) {
37778
+ rad = Math.PI * 2 + rad;
37779
+ }
37780
+ var isLeft = pos[0] < cx;
37781
+ if (isLeft) {
37782
+ rad = rad - Math.PI;
37783
+ }
37784
+ var textPosition = isLeft ? 'left' : 'right';
37785
+ symbolPath.setStyle({
37786
+ textRotation: rad,
37787
+ textPosition: textPosition
37788
+ });
37789
+ symbolPath.hoverStyle && (symbolPath.hoverStyle.textPosition = textPosition);
37790
+ }
37791
+ else {
37792
+ symbolPath.setStyle({
37793
+ textRotation: 0
37794
+ });
37795
+ }
37796
+ });
37797
+
37594
37798
  this._firstRender = false;
37595
37799
  },
37596
37800
 
@@ -37936,6 +38140,10 @@ return /******/ (function(modules) { // webpackBootstrap
37936
38140
  targetShape.cpx1 = cp1[0];
37937
38141
  targetShape.cpy1 = cp1[1];
37938
38142
  }
38143
+ else {
38144
+ targetShape.cpx1 = NaN;
38145
+ targetShape.cpy1 = NaN;
38146
+ }
37939
38147
  }
37940
38148
 
37941
38149
  function updateSymbolAndLabelBeforeLineUpdate () {
@@ -38134,6 +38342,11 @@ return /******/ (function(modules) { // webpackBootstrap
38134
38342
  }
38135
38343
 
38136
38344
  var visualColor = lineData.getItemVisual(idx, 'color');
38345
+ var visualOpacity = zrUtil.retrieve(
38346
+ lineData.getItemVisual(idx, 'opacity'),
38347
+ lineStyle.opacity,
38348
+ 1
38349
+ );
38137
38350
  if (isNaN(defaultText)) {
38138
38351
  // Use name
38139
38352
  defaultText = lineData.getName(idx);
@@ -38142,12 +38355,24 @@ return /******/ (function(modules) { // webpackBootstrap
38142
38355
  {
38143
38356
  strokeNoScale: true,
38144
38357
  fill: 'none',
38145
- stroke: visualColor
38358
+ stroke: visualColor,
38359
+ opacity: visualOpacity
38146
38360
  },
38147
38361
  lineStyle
38148
38362
  ));
38149
38363
  line.hoverStyle = hoverLineStyle;
38150
38364
 
38365
+ // Update symbol
38366
+ zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {
38367
+ var symbol = this.childOfName(symbolCategory);
38368
+ if (symbol) {
38369
+ symbol.setColor(visualColor);
38370
+ symbol.setStyle({
38371
+ opacity: visualOpacity
38372
+ });
38373
+ }
38374
+ }, this);
38375
+
38151
38376
  var showLabel = labelModel.getShallow('show');
38152
38377
  var hoverShowLabel = hoverLabelModel.getShallow('show');
38153
38378
  var defaultText;
@@ -38229,7 +38454,7 @@ return /******/ (function(modules) { // webpackBootstrap
38229
38454
  var bezierCurveProto = graphic.BezierCurve.prototype;
38230
38455
 
38231
38456
  function isLine(shape) {
38232
- return shape.cpx1 == null || shape.cpy1 == null;
38457
+ return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);
38233
38458
  }
38234
38459
 
38235
38460
  module.exports = graphic.extendShape({
@@ -38356,6 +38581,13 @@ return /******/ (function(modules) { // webpackBootstrap
38356
38581
  var v = [];
38357
38582
  scale /= 2;
38358
38583
 
38584
+ function getSymbolSize(node) {
38585
+ var symbolSize = node.getVisual('symbolSize');
38586
+ if (symbolSize instanceof Array) {
38587
+ symbolSize = (symbolSize[0] + symbolSize[1]) / 2;
38588
+ }
38589
+ return symbolSize;
38590
+ }
38359
38591
  graph.eachEdge(function (edge, idx) {
38360
38592
  var linePoints = edge.getLayout();
38361
38593
  var fromSymbol = edge.getVisual('fromSymbol');
@@ -38377,10 +38609,8 @@ return /******/ (function(modules) { // webpackBootstrap
38377
38609
  vec2.copy(pts[1], originalPoints[2]);
38378
38610
  vec2.copy(pts[2], originalPoints[1]);
38379
38611
  if (fromSymbol && fromSymbol != 'none') {
38380
- var symbolSize = edge.node1.getVisual('symbolSize');
38381
- if (symbolSize instanceof Array) {
38382
- symbolSize = (symbolSize[0] + symbolSize[1]) / 2;
38383
- }
38612
+ var symbolSize = getSymbolSize(edge.node1);
38613
+
38384
38614
  var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);
38385
38615
  // Subdivide and get the second
38386
38616
  quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);
@@ -38391,10 +38621,8 @@ return /******/ (function(modules) { // webpackBootstrap
38391
38621
  pts[1][1] = tmp0[4];
38392
38622
  }
38393
38623
  if (toSymbol && toSymbol != 'none') {
38394
- var symbolSize = edge.node1.getVisual('symbolSize');
38395
- if (symbolSize instanceof Array) {
38396
- symbolSize = (symbolSize[0] + symbolSize[1]) / 2;
38397
- }
38624
+ var symbolSize = getSymbolSize(edge.node2);
38625
+
38398
38626
  var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);
38399
38627
  // Subdivide and get the first
38400
38628
  quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);
@@ -38417,10 +38645,15 @@ return /******/ (function(modules) { // webpackBootstrap
38417
38645
  vec2.sub(v, pts2[1], pts2[0]);
38418
38646
  vec2.normalize(v, v);
38419
38647
  if (fromSymbol && fromSymbol != 'none') {
38420
- vec2.scaleAndAdd(pts2[0], pts2[0], v, edge.node1.getVisual('symbolSize') * scale);
38648
+
38649
+ var symbolSize = getSymbolSize(edge.node1);
38650
+
38651
+ vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);
38421
38652
  }
38422
38653
  if (toSymbol && toSymbol != 'none') {
38423
- vec2.scaleAndAdd(pts2[1], pts2[1], v, -edge.node2.getVisual('symbolSize') * scale);
38654
+ var symbolSize = getSymbolSize(edge.node2);
38655
+
38656
+ vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);
38424
38657
  }
38425
38658
  vec2.copy(linePoints[0], pts2[0]);
38426
38659
  vec2.copy(linePoints[1], pts2[1]);
@@ -38516,6 +38749,8 @@ return /******/ (function(modules) { // webpackBootstrap
38516
38749
 
38517
38750
 
38518
38751
  module.exports = function (ecModel) {
38752
+
38753
+ var paletteScope = {};
38519
38754
  ecModel.eachSeriesByType('graph', function (seriesModel) {
38520
38755
  var categoriesData = seriesModel.getCategoriesData();
38521
38756
  var data = seriesModel.getData();
@@ -38528,7 +38763,7 @@ return /******/ (function(modules) { // webpackBootstrap
38528
38763
 
38529
38764
  var itemModel = categoriesData.getItemModel(idx);
38530
38765
  var color = itemModel.get('itemStyle.normal.color')
38531
- || seriesModel.getColorFromPalette(name);
38766
+ || seriesModel.getColorFromPalette(name, paletteScope);
38532
38767
  categoriesData.setItemVisual(idx, 'color', color);
38533
38768
  });
38534
38769
 
@@ -38573,11 +38808,15 @@ return /******/ (function(modules) { // webpackBootstrap
38573
38808
  var symbolType = normalize(seriesModel.get('edgeSymbol'));
38574
38809
  var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));
38575
38810
 
38811
+ var colorQuery = 'lineStyle.normal.color'.split('.');
38812
+ var opacityQuery = 'lineStyle.normal.opacity'.split('.');
38813
+
38576
38814
  edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);
38577
38815
  edgeData.setVisual('toSymbol', symbolType && symbolType[1]);
38578
38816
  edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);
38579
38817
  edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);
38580
- edgeData.setVisual('color', seriesModel.get('lineStyle.normal.color'));
38818
+ edgeData.setVisual('color', seriesModel.get(colorQuery));
38819
+ edgeData.setVisual('opacity', seriesModel.get(opacityQuery));
38581
38820
 
38582
38821
  edgeData.each(function (idx) {
38583
38822
  var itemModel = edgeData.getItemModel(idx);
@@ -38585,7 +38824,8 @@ return /******/ (function(modules) { // webpackBootstrap
38585
38824
  var symbolType = normalize(itemModel.getShallow('symbol', true));
38586
38825
  var symbolSize = normalize(itemModel.getShallow('symbolSize', true));
38587
38826
  // Edge visual must after node visual
38588
- var color = itemModel.get('lineStyle.normal.color');
38827
+ var color = itemModel.get(colorQuery);
38828
+ var opacity = itemModel.get(opacityQuery);
38589
38829
  switch (color) {
38590
38830
  case 'source':
38591
38831
  color = edge.node1.getVisual('color');
@@ -38601,6 +38841,7 @@ return /******/ (function(modules) { // webpackBootstrap
38601
38841
  symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);
38602
38842
 
38603
38843
  edge.setVisual('color', color);
38844
+ edge.setVisual('opacity', opacity);
38604
38845
  });
38605
38846
  });
38606
38847
  };
@@ -38675,7 +38916,7 @@ return /******/ (function(modules) { // webpackBootstrap
38675
38916
  var p1 = vec2.clone(edge.node1.getLayout());
38676
38917
  var p2 = vec2.clone(edge.node2.getLayout());
38677
38918
  var points = [p1, p2];
38678
- if (curveness > 0) {
38919
+ if (+curveness) {
38679
38920
  points.push([
38680
38921
  (p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness,
38681
38922
  (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness
@@ -38740,6 +38981,11 @@ return /******/ (function(modules) { // webpackBootstrap
38740
38981
  angle += unitAngle * (sum ? value : 2) / 2;
38741
38982
  });
38742
38983
 
38984
+ nodeData.setLayout({
38985
+ cx: cx,
38986
+ cy: cy
38987
+ });
38988
+
38743
38989
  graph.eachEdge(function (edge) {
38744
38990
  var curveness = edge.getModel().get('lineStyle.normal.curveness') || 0;
38745
38991
  var p1 = vec2.clone(edge.node1.getLayout());
@@ -38747,7 +38993,7 @@ return /******/ (function(modules) { // webpackBootstrap
38747
38993
  var cp1;
38748
38994
  var x12 = (p1[0] + p2[0]) / 2;
38749
38995
  var y12 = (p1[1] + p2[1]) / 2;
38750
- if (curveness > 0) {
38996
+ if (+curveness) {
38751
38997
  curveness *= 3;
38752
38998
  cp1 = [
38753
38999
  cx * curveness + x12 * (1 - curveness),
@@ -38770,6 +39016,7 @@ return /******/ (function(modules) { // webpackBootstrap
38770
39016
  var simpleLayoutHelper = __webpack_require__(208);
38771
39017
  var circularLayoutHelper = __webpack_require__(211);
38772
39018
  var vec2 = __webpack_require__(10);
39019
+ var zrUtil = __webpack_require__(4);
38773
39020
 
38774
39021
  module.exports = function (ecModel) {
38775
39022
  ecModel.eachSeriesByType('graph', function (graphSeries) {
@@ -38798,13 +39045,26 @@ return /******/ (function(modules) { // webpackBootstrap
38798
39045
  }
38799
39046
 
38800
39047
  var nodeDataExtent = nodeData.getDataExtent('value');
39048
+ var edgeDataExtent = edgeData.getDataExtent('value');
38801
39049
  // var edgeDataExtent = edgeData.getDataExtent('value');
38802
39050
  var repulsion = forceModel.get('repulsion');
38803
39051
  var edgeLength = forceModel.get('edgeLength');
39052
+ if (!zrUtil.isArray(repulsion)) {
39053
+ repulsion = [repulsion, repulsion];
39054
+ }
39055
+ if (!zrUtil.isArray(edgeLength)) {
39056
+ edgeLength = [edgeLength, edgeLength];
39057
+ }
39058
+ // Larger value has smaller length
39059
+ edgeLength = [edgeLength[1], edgeLength[0]];
39060
+
38804
39061
  var nodes = nodeData.mapArray('value', function (value, idx) {
38805
39062
  var point = nodeData.getItemLayout(idx);
38806
39063
  // var w = numberUtil.linearMap(value, nodeDataExtent, [0, 50]);
38807
- var rep = numberUtil.linearMap(value, nodeDataExtent, [0, repulsion]) || (repulsion / 2);
39064
+ var rep = numberUtil.linearMap(value, nodeDataExtent, repulsion);
39065
+ if (isNaN(rep)) {
39066
+ rep = (repulsion[0] + repulsion[1]) / 2;
39067
+ }
38808
39068
  return {
38809
39069
  w: rep,
38810
39070
  rep: rep,
@@ -38813,11 +39073,14 @@ return /******/ (function(modules) { // webpackBootstrap
38813
39073
  });
38814
39074
  var edges = edgeData.mapArray('value', function (value, idx) {
38815
39075
  var edge = graph.getEdgeByIndex(idx);
38816
- // var w = numberUtil.linearMap(value, edgeDataExtent, [0, 100]);
39076
+ var d = numberUtil.linearMap(value, edgeDataExtent, edgeLength);
39077
+ if (isNaN(d)) {
39078
+ d = (edgeLength[0] + edgeLength[1]) / 2;
39079
+ }
38817
39080
  return {
38818
39081
  n1: nodes[edge.node1.dataIndex],
38819
39082
  n2: nodes[edge.node2.dataIndex],
38820
- d: edgeLength,
39083
+ d: d,
38821
39084
  curveness: edge.getModel().get('lineStyle.normal.curveness') || 0
38822
39085
  };
38823
39086
  });
@@ -38854,7 +39117,7 @@ return /******/ (function(modules) { // webpackBootstrap
38854
39117
  points[1] = points[1] || [];
38855
39118
  vec2.copy(points[0], p1);
38856
39119
  vec2.copy(points[1], p2);
38857
- if (e.curveness > 0) {
39120
+ if (+e.curveness) {
38858
39121
  points[2] = [
38859
39122
  (p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness,
38860
39123
  (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness
@@ -40335,8 +40598,12 @@ return /******/ (function(modules) { // webpackBootstrap
40335
40598
  // Inject the coordinateSystems into seriesModel
40336
40599
  ecModel.eachSeries(function (seriesModel) {
40337
40600
  if (seriesModel.get('coordinateSystem') === 'parallel') {
40338
- var parallelIndex = seriesModel.get('parallelIndex');
40339
- seriesModel.coordinateSystem = coordSysList[parallelIndex];
40601
+ var parallelModel = ecModel.queryComponents({
40602
+ mainType: 'parallel',
40603
+ index: seriesModel.get('parallelIndex'),
40604
+ id: seriesModel.get('parallelId')
40605
+ })[0];
40606
+ seriesModel.coordinateSystem = parallelModel.coordinateSystem;
40340
40607
  }
40341
40608
  });
40342
40609
 
@@ -41026,7 +41293,7 @@ return /******/ (function(modules) { // webpackBootstrap
41026
41293
  */
41027
41294
  dim: null, // 0, 1, 2, ...
41028
41295
 
41029
- parallelIndex: null,
41296
+ // parallelIndex: null,
41030
41297
 
41031
41298
  areaSelectStyle: {
41032
41299
  width: 20,
@@ -42799,7 +43066,10 @@ return /******/ (function(modules) { // webpackBootstrap
42799
43066
  /* 239 */
42800
43067
  /***/ function(module, exports, __webpack_require__) {
42801
43068
 
42802
- 'use strict';
43069
+ /**
43070
+ * @file Get initial data and define sankey view's series model
43071
+ * @author Deqing Li(annong035@gmail.com)
43072
+ */
42803
43073
 
42804
43074
 
42805
43075
  var SeriesModel = __webpack_require__(28);
@@ -42811,7 +43081,13 @@ return /******/ (function(modules) { // webpackBootstrap
42811
43081
 
42812
43082
  layoutInfo: null,
42813
43083
 
42814
- getInitialData: function (option, ecModel) {
43084
+ /**
43085
+ * Init a graph data structure from data in option series
43086
+ *
43087
+ * @param {Object} option the object used to config echarts view
43088
+ * @return {module:echarts/data/List} storage initial data
43089
+ */
43090
+ getInitialData: function (option) {
42815
43091
  var links = option.edges || option.links;
42816
43092
  var nodes = option.data || option.nodes;
42817
43093
  if (nodes && links) {
@@ -42821,16 +43097,20 @@ return /******/ (function(modules) { // webpackBootstrap
42821
43097
  },
42822
43098
 
42823
43099
  /**
42824
- * @return {module:echarts/data/Graph}
43100
+ * Return the graphic data structure
43101
+ *
43102
+ * @return {module:echarts/data/Graph} graphic data structure
42825
43103
  */
42826
43104
  getGraph: function () {
42827
43105
  return this.getData().graph;
42828
43106
  },
42829
43107
 
42830
43108
  /**
42831
- * return {module:echarts/data/List}
43109
+ * Get edge data of graphic data structure
43110
+ *
43111
+ * @return {module:echarts/data/List} data structure of list
42832
43112
  */
42833
- getEdgeData: function() {
43113
+ getEdgeData: function () {
42834
43114
  return this.getGraph().edgeData;
42835
43115
  },
42836
43116
 
@@ -42838,6 +43118,7 @@ return /******/ (function(modules) { // webpackBootstrap
42838
43118
  * @override
42839
43119
  */
42840
43120
  formatTooltip: function (dataIndex, multipleSeries, dataType) {
43121
+ // dataType === 'node' or empty do not show tooltip by default
42841
43122
  if (dataType === 'edge') {
42842
43123
  var params = this.getDataParams(dataIndex, dataType);
42843
43124
  var rawDataOpt = params.data;
@@ -42847,10 +43128,8 @@ return /******/ (function(modules) { // webpackBootstrap
42847
43128
  }
42848
43129
  return html;
42849
43130
  }
42850
- else {
42851
- return SankeySeries.superCall(this, 'formatTooltip', dataIndex, multipleSeries);
42852
- }
42853
- // dataType === 'node' or empty do not show tooltip by default.
43131
+
43132
+ return SankeySeries.superCall(this, 'formatTooltip', dataIndex, multipleSeries);
42854
43133
  },
42855
43134
 
42856
43135
  defaultOption: {
@@ -42859,7 +43138,7 @@ return /******/ (function(modules) { // webpackBootstrap
42859
43138
 
42860
43139
  coordinateSystem: 'view',
42861
43140
 
42862
- layout : null,
43141
+ layout: null,
42863
43142
 
42864
43143
  // the position of the whole view
42865
43144
  left: '5%',
@@ -42870,7 +43149,7 @@ return /******/ (function(modules) { // webpackBootstrap
42870
43149
  // the dx of the node
42871
43150
  nodeWidth: 20,
42872
43151
 
42873
- // the distance between two nodes
43152
+ // the vertical distance between two nodes
42874
43153
  nodeGap: 8,
42875
43154
 
42876
43155
  // the number of iterations to change the position of the node
@@ -42918,11 +43197,16 @@ return /******/ (function(modules) { // webpackBootstrap
42918
43197
  module.exports = SankeySeries;
42919
43198
 
42920
43199
 
43200
+
42921
43201
  /***/ },
42922
43202
  /* 240 */
42923
43203
  /***/ function(module, exports, __webpack_require__) {
42924
43204
 
42925
-
43205
+ /**
43206
+ * @file The file used to draw sankey view
43207
+ * @author Deqing Li(annong035@gmail.com)
43208
+ */
43209
+
42926
43210
 
42927
43211
  var graphic = __webpack_require__(43);
42928
43212
  var zrUtil = __webpack_require__(4);
@@ -42965,7 +43249,7 @@ return /******/ (function(modules) { // webpackBootstrap
42965
43249
  */
42966
43250
  _model: null,
42967
43251
 
42968
- render: function(seriesModel, ecModel, api) {
43252
+ render: function (seriesModel, ecModel, api) {
42969
43253
  var graph = seriesModel.getGraph();
42970
43254
  var group = this.group;
42971
43255
  var layoutInfo = seriesModel.layoutInfo;
@@ -42978,60 +43262,6 @@ return /******/ (function(modules) { // webpackBootstrap
42978
43262
 
42979
43263
  group.position = [layoutInfo.x, layoutInfo.y];
42980
43264
 
42981
- // generate a rect for each node
42982
- graph.eachNode(function (node) {
42983
- var layout = node.getLayout();
42984
- var itemModel = node.getModel();
42985
- var labelModel = itemModel.getModel('label.normal');
42986
- var textStyleModel = labelModel.getModel('textStyle');
42987
- var labelHoverModel = itemModel.getModel('label.emphasis');
42988
- var textStyleHoverModel = labelHoverModel.getModel('textStyle');
42989
-
42990
- var rect = new graphic.Rect({
42991
- shape: {
42992
- x: layout.x,
42993
- y: layout.y,
42994
- width: node.getLayout().dx,
42995
- height: node.getLayout().dy
42996
- },
42997
- style: {
42998
- // Get formatted label in label.normal option. Use node id if it is not specified
42999
- text: labelModel.get('show')
43000
- ? seriesModel.getFormattedLabel(node.dataIndex, 'normal') || node.id
43001
- // Use empty string to hide the label
43002
- : '',
43003
- textFont: textStyleModel.getFont(),
43004
- textFill: textStyleModel.getTextColor(),
43005
- textPosition: labelModel.get('position')
43006
- }
43007
- });
43008
-
43009
- rect.setStyle(zrUtil.defaults(
43010
- {
43011
- fill: node.getVisual('color')
43012
- },
43013
- itemModel.getModel('itemStyle.normal').getItemStyle()
43014
- ));
43015
-
43016
- graphic.setHoverStyle(rect, zrUtil.extend(
43017
- node.getModel('itemStyle.emphasis'),
43018
- {
43019
- text: labelHoverModel.get('show')
43020
- ? seriesModel.getFormattedLabel(node.dataIndex, 'emphasis') || node.id
43021
- : '',
43022
- textFont: textStyleHoverModel.getFont(),
43023
- textFill: textStyleHoverModel.getTextColor(),
43024
- textPosition: labelHoverModel.get('position')
43025
- }
43026
- ));
43027
-
43028
- group.add(rect);
43029
-
43030
- nodeData.setItemGraphicEl(node.dataIndex, rect);
43031
-
43032
- rect.dataType = 'node';
43033
- });
43034
-
43035
43265
  // generate a bezire Curve for each edge
43036
43266
  graph.eachEdge(function (edge) {
43037
43267
  var curve = new SankeyShape();
@@ -43077,7 +43307,6 @@ return /******/ (function(modules) { // webpackBootstrap
43077
43307
  case 'target':
43078
43308
  curve.style.fill = edge.node2.getVisual('color');
43079
43309
  break;
43080
- default:
43081
43310
  }
43082
43311
 
43083
43312
  graphic.setHoverStyle(curve, edge.getModel('lineStyle.emphasis').getItemStyle());
@@ -43086,16 +43315,73 @@ return /******/ (function(modules) { // webpackBootstrap
43086
43315
 
43087
43316
  edgeData.setItemGraphicEl(edge.dataIndex, curve);
43088
43317
  });
43318
+
43319
+ // generate a rect for each node
43320
+ graph.eachNode(function (node) {
43321
+ var layout = node.getLayout();
43322
+ var itemModel = node.getModel();
43323
+ var labelModel = itemModel.getModel('label.normal');
43324
+ var textStyleModel = labelModel.getModel('textStyle');
43325
+ var labelHoverModel = itemModel.getModel('label.emphasis');
43326
+ var textStyleHoverModel = labelHoverModel.getModel('textStyle');
43327
+
43328
+ var rect = new graphic.Rect({
43329
+ shape: {
43330
+ x: layout.x,
43331
+ y: layout.y,
43332
+ width: node.getLayout().dx,
43333
+ height: node.getLayout().dy
43334
+ },
43335
+ style: {
43336
+ // Get formatted label in label.normal option
43337
+ // Use node id if it is not specified
43338
+ text: labelModel.get('show')
43339
+ ? seriesModel.getFormattedLabel(node.dataIndex, 'normal') || node.id
43340
+ // Use empty string to hide the label
43341
+ : '',
43342
+ textFont: textStyleModel.getFont(),
43343
+ textFill: textStyleModel.getTextColor(),
43344
+ textPosition: labelModel.get('position')
43345
+ }
43346
+ });
43347
+
43348
+ rect.setStyle(zrUtil.defaults(
43349
+ {
43350
+ fill: node.getVisual('color')
43351
+ },
43352
+ itemModel.getModel('itemStyle.normal').getItemStyle()
43353
+ ));
43354
+
43355
+ graphic.setHoverStyle(rect, zrUtil.extend(
43356
+ node.getModel('itemStyle.emphasis'),
43357
+ {
43358
+ text: labelHoverModel.get('show')
43359
+ ? seriesModel.getFormattedLabel(node.dataIndex, 'emphasis') || node.id
43360
+ : '',
43361
+ textFont: textStyleHoverModel.getFont(),
43362
+ textFill: textStyleHoverModel.getTextColor(),
43363
+ textPosition: labelHoverModel.get('position')
43364
+ }
43365
+ ));
43366
+
43367
+ group.add(rect);
43368
+
43369
+ nodeData.setItemGraphicEl(node.dataIndex, rect);
43370
+
43371
+ rect.dataType = 'node';
43372
+ });
43373
+
43089
43374
  if (!this._data && seriesModel.get('animation')) {
43090
43375
  group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {
43091
43376
  group.removeClipPath();
43092
43377
  }));
43093
43378
  }
43379
+
43094
43380
  this._data = seriesModel.getData();
43095
43381
  }
43096
43382
  });
43097
43383
 
43098
- //add animation to the view
43384
+ // add animation to the view
43099
43385
  function createGridClipShape(rect, seriesModel, cb) {
43100
43386
  var rectEl = new graphic.Rect({
43101
43387
  shape: {
@@ -43116,11 +43402,16 @@ return /******/ (function(modules) { // webpackBootstrap
43116
43402
  }
43117
43403
 
43118
43404
 
43405
+
43119
43406
  /***/ },
43120
43407
  /* 241 */
43121
43408
  /***/ function(module, exports, __webpack_require__) {
43122
43409
 
43123
-
43410
+ /**
43411
+ * @file The layout algorithm of sankey view
43412
+ * @author Deqing Li(annong035@gmail.com)
43413
+ */
43414
+
43124
43415
 
43125
43416
  var layout = __webpack_require__(21);
43126
43417
  var nest = __webpack_require__(242);
@@ -43159,7 +43450,11 @@ return /******/ (function(modules) { // webpackBootstrap
43159
43450
  };
43160
43451
 
43161
43452
  /**
43162
- * get the layout position of the whole view.
43453
+ * Get the layout position of the whole view
43454
+ *
43455
+ * @param {module:echarts/model/Series} seriesModel the model object of sankey series
43456
+ * @param {module:echarts/ExtensionAPI} api provide the API list that the developer can call
43457
+ * @return {module:zrender/core/BoundingRect} size of rect to draw the sankey view
43163
43458
  */
43164
43459
  function getViewRect(seriesModel, api) {
43165
43460
  return layout.getLayoutRect(
@@ -43177,8 +43472,9 @@ return /******/ (function(modules) { // webpackBootstrap
43177
43472
  }
43178
43473
 
43179
43474
  /**
43180
- * compute the value of each node by summing the associated edge's value.
43181
- * @param {module:echarts/data/Graph~Node} nodes
43475
+ * Compute the value of each node by summing the associated edge's value
43476
+ *
43477
+ * @param {module:echarts/data/Graph~Node} nodes node of sankey view
43182
43478
  */
43183
43479
  function computeNodeValues(nodes) {
43184
43480
  zrUtil.each(nodes, function (node) {
@@ -43190,10 +43486,11 @@ return /******/ (function(modules) { // webpackBootstrap
43190
43486
  }
43191
43487
 
43192
43488
  /**
43193
- * compute the x-position for each node.
43194
- * @param {module:echarts/data/Graph~Node} nodes
43195
- * @param {number} nodeWidth
43196
- * @param {number} width
43489
+ * Compute the x-position for each node
43490
+ *
43491
+ * @param {module:echarts/data/Graph~Node} nodes node of sankey view
43492
+ * @param {number} nodeWidth the dx of the node
43493
+ * @param {number} width the whole width of the area to draw the view
43197
43494
  */
43198
43495
  function computeNodeBreadths(nodes, nodeWidth, width) {
43199
43496
  var remainNodes = nodes;
@@ -43203,12 +43500,10 @@ return /******/ (function(modules) { // webpackBootstrap
43203
43500
 
43204
43501
  while (remainNodes.length) {
43205
43502
  nextNode = [];
43206
-
43207
43503
  for (var i = 0, len = remainNodes.length; i < len; i++) {
43208
43504
  var node = remainNodes[i];
43209
43505
  node.setLayout({x: x}, true);
43210
43506
  node.setLayout({dx: nodeWidth}, true);
43211
-
43212
43507
  for (var j = 0, lenj = node.outEdges.length; j < lenj; j++) {
43213
43508
  nextNode.push(node.outEdges[j].node2);
43214
43509
  }
@@ -43224,38 +43519,43 @@ return /******/ (function(modules) { // webpackBootstrap
43224
43519
  }
43225
43520
 
43226
43521
  /**
43227
- * all the node without outEgdes are assigned maximum breadth and
43228
- * be aligned in the last column.
43229
- * @param {module:echarts/data/Graph~Node} nodes
43230
- * @param {number} x
43522
+ * All the node without outEgdes are assigned maximum x-position and
43523
+ * be aligned in the last column.
43524
+ *
43525
+ * @param {module:echarts/data/Graph~Node} nodes node of sankey view
43526
+ * @param {number} x value (x-1) use to assign to node without outEdges
43527
+ * as x-position
43231
43528
  */
43232
43529
  function moveSinksRight(nodes, x) {
43233
43530
  zrUtil.each(nodes, function (node) {
43234
- if(!node.outEdges.length) {
43235
- node.setLayout({x: x-1}, true);
43531
+ if (!node.outEdges.length) {
43532
+ node.setLayout({x: x - 1}, true);
43236
43533
  }
43237
43534
  });
43238
43535
  }
43239
43536
 
43240
43537
  /**
43241
- * scale node x-position to the width.
43242
- * @param {module:echarts/data/Graph~Node} nodes
43243
- * @param {number} kx
43538
+ * Scale node x-position to the width
43539
+ *
43540
+ * @param {module:echarts/data/Graph~Node} nodes node of sankey view
43541
+ * @param {number} kx multiple used to scale nodes
43244
43542
  */
43245
43543
  function scaleNodeBreadths(nodes, kx) {
43246
- zrUtil.each(nodes, function(node) {
43544
+ zrUtil.each(nodes, function (node) {
43247
43545
  var nodeX = node.getLayout().x * kx;
43248
43546
  node.setLayout({x: nodeX}, true);
43249
43547
  });
43250
43548
  }
43251
43549
 
43252
43550
  /**
43253
- * using Gauss-Seidel iterations method to compute the node depth(y-position).
43254
- * @param {module:echarts/data/Graph~Node} nodes
43255
- * @param {module:echarts/data/Graph~Edge} edges
43256
- * @param {number} height
43257
- * @param {numbber} nodeGap
43258
- * @param {number} iterations
43551
+ * Using Gauss-Seidel iterations method to compute the node depth(y-position)
43552
+ *
43553
+ * @param {module:echarts/data/Graph~Node} nodes node of sankey view
43554
+ * @param {module:echarts/data/Graph~Edge} edges edge of sankey view
43555
+ * @param {number} height the whole height of the area to draw the view
43556
+ * @param {numbber} nodeGap the vertical distance between two nodes
43557
+ * in the same column.
43558
+ * @param {number} iterations the number of iterations for the algorithm
43259
43559
  */
43260
43560
  function computeNodeDepths(nodes, edges, height, nodeGap, iterations) {
43261
43561
  var nodesByBreadth = nest()
@@ -43272,6 +43572,8 @@ return /******/ (function(modules) { // webpackBootstrap
43272
43572
  resolveCollisions(nodesByBreadth, nodeGap, height);
43273
43573
 
43274
43574
  for (var alpha = 1; iterations > 0; iterations--) {
43575
+ // 0.99 is a experience parameter, ensure that each iterations of
43576
+ // changes as small as possible.
43275
43577
  alpha *= 0.99;
43276
43578
  relaxRightToLeft(nodesByBreadth, alpha);
43277
43579
  resolveCollisions(nodesByBreadth, nodeGap, height);
@@ -43281,12 +43583,14 @@ return /******/ (function(modules) { // webpackBootstrap
43281
43583
  }
43282
43584
 
43283
43585
  /**
43284
- * compute the original y-position for each node.
43285
- * @param {module:echarts/data/Graph~Node} nodes
43586
+ * Compute the original y-position for each node
43587
+ *
43588
+ * @param {module:echarts/data/Graph~Node} nodes node of sankey view
43286
43589
  * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth
43287
- * @param {module:echarts/data/Graph~Edge} edges
43288
- * @param {number} height
43289
- * @param {number} nodeGap
43590
+ * group by the array of all sankey nodes based on the nodes x-position.
43591
+ * @param {module:echarts/data/Graph~Edge} edges edge of sankey view
43592
+ * @param {number} height the whole height of the area to draw the view
43593
+ * @param {number} nodeGap the vertical distance between two nodes
43290
43594
  */
43291
43595
  function initializeNodeDepth(nodes, nodesByBreadth, edges, height, nodeGap) {
43292
43596
  var kyArray = [];
@@ -43296,9 +43600,10 @@ return /******/ (function(modules) { // webpackBootstrap
43296
43600
  zrUtil.each(nodes, function (node) {
43297
43601
  sum += node.getLayout().value;
43298
43602
  });
43299
- var ky = (height - (n-1) * nodeGap) / sum;
43603
+ var ky = (height - (n - 1) * nodeGap) / sum;
43300
43604
  kyArray.push(ky);
43301
43605
  });
43606
+
43302
43607
  kyArray.sort(function (a, b) {
43303
43608
  return a - b;
43304
43609
  });
@@ -43319,10 +43624,12 @@ return /******/ (function(modules) { // webpackBootstrap
43319
43624
  }
43320
43625
 
43321
43626
  /**
43322
- * resolve the collision of initialized depth.
43627
+ * Resolve the collision of initialized depth (y-position)
43628
+ *
43323
43629
  * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth
43324
- * @param {number} nodeGap
43325
- * @param {number} height
43630
+ * group by the array of all sankey nodes based on the nodes x-position.
43631
+ * @param {number} nodeGap the vertical distance between two nodes
43632
+ * @param {number} height the whole height of the area to draw the view
43326
43633
  */
43327
43634
  function resolveCollisions(nodesByBreadth, nodeGap, height) {
43328
43635
  zrUtil.each(nodesByBreadth, function (nodes) {
@@ -43337,17 +43644,17 @@ return /******/ (function(modules) { // webpackBootstrap
43337
43644
  for (i = 0; i < n; i++) {
43338
43645
  node = nodes[i];
43339
43646
  dy = y0 - node.getLayout().y;
43340
- if(dy > 0) {
43647
+ if (dy > 0) {
43341
43648
  var nodeY = node.getLayout().y + dy;
43342
43649
  node.setLayout({y: nodeY}, true);
43343
43650
  }
43344
43651
  y0 = node.getLayout().y + node.getLayout().dy + nodeGap;
43345
43652
  }
43346
43653
 
43347
- // if the bottommost node goes outside the biunds, push it back up
43654
+ // if the bottommost node goes outside the bounds, push it back up
43348
43655
  dy = y0 - nodeGap - height;
43349
43656
  if (dy > 0) {
43350
- var nodeY = node.getLayout().y -dy;
43657
+ var nodeY = node.getLayout().y - dy;
43351
43658
  node.setLayout({y: nodeY}, true);
43352
43659
  y0 = node.getLayout().y;
43353
43660
  for (i = n - 2; i >= 0; --i) {
@@ -43364,9 +43671,11 @@ return /******/ (function(modules) { // webpackBootstrap
43364
43671
  }
43365
43672
 
43366
43673
  /**
43367
- * change the y-position of the nodes, except most the right side nodes.
43674
+ * Change the y-position of the nodes, except most the right side nodes
43675
+ *
43368
43676
  * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth
43369
- * @param {number} alpha
43677
+ * group by the array of all sankey nodes based on the node x-position.
43678
+ * @param {number} alpha parameter used to adjust the nodes y-position
43370
43679
  */
43371
43680
  function relaxRightToLeft(nodesByBreadth, alpha) {
43372
43681
  zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {
@@ -43385,9 +43694,11 @@ return /******/ (function(modules) { // webpackBootstrap
43385
43694
  }
43386
43695
 
43387
43696
  /**
43388
- * change the y-position of the nodes, except most the left side nodes.
43697
+ * Change the y-position of the nodes, except most the left side nodes
43698
+ *
43389
43699
  * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth
43390
- * @param {number} alpha
43700
+ * group by the array of all sankey nodes based on the node x-position.
43701
+ * @param {number} alpha parameter used to adjust the nodes y-position
43391
43702
  */
43392
43703
  function relaxLeftToRight(nodesByBreadth, alpha) {
43393
43704
  zrUtil.each(nodesByBreadth, function (nodes) {
@@ -43406,8 +43717,9 @@ return /******/ (function(modules) { // webpackBootstrap
43406
43717
  }
43407
43718
 
43408
43719
  /**
43409
- * compute the depth(y-position) of each edge.
43410
- * @param {module:echarts/data/Graph~Node} nodes
43720
+ * Compute the depth(y-position) of each edge
43721
+ *
43722
+ * @param {module:echarts/data/Graph~Node} nodes node of sankey view
43411
43723
  */
43412
43724
  function computeEdgeDepths(nodes) {
43413
43725
  zrUtil.each(nodes, function (node) {
@@ -43437,27 +43749,16 @@ return /******/ (function(modules) { // webpackBootstrap
43437
43749
  }
43438
43750
 
43439
43751
  function sum(array, f) {
43440
- var s = 0;
43441
- var n = array.length;
43442
- var a;
43752
+ var sum = 0;
43753
+ var len = array.length;
43443
43754
  var i = -1;
43444
- if (arguments.length === 1) {
43445
- while (++i < n) {
43446
- a = +array[i];
43447
- if (!isNaN(a)) {
43448
- s += a;
43449
- }
43450
- }
43451
- }
43452
- else {
43453
- while (++i < n) {
43454
- a = +f.call(array, array[i], i);
43455
- if(!isNaN(a)) {
43456
- s += a;
43457
- }
43755
+ while (++i < len) {
43756
+ var value = +f.call(array, array[i], i);
43757
+ if (!isNaN(value)) {
43758
+ sum += value;
43458
43759
  }
43459
43760
  }
43460
- return s;
43761
+ return sum;
43461
43762
  }
43462
43763
 
43463
43764
  function center(node) {
@@ -43469,7 +43770,7 @@ return /******/ (function(modules) { // webpackBootstrap
43469
43770
  }
43470
43771
 
43471
43772
  function ascending(a, b) {
43472
- return a < b ? -1 : a > b ? 1 : a == b ? 0 : NaN;
43773
+ return a < b ? -1 : a > b ? 1 : a === b ? 0 : NaN;
43473
43774
  }
43474
43775
 
43475
43776
  function getEdgeValue(edge) {
@@ -43593,7 +43894,11 @@ return /******/ (function(modules) { // webpackBootstrap
43593
43894
  /* 243 */
43594
43895
  /***/ function(module, exports, __webpack_require__) {
43595
43896
 
43596
-
43897
+ /**
43898
+ * @file Visual encoding for sankey view
43899
+ * @author Deqing Li(annong035@gmail.com)
43900
+ */
43901
+
43597
43902
 
43598
43903
  var VisualMapping = __webpack_require__(192);
43599
43904
 
@@ -43627,10 +43932,11 @@ return /******/ (function(modules) { // webpackBootstrap
43627
43932
  }
43628
43933
  });
43629
43934
 
43630
- }) ;
43935
+ });
43631
43936
  };
43632
43937
 
43633
43938
 
43939
+
43634
43940
  /***/ },
43635
43941
  /* 244 */
43636
43942
  /***/ function(module, exports, __webpack_require__) {
@@ -43692,8 +43998,8 @@ return /******/ (function(modules) { // webpackBootstrap
43692
43998
 
43693
43999
  hoverAnimation: true,
43694
44000
 
43695
- xAxisIndex: 0,
43696
- yAxisIndex: 0,
44001
+ // xAxisIndex: 0,
44002
+ // yAxisIndex: 0,
43697
44003
 
43698
44004
  layout: null, // 'horizontal' or 'vertical'
43699
44005
  boxWidth: [7, 50], // [min, max] can be percent of band width.
@@ -44427,8 +44733,8 @@ return /******/ (function(modules) { // webpackBootstrap
44427
44733
 
44428
44734
  hoverAnimation: true,
44429
44735
 
44430
- xAxisIndex: 0,
44431
- yAxisIndex: 0,
44736
+ // xAxisIndex: 0,
44737
+ // yAxisIndex: 0,
44432
44738
 
44433
44739
  layout: null, // 'horizontal' or 'vertical'
44434
44740
 
@@ -44799,14 +45105,14 @@ return /******/ (function(modules) { // webpackBootstrap
44799
45105
  },
44800
45106
 
44801
45107
  // Cartesian coordinate system
44802
- xAxisIndex: 0,
44803
- yAxisIndex: 0,
45108
+ // xAxisIndex: 0,
45109
+ // yAxisIndex: 0,
44804
45110
 
44805
45111
  // Polar coordinate system
44806
- polarIndex: 0,
45112
+ // polarIndex: 0,
44807
45113
 
44808
45114
  // Geo coordinate system
44809
- geoIndex: 0,
45115
+ // geoIndex: 0,
44810
45116
 
44811
45117
  // symbol: null, // 图形类型
44812
45118
  symbolSize: 10 // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2
@@ -45935,7 +46241,7 @@ return /******/ (function(modules) { // webpackBootstrap
45935
46241
  pts[1] = coordSys.dataToPoint(coords[1]);
45936
46242
 
45937
46243
  var curveness = itemModel.get('lineStyle.normal.curveness');
45938
- if (curveness > 0) {
46244
+ if (+curveness) {
45939
46245
  pts[2] = [
45940
46246
  (pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness,
45941
46247
  (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness
@@ -45984,8 +46290,8 @@ return /******/ (function(modules) { // webpackBootstrap
45984
46290
  z: 2,
45985
46291
 
45986
46292
  // Cartesian coordinate system
45987
- xAxisIndex: 0,
45988
- yAxisIndex: 0,
46293
+ // xAxisIndex: 0,
46294
+ // yAxisIndex: 0,
45989
46295
 
45990
46296
  // Geo coordinate system
45991
46297
  geoIndex: 0,
@@ -48680,6 +48986,7 @@ return /******/ (function(modules) { // webpackBootstrap
48680
48986
 
48681
48987
  var Polar = __webpack_require__(285);
48682
48988
  var numberUtil = __webpack_require__(7);
48989
+ var zrUtil = __webpack_require__(4);
48683
48990
 
48684
48991
  var axisHelper = __webpack_require__(114);
48685
48992
  var niceScaleExtent = axisHelper.niceScaleExtent;
@@ -48796,7 +49103,24 @@ return /******/ (function(modules) { // webpackBootstrap
48796
49103
  // Inject coordinateSystem to series
48797
49104
  ecModel.eachSeries(function (seriesModel) {
48798
49105
  if (seriesModel.get('coordinateSystem') === 'polar') {
48799
- seriesModel.coordinateSystem = polarList[seriesModel.get('polarIndex')];
49106
+ var polarModel = ecModel.queryComponents({
49107
+ mainType: 'polar',
49108
+ index: seriesModel.get('polarIndex'),
49109
+ id: seriesModel.get('polarId')
49110
+ })[0];
49111
+
49112
+ if (true) {
49113
+ if (!polarModel) {
49114
+ throw new Error(
49115
+ 'Polar "' + zrUtil.retrieve(
49116
+ seriesModel.get('polarIndex'),
49117
+ seriesModel.get('polarId'),
49118
+ 0
49119
+ ) + '" not found'
49120
+ );
49121
+ }
49122
+ }
49123
+ seriesModel.coordinateSystem = polarModel.coordinateSystem;
48800
49124
  }
48801
49125
  });
48802
49126
 
@@ -49145,16 +49469,21 @@ return /******/ (function(modules) { // webpackBootstrap
49145
49469
  * @return {module:echarts/coord/polar/AxisModel}
49146
49470
  */
49147
49471
  findAxisModel: function (axisType) {
49148
- var angleAxisModel;
49472
+ var foundAxisModel;
49149
49473
  var ecModel = this.ecModel;
49474
+
49150
49475
  ecModel.eachComponent(axisType, function (axisModel) {
49151
- if (ecModel.getComponent(
49152
- 'polar', axisModel.getShallow('polarIndex')
49153
- ) === this) {
49154
- angleAxisModel = axisModel;
49476
+ var polarModel = ecModel.queryComponents({
49477
+ mainType: 'polar',
49478
+ index: axisModel.getShallow('polarIndex'),
49479
+ id: axisModel.getShallow('polarId')
49480
+ })[0];
49481
+
49482
+ if(polarModel === this) {
49483
+ foundAxisModel = axisModel;
49155
49484
  }
49156
49485
  }, this);
49157
- return angleAxisModel;
49486
+ return foundAxisModel;
49158
49487
  },
49159
49488
 
49160
49489
  defaultOption: {
@@ -49193,7 +49522,8 @@ return /******/ (function(modules) { // webpackBootstrap
49193
49522
 
49194
49523
  var polarAxisDefaultExtendedOption = {
49195
49524
  angle: {
49196
- polarIndex: 0,
49525
+ // polarIndex: 0,
49526
+ // polarId: '',
49197
49527
 
49198
49528
  startAngle: 90,
49199
49529
 
@@ -49206,7 +49536,8 @@ return /******/ (function(modules) { // webpackBootstrap
49206
49536
  }
49207
49537
  },
49208
49538
  radius: {
49209
- polarIndex: 0,
49539
+ // polarIndex: 0,
49540
+ // polarId: '',
49210
49541
 
49211
49542
  splitNumber: 5
49212
49543
  }
@@ -49940,9 +50271,12 @@ return /******/ (function(modules) { // webpackBootstrap
49940
50271
 
49941
50272
  ecModel.eachSeries(function (seriesModel) {
49942
50273
  if (seriesModel.get('coordinateSystem') === 'singleAxis') {
49943
- var singleAxisIndex = seriesModel.get('singleAxisIndex') || 0;
49944
- var axisModel = ecModel.getComponent('singleAxis', singleAxisIndex);
49945
- seriesModel.coordinateSystem = axisModel.coordinateSystem;
50274
+ var singleAxisModel = ecModel.queryComponents({
50275
+ mainType: 'singleAxis',
50276
+ index: seriesModel.get('singleAxisIndex'),
50277
+ id: seriesModel.get('singleAxisId')
50278
+ })[0];
50279
+ seriesModel.coordinateSystem = singleAxisModel.coordinateSystem;
49946
50280
  }
49947
50281
  });
49948
50282
 
@@ -52380,16 +52714,16 @@ return /******/ (function(modules) { // webpackBootstrap
52380
52714
  __webpack_require__(317);
52381
52715
 
52382
52716
  __webpack_require__(318);
52383
- __webpack_require__(320);
52384
-
52385
52717
  __webpack_require__(321);
52718
+
52386
52719
  __webpack_require__(322);
52720
+ __webpack_require__(323);
52387
52721
 
52388
- __webpack_require__(324);
52389
52722
  __webpack_require__(325);
52723
+ __webpack_require__(326);
52390
52724
 
52391
- __webpack_require__(327);
52392
52725
  __webpack_require__(328);
52726
+ __webpack_require__(329);
52393
52727
 
52394
52728
 
52395
52729
 
@@ -52419,9 +52753,10 @@ return /******/ (function(modules) { // webpackBootstrap
52419
52753
  var env = __webpack_require__(2);
52420
52754
  var echarts = __webpack_require__(1);
52421
52755
  var modelUtil = __webpack_require__(5);
52422
- var AxisProxy = __webpack_require__(319);
52756
+ var helper = __webpack_require__(319);
52757
+ var AxisProxy = __webpack_require__(320);
52423
52758
  var each = zrUtil.each;
52424
- var eachAxisDim = modelUtil.eachAxisDim;
52759
+ var eachAxisDim = helper.eachAxisDim;
52425
52760
 
52426
52761
  var DataZoomModel = echarts.extendComponentModel({
52427
52762
 
@@ -52440,8 +52775,8 @@ return /******/ (function(modules) { // webpackBootstrap
52440
52775
  orient: null, // Default auto by axisIndex. Possible value: 'horizontal', 'vertical'.
52441
52776
  xAxisIndex: null, // Default the first horizontal category axis.
52442
52777
  yAxisIndex: null, // Default the first vertical category axis.
52443
- angleAxisIndex: null,
52444
- radiusAxisIndex: null,
52778
+
52779
+
52445
52780
  filterMode: 'filter', // Possible values: 'filter' or 'empty'.
52446
52781
  // 'filter': data items which are out of window will be removed.
52447
52782
  // This option is applicable when filtering outliers.
@@ -52669,7 +53004,29 @@ return /******/ (function(modules) { // webpackBootstrap
52669
53004
  if (this._isSeriesHasAllAxesTypeOf(seriesModel, 'value')) {
52670
53005
  eachAxisDim(function (dimNames) {
52671
53006
  var axisIndices = thisOption[dimNames.axisIndex];
53007
+
52672
53008
  var axisIndex = seriesModel.get(dimNames.axisIndex);
53009
+ var axisId = seriesModel.get(dimNames.axisId);
53010
+
53011
+ var axisModel = seriesModel.ecModel.queryComponents({
53012
+ mainType: dimNames.axis,
53013
+ index: axisIndex,
53014
+ id: axisId
53015
+ })[0];
53016
+
53017
+ if (true) {
53018
+ if (!axisModel) {
53019
+ throw new Error(
53020
+ dimNames.axis + ' "' + zrUtil.retrieve(
53021
+ axisIndex,
53022
+ axisId,
53023
+ 0
53024
+ ) + '" not found'
53025
+ );
53026
+ }
53027
+ }
53028
+ axisIndex = axisModel.componentIndex;
53029
+
52673
53030
  if (zrUtil.indexOf(axisIndices, axisIndex) < 0) {
52674
53031
  axisIndices.push(axisIndex);
52675
53032
  }
@@ -52873,6 +53230,134 @@ return /******/ (function(modules) { // webpackBootstrap
52873
53230
  /* 319 */
52874
53231
  /***/ function(module, exports, __webpack_require__) {
52875
53232
 
53233
+
53234
+ var formatUtil = __webpack_require__(6);
53235
+ var zrUtil = __webpack_require__(4);
53236
+
53237
+ var helper = {};
53238
+
53239
+ var AXIS_DIMS = ['x', 'y', 'z', 'radius', 'angle'];
53240
+
53241
+ /**
53242
+ * Create "each" method to iterate names.
53243
+ *
53244
+ * @pubilc
53245
+ * @param {Array.<string>} names
53246
+ * @param {Array.<string>=} attrs
53247
+ * @return {Function}
53248
+ */
53249
+ helper.createNameEach = function (names, attrs) {
53250
+ names = names.slice();
53251
+ var capitalNames = zrUtil.map(names, formatUtil.capitalFirst);
53252
+ attrs = (attrs || []).slice();
53253
+ var capitalAttrs = zrUtil.map(attrs, formatUtil.capitalFirst);
53254
+
53255
+ return function (callback, context) {
53256
+ zrUtil.each(names, function (name, index) {
53257
+ var nameObj = {name: name, capital: capitalNames[index]};
53258
+
53259
+ for (var j = 0; j < attrs.length; j++) {
53260
+ nameObj[attrs[j]] = name + capitalAttrs[j];
53261
+ }
53262
+
53263
+ callback.call(context, nameObj);
53264
+ });
53265
+ };
53266
+ };
53267
+
53268
+ /**
53269
+ * Iterate each dimension name.
53270
+ *
53271
+ * @public
53272
+ * @param {Function} callback The parameter is like:
53273
+ * {
53274
+ * name: 'angle',
53275
+ * capital: 'Angle',
53276
+ * axis: 'angleAxis',
53277
+ * axisIndex: 'angleAixs',
53278
+ * index: 'angleIndex'
53279
+ * }
53280
+ * @param {Object} context
53281
+ */
53282
+ helper.eachAxisDim = helper.createNameEach(AXIS_DIMS, ['axisIndex', 'axis', 'index', 'id']);
53283
+
53284
+ /**
53285
+ * If tow dataZoomModels has the same axis controlled, we say that they are 'linked'.
53286
+ * dataZoomModels and 'links' make up one or more graphics.
53287
+ * This function finds the graphic where the source dataZoomModel is in.
53288
+ *
53289
+ * @public
53290
+ * @param {Function} forEachNode Node iterator.
53291
+ * @param {Function} forEachEdgeType edgeType iterator
53292
+ * @param {Function} edgeIdGetter Giving node and edgeType, return an array of edge id.
53293
+ * @return {Function} Input: sourceNode, Output: Like {nodes: [], dims: {}}
53294
+ */
53295
+ helper.createLinkedNodesFinder = function (forEachNode, forEachEdgeType, edgeIdGetter) {
53296
+
53297
+ return function (sourceNode) {
53298
+ var result = {
53299
+ nodes: [],
53300
+ records: {} // key: edgeType.name, value: Object (key: edge id, value: boolean).
53301
+ };
53302
+
53303
+ forEachEdgeType(function (edgeType) {
53304
+ result.records[edgeType.name] = {};
53305
+ });
53306
+
53307
+ if (!sourceNode) {
53308
+ return result;
53309
+ }
53310
+
53311
+ absorb(sourceNode, result);
53312
+
53313
+ var existsLink;
53314
+ do {
53315
+ existsLink = false;
53316
+ forEachNode(processSingleNode);
53317
+ }
53318
+ while (existsLink);
53319
+
53320
+ function processSingleNode(node) {
53321
+ if (!isNodeAbsorded(node, result) && isLinked(node, result)) {
53322
+ absorb(node, result);
53323
+ existsLink = true;
53324
+ }
53325
+ }
53326
+
53327
+ return result;
53328
+ };
53329
+
53330
+ function isNodeAbsorded(node, result) {
53331
+ return zrUtil.indexOf(result.nodes, node) >= 0;
53332
+ }
53333
+
53334
+ function isLinked(node, result) {
53335
+ var hasLink = false;
53336
+ forEachEdgeType(function (edgeType) {
53337
+ zrUtil.each(edgeIdGetter(node, edgeType) || [], function (edgeId) {
53338
+ result.records[edgeType.name][edgeId] && (hasLink = true);
53339
+ });
53340
+ });
53341
+ return hasLink;
53342
+ }
53343
+
53344
+ function absorb(node, result) {
53345
+ result.nodes.push(node);
53346
+ forEachEdgeType(function (edgeType) {
53347
+ zrUtil.each(edgeIdGetter(node, edgeType) || [], function (edgeId) {
53348
+ result.records[edgeType.name][edgeId] = true;
53349
+ });
53350
+ });
53351
+ }
53352
+ };
53353
+
53354
+ module.exports = helper;
53355
+
53356
+
53357
+ /***/ },
53358
+ /* 320 */
53359
+ /***/ function(module, exports, __webpack_require__) {
53360
+
52876
53361
  /**
52877
53362
  * @file Axis operator
52878
53363
  */
@@ -52979,10 +53464,16 @@ return /******/ (function(modules) { // webpackBootstrap
52979
53464
  */
52980
53465
  getTargetSeriesModels: function () {
52981
53466
  var seriesModels = [];
53467
+ var ecModel = this.ecModel;
52982
53468
 
52983
- this.ecModel.eachSeries(function (seriesModel) {
52984
- // Legacy problem: some one wrote xAxisIndex as [0] following the wrong way in example.
52985
- if (this._axisIndex === +seriesModel.get(this._dimName + 'AxisIndex')) {
53469
+ ecModel.eachSeries(function (seriesModel) {
53470
+ var dimName = this._dimName;
53471
+ var axisModel = ecModel.queryComponents({
53472
+ mainType: dimName + 'Axis',
53473
+ index: seriesModel.get(dimName + 'AxisIndex'),
53474
+ id: seriesModel.get(dimName + 'AxisId')
53475
+ })[0];
53476
+ if (this._axisIndex === (axisModel && axisModel.componentIndex)) {
52986
53477
  seriesModels.push(seriesModel);
52987
53478
  }
52988
53479
  }, this);
@@ -53233,7 +53724,7 @@ return /******/ (function(modules) { // webpackBootstrap
53233
53724
 
53234
53725
 
53235
53726
  /***/ },
53236
- /* 320 */
53727
+ /* 321 */
53237
53728
  /***/ function(module, exports, __webpack_require__) {
53238
53729
 
53239
53730
 
@@ -53279,17 +53770,22 @@ return /******/ (function(modules) { // webpackBootstrap
53279
53770
  var axisModel = ecModel.getComponent(dimNames.axis, axisIndex);
53280
53771
  if (axisModel) {
53281
53772
  axisModels.push(axisModel);
53282
-
53283
- var gridIndex = axisModel.get('gridIndex');
53284
- var polarIndex = axisModel.get('polarIndex');
53285
-
53286
- if (gridIndex != null) {
53287
- var coordModel = ecModel.getComponent('grid', gridIndex);
53288
- save(coordModel, axisModel, cartesians, gridIndex);
53773
+ var coordSysName;
53774
+ if (dimNames.axis === 'xAxis' || dimNames.axis === 'yAxis') {
53775
+ coordSysName = 'grid';
53289
53776
  }
53290
- else if (polarIndex != null) {
53291
- var coordModel = ecModel.getComponent('polar', polarIndex);
53292
- save(coordModel, axisModel, polars, polarIndex);
53777
+ else {
53778
+ // Polar
53779
+ coordSysName = 'polar';
53780
+ }
53781
+ var coordModel = ecModel.queryComponents({
53782
+ mainType: coordSysName,
53783
+ index: axisModel.get(coordSysName + 'Index'),
53784
+ id: axisModel.get(coordSysName + 'Id')
53785
+ })[0];
53786
+
53787
+ if (coordModel != null) {
53788
+ save(coordModel, axisModel, coordSysName === 'grid' ? cartesians : polars, coordModel.componentIndex);
53293
53789
  }
53294
53790
  }
53295
53791
  }, this);
@@ -53322,7 +53818,7 @@ return /******/ (function(modules) { // webpackBootstrap
53322
53818
 
53323
53819
 
53324
53820
  /***/ },
53325
- /* 321 */
53821
+ /* 322 */
53326
53822
  /***/ function(module, exports, __webpack_require__) {
53327
53823
 
53328
53824
  /**
@@ -53401,7 +53897,7 @@ return /******/ (function(modules) { // webpackBootstrap
53401
53897
 
53402
53898
 
53403
53899
  /***/ },
53404
- /* 322 */
53900
+ /* 323 */
53405
53901
  /***/ function(module, exports, __webpack_require__) {
53406
53902
 
53407
53903
 
@@ -53409,12 +53905,12 @@ return /******/ (function(modules) { // webpackBootstrap
53409
53905
  var zrUtil = __webpack_require__(4);
53410
53906
  var graphic = __webpack_require__(43);
53411
53907
  var throttle = __webpack_require__(308);
53412
- var DataZoomView = __webpack_require__(320);
53908
+ var DataZoomView = __webpack_require__(321);
53413
53909
  var Rect = graphic.Rect;
53414
53910
  var numberUtil = __webpack_require__(7);
53415
53911
  var linearMap = numberUtil.linearMap;
53416
53912
  var layout = __webpack_require__(21);
53417
- var sliderMove = __webpack_require__(323);
53913
+ var sliderMove = __webpack_require__(324);
53418
53914
  var asc = numberUtil.asc;
53419
53915
  var bind = zrUtil.bind;
53420
53916
  // var mathMax = Math.max;
@@ -54140,7 +54636,7 @@ return /******/ (function(modules) { // webpackBootstrap
54140
54636
 
54141
54637
 
54142
54638
  /***/ },
54143
- /* 323 */
54639
+ /* 324 */
54144
54640
  /***/ function(module, exports) {
54145
54641
 
54146
54642
 
@@ -54199,7 +54695,7 @@ return /******/ (function(modules) { // webpackBootstrap
54199
54695
 
54200
54696
 
54201
54697
  /***/ },
54202
- /* 324 */
54698
+ /* 325 */
54203
54699
  /***/ function(module, exports, __webpack_require__) {
54204
54700
 
54205
54701
  /**
@@ -54221,15 +54717,15 @@ return /******/ (function(modules) { // webpackBootstrap
54221
54717
 
54222
54718
 
54223
54719
  /***/ },
54224
- /* 325 */
54720
+ /* 326 */
54225
54721
  /***/ function(module, exports, __webpack_require__) {
54226
54722
 
54227
54723
 
54228
54724
 
54229
- var DataZoomView = __webpack_require__(320);
54725
+ var DataZoomView = __webpack_require__(321);
54230
54726
  var zrUtil = __webpack_require__(4);
54231
- var sliderMove = __webpack_require__(323);
54232
- var roams = __webpack_require__(326);
54727
+ var sliderMove = __webpack_require__(324);
54728
+ var roams = __webpack_require__(327);
54233
54729
  var bind = zrUtil.bind;
54234
54730
 
54235
54731
  var InsideZoomView = DataZoomView.extend({
@@ -54412,7 +54908,7 @@ return /******/ (function(modules) { // webpackBootstrap
54412
54908
 
54413
54909
 
54414
54910
  /***/ },
54415
- /* 326 */
54911
+ /* 327 */
54416
54912
  /***/ function(module, exports, __webpack_require__) {
54417
54913
 
54418
54914
  /**
@@ -54609,7 +55105,7 @@ return /******/ (function(modules) { // webpackBootstrap
54609
55105
 
54610
55106
 
54611
55107
  /***/ },
54612
- /* 327 */
55108
+ /* 328 */
54613
55109
  /***/ function(module, exports, __webpack_require__) {
54614
55110
 
54615
55111
  /**
@@ -54672,7 +55168,7 @@ return /******/ (function(modules) { // webpackBootstrap
54672
55168
 
54673
55169
 
54674
55170
  /***/ },
54675
- /* 328 */
55171
+ /* 329 */
54676
55172
  /***/ function(module, exports, __webpack_require__) {
54677
55173
 
54678
55174
  /**
@@ -54681,15 +55177,15 @@ return /******/ (function(modules) { // webpackBootstrap
54681
55177
 
54682
55178
 
54683
55179
  var zrUtil = __webpack_require__(4);
54684
- var modelUtil = __webpack_require__(5);
55180
+ var helper = __webpack_require__(319);
54685
55181
  var echarts = __webpack_require__(1);
54686
55182
 
54687
55183
 
54688
55184
  echarts.registerAction('dataZoom', function (payload, ecModel) {
54689
55185
 
54690
- var linkedNodesFinder = modelUtil.createLinkedNodesFinder(
55186
+ var linkedNodesFinder = helper.createLinkedNodesFinder(
54691
55187
  zrUtil.bind(ecModel.eachComponent, ecModel, 'dataZoom'),
54692
- modelUtil.eachAxisDim,
55188
+ helper.eachAxisDim,
54693
55189
  function (model, dimNames) {
54694
55190
  return model.get(dimNames.axisIndex);
54695
55191
  }
@@ -54720,7 +55216,7 @@ return /******/ (function(modules) { // webpackBootstrap
54720
55216
 
54721
55217
 
54722
55218
  /***/ },
54723
- /* 329 */
55219
+ /* 330 */
54724
55220
  /***/ function(module, exports, __webpack_require__) {
54725
55221
 
54726
55222
  /**
@@ -54728,13 +55224,13 @@ return /******/ (function(modules) { // webpackBootstrap
54728
55224
  */
54729
55225
 
54730
55226
 
54731
- __webpack_require__(330);
54732
- __webpack_require__(341);
55227
+ __webpack_require__(331);
55228
+ __webpack_require__(342);
54733
55229
 
54734
55230
 
54735
55231
 
54736
55232
  /***/ },
54737
- /* 330 */
55233
+ /* 331 */
54738
55234
  /***/ function(module, exports, __webpack_require__) {
54739
55235
 
54740
55236
  /**
@@ -54743,19 +55239,19 @@ return /******/ (function(modules) { // webpackBootstrap
54743
55239
 
54744
55240
 
54745
55241
  __webpack_require__(1).registerPreprocessor(
54746
- __webpack_require__(331)
55242
+ __webpack_require__(332)
54747
55243
  );
54748
55244
 
54749
- __webpack_require__(332);
54750
55245
  __webpack_require__(333);
54751
55246
  __webpack_require__(334);
54752
- __webpack_require__(337);
54753
- __webpack_require__(340);
55247
+ __webpack_require__(335);
55248
+ __webpack_require__(338);
55249
+ __webpack_require__(341);
54754
55250
 
54755
55251
 
54756
55252
 
54757
55253
  /***/ },
54758
- /* 331 */
55254
+ /* 332 */
54759
55255
  /***/ function(module, exports, __webpack_require__) {
54760
55256
 
54761
55257
  /**
@@ -54807,7 +55303,7 @@ return /******/ (function(modules) { // webpackBootstrap
54807
55303
 
54808
55304
 
54809
55305
  /***/ },
54810
- /* 332 */
55306
+ /* 333 */
54811
55307
  /***/ function(module, exports, __webpack_require__) {
54812
55308
 
54813
55309
 
@@ -54831,7 +55327,7 @@ return /******/ (function(modules) { // webpackBootstrap
54831
55327
 
54832
55328
 
54833
55329
  /***/ },
54834
- /* 333 */
55330
+ /* 334 */
54835
55331
  /***/ function(module, exports, __webpack_require__) {
54836
55332
 
54837
55333
  /**
@@ -54916,7 +55412,7 @@ return /******/ (function(modules) { // webpackBootstrap
54916
55412
 
54917
55413
 
54918
55414
  /***/ },
54919
- /* 334 */
55415
+ /* 335 */
54920
55416
  /***/ function(module, exports, __webpack_require__) {
54921
55417
 
54922
55418
  /**
@@ -54924,7 +55420,7 @@ return /******/ (function(modules) { // webpackBootstrap
54924
55420
  */
54925
55421
 
54926
55422
 
54927
- var VisualMapModel = __webpack_require__(335);
55423
+ var VisualMapModel = __webpack_require__(336);
54928
55424
  var zrUtil = __webpack_require__(4);
54929
55425
  var numberUtil = __webpack_require__(7);
54930
55426
 
@@ -55149,7 +55645,7 @@ return /******/ (function(modules) { // webpackBootstrap
55149
55645
 
55150
55646
 
55151
55647
  /***/ },
55152
- /* 335 */
55648
+ /* 336 */
55153
55649
  /***/ function(module, exports, __webpack_require__) {
55154
55650
 
55155
55651
  /**
@@ -55160,7 +55656,7 @@ return /******/ (function(modules) { // webpackBootstrap
55160
55656
  var echarts = __webpack_require__(1);
55161
55657
  var zrUtil = __webpack_require__(4);
55162
55658
  var env = __webpack_require__(2);
55163
- var visualDefault = __webpack_require__(336);
55659
+ var visualDefault = __webpack_require__(337);
55164
55660
  var VisualMapping = __webpack_require__(192);
55165
55661
  var visualSolution = __webpack_require__(306);
55166
55662
  var mapVisual = VisualMapping.mapVisual;
@@ -55659,7 +56155,7 @@ return /******/ (function(modules) { // webpackBootstrap
55659
56155
 
55660
56156
 
55661
56157
  /***/ },
55662
- /* 336 */
56158
+ /* 337 */
55663
56159
  /***/ function(module, exports, __webpack_require__) {
55664
56160
 
55665
56161
  /**
@@ -55735,18 +56231,18 @@ return /******/ (function(modules) { // webpackBootstrap
55735
56231
 
55736
56232
 
55737
56233
  /***/ },
55738
- /* 337 */
56234
+ /* 338 */
55739
56235
  /***/ function(module, exports, __webpack_require__) {
55740
56236
 
55741
56237
 
55742
56238
 
55743
- var VisualMapView = __webpack_require__(338);
56239
+ var VisualMapView = __webpack_require__(339);
55744
56240
  var graphic = __webpack_require__(43);
55745
56241
  var zrUtil = __webpack_require__(4);
55746
56242
  var numberUtil = __webpack_require__(7);
55747
- var sliderMove = __webpack_require__(323);
56243
+ var sliderMove = __webpack_require__(324);
55748
56244
  var LinearGradient = __webpack_require__(79);
55749
- var helper = __webpack_require__(339);
56245
+ var helper = __webpack_require__(340);
55750
56246
  var modelUtil = __webpack_require__(5);
55751
56247
 
55752
56248
  var linearMap = numberUtil.linearMap;
@@ -56158,7 +56654,7 @@ return /******/ (function(modules) { // webpackBootstrap
56158
56654
  var barPoints = this._createBarPoints(handleEnds, symbolSizes);
56159
56655
 
56160
56656
  return {
56161
- barColor: new LinearGradient(0, 0, 1, 1, colorStops),
56657
+ barColor: new LinearGradient(0, 0, 0, 1, colorStops),
56162
56658
  barPoints: barPoints,
56163
56659
  handlesColor: [
56164
56660
  colorStops[0].color,
@@ -56568,7 +57064,7 @@ return /******/ (function(modules) { // webpackBootstrap
56568
57064
 
56569
57065
 
56570
57066
  /***/ },
56571
- /* 338 */
57067
+ /* 339 */
56572
57068
  /***/ function(module, exports, __webpack_require__) {
56573
57069
 
56574
57070
 
@@ -56728,7 +57224,7 @@ return /******/ (function(modules) { // webpackBootstrap
56728
57224
 
56729
57225
 
56730
57226
  /***/ },
56731
- /* 339 */
57227
+ /* 340 */
56732
57228
  /***/ function(module, exports, __webpack_require__) {
56733
57229
 
56734
57230
 
@@ -56785,7 +57281,7 @@ return /******/ (function(modules) { // webpackBootstrap
56785
57281
 
56786
57282
 
56787
57283
  /***/ },
56788
- /* 340 */
57284
+ /* 341 */
56789
57285
  /***/ function(module, exports, __webpack_require__) {
56790
57286
 
56791
57287
  /**
@@ -56813,7 +57309,7 @@ return /******/ (function(modules) { // webpackBootstrap
56813
57309
 
56814
57310
 
56815
57311
  /***/ },
56816
- /* 341 */
57312
+ /* 342 */
56817
57313
  /***/ function(module, exports, __webpack_require__) {
56818
57314
 
56819
57315
  /**
@@ -56822,24 +57318,24 @@ return /******/ (function(modules) { // webpackBootstrap
56822
57318
 
56823
57319
 
56824
57320
  __webpack_require__(1).registerPreprocessor(
56825
- __webpack_require__(331)
57321
+ __webpack_require__(332)
56826
57322
  );
56827
57323
 
56828
- __webpack_require__(332);
56829
57324
  __webpack_require__(333);
56830
- __webpack_require__(342);
57325
+ __webpack_require__(334);
56831
57326
  __webpack_require__(343);
56832
- __webpack_require__(340);
57327
+ __webpack_require__(344);
57328
+ __webpack_require__(341);
56833
57329
 
56834
57330
 
56835
57331
 
56836
57332
  /***/ },
56837
- /* 342 */
57333
+ /* 343 */
56838
57334
  /***/ function(module, exports, __webpack_require__) {
56839
57335
 
56840
57336
 
56841
57337
 
56842
- var VisualMapModel = __webpack_require__(335);
57338
+ var VisualMapModel = __webpack_require__(336);
56843
57339
  var zrUtil = __webpack_require__(4);
56844
57340
  var VisualMapping = __webpack_require__(192);
56845
57341
 
@@ -57288,17 +57784,17 @@ return /******/ (function(modules) { // webpackBootstrap
57288
57784
 
57289
57785
 
57290
57786
  /***/ },
57291
- /* 343 */
57787
+ /* 344 */
57292
57788
  /***/ function(module, exports, __webpack_require__) {
57293
57789
 
57294
57790
 
57295
57791
 
57296
- var VisualMapView = __webpack_require__(338);
57792
+ var VisualMapView = __webpack_require__(339);
57297
57793
  var zrUtil = __webpack_require__(4);
57298
57794
  var graphic = __webpack_require__(43);
57299
57795
  var symbolCreators = __webpack_require__(106);
57300
57796
  var layout = __webpack_require__(21);
57301
- var helper = __webpack_require__(339);
57797
+ var helper = __webpack_require__(340);
57302
57798
 
57303
57799
  var PiecewiseVisualMapView = VisualMapView.extend({
57304
57800
 
@@ -57511,14 +58007,14 @@ return /******/ (function(modules) { // webpackBootstrap
57511
58007
 
57512
58008
 
57513
58009
  /***/ },
57514
- /* 344 */
58010
+ /* 345 */
57515
58011
  /***/ function(module, exports, __webpack_require__) {
57516
58012
 
57517
58013
  // HINT Markpoint can't be used too much
57518
58014
 
57519
58015
 
57520
- __webpack_require__(345);
57521
- __webpack_require__(347);
58016
+ __webpack_require__(346);
58017
+ __webpack_require__(348);
57522
58018
 
57523
58019
  __webpack_require__(1).registerPreprocessor(function (opt) {
57524
58020
  // Make sure markPoint component is enabled
@@ -57527,12 +58023,12 @@ return /******/ (function(modules) { // webpackBootstrap
57527
58023
 
57528
58024
 
57529
58025
  /***/ },
57530
- /* 345 */
58026
+ /* 346 */
57531
58027
  /***/ function(module, exports, __webpack_require__) {
57532
58028
 
57533
58029
 
57534
58030
 
57535
- module.exports = __webpack_require__(346).extend({
58031
+ module.exports = __webpack_require__(347).extend({
57536
58032
 
57537
58033
  type: 'markPoint',
57538
58034
 
@@ -57565,7 +58061,7 @@ return /******/ (function(modules) { // webpackBootstrap
57565
58061
 
57566
58062
 
57567
58063
  /***/ },
57568
- /* 346 */
58064
+ /* 347 */
57569
58065
  /***/ function(module, exports, __webpack_require__) {
57570
58066
 
57571
58067
 
@@ -57700,7 +58196,7 @@ return /******/ (function(modules) { // webpackBootstrap
57700
58196
 
57701
58197
 
57702
58198
  /***/ },
57703
- /* 347 */
58199
+ /* 348 */
57704
58200
  /***/ function(module, exports, __webpack_require__) {
57705
58201
 
57706
58202
 
@@ -57711,7 +58207,7 @@ return /******/ (function(modules) { // webpackBootstrap
57711
58207
 
57712
58208
  var List = __webpack_require__(97);
57713
58209
 
57714
- var markerHelper = __webpack_require__(348);
58210
+ var markerHelper = __webpack_require__(349);
57715
58211
 
57716
58212
  function updateMarkerLayout(mpData, seriesModel, api) {
57717
58213
  var coordSys = seriesModel.coordinateSystem;
@@ -57749,7 +58245,7 @@ return /******/ (function(modules) { // webpackBootstrap
57749
58245
  });
57750
58246
  }
57751
58247
 
57752
- __webpack_require__(349).extend({
58248
+ __webpack_require__(350).extend({
57753
58249
 
57754
58250
  type: 'markPoint',
57755
58251
 
@@ -57861,7 +58357,7 @@ return /******/ (function(modules) { // webpackBootstrap
57861
58357
 
57862
58358
 
57863
58359
  /***/ },
57864
- /* 348 */
58360
+ /* 349 */
57865
58361
  /***/ function(module, exports, __webpack_require__) {
57866
58362
 
57867
58363
 
@@ -58065,7 +58561,7 @@ return /******/ (function(modules) { // webpackBootstrap
58065
58561
 
58066
58562
 
58067
58563
  /***/ },
58068
- /* 349 */
58564
+ /* 350 */
58069
58565
  /***/ function(module, exports, __webpack_require__) {
58070
58566
 
58071
58567
 
@@ -58107,13 +58603,13 @@ return /******/ (function(modules) { // webpackBootstrap
58107
58603
 
58108
58604
 
58109
58605
  /***/ },
58110
- /* 350 */
58606
+ /* 351 */
58111
58607
  /***/ function(module, exports, __webpack_require__) {
58112
58608
 
58113
58609
 
58114
58610
 
58115
- __webpack_require__(351);
58116
58611
  __webpack_require__(352);
58612
+ __webpack_require__(353);
58117
58613
 
58118
58614
  __webpack_require__(1).registerPreprocessor(function (opt) {
58119
58615
  // Make sure markLine component is enabled
@@ -58122,12 +58618,12 @@ return /******/ (function(modules) { // webpackBootstrap
58122
58618
 
58123
58619
 
58124
58620
  /***/ },
58125
- /* 351 */
58621
+ /* 352 */
58126
58622
  /***/ function(module, exports, __webpack_require__) {
58127
58623
 
58128
58624
 
58129
58625
 
58130
- module.exports = __webpack_require__(346).extend({
58626
+ module.exports = __webpack_require__(347).extend({
58131
58627
 
58132
58628
  type: 'markLine',
58133
58629
 
@@ -58167,7 +58663,7 @@ return /******/ (function(modules) { // webpackBootstrap
58167
58663
 
58168
58664
 
58169
58665
  /***/ },
58170
- /* 352 */
58666
+ /* 353 */
58171
58667
  /***/ function(module, exports, __webpack_require__) {
58172
58668
 
58173
58669
 
@@ -58176,7 +58672,7 @@ return /******/ (function(modules) { // webpackBootstrap
58176
58672
  var List = __webpack_require__(97);
58177
58673
  var numberUtil = __webpack_require__(7);
58178
58674
 
58179
- var markerHelper = __webpack_require__(348);
58675
+ var markerHelper = __webpack_require__(349);
58180
58676
 
58181
58677
  var LineDraw = __webpack_require__(199);
58182
58678
 
@@ -58348,7 +58844,7 @@ return /******/ (function(modules) { // webpackBootstrap
58348
58844
  data.setItemLayout(idx, point);
58349
58845
  }
58350
58846
 
58351
- __webpack_require__(349).extend({
58847
+ __webpack_require__(350).extend({
58352
58848
 
58353
58849
  type: 'markLine',
58354
58850
 
@@ -58527,13 +59023,13 @@ return /******/ (function(modules) { // webpackBootstrap
58527
59023
 
58528
59024
 
58529
59025
  /***/ },
58530
- /* 353 */
59026
+ /* 354 */
58531
59027
  /***/ function(module, exports, __webpack_require__) {
58532
59028
 
58533
59029
 
58534
59030
 
58535
- __webpack_require__(354);
58536
59031
  __webpack_require__(355);
59032
+ __webpack_require__(356);
58537
59033
 
58538
59034
  __webpack_require__(1).registerPreprocessor(function (opt) {
58539
59035
  // Make sure markArea component is enabled
@@ -58542,12 +59038,12 @@ return /******/ (function(modules) { // webpackBootstrap
58542
59038
 
58543
59039
 
58544
59040
  /***/ },
58545
- /* 354 */
59041
+ /* 355 */
58546
59042
  /***/ function(module, exports, __webpack_require__) {
58547
59043
 
58548
59044
 
58549
59045
 
58550
- module.exports = __webpack_require__(346).extend({
59046
+ module.exports = __webpack_require__(347).extend({
58551
59047
 
58552
59048
  type: 'markArea',
58553
59049
 
@@ -58583,7 +59079,7 @@ return /******/ (function(modules) { // webpackBootstrap
58583
59079
 
58584
59080
 
58585
59081
  /***/ },
58586
- /* 355 */
59082
+ /* 356 */
58587
59083
  /***/ function(module, exports, __webpack_require__) {
58588
59084
 
58589
59085
  // TODO Better on polar
@@ -58595,7 +59091,7 @@ return /******/ (function(modules) { // webpackBootstrap
58595
59091
  var graphic = __webpack_require__(43);
58596
59092
  var colorUtil = __webpack_require__(39);
58597
59093
 
58598
- var markerHelper = __webpack_require__(348);
59094
+ var markerHelper = __webpack_require__(349);
58599
59095
 
58600
59096
  var markAreaTransform = function (seriesModel, coordSys, maModel, item) {
58601
59097
  var lt = markerHelper.dataTransform(seriesModel, item[0]);
@@ -58715,7 +59211,7 @@ return /******/ (function(modules) { // webpackBootstrap
58715
59211
 
58716
59212
  var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];
58717
59213
 
58718
- __webpack_require__(349).extend({
59214
+ __webpack_require__(350).extend({
58719
59215
 
58720
59216
  type: 'markArea',
58721
59217
 
@@ -58894,7 +59390,7 @@ return /******/ (function(modules) { // webpackBootstrap
58894
59390
 
58895
59391
 
58896
59392
  /***/ },
58897
- /* 356 */
59393
+ /* 357 */
58898
59394
  /***/ function(module, exports, __webpack_require__) {
58899
59395
 
58900
59396
  /**
@@ -58904,17 +59400,17 @@ return /******/ (function(modules) { // webpackBootstrap
58904
59400
 
58905
59401
  var echarts = __webpack_require__(1);
58906
59402
 
58907
- echarts.registerPreprocessor(__webpack_require__(357));
59403
+ echarts.registerPreprocessor(__webpack_require__(358));
58908
59404
 
58909
- __webpack_require__(358);
58910
59405
  __webpack_require__(359);
58911
59406
  __webpack_require__(360);
58912
- __webpack_require__(362);
59407
+ __webpack_require__(361);
59408
+ __webpack_require__(363);
58913
59409
 
58914
59410
 
58915
59411
 
58916
59412
  /***/ },
58917
- /* 357 */
59413
+ /* 358 */
58918
59414
  /***/ function(module, exports, __webpack_require__) {
58919
59415
 
58920
59416
  /**
@@ -59005,7 +59501,7 @@ return /******/ (function(modules) { // webpackBootstrap
59005
59501
 
59006
59502
 
59007
59503
  /***/ },
59008
- /* 358 */
59504
+ /* 359 */
59009
59505
  /***/ function(module, exports, __webpack_require__) {
59010
59506
 
59011
59507
 
@@ -59018,7 +59514,7 @@ return /******/ (function(modules) { // webpackBootstrap
59018
59514
 
59019
59515
 
59020
59516
  /***/ },
59021
- /* 359 */
59517
+ /* 360 */
59022
59518
  /***/ function(module, exports, __webpack_require__) {
59023
59519
 
59024
59520
  /**
@@ -59062,7 +59558,7 @@ return /******/ (function(modules) { // webpackBootstrap
59062
59558
 
59063
59559
 
59064
59560
  /***/ },
59065
- /* 360 */
59561
+ /* 361 */
59066
59562
  /***/ function(module, exports, __webpack_require__) {
59067
59563
 
59068
59564
  /**
@@ -59070,7 +59566,7 @@ return /******/ (function(modules) { // webpackBootstrap
59070
59566
  */
59071
59567
 
59072
59568
 
59073
- var TimelineModel = __webpack_require__(361);
59569
+ var TimelineModel = __webpack_require__(362);
59074
59570
  var zrUtil = __webpack_require__(4);
59075
59571
  var modelUtil = __webpack_require__(5);
59076
59572
 
@@ -59178,7 +59674,7 @@ return /******/ (function(modules) { // webpackBootstrap
59178
59674
 
59179
59675
 
59180
59676
  /***/ },
59181
- /* 361 */
59677
+ /* 362 */
59182
59678
  /***/ function(module, exports, __webpack_require__) {
59183
59679
 
59184
59680
  /**
@@ -59380,7 +59876,7 @@ return /******/ (function(modules) { // webpackBootstrap
59380
59876
 
59381
59877
 
59382
59878
  /***/ },
59383
- /* 362 */
59879
+ /* 363 */
59384
59880
  /***/ function(module, exports, __webpack_require__) {
59385
59881
 
59386
59882
  /**
@@ -59391,8 +59887,8 @@ return /******/ (function(modules) { // webpackBootstrap
59391
59887
  var zrUtil = __webpack_require__(4);
59392
59888
  var graphic = __webpack_require__(43);
59393
59889
  var layout = __webpack_require__(21);
59394
- var TimelineView = __webpack_require__(363);
59395
- var TimelineAxis = __webpack_require__(364);
59890
+ var TimelineView = __webpack_require__(364);
59891
+ var TimelineAxis = __webpack_require__(365);
59396
59892
  var symbolUtil = __webpack_require__(106);
59397
59893
  var axisHelper = __webpack_require__(114);
59398
59894
  var BoundingRect = __webpack_require__(9);
@@ -60073,7 +60569,7 @@ return /******/ (function(modules) { // webpackBootstrap
60073
60569
 
60074
60570
 
60075
60571
  /***/ },
60076
- /* 363 */
60572
+ /* 364 */
60077
60573
  /***/ function(module, exports, __webpack_require__) {
60078
60574
 
60079
60575
  /**
@@ -60093,7 +60589,7 @@ return /******/ (function(modules) { // webpackBootstrap
60093
60589
 
60094
60590
 
60095
60591
  /***/ },
60096
- /* 364 */
60592
+ /* 365 */
60097
60593
  /***/ function(module, exports, __webpack_require__) {
60098
60594
 
60099
60595
 
@@ -60194,23 +60690,23 @@ return /******/ (function(modules) { // webpackBootstrap
60194
60690
 
60195
60691
 
60196
60692
  /***/ },
60197
- /* 365 */
60693
+ /* 366 */
60198
60694
  /***/ function(module, exports, __webpack_require__) {
60199
60695
 
60200
60696
 
60201
60697
 
60202
- __webpack_require__(366);
60203
60698
  __webpack_require__(367);
60699
+ __webpack_require__(368);
60204
60700
 
60205
- __webpack_require__(369);
60206
60701
  __webpack_require__(370);
60207
60702
  __webpack_require__(371);
60208
60703
  __webpack_require__(372);
60209
- __webpack_require__(377);
60704
+ __webpack_require__(373);
60705
+ __webpack_require__(378);
60210
60706
 
60211
60707
 
60212
60708
  /***/ },
60213
- /* 366 */
60709
+ /* 367 */
60214
60710
  /***/ function(module, exports, __webpack_require__) {
60215
60711
 
60216
60712
 
@@ -60286,7 +60782,7 @@ return /******/ (function(modules) { // webpackBootstrap
60286
60782
 
60287
60783
 
60288
60784
  /***/ },
60289
- /* 367 */
60785
+ /* 368 */
60290
60786
  /***/ function(module, exports, __webpack_require__) {
60291
60787
 
60292
60788
  /* WEBPACK VAR INJECTION */(function(process) {
@@ -60536,10 +61032,10 @@ return /******/ (function(modules) { // webpackBootstrap
60536
61032
  }
60537
61033
 
60538
61034
 
60539
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(368)))
61035
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(369)))
60540
61036
 
60541
61037
  /***/ },
60542
- /* 368 */
61038
+ /* 369 */
60543
61039
  /***/ function(module, exports) {
60544
61040
 
60545
61041
  // shim for using process in browser
@@ -60664,7 +61160,7 @@ return /******/ (function(modules) { // webpackBootstrap
60664
61160
 
60665
61161
 
60666
61162
  /***/ },
60667
- /* 369 */
61163
+ /* 370 */
60668
61164
  /***/ function(module, exports, __webpack_require__) {
60669
61165
 
60670
61166
 
@@ -60736,7 +61232,7 @@ return /******/ (function(modules) { // webpackBootstrap
60736
61232
 
60737
61233
 
60738
61234
  /***/ },
60739
- /* 370 */
61235
+ /* 371 */
60740
61236
  /***/ function(module, exports, __webpack_require__) {
60741
61237
 
60742
61238
  'use strict';
@@ -60859,13 +61355,19 @@ return /******/ (function(modules) { // webpackBootstrap
60859
61355
  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];
60860
61356
  if (categoryAxis) {
60861
61357
  var axisDim = categoryAxis.dim;
60862
- var axisIndex = seriesModel.get(axisDim + 'AxisIndex');
60863
- var axisKey = axisDim + 'Axis';
60864
- newOption[axisKey] = newOption[axisKey] || [];
61358
+ var axisType = axisDim + 'Axis';
61359
+ var axisModel = ecModel.queryComponents({
61360
+ mainType: axisType,
61361
+ index: seriesModel.get(name + 'Index'),
61362
+ id: seriesModel.get(name + 'Id')
61363
+ })[0];
61364
+ var axisIndex = axisModel.componentIndex;
61365
+
61366
+ newOption[axisType] = newOption[axisType] || [];
60865
61367
  for (var i = 0; i <= axisIndex; i++) {
60866
- newOption[axisKey][axisIndex] = newOption[axisKey][axisIndex] || {};
61368
+ newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};
60867
61369
  }
60868
- newOption[axisKey][axisIndex].boundaryGap = type === 'bar' ? true : false;
61370
+ newOption[axisType][axisIndex].boundaryGap = type === 'bar' ? true : false;
60869
61371
  }
60870
61372
  }
60871
61373
  };
@@ -60910,7 +61412,7 @@ return /******/ (function(modules) { // webpackBootstrap
60910
61412
 
60911
61413
 
60912
61414
  /***/ },
60913
- /* 371 */
61415
+ /* 372 */
60914
61416
  /***/ function(module, exports, __webpack_require__) {
60915
61417
 
60916
61418
  /**
@@ -61393,7 +61895,7 @@ return /******/ (function(modules) { // webpackBootstrap
61393
61895
 
61394
61896
 
61395
61897
  /***/ },
61396
- /* 372 */
61898
+ /* 373 */
61397
61899
  /***/ function(module, exports, __webpack_require__) {
61398
61900
 
61399
61901
  'use strict';
@@ -61402,12 +61904,12 @@ return /******/ (function(modules) { // webpackBootstrap
61402
61904
  var zrUtil = __webpack_require__(4);
61403
61905
  var BrushController = __webpack_require__(233);
61404
61906
  var brushHelper = __webpack_require__(309);
61405
- var history = __webpack_require__(373);
61907
+ var history = __webpack_require__(374);
61406
61908
 
61407
61909
  var each = zrUtil.each;
61408
61910
 
61409
61911
  // Use dataZoomSelect
61410
- __webpack_require__(374);
61912
+ __webpack_require__(375);
61411
61913
 
61412
61914
  // Spectial component id start with \0ec\0, see echarts/model/Global.js~hasInnerId
61413
61915
  var DATA_ZOOM_ID_BASE = '\0_ec_\0toolbox-dataZoom_';
@@ -61701,7 +62203,7 @@ return /******/ (function(modules) { // webpackBootstrap
61701
62203
 
61702
62204
 
61703
62205
  /***/ },
61704
- /* 373 */
62206
+ /* 374 */
61705
62207
  /***/ function(module, exports, __webpack_require__) {
61706
62208
 
61707
62209
  /**
@@ -61815,7 +62317,7 @@ return /******/ (function(modules) { // webpackBootstrap
61815
62317
 
61816
62318
 
61817
62319
  /***/ },
61818
- /* 374 */
62320
+ /* 375 */
61819
62321
  /***/ function(module, exports, __webpack_require__) {
61820
62322
 
61821
62323
  /**
@@ -61826,18 +62328,18 @@ return /******/ (function(modules) { // webpackBootstrap
61826
62328
  __webpack_require__(317);
61827
62329
 
61828
62330
  __webpack_require__(318);
61829
- __webpack_require__(320);
62331
+ __webpack_require__(321);
61830
62332
 
61831
- __webpack_require__(375);
61832
62333
  __webpack_require__(376);
62334
+ __webpack_require__(377);
61833
62335
 
61834
- __webpack_require__(327);
61835
62336
  __webpack_require__(328);
62337
+ __webpack_require__(329);
61836
62338
 
61837
62339
 
61838
62340
 
61839
62341
  /***/ },
61840
- /* 375 */
62342
+ /* 376 */
61841
62343
  /***/ function(module, exports, __webpack_require__) {
61842
62344
 
61843
62345
  /**
@@ -61856,12 +62358,12 @@ return /******/ (function(modules) { // webpackBootstrap
61856
62358
 
61857
62359
 
61858
62360
  /***/ },
61859
- /* 376 */
62361
+ /* 377 */
61860
62362
  /***/ function(module, exports, __webpack_require__) {
61861
62363
 
61862
62364
 
61863
62365
 
61864
- module.exports = __webpack_require__(320).extend({
62366
+ module.exports = __webpack_require__(321).extend({
61865
62367
 
61866
62368
  type: 'dataZoom.select'
61867
62369
 
@@ -61870,13 +62372,13 @@ return /******/ (function(modules) { // webpackBootstrap
61870
62372
 
61871
62373
 
61872
62374
  /***/ },
61873
- /* 377 */
62375
+ /* 378 */
61874
62376
  /***/ function(module, exports, __webpack_require__) {
61875
62377
 
61876
62378
  'use strict';
61877
62379
 
61878
62380
 
61879
- var history = __webpack_require__(373);
62381
+ var history = __webpack_require__(374);
61880
62382
 
61881
62383
  function Restore(model) {
61882
62384
  this.model = model;
@@ -61914,16 +62416,16 @@ return /******/ (function(modules) { // webpackBootstrap
61914
62416
 
61915
62417
 
61916
62418
  /***/ },
61917
- /* 378 */
62419
+ /* 379 */
61918
62420
  /***/ function(module, exports, __webpack_require__) {
61919
62421
 
61920
62422
 
61921
- __webpack_require__(379);
61922
- __webpack_require__(81).registerPainter('vml', __webpack_require__(381));
62423
+ __webpack_require__(380);
62424
+ __webpack_require__(81).registerPainter('vml', __webpack_require__(382));
61923
62425
 
61924
62426
 
61925
62427
  /***/ },
61926
- /* 379 */
62428
+ /* 380 */
61927
62429
  /***/ function(module, exports, __webpack_require__) {
61928
62430
 
61929
62431
  // http://www.w3.org/TR/NOTE-VML
@@ -61944,7 +62446,7 @@ return /******/ (function(modules) { // webpackBootstrap
61944
62446
 
61945
62447
  var Gradient = __webpack_require__(61);
61946
62448
 
61947
- var vmlCore = __webpack_require__(380);
62449
+ var vmlCore = __webpack_require__(381);
61948
62450
 
61949
62451
  var round = Math.round;
61950
62452
  var sqrt = Math.sqrt;
@@ -62981,7 +63483,7 @@ return /******/ (function(modules) { // webpackBootstrap
62981
63483
 
62982
63484
 
62983
63485
  /***/ },
62984
- /* 380 */
63486
+ /* 381 */
62985
63487
  /***/ function(module, exports, __webpack_require__) {
62986
63488
 
62987
63489
 
@@ -63034,7 +63536,7 @@ return /******/ (function(modules) { // webpackBootstrap
63034
63536
 
63035
63537
 
63036
63538
  /***/ },
63037
- /* 381 */
63539
+ /* 382 */
63038
63540
  /***/ function(module, exports, __webpack_require__) {
63039
63541
 
63040
63542
  /**
@@ -63046,7 +63548,7 @@ return /******/ (function(modules) { // webpackBootstrap
63046
63548
 
63047
63549
 
63048
63550
  var zrLog = __webpack_require__(40);
63049
- var vmlCore = __webpack_require__(380);
63551
+ var vmlCore = __webpack_require__(381);
63050
63552
 
63051
63553
  function parseInt10(val) {
63052
63554
  return parseInt(val, 10);