@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.
- package/es/camera.js +148 -90
- package/es/earthmap.js +65 -13
- package/es/geo/edge_insets.js +14 -4
- package/es/geo/lng_lat.js +13 -5
- package/es/geo/lng_lat_bounds.js +17 -4
- package/es/geo/mercator.js +10 -2
- package/es/geo/point.js +7 -0
- package/es/geo/simple.js +11 -6
- package/es/geo/transform.js +132 -127
- package/es/handler/blockable_map_event.js +12 -7
- package/es/handler/box_zoom.js +30 -10
- package/es/handler/click_zoom.js +5 -0
- package/es/handler/events/event.js +2 -0
- package/es/handler/events/map_mouse_event.js +12 -0
- package/es/handler/events/map_touch_event.js +12 -2
- package/es/handler/events/map_wheel_event.js +12 -1
- package/es/handler/events/render_event.js +13 -0
- package/es/handler/handler_inertia.js +34 -6
- package/es/handler/handler_manager.js +147 -55
- package/es/handler/handler_util.js +2 -1
- package/es/handler/keyboard.js +20 -1
- package/es/handler/map_event.js +9 -3
- package/es/handler/mouse/mouse_handler.js +24 -11
- package/es/handler/mouse/mousepan_handler.js +11 -1
- package/es/handler/mouse/mousepitch_hander.js +11 -1
- package/es/handler/mouse/mouserotate_hander.js +11 -1
- package/es/handler/mouse/util.js +3 -2
- package/es/handler/scroll_zoom.js +71 -43
- package/es/handler/shim/dblclick_zoom.js +9 -4
- package/es/handler/shim/drag_pan.js +11 -4
- package/es/handler/shim/drag_rotate.js +10 -4
- package/es/handler/shim/touch_zoom_rotate.js +16 -6
- package/es/handler/tap/single_tap_recognizer.js +31 -8
- package/es/handler/tap/tap_drag_zoom.js +15 -7
- package/es/handler/tap/tap_recognizer.js +11 -3
- package/es/handler/tap/tap_zoom.js +7 -1
- package/es/handler/touch/touch_pan.js +22 -4
- package/es/handler/touch/touch_pitch.js +27 -10
- package/es/handler/touch/touch_rotate.js +19 -8
- package/es/handler/touch/touch_zoom.js +18 -5
- package/es/handler/touch/two_touch.js +32 -19
- package/es/hash.js +31 -9
- package/es/map.js +78 -16
- package/es/util.js +26 -18
- package/es/utils/Aabb.js +31 -10
- package/es/utils/dom.js +58 -24
- package/es/utils/performance.js +7 -8
- package/es/utils/primitives.js +11 -13
- package/es/utils/task_queue.js +23 -6
- package/lib/camera.js +169 -91
- package/lib/earthmap.js +80 -12
- package/lib/geo/edge_insets.js +18 -3
- package/lib/geo/lng_lat.js +18 -5
- package/lib/geo/lng_lat_bounds.js +20 -4
- package/lib/geo/mercator.js +22 -1
- package/lib/geo/point.js +8 -0
- package/lib/geo/simple.js +24 -5
- package/lib/geo/transform.js +164 -127
- package/lib/handler/blockable_map_event.js +14 -6
- package/lib/handler/box_zoom.js +39 -8
- package/lib/handler/click_zoom.js +6 -0
- package/lib/handler/events/event.js +5 -0
- package/lib/handler/events/index.js +4 -0
- package/lib/handler/events/map_mouse_event.js +20 -2
- package/lib/handler/events/map_touch_event.js +21 -2
- package/lib/handler/events/map_wheel_event.js +16 -1
- package/lib/handler/events/render_event.js +19 -0
- package/lib/handler/handler_inertia.js +37 -5
- package/lib/handler/handler_manager.js +171 -56
- package/lib/handler/handler_util.js +3 -1
- package/lib/handler/keyboard.js +22 -1
- package/lib/handler/map_event.js +11 -2
- package/lib/handler/mouse/index.js +4 -0
- package/lib/handler/mouse/mouse_handler.js +27 -10
- package/lib/handler/mouse/mousepan_handler.js +18 -1
- package/lib/handler/mouse/mousepitch_hander.js +17 -1
- package/lib/handler/mouse/mouserotate_hander.js +17 -1
- package/lib/handler/mouse/util.js +6 -2
- package/lib/handler/scroll_zoom.js +77 -43
- package/lib/handler/shim/dblclick_zoom.js +10 -4
- package/lib/handler/shim/drag_pan.js +13 -4
- package/lib/handler/shim/drag_rotate.js +11 -4
- package/lib/handler/shim/touch_zoom_rotate.js +18 -6
- package/lib/handler/tap/single_tap_recognizer.js +33 -8
- package/lib/handler/tap/tap_drag_zoom.js +18 -6
- package/lib/handler/tap/tap_recognizer.js +17 -2
- package/lib/handler/tap/tap_zoom.js +9 -0
- package/lib/handler/touch/index.js +5 -0
- package/lib/handler/touch/touch_pan.js +25 -4
- package/lib/handler/touch/touch_pitch.js +32 -10
- package/lib/handler/touch/touch_rotate.js +25 -8
- package/lib/handler/touch/touch_zoom.js +24 -5
- package/lib/handler/touch/two_touch.js +35 -18
- package/lib/hash.js +35 -8
- package/lib/index.js +8 -0
- package/lib/map.js +95 -15
- package/lib/util.js +38 -16
- package/lib/utils/Aabb.js +34 -10
- package/lib/utils/dom.js +64 -22
- package/lib/utils/performance.js +9 -8
- package/lib/utils/primitives.js +16 -13
- package/lib/utils/task_queue.js +24 -6
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
79
|
+
_step;
|
|
80
|
+
|
|
69
81
|
try {
|
|
70
82
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
71
83
|
var _step$value = _step.value,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
|
|
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
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
427
|
-
|
|
428
|
-
|
|
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
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
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
|
-
|
|
543
|
-
|
|
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;
|