@deck.gl/mapbox 8.8.0-alpha.3 → 8.8.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.dev.js CHANGED
@@ -103,7 +103,8 @@ return /******/ (function(modules) { // webpackBootstrap
103
103
  /*! no static exports found */
104
104
  /***/ (function(module, exports, __webpack_require__) {
105
105
 
106
- const MapboxUtils = __webpack_require__(/*! ./src */ "./src/index.ts");
106
+ const MapboxUtils = __webpack_require__(/*! ./src */ "./src/index.ts"); // @ts-ignore (2339) undefined property
107
+
107
108
 
108
109
  const deck = globalThis.deck || {}; // Check if peer dependencies are included
109
110
 
@@ -115,9 +116,9 @@ module.exports = Object.assign(deck, MapboxUtils);
115
116
 
116
117
  /***/ }),
117
118
 
118
- /***/ "./src/deck-utils.js":
119
+ /***/ "./src/deck-utils.ts":
119
120
  /*!***************************!*\
120
- !*** ./src/deck-utils.js ***!
121
+ !*** ./src/deck-utils.ts ***!
121
122
  \***************************/
122
123
  /*! exports provided: getDeckInstance, addLayer, removeLayer, updateLayer, drawLayer, getViewState */
123
124
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -143,17 +144,14 @@ function getDeckInstance({
143
144
  return map.__deck;
144
145
  }
145
146
 
146
- const customRender = deck && deck.props._customRender;
147
+ const customRender = deck?.props._customRender;
147
148
  const deckProps = {
148
149
  useDevicePixels: true,
149
- _customRender: () => {
150
- map.triggerRepaint();
150
+ _customRender: reason => {
151
+ map.triggerRepaint(); // customRender may be subscribed by DeckGL React component to update child props
152
+ // make sure it is still called
151
153
 
152
- if (customRender) {
153
- // customRender may be subscribed by DeckGL React component to update child props
154
- // make sure it is still called
155
- customRender();
156
- }
154
+ customRender?.(reason);
157
155
  },
158
156
  // TODO: import these defaults from a single source of truth
159
157
  parameters: {
@@ -165,10 +163,6 @@ function getDeckInstance({
165
163
  depthFunc: gl.LEQUAL,
166
164
  blendEquation: gl.FUNC_ADD
167
165
  },
168
- userData: {
169
- isExternal: false,
170
- mapboxLayers: new Set()
171
- },
172
166
  views: deck && deck.props.views || [new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MapView"]({
173
167
  id: 'mapbox'
174
168
  })]
@@ -179,8 +173,8 @@ function getDeckInstance({
179
173
  // block deck from setting the canvas size
180
174
  Object.assign(deckProps, {
181
175
  gl,
182
- width: false,
183
- height: false,
176
+ width: null,
177
+ height: null,
184
178
  touchAction: 'unset',
185
179
  viewState: getViewState(map)
186
180
  }); // If using the WebGLContext created by deck (React use case), we use deck's viewState to drive the map.
@@ -191,7 +185,7 @@ function getDeckInstance({
191
185
 
192
186
  if (deck) {
193
187
  deck.setProps(deckProps);
194
- deck.props.userData.isExternal = true;
188
+ deck.userData.isExternal = true;
195
189
  } else {
196
190
  deck = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["Deck"](deckProps);
197
191
  map.on('remove', () => {
@@ -200,19 +194,21 @@ function getDeckInstance({
200
194
  });
201
195
  }
202
196
 
203
- deck.props.userData.mapboxVersion = getMapboxVersion(map);
197
+ deck.userData.mapboxLayers = new Set();
198
+ deck.userData.mapboxVersion = getMapboxVersion(map);
204
199
  map.__deck = deck;
205
200
  map.on('render', () => {
201
+ // @ts-expect-error (2445) protected property
206
202
  if (deck.layerManager) afterRender(deck, map);
207
203
  });
208
204
  return deck;
209
205
  }
210
206
  function addLayer(deck, layer) {
211
- deck.props.userData.mapboxLayers.add(layer);
207
+ deck.userData.mapboxLayers.add(layer);
212
208
  updateLayers(deck);
213
209
  }
214
210
  function removeLayer(deck, layer) {
215
- deck.props.userData.mapboxLayers.delete(layer);
211
+ deck.userData.mapboxLayers.delete(layer);
216
212
  updateLayers(deck);
217
213
  }
218
214
  function updateLayer(deck, layer) {
@@ -221,14 +217,15 @@ function updateLayer(deck, layer) {
221
217
  function drawLayer(deck, map, layer) {
222
218
  let {
223
219
  currentViewport
224
- } = deck.props.userData;
220
+ } = deck.userData;
225
221
 
226
222
  if (!currentViewport) {
227
223
  // This is the first layer drawn in this render cycle.
228
224
  // Generate viewport from the current map state.
229
225
  currentViewport = getViewport(deck, map, true);
230
- deck.props.userData.currentViewport = currentViewport;
231
- }
226
+ deck.userData.currentViewport = currentViewport;
227
+ } // @ts-expect-error (2445) protected property
228
+
232
229
 
233
230
  if (!deck.layerManager) {
234
231
  return;
@@ -248,7 +245,9 @@ function getViewState(map) {
248
245
  lat
249
246
  } = map.getCenter();
250
247
  return {
251
- longitude: lng,
248
+ // Longitude returned by getCenter can be outside of [-180, 180] when zooming near the anti meridian
249
+ // https://github.com/visgl/deck.gl/issues/6894
250
+ longitude: (lng + 540) % 360 - 180,
252
251
  latitude: lat,
253
252
  zoom: map.getZoom(),
254
253
  bearing: map.getBearing(),
@@ -260,10 +259,12 @@ function getViewState(map) {
260
259
  function getMapboxVersion(map) {
261
260
  // parse mapbox version string
262
261
  let major = 0;
263
- let minor = 0;
262
+ let minor = 0; // @ts-ignore (2339) undefined property
264
263
 
265
- if (map.version) {
266
- [major, minor] = map.version.split('.').slice(0, 2).map(Number);
264
+ const version = map.version;
265
+
266
+ if (version) {
267
+ [major, minor] = version.split('.').slice(0, 2).map(Number);
267
268
  }
268
269
 
269
270
  return {
@@ -275,7 +276,7 @@ function getMapboxVersion(map) {
275
276
  function getViewport(deck, map, useMapboxProjection = true) {
276
277
  const {
277
278
  mapboxVersion
278
- } = deck.props.userData;
279
+ } = deck.userData;
279
280
  return new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["WebMercatorViewport"](Object.assign({
280
281
  id: 'mapbox',
281
282
  x: 0,
@@ -297,12 +298,13 @@ function afterRender(deck, map) {
297
298
  const {
298
299
  mapboxLayers,
299
300
  isExternal
300
- } = deck.props.userData;
301
+ } = deck.userData;
301
302
 
302
303
  if (isExternal) {
303
304
  // Draw non-Mapbox layers
304
305
  const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);
305
- const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));
306
+ const deckLayers = Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["_flatten"])(deck.props.layers, Boolean);
307
+ const hasNonMapboxLayers = deckLayers.some(layer => layer && !mapboxLayerIds.includes(layer.id));
306
308
  let viewports = deck.getViewports();
307
309
  const mapboxViewportIdx = viewports.findIndex(vp => vp.id === 'mapbox');
308
310
  const hasNonMapboxViews = viewports.length > 1 || mapboxViewportIdx < 0;
@@ -322,7 +324,7 @@ function afterRender(deck, map) {
322
324
  } // End of render cycle, clear generated viewport
323
325
 
324
326
 
325
- deck.props.userData.currentViewport = null;
327
+ deck.userData.currentViewport = null;
326
328
  }
327
329
 
328
330
  function onMapMove(deck, map) {
@@ -338,13 +340,13 @@ function onMapMove(deck, map) {
338
340
  }
339
341
 
340
342
  function updateLayers(deck) {
341
- if (deck.props.userData.isExternal) {
343
+ if (deck.userData.isExternal) {
342
344
  return;
343
345
  }
344
346
 
345
347
  const layers = [];
346
348
  let layerIndex = 0;
347
- deck.props.userData.mapboxLayers.forEach(deckLayer => {
349
+ deck.userData.mapboxLayers.forEach(deckLayer => {
348
350
  const LayerType = deckLayer.props.type;
349
351
  const layer = new LayerType(deckLayer.props, {
350
352
  _offset: layerIndex++
@@ -367,7 +369,7 @@ function updateLayers(deck) {
367
369
 
368
370
  "use strict";
369
371
  __webpack_require__.r(__webpack_exports__);
370
- /* harmony import */ var _mapbox_layer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mapbox-layer */ "./src/mapbox-layer.js");
372
+ /* harmony import */ var _mapbox_layer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mapbox-layer */ "./src/mapbox-layer.ts");
371
373
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MapboxLayer", function() { return _mapbox_layer__WEBPACK_IMPORTED_MODULE_0__["default"]; });
372
374
 
373
375
  /* harmony import */ var _mapbox_overlay__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mapbox-overlay */ "./src/mapbox-overlay.ts");
@@ -378,9 +380,9 @@ __webpack_require__.r(__webpack_exports__);
378
380
 
379
381
  /***/ }),
380
382
 
381
- /***/ "./src/mapbox-layer.js":
383
+ /***/ "./src/mapbox-layer.ts":
382
384
  /*!*****************************!*\
383
- !*** ./src/mapbox-layer.js ***!
385
+ !*** ./src/mapbox-layer.ts ***!
384
386
  \*****************************/
385
387
  /*! exports provided: default */
386
388
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -388,11 +390,25 @@ __webpack_require__.r(__webpack_exports__);
388
390
  "use strict";
389
391
  __webpack_require__.r(__webpack_exports__);
390
392
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MapboxLayer; });
391
- /* harmony import */ var _deck_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deck-utils */ "./src/deck-utils.js");
393
+ /* harmony import */ var _deck_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deck-utils */ "./src/deck-utils.ts");
394
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
395
+
392
396
 
393
397
  class MapboxLayer {
394
398
  /* eslint-disable no-this-before-super */
395
399
  constructor(props) {
400
+ _defineProperty(this, "id", void 0);
401
+
402
+ _defineProperty(this, "type", void 0);
403
+
404
+ _defineProperty(this, "renderingMode", void 0);
405
+
406
+ _defineProperty(this, "map", void 0);
407
+
408
+ _defineProperty(this, "deck", void 0);
409
+
410
+ _defineProperty(this, "props", void 0);
411
+
396
412
  if (!props.id) {
397
413
  throw new Error('Layer must have an unique id');
398
414
  }
@@ -418,7 +434,9 @@ class MapboxLayer {
418
434
  }
419
435
 
420
436
  onRemove() {
421
- Object(_deck_utils__WEBPACK_IMPORTED_MODULE_0__["removeLayer"])(this.deck, this);
437
+ if (this.deck) {
438
+ Object(_deck_utils__WEBPACK_IMPORTED_MODULE_0__["removeLayer"])(this.deck, this);
439
+ }
422
440
  }
423
441
 
424
442
  setProps(props) {
@@ -432,7 +450,7 @@ class MapboxLayer {
432
450
  }
433
451
  }
434
452
 
435
- render(gl, matrix) {
453
+ render() {
436
454
  Object(_deck_utils__WEBPACK_IMPORTED_MODULE_0__["drawLayer"])(this.deck, this.map, this);
437
455
  }
438
456
 
@@ -452,7 +470,7 @@ __webpack_require__.r(__webpack_exports__);
452
470
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MapboxOverlay; });
453
471
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
454
472
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
455
- /* harmony import */ var _deck_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deck-utils */ "./src/deck-utils.js");
473
+ /* harmony import */ var _deck_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deck-utils */ "./src/deck-utils.ts");
456
474
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
457
475
 
458
476
 
@@ -490,11 +508,12 @@ class MapboxOverlay {
490
508
  const deck = this._deck;
491
509
 
492
510
  if (deck) {
511
+ // @ts-ignore (2345) map is always defined if deck is
493
512
  deck.setProps({
494
513
  viewState: Object(_deck_utils__WEBPACK_IMPORTED_MODULE_1__["getViewState"])(this._map)
495
514
  }); // Redraw immediately if view state has changed
496
515
 
497
- deck.redraw(false);
516
+ deck.redraw();
498
517
  }
499
518
  });
500
519
 
@@ -513,11 +532,9 @@ class MapboxOverlay {
513
532
 
514
533
  switch (event.type) {
515
534
  case 'click':
516
- // Hack: because we do not listen to pointer down, perform picking now
517
- deck._lastPointerDownInfo = deck.pickObject({ ...mockEvent.offsetCenter,
518
- radius: deck.props.pickingRadius
519
- });
520
- mockEvent.tapCount = 1;
535
+ mockEvent.tapCount = 1; // Hack: because we do not listen to pointer down, perform picking now
536
+
537
+ deck._onPointerDown(mockEvent);
521
538
 
522
539
  deck._onEvent(mockEvent);
523
540
 
@@ -613,6 +630,7 @@ class MapboxOverlay {
613
630
  }
614
631
 
615
632
  this._deck?.finalize();
633
+ this._deck = undefined;
616
634
  this._map = undefined;
617
635
  this._container = undefined;
618
636
  }
@@ -624,19 +642,22 @@ class MapboxOverlay {
624
642
 
625
643
 
626
644
  pickObject(params) {
627
- return this._deck && this._deck.pickObject(params);
645
+ Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["assert"])(this._deck);
646
+ return this._deck.pickObject(params);
628
647
  }
629
648
  /** Forwards the Deck.pickMultipleObjects method */
630
649
 
631
650
 
632
651
  pickMultipleObjects(params) {
633
- return this._deck && this._deck.pickMultipleObjects(params);
652
+ Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["assert"])(this._deck);
653
+ return this._deck.pickMultipleObjects(params);
634
654
  }
635
655
  /** Forwards the Deck.pickObjects method */
636
656
 
637
657
 
638
658
  pickObjects(params) {
639
- return this._deck && this._deck.pickObjects(params);
659
+ Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["assert"])(this._deck);
660
+ return this._deck.pickObjects(params);
640
661
  }
641
662
  /** Remove from map and releases all resources */
642
663
 
@@ -17,6 +17,8 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
17
17
  var _core = require("@deck.gl/core");
18
18
 
19
19
  function getDeckInstance(_ref) {
20
+ var _deck;
21
+
20
22
  var map = _ref.map,
21
23
  gl = _ref.gl,
22
24
  deck = _ref.deck;
@@ -25,15 +27,12 @@ function getDeckInstance(_ref) {
25
27
  return map.__deck;
26
28
  }
27
29
 
28
- var customRender = deck && deck.props._customRender;
30
+ var customRender = (_deck = deck) === null || _deck === void 0 ? void 0 : _deck.props._customRender;
29
31
  var deckProps = {
30
32
  useDevicePixels: true,
31
- _customRender: function _customRender() {
33
+ _customRender: function _customRender(reason) {
32
34
  map.triggerRepaint();
33
-
34
- if (customRender) {
35
- customRender();
36
- }
35
+ customRender === null || customRender === void 0 ? void 0 : customRender(reason);
37
36
  },
38
37
  parameters: {
39
38
  depthMask: true,
@@ -44,10 +43,6 @@ function getDeckInstance(_ref) {
44
43
  depthFunc: 515,
45
44
  blendEquation: 32774
46
45
  },
47
- userData: {
48
- isExternal: false,
49
- mapboxLayers: new Set()
50
- },
51
46
  views: deck && deck.props.views || [new _core.MapView({
52
47
  id: 'mapbox'
53
48
  })]
@@ -56,8 +51,8 @@ function getDeckInstance(_ref) {
56
51
  if (!deck || deck.props.gl === gl) {
57
52
  Object.assign(deckProps, {
58
53
  gl: gl,
59
- width: false,
60
- height: false,
54
+ width: null,
55
+ height: null,
61
56
  touchAction: 'unset',
62
57
  viewState: getViewState(map)
63
58
  });
@@ -68,7 +63,7 @@ function getDeckInstance(_ref) {
68
63
 
69
64
  if (deck) {
70
65
  deck.setProps(deckProps);
71
- deck.props.userData.isExternal = true;
66
+ deck.userData.isExternal = true;
72
67
  } else {
73
68
  deck = new _core.Deck(deckProps);
74
69
  map.on('remove', function () {
@@ -77,7 +72,8 @@ function getDeckInstance(_ref) {
77
72
  });
78
73
  }
79
74
 
80
- deck.props.userData.mapboxVersion = getMapboxVersion(map);
75
+ deck.userData.mapboxLayers = new Set();
76
+ deck.userData.mapboxVersion = getMapboxVersion(map);
81
77
  map.__deck = deck;
82
78
  map.on('render', function () {
83
79
  if (deck.layerManager) afterRender(deck, map);
@@ -86,12 +82,12 @@ function getDeckInstance(_ref) {
86
82
  }
87
83
 
88
84
  function addLayer(deck, layer) {
89
- deck.props.userData.mapboxLayers.add(layer);
85
+ deck.userData.mapboxLayers.add(layer);
90
86
  updateLayers(deck);
91
87
  }
92
88
 
93
89
  function removeLayer(deck, layer) {
94
- deck.props.userData.mapboxLayers.delete(layer);
90
+ deck.userData.mapboxLayers.delete(layer);
95
91
  updateLayers(deck);
96
92
  }
97
93
 
@@ -100,11 +96,12 @@ function updateLayer(deck, layer) {
100
96
  }
101
97
 
102
98
  function drawLayer(deck, map, layer) {
103
- var currentViewport = deck.props.userData.currentViewport;
99
+ var _ref2 = deck.userData,
100
+ currentViewport = _ref2.currentViewport;
104
101
 
105
102
  if (!currentViewport) {
106
103
  currentViewport = getViewport(deck, map, true);
107
- deck.props.userData.currentViewport = currentViewport;
104
+ deck.userData.currentViewport = currentViewport;
108
105
  }
109
106
 
110
107
  if (!deck.layerManager) {
@@ -113,8 +110,8 @@ function drawLayer(deck, map, layer) {
113
110
 
114
111
  deck._drawLayers('mapbox-repaint', {
115
112
  viewports: [currentViewport],
116
- layerFilter: function layerFilter(_ref2) {
117
- var deckLayer = _ref2.layer;
113
+ layerFilter: function layerFilter(_ref3) {
114
+ var deckLayer = _ref3.layer;
118
115
  return layer.id === deckLayer.id;
119
116
  },
120
117
  clearCanvas: false
@@ -127,7 +124,7 @@ function getViewState(map) {
127
124
  lat = _map$getCenter.lat;
128
125
 
129
126
  return {
130
- longitude: lng,
127
+ longitude: (lng + 540) % 360 - 180,
131
128
  latitude: lat,
132
129
  zoom: map.getZoom(),
133
130
  bearing: map.getBearing(),
@@ -139,14 +136,15 @@ function getViewState(map) {
139
136
  function getMapboxVersion(map) {
140
137
  var major = 0;
141
138
  var minor = 0;
139
+ var version = map.version;
142
140
 
143
- if (map.version) {
144
- var _map$version$split$sl = map.version.split('.').slice(0, 2).map(Number);
141
+ if (version) {
142
+ var _version$split$slice$ = version.split('.').slice(0, 2).map(Number);
145
143
 
146
- var _map$version$split$sl2 = (0, _slicedToArray2.default)(_map$version$split$sl, 2);
144
+ var _version$split$slice$2 = (0, _slicedToArray2.default)(_version$split$slice$, 2);
147
145
 
148
- major = _map$version$split$sl2[0];
149
- minor = _map$version$split$sl2[1];
146
+ major = _version$split$slice$2[0];
147
+ minor = _version$split$slice$2[1];
150
148
  }
151
149
 
152
150
  return {
@@ -157,7 +155,8 @@ function getMapboxVersion(map) {
157
155
 
158
156
  function getViewport(deck, map) {
159
157
  var useMapboxProjection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
160
- var mapboxVersion = deck.props.userData.mapboxVersion;
158
+ var _ref4 = deck.userData,
159
+ mapboxVersion = _ref4.mapboxVersion;
161
160
  return new _core.WebMercatorViewport(Object.assign({
162
161
  id: 'mapbox',
163
162
  x: 0,
@@ -172,16 +171,17 @@ function getViewport(deck, map) {
172
171
  }
173
172
 
174
173
  function afterRender(deck, map) {
175
- var _deck$props$userData = deck.props.userData,
176
- mapboxLayers = _deck$props$userData.mapboxLayers,
177
- isExternal = _deck$props$userData.isExternal;
174
+ var _ref5 = deck.userData,
175
+ mapboxLayers = _ref5.mapboxLayers,
176
+ isExternal = _ref5.isExternal;
178
177
 
179
178
  if (isExternal) {
180
179
  var mapboxLayerIds = Array.from(mapboxLayers, function (layer) {
181
180
  return layer.id;
182
181
  });
183
- var hasNonMapboxLayers = deck.props.layers.some(function (layer) {
184
- return !mapboxLayerIds.includes(layer.id);
182
+ var deckLayers = (0, _core._flatten)(deck.props.layers, Boolean);
183
+ var hasNonMapboxLayers = deckLayers.some(function (layer) {
184
+ return layer && !mapboxLayerIds.includes(layer.id);
185
185
  });
186
186
  var viewports = deck.getViewports();
187
187
  var mapboxViewportIdx = viewports.findIndex(function (vp) {
@@ -205,7 +205,7 @@ function afterRender(deck, map) {
205
205
  }
206
206
  }
207
207
 
208
- deck.props.userData.currentViewport = null;
208
+ deck.userData.currentViewport = null;
209
209
  }
210
210
 
211
211
  function onMapMove(deck, map) {
@@ -218,13 +218,13 @@ function onMapMove(deck, map) {
218
218
  }
219
219
 
220
220
  function updateLayers(deck) {
221
- if (deck.props.userData.isExternal) {
221
+ if (deck.userData.isExternal) {
222
222
  return;
223
223
  }
224
224
 
225
225
  var layers = [];
226
226
  var layerIndex = 0;
227
- deck.props.userData.mapboxLayers.forEach(function (deckLayer) {
227
+ deck.userData.mapboxLayers.forEach(function (deckLayer) {
228
228
  var LayerType = deckLayer.props.type;
229
229
  var layer = new LayerType(deckLayer.props, {
230
230
  _offset: layerIndex++
@@ -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","blend","blendFunc","polygonOffsetFill","depthFunc","blendEquation","userData","isExternal","mapboxLayers","Set","views","MapView","id","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","clearCanvas","getCenter","lng","lat","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","repeat","getRenderWorldCopies","major","minor","version","split","slice","Number","useMapboxProjection","WebMercatorViewport","x","y","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","getViewports","mapboxViewportIdx","findIndex","vp","hasNonMapboxViews","length","params","viewport","needsRedraw","clearRedrawFlags","layerIndex","forEach","LayerType","type","_offset","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport, MapView} 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 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 userData: {\n isExternal: false,\n mapboxLayers: new Set()\n },\n views: (deck && deck.props.views) || [new MapView({id: 'mapbox'})]\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\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nexport function 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 repeat: map.getRenderWorldCopies()\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.split('.').slice(0, 2).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 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, 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 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.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.ts"],"names":["getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","reason","triggerRepaint","parameters","depthMask","depthTest","blend","blendFunc","polygonOffsetFill","depthFunc","blendEquation","views","MapView","id","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","setProps","userData","isExternal","Deck","finalize","mapboxLayers","Set","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","clearCanvas","getCenter","lng","lat","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","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","layerIndex","forEach","LayerType","type","_offset","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: (reason: string) => {\n map.triggerRepaint();\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender?.(reason);\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 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(deck!, map));\n }\n\n if (deck) {\n deck.setProps(deckProps);\n (deck.userData as 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.userData as UserData).mapboxLayers = new Set();\n (deck.userData as UserData).mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n // @ts-expect-error (2445) protected property\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\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 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 }\n\n // @ts-expect-error (2445) protected property\n if (!deck.layerManager) {\n return;\n }\n\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nexport function getViewState(map: Map): MapViewState & {repeat: boolean} {\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 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 let layerIndex = 0;\n (deck.userData as 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"}
@@ -11,11 +11,19 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
11
11
 
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _deckUtils = require("./deck-utils");
15
17
 
16
18
  var MapboxLayer = function () {
17
19
  function MapboxLayer(props) {
18
20
  (0, _classCallCheck2.default)(this, MapboxLayer);
21
+ (0, _defineProperty2.default)(this, "id", void 0);
22
+ (0, _defineProperty2.default)(this, "type", void 0);
23
+ (0, _defineProperty2.default)(this, "renderingMode", void 0);
24
+ (0, _defineProperty2.default)(this, "map", void 0);
25
+ (0, _defineProperty2.default)(this, "deck", void 0);
26
+ (0, _defineProperty2.default)(this, "props", void 0);
19
27
 
20
28
  if (!props.id) {
21
29
  throw new Error('Layer must have an unique id');
@@ -43,7 +51,9 @@ var MapboxLayer = function () {
43
51
  }, {
44
52
  key: "onRemove",
45
53
  value: function onRemove() {
46
- (0, _deckUtils.removeLayer)(this.deck, this);
54
+ if (this.deck) {
55
+ (0, _deckUtils.removeLayer)(this.deck, this);
56
+ }
47
57
  }
48
58
  }, {
49
59
  key: "setProps",
@@ -58,7 +68,7 @@ var MapboxLayer = function () {
58
68
  }
59
69
  }, {
60
70
  key: "render",
61
- value: function render(gl, matrix) {
71
+ value: function render() {
62
72
  (0, _deckUtils.drawLayer)(this.deck, this.map, this);
63
73
  }
64
74
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mapbox-layer.js"],"names":["MapboxLayer","props","id","Error","type","renderingMode","map","deck","gl","Object","assign","matrix"],"mappings":";;;;;;;;;;;;;AAAA;;IAEqBA,W;AAEnB,uBAAYC,KAAZ,EAAmB;AAAA;;AACjB,QAAI,CAACA,KAAK,CAACC,EAAX,EAAe;AACb,YAAM,IAAIC,KAAJ,CAAU,8BAAV,CAAN;AACD;;AAED,SAAKD,EAAL,GAAUD,KAAK,CAACC,EAAhB;AACA,SAAKE,IAAL,GAAY,QAAZ;AACA,SAAKC,aAAL,GAAqBJ,KAAK,CAACI,aAAN,IAAuB,IAA5C;AACA,SAAKC,GAAL,GAAW,IAAX;AACA,SAAKC,IAAL,GAAY,IAAZ;AACA,SAAKN,KAAL,GAAaA,KAAb;AACD;;;;WAID,eAAMK,GAAN,EAAWE,EAAX,EAAe;AACb,WAAKF,GAAL,GAAWA,GAAX;AACA,WAAKC,IAAL,GAAY,gCAAgB;AAACD,QAAAA,GAAG,EAAHA,GAAD;AAAME,QAAAA,EAAE,EAAFA,EAAN;AAAUD,QAAAA,IAAI,EAAE,KAAKN,KAAL,CAAWM;AAA3B,OAAhB,CAAZ;AACA,+BAAS,KAAKA,IAAd,EAAoB,IAApB;AACD;;;WAED,oBAAW;AACT,kCAAY,KAAKA,IAAjB,EAAuB,IAAvB;AACD;;;WAED,kBAASN,KAAT,EAAgB;AAEdQ,MAAAA,MAAM,CAACC,MAAP,CAAc,KAAKT,KAAnB,EAA0BA,KAA1B,EAAiC;AAACC,QAAAA,EAAE,EAAE,KAAKA;AAAV,OAAjC;;AAEA,UAAI,KAAKK,IAAT,EAAe;AACb,oCAAY,KAAKA,IAAjB,EAAuB,IAAvB;AACD;AACF;;;WAED,gBAAOC,EAAP,EAAWG,MAAX,EAAmB;AACjB,gCAAU,KAAKJ,IAAf,EAAqB,KAAKD,GAA1B,EAA+B,IAA/B;AACD","sourcesContent":["import {getDeckInstance, addLayer, removeLayer, updateLayer, drawLayer} from './deck-utils';\n\nexport default class MapboxLayer {\n /* eslint-disable no-this-before-super */\n constructor(props) {\n if (!props.id) {\n throw new Error('Layer must have an unique id');\n }\n\n this.id = props.id;\n this.type = 'custom';\n this.renderingMode = props.renderingMode || '3d';\n this.map = null;\n this.deck = null;\n this.props = props;\n }\n\n /* Mapbox custom layer methods */\n\n onAdd(map, gl) {\n this.map = map;\n this.deck = getDeckInstance({map, gl, deck: this.props.deck});\n addLayer(this.deck, this);\n }\n\n onRemove() {\n removeLayer(this.deck, this);\n }\n\n setProps(props) {\n // id cannot be changed\n Object.assign(this.props, props, {id: this.id});\n // safe guard in case setProps is called before onAdd\n if (this.deck) {\n updateLayer(this.deck, this);\n }\n }\n\n render(gl, matrix) {\n drawLayer(this.deck, this.map, this);\n }\n}\n"],"file":"mapbox-layer.js"}
1
+ {"version":3,"sources":["../../src/mapbox-layer.ts"],"names":["MapboxLayer","props","id","Error","type","renderingMode","map","deck","gl","Object","assign"],"mappings":";;;;;;;;;;;;;;;AAAA;;IAQqBA,W;AASnB,uBAAYC,KAAZ,EAA6C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAC3C,QAAI,CAACA,KAAK,CAACC,EAAX,EAAe;AACb,YAAM,IAAIC,KAAJ,CAAU,8BAAV,CAAN;AACD;;AAED,SAAKD,EAAL,GAAUD,KAAK,CAACC,EAAhB;AACA,SAAKE,IAAL,GAAY,QAAZ;AACA,SAAKC,aAAL,GAAqBJ,KAAK,CAACI,aAAN,IAAuB,IAA5C;AACA,SAAKC,GAAL,GAAW,IAAX;AACA,SAAKC,IAAL,GAAY,IAAZ;AACA,SAAKN,KAAL,GAAaA,KAAb;AACD;;;;WAID,eAAMK,GAAN,EAAgBE,EAAhB,EAAiD;AAC/C,WAAKF,GAAL,GAAWA,GAAX;AACA,WAAKC,IAAL,GAAY,gCAAgB;AAACD,QAAAA,GAAG,EAAHA,GAAD;AAAME,QAAAA,EAAE,EAAFA,EAAN;AAAUD,QAAAA,IAAI,EAAE,KAAKN,KAAL,CAAWM;AAA3B,OAAhB,CAAZ;AACA,+BAAS,KAAKA,IAAd,EAAoB,IAApB;AACD;;;WAED,oBAAiB;AACf,UAAI,KAAKA,IAAT,EAAe;AACb,oCAAY,KAAKA,IAAjB,EAAuB,IAAvB;AACD;AACF;;;WAED,kBAASN,KAAT,EAA0C;AAExCQ,MAAAA,MAAM,CAACC,MAAP,CAAc,KAAKT,KAAnB,EAA0BA,KAA1B,EAAiC;AAACC,QAAAA,EAAE,EAAE,KAAKA;AAAV,OAAjC;;AAEA,UAAI,KAAKK,IAAT,EAAe;AACb,oCAAY,KAAKA,IAAjB,EAAuB,IAAvB;AACD;AACF;;;WAED,kBAAS;AACP,gCAAU,KAAKA,IAAf,EAAsB,KAAKD,GAA3B,EAAiC,IAAjC;AACD","sourcesContent":["import {getDeckInstance, addLayer, removeLayer, updateLayer, drawLayer} from './deck-utils';\nimport type {Map, CustomLayerInterface} from 'mapbox-gl';\nimport type {Deck, Layer} from '@deck.gl/core';\n\nexport type MapboxLayerProps<LayerT extends Layer> = Partial<LayerT['props']> & {\n id: string;\n};\n\nexport default class MapboxLayer<LayerT extends Layer> implements CustomLayerInterface {\n id: string;\n type: 'custom';\n renderingMode: '2d' | '3d';\n map: Map | null;\n deck: Deck | null;\n props: MapboxLayerProps<LayerT>;\n\n /* eslint-disable no-this-before-super */\n constructor(props: MapboxLayerProps<LayerT>) {\n if (!props.id) {\n throw new Error('Layer must have an unique id');\n }\n\n this.id = props.id;\n this.type = 'custom';\n this.renderingMode = props.renderingMode || '3d';\n this.map = null;\n this.deck = null;\n this.props = props;\n }\n\n /* Mapbox custom layer methods */\n\n onAdd(map: Map, gl: WebGLRenderingContext): void {\n this.map = map;\n this.deck = getDeckInstance({map, gl, deck: this.props.deck});\n addLayer(this.deck, this);\n }\n\n onRemove(): void {\n if (this.deck) {\n removeLayer(this.deck, this);\n }\n }\n\n setProps(props: MapboxLayerProps<LayerT>) {\n // id cannot be changed\n Object.assign(this.props, props, {id: this.id});\n // safe guard in case setProps is called before onAdd\n if (this.deck) {\n updateLayer(this.deck, this);\n }\n }\n\n render() {\n drawLayer(this.deck!, this.map!, this);\n }\n}\n"],"file":"mapbox-layer.js"}