@deck.gl/carto 9.0.10 → 9.0.12

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.
@@ -1008,7 +1008,7 @@
1008
1008
  }
1009
1009
 
1010
1010
  // src/layers/schema/carto-raster-tile-loader.ts
1011
- var VERSION = true ? "9.0.10" : "latest";
1011
+ var VERSION = true ? "9.0.12" : "latest";
1012
1012
  var id = "cartoRasterTile";
1013
1013
  var DEFAULT_OPTIONS = {
1014
1014
  cartoRasterTile: {
@@ -1397,7 +1397,7 @@
1397
1397
  }
1398
1398
 
1399
1399
  // src/layers/schema/carto-spatial-tile-loader.ts
1400
- var VERSION = true ? "9.0.10" : "latest";
1400
+ var VERSION = true ? "9.0.12" : "latest";
1401
1401
  var id = "cartoSpatialTile";
1402
1402
  var DEFAULT_OPTIONS = {
1403
1403
  cartoSpatialTile: {
@@ -1625,7 +1625,7 @@
1625
1625
  }
1626
1626
 
1627
1627
  // src/layers/schema/carto-vector-tile-loader.ts
1628
- var VERSION = true ? "9.0.10" : "latest";
1628
+ var VERSION = true ? "9.0.12" : "latest";
1629
1629
  var id = "cartoVectorTile";
1630
1630
  var DEFAULT_OPTIONS = {
1631
1631
  cartoVectorTile: {
package/dist/dist.dev.js CHANGED
@@ -9200,6 +9200,7 @@ var __exports__ = (() => {
9200
9200
  CARTO_SOURCES: () => CARTO_SOURCES,
9201
9201
  CartoAPIError: () => CartoAPIError,
9202
9202
  H3TileLayer: () => H3TileLayer,
9203
+ QuadbinHeatmapTileLayer: () => quadbin_heatmap_tile_layer_default,
9203
9204
  QuadbinTileLayer: () => QuadbinTileLayer,
9204
9205
  RasterTileLayer: () => RasterTileLayer,
9205
9206
  SOURCE_DEFAULTS: () => SOURCE_DEFAULTS,
@@ -10304,12 +10305,367 @@ var __exports__ = (() => {
10304
10305
  QuadbinTileLayer.layerName = "QuadbinTileLayer";
10305
10306
  QuadbinTileLayer.defaultProps = defaultProps5;
10306
10307
 
10307
- // src/layers/raster-tile-layer.ts
10308
+ // src/layers/quadbin-heatmap-tile-layer.ts
10308
10309
  var import_core9 = __toESM(require_core(), 1);
10310
+ var import_layers2 = __toESM(require_layers(), 1);
10309
10311
 
10310
- // src/layers/raster-layer.ts
10312
+ // ../../node_modules/@luma.gl/shadertools/dist/modules/math/random/random.js
10313
+ var fs = `float random(vec3 scale, float seed) {
10314
+ return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);
10315
+ }
10316
+ `;
10317
+ var random = {
10318
+ name: "random",
10319
+ fs
10320
+ };
10321
+
10322
+ // src/layers/heatmap.ts
10323
+ var glsl = (s) => `${s}`;
10324
+ var fs2 = glsl`\
10325
+ uniform heatmapUniforms {
10326
+ float radiusPixels;
10327
+ vec2 colorDomain;
10328
+ vec3 color1;
10329
+ vec3 color2;
10330
+ vec3 color3;
10331
+ vec3 color4;
10332
+ vec3 color5;
10333
+ vec3 color6;
10334
+ float opacity;
10335
+ } heatmap;
10336
+
10337
+ // Controls quality of heatmap, larger values increase quality at expense of performance
10338
+ const float SUPPORT = 8.0;
10339
+ const vec4 STOPS = vec4(0.2, 0.4, 0.6, 0.8);
10340
+
10341
+ vec3 colorGradient(float value) {
10342
+ vec3 c1;
10343
+ vec3 c2;
10344
+ vec2 range;
10345
+ if (value < STOPS.x) {
10346
+ range = vec2(0.0, STOPS.x);
10347
+ c1 = heatmap.color1; c2 = heatmap.color2;
10348
+ } else if (value < STOPS.y) {
10349
+ range = STOPS.xy;
10350
+ c1 = heatmap.color2; c2 = heatmap.color3;
10351
+ } else if (value < STOPS.z) {
10352
+ range = STOPS.yz;
10353
+ c1 = heatmap.color3; c2 = heatmap.color4;
10354
+ } else if (value < STOPS.w) {
10355
+ range = STOPS.zw;
10356
+ c1 = heatmap.color4; c2 = heatmap.color5;
10357
+ } else if (value < 1.0 ) {
10358
+ range = vec2(STOPS.w, 1.0);
10359
+ c1 = heatmap.color5; c2 = heatmap.color6;
10360
+ } else {
10361
+ // Fade out to white
10362
+ range = vec2(1.0, 10.0);
10363
+ c1 = heatmap.color6; c2 = vec3(255.0);
10364
+ }
10365
+
10366
+ float f = (value - range.x) / (range.y - range.x);
10367
+ return mix(c1, c2, f) / 255.0;
10368
+ }
10369
+
10370
+ const vec3 SHIFT = vec3(1.0, 256.0, 256.0 * 256.0);
10371
+ float unpack(vec3 color) {
10372
+ return 255.0 * dot(color, SHIFT);
10373
+ }
10374
+
10375
+ vec4 heatmap_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
10376
+ float accumulator = 0.0;
10377
+
10378
+ // Randomize the lookup values to hide the fixed number of samples
10379
+ float offset = 0.5 * random(vec3(12.9898, 78.233, 151.7182), 0.0);
10380
+
10381
+ // Gaussian normalization parameters
10382
+ const float sigma = SUPPORT / 3.0;
10383
+ const float a = -0.5 / (sigma * sigma);
10384
+ const float w0 = 1.0 / (2.0 * 3.141592653589793 * sigma * sigma); // 2D normalization
10385
+
10386
+ for (float t = -SUPPORT; t <= SUPPORT; t++) {
10387
+ for (float s = -SUPPORT; s <= SUPPORT; s++) {
10388
+ vec2 percent = (vec2(s, t) + offset - 0.5) / SUPPORT;
10389
+ vec2 delta = percent * heatmap.radiusPixels / texSize;
10390
+ vec4 offsetColor = texture(source, texCoord + delta);
10391
+
10392
+ // Unpack float
10393
+ float value = unpack(offsetColor.rgb);
10394
+
10395
+ // Gaussian
10396
+ float weight = w0 * exp(a * (s * s + t * t));
10397
+
10398
+ accumulator += value * weight;
10399
+ }
10400
+ }
10401
+
10402
+ // Apply domain
10403
+ float f = (accumulator - heatmap.colorDomain[0]) / (heatmap.colorDomain[1] - heatmap.colorDomain[0]);
10404
+
10405
+ // Color map
10406
+ vec4 color = vec4(0.0);
10407
+ color.rgb = colorGradient(f);
10408
+
10409
+ color.a = smoothstep(0.0, 0.1, f);
10410
+ color.a = pow(color.a, 1.0 / 2.2);
10411
+ color.a *= heatmap.opacity;
10412
+
10413
+ return color;
10414
+ }
10415
+ `;
10416
+ var defaultColorRange = [
10417
+ [255, 255, 178],
10418
+ [254, 217, 118],
10419
+ [254, 178, 76],
10420
+ [253, 141, 60],
10421
+ [240, 59, 32],
10422
+ [189, 0, 38]
10423
+ ];
10424
+ var heatmap = {
10425
+ name: "heatmap",
10426
+ uniformPropTypes: {
10427
+ radiusPixels: { value: 20, min: 0, softMax: 100 },
10428
+ colorDomain: { value: [0, 1] },
10429
+ color1: { value: [0, 0, 0] },
10430
+ color2: { value: [0, 0, 0] },
10431
+ color3: { value: [0, 0, 0] },
10432
+ color4: { value: [0, 0, 0] },
10433
+ color5: { value: [0, 0, 0] },
10434
+ color6: { value: [0, 0, 0] },
10435
+ opacity: { value: 1, min: 0, max: 1 }
10436
+ },
10437
+ uniformTypes: {
10438
+ radiusPixels: "f32",
10439
+ colorDomain: "vec2<f32>",
10440
+ color1: "vec3<f32>",
10441
+ color2: "vec3<f32>",
10442
+ color3: "vec3<f32>",
10443
+ color4: "vec3<f32>",
10444
+ color5: "vec3<f32>",
10445
+ color6: "vec3<f32>",
10446
+ opacity: "f32"
10447
+ },
10448
+ getUniforms: (opts) => {
10449
+ const {
10450
+ colorRange = defaultColorRange,
10451
+ radiusPixels = 20,
10452
+ colorDomain = [0, 1],
10453
+ opacity = 1
10454
+ } = opts;
10455
+ const [color1, color2, color3, color4, color5, color6] = colorRange;
10456
+ return {
10457
+ color1,
10458
+ color2,
10459
+ color3,
10460
+ color4,
10461
+ color5,
10462
+ color6,
10463
+ radiusPixels,
10464
+ colorDomain,
10465
+ opacity
10466
+ };
10467
+ },
10468
+ dependencies: [random],
10469
+ fs: fs2,
10470
+ passes: [{ sampler: true }]
10471
+ };
10472
+
10473
+ // src/layers/post-process-utils.ts
10311
10474
  var import_core8 = __toESM(require_core(), 1);
10312
- var import_layers2 = __toESM(require_layers(), 1);
10475
+ var TEXTURE_PROPS = {
10476
+ format: "rgba8unorm",
10477
+ mipmaps: false,
10478
+ sampler: {
10479
+ minFilter: "linear",
10480
+ magFilter: "linear",
10481
+ addressModeU: "clamp-to-edge",
10482
+ addressModeV: "clamp-to-edge"
10483
+ }
10484
+ };
10485
+ function getPostProcessLayer(layer) {
10486
+ while (layer.parent && !layer.applyPostProcess) {
10487
+ layer = layer.parent;
10488
+ }
10489
+ return layer;
10490
+ }
10491
+ var DrawCallbackLayer = class extends import_core8.Layer {
10492
+ initializeState() {
10493
+ this.id = `draw-callback-${getPostProcessLayer(this).props.id}`;
10494
+ }
10495
+ _drawLayer() {
10496
+ getPostProcessLayer(this).applyPostProcess();
10497
+ }
10498
+ };
10499
+ DrawCallbackLayer.layerName = "DrawCallbackLayer";
10500
+ function RTTModifier(BaseLayer) {
10501
+ var _a;
10502
+ return _a = class extends BaseLayer {
10503
+ draw(opts) {
10504
+ const { moduleParameters } = opts;
10505
+ const { picking } = moduleParameters;
10506
+ const postProcessLayer = getPostProcessLayer(this);
10507
+ if (!picking.isActive) {
10508
+ postProcessLayer.enableRTT(opts);
10509
+ }
10510
+ super.draw(opts);
10511
+ if (!picking.isActive) {
10512
+ postProcessLayer.disableRTT();
10513
+ }
10514
+ }
10515
+ }, _a.layerName = `RTT-${BaseLayer.layerName}`, _a;
10516
+ }
10517
+ function PostProcessModifier(BaseLayer, effect) {
10518
+ var _a;
10519
+ return _a = class extends BaseLayer {
10520
+ initializeState(context) {
10521
+ super.initializeState(context);
10522
+ this._createTextures();
10523
+ this.internalState.postProcess = new import_core8.PostProcessEffect(effect, this.props);
10524
+ this.internalState.postProcess.setup(context);
10525
+ }
10526
+ updateState(params) {
10527
+ super.updateState(params);
10528
+ this.internalState.postProcess.setProps(this.props);
10529
+ }
10530
+ renderLayers() {
10531
+ let subLayers = super.renderLayers();
10532
+ if (!subLayers) {
10533
+ return null;
10534
+ }
10535
+ subLayers = Array.isArray(subLayers) ? subLayers : [subLayers];
10536
+ return [...subLayers, new DrawCallbackLayer()];
10537
+ }
10538
+ _createTextures() {
10539
+ const { device } = this.context;
10540
+ this.internalState.renderBuffers = [0, 1].map((i) => {
10541
+ return device.createFramebuffer({
10542
+ id: `layer-fbo-${i}`,
10543
+ colorAttachments: [device.createTexture(TEXTURE_PROPS)],
10544
+ depthStencilAttachment: "depth16unorm"
10545
+ });
10546
+ });
10547
+ }
10548
+ _resizeBuffers(opts) {
10549
+ const { moduleParameters } = opts;
10550
+ const { viewport } = this.context;
10551
+ const width = moduleParameters.devicePixelRatio * viewport.width;
10552
+ const height = moduleParameters.devicePixelRatio * viewport.height;
10553
+ this.internalState.renderBuffers.forEach((fbo) => fbo.resize({ width, height }));
10554
+ }
10555
+ enableRTT(opts) {
10556
+ this._resizeBuffers(opts);
10557
+ this.internalState.originalRenderPass = this.context.renderPass;
10558
+ const [framebuffer] = this.internalState.renderBuffers;
10559
+ this.internalState.internalRenderPass = this.context.device.beginRenderPass({
10560
+ framebuffer,
10561
+ parameters: { viewport: [0, 0, framebuffer.width, framebuffer.height] },
10562
+ clearColor: this.internalState.renderInProgress ? false : [0, 0, 0, 0]
10563
+ });
10564
+ this.internalState.renderInProgress = true;
10565
+ this.context.renderPass = this.internalState.internalRenderPass;
10566
+ }
10567
+ disableRTT() {
10568
+ this.internalState.internalRenderPass.end();
10569
+ this.context.renderPass = this.internalState.originalRenderPass;
10570
+ }
10571
+ applyPostProcess() {
10572
+ if (!this.internalState.renderInProgress) {
10573
+ return;
10574
+ }
10575
+ const [inputBuffer, swapBuffer] = this.internalState.renderBuffers;
10576
+ const { framebuffer: target } = this.context.renderPass.props;
10577
+ this.internalState.postProcess.postRender({
10578
+ inputBuffer,
10579
+ swapBuffer,
10580
+ target
10581
+ });
10582
+ this.internalState.renderInProgress = false;
10583
+ }
10584
+ }, _a.layerName = `PostProcess${BaseLayer.layerName}`, _a;
10585
+ }
10586
+
10587
+ // src/layers/quadbin-heatmap-tile-layer.ts
10588
+ var RTTSolidPolygonLayer = class extends RTTModifier(import_layers2.SolidPolygonLayer) {
10589
+ getShaders(type) {
10590
+ const shaders = super.getShaders(type);
10591
+ shaders.inject = {
10592
+ "vs:#decl": "uniform float cellResolution;",
10593
+ "vs:DECKGL_FILTER_COLOR": `
10594
+ const vec3 SHIFT = vec3(1.0, 256.0, 256.0 * 256.0);
10595
+ float value = 255.0 * dot(SHIFT, color.rgb);
10596
+
10597
+ // Keep "power" delivered to screen constant when tiles update
10598
+ float relativeZoom = log2(project_uScale) - cellResolution + 3.5; // range 0-1
10599
+ float relativeArea = pow(2.0, -2.0 * relativeZoom); // range 0.25-1
10600
+ value *= relativeArea;
10601
+
10602
+ // Pack float into 3 channels to pass to heatmap shader
10603
+ color = vec4(mod(vec3(value, floor(value / SHIFT.yz)), 256.0), 255.0) / 255.0;
10604
+ `
10605
+ };
10606
+ return shaders;
10607
+ }
10608
+ draw(opts) {
10609
+ const cell0 = this.props.data[0];
10610
+ const cellResolution = Number(getResolution2(cell0.id));
10611
+ for (const model of this.state.models) {
10612
+ model.setUniforms({ cellResolution });
10613
+ }
10614
+ super.draw(opts);
10615
+ }
10616
+ };
10617
+ RTTSolidPolygonLayer.layerName = "RTTSolidPolygonLayer";
10618
+ var PostProcessQuadbinTileLayer = PostProcessModifier(QuadbinTileLayer, heatmap);
10619
+ function encodeWeight(w) {
10620
+ return [w % 256, Math.floor(w / 256), Math.floor(w / (256 * 256))];
10621
+ }
10622
+ var defaultProps6 = {
10623
+ ...QuadbinTileLayer.defaultProps,
10624
+ getWeight: { type: "accessor", value: 1 }
10625
+ };
10626
+ var QuadbinHeatmapTileLayer = class extends import_core9.CompositeLayer {
10627
+ renderLayers() {
10628
+ const { getWeight, colorDomain, colorRange, radiusPixels, _subLayerProps } = this.props;
10629
+ const subLayerProps = {
10630
+ ..._subLayerProps,
10631
+ cell: {
10632
+ ..._subLayerProps?.cell,
10633
+ _subLayerProps: {
10634
+ ..._subLayerProps?.cell?._subLayerProps,
10635
+ fill: {
10636
+ ..._subLayerProps?.cell?._subLayerProps?.fill,
10637
+ type: RTTSolidPolygonLayer
10638
+ }
10639
+ }
10640
+ }
10641
+ };
10642
+ const getFillColor = typeof getWeight === "function" ? (d, info) => encodeWeight(getWeight(d, info)) : encodeWeight(getWeight);
10643
+ return new PostProcessQuadbinTileLayer(
10644
+ this.getSubLayerProps({
10645
+ id: "heatmap",
10646
+ data: this.props.data,
10647
+ getFillColor,
10648
+ colorDomain,
10649
+ colorRange,
10650
+ radiusPixels,
10651
+ _subLayerProps: subLayerProps,
10652
+ updateTriggers: {
10653
+ getPosition: this.props.updateTriggers.getWeight
10654
+ }
10655
+ })
10656
+ );
10657
+ }
10658
+ };
10659
+ QuadbinHeatmapTileLayer.layerName = "QuadbinHeatmapTileLayer";
10660
+ QuadbinHeatmapTileLayer.defaultProps = defaultProps6;
10661
+ var quadbin_heatmap_tile_layer_default = QuadbinHeatmapTileLayer;
10662
+
10663
+ // src/layers/raster-tile-layer.ts
10664
+ var import_core11 = __toESM(require_core(), 1);
10665
+
10666
+ // src/layers/raster-layer.ts
10667
+ var import_core10 = __toESM(require_core(), 1);
10668
+ var import_layers3 = __toESM(require_layers(), 1);
10313
10669
 
10314
10670
  // src/layers/raster-layer-vertex.glsl.ts
10315
10671
  var raster_layer_vertex_glsl_default = `#version 300 es
@@ -10411,8 +10767,8 @@ void main(void) {
10411
10767
  `;
10412
10768
 
10413
10769
  // src/layers/raster-layer.ts
10414
- var defaultProps6 = {
10415
- ...import_layers2.ColumnLayer.defaultProps,
10770
+ var defaultProps7 = {
10771
+ ...import_layers3.ColumnLayer.defaultProps,
10416
10772
  extruded: false,
10417
10773
  diskResolution: 4,
10418
10774
  vertices: [
@@ -10422,7 +10778,7 @@ void main(void) {
10422
10778
  [-0.5, 0.5]
10423
10779
  ]
10424
10780
  };
10425
- var RasterColumnLayer = class extends import_layers2.ColumnLayer {
10781
+ var RasterColumnLayer = class extends import_layers3.ColumnLayer {
10426
10782
  getShaders() {
10427
10783
  const shaders = super.getShaders();
10428
10784
  const data = this.props.data;
@@ -10455,7 +10811,7 @@ void main(void) {
10455
10811
  }
10456
10812
  };
10457
10813
  RasterColumnLayer.layerName = "RasterColumnLayer";
10458
- var RasterLayer = class extends import_core8.CompositeLayer {
10814
+ var RasterLayer = class extends import_core10.CompositeLayer {
10459
10815
  renderLayers() {
10460
10816
  const {
10461
10817
  data,
@@ -10504,7 +10860,7 @@ void main(void) {
10504
10860
  }
10505
10861
  };
10506
10862
  RasterLayer.layerName = "RasterLayer";
10507
- RasterLayer.defaultProps = defaultProps6;
10863
+ RasterLayer.defaultProps = defaultProps7;
10508
10864
 
10509
10865
  // src/layers/raster-tile-layer.ts
10510
10866
  var renderSubLayers3 = (props) => {
@@ -10513,11 +10869,11 @@ void main(void) {
10513
10869
  return null;
10514
10870
  return new RasterLayer(props, { tileIndex });
10515
10871
  };
10516
- var defaultProps7 = {
10872
+ var defaultProps8 = {
10517
10873
  data: TilejsonPropType,
10518
10874
  tileSize: DEFAULT_TILE_SIZE
10519
10875
  };
10520
- var RasterTileLayer = class extends import_core9.CompositeLayer {
10876
+ var RasterTileLayer = class extends import_core11.CompositeLayer {
10521
10877
  getLoadOptions() {
10522
10878
  const loadOptions = super.getLoadOptions() || {};
10523
10879
  const tileJSON = this.props.data;
@@ -10543,10 +10899,10 @@ void main(void) {
10543
10899
  }
10544
10900
  };
10545
10901
  RasterTileLayer.layerName = "RasterTileLayer";
10546
- RasterTileLayer.defaultProps = defaultProps7;
10902
+ RasterTileLayer.defaultProps = defaultProps8;
10547
10903
 
10548
10904
  // src/layers/vector-tile-layer.ts
10549
- var import_core10 = __toESM(require_core2(), 1);
10905
+ var import_core12 = __toESM(require_core2(), 1);
10550
10906
 
10551
10907
  // src/layers/schema/carto-properties-tile.ts
10552
10908
  var TileReader4 = class {
@@ -10649,7 +11005,7 @@ void main(void) {
10649
11005
  // src/layers/vector-tile-layer.ts
10650
11006
  var import_extensions = __toESM(require_extensions(), 1);
10651
11007
  var import_geo_layers6 = __toESM(require_geo_layers(), 1);
10652
- var import_layers3 = __toESM(require_layers(), 1);
11008
+ var import_layers4 = __toESM(require_layers(), 1);
10653
11009
 
10654
11010
  // ../../node_modules/@loaders.gl/gis/dist/lib/binary-features/binary-to-geojson.js
10655
11011
  function binaryToGeojson(data, options) {
@@ -10814,8 +11170,8 @@ void main(void) {
10814
11170
  }
10815
11171
 
10816
11172
  // src/layers/vector-tile-layer.ts
10817
- (0, import_core10.registerLoaders)([carto_properties_tile_loader_default, carto_vector_tile_loader_default]);
10818
- var defaultProps8 = {
11173
+ (0, import_core12.registerLoaders)([carto_properties_tile_loader_default, carto_vector_tile_loader_default]);
11174
+ var defaultProps9 = {
10819
11175
  ...import_geo_layers6.MVTLayer.defaultProps,
10820
11176
  data: TilejsonPropType,
10821
11177
  dataComparator: TilejsonPropType.equal,
@@ -10889,7 +11245,7 @@ void main(void) {
10889
11245
  extensions: [new import_extensions.ClipExtension(), ...props.extensions || []],
10890
11246
  clipBounds: [west, south, east, north]
10891
11247
  };
10892
- const subLayer = new import_layers3.GeoJsonLayer(subLayerProps);
11248
+ const subLayer = new import_layers4.GeoJsonLayer(subLayerProps);
10893
11249
  return subLayer;
10894
11250
  }
10895
11251
  getPickingInfo(params) {
@@ -10904,7 +11260,7 @@ void main(void) {
10904
11260
  }
10905
11261
  };
10906
11262
  VectorTileLayer.layerName = "VectorTileLayer";
10907
- VectorTileLayer.defaultProps = defaultProps8;
11263
+ VectorTileLayer.defaultProps = defaultProps9;
10908
11264
 
10909
11265
  // src/basemap.ts
10910
11266
  var baseUrl = "https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json";
@@ -12973,14 +13329,14 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
12973
13329
  }
12974
13330
 
12975
13331
  // src/api/common.ts
12976
- var import_core11 = __toESM(require_core(), 1);
13332
+ var import_core13 = __toESM(require_core(), 1);
12977
13333
  var DEFAULT_API_BASE_URL = "https://gcp-us-east1.api.carto.com";
12978
13334
  var DEFAULT_CLIENT = "deck-gl-carto";
12979
13335
  var V3_MINOR_VERSION = "3.4";
12980
13336
  var MAX_GET_LENGTH = 8192;
12981
13337
  var DEFAULT_PARAMETERS = {
12982
13338
  v: V3_MINOR_VERSION,
12983
- deckglVersion: import_core11.VERSION
13339
+ deckglVersion: import_core13.VERSION
12984
13340
  };
12985
13341
  var DEFAULT_HEADERS = {
12986
13342
  Accept: "application/json",
@@ -13992,12 +14348,12 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
13992
14348
  })(GLEnum || (GLEnum = {}));
13993
14349
 
13994
14350
  // src/api/parse-map.ts
13995
- var import_core12 = __toESM(require_core(), 1);
14351
+ var import_core14 = __toESM(require_core(), 1);
13996
14352
 
13997
14353
  // src/api/layer-map.ts
13998
14354
  var import_moment_timezone = __toESM(require_moment_timezone2(), 1);
13999
14355
  var import_aggregation_layers = __toESM(require_aggregation_layers(), 1);
14000
- var import_layers4 = __toESM(require_layers(), 1);
14356
+ var import_layers5 = __toESM(require_layers(), 1);
14001
14357
  var import_geo_layers7 = __toESM(require_geo_layers(), 1);
14002
14358
  var SCALE_FUNCS = {
14003
14359
  linear: linear2,
@@ -14070,7 +14426,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14070
14426
  elevationPercentile: ["elevationLowerPercentile", "elevationUpperPercentile"],
14071
14427
  percentile: ["lowerPercentile", "upperPercentile"]
14072
14428
  };
14073
- var defaultProps9 = {
14429
+ var defaultProps10 = {
14074
14430
  lineMiterLimit: 2,
14075
14431
  lineWidthUnits: "pixels",
14076
14432
  pointRadiusUnits: "pixels",
@@ -14093,7 +14449,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14093
14449
  const hexagonId = config.columns?.hex_id;
14094
14450
  const layerTypeDefs = {
14095
14451
  point: {
14096
- Layer: import_layers4.GeoJsonLayer,
14452
+ Layer: import_layers5.GeoJsonLayer,
14097
14453
  propMap: {
14098
14454
  columns: {
14099
14455
  altitude: (x) => ({ parameters: { depthTest: Boolean(x) } })
@@ -14102,7 +14458,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14102
14458
  }
14103
14459
  },
14104
14460
  geojson: {
14105
- Layer: import_layers4.GeoJsonLayer
14461
+ Layer: import_layers5.GeoJsonLayer
14106
14462
  },
14107
14463
  grid: {
14108
14464
  Layer: import_aggregation_layers.CPUGridLayer,
@@ -14130,7 +14486,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14130
14486
  return {
14131
14487
  ...layer,
14132
14488
  propMap: mergePropMaps(basePropMap, layer.propMap),
14133
- defaultProps: { ...defaultProps9, ...layer.defaultProps }
14489
+ defaultProps: { ...defaultProps10, ...layer.defaultProps }
14134
14490
  };
14135
14491
  }
14136
14492
  function layerFromTileDataset(scheme, type) {
@@ -14155,7 +14511,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14155
14511
  Layer: layerFromTileDataset(scheme),
14156
14512
  propMap: basePropMap,
14157
14513
  defaultProps: {
14158
- ...defaultProps9,
14514
+ ...defaultProps10,
14159
14515
  ...aggregationExp && { aggregationExp },
14160
14516
  ...aggregationResLevel && { aggregationResLevel },
14161
14517
  uniqueIdProperty: "geoid"
@@ -14373,12 +14729,12 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14373
14729
  assert(dataset, `No dataset matching dataId: ${dataId}`);
14374
14730
  const { data } = dataset;
14375
14731
  assert(data, `No data loaded for dataId: ${dataId}`);
14376
- const { Layer: Layer6, propMap, defaultProps: defaultProps10 } = getLayer(type, config, dataset);
14732
+ const { Layer: Layer8, propMap, defaultProps: defaultProps11 } = getLayer(type, config, dataset);
14377
14733
  const styleProps = createStyleProps(config, propMap);
14378
- return new Layer6({
14734
+ return new Layer8({
14379
14735
  id: id4,
14380
14736
  data,
14381
- ...defaultProps10,
14737
+ ...defaultProps11,
14382
14738
  ...createInteractionProps(interactionConfig),
14383
14739
  ...styleProps,
14384
14740
  ...createChannelProps(id4, type, config, visualChannels, data),
@@ -14386,7 +14742,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14386
14742
  ...createLoadOptions(token)
14387
14743
  });
14388
14744
  } catch (e) {
14389
- import_core12.log.error(e.message)();
14745
+ import_core14.log.error(e.message)();
14390
14746
  return void 0;
14391
14747
  }
14392
14748
  })
@@ -14843,6 +15199,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14843
15199
  H3TileLayer,
14844
15200
  _PointLabelLayer: PointLabelLayer,
14845
15201
  QuadbinTileLayer,
15202
+ QuadbinHeatmapTileLayer: quadbin_heatmap_tile_layer_default,
14846
15203
  RasterTileLayer,
14847
15204
  VectorTileLayer
14848
15205
  };
@@ -14863,9 +15220,9 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
14863
15220
 
14864
15221
  // ../layers/bundle/peer-dependency.ts
14865
15222
  var peer_dependency_exports = {};
14866
- var import_layers5 = __toESM(require_layers(), 1);
15223
+ var import_layers6 = __toESM(require_layers(), 1);
14867
15224
  __reExport(peer_dependency_exports, __toESM(require_layers(), 1));
14868
- if (!import_layers5.GeoJsonLayer) {
15225
+ if (!import_layers6.GeoJsonLayer) {
14869
15226
  throw new Error("@deck.gl/layers is not found");
14870
15227
  }
14871
15228