@antv/l7-map 2.21.0 → 2.21.2
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 +595 -674
- package/es/earthmap.js +313 -276
- package/es/geo/edge_insets.js +57 -72
- package/es/geo/lng_lat.js +50 -64
- package/es/geo/lng_lat_bounds.js +101 -137
- package/es/geo/mercator.js +23 -35
- package/es/geo/point.js +150 -221
- package/es/geo/simple.js +22 -34
- package/es/geo/transform.js +839 -905
- package/es/handler/blockable_map_event.js +46 -66
- package/es/handler/box_zoom.js +125 -143
- package/es/handler/click_zoom.js +37 -51
- package/es/handler/events/event.js +11 -9
- package/es/handler/events/map_mouse_event.js +39 -54
- package/es/handler/events/map_touch_event.js +54 -73
- package/es/handler/events/map_wheel_event.js +22 -38
- package/es/handler/events/render_event.js +6 -23
- package/es/handler/handler_inertia.js +98 -113
- package/es/handler/handler_manager.js +349 -437
- package/es/handler/handler_util.js +2 -2
- package/es/handler/keyboard.js +98 -110
- package/es/handler/map_event.js +81 -117
- package/es/handler/mouse/mouse_handler.js +81 -100
- package/es/handler/mouse/mousepan_handler.js +16 -39
- package/es/handler/mouse/mousepitch_hander.js +18 -40
- package/es/handler/mouse/mouserotate_hander.js +18 -40
- package/es/handler/mouse/util.js +7 -6
- package/es/handler/scroll_zoom.js +221 -231
- package/es/handler/shim/dblclick_zoom.js +36 -47
- package/es/handler/shim/drag_pan.js +41 -50
- package/es/handler/shim/drag_rotate.js +38 -48
- package/es/handler/shim/touch_zoom_rotate.js +68 -79
- package/es/handler/tap/single_tap_recognizer.js +60 -80
- package/es/handler/tap/tap_drag_zoom.js +72 -89
- package/es/handler/tap/tap_recognizer.js +37 -45
- package/es/handler/tap/tap_zoom.js +67 -95
- package/es/handler/touch/touch_pan.js +77 -96
- package/es/handler/touch/touch_pitch.js +61 -79
- package/es/handler/touch/touch_rotate.js +47 -67
- package/es/handler/touch/touch_zoom.js +29 -46
- package/es/handler/touch/two_touch.js +79 -104
- package/es/hash.js +75 -88
- package/es/map.js +318 -284
- package/es/util.js +18 -37
- package/es/utils/Aabb.js +60 -100
- package/es/utils/dom.js +32 -55
- package/es/utils/performance.js +25 -29
- package/es/utils/primitives.js +33 -43
- package/es/utils/task_queue.js +47 -76
- package/lib/camera.d.ts +86 -0
- package/lib/camera.js +597 -672
- package/lib/earthmap.d.ts +69 -0
- package/lib/earthmap.js +314 -276
- package/lib/geo/edge_insets.d.ts +54 -0
- package/lib/geo/edge_insets.js +58 -70
- package/lib/geo/lng_lat.d.ts +18 -0
- package/lib/geo/lng_lat.js +50 -62
- package/lib/geo/lng_lat_bounds.d.ts +25 -0
- package/lib/geo/lng_lat_bounds.js +102 -136
- package/lib/geo/mercator.d.ts +30 -0
- package/lib/geo/mercator.js +26 -37
- package/lib/geo/point.d.ts +40 -0
- package/lib/geo/point.js +151 -220
- package/lib/geo/simple.d.ts +30 -0
- package/lib/geo/simple.js +25 -36
- package/lib/geo/transform.d.ts +198 -0
- package/lib/geo/transform.js +844 -907
- package/lib/handler/IHandler.d.ts +34 -0
- package/lib/handler/blockable_map_event.d.ts +17 -0
- package/lib/handler/blockable_map_event.js +48 -65
- package/lib/handler/box_zoom.d.ts +59 -0
- package/lib/handler/box_zoom.js +126 -143
- package/lib/handler/click_zoom.d.ts +16 -0
- package/lib/handler/click_zoom.js +38 -50
- package/lib/handler/events/event.d.ts +4 -0
- package/lib/handler/events/event.js +12 -9
- package/lib/handler/events/index.d.ts +4 -0
- package/lib/handler/events/index.js +3 -3
- package/lib/handler/events/map_mouse_event.d.ts +34 -0
- package/lib/handler/events/map_mouse_event.js +41 -52
- package/lib/handler/events/map_touch_event.d.ts +57 -0
- package/lib/handler/events/map_touch_event.js +56 -71
- package/lib/handler/events/map_wheel_event.d.ts +33 -0
- package/lib/handler/events/map_wheel_event.js +23 -37
- package/lib/handler/events/render_event.d.ts +5 -0
- package/lib/handler/events/render_event.js +7 -22
- package/lib/handler/handler_inertia.d.ts +23 -0
- package/lib/handler/handler_inertia.js +102 -112
- package/lib/handler/handler_manager.d.ts +61 -0
- package/lib/handler/handler_manager.js +351 -437
- package/lib/handler/handler_util.d.ts +4 -0
- package/lib/handler/handler_util.js +2 -2
- package/lib/handler/keyboard.d.ts +36 -0
- package/lib/handler/keyboard.js +98 -110
- package/lib/handler/map_event.d.ts +29 -0
- package/lib/handler/map_event.js +83 -116
- package/lib/handler/mouse/index.d.ts +4 -0
- package/lib/handler/mouse/index.js +3 -3
- package/lib/handler/mouse/mouse_handler.d.ts +22 -0
- package/lib/handler/mouse/mouse_handler.js +83 -99
- package/lib/handler/mouse/mousepan_handler.d.ts +10 -0
- package/lib/handler/mouse/mousepan_handler.js +19 -38
- package/lib/handler/mouse/mousepitch_hander.d.ts +9 -0
- package/lib/handler/mouse/mousepitch_hander.js +21 -39
- package/lib/handler/mouse/mouserotate_hander.d.ts +9 -0
- package/lib/handler/mouse/mouserotate_hander.js +21 -39
- package/lib/handler/mouse/util.d.ts +6 -0
- package/lib/handler/mouse/util.js +7 -7
- package/lib/handler/scroll_zoom.d.ts +93 -0
- package/lib/handler/scroll_zoom.js +221 -231
- package/lib/handler/shim/dblclick_zoom.d.ts +40 -0
- package/lib/handler/shim/dblclick_zoom.js +37 -46
- package/lib/handler/shim/drag_pan.d.ts +61 -0
- package/lib/handler/shim/drag_pan.js +42 -49
- package/lib/handler/shim/drag_rotate.d.ts +46 -0
- package/lib/handler/shim/drag_rotate.js +39 -47
- package/lib/handler/shim/touch_zoom_rotate.d.ts +70 -0
- package/lib/handler/shim/touch_zoom_rotate.js +69 -78
- package/lib/handler/tap/single_tap_recognizer.d.ts +20 -0
- package/lib/handler/tap/single_tap_recognizer.js +63 -79
- package/lib/handler/tap/tap_drag_zoom.d.ts +22 -0
- package/lib/handler/tap/tap_drag_zoom.js +74 -88
- package/lib/handler/tap/tap_recognizer.d.ts +17 -0
- package/lib/handler/tap/tap_recognizer.js +41 -47
- package/lib/handler/tap/tap_zoom.d.ts +22 -0
- package/lib/handler/tap/tap_zoom.js +69 -94
- package/lib/handler/touch/index.d.ts +5 -0
- package/lib/handler/touch/index.js +4 -4
- package/lib/handler/touch/touch_pan.d.ts +30 -0
- package/lib/handler/touch/touch_pan.js +79 -95
- package/lib/handler/touch/touch_pitch.d.ts +13 -0
- package/lib/handler/touch/touch_pitch.js +64 -78
- package/lib/handler/touch/touch_rotate.d.ts +12 -0
- package/lib/handler/touch/touch_rotate.js +50 -66
- package/lib/handler/touch/touch_zoom.d.ts +12 -0
- package/lib/handler/touch/touch_zoom.js +32 -45
- package/lib/handler/touch/two_touch.d.ts +23 -0
- package/lib/handler/touch/two_touch.js +81 -103
- package/lib/hash.d.ts +14 -0
- package/lib/hash.js +75 -88
- package/lib/index.d.ts +4 -0
- package/lib/index.js +4 -4
- package/lib/interface.d.ts +34 -0
- package/lib/map.d.ts +70 -0
- package/lib/map.js +319 -284
- package/lib/util.d.ts +25 -0
- package/lib/util.js +20 -36
- package/lib/utils/Aabb.d.ts +12 -0
- package/lib/utils/Aabb.js +61 -99
- package/lib/utils/dom.d.ts +4 -0
- package/lib/utils/dom.js +34 -55
- package/lib/utils/performance.d.ts +17 -0
- package/lib/utils/performance.js +25 -29
- package/lib/utils/primitives.d.ts +6 -0
- package/lib/utils/primitives.js +34 -42
- package/lib/utils/task_queue.d.ts +13 -0
- package/lib/utils/task_queue.js +47 -76
- package/package.json +25 -32
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
|
-
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; } } }; }
|
|
6
|
-
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; }
|
|
8
2
|
// @ts-ignore
|
|
9
3
|
// tslint:disable-next-line: no-submodule-imports
|
|
10
4
|
import { lodashUtil } from '@antv/l7-utils';
|
|
@@ -27,100 +21,107 @@ import TouchZoomRotateHandler from "./shim/touch_zoom_rotate";
|
|
|
27
21
|
import TapDragZoomHandler from "./tap/tap_drag_zoom";
|
|
28
22
|
import TapZoomHandler from "./tap/tap_zoom";
|
|
29
23
|
import { TouchPanHandler, TouchPitchHandler, TouchRotateHandler, TouchZoomHandler } from "./touch";
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
const {
|
|
25
|
+
merge
|
|
26
|
+
} = lodashUtil;
|
|
27
|
+
const isMoving = p => p.zoom || p.drag || p.pitch || p.rotate;
|
|
34
28
|
function hasChange(result) {
|
|
35
29
|
return result.panDelta && result.panDelta.mag() || result.zoomDelta || result.bearingDelta || result.pitchDelta;
|
|
36
30
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
_defineProperty(this, "
|
|
42
|
-
|
|
31
|
+
class HandlerManager {
|
|
32
|
+
constructor(map, options) {
|
|
33
|
+
_defineProperty(this, "map", void 0);
|
|
34
|
+
_defineProperty(this, "el", void 0);
|
|
35
|
+
_defineProperty(this, "handlers", void 0);
|
|
36
|
+
_defineProperty(this, "eventsInProgress", void 0);
|
|
37
|
+
_defineProperty(this, "frameId", void 0);
|
|
38
|
+
_defineProperty(this, "inertia", void 0);
|
|
39
|
+
_defineProperty(this, "bearingSnap", void 0);
|
|
40
|
+
_defineProperty(this, "handlersById", void 0);
|
|
41
|
+
_defineProperty(this, "updatingCamera", void 0);
|
|
42
|
+
_defineProperty(this, "changes", void 0);
|
|
43
|
+
_defineProperty(this, "previousActiveHandlers", void 0);
|
|
44
|
+
_defineProperty(this, "bearingChanged", void 0);
|
|
45
|
+
_defineProperty(this, "rotateEnabled", void 0);
|
|
46
|
+
_defineProperty(this, "pitchEnabled", void 0);
|
|
47
|
+
_defineProperty(this, "listeners", void 0);
|
|
48
|
+
_defineProperty(this, "handleWindowEvent", e => {
|
|
49
|
+
this.handleEvent(e, `${e.type}Window`);
|
|
43
50
|
});
|
|
44
|
-
_defineProperty(this, "handleEvent",
|
|
51
|
+
_defineProperty(this, "handleEvent", (e, eventName) => {
|
|
45
52
|
if (e.type === 'blur') {
|
|
46
|
-
|
|
53
|
+
this.stop();
|
|
47
54
|
return;
|
|
48
55
|
}
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
this.updatingCamera = true;
|
|
57
|
+
const inputEvent = e.type === 'renderFrame' ? undefined : e;
|
|
51
58
|
|
|
52
59
|
/*
|
|
53
60
|
* We don't call e.preventDefault() for any events by default.
|
|
54
61
|
* Handlers are responsible for calling it where necessary.
|
|
55
62
|
*/
|
|
56
63
|
|
|
57
|
-
|
|
64
|
+
const mergedIHandlerResult = {
|
|
58
65
|
needsRenderFrame: false
|
|
59
66
|
};
|
|
60
|
-
|
|
61
|
-
|
|
67
|
+
const eventsInProgress = {};
|
|
68
|
+
const activeHandlers = {};
|
|
62
69
|
// @ts-ignore
|
|
63
|
-
|
|
70
|
+
const mapTouches = e.touches ?
|
|
64
71
|
// @ts-ignore
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
var handerName = eventName || e.type;
|
|
72
|
+
this.getMapTouches(e.touches) : undefined;
|
|
73
|
+
const points = mapTouches ? DOM.touchPos(this.el, mapTouches) : DOM.mousePos(this.el, e);
|
|
74
|
+
for (const {
|
|
75
|
+
handlerName,
|
|
76
|
+
handler,
|
|
77
|
+
allowed
|
|
78
|
+
} of this.handlers) {
|
|
79
|
+
if (!handler.isEnabled()) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
let data;
|
|
83
|
+
if (this.blockedByActive(activeHandlers, allowed, handlerName)) {
|
|
84
|
+
handler.reset();
|
|
85
|
+
} else {
|
|
86
|
+
const handerName = eventName || e.type;
|
|
87
|
+
// @ts-ignore
|
|
88
|
+
if (handler && handler[handerName]) {
|
|
83
89
|
// @ts-ignore
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (data && data.needsRenderFrame) {
|
|
89
|
-
_this.triggerRenderFrame();
|
|
90
|
-
}
|
|
90
|
+
data = handler[handerName](e, points, mapTouches);
|
|
91
|
+
this.mergeIHandlerResult(mergedIHandlerResult, eventsInProgress, data, handlerName, inputEvent);
|
|
92
|
+
if (data && data.needsRenderFrame) {
|
|
93
|
+
this.triggerRenderFrame();
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
|
-
// @ts-ignore
|
|
94
|
-
if (data || handler.isActive()) {
|
|
95
|
-
activeHandlers[handlerName] = handler;
|
|
96
|
-
}
|
|
97
96
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
if (data || handler.isActive()) {
|
|
99
|
+
activeHandlers[handlerName] = handler;
|
|
100
|
+
}
|
|
102
101
|
}
|
|
103
|
-
|
|
104
|
-
for (
|
|
102
|
+
const deactivatedHandlers = {};
|
|
103
|
+
for (const name in this.previousActiveHandlers) {
|
|
105
104
|
if (!activeHandlers[name]) {
|
|
106
105
|
deactivatedHandlers[name] = inputEvent;
|
|
107
106
|
}
|
|
108
107
|
}
|
|
109
|
-
|
|
108
|
+
this.previousActiveHandlers = activeHandlers;
|
|
110
109
|
if (Object.keys(deactivatedHandlers).length || hasChange(mergedIHandlerResult)) {
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
this.changes.push([mergedIHandlerResult, eventsInProgress, deactivatedHandlers]);
|
|
111
|
+
this.triggerRenderFrame();
|
|
113
112
|
}
|
|
114
113
|
if (Object.keys(activeHandlers).length || hasChange(mergedIHandlerResult)) {
|
|
115
|
-
|
|
114
|
+
this.map.stop(true);
|
|
116
115
|
}
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
this.updatingCamera = false;
|
|
117
|
+
const {
|
|
118
|
+
cameraAnimation
|
|
119
|
+
} = mergedIHandlerResult;
|
|
119
120
|
if (cameraAnimation) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
cameraAnimation(
|
|
121
|
+
this.inertia.clear();
|
|
122
|
+
this.fireEvents({}, {});
|
|
123
|
+
this.changes = [];
|
|
124
|
+
cameraAnimation(this.map);
|
|
124
125
|
}
|
|
125
126
|
});
|
|
126
127
|
this.map = map;
|
|
@@ -137,7 +138,7 @@ var HandlerManager = /*#__PURE__*/function () {
|
|
|
137
138
|
// Track whether map is currently moving, to compute start/move/end events
|
|
138
139
|
this.eventsInProgress = {};
|
|
139
140
|
this.addDefaultHandlers(options);
|
|
140
|
-
|
|
141
|
+
const el = this.el;
|
|
141
142
|
this.listeners = [];
|
|
142
143
|
// l7 - mini
|
|
143
144
|
this.listeners = [
|
|
@@ -168,410 +169,321 @@ var HandlerManager = /*#__PURE__*/function () {
|
|
|
168
169
|
}], [el, 'contextmenu', undefined],
|
|
169
170
|
// @ts-ignore
|
|
170
171
|
[window, 'blur', undefined]];
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
target = _step2$value[0],
|
|
177
|
-
type = _step2$value[1],
|
|
178
|
-
listenerOptions = _step2$value[2];
|
|
179
|
-
// @ts-ignore
|
|
180
|
-
DOM.addEventListener(target, type,
|
|
181
|
-
// @ts-ignore
|
|
182
|
-
target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
|
|
183
|
-
}
|
|
184
|
-
} catch (err) {
|
|
185
|
-
_iterator2.e(err);
|
|
186
|
-
} finally {
|
|
187
|
-
_iterator2.f();
|
|
172
|
+
for (const [target, type, listenerOptions] of this.listeners) {
|
|
173
|
+
// @ts-ignore
|
|
174
|
+
DOM.addEventListener(target, type,
|
|
175
|
+
// @ts-ignore
|
|
176
|
+
target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
|
|
188
177
|
}
|
|
189
178
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
197
|
-
var _step3$value = _slicedToArray(_step3.value, 3),
|
|
198
|
-
target = _step3$value[0],
|
|
199
|
-
type = _step3$value[1],
|
|
200
|
-
listenerOptions = _step3$value[2];
|
|
201
|
-
// @ts-ignore
|
|
202
|
-
DOM.removeEventListener(target, type,
|
|
203
|
-
// @ts-ignore
|
|
204
|
-
target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
|
|
205
|
-
}
|
|
206
|
-
} catch (err) {
|
|
207
|
-
_iterator3.e(err);
|
|
208
|
-
} finally {
|
|
209
|
-
_iterator3.f();
|
|
210
|
-
}
|
|
179
|
+
destroy() {
|
|
180
|
+
for (const [target, type, listenerOptions] of this.listeners) {
|
|
181
|
+
// @ts-ignore
|
|
182
|
+
DOM.removeEventListener(target, type,
|
|
183
|
+
// @ts-ignore
|
|
184
|
+
target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
|
|
211
185
|
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
var _iterator4 = _createForOfIteratorHelper(this.handlers),
|
|
220
|
-
_step4;
|
|
221
|
-
try {
|
|
222
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
223
|
-
var handler = _step4.value.handler;
|
|
224
|
-
handler.reset();
|
|
225
|
-
}
|
|
226
|
-
} catch (err) {
|
|
227
|
-
_iterator4.e(err);
|
|
228
|
-
} finally {
|
|
229
|
-
_iterator4.f();
|
|
230
|
-
}
|
|
231
|
-
this.inertia.clear();
|
|
232
|
-
this.fireEvents({}, {});
|
|
233
|
-
this.changes = [];
|
|
186
|
+
}
|
|
187
|
+
stop() {
|
|
188
|
+
// do nothing if this method was triggered by a gesture update
|
|
189
|
+
if (this.updatingCamera) {
|
|
190
|
+
return;
|
|
234
191
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
_iterator5.f();
|
|
192
|
+
for (const {
|
|
193
|
+
handler
|
|
194
|
+
} of this.handlers) {
|
|
195
|
+
handler.reset();
|
|
196
|
+
}
|
|
197
|
+
this.inertia.clear();
|
|
198
|
+
this.fireEvents({}, {});
|
|
199
|
+
this.changes = [];
|
|
200
|
+
}
|
|
201
|
+
isActive() {
|
|
202
|
+
for (const {
|
|
203
|
+
handler
|
|
204
|
+
} of this.handlers) {
|
|
205
|
+
if (handler.isActive()) {
|
|
206
|
+
return true;
|
|
251
207
|
}
|
|
252
|
-
return false;
|
|
253
208
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
isZooming() {
|
|
212
|
+
return !!this.eventsInProgress.zoom || this.map.scrollZoom.isZooming();
|
|
213
|
+
}
|
|
214
|
+
isRotating() {
|
|
215
|
+
return !!this.eventsInProgress.rotate;
|
|
216
|
+
}
|
|
217
|
+
isMoving() {
|
|
218
|
+
return Boolean(isMoving(this.eventsInProgress)) || this.isZooming();
|
|
219
|
+
}
|
|
220
|
+
mergeIHandlerResult(mergedIHandlerResult, eventsInProgress, HandlerResult, name, e) {
|
|
221
|
+
if (!HandlerResult) {
|
|
222
|
+
return;
|
|
258
223
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
224
|
+
merge(mergedIHandlerResult, HandlerResult);
|
|
225
|
+
const eventData = {
|
|
226
|
+
handlerName: name,
|
|
227
|
+
originalEvent: HandlerResult.originalEvent || e
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
// track which handler changed which camera property
|
|
231
|
+
if (HandlerResult.zoomDelta !== undefined) {
|
|
232
|
+
eventsInProgress.zoom = eventData;
|
|
263
233
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
value: function isMoving() {
|
|
267
|
-
return Boolean(_isMoving(this.eventsInProgress)) || this.isZooming();
|
|
234
|
+
if (HandlerResult.panDelta !== undefined) {
|
|
235
|
+
eventsInProgress.drag = eventData;
|
|
268
236
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
value: function mergeIHandlerResult(mergedIHandlerResult, eventsInProgress, HandlerResult, name, e) {
|
|
272
|
-
if (!HandlerResult) {
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
merge(mergedIHandlerResult, HandlerResult);
|
|
276
|
-
var eventData = {
|
|
277
|
-
handlerName: name,
|
|
278
|
-
originalEvent: HandlerResult.originalEvent || e
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
// track which handler changed which camera property
|
|
282
|
-
if (HandlerResult.zoomDelta !== undefined) {
|
|
283
|
-
eventsInProgress.zoom = eventData;
|
|
284
|
-
}
|
|
285
|
-
if (HandlerResult.panDelta !== undefined) {
|
|
286
|
-
eventsInProgress.drag = eventData;
|
|
287
|
-
}
|
|
288
|
-
if (HandlerResult.pitchDelta !== undefined) {
|
|
289
|
-
eventsInProgress.pitch = eventData;
|
|
290
|
-
}
|
|
291
|
-
if (HandlerResult.bearingDelta !== undefined) {
|
|
292
|
-
eventsInProgress.rotate = eventData;
|
|
293
|
-
}
|
|
237
|
+
if (HandlerResult.pitchDelta !== undefined) {
|
|
238
|
+
eventsInProgress.pitch = eventData;
|
|
294
239
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
value: function triggerRenderFrame() {
|
|
298
|
-
var _this2 = this;
|
|
299
|
-
if (this.frameId === undefined) {
|
|
300
|
-
this.frameId = this.map.requestRenderFrame(function (timeStamp) {
|
|
301
|
-
// @ts-ignore
|
|
302
|
-
delete _this2.frameId;
|
|
303
|
-
_this2.handleEvent(new RenderFrameEvent('renderFrame', {
|
|
304
|
-
timeStamp: timeStamp
|
|
305
|
-
}));
|
|
306
|
-
_this2.applyChanges();
|
|
307
|
-
});
|
|
308
|
-
}
|
|
240
|
+
if (HandlerResult.bearingDelta !== undefined) {
|
|
241
|
+
eventsInProgress.rotate = eventData;
|
|
309
242
|
}
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
var el = map.getCanvasContainer();
|
|
315
|
-
this.add('mapEvent', new MapEventHandler(map, options));
|
|
316
|
-
var boxZoom = map.boxZoom = new BoxZoomHandler(map, options);
|
|
317
|
-
this.add('boxZoom', boxZoom);
|
|
318
|
-
var tapZoom = new TapZoomHandler();
|
|
319
|
-
var clickZoom = new ClickZoomHandler();
|
|
320
|
-
map.doubleClickZoom = new DoubleClickZoomHandler(clickZoom, tapZoom);
|
|
321
|
-
this.add('tapZoom', tapZoom);
|
|
322
|
-
this.add('clickZoom', clickZoom);
|
|
323
|
-
var tapDragZoom = new TapDragZoomHandler();
|
|
324
|
-
this.add('tapDragZoom', tapDragZoom);
|
|
325
|
-
var touchPitch = map.touchPitch = new TouchPitchHandler();
|
|
326
|
-
this.add('touchPitch', touchPitch);
|
|
327
|
-
var mouseRotate = new MouseRotateHandler(options);
|
|
328
|
-
var mousePitch = new MousePitchHandler(options);
|
|
329
|
-
map.dragRotate = new DragRotateHandler(options, mouseRotate, mousePitch);
|
|
330
|
-
this.add('mouseRotate', mouseRotate, ['mousePitch']);
|
|
331
|
-
this.add('mousePitch', mousePitch, ['mouseRotate']);
|
|
332
|
-
var mousePan = new MousePanHandler(options);
|
|
333
|
-
var touchPan = new TouchPanHandler(options);
|
|
334
|
-
map.dragPan = new DragPanHandler(el, mousePan, touchPan);
|
|
335
|
-
this.add('mousePan', mousePan);
|
|
336
|
-
this.add('touchPan', touchPan, ['touchZoom', 'touchRotate']);
|
|
337
|
-
var touchRotate = new TouchRotateHandler();
|
|
338
|
-
var touchZoom = new TouchZoomHandler();
|
|
339
|
-
map.touchZoomRotate = new TouchZoomRotateHandler(el, touchZoom, touchRotate, tapDragZoom);
|
|
340
|
-
this.add('touchRotate', touchRotate, ['touchPan', 'touchZoom']);
|
|
341
|
-
this.add('touchZoom', touchZoom, ['touchPan', 'touchRotate']);
|
|
342
|
-
var scrollZoom = map.scrollZoom = new ScrollZoomHandler(map, this);
|
|
343
|
-
this.add('scrollZoom', scrollZoom, ['mousePan']);
|
|
344
|
-
var keyboard = map.keyboard = new KeyboardHandler();
|
|
345
|
-
this.add('keyboard', keyboard);
|
|
346
|
-
this.add('blockableMapEvent', new BlockableMapEventHandler(map));
|
|
347
|
-
for (var _i = 0, _arr = ['boxZoom', 'doubleClickZoom', 'tapDragZoom', 'touchPitch', 'dragRotate', 'dragPan', 'touchZoomRotate', 'scrollZoom', 'keyboard']; _i < _arr.length; _i++) {
|
|
348
|
-
var name = _arr[_i];
|
|
243
|
+
}
|
|
244
|
+
triggerRenderFrame() {
|
|
245
|
+
if (this.frameId === undefined) {
|
|
246
|
+
this.frameId = this.map.requestRenderFrame(timeStamp => {
|
|
349
247
|
// @ts-ignore
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
}
|
|
356
|
-
}, {
|
|
357
|
-
key: "add",
|
|
358
|
-
value: function add(handlerName, handler, allowed) {
|
|
359
|
-
this.handlers.push({
|
|
360
|
-
handlerName: handlerName,
|
|
361
|
-
handler: handler,
|
|
362
|
-
allowed: allowed
|
|
248
|
+
delete this.frameId;
|
|
249
|
+
this.handleEvent(new RenderFrameEvent('renderFrame', {
|
|
250
|
+
timeStamp
|
|
251
|
+
}));
|
|
252
|
+
this.applyChanges();
|
|
363
253
|
});
|
|
364
|
-
this.handlersById[handlerName] = handler;
|
|
365
254
|
}
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
255
|
+
}
|
|
256
|
+
addDefaultHandlers(options) {
|
|
257
|
+
const map = this.map;
|
|
258
|
+
const el = map.getCanvasContainer();
|
|
259
|
+
this.add('mapEvent', new MapEventHandler(map, options));
|
|
260
|
+
const boxZoom = map.boxZoom = new BoxZoomHandler(map, options);
|
|
261
|
+
this.add('boxZoom', boxZoom);
|
|
262
|
+
const tapZoom = new TapZoomHandler();
|
|
263
|
+
const clickZoom = new ClickZoomHandler();
|
|
264
|
+
map.doubleClickZoom = new DoubleClickZoomHandler(clickZoom, tapZoom);
|
|
265
|
+
this.add('tapZoom', tapZoom);
|
|
266
|
+
this.add('clickZoom', clickZoom);
|
|
267
|
+
const tapDragZoom = new TapDragZoomHandler();
|
|
268
|
+
this.add('tapDragZoom', tapDragZoom);
|
|
269
|
+
const touchPitch = map.touchPitch = new TouchPitchHandler();
|
|
270
|
+
this.add('touchPitch', touchPitch);
|
|
271
|
+
const mouseRotate = new MouseRotateHandler(options);
|
|
272
|
+
const mousePitch = new MousePitchHandler(options);
|
|
273
|
+
map.dragRotate = new DragRotateHandler(options, mouseRotate, mousePitch);
|
|
274
|
+
this.add('mouseRotate', mouseRotate, ['mousePitch']);
|
|
275
|
+
this.add('mousePitch', mousePitch, ['mouseRotate']);
|
|
276
|
+
const mousePan = new MousePanHandler(options);
|
|
277
|
+
const touchPan = new TouchPanHandler(options);
|
|
278
|
+
map.dragPan = new DragPanHandler(el, mousePan, touchPan);
|
|
279
|
+
this.add('mousePan', mousePan);
|
|
280
|
+
this.add('touchPan', touchPan, ['touchZoom', 'touchRotate']);
|
|
281
|
+
const touchRotate = new TouchRotateHandler();
|
|
282
|
+
const touchZoom = new TouchZoomHandler();
|
|
283
|
+
map.touchZoomRotate = new TouchZoomRotateHandler(el, touchZoom, touchRotate, tapDragZoom);
|
|
284
|
+
this.add('touchRotate', touchRotate, ['touchPan', 'touchZoom']);
|
|
285
|
+
this.add('touchZoom', touchZoom, ['touchPan', 'touchRotate']);
|
|
286
|
+
const scrollZoom = map.scrollZoom = new ScrollZoomHandler(map, this);
|
|
287
|
+
this.add('scrollZoom', scrollZoom, ['mousePan']);
|
|
288
|
+
const keyboard = map.keyboard = new KeyboardHandler();
|
|
289
|
+
this.add('keyboard', keyboard);
|
|
290
|
+
this.add('blockableMapEvent', new BlockableMapEventHandler(map));
|
|
291
|
+
for (const name of ['boxZoom', 'doubleClickZoom', 'tapDragZoom', 'touchPitch', 'dragRotate', 'dragPan', 'touchZoomRotate', 'scrollZoom', 'keyboard']) {
|
|
292
|
+
// @ts-ignore
|
|
293
|
+
if (options.interactive && options[name]) {
|
|
294
|
+
// @ts-ignore
|
|
295
|
+
map[name].enable(options[name]);
|
|
376
296
|
}
|
|
377
|
-
return false;
|
|
378
297
|
}
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
} finally {
|
|
396
|
-
_iterator6.f();
|
|
298
|
+
}
|
|
299
|
+
add(handlerName, handler, allowed) {
|
|
300
|
+
this.handlers.push({
|
|
301
|
+
handlerName,
|
|
302
|
+
handler,
|
|
303
|
+
allowed
|
|
304
|
+
});
|
|
305
|
+
this.handlersById[handlerName] = handler;
|
|
306
|
+
}
|
|
307
|
+
blockedByActive(activeHandlers, allowed, myName) {
|
|
308
|
+
for (const name in activeHandlers) {
|
|
309
|
+
if (name === myName) {
|
|
310
|
+
continue;
|
|
311
|
+
}
|
|
312
|
+
if (!allowed || allowed.indexOf(name) < 0) {
|
|
313
|
+
return true;
|
|
397
314
|
}
|
|
398
|
-
return mapTouches;
|
|
399
315
|
}
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
try {
|
|
409
|
-
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
410
|
-
var _step7$value = _slicedToArray(_step7.value, 3),
|
|
411
|
-
change = _step7$value[0],
|
|
412
|
-
eventsInProgress = _step7$value[1],
|
|
413
|
-
deactivatedHandlers = _step7$value[2];
|
|
414
|
-
if (change.panDelta) {
|
|
415
|
-
combined.panDelta = (combined.panDelta || new Point(0, 0))._add(change.panDelta);
|
|
416
|
-
}
|
|
417
|
-
if (change.zoomDelta) {
|
|
418
|
-
combined.zoomDelta = (combined.zoomDelta || 0) + change.zoomDelta;
|
|
419
|
-
}
|
|
420
|
-
if (change.bearingDelta) {
|
|
421
|
-
combined.bearingDelta = (combined.bearingDelta || 0) + change.bearingDelta;
|
|
422
|
-
}
|
|
423
|
-
if (change.pitchDelta) {
|
|
424
|
-
combined.pitchDelta = (combined.pitchDelta || 0) + change.pitchDelta;
|
|
425
|
-
}
|
|
426
|
-
if (change.around !== undefined) {
|
|
427
|
-
combined.around = change.around;
|
|
428
|
-
}
|
|
429
|
-
if (change.pinchAround !== undefined) {
|
|
430
|
-
combined.pinchAround = change.pinchAround;
|
|
431
|
-
}
|
|
432
|
-
if (change.noInertia) {
|
|
433
|
-
combined.noInertia = change.noInertia;
|
|
434
|
-
}
|
|
435
|
-
merge(combinedEventsInProgress, eventsInProgress);
|
|
436
|
-
merge(combinedDeactivatedHandlers, deactivatedHandlers);
|
|
437
|
-
}
|
|
438
|
-
} catch (err) {
|
|
439
|
-
_iterator7.e(err);
|
|
440
|
-
} finally {
|
|
441
|
-
_iterator7.f();
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
318
|
+
getMapTouches(touches) {
|
|
319
|
+
const mapTouches = [];
|
|
320
|
+
for (const t of touches) {
|
|
321
|
+
const target = t.target;
|
|
322
|
+
if (this.el.contains(target)) {
|
|
323
|
+
mapTouches.push(t);
|
|
442
324
|
}
|
|
443
|
-
this.updateMapTransform(combined, combinedEventsInProgress, combinedDeactivatedHandlers);
|
|
444
|
-
this.changes = [];
|
|
445
325
|
}
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
326
|
+
return mapTouches;
|
|
327
|
+
}
|
|
328
|
+
applyChanges() {
|
|
329
|
+
const combined = {};
|
|
330
|
+
const combinedEventsInProgress = {};
|
|
331
|
+
const combinedDeactivatedHandlers = {};
|
|
332
|
+
for (const [change, eventsInProgress, deactivatedHandlers] of this.changes) {
|
|
333
|
+
if (change.panDelta) {
|
|
334
|
+
combined.panDelta = (combined.panDelta || new Point(0, 0))._add(change.panDelta);
|
|
453
335
|
}
|
|
454
|
-
|
|
455
|
-
zoomDelta =
|
|
456
|
-
bearingDelta = combinedResult.bearingDelta,
|
|
457
|
-
pitchDelta = combinedResult.pitchDelta,
|
|
458
|
-
pinchAround = combinedResult.pinchAround;
|
|
459
|
-
var around = combinedResult.around;
|
|
460
|
-
if (pinchAround !== undefined) {
|
|
461
|
-
around = pinchAround;
|
|
336
|
+
if (change.zoomDelta) {
|
|
337
|
+
combined.zoomDelta = (combined.zoomDelta || 0) + change.zoomDelta;
|
|
462
338
|
}
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
map.stop(true);
|
|
466
|
-
around = around || map.transform.centerPoint;
|
|
467
|
-
var loc = tr.pointLocation(panDelta ? around.sub(panDelta) : around);
|
|
468
|
-
if (bearingDelta && this.rotateEnabled) {
|
|
469
|
-
tr.bearing += bearingDelta;
|
|
339
|
+
if (change.bearingDelta) {
|
|
340
|
+
combined.bearingDelta = (combined.bearingDelta || 0) + change.bearingDelta;
|
|
470
341
|
}
|
|
471
|
-
if (pitchDelta
|
|
472
|
-
|
|
342
|
+
if (change.pitchDelta) {
|
|
343
|
+
combined.pitchDelta = (combined.pitchDelta || 0) + change.pitchDelta;
|
|
473
344
|
}
|
|
474
|
-
if (
|
|
475
|
-
|
|
345
|
+
if (change.around !== undefined) {
|
|
346
|
+
combined.around = change.around;
|
|
476
347
|
}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
if (!combinedResult.noInertia) {
|
|
480
|
-
this.inertia.record(combinedResult);
|
|
348
|
+
if (change.pinchAround !== undefined) {
|
|
349
|
+
combined.pinchAround = change.pinchAround;
|
|
481
350
|
}
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
}, {
|
|
485
|
-
key: "fireEvents",
|
|
486
|
-
value: function fireEvents(newEventsInProgress, deactivatedHandlers) {
|
|
487
|
-
var _this3 = this;
|
|
488
|
-
var wasMoving = _isMoving(this.eventsInProgress);
|
|
489
|
-
var nowMoving = _isMoving(newEventsInProgress);
|
|
490
|
-
var startEvents = {};
|
|
491
|
-
for (var eventName in newEventsInProgress) {
|
|
492
|
-
if (newEventsInProgress[eventName]) {
|
|
493
|
-
var originalEvent = newEventsInProgress[eventName].originalEvent;
|
|
494
|
-
if (!this.eventsInProgress[eventName]) {
|
|
495
|
-
startEvents["".concat(eventName, "start")] = originalEvent;
|
|
496
|
-
}
|
|
497
|
-
this.eventsInProgress[eventName] = newEventsInProgress[eventName];
|
|
498
|
-
}
|
|
351
|
+
if (change.noInertia) {
|
|
352
|
+
combined.noInertia = change.noInertia;
|
|
499
353
|
}
|
|
354
|
+
merge(combinedEventsInProgress, eventsInProgress);
|
|
355
|
+
merge(combinedDeactivatedHandlers, deactivatedHandlers);
|
|
356
|
+
}
|
|
357
|
+
this.updateMapTransform(combined, combinedEventsInProgress, combinedDeactivatedHandlers);
|
|
358
|
+
this.changes = [];
|
|
359
|
+
}
|
|
360
|
+
updateMapTransform(combinedResult, combinedEventsInProgress, deactivatedHandlers) {
|
|
361
|
+
const map = this.map;
|
|
362
|
+
const tr = map.transform;
|
|
363
|
+
if (!hasChange(combinedResult)) {
|
|
364
|
+
return this.fireEvents(combinedEventsInProgress, deactivatedHandlers);
|
|
365
|
+
}
|
|
366
|
+
const {
|
|
367
|
+
panDelta,
|
|
368
|
+
zoomDelta,
|
|
369
|
+
bearingDelta,
|
|
370
|
+
pitchDelta,
|
|
371
|
+
pinchAround
|
|
372
|
+
} = combinedResult;
|
|
373
|
+
let {
|
|
374
|
+
around
|
|
375
|
+
} = combinedResult;
|
|
376
|
+
if (pinchAround !== undefined) {
|
|
377
|
+
around = pinchAround;
|
|
378
|
+
}
|
|
500
379
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
380
|
+
// stop any ongoing camera animations (easeTo, flyTo)
|
|
381
|
+
map.stop(true);
|
|
382
|
+
around = around || map.transform.centerPoint;
|
|
383
|
+
const loc = tr.pointLocation(panDelta ? around.sub(panDelta) : around);
|
|
384
|
+
if (bearingDelta && this.rotateEnabled) {
|
|
385
|
+
tr.bearing += bearingDelta;
|
|
386
|
+
}
|
|
387
|
+
if (pitchDelta && this.pitchEnabled) {
|
|
388
|
+
tr.pitch += pitchDelta;
|
|
389
|
+
}
|
|
390
|
+
if (zoomDelta) {
|
|
391
|
+
tr.zoom += zoomDelta;
|
|
392
|
+
}
|
|
393
|
+
tr.setLocationAtPoint(loc, around);
|
|
394
|
+
this.map.update();
|
|
395
|
+
if (!combinedResult.noInertia) {
|
|
396
|
+
this.inertia.record(combinedResult);
|
|
397
|
+
}
|
|
398
|
+
this.fireEvents(combinedEventsInProgress, deactivatedHandlers);
|
|
399
|
+
}
|
|
400
|
+
fireEvents(newEventsInProgress, deactivatedHandlers) {
|
|
401
|
+
const wasMoving = isMoving(this.eventsInProgress);
|
|
402
|
+
const nowMoving = isMoving(newEventsInProgress);
|
|
403
|
+
const startEvents = {};
|
|
404
|
+
for (const eventName in newEventsInProgress) {
|
|
405
|
+
if (newEventsInProgress[eventName]) {
|
|
406
|
+
const {
|
|
407
|
+
originalEvent
|
|
408
|
+
} = newEventsInProgress[eventName];
|
|
409
|
+
if (!this.eventsInProgress[eventName]) {
|
|
410
|
+
startEvents[`${eventName}start`] = originalEvent;
|
|
508
411
|
}
|
|
412
|
+
this.eventsInProgress[eventName] = newEventsInProgress[eventName];
|
|
509
413
|
}
|
|
510
|
-
|
|
511
|
-
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
// fire start events only after this.eventsInProgress has been updated
|
|
417
|
+
if (!wasMoving && nowMoving) {
|
|
418
|
+
this.fireEvent('movestart', nowMoving.originalEvent);
|
|
419
|
+
}
|
|
420
|
+
for (const name in startEvents) {
|
|
421
|
+
if (startEvents[name]) {
|
|
422
|
+
this.fireEvent(name, startEvents[name]);
|
|
512
423
|
}
|
|
513
|
-
|
|
514
|
-
|
|
424
|
+
}
|
|
425
|
+
if (newEventsInProgress.rotate) {
|
|
426
|
+
this.bearingChanged = true;
|
|
427
|
+
}
|
|
428
|
+
if (nowMoving) {
|
|
429
|
+
this.fireEvent('move', nowMoving.originalEvent);
|
|
430
|
+
}
|
|
431
|
+
for (const eventName in newEventsInProgress) {
|
|
432
|
+
if (newEventsInProgress[eventName]) {
|
|
433
|
+
const {
|
|
434
|
+
originalEvent
|
|
435
|
+
} = newEventsInProgress[eventName];
|
|
436
|
+
this.fireEvent(eventName, originalEvent);
|
|
515
437
|
}
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
438
|
+
}
|
|
439
|
+
const endEvents = {};
|
|
440
|
+
let originalEndEvent;
|
|
441
|
+
for (const eventName in this.eventsInProgress) {
|
|
442
|
+
if (this.eventsInProgress[eventName]) {
|
|
443
|
+
const {
|
|
444
|
+
handlerName,
|
|
445
|
+
originalEvent
|
|
446
|
+
} = this.eventsInProgress[eventName];
|
|
447
|
+
if (!this.handlersById[handlerName].isActive()) {
|
|
448
|
+
delete this.eventsInProgress[eventName];
|
|
449
|
+
originalEndEvent = deactivatedHandlers[handlerName] || originalEvent;
|
|
450
|
+
endEvents[`${eventName}end`] = originalEndEvent;
|
|
520
451
|
}
|
|
521
452
|
}
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
var _this$eventsInProgres = this.eventsInProgress[_eventName2],
|
|
527
|
-
handlerName = _this$eventsInProgres.handlerName,
|
|
528
|
-
_originalEvent2 = _this$eventsInProgres.originalEvent;
|
|
529
|
-
if (!this.handlersById[handlerName].isActive()) {
|
|
530
|
-
delete this.eventsInProgress[_eventName2];
|
|
531
|
-
originalEndEvent = deactivatedHandlers[handlerName] || _originalEvent2;
|
|
532
|
-
endEvents["".concat(_eventName2, "end")] = originalEndEvent;
|
|
533
|
-
}
|
|
534
|
-
}
|
|
453
|
+
}
|
|
454
|
+
for (const name in endEvents) {
|
|
455
|
+
if (endEvents[name]) {
|
|
456
|
+
this.fireEvent(name, endEvents[name]);
|
|
535
457
|
}
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
458
|
+
}
|
|
459
|
+
const stillMoving = isMoving(this.eventsInProgress);
|
|
460
|
+
if ((wasMoving || nowMoving) && !stillMoving) {
|
|
461
|
+
this.updatingCamera = true;
|
|
462
|
+
const inertialEase = this.inertia.onMoveEnd(this.map.dragPan.inertiaOptions);
|
|
463
|
+
const shouldSnapToNorth = bearing => bearing !== 0 && -this.bearingSnap < bearing && bearing < this.bearingSnap;
|
|
464
|
+
if (inertialEase) {
|
|
465
|
+
if (shouldSnapToNorth(inertialEase.bearing || this.map.getBearing())) {
|
|
466
|
+
inertialEase.bearing = 0;
|
|
539
467
|
}
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
if (shouldSnapToNorth(inertialEase.bearing || this.map.getBearing())) {
|
|
550
|
-
inertialEase.bearing = 0;
|
|
551
|
-
}
|
|
552
|
-
this.map.easeTo(inertialEase, {
|
|
553
|
-
originalEvent: originalEndEvent
|
|
554
|
-
});
|
|
555
|
-
} else {
|
|
556
|
-
this.map.emit('moveend', new Event('moveend', {
|
|
557
|
-
originalEvent: originalEndEvent
|
|
558
|
-
}));
|
|
559
|
-
if (shouldSnapToNorth(this.map.getBearing())) {
|
|
560
|
-
this.map.resetNorth();
|
|
561
|
-
}
|
|
468
|
+
this.map.easeTo(inertialEase, {
|
|
469
|
+
originalEvent: originalEndEvent
|
|
470
|
+
});
|
|
471
|
+
} else {
|
|
472
|
+
this.map.emit('moveend', new Event('moveend', {
|
|
473
|
+
originalEvent: originalEndEvent
|
|
474
|
+
}));
|
|
475
|
+
if (shouldSnapToNorth(this.map.getBearing())) {
|
|
476
|
+
this.map.resetNorth();
|
|
562
477
|
}
|
|
563
|
-
this.bearingChanged = false;
|
|
564
|
-
this.updatingCamera = false;
|
|
565
478
|
}
|
|
479
|
+
this.bearingChanged = false;
|
|
480
|
+
this.updatingCamera = false;
|
|
566
481
|
}
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
}]);
|
|
575
|
-
return HandlerManager;
|
|
576
|
-
}();
|
|
482
|
+
}
|
|
483
|
+
fireEvent(type, e) {
|
|
484
|
+
this.map.emit(type, new Event(type, e ? {
|
|
485
|
+
originalEvent: e
|
|
486
|
+
} : {}));
|
|
487
|
+
}
|
|
488
|
+
}
|
|
577
489
|
export default HandlerManager;
|