@antv/l7-map 2.17.11 → 2.17.12

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 (103) hide show
  1. package/es/camera.js +148 -90
  2. package/es/earthmap.js +65 -13
  3. package/es/geo/edge_insets.js +14 -4
  4. package/es/geo/lng_lat.js +13 -5
  5. package/es/geo/lng_lat_bounds.js +17 -4
  6. package/es/geo/mercator.js +10 -2
  7. package/es/geo/point.js +7 -0
  8. package/es/geo/simple.js +11 -6
  9. package/es/geo/transform.js +132 -127
  10. package/es/handler/blockable_map_event.js +12 -7
  11. package/es/handler/box_zoom.js +30 -10
  12. package/es/handler/click_zoom.js +5 -0
  13. package/es/handler/events/event.js +2 -0
  14. package/es/handler/events/map_mouse_event.js +12 -0
  15. package/es/handler/events/map_touch_event.js +12 -2
  16. package/es/handler/events/map_wheel_event.js +12 -1
  17. package/es/handler/events/render_event.js +13 -0
  18. package/es/handler/handler_inertia.js +34 -6
  19. package/es/handler/handler_manager.js +147 -55
  20. package/es/handler/handler_util.js +2 -1
  21. package/es/handler/keyboard.js +20 -1
  22. package/es/handler/map_event.js +9 -3
  23. package/es/handler/mouse/mouse_handler.js +24 -11
  24. package/es/handler/mouse/mousepan_handler.js +11 -1
  25. package/es/handler/mouse/mousepitch_hander.js +11 -1
  26. package/es/handler/mouse/mouserotate_hander.js +11 -1
  27. package/es/handler/mouse/util.js +3 -2
  28. package/es/handler/scroll_zoom.js +71 -43
  29. package/es/handler/shim/dblclick_zoom.js +9 -4
  30. package/es/handler/shim/drag_pan.js +11 -4
  31. package/es/handler/shim/drag_rotate.js +10 -4
  32. package/es/handler/shim/touch_zoom_rotate.js +16 -6
  33. package/es/handler/tap/single_tap_recognizer.js +31 -8
  34. package/es/handler/tap/tap_drag_zoom.js +15 -7
  35. package/es/handler/tap/tap_recognizer.js +11 -3
  36. package/es/handler/tap/tap_zoom.js +7 -1
  37. package/es/handler/touch/touch_pan.js +22 -4
  38. package/es/handler/touch/touch_pitch.js +27 -10
  39. package/es/handler/touch/touch_rotate.js +19 -8
  40. package/es/handler/touch/touch_zoom.js +18 -5
  41. package/es/handler/touch/two_touch.js +32 -19
  42. package/es/hash.js +31 -9
  43. package/es/map.js +78 -16
  44. package/es/util.js +26 -18
  45. package/es/utils/Aabb.js +31 -10
  46. package/es/utils/dom.js +58 -24
  47. package/es/utils/performance.js +7 -8
  48. package/es/utils/primitives.js +11 -13
  49. package/es/utils/task_queue.js +23 -6
  50. package/lib/camera.js +169 -91
  51. package/lib/earthmap.js +80 -12
  52. package/lib/geo/edge_insets.js +18 -3
  53. package/lib/geo/lng_lat.js +18 -5
  54. package/lib/geo/lng_lat_bounds.js +20 -4
  55. package/lib/geo/mercator.js +22 -1
  56. package/lib/geo/point.js +8 -0
  57. package/lib/geo/simple.js +24 -5
  58. package/lib/geo/transform.js +164 -127
  59. package/lib/handler/blockable_map_event.js +14 -6
  60. package/lib/handler/box_zoom.js +39 -8
  61. package/lib/handler/click_zoom.js +6 -0
  62. package/lib/handler/events/event.js +5 -0
  63. package/lib/handler/events/index.js +4 -0
  64. package/lib/handler/events/map_mouse_event.js +20 -2
  65. package/lib/handler/events/map_touch_event.js +21 -2
  66. package/lib/handler/events/map_wheel_event.js +16 -1
  67. package/lib/handler/events/render_event.js +19 -0
  68. package/lib/handler/handler_inertia.js +37 -5
  69. package/lib/handler/handler_manager.js +171 -56
  70. package/lib/handler/handler_util.js +3 -1
  71. package/lib/handler/keyboard.js +22 -1
  72. package/lib/handler/map_event.js +11 -2
  73. package/lib/handler/mouse/index.js +4 -0
  74. package/lib/handler/mouse/mouse_handler.js +27 -10
  75. package/lib/handler/mouse/mousepan_handler.js +18 -1
  76. package/lib/handler/mouse/mousepitch_hander.js +17 -1
  77. package/lib/handler/mouse/mouserotate_hander.js +17 -1
  78. package/lib/handler/mouse/util.js +6 -2
  79. package/lib/handler/scroll_zoom.js +77 -43
  80. package/lib/handler/shim/dblclick_zoom.js +10 -4
  81. package/lib/handler/shim/drag_pan.js +13 -4
  82. package/lib/handler/shim/drag_rotate.js +11 -4
  83. package/lib/handler/shim/touch_zoom_rotate.js +18 -6
  84. package/lib/handler/tap/single_tap_recognizer.js +33 -8
  85. package/lib/handler/tap/tap_drag_zoom.js +18 -6
  86. package/lib/handler/tap/tap_recognizer.js +17 -2
  87. package/lib/handler/tap/tap_zoom.js +9 -0
  88. package/lib/handler/touch/index.js +5 -0
  89. package/lib/handler/touch/touch_pan.js +25 -4
  90. package/lib/handler/touch/touch_pitch.js +32 -10
  91. package/lib/handler/touch/touch_rotate.js +25 -8
  92. package/lib/handler/touch/touch_zoom.js +24 -5
  93. package/lib/handler/touch/two_touch.js +35 -18
  94. package/lib/hash.js +35 -8
  95. package/lib/index.js +8 -0
  96. package/lib/map.js +95 -15
  97. package/lib/util.js +38 -16
  98. package/lib/utils/Aabb.js +34 -10
  99. package/lib/utils/dom.js +64 -22
  100. package/lib/utils/performance.js +9 -8
  101. package/lib/utils/primitives.js +16 -13
  102. package/lib/utils/task_queue.js +24 -6
  103. package/package.json +3 -3
