@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
@@ -2,9 +2,13 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/esm/createClass";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
+
5
6
  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; } } }; }
7
+
6
8
  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); }
7
- 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; }
9
+
10
+ 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; }
11
+
8
12
  // @ts-ignore
9
13
  // tslint:disable-next-line: no-submodule-imports
10
14
  import { $window, isMini } from '@antv/l7-utils';
@@ -28,27 +32,34 @@ import TouchZoomRotateHandler from "./shim/touch_zoom_rotate";
28
32
  import TapDragZoomHandler from "./tap/tap_drag_zoom";
29
33
  import TapZoomHandler from "./tap/tap_zoom";
30
34
  import { TouchPanHandler, TouchPitchHandler, TouchRotateHandler, TouchZoomHandler } from "./touch";
35
+
31
36
  var _isMoving = function isMoving(p) {
32
37
  return p.zoom || p.drag || p.pitch || p.rotate;
33
38
  };
39
+
34
40
  function hasChange(result) {
35
41
  return result.panDelta && result.panDelta.mag() || result.zoomDelta || result.bearingDelta || result.pitchDelta;
36
42
  }
43
+
37
44
  var HandlerManager = /*#__PURE__*/function () {
38
45
  function HandlerManager(map, options) {
39
46
  var _this = this;
47
+
40
48
  _classCallCheck(this, HandlerManager);
49
+
41
50
  _defineProperty(this, "handleWindowEvent", function (e) {
42
51
  _this.handleEvent(e, "".concat(e.type, "Window"));
43
52
  });
53
+
44
54
  _defineProperty(this, "handleEvent", function (e, eventName) {
45
55
  if (e.type === 'blur') {
46
56
  _this.stop();
57
+
47
58
  return;
48
59
  }
60
+
49
61
  _this.updatingCamera = true;
50
62
  var inputEvent = e.type === 'renderFrame' ? undefined : e;
51
-
52
63
  /*
53
64
  * We don't call e.preventDefault() for any events by default.
54
65
  * Handlers are responsible for calling it where necessary.
@@ -58,39 +69,46 @@ var HandlerManager = /*#__PURE__*/function () {
58
69
  needsRenderFrame: false
59
70
  };
60
71
  var eventsInProgress = {};
61
- var activeHandlers = {};
62
- // @ts-ignore
63
- var mapTouches = e.touches ?
64
- // @ts-ignore
72
+ var activeHandlers = {}; // @ts-ignore
73
+
74
+ var mapTouches = e.touches ? // @ts-ignore
65
75
  _this.getMapTouches(e.touches) : undefined;
66
76
  var points = mapTouches ? DOM.touchPos(_this.el, mapTouches) : DOM.mousePos(_this.el, e);
77
+
67
78
  var _iterator = _createForOfIteratorHelper(_this.handlers),
68
- _step;
79
+ _step;
80
+
69
81
  try {
70
82
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
71
83
  var _step$value = _step.value,
72
- handlerName = _step$value.handlerName,
73
- handler = _step$value.handler,
74
- allowed = _step$value.allowed;
84
+ handlerName = _step$value.handlerName,
85
+ handler = _step$value.handler,
86
+ allowed = _step$value.allowed;
87
+
75
88
  if (!handler.isEnabled()) {
76
89
  continue;
77
90
  }
91
+
78
92
  var data = void 0;
93
+
79
94
  if (_this.blockedByActive(activeHandlers, allowed, handlerName)) {
80
95
  handler.reset();
81
96
  } else {
82
- var handerName = eventName || e.type;
83
- // @ts-ignore
97
+ var handerName = eventName || e.type; // @ts-ignore
98
+
84
99
  if (handler && handler[handerName]) {
85
100
  // @ts-ignore
86
101
  data = handler[handerName](e, points, mapTouches);
102
+
87
103
  _this.mergeIHandlerResult(mergedIHandlerResult, eventsInProgress, data, handlerName, inputEvent);
104
+
88
105
  if (data && data.needsRenderFrame) {
89
106
  _this.triggerRenderFrame();
90
107
  }
91
108
  }
92
- }
93
- // @ts-ignore
109
+ } // @ts-ignore
110
+
111
+
94
112
  if (data || handler.isActive()) {
95
113
  activeHandlers[handlerName] = handler;
96
114
  }
@@ -100,29 +118,40 @@ var HandlerManager = /*#__PURE__*/function () {
100
118
  } finally {
101
119
  _iterator.f();
102
120
  }
121
+
103
122
  var deactivatedHandlers = {};
123
+
104
124
  for (var name in _this.previousActiveHandlers) {
105
125
  if (!activeHandlers[name]) {
106
126
  deactivatedHandlers[name] = inputEvent;
107
127
  }
108
128
  }
129
+
109
130
  _this.previousActiveHandlers = activeHandlers;
131
+
110
132
  if (Object.keys(deactivatedHandlers).length || hasChange(mergedIHandlerResult)) {
111
133
  _this.changes.push([mergedIHandlerResult, eventsInProgress, deactivatedHandlers]);
134
+
112
135
  _this.triggerRenderFrame();
113
136
  }
137
+
114
138
  if (Object.keys(activeHandlers).length || hasChange(mergedIHandlerResult)) {
115
139
  _this.map.stop(true);
116
140
  }
141
+
117
142
  _this.updatingCamera = false;
118
143
  var cameraAnimation = mergedIHandlerResult.cameraAnimation;
144
+
119
145
  if (cameraAnimation) {
120
146
  _this.inertia.clear();
147
+
121
148
  _this.fireEvents({}, {});
149
+
122
150
  _this.changes = [];
123
151
  cameraAnimation(_this.map);
124
152
  }
125
153
  });
154
+
126
155
  this.map = map;
127
156
  this.el = this.map.getCanvasContainer();
128
157
  this.handlers = [];
@@ -132,17 +161,16 @@ var HandlerManager = /*#__PURE__*/function () {
132
161
  this.bearingSnap = options.bearingSnap;
133
162
  this.rotateEnabled = options.rotateEnabled;
134
163
  this.pitchEnabled = options.pitchEnabled;
135
- this.previousActiveHandlers = {};
164
+ this.previousActiveHandlers = {}; // Track whether map is currently moving, to compute start/move/end events
136
165
 
137
- // Track whether map is currently moving, to compute start/move/end events
138
166
  this.eventsInProgress = {};
139
167
  this.addDefaultHandlers(options);
140
168
  var el = this.el;
141
169
  this.listeners = [];
170
+
142
171
  if (!isMini) {
143
172
  // l7 - mini
144
- this.listeners = [
145
- // Bind touchstart and touchmove with passive: false because, even though
173
+ this.listeners = [// Bind touchstart and touchmove with passive: false because, even though
146
174
  // they only fire a map events and therefore could theoretically be
147
175
  // passive, binding with passive: true causes iOS not to respect
148
176
  // e.preventDefault() in _other_ handlers, even if they are non-passive
@@ -151,8 +179,7 @@ var HandlerManager = /*#__PURE__*/function () {
151
179
  passive: false
152
180
  }], [el, 'touchmove', {
153
181
  passive: false
154
- }], [el, 'touchend', undefined], [el, 'touchcancel', undefined], [el, 'mousedown', undefined], [el, 'mousemove', undefined], [el, 'mouseup', undefined],
155
- // Bind window-level event listeners for move and up/end events. In the absence of
182
+ }], [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
156
183
  // the pointer capture API, which is not supported by all necessary platforms,
157
184
  // window-level event listeners give us the best shot at capturing events that
158
185
  // fall outside the map canvas element. Use `{capture: true}` for the move event
@@ -160,26 +187,26 @@ var HandlerManager = /*#__PURE__*/function () {
160
187
  // @ts-ignore
161
188
  [window.document, 'mousemove', {
162
189
  capture: true
163
- }],
164
- // @ts-ignore
190
+ }], // @ts-ignore
165
191
  [window.document, 'mouseup', undefined], [el, 'mouseover', undefined], [el, 'mouseout', undefined], [el, 'dblclick', undefined], [el, 'click', undefined], [el, 'keydown', {
166
192
  capture: false
167
193
  }], [el, 'keyup', undefined], [el, 'wheel', {
168
194
  passive: false
169
- }], [el, 'contextmenu', undefined],
170
- // @ts-ignore
195
+ }], [el, 'contextmenu', undefined], // @ts-ignore
171
196
  [window, 'blur', undefined]];
