@antv/l7-component 2.17.2 → 2.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/es/assets/iconfont/iconfont.js +17 -10
  2. package/es/control/baseControl/buttonControl.js +42 -9
  3. package/es/control/baseControl/control.js +53 -24
  4. package/es/control/baseControl/index.d.ts +4 -4
  5. package/es/control/baseControl/index.js +4 -4
  6. package/es/control/baseControl/popperControl.js +24 -10
  7. package/es/control/baseControl/selectControl.js +45 -6
  8. package/es/control/exportImage.js +116 -76
  9. package/es/control/fullscreen.js +53 -20
  10. package/es/control/geoLocate.js +66 -36
  11. package/es/control/layerSwitch.js +31 -0
  12. package/es/control/logo.js +14 -2
  13. package/es/control/mapTheme.js +32 -7
  14. package/es/control/mouseLocation.js +23 -2
  15. package/es/control/scale.js +29 -6
  16. package/es/control/zoom.js +23 -0
  17. package/es/index.d.ts +11 -11
  18. package/es/index.js +23 -13
  19. package/es/marker-layer.js +75 -41
  20. package/es/marker.js +83 -29
  21. package/es/popup/layerPopup.js +82 -31
  22. package/es/popup/popup.js +127 -48
  23. package/es/utils/anchor.js +7 -3
  24. package/es/utils/popper.js +64 -15
  25. package/es/utils/screenfull.js +52 -23
  26. package/lib/assets/iconfont/iconfont.js +17 -10
  27. package/lib/control/baseControl/buttonControl.js +52 -9
  28. package/lib/control/baseControl/control.js +68 -24
  29. package/lib/control/baseControl/index.js +35 -41
  30. package/lib/control/baseControl/popperControl.js +29 -10
  31. package/lib/control/baseControl/selectControl.js +60 -6
  32. package/lib/control/exportImage.js +125 -76
  33. package/lib/control/fullscreen.js +60 -20
  34. package/lib/control/geoLocate.js +75 -36
  35. package/lib/control/layerSwitch.js +36 -0
  36. package/lib/control/logo.js +26 -2
  37. package/lib/control/mapTheme.js +42 -7
  38. package/lib/control/mouseLocation.js +33 -2
  39. package/lib/control/scale.js +40 -6
  40. package/lib/control/zoom.js +33 -0
  41. package/lib/index.js +108 -122
  42. package/lib/marker-layer.js +86 -39
  43. package/lib/marker.js +91 -29
  44. package/lib/popup/layerPopup.js +94 -29
  45. package/lib/popup/popup.js +139 -48
  46. package/lib/utils/anchor.js +9 -4
  47. package/lib/utils/icon.js +2 -0
  48. package/lib/utils/popper.js +71 -14
  49. package/lib/utils/screenfull.js +54 -23
  50. package/package.json +6 -6
@@ -1,44 +1,67 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = exports.LayerPopup = void 0;
9
+
8
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
9
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
10
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
11
16
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
12
18
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
19
+
13
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
14
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
15
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
16
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
17
28
  var _l7Utils = require("@antv/l7-utils");
29
+
18
30
  var _lodash = require("lodash");
31
+
19
32
  var _popup = _interopRequireDefault(require("./popup"));
33
+
20
34
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
35
+
21
36
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
+
22
38
  var LayerPopup = /*#__PURE__*/function (_Popup) {
23
39
  (0, _inherits2.default)(LayerPopup, _Popup);
40
+
24
41
  var _super = _createSuper(LayerPopup);
42
+
25
43
  function LayerPopup() {
26
44
  var _this;
45
+
27
46
  (0, _classCallCheck2.default)(this, LayerPopup);
47
+
28
48
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29
49
  args[_key] = arguments[_key];
30
50
  }
51
+
31
52
  _this = _super.call.apply(_super, [this].concat(args));
32
53
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "layerConfigMap", new WeakMap());
33
54
  return _this;
34
55
  }
