@deck.gl/mapbox 8.8.20 → 8.8.21
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 +667 -22
- package/dist/es5/deck-utils.js +32 -16
- package/dist/es5/deck-utils.js.map +1 -1
- package/dist/es5/mapbox-overlay.js +8 -4
- package/dist/es5/mapbox-overlay.js.map +1 -1
- package/dist/esm/deck-utils.js +23 -16
- package/dist/esm/deck-utils.js.map +1 -1
- package/dist/esm/mapbox-overlay.js +8 -4
- package/dist/esm/mapbox-overlay.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +2 -2
- package/src/deck-utils.ts +30 -15
- package/src/mapbox-overlay.ts +10 -5
- package/typed/deck-utils.d.ts +2 -1
- package/typed/deck-utils.d.ts.map +1 -1
- package/typed/deck-utils.js +185 -0
- package/typed/index.js +2 -0
- package/typed/mapbox-layer.js +37 -0
- package/typed/mapbox-overlay.d.ts.map +1 -1
- package/typed/mapbox-overlay.js +139 -0
package/dist/es5/deck-utils.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.getDeckInstance = getDeckInstance;
|
|
9
|
+
exports.getInterleavedProps = getInterleavedProps;
|
|
9
10
|
exports.addLayer = addLayer;
|
|
10
11
|
exports.removeLayer = removeLayer;
|
|
11
12
|
exports.updateLayer = updateLayer;
|
|
@@ -14,8 +15,14 @@ exports.getViewState = getViewState;
|
|
|
14
15
|
|
|
15
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
16
17
|
|
|
18
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
+
|
|
17
20
|
var _core = require("@deck.gl/core");
|
|
18
21
|
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
+
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
25
|
+
|
|
19
26
|
function getDeckInstance(_ref) {
|
|
20
27
|
var map = _ref.map,
|
|
21
28
|
gl = _ref.gl,
|
|
@@ -26,25 +33,12 @@ function getDeckInstance(_ref) {
|
|
|
26
33
|
}
|
|
27
34
|
|
|
28
35
|
var customRender = deck === null || deck === void 0 ? void 0 : deck.props._customRender;
|
|
29
|
-
var deckProps = {
|
|
30
|
-
useDevicePixels: true,
|
|
36
|
+
var deckProps = getInterleavedProps(_objectSpread(_objectSpread({}, deck === null || deck === void 0 ? void 0 : deck.props), {}, {
|
|
31
37
|
_customRender: function _customRender() {
|
|
32
38
|
map.triggerRepaint();
|
|
33
39
|
customRender === null || customRender === void 0 ? void 0 : customRender('');
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
depthMask: true,
|
|
37
|
-
depthTest: true,
|
|
38
|
-
blend: true,
|
|
39
|
-
blendFunc: [770, 771, 1, 771],
|
|
40
|
-
polygonOffsetFill: true,
|
|
41
|
-
depthFunc: 515,
|
|
42
|
-
blendEquation: 32774
|
|
43
|
-
},
|
|
44
|
-
views: deck && deck.props.views || [new _core.MapView({
|
|
45
|
-
id: 'mapbox'
|
|
46
|
-
})]
|
|
47
|
-
};
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
48
42
|
var deckInstance;
|
|
49
43
|
|
|
50
44
|
if (!deck || deck.props.gl === gl) {
|
|
@@ -81,6 +75,28 @@ function getDeckInstance(_ref) {
|
|
|
81
75
|
return deckInstance;
|
|
82
76
|
}
|
|
83
77
|
|
|
78
|
+
function getInterleavedProps(currProps) {
|
|
79
|
+
var useDevicePixels = 'useDevicePixels' in currProps ? currProps.useDevicePixels : true;
|
|
80
|
+
|
|
81
|
+
var nextProps = _objectSpread(_objectSpread({}, currProps), {}, {
|
|
82
|
+
useDevicePixels: useDevicePixels,
|
|
83
|
+
parameters: _objectSpread({
|
|
84
|
+
depthMask: true,
|
|
85
|
+
depthTest: true,
|
|
86
|
+
blend: true,
|
|
87
|
+
blendFunc: [770, 771, 1, 771],
|
|
88
|
+
polygonOffsetFill: true,
|
|
89
|
+
depthFunc: 515,
|
|
90
|
+
blendEquation: 32774
|
|
91
|
+
}, currProps.parameters),
|
|
92
|
+
views: currProps.views || [new _core.MapView({
|
|
93
|
+
id: 'mapbox'
|
|
94
|
+
})]
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
return nextProps;
|
|
98
|
+
}
|
|
99
|
+
|
|
84
100
|
function addLayer(deck, layer) {
|
|
85
101
|
deck.userData.mapboxLayers.add(layer);
|
|
86
102
|
updateLayers(deck);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/deck-utils.ts"],"names":["getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blend","blendFunc","polygonOffsetFill","depthFunc","blendEquation","views","MapView","id","deckInstance","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","setProps","userData","isExternal","Deck","finalize","mapboxLayers","Set","mapboxVersion","getMapboxVersion","isInitialized","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","clearStack","getViewport","_drawLayers","viewports","layerFilter","deckLayer","clearCanvas","getCenter","lng","lat","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","padding","getPadding","repeat","getRenderWorldCopies","major","minor","version","split","slice","Number","useMapboxProjection","WebMercatorViewport","x","y","nearZMultiplier","mapboxLayerIds","Array","from","deckLayers","layers","Boolean","hasNonMapboxLayers","some","includes","getViewports","mapboxViewportIdx","findIndex","vp","hasNonMapboxViews","length","params","viewport","needsRedraw","clearRedrawFlags","forEach","LayerType","type","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport, MapView, _flatten as flatten} from '@deck.gl/core';\nimport type {DeckProps, MapViewState, Layer} from '@deck.gl/core';\nimport type MapboxLayer from './mapbox-layer';\nimport type {Map} from 'mapbox-gl';\n\ntype UserData = {\n isExternal: boolean;\n currentViewport?: WebMercatorViewport | null;\n mapboxLayers: Set<MapboxLayer<any>>;\n mapboxVersion: {minor: number; major: number};\n};\n\nexport function getDeckInstance({\n map,\n gl,\n deck\n}: {\n map: Map & {__deck?: Deck | null};\n gl: WebGLRenderingContext;\n deck?: Deck;\n}): Deck {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck?.props._customRender;\n\n const deckProps: DeckProps = {\n useDevicePixels: true,\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 // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blend: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n polygonOffsetFill: true,\n depthFunc: gl.LEQUAL,\n blendEquation: gl.FUNC_ADD\n },\n views: (deck && deck.props.views) || [new MapView({id: 'mapbox'})]\n };\n\n let deckInstance: Deck;\n\n if (!deck || deck.props.gl === gl) {\n // deck is using the WebGLContext created by mapbox\n // block deck from setting the canvas size\n Object.assign(deckProps, {\n gl,\n width: null,\n height: null,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n // If using the WebGLContext created by deck (React use case), we use deck's viewState to drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deckInstance, map));\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 deckInstance.finalize();\n map.__deck = null;\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\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(deck: Deck, map: Map, layer: MapboxLayer<any>): 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, true);\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}) => layer.id === deckLayer.id,\n clearStack,\n clearCanvas: false\n });\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 return {\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\nfunction 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}\n\nfunction getViewport(deck: Deck, map: Map, useMapboxProjection = true): WebMercatorViewport {\n const {mapboxVersion} = deck.userData as UserData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n id: 'mapbox',\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height\n },\n getViewState(map),\n useMapboxProjection\n ? {\n // match mapbox's projection matrix\n // A change of near plane was made in 1.3.0\n // https://github.com/mapbox/mapbox-gl-js/pull/8502\n nearZMultiplier:\n (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2\n ? 0.02\n : 1 / (deck.height || 1)\n }\n : {\n // use deck.gl's own default\n nearZMultiplier: 0.1\n }\n )\n );\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, false);\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"],"file":"deck-utils.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/deck-utils.ts"],"names":["getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","getInterleavedProps","triggerRepaint","deckInstance","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","setProps","userData","isExternal","Deck","finalize","mapboxLayers","Set","mapboxVersion","getMapboxVersion","isInitialized","afterRender","currProps","useDevicePixels","nextProps","parameters","depthMask","depthTest","blend","blendFunc","polygonOffsetFill","depthFunc","blendEquation","views","MapView","id","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","clearStack","getViewport","_drawLayers","viewports","layerFilter","deckLayer","clearCanvas","getCenter","lng","lat","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","padding","getPadding","repeat","getRenderWorldCopies","major","minor","version","split","slice","Number","useMapboxProjection","WebMercatorViewport","x","y","nearZMultiplier","mapboxLayerIds","Array","from","deckLayers","layers","Boolean","hasNonMapboxLayers","some","includes","getViewports","mapboxViewportIdx","findIndex","vp","hasNonMapboxViews","length","params","viewport","needsRedraw","clearRedrawFlags","forEach","LayerType","type","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport, MapView, _flatten as flatten} from '@deck.gl/core';\nimport type {DeckProps, MapViewState, Layer} from '@deck.gl/core';\nimport type MapboxLayer from './mapbox-layer';\nimport type {Map} from 'mapbox-gl';\n\nimport GL from '@luma.gl/constants';\n\ntype UserData = {\n isExternal: boolean;\n currentViewport?: WebMercatorViewport | null;\n mapboxLayers: Set<MapboxLayer<any>>;\n mapboxVersion: {minor: number; major: number};\n};\n\nexport function getDeckInstance({\n map,\n gl,\n deck\n}: {\n map: Map & {__deck?: Deck | null};\n gl: WebGLRenderingContext;\n deck?: Deck;\n}): Deck {\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\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\n let deckInstance: Deck;\n\n if (!deck || deck.props.gl === gl) {\n // deck is using the WebGLContext created by mapbox\n // block deck from setting the canvas size\n Object.assign(deckProps, {\n gl,\n width: null,\n height: null,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n // If using the WebGLContext created by deck (React use case), we use deck's viewState to drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deckInstance, map));\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 deckInstance.finalize();\n map.__deck = null;\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\nexport function getInterleavedProps(currProps: DeckProps) {\n const useDevicePixels = 'useDevicePixels' in currProps ? currProps.useDevicePixels : true;\n\n const nextProps: DeckProps = {\n ...currProps,\n useDevicePixels,\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blend: true,\n blendFunc: [GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA, GL.ONE, GL.ONE_MINUS_SRC_ALPHA],\n polygonOffsetFill: true,\n depthFunc: GL.LEQUAL,\n blendEquation: GL.FUNC_ADD,\n ...currProps.parameters\n },\n views: currProps.views || [new MapView({id: 'mapbox'})]\n };\n\n return nextProps;\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(deck: Deck, map: Map, layer: MapboxLayer<any>): 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, true);\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}) => layer.id === deckLayer.id,\n clearStack,\n clearCanvas: false\n });\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 return {\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\nfunction 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}\n\nfunction getViewport(deck: Deck, map: Map, useMapboxProjection = true): WebMercatorViewport {\n const {mapboxVersion} = deck.userData as UserData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n id: 'mapbox',\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height\n },\n getViewState(map),\n useMapboxProjection\n ? {\n // match mapbox's projection matrix\n // A change of near plane was made in 1.3.0\n // https://github.com/mapbox/mapbox-gl-js/pull/8502\n nearZMultiplier:\n (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2\n ? 0.02\n : 1 / (deck.height || 1)\n }\n : {\n // use deck.gl's own default\n nearZMultiplier: 0.1\n }\n )\n );\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, false);\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"],"file":"deck-utils.js"}
|
|
@@ -128,7 +128,7 @@ var MapboxOverlay = function () {
|
|
|
128
128
|
Object.assign(this._props, props);
|
|
129
129
|
|
|
130
130
|
if (this._deck) {
|
|
131
|
-
this._deck.setProps(this._props);
|
|
131
|
+
this._deck.setProps(this._interleaved ? (0, _deckUtils.getInterleavedProps)(this._props) : this._props);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
}, {
|
|
@@ -166,9 +166,13 @@ var MapboxOverlay = function () {
|
|
|
166
166
|
}, {
|
|
167
167
|
key: "_onAddInterleaved",
|
|
168
168
|
value: function _onAddInterleaved(map) {
|
|
169
|
-
this._deck =
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
this._deck = (0, _deckUtils.getDeckInstance)({
|
|
170
|
+
map: map,
|
|
171
|
+
gl: map.painter.context.gl,
|
|
172
|
+
deck: new _core.Deck(_objectSpread(_objectSpread({}, this._props), {}, {
|
|
173
|
+
gl: map.painter.context.gl
|
|
174
|
+
}))
|
|
175
|
+
});
|
|
172
176
|
map.on('styledata', this._handleStyleChange);
|
|
173
177
|
(0, _resolveLayers.resolveLayers)(map, this._deck, [], this._props.layers);
|
|
174
178
|
return document.createElement('div');
|
|
@@ -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} 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\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(\n props: MapboxOverlayProps & {\n interleaved?: boolean;\n }\n ) {\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._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 = new Deck({\n ...this._props,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl\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","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\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(\n props: MapboxOverlayProps & {\n interleaved?: boolean;\n }\n ) {\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"}
|
package/dist/esm/deck-utils.js
CHANGED
|
@@ -9,25 +9,12 @@ export function getDeckInstance({
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
const customRender = deck === null || deck === void 0 ? void 0 : deck.props._customRender;
|
|
12
|
-
const deckProps = {
|
|
13
|
-
useDevicePixels: true,
|
|
12
|
+
const deckProps = getInterleavedProps({ ...(deck === null || deck === void 0 ? void 0 : deck.props),
|
|
14
13
|
_customRender: () => {
|
|
15
14
|
map.triggerRepaint();
|
|
16
15
|
customRender === null || customRender === void 0 ? void 0 : customRender('');
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
depthMask: true,
|
|
20
|
-
depthTest: true,
|
|
21
|
-
blend: true,
|
|
22
|
-
blendFunc: [770, 771, 1, 771],
|
|
23
|
-
polygonOffsetFill: true,
|
|
24
|
-
depthFunc: 515,
|
|
25
|
-
blendEquation: 32774
|
|
26
|
-
},
|
|
27
|
-
views: deck && deck.props.views || [new MapView({
|
|
28
|
-
id: 'mapbox'
|
|
29
|
-
})]
|
|
30
|
-
};
|
|
16
|
+
}
|
|
17
|
+
});
|
|
31
18
|
let deckInstance;
|
|
32
19
|
|
|
33
20
|
if (!deck || deck.props.gl === gl) {
|
|
@@ -61,6 +48,26 @@ export function getDeckInstance({
|
|
|
61
48
|
});
|
|
62
49
|
return deckInstance;
|
|
63
50
|
}
|
|
51
|
+
export function getInterleavedProps(currProps) {
|
|
52
|
+
const useDevicePixels = 'useDevicePixels' in currProps ? currProps.useDevicePixels : true;
|
|
53
|
+
const nextProps = { ...currProps,
|
|
54
|
+
useDevicePixels,
|
|
55
|
+
parameters: {
|
|
56
|
+
depthMask: true,
|
|
57
|
+
depthTest: true,
|
|
58
|
+
blend: true,
|
|
59
|
+
blendFunc: [770, 771, 1, 771],
|
|
60
|
+
polygonOffsetFill: true,
|
|
61
|
+
depthFunc: 515,
|
|
62
|
+
blendEquation: 32774,
|
|
63
|
+
...currProps.parameters
|
|
64
|
+
},
|
|
65
|
+
views: currProps.views || [new MapView({
|
|
66
|
+
id: 'mapbox'
|
|
67
|
+
})]
|
|
68
|
+
};
|
|
69
|
+
return nextProps;
|
|
70
|
+
}
|
|
64
71
|
export function addLayer(deck, layer) {
|
|
65
72
|
deck.userData.mapboxLayers.add(layer);
|
|
66
73
|
updateLayers(deck);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/deck-utils.ts"],"names":["Deck","WebMercatorViewport","MapView","_flatten","flatten","getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blend","blendFunc","polygonOffsetFill","depthFunc","blendEquation","views","id","deckInstance","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","setProps","userData","isExternal","finalize","mapboxLayers","Set","mapboxVersion","getMapboxVersion","isInitialized","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","clearStack","getViewport","_drawLayers","viewports","layerFilter","deckLayer","clearCanvas","lng","lat","getCenter","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","padding","getPadding","repeat","getRenderWorldCopies","major","minor","version","split","slice","Number","useMapboxProjection","x","y","nearZMultiplier","mapboxLayerIds","Array","from","deckLayers","layers","Boolean","hasNonMapboxLayers","some","includes","getViewports","mapboxViewportIdx","findIndex","vp","hasNonMapboxViews","length","params","viewport","needsRedraw","clearRedrawFlags","forEach","LayerType","type","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport, MapView, _flatten as flatten} from '@deck.gl/core';\nimport type {DeckProps, MapViewState, Layer} from '@deck.gl/core';\nimport type MapboxLayer from './mapbox-layer';\nimport type {Map} from 'mapbox-gl';\n\ntype UserData = {\n isExternal: boolean;\n currentViewport?: WebMercatorViewport | null;\n mapboxLayers: Set<MapboxLayer<any>>;\n mapboxVersion: {minor: number; major: number};\n};\n\nexport function getDeckInstance({\n map,\n gl,\n deck\n}: {\n map: Map & {__deck?: Deck | null};\n gl: WebGLRenderingContext;\n deck?: Deck;\n}): Deck {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck?.props._customRender;\n\n const deckProps: DeckProps = {\n useDevicePixels: true,\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 // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blend: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n polygonOffsetFill: true,\n depthFunc: gl.LEQUAL,\n blendEquation: gl.FUNC_ADD\n },\n views: (deck && deck.props.views) || [new MapView({id: 'mapbox'})]\n };\n\n let deckInstance: Deck;\n\n if (!deck || deck.props.gl === gl) {\n // deck is using the WebGLContext created by mapbox\n // block deck from setting the canvas size\n Object.assign(deckProps, {\n gl,\n width: null,\n height: null,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n // If using the WebGLContext created by deck (React use case), we use deck's viewState to drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deckInstance, map));\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 deckInstance.finalize();\n map.__deck = null;\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\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(deck: Deck, map: Map, layer: MapboxLayer<any>): 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, true);\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}) => layer.id === deckLayer.id,\n clearStack,\n clearCanvas: false\n });\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 return {\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\nfunction 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}\n\nfunction getViewport(deck: Deck, map: Map, useMapboxProjection = true): WebMercatorViewport {\n const {mapboxVersion} = deck.userData as UserData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n id: 'mapbox',\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height\n },\n getViewState(map),\n useMapboxProjection\n ? {\n // match mapbox's projection matrix\n // A change of near plane was made in 1.3.0\n // https://github.com/mapbox/mapbox-gl-js/pull/8502\n nearZMultiplier:\n (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2\n ? 0.02\n : 1 / (deck.height || 1)\n }\n : {\n // use deck.gl's own default\n nearZMultiplier: 0.1\n }\n )\n );\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, false);\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"],"file":"deck-utils.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/deck-utils.ts"],"names":["Deck","WebMercatorViewport","MapView","_flatten","flatten","getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","getInterleavedProps","triggerRepaint","deckInstance","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","setProps","userData","isExternal","finalize","mapboxLayers","Set","mapboxVersion","getMapboxVersion","isInitialized","afterRender","currProps","useDevicePixels","nextProps","parameters","depthMask","depthTest","blend","blendFunc","polygonOffsetFill","depthFunc","blendEquation","views","id","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","clearStack","getViewport","_drawLayers","viewports","layerFilter","deckLayer","clearCanvas","lng","lat","getCenter","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","padding","getPadding","repeat","getRenderWorldCopies","major","minor","version","split","slice","Number","useMapboxProjection","x","y","nearZMultiplier","mapboxLayerIds","Array","from","deckLayers","layers","Boolean","hasNonMapboxLayers","some","includes","getViewports","mapboxViewportIdx","findIndex","vp","hasNonMapboxViews","length","params","viewport","needsRedraw","clearRedrawFlags","forEach","LayerType","type","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport, MapView, _flatten as flatten} from '@deck.gl/core';\nimport type {DeckProps, MapViewState, Layer} from '@deck.gl/core';\nimport type MapboxLayer from './mapbox-layer';\nimport type {Map} from 'mapbox-gl';\n\nimport GL from '@luma.gl/constants';\n\ntype UserData = {\n isExternal: boolean;\n currentViewport?: WebMercatorViewport | null;\n mapboxLayers: Set<MapboxLayer<any>>;\n mapboxVersion: {minor: number; major: number};\n};\n\nexport function getDeckInstance({\n map,\n gl,\n deck\n}: {\n map: Map & {__deck?: Deck | null};\n gl: WebGLRenderingContext;\n deck?: Deck;\n}): Deck {\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\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\n let deckInstance: Deck;\n\n if (!deck || deck.props.gl === gl) {\n // deck is using the WebGLContext created by mapbox\n // block deck from setting the canvas size\n Object.assign(deckProps, {\n gl,\n width: null,\n height: null,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n // If using the WebGLContext created by deck (React use case), we use deck's viewState to drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deckInstance, map));\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 deckInstance.finalize();\n map.__deck = null;\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\nexport function getInterleavedProps(currProps: DeckProps) {\n const useDevicePixels = 'useDevicePixels' in currProps ? currProps.useDevicePixels : true;\n\n const nextProps: DeckProps = {\n ...currProps,\n useDevicePixels,\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blend: true,\n blendFunc: [GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA, GL.ONE, GL.ONE_MINUS_SRC_ALPHA],\n polygonOffsetFill: true,\n depthFunc: GL.LEQUAL,\n blendEquation: GL.FUNC_ADD,\n ...currProps.parameters\n },\n views: currProps.views || [new MapView({id: 'mapbox'})]\n };\n\n return nextProps;\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(deck: Deck, map: Map, layer: MapboxLayer<any>): 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, true);\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}) => layer.id === deckLayer.id,\n clearStack,\n clearCanvas: false\n });\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 return {\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\nfunction 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}\n\nfunction getViewport(deck: Deck, map: Map, useMapboxProjection = true): WebMercatorViewport {\n const {mapboxVersion} = deck.userData as UserData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n id: 'mapbox',\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height\n },\n getViewState(map),\n useMapboxProjection\n ? {\n // match mapbox's projection matrix\n // A change of near plane was made in 1.3.0\n // https://github.com/mapbox/mapbox-gl-js/pull/8502\n nearZMultiplier:\n (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2\n ? 0.02\n : 1 / (deck.height || 1)\n }\n : {\n // use deck.gl's own default\n nearZMultiplier: 0.1\n }\n )\n );\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, false);\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"],"file":"deck-utils.js"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import { Deck, assert } from '@deck.gl/core';
|
|
3
|
-
import { getViewState } from './deck-utils';
|
|
3
|
+
import { getViewState, getDeckInstance, getInterleavedProps } from './deck-utils';
|
|
4
4
|
import { resolveLayers } from './resolve-layers';
|
|
5
5
|
export default class MapboxOverlay {
|
|
6
6
|
constructor(props) {
|
|
@@ -109,7 +109,7 @@ export default class MapboxOverlay {
|
|
|
109
109
|
Object.assign(this._props, props);
|
|
110
110
|
|
|
111
111
|
if (this._deck) {
|
|
112
|
-
this._deck.setProps(this._props);
|
|
112
|
+
this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -144,8 +144,12 @@ export default class MapboxOverlay {
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
_onAddInterleaved(map) {
|
|
147
|
-
this._deck =
|
|
148
|
-
|
|
147
|
+
this._deck = getDeckInstance({
|
|
148
|
+
map,
|
|
149
|
+
gl: map.painter.context.gl,
|
|
150
|
+
deck: new Deck({ ...this._props,
|
|
151
|
+
gl: map.painter.context.gl
|
|
152
|
+
})
|
|
149
153
|
});
|
|
150
154
|
map.on('styledata', this._handleStyleChange);
|
|
151
155
|
resolveLayers(map, this._deck, [], this._props.layers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mapbox-overlay.ts"],"names":["Deck","assert","getViewState","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} 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\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(\n props: MapboxOverlayProps & {\n interleaved?: boolean;\n }\n ) {\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._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 = new Deck({\n ...this._props,\n // @ts-ignore non-public map property\n gl: map.painter.context.gl\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","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\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(\n props: MapboxOverlayProps & {\n interleaved?: boolean;\n }\n ) {\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"}
|
package/dist.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("deck")):"function"==typeof define&&define.amd?define(["deck"],t):"object"==typeof exports?exports.deck=t(require("deck")):e.deck=t(e.deck)}(window,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(t,n){t.exports=e},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t,n){var r=n(7),i=n(8),o=n(9);e.exports=function(e,t){return r(e)||i(e,t)||o()}},function(e,t,n){var r=n(10);e.exports=function(e,t){if(null==e)return{};var n,i,o=r(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},function(e,t,n){var r=n(11),i=globalThis.deck||{};if(!i.Layer)throw new Error("@deck.gl/core is not found");e.exports=Object.assign(i,r)},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}},function(e,t,n){"use strict";n.r(t);var r=n(2),i=n.n(r),o=n(3),a=n.n(o),s=n(0),u=n.n(s),c=n(4),l=n.n(c),d=n(1);function p(e){var t=e.map,n=e.gl,r=e.deck;if(t.__deck)return t.__deck;var i,o=null==r?void 0:r.props._customRender,a={useDevicePixels:!0,_customRender:function(){t.triggerRepaint(),null==o||o("")},parameters:{depthMask:!0,depthTest:!0,blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthFunc:515,blendEquation:32774},views:r&&r.props.views||[new d.MapView({id:"mapbox"})]};return r&&r.props.gl!==n||(Object.assign(a,{gl:n,width:null,height:null,touchAction:"unset",viewState:f(t)}),t.on("move",(function(){return function(e,t){e.setProps({viewState:f(t)}),e.needsRedraw({clearRedrawFlags:!0})}(i,t)}))),r?(i=r,r.setProps(a),r.userData.isExternal=!0):(i=new d.Deck(a),t.on("remove",(function(){i.finalize(),t.__deck=null}))),i.userData.mapboxLayers=new Set,i.userData.mapboxVersion=function(e){var t=0,n=0,r=e.version;if(r){var i=r.split(".").slice(0,2).map(Number),o=l()(i,2);t=o[0],n=o[1]}return{major:t,minor:n}}(t),t.__deck=i,t.on("render",(function(){i.isInitialized&&function(e,t){var n=e.userData,r=n.mapboxLayers;if(n.isExternal){var i=Array.from(r,(function(e){return e.id})),o=Object(d._flatten)(e.props.layers,Boolean).some((function(e){return e&&!i.includes(e.id)})),a=e.getViewports(),s=a.findIndex((function(e){return"mapbox"===e.id})),u=a.length>1||s<0;(o||u)&&(s>=0&&((a=a.slice())[s]=v(e,t,!1)),e._drawLayers("mapbox-repaint",{viewports:a,layerFilter:function(t){return(!e.props.layerFilter||e.props.layerFilter(t))&&("mapbox"!==t.viewport.id||!i.includes(t.layer.id))},clearCanvas:!1}))}e.userData.currentViewport=null}(i,t)})),i}function f(e){var t=e.getCenter();return{longitude:(t.lng+540)%360-180,latitude:t.lat,zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),padding:e.getPadding(),repeat:e.getRenderWorldCopies()}}function v(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=e.userData,i=r.mapboxVersion;return new d.WebMercatorViewport(Object.assign({id:"mapbox",x:0,y:0,width:e.width,height:e.height},f(t),n?{nearZMultiplier:1===i.major&&i.minor>=3||i.major>=2?.02:1/(e.height||1)}:{nearZMultiplier:.1}))}function h(e){if(!e.userData.isExternal){var t=[];e.userData.mapboxLayers.forEach((function(e){var n=new(0,e.props.type)(e.props);t.push(n)})),e.setProps({layers:t})}}var y=function(){function e(t){if(i()(this,e),u()(this,"id",void 0),u()(this,"type",void 0),u()(this,"renderingMode",void 0),u()(this,"map",void 0),u()(this,"deck",void 0),u()(this,"props",void 0),!t.id)throw new Error("Layer must have an unique id");this.id=t.id,this.type="custom",this.renderingMode=t.renderingMode||"3d",this.map=null,this.deck=null,this.props=t}return a()(e,[{key:"onAdd",value:function(e,t){var n,r;this.map=e,this.deck=p({map:e,gl:t,deck:this.props.deck}),n=this.deck,r=this,n.userData.mapboxLayers.add(r),h(n)}},{key:"onRemove",value:function(){var e,t;this.deck&&(e=this.deck,t=this,e.userData.mapboxLayers.delete(t),h(e))}},{key:"setProps",value:function(e){Object.assign(this.props,e,{id:this.id}),this.deck&&h(this.deck)}},{key:"render",value:function(){var e,t,n,r,i;e=this.deck,t=this.map,n=this,r=e.userData.currentViewport,i=!1,r||(r=v(e,t,!0),e.userData.currentViewport=r,i=!0),e.isInitialized&&e._drawLayers("mapbox-repaint",{viewports:[r],layerFilter:function(e){var t=e.layer;return n.id===t.id},clearStack:i,clearCanvas:!1})}}]),e}(),_=n(5),b=n.n(_);function m(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return k(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return k(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function g(e,t,n,r){if(e&&t&&e.style&&e.style._loaded){var i=Object(d._flatten)(r,Boolean);if(n!==r){var o,a=Object(d._flatten)(n,Boolean),s=new Set(a.map((function(e){return e.id}))),u=m(i);try{for(u.s();!(o=u.n()).done;){var c=o.value;s.delete(c.id)}}catch(e){u.e(e)}finally{u.f()}var l,p=m(s);try{for(p.s();!(l=p.n()).done;){var f=l.value;e.getLayer(f)&&e.removeLayer(f)}}catch(e){p.e(e)}finally{p.f()}}var v,h=m(i);try{for(h.s();!(v=h.n()).done;){var _=v.value,b=e.getLayer(_.id);b?b.implementation.setProps(_.props):e.addLayer(new y({id:_.id,deck:t}),_.props.beforeId)}}catch(e){h.e(e)}finally{h.f()}var k,g=e.style._order,w={},O=m(i);try{for(O.s();!(k=O.n()).done;){var j=k.value,x=j.props.beforeId;x&&g.includes(x)||(x="__UNDEFINED__"),w[x]=w[x]||[],w[x].push(j.id)}}catch(e){O.e(e)}finally{O.f()}for(var E in w)for(var S=w[E],P="__UNDEFINED__"===E?g.length:g.indexOf(E),D="__UNDEFINED__"===E?void 0:E,M=S.length-1;M>=0;M--){var C=S[M],A=g.indexOf(C);A!==P-1&&(e.moveLayer(C,D),A>P&&P++),P--,D=C}}}var w=["interleaved"];function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){u()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var x=function(){function e(t){var n=this;i()(this,e),u()(this,"_props",void 0),u()(this,"_deck",void 0),u()(this,"_map",void 0),u()(this,"_container",void 0),u()(this,"_interleaved",void 0),u()(this,"_handleStyleChange",(function(){g(n._map,n._deck,n._props.layers,n._props.layers)})),u()(this,"_updateContainerSize",(function(){if(n._map&&n._container){var e=n._map.getContainer(),t=e.clientWidth,r=e.clientHeight;Object.assign(n._container.style,{width:"".concat(t,"px"),height:"".concat(r,"px")})}})),u()(this,"_updateViewState",(function(){var e=n._deck;e&&(e.setProps({viewState:f(n._map)}),e.redraw())})),u()(this,"_handleMouseEvent",(function(e){var t=n._deck;if(t){var r={type:e.type,offsetCenter:e.point,srcEvent:e};switch(e.type){case"click":r.tapCount=1,t._onPointerDown(r),t._onEvent(r);break;case"dblclick":r.type="click",r.tapCount=2,t._onEvent(r);break;case"mousemove":r.type="pointermove",t._onPointerMove(r);break;case"mouseout":r.type="pointerleave",t._onPointerMove(r);break;default:return}}}));var r=t.interleaved,o=void 0!==r&&r,a=b()(t,w);this._interleaved=o,this._props=a}return a()(e,[{key:"setProps",value:function(e){this._interleaved&&e.layers&&g(this._map,this._deck,this._props.layers,e.layers),Object.assign(this._props,e),this._deck&&this._deck.setProps(this._props)}},{key:"onAdd",value:function(e){return this._map=e,this._interleaved?this._onAddInterleaved(e):this._onAddOverlaid(e)}},{key:"_onAddOverlaid",value:function(e){var t=document.createElement("div");return Object.assign(t.style,{position:"absolute",left:0,top:0,pointerEvents:"none"}),this._container=t,this._deck=new d.Deck(j(j({},this._props),{},{parent:t,viewState:f(e)})),e.on("resize",this._updateContainerSize),e.on("render",this._updateViewState),e.on("mousemove",this._handleMouseEvent),e.on("mouseout",this._handleMouseEvent),e.on("click",this._handleMouseEvent),e.on("dblclick",this._handleMouseEvent),this._updateContainerSize(),t}},{key:"_onAddInterleaved",value:function(e){return this._deck=new d.Deck(j(j({},this._props),{},{gl:e.painter.context.gl})),e.on("styledata",this._handleStyleChange),g(e,this._deck,[],this._props.layers),document.createElement("div")}},{key:"onRemove",value:function(){var e,t=this._map;t&&(this._interleaved?this._onRemoveInterleaved(t):this._onRemoveOverlaid(t)),null===(e=this._deck)||void 0===e||e.finalize(),this._deck=void 0,this._map=void 0,this._container=void 0}},{key:"_onRemoveOverlaid",value:function(e){e.off("resize",this._updateContainerSize),e.off("render",this._updateViewState),e.off("mousemove",this._handleMouseEvent),e.off("mouseout",this._handleMouseEvent),e.off("click",this._handleMouseEvent),e.off("dblclick",this._handleMouseEvent)}},{key:"_onRemoveInterleaved",value:function(e){e.off("styledata",this._handleStyleChange),g(e,this._deck,this._props.layers,[])}},{key:"getDefaultPosition",value:function(){return"top-left"}},{key:"pickObject",value:function(e){return Object(d.assert)(this._deck),this._deck.pickObject(e)}},{key:"pickMultipleObjects",value:function(e){return Object(d.assert)(this._deck),this._deck.pickMultipleObjects(e)}},{key:"pickObjects",value:function(e){return Object(d.assert)(this._deck),this._deck.pickObjects(e)}},{key:"finalize",value:function(){this._map&&this._map.removeControl(this)}}]),e}();n.d(t,"MapboxLayer",(function(){return y})),n.d(t,"MapboxOverlay",(function(){return x}))}])}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("deck")):"function"==typeof define&&define.amd?define(["deck"],t):"object"==typeof exports?exports.deck=t(require("deck")):e.deck=t(e.deck)}(window,(function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=6)}([function(e,t){e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},function(t,r){t.exports=e},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},function(e,t,r){var n=r(7),i=r(8),o=r(9);e.exports=function(e,t){return n(e)||i(e,t)||o()}},function(e,t,r){var n=r(10);e.exports=function(e,t){if(null==e)return{};var r,i,o=n(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}},function(e,t,r){var n=r(11),i=globalThis.deck||{};if(!i.Layer)throw new Error("@deck.gl/core is not found");e.exports=Object.assign(i,n)},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t){e.exports=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},function(e,t,r){"use strict";r.r(t);var n=r(2),i=r.n(n),o=r(3),a=r.n(o),s=r(0),c=r.n(s),u=r(4),l=r.n(u),d=r(1);function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){c()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function v(e){var t=e.map,r=e.gl,n=e.deck;if(t.__deck)return t.__deck;var i,o=null==n?void 0:n.props._customRender,a=h(f(f({},null==n?void 0:n.props),{},{_customRender:function(){t.triggerRepaint(),null==o||o("")}}));return n&&n.props.gl!==r||(Object.assign(a,{gl:r,width:null,height:null,touchAction:"unset",viewState:y(t)}),t.on("move",(function(){return function(e,t){e.setProps({viewState:y(t)}),e.needsRedraw({clearRedrawFlags:!0})}(i,t)}))),n?(i=n,n.setProps(a),n.userData.isExternal=!0):(i=new d.Deck(a),t.on("remove",(function(){i.finalize(),t.__deck=null}))),i.userData.mapboxLayers=new Set,i.userData.mapboxVersion=function(e){var t=0,r=0,n=e.version;if(n){var i=n.split(".").slice(0,2).map(Number),o=l()(i,2);t=o[0],r=o[1]}return{major:t,minor:r}}(t),t.__deck=i,t.on("render",(function(){i.isInitialized&&function(e,t){var r=e.userData,n=r.mapboxLayers;if(r.isExternal){var i=Array.from(n,(function(e){return e.id})),o=Object(d._flatten)(e.props.layers,Boolean).some((function(e){return e&&!i.includes(e.id)})),a=e.getViewports(),s=a.findIndex((function(e){return"mapbox"===e.id})),c=a.length>1||s<0;(o||c)&&(s>=0&&((a=a.slice())[s]=b(e,t,!1)),e._drawLayers("mapbox-repaint",{viewports:a,layerFilter:function(t){return(!e.props.layerFilter||e.props.layerFilter(t))&&("mapbox"!==t.viewport.id||!i.includes(t.layer.id))},clearCanvas:!1}))}e.userData.currentViewport=null}(i,t)})),i}function h(e){var t=!("useDevicePixels"in e)||e.useDevicePixels;return f(f({},e),{},{useDevicePixels:t,parameters:f({depthMask:!0,depthTest:!0,blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthFunc:515,blendEquation:32774},e.parameters),views:e.views||[new d.MapView({id:"mapbox"})]})}function y(e){var t=e.getCenter();return{longitude:(t.lng+540)%360-180,latitude:t.lat,zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),padding:e.getPadding(),repeat:e.getRenderWorldCopies()}}function b(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=e.userData,i=n.mapboxVersion;return new d.WebMercatorViewport(Object.assign({id:"mapbox",x:0,y:0,width:e.width,height:e.height},y(t),r?{nearZMultiplier:1===i.major&&i.minor>=3||i.major>=2?.02:1/(e.height||1)}:{nearZMultiplier:.1}))}function _(e){if(!e.userData.isExternal){var t=[];e.userData.mapboxLayers.forEach((function(e){var r=new(0,e.props.type)(e.props);t.push(r)})),e.setProps({layers:t})}}var m=function(){function e(t){if(i()(this,e),c()(this,"id",void 0),c()(this,"type",void 0),c()(this,"renderingMode",void 0),c()(this,"map",void 0),c()(this,"deck",void 0),c()(this,"props",void 0),!t.id)throw new Error("Layer must have an unique id");this.id=t.id,this.type="custom",this.renderingMode=t.renderingMode||"3d",this.map=null,this.deck=null,this.props=t}return a()(e,[{key:"onAdd",value:function(e,t){var r,n;this.map=e,this.deck=v({map:e,gl:t,deck:this.props.deck}),r=this.deck,n=this,r.userData.mapboxLayers.add(n),_(r)}},{key:"onRemove",value:function(){var e,t;this.deck&&(e=this.deck,t=this,e.userData.mapboxLayers.delete(t),_(e))}},{key:"setProps",value:function(e){Object.assign(this.props,e,{id:this.id}),this.deck&&_(this.deck)}},{key:"render",value:function(){var e,t,r,n,i;e=this.deck,t=this.map,r=this,n=e.userData.currentViewport,i=!1,n||(n=b(e,t,!0),e.userData.currentViewport=n,i=!0),e.isInitialized&&e._drawLayers("mapbox-repaint",{viewports:[n],layerFilter:function(e){var t=e.layer;return r.id===t.id},clearStack:i,clearCanvas:!1})}}]),e}(),g=r(5),k=r.n(g);function O(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return w(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function j(e,t,r,n){if(e&&t&&e.style&&e.style._loaded){var i=Object(d._flatten)(n,Boolean);if(r!==n){var o,a=Object(d._flatten)(r,Boolean),s=new Set(a.map((function(e){return e.id}))),c=O(i);try{for(c.s();!(o=c.n()).done;){var u=o.value;s.delete(u.id)}}catch(e){c.e(e)}finally{c.f()}var l,p=O(s);try{for(p.s();!(l=p.n()).done;){var f=l.value;e.getLayer(f)&&e.removeLayer(f)}}catch(e){p.e(e)}finally{p.f()}}var v,h=O(i);try{for(h.s();!(v=h.n()).done;){var y=v.value,b=e.getLayer(y.id);b?b.implementation.setProps(y.props):e.addLayer(new m({id:y.id,deck:t}),y.props.beforeId)}}catch(e){h.e(e)}finally{h.f()}var _,g=e.style._order,k={},w=O(i);try{for(w.s();!(_=w.n()).done;){var j=_.value,x=j.props.beforeId;x&&g.includes(x)||(x="__UNDEFINED__"),k[x]=k[x]||[],k[x].push(j.id)}}catch(e){w.e(e)}finally{w.f()}for(var P in k)for(var E=k[P],S="__UNDEFINED__"===P?g.length:g.indexOf(P),D="__UNDEFINED__"===P?void 0:P,M=E.length-1;M>=0;M--){var C=E[M],A=g.indexOf(C);A!==S-1&&(e.moveLayer(C,D),A>S&&S++),S--,D=C}}}var x=["interleaved"];function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?P(Object(r),!0).forEach((function(t){c()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var S=function(){function e(t){var r=this;i()(this,e),c()(this,"_props",void 0),c()(this,"_deck",void 0),c()(this,"_map",void 0),c()(this,"_container",void 0),c()(this,"_interleaved",void 0),c()(this,"_handleStyleChange",(function(){j(r._map,r._deck,r._props.layers,r._props.layers)})),c()(this,"_updateContainerSize",(function(){if(r._map&&r._container){var e=r._map.getContainer(),t=e.clientWidth,n=e.clientHeight;Object.assign(r._container.style,{width:"".concat(t,"px"),height:"".concat(n,"px")})}})),c()(this,"_updateViewState",(function(){var e=r._deck;e&&(e.setProps({viewState:y(r._map)}),e.redraw())})),c()(this,"_handleMouseEvent",(function(e){var t=r._deck;if(t){var n={type:e.type,offsetCenter:e.point,srcEvent:e};switch(e.type){case"click":n.tapCount=1,t._onPointerDown(n),t._onEvent(n);break;case"dblclick":n.type="click",n.tapCount=2,t._onEvent(n);break;case"mousemove":n.type="pointermove",t._onPointerMove(n);break;case"mouseout":n.type="pointerleave",t._onPointerMove(n);break;default:return}}}));var n=t.interleaved,o=void 0!==n&&n,a=k()(t,x);this._interleaved=o,this._props=a}return a()(e,[{key:"setProps",value:function(e){this._interleaved&&e.layers&&j(this._map,this._deck,this._props.layers,e.layers),Object.assign(this._props,e),this._deck&&this._deck.setProps(this._interleaved?h(this._props):this._props)}},{key:"onAdd",value:function(e){return this._map=e,this._interleaved?this._onAddInterleaved(e):this._onAddOverlaid(e)}},{key:"_onAddOverlaid",value:function(e){var t=document.createElement("div");return Object.assign(t.style,{position:"absolute",left:0,top:0,pointerEvents:"none"}),this._container=t,this._deck=new d.Deck(E(E({},this._props),{},{parent:t,viewState:y(e)})),e.on("resize",this._updateContainerSize),e.on("render",this._updateViewState),e.on("mousemove",this._handleMouseEvent),e.on("mouseout",this._handleMouseEvent),e.on("click",this._handleMouseEvent),e.on("dblclick",this._handleMouseEvent),this._updateContainerSize(),t}},{key:"_onAddInterleaved",value:function(e){return this._deck=v({map:e,gl:e.painter.context.gl,deck:new d.Deck(E(E({},this._props),{},{gl:e.painter.context.gl}))}),e.on("styledata",this._handleStyleChange),j(e,this._deck,[],this._props.layers),document.createElement("div")}},{key:"onRemove",value:function(){var e,t=this._map;t&&(this._interleaved?this._onRemoveInterleaved(t):this._onRemoveOverlaid(t)),null===(e=this._deck)||void 0===e||e.finalize(),this._deck=void 0,this._map=void 0,this._container=void 0}},{key:"_onRemoveOverlaid",value:function(e){e.off("resize",this._updateContainerSize),e.off("render",this._updateViewState),e.off("mousemove",this._handleMouseEvent),e.off("mouseout",this._handleMouseEvent),e.off("click",this._handleMouseEvent),e.off("dblclick",this._handleMouseEvent)}},{key:"_onRemoveInterleaved",value:function(e){e.off("styledata",this._handleStyleChange),j(e,this._deck,this._props.layers,[])}},{key:"getDefaultPosition",value:function(){return"top-left"}},{key:"pickObject",value:function(e){return Object(d.assert)(this._deck),this._deck.pickObject(e)}},{key:"pickMultipleObjects",value:function(e){return Object(d.assert)(this._deck),this._deck.pickMultipleObjects(e)}},{key:"pickObjects",value:function(e){return Object(d.assert)(this._deck),this._deck.pickObjects(e)}},{key:"finalize",value:function(){this._map&&this._map.removeControl(this)}}]),e}();r.d(t,"MapboxLayer",(function(){return m})),r.d(t,"MapboxOverlay",(function(){return S}))}])}));
|
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.8.
|
|
5
|
+
"version": "8.8.21",
|
|
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": "8ca244c2a02d11c6f5ad4ef9efaf0921236a1687"
|
|
39
39
|
}
|