rails_charts 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -3
  3. data/app/assets/javascripts/echarts/extension/bmap.js +36 -81
  4. data/app/assets/javascripts/echarts/extension/bmap.js.map +1 -1
  5. data/app/assets/javascripts/echarts/extension/dataTool.js +14 -48
  6. data/app/assets/javascripts/echarts/extension/dataTool.js.map +1 -1
  7. data/app/assets/javascripts/echarts/i18n/langAR-obj.js +178 -0
  8. data/app/assets/javascripts/echarts/i18n/langAR.js +174 -0
  9. data/app/assets/javascripts/echarts/i18n/langCS-obj.js +4 -1
  10. data/app/assets/javascripts/echarts/i18n/langCS.js +4 -1
  11. data/app/assets/javascripts/echarts/i18n/langDE-obj.js +5 -2
  12. data/app/assets/javascripts/echarts/i18n/langDE.js +5 -2
  13. data/app/assets/javascripts/echarts/i18n/langEN-obj.js +3 -1
  14. data/app/assets/javascripts/echarts/i18n/langEN.js +3 -1
  15. data/app/assets/javascripts/echarts/i18n/langES-obj.js +60 -0
  16. data/app/assets/javascripts/echarts/i18n/langES.js +60 -0
  17. data/app/assets/javascripts/echarts/i18n/langFA-obj.js +175 -0
  18. data/app/assets/javascripts/echarts/i18n/langFA.js +171 -0
  19. data/app/assets/javascripts/echarts/i18n/langFI-obj.js +60 -0
  20. data/app/assets/javascripts/echarts/i18n/langFI.js +60 -0
  21. data/app/assets/javascripts/echarts/i18n/langFR-obj.js +3 -1
  22. data/app/assets/javascripts/echarts/i18n/langFR.js +3 -1
  23. data/app/assets/javascripts/echarts/i18n/langHU-obj.js +175 -0
  24. data/app/assets/javascripts/echarts/i18n/langHU.js +171 -0
  25. data/app/assets/javascripts/echarts/i18n/langIT-obj.js +3 -1
  26. data/app/assets/javascripts/echarts/i18n/langIT.js +3 -1
  27. data/app/assets/javascripts/echarts/i18n/langJA-obj.js +3 -1
  28. data/app/assets/javascripts/echarts/i18n/langJA.js +3 -1
  29. data/app/assets/javascripts/echarts/i18n/langKO-obj.js +3 -1
  30. data/app/assets/javascripts/echarts/i18n/langKO.js +3 -1
  31. data/app/assets/javascripts/echarts/i18n/langNL-obj.js +175 -0
  32. data/app/assets/javascripts/echarts/i18n/langNL.js +171 -0
  33. data/app/assets/javascripts/echarts/i18n/langPL-obj.js +3 -1
  34. data/app/assets/javascripts/echarts/i18n/langPL.js +3 -1
  35. data/app/assets/javascripts/echarts/i18n/langPT-br-obj.js +14 -12
  36. data/app/assets/javascripts/echarts/i18n/langPT-br.js +14 -12
  37. data/app/assets/javascripts/echarts/i18n/langRO-obj.js +3 -1
  38. data/app/assets/javascripts/echarts/i18n/langRO.js +3 -1
  39. data/app/assets/javascripts/echarts/i18n/langRU-obj.js +3 -1
  40. data/app/assets/javascripts/echarts/i18n/langRU.js +3 -1
  41. data/app/assets/javascripts/echarts/i18n/langSI-obj.js +4 -1
  42. data/app/assets/javascripts/echarts/i18n/langSI.js +4 -1
  43. data/app/assets/javascripts/echarts/i18n/langSV-obj.js +174 -0
  44. data/app/assets/javascripts/echarts/i18n/langSV.js +170 -0
  45. data/app/assets/javascripts/echarts/i18n/langTH-obj.js +60 -0
  46. data/app/assets/javascripts/echarts/i18n/langTH.js +60 -0
  47. data/app/assets/javascripts/echarts/i18n/langTR-obj.js +175 -0
  48. data/app/assets/javascripts/echarts/i18n/langTR.js +171 -0
  49. data/app/assets/javascripts/echarts/i18n/{langUA-obj.js → langUK-obj.js} +3 -1
  50. data/app/assets/javascripts/echarts/i18n/{langUA.js → langUK.js} +4 -2
  51. data/app/assets/javascripts/echarts/i18n/langVI-obj.js +200 -0
  52. data/app/assets/javascripts/echarts/i18n/langVI.js +196 -0
  53. data/app/assets/javascripts/echarts/i18n/langZH-obj.js +4 -1
  54. data/app/assets/javascripts/echarts/i18n/langZH.js +4 -1
  55. data/app/assets/javascripts/echarts/i18n/package.json +3 -0
  56. data/app/assets/javascripts/echarts/theme/azul.js +1 -1
  57. data/app/assets/javascripts/echarts/theme/bee-inspired.js +1 -1
  58. data/app/assets/javascripts/echarts/theme/blue.js +1 -1
  59. data/app/assets/javascripts/echarts/theme/caravan.js +1 -1
  60. data/app/assets/javascripts/echarts/theme/carp.js +1 -1
  61. data/app/assets/javascripts/echarts/theme/cool.js +1 -1
  62. data/app/assets/javascripts/echarts/theme/dark-blue.js +1 -1
  63. data/app/assets/javascripts/echarts/theme/dark-bold.js +1 -1
  64. data/app/assets/javascripts/echarts/theme/dark-digerati.js +1 -1
  65. data/app/assets/javascripts/echarts/theme/dark-fresh-cut.js +1 -1
  66. data/app/assets/javascripts/echarts/theme/dark-mushroom.js +1 -1
  67. data/app/assets/javascripts/echarts/theme/dark.js +1 -1
  68. data/app/assets/javascripts/echarts/theme/eduardo.js +1 -1
  69. data/app/assets/javascripts/echarts/theme/forest.js +1 -1
  70. data/app/assets/javascripts/echarts/theme/fresh-cut.js +1 -1
  71. data/app/assets/javascripts/echarts/theme/fruit.js +1 -1
  72. data/app/assets/javascripts/echarts/theme/gray.js +1 -1
  73. data/app/assets/javascripts/echarts/theme/green.js +1 -1
  74. data/app/assets/javascripts/echarts/theme/helianthus.js +1 -1
  75. data/app/assets/javascripts/echarts/theme/infographic.js +6 -6
  76. data/app/assets/javascripts/echarts/theme/inspired.js +1 -1
  77. data/app/assets/javascripts/echarts/theme/jazz.js +1 -1
  78. data/app/assets/javascripts/echarts/theme/london.js +1 -1
  79. data/app/assets/javascripts/echarts/theme/macarons.js +6 -4
  80. data/app/assets/javascripts/echarts/theme/macarons2.js +59 -62
  81. data/app/assets/javascripts/echarts/theme/mint.js +1 -1
  82. data/app/assets/javascripts/echarts/theme/package.json +3 -0
  83. data/app/assets/javascripts/echarts/theme/red-velvet.js +1 -1
  84. data/app/assets/javascripts/echarts/theme/red.js +1 -1
  85. data/app/assets/javascripts/echarts/theme/roma.js +1 -1
  86. data/app/assets/javascripts/echarts/theme/royal.js +1 -1
  87. data/app/assets/javascripts/echarts/theme/sakura.js +1 -1
  88. data/app/assets/javascripts/echarts/theme/shine.js +2 -4
  89. data/app/assets/javascripts/echarts/theme/tech-blue.js +7 -3
  90. data/app/assets/javascripts/echarts/theme/tool/option/area.js +88 -0
  91. data/app/assets/javascripts/echarts/theme/tool/option/bar.js +107 -0
  92. data/app/assets/javascripts/echarts/theme/tool/option/graph.js +2824 -0
  93. data/app/assets/javascripts/echarts/theme/tool/option/map.js +141 -0
  94. data/app/assets/javascripts/echarts/theme/tool/option/pie.js +87 -0
  95. data/app/assets/javascripts/echarts/theme/tool/option/scatter.js +201 -0
  96. data/app/assets/javascripts/echarts/theme/tool/thumb.html +65 -0
  97. data/app/assets/javascripts/echarts/theme/tool/thumb.js +63 -0
  98. data/app/assets/javascripts/echarts/theme/vintage.js +1 -1
  99. data/app/assets/javascripts/echarts.min.js +2 -2
  100. data/lib/rails_charts/base_chart.rb +5 -4
  101. data/lib/rails_charts/javascript.rb +1 -1
  102. data/lib/rails_charts/stacked_bar_chart.rb +1 -1
  103. data/lib/rails_charts/version.rb +1 -1
  104. metadata +29 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c53d42b8e9c6d5e80a79cb661c49d9d2e62b9ceb391dbc6ade050ca37991584d
