@deck.gl/mapbox 8.6.8 → 8.6.9

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 CHANGED
@@ -168,11 +168,9 @@ function getDeckInstance({map, gl, deck}) {
168
168
  }
169
169
  };
170
170
 
171
- if (deck) {
172
- deck.setProps(deckProps);
173
- deck.props.userData.isExternal = true;
174
- } else {
175
- // Using external gl context - do not set css size
171
+ if (!deck || deck.props.gl === gl) {
172
+ // deck is using the WebGLContext created by mapbox
173
+ // block deck from setting the canvas size
176
174
  Object.assign(deckProps, {
177
175
  gl,
178
176
  width: false,
@@ -180,17 +178,22 @@ function getDeckInstance({map, gl, deck}) {
180
178
  touchAction: 'unset',
181
179
  viewState: getViewState(map)
182
180
  });
183
- deck = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["Deck"](deckProps);
184
-
185
- // If deck is externally provided (React use case), we use deck's viewState to
186
- // drive the map.
181
+ // If using the WebGLContext created by deck (React use case), we use deck's viewState to drive the map.
187
182
  // Otherwise (pure JS use case), we use the map's viewState to drive deck.
188
183
  map.on('move', () => onMapMove(deck, map));
184
+ }
185
+
186
+ if (deck) {
187
+ deck.setProps(deckProps);
188
+ deck.props.userData.isExternal = true;
189
+ } else {
190
+ deck = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["Deck"](deckProps);
189
191
  map.on('remove', () => {
190
192
  deck.finalize();
191
193
  map.__deck = null;
192
194
  });
193
195
  }
196
+
194
197
  deck.props.userData.mapboxVersion = getMapboxVersion(map);
195
198
  map.__deck = deck;
196
199
  map.on('render', () => {
@@ -46,10 +46,7 @@ function getDeckInstance(_ref) {
46
46
  }
47
47
  };
48
48
 
49
- if (deck) {
50
- deck.setProps(deckProps);
51
- deck.props.userData.isExternal = true;
52
- } else {
49
+ if (!deck || deck.props.gl === gl) {
53
50
  Object.assign(deckProps, {
54
51
  gl: gl,
55
52
  width: false,
@@ -57,10 +54,16 @@ function getDeckInstance(_ref) {
57
54
  touchAction: 'unset',
58
55
  viewState: getViewState(map)
59
56
  });
60
- deck = new _core.Deck(deckProps);
61
57
  map.on('move', function () {
62
58
  return onMapMove(deck, map);
63
59
  });
60
+ }
61
+
62
+ if (deck) {
63
+ deck.setProps(deckProps);
64
+ deck.props.userData.isExternal = true;
65
+ } else {
66
+ deck = new _core.Deck(deckProps);
64
67
  map.on('remove', function () {
65
68
  deck.finalize();
66
69
  map.__deck = null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/deck-utils.js"],"names":["getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blendFunc","blendEquation","userData","isExternal","mapboxLayers","Set","setProps","Object","assign","width","height","touchAction","viewState","getViewState","Deck","on","onMapMove","finalize","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","id","clearCanvas","getCenter","lng","lat","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","major","minor","version","split","slice","Number","useMapboxProjection","WebMercatorViewport","x","y","repeat","getRenderWorldCopies","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","needsRedraw","clearRedrawFlags","layerIndex","forEach","LayerType","type","_offset","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport} from '@deck.gl/core';\n\nexport function getDeckInstance({map, gl, deck}) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck && deck.props._customRender;\n\n const deckProps = {\n useDevicePixels: true,\n _customRender: () => {\n map.triggerRepaint();\n if (customRender) {\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender();\n }\n },\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n blendEquation: gl.FUNC_ADD\n },\n userData: {\n isExternal: false,\n mapboxLayers: new Set()\n }\n };\n\n if (deck) {\n deck.setProps(deckProps);\n deck.props.userData.isExternal = true;\n } else {\n // Using external gl context - do not set css size\n Object.assign(deckProps, {\n gl,\n width: false,\n height: false,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n deck = new Deck(deckProps);\n\n // If deck is externally provided (React use case), we use deck's viewState to\n // drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deck, map));\n map.on('remove', () => {\n deck.finalize();\n map.__deck = null;\n });\n }\n deck.props.userData.mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\n}\n\nexport function addLayer(deck, layer) {\n deck.props.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck, layer) {\n deck.props.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\n\nexport function drawLayer(deck, map, layer) {\n let {currentViewport} = deck.props.userData;\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.props.userData.currentViewport = currentViewport;\n }\n if (!deck.layerManager) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nfunction getViewState(map) {\n const {lng, lat} = map.getCenter();\n return {\n longitude: lng,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch()\n };\n}\n\nfunction getMapboxVersion(map) {\n // parse mapbox version string\n let major = 0;\n let minor = 0;\n if (map.version) {\n [major, minor] = map.version\n .split('.')\n .slice(0, 2)\n .map(Number);\n }\n return {major, minor};\n}\n\nfunction getViewport(deck, map, useMapboxProjection = true) {\n const {mapboxVersion} = deck.props.userData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n repeat: map.getRenderWorldCopies()\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, map) {\n const {mapboxLayers, isExternal} = deck.props.userData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));\n if (hasNonMapboxLayers) {\n deck._drawLayers('mapbox-repaint', {\n viewports: [getViewport(deck, map, false)],\n layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n deck.props.userData.currentViewport = null;\n}\n\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck) {\n if (deck.props.userData.isExternal) {\n return;\n }\n\n const layers = [];\n let layerIndex = 0;\n deck.props.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props, {_offset: layerIndex++});\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n"],"file":"deck-utils.js"}
1
+ {"version":3,"sources":["../../src/deck-utils.js"],"names":["getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blendFunc","blendEquation","userData","isExternal","mapboxLayers","Set","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","setProps","Deck","finalize","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","id","clearCanvas","getCenter","lng","lat","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","major","minor","version","split","slice","Number","useMapboxProjection","WebMercatorViewport","x","y","repeat","getRenderWorldCopies","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","needsRedraw","clearRedrawFlags","layerIndex","forEach","LayerType","type","_offset","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport} from '@deck.gl/core';\n\nexport function getDeckInstance({map, gl, deck}) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck && deck.props._customRender;\n\n const deckProps = {\n useDevicePixels: true,\n _customRender: () => {\n map.triggerRepaint();\n if (customRender) {\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender();\n }\n },\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n blendEquation: gl.FUNC_ADD\n },\n userData: {\n isExternal: false,\n mapboxLayers: new Set()\n }\n };\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: false,\n height: false,\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(deck, map));\n }\n\n if (deck) {\n deck.setProps(deckProps);\n deck.props.userData.isExternal = true;\n } else {\n deck = new Deck(deckProps);\n map.on('remove', () => {\n deck.finalize();\n map.__deck = null;\n });\n }\n\n deck.props.userData.mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\n}\n\nexport function addLayer(deck, layer) {\n deck.props.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck, layer) {\n deck.props.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\n\nexport function drawLayer(deck, map, layer) {\n let {currentViewport} = deck.props.userData;\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.props.userData.currentViewport = currentViewport;\n }\n if (!deck.layerManager) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nfunction getViewState(map) {\n const {lng, lat} = map.getCenter();\n return {\n longitude: lng,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch()\n };\n}\n\nfunction getMapboxVersion(map) {\n // parse mapbox version string\n let major = 0;\n let minor = 0;\n if (map.version) {\n [major, minor] = map.version\n .split('.')\n .slice(0, 2)\n .map(Number);\n }\n return {major, minor};\n}\n\nfunction getViewport(deck, map, useMapboxProjection = true) {\n const {mapboxVersion} = deck.props.userData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n repeat: map.getRenderWorldCopies()\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, map) {\n const {mapboxLayers, isExternal} = deck.props.userData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));\n if (hasNonMapboxLayers) {\n deck._drawLayers('mapbox-repaint', {\n viewports: [getViewport(deck, map, false)],\n layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n deck.props.userData.currentViewport = null;\n}\n\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck) {\n if (deck.props.userData.isExternal) {\n return;\n }\n\n const layers = [];\n let layerIndex = 0;\n deck.props.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props, {_offset: layerIndex++});\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n"],"file":"deck-utils.js"}
@@ -32,10 +32,7 @@ export function getDeckInstance(_ref) {
32
32
  }
33
33
  };
34
34
 
35
- if (deck) {
36
- deck.setProps(deckProps);
37
- deck.props.userData.isExternal = true;
38
- } else {
35
+ if (!deck || deck.props.gl === gl) {
39
36
  Object.assign(deckProps, {
40
37
  gl,
41
38
  width: false,
@@ -43,8 +40,14 @@ export function getDeckInstance(_ref) {
43
40
  touchAction: 'unset',
44
41
  viewState: getViewState(map)
45
42
  });
46
- deck = new Deck(deckProps);
47
43
  map.on('move', () => onMapMove(deck, map));
44
+ }
45
+
46
+ if (deck) {
47
+ deck.setProps(deckProps);
48
+ deck.props.userData.isExternal = true;
49
+ } else {
50
+ deck = new Deck(deckProps);
48
51
  map.on('remove', () => {
49
52
  deck.finalize();
50
53
  map.__deck = null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/deck-utils.js"],"names":["Deck","WebMercatorViewport","getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blendFunc","blendEquation","userData","isExternal","mapboxLayers","Set","setProps","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","finalize","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","id","clearCanvas","lng","lat","getCenter","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","major","minor","version","split","slice","Number","useMapboxProjection","x","y","repeat","getRenderWorldCopies","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","needsRedraw","clearRedrawFlags","layerIndex","forEach","LayerType","type","_offset","push"],"mappings":"AAAA,SAAQA,IAAR,EAAcC,mBAAd,QAAwC,eAAxC;AAEA,OAAO,SAASC,eAAT,OAA0C;AAAA,MAAjB;AAACC,IAAAA,GAAD;AAAMC,IAAAA,EAAN;AAAUC,IAAAA;AAAV,GAAiB;;AAE/C,MAAIF,GAAG,CAACG,MAAR,EAAgB;AACd,WAAOH,GAAG,CAACG,MAAX;AACD;;AAED,QAAMC,YAAY,GAAGF,IAAI,IAAIA,IAAI,CAACG,KAAL,CAAWC,aAAxC;AAEA,QAAMC,SAAS,GAAG;AAChBC,IAAAA,eAAe,EAAE,IADD;AAEhBF,IAAAA,aAAa,EAAE,MAAM;AACnBN,MAAAA,GAAG,CAACS,cAAJ;;AACA,UAAIL,YAAJ,EAAkB;AAGhBA,QAAAA,YAAY;AACb;AACF,KATe;AAWhBM,IAAAA,UAAU,EAAE;AACVC,MAAAA,SAAS,EAAE,IADD;AAEVC,MAAAA,SAAS,EAAE,IAFD;AAGVC,MAAAA,SAAS,EAAE,kBAHD;AAIVC,MAAAA,aAAa;AAJH,KAXI;AAiBhBC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,UAAU,EAAE,KADJ;AAERC,MAAAA,YAAY,EAAE,IAAIC,GAAJ;AAFN;AAjBM,GAAlB;;AAuBA,MAAIhB,IAAJ,EAAU;AACRA,IAAAA,IAAI,CAACiB,QAAL,CAAcZ,SAAd;AACAL,IAAAA,IAAI,CAACG,KAAL,CAAWU,QAAX,CAAoBC,UAApB,GAAiC,IAAjC;AACD,GAHD,MAGO;AAELI,IAAAA,MAAM,CAACC,MAAP,CAAcd,SAAd,EAAyB;AACvBN,MAAAA,EADuB;AAEvBqB,MAAAA,KAAK,EAAE,KAFgB;AAGvBC,MAAAA,MAAM,EAAE,KAHe;AAIvBC,MAAAA,WAAW,EAAE,OAJU;AAKvBC,MAAAA,SAAS,EAAEC,YAAY,CAAC1B,GAAD;AALA,KAAzB;AAOAE,IAAAA,IAAI,GAAG,IAAIL,IAAJ,CAASU,SAAT,CAAP;AAKAP,IAAAA,GAAG,CAAC2B,EAAJ,CAAO,MAAP,EAAe,MAAMC,SAAS,CAAC1B,IAAD,EAAOF,GAAP,CAA9B;AACAA,IAAAA,GAAG,CAAC2B,EAAJ,CAAO,QAAP,EAAiB,MAAM;AACrBzB,MAAAA,IAAI,CAAC2B,QAAL;AACA7B,MAAAA,GAAG,CAACG,MAAJ,GAAa,IAAb;AACD,KAHD;AAID;;AACDD,EAAAA,IAAI,CAACG,KAAL,CAAWU,QAAX,CAAoBe,aAApB,GAAoCC,gBAAgB,CAAC/B,GAAD,CAApD;AACAA,EAAAA,GAAG,CAACG,MAAJ,GAAaD,IAAb;AACAF,EAAAA,GAAG,CAAC2B,EAAJ,CAAO,QAAP,EAAiB,MAAM;AACrB,QAAIzB,IAAI,CAAC8B,YAAT,EAAuBC,WAAW,CAAC/B,IAAD,EAAOF,GAAP,CAAX;AACxB,GAFD;AAIA,SAAOE,IAAP;AACD;AAED,OAAO,SAASgC,QAAT,CAAkBhC,IAAlB,EAAwBiC,KAAxB,EAA+B;AACpCjC,EAAAA,IAAI,CAACG,KAAL,CAAWU,QAAX,CAAoBE,YAApB,CAAiCmB,GAAjC,CAAqCD,KAArC;AACAE,EAAAA,YAAY,CAACnC,IAAD,CAAZ;AACD;AAED,OAAO,SAASoC,WAAT,CAAqBpC,IAArB,EAA2BiC,KAA3B,EAAkC;AACvCjC,EAAAA,IAAI,CAACG,KAAL,CAAWU,QAAX,CAAoBE,YAApB,CAAiCsB,MAAjC,CAAwCJ,KAAxC;AACAE,EAAAA,YAAY,CAACnC,IAAD,CAAZ;AACD;AAED,OAAO,SAASsC,WAAT,CAAqBtC,IAArB,EAA2BiC,KAA3B,EAAkC;AACvCE,EAAAA,YAAY,CAACnC,IAAD,CAAZ;AACD;AAED,OAAO,SAASuC,SAAT,CAAmBvC,IAAnB,EAAyBF,GAAzB,EAA8BmC,KAA9B,EAAqC;AAC1C,MAAI;AAACO,IAAAA;AAAD,MAAoBxC,IAAI,CAACG,KAAL,CAAWU,QAAnC;;AACA,MAAI,CAAC2B,eAAL,EAAsB;AAGpBA,IAAAA,eAAe,GAAGC,WAAW,CAACzC,IAAD,EAAOF,GAAP,EAAY,IAAZ,CAA7B;AACAE,IAAAA,IAAI,CAACG,KAAL,CAAWU,QAAX,CAAoB2B,eAApB,GAAsCA,eAAtC;AACD;;AACD,MAAI,CAACxC,IAAI,CAAC8B,YAAV,EAAwB;AACtB;AACD;;AACD9B,EAAAA,IAAI,CAAC0C,WAAL,CAAiB,gBAAjB,EAAmC;AACjCC,IAAAA,SAAS,EAAE,CAACH,eAAD,CADsB;AAEjCI,IAAAA,WAAW,EAAE;AAAA,UAAC;AAACX,QAAAA,KAAK,EAAEY;AAAR,OAAD;AAAA,aAAwBZ,KAAK,CAACa,EAAN,KAAaD,SAAS,CAACC,EAA/C;AAAA,KAFoB;AAGjCC,IAAAA,WAAW,EAAE;AAHoB,GAAnC;AAKD;;AAED,SAASvB,YAAT,CAAsB1B,GAAtB,EAA2B;AACzB,QAAM;AAACkD,IAAAA,GAAD;AAAMC,IAAAA;AAAN,MAAanD,GAAG,CAACoD,SAAJ,EAAnB;AACA,SAAO;AACLC,IAAAA,SAAS,EAAEH,GADN;AAELI,IAAAA,QAAQ,EAAEH,GAFL;AAGLI,IAAAA,IAAI,EAAEvD,GAAG,CAACwD,OAAJ,EAHD;AAILC,IAAAA,OAAO,EAAEzD,GAAG,CAAC0D,UAAJ,EAJJ;AAKLC,IAAAA,KAAK,EAAE3D,GAAG,CAAC4D,QAAJ;AALF,GAAP;AAOD;;AAED,SAAS7B,gBAAT,CAA0B/B,GAA1B,EAA+B;AAE7B,MAAI6D,KAAK,GAAG,CAAZ;AACA,MAAIC,KAAK,GAAG,CAAZ;;AACA,MAAI9D,GAAG,CAAC+D,OAAR,EAAiB;AACf,KAACF,KAAD,EAAQC,KAAR,IAAiB9D,GAAG,CAAC+D,OAAJ,CACdC,KADc,CACR,GADQ,EAEdC,KAFc,CAER,CAFQ,EAEL,CAFK,EAGdjE,GAHc,CAGVkE,MAHU,CAAjB;AAID;;AACD,SAAO;AAACL,IAAAA,KAAD;AAAQC,IAAAA;AAAR,GAAP;AACD;;AAED,SAASnB,WAAT,CAAqBzC,IAArB,EAA2BF,GAA3B,EAA4D;AAAA,MAA5BmE,mBAA4B,uEAAN,IAAM;AAC1D,QAAM;AAACrC,IAAAA;AAAD,MAAkB5B,IAAI,CAACG,KAAL,CAAWU,QAAnC;AAEA,SAAO,IAAIjB,mBAAJ,CACLsB,MAAM,CAACC,MAAP,CACE;AACE+C,IAAAA,CAAC,EAAE,CADL;AAEEC,IAAAA,CAAC,EAAE,CAFL;AAGE/C,IAAAA,KAAK,EAAEpB,IAAI,CAACoB,KAHd;AAIEC,IAAAA,MAAM,EAAErB,IAAI,CAACqB,MAJf;AAKE+C,IAAAA,MAAM,EAAEtE,GAAG,CAACuE,oBAAJ;AALV,GADF,EAQE7C,YAAY,CAAC1B,GAAD,CARd,EASEmE,mBAAmB,GACf;AAIEK,IAAAA,eAAe,EACZ1C,aAAa,CAAC+B,KAAd,KAAwB,CAAxB,IAA6B/B,aAAa,CAACgC,KAAd,IAAuB,CAArD,IAA2DhC,aAAa,CAAC+B,KAAd,IAAuB,CAAlF,GACI,IADJ,GAEI,KAAK3D,IAAI,CAACqB,MAAL,IAAe,CAApB;AAPR,GADe,GAUf;AAEEiD,IAAAA,eAAe,EAAE;AAFnB,GAnBN,CADK,CAAP;AA0BD;;AAED,SAASvC,WAAT,CAAqB/B,IAArB,EAA2BF,GAA3B,EAAgC;AAC9B,QAAM;AAACiB,IAAAA,YAAD;AAAeD,IAAAA;AAAf,MAA6Bd,IAAI,CAACG,KAAL,CAAWU,QAA9C;;AAEA,MAAIC,UAAJ,EAAgB;AAEd,UAAMyD,cAAc,GAAGC,KAAK,CAACC,IAAN,CAAW1D,YAAX,EAAyBkB,KAAK,IAAIA,KAAK,CAACa,EAAxC,CAAvB;AACA,UAAM4B,kBAAkB,GAAG1E,IAAI,CAACG,KAAL,CAAWwE,MAAX,CAAkBC,IAAlB,CAAuB3C,KAAK,IAAI,CAACsC,cAAc,CAACM,QAAf,CAAwB5C,KAAK,CAACa,EAA9B,CAAjC,CAA3B;;AACA,QAAI4B,kBAAJ,EAAwB;AACtB1E,MAAAA,IAAI,CAAC0C,WAAL,CAAiB,gBAAjB,EAAmC;AACjCC,QAAAA,SAAS,EAAE,CAACF,WAAW,CAACzC,IAAD,EAAOF,GAAP,EAAY,KAAZ,CAAZ,CADsB;AAEjC8C,QAAAA,WAAW,EAAE;AAAA,cAAC;AAACX,YAAAA;AAAD,WAAD;AAAA,iBAAa,CAACsC,cAAc,CAACM,QAAf,CAAwB5C,KAAK,CAACa,EAA9B,CAAd;AAAA,SAFoB;AAGjCC,QAAAA,WAAW,EAAE;AAHoB,OAAnC;AAKD;AACF;;AAGD/C,EAAAA,IAAI,CAACG,KAAL,CAAWU,QAAX,CAAoB2B,eAApB,GAAsC,IAAtC;AACD;;AAED,SAASd,SAAT,CAAmB1B,IAAnB,EAAyBF,GAAzB,EAA8B;AAC5BE,EAAAA,IAAI,CAACiB,QAAL,CAAc;AACZM,IAAAA,SAAS,EAAEC,YAAY,CAAC1B,GAAD;AADX,GAAd;AAMAE,EAAAA,IAAI,CAAC8E,WAAL,CAAiB;AAACC,IAAAA,gBAAgB,EAAE;AAAnB,GAAjB;AACD;;AAED,SAAS5C,YAAT,CAAsBnC,IAAtB,EAA4B;AAC1B,MAAIA,IAAI,CAACG,KAAL,CAAWU,QAAX,CAAoBC,UAAxB,EAAoC;AAClC;AACD;;AAED,QAAM6D,MAAM,GAAG,EAAf;AACA,MAAIK,UAAU,GAAG,CAAjB;AACAhF,EAAAA,IAAI,CAACG,KAAL,CAAWU,QAAX,CAAoBE,YAApB,CAAiCkE,OAAjC,CAAyCpC,SAAS,IAAI;AACpD,UAAMqC,SAAS,GAAGrC,SAAS,CAAC1C,KAAV,CAAgBgF,IAAlC;AACA,UAAMlD,KAAK,GAAG,IAAIiD,SAAJ,CAAcrC,SAAS,CAAC1C,KAAxB,EAA+B;AAACiF,MAAAA,OAAO,EAAEJ,UAAU;AAApB,KAA/B,CAAd;AACAL,IAAAA,MAAM,CAACU,IAAP,CAAYpD,KAAZ;AACD,GAJD;AAKAjC,EAAAA,IAAI,CAACiB,QAAL,CAAc;AAAC0D,IAAAA;AAAD,GAAd;AACD","sourcesContent":["import {Deck, WebMercatorViewport} from '@deck.gl/core';\n\nexport function getDeckInstance({map, gl, deck}) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck && deck.props._customRender;\n\n const deckProps = {\n useDevicePixels: true,\n _customRender: () => {\n map.triggerRepaint();\n if (customRender) {\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender();\n }\n },\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n blendEquation: gl.FUNC_ADD\n },\n userData: {\n isExternal: false,\n mapboxLayers: new Set()\n }\n };\n\n if (deck) {\n deck.setProps(deckProps);\n deck.props.userData.isExternal = true;\n } else {\n // Using external gl context - do not set css size\n Object.assign(deckProps, {\n gl,\n width: false,\n height: false,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n deck = new Deck(deckProps);\n\n // If deck is externally provided (React use case), we use deck's viewState to\n // drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deck, map));\n map.on('remove', () => {\n deck.finalize();\n map.__deck = null;\n });\n }\n deck.props.userData.mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\n}\n\nexport function addLayer(deck, layer) {\n deck.props.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck, layer) {\n deck.props.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\n\nexport function drawLayer(deck, map, layer) {\n let {currentViewport} = deck.props.userData;\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.props.userData.currentViewport = currentViewport;\n }\n if (!deck.layerManager) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nfunction getViewState(map) {\n const {lng, lat} = map.getCenter();\n return {\n longitude: lng,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch()\n };\n}\n\nfunction getMapboxVersion(map) {\n // parse mapbox version string\n let major = 0;\n let minor = 0;\n if (map.version) {\n [major, minor] = map.version\n .split('.')\n .slice(0, 2)\n .map(Number);\n }\n return {major, minor};\n}\n\nfunction getViewport(deck, map, useMapboxProjection = true) {\n const {mapboxVersion} = deck.props.userData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n repeat: map.getRenderWorldCopies()\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, map) {\n const {mapboxLayers, isExternal} = deck.props.userData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));\n if (hasNonMapboxLayers) {\n deck._drawLayers('mapbox-repaint', {\n viewports: [getViewport(deck, map, false)],\n layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n deck.props.userData.currentViewport = null;\n}\n\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck) {\n if (deck.props.userData.isExternal) {\n return;\n }\n\n const layers = [];\n let layerIndex = 0;\n deck.props.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props, {_offset: layerIndex++});\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n"],"file":"deck-utils.js"}
1
+ {"version":3,"sources":["../../src/deck-utils.js"],"names":["Deck","WebMercatorViewport","getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blendFunc","blendEquation","userData","isExternal","mapboxLayers","Set","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","setProps","finalize","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","id","clearCanvas","lng","lat","getCenter","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","major","minor","version","split","slice","Number","useMapboxProjection","x","y","repeat","getRenderWorldCopies","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","needsRedraw","clearRedrawFlags","layerIndex","forEach","LayerType","type","_offset","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport} from '@deck.gl/core';\n\nexport function getDeckInstance({map, gl, deck}) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck && deck.props._customRender;\n\n const deckProps = {\n useDevicePixels: true,\n _customRender: () => {\n map.triggerRepaint();\n if (customRender) {\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender();\n }\n },\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n blendEquation: gl.FUNC_ADD\n },\n userData: {\n isExternal: false,\n mapboxLayers: new Set()\n }\n };\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: false,\n height: false,\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(deck, map));\n }\n\n if (deck) {\n deck.setProps(deckProps);\n deck.props.userData.isExternal = true;\n } else {\n deck = new Deck(deckProps);\n map.on('remove', () => {\n deck.finalize();\n map.__deck = null;\n });\n }\n\n deck.props.userData.mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\n}\n\nexport function addLayer(deck, layer) {\n deck.props.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck, layer) {\n deck.props.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\n\nexport function drawLayer(deck, map, layer) {\n let {currentViewport} = deck.props.userData;\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.props.userData.currentViewport = currentViewport;\n }\n if (!deck.layerManager) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nfunction getViewState(map) {\n const {lng, lat} = map.getCenter();\n return {\n longitude: lng,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch()\n };\n}\n\nfunction getMapboxVersion(map) {\n // parse mapbox version string\n let major = 0;\n let minor = 0;\n if (map.version) {\n [major, minor] = map.version\n .split('.')\n .slice(0, 2)\n .map(Number);\n }\n return {major, minor};\n}\n\nfunction getViewport(deck, map, useMapboxProjection = true) {\n const {mapboxVersion} = deck.props.userData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n repeat: map.getRenderWorldCopies()\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, map) {\n const {mapboxLayers, isExternal} = deck.props.userData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));\n if (hasNonMapboxLayers) {\n deck._drawLayers('mapbox-repaint', {\n viewports: [getViewport(deck, map, false)],\n layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n deck.props.userData.currentViewport = null;\n}\n\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck) {\n if (deck.props.userData.isExternal) {\n return;\n }\n\n const layers = [];\n let layerIndex = 0;\n deck.props.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props, {_offset: layerIndex++});\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n"],"file":"deck-utils.js"}
package/dist.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("deck")):"function"==typeof define&&define.amd?define(["deck"],r):"object"==typeof exports?exports.deck=r(require("deck")):e.deck=r(e.deck)}(window,(function(e){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=4)}([function(r,t){r.exports=e},function(e,r){e.exports=function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}},function(e,r){function t(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}},function(e,r,t){var n=t(5),o=t(6),i=t(7);e.exports=function(e,r){return n(e)||o(e,r)||i()}},function(e,r,t){var n=t(8),o=("undefined"==typeof window?global:window).deck||{};if(!o.Layer)throw new Error("@deck.gl/core is not found");e.exports=Object.assign(o,n)},function(e,r){e.exports=function(e){if(Array.isArray(e))return e}},function(e,r){e.exports=function(e,r){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var t=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return t}}},function(e,r){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,r,t){"use strict";t.r(r);var n=t(1),o=t.n(n),i=t(2),a=t.n(i),u=t(3),s=t.n(u),c=t(0);function p(e){var r=e.map,t=e.gl,n=e.deck;if(r.__deck)return r.__deck;var o=n&&n.props._customRender,i={useDevicePixels:!0,_customRender:function(){r.triggerRepaint(),o&&o()},parameters:{depthMask:!0,depthTest:!0,blendFunc:[770,771,1,771],blendEquation:32774},userData:{isExternal:!1,mapboxLayers:new Set}};return n?(n.setProps(i),n.props.userData.isExternal=!0):(Object.assign(i,{gl:t,width:!1,height:!1,touchAction:"unset",viewState:l(r)}),n=new c.Deck(i),r.on("move",(function(){return function(e,r){e.setProps({viewState:l(r)}),e.needsRedraw({clearRedrawFlags:!0})}(n,r)})),r.on("remove",(function(){n.finalize(),r.__deck=null}))),n.props.userData.mapboxVersion=function(e){var r=0,t=0;if(e.version){var n=e.version.split(".").slice(0,2).map(Number),o=s()(n,2);r=o[0],t=o[1]}return{major:r,minor:t}}(r),r.__deck=n,r.on("render",(function(){n.layerManager&&function(e,r){var t=e.props.userData,n=t.mapboxLayers;if(t.isExternal){var o=Array.from(n,(function(e){return e.id}));e.props.layers.some((function(e){return!o.includes(e.id)}))&&e._drawLayers("mapbox-repaint",{viewports:[d(e,r,!1)],layerFilter:function(e){var r=e.layer;return!o.includes(r.id)},clearCanvas:!1})}e.props.userData.currentViewport=null}(n,r)})),n}function l(e){var r=e.getCenter();return{longitude:r.lng,latitude:r.lat,zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}function d(e,r){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=e.props.userData.mapboxVersion;return new c.WebMercatorViewport(Object.assign({x:0,y:0,width:e.width,height:e.height,repeat:r.getRenderWorldCopies()},l(r),t?{nearZMultiplier:1===n.major&&n.minor>=3||n.major>=2?.02:1/(e.height||1)}:{nearZMultiplier:.1}))}function f(e){if(!e.props.userData.isExternal){var r=[],t=0;e.props.userData.mapboxLayers.forEach((function(e){var n=new(0,e.props.type)(e.props,{_offset:t++});r.push(n)})),e.setProps({layers:r})}}var y=function(){function e(r){if(o()(this,e),!r.id)throw new Error("Layer must have an unique id");this.id=r.id,this.type="custom",this.renderingMode=r.renderingMode||"3d",this.map=null,this.deck=null,this.props=r}return a()(e,[{key:"onAdd",value:function(e,r){var t,n;this.map=e,this.deck=p({map:e,gl:r,deck:this.props.deck}),t=this.deck,n=this,t.props.userData.mapboxLayers.add(n),f(t)}},{key:"onRemove",value:function(){var e,r;e=this.deck,r=this,e.props.userData.mapboxLayers.delete(r),f(e)}},{key:"setProps",value:function(e){Object.assign(this.props,e,{id:this.id}),this.deck&&f(this.deck)}},{key:"render",value:function(e,r){var t,n,o,i;t=this.deck,n=this.map,o=this,(i=t.props.userData.currentViewport)||(i=d(t,n,!0),t.props.userData.currentViewport=i),t.layerManager&&t._drawLayers("mapbox-repaint",{viewports:[i],layerFilter:function(e){var r=e.layer;return o.id===r.id},clearCanvas:!1})}}]),e}();t.d(r,"MapboxLayer",(function(){return y}))}])}));
1
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("deck")):"function"==typeof define&&define.amd?define(["deck"],r):"object"==typeof exports?exports.deck=r(require("deck")):e.deck=r(e.deck)}(window,(function(e){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=4)}([function(r,t){r.exports=e},function(e,r){e.exports=function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}},function(e,r){function t(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}},function(e,r,t){var n=t(5),o=t(6),i=t(7);e.exports=function(e,r){return n(e)||o(e,r)||i()}},function(e,r,t){var n=t(8),o=("undefined"==typeof window?global:window).deck||{};if(!o.Layer)throw new Error("@deck.gl/core is not found");e.exports=Object.assign(o,n)},function(e,r){e.exports=function(e){if(Array.isArray(e))return e}},function(e,r){e.exports=function(e,r){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var t=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return t}}},function(e,r){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,r,t){"use strict";t.r(r);var n=t(1),o=t.n(n),i=t(2),a=t.n(i),u=t(3),s=t.n(u),c=t(0);function p(e){var r=e.map,t=e.gl,n=e.deck;if(r.__deck)return r.__deck;var o=n&&n.props._customRender,i={useDevicePixels:!0,_customRender:function(){r.triggerRepaint(),o&&o()},parameters:{depthMask:!0,depthTest:!0,blendFunc:[770,771,1,771],blendEquation:32774},userData:{isExternal:!1,mapboxLayers:new Set}};return n&&n.props.gl!==t||(Object.assign(i,{gl:t,width:!1,height:!1,touchAction:"unset",viewState:l(r)}),r.on("move",(function(){return function(e,r){e.setProps({viewState:l(r)}),e.needsRedraw({clearRedrawFlags:!0})}(n,r)}))),n?(n.setProps(i),n.props.userData.isExternal=!0):(n=new c.Deck(i),r.on("remove",(function(){n.finalize(),r.__deck=null}))),n.props.userData.mapboxVersion=function(e){var r=0,t=0;if(e.version){var n=e.version.split(".").slice(0,2).map(Number),o=s()(n,2);r=o[0],t=o[1]}return{major:r,minor:t}}(r),r.__deck=n,r.on("render",(function(){n.layerManager&&function(e,r){var t=e.props.userData,n=t.mapboxLayers;if(t.isExternal){var o=Array.from(n,(function(e){return e.id}));e.props.layers.some((function(e){return!o.includes(e.id)}))&&e._drawLayers("mapbox-repaint",{viewports:[d(e,r,!1)],layerFilter:function(e){var r=e.layer;return!o.includes(r.id)},clearCanvas:!1})}e.props.userData.currentViewport=null}(n,r)})),n}function l(e){var r=e.getCenter();return{longitude:r.lng,latitude:r.lat,zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}function d(e,r){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=e.props.userData.mapboxVersion;return new c.WebMercatorViewport(Object.assign({x:0,y:0,width:e.width,height:e.height,repeat:r.getRenderWorldCopies()},l(r),t?{nearZMultiplier:1===n.major&&n.minor>=3||n.major>=2?.02:1/(e.height||1)}:{nearZMultiplier:.1}))}function f(e){if(!e.props.userData.isExternal){var r=[],t=0;e.props.userData.mapboxLayers.forEach((function(e){var n=new(0,e.props.type)(e.props,{_offset:t++});r.push(n)})),e.setProps({layers:r})}}var y=function(){function e(r){if(o()(this,e),!r.id)throw new Error("Layer must have an unique id");this.id=r.id,this.type="custom",this.renderingMode=r.renderingMode||"3d",this.map=null,this.deck=null,this.props=r}return a()(e,[{key:"onAdd",value:function(e,r){var t,n;this.map=e,this.deck=p({map:e,gl:r,deck:this.props.deck}),t=this.deck,n=this,t.props.userData.mapboxLayers.add(n),f(t)}},{key:"onRemove",value:function(){var e,r;e=this.deck,r=this,e.props.userData.mapboxLayers.delete(r),f(e)}},{key:"setProps",value:function(e){Object.assign(this.props,e,{id:this.id}),this.deck&&f(this.deck)}},{key:"render",value:function(e,r){var t,n,o,i;t=this.deck,n=this.map,o=this,(i=t.props.userData.currentViewport)||(i=d(t,n,!0),t.props.userData.currentViewport=i),t.layerManager&&t._drawLayers("mapbox-repaint",{viewports:[i],layerFilter:function(e){var r=e.layer;return o.id===r.id},clearCanvas:!1})}}]),e}();t.d(r,"MapboxLayer",(function(){return y}))}])}));
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.6.8",
5
+ "version": "8.6.9",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -31,5 +31,5 @@
31
31
  "peerDependencies": {
32
32
  "@deck.gl/core": "^8.0.0"
33
33
  },
34
- "gitHead": "5a252f2cb2de10ceeb20a0ecf353034de5366e65"
34
+ "gitHead": "66cf53bc771d97aeb2d09b114f0bc53ece947d63"
35
35
  }
