@antv/l7-map 2.16.0 → 2.16.1

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