4
- data.tar.gz: ef96a672ec278a563147a3329a680376825cd289fae535c7abc6be6828d6e05e
3
+ metadata.gz: 8f7b16bad9c58d6041b0633403ce02e39f8b39b13e5dbbfc39f4a6ad1a581c62
4
+ data.tar.gz: 137e4d95c3101e7c9756600b2a4a72754aa47a2092412f614dd36392a807bdd1
5
5
  SHA512:
6
- metadata.gz: f70838bdbc3be64442826252e373cb37d3851d7a7782b3b157aa2923170651ba363cd6462f0194b0dab5d4b4753c63340b26c4e6ff893bc076a36ec51b984618
7
- data.tar.gz: 1e8729d5c90e81236d3be3f0f5832767782865f50d6ac962a5c06c5a5a309424ebdeb03c9e4b617892e44eacedbc881ba4d85ebd49429488e3e24a02f7e16d57
6
+ metadata.gz: 7f393538dd6594dc0ecc2766363f7bf6370ffe481595e850c0bec211db613b1770585ead73c57cb44d6e1e379ab639fc34e326eda5fde1f06b0a3f86c6e0c571
7
+ data.tar.gz: 3828ce3424b63c5feeb32b64d0d789bd0440968a672344b43549e7fd5cca9a7ceeed245b2ccc49315ca42cca9e72e98af4d0015dadc1ce2889421b2dae76ebcf
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Rails Charts
2
2
 