@@ -1,48 +1,80 @@
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 = void 0;
9
+
8
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
12
18
  var _l7Utils = require("@antv/l7-utils");
19
+
13
20
  var _lodash = require("lodash");
21
+
14
22
  var _point = _interopRequireDefault(require("../geo/point"));
23
+
15
24
  var _dom = _interopRequireDefault(require("../utils/dom"));
25
+
16
26
  var _blockable_map_event = _interopRequireDefault(require("./blockable_map_event"));
27
+
17
28
  var _box_zoom = _interopRequireDefault(require("./box_zoom"));
29
+
18
30
  var _click_zoom = _interopRequireDefault(require("./click_zoom"));
31
+
19
32
  var _event = require("./events/event");
33
+
20
34
  var _render_event = _interopRequireDefault(require("./events/render_event"));
35
+
21
36
  var _handler_inertia = _interopRequireDefault(require("./handler_inertia"));
37
+
22
38
  var _keyboard = _interopRequireDefault(require("./keyboard"));
39
+
23
40
  var _map_event = _interopRequireDefault(require("./map_event"));
41
+
24
42
  var _mouse = require("./mouse");
43
+
25
44
  var _scroll_zoom = _interopRequireDefault(require("./scroll_zoom"));
45
+
26
46
  var _dblclick_zoom = _interopRequireDefault(require("./shim/dblclick_zoom"));
47
+
27
48
  var _drag_pan = _interopRequireDefault(require("./shim/drag_pan"));
49
+
28
50
  var _drag_rotate = _interopRequireDefault(require("./shim/drag_rotate"));
51
+
29
52
  var _touch_zoom_rotate = _interopRequireDefault(require("./shim/touch_zoom_rotate"));
53
+
30
54
  var _tap_drag_zoom = _interopRequireDefault(require("./tap/tap_drag_zoom"));
55
+
31
56
  var _tap_zoom = _interopRequireDefault(require("./tap/tap_zoom"));
57
+
32
58
  var _touch = require("./touch");
