@deck.gl/mapbox 9.1.0-beta.1 → 9.1.0
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/deck-utils.d.ts +10 -8
- package/dist/deck-utils.d.ts.map +1 -1
- package/dist/deck-utils.js +68 -48
- package/dist/deck-utils.js.map +1 -0
- package/dist/dist.dev.js +77 -695
- package/dist/index.cjs +78 -45
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/mapbox-layer.d.ts +2 -2
- package/dist/mapbox-layer.d.ts.map +1 -1
- package/dist/mapbox-layer.js +3 -2
- package/dist/mapbox-layer.js.map +1 -0
- package/dist/mapbox-overlay.d.ts +1 -3
- package/dist/mapbox-overlay.d.ts.map +1 -1
- package/dist/mapbox-overlay.js +18 -6
- package/dist/mapbox-overlay.js.map +1 -0
- package/dist/resolve-layers.d.ts +1 -1
- package/dist/resolve-layers.d.ts.map +1 -1
- package/dist/resolve-layers.js +1 -0
- package/dist/resolve-layers.js.map +1 -0
- package/dist/types.d.ts +83 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist.min.js +1 -1
- package/package.json +5 -5
- package/src/deck-utils.ts +96 -58
- package/src/mapbox-layer.ts +3 -3
- package/src/mapbox-overlay.ts +35 -19
- package/src/resolve-layers.ts +1 -1
- package/src/types.ts +125 -0
package/src/mapbox-overlay.ts
CHANGED
|
@@ -3,9 +3,15 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import {Deck, assert} from '@deck.gl/core';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import {
|
|
7
|
+
getViewState,
|
|
8
|
+
getDefaultView,
|
|
9
|
+
getDeckInstance,
|
|
10
|
+
removeDeckInstance,
|
|
11
|
+
getDefaultParameters
|
|
12
|
+
} from './deck-utils';
|
|
13
|
+
|
|
14
|
+
import type {Map, IControl, MapMouseEvent, ControlPosition} from './types';
|
|
9
15
|
import type {MjolnirGestureEvent, MjolnirPointerEvent} from 'mjolnir.js';
|
|
10
16
|
import type {DeckProps} from '@deck.gl/core';
|
|
11
17
|
import {log} from '@deck.gl/core';
|
|
@@ -26,7 +32,6 @@ export type MapboxOverlayProps = Omit<
|
|
|
26
32
|
> & {
|
|
27
33
|
interleaved?: boolean;
|
|
28
34
|
};
|
|
29
|
-
type ControlPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
30
35
|
|
|
31
36
|
/**
|
|
32
37
|
* Implements Mapbox [IControl](https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol) interface
|
|
@@ -34,7 +39,7 @@ type ControlPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'
|
|
|
34
39
|
*/
|
|
35
40
|
export default class MapboxOverlay implements IControl {
|
|
36
41
|
private _props: MapboxOverlayProps;
|
|
37
|
-
private _deck?: Deck
|
|
42
|
+
private _deck?: Deck<any>;
|
|
38
43
|
private _map?: Map;
|
|
39
44
|
private _container?: HTMLDivElement;
|
|
40
45
|
private _interleaved: boolean;
|
|
@@ -54,8 +59,14 @@ export default class MapboxOverlay implements IControl {
|
|
|
54
59
|
|
|
55
60
|
Object.assign(this._props, props);
|
|
56
61
|
|
|
57
|
-
if (this._deck) {
|
|
58
|
-
this._deck.setProps(
|
|
62
|
+
if (this._deck && this._map) {
|
|
63
|
+
this._deck.setProps({
|
|
64
|
+
...this._props,
|
|
65
|
+
parameters: {
|
|
66
|
+
...getDefaultParameters(this._map, this._interleaved),
|
|
67
|
+
...this._props.parameters
|
|
68
|
+
}
|
|
69
|
+
});
|
|
59
70
|
}
|
|
60
71
|
}
|
|
61
72
|
|
|
@@ -77,9 +88,11 @@ export default class MapboxOverlay implements IControl {
|
|
|
77
88
|
});
|
|
78
89
|
this._container = container;
|
|
79
90
|
|
|
80
|
-
this._deck = new Deck({
|
|
91
|
+
this._deck = new Deck<any>({
|
|
81
92
|
...this._props,
|
|
82
93
|
parent: container,
|
|
94
|
+
parameters: {...getDefaultParameters(map, false), ...this._props.parameters},
|
|
95
|
+
views: this._props.views || getDefaultView(map),
|
|
83
96
|
viewState: getViewState(map)
|
|
84
97
|
});
|
|
85
98
|
|
|
@@ -213,9 +226,12 @@ export default class MapboxOverlay implements IControl {
|
|
|
213
226
|
|
|
214
227
|
private _updateViewState = () => {
|
|
215
228
|
const deck = this._deck;
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
deck.setProps({
|
|
229
|
+
const map = this._map;
|
|
230
|
+
if (deck && map) {
|
|
231
|
+
deck.setProps({
|
|
232
|
+
views: this._props.views || getDefaultView(map),
|
|
233
|
+
viewState: getViewState(map)
|
|
234
|
+
});
|
|
219
235
|
// Redraw immediately if view state has changed
|
|
220
236
|
if (deck.isInitialized) {
|
|
221
237
|
deck.redraw();
|
|
@@ -256,7 +272,7 @@ export default class MapboxOverlay implements IControl {
|
|
|
256
272
|
|
|
257
273
|
switch (mockEvent.type) {
|
|
258
274
|
case 'mousedown':
|
|
259
|
-
deck._onPointerDown(mockEvent as MjolnirPointerEvent);
|
|
275
|
+
deck._onPointerDown(mockEvent as unknown as MjolnirPointerEvent);
|
|
260
276
|
this._lastMouseDownPoint = {
|
|
261
277
|
...event.point,
|
|
262
278
|
clientX: event.originalEvent.clientX,
|
|
@@ -266,38 +282,38 @@ export default class MapboxOverlay implements IControl {
|
|
|
266
282
|
|
|
267
283
|
case 'dragstart':
|
|
268
284
|
mockEvent.type = 'panstart';
|
|
269
|
-
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
285
|
+
deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);
|
|
270
286
|
break;
|
|
271
287
|
|
|
272
288
|
case 'drag':
|
|
273
289
|
mockEvent.type = 'panmove';
|
|
274
|
-
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
290
|
+
deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);
|
|
275
291
|
break;
|
|
276
292
|
|
|
277
293
|
case 'dragend':
|
|
278
294
|
mockEvent.type = 'panend';
|
|
279
|
-
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
295
|
+
deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);
|
|
280
296
|
break;
|
|
281
297
|
|
|
282
298
|
case 'click':
|
|
283
299
|
mockEvent.tapCount = 1;
|
|
284
|
-
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
300
|
+
deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);
|
|
285
301
|
break;
|
|
286
302
|
|
|
287
303
|
case 'dblclick':
|
|
288
304
|
mockEvent.type = 'click';
|
|
289
305
|
mockEvent.tapCount = 2;
|
|
290
|
-
deck._onEvent(mockEvent as MjolnirGestureEvent);
|
|
306
|
+
deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);
|
|
291
307
|
break;
|
|
292
308
|
|
|
293
309
|
case 'mousemove':
|
|
294
310
|
mockEvent.type = 'pointermove';
|
|
295
|
-
deck._onPointerMove(mockEvent as MjolnirPointerEvent);
|
|
311
|
+
deck._onPointerMove(mockEvent as unknown as MjolnirPointerEvent);
|
|
296
312
|
break;
|
|
297
313
|
|
|
298
314
|
case 'mouseout':
|
|
299
315
|
mockEvent.type = 'pointerleave';
|
|
300
|
-
deck._onPointerMove(mockEvent as MjolnirPointerEvent);
|
|
316
|
+
deck._onPointerMove(mockEvent as unknown as MjolnirPointerEvent);
|
|
301
317
|
break;
|
|
302
318
|
|
|
303
319
|
default:
|
package/src/resolve-layers.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {_flatten as flatten} from '@deck.gl/core';
|
|
|
6
6
|
import MapboxLayer from './mapbox-layer';
|
|
7
7
|
|
|
8
8
|
import type {Deck, LayersList, Layer} from '@deck.gl/core';
|
|
9
|
-
import type {Map} from '
|
|
9
|
+
import type {Map} from './types';
|
|
10
10
|
|
|
11
11
|
const UNDEFINED_BEFORE_ID = '__UNDEFINED__';
|
|
12
12
|
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
// Types that offer basic interface compatible with mapbox-gl and maplibre-gl
|
|
6
|
+
|
|
7
|
+
type Listener = (event?: any) => any;
|
|
8
|
+
|
|
9
|
+
export interface Evented {
|
|
10
|
+
on(type: string, listener: Listener);
|
|
11
|
+
|
|
12
|
+
off(type: string, listener?: Listener);
|
|
13
|
+
|
|
14
|
+
once(type: string, listener: Listener);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type Point = {
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type LngLat = {
|
|
23
|
+
lng: number;
|
|
24
|
+
lat: number;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export type PaddingOptions = {
|
|
28
|
+
top: number;
|
|
29
|
+
bottom: number;
|
|
30
|
+
left: number;
|
|
31
|
+
right: number;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export type FreeCameraOptions = {
|
|
35
|
+
position?: {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
z: number;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export interface IControl {
|
|
43
|
+
onAdd(map: Map): HTMLElement;
|
|
44
|
+
|
|
45
|
+
onRemove(map: Map): void;
|
|
46
|
+
|
|
47
|
+
getDefaultPosition?: (() => string) | undefined;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type ControlPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
51
|
+
|
|
52
|
+
export interface CustomLayerInterface {
|
|
53
|
+
id: string;
|
|
54
|
+
type: 'custom';
|
|
55
|
+
renderingMode?: '2d' | '3d';
|
|
56
|
+
|
|
57
|
+
onRemove?(map: Map, gl: WebGLRenderingContext): void;
|
|
58
|
+
onAdd?(map: Map, gl: WebGLRenderingContext): void;
|
|
59
|
+
|
|
60
|
+
prerender?(gl: WebGLRenderingContext, matrix: number[]): void;
|
|
61
|
+
render(gl: WebGLRenderingContext, matrix: number[]): void;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export type MapMouseEvent = {
|
|
65
|
+
type: string;
|
|
66
|
+
target: Map;
|
|
67
|
+
originalEvent: MouseEvent;
|
|
68
|
+
point: Point;
|
|
69
|
+
lngLat: LngLat;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* A minimal type that represents Mapbox.Map or Maplibre.Map
|
|
74
|
+
* Only losely typed for compatibility
|
|
75
|
+
*/
|
|
76
|
+
export interface Map extends Evented {
|
|
77
|
+
addControl(control: IControl, position?: ControlPosition);
|
|
78
|
+
|
|
79
|
+
removeControl(control: IControl);
|
|
80
|
+
|
|
81
|
+
hasControl(control: IControl): boolean;
|
|
82
|
+
|
|
83
|
+
resize(): this;
|
|
84
|
+
|
|
85
|
+
isStyleLoaded(): boolean | void;
|
|
86
|
+
|
|
87
|
+
addSource(id: string, source: any);
|
|
88
|
+
|
|
89
|
+
removeSource(id: string): this;
|
|
90
|
+
|
|
91
|
+
getSource(id: string): any;
|
|
92
|
+
|
|
93
|
+
addLayer(layer: any, before?: string);
|
|
94
|
+
|
|
95
|
+
moveLayer(id: string, beforeId?: string);
|
|
96
|
+
|
|
97
|
+
removeLayer(id: string);
|
|
98
|
+
|
|
99
|
+
getLayer(id: string): any;
|
|
100
|
+
|
|
101
|
+
getContainer(): HTMLElement;
|
|
102
|
+
|
|
103
|
+
getCanvas(): HTMLCanvasElement;
|
|
104
|
+
|
|
105
|
+
getCenter(): LngLat;
|
|
106
|
+
getZoom(): number;
|
|
107
|
+
getBearing(): number;
|
|
108
|
+
getPitch(): number;
|
|
109
|
+
getPadding(): PaddingOptions;
|
|
110
|
+
getRenderWorldCopies(): boolean;
|
|
111
|
+
|
|
112
|
+
// mapbox v2+, maplibre v3+
|
|
113
|
+
getTerrain?(): any;
|
|
114
|
+
// mapbox v2+, maplibre v5+
|
|
115
|
+
getProjection?(): any;
|
|
116
|
+
// mapbox v2+
|
|
117
|
+
getFreeCameraOptions?(): FreeCameraOptions;
|
|
118
|
+
|
|
119
|
+
// This is not a public property
|
|
120
|
+
transform?: any;
|
|
121
|
+
|
|
122
|
+
remove(): void;
|
|
123
|
+
|
|
124
|
+
triggerRepaint(): void;
|
|
125
|
+
}
|