@deck.gl/mapbox 8.9.4 → 8.9.6
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/dist/dist.dev.js +42 -4
- package/dist/es5/mapbox-overlay.js +55 -5
- package/dist/es5/mapbox-overlay.js.map +1 -1
- package/dist/esm/mapbox-overlay.js +56 -5
- package/dist/esm/mapbox-overlay.js.map +1 -1
- package/dist.min.js +4 -4
- package/package.json +2 -2
- package/src/mapbox-overlay.ts +51 -5
- package/typed/mapbox-overlay.d.ts +1 -0
- package/typed/mapbox-overlay.d.ts.map +1 -1
package/dist/dist.dev.js
CHANGED
|
@@ -1091,6 +1091,10 @@ var __exports__ = (() => {
|
|
|
1091
1091
|
});
|
|
1092
1092
|
map.on("resize", this._updateContainerSize);
|
|
1093
1093
|
map.on("render", this._updateViewState);
|
|
1094
|
+
map.on("mousedown", this._handleMouseEvent);
|
|
1095
|
+
map.on("dragstart", this._handleMouseEvent);
|
|
1096
|
+
map.on("drag", this._handleMouseEvent);
|
|
1097
|
+
map.on("dragend", this._handleMouseEvent);
|
|
1094
1098
|
map.on("mousemove", this._handleMouseEvent);
|
|
1095
1099
|
map.on("mouseout", this._handleMouseEvent);
|
|
1096
1100
|
map.on("click", this._handleMouseEvent);
|
|
@@ -1128,6 +1132,10 @@ var __exports__ = (() => {
|
|
|
1128
1132
|
_onRemoveOverlaid(map) {
|
|
1129
1133
|
map.off("resize", this._updateContainerSize);
|
|
1130
1134
|
map.off("render", this._updateViewState);
|
|
1135
|
+
map.off("mousedown", this._handleMouseEvent);
|
|
1136
|
+
map.off("dragstart", this._handleMouseEvent);
|
|
1137
|
+
map.off("drag", this._handleMouseEvent);
|
|
1138
|
+
map.off("dragend", this._handleMouseEvent);
|
|
1131
1139
|
map.off("mousemove", this._handleMouseEvent);
|
|
1132
1140
|
map.off("mouseout", this._handleMouseEvent);
|
|
1133
1141
|
map.off("click", this._handleMouseEvent);
|
|
@@ -1178,12 +1186,14 @@ var __exports__ = (() => {
|
|
|
1178
1186
|
deck.setProps({
|
|
1179
1187
|
viewState: getViewState(this._map)
|
|
1180
1188
|
});
|
|
1181
|
-
deck.
|
|
1189
|
+
if (deck.isInitialized) {
|
|
1190
|
+
deck.redraw();
|
|
1191
|
+
}
|
|
1182
1192
|
}
|
|
1183
1193
|
};
|
|
1184
1194
|
_handleMouseEvent = (event) => {
|
|
1185
1195
|
const deck = this._deck;
|
|
1186
|
-
if (!deck) {
|
|
1196
|
+
if (!deck || !deck.isInitialized) {
|
|
1187
1197
|
return;
|
|
1188
1198
|
}
|
|
1189
1199
|
const mockEvent = {
|
|
@@ -1191,10 +1201,38 @@ var __exports__ = (() => {
|
|
|
1191
1201
|
offsetCenter: event.point,
|
|
1192
1202
|
srcEvent: event
|
|
1193
1203
|
};
|
|
1194
|
-
|
|
1204
|
+
const lastDown = this._lastMouseDownPoint;
|
|
1205
|
+
if (!event.point && lastDown) {
|
|
1206
|
+
mockEvent.deltaX = event.originalEvent.clientX - lastDown.clientX;
|
|
1207
|
+
mockEvent.deltaY = event.originalEvent.clientY - lastDown.clientY;
|
|
1208
|
+
mockEvent.offsetCenter = {
|
|
1209
|
+
x: lastDown.x + mockEvent.deltaX,
|
|
1210
|
+
y: lastDown.y + mockEvent.deltaY
|
|
1211
|
+
};
|
|
1212
|
+
}
|
|
1213
|
+
switch (mockEvent.type) {
|
|
1214
|
+
case "mousedown":
|
|
1215
|
+
deck._onPointerDown(mockEvent);
|
|
1216
|
+
this._lastMouseDownPoint = {
|
|
1217
|
+
...event.point,
|
|
1218
|
+
clientX: event.originalEvent.clientX,
|
|
1219
|
+
clientY: event.originalEvent.clientY
|
|
1220
|
+
};
|
|
1221
|
+
break;
|
|
1222
|
+
case "dragstart":
|
|
1223
|
+
mockEvent.type = "panstart";
|
|
1224
|
+
deck._onEvent(mockEvent);
|
|
1225
|
+
break;
|
|
1226
|
+
case "drag":
|
|
1227
|
+
mockEvent.type = "panmove";
|
|
1228
|
+
deck._onEvent(mockEvent);
|
|
1229
|
+
break;
|
|
1230
|
+
case "dragend":
|
|
1231
|
+
mockEvent.type = "panend";
|
|
1232
|
+
deck._onEvent(mockEvent);
|
|
1233
|
+
break;
|
|
1195
1234
|
case "click":
|
|
1196
1235
|
mockEvent.tapCount = 1;
|
|
1197
|
-
deck._onPointerDown(mockEvent);
|
|
1198
1236
|
deck._onEvent(mockEvent);
|
|
1199
1237
|
break;
|
|
1200
1238
|
case "dblclick":
|
|
@@ -37,6 +37,7 @@ var MapboxOverlay = function () {
|
|
|
37
37
|
(0, _defineProperty2.default)(this, "_map", void 0);
|
|
38
38
|
(0, _defineProperty2.default)(this, "_container", void 0);
|
|
39
39
|
(0, _defineProperty2.default)(this, "_interleaved", void 0);
|
|
40
|
+
(0, _defineProperty2.default)(this, "_lastMouseDownPoint", void 0);
|
|
40
41
|
(0, _defineProperty2.default)(this, "_handleStyleChange", function () {
|
|
41
42
|
(0, _resolveLayers.resolveLayers)(_this._map, _this._deck, _this._props.layers, _this._props.layers);
|
|
42
43
|
});
|
|
@@ -59,13 +60,16 @@ var MapboxOverlay = function () {
|
|
|
59
60
|
deck.setProps({
|
|
60
61
|
viewState: (0, _deckUtils.getViewState)(_this._map)
|
|
61
62
|
});
|
|
62
|
-
|
|
63
|
+
|
|
64
|
+
if (deck.isInitialized) {
|
|
65
|
+
deck.redraw();
|
|
66
|
+
}
|
|
63
67
|
}
|
|
64
68
|
});
|
|
65
69
|
(0, _defineProperty2.default)(this, "_handleMouseEvent", function (event) {
|
|
66
70
|
var deck = _this._deck;
|
|
67
71
|
|
|
68
|
-
if (!deck) {
|
|
72
|
+
if (!deck || !deck.isInitialized) {
|
|
69
73
|
return;
|
|
70
74
|
}
|
|
71
75
|
|
|
@@ -74,13 +78,51 @@ var MapboxOverlay = function () {
|
|
|
74
78
|
offsetCenter: event.point,
|
|
75
79
|
srcEvent: event
|
|
76
80
|
};
|
|
81
|
+
var lastDown = _this._lastMouseDownPoint;
|
|
82
|
+
|
|
83
|
+
if (!event.point && lastDown) {
|
|
84
|
+
mockEvent.deltaX = event.originalEvent.clientX - lastDown.clientX;
|
|
85
|
+
mockEvent.deltaY = event.originalEvent.clientY - lastDown.clientY;
|
|
86
|
+
mockEvent.offsetCenter = {
|
|
87
|
+
x: lastDown.x + mockEvent.deltaX,
|
|
88
|
+
y: lastDown.y + mockEvent.deltaY
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
switch (mockEvent.type) {
|
|
93
|
+
case 'mousedown':
|
|
94
|
+
deck._onPointerDown(mockEvent);
|
|
95
|
+
|
|
96
|
+
_this._lastMouseDownPoint = _objectSpread(_objectSpread({}, event.point), {}, {
|
|
97
|
+
clientX: event.originalEvent.clientX,
|
|
98
|
+
clientY: event.originalEvent.clientY
|
|
99
|
+
});
|
|
100
|
+
break;
|
|
101
|
+
|
|
102
|
+
case 'dragstart':
|
|
103
|
+
mockEvent.type = 'panstart';
|
|
104
|
+
|
|
105
|
+
deck._onEvent(mockEvent);
|
|
106
|
+
|
|
107
|
+
break;
|
|
108
|
+
|
|
109
|
+
case 'drag':
|
|
110
|
+
mockEvent.type = 'panmove';
|
|
111
|
+
|
|
112
|
+
deck._onEvent(mockEvent);
|
|
113
|
+
|
|
114
|
+
break;
|
|
115
|
+
|
|
116
|
+
case 'dragend':
|
|
117
|
+
mockEvent.type = 'panend';
|
|
118
|
+
|
|
119
|
+
deck._onEvent(mockEvent);
|
|
120
|
+
|
|
121
|
+
break;
|
|
77
122
|
|
|
78
|
-
switch (event.type) {
|
|
79
123
|
case 'click':
|
|
80
124
|
mockEvent.tapCount = 1;
|
|
81
125
|
|
|
82
|
-
deck._onPointerDown(mockEvent);
|
|
83
|
-
|
|
84
126
|
deck._onEvent(mockEvent);
|
|
85
127
|
|
|
86
128
|
break;
|
|
@@ -154,6 +196,10 @@ var MapboxOverlay = function () {
|
|
|
154
196
|
}));
|
|
155
197
|
map.on('resize', this._updateContainerSize);
|
|
156
198
|
map.on('render', this._updateViewState);
|
|
199
|
+
map.on('mousedown', this._handleMouseEvent);
|
|
200
|
+
map.on('dragstart', this._handleMouseEvent);
|
|
201
|
+
map.on('drag', this._handleMouseEvent);
|
|
202
|
+
map.on('dragend', this._handleMouseEvent);
|
|
157
203
|
map.on('mousemove', this._handleMouseEvent);
|
|
158
204
|
map.on('mouseout', this._handleMouseEvent);
|
|
159
205
|
map.on('click', this._handleMouseEvent);
|
|
@@ -202,6 +248,10 @@ var MapboxOverlay = function () {
|
|
|
202
248
|
value: function _onRemoveOverlaid(map) {
|
|
203
249
|
map.off('resize', this._updateContainerSize);
|
|
204
250
|
map.off('render', this._updateViewState);
|
|
251
|
+
map.off('mousedown', this._handleMouseEvent);
|
|
252
|
+
map.off('dragstart', this._handleMouseEvent);
|
|
253
|
+
map.off('drag', this._handleMouseEvent);
|
|
254
|
+
map.off('dragend', this._handleMouseEvent);
|
|
205
255
|
map.off('mousemove', this._handleMouseEvent);
|
|
206
256
|
map.off('mouseout', this._handleMouseEvent);
|
|
207
257
|
map.off('click', this._handleMouseEvent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mapbox-overlay.ts"],"names":["MapboxOverlay","props","_map","_deck","_props","layers","_container","getContainer","clientWidth","clientHeight","Object","assign","style","width","height","deck","setProps","viewState","redraw","event","mockEvent","type","offsetCenter","point","srcEvent","tapCount","_onPointerDown","_onEvent","_onPointerMove","interleaved","otherProps","_interleaved","map","_onAddInterleaved","_onAddOverlaid","container","document","createElement","position","left","top","pointerEvents","Deck","parent","on","_updateContainerSize","_updateViewState","_handleMouseEvent","gl","painter","context","_handleStyleChange","_onRemoveInterleaved","_onRemoveOverlaid","finalize","undefined","off","params","pickObject","pickMultipleObjects","pickObjects","removeControl"],"mappings":"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","sourcesContent":["import {Deck, assert} from '@deck.gl/core';\nimport {getViewState, getDeckInstance, getInterleavedProps} from './deck-utils';\n\nimport type {Map, IControl, MapMouseEvent} from 'mapbox-gl';\nimport type {MjolnirGestureEvent, MjolnirPointerEvent} from 'mjolnir.js';\nimport type {DeckProps} from '@deck.gl/core';\n\nimport {resolveLayers} from './resolve-layers';\n\nexport type MapboxOverlayProps = Omit<\n DeckProps,\n | 'width'\n | 'height'\n | 'gl'\n | 'parent'\n | 'canvas'\n | '_customRender'\n | 'viewState'\n | 'initialViewState'\n | 'controller'\n> & {\n interleaved?: boolean;\n};\n\n/**\n * Implements Mapbox [IControl](https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol) interface\n * Renders deck.gl layers over the base map and automatically synchronizes with the map's camera\n */\nexport default class MapboxOverlay implements IControl {\n private _props: MapboxOverlayProps;\n private _deck?: Deck;\n private _map?: Map;\n private _container?: HTMLDivElement;\n private _interleaved: boolean;\n\n constructor(props: MapboxOverlayProps) {\n const {interleaved = false, ...otherProps} = props;\n this._interleaved = interleaved;\n this._props = otherProps;\n }\n\n /** Update (partial) props of the underlying Deck instance. */\n setProps(props: MapboxOverlayProps): void {\n if (this._interleaved && props.layers) {\n resolveLayers(this._map, this._deck, this._props.layers, props.layers);\n }\n\n Object.assign(this._props, props);\n\n if (this._deck) {\n this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);\n }\n }\n\n /** Called when the control is added to a map */\n onAdd(map: Map): HTMLDivElement {\n this._map = map;\n return this._interleaved ? this._onAddInterleaved(map) : this._onAddOverlaid(map);\n }\n\n private _onAddOverlaid(map: Map): HTMLDivElement {\n /* global document */\n const container = document.createElement('div');\n Object.assign(container.style, {\n position: 'absolute',\n left: 0,\n top: 0,\n pointerEvents: 'none'\n });\n this._container = container;\n\n this._deck = new Deck({\n ...this._props,\n parent: container,\n viewState: getViewState(map)\n });\n\n map.on('resize', this._updateContainerSize);\n map.on('render', this._updateViewState);\n map.on('mousemove', this._handleMouseEvent);\n map.on('mouseout', this._handleMouseEvent);\n map.on('click', this._handleMouseEvent);\n map.on('dblclick', this._handleMouseEvent);\n\n this._updateContainerSize();\n return container;\n }\n\n private _onAddInterleaved(map: Map): HTMLDivElement {\n this._deck = getDeckInstance({\n map,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl,\n deck: new Deck({\n ...this._props,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl\n })\n });\n\n map.on('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, [], this._props.layers);\n\n return document.createElement('div');\n }\n\n /** Called when the control is removed from a map */\n onRemove(): void {\n const map = this._map;\n\n if (map) {\n if (this._interleaved) {\n this._onRemoveInterleaved(map);\n } else {\n this._onRemoveOverlaid(map);\n }\n }\n\n this._deck?.finalize();\n this._deck = undefined;\n this._map = undefined;\n this._container = undefined;\n }\n\n private _onRemoveOverlaid(map: Map): void {\n map.off('resize', this._updateContainerSize);\n map.off('render', this._updateViewState);\n map.off('mousemove', this._handleMouseEvent);\n map.off('mouseout', this._handleMouseEvent);\n map.off('click', this._handleMouseEvent);\n map.off('dblclick', this._handleMouseEvent);\n }\n\n private _onRemoveInterleaved(map: Map): void {\n map.off('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, this._props.layers, []);\n }\n\n getDefaultPosition() {\n return 'top-left';\n }\n\n /** Forwards the Deck.pickObject method */\n pickObject(params: Parameters<Deck['pickObject']>[0]): ReturnType<Deck['pickObject']> {\n assert(this._deck);\n return this._deck.pickObject(params);\n }\n\n /** Forwards the Deck.pickMultipleObjects method */\n pickMultipleObjects(\n params: Parameters<Deck['pickMultipleObjects']>[0]\n ): ReturnType<Deck['pickMultipleObjects']> {\n assert(this._deck);\n return this._deck.pickMultipleObjects(params);\n }\n\n /** Forwards the Deck.pickObjects method */\n pickObjects(params: Parameters<Deck['pickObjects']>[0]): ReturnType<Deck['pickObjects']> {\n assert(this._deck);\n return this._deck.pickObjects(params);\n }\n\n /** Remove from map and releases all resources */\n finalize() {\n if (this._map) {\n this._map.removeControl(this);\n }\n }\n\n private _handleStyleChange = () => {\n resolveLayers(this._map, this._deck, this._props.layers, this._props.layers);\n };\n\n private _updateContainerSize = () => {\n if (this._map && this._container) {\n const {clientWidth, clientHeight} = this._map.getContainer();\n Object.assign(this._container.style, {\n width: `${clientWidth}px`,\n height: `${clientHeight}px`\n });\n }\n };\n\n private _updateViewState = () => {\n const deck = this._deck;\n if (deck) {\n // @ts-ignore (2345) map is always defined if deck is\n deck.setProps({viewState: getViewState(this._map)});\n // Redraw immediately if view state has changed\n deck.redraw();\n }\n };\n\n private _handleMouseEvent = (event: MapMouseEvent) => {\n const deck = this._deck;\n if (!deck) {\n return;\n }\n\n const mockEvent: {\n type: string;\n offsetCenter: {x: number; y: number};\n srcEvent: MapMouseEvent;\n tapCount?: number;\n } = {\n type: event.type,\n offsetCenter: event.point,\n srcEvent: event\n };\n\n switch (event.type) {\n case 'click':\n mockEvent.tapCount = 1;\n // Hack: because we do not listen to pointer down, perform picking now\n deck._onPointerDown(mockEvent as MjolnirGestureEvent);\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'dblclick':\n mockEvent.type = 'click';\n mockEvent.tapCount = 2;\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'mousemove':\n mockEvent.type = 'pointermove';\n deck._onPointerMove(mockEvent as MjolnirPointerEvent);\n break;\n\n case 'mouseout':\n mockEvent.type = 'pointerleave';\n deck._onPointerMove(mockEvent as MjolnirPointerEvent);\n break;\n\n default:\n return;\n }\n };\n}\n"],"file":"mapbox-overlay.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/mapbox-overlay.ts"],"names":["MapboxOverlay","props","_map","_deck","_props","layers","_container","getContainer","clientWidth","clientHeight","Object","assign","style","width","height","deck","setProps","viewState","isInitialized","redraw","event","mockEvent","type","offsetCenter","point","srcEvent","lastDown","_lastMouseDownPoint","deltaX","originalEvent","clientX","deltaY","clientY","x","y","_onPointerDown","_onEvent","tapCount","_onPointerMove","interleaved","otherProps","_interleaved","map","_onAddInterleaved","_onAddOverlaid","container","document","createElement","position","left","top","pointerEvents","Deck","parent","on","_updateContainerSize","_updateViewState","_handleMouseEvent","gl","painter","context","_handleStyleChange","_onRemoveInterleaved","_onRemoveOverlaid","finalize","undefined","off","params","pickObject","pickMultipleObjects","pickObjects","removeControl"],"mappings":"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","sourcesContent":["import {Deck, assert} from '@deck.gl/core';\nimport {getViewState, getDeckInstance, getInterleavedProps} from './deck-utils';\n\nimport type {Map, IControl, MapMouseEvent} from 'mapbox-gl';\nimport type {MjolnirGestureEvent, MjolnirPointerEvent} from 'mjolnir.js';\nimport type {DeckProps} from '@deck.gl/core';\n\nimport {resolveLayers} from './resolve-layers';\n\nexport type MapboxOverlayProps = Omit<\n DeckProps,\n | 'width'\n | 'height'\n | 'gl'\n | 'parent'\n | 'canvas'\n | '_customRender'\n | 'viewState'\n | 'initialViewState'\n | 'controller'\n> & {\n interleaved?: boolean;\n};\n\n/**\n * Implements Mapbox [IControl](https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol) interface\n * Renders deck.gl layers over the base map and automatically synchronizes with the map's camera\n */\nexport default class MapboxOverlay implements IControl {\n private _props: MapboxOverlayProps;\n private _deck?: Deck;\n private _map?: Map;\n private _container?: HTMLDivElement;\n private _interleaved: boolean;\n private _lastMouseDownPoint?: {x: number; y: number; clientX: number; clientY: number};\n\n constructor(props: MapboxOverlayProps) {\n const {interleaved = false, ...otherProps} = props;\n this._interleaved = interleaved;\n this._props = otherProps;\n }\n\n /** Update (partial) props of the underlying Deck instance. */\n setProps(props: MapboxOverlayProps): void {\n if (this._interleaved && props.layers) {\n resolveLayers(this._map, this._deck, this._props.layers, props.layers);\n }\n\n Object.assign(this._props, props);\n\n if (this._deck) {\n this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);\n }\n }\n\n /** Called when the control is added to a map */\n onAdd(map: Map): HTMLDivElement {\n this._map = map;\n return this._interleaved ? this._onAddInterleaved(map) : this._onAddOverlaid(map);\n }\n\n private _onAddOverlaid(map: Map): HTMLDivElement {\n /* global document */\n const container = document.createElement('div');\n Object.assign(container.style, {\n position: 'absolute',\n left: 0,\n top: 0,\n pointerEvents: 'none'\n });\n this._container = container;\n\n this._deck = new Deck({\n ...this._props,\n parent: container,\n viewState: getViewState(map)\n });\n\n map.on('resize', this._updateContainerSize);\n map.on('render', this._updateViewState);\n map.on('mousedown', this._handleMouseEvent);\n map.on('dragstart', this._handleMouseEvent);\n map.on('drag', this._handleMouseEvent);\n map.on('dragend', this._handleMouseEvent);\n map.on('mousemove', this._handleMouseEvent);\n map.on('mouseout', this._handleMouseEvent);\n map.on('click', this._handleMouseEvent);\n map.on('dblclick', this._handleMouseEvent);\n\n this._updateContainerSize();\n return container;\n }\n\n private _onAddInterleaved(map: Map): HTMLDivElement {\n this._deck = getDeckInstance({\n map,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl,\n deck: new Deck({\n ...this._props,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl\n })\n });\n\n map.on('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, [], this._props.layers);\n\n return document.createElement('div');\n }\n\n /** Called when the control is removed from a map */\n onRemove(): void {\n const map = this._map;\n\n if (map) {\n if (this._interleaved) {\n this._onRemoveInterleaved(map);\n } else {\n this._onRemoveOverlaid(map);\n }\n }\n\n this._deck?.finalize();\n this._deck = undefined;\n this._map = undefined;\n this._container = undefined;\n }\n\n private _onRemoveOverlaid(map: Map): void {\n map.off('resize', this._updateContainerSize);\n map.off('render', this._updateViewState);\n map.off('mousedown', this._handleMouseEvent);\n map.off('dragstart', this._handleMouseEvent);\n map.off('drag', this._handleMouseEvent);\n map.off('dragend', this._handleMouseEvent);\n map.off('mousemove', this._handleMouseEvent);\n map.off('mouseout', this._handleMouseEvent);\n map.off('click', this._handleMouseEvent);\n map.off('dblclick', this._handleMouseEvent);\n }\n\n private _onRemoveInterleaved(map: Map): void {\n map.off('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, this._props.layers, []);\n }\n\n getDefaultPosition() {\n return 'top-left';\n }\n\n /** Forwards the Deck.pickObject method */\n pickObject(params: Parameters<Deck['pickObject']>[0]): ReturnType<Deck['pickObject']> {\n assert(this._deck);\n return this._deck.pickObject(params);\n }\n\n /** Forwards the Deck.pickMultipleObjects method */\n pickMultipleObjects(\n params: Parameters<Deck['pickMultipleObjects']>[0]\n ): ReturnType<Deck['pickMultipleObjects']> {\n assert(this._deck);\n return this._deck.pickMultipleObjects(params);\n }\n\n /** Forwards the Deck.pickObjects method */\n pickObjects(params: Parameters<Deck['pickObjects']>[0]): ReturnType<Deck['pickObjects']> {\n assert(this._deck);\n return this._deck.pickObjects(params);\n }\n\n /** Remove from map and releases all resources */\n finalize() {\n if (this._map) {\n this._map.removeControl(this);\n }\n }\n\n private _handleStyleChange = () => {\n resolveLayers(this._map, this._deck, this._props.layers, this._props.layers);\n };\n\n private _updateContainerSize = () => {\n if (this._map && this._container) {\n const {clientWidth, clientHeight} = this._map.getContainer();\n Object.assign(this._container.style, {\n width: `${clientWidth}px`,\n height: `${clientHeight}px`\n });\n }\n };\n\n private _updateViewState = () => {\n const deck = this._deck;\n if (deck) {\n // @ts-ignore (2345) map is always defined if deck is\n deck.setProps({viewState: getViewState(this._map)});\n // Redraw immediately if view state has changed\n if (deck.isInitialized) {\n deck.redraw();\n }\n }\n };\n\n private _handleMouseEvent = (event: MapMouseEvent) => {\n const deck = this._deck;\n if (!deck || !deck.isInitialized) {\n return;\n }\n\n const mockEvent: {\n type: string;\n deltaX?: number;\n deltaY?: number;\n offsetCenter: {x: number; y: number};\n srcEvent: MapMouseEvent;\n tapCount?: number;\n } = {\n type: event.type,\n offsetCenter: event.point,\n srcEvent: event\n };\n\n const lastDown = this._lastMouseDownPoint;\n if (!event.point && lastDown) {\n // drag* events do not contain a `point` field\n mockEvent.deltaX = event.originalEvent.clientX - lastDown.clientX;\n mockEvent.deltaY = event.originalEvent.clientY - lastDown.clientY;\n mockEvent.offsetCenter = {\n x: lastDown.x + mockEvent.deltaX,\n y: lastDown.y + mockEvent.deltaY\n };\n }\n\n switch (mockEvent.type) {\n case 'mousedown':\n deck._onPointerDown(mockEvent as MjolnirGestureEvent);\n this._lastMouseDownPoint = {\n ...event.point,\n clientX: event.originalEvent.clientX,\n clientY: event.originalEvent.clientY\n };\n break;\n\n case 'dragstart':\n mockEvent.type = 'panstart';\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'drag':\n mockEvent.type = 'panmove';\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'dragend':\n mockEvent.type = 'panend';\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'click':\n mockEvent.tapCount = 1;\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'dblclick':\n mockEvent.type = 'click';\n mockEvent.tapCount = 2;\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'mousemove':\n mockEvent.type = 'pointermove';\n deck._onPointerMove(mockEvent as MjolnirPointerEvent);\n break;\n\n case 'mouseout':\n mockEvent.type = 'pointerleave';\n deck._onPointerMove(mockEvent as MjolnirPointerEvent);\n break;\n\n default:\n return;\n }\n };\n}\n"],"file":"mapbox-overlay.js"}
|
|
@@ -14,6 +14,8 @@ export default class MapboxOverlay {
|
|
|
14
14
|
|
|
15
15
|
_defineProperty(this, "_interleaved", void 0);
|
|
16
16
|
|
|
17
|
+
_defineProperty(this, "_lastMouseDownPoint", void 0);
|
|
18
|
+
|
|
17
19
|
_defineProperty(this, "_handleStyleChange", () => {
|
|
18
20
|
resolveLayers(this._map, this._deck, this._props.layers, this._props.layers);
|
|
19
21
|
});
|
|
@@ -39,14 +41,17 @@ export default class MapboxOverlay {
|
|
|
39
41
|
deck.setProps({
|
|
40
42
|
viewState: getViewState(this._map)
|
|
41
43
|
});
|
|
42
|
-
|
|
44
|
+
|
|
45
|
+
if (deck.isInitialized) {
|
|
46
|
+
deck.redraw();
|
|
47
|
+
}
|
|
43
48
|
}
|
|
44
49
|
});
|
|
45
50
|
|
|
46
51
|
_defineProperty(this, "_handleMouseEvent", event => {
|
|
47
52
|
const deck = this._deck;
|
|
48
53
|
|
|
49
|
-
if (!deck) {
|
|
54
|
+
if (!deck || !deck.isInitialized) {
|
|
50
55
|
return;
|
|
51
56
|
}
|
|
52
57
|
|
|
@@ -55,13 +60,51 @@ export default class MapboxOverlay {
|
|
|
55
60
|
offsetCenter: event.point,
|
|
56
61
|
srcEvent: event
|
|
57
62
|
};
|
|
63
|
+
const lastDown = this._lastMouseDownPoint;
|
|
64
|
+
|
|
65
|
+
if (!event.point && lastDown) {
|
|
66
|
+
mockEvent.deltaX = event.originalEvent.clientX - lastDown.clientX;
|
|
67
|
+
mockEvent.deltaY = event.originalEvent.clientY - lastDown.clientY;
|
|
68
|
+
mockEvent.offsetCenter = {
|
|
69
|
+
x: lastDown.x + mockEvent.deltaX,
|
|
70
|
+
y: lastDown.y + mockEvent.deltaY
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
switch (mockEvent.type) {
|
|
75
|
+
case 'mousedown':
|
|
76
|
+
deck._onPointerDown(mockEvent);
|
|
77
|
+
|
|
78
|
+
this._lastMouseDownPoint = { ...event.point,
|
|
79
|
+
clientX: event.originalEvent.clientX,
|
|
80
|
+
clientY: event.originalEvent.clientY
|
|
81
|
+
};
|
|
82
|
+
break;
|
|
83
|
+
|
|
84
|
+
case 'dragstart':
|
|
85
|
+
mockEvent.type = 'panstart';
|
|
86
|
+
|
|
87
|
+
deck._onEvent(mockEvent);
|
|
88
|
+
|
|
89
|
+
break;
|
|
90
|
+
|
|
91
|
+
case 'drag':
|
|
92
|
+
mockEvent.type = 'panmove';
|
|
93
|
+
|
|
94
|
+
deck._onEvent(mockEvent);
|
|
95
|
+
|
|
96
|
+
break;
|
|
97
|
+
|
|
98
|
+
case 'dragend':
|
|
99
|
+
mockEvent.type = 'panend';
|
|
100
|
+
|
|
101
|
+
deck._onEvent(mockEvent);
|
|
102
|
+
|
|
103
|
+
break;
|
|
58
104
|
|
|
59
|
-
switch (event.type) {
|
|
60
105
|
case 'click':
|
|
61
106
|
mockEvent.tapCount = 1;
|
|
62
107
|
|
|
63
|
-
deck._onPointerDown(mockEvent);
|
|
64
|
-
|
|
65
108
|
deck._onEvent(mockEvent);
|
|
66
109
|
|
|
67
110
|
break;
|
|
@@ -133,6 +176,10 @@ export default class MapboxOverlay {
|
|
|
133
176
|
});
|
|
134
177
|
map.on('resize', this._updateContainerSize);
|
|
135
178
|
map.on('render', this._updateViewState);
|
|
179
|
+
map.on('mousedown', this._handleMouseEvent);
|
|
180
|
+
map.on('dragstart', this._handleMouseEvent);
|
|
181
|
+
map.on('drag', this._handleMouseEvent);
|
|
182
|
+
map.on('dragend', this._handleMouseEvent);
|
|
136
183
|
map.on('mousemove', this._handleMouseEvent);
|
|
137
184
|
map.on('mouseout', this._handleMouseEvent);
|
|
138
185
|
map.on('click', this._handleMouseEvent);
|
|
@@ -178,6 +225,10 @@ export default class MapboxOverlay {
|
|
|
178
225
|
_onRemoveOverlaid(map) {
|
|
179
226
|
map.off('resize', this._updateContainerSize);
|
|
180
227
|
map.off('render', this._updateViewState);
|
|
228
|
+
map.off('mousedown', this._handleMouseEvent);
|
|
229
|
+
map.off('dragstart', this._handleMouseEvent);
|
|
230
|
+
map.off('drag', this._handleMouseEvent);
|
|
231
|
+
map.off('dragend', this._handleMouseEvent);
|
|
181
232
|
map.off('mousemove', this._handleMouseEvent);
|
|
182
233
|
map.off('mouseout', this._handleMouseEvent);
|
|
183
234
|
map.off('click', this._handleMouseEvent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mapbox-overlay.ts"],"names":["Deck","assert","getViewState","getDeckInstance","getInterleavedProps","resolveLayers","MapboxOverlay","constructor","props","_map","_deck","_props","layers","_container","clientWidth","clientHeight","getContainer","Object","assign","style","width","height","deck","setProps","viewState","redraw","event","mockEvent","type","offsetCenter","point","srcEvent","tapCount","_onPointerDown","_onEvent","_onPointerMove","interleaved","otherProps","_interleaved","onAdd","map","_onAddInterleaved","_onAddOverlaid","container","document","createElement","position","left","top","pointerEvents","parent","on","_updateContainerSize","_updateViewState","_handleMouseEvent","gl","painter","context","_handleStyleChange","onRemove","_onRemoveInterleaved","_onRemoveOverlaid","finalize","undefined","off","getDefaultPosition","pickObject","params","pickMultipleObjects","pickObjects","removeControl"],"mappings":"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","sourcesContent":["import {Deck, assert} from '@deck.gl/core';\nimport {getViewState, getDeckInstance, getInterleavedProps} from './deck-utils';\n\nimport type {Map, IControl, MapMouseEvent} from 'mapbox-gl';\nimport type {MjolnirGestureEvent, MjolnirPointerEvent} from 'mjolnir.js';\nimport type {DeckProps} from '@deck.gl/core';\n\nimport {resolveLayers} from './resolve-layers';\n\nexport type MapboxOverlayProps = Omit<\n DeckProps,\n | 'width'\n | 'height'\n | 'gl'\n | 'parent'\n | 'canvas'\n | '_customRender'\n | 'viewState'\n | 'initialViewState'\n | 'controller'\n> & {\n interleaved?: boolean;\n};\n\n/**\n * Implements Mapbox [IControl](https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol) interface\n * Renders deck.gl layers over the base map and automatically synchronizes with the map's camera\n */\nexport default class MapboxOverlay implements IControl {\n private _props: MapboxOverlayProps;\n private _deck?: Deck;\n private _map?: Map;\n private _container?: HTMLDivElement;\n private _interleaved: boolean;\n\n constructor(props: MapboxOverlayProps) {\n const {interleaved = false, ...otherProps} = props;\n this._interleaved = interleaved;\n this._props = otherProps;\n }\n\n /** Update (partial) props of the underlying Deck instance. */\n setProps(props: MapboxOverlayProps): void {\n if (this._interleaved && props.layers) {\n resolveLayers(this._map, this._deck, this._props.layers, props.layers);\n }\n\n Object.assign(this._props, props);\n\n if (this._deck) {\n this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);\n }\n }\n\n /** Called when the control is added to a map */\n onAdd(map: Map): HTMLDivElement {\n this._map = map;\n return this._interleaved ? this._onAddInterleaved(map) : this._onAddOverlaid(map);\n }\n\n private _onAddOverlaid(map: Map): HTMLDivElement {\n /* global document */\n const container = document.createElement('div');\n Object.assign(container.style, {\n position: 'absolute',\n left: 0,\n top: 0,\n pointerEvents: 'none'\n });\n this._container = container;\n\n this._deck = new Deck({\n ...this._props,\n parent: container,\n viewState: getViewState(map)\n });\n\n map.on('resize', this._updateContainerSize);\n map.on('render', this._updateViewState);\n map.on('mousemove', this._handleMouseEvent);\n map.on('mouseout', this._handleMouseEvent);\n map.on('click', this._handleMouseEvent);\n map.on('dblclick', this._handleMouseEvent);\n\n this._updateContainerSize();\n return container;\n }\n\n private _onAddInterleaved(map: Map): HTMLDivElement {\n this._deck = getDeckInstance({\n map,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl,\n deck: new Deck({\n ...this._props,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl\n })\n });\n\n map.on('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, [], this._props.layers);\n\n return document.createElement('div');\n }\n\n /** Called when the control is removed from a map */\n onRemove(): void {\n const map = this._map;\n\n if (map) {\n if (this._interleaved) {\n this._onRemoveInterleaved(map);\n } else {\n this._onRemoveOverlaid(map);\n }\n }\n\n this._deck?.finalize();\n this._deck = undefined;\n this._map = undefined;\n this._container = undefined;\n }\n\n private _onRemoveOverlaid(map: Map): void {\n map.off('resize', this._updateContainerSize);\n map.off('render', this._updateViewState);\n map.off('mousemove', this._handleMouseEvent);\n map.off('mouseout', this._handleMouseEvent);\n map.off('click', this._handleMouseEvent);\n map.off('dblclick', this._handleMouseEvent);\n }\n\n private _onRemoveInterleaved(map: Map): void {\n map.off('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, this._props.layers, []);\n }\n\n getDefaultPosition() {\n return 'top-left';\n }\n\n /** Forwards the Deck.pickObject method */\n pickObject(params: Parameters<Deck['pickObject']>[0]): ReturnType<Deck['pickObject']> {\n assert(this._deck);\n return this._deck.pickObject(params);\n }\n\n /** Forwards the Deck.pickMultipleObjects method */\n pickMultipleObjects(\n params: Parameters<Deck['pickMultipleObjects']>[0]\n ): ReturnType<Deck['pickMultipleObjects']> {\n assert(this._deck);\n return this._deck.pickMultipleObjects(params);\n }\n\n /** Forwards the Deck.pickObjects method */\n pickObjects(params: Parameters<Deck['pickObjects']>[0]): ReturnType<Deck['pickObjects']> {\n assert(this._deck);\n return this._deck.pickObjects(params);\n }\n\n /** Remove from map and releases all resources */\n finalize() {\n if (this._map) {\n this._map.removeControl(this);\n }\n }\n\n private _handleStyleChange = () => {\n resolveLayers(this._map, this._deck, this._props.layers, this._props.layers);\n };\n\n private _updateContainerSize = () => {\n if (this._map && this._container) {\n const {clientWidth, clientHeight} = this._map.getContainer();\n Object.assign(this._container.style, {\n width: `${clientWidth}px`,\n height: `${clientHeight}px`\n });\n }\n };\n\n private _updateViewState = () => {\n const deck = this._deck;\n if (deck) {\n // @ts-ignore (2345) map is always defined if deck is\n deck.setProps({viewState: getViewState(this._map)});\n // Redraw immediately if view state has changed\n deck.redraw();\n }\n };\n\n private _handleMouseEvent = (event: MapMouseEvent) => {\n const deck = this._deck;\n if (!deck) {\n return;\n }\n\n const mockEvent: {\n type: string;\n offsetCenter: {x: number; y: number};\n srcEvent: MapMouseEvent;\n tapCount?: number;\n } = {\n type: event.type,\n offsetCenter: event.point,\n srcEvent: event\n };\n\n switch (event.type) {\n case 'click':\n mockEvent.tapCount = 1;\n // Hack: because we do not listen to pointer down, perform picking now\n deck._onPointerDown(mockEvent as MjolnirGestureEvent);\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'dblclick':\n mockEvent.type = 'click';\n mockEvent.tapCount = 2;\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'mousemove':\n mockEvent.type = 'pointermove';\n deck._onPointerMove(mockEvent as MjolnirPointerEvent);\n break;\n\n case 'mouseout':\n mockEvent.type = 'pointerleave';\n deck._onPointerMove(mockEvent as MjolnirPointerEvent);\n break;\n\n default:\n return;\n }\n };\n}\n"],"file":"mapbox-overlay.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/mapbox-overlay.ts"],"names":["Deck","assert","getViewState","getDeckInstance","getInterleavedProps","resolveLayers","MapboxOverlay","constructor","props","_map","_deck","_props","layers","_container","clientWidth","clientHeight","getContainer","Object","assign","style","width","height","deck","setProps","viewState","isInitialized","redraw","event","mockEvent","type","offsetCenter","point","srcEvent","lastDown","_lastMouseDownPoint","deltaX","originalEvent","clientX","deltaY","clientY","x","y","_onPointerDown","_onEvent","tapCount","_onPointerMove","interleaved","otherProps","_interleaved","onAdd","map","_onAddInterleaved","_onAddOverlaid","container","document","createElement","position","left","top","pointerEvents","parent","on","_updateContainerSize","_updateViewState","_handleMouseEvent","gl","painter","context","_handleStyleChange","onRemove","_onRemoveInterleaved","_onRemoveOverlaid","finalize","undefined","off","getDefaultPosition","pickObject","params","pickMultipleObjects","pickObjects","removeControl"],"mappings":"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","sourcesContent":["import {Deck, assert} from '@deck.gl/core';\nimport {getViewState, getDeckInstance, getInterleavedProps} from './deck-utils';\n\nimport type {Map, IControl, MapMouseEvent} from 'mapbox-gl';\nimport type {MjolnirGestureEvent, MjolnirPointerEvent} from 'mjolnir.js';\nimport type {DeckProps} from '@deck.gl/core';\n\nimport {resolveLayers} from './resolve-layers';\n\nexport type MapboxOverlayProps = Omit<\n DeckProps,\n | 'width'\n | 'height'\n | 'gl'\n | 'parent'\n | 'canvas'\n | '_customRender'\n | 'viewState'\n | 'initialViewState'\n | 'controller'\n> & {\n interleaved?: boolean;\n};\n\n/**\n * Implements Mapbox [IControl](https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol) interface\n * Renders deck.gl layers over the base map and automatically synchronizes with the map's camera\n */\nexport default class MapboxOverlay implements IControl {\n private _props: MapboxOverlayProps;\n private _deck?: Deck;\n private _map?: Map;\n private _container?: HTMLDivElement;\n private _interleaved: boolean;\n private _lastMouseDownPoint?: {x: number; y: number; clientX: number; clientY: number};\n\n constructor(props: MapboxOverlayProps) {\n const {interleaved = false, ...otherProps} = props;\n this._interleaved = interleaved;\n this._props = otherProps;\n }\n\n /** Update (partial) props of the underlying Deck instance. */\n setProps(props: MapboxOverlayProps): void {\n if (this._interleaved && props.layers) {\n resolveLayers(this._map, this._deck, this._props.layers, props.layers);\n }\n\n Object.assign(this._props, props);\n\n if (this._deck) {\n this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);\n }\n }\n\n /** Called when the control is added to a map */\n onAdd(map: Map): HTMLDivElement {\n this._map = map;\n return this._interleaved ? this._onAddInterleaved(map) : this._onAddOverlaid(map);\n }\n\n private _onAddOverlaid(map: Map): HTMLDivElement {\n /* global document */\n const container = document.createElement('div');\n Object.assign(container.style, {\n position: 'absolute',\n left: 0,\n top: 0,\n pointerEvents: 'none'\n });\n this._container = container;\n\n this._deck = new Deck({\n ...this._props,\n parent: container,\n viewState: getViewState(map)\n });\n\n map.on('resize', this._updateContainerSize);\n map.on('render', this._updateViewState);\n map.on('mousedown', this._handleMouseEvent);\n map.on('dragstart', this._handleMouseEvent);\n map.on('drag', this._handleMouseEvent);\n map.on('dragend', this._handleMouseEvent);\n map.on('mousemove', this._handleMouseEvent);\n map.on('mouseout', this._handleMouseEvent);\n map.on('click', this._handleMouseEvent);\n map.on('dblclick', this._handleMouseEvent);\n\n this._updateContainerSize();\n return container;\n }\n\n private _onAddInterleaved(map: Map): HTMLDivElement {\n this._deck = getDeckInstance({\n map,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl,\n deck: new Deck({\n ...this._props,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl\n })\n });\n\n map.on('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, [], this._props.layers);\n\n return document.createElement('div');\n }\n\n /** Called when the control is removed from a map */\n onRemove(): void {\n const map = this._map;\n\n if (map) {\n if (this._interleaved) {\n this._onRemoveInterleaved(map);\n } else {\n this._onRemoveOverlaid(map);\n }\n }\n\n this._deck?.finalize();\n this._deck = undefined;\n this._map = undefined;\n this._container = undefined;\n }\n\n private _onRemoveOverlaid(map: Map): void {\n map.off('resize', this._updateContainerSize);\n map.off('render', this._updateViewState);\n map.off('mousedown', this._handleMouseEvent);\n map.off('dragstart', this._handleMouseEvent);\n map.off('drag', this._handleMouseEvent);\n map.off('dragend', this._handleMouseEvent);\n map.off('mousemove', this._handleMouseEvent);\n map.off('mouseout', this._handleMouseEvent);\n map.off('click', this._handleMouseEvent);\n map.off('dblclick', this._handleMouseEvent);\n }\n\n private _onRemoveInterleaved(map: Map): void {\n map.off('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, this._props.layers, []);\n }\n\n getDefaultPosition() {\n return 'top-left';\n }\n\n /** Forwards the Deck.pickObject method */\n pickObject(params: Parameters<Deck['pickObject']>[0]): ReturnType<Deck['pickObject']> {\n assert(this._deck);\n return this._deck.pickObject(params);\n }\n\n /** Forwards the Deck.pickMultipleObjects method */\n pickMultipleObjects(\n params: Parameters<Deck['pickMultipleObjects']>[0]\n ): ReturnType<Deck['pickMultipleObjects']> {\n assert(this._deck);\n return this._deck.pickMultipleObjects(params);\n }\n\n /** Forwards the Deck.pickObjects method */\n pickObjects(params: Parameters<Deck['pickObjects']>[0]): ReturnType<Deck['pickObjects']> {\n assert(this._deck);\n return this._deck.pickObjects(params);\n }\n\n /** Remove from map and releases all resources */\n finalize() {\n if (this._map) {\n this._map.removeControl(this);\n }\n }\n\n private _handleStyleChange = () => {\n resolveLayers(this._map, this._deck, this._props.layers, this._props.layers);\n };\n\n private _updateContainerSize = () => {\n if (this._map && this._container) {\n const {clientWidth, clientHeight} = this._map.getContainer();\n Object.assign(this._container.style, {\n width: `${clientWidth}px`,\n height: `${clientHeight}px`\n });\n }\n };\n\n private _updateViewState = () => {\n const deck = this._deck;\n if (deck) {\n // @ts-ignore (2345) map is always defined if deck is\n deck.setProps({viewState: getViewState(this._map)});\n // Redraw immediately if view state has changed\n if (deck.isInitialized) {\n deck.redraw();\n }\n }\n };\n\n private _handleMouseEvent = (event: MapMouseEvent) => {\n const deck = this._deck;\n if (!deck || !deck.isInitialized) {\n return;\n }\n\n const mockEvent: {\n type: string;\n deltaX?: number;\n deltaY?: number;\n offsetCenter: {x: number; y: number};\n srcEvent: MapMouseEvent;\n tapCount?: number;\n } = {\n type: event.type,\n offsetCenter: event.point,\n srcEvent: event\n };\n\n const lastDown = this._lastMouseDownPoint;\n if (!event.point && lastDown) {\n // drag* events do not contain a `point` field\n mockEvent.deltaX = event.originalEvent.clientX - lastDown.clientX;\n mockEvent.deltaY = event.originalEvent.clientY - lastDown.clientY;\n mockEvent.offsetCenter = {\n x: lastDown.x + mockEvent.deltaX,\n y: lastDown.y + mockEvent.deltaY\n };\n }\n\n switch (mockEvent.type) {\n case 'mousedown':\n deck._onPointerDown(mockEvent as MjolnirGestureEvent);\n this._lastMouseDownPoint = {\n ...event.point,\n clientX: event.originalEvent.clientX,\n clientY: event.originalEvent.clientY\n };\n break;\n\n case 'dragstart':\n mockEvent.type = 'panstart';\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'drag':\n mockEvent.type = 'panmove';\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'dragend':\n mockEvent.type = 'panend';\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'click':\n mockEvent.tapCount = 1;\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'dblclick':\n mockEvent.type = 'click';\n mockEvent.tapCount = 2;\n deck._onEvent(mockEvent as MjolnirGestureEvent);\n break;\n\n case 'mousemove':\n mockEvent.type = 'pointermove';\n deck._onPointerMove(mockEvent as MjolnirPointerEvent);\n break;\n\n case 'mouseout':\n mockEvent.type = 'pointerleave';\n deck._onPointerMove(mockEvent as MjolnirPointerEvent);\n break;\n\n default:\n return;\n }\n };\n}\n"],"file":"mapbox-overlay.js"}
|
package/dist.min.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['deck'] = factory();
|
|
6
6
|
else root['deck'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var at=Object.create;var
|
|
8
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tr(r){return Fr(r)||Cr(r)||
|
|
9
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function j(r,e){return Zr(r)||qr(r,e)||fr(r,e)||$r()}function Vr(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function de(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,n.key,n)}}function Wr(r,e,t){return e&&de(r.prototype,e),t&&de(r,t),r}function b(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var L=1e-6,W=typeof Float32Array<"u"?Float32Array:Array;var sn=Math.PI/180;Math.hypot||(Math.hypot=function(){for(var r=0,e=arguments.length;e--;)r+=arguments[e]*arguments[e];return Math.sqrt(r)});function dt(){var r=new W(4);return W!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[3]=0),r}function Me(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r}function me(r,e,t){var n=e[0],a=e[1],o=e[2],s=e[3];return r[0]=t[0]*n+t[4]*a+t[8]*o+t[12]*s,r[1]=t[1]*n+t[5]*a+t[9]*o+t[13]*s,r[2]=t[2]*n+t[6]*a+t[10]*o+t[14]*s,r[3]=t[3]*n+t[7]*a+t[11]*o+t[15]*s,r}var vn=function(){var r=dt();return function(e,t,n,a,o,s){var i,v;for(t||(t=4),n||(n=0),a?v=Math.min(a*t+n,e.length):v=e.length,i=n;i<v;i+=t)r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],r[3]=e[i+3],o(r,r,s),e[i]=r[0],e[i+1]=r[1],e[i+2]=r[2],e[i+3]=r[3];return e}}();function nr(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function U(r,e){var t=me([],e,r);return Me(t,t,1/t[3]),t}function cr(r,e,t){return r<e?e:r>t?t:r}function xt(r){return Math.log(r)*Math.LOG2E}var ur=Math.log2||xt;function ge(r,e){var t=e[0],n=e[1],a=e[2],o=e[3],s=e[4],i=e[5],v=e[6],l=e[7],c=e[8],f=e[9],h=e[10],y=e[11],u=e[12],_=e[13],w=e[14],M=e[15],P=t*i-n*s,p=t*v-a*s,g=t*l-o*s,m=n*v-a*i,x=n*l-o*i,A=a*l-o*v,D=c*_-f*u,T=c*w-h*u,S=c*M-y*u,z=f*w-h*_,O=f*M-y*_,E=h*M-y*w,d=P*E-p*O+g*z+m*S-x*T+A*D;return d?(d=1/d,r[0]=(i*E-v*O+l*z)*d,r[1]=(a*O-n*E-o*z)*d,r[2]=(_*A-w*x+M*m)*d,r[3]=(h*x-f*A-y*m)*d,r[4]=(v*S-s*E-l*T)*d,r[5]=(t*E-a*S+o*T)*d,r[6]=(w*g-u*A-M*p)*d,r[7]=(c*A-h*g+y*p)*d,r[8]=(s*O-i*S+l*D)*d,r[9]=(n*S-t*O-o*D)*d,r[10]=(u*x-_*g+M*P)*d,r[11]=(f*g-c*x-y*P)*d,r[12]=(i*T-s*z-v*D)*d,r[13]=(t*z-n*T+a*D)*d,r[14]=(_*p-u*m-w*P)*d,r[15]=(c*m-f*p+h*P)*d,r):null}function _r(r,e,t){var n=e[0],a=e[1],o=e[2],s=e[3],i=e[4],v=e[5],l=e[6],c=e[7],f=e[8],h=e[9],y=e[10],u=e[11],_=e[12],w=e[13],M=e[14],P=e[15],p=t[0],g=t[1],m=t[2],x=t[3];return r[0]=p*n+g*i+m*f+x*_,r[1]=p*a+g*v+m*h+x*w,r[2]=p*o+g*l+m*y+x*M,r[3]=p*s+g*c+m*u+x*P,p=t[4],g=t[5],m=t[6],x=t[7],r[4]=p*n+g*i+m*f+x*_,r[5]=p*a+g*v+m*h+x*w,r[6]=p*o+g*l+m*y+x*M,r[7]=p*s+g*c+m*u+x*P,p=t[8],g=t[9],m=t[10],x=t[11],r[8]=p*n+g*i+m*f+x*_,r[9]=p*a+g*v+m*h+x*w,r[10]=p*o+g*l+m*y+x*M,r[11]=p*s+g*c+m*u+x*P,p=t[12],g=t[13],m=t[14],x=t[15],r[12]=p*n+g*i+m*f+x*_,r[13]=p*a+g*v+m*h+x*w,r[14]=p*o+g*l+m*y+x*M,r[15]=p*s+g*c+m*u+x*P,r}function hr(r,e,t){var n=t[0],a=t[1],o=t[2],s,i,v,l,c,f,h,y,u,_,w,M;return e===r?(r[12]=e[0]*n+e[4]*a+e[8]*o+e[12],r[13]=e[1]*n+e[5]*a+e[9]*o+e[13],r[14]=e[2]*n+e[6]*a+e[10]*o+e[14],r[15]=e[3]*n+e[7]*a+e[11]*o+e[15]):(s=e[0],i=e[1],v=e[2],l=e[3],c=e[4],f=e[5],h=e[6],y=e[7],u=e[8],_=e[9],w=e[10],M=e[11],r[0]=s,r[1]=i,r[2]=v,r[3]=l,r[4]=c,r[5]=f,r[6]=h,r[7]=y,r[8]=u,r[9]=_,r[10]=w,r[11]=M,r[12]=s*n+c*a+u*o+e[12],r[13]=i*n+f*a+_*o+e[13],r[14]=v*n+h*a+w*o+e[14],r[15]=l*n+y*a+M*o+e[15]),r}function wr(r,e,t){var n=t[0],a=t[1],o=t[2];return r[0]=e[0]*n,r[1]=e[1]*n,r[2]=e[2]*n,r[3]=e[3]*n,r[4]=e[4]*a,r[5]=e[5]*a,r[6]=e[6]*a,r[7]=e[7]*a,r[8]=e[8]*o,r[9]=e[9]*o,r[10]=e[10]*o,r[11]=e[11]*o,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function ye(r,e,t){var n=Math.sin(t),a=Math.cos(t),o=e[4],s=e[5],i=e[6],v=e[7],l=e[8],c=e[9],f=e[10],h=e[11];return e!==r&&(r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[4]=o*a+l*n,r[5]=s*a+c*n,r[6]=i*a+f*n,r[7]=v*a+h*n,r[8]=l*a-o*n,r[9]=c*a-s*n,r[10]=f*a-i*n,r[11]=h*a-v*n,r}function ue(r,e,t){var n=Math.sin(t),a=Math.cos(t),o=e[0],s=e[1],i=e[2],v=e[3],l=e[4],c=e[5],f=e[6],h=e[7];return e!==r&&(r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=o*a+l*n,r[1]=s*a+c*n,r[2]=i*a+f*n,r[3]=v*a+h*n,r[4]=l*a-o*n,r[5]=c*a-s*n,r[6]=f*a-i*n,r[7]=h*a-v*n,r}function Mt(r,e,t,n,a){var o=1/Math.tan(e/2),s;return r[0]=o/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=o,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,a!=null&&a!==1/0?(s=1/(n-a),r[10]=(a+n)*s,r[14]=2*a*n*s):(r[10]=-1,r[14]=-2*n),r}var _e=Mt;function Br(r,e){var t=r[0],n=r[1],a=r[2],o=r[3],s=r[4],i=r[5],v=r[6],l=r[7],c=r[8],f=r[9],h=r[10],y=r[11],u=r[12],_=r[13],w=r[14],M=r[15],P=e[0],p=e[1],g=e[2],m=e[3],x=e[4],A=e[5],D=e[6],T=e[7],S=e[8],z=e[9],O=e[10],E=e[11],d=e[12],$=e[13],N=e[14],I=e[15];return Math.abs(t-P)<=L*Math.max(1,Math.abs(t),Math.abs(P))&&Math.abs(n-p)<=L*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(a-g)<=L*Math.max(1,Math.abs(a),Math.abs(g))&&Math.abs(o-m)<=L*Math.max(1,Math.abs(o),Math.abs(m))&&Math.abs(s-x)<=L*Math.max(1,Math.abs(s),Math.abs(x))&&Math.abs(i-A)<=L*Math.max(1,Math.abs(i),Math.abs(A))&&Math.abs(v-D)<=L*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(l-T)<=L*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(c-S)<=L*Math.max(1,Math.abs(c),Math.abs(S))&&Math.abs(f-z)<=L*Math.max(1,Math.abs(f),Math.abs(z))&&Math.abs(h-O)<=L*Math.max(1,Math.abs(h),Math.abs(O))&&Math.abs(y-E)<=L*Math.max(1,Math.abs(y),Math.abs(E))&&Math.abs(u-d)<=L*Math.max(1,Math.abs(u),Math.abs(d))&&Math.abs(_-$)<=L*Math.max(1,Math.abs(_),Math.abs($))&&Math.abs(w-N)<=L*Math.max(1,Math.abs(w),Math.abs(N))&&Math.abs(M-I)<=L*Math.max(1,Math.abs(M),Math.abs(I))}function mt(){var r=new W(2);return W!=Float32Array&&(r[0]=0,r[1]=0),r}function Ur(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r}function Pe(r,e){return r[0]=-e[0],r[1]=-e[1],r}function Pr(r,e,t,n){var a=e[0],o=e[1];return r[0]=a+n*(t[0]-a),r[1]=o+n*(t[1]-o),r}var hn=function(){var r=mt();return function(e,t,n,a,o,s){var i,v;for(t||(t=2),n||(n=0),a?v=Math.min(a*t+n,e.length):v=e.length,i=n;i<v;i+=t)r[0]=e[i],r[1]=e[i+1],o(r,r,s),e[i]=r[0],e[i+1]=r[1];return e}}();function gt(){var r=new W(3);return W!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function Oe(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r}function yt(r,e,t){return r[0]=e[0]*t[0],r[1]=e[1]*t[1],r[2]=e[2]*t[2],r}function be(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r}var Ae=yt;var pn=function(){var r=gt();return function(e,t,n,a,o,s){var i,v;for(t||(t=3),n||(n=0),a?v=Math.min(a*t+n,e.length):v=e.length,i=n;i<v;i+=t)r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],o(r,r,s),e[i]=r[0],e[i+1]=r[1],e[i+2]=r[2];return e}}();function F(r,e){if(!r)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var C=Math.PI,Ee=C/4,Y=C/180,Hr=180/C,ar=512,Gr=4003e4,or=85.051129,Qr=1.5;function Or(r){return Math.pow(2,r)}function k(r){var e=j(r,2),t=e[0],n=e[1];F(Number.isFinite(t)),F(Number.isFinite(n)&&n>=-90&&n<=90,"invalid latitude");var a=t*Y,o=n*Y,s=ar*(a+C)/(2*C),i=ar*(C+Math.log(Math.tan(Ee+o*.5)))/(2*C);return[s,i]}function Z(r){var e=j(r,2),t=e[0],n=e[1],a=t/ar*(2*C)-C,o=2*(Math.atan(Math.exp(n/ar*(2*C)-C))-Ee);return[a*Hr,o*Hr]}function Kr(r){var e=Math.cos(r*Y);return ar/Gr/e}function Jr(r){var e=r.latitude,t=r.longitude,n=r.highPrecision,a=n===void 0?!1:n;F(Number.isFinite(e)&&Number.isFinite(t));var o=ar,s=Math.cos(e*Y),i=o/360,v=i/s,l=o/Gr/s,c={unitsPerMeter:[l,l,l],metersPerUnit:[1/l,1/l,1/l],unitsPerDegree:[i,v,l],degreesPerUnit:[1/i,1/v,1/l]};if(a){var f=Y*Math.tan(e*Y)/s,h=i*f/2,y=o/Gr*f,u=y/v*l;c.unitsPerDegree2=[0,h,y],c.unitsPerMeter2=[u,0,u]}return c}function re(r){var e=r.height,t=r.pitch,n=r.bearing,a=r.altitude,o=r.scale,s=r.center,i=nr();hr(i,i,[0,0,-a]),ye(i,i,-t*Y),ue(i,i,n*Y);var v=o/e;return wr(i,i,[v,v,v]),s&&hr(i,i,be([],s)),i}function Le(r){var e=r.width,t=r.height,n=r.altitude,a=r.pitch,o=a===void 0?0:a,s=r.offset,i=r.center,v=r.scale,l=r.nearZMultiplier,c=l===void 0?1:l,f=r.farZMultiplier,h=f===void 0?1:f,y=r.fovy,u=y===void 0?ir(Qr):y;n!==void 0&&(u=ir(n));var _=u*Y,w=o*Y,M=br(u),P=M;i&&(P+=i[2]*v/Math.cos(w)/t);var p=_*(.5+(s?s[1]:0)/t),g=Math.sin(p)*P/Math.sin(cr(Math.PI/2-w-p,.01,Math.PI-.01)),m=Math.sin(w)*g+P,x=P*10,A=Math.min(m*h,x);return{fov:_,aspect:e/t,focalDistance:M,near:c,far:A}}function ee(r){var e=Le(r),t=e.fov,n=e.aspect,a=e.near,o=e.far,s=_e([],t,n,a,o);return s}function ir(r){return 2*Math.atan(.5/r)*Hr}function br(r){return .5/Math.tan(.5*r*Y)}function te(r,e){var t=j(r,3),n=t[0],a=t[1],o=t[2],s=o===void 0?0:o;return F(Number.isFinite(n)&&Number.isFinite(a)&&Number.isFinite(s)),U(e,[n,a,s,1])}function Ar(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=j(r,3),a=n[0],o=n[1],s=n[2];if(F(Number.isFinite(a)&&Number.isFinite(o),"invalid pixel coordinate"),Number.isFinite(s)){var i=U(e,[a,o,s,1]);return i}var v=U(e,[a,o,0,1]),l=U(e,[a,o,1,1]),c=v[2],f=l[2],h=c===f?0:((t||0)-c)/(f-c);return Pr([],v,l,h)}function zr(r){var e=r.width,t=r.height,n=r.bounds,a=r.minExtent,o=a===void 0?0:a,s=r.maxZoom,i=s===void 0?24:s,v=r.offset,l=v===void 0?[0,0]:v,c=j(n,2),f=j(c[0],2),h=f[0],y=f[1],u=j(c[1],2),_=u[0],w=u[1],M=ut(r.padding),P=k([h,cr(w,-or,or)]),p=k([_,cr(y,-or,or)]),g=[Math.max(Math.abs(p[0]-P[0]),o),Math.max(Math.abs(p[1]-P[1]),o)],m=[e-M.left-M.right-Math.abs(l[0])*2,t-M.top-M.bottom-Math.abs(l[1])*2];F(m[0]>0&&m[1]>0);var x=m[0]/g[0],A=m[1]/g[1],D=(M.right-M.left)/2/x,T=(M.bottom-M.top)/2/A,S=[(p[0]+P[0])/2+D,(p[1]+P[1])/2+T],z=Z(S),O=Math.min(i,ur(Math.abs(Math.min(x,A))));return F(Number.isFinite(O)),{longitude:z[0],latitude:z[1],zoom:O}}function ut(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return typeof r=="number"?{top:r,bottom:r,left:r,right:r}:(F(Number.isFinite(r.top)&&Number.isFinite(r.bottom)&&Number.isFinite(r.left)&&Number.isFinite(r.right)),r)}var Te=Math.PI/180;function Er(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=r.width,n=r.height,a=r.unproject,o={targetZ:e},s=a([0,n],o),i=a([t,n],o),v,l,c=r.fovy?.5*r.fovy*Te:Math.atan(.5/r.altitude),f=(90-r.pitch)*Te;return c>f-.01?(v=Se(r,0,e),l=Se(r,t,e)):(v=a([0,0],o),l=a([t,0],o)),[s,i,l,v]}function Se(r,e,t){var n=r.pixelUnprojectionMatrix,a=U(n,[e,0,1,1]),o=U(n,[e,r.height,1,1]),s=t*r.distanceScales.unitsPerMeter[2],i=(s-a[2])/(o[2]-a[2]),v=Pr([],a,o,i),l=Z(v);return l.push(t),l}var je=function(){function r(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{width:1,height:1};Vr(this,r),b(this,"latitude",void 0),b(this,"longitude",void 0),b(this,"zoom",void 0),b(this,"pitch",void 0),b(this,"bearing",void 0),b(this,"altitude",void 0),b(this,"fovy",void 0),b(this,"meterOffset",void 0),b(this,"center",void 0),b(this,"width",void 0),b(this,"height",void 0),b(this,"scale",void 0),b(this,"distanceScales",void 0),b(this,"viewMatrix",void 0),b(this,"projectionMatrix",void 0),b(this,"viewProjectionMatrix",void 0),b(this,"pixelProjectionMatrix",void 0),b(this,"pixelUnprojectionMatrix",void 0),b(this,"equals",function(O){return O instanceof r?O.width===e.width&&O.height===e.height&&Br(O.projectionMatrix,e.projectionMatrix)&&Br(O.viewMatrix,e.viewMatrix):!1}),b(this,"project",function(O){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=E.topLeft,$=d===void 0?!0:d,N=e.projectPosition(O),I=te(N,e.pixelProjectionMatrix),K=j(I,2),xr=K[0],vr=K[1],lr=$?vr:e.height-vr;return O.length===2?[xr,lr]:[xr,lr,I[2]]}),b(this,"unproject",function(O){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=E.topLeft,$=d===void 0?!0:d,N=E.targetZ,I=N===void 0?void 0:N,K=j(O,3),xr=K[0],vr=K[1],lr=K[2],Je=$?vr:e.height-vr,rt=I&&I*e.distanceScales.unitsPerMeter[2],et=Ar([xr,Je,lr],e.pixelUnprojectionMatrix,rt),tt=e.unprojectPosition(et),Dr=j(tt,3),Ir=Dr[0],Rr=Dr[1],nt=Dr[2];return Number.isFinite(lr)?[Ir,Rr,nt]:Number.isFinite(I)?[Ir,Rr,I]:[Ir,Rr]}),b(this,"projectPosition",function(O){var E=k(O),d=j(E,2),$=d[0],N=d[1],I=(O[2]||0)*e.distanceScales.unitsPerMeter[2];return[$,N,I]}),b(this,"unprojectPosition",function(O){var E=Z(O),d=j(E,2),$=d[0],N=d[1],I=(O[2]||0)*e.distanceScales.metersPerUnit[2];return[$,N,I]});var n=t.width,a=t.height,o=t.altitude,s=o===void 0?null:o,i=t.fovy,v=i===void 0?null:i,l=t.latitude,c=l===void 0?0:l,f=t.longitude,h=f===void 0?0:f,y=t.zoom,u=y===void 0?0:y,_=t.pitch,w=_===void 0?0:_,M=t.bearing,P=M===void 0?0:M,p=t.position,g=p===void 0?null:p,m=t.nearZMultiplier,x=m===void 0?.02:m,A=t.farZMultiplier,D=A===void 0?1.01:A;n=n||1,a=a||1,v===null&&s===null?(s=Qr,v=ir(s)):v===null?v=ir(s):s===null&&(s=br(v));var T=Or(u);s=Math.max(.75,s);var S=Jr({longitude:h,latitude:c}),z=k([h,c]);z.push(0),g&&Oe(z,z,Ae([],g,S.unitsPerMeter)),this.projectionMatrix=ee({width:n,height:a,scale:T,center:z,pitch:w,fovy:v,nearZMultiplier:x,farZMultiplier:D}),this.viewMatrix=re({height:a,scale:T,center:z,pitch:w,bearing:P,altitude:s}),this.width=n,this.height=a,this.scale=T,this.latitude=c,this.longitude=h,this.zoom=u,this.pitch=w,this.bearing=P,this.altitude=s,this.fovy=v,this.center=z,this.meterOffset=g||[0,0,0],this.distanceScales=S,this._initMatrices(),Object.freeze(this)}return Wr(r,[{key:"_initMatrices",value:function(){var t=this.width,n=this.height,a=this.projectionMatrix,o=this.viewMatrix,s=nr();_r(s,s,a),_r(s,s,o),this.viewProjectionMatrix=s;var i=nr();wr(i,i,[t/2,-n/2,1]),hr(i,i,[1,-1,0]),_r(i,i,s);var v=ge(nr(),i);if(!v)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=i,this.pixelUnprojectionMatrix=v}},{key:"projectFlat",value:function(t){return k(t)}},{key:"unprojectFlat",value:function(t){return Z(t)}},{key:"getMapCenterByLngLatPosition",value:function(t){var n=t.lngLat,a=t.pos,o=Ar(a,this.pixelUnprojectionMatrix),s=k(n),i=Ur([],s,Pe([],o)),v=Ur([],this.center,i);return Z(v)}},{key:"fitBounds",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=this.width,o=this.height,s=zr(Object.assign({width:a,height:o,bounds:t},n)),i=s.longitude,v=s.latitude,l=s.zoom;return new r({width:a,height:o,longitude:i,latitude:v,zoom:l})}},{key:"getBounds",value:function(t){var n=this.getBoundingRegion(t),a=Math.min.apply(Math,tr(n.map(function(v){return v[0]}))),o=Math.max.apply(Math,tr(n.map(function(v){return v[0]}))),s=Math.min.apply(Math,tr(n.map(function(v){return v[1]}))),i=Math.max.apply(Math,tr(n.map(function(v){return v[1]})));return[[a,s],[o,i]]}},{key:"getBoundingRegion",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Er(this,t.z||0)}},{key:"getLocationAtPoint",value:function(t){var n=t.lngLat,a=t.pos;return this.getMapCenterByLngLatPosition({lngLat:n,pos:a})}}]),r}();function De(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function H(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?De(Object(t),!0).forEach(function(n){(0,Re.default)(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):De(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var ne=512,wt=Math.PI/180;function Lr(r){var e=r.map,t=r.gl,n=r.deck;if(e.__deck)return e.__deck;var a=n?.props._customRender,o=n?.props.onLoad,s=ae(H(H({},n?.props),{},{_customRender:function(){e.triggerRepaint(),a?.("")}})),i;return(!n||n.props.gl===t)&&(Object.assign(s,{gl:t,width:null,height:null,touchAction:"unset",viewState:sr(e)}),n!=null&&n.isInitialized?Ie(n,e):s.onLoad=function(){o?.(),Ie(i,e)}),n?(i=n,n.setProps(s),n.userData.isExternal=!0):(i=new X.Deck(s),e.on("remove",function(){i.finalize(),e.__deck=null})),i.userData.mapboxLayers=new Set,e.__deck=i,e.on("render",function(){i.isInitialized&&Ot(i,e)}),i}function Ie(r,e){var t=function n(){r.isInitialized?bt(r,e):e.off("move",n)};e.on("move",t)}function ae(r){var e="useDevicePixels"in r?r.useDevicePixels:!0,t=H(H({},r),{},{useDevicePixels:e,parameters:H({depthMask:!0,depthTest:!0,blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthFunc:515,blendEquation:32774},r.parameters),views:r.views||[new X.MapView({id:"mapbox"})]});return t}function ke(r,e){r.userData.mapboxLayers.add(e),ie(r)}function Ne(r,e){r.userData.mapboxLayers.delete(e),ie(r)}function Fe(r,e){ie(r)}function Ce(r,e,t){var n=r.userData,a=n.currentViewport,o=!1;a||(a=Ye(r,e,!0),r.userData.currentViewport=a,o=!0),r.isInitialized&&r._drawLayers("mapbox-repaint",{viewports:[a],layerFilter:function(i){var v=i.layer;return t.id===v.id},clearStack:o,clearCanvas:!1})}function sr(r){var e,t=r.getCenter(),n=t.lng,a=t.lat,o={longitude:(n+540)%360-180,latitude:a,zoom:r.getZoom(),bearing:r.getBearing(),pitch:r.getPitch(),padding:r.getPadding(),repeat:r.getRenderWorldCopies()};return(e=r.getTerrain)!==null&&e!==void 0&&e.call(r)&&Pt(r,o),o}function Pt(r,e){if(r.getFreeCameraOptions){var t=r.getFreeCameraOptions(),n=t.position;if(!n||n.z===void 0)return;var a=r.transform.height,o=e.longitude,s=e.latitude,i=e.pitch,v=n.x*ne,l=(1-n.y)*ne,c=n.z*ne,f=k([o,s]),h=v-f[0],y=l-f[1],u=Math.sqrt(h*h+y*y),_=i*wt,w=1.5*a,M=_<.001?w*Math.cos(_)/c:w*Math.sin(_)/u;e.zoom=Math.log2(M);var P=w*Math.cos(_)/M,p=c-P;e.position=[0,0,p/Kr(s)]}else typeof r.transform.elevation=="number"&&(e.position=[0,0,r.transform.elevation])}function Ye(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return new X.WebMercatorViewport(H(H({id:"mapbox",x:0,y:0,width:r.width,height:r.height},sr(e)),{},{nearZMultiplier:t?.02:.1}))}function Ot(r,e){var t=r.userData,n=t.mapboxLayers,a=t.isExternal;if(a){var o=Array.from(n,function(f){return f.id}),s=(0,X._flatten)(r.props.layers,Boolean),i=s.some(function(f){return f&&!o.includes(f.id)}),v=r.getViewports(),l=v.findIndex(function(f){return f.id==="mapbox"}),c=v.length>1||l<0;(i||c)&&(l>=0&&(v=v.slice(),v[l]=Ye(r,e,!1)),r._drawLayers("mapbox-repaint",{viewports:v,layerFilter:function(h){return(!r.props.layerFilter||r.props.layerFilter(h))&&(h.viewport.id!=="mapbox"||!o.includes(h.layer.id))},clearCanvas:!1}))}r.userData.currentViewport=null}function bt(r,e){r.setProps({viewState:sr(e)}),r.needsRedraw({clearRedrawFlags:!0})}function ie(r){if(!r.userData.isExternal){var e=[];r.userData.mapboxLayers.forEach(function(t){var n=t.props.type,a=new n(t.props);e.push(a)}),r.setProps({layers:e})}}var Tr=function(){function r(e){if((0,Ze.default)(this,r),(0,G.default)(this,"id",void 0),(0,G.default)(this,"type",void 0),(0,G.default)(this,"renderingMode",void 0),(0,G.default)(this,"map",void 0),(0,G.default)(this,"deck",void 0),(0,G.default)(this,"props",void 0),!e.id)throw new Error("Layer must have an unique id");this.id=e.id,this.type="custom",this.renderingMode=e.renderingMode||"3d",this.map=null,this.deck=null,this.props=e}return(0,qe.default)(r,[{key:"onAdd",value:function(t,n){this.map=t,this.deck=Lr({map:t,gl:n,deck:this.props.deck}),ke(this.deck,this)}},{key:"onRemove",value:function(){this.deck&&Ne(this.deck,this)}},{key:"setProps",value:function(t){Object.assign(this.props,t,{id:this.id}),this.deck&&Fe(this.deck,this)}},{key:"render",value:function(){Ce(this.deck,this.map,this)}}]),r}();var He=R(Be()),Ge=R(kr()),Qe=R(Nr()),q=R(gr()),Q=R(rr());var se=R(rr());function Sr(r,e){var t=typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=Lt(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var n=0,a=function(){};return{s:a,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(l){throw l},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
10
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var
|
|
7
|
+
"use strict";var __exports__=(()=>{var at=Object.create;var gr=Object.defineProperty;var it=Object.getOwnPropertyDescriptor;var ot=Object.getOwnPropertyNames;var st=Object.getPrototypeOf,lt=Object.prototype.hasOwnProperty;var J=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),vt=(r,e)=>{for(var t in e)gr(r,t,{get:e[t],enumerable:!0})},mr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of ot(e))!lt.call(r,a)&&a!==t&&gr(r,a,{get:()=>e[a],enumerable:!(n=it(e,a))||n.enumerable});return r},X=(r,e,t)=>(mr(r,e,"default"),t&&mr(t,e,"default")),R=(r,e,t)=>(t=r!=null?at(st(r)):{},mr(e||!r||!r.__esModule?gr(t,"default",{value:r,enumerable:!0}):t,r)),ft=r=>mr(gr({},"__esModule",{value:!0}),r);var rr=J((jt,le)=>{le.exports=globalThis.deck});var kr=J((It,fe)=>{function ct(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}fe.exports=ct});var Nr=J((Rt,he)=>{function ce(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,n.key,n)}}function ht(r,e,t){return e&&ce(r.prototype,e),t&&ce(r,t),r}he.exports=ht});var yr=J((kt,pe)=>{function pt(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}pe.exports=pt});var Ve=J((va,$e)=>{function Et(r,e){if(r==null)return{};var t={},n=Object.keys(r),a,l;for(l=0;l<n.length;l++)a=n[l],!(e.indexOf(a)>=0)&&(t[a]=r[a]);return t}$e.exports=Et});var Xe=J((fa,We)=>{var zt=Ve();function At(r,e){if(r==null)return{};var t=zt(r,e),n,a;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(r);for(a=0;a<l.length;a++)n=l[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(r,n)&&(t[n]=r[n])}return t}We.exports=At});var xr={};vt(xr,{MapboxLayer:()=>Sr,MapboxOverlay:()=>Ke});var V={},ve=R(rr());X(V,R(rr()));if(!ve.Layer)throw new Error("@deck.gl/core is not found");X(xr,V);var Ze=R(kr()),qe=R(Nr()),G=R(yr());var Re=R(yr()),U=R(rr());function er(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function Fr(r){if(Array.isArray(r))return er(r)}function Cr(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function cr(r,e){if(r){if(typeof r=="string")return er(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return er(r,e)}}function Yr(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
8
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tr(r){return Fr(r)||Cr(r)||cr(r)||Yr()}function Zr(r){if(Array.isArray(r))return r}function qr(r,e){var t=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(t!=null){var n=[],a=!0,l=!1,o,i;try{for(t=t.call(r);!(a=(o=t.next()).done)&&(n.push(o.value),!(e&&n.length===e));a=!0);}catch(s){l=!0,i=s}finally{try{!a&&t.return!=null&&t.return()}finally{if(l)throw i}}return n}}function $r(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
9
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function j(r,e){return Zr(r)||qr(r,e)||cr(r,e)||$r()}function Vr(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function de(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,n.key,n)}}function Wr(r,e,t){return e&&de(r.prototype,e),t&&de(r,t),r}function b(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var L=1e-6,W=typeof Float32Array<"u"?Float32Array:Array;var sn=Math.PI/180;Math.hypot||(Math.hypot=function(){for(var r=0,e=arguments.length;e--;)r+=arguments[e]*arguments[e];return Math.sqrt(r)});function dt(){var r=new W(4);return W!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[3]=0),r}function Me(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r}function me(r,e,t){var n=e[0],a=e[1],l=e[2],o=e[3];return r[0]=t[0]*n+t[4]*a+t[8]*l+t[12]*o,r[1]=t[1]*n+t[5]*a+t[9]*l+t[13]*o,r[2]=t[2]*n+t[6]*a+t[10]*l+t[14]*o,r[3]=t[3]*n+t[7]*a+t[11]*l+t[15]*o,r}var ln=function(){var r=dt();return function(e,t,n,a,l,o){var i,s;for(t||(t=4),n||(n=0),a?s=Math.min(a*t+n,e.length):s=e.length,i=n;i<s;i+=t)r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],r[3]=e[i+3],l(r,r,o),e[i]=r[0],e[i+1]=r[1],e[i+2]=r[2],e[i+3]=r[3];return e}}();function nr(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function B(r,e){var t=me([],e,r);return Me(t,t,1/t[3]),t}function hr(r,e,t){return r<e?e:r>t?t:r}function xt(r){return Math.log(r)*Math.LOG2E}var _r=Math.log2||xt;function ge(r,e){var t=e[0],n=e[1],a=e[2],l=e[3],o=e[4],i=e[5],s=e[6],v=e[7],c=e[8],f=e[9],h=e[10],y=e[11],u=e[12],_=e[13],w=e[14],M=e[15],P=t*i-n*o,p=t*s-a*o,g=t*v-l*o,m=n*s-a*i,x=n*v-l*i,E=a*v-l*s,D=c*_-f*u,T=c*w-h*u,S=c*M-y*u,z=f*w-h*_,O=f*M-y*_,A=h*M-y*w,d=P*A-p*O+g*z+m*S-x*T+E*D;return d?(d=1/d,r[0]=(i*A-s*O+v*z)*d,r[1]=(a*O-n*A-l*z)*d,r[2]=(_*E-w*x+M*m)*d,r[3]=(h*x-f*E-y*m)*d,r[4]=(s*S-o*A-v*T)*d,r[5]=(t*A-a*S+l*T)*d,r[6]=(w*g-u*E-M*p)*d,r[7]=(c*E-h*g+y*p)*d,r[8]=(o*O-i*S+v*D)*d,r[9]=(n*S-t*O-l*D)*d,r[10]=(u*x-_*g+M*P)*d,r[11]=(f*g-c*x-y*P)*d,r[12]=(i*T-o*z-s*D)*d,r[13]=(t*z-n*T+a*D)*d,r[14]=(_*p-u*m-w*P)*d,r[15]=(c*m-f*p+h*P)*d,r):null}function wr(r,e,t){var n=e[0],a=e[1],l=e[2],o=e[3],i=e[4],s=e[5],v=e[6],c=e[7],f=e[8],h=e[9],y=e[10],u=e[11],_=e[12],w=e[13],M=e[14],P=e[15],p=t[0],g=t[1],m=t[2],x=t[3];return r[0]=p*n+g*i+m*f+x*_,r[1]=p*a+g*s+m*h+x*w,r[2]=p*l+g*v+m*y+x*M,r[3]=p*o+g*c+m*u+x*P,p=t[4],g=t[5],m=t[6],x=t[7],r[4]=p*n+g*i+m*f+x*_,r[5]=p*a+g*s+m*h+x*w,r[6]=p*l+g*v+m*y+x*M,r[7]=p*o+g*c+m*u+x*P,p=t[8],g=t[9],m=t[10],x=t[11],r[8]=p*n+g*i+m*f+x*_,r[9]=p*a+g*s+m*h+x*w,r[10]=p*l+g*v+m*y+x*M,r[11]=p*o+g*c+m*u+x*P,p=t[12],g=t[13],m=t[14],x=t[15],r[12]=p*n+g*i+m*f+x*_,r[13]=p*a+g*s+m*h+x*w,r[14]=p*l+g*v+m*y+x*M,r[15]=p*o+g*c+m*u+x*P,r}function pr(r,e,t){var n=t[0],a=t[1],l=t[2],o,i,s,v,c,f,h,y,u,_,w,M;return e===r?(r[12]=e[0]*n+e[4]*a+e[8]*l+e[12],r[13]=e[1]*n+e[5]*a+e[9]*l+e[13],r[14]=e[2]*n+e[6]*a+e[10]*l+e[14],r[15]=e[3]*n+e[7]*a+e[11]*l+e[15]):(o=e[0],i=e[1],s=e[2],v=e[3],c=e[4],f=e[5],h=e[6],y=e[7],u=e[8],_=e[9],w=e[10],M=e[11],r[0]=o,r[1]=i,r[2]=s,r[3]=v,r[4]=c,r[5]=f,r[6]=h,r[7]=y,r[8]=u,r[9]=_,r[10]=w,r[11]=M,r[12]=o*n+c*a+u*l+e[12],r[13]=i*n+f*a+_*l+e[13],r[14]=s*n+h*a+w*l+e[14],r[15]=v*n+y*a+M*l+e[15]),r}function Pr(r,e,t){var n=t[0],a=t[1],l=t[2];return r[0]=e[0]*n,r[1]=e[1]*n,r[2]=e[2]*n,r[3]=e[3]*n,r[4]=e[4]*a,r[5]=e[5]*a,r[6]=e[6]*a,r[7]=e[7]*a,r[8]=e[8]*l,r[9]=e[9]*l,r[10]=e[10]*l,r[11]=e[11]*l,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function ye(r,e,t){var n=Math.sin(t),a=Math.cos(t),l=e[4],o=e[5],i=e[6],s=e[7],v=e[8],c=e[9],f=e[10],h=e[11];return e!==r&&(r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[4]=l*a+v*n,r[5]=o*a+c*n,r[6]=i*a+f*n,r[7]=s*a+h*n,r[8]=v*a-l*n,r[9]=c*a-o*n,r[10]=f*a-i*n,r[11]=h*a-s*n,r}function ue(r,e,t){var n=Math.sin(t),a=Math.cos(t),l=e[0],o=e[1],i=e[2],s=e[3],v=e[4],c=e[5],f=e[6],h=e[7];return e!==r&&(r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=l*a+v*n,r[1]=o*a+c*n,r[2]=i*a+f*n,r[3]=s*a+h*n,r[4]=v*a-l*n,r[5]=c*a-o*n,r[6]=f*a-i*n,r[7]=h*a-s*n,r}function Mt(r,e,t,n,a){var l=1/Math.tan(e/2),o;return r[0]=l/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=l,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,a!=null&&a!==1/0?(o=1/(n-a),r[10]=(a+n)*o,r[14]=2*a*n*o):(r[10]=-1,r[14]=-2*n),r}var _e=Mt;function Xr(r,e){var t=r[0],n=r[1],a=r[2],l=r[3],o=r[4],i=r[5],s=r[6],v=r[7],c=r[8],f=r[9],h=r[10],y=r[11],u=r[12],_=r[13],w=r[14],M=r[15],P=e[0],p=e[1],g=e[2],m=e[3],x=e[4],E=e[5],D=e[6],T=e[7],S=e[8],z=e[9],O=e[10],A=e[11],d=e[12],$=e[13],F=e[14],I=e[15];return Math.abs(t-P)<=L*Math.max(1,Math.abs(t),Math.abs(P))&&Math.abs(n-p)<=L*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(a-g)<=L*Math.max(1,Math.abs(a),Math.abs(g))&&Math.abs(l-m)<=L*Math.max(1,Math.abs(l),Math.abs(m))&&Math.abs(o-x)<=L*Math.max(1,Math.abs(o),Math.abs(x))&&Math.abs(i-E)<=L*Math.max(1,Math.abs(i),Math.abs(E))&&Math.abs(s-D)<=L*Math.max(1,Math.abs(s),Math.abs(D))&&Math.abs(v-T)<=L*Math.max(1,Math.abs(v),Math.abs(T))&&Math.abs(c-S)<=L*Math.max(1,Math.abs(c),Math.abs(S))&&Math.abs(f-z)<=L*Math.max(1,Math.abs(f),Math.abs(z))&&Math.abs(h-O)<=L*Math.max(1,Math.abs(h),Math.abs(O))&&Math.abs(y-A)<=L*Math.max(1,Math.abs(y),Math.abs(A))&&Math.abs(u-d)<=L*Math.max(1,Math.abs(u),Math.abs(d))&&Math.abs(_-$)<=L*Math.max(1,Math.abs(_),Math.abs($))&&Math.abs(w-F)<=L*Math.max(1,Math.abs(w),Math.abs(F))&&Math.abs(M-I)<=L*Math.max(1,Math.abs(M),Math.abs(I))}function mt(){var r=new W(2);return W!=Float32Array&&(r[0]=0,r[1]=0),r}function Br(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r}function Pe(r,e){return r[0]=-e[0],r[1]=-e[1],r}function Or(r,e,t,n){var a=e[0],l=e[1];return r[0]=a+n*(t[0]-a),r[1]=l+n*(t[1]-l),r}var hn=function(){var r=mt();return function(e,t,n,a,l,o){var i,s;for(t||(t=2),n||(n=0),a?s=Math.min(a*t+n,e.length):s=e.length,i=n;i<s;i+=t)r[0]=e[i],r[1]=e[i+1],l(r,r,o),e[i]=r[0],e[i+1]=r[1];return e}}();function gt(){var r=new W(3);return W!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function Oe(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r}function yt(r,e,t){return r[0]=e[0]*t[0],r[1]=e[1]*t[1],r[2]=e[2]*t[2],r}function be(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r}var Ee=yt;var pn=function(){var r=gt();return function(e,t,n,a,l,o){var i,s;for(t||(t=3),n||(n=0),a?s=Math.min(a*t+n,e.length):s=e.length,i=n;i<s;i+=t)r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],l(r,r,o),e[i]=r[0],e[i+1]=r[1],e[i+2]=r[2];return e}}();function C(r,e){if(!r)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var Y=Math.PI,Ae=Y/4,Z=Y/180,Hr=180/Y,ar=512,Gr=4003e4,or=85.051129,Qr=1.5;function br(r){return Math.pow(2,r)}function k(r){var e=j(r,2),t=e[0],n=e[1];C(Number.isFinite(t)),C(Number.isFinite(n)&&n>=-90&&n<=90,"invalid latitude");var a=t*Z,l=n*Z,o=ar*(a+Y)/(2*Y),i=ar*(Y+Math.log(Math.tan(Ae+l*.5)))/(2*Y);return[o,i]}function q(r){var e=j(r,2),t=e[0],n=e[1],a=t/ar*(2*Y)-Y,l=2*(Math.atan(Math.exp(n/ar*(2*Y)-Y))-Ae);return[a*Hr,l*Hr]}function Kr(r){var e=Math.cos(r*Z);return ar/Gr/e}function Jr(r){var e=r.latitude,t=r.longitude,n=r.highPrecision,a=n===void 0?!1:n;C(Number.isFinite(e)&&Number.isFinite(t));var l=ar,o=Math.cos(e*Z),i=l/360,s=i/o,v=l/Gr/o,c={unitsPerMeter:[v,v,v],metersPerUnit:[1/v,1/v,1/v],unitsPerDegree:[i,s,v],degreesPerUnit:[1/i,1/s,1/v]};if(a){var f=Z*Math.tan(e*Z)/o,h=i*f/2,y=l/Gr*f,u=y/s*v;c.unitsPerDegree2=[0,h,y],c.unitsPerMeter2=[u,0,u]}return c}function re(r){var e=r.height,t=r.pitch,n=r.bearing,a=r.altitude,l=r.scale,o=r.center,i=nr();pr(i,i,[0,0,-a]),ye(i,i,-t*Z),ue(i,i,n*Z);var s=l/e;return Pr(i,i,[s,s,s]),o&&pr(i,i,be([],o)),i}function Le(r){var e=r.width,t=r.height,n=r.altitude,a=r.pitch,l=a===void 0?0:a,o=r.offset,i=r.center,s=r.scale,v=r.nearZMultiplier,c=v===void 0?1:v,f=r.farZMultiplier,h=f===void 0?1:f,y=r.fovy,u=y===void 0?ir(Qr):y;n!==void 0&&(u=ir(n));var _=u*Z,w=l*Z,M=Er(u),P=M;i&&(P+=i[2]*s/Math.cos(w)/t);var p=_*(.5+(o?o[1]:0)/t),g=Math.sin(p)*P/Math.sin(hr(Math.PI/2-w-p,.01,Math.PI-.01)),m=Math.sin(w)*g+P,x=P*10,E=Math.min(m*h,x);return{fov:_,aspect:e/t,focalDistance:M,near:c,far:E}}function ee(r){var e=Le(r),t=e.fov,n=e.aspect,a=e.near,l=e.far,o=_e([],t,n,a,l);return o}function ir(r){return 2*Math.atan(.5/r)*Hr}function Er(r){return .5/Math.tan(.5*r*Z)}function te(r,e){var t=j(r,3),n=t[0],a=t[1],l=t[2],o=l===void 0?0:l;return C(Number.isFinite(n)&&Number.isFinite(a)&&Number.isFinite(o)),B(e,[n,a,o,1])}function zr(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=j(r,3),a=n[0],l=n[1],o=n[2];if(C(Number.isFinite(a)&&Number.isFinite(l),"invalid pixel coordinate"),Number.isFinite(o)){var i=B(e,[a,l,o,1]);return i}var s=B(e,[a,l,0,1]),v=B(e,[a,l,1,1]),c=s[2],f=v[2],h=c===f?0:((t||0)-c)/(f-c);return Or([],s,v,h)}function Ar(r){var e=r.width,t=r.height,n=r.bounds,a=r.minExtent,l=a===void 0?0:a,o=r.maxZoom,i=o===void 0?24:o,s=r.offset,v=s===void 0?[0,0]:s,c=j(n,2),f=j(c[0],2),h=f[0],y=f[1],u=j(c[1],2),_=u[0],w=u[1],M=ut(r.padding),P=k([h,hr(w,-or,or)]),p=k([_,hr(y,-or,or)]),g=[Math.max(Math.abs(p[0]-P[0]),l),Math.max(Math.abs(p[1]-P[1]),l)],m=[e-M.left-M.right-Math.abs(v[0])*2,t-M.top-M.bottom-Math.abs(v[1])*2];C(m[0]>0&&m[1]>0);var x=m[0]/g[0],E=m[1]/g[1],D=(M.right-M.left)/2/x,T=(M.bottom-M.top)/2/E,S=[(p[0]+P[0])/2+D,(p[1]+P[1])/2+T],z=q(S),O=Math.min(i,_r(Math.abs(Math.min(x,E))));return C(Number.isFinite(O)),{longitude:z[0],latitude:z[1],zoom:O}}function ut(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return typeof r=="number"?{top:r,bottom:r,left:r,right:r}:(C(Number.isFinite(r.top)&&Number.isFinite(r.bottom)&&Number.isFinite(r.left)&&Number.isFinite(r.right)),r)}var Te=Math.PI/180;function Lr(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=r.width,n=r.height,a=r.unproject,l={targetZ:e},o=a([0,n],l),i=a([t,n],l),s,v,c=r.fovy?.5*r.fovy*Te:Math.atan(.5/r.altitude),f=(90-r.pitch)*Te;return c>f-.01?(s=Se(r,0,e),v=Se(r,t,e)):(s=a([0,0],l),v=a([t,0],l)),[o,i,v,s]}function Se(r,e,t){var n=r.pixelUnprojectionMatrix,a=B(n,[e,0,1,1]),l=B(n,[e,r.height,1,1]),o=t*r.distanceScales.unitsPerMeter[2],i=(o-a[2])/(l[2]-a[2]),s=Or([],a,l,i),v=q(s);return v.push(t),v}var je=function(){function r(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{width:1,height:1};Vr(this,r),b(this,"latitude",void 0),b(this,"longitude",void 0),b(this,"zoom",void 0),b(this,"pitch",void 0),b(this,"bearing",void 0),b(this,"altitude",void 0),b(this,"fovy",void 0),b(this,"meterOffset",void 0),b(this,"center",void 0),b(this,"width",void 0),b(this,"height",void 0),b(this,"scale",void 0),b(this,"distanceScales",void 0),b(this,"viewMatrix",void 0),b(this,"projectionMatrix",void 0),b(this,"viewProjectionMatrix",void 0),b(this,"pixelProjectionMatrix",void 0),b(this,"pixelUnprojectionMatrix",void 0),b(this,"equals",function(O){return O instanceof r?O.width===e.width&&O.height===e.height&&Xr(O.projectionMatrix,e.projectionMatrix)&&Xr(O.viewMatrix,e.viewMatrix):!1}),b(this,"project",function(O){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=A.topLeft,$=d===void 0?!0:d,F=e.projectPosition(O),I=te(F,e.pixelProjectionMatrix),K=j(I,2),Mr=K[0],vr=K[1],fr=$?vr:e.height-vr;return O.length===2?[Mr,fr]:[Mr,fr,I[2]]}),b(this,"unproject",function(O){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=A.topLeft,$=d===void 0?!0:d,F=A.targetZ,I=F===void 0?void 0:F,K=j(O,3),Mr=K[0],vr=K[1],fr=K[2],Je=$?vr:e.height-vr,rt=I&&I*e.distanceScales.unitsPerMeter[2],et=zr([Mr,Je,fr],e.pixelUnprojectionMatrix,rt),tt=e.unprojectPosition(et),Dr=j(tt,3),Ir=Dr[0],Rr=Dr[1],nt=Dr[2];return Number.isFinite(fr)?[Ir,Rr,nt]:Number.isFinite(I)?[Ir,Rr,I]:[Ir,Rr]}),b(this,"projectPosition",function(O){var A=k(O),d=j(A,2),$=d[0],F=d[1],I=(O[2]||0)*e.distanceScales.unitsPerMeter[2];return[$,F,I]}),b(this,"unprojectPosition",function(O){var A=q(O),d=j(A,2),$=d[0],F=d[1],I=(O[2]||0)*e.distanceScales.metersPerUnit[2];return[$,F,I]});var n=t.width,a=t.height,l=t.altitude,o=l===void 0?null:l,i=t.fovy,s=i===void 0?null:i,v=t.latitude,c=v===void 0?0:v,f=t.longitude,h=f===void 0?0:f,y=t.zoom,u=y===void 0?0:y,_=t.pitch,w=_===void 0?0:_,M=t.bearing,P=M===void 0?0:M,p=t.position,g=p===void 0?null:p,m=t.nearZMultiplier,x=m===void 0?.02:m,E=t.farZMultiplier,D=E===void 0?1.01:E;n=n||1,a=a||1,s===null&&o===null?(o=Qr,s=ir(o)):s===null?s=ir(o):o===null&&(o=Er(s));var T=br(u);o=Math.max(.75,o);var S=Jr({longitude:h,latitude:c}),z=k([h,c]);z.push(0),g&&Oe(z,z,Ee([],g,S.unitsPerMeter)),this.projectionMatrix=ee({width:n,height:a,scale:T,center:z,pitch:w,fovy:s,nearZMultiplier:x,farZMultiplier:D}),this.viewMatrix=re({height:a,scale:T,center:z,pitch:w,bearing:P,altitude:o}),this.width=n,this.height=a,this.scale=T,this.latitude=c,this.longitude=h,this.zoom=u,this.pitch=w,this.bearing=P,this.altitude=o,this.fovy=s,this.center=z,this.meterOffset=g||[0,0,0],this.distanceScales=S,this._initMatrices(),Object.freeze(this)}return Wr(r,[{key:"_initMatrices",value:function(){var t=this.width,n=this.height,a=this.projectionMatrix,l=this.viewMatrix,o=nr();wr(o,o,a),wr(o,o,l),this.viewProjectionMatrix=o;var i=nr();Pr(i,i,[t/2,-n/2,1]),pr(i,i,[1,-1,0]),wr(i,i,o);var s=ge(nr(),i);if(!s)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=i,this.pixelUnprojectionMatrix=s}},{key:"projectFlat",value:function(t){return k(t)}},{key:"unprojectFlat",value:function(t){return q(t)}},{key:"getMapCenterByLngLatPosition",value:function(t){var n=t.lngLat,a=t.pos,l=zr(a,this.pixelUnprojectionMatrix),o=k(n),i=Br([],o,Pe([],l)),s=Br([],this.center,i);return q(s)}},{key:"fitBounds",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=this.width,l=this.height,o=Ar(Object.assign({width:a,height:l,bounds:t},n)),i=o.longitude,s=o.latitude,v=o.zoom;return new r({width:a,height:l,longitude:i,latitude:s,zoom:v})}},{key:"getBounds",value:function(t){var n=this.getBoundingRegion(t),a=Math.min.apply(Math,tr(n.map(function(s){return s[0]}))),l=Math.max.apply(Math,tr(n.map(function(s){return s[0]}))),o=Math.min.apply(Math,tr(n.map(function(s){return s[1]}))),i=Math.max.apply(Math,tr(n.map(function(s){return s[1]})));return[[a,o],[l,i]]}},{key:"getBoundingRegion",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Lr(this,t.z||0)}},{key:"getLocationAtPoint",value:function(t){var n=t.lngLat,a=t.pos;return this.getMapCenterByLngLatPosition({lngLat:n,pos:a})}}]),r}();function De(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function H(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?De(Object(t),!0).forEach(function(n){(0,Re.default)(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):De(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var ne=512,wt=Math.PI/180;function Tr(r){var e=r.map,t=r.gl,n=r.deck;if(e.__deck)return e.__deck;var a=n?.props._customRender,l=n?.props.onLoad,o=ae(H(H({},n?.props),{},{_customRender:function(){e.triggerRepaint(),a?.("")}})),i;return(!n||n.props.gl===t)&&(Object.assign(o,{gl:t,width:null,height:null,touchAction:"unset",viewState:sr(e)}),n!=null&&n.isInitialized?Ie(n,e):o.onLoad=function(){l?.(),Ie(i,e)}),n?(i=n,n.setProps(o),n.userData.isExternal=!0):(i=new U.Deck(o),e.on("remove",function(){i.finalize(),e.__deck=null})),i.userData.mapboxLayers=new Set,e.__deck=i,e.on("render",function(){i.isInitialized&&Ot(i,e)}),i}function Ie(r,e){var t=function n(){r.isInitialized?bt(r,e):e.off("move",n)};e.on("move",t)}function ae(r){var e="useDevicePixels"in r?r.useDevicePixels:!0,t=H(H({},r),{},{useDevicePixels:e,parameters:H({depthMask:!0,depthTest:!0,blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthFunc:515,blendEquation:32774},r.parameters),views:r.views||[new U.MapView({id:"mapbox"})]});return t}function ke(r,e){r.userData.mapboxLayers.add(e),ie(r)}function Ne(r,e){r.userData.mapboxLayers.delete(e),ie(r)}function Fe(r,e){ie(r)}function Ce(r,e,t){var n=r.userData,a=n.currentViewport,l=!1;a||(a=Ye(r,e,!0),r.userData.currentViewport=a,l=!0),r.isInitialized&&r._drawLayers("mapbox-repaint",{viewports:[a],layerFilter:function(i){var s=i.layer;return t.id===s.id},clearStack:l,clearCanvas:!1})}function sr(r){var e,t=r.getCenter(),n=t.lng,a=t.lat,l={longitude:(n+540)%360-180,latitude:a,zoom:r.getZoom(),bearing:r.getBearing(),pitch:r.getPitch(),padding:r.getPadding(),repeat:r.getRenderWorldCopies()};return(e=r.getTerrain)!==null&&e!==void 0&&e.call(r)&&Pt(r,l),l}function Pt(r,e){if(r.getFreeCameraOptions){var t=r.getFreeCameraOptions(),n=t.position;if(!n||n.z===void 0)return;var a=r.transform.height,l=e.longitude,o=e.latitude,i=e.pitch,s=n.x*ne,v=(1-n.y)*ne,c=n.z*ne,f=k([l,o]),h=s-f[0],y=v-f[1],u=Math.sqrt(h*h+y*y),_=i*wt,w=1.5*a,M=_<.001?w*Math.cos(_)/c:w*Math.sin(_)/u;e.zoom=Math.log2(M);var P=w*Math.cos(_)/M,p=c-P;e.position=[0,0,p/Kr(o)]}else typeof r.transform.elevation=="number"&&(e.position=[0,0,r.transform.elevation])}function Ye(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return new U.WebMercatorViewport(H(H({id:"mapbox",x:0,y:0,width:r.width,height:r.height},sr(e)),{},{nearZMultiplier:t?.02:.1}))}function Ot(r,e){var t=r.userData,n=t.mapboxLayers,a=t.isExternal;if(a){var l=Array.from(n,function(f){return f.id}),o=(0,U._flatten)(r.props.layers,Boolean),i=o.some(function(f){return f&&!l.includes(f.id)}),s=r.getViewports(),v=s.findIndex(function(f){return f.id==="mapbox"}),c=s.length>1||v<0;(i||c)&&(v>=0&&(s=s.slice(),s[v]=Ye(r,e,!1)),r._drawLayers("mapbox-repaint",{viewports:s,layerFilter:function(h){return(!r.props.layerFilter||r.props.layerFilter(h))&&(h.viewport.id!=="mapbox"||!l.includes(h.layer.id))},clearCanvas:!1}))}r.userData.currentViewport=null}function bt(r,e){r.setProps({viewState:sr(e)}),r.needsRedraw({clearRedrawFlags:!0})}function ie(r){if(!r.userData.isExternal){var e=[];r.userData.mapboxLayers.forEach(function(t){var n=t.props.type,a=new n(t.props);e.push(a)}),r.setProps({layers:e})}}var Sr=function(){function r(e){if((0,Ze.default)(this,r),(0,G.default)(this,"id",void 0),(0,G.default)(this,"type",void 0),(0,G.default)(this,"renderingMode",void 0),(0,G.default)(this,"map",void 0),(0,G.default)(this,"deck",void 0),(0,G.default)(this,"props",void 0),!e.id)throw new Error("Layer must have an unique id");this.id=e.id,this.type="custom",this.renderingMode=e.renderingMode||"3d",this.map=null,this.deck=null,this.props=e}return(0,qe.default)(r,[{key:"onAdd",value:function(t,n){this.map=t,this.deck=Tr({map:t,gl:n,deck:this.props.deck}),ke(this.deck,this)}},{key:"onRemove",value:function(){this.deck&&Ne(this.deck,this)}},{key:"setProps",value:function(t){Object.assign(this.props,t,{id:this.id}),this.deck&&Fe(this.deck,this)}},{key:"render",value:function(){Ce(this.deck,this.map,this)}}]),r}();var He=R(Xe()),Ge=R(kr()),Qe=R(Nr()),N=R(yr()),Q=R(rr());var se=R(rr());function jr(r,e){var t=typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=Lt(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var n=0,a=function(){};return{s:a,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(v){throw v},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
10
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,o=!1,i;return{s:function(){t=t.call(r)},n:function(){var v=t.next();return l=v.done,v},e:function(v){o=!0,i=v},f:function(){try{!l&&t.return!=null&&t.return()}finally{if(o)throw i}}}}function Lt(r,e){if(r){if(typeof r=="string")return Be(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Be(r,e)}}function Be(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}var oe="__UNDEFINED__";function dr(r,e,t,n){if(!(!r||!e||!r.style||!r.style._loaded)){var a=(0,se._flatten)(n,Boolean);if(t!==n){var l=(0,se._flatten)(t,Boolean),o=new Set(l.map(function(d){return d.id})),i=jr(a),s;try{for(i.s();!(s=i.n()).done;){var v=s.value;o.delete(v.id)}}catch(d){i.e(d)}finally{i.f()}var c=jr(o),f;try{for(c.s();!(f=c.n()).done;){var h=f.value;r.getLayer(h)&&r.removeLayer(h)}}catch(d){c.e(d)}finally{c.f()}}var y=jr(a),u;try{for(y.s();!(u=y.n()).done;){var _=u.value,w=r.getLayer(_.id);w?w.implementation.setProps(_.props):r.addLayer(new Sr({id:_.id,deck:e}),_.props.beforeId)}}catch(d){y.e(d)}finally{y.f()}var M=r.style._order,P={},p=jr(a),g;try{for(p.s();!(g=p.n()).done;){var m=g.value,x=m.props.beforeId;(!x||!M.includes(x))&&(x=oe),P[x]=P[x]||[],P[x].push(m.id)}}catch(d){p.e(d)}finally{p.f()}for(var E in P)for(var D=P[E],T=E===oe?M.length:M.indexOf(E),S=E===oe?void 0:E,z=D.length-1;z>=0;z--){var O=D[z],A=M.indexOf(O);A!==T-1&&(r.moveLayer(O,S),A>T&&T++),T--,S=O}}}var Tt=["interleaved"];function Ue(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function lr(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ue(Object(t),!0).forEach(function(n){(0,N.default)(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Ue(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var Ke=function(){function r(e){var t=this;(0,Ge.default)(this,r),(0,N.default)(this,"_props",void 0),(0,N.default)(this,"_deck",void 0),(0,N.default)(this,"_map",void 0),(0,N.default)(this,"_container",void 0),(0,N.default)(this,"_interleaved",void 0),(0,N.default)(this,"_lastMouseDownPoint",void 0),(0,N.default)(this,"_handleStyleChange",function(){dr(t._map,t._deck,t._props.layers,t._props.layers)}),(0,N.default)(this,"_updateContainerSize",function(){if(t._map&&t._container){var o=t._map.getContainer(),i=o.clientWidth,s=o.clientHeight;Object.assign(t._container.style,{width:"".concat(i,"px"),height:"".concat(s,"px")})}}),(0,N.default)(this,"_updateViewState",function(){var o=t._deck;o&&(o.setProps({viewState:sr(t._map)}),o.isInitialized&&o.redraw())}),(0,N.default)(this,"_handleMouseEvent",function(o){var i=t._deck;if(!(!i||!i.isInitialized)){var s={type:o.type,offsetCenter:o.point,srcEvent:o},v=t._lastMouseDownPoint;switch(!o.point&&v&&(s.deltaX=o.originalEvent.clientX-v.clientX,s.deltaY=o.originalEvent.clientY-v.clientY,s.offsetCenter={x:v.x+s.deltaX,y:v.y+s.deltaY}),s.type){case"mousedown":i._onPointerDown(s),t._lastMouseDownPoint=lr(lr({},o.point),{},{clientX:o.originalEvent.clientX,clientY:o.originalEvent.clientY});break;case"dragstart":s.type="panstart",i._onEvent(s);break;case"drag":s.type="panmove",i._onEvent(s);break;case"dragend":s.type="panend",i._onEvent(s);break;case"click":s.tapCount=1,i._onEvent(s);break;case"dblclick":s.type="click",s.tapCount=2,i._onEvent(s);break;case"mousemove":s.type="pointermove",i._onPointerMove(s);break;case"mouseout":s.type="pointerleave",i._onPointerMove(s);break;default:return}}});var n=e.interleaved,a=n===void 0?!1:n,l=(0,He.default)(e,Tt);this._interleaved=a,this._props=l}return(0,Qe.default)(r,[{key:"setProps",value:function(t){this._interleaved&&t.layers&&dr(this._map,this._deck,this._props.layers,t.layers),Object.assign(this._props,t),this._deck&&this._deck.setProps(this._interleaved?ae(this._props):this._props)}},{key:"onAdd",value:function(t){return this._map=t,this._interleaved?this._onAddInterleaved(t):this._onAddOverlaid(t)}},{key:"_onAddOverlaid",value:function(t){var n=document.createElement("div");return Object.assign(n.style,{position:"absolute",left:0,top:0,pointerEvents:"none"}),this._container=n,this._deck=new Q.Deck(lr(lr({},this._props),{},{parent:n,viewState:sr(t)})),t.on("resize",this._updateContainerSize),t.on("render",this._updateViewState),t.on("mousedown",this._handleMouseEvent),t.on("dragstart",this._handleMouseEvent),t.on("drag",this._handleMouseEvent),t.on("dragend",this._handleMouseEvent),t.on("mousemove",this._handleMouseEvent),t.on("mouseout",this._handleMouseEvent),t.on("click",this._handleMouseEvent),t.on("dblclick",this._handleMouseEvent),this._updateContainerSize(),n}},{key:"_onAddInterleaved",value:function(t){return this._deck=Tr({map:t,gl:t.painter.context.gl,deck:new Q.Deck(lr(lr({},this._props),{},{gl:t.painter.context.gl}))}),t.on("styledata",this._handleStyleChange),dr(t,this._deck,[],this._props.layers),document.createElement("div")}},{key:"onRemove",value:function(){var t,n=this._map;n&&(this._interleaved?this._onRemoveInterleaved(n):this._onRemoveOverlaid(n)),(t=this._deck)===null||t===void 0||t.finalize(),this._deck=void 0,this._map=void 0,this._container=void 0}},{key:"_onRemoveOverlaid",value:function(t){t.off("resize",this._updateContainerSize),t.off("render",this._updateViewState),t.off("mousedown",this._handleMouseEvent),t.off("dragstart",this._handleMouseEvent),t.off("drag",this._handleMouseEvent),t.off("dragend",this._handleMouseEvent),t.off("mousemove",this._handleMouseEvent),t.off("mouseout",this._handleMouseEvent),t.off("click",this._handleMouseEvent),t.off("dblclick",this._handleMouseEvent)}},{key:"_onRemoveInterleaved",value:function(t){t.off("styledata",this._handleStyleChange),dr(t,this._deck,this._props.layers,[])}},{key:"getDefaultPosition",value:function(){return"top-left"}},{key:"pickObject",value:function(t){return(0,Q.assert)(this._deck),this._deck.pickObject(t)}},{key:"pickMultipleObjects",value:function(t){return(0,Q.assert)(this._deck),this._deck.pickMultipleObjects(t)}},{key:"pickObjects",value:function(t){return(0,Q.assert)(this._deck),this._deck.pickObjects(t)}},{key:"finalize",value:function(){this._map&&this._map.removeControl(this)}}]),r}();return ft(xr);})();
|
|
11
11
|
return __exports__;
|
|
12
12
|
});
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@deck.gl/mapbox",
|
|
3
3
|
"description": "Use deck.gl layers as custom mapbox-gl-js layers",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "8.9.
|
|
5
|
+
"version": "8.9.6",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@deck.gl/core": "^8.0.0"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "539cc9960aa47bbe22f607a5de49e943f6765d61"
|
|
39
39
|
}
|
package/src/mapbox-overlay.ts
CHANGED
|
@@ -32,6 +32,7 @@ export default class MapboxOverlay implements IControl {
|
|
|
32
32
|
private _map?: Map;
|
|
33
33
|
private _container?: HTMLDivElement;
|
|
34
34
|
private _interleaved: boolean;
|
|
35
|
+
private _lastMouseDownPoint?: {x: number; y: number; clientX: number; clientY: number};
|
|
35
36
|
|
|
36
37
|
constructor(props: MapboxOverlayProps) {
|
|
37
38
|
const {interleaved = false, ...otherProps} = props;
|
|
@@ -77,6 +78,10 @@ export default class MapboxOverlay implements IControl {
|
|
|
77
78
|
|
|
78
79
|
map.on('resize', this._updateContainerSize);
|
|
79
80
|
map.on('render', this._updateViewState);
|
|
81
|
+
map.on('mousedown', this._handleMouseEvent);
|
|
82
|
+
map.on('dragstart', this._handleMouseEvent);
|
|
83
|
+
map.on('drag', this._handleMouseEvent);
|
|
84
|
+
map.on('dragend', this._handleMouseEvent);
|
|
80
85
|
map.on('mousemove', this._handleMouseEvent);
|
|
81
86
|
map.on('mouseout', this._handleMouseEvent);
|
|
82
87
|
map.on('click', this._handleMouseEvent);
|
|
@@ -125,6 +130,10 @@ export default class MapboxOverlay implements IControl {
|
|
|
125
130
|
private _onRemoveOverlaid(map: Map): void {
|
|
126
131
|
map.off('resize', this._updateContainerSize);
|
|
127
132
|
map.off('render', this._updateViewState);
|
|
133
|
+
map.off('mousedown', this._handleMouseEvent);
|
|
134
|
+
map.off('dragstart', this._handleMouseEvent);
|
|
135
|
+
map.off('drag', this._handleMouseEvent);
|
|
136
|
+
map.off('dragend', this._handleMouseEvent);
|
|
128
137
|
map.off('mousemove', this._handleMouseEvent);
|
|
129
138
|
map.off('mouseout', this._handleMouseEvent);
|
|
130
139
|
map.off('click', this._handleMouseEvent);
|
|
@@ -187,18 +196,22 @@ export default class MapboxOverlay implements IControl {
|
|
|
187
196
|
// @ts-ignore (2345) map is always defined if deck is
|
|
188
197
|
deck.setProps({viewState: getViewState(this._map)});
|
|
189
198
|
// Redraw immediately if view state has changed
|
|
190
|
-
deck.
|
|
199
|
+
if (deck.isInitialized) {
|
|
200
|
+
deck.redraw();
|
|
201
|
+
}
|
|
191
202
|
}
|
|
192
203
|
};
|
|
193
204
|
|
|
194
205
|
private _handleMouseEvent = (event: MapMouseEvent) => {
|
|
195
206
|
const deck = this._deck;
|
|
196
|
-
if (!deck) {
|
|
207
|
+
if (!deck || !deck.isInitialized) {
|
|
197
208
|
return;
|
|
198
209
|
}
|
|
199
210
|
|
|
200
211
|
const mockEvent: {
|
|
201
212
|
type: string;
|
|
213
|
+
deltaX?: number;
|
|
214
|
+
deltaY?: number;
|
|
202
215
|
offsetCenter: {x: number; y: number};
|
|
203
216
|
srcEvent: MapMouseEvent;
|
|
204
217
|
tapCount?: number;
|
|
@@ -208,11 +221,44 @@ export default class MapboxOverlay implements IControl {
|
|
|
208
221
|
srcEvent: event
|
|
209
222
|
};
|
|
210
223
|
|
|
211
|
-
|
|
224
|
+
const lastDown = this._lastMouseDownPoint;
|
|
225
|
+
if (!event.point && lastDown) {
|
|
226
|
+
// drag* events do not contain a `point` field
|
|
227
|
+
mockEvent.deltaX = event.originalEvent.clientX - lastDown.clientX;
|
|
228
|
+
mockEvent.deltaY = event.originalEvent.clientY - lastDown.clientY;
|
|
229
|
+
mockEvent.offsetCenter = {
|
|
230
|
+
x: lastDown.x + mockEvent.deltaX,
|
|
231
|
+
y: lastDown.y + mockEvent.deltaY
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
switch (mockEvent.type) {
|
|
236
|
+
case 'mousedown':
|
|
237
|
+
deck._onPointerDown(mockEvent as MjolnirGestureEvent);
|
|
238
|
+
this._lastMouseDownPoint = {
|
|
239
|
+
...event.point,
|
|
240
|
+
clientX: event.originalEvent.clientX,
|
|
241
|
+
clientY: event.originalEvent.clientY
|
|
242
|
+
};
|
|
243
|
+
break;
|
|
244
|
+
|
|
245
|
+
case 'dragstart':
|
|
246
|
+
mockEvent.type = 'panstart';
|
|
247
|
+
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
248
|
+
break;
|
|
249
|
+
|
|
250
|
+
case 'drag':
|
|
251
|
+
mockEvent.type = 'panmove';
|
|
252
|
+
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
253
|
+
break;
|
|
254
|
+
|
|
255
|
+
case 'dragend':
|
|
256
|
+
mockEvent.type = 'panend';
|
|
257
|
+
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
258
|
+
break;
|
|
259
|
+
|
|
212
260
|
case 'click':
|
|
213
261
|
mockEvent.tapCount = 1;
|
|
214
|
-
// Hack: because we do not listen to pointer down, perform picking now
|
|
215
|
-
deck._onPointerDown(mockEvent as MjolnirGestureEvent);
|
|
216
262
|
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
217
263
|
break;
|
|
218
264
|
|
|
@@ -14,6 +14,7 @@ export default class MapboxOverlay implements IControl {
|
|
|
14
14
|
private _map?;
|
|
15
15
|
private _container?;
|
|
16
16
|
private _interleaved;
|
|
17
|
+
private _lastMouseDownPoint?;
|
|
17
18
|
constructor(props: MapboxOverlayProps);
|
|
18
19
|
/** Update (partial) props of the underlying Deck instance. */
|
|
19
20
|
setProps(props: MapboxOverlayProps): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapbox-overlay.d.ts","sourceRoot":"","sources":["../src/mapbox-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAS,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAC,GAAG,EAAE,QAAQ,EAAgB,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAI7C,oBAAY,kBAAkB,GAAG,IAAI,CACnC,SAAS,EACP,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,YAAY,CACf,GAAG;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ;IACpD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,IAAI,CAAC,CAAM;IACnB,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,YAAY,CAAU;
|
|
1
|
+
{"version":3,"file":"mapbox-overlay.d.ts","sourceRoot":"","sources":["../src/mapbox-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAS,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAC,GAAG,EAAE,QAAQ,EAAgB,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAI7C,oBAAY,kBAAkB,GAAG,IAAI,CACnC,SAAS,EACP,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,YAAY,CACf,GAAG;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ;IACpD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,IAAI,CAAC,CAAM;IACnB,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,mBAAmB,CAAC,CAA2D;gBAE3E,KAAK,EAAE,kBAAkB;IAMrC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAYzC,gDAAgD;IAChD,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc;IAK/B,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,iBAAiB;IAkBzB,oDAAoD;IACpD,QAAQ,IAAI,IAAI;IAiBhB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,oBAAoB;IAK5B,kBAAkB;IAIlB,0CAA0C;IAC1C,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAKrF,mDAAmD;IACnD,mBAAmB,CACjB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,GACjD,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAK1C,2CAA2C;IAC3C,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAKxF,iDAAiD;IACjD,QAAQ;IAMR,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,gBAAgB,CAUtB;IAEF,OAAO,CAAC,iBAAiB,CA+EvB;CACH"}
|