echarts-rails 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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);