197
+
172
198
  var _iterator2 = _createForOfIteratorHelper(this.listeners),
173
- _step2;
199
+ _step2;
200
+
174
201
  try {
175
202
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
176
203
  var _step2$value = _slicedToArray(_step2.value, 3),
177
- target = _step2$value[0],
178
- type = _step2$value[1],
179
- listenerOptions = _step2$value[2];
180
- // @ts-ignore
181
- DOM.addEventListener(target, type,
204
+ target = _step2$value[0],
205
+ type = _step2$value[1],
206
+ listenerOptions = _step2$value[2];
207
+
182
208
  // @ts-ignore
209
+ DOM.addEventListener(target, type, // @ts-ignore
183
210
  target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
184
211
  }
185
212
  } catch (err) {
@@ -202,20 +229,22 @@ var HandlerManager = /*#__PURE__*/function () {
202
229
  }, {});
203
230
  }
204
231
  }
232
+
205
233
  _createClass(HandlerManager, [{
206
234
  key: "destroy",
207
235
  value: function destroy() {
208
236
  var _iterator3 = _createForOfIteratorHelper(this.listeners),
209
- _step3;
237
+ _step3;
238
+
210
239
  try {
211
240
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
212
241
  var _step3$value = _slicedToArray(_step3.value, 3),
213
- target = _step3$value[0],
214
- type = _step3$value[1],
215
- listenerOptions = _step3$value[2];
216
- // @ts-ignore
217
- DOM.removeEventListener(target, type,
242
+ target = _step3$value[0],
243
+ type = _step3$value[1],
244
+ listenerOptions = _step3$value[2];
245
+
218
246
  // @ts-ignore
247
+ DOM.removeEventListener(target, type, // @ts-ignore
219
248
  target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
220
249
  }
221
250
  } catch (err) {
@@ -231,8 +260,10 @@ var HandlerManager = /*#__PURE__*/function () {
231
260
  if (this.updatingCamera) {
232
261
  return;
233
262
  }
263
+
234
264
  var _iterator4 = _createForOfIteratorHelper(this.handlers),
235
- _step4;
265
+ _step4;
266
+
236
267
  try {
237
268
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
238
269
  var handler = _step4.value.handler;
@@ -243,6 +274,7 @@ var HandlerManager = /*#__PURE__*/function () {
243
274
  } finally {
244
275
  _iterator4.f();
245
276
  }
277
+
246
278
  this.inertia.clear();
247
279
  this.fireEvents({}, {});
248
280
  this.changes = [];
@@ -251,10 +283,12 @@ var HandlerManager = /*#__PURE__*/function () {
251
283
  key: "isActive",
252
284
  value: function isActive() {
253
285
  var _iterator5 = _createForOfIteratorHelper(this.handlers),
254
- _step5;
286
+ _step5;
287
+
255
288
  try {
256
289
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
257
290
  var handler = _step5.value.handler;
291
+
258
292
  if (handler.isActive()) {
259
293
  return true;
260
294
  }
@@ -264,6 +298,7 @@ var HandlerManager = /*#__PURE__*/function () {
264
298
  } finally {
265
299
  _iterator5.f();
266
300
  }
301
+
267
302
  return false;
268
303
  }
269
304
  }, {
@@ -287,22 +322,25 @@ var HandlerManager = /*#__PURE__*/function () {
287
322
  if (!HandlerResult) {
288
323
  return;
289
324
  }
325
+
290
326
  merge(mergedIHandlerResult, HandlerResult);
291
327
  var eventData = {
292
328
  handlerName: name,
293
329
  originalEvent: HandlerResult.originalEvent || e
294
- };
330
+ }; // track which handler changed which camera property
295
331
 
296
- // track which handler changed which camera property
297
332
  if (HandlerResult.zoomDelta !== undefined) {
298
333
  eventsInProgress.zoom = eventData;
299
334
  }
335
+
300
336
  if (HandlerResult.panDelta !== undefined) {
301
337
  eventsInProgress.drag = eventData;
302
338
  }
339
+
303
340
  if (HandlerResult.pitchDelta !== undefined) {
304
341
  eventsInProgress.pitch = eventData;
305
342
  }
343
+
306
344
  if (HandlerResult.bearingDelta !== undefined) {
307
345
  eventsInProgress.rotate = eventData;
308
346
  }
@@ -311,13 +349,16 @@ var HandlerManager = /*#__PURE__*/function () {
311
349
  key: "triggerRenderFrame",
312
350
  value: function triggerRenderFrame() {
313
351
  var _this2 = this;
352
+
314
353
  if (this.frameId === undefined) {
315
354
  this.frameId = this.map.requestRenderFrame(function (timeStamp) {
316
355
  // @ts-ignore
317
356
  delete _this2.frameId;
357
+
318
358
  _this2.handleEvent(new RenderFrameEvent('renderFrame', {
319
359
  timeStamp: timeStamp
320
360
  }));
361
+
321
362
  _this2.applyChanges();
322
363
  });
323
364
  }
@@ -359,8 +400,10 @@ var HandlerManager = /*#__PURE__*/function () {
359
400
  var keyboard = map.keyboard = new KeyboardHandler();
360
401
  this.add('keyboard', keyboard);
361
402
  this.add('blockableMapEvent', new BlockableMapEventHandler(map));
403
+
362
404
  for (var _i = 0, _arr = ['boxZoom', 'doubleClickZoom', 'tapDragZoom', 'touchPitch', 'dragRotate', 'dragPan', 'touchZoomRotate', 'scrollZoom', 'keyboard']; _i < _arr.length; _i++) {
363
405
  var name = _arr[_i];
406
+
364
407
  // @ts-ignore
365
408
  if (options.interactive && options[name]) {
366
409
  // @ts-ignore
@@ -385,22 +428,27 @@ var HandlerManager = /*#__PURE__*/function () {
385
428
  if (name === myName) {
386
429
  continue;
387
430
  }
431
+
388
432
  if (!allowed || allowed.indexOf(name) < 0) {
389
433
  return true;
390
434
  }
391
435
  }
436
+
392
437
  return false;
393
438
  }
394
439
  }, {
395
440
  key: "getMapTouches",
396
441
  value: function getMapTouches(touches) {
397
442
  var mapTouches = [];
443
+
398
444
  var _iterator6 = _createForOfIteratorHelper(touches),
399
- _step6;
445
+ _step6;
446
+
400
447
  try {
401
448
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
402
449
  var t = _step6.value;
403
450
  var target = t.target;
451
+
404
452
  if (isMini || this.el.contains(target)) {
405
453
  mapTouches.push(t);
406
454
  }
@@ -410,6 +458,7 @@ var HandlerManager = /*#__PURE__*/function () {
410
458
  } finally {
411
459
  _iterator6.f();
412
460
  }
461
+
413
462
  return mapTouches;
414
463
  }
415
464
  }, {
@@ -418,35 +467,45 @@ var HandlerManager = /*#__PURE__*/function () {
418
467
  var combined = {};
419
468
  var combinedEventsInProgress = {};
420
469
  var combinedDeactivatedHandlers = {};
470
+
421
471
  var _iterator7 = _createForOfIteratorHelper(this.changes),
422
- _step7;
472
+ _step7;
473
+
423
474
  try {
424
475
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
425
476
  var _step7$value = _slicedToArray(_step7.value, 3),
426
- change = _step7$value[0],
427
- eventsInProgress = _step7$value[1],
428
- deactivatedHandlers = _step7$value[2];
477
+ change = _step7$value[0],
478
+ eventsInProgress = _step7$value[1],
479
+ deactivatedHandlers = _step7$value[2];
480
+
429
481
  if (change.panDelta) {
430
482
  combined.panDelta = (combined.panDelta || new Point(0, 0))._add(change.panDelta);
431
483
  }
484
+
432
485
  if (change.zoomDelta) {
433
486
  combined.zoomDelta = (combined.zoomDelta || 0) + change.zoomDelta;
434
487
  }
488
+
435
489
  if (change.bearingDelta) {
436
490
  combined.bearingDelta = (combined.bearingDelta || 0) + change.bearingDelta;
437
491
  }
492
+
438
493
  if (change.pitchDelta) {
439
494
  combined.pitchDelta = (combined.pitchDelta || 0) + change.pitchDelta;
440
495
  }
496
+
441
497
  if (change.around !== undefined) {
442
498
  combined.around = change.around;
443
499
  }
500
+
444
501
  if (change.pinchAround !== undefined) {
445
502
  combined.pinchAround = change.pinchAround;
446
503
  }
504
+
447
505
  if (change.noInertia) {
448
506
  combined.noInertia = change.noInertia;
449
507
  }
508
+
450
509
  merge(combinedEventsInProgress, eventsInProgress);
451
510
  merge(combinedDeactivatedHandlers, deactivatedHandlers);
452
511
  }
@@ -455,6 +514,7 @@ var HandlerManager = /*#__PURE__*/function () {
455
514
  } finally {
456
515
  _iterator7.f();
457
516
  }
517
+
458
518
  this.updateMapTransform(combined, combinedEventsInProgress, combinedDeactivatedHandlers);
459
519
  this.changes = [];
460
520
  }
@@ -463,84 +523,106 @@ var HandlerManager = /*#__PURE__*/function () {
463
523
  value: function updateMapTransform(combinedResult, combinedEventsInProgress, deactivatedHandlers) {
464
524
  var map = this.map;
465
525
  var tr = map.transform;
526
+
466
527
  if (!hasChange(combinedResult)) {
467
528
  return this.fireEvents(combinedEventsInProgress, deactivatedHandlers);
468
529
  }
530
+
469
531
  var panDelta = combinedResult.panDelta,
470
- zoomDelta = combinedResult.zoomDelta,
471
- bearingDelta = combinedResult.bearingDelta,
472
- pitchDelta = combinedResult.pitchDelta,
473
- pinchAround = combinedResult.pinchAround;
532
+ zoomDelta = combinedResult.zoomDelta,
533
+ bearingDelta = combinedResult.bearingDelta,
534
+ pitchDelta = combinedResult.pitchDelta,
535
+ pinchAround = combinedResult.pinchAround;
474
536
  var around = combinedResult.around;
537
+
475
538
  if (pinchAround !== undefined) {
476
539
  around = pinchAround;
477
- }
540
+ } // stop any ongoing camera animations (easeTo, flyTo)
541
+
478
542
 
479
- // stop any ongoing camera animations (easeTo, flyTo)
480
543
  map.stop(true);
481
544
  around = around || map.transform.centerPoint;
482
545
  var loc = tr.pointLocation(panDelta ? around.sub(panDelta) : around);
546
+
483
547
  if (bearingDelta && this.rotateEnabled) {
484
548
  tr.bearing += bearingDelta;
485
549
  }
550
+
486
551
  if (pitchDelta && this.pitchEnabled) {
487
552
  tr.pitch += pitchDelta;
488
553
  }
554
+
489
555
  if (zoomDelta) {
490
556
  tr.zoom += zoomDelta;
491
557
  }
558
+
492
559
  tr.setLocationAtPoint(loc, around);
493
560
  this.map.update();
561
+
494
562
  if (!combinedResult.noInertia) {
495
563
  this.inertia.record(combinedResult);
496
564
  }
565
+
497
566
  this.fireEvents(combinedEventsInProgress, deactivatedHandlers);
498
567
  }
499
568
  }, {
500
569
  key: "fireEvents",
501
570
  value: function fireEvents(newEventsInProgress, deactivatedHandlers) {
502
571
  var _this3 = this;
572
+
503
573
  var wasMoving = _isMoving(this.eventsInProgress);
574
+
504
575
  var nowMoving = _isMoving(newEventsInProgress);
576
+
505
577
  var startEvents = {};
578
+
506
579
  for (var eventName in newEventsInProgress) {
507
580
  if (newEventsInProgress[eventName]) {
508
581
  var originalEvent = newEventsInProgress[eventName].originalEvent;
582
+
509
583
  if (!this.eventsInProgress[eventName]) {
510
584
  startEvents["".concat(eventName, "start")] = originalEvent;
511
585
  }
586
+
512
587
  this.eventsInProgress[eventName] = newEventsInProgress[eventName];
513
588
  }
514
- }
589
+ } // fire start events only after this.eventsInProgress has been updated
590
+
515
591
 
516
- // fire start events only after this.eventsInProgress has been updated
517
592
  if (!wasMoving && nowMoving) {
518
593
  this.fireEvent('movestart', nowMoving.originalEvent);
519
594
  }
595
+
520
596
  for (var name in startEvents) {
521
597
  if (startEvents[name]) {
522
598
  this.fireEvent(name, startEvents[name]);
523
599
  }
524
600
  }
601
+
525
602
  if (newEventsInProgress.rotate) {
526
603
  this.bearingChanged = true;
527
604
  }
605
+
528
606
  if (nowMoving) {
529
607
  this.fireEvent('move', nowMoving.originalEvent);
530
608
  }
609
+
531
610
  for (var _eventName in newEventsInProgress) {
532
611
  if (newEventsInProgress[_eventName]) {
533
612
  var _originalEvent = newEventsInProgress[_eventName].originalEvent;
534
613
  this.fireEvent(_eventName, _originalEvent);
535
614
  }
536
615
  }
616
+
537
617
  var endEvents = {};
538
618
  var originalEndEvent;
619
+
539
620
  for (var _eventName2 in this.eventsInProgress) {
540
621
  if (this.eventsInProgress[_eventName2]) {
541
622
  var _this$eventsInProgres = this.eventsInProgress[_eventName2],
542
- handlerName = _this$eventsInProgres.handlerName,
543
- _originalEvent2 = _this$eventsInProgres.originalEvent;
623
+ handlerName = _this$eventsInProgres.handlerName,
624
+ _originalEvent2 = _this$eventsInProgres.originalEvent;
625
+
544
626
  if (!this.handlersById[handlerName].isActive()) {
545
627
  delete this.eventsInProgress[_eventName2];
546
628
  originalEndEvent = deactivatedHandlers[handlerName] || _originalEvent2;
@@ -548,22 +630,28 @@ var HandlerManager = /*#__PURE__*/function () {
548
630
  }
549
631
  }
550
632
  }
633
+
551
634
  for (var _name in endEvents) {
552
635
  if (endEvents[_name]) {
553
636
  this.fireEvent(_name, endEvents[_name]);
554
637
  }
555
638
  }
639
+
556
640
  var stillMoving = _isMoving(this.eventsInProgress);
641
+
557
642
  if ((wasMoving || nowMoving) && !stillMoving) {
558
643
  this.updatingCamera = true;
559
644
  var inertialEase = this.inertia.onMoveEnd(this.map.dragPan.inertiaOptions);
645
+
560
646
  var shouldSnapToNorth = function shouldSnapToNorth(bearing) {
561
647
  return bearing !== 0 && -_this3.bearingSnap < bearing && bearing < _this3.bearingSnap;
562
648
  };
649
+
563
650
  if (inertialEase) {
564
651
  if (shouldSnapToNorth(inertialEase.bearing || this.map.getBearing())) {
565
652
  inertialEase.bearing = 0;
566
653
  }
654
+
567
655
  this.map.easeTo(inertialEase, {
568
656
  originalEvent: originalEndEvent
569
657
  });
@@ -571,10 +659,12 @@ var HandlerManager = /*#__PURE__*/function () {
571
659
  this.map.emit('moveend', new Event('moveend', {
572
660
  originalEvent: originalEndEvent
573
661
  }));
662
+
574
663
  if (shouldSnapToNorth(this.map.getBearing())) {
575
664
  this.map.resetNorth();
576
665
  }
577
666
  }
667
+
578
668
  this.bearingChanged = false;
579
669
  this.updatingCamera = false;
580
670
  }
@@ -587,6 +677,8 @@ var HandlerManager = /*#__PURE__*/function () {
587
677
  } : {}));
588
678
  }
589
679
  }]);
680
+
590
681
  return HandlerManager;
591
682
  }();
683
+
592
684
  export default HandlerManager;
@@ -1,9 +1,10 @@
1
1
  // @ts-ignore
2
-
3
2
  export function indexTouches(touches, points) {
4
3
  var obj = {};
4
+
5
5
  for (var i = 0; i < touches.length; i++) {
6
6
  obj[touches[i].identifier] = points[i];
7
7
  }
8
+
8
9
  return obj;
9
10
  }