3
3
  [![RailsJazz](https://github.com/igorkasyanchuk/rails_time_travel/blob/main/docs/my_other.svg?raw=true)](https://www.railsjazz.com)
4
- [![Listed on OpenSource-Heroes.com](https://opensource-heroes.com/badge-v1.svg)](https://opensource-heroes.com/r/railsjazz/rails_charts)
5
4
 
5
+ [!["Buy Me A Coffee"](https://github.com/igorkasyanchuk/get-smart/blob/main/docs/snapshot-bmc-button-small.png?raw=true)](https://buymeacoffee.com/igorkasyanchuk)
6
6
 
7
7
  ![Charts](docs/all.jpg)
8
8
 
@@ -465,8 +465,8 @@ Every chart has a built in default configuration for tooltips, or other options
465
465
 
466
466
  ```ruby
467
467
  <%= stacked_bar_chart [
468
- { name: 'high priority', data: Account.high_priority.group_by_month(:created_at, format: "%b %Y").count },
469
- { name: 'low priority', data: Account.low_priority.group_by_month(:created_at, format: "%b %Y").count }
468
+ { name: 'high priority', data: Account.group_by_month(:created_at, format: "%b %Y").count },
469
+ { name: 'low priority', data: Account.group_by_month(:created_at, format: "%b %Y").count }
470
470
  ],
471
471
  {
472
472
  options: {
@@ -507,12 +507,26 @@ You are welcome to contributes. Some open tasks:
507
507
  - add support for CSP similar to https://github.com/ankane/chartkick/blob/master/lib/chartkick/helper.rb#L55
508
508
  - example of how to build multiple-chart charts
509
509
 
510
+ ### How to upgrade eCharts
511
+
512
+ - download ZIP file
513
+ - unpack it
514
+ - replace files in `app/assets/javascripts/echarts.min.js` and other related files inside echarts folder (from root folder of unpacked ZIP file).
515
+
510
516
  ### Development and testing
511
517
 
512
518
  `test/dummy/bin/rails s` - to start dummy app.
513
519
 
514
520
  `rspec` - to run specs.
515
521
 
522
+ Prepare test data:
523
+
524
+ `rails c`
525
+
526
+ ```ruby
527
+ Data.populate
528
+ ```
529
+
516
530
  ## License
517
531
 
518
532
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -521,3 +535,5 @@ Gem is using https://echarts.apache.org/ to build charts.
521
535
 
522
536
  [<img src="https://github.com/igorkasyanchuk/rails_time_travel/blob/main/docs/more_gems.png?raw=true"
523
537
  />](https://www.railsjazz.com/?utm_source=github&utm_medium=bottom&utm_campaign=rails_charts)
538
+
539
+ [!["Buy Me A Coffee"](https://github.com/igorkasyanchuk/get-smart/blob/main/docs/snapshot-bmc-button.png?raw=true)](https://buymeacoffee.com/igorkasyanchuk)
@@ -31,27 +31,23 @@
31
31
  this._api = api;
32
32
  this._projection = new BMap.MercatorProjection();
33
33
  }
34
-
34
+ BMapCoordSys.prototype.type = 'bmap';
35
35
  BMapCoordSys.prototype.dimensions = ['lng', 'lat'];
36
-
37
36
  BMapCoordSys.prototype.setZoom = function (zoom) {
38
37
  this._zoom = zoom;
39
38
  };
40
-
41
39
  BMapCoordSys.prototype.setCenter = function (center) {
42
40
  this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));
43
41
  };
44
-
45
42
  BMapCoordSys.prototype.setMapOffset = function (mapOffset) {
46
43
  this._mapOffset = mapOffset;
47
44
  };
48
-
49
45
  BMapCoordSys.prototype.getBMap = function () {
50
46
  return this._bmap;
51
47
  };
52
-
53
48
  BMapCoordSys.prototype.dataToPoint = function (data) {
54
- var point = new BMap.Point(data[0], data[1]); // TODO mercator projection is toooooooo slow
49
+ var point = new BMap.Point(data[0], data[1]);
50
+ // TODO mercator projection is toooooooo slow
55
51
  // let mercatorPoint = this._projection.lngLatToPoint(point);
56
52
  // let width = this._api.getZr().getWidth();
57
53
  // let height = this._api.getZr().getHeight();
@@ -60,13 +56,10 @@
60
56
  // Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),
61
57
  // Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)
62
58
  // ];
63
-
64
59
  var px = this._bmap.pointToOverlayPixel(point);
65
-
66
60
  var mapOffset = this._mapOffset;
67
61
  return [px.x - mapOffset[0], px.y - mapOffset[1]];
68
62
  };
69
-
70
63
  BMapCoordSys.prototype.pointToData = function (pt) {
71
64
  var mapOffset = this._mapOffset;
72
65
  pt = this._bmap.overlayPixelToPoint({
@@ -75,16 +68,13 @@
75
68
  });
76
69
  return [pt.lng, pt.lat];
77
70
  };
78
-
79
71
  BMapCoordSys.prototype.getViewRect = function () {
80
72
  var api = this._api;
81
73
  return new echarts.graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());
82
74
  };
83
-
84
75
  BMapCoordSys.prototype.getRoamTransform = function () {
85
76
  return echarts.matrix.create();
86
77
  };
87
-
88
78
  BMapCoordSys.prototype.prepareCustoms = function () {
89
79
  var rect = this.getViewRect();
90
80
  return {
@@ -102,7 +92,13 @@
102
92
  }
103
93
  };
104
94
  };
105
-
95
+ BMapCoordSys.prototype.convertToPixel = function (ecModel, finder, value) {
96
+ // here we ignore finder as only one bmap component is allowed
97
+ return this.dataToPoint(value);
98
+ };
99
+ BMapCoordSys.prototype.convertFromPixel = function (ecModel, finder, value) {
100
+ return this.pointToData(value);
101
+ };
106
102
  function dataToCoordSize(dataSize, dataItem) {
107
103
  dataItem = dataItem || [0, 0];
108
104
  return echarts.util.map([0, 1], function (dimIdx) {
@@ -116,16 +112,13 @@
116
112
  return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);
117
113
  }, this);
118
114
  }
119
-
120
- var Overlay; // For deciding which dimensions to use when creating list data
121
-
115
+ var Overlay;
116
+ // For deciding which dimensions to use when creating list data
122
117
  BMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;
123
-
124
118
  function createOverlayCtor() {
125
119
  function Overlay(root) {
126
120
  this._root = root;
127
121
  }
128
-
129
122
  Overlay.prototype = new BMap.Overlay();
130
123
  /**
131
124
  * 初始化
@@ -133,7 +126,6 @@
133
126
  * @param {BMap.Map} map
134
127
  * @override
135
128
  */
136
-
137
129
  Overlay.prototype.initialize = function (map) {
138
130
  map.getPanes().labelPane.appendChild(this._root);
139
131
  return this._root;
@@ -141,37 +133,27 @@
141
133
  /**
142
134
  * @override
143
135
  */
144
-
145
-
146
136
  Overlay.prototype.draw = function () {};
147
-
148
137
  return Overlay;
149
138
  }
150
-
151
139
  BMapCoordSys.create = function (ecModel, api) {
152
140
  var bmapCoordSys;
153
- var root = api.getDom(); // TODO Dispose
154
-
141
+ var root = api.getDom();
142
+ // TODO Dispose
155
143
  ecModel.eachComponent('bmap', function (bmapModel) {
156
144
  var painter = api.getZr().painter;
157
145
  var viewportRoot = painter.getViewportRoot();
158
-
159
146
  if (typeof BMap === 'undefined') {
160
147
  throw new Error('BMap api is not loaded');
161
148
  }
162
-
163
149
  Overlay = Overlay || createOverlayCtor();
164
-
165
150
  if (bmapCoordSys) {
166
151
  throw new Error('Only one bmap component can exist');
167
152
  }
168
-
169
153
  var bmap;
170
-
171
154
  if (!bmapModel.__bmap) {
172
155
  // Not support IE8
173
156
  var bmapRoot = root.querySelector('.ec-extension-bmap');
174
-
175
157
  if (bmapRoot) {
176
158
  // Reset viewport left and top, which will be changed
177
159
  // in moving handler in BMapView
@@ -179,25 +161,22 @@
179
161
  viewportRoot.style.top = '0px';
180
162
  root.removeChild(bmapRoot);
181
163
  }
182
-
183
164
  bmapRoot = document.createElement('div');
184
- bmapRoot.className = 'ec-extension-bmap'; // fix #13424
185
-
165
+ bmapRoot.className = 'ec-extension-bmap';
166
+ // fix #13424
186
167
  bmapRoot.style.cssText = 'position:absolute;width:100%;height:100%';
187
- root.appendChild(bmapRoot); // initializes bmap
188
-
168
+ root.appendChild(bmapRoot);
169
+ // initializes bmap
189
170
  var mapOptions = bmapModel.get('mapOptions');
190
-
191
171
  if (mapOptions) {
192
- mapOptions = echarts.util.clone(mapOptions); // Not support `mapType`, use `bmap.setMapType(MapType)` instead.
193
-
172
+ mapOptions = echarts.util.clone(mapOptions);
173
+ // Not support `mapType`, use `bmap.setMapType(MapType)` instead.
194
174
  delete mapOptions.mapType;
195
175
  }
196
-
197
176
  bmap = bmapModel.__bmap = new BMap.Map(bmapRoot, mapOptions);
198
177
  var overlay = new Overlay(viewportRoot);
199
- bmap.addOverlay(overlay); // Override
200
-
178
+ bmap.addOverlay(overlay);
179
+ // Override
201
180
  painter.getViewportRootOffset = function () {
202
181
  return {
203
182
  offsetLeft: 0,
@@ -205,24 +184,20 @@
205
184
  };
206
185
  };
207
186
  }
208
-
209
- bmap = bmapModel.__bmap; // Set bmap options
187
+ bmap = bmapModel.__bmap;
188
+ // Set bmap options
210
189
  // centerAndZoom before layout and render
211
-
212
190
  var center = bmapModel.get('center');
213
191
  var zoom = bmapModel.get('zoom');
214
-
215
192
  if (center && zoom) {
216
193
  var bmapCenter = bmap.getCenter();
217
194
  var bmapZoom = bmap.getZoom();
218
195
  var centerOrZoomChanged = bmapModel.centerOrZoomChanged([bmapCenter.lng, bmapCenter.lat], bmapZoom);
219
-
220
196
  if (centerOrZoomChanged) {
221
197
  var pt = new BMap.Point(center[0], center[1]);
222
198
  bmap.centerAndZoom(pt, zoom);
223
199
  }
224
200
  }
225
-
226
201
  bmapCoordSys = new BMapCoordSys(bmap, api);
227
202
  bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);
228
203
  bmapCoordSys.setZoom(zoom);
@@ -234,12 +209,13 @@
234
209
  seriesModel.coordinateSystem = bmapCoordSys;
235
210
  }
236
211
  });
212
+ // return created coordinate systems
213
+ return bmapCoordSys && [bmapCoordSys];
237
214
  };
238
215
 
239
216
  function v2Equal(a, b) {
240
217
  return a && b && a[0] === b[0] && a[1] === b[1];
241
218
  }
242
-
243
219
  echarts.extendComponentModel({
244
220
  type: 'bmap',
245
221
  getBMap: function () {
@@ -257,9 +233,9 @@
257
233
  defaultOption: {
258
234
  center: [104.114129, 37.550339],
259
235
  zoom: 5,
260
- // 2.0 http://lbsyun.baidu.com/custom/index.htm
236
+ // 2.0 https://lbsyun.baidu.com/custom/index.htm
261
237
  mapStyle: {},
262
- // 3.0 http://lbsyun.baidu.com/index.php?title=open/custom
238
+ // 3.0 https://lbsyun.baidu.com/index.php?title=open/custom
263
239
  mapStyleV2: {},
264
240
  // See https://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a0b1
265
241
  mapOptions: {},
@@ -273,10 +249,8 @@
273
249
  return false;
274
250
  }
275
251
  }
276
-
277
252
  return true;
278
253
  }
279
-
280
254
  echarts.extendComponentView({
281
255
  type: 'bmap',
282
256
  render: function (bMapModel, ecModel, api) {
@@ -284,27 +258,22 @@
284
258
  var bmap = bMapModel.getBMap();
285
259
  var viewportRoot = api.getZr().painter.getViewportRoot();
286
260
  var coordSys = bMapModel.coordinateSystem;
287
-
288
261
  var moveHandler = function (type, target) {
289
262
  if (rendering) {
290
263
  return;
291
264
  }
292
-
293
265
  var offsetEl = viewportRoot.parentNode.parentNode.parentNode;
294
- var mapOffset = [-parseInt(offsetEl.style.left, 10) || 0, -parseInt(offsetEl.style.top, 10) || 0]; // only update style when map offset changed
295
-
266
+ var mapOffset = [-parseInt(offsetEl.style.left, 10) || 0, -parseInt(offsetEl.style.top, 10) || 0];
267
+ // only update style when map offset changed
296
268
  var viewportRootStyle = viewportRoot.style;
297
269
  var offsetLeft = mapOffset[0] + 'px';
298
270
  var offsetTop = mapOffset[1] + 'px';
299
-
300
271
  if (viewportRootStyle.left !== offsetLeft) {
301
272
  viewportRootStyle.left = offsetLeft;
302
273
  }
303
-
304
274
  if (viewportRootStyle.top !== offsetTop) {
305
275
  viewportRootStyle.top = offsetTop;
306
276
  }
307
-
308
277
  coordSys.setMapOffset(mapOffset);
309
278
  bMapModel.__mapOffset = mapOffset;
310
279
  api.dispatchAction({
@@ -314,12 +283,10 @@
314
283
  }
315
284
  });
316
285
  };
317
-
318
286
  function zoomEndHandler() {
319
287
  if (rendering) {
320
288
  return;
321
289
  }
322
-
323
290
  api.dispatchAction({
324
291
  type: 'bmapRoam',
325
292
  animation: {
@@ -327,7 +294,6 @@
327
294
  }
328
295
  });
329
296
  }
330
-
331
297
  bmap.removeEventListener('moving', this._oldMoveHandler);
332
298
  bmap.removeEventListener('moveend', this._oldMoveHandler);
333
299
  bmap.removeEventListener('zoomend', this._oldZoomEndHandler);
@@ -337,13 +303,11 @@
337
303
  this._oldMoveHandler = moveHandler;
338
304
  this._oldZoomEndHandler = zoomEndHandler;
339
305
  var roam = bMapModel.get('roam');
340
-
341
306
  if (roam && roam !== 'scale') {
342
307
  bmap.enableDragging();
343
308
  } else {
344
309
  bmap.disableDragging();
345
310
  }
346
-
347
311
  if (roam && roam !== 'move') {
348
312
  bmap.enableScrollWheelZoom();
349
313
  bmap.enableDoubleClickZoom();
@@ -354,44 +318,35 @@
354
318
  bmap.disablePinchToZoom();
355
319
  }
356
320
  /* map 2.0 */
357
-
358
-
359
321
  var originalStyle = bMapModel.__mapStyle;
360
- var newMapStyle = bMapModel.get('mapStyle') || {}; // FIXME, Not use JSON methods
361
-
322
+ var newMapStyle = bMapModel.get('mapStyle') || {};
323
+ // FIXME, Not use JSON methods
362
324
  var mapStyleStr = JSON.stringify(newMapStyle);
363
-
364
325
  if (JSON.stringify(originalStyle) !== mapStyleStr) {
365
326
  // FIXME May have blank tile when dragging if setMapStyle
366
327
  if (!isEmptyObject(newMapStyle)) {
367
328
  bmap.setMapStyle(echarts.util.clone(newMapStyle));
368
329
  }
369
-
370
330
  bMapModel.__mapStyle = JSON.parse(mapStyleStr);
371
331
  }
372
332
  /* map 3.0 */
373
-
374
-
375
333
  var originalStyle2 = bMapModel.__mapStyle2;
376
- var newMapStyle2 = bMapModel.get('mapStyleV2') || {}; // FIXME, Not use JSON methods
377
-
334
+ var newMapStyle2 = bMapModel.get('mapStyleV2') || {};
335
+ // FIXME, Not use JSON methods
378
336
  var mapStyleStr2 = JSON.stringify(newMapStyle2);
379
-
380
337
  if (JSON.stringify(originalStyle2) !== mapStyleStr2) {
381
338
  // FIXME May have blank tile when dragging if setMapStyle
382
339
  if (!isEmptyObject(newMapStyle2)) {
383
340
  bmap.setMapStyleV2(echarts.util.clone(newMapStyle2));
384
341
  }
385
-
386
342
  bMapModel.__mapStyle2 = JSON.parse(mapStyleStr2);
387
343
  }
388
-
389
344
  rendering = false;
390
345
  }
391
346
  });
392
347
 
393
- echarts.registerCoordinateSystem('bmap', BMapCoordSys); // Action
394
-
348
+ echarts.registerCoordinateSystem('bmap', BMapCoordSys);
349
+ // Action
395
350
  echarts.registerAction({
396
351
  type: 'bmapRoam',
397
352
  event: 'bmapRoam',
@@ -1 +1 @@
1
- {"version":3,"file":"bmap.js","sources":["../../extension/bmap/BMapCoordSys.js","../../extension/bmap/BMapModel.js","../../extension/bmap/BMapView.js","../../extension/bmap/bmap.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n// @ts-nocheck\n\n/* global BMap */\nimport { util as zrUtil, graphic, matrix } from 'echarts';\n\nfunction BMapCoordSys(bmap, api) {\n this._bmap = bmap;\n this.dimensions = ['lng', 'lat'];\n this._mapOffset = [0, 0];\n this._api = api;\n this._projection = new BMap.MercatorProjection();\n}\n\nBMapCoordSys.prototype.dimensions = ['lng', 'lat'];\n\nBMapCoordSys.prototype.setZoom = function (zoom) {\n this._zoom = zoom;\n};\n\nBMapCoordSys.prototype.setCenter = function (center) {\n this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));\n};\n\nBMapCoordSys.prototype.setMapOffset = function (mapOffset) {\n this._mapOffset = mapOffset;\n};\n\nBMapCoordSys.prototype.getBMap = function () {\n return this._bmap;\n};\n\nBMapCoordSys.prototype.dataToPoint = function (data) {\n var point = new BMap.Point(data[0], data[1]); // TODO mercator projection is toooooooo slow\n // let mercatorPoint = this._projection.lngLatToPoint(point);\n // let width = this._api.getZr().getWidth();\n // let height = this._api.getZr().getHeight();\n // let divider = Math.pow(2, 18 - 10);\n // return [\n // Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),\n // Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)\n // ];\n\n var px = this._bmap.pointToOverlayPixel(point);\n\n var mapOffset = this._mapOffset;\n return [px.x - mapOffset[0], px.y - mapOffset[1]];\n};\n\nBMapCoordSys.prototype.pointToData = function (pt) {\n var mapOffset = this._mapOffset;\n pt = this._bmap.overlayPixelToPoint({\n x: pt[0] + mapOffset[0],\n y: pt[1] + mapOffset[1]\n });\n return [pt.lng, pt.lat];\n};\n\nBMapCoordSys.prototype.getViewRect = function () {\n var api = this._api;\n return new graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());\n};\n\nBMapCoordSys.prototype.getRoamTransform = function () {\n return matrix.create();\n};\n\nBMapCoordSys.prototype.prepareCustoms = function () {\n var rect = this.getViewRect();\n return {\n coordSys: {\n // The name exposed to user is always 'cartesian2d' but not 'grid'.\n type: 'bmap',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: zrUtil.bind(this.dataToPoint, this),\n size: zrUtil.bind(dataToCoordSize, this)\n }\n };\n};\n\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map([0, 1], function (dimIdx) {\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var p1 = [];\n var p2 = [];\n p1[dimIdx] = val - halfSize;\n p2[dimIdx] = val + halfSize;\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n }, this);\n}\n\nvar Overlay; // For deciding which dimensions to use when creating list data\n\nBMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;\n\nfunction createOverlayCtor() {\n function Overlay(root) {\n this._root = root;\n }\n\n Overlay.prototype = new BMap.Overlay();\n /**\r\n * 初始化\r\n *\r\n * @param {BMap.Map} map\r\n * @override\r\n */\n\n Overlay.prototype.initialize = function (map) {\n map.getPanes().labelPane.appendChild(this._root);\n return this._root;\n };\n /**\r\n * @override\r\n */\n\n\n Overlay.prototype.draw = function () {};\n\n return Overlay;\n}\n\nBMapCoordSys.create = function (ecModel, api) {\n var bmapCoordSys;\n var root = api.getDom(); // TODO Dispose\n\n ecModel.eachComponent('bmap', function (bmapModel) {\n var painter = api.getZr().painter;\n var viewportRoot = painter.getViewportRoot();\n\n if (typeof BMap === 'undefined') {\n throw new Error('BMap api is not loaded');\n }\n\n Overlay = Overlay || createOverlayCtor();\n\n if (bmapCoordSys) {\n throw new Error('Only one bmap component can exist');\n }\n\n var bmap;\n\n if (!bmapModel.__bmap) {\n // Not support IE8\n var bmapRoot = root.querySelector('.ec-extension-bmap');\n\n if (bmapRoot) {\n // Reset viewport left and top, which will be changed\n // in moving handler in BMapView\n viewportRoot.style.left = '0px';\n viewportRoot.style.top = '0px';\n root.removeChild(bmapRoot);\n }\n\n bmapRoot = document.createElement('div');\n bmapRoot.className = 'ec-extension-bmap'; // fix #13424\n\n bmapRoot.style.cssText = 'position:absolute;width:100%;height:100%';\n root.appendChild(bmapRoot); // initializes bmap\n\n var mapOptions = bmapModel.get('mapOptions');\n\n if (mapOptions) {\n mapOptions = zrUtil.clone(mapOptions); // Not support `mapType`, use `bmap.setMapType(MapType)` instead.\n\n delete mapOptions.mapType;\n }\n\n bmap = bmapModel.__bmap = new BMap.Map(bmapRoot, mapOptions);\n var overlay = new Overlay(viewportRoot);\n bmap.addOverlay(overlay); // Override\n\n painter.getViewportRootOffset = function () {\n return {\n offsetLeft: 0,\n offsetTop: 0\n };\n };\n }\n\n bmap = bmapModel.__bmap; // Set bmap options\n // centerAndZoom before layout and render\n\n var center = bmapModel.get('center');\n var zoom = bmapModel.get('zoom');\n\n if (center && zoom) {\n var bmapCenter = bmap.getCenter();\n var bmapZoom = bmap.getZoom();\n var centerOrZoomChanged = bmapModel.centerOrZoomChanged([bmapCenter.lng, bmapCenter.lat], bmapZoom);\n\n if (centerOrZoomChanged) {\n var pt = new BMap.Point(center[0], center[1]);\n bmap.centerAndZoom(pt, zoom);\n }\n }\n\n bmapCoordSys = new BMapCoordSys(bmap, api);\n bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);\n bmapCoordSys.setZoom(zoom);\n bmapCoordSys.setCenter(center);\n bmapModel.coordinateSystem = bmapCoordSys;\n });\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'bmap') {\n seriesModel.coordinateSystem = bmapCoordSys;\n }\n });\n};\n\nexport default BMapCoordSys;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n// @ts-nocheck\nimport * as echarts from 'echarts';\n\nfunction v2Equal(a, b) {\n return a && b && a[0] === b[0] && a[1] === b[1];\n}\n\nexport default echarts.extendComponentModel({\n type: 'bmap',\n getBMap: function () {\n // __bmap is injected when creating BMapCoordSys\n return this.__bmap;\n },\n setCenterAndZoom: function (center, zoom) {\n this.option.center = center;\n this.option.zoom = zoom;\n },\n centerOrZoomChanged: function (center, zoom) {\n var option = this.option;\n return !(v2Equal(center, option.center) && zoom === option.zoom);\n },\n defaultOption: {\n center: [104.114129, 37.550339],\n zoom: 5,\n // 2.0 http://lbsyun.baidu.com/custom/index.htm\n mapStyle: {},\n // 3.0 http://lbsyun.baidu.com/index.php?title=open/custom\n mapStyleV2: {},\n // See https://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a0b1\n mapOptions: {},\n roam: false\n }\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n// @ts-nocheck\nimport * as echarts from 'echarts';\n\nfunction isEmptyObject(obj) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport default echarts.extendComponentView({\n type: 'bmap',\n render: function (bMapModel, ecModel, api) {\n var rendering = true;\n var bmap = bMapModel.getBMap();\n var viewportRoot = api.getZr().painter.getViewportRoot();\n var coordSys = bMapModel.coordinateSystem;\n\n var moveHandler = function (type, target) {\n if (rendering) {\n return;\n }\n\n var offsetEl = viewportRoot.parentNode.parentNode.parentNode;\n var mapOffset = [-parseInt(offsetEl.style.left, 10) || 0, -parseInt(offsetEl.style.top, 10) || 0]; // only update style when map offset changed\n\n var viewportRootStyle = viewportRoot.style;\n var offsetLeft = mapOffset[0] + 'px';\n var offsetTop = mapOffset[1] + 'px';\n\n if (viewportRootStyle.left !== offsetLeft) {\n viewportRootStyle.left = offsetLeft;\n }\n\n if (viewportRootStyle.top !== offsetTop) {\n viewportRootStyle.top = offsetTop;\n }\n\n coordSys.setMapOffset(mapOffset);\n bMapModel.__mapOffset = mapOffset;\n api.dispatchAction({\n type: 'bmapRoam',\n animation: {\n duration: 0\n }\n });\n };\n\n function zoomEndHandler() {\n if (rendering) {\n return;\n }\n\n api.dispatchAction({\n type: 'bmapRoam',\n animation: {\n duration: 0\n }\n });\n }\n\n bmap.removeEventListener('moving', this._oldMoveHandler);\n bmap.removeEventListener('moveend', this._oldMoveHandler);\n bmap.removeEventListener('zoomend', this._oldZoomEndHandler);\n bmap.addEventListener('moving', moveHandler);\n bmap.addEventListener('moveend', moveHandler);\n bmap.addEventListener('zoomend', zoomEndHandler);\n this._oldMoveHandler = moveHandler;\n this._oldZoomEndHandler = zoomEndHandler;\n var roam = bMapModel.get('roam');\n\n if (roam && roam !== 'scale') {\n bmap.enableDragging();\n } else {\n bmap.disableDragging();\n }\n\n if (roam && roam !== 'move') {\n bmap.enableScrollWheelZoom();\n bmap.enableDoubleClickZoom();\n bmap.enablePinchToZoom();\n } else {\n bmap.disableScrollWheelZoom();\n bmap.disableDoubleClickZoom();\n bmap.disablePinchToZoom();\n }\n /* map 2.0 */\n\n\n var originalStyle = bMapModel.__mapStyle;\n var newMapStyle = bMapModel.get('mapStyle') || {}; // FIXME, Not use JSON methods\n\n var mapStyleStr = JSON.stringify(newMapStyle);\n\n if (JSON.stringify(originalStyle) !== mapStyleStr) {\n // FIXME May have blank tile when dragging if setMapStyle\n if (!isEmptyObject(newMapStyle)) {\n bmap.setMapStyle(echarts.util.clone(newMapStyle));\n }\n\n bMapModel.__mapStyle = JSON.parse(mapStyleStr);\n }\n /* map 3.0 */\n\n\n var originalStyle2 = bMapModel.__mapStyle2;\n var newMapStyle2 = bMapModel.get('mapStyleV2') || {}; // FIXME, Not use JSON methods\n\n var mapStyleStr2 = JSON.stringify(newMapStyle2);\n\n if (JSON.stringify(originalStyle2) !== mapStyleStr2) {\n // FIXME May have blank tile when dragging if setMapStyle\n if (!isEmptyObject(newMapStyle2)) {\n bmap.setMapStyleV2(echarts.util.clone(newMapStyle2));\n }\n\n bMapModel.__mapStyle2 = JSON.parse(mapStyleStr2);\n }\n\n rendering = false;\n }\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n// @ts-nocheck\n\n/**\r\n * BMap component extension\r\n */\nimport * as echarts from 'echarts';\nimport BMapCoordSys from './BMapCoordSys.js';\nimport './BMapModel.js';\nimport './BMapView.js';\necharts.registerCoordinateSystem('bmap', BMapCoordSys); // Action\n\necharts.registerAction({\n type: 'bmapRoam',\n event: 'bmapRoam',\n update: 'updateLayout'\n}, function (payload, ecModel) {\n ecModel.eachComponent('bmap', function (bMapModel) {\n var bmap = bMapModel.getBMap();\n var center = bmap.getCenter();\n bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());\n });\n});\nexport var version = '1.0.0';"],"names":["graphic","matrix","zrUtil","echarts.extendComponentModel","echarts.extendComponentView","echarts.util","echarts.registerCoordinateSystem","echarts.registerAction"],"mappings":"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"}
1
+ {"version":3,"file":"bmap.js","sources":["../../extension/bmap/BMapCoordSys.js","../../extension/bmap/BMapModel.js","../../extension/bmap/BMapView.js","../../extension/bmap/bmap.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n// @ts-nocheck\n/* global BMap */\nimport { util as zrUtil, graphic, matrix } from 'echarts';\nfunction BMapCoordSys(bmap, api) {\n this._bmap = bmap;\n this.dimensions = ['lng', 'lat'];\n this._mapOffset = [0, 0];\n this._api = api;\n this._projection = new BMap.MercatorProjection();\n}\nBMapCoordSys.prototype.type = 'bmap';\nBMapCoordSys.prototype.dimensions = ['lng', 'lat'];\nBMapCoordSys.prototype.setZoom = function (zoom) {\n this._zoom = zoom;\n};\nBMapCoordSys.prototype.setCenter = function (center) {\n this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));\n};\nBMapCoordSys.prototype.setMapOffset = function (mapOffset) {\n this._mapOffset = mapOffset;\n};\nBMapCoordSys.prototype.getBMap = function () {\n return this._bmap;\n};\nBMapCoordSys.prototype.dataToPoint = function (data) {\n var point = new BMap.Point(data[0], data[1]);\n // TODO mercator projection is toooooooo slow\n // let mercatorPoint = this._projection.lngLatToPoint(point);\n // let width = this._api.getZr().getWidth();\n // let height = this._api.getZr().getHeight();\n // let divider = Math.pow(2, 18 - 10);\n // return [\n // Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),\n // Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)\n // ];\n var px = this._bmap.pointToOverlayPixel(point);\n var mapOffset = this._mapOffset;\n return [px.x - mapOffset[0], px.y - mapOffset[1]];\n};\nBMapCoordSys.prototype.pointToData = function (pt) {\n var mapOffset = this._mapOffset;\n pt = this._bmap.overlayPixelToPoint({\n x: pt[0] + mapOffset[0],\n y: pt[1] + mapOffset[1]\n });\n return [pt.lng, pt.lat];\n};\nBMapCoordSys.prototype.getViewRect = function () {\n var api = this._api;\n return new graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());\n};\nBMapCoordSys.prototype.getRoamTransform = function () {\n return matrix.create();\n};\nBMapCoordSys.prototype.prepareCustoms = function () {\n var rect = this.getViewRect();\n return {\n coordSys: {\n // The name exposed to user is always 'cartesian2d' but not 'grid'.\n type: 'bmap',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: zrUtil.bind(this.dataToPoint, this),\n size: zrUtil.bind(dataToCoordSize, this)\n }\n };\n};\nBMapCoordSys.prototype.convertToPixel = function (ecModel, finder, value) {\n // here we ignore finder as only one bmap component is allowed\n return this.dataToPoint(value);\n};\nBMapCoordSys.prototype.convertFromPixel = function (ecModel, finder, value) {\n return this.pointToData(value);\n};\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map([0, 1], function (dimIdx) {\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var p1 = [];\n var p2 = [];\n p1[dimIdx] = val - halfSize;\n p2[dimIdx] = val + halfSize;\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n }, this);\n}\nvar Overlay;\n// For deciding which dimensions to use when creating list data\nBMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;\nfunction createOverlayCtor() {\n function Overlay(root) {\n this._root = root;\n }\n Overlay.prototype = new BMap.Overlay();\n /**\r\n * 初始化\r\n *\r\n * @param {BMap.Map} map\r\n * @override\r\n */\n Overlay.prototype.initialize = function (map) {\n map.getPanes().labelPane.appendChild(this._root);\n return this._root;\n };\n /**\r\n * @override\r\n */\n Overlay.prototype.draw = function () {};\n return Overlay;\n}\nBMapCoordSys.create = function (ecModel, api) {\n var bmapCoordSys;\n var root = api.getDom();\n // TODO Dispose\n ecModel.eachComponent('bmap', function (bmapModel) {\n var painter = api.getZr().painter;\n var viewportRoot = painter.getViewportRoot();\n if (typeof BMap === 'undefined') {\n throw new Error('BMap api is not loaded');\n }\n Overlay = Overlay || createOverlayCtor();\n if (bmapCoordSys) {\n throw new Error('Only one bmap component can exist');\n }\n var bmap;\n if (!bmapModel.__bmap) {\n // Not support IE8\n var bmapRoot = root.querySelector('.ec-extension-bmap');\n if (bmapRoot) {\n // Reset viewport left and top, which will be changed\n // in moving handler in BMapView\n viewportRoot.style.left = '0px';\n viewportRoot.style.top = '0px';\n root.removeChild(bmapRoot);\n }\n bmapRoot = document.createElement('div');\n bmapRoot.className = 'ec-extension-bmap';\n // fix #13424\n bmapRoot.style.cssText = 'position:absolute;width:100%;height:100%';\n root.appendChild(bmapRoot);\n // initializes bmap\n var mapOptions = bmapModel.get('mapOptions');\n if (mapOptions) {\n mapOptions = zrUtil.clone(mapOptions);\n // Not support `mapType`, use `bmap.setMapType(MapType)` instead.\n delete mapOptions.mapType;\n }\n bmap = bmapModel.__bmap = new BMap.Map(bmapRoot, mapOptions);\n var overlay = new Overlay(viewportRoot);\n bmap.addOverlay(overlay);\n // Override\n painter.getViewportRootOffset = function () {\n return {\n offsetLeft: 0,\n offsetTop: 0\n };\n };\n }\n bmap = bmapModel.__bmap;\n // Set bmap options\n // centerAndZoom before layout and render\n var center = bmapModel.get('center');\n var zoom = bmapModel.get('zoom');\n if (center && zoom) {\n var bmapCenter = bmap.getCenter();\n var bmapZoom = bmap.getZoom();\n var centerOrZoomChanged = bmapModel.centerOrZoomChanged([bmapCenter.lng, bmapCenter.lat], bmapZoom);\n if (centerOrZoomChanged) {\n var pt = new BMap.Point(center[0], center[1]);\n bmap.centerAndZoom(pt, zoom);\n }\n }\n bmapCoordSys = new BMapCoordSys(bmap, api);\n bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);\n bmapCoordSys.setZoom(zoom);\n bmapCoordSys.setCenter(center);\n bmapModel.coordinateSystem = bmapCoordSys;\n });\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'bmap') {\n seriesModel.coordinateSystem = bmapCoordSys;\n }\n });\n // return created coordinate systems\n return bmapCoordSys && [bmapCoordSys];\n};\nexport default BMapCoordSys;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n// @ts-nocheck\nimport * as echarts from 'echarts';\nfunction v2Equal(a, b) {\n return a && b && a[0] === b[0] && a[1] === b[1];\n}\nexport default echarts.extendComponentModel({\n type: 'bmap',\n getBMap: function () {\n // __bmap is injected when creating BMapCoordSys\n return this.__bmap;\n },\n setCenterAndZoom: function (center, zoom) {\n this.option.center = center;\n this.option.zoom = zoom;\n },\n centerOrZoomChanged: function (center, zoom) {\n var option = this.option;\n return !(v2Equal(center, option.center) && zoom === option.zoom);\n },\n defaultOption: {\n center: [104.114129, 37.550339],\n zoom: 5,\n // 2.0 https://lbsyun.baidu.com/custom/index.htm\n mapStyle: {},\n // 3.0 https://lbsyun.baidu.com/index.php?title=open/custom\n mapStyleV2: {},\n // See https://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a0b1\n mapOptions: {},\n roam: false\n }\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n// @ts-nocheck\nimport * as echarts from 'echarts';\nfunction isEmptyObject(obj) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\nexport default echarts.extendComponentView({\n type: 'bmap',\n render: function (bMapModel, ecModel, api) {\n var rendering = true;\n var bmap = bMapModel.getBMap();\n var viewportRoot = api.getZr().painter.getViewportRoot();\n var coordSys = bMapModel.coordinateSystem;\n var moveHandler = function (type, target) {\n if (rendering) {\n return;\n }\n var offsetEl = viewportRoot.parentNode.parentNode.parentNode;\n var mapOffset = [-parseInt(offsetEl.style.left, 10) || 0, -parseInt(offsetEl.style.top, 10) || 0];\n // only update style when map offset changed\n var viewportRootStyle = viewportRoot.style;\n var offsetLeft = mapOffset[0] + 'px';\n var offsetTop = mapOffset[1] + 'px';\n if (viewportRootStyle.left !== offsetLeft) {\n viewportRootStyle.left = offsetLeft;\n }\n if (viewportRootStyle.top !== offsetTop) {\n viewportRootStyle.top = offsetTop;\n }\n coordSys.setMapOffset(mapOffset);\n bMapModel.__mapOffset = mapOffset;\n api.dispatchAction({\n type: 'bmapRoam',\n animation: {\n duration: 0\n }\n });\n };\n function zoomEndHandler() {\n if (rendering) {\n return;\n }\n api.dispatchAction({\n type: 'bmapRoam',\n animation: {\n duration: 0\n }\n });\n }\n bmap.removeEventListener('moving', this._oldMoveHandler);\n bmap.removeEventListener('moveend', this._oldMoveHandler);\n bmap.removeEventListener('zoomend', this._oldZoomEndHandler);\n bmap.addEventListener('moving', moveHandler);\n bmap.addEventListener('moveend', moveHandler);\n bmap.addEventListener('zoomend', zoomEndHandler);\n this._oldMoveHandler = moveHandler;\n this._oldZoomEndHandler = zoomEndHandler;\n var roam = bMapModel.get('roam');\n if (roam && roam !== 'scale') {\n bmap.enableDragging();\n } else {\n bmap.disableDragging();\n }\n if (roam && roam !== 'move') {\n bmap.enableScrollWheelZoom();\n bmap.enableDoubleClickZoom();\n bmap.enablePinchToZoom();\n } else {\n bmap.disableScrollWheelZoom();\n bmap.disableDoubleClickZoom();\n bmap.disablePinchToZoom();\n }\n /* map 2.0 */\n var originalStyle = bMapModel.__mapStyle;\n var newMapStyle = bMapModel.get('mapStyle') || {};\n // FIXME, Not use JSON methods\n var mapStyleStr = JSON.stringify(newMapStyle);\n if (JSON.stringify(originalStyle) !== mapStyleStr) {\n // FIXME May have blank tile when dragging if setMapStyle\n if (!isEmptyObject(newMapStyle)) {\n bmap.setMapStyle(echarts.util.clone(newMapStyle));\n }\n bMapModel.__mapStyle = JSON.parse(mapStyleStr);\n }\n /* map 3.0 */\n var originalStyle2 = bMapModel.__mapStyle2;\n var newMapStyle2 = bMapModel.get('mapStyleV2') || {};\n // FIXME, Not use JSON methods\n var mapStyleStr2 = JSON.stringify(newMapStyle2);\n if (JSON.stringify(originalStyle2) !== mapStyleStr2) {\n // FIXME May have blank tile when dragging if setMapStyle\n if (!isEmptyObject(newMapStyle2)) {\n bmap.setMapStyleV2(echarts.util.clone(newMapStyle2));\n }\n bMapModel.__mapStyle2 = JSON.parse(mapStyleStr2);\n }\n rendering = false;\n }\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n// @ts-nocheck\n/**\r\n * BMap component extension\r\n */\nimport * as echarts from 'echarts';\nimport BMapCoordSys from './BMapCoordSys.js';\nimport './BMapModel.js';\nimport './BMapView.js';\necharts.registerCoordinateSystem('bmap', BMapCoordSys);\n// Action\necharts.registerAction({\n type: 'bmapRoam',\n event: 'bmapRoam',\n update: 'updateLayout'\n}, function (payload, ecModel) {\n ecModel.eachComponent('bmap', function (bMapModel) {\n var bmap = bMapModel.getBMap();\n var center = bmap.getCenter();\n bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());\n });\n});\nexport var version = '1.0.0';"],"names":["graphic","matrix","zrUtil","echarts.extendComponentModel","echarts.extendComponentView","echarts.util","echarts.registerCoordinateSystem","echarts.registerAction"],"mappings":"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"}