59
+
33
60
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
61
+
34
62
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
35
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } // @ts-ignore
36
- // tslint:disable-next-line: no-submodule-imports
63
+
64
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
65
+
37
66
  var _isMoving = function isMoving(p) {
38
67
  return p.zoom || p.drag || p.pitch || p.rotate;
39
68
  };
69
+
40
70
  function hasChange(result) {
41
71
  return result.panDelta && result.panDelta.mag() || result.zoomDelta || result.bearingDelta || result.pitchDelta;
42
72
  }
73
+
43
74
  var HandlerManager = /*#__PURE__*/function () {
44
75
  function HandlerManager(map, options) {
45
76
  var _this = this;
77
+
46
78
  (0, _classCallCheck2.default)(this, HandlerManager);
47
79
  (0, _defineProperty2.default)(this, "handleWindowEvent", function (e) {
48
80
  _this.handleEvent(e, "".concat(e.type, "Window"));
@@ -50,11 +82,12 @@ var HandlerManager = /*#__PURE__*/function () {
50
82
  (0, _defineProperty2.default)(this, "handleEvent", function (e, eventName) {
51
83
  if (e.type === 'blur') {
52
84
  _this.stop();
85
+
53
86
  return;
54
87
  }
88
+
55
89
  _this.updatingCamera = true;
56
90
  var inputEvent = e.type === 'renderFrame' ? undefined : e;
57
-
58
91
  /*
59
92
  * We don't call e.preventDefault() for any events by default.
60
93
  * Handlers are responsible for calling it where necessary.
@@ -64,39 +97,46 @@ var HandlerManager = /*#__PURE__*/function () {
64
97
  needsRenderFrame: false
65
98
  };
66
99
  var eventsInProgress = {};
67
- var activeHandlers = {};
68
- // @ts-ignore
69
- var mapTouches = e.touches ?
70
- // @ts-ignore
100
+ var activeHandlers = {}; // @ts-ignore
101
+
102
+ var mapTouches = e.touches ? // @ts-ignore
71
103
  _this.getMapTouches(e.touches) : undefined;
72
104
  var points = mapTouches ? _dom.default.touchPos(_this.el, mapTouches) : _dom.default.mousePos(_this.el, e);
105
+
73
106
  var _iterator = _createForOfIteratorHelper(_this.handlers),
74
- _step;
107
+ _step;
108
+
75
109
  try {
76
110
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
77
111
  var _step$value = _step.value,
78
- handlerName = _step$value.handlerName,
79
- handler = _step$value.handler,
80
- allowed = _step$value.allowed;
112
+ handlerName = _step$value.handlerName,
113
+ handler = _step$value.handler,
114
+ allowed = _step$value.allowed;
115
+
81
116
  if (!handler.isEnabled()) {
82
117
  continue;
83
118
  }
119
+
84
120
  var data = void 0;
121
+
85
122
  if (_this.blockedByActive(activeHandlers, allowed, handlerName)) {
86
123
  handler.reset();
87
124
  } else {
88
- var handerName = eventName || e.type;
89
- // @ts-ignore
125
+ var handerName = eventName || e.type; // @ts-ignore
126
+
90
127
  if (handler && handler[handerName]) {
91
128
  // @ts-ignore
92
129
  data = handler[handerName](e, points, mapTouches);
130
+
93
131
  _this.mergeIHandlerResult(mergedIHandlerResult, eventsInProgress, data, handlerName, inputEvent);
132
+
94
133
  if (data && data.needsRenderFrame) {
95
134
  _this.triggerRenderFrame();
96
135
  }
97
136
  }
98
- }
99
- // @ts-ignore
137
+ } // @ts-ignore
138
+
139
+
100
140
  if (data || handler.isActive()) {
101
141
  activeHandlers[handlerName] = handler;
102
142
  }
@@ -106,25 +146,35 @@ var HandlerManager = /*#__PURE__*/function () {
106
146
  } finally {
107
147
  _iterator.f();
108
148
  }
149
+
109
150
  var deactivatedHandlers = {};
151
+
110
152
  for (var name in _this.previousActiveHandlers) {
111
153
  if (!activeHandlers[name]) {
112
154
  deactivatedHandlers[name] = inputEvent;
113
155
  }
114
156
  }
157
+
115
158
  _this.previousActiveHandlers = activeHandlers;
159
+
116
160
  if (Object.keys(deactivatedHandlers).length || hasChange(mergedIHandlerResult)) {
117
161
  _this.changes.push([mergedIHandlerResult, eventsInProgress, deactivatedHandlers]);
162
+
118
163
  _this.triggerRenderFrame();
119
164
  }
165
+
120
166
  if (Object.keys(activeHandlers).length || hasChange(mergedIHandlerResult)) {
121
167
  _this.map.stop(true);
122
168
  }
169
+
123
170
  _this.updatingCamera = false;
124
171
  var cameraAnimation = mergedIHandlerResult.cameraAnimation;
172
+
125
173
  if (cameraAnimation) {
126
174
  _this.inertia.clear();
175
+
127
176
  _this.fireEvents({}, {});
177
+
128
178
  _this.changes = [];
129
179
  cameraAnimation(_this.map);
130
180
  }
@@ -138,17 +188,16 @@ var HandlerManager = /*#__PURE__*/function () {
138
188
  this.bearingSnap = options.bearingSnap;
139
189
  this.rotateEnabled = options.rotateEnabled;
140
190
  this.pitchEnabled = options.pitchEnabled;
141
- this.previousActiveHandlers = {};
191
+ this.previousActiveHandlers = {}; // Track whether map is currently moving, to compute start/move/end events
142
192
 
143
- // Track whether map is currently moving, to compute start/move/end events
144
193
  this.eventsInProgress = {};
145
194
  this.addDefaultHandlers(options);
146
195
  var el = this.el;
147
196
  this.listeners = [];
197
+
148
198
  if (!_l7Utils.isMini) {
149
199
  // l7 - mini
150
- this.listeners = [
151
- // Bind touchstart and touchmove with passive: false because, even though
200
+ this.listeners = [// Bind touchstart and touchmove with passive: false because, even though
152
201
  // they only fire a map events and therefore could theoretically be
153
202
  // passive, binding with passive: true causes iOS not to respect
154
203
  // e.preventDefault() in _other_ handlers, even if they are non-passive
@@ -157,8 +206,7 @@ var HandlerManager = /*#__PURE__*/function () {
157
206
  passive: false
158
207
  }], [el, 'touchmove', {
159
208
  passive: false
160
- }], [el, 'touchend', undefined], [el, 'touchcancel', undefined], [el, 'mousedown', undefined], [el, 'mousemove', undefined], [el, 'mouseup', undefined],
161
- // Bind window-level event listeners for move and up/end events. In the absence of
209
+ }], [el, 'touchend', undefined], [el, 'touchcancel', undefined], [el, 'mousedown', undefined], [el, 'mousemove', undefined], [el, 'mouseup', undefined], // Bind window-level event listeners for move and up/end events. In the absence of
162
210
  // the pointer capture API, which is not supported by all necessary platforms,
163
211
  // window-level event listeners give us the best shot at capturing events that
164
212
  // fall outside the map canvas element. Use `{capture: true}` for the move event
@@ -166,26 +214,26 @@ var HandlerManager = /*#__PURE__*/function () {
166
214
  // @ts-ignore
167
215
  [window.document, 'mousemove', {
168
216
  capture: true
169
- }],
170
- // @ts-ignore
217
+ }], // @ts-ignore
171
218
  [window.document, 'mouseup', undefined], [el, 'mouseover', undefined], [el, 'mouseout', undefined], [el, 'dblclick', undefined], [el, 'click', undefined], [el, 'keydown', {
172
219
  capture: false
173
220
  }], [el, 'keyup', undefined], [el, 'wheel', {
174
221
  passive: false
175
- }], [el, 'contextmenu', undefined],
176
- // @ts-ignore
222
+ }], [el, 'contextmenu', undefined], // @ts-ignore
177
223
  [window, 'blur', undefined]];
224
+
178
225
  var _iterator2 = _createForOfIteratorHelper(this.listeners),
179
- _step2;
226
+ _step2;
227
+
180
228
  try {
181
229
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
182
230
  var _step2$value = (0, _slicedToArray2.default)(_step2.value, 3),
183
- target = _step2$value[0],
184
- type = _step2$value[1],
185
- listenerOptions = _step2$value[2];
186
- // @ts-ignore
187
- _dom.default.addEventListener(target, type,
231
+ target = _step2$value[0],
232
+ type = _step2$value[1],
233
+ listenerOptions = _step2$value[2];
234
+
188
235
  // @ts-ignore
236
+ _dom.default.addEventListener(target, type, // @ts-ignore
189
237
  target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
190
238
  }
191
239
  } catch (err) {
@@ -197,31 +245,36 @@ var HandlerManager = /*#__PURE__*/function () {
197
245
  _l7Utils.$window.document.addEventListener('touchstart', function (e) {
198
246
  _this.handleEvent(e);
199
247
  }, {});
248
+
200
249
  _l7Utils.$window.document.addEventListener('touchmove', function (e) {
201
250
  _this.handleEvent(e);
202
251
  }, {});
252
+
203
253
  _l7Utils.$window.document.addEventListener('touchend', function (e) {
204
254
  _this.handleEvent(e);
205
255
  }, {});
256
+
206
257
  _l7Utils.$window.document.addEventListener('touchcancel', function (e) {
207
258
  _this.handleEvent(e);
208
259
  }, {});
209
260
  }
210
261
  }
262
+
211
263
  (0, _createClass2.default)(HandlerManager, [{
212
264
  key: "destroy",
213
265
  value: function destroy() {
214
266
  var _iterator3 = _createForOfIteratorHelper(this.listeners),
215
- _step3;
267
+ _step3;
268
+
216
269
  try {
217
270
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
218
271
  var _step3$value = (0, _slicedToArray2.default)(_step3.value, 3),
219
- target = _step3$value[0],
220
- type = _step3$value[1],
221
- listenerOptions = _step3$value[2];
222
- // @ts-ignore
223
- _dom.default.removeEventListener(target, type,
272
+ target = _step3$value[0],
273
+ type = _step3$value[1],
274
+ listenerOptions = _step3$value[2];
275
+
224
276
  // @ts-ignore
277
+ _dom.default.removeEventListener(target, type, // @ts-ignore
225
278
  target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
226
279
  }
227
280
  } catch (err) {
@@ -237,8 +290,10 @@ var HandlerManager = /*#__PURE__*/function () {
237
290
  if (this.updatingCamera) {
238
291
  return;
239
292
  }
293
+
240
294
  var _iterator4 = _createForOfIteratorHelper(this.handlers),
241
- _step4;
295
+ _step4;
296
+
242
297
  try {
243
298
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
244
299
  var handler = _step4.value.handler;
@@ -249,6 +304,7 @@ var HandlerManager = /*#__PURE__*/function () {
249
304
  } finally {
250
305
  _iterator4.f();
251
306
  }
307
+
252
308
  this.inertia.clear();
253
309
  this.fireEvents({}, {});
254
310
  this.changes = [];
@@ -257,10 +313,12 @@ var HandlerManager = /*#__PURE__*/function () {
257
313
  key: "isActive",
258
314
  value: function isActive() {
259
315
  var _iterator5 = _createForOfIteratorHelper(this.handlers),
260
- _step5;
316
+ _step5;
317
+
261
318
  try {
262
319
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
263
320
  var handler = _step5.value.handler;
321
+
264
322
  if (handler.isActive()) {
265
323
  return true;
266
324
  }
@@ -270,6 +328,7 @@ var HandlerManager = /*#__PURE__*/function () {
270
328
  } finally {
271
329
  _iterator5.f();
272
330
  }
331
+
273
332
  return false;
274
333
  }
275
334
  }, {
@@ -293,22 +352,25 @@ var HandlerManager = /*#__PURE__*/function () {
293
352
  if (!HandlerResult) {
294
353
  return;
295
354
  }
355
+
296
356
  (0, _lodash.merge)(mergedIHandlerResult, HandlerResult);
297
357
  var eventData = {
298
358
  handlerName: name,
299
359
  originalEvent: HandlerResult.originalEvent || e
300
- };
360
+ }; // track which handler changed which camera property
301
361
 
302
- // track which handler changed which camera property
303
362
  if (HandlerResult.zoomDelta !== undefined) {
304
363
  eventsInProgress.zoom = eventData;
305
364
  }
365
+
306
366
  if (HandlerResult.panDelta !== undefined) {
307
367
  eventsInProgress.drag = eventData;
308
368
  }
369
+
309
370
  if (HandlerResult.pitchDelta !== undefined) {
310
371
  eventsInProgress.pitch = eventData;
311
372
  }
373
+
312
374
  if (HandlerResult.bearingDelta !== undefined) {
313
375
  eventsInProgress.rotate = eventData;
314
376
  }
@@ -317,13 +379,16 @@ var HandlerManager = /*#__PURE__*/function () {
317
379
  key: "triggerRenderFrame",
318
380
  value: function triggerRenderFrame() {
319
381
  var _this2 = this;
382
+
320
383
  if (this.frameId === undefined) {
321
384
  this.frameId = this.map.requestRenderFrame(function (timeStamp) {
322
385
  // @ts-ignore
323
386
  delete _this2.frameId;
387
+
324
388
  _this2.handleEvent(new _render_event.default('renderFrame', {
325
389
  timeStamp: timeStamp
326
390
  }));
391
+
327
392
  _this2.applyChanges();
328
393
  });
329
394
  }
@@ -365,8 +430,10 @@ var HandlerManager = /*#__PURE__*/function () {
365
430
  var keyboard = map.keyboard = new _keyboard.default();
366
431
  this.add('keyboard', keyboard);
367
432
  this.add('blockableMapEvent', new _blockable_map_event.default(map));
433
+
368
434
  for (var _i = 0, _arr = ['boxZoom', 'doubleClickZoom', 'tapDragZoom', 'touchPitch', 'dragRotate', 'dragPan', 'touchZoomRotate', 'scrollZoom', 'keyboard']; _i < _arr.length; _i++) {
369
435
  var name = _arr[_i];
436
+
370
437
  // @ts-ignore
371
438
  if (options.interactive && options[name]) {
372
439
  // @ts-ignore
@@ -391,22 +458,27 @@ var HandlerManager = /*#__PURE__*/function () {
391
458
  if (name === myName) {
392
459
  continue;
393
460
  }
461
+
394
462
  if (!allowed || allowed.indexOf(name) < 0) {
395
463
  return true;
396
464
  }
397
465
  }
466
+
398
467
  return false;
399
468
  }
400
469
  }, {
401
470
  key: "getMapTouches",
402
471
  value: function getMapTouches(touches) {
403
472
  var mapTouches = [];
473
+
404
474
  var _iterator6 = _createForOfIteratorHelper(touches),
405
- _step6;
475
+ _step6;
476
+
406
477
  try {
407
478
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
408
479
  var t = _step6.value;
409
480
  var target = t.target;
481
+
410
482
  if (_l7Utils.isMini || this.el.contains(target)) {
411
483
  mapTouches.push(t);
412
484
  }
@@ -416,6 +488,7 @@ var HandlerManager = /*#__PURE__*/function () {
416
488
  } finally {
417
489
  _iterator6.f();
418
490
  }
491
+
419
492
  return mapTouches;
420
493
  }
421
494
  }, {
@@ -424,35 +497,45 @@ var HandlerManager = /*#__PURE__*/function () {
424
497
  var combined = {};
425
498
  var combinedEventsInProgress = {};
426
499
  var combinedDeactivatedHandlers = {};
500
+
427
501
  var _iterator7 = _createForOfIteratorHelper(this.changes),
428
- _step7;
502
+ _step7;
503
+
429
504
  try {
430
505
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
431
506
  var _step7$value = (0, _slicedToArray2.default)(_step7.value, 3),
432
- change = _step7$value[0],
433
- eventsInProgress = _step7$value[1],
434
- deactivatedHandlers = _step7$value[2];
507
+ change = _step7$value[0],
508
+ eventsInProgress = _step7$value[1],
509
+ deactivatedHandlers = _step7$value[2];
510
+
435
511
  if (change.panDelta) {
436
512
  combined.panDelta = (combined.panDelta || new _point.default(0, 0))._add(change.panDelta);
437
513
  }
514
+
438
515
  if (change.zoomDelta) {
439
516
  combined.zoomDelta = (combined.zoomDelta || 0) + change.zoomDelta;
440
517
  }
518
+
441
519
  if (change.bearingDelta) {
442
520
  combined.bearingDelta = (combined.bearingDelta || 0) + change.bearingDelta;
443
521
  }
522
+
444
523
  if (change.pitchDelta) {
445
524
  combined.pitchDelta = (combined.pitchDelta || 0) + change.pitchDelta;
446
525
  }
526
+
447
527
  if (change.around !== undefined) {
448
528
  combined.around = change.around;
449
529
  }
530
+
450
531
  if (change.pinchAround !== undefined) {
451
532
  combined.pinchAround = change.pinchAround;
452
533
  }
534
+
453
535
  if (change.noInertia) {
454
536
  combined.noInertia = change.noInertia;
455
537
  }
538
+
456
539
  (0, _lodash.merge)(combinedEventsInProgress, eventsInProgress);
457
540
  (0, _lodash.merge)(combinedDeactivatedHandlers, deactivatedHandlers);
458
541
  }
@@ -461,6 +544,7 @@ var HandlerManager = /*#__PURE__*/function () {
461
544
  } finally {
462
545
  _iterator7.f();
463
546
  }
547
+
464
548
  this.updateMapTransform(combined, combinedEventsInProgress, combinedDeactivatedHandlers);
465
549
  this.changes = [];
466
550
  }
@@ -469,84 +553,106 @@ var HandlerManager = /*#__PURE__*/function () {
469
553
  value: function updateMapTransform(combinedResult, combinedEventsInProgress, deactivatedHandlers) {
470
554
  var map = this.map;
471
555
  var tr = map.transform;
556
+
472
557
  if (!hasChange(combinedResult)) {
473
558
  return this.fireEvents(combinedEventsInProgress, deactivatedHandlers);
474
559
  }
560
+
475
561
  var panDelta = combinedResult.panDelta,
476
- zoomDelta = combinedResult.zoomDelta,
477
- bearingDelta = combinedResult.bearingDelta,
478
- pitchDelta = combinedResult.pitchDelta,
479
- pinchAround = combinedResult.pinchAround;
562
+ zoomDelta = combinedResult.zoomDelta,
563
+ bearingDelta = combinedResult.bearingDelta,
564
+ pitchDelta = combinedResult.pitchDelta,
565
+ pinchAround = combinedResult.pinchAround;
480
566
  var around = combinedResult.around;
567
+
481
568
  if (pinchAround !== undefined) {
482
569
  around = pinchAround;
483
- }
570
+ } // stop any ongoing camera animations (easeTo, flyTo)
571
+
484
572
 
485
- // stop any ongoing camera animations (easeTo, flyTo)
486
573
  map.stop(true);
487
574
  around = around || map.transform.centerPoint;
488
575
  var loc = tr.pointLocation(panDelta ? around.sub(panDelta) : around);
576
+
489
577
  if (bearingDelta && this.rotateEnabled) {
490
578
  tr.bearing += bearingDelta;
491
579
  }
580
+
492
581
  if (pitchDelta && this.pitchEnabled) {
493
582
  tr.pitch += pitchDelta;
494
583
  }
584
+
495
585
  if (zoomDelta) {
496
586
  tr.zoom += zoomDelta;
497
587
  }
588
+
498
589
  tr.setLocationAtPoint(loc, around);
499
590
  this.map.update();
591
+
500
592
  if (!combinedResult.noInertia) {
501
593
  this.inertia.record(combinedResult);
502
594
  }
595
+
503
596
  this.fireEvents(combinedEventsInProgress, deactivatedHandlers);
504
597
  }
505
598
  }, {
506
599
  key: "fireEvents",
507
600
  value: function fireEvents(newEventsInProgress, deactivatedHandlers) {
508
601
  var _this3 = this;
602
+
509
603
  var wasMoving = _isMoving(this.eventsInProgress);
604
+
510
605
  var nowMoving = _isMoving(newEventsInProgress);
606
+
511
607
  var startEvents = {};
608
+
512
609
  for (var eventName in newEventsInProgress) {
513
610
  if (newEventsInProgress[eventName]) {
514
611
  var originalEvent = newEventsInProgress[eventName].originalEvent;
612
+
515
613
  if (!this.eventsInProgress[eventName]) {
516
614
  startEvents["".concat(eventName, "start")] = originalEvent;
517
615
  }
616
+
518
617
  this.eventsInProgress[eventName] = newEventsInProgress[eventName];
519
618
  }
520
- }
619
+ } // fire start events only after this.eventsInProgress has been updated
620
+
521
621
 
522
- // fire start events only after this.eventsInProgress has been updated
523
622
  if (!wasMoving && nowMoving) {
524
623
  this.fireEvent('movestart', nowMoving.originalEvent);
525
624
  }
625
+
526
626
  for (var name in startEvents) {
527
627
  if (startEvents[name]) {
528
628
  this.fireEvent(name, startEvents[name]);
529
629
  }
530
630
  }
631
+
531
632
  if (newEventsInProgress.rotate) {
532
633
  this.bearingChanged = true;
533
634
  }
635
+
534
636
  if (nowMoving) {
535
637
  this.fireEvent('move', nowMoving.originalEvent);
536
638
  }
639
+
537
640
  for (var _eventName in newEventsInProgress) {
538
641
  if (newEventsInProgress[_eventName]) {
539
642
  var _originalEvent = newEventsInProgress[_eventName].originalEvent;
540
643
  this.fireEvent(_eventName, _originalEvent);
541
644
  }
542
645
  }
646
+
543
647
  var endEvents = {};
544
648
  var originalEndEvent;
649
+
545
650
  for (var _eventName2 in this.eventsInProgress) {
546
651
  if (this.eventsInProgress[_eventName2]) {
547
652
  var _this$eventsInProgres = this.eventsInProgress[_eventName2],
548
- handlerName = _this$eventsInProgres.handlerName,
549
- _originalEvent2 = _this$eventsInProgres.originalEvent;
653
+ handlerName = _this$eventsInProgres.handlerName,
654
+ _originalEvent2 = _this$eventsInProgres.originalEvent;
655
+
550
656
  if (!this.handlersById[handlerName].isActive()) {
551
657
  delete this.eventsInProgress[_eventName2];
552
658
  originalEndEvent = deactivatedHandlers[handlerName] || _originalEvent2;
@@ -554,22 +660,28 @@ var HandlerManager = /*#__PURE__*/function () {
554
660
  }
555
661
  }
556
662
  }
663
+
557
664
  for (var _name in endEvents) {
558
665
  if (endEvents[_name]) {
559
666
  this.fireEvent(_name, endEvents[_name]);
560
667
  }
561
668
  }
669
+
562
670
  var stillMoving = _isMoving(this.eventsInProgress);
671
+
563
672
  if ((wasMoving || nowMoving) && !stillMoving) {
564
673
  this.updatingCamera = true;
565
674
  var inertialEase = this.inertia.onMoveEnd(this.map.dragPan.inertiaOptions);
675
+
566
676
  var shouldSnapToNorth = function shouldSnapToNorth(bearing) {
567
677
  return bearing !== 0 && -_this3.bearingSnap < bearing && bearing < _this3.bearingSnap;
568
678
  };
679
+
569
680
  if (inertialEase) {
570
681
  if (shouldSnapToNorth(inertialEase.bearing || this.map.getBearing())) {
571
682
  inertialEase.bearing = 0;
572
683
  }
684
+
573
685
  this.map.easeTo(inertialEase, {
574
686
  originalEvent: originalEndEvent
575
687
  });
@@ -577,10 +689,12 @@ var HandlerManager = /*#__PURE__*/function () {
577
689
  this.map.emit('moveend', new _event.Event('moveend', {
578
690
  originalEvent: originalEndEvent
579
691
  }));
692
+
580
693
  if (shouldSnapToNorth(this.map.getBearing())) {
581
694
  this.map.resetNorth();
582
695
  }
583
696
  }
697
+
584
698
  this.bearingChanged = false;
585
699
  this.updatingCamera = false;
586
700
  }
@@ -595,5 +709,6 @@ var HandlerManager = /*#__PURE__*/function () {
595
709
  }]);
596
710
  return HandlerManager;
597
711
  }();
712
+
598
713
  var _default = HandlerManager;
599
714
  exports.default = _default;
@@ -4,12 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.indexTouches = indexTouches;
7
- // @ts-ignore
8
7
 
8
+ // @ts-ignore
9
9
  function indexTouches(touches, points) {
10
10
  var obj = {};
11
+
11
12
  for (var i = 0; i < touches.length; i++) {
12
13
  obj[touches[i].identifier] = points[i];
13
14
  }
15
+
14
16
  return obj;
15
17
  }