package/src/deck-utils.js CHANGED
@@ -31,11 +31,9 @@ export function getDeckInstance({map, gl, deck}) {
31
31
  }
32
32
  };
33
33
 
34
- if (deck) {
35
- deck.setProps(deckProps);
36
- deck.props.userData.isExternal = true;
37
- } else {
38
- // Using external gl context - do not set css size
34
+ if (!deck || deck.props.gl === gl) {
35
+ // deck is using the WebGLContext created by mapbox
36
+ // block deck from setting the canvas size
39
37
  Object.assign(deckProps, {
40
38
  gl,
41
39
  width: false,
@@ -43,17 +41,22 @@ export function getDeckInstance({map, gl, deck}) {
43
41
  touchAction: 'unset',
44
42
  viewState: getViewState(map)
45
43
  });
46
- deck = new Deck(deckProps);
47
-
48
- // If deck is externally provided (React use case), we use deck's viewState to
49
- // drive the map.
44
+ // If using the WebGLContext created by deck (React use case), we use deck's viewState to drive the map.
50
45
  // Otherwise (pure JS use case), we use the map's viewState to drive deck.
51
46
  map.on('move', () => onMapMove(deck, map));
47
+ }
48
+
49
+ if (deck) {
50
+ deck.setProps(deckProps);
51
+ deck.props.userData.isExternal = true;
52
+ } else {
53
+ deck = new Deck(deckProps);
52
54
  map.on('remove', () => {
53
55
  deck.finalize();
54
56
  map.__deck = null;
55
57
  });
56
58
  }
59
+
57
60
  deck.props.userData.mapboxVersion = getMapboxVersion(map);
58
61
  map.__deck = deck;
59
62
  map.on('render', () => {