@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/index.cjs CHANGED
@@ -30,7 +30,6 @@ var import_core3 = require("@deck.gl/core");
30
30
  // dist/deck-utils.js
31
31
  var import_core = require("@deck.gl/core");
32
32
  var import_web_mercator = require("@math.gl/web-mercator");
33
- var import_constants = require("@luma.gl/constants");
34
33
  var TILE_SIZE = 512;
35
34
  var DEGREES_TO_RADIANS = Math.PI / 180;
36
35
  function getDeckInstance({ map, gl, deck }) {
@@ -39,13 +38,15 @@ function getDeckInstance({ map, gl, deck }) {
39
38
  }
40
39
  const customRender = deck == null ? void 0 : deck.props._customRender;
41
40
  const onLoad = deck == null ? void 0 : deck.props.onLoad;
42
- const deckProps = getInterleavedProps({
41
+ const deckProps = {
43
42
  ...deck == null ? void 0 : deck.props,
44
43
  _customRender: () => {
45
44
  map.triggerRepaint();
46
45
  customRender == null ? void 0 : customRender("");
47
46
  }
48
- });
47
+ };
48
+ deckProps.parameters = { ...getDefaultParameters(map, true), ...deckProps.parameters };
49
+ deckProps.views || (deckProps.views = getDefaultView(map));
49
50
  let deckInstance;
50
51
  if (!deck || deck.props.gl === gl) {
51
52
  Object.assign(deckProps, {
@@ -97,24 +98,23 @@ function removeDeckInstance(map) {
97
98
  (_a = map.__deck) == null ? void 0 : _a.finalize();
98
99
  map.__deck = null;
99
100
  }
100
- function getInterleavedProps(currProps) {
101
- const nextProps = {
102
- ...currProps,
103
- // TODO: remove with withParametersWebGL
104
- parameters: {
105
- depthMask: true,
106
- depthTest: true,
107
- blend: true,
108
- blendFunc: [770, 771, 1, 771],
109
- polygonOffsetFill: true,
110
- depthFunc: 515,
111
- blendEquation: 32774,
112
- ...currProps.parameters
113
- },
114
- // @ts-ignore views prop is hidden by the types because it is not expected to work the same way as in standalone Deck, see documentation
115
- views: currProps.views || [new import_core.MapView({ id: "mapbox" })]
116
- };
117
- return nextProps;
101
+ function getDefaultParameters(map, interleaved) {
102
+ const result = interleaved ? {
103
+ depthWriteEnabled: true,
104
+ depthCompare: "less-equal",
105
+ depthBias: 0,
106
+ blend: true,
107
+ blendColorSrcFactor: "src-alpha",
108
+ blendColorDstFactor: "one-minus-src-alpha",
109
+ blendAlphaSrcFactor: "one",
110
+ blendAlphaDstFactor: "one-minus-src-alpha",
111
+ blendColorOperation: "add",
112
+ blendAlphaOperation: "add"
113
+ } : {};
114
+ if (getProjection(map) === "globe") {
115
+ result.cullMode = "back";
116
+ }
117
+ return result;
118
118
  }
119
119
  function addLayer(deck, layer) {
120
120
  deck.userData.mapboxLayers.add(layer);
@@ -127,11 +127,11 @@ function removeLayer(deck, layer) {
127
127
  function updateLayer(deck, layer) {
128
128
  updateLayers(deck);
129
129
  }
130
- function drawLayer(deck, map, layer) {
130
+ function drawLayer(deck, map, layer, renderParameters) {
131
131
  let { currentViewport } = deck.userData;
132
132
  let clearStack = false;
133
133
  if (!currentViewport) {
134
- currentViewport = getViewport(deck, map, true);
134
+ currentViewport = getViewport(deck, map, renderParameters);
135
135
  deck.userData.currentViewport = currentViewport;
136
136
  clearStack = true;
137
137
  }
@@ -145,6 +145,28 @@ function drawLayer(deck, map, layer) {
145
145
  clearCanvas: false
146
146
  });
147
147
  }
148
+ function getProjection(map) {
149
+ var _a;
150
+ const projection = (_a = map.getProjection) == null ? void 0 : _a.call(map);
151
+ const type = (
152
+ // maplibre projection spec
153
+ (projection == null ? void 0 : projection.type) || // mapbox projection spec
154
+ (projection == null ? void 0 : projection.name)
155
+ );
156
+ if (type === "globe") {
157
+ return "globe";
158
+ }
159
+ if (type && type !== "mercator") {
160
+ throw new Error("Unsupported projection");
161
+ }
162
+ return "mercator";
163
+ }
164
+ function getDefaultView(map) {
165
+ if (getProjection(map) === "globe") {
166
+ return new import_core._GlobeView({ id: "mapbox" });
167
+ }
168
+ return new import_core.MapView({ id: "mapbox" });
169
+ }
148
170
  function getViewState(map) {
149
171
  var _a;
150
172
  const { lng, lat } = map.getCenter();
@@ -193,23 +215,22 @@ function centerCameraOnTerrain(map, viewState) {
193
215
  viewState.position = [0, 0, map.transform.elevation];
194
216
  }
195
217
  }
196
- function getViewport(deck, map, useMapboxProjection = true) {
197
- return new import_core.WebMercatorViewport({
198
- id: "mapbox",
199
- x: 0,
200
- y: 0,
218
+ function getViewport(deck, map, renderParameters) {
219
+ const viewState = getViewState(map);
220
+ const view = getDefaultView(map);
221
+ if (renderParameters) {
222
+ view.props.nearZMultiplier = 0.2;
223
+ }
224
+ const nearZ = (renderParameters == null ? void 0 : renderParameters.nearZ) ?? map.transform._nearZ;
225
+ const farZ = (renderParameters == null ? void 0 : renderParameters.farZ) ?? map.transform._farZ;
226
+ if (Number.isFinite(nearZ)) {
227
+ viewState.nearZ = nearZ / map.transform.height;
228
+ viewState.farZ = farZ / map.transform.height;
229
+ }
230
+ return view.makeViewport({
201
231
  width: deck.width,
202
232
  height: deck.height,
203
- ...getViewState(map),
204
- nearZMultiplier: useMapboxProjection ? (
205
- // match mapbox-gl@>=1.3.0's projection matrix
206
- 0.02
207
- ) : (
208
- // use deck.gl's own default
209
- 0.1
210
- ),
211
- nearZ: map.transform._nearZ / map.transform.height,
212
- farZ: map.transform._farZ / map.transform.height
233
+ viewState
213
234
  });
214
235
  }
215
236
  function afterRender(deck, map) {
@@ -224,7 +245,7 @@ function afterRender(deck, map) {
224
245
  if (hasNonMapboxLayers || hasNonMapboxViews) {
225
246
  if (mapboxViewportIdx >= 0) {
226
247
  viewports = viewports.slice();
227
- viewports[mapboxViewportIdx] = getViewport(deck, map, false);
248
+ viewports[mapboxViewportIdx] = getViewport(deck, map);
228
249
  }
229
250
  deck._drawLayers("mapbox-repaint", {
230
251
  viewports,
@@ -291,8 +312,8 @@ var MapboxLayer = class {
291
312
  updateLayer(this.deck, this);
292
313
  }
293
314
  }
294
- render() {
295
- drawLayer(this.deck, this.map, this);
315
+ render(gl, renderParameters) {
316
+ drawLayer(this.deck, this.map, this, renderParameters);
296
317
  }
297
318
  };
298
319
 
@@ -374,8 +395,12 @@ var MapboxOverlay = class {
374
395
  };
375
396
  this._updateViewState = () => {
376
397
  const deck = this._deck;
377
- if (deck) {
378
- deck.setProps({ viewState: getViewState(this._map) });
398
+ const map = this._map;
399
+ if (deck && map) {
400
+ deck.setProps({
401
+ views: this._props.views || getDefaultView(map),
402
+ viewState: getViewState(map)
403
+ });
379
404
  if (deck.isInitialized) {
380
405
  deck.redraw();
381
406
  }
@@ -452,8 +477,14 @@ var MapboxOverlay = class {
452
477
  resolveLayers(this._map, this._deck, this._props.layers, props.layers);
453
478
  }
454
479
  Object.assign(this._props, props);
455
- if (this._deck) {
456
- this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);
480
+ if (this._deck && this._map) {
481
+ this._deck.setProps({
482
+ ...this._props,
483
+ parameters: {
484
+ ...getDefaultParameters(this._map, this._interleaved),
485
+ ...this._props.parameters
486
+ }
487
+ });
457
488
  }
458
489
  }
459
490
  /** Called when the control is added to a map */
@@ -474,6 +505,8 @@ var MapboxOverlay = class {
474
505
  this._deck = new import_core3.Deck({
475
506
  ...this._props,
476
507
  parent: container,
508
+ parameters: { ...getDefaultParameters(map, false), ...this._props.parameters },
509
+ views: this._props.views || getDefaultView(map),
477
510
  viewState: getViewState(map)
478
511
  });
479
512
  map.on("resize", this._updateContainerSize);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["index.js", "mapbox-overlay.js", "deck-utils.js", "resolve-layers.js", "mapbox-layer.js"],
4
- "sourcesContent": ["// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport { default as MapboxOverlay } from \"./mapbox-overlay.js\";\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Deck, assert } from '@deck.gl/core';\nimport { getViewState, getDeckInstance, removeDeckInstance, getInterleavedProps } from \"./deck-utils.js\";\nimport { log } from '@deck.gl/core';\nimport { resolveLayers } from \"./resolve-layers.js\";\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 {\n constructor(props) {\n this._handleStyleChange = () => {\n resolveLayers(this._map, this._deck, this._props.layers, this._props.layers);\n };\n this._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 this._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 // eslint-disable-next-line complexity\n this._handleMouseEvent = (event) => {\n const deck = this._deck;\n if (!deck || !deck.isInitialized) {\n return;\n }\n const mockEvent = {\n type: event.type,\n offsetCenter: event.point,\n srcEvent: event\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 switch (mockEvent.type) {\n case 'mousedown':\n deck._onPointerDown(mockEvent);\n this._lastMouseDownPoint = {\n ...event.point,\n clientX: event.originalEvent.clientX,\n clientY: event.originalEvent.clientY\n };\n break;\n case 'dragstart':\n mockEvent.type = 'panstart';\n deck._onEvent(mockEvent);\n break;\n case 'drag':\n mockEvent.type = 'panmove';\n deck._onEvent(mockEvent);\n break;\n case 'dragend':\n mockEvent.type = 'panend';\n deck._onEvent(mockEvent);\n break;\n case 'click':\n mockEvent.tapCount = 1;\n deck._onEvent(mockEvent);\n break;\n case 'dblclick':\n mockEvent.type = 'click';\n mockEvent.tapCount = 2;\n deck._onEvent(mockEvent);\n break;\n case 'mousemove':\n mockEvent.type = 'pointermove';\n deck._onPointerMove(mockEvent);\n break;\n case 'mouseout':\n mockEvent.type = 'pointerleave';\n deck._onPointerMove(mockEvent);\n break;\n default:\n return;\n }\n };\n const { interleaved = false, ...otherProps } = props;\n this._interleaved = interleaved;\n this._props = otherProps;\n }\n /** Update (partial) props of the underlying Deck instance. */\n setProps(props) {\n if (this._interleaved && props.layers) {\n resolveLayers(this._map, this._deck, this._props.layers, props.layers);\n }\n Object.assign(this._props, props);\n if (this._deck) {\n this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);\n }\n }\n /** Called when the control is added to a map */\n onAdd(map) {\n this._map = map;\n return this._interleaved ? this._onAddInterleaved(map) : this._onAddOverlaid(map);\n }\n _onAddOverlaid(map) {\n /* global document */\n const container = document.createElement('div');\n Object.assign(container.style, {\n position: 'absolute',\n left: 0,\n top: 0,\n textAlign: 'initial',\n pointerEvents: 'none'\n });\n this._container = container;\n this._deck = new Deck({\n ...this._props,\n parent: container,\n viewState: getViewState(map)\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 this._updateContainerSize();\n return container;\n }\n _onAddInterleaved(map) {\n // @ts-ignore non-public map property\n const gl = map.painter.context.gl;\n if (gl instanceof WebGLRenderingContext) {\n log.warn('Incompatible basemap library. See: https://deck.gl/docs/api-reference/mapbox/overview#compatibility')();\n }\n this._deck = getDeckInstance({\n map,\n gl,\n deck: new Deck({\n ...this._props,\n gl\n })\n });\n map.on('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, [], this._props.layers);\n return document.createElement('div');\n }\n /** Called when the control is removed from a map */\n onRemove() {\n const map = this._map;\n if (map) {\n if (this._interleaved) {\n this._onRemoveInterleaved(map);\n }\n else {\n this._onRemoveOverlaid(map);\n }\n }\n this._deck = undefined;\n this._map = undefined;\n this._container = undefined;\n }\n _onRemoveOverlaid(map) {\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 this._deck?.finalize();\n }\n _onRemoveInterleaved(map) {\n map.off('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, this._props.layers, []);\n removeDeckInstance(map);\n }\n getDefaultPosition() {\n return 'top-left';\n }\n /** Forwards the Deck.pickObject method */\n pickObject(params) {\n assert(this._deck);\n return this._deck.pickObject(params);\n }\n /** Forwards the Deck.pickMultipleObjects method */\n pickMultipleObjects(params) {\n assert(this._deck);\n return this._deck.pickMultipleObjects(params);\n }\n /** Forwards the Deck.pickObjects method */\n pickObjects(params) {\n assert(this._deck);\n return this._deck.pickObjects(params);\n }\n /** Remove from map and releases all resources */\n finalize() {\n if (this._map) {\n this._map.removeControl(this);\n }\n }\n /** If interleaved: true, returns base map's canvas, otherwise forwards the Deck.getCanvas method. */\n getCanvas() {\n if (!this._map) {\n return null;\n }\n return this._interleaved ? this._map.getCanvas() : this._deck.getCanvas();\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Deck, WebMercatorViewport, MapView, _flatten as flatten } from '@deck.gl/core';\nimport { lngLatToWorld, unitsPerMeter } from '@math.gl/web-mercator';\nimport { GL } from '@luma.gl/constants';\n// Mercator constants\nconst TILE_SIZE = 512;\nconst DEGREES_TO_RADIANS = Math.PI / 180;\n// Create an interleaved deck instance.\nexport function getDeckInstance({ map, gl, deck }) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n // Only initialize certain props once per context\n const customRender = deck?.props._customRender;\n const onLoad = deck?.props.onLoad;\n const deckProps = getInterleavedProps({\n ...deck?.props,\n _customRender: () => {\n map.triggerRepaint();\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n // Hack - do not pass a redraw reason here to prevent the React component from clearing the context\n // Rerender will be triggered by MapboxLayer's render()\n customRender?.('');\n }\n });\n let deckInstance;\n if (!deck || deck.props.gl === gl) {\n // If deck isn't defined (Internal MapboxLayer use case),\n // or if deck is defined and is using the WebGLContext created by mapbox (MapboxOverlay and External MapboxLayer use case),\n // block deck from setting the canvas size, and use the map's viewState to drive deck.\n // Otherwise, we use deck's viewState to drive the map.\n Object.assign(deckProps, {\n gl,\n width: null,\n height: null,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n if (deck?.isInitialized) {\n watchMapMove(deck, map);\n }\n else {\n deckProps.onLoad = () => {\n onLoad?.();\n watchMapMove(deckInstance, map);\n };\n }\n }\n if (deck) {\n deckInstance = deck;\n deck.setProps(deckProps);\n deck.userData.isExternal = true;\n }\n else {\n deckInstance = new Deck(deckProps);\n map.on('remove', () => {\n removeDeckInstance(map);\n });\n }\n deckInstance.userData.mapboxLayers = new Set();\n // (deckInstance.userData as UserData).mapboxVersion = getMapboxVersion(map);\n map.__deck = deckInstance;\n map.on('render', () => {\n if (deckInstance.isInitialized)\n afterRender(deckInstance, map);\n });\n return deckInstance;\n}\nfunction watchMapMove(deck, map) {\n const _handleMapMove = () => {\n if (deck.isInitialized) {\n // call view state methods\n onMapMove(deck, map);\n }\n else {\n // deregister itself when deck is finalized\n map.off('move', _handleMapMove);\n }\n };\n map.on('move', _handleMapMove);\n}\nexport function removeDeckInstance(map) {\n map.__deck?.finalize();\n map.__deck = null;\n}\nexport function getInterleavedProps(currProps) {\n const nextProps = {\n ...currProps,\n // TODO: remove with withParametersWebGL\n parameters: {\n depthMask: true,\n depthTest: true,\n blend: true,\n blendFunc: [770, 771, 1, 771],\n polygonOffsetFill: true,\n depthFunc: 515,\n blendEquation: 32774,\n ...currProps.parameters\n },\n // @ts-ignore views prop is hidden by the types because it is not expected to work the same way as in standalone Deck, see documentation\n views: currProps.views || [new MapView({ id: 'mapbox' })]\n };\n return nextProps;\n}\nexport function addLayer(deck, layer) {\n deck.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\nexport function removeLayer(deck, layer) {\n deck.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\nexport function drawLayer(deck, map, layer) {\n let { currentViewport } = deck.userData;\n let clearStack = false;\n if (!currentViewport) {\n // This is the first layer drawn in this render cycle.\n // Generate viewport from the current map state.\n currentViewport = getViewport(deck, map, true);\n deck.userData.currentViewport = currentViewport;\n clearStack = true;\n }\n if (!deck.isInitialized) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({ layer: deckLayer }) => layer.id === deckLayer.id || deckLayer.props.operation.includes('terrain'),\n clearStack,\n clearCanvas: false\n });\n}\nexport function getViewState(map) {\n const { lng, lat } = map.getCenter();\n const viewState = {\n // Longitude returned by getCenter can be outside of [-180, 180] when zooming near the anti meridian\n // https://github.com/visgl/deck.gl/issues/6894\n longitude: ((lng + 540) % 360) - 180,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n padding: map.getPadding(),\n repeat: map.getRenderWorldCopies()\n };\n if (map.getTerrain?.()) {\n // When the base map has terrain, we need to target the camera at the terrain surface\n centerCameraOnTerrain(map, viewState);\n }\n return viewState;\n}\nfunction centerCameraOnTerrain(map, viewState) {\n if (map.getFreeCameraOptions) {\n // mapbox-gl v2\n const { position } = map.getFreeCameraOptions();\n if (!position || position.z === undefined) {\n return;\n }\n // @ts-ignore transform is not typed\n const height = map.transform.height;\n const { longitude, latitude, pitch } = viewState;\n // Convert mapbox mercator coordinate to deck common space\n const cameraX = position.x * TILE_SIZE;\n const cameraY = (1 - position.y) * TILE_SIZE;\n const cameraZ = position.z * TILE_SIZE;\n // Mapbox manipulates zoom in terrain mode, see discussion here: https://github.com/mapbox/mapbox-gl-js/issues/12040\n const center = lngLatToWorld([longitude, latitude]);\n const dx = cameraX - center[0];\n const dy = cameraY - center[1];\n const cameraToCenterDistanceGround = Math.sqrt(dx * dx + dy * dy);\n const pitchRadians = pitch * DEGREES_TO_RADIANS;\n const altitudePixels = 1.5 * height;\n const scale = pitchRadians < 0.001\n ? // Pitch angle too small to deduce the look at point, assume elevation is 0\n (altitudePixels * Math.cos(pitchRadians)) / cameraZ\n : (altitudePixels * Math.sin(pitchRadians)) / cameraToCenterDistanceGround;\n viewState.zoom = Math.log2(scale);\n const cameraZFromSurface = (altitudePixels * Math.cos(pitchRadians)) / scale;\n const surfaceElevation = cameraZ - cameraZFromSurface;\n viewState.position = [0, 0, surfaceElevation / unitsPerMeter(latitude)];\n }\n // @ts-ignore transform is not typed\n else if (typeof map.transform.elevation === 'number') {\n // maplibre-gl\n // @ts-ignore transform is not typed\n viewState.position = [0, 0, map.transform.elevation];\n }\n}\n// function getMapboxVersion(map: Map): {minor: number; major: number} {\n// // parse mapbox version string\n// let major = 0;\n// let minor = 0;\n// // @ts-ignore (2339) undefined property\n// const version: string = map.version;\n// if (version) {\n// [major, minor] = version.split('.').slice(0, 2).map(Number);\n// }\n// return {major, minor};\n// }\nfunction getViewport(deck, map, useMapboxProjection = true) {\n return new WebMercatorViewport({\n id: 'mapbox',\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n ...getViewState(map),\n nearZMultiplier: useMapboxProjection\n ? // match mapbox-gl@>=1.3.0's projection matrix\n 0.02\n : // use deck.gl's own default\n 0.1,\n nearZ: map.transform._nearZ / map.transform.height,\n farZ: map.transform._farZ / map.transform.height\n });\n}\nfunction afterRender(deck, map) {\n const { mapboxLayers, isExternal } = deck.userData;\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const deckLayers = flatten(deck.props.layers, Boolean);\n const hasNonMapboxLayers = deckLayers.some(layer => layer && !mapboxLayerIds.includes(layer.id));\n let viewports = deck.getViewports();\n const mapboxViewportIdx = viewports.findIndex(vp => vp.id === 'mapbox');\n const hasNonMapboxViews = viewports.length > 1 || mapboxViewportIdx < 0;\n if (hasNonMapboxLayers || hasNonMapboxViews) {\n if (mapboxViewportIdx >= 0) {\n viewports = viewports.slice();\n viewports[mapboxViewportIdx] = getViewport(deck, map, false);\n }\n deck._drawLayers('mapbox-repaint', {\n viewports,\n layerFilter: params => (!deck.props.layerFilter || deck.props.layerFilter(params)) &&\n (params.viewport.id !== 'mapbox' || !mapboxLayerIds.includes(params.layer.id)),\n clearCanvas: false\n });\n }\n }\n // End of render cycle, clear generated viewport\n deck.userData.currentViewport = null;\n}\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({ clearRedrawFlags: true });\n}\nfunction updateLayers(deck) {\n if (deck.userData.isExternal) {\n return;\n }\n const layers = [];\n deck.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props);\n layers.push(layer);\n });\n deck.setProps({ layers });\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { _flatten as flatten } from '@deck.gl/core';\nimport MapboxLayer from \"./mapbox-layer.js\";\nconst UNDEFINED_BEFORE_ID = '__UNDEFINED__';\n/** Insert Deck layers into the mapbox Map according to the user-defined order */\n// eslint-disable-next-line complexity, max-statements\nexport function resolveLayers(map, deck, oldLayers, newLayers) {\n // Wait until map style is loaded\n // @ts-ignore non-public map property\n if (!map || !deck || !map.style || !map.style._loaded) {\n return;\n }\n const layers = flatten(newLayers, Boolean);\n if (oldLayers !== newLayers) {\n // Step 1: remove layers that no longer exist\n const prevLayers = flatten(oldLayers, Boolean);\n const prevLayerIds = new Set(prevLayers.map(l => l.id));\n for (const layer of layers) {\n prevLayerIds.delete(layer.id);\n }\n for (const id of prevLayerIds) {\n if (map.getLayer(id)) {\n map.removeLayer(id);\n }\n }\n }\n // Step 2: add missing layers\n for (const layer of layers) {\n const mapboxLayer = map.getLayer(layer.id);\n if (mapboxLayer) {\n // Mapbox's map.getLayer() had a breaking change in v3.6.0, see https://github.com/visgl/deck.gl/issues/9086\n // @ts-expect-error not typed\n const layerInstance = mapboxLayer.implementation || mapboxLayer;\n layerInstance.setProps(layer.props);\n }\n else {\n map.addLayer(new MapboxLayer({ id: layer.id, deck }), \n // @ts-expect-error beforeId is not defined in LayerProps\n layer.props.beforeId);\n }\n }\n // Step 3: check the order of layers\n // If beforeId is defined, the deck layer should always render before the mapbox layer [beforeId]\n // If beforeId is not defined, the deck layer should appear after all mapbox layers\n // When two deck layers share the same beforeId, they are rendered in the order that is passed into Deck props.layers\n // @ts-ignore non-public map property\n const mapLayers = map.style._order;\n // Group deck layers by beforeId\n const layerGroups = {};\n for (const layer of layers) {\n // @ts-expect-error beforeId is not defined in LayerProps\n let { beforeId } = layer.props;\n if (!beforeId || !mapLayers.includes(beforeId)) {\n beforeId = UNDEFINED_BEFORE_ID;\n }\n layerGroups[beforeId] = layerGroups[beforeId] || [];\n layerGroups[beforeId].push(layer.id);\n }\n for (const beforeId in layerGroups) {\n const layerGroup = layerGroups[beforeId];\n let lastLayerIndex = beforeId === UNDEFINED_BEFORE_ID ? mapLayers.length : mapLayers.indexOf(beforeId);\n let lastLayerId = beforeId === UNDEFINED_BEFORE_ID ? undefined : beforeId;\n for (let i = layerGroup.length - 1; i >= 0; i--) {\n const layerId = layerGroup[i];\n const layerIndex = mapLayers.indexOf(layerId);\n if (layerIndex !== lastLayerIndex - 1) {\n map.moveLayer(layerId, lastLayerId);\n if (layerIndex > lastLayerIndex) {\n // The last layer's index have changed\n lastLayerIndex++;\n }\n }\n lastLayerIndex--;\n lastLayerId = layerId;\n }\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { getDeckInstance, addLayer, removeLayer, updateLayer, drawLayer } from \"./deck-utils.js\";\nexport default class MapboxLayer {\n /* eslint-disable no-this-before-super */\n constructor(props) {\n if (!props.id) {\n throw new Error('Layer must have an unique id');\n }\n this.id = props.id;\n this.type = 'custom';\n this.renderingMode = props.renderingMode || '3d';\n this.map = null;\n this.deck = null;\n this.props = props;\n }\n /* Mapbox custom layer methods */\n onAdd(map, gl) {\n this.map = map;\n this.deck = getDeckInstance({ map, gl, deck: this.props.deck });\n addLayer(this.deck, this);\n }\n onRemove() {\n if (this.deck) {\n removeLayer(this.deck, this);\n }\n }\n setProps(props) {\n // id cannot be changed\n Object.assign(this.props, props, { id: this.id });\n // safe guard in case setProps is called before onAdd\n if (this.deck) {\n updateLayer(this.deck, this);\n }\n }\n render() {\n drawLayer(this.deck, this.map, this);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGA,IAAAA,eAA6B;;;ACA7B,kBAAwE;AACxE,0BAA6C;AAC7C,uBAAmB;AAEnB,IAAM,YAAY;AAClB,IAAM,qBAAqB,KAAK,KAAK;AAE9B,SAAS,gBAAgB,EAAE,KAAK,IAAI,KAAK,GAAG;AAE/C,MAAI,IAAI,QAAQ;AACZ,WAAO,IAAI;AAAA,EACf;AAEA,QAAM,eAAe,6BAAM,MAAM;AACjC,QAAM,SAAS,6BAAM,MAAM;AAC3B,QAAM,YAAY,oBAAoB;AAAA,IAClC,GAAG,6BAAM;AAAA,IACT,eAAe,MAAM;AACjB,UAAI,eAAe;AAKnB,mDAAe;AAAA,IACnB;AAAA,EACJ,CAAC;AACD,MAAI;AACJ,MAAI,CAAC,QAAQ,KAAK,MAAM,OAAO,IAAI;AAK/B,WAAO,OAAO,WAAW;AAAA,MACrB;AAAA,MACA,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,WAAW,aAAa,GAAG;AAAA,IAC/B,CAAC;AACD,QAAI,6BAAM,eAAe;AACrB,mBAAa,MAAM,GAAG;AAAA,IAC1B,OACK;AACD,gBAAU,SAAS,MAAM;AACrB;AACA,qBAAa,cAAc,GAAG;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AACA,MAAI,MAAM;AACN,mBAAe;AACf,SAAK,SAAS,SAAS;AACvB,SAAK,SAAS,aAAa;AAAA,EAC/B,OACK;AACD,mBAAe,IAAI,iBAAK,SAAS;AACjC,QAAI,GAAG,UAAU,MAAM;AACnB,yBAAmB,GAAG;AAAA,IAC1B,CAAC;AAAA,EACL;AACA,eAAa,SAAS,eAAe,oBAAI,IAAI;AAE7C,MAAI,SAAS;AACb,MAAI,GAAG,UAAU,MAAM;AACnB,QAAI,aAAa;AACb,kBAAY,cAAc,GAAG;AAAA,EACrC,CAAC;AACD,SAAO;AACX;AACA,SAAS,aAAa,MAAM,KAAK;AAC7B,QAAM,iBAAiB,MAAM;AACzB,QAAI,KAAK,eAAe;AAEpB,gBAAU,MAAM,GAAG;AAAA,IACvB,OACK;AAED,UAAI,IAAI,QAAQ,cAAc;AAAA,IAClC;AAAA,EACJ;AACA,MAAI,GAAG,QAAQ,cAAc;AACjC;AACO,SAAS,mBAAmB,KAAK;AArFxC;AAsFI,YAAI,WAAJ,mBAAY;AACZ,MAAI,SAAS;AACjB;AACO,SAAS,oBAAoB,WAAW;AAC3C,QAAM,YAAY;AAAA,IACd,GAAG;AAAA;AAAA,IAEH,YAAY;AAAA,MACR,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,WAAW,CAAC,KAAK,KAAK,GAAG,GAAG;AAAA,MAC5B,mBAAmB;AAAA,MACnB,WAAW;AAAA,MACX,eAAe;AAAA,MACf,GAAG,UAAU;AAAA,IACjB;AAAA;AAAA,IAEA,OAAO,UAAU,SAAS,CAAC,IAAI,oBAAQ,EAAE,IAAI,SAAS,CAAC,CAAC;AAAA,EAC5D;AACA,SAAO;AACX;AACO,SAAS,SAAS,MAAM,OAAO;AAClC,OAAK,SAAS,aAAa,IAAI,KAAK;AACpC,eAAa,IAAI;AACrB;AACO,SAAS,YAAY,MAAM,OAAO;AACrC,OAAK,SAAS,aAAa,OAAO,KAAK;AACvC,eAAa,IAAI;AACrB;AACO,SAAS,YAAY,MAAM,OAAO;AACrC,eAAa,IAAI;AACrB;AACO,SAAS,UAAU,MAAM,KAAK,OAAO;AACxC,MAAI,EAAE,gBAAgB,IAAI,KAAK;AAC/B,MAAI,aAAa;AACjB,MAAI,CAAC,iBAAiB;AAGlB,sBAAkB,YAAY,MAAM,KAAK,IAAI;AAC7C,SAAK,SAAS,kBAAkB;AAChC,iBAAa;AAAA,EACjB;AACA,MAAI,CAAC,KAAK,eAAe;AACrB;AAAA,EACJ;AACA,OAAK,YAAY,kBAAkB;AAAA,IAC/B,WAAW,CAAC,eAAe;AAAA,IAC3B,aAAa,CAAC,EAAE,OAAO,UAAU,MAAM,MAAM,OAAO,UAAU,MAAM,UAAU,MAAM,UAAU,SAAS,SAAS;AAAA,IAChH;AAAA,IACA,aAAa;AAAA,EACjB,CAAC;AACL;AACO,SAAS,aAAa,KAAK;AA3IlC;AA4II,QAAM,EAAE,KAAK,IAAI,IAAI,IAAI,UAAU;AACnC,QAAM,YAAY;AAAA;AAAA;AAAA,IAGd,YAAa,MAAM,OAAO,MAAO;AAAA,IACjC,UAAU;AAAA,IACV,MAAM,IAAI,QAAQ;AAAA,IAClB,SAAS,IAAI,WAAW;AAAA,IACxB,OAAO,IAAI,SAAS;AAAA,IACpB,SAAS,IAAI,WAAW;AAAA,IACxB,QAAQ,IAAI,qBAAqB;AAAA,EACrC;AACA,OAAI,SAAI,eAAJ,8BAAoB;AAEpB,0BAAsB,KAAK,SAAS;AAAA,EACxC;AACA,SAAO;AACX;AACA,SAAS,sBAAsB,KAAK,WAAW;AAC3C,MAAI,IAAI,sBAAsB;AAE1B,UAAM,EAAE,SAAS,IAAI,IAAI,qBAAqB;AAC9C,QAAI,CAAC,YAAY,SAAS,MAAM,QAAW;AACvC;AAAA,IACJ;AAEA,UAAM,SAAS,IAAI,UAAU;AAC7B,UAAM,EAAE,WAAW,UAAU,MAAM,IAAI;AAEvC,UAAM,UAAU,SAAS,IAAI;AAC7B,UAAM,WAAW,IAAI,SAAS,KAAK;AACnC,UAAM,UAAU,SAAS,IAAI;AAE7B,UAAM,aAAS,mCAAc,CAAC,WAAW,QAAQ,CAAC;AAClD,UAAM,KAAK,UAAU,OAAO,CAAC;AAC7B,UAAM,KAAK,UAAU,OAAO,CAAC;AAC7B,UAAM,+BAA+B,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAChE,UAAM,eAAe,QAAQ;AAC7B,UAAM,iBAAiB,MAAM;AAC7B,UAAM,QAAQ,eAAe;AAAA;AAAA,MAEpB,iBAAiB,KAAK,IAAI,YAAY,IAAK;AAAA,QAC7C,iBAAiB,KAAK,IAAI,YAAY,IAAK;AAClD,cAAU,OAAO,KAAK,KAAK,KAAK;AAChC,UAAM,qBAAsB,iBAAiB,KAAK,IAAI,YAAY,IAAK;AACvE,UAAM,mBAAmB,UAAU;AACnC,cAAU,WAAW,CAAC,GAAG,GAAG,uBAAmB,mCAAc,QAAQ,CAAC;AAAA,EAC1E,WAES,OAAO,IAAI,UAAU,cAAc,UAAU;AAGlD,cAAU,WAAW,CAAC,GAAG,GAAG,IAAI,UAAU,SAAS;AAAA,EACvD;AACJ;AAYA,SAAS,YAAY,MAAM,KAAK,sBAAsB,MAAM;AACxD,SAAO,IAAI,gCAAoB;AAAA,IAC3B,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO,KAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,IACb,GAAG,aAAa,GAAG;AAAA,IACnB,iBAAiB;AAAA;AAAA,MAET;AAAA;AAAA;AAAA,MAEA;AAAA;AAAA,IACR,OAAO,IAAI,UAAU,SAAS,IAAI,UAAU;AAAA,IAC5C,MAAM,IAAI,UAAU,QAAQ,IAAI,UAAU;AAAA,EAC9C,CAAC;AACL;AACA,SAAS,YAAY,MAAM,KAAK;AAC5B,QAAM,EAAE,cAAc,WAAW,IAAI,KAAK;AAC1C,MAAI,YAAY;AAEZ,UAAM,iBAAiB,MAAM,KAAK,cAAc,WAAS,MAAM,EAAE;AACjE,UAAM,iBAAa,YAAAC,UAAQ,KAAK,MAAM,QAAQ,OAAO;AACrD,UAAM,qBAAqB,WAAW,KAAK,WAAS,SAAS,CAAC,eAAe,SAAS,MAAM,EAAE,CAAC;AAC/F,QAAI,YAAY,KAAK,aAAa;AAClC,UAAM,oBAAoB,UAAU,UAAU,QAAM,GAAG,OAAO,QAAQ;AACtE,UAAM,oBAAoB,UAAU,SAAS,KAAK,oBAAoB;AACtE,QAAI,sBAAsB,mBAAmB;AACzC,UAAI,qBAAqB,GAAG;AACxB,oBAAY,UAAU,MAAM;AAC5B,kBAAU,iBAAiB,IAAI,YAAY,MAAM,KAAK,KAAK;AAAA,MAC/D;AACA,WAAK,YAAY,kBAAkB;AAAA,QAC/B;AAAA,QACA,aAAa,aAAW,CAAC,KAAK,MAAM,eAAe,KAAK,MAAM,YAAY,MAAM,OAC3E,OAAO,SAAS,OAAO,YAAY,CAAC,eAAe,SAAS,OAAO,MAAM,EAAE;AAAA,QAChF,aAAa;AAAA,MACjB,CAAC;AAAA,IACL;AAAA,EACJ;AAEA,OAAK,SAAS,kBAAkB;AACpC;AACA,SAAS,UAAU,MAAM,KAAK;AAC1B,OAAK,SAAS;AAAA,IACV,WAAW,aAAa,GAAG;AAAA,EAC/B,CAAC;AAID,OAAK,YAAY,EAAE,kBAAkB,KAAK,CAAC;AAC/C;AACA,SAAS,aAAa,MAAM;AACxB,MAAI,KAAK,SAAS,YAAY;AAC1B;AAAA,EACJ;AACA,QAAM,SAAS,CAAC;AAChB,OAAK,SAAS,aAAa,QAAQ,eAAa;AAC5C,UAAM,YAAY,UAAU,MAAM;AAClC,UAAM,QAAQ,IAAI,UAAU,UAAU,KAAK;AAC3C,WAAO,KAAK,KAAK;AAAA,EACrB,CAAC;AACD,OAAK,SAAS,EAAE,OAAO,CAAC;AAC5B;;;ADxQA,IAAAC,eAAoB;;;AEFpB,IAAAC,eAAoC;;;ACCpC,IAAqB,cAArB,MAAiC;AAAA;AAAA,EAE7B,YAAY,OAAO;AACf,QAAI,CAAC,MAAM,IAAI;AACX,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AACA,SAAK,KAAK,MAAM;AAChB,SAAK,OAAO;AACZ,SAAK,gBAAgB,MAAM,iBAAiB;AAC5C,SAAK,MAAM;AACX,SAAK,OAAO;AACZ,SAAK,QAAQ;AAAA,EACjB;AAAA;AAAA,EAEA,MAAM,KAAK,IAAI;AACX,SAAK,MAAM;AACX,SAAK,OAAO,gBAAgB,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,KAAK,CAAC;AAC9D,aAAS,KAAK,MAAM,IAAI;AAAA,EAC5B;AAAA,EACA,WAAW;AACP,QAAI,KAAK,MAAM;AACX,kBAAY,KAAK,MAAM,IAAI;AAAA,IAC/B;AAAA,EACJ;AAAA,EACA,SAAS,OAAO;AAEZ,WAAO,OAAO,KAAK,OAAO,OAAO,EAAE,IAAI,KAAK,GAAG,CAAC;AAEhD,QAAI,KAAK,MAAM;AACX,kBAAY,KAAK,MAAM,IAAI;AAAA,IAC/B;AAAA,EACJ;AAAA,EACA,SAAS;AACL,cAAU,KAAK,MAAM,KAAK,KAAK,IAAI;AAAA,EACvC;AACJ;;;ADlCA,IAAM,sBAAsB;AAGrB,SAAS,cAAc,KAAK,MAAM,WAAW,WAAW;AAG3D,MAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,IAAI,MAAM,SAAS;AACnD;AAAA,EACJ;AACA,QAAM,aAAS,aAAAC,UAAQ,WAAW,OAAO;AACzC,MAAI,cAAc,WAAW;AAEzB,UAAM,iBAAa,aAAAA,UAAQ,WAAW,OAAO;AAC7C,UAAM,eAAe,IAAI,IAAI,WAAW,IAAI,OAAK,EAAE,EAAE,CAAC;AACtD,eAAW,SAAS,QAAQ;AACxB,mBAAa,OAAO,MAAM,EAAE;AAAA,IAChC;AACA,eAAW,MAAM,cAAc;AAC3B,UAAI,IAAI,SAAS,EAAE,GAAG;AAClB,YAAI,YAAY,EAAE;AAAA,MACtB;AAAA,IACJ;AAAA,EACJ;AAEA,aAAW,SAAS,QAAQ;AACxB,UAAM,cAAc,IAAI,SAAS,MAAM,EAAE;AACzC,QAAI,aAAa;AAGb,YAAM,gBAAgB,YAAY,kBAAkB;AACpD,oBAAc,SAAS,MAAM,KAAK;AAAA,IACtC,OACK;AACD,UAAI;AAAA,QAAS,IAAI,YAAY,EAAE,IAAI,MAAM,IAAI,KAAK,CAAC;AAAA;AAAA,QAEnD,MAAM,MAAM;AAAA,MAAQ;AAAA,IACxB;AAAA,EACJ;AAMA,QAAM,YAAY,IAAI,MAAM;AAE5B,QAAM,cAAc,CAAC;AACrB,aAAW,SAAS,QAAQ;AAExB,QAAI,EAAE,SAAS,IAAI,MAAM;AACzB,QAAI,CAAC,YAAY,CAAC,UAAU,SAAS,QAAQ,GAAG;AAC5C,iBAAW;AAAA,IACf;AACA,gBAAY,QAAQ,IAAI,YAAY,QAAQ,KAAK,CAAC;AAClD,gBAAY,QAAQ,EAAE,KAAK,MAAM,EAAE;AAAA,EACvC;AACA,aAAW,YAAY,aAAa;AAChC,UAAM,aAAa,YAAY,QAAQ;AACvC,QAAI,iBAAiB,aAAa,sBAAsB,UAAU,SAAS,UAAU,QAAQ,QAAQ;AACrG,QAAI,cAAc,aAAa,sBAAsB,SAAY;AACjE,aAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;AAC7C,YAAM,UAAU,WAAW,CAAC;AAC5B,YAAM,aAAa,UAAU,QAAQ,OAAO;AAC5C,UAAI,eAAe,iBAAiB,GAAG;AACnC,YAAI,UAAU,SAAS,WAAW;AAClC,YAAI,aAAa,gBAAgB;AAE7B;AAAA,QACJ;AAAA,MACJ;AACA;AACA,oBAAc;AAAA,IAClB;AAAA,EACJ;AACJ;;;AFnEA,IAAqB,gBAArB,MAAmC;AAAA,EAC/B,YAAY,OAAO;AACf,SAAK,qBAAqB,MAAM;AAC5B,oBAAc,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,QAAQ,KAAK,OAAO,MAAM;AAAA,IAC/E;AACA,SAAK,uBAAuB,MAAM;AAC9B,UAAI,KAAK,QAAQ,KAAK,YAAY;AAC9B,cAAM,EAAE,aAAa,aAAa,IAAI,KAAK,KAAK,aAAa;AAC7D,eAAO,OAAO,KAAK,WAAW,OAAO;AAAA,UACjC,OAAO,GAAG;AAAA,UACV,QAAQ,GAAG;AAAA,QACf,CAAC;AAAA,MACL;AAAA,IACJ;AACA,SAAK,mBAAmB,MAAM;AAC1B,YAAM,OAAO,KAAK;AAClB,UAAI,MAAM;AAEN,aAAK,SAAS,EAAE,WAAW,aAAa,KAAK,IAAI,EAAE,CAAC;AAEpD,YAAI,KAAK,eAAe;AACpB,eAAK,OAAO;AAAA,QAChB;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,oBAAoB,CAAC,UAAU;AAChC,YAAM,OAAO,KAAK;AAClB,UAAI,CAAC,QAAQ,CAAC,KAAK,eAAe;AAC9B;AAAA,MACJ;AACA,YAAM,YAAY;AAAA,QACd,MAAM,MAAM;AAAA,QACZ,cAAc,MAAM;AAAA,QACpB,UAAU;AAAA,MACd;AACA,YAAM,WAAW,KAAK;AACtB,UAAI,CAAC,MAAM,SAAS,UAAU;AAE1B,kBAAU,SAAS,MAAM,cAAc,UAAU,SAAS;AAC1D,kBAAU,SAAS,MAAM,cAAc,UAAU,SAAS;AAC1D,kBAAU,eAAe;AAAA,UACrB,GAAG,SAAS,IAAI,UAAU;AAAA,UAC1B,GAAG,SAAS,IAAI,UAAU;AAAA,QAC9B;AAAA,MACJ;AACA,cAAQ,UAAU,MAAM;AAAA,QACpB,KAAK;AACD,eAAK,eAAe,SAAS;AAC7B,eAAK,sBAAsB;AAAA,YACvB,GAAG,MAAM;AAAA,YACT,SAAS,MAAM,cAAc;AAAA,YAC7B,SAAS,MAAM,cAAc;AAAA,UACjC;AACA;AAAA,QACJ,KAAK;AACD,oBAAU,OAAO;AACjB,eAAK,SAAS,SAAS;AACvB;AAAA,QACJ,KAAK;AACD,oBAAU,OAAO;AACjB,eAAK,SAAS,SAAS;AACvB;AAAA,QACJ,KAAK;AACD,oBAAU,OAAO;AACjB,eAAK,SAAS,SAAS;AACvB;AAAA,QACJ,KAAK;AACD,oBAAU,WAAW;AACrB,eAAK,SAAS,SAAS;AACvB;AAAA,QACJ,KAAK;AACD,oBAAU,OAAO;AACjB,oBAAU,WAAW;AACrB,eAAK,SAAS,SAAS;AACvB;AAAA,QACJ,KAAK;AACD,oBAAU,OAAO;AACjB,eAAK,eAAe,SAAS;AAC7B;AAAA,QACJ,KAAK;AACD,oBAAU,OAAO;AACjB,eAAK,eAAe,SAAS;AAC7B;AAAA,QACJ;AACI;AAAA,MACR;AAAA,IACJ;AACA,UAAM,EAAE,cAAc,OAAO,GAAG,WAAW,IAAI;AAC/C,SAAK,eAAe;AACpB,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA,EAEA,SAAS,OAAO;AACZ,QAAI,KAAK,gBAAgB,MAAM,QAAQ;AACnC,oBAAc,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,QAAQ,MAAM,MAAM;AAAA,IACzE;AACA,WAAO,OAAO,KAAK,QAAQ,KAAK;AAChC,QAAI,KAAK,OAAO;AACZ,WAAK,MAAM,SAAS,KAAK,eAAe,oBAAoB,KAAK,MAAM,IAAI,KAAK,MAAM;AAAA,IAC1F;AAAA,EACJ;AAAA;AAAA,EAEA,MAAM,KAAK;AACP,SAAK,OAAO;AACZ,WAAO,KAAK,eAAe,KAAK,kBAAkB,GAAG,IAAI,KAAK,eAAe,GAAG;AAAA,EACpF;AAAA,EACA,eAAe,KAAK;AAEhB,UAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,WAAO,OAAO,UAAU,OAAO;AAAA,MAC3B,UAAU;AAAA,MACV,MAAM;AAAA,MACN,KAAK;AAAA,MACL,WAAW;AAAA,MACX,eAAe;AAAA,IACnB,CAAC;AACD,SAAK,aAAa;AAClB,SAAK,QAAQ,IAAI,kBAAK;AAAA,MAClB,GAAG,KAAK;AAAA,MACR,QAAQ;AAAA,MACR,WAAW,aAAa,GAAG;AAAA,IAC/B,CAAC;AACD,QAAI,GAAG,UAAU,KAAK,oBAAoB;AAC1C,QAAI,GAAG,UAAU,KAAK,gBAAgB;AACtC,QAAI,GAAG,aAAa,KAAK,iBAAiB;AAC1C,QAAI,GAAG,aAAa,KAAK,iBAAiB;AAC1C,QAAI,GAAG,QAAQ,KAAK,iBAAiB;AACrC,QAAI,GAAG,WAAW,KAAK,iBAAiB;AACxC,QAAI,GAAG,aAAa,KAAK,iBAAiB;AAC1C,QAAI,GAAG,YAAY,KAAK,iBAAiB;AACzC,QAAI,GAAG,SAAS,KAAK,iBAAiB;AACtC,QAAI,GAAG,YAAY,KAAK,iBAAiB;AACzC,SAAK,qBAAqB;AAC1B,WAAO;AAAA,EACX;AAAA,EACA,kBAAkB,KAAK;AAEnB,UAAM,KAAK,IAAI,QAAQ,QAAQ;AAC/B,QAAI,cAAc,uBAAuB;AACrC,uBAAI,KAAK,qGAAqG,EAAE;AAAA,IACpH;AACA,SAAK,QAAQ,gBAAgB;AAAA,MACzB;AAAA,MACA;AAAA,MACA,MAAM,IAAI,kBAAK;AAAA,QACX,GAAG,KAAK;AAAA,QACR;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AACD,QAAI,GAAG,aAAa,KAAK,kBAAkB;AAC3C,kBAAc,KAAK,KAAK,OAAO,CAAC,GAAG,KAAK,OAAO,MAAM;AACrD,WAAO,SAAS,cAAc,KAAK;AAAA,EACvC;AAAA;AAAA,EAEA,WAAW;AACP,UAAM,MAAM,KAAK;AACjB,QAAI,KAAK;AACL,UAAI,KAAK,cAAc;AACnB,aAAK,qBAAqB,GAAG;AAAA,MACjC,OACK;AACD,aAAK,kBAAkB,GAAG;AAAA,MAC9B;AAAA,IACJ;AACA,SAAK,QAAQ;AACb,SAAK,OAAO;AACZ,SAAK,aAAa;AAAA,EACtB;AAAA,EACA,kBAAkB,KAAK;AApL3B;AAqLQ,QAAI,IAAI,UAAU,KAAK,oBAAoB;AAC3C,QAAI,IAAI,UAAU,KAAK,gBAAgB;AACvC,QAAI,IAAI,aAAa,KAAK,iBAAiB;AAC3C,QAAI,IAAI,aAAa,KAAK,iBAAiB;AAC3C,QAAI,IAAI,QAAQ,KAAK,iBAAiB;AACtC,QAAI,IAAI,WAAW,KAAK,iBAAiB;AACzC,QAAI,IAAI,aAAa,KAAK,iBAAiB;AAC3C,QAAI,IAAI,YAAY,KAAK,iBAAiB;AAC1C,QAAI,IAAI,SAAS,KAAK,iBAAiB;AACvC,QAAI,IAAI,YAAY,KAAK,iBAAiB;AAC1C,eAAK,UAAL,mBAAY;AAAA,EAChB;AAAA,EACA,qBAAqB,KAAK;AACtB,QAAI,IAAI,aAAa,KAAK,kBAAkB;AAC5C,kBAAc,KAAK,KAAK,OAAO,KAAK,OAAO,QAAQ,CAAC,CAAC;AACrD,uBAAmB,GAAG;AAAA,EAC1B;AAAA,EACA,qBAAqB;AACjB,WAAO;AAAA,EACX;AAAA;AAAA,EAEA,WAAW,QAAQ;AACf,6BAAO,KAAK,KAAK;AACjB,WAAO,KAAK,MAAM,WAAW,MAAM;AAAA,EACvC;AAAA;AAAA,EAEA,oBAAoB,QAAQ;AACxB,6BAAO,KAAK,KAAK;AACjB,WAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,EAChD;AAAA;AAAA,EAEA,YAAY,QAAQ;AAChB,6BAAO,KAAK,KAAK;AACjB,WAAO,KAAK,MAAM,YAAY,MAAM;AAAA,EACxC;AAAA;AAAA,EAEA,WAAW;AACP,QAAI,KAAK,MAAM;AACX,WAAK,KAAK,cAAc,IAAI;AAAA,IAChC;AAAA,EACJ;AAAA;AAAA,EAEA,YAAY;AACR,QAAI,CAAC,KAAK,MAAM;AACZ,aAAO;AAAA,IACX;AACA,WAAO,KAAK,eAAe,KAAK,KAAK,UAAU,IAAI,KAAK,MAAM,UAAU;AAAA,EAC5E;AACJ;",
6
- "names": ["import_core", "flatten", "import_core", "import_core", "flatten"]
3
+ "sources": ["../src/index.ts", "../src/mapbox-overlay.ts", "../src/deck-utils.ts", "../src/resolve-layers.ts", "../src/mapbox-layer.ts"],
4
+ "sourcesContent": ["// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport {default as MapboxOverlay} from './mapbox-overlay';\n\nexport type {MapboxOverlayProps} from './mapbox-overlay';\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Deck, assert} from '@deck.gl/core';\nimport {\n getViewState,\n getDefaultView,\n getDeckInstance,\n removeDeckInstance,\n getDefaultParameters\n} from './deck-utils';\n\nimport type {Map, IControl, MapMouseEvent, ControlPosition} from './types';\nimport type {MjolnirGestureEvent, MjolnirPointerEvent} from 'mjolnir.js';\nimport type {DeckProps} from '@deck.gl/core';\nimport {log} 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<any>;\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 && this._map) {\n this._deck.setProps({\n ...this._props,\n parameters: {\n ...getDefaultParameters(this._map, this._interleaved),\n ...this._props.parameters\n }\n });\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 textAlign: 'initial',\n pointerEvents: 'none'\n });\n this._container = container;\n\n this._deck = new Deck<any>({\n ...this._props,\n parent: container,\n parameters: {...getDefaultParameters(map, false), ...this._props.parameters},\n views: this._props.views || getDefaultView(map),\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 // @ts-ignore non-public map property\n const gl = map.painter.context.gl;\n if (gl instanceof WebGLRenderingContext) {\n log.warn(\n 'Incompatible basemap library. See: https://deck.gl/docs/api-reference/mapbox/overview#compatibility'\n )();\n }\n this._deck = getDeckInstance({\n map,\n gl,\n deck: new Deck({\n ...this._props,\n 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 = 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 this._deck?.finalize();\n }\n\n private _onRemoveInterleaved(map: Map): void {\n map.off('styledata', this._handleStyleChange);\n resolveLayers(map, this._deck, this._props.layers, []);\n removeDeckInstance(map);\n }\n\n getDefaultPosition(): ControlPosition {\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 /** If interleaved: true, returns base map's canvas, otherwise forwards the Deck.getCanvas method. */\n getCanvas(): HTMLCanvasElement | null {\n if (!this._map) {\n return null;\n }\n return this._interleaved ? this._map.getCanvas() : this._deck!.getCanvas();\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 const map = this._map;\n if (deck && map) {\n deck.setProps({\n views: this._props.views || getDefaultView(map),\n viewState: getViewState(map)\n });\n // Redraw immediately if view state has changed\n if (deck.isInitialized) {\n deck.redraw();\n }\n }\n };\n\n // eslint-disable-next-line complexity\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 unknown as MjolnirPointerEvent);\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 unknown as MjolnirGestureEvent);\n break;\n\n case 'drag':\n mockEvent.type = 'panmove';\n deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);\n break;\n\n case 'dragend':\n mockEvent.type = 'panend';\n deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);\n break;\n\n case 'click':\n mockEvent.tapCount = 1;\n deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);\n break;\n\n case 'dblclick':\n mockEvent.type = 'click';\n mockEvent.tapCount = 2;\n deck._onEvent(mockEvent as unknown as MjolnirGestureEvent);\n break;\n\n case 'mousemove':\n mockEvent.type = 'pointermove';\n deck._onPointerMove(mockEvent as unknown as MjolnirPointerEvent);\n break;\n\n case 'mouseout':\n mockEvent.type = 'pointerleave';\n deck._onPointerMove(mockEvent as unknown as MjolnirPointerEvent);\n break;\n\n default:\n return;\n }\n };\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Deck, MapView, _GlobeView as GlobeView, _flatten as flatten} from '@deck.gl/core';\nimport type {Viewport, MapViewState, Layer} from '@deck.gl/core';\nimport type {Parameters} from '@luma.gl/core';\nimport type MapboxLayer from './mapbox-layer';\nimport type {Map} from './types';\n\nimport {lngLatToWorld, unitsPerMeter} from '@math.gl/web-mercator';\n\ntype UserData = {\n isExternal: boolean;\n currentViewport?: Viewport | null;\n mapboxLayers: Set<MapboxLayer<any>>;\n // mapboxVersion: {minor: number; major: number};\n};\n\n// Mercator constants\nconst TILE_SIZE = 512;\nconst DEGREES_TO_RADIANS = Math.PI / 180;\n\n// Create an interleaved deck instance.\nexport function getDeckInstance({\n map,\n gl,\n deck\n}: {\n map: Map & {__deck?: Deck<any> | null};\n gl: WebGL2RenderingContext;\n deck?: Deck<any>;\n}): Deck<any> {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n // Only initialize certain props once per context\n const customRender = deck?.props._customRender;\n const onLoad = deck?.props.onLoad;\n\n const deckProps = {\n ...deck?.props,\n _customRender: () => {\n map.triggerRepaint();\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n // Hack - do not pass a redraw reason here to prevent the React component from clearing the context\n // Rerender will be triggered by MapboxLayer's render()\n customRender?.('');\n }\n };\n deckProps.parameters = {...getDefaultParameters(map, true), ...deckProps.parameters};\n deckProps.views ||= getDefaultView(map);\n\n let deckInstance: Deck;\n\n if (!deck || deck.props.gl === gl) {\n // If deck isn't defined (Internal MapboxLayer use case),\n // or if deck is defined and is using the WebGLContext created by mapbox (MapboxOverlay and External MapboxLayer use case),\n // block deck from setting the canvas size, and use the map's viewState to drive deck.\n // Otherwise, we use deck's viewState to drive the map.\n Object.assign(deckProps, {\n gl,\n width: null,\n height: null,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n if (deck?.isInitialized) {\n watchMapMove(deck, map);\n } else {\n deckProps.onLoad = () => {\n onLoad?.();\n watchMapMove(deckInstance, map);\n };\n }\n }\n\n if (deck) {\n deckInstance = deck;\n deck.setProps(deckProps);\n (deck.userData as UserData).isExternal = true;\n } else {\n deckInstance = new Deck(deckProps);\n map.on('remove', () => {\n removeDeckInstance(map);\n });\n }\n\n (deckInstance.userData as UserData).mapboxLayers = new Set();\n // (deckInstance.userData as UserData).mapboxVersion = getMapboxVersion(map);\n map.__deck = deckInstance;\n map.on('render', () => {\n if (deckInstance.isInitialized) afterRender(deckInstance, map);\n });\n\n return deckInstance;\n}\n\nfunction watchMapMove(deck: Deck, map: Map & {__deck?: Deck | null}) {\n const _handleMapMove = () => {\n if (deck.isInitialized) {\n // call view state methods\n onMapMove(deck, map);\n } else {\n // deregister itself when deck is finalized\n map.off('move', _handleMapMove);\n }\n };\n map.on('move', _handleMapMove);\n}\n\nexport function removeDeckInstance(map: Map & {__deck?: Deck | null}) {\n map.__deck?.finalize();\n map.__deck = null;\n}\n\nexport function getDefaultParameters(map: Map, interleaved: boolean): Parameters {\n const result: Parameters = interleaved\n ? {\n depthWriteEnabled: true,\n depthCompare: 'less-equal',\n depthBias: 0,\n blend: true,\n blendColorSrcFactor: 'src-alpha',\n blendColorDstFactor: 'one-minus-src-alpha',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one-minus-src-alpha',\n blendColorOperation: 'add',\n blendAlphaOperation: 'add'\n }\n : {};\n if (getProjection(map) === 'globe') {\n result.cullMode = 'back';\n }\n return result;\n}\n\nexport function addLayer(deck: Deck, layer: MapboxLayer<any>): void {\n (deck.userData as UserData).mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck: Deck, layer: MapboxLayer<any>): void {\n (deck.userData as UserData).mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck: Deck, layer: MapboxLayer<any>): void {\n updateLayers(deck);\n}\n\nexport function drawLayer(\n deck: Deck,\n map: Map,\n layer: MapboxLayer<any>,\n renderParameters: any\n): void {\n let {currentViewport} = deck.userData as UserData;\n let clearStack: boolean = false;\n if (!currentViewport) {\n // This is the first layer drawn in this render cycle.\n // Generate viewport from the current map state.\n currentViewport = getViewport(deck, map, renderParameters);\n (deck.userData as UserData).currentViewport = currentViewport;\n clearStack = true;\n }\n\n if (!deck.isInitialized) {\n return;\n }\n\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) =>\n layer.id === deckLayer.id || deckLayer.props.operation.includes('terrain'),\n clearStack,\n clearCanvas: false\n });\n}\n\nfunction getProjection(map: Map): 'mercator' | 'globe' {\n const projection = map.getProjection?.();\n const type =\n // maplibre projection spec\n projection?.type ||\n // mapbox projection spec\n projection?.name;\n if (type === 'globe') {\n return 'globe';\n }\n if (type && type !== 'mercator') {\n throw new Error('Unsupported projection');\n }\n return 'mercator';\n}\n\nexport function getDefaultView(map: Map): GlobeView | MapView {\n if (getProjection(map) === 'globe') {\n return new GlobeView({id: 'mapbox'});\n }\n return new MapView({id: 'mapbox'});\n}\n\nexport function getViewState(map: Map): MapViewState & {\n repeat: boolean;\n padding: {\n left: number;\n right: number;\n top: number;\n bottom: number;\n };\n} {\n const {lng, lat} = map.getCenter();\n\n const viewState: MapViewState & {\n repeat: boolean;\n padding: {\n left: number;\n right: number;\n top: number;\n bottom: number;\n };\n } = {\n // Longitude returned by getCenter can be outside of [-180, 180] when zooming near the anti meridian\n // https://github.com/visgl/deck.gl/issues/6894\n longitude: ((lng + 540) % 360) - 180,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n padding: map.getPadding(),\n repeat: map.getRenderWorldCopies()\n };\n\n if (map.getTerrain?.()) {\n // When the base map has terrain, we need to target the camera at the terrain surface\n centerCameraOnTerrain(map, viewState);\n }\n\n return viewState;\n}\n\nfunction centerCameraOnTerrain(map: Map, viewState: MapViewState) {\n if (map.getFreeCameraOptions) {\n // mapbox-gl v2\n const {position} = map.getFreeCameraOptions();\n if (!position || position.z === undefined) {\n return;\n }\n\n // @ts-ignore transform is not typed\n const height = map.transform.height;\n const {longitude, latitude, pitch} = viewState;\n\n // Convert mapbox mercator coordinate to deck common space\n const cameraX = position.x * TILE_SIZE;\n const cameraY = (1 - position.y) * TILE_SIZE;\n const cameraZ = position.z * TILE_SIZE;\n\n // Mapbox manipulates zoom in terrain mode, see discussion here: https://github.com/mapbox/mapbox-gl-js/issues/12040\n const center = lngLatToWorld([longitude, latitude]);\n const dx = cameraX - center[0];\n const dy = cameraY - center[1];\n const cameraToCenterDistanceGround = Math.sqrt(dx * dx + dy * dy);\n\n const pitchRadians = pitch! * DEGREES_TO_RADIANS;\n const altitudePixels = 1.5 * height;\n const scale =\n pitchRadians < 0.001\n ? // Pitch angle too small to deduce the look at point, assume elevation is 0\n (altitudePixels * Math.cos(pitchRadians)) / cameraZ\n : (altitudePixels * Math.sin(pitchRadians)) / cameraToCenterDistanceGround;\n viewState.zoom = Math.log2(scale);\n\n const cameraZFromSurface = (altitudePixels * Math.cos(pitchRadians)) / scale;\n const surfaceElevation = cameraZ - cameraZFromSurface;\n viewState.position = [0, 0, surfaceElevation / unitsPerMeter(latitude)];\n }\n // @ts-ignore transform is not typed\n else if (typeof map.transform.elevation === 'number') {\n // maplibre-gl\n // @ts-ignore transform is not typed\n viewState.position = [0, 0, map.transform.elevation];\n }\n}\n\n// Since maplibre-gl@5\n// https://github.com/maplibre/maplibre-gl-js/blob/main/src/style/style_layer/custom_style_layer.ts\ntype MaplibreRenderParameters = {\n farZ: number;\n nearZ: number;\n fov: number;\n modelViewProjectionMatrix: number[];\n projectionMatrix: number[];\n};\n\nfunction getViewport(deck: Deck, map: Map, renderParameters?: unknown): Viewport {\n const viewState = getViewState(map);\n const view = getDefaultView(map);\n\n if (renderParameters) {\n // Called from MapboxLayer.render\n // Magic number, matches mapbox-gl@>=1.3.0's projection matrix\n view.props.nearZMultiplier = 0.2;\n }\n\n // Get the base map near/far plane\n // renderParameters is maplibre API but not mapbox\n // Transform is not an official API, properties could be undefined for older versions\n const nearZ = (renderParameters as MaplibreRenderParameters)?.nearZ ?? map.transform._nearZ;\n const farZ = (renderParameters as MaplibreRenderParameters)?.farZ ?? map.transform._farZ;\n if (Number.isFinite(nearZ)) {\n viewState.nearZ = nearZ / map.transform.height;\n viewState.farZ = farZ / map.transform.height;\n }\n // Otherwise fallback to default calculation using nearZMultiplier/farZMultiplier\n\n return view.makeViewport({\n width: deck.width,\n height: deck.height,\n viewState\n }) as Viewport;\n}\n\nfunction afterRender(deck: Deck, map: Map): void {\n const {mapboxLayers, isExternal} = deck.userData as UserData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const deckLayers = flatten(deck.props.layers, Boolean) as Layer[];\n const hasNonMapboxLayers = deckLayers.some(\n layer => layer && !mapboxLayerIds.includes(layer.id)\n );\n let viewports = deck.getViewports();\n const mapboxViewportIdx = viewports.findIndex(vp => vp.id === 'mapbox');\n const hasNonMapboxViews = viewports.length > 1 || mapboxViewportIdx < 0;\n\n if (hasNonMapboxLayers || hasNonMapboxViews) {\n if (mapboxViewportIdx >= 0) {\n viewports = viewports.slice();\n viewports[mapboxViewportIdx] = getViewport(deck, map);\n }\n\n deck._drawLayers('mapbox-repaint', {\n viewports,\n layerFilter: params =>\n (!deck.props.layerFilter || deck.props.layerFilter(params)) &&\n (params.viewport.id !== 'mapbox' || !mapboxLayerIds.includes(params.layer.id)),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n (deck.userData as UserData).currentViewport = null;\n}\n\nfunction onMapMove(deck: Deck, map: Map): void {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck: Deck): void {\n if ((deck.userData as UserData).isExternal) {\n return;\n }\n\n const layers: Layer[] = [];\n (deck.userData as UserData).mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props);\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {_flatten as flatten} from '@deck.gl/core';\nimport MapboxLayer from './mapbox-layer';\n\nimport type {Deck, LayersList, Layer} from '@deck.gl/core';\nimport type {Map} from './types';\n\nconst UNDEFINED_BEFORE_ID = '__UNDEFINED__';\n\n/** Insert Deck layers into the mapbox Map according to the user-defined order */\n// eslint-disable-next-line complexity, max-statements\nexport function resolveLayers(\n map?: Map,\n deck?: Deck,\n oldLayers?: LayersList,\n newLayers?: LayersList\n) {\n // Wait until map style is loaded\n // @ts-ignore non-public map property\n if (!map || !deck || !map.style || !map.style._loaded) {\n return;\n }\n\n const layers = flatten(newLayers, Boolean) as Layer[];\n\n if (oldLayers !== newLayers) {\n // Step 1: remove layers that no longer exist\n const prevLayers = flatten(oldLayers, Boolean) as Layer[];\n const prevLayerIds = new Set<string>(prevLayers.map(l => l.id));\n\n for (const layer of layers) {\n prevLayerIds.delete(layer.id);\n }\n\n for (const id of prevLayerIds) {\n if (map.getLayer(id)) {\n map.removeLayer(id);\n }\n }\n }\n\n // Step 2: add missing layers\n for (const layer of layers) {\n const mapboxLayer = map.getLayer(layer.id) as MapboxLayer<Layer>;\n if (mapboxLayer) {\n // Mapbox's map.getLayer() had a breaking change in v3.6.0, see https://github.com/visgl/deck.gl/issues/9086\n // @ts-expect-error not typed\n const layerInstance = mapboxLayer.implementation || mapboxLayer;\n layerInstance.setProps(layer.props);\n } else {\n map.addLayer(\n new MapboxLayer({id: layer.id, deck}),\n // @ts-expect-error beforeId is not defined in LayerProps\n layer.props.beforeId\n );\n }\n }\n\n // Step 3: check the order of layers\n // If beforeId is defined, the deck layer should always render before the mapbox layer [beforeId]\n // If beforeId is not defined, the deck layer should appear after all mapbox layers\n // When two deck layers share the same beforeId, they are rendered in the order that is passed into Deck props.layers\n // @ts-ignore non-public map property\n const mapLayers: string[] = map.style._order;\n\n // Group deck layers by beforeId\n const layerGroups: Record<string, string[]> = {};\n for (const layer of layers) {\n // @ts-expect-error beforeId is not defined in LayerProps\n let {beforeId} = layer.props;\n if (!beforeId || !mapLayers.includes(beforeId)) {\n beforeId = UNDEFINED_BEFORE_ID;\n }\n layerGroups[beforeId] = layerGroups[beforeId] || [];\n layerGroups[beforeId].push(layer.id);\n }\n\n for (const beforeId in layerGroups) {\n const layerGroup = layerGroups[beforeId];\n let lastLayerIndex =\n beforeId === UNDEFINED_BEFORE_ID ? mapLayers.length : mapLayers.indexOf(beforeId);\n let lastLayerId = beforeId === UNDEFINED_BEFORE_ID ? undefined : beforeId;\n for (let i = layerGroup.length - 1; i >= 0; i--) {\n const layerId = layerGroup[i];\n const layerIndex = mapLayers.indexOf(layerId);\n if (layerIndex !== lastLayerIndex - 1) {\n map.moveLayer(layerId, lastLayerId);\n if (layerIndex > lastLayerIndex) {\n // The last layer's index have changed\n lastLayerIndex++;\n }\n }\n lastLayerIndex--;\n lastLayerId = layerId;\n }\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {getDeckInstance, addLayer, removeLayer, updateLayer, drawLayer} from './deck-utils';\nimport type {Map, CustomLayerInterface} from './types';\nimport type {Deck, Layer} from '@deck.gl/core';\n\nexport type MapboxLayerProps<LayerT extends Layer> = Partial<LayerT['props']> & {\n id: string;\n renderingMode?: '2d' | '3d';\n deck?: Deck;\n};\n\nexport default class MapboxLayer<LayerT extends Layer> implements CustomLayerInterface {\n id: string;\n type: 'custom';\n renderingMode: '2d' | '3d';\n map: Map | null;\n deck: Deck | null;\n props: MapboxLayerProps<LayerT>;\n\n /* eslint-disable no-this-before-super */\n constructor(props: MapboxLayerProps<LayerT>) {\n if (!props.id) {\n throw new Error('Layer must have an unique id');\n }\n\n this.id = props.id;\n this.type = 'custom';\n this.renderingMode = props.renderingMode || '3d';\n this.map = null;\n this.deck = null;\n this.props = props;\n }\n\n /* Mapbox custom layer methods */\n\n onAdd(map: Map, gl: WebGL2RenderingContext): void {\n this.map = map;\n this.deck = getDeckInstance({map, gl, deck: this.props.deck});\n addLayer(this.deck, this);\n }\n\n onRemove(): void {\n if (this.deck) {\n removeLayer(this.deck, this);\n }\n }\n\n setProps(props: MapboxLayerProps<LayerT>) {\n // id cannot be changed\n Object.assign(this.props, props, {id: this.id});\n // safe guard in case setProps is called before onAdd\n if (this.deck) {\n updateLayer(this.deck, this);\n }\n }\n\n render(gl, renderParameters) {\n drawLayer(this.deck!, this.map!, this, renderParameters);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_core", "GlobeView", "flatten", "import_core", "import_core", "flatten"]
7
7
  }
package/dist/index.js CHANGED
@@ -2,3 +2,4 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  export { default as MapboxOverlay } from "./mapbox-overlay.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,4BAAyB"}
@@ -1,4 +1,4 @@
1
- import type { Map, CustomLayerInterface } from 'mapbox-gl';
1
+ import type { Map, CustomLayerInterface } from "./types.js";
2
2
  import type { Deck, Layer } from '@deck.gl/core';
3
3
  export type MapboxLayerProps<LayerT extends Layer> = Partial<LayerT['props']> & {
4
4
  id: string;
@@ -16,6 +16,6 @@ export default class MapboxLayer<LayerT extends Layer> implements CustomLayerInt
16
16
  onAdd(map: Map, gl: WebGL2RenderingContext): void;
17
17
  onRemove(): void;
18
18
  setProps(props: MapboxLayerProps<LayerT>): void;
19
- render(): void;
19
+ render(gl: any, renderParameters: any): void;
20
20
  }
21
21
  //# sourceMappingURL=mapbox-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapbox-layer.d.ts","sourceRoot":"","sources":["../src/mapbox-layer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,GAAG,EAAE,oBAAoB,EAAC,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,WAAW,CAAC,MAAM,SAAS,KAAK,CAAE,YAAW,oBAAoB;IACpF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAChB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAGpB,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAe3C,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,sBAAsB,GAAG,IAAI;IAMjD,QAAQ,IAAI,IAAI;IAMhB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC;IASxC,MAAM;CAGP"}
1
+ {"version":3,"file":"mapbox-layer.d.ts","sourceRoot":"","sources":["../src/mapbox-layer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,GAAG,EAAE,oBAAoB,EAAC,mBAAgB;AACvD,OAAO,KAAK,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,WAAW,CAAC,MAAM,SAAS,KAAK,CAAE,YAAW,oBAAoB;IACpF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAChB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAGpB,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAe3C,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,sBAAsB,GAAG,IAAI;IAMjD,QAAQ,IAAI,IAAI;IAMhB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC;IASxC,MAAM,CAAC,EAAE,KAAA,EAAE,gBAAgB,KAAA;CAG5B"}
@@ -34,7 +34,8 @@ export default class MapboxLayer {
34
34
  updateLayer(this.deck, this);
35
35
  }
36
36
  }
37
- render() {
38
- drawLayer(this.deck, this.map, this);
37
+ render(gl, renderParameters) {
38
+ drawLayer(this.deck, this.map, this, renderParameters);
39
39
  }
40
40
  }
41
+ //# sourceMappingURL=mapbox-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapbox-layer.js","sourceRoot":"","sources":["../src/mapbox-layer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAC,wBAAqB;AAU5F,MAAM,CAAC,OAAO,OAAO,WAAW;IAQ9B,yCAAyC;IACzC,YAAY,KAA+B;QACzC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,iCAAiC;IAEjC,KAAK,CAAC,GAAQ,EAAE,EAA0B;QACxC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,EAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAA+B;QACtC,uBAAuB;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC;QAChD,qDAAqD;QACrD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAE,EAAE,gBAAgB;QACzB,SAAS,CAAC,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,GAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -1,10 +1,9 @@
1
1
  import { Deck } from '@deck.gl/core';
2
- import type { Map, IControl } from 'mapbox-gl';
2
+ import type { Map, IControl, ControlPosition } from "./types.js";
3
3
  import type { DeckProps } from '@deck.gl/core';
4
4
  export type MapboxOverlayProps = Omit<DeckProps, 'width' | 'height' | 'gl' | 'parent' | 'canvas' | '_customRender' | 'viewState' | 'initialViewState' | 'controller'> & {
5
5
  interleaved?: boolean;
6
6
  };
7
- type ControlPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
8
7
  /**
9
8
  * Implements Mapbox [IControl](https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol) interface
10
9
  * Renders deck.gl layers over the base map and automatically synchronizes with the map's camera
@@ -43,5 +42,4 @@ export default class MapboxOverlay implements IControl {
43
42
  private _updateViewState;
44
43
  private _handleMouseEvent;
45
44
  }
46
- export {};
47
45
  //# sourceMappingURL=mapbox-overlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapbox-overlay.d.ts","sourceRoot":"","sources":["../src/mapbox-overlay.ts"],"names":[],"mappings":"AAIA,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;AAK7C,MAAM,MAAM,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;AACF,KAAK,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAEjF;;;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;IAiCtB,OAAO,CAAC,iBAAiB;IAuBzB,oDAAoD;IACpD,QAAQ,IAAI,IAAI;IAgBhB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,oBAAoB;IAM5B,kBAAkB,IAAI,eAAe;IAIrC,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,qGAAqG;IACrG,SAAS,IAAI,iBAAiB,GAAG,IAAI;IAOrC,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,gBAAgB,CAUtB;IAGF,OAAO,CAAC,iBAAiB,CA+EvB;CACH"}
1
+ {"version":3,"file":"mapbox-overlay.d.ts","sourceRoot":"","sources":["../src/mapbox-overlay.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,IAAI,EAAS,MAAM,eAAe,CAAC;AAS3C,OAAO,KAAK,EAAC,GAAG,EAAE,QAAQ,EAAiB,eAAe,EAAC,mBAAgB;AAE3E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAK7C,MAAM,MAAM,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,CAAY;IAC1B,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;IAkBzC,gDAAgD;IAChD,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc;IAK/B,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,iBAAiB;IAuBzB,oDAAoD;IACpD,QAAQ,IAAI,IAAI;IAgBhB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,oBAAoB;IAM5B,kBAAkB,IAAI,eAAe;IAIrC,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,qGAAqG;IACrG,SAAS,IAAI,iBAAiB,GAAG,IAAI;IAOrC,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,gBAAgB,CAatB;IAGF,OAAO,CAAC,iBAAiB,CA+EvB;CACH"}
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { Deck, assert } from '@deck.gl/core';
5
- import { getViewState, getDeckInstance, removeDeckInstance, getInterleavedProps } from "./deck-utils.js";
5
+ import { getViewState, getDefaultView, getDeckInstance, removeDeckInstance, getDefaultParameters } from "./deck-utils.js";
6
6
  import { log } from '@deck.gl/core';
7
7
  import { resolveLayers } from "./resolve-layers.js";
8
8
  /**
@@ -25,9 +25,12 @@ export default class MapboxOverlay {
25
25
  };
26
26
  this._updateViewState = () => {
27
27
  const deck = this._deck;
28
- if (deck) {
29
- // @ts-ignore (2345) map is always defined if deck is
30
- deck.setProps({ viewState: getViewState(this._map) });
28
+ const map = this._map;
29
+ if (deck && map) {
30
+ deck.setProps({
31
+ views: this._props.views || getDefaultView(map),
32
+ viewState: getViewState(map)
33
+ });
31
34
  // Redraw immediately if view state has changed
32
35
  if (deck.isInitialized) {
33
36
  deck.redraw();
@@ -107,8 +110,14 @@ export default class MapboxOverlay {
107
110
  resolveLayers(this._map, this._deck, this._props.layers, props.layers);
108
111
  }
109
112
  Object.assign(this._props, props);
110
- if (this._deck) {
111
- this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);
113
+ if (this._deck && this._map) {
114
+ this._deck.setProps({
115
+ ...this._props,
116
+ parameters: {
117
+ ...getDefaultParameters(this._map, this._interleaved),
118
+ ...this._props.parameters
119
+ }
120
+ });
112
121
  }
113
122
  }
114
123
  /** Called when the control is added to a map */
@@ -130,6 +139,8 @@ export default class MapboxOverlay {
130
139
  this._deck = new Deck({
131
140
  ...this._props,
132
141
  parent: container,
142
+ parameters: { ...getDefaultParameters(map, false), ...this._props.parameters },
143
+ views: this._props.views || getDefaultView(map),
133
144
  viewState: getViewState(map)
134
145
  });
135
146
  map.on('resize', this._updateContainerSize);
@@ -228,3 +239,4 @@ export default class MapboxOverlay {
228
239
  return this._interleaved ? this._map.getCanvas() : this._deck.getCanvas();
229
240
  }
230
241
  }
242
+ //# sourceMappingURL=mapbox-overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapbox-overlay.js","sourceRoot":"","sources":["../src/mapbox-overlay.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Deck, LayersList } from '@deck.gl/core';
2
- import type { Map } from 'mapbox-gl';
2
+ import type { Map } from "./types.js";
3
3
  /** Insert Deck layers into the mapbox Map according to the user-defined order */
4
4
  export declare function resolveLayers(map?: Map, deck?: Deck, oldLayers?: LayersList, newLayers?: LayersList): void;
5
5
  //# sourceMappingURL=resolve-layers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-layers.d.ts","sourceRoot":"","sources":["../src/resolve-layers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,IAAI,EAAE,UAAU,EAAQ,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AAInC,iFAAiF;AAEjF,wBAAgB,aAAa,CAC3B,GAAG,CAAC,EAAE,GAAG,EACT,IAAI,CAAC,EAAE,IAAI,EACX,SAAS,CAAC,EAAE,UAAU,EACtB,SAAS,CAAC,EAAE,UAAU,QAiFvB"}
1
+ {"version":3,"file":"resolve-layers.d.ts","sourceRoot":"","sources":["../src/resolve-layers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,IAAI,EAAE,UAAU,EAAQ,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAC,GAAG,EAAC,mBAAgB;AAIjC,iFAAiF;AAEjF,wBAAgB,aAAa,CAC3B,GAAG,CAAC,EAAE,GAAG,EACT,IAAI,CAAC,EAAE,IAAI,EACX,SAAS,CAAC,EAAE,UAAU,EACtB,SAAS,CAAC,EAAE,UAAU,QAiFvB"}
@@ -77,3 +77,4 @@ export function resolveLayers(map, deck, oldLayers, newLayers) {
77
77
  }
78
78
  }
79
79
  }
80
+ //# sourceMappingURL=resolve-layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-layers.js","sourceRoot":"","sources":["../src/resolve-layers.ts"],"names":[],"mappings":"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"}