56
+
35
57
  (0, _createClass2.default)(LayerPopup, [{
36
58
  key: "layerConfigItems",
37
59
  get: function get() {
38
60
  var _ref;
61
+
39
62
  var _this$popupOption = this.popupOption,
40
- config = _this$popupOption.config,
41
- items = _this$popupOption.items;
63
+ config = _this$popupOption.config,
64
+ items = _this$popupOption.items;
42
65
  return (_ref = config !== null && config !== void 0 ? config : items) !== null && _ref !== void 0 ? _ref : [];
43
66
  }
44
67
  }, {
@@ -82,72 +105,93 @@ var LayerPopup = /*#__PURE__*/function (_Popup) {
82
105
  closeOnEsc: false
83
106
  });
84
107
  }
85
-
86
108
  /**
87
109
  * 绑定对应的图层事件
88
110
  * @protected
89
111
  */
112
+
90
113
  }, {
91
114
  key: "bindLayerEvent",
92
115
  value: function bindLayerEvent() {
93
116
  var _this2 = this;
117
+
94
118
  var trigger = this.popupOption.trigger;
95
119
  this.layerConfigItems.forEach(function (configItem) {
96
120
  var _layer$getSource;
121
+
97
122
  var layer = _this2.getLayerByConfig(configItem);
123
+
98
124
  if (!layer) {
99
125
  return;
100
126
  }
127
+
101
128
  var layerInfo = (0, _objectSpread2.default)({}, configItem);
129
+
102
130
  if (trigger === 'hover') {
103
131
  var onMouseMove = _this2.onLayerMouseMove.bind(_this2, layer);
132
+
104
133
  var onMouseOut = _this2.onLayerMouseOut.bind(_this2, layer);
134
+
105
135
  layerInfo.onMouseMove = onMouseMove;
106
136
  layerInfo.onMouseOut = onMouseOut;
107
137
  layer === null || layer === void 0 ? void 0 : layer.on('mousemove', onMouseMove);
108
138
  layer === null || layer === void 0 ? void 0 : layer.on('mouseout', onMouseOut);
109
139
  } else {
110
140
  var onClick = _this2.onLayerClick.bind(_this2, layer);
141
+
111
142
  layerInfo.onClick = onClick;
112
143
  layer === null || layer === void 0 ? void 0 : layer.on('click', onClick);
113
144
  }
145
+
114
146
  var source = layer === null || layer === void 0 ? void 0 : (_layer$getSource = layer.getSource) === null || _layer$getSource === void 0 ? void 0 : _layer$getSource.call(layer);
147
+
115
148
  var onSourceUpdate = _this2.onSourceUpdate.bind(_this2, layer);
149
+
116
150
  source === null || source === void 0 ? void 0 : source.on('update', onSourceUpdate);
117
151
  layerInfo.onSourceUpdate = onSourceUpdate;
152
+
118
153
  _this2.layerConfigMap.set(layer, layerInfo);
119
154
  });
120
155
  }
121
-
122
156
  /**
123
157
  * 解绑对应的图层事件
124
158
  * @protected
125
159
  */
160
+
126
161
  }, {
127
162
  key: "unbindLayerEvent",
128
163
  value: function unbindLayerEvent() {
129
164
  var _this3 = this;
165
+
130
166
  this.layerConfigItems.forEach(function (configItem) {
131
167
  var layer = _this3.getLayerByConfig(configItem);
168
+
132
169
  var layerInfo = layer && _this3.layerConfigMap.get(layer);
170
+
133
171
  if (!layerInfo) {
134
172
  return;
135
173
  }
174
+
136
175
  var onMouseMove = layerInfo.onMouseMove,
137
- onMouseOut = layerInfo.onMouseOut,
138
- onClick = layerInfo.onClick,
139
- onSourceUpdate = layerInfo.onSourceUpdate;
176
+ onMouseOut = layerInfo.onMouseOut,
177
+ onClick = layerInfo.onClick,
178
+ onSourceUpdate = layerInfo.onSourceUpdate;
179
+
140
180
  if (onMouseMove) {
141
181
  layer.off('mousemove', onMouseMove);
142
182
  }
183
+
143
184
  if (onMouseOut) {
144
185
  layer.off('mouseout', onMouseOut);
145
186
  }
187
+
146
188
  if (onClick) {
147
189
  layer.off('click', onClick);
148
190
  }
191
+
149
192
  if (onSourceUpdate) {
150
193
  var _layer$getSource2;
194
+
151
195
  layer === null || layer === void 0 ? void 0 : (_layer$getSource2 = layer.getSource()) === null || _layer$getSource2 === void 0 ? void 0 : _layer$getSource2.off('update', onSourceUpdate);
152
196
  }
153
197
  });
@@ -157,8 +201,9 @@ var LayerPopup = /*#__PURE__*/function (_Popup) {
157
201
  value: function onLayerMouseMove(layer, e) {
158
202
  if (!this.isSameFeature(layer, e.featureId)) {
159
203
  var _this$getLayerInfoFra = this.getLayerInfoFrag(layer, e),
160
- title = _this$getLayerInfoFra.title,
161
- content = _this$getLayerInfoFra.content;
204
+ title = _this$getLayerInfoFra.title,
205
+ content = _this$getLayerInfoFra.content;
206
+
162
207
  this.setDOMContent(content);
163
208
  this.setTitle(title);
164
209
  this.displayFeatureInfo = {
@@ -167,13 +212,13 @@ var LayerPopup = /*#__PURE__*/function (_Popup) {
167
212
  };
168
213
  this.show();
169
214
  }
170
- }
215
+ } // eslint-disable-next-line @typescript-eslint/no-unused-vars
171
216
 
172
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
173
217
  }, {
174
218
  key: "onLayerMouseOut",
175
219
  value: function onLayerMouseOut(layer, e) {
176
220
  this.displayFeatureInfo = undefined;
221
+
177
222
  if (this.isShow) {
178
223
  this.hide();
179
224
  }
@@ -185,8 +230,9 @@ var LayerPopup = /*#__PURE__*/function (_Popup) {
185
230
  this.hide();
186
231
  } else {
187
232
  var _this$getLayerInfoFra2 = this.getLayerInfoFrag(layer, e),
188
- title = _this$getLayerInfoFra2.title,
189
- content = _this$getLayerInfoFra2.content;
233
+ title = _this$getLayerInfoFra2.title,
234
+ content = _this$getLayerInfoFra2.content;
235
+
190
236
  this.setDOMContent(content);
191
237
  this.setLnglat(e.lngLat);
192
238
  this.setTitle(title);
@@ -203,57 +249,70 @@ var LayerPopup = /*#__PURE__*/function (_Popup) {
203
249
  this.hide();
204
250
  this.displayFeatureInfo = undefined;
205
251
  }
206
-
207
252
  /**
208
253
  * 通过当前图层和对应选中的元素获取气泡展示的 HTML 内容
209
254
  * @param layer
210
255
  * @param e
211
256
  * @protected
212
257
  */
258
+
213
259
  }, {
214
260
  key: "getLayerInfoFrag",
215
261
  value: function getLayerInfoFrag(layer, e) {
216
262
  var layerInfo = this.layerConfigMap.get(layer);
217
263
  var titleFrag;
218
264
  var contentFrag = document.createDocumentFragment();
265
+
219
266
  if (layerInfo) {
220
267
  var _feature = e.feature;
268
+
221
269
  if (_feature.type === 'Feature' && 'properties' in _feature && 'geometry' in _feature) {
222
270
  _feature = _feature.properties;
223
271
  }
272
+
224
273
  var title = layerInfo.title,
225
- fields = layerInfo.fields,
226
- customContent = layerInfo.customContent;
274
+ fields = layerInfo.fields,
275
+ customContent = layerInfo.customContent;
276
+
227
277
  if (title) {
228
278
  titleFrag = document.createDocumentFragment();
229
279
  var titleElement = title instanceof Function ? title(_feature) : title;
280
+
230
281
  _l7Utils.DOM.appendElementType(titleFrag, titleElement);
231
282
  }
283
+
232
284
  if (customContent) {
233
285
  var content = customContent instanceof Function ? customContent(_feature) : customContent;
286
+
234
287
  _l7Utils.DOM.appendElementType(contentFrag, content);
235
288
  } else if (fields !== null && fields !== void 0 && fields.length) {
236
289
  fields === null || fields === void 0 ? void 0 : fields.forEach(function (fieldConfig) {
237
290
  var _ref3, _ref4;
238
- var _ref2 = typeof fieldConfig === 'string' ?
239
- // tslint:disable-next-line:no-object-literal-type-assertion
240
- {
241
- field: fieldConfig
242
- } : fieldConfig,
243
- field = _ref2.field,
244
- formatField = _ref2.formatField,
245
- formatValue = _ref2.formatValue,
246
- getValue = _ref2.getValue;
291
+
292
+ var _ref2 = typeof fieldConfig === 'string' ? // tslint:disable-next-line:no-object-literal-type-assertion
293
+ {
294
+ field: fieldConfig
295
+ } : fieldConfig,
296
+ field = _ref2.field,
297
+ formatField = _ref2.formatField,
298
+ formatValue = _ref2.formatValue,
299
+ getValue = _ref2.getValue;
300
+
247
301
  var row = _l7Utils.DOM.create('div', 'l7-layer-popup__row');
302
+
248
303
  var value = getValue ? getValue(e.feature) : (0, _lodash.get)(_feature, field);
249
304
  var fieldElement = (_ref3 = formatField instanceof Function ? formatField(field, _feature) : formatField) !== null && _ref3 !== void 0 ? _ref3 : field;
250
305
  var valueElement = (_ref4 = formatValue instanceof Function ? formatValue(value, _feature) : formatValue) !== null && _ref4 !== void 0 ? _ref4 : value;
306
+
251
307
  var fieldSpan = _l7Utils.DOM.create('span', 'l7-layer-popup__key', row);
308
+
252
309
  _l7Utils.DOM.appendElementType(fieldSpan, fieldElement);
310
+
253
311
  _l7Utils.DOM.appendElementType(fieldSpan, document.createTextNode(':'));
254
- var valueSpan = _l7Utils.DOM.create('span', 'l7-layer-popup__value', row);
255
312
 
256
- // 当 value 中每项元素均为基础数据类型时,用逗号隔开
313
+ var valueSpan = _l7Utils.DOM.create('span', 'l7-layer-popup__value', row); // 当 value 中每项元素均为基础数据类型时,用逗号隔开
314
+
315
+
257
316
  if (Array.isArray(valueElement) && valueElement.every(function (item) {
258
317
  return !(item instanceof Object);
259
318
  })) {
@@ -261,40 +320,45 @@ var LayerPopup = /*#__PURE__*/function (_Popup) {
261
320
  return String(item);
262
321
  }).join(',');
263
322
  }
323
+
264
324
  _l7Utils.DOM.appendElementType(valueSpan, valueElement);
325
+
265
326
  contentFrag.appendChild(row);
266
327
  });
267
328
  }
268
329
  }
330
+
269
331
  return {
270
332
  title: titleFrag,
271
333
  content: contentFrag
272
334
  };
273
335
  }
274
-
275
336
  /**
276
337
  * 通过 Layer 配置访问到真实的 Layer 实例
277
338
  * @param configItem
278
339
  * @protected
279
340
  */
341
+
280
342
  }, {
281
343
  key: "getLayerByConfig",
282
344
  value: function getLayerByConfig(configItem) {
283
345
  var layer = configItem.layer;
346
+
284
347
  if (layer instanceof Object) {
285
348
  return layer;
286
349
  }
350
+
287
351
  if (typeof layer === 'string') {
288
352
  return this.layerService.getLayer(layer) || this.layerService.getLayerByName(layer);
289
353
  }
290
354
  }
291
-
292
355
  /**
293
356
  * 判断当前展示的 Feature 是否和上一次查看的一致
294
357
  * @param layer
295
358
  * @param featureId
296
359
  * @protected
297
360
  */
361
+
298
362
  }, {
299
363
  key: "isSameFeature",
300
364
  value: function isSameFeature(layer, featureId) {
@@ -304,4 +368,5 @@ var LayerPopup = /*#__PURE__*/function (_Popup) {
304
368
  }]);
305
369
  return LayerPopup;
306
370
  }(_popup.default);
371
+
307
372
  exports.default = exports.LayerPopup = LayerPopup;