@deck.gl/carto 8.7.0-beta.4 → 8.7.0-beta.7

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.
Files changed (97) hide show
  1. package/dist/dist.dev.js +444 -362
  2. package/dist/es5/api/index.js.map +1 -1
  3. package/dist/es5/api/layer-map.js +32 -17
  4. package/dist/es5/api/layer-map.js.map +1 -1
  5. package/dist/es5/api/maps-api-common.js +15 -1
  6. package/dist/es5/api/maps-api-common.js.map +1 -1
  7. package/dist/es5/api/maps-client.js +15 -18
  8. package/dist/es5/api/maps-client.js.map +1 -1
  9. package/dist/es5/api/maps-v3-client.js +241 -181
  10. package/dist/es5/api/maps-v3-client.js.map +1 -1
  11. package/dist/es5/api/parseMap.js +9 -12
  12. package/dist/es5/api/parseMap.js.map +1 -1
  13. package/dist/es5/basemap.js +7 -7
  14. package/dist/es5/basemap.js.map +1 -1
  15. package/dist/es5/config.js.map +1 -1
  16. package/dist/es5/index.js +4 -4
  17. package/dist/es5/index.js.map +1 -1
  18. package/dist/es5/layers/carto-layer.js +31 -24
  19. package/dist/es5/layers/carto-layer.js.map +1 -1
  20. package/dist/es5/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +27 -25
  21. package/dist/es5/layers/carto-tile-layer.js.map +1 -0
  22. package/dist/es5/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +1 -1
  23. package/dist/es5/layers/schema/carto-tile.js.map +1 -0
  24. package/dist/es5/style/color-bins-style.js +1 -1
  25. package/dist/es5/style/color-bins-style.js.map +1 -1
  26. package/dist/es5/style/color-categories-style.js +1 -1
  27. package/dist/es5/style/color-categories-style.js.map +1 -1
  28. package/dist/es5/style/color-continuous-style.js +1 -1
  29. package/dist/es5/style/color-continuous-style.js.map +1 -1
  30. package/dist/es5/style/palette.js +1 -6
  31. package/dist/es5/style/palette.js.map +1 -1
  32. package/dist/es5/style/utils.js +2 -6
  33. package/dist/es5/style/utils.js.map +1 -1
  34. package/dist/es5/utils.js +13 -0
  35. package/dist/es5/utils.js.map +1 -0
  36. package/dist/esm/api/index.js.map +1 -1
  37. package/dist/esm/api/layer-map.js +28 -12
  38. package/dist/esm/api/layer-map.js.map +1 -1
  39. package/dist/esm/api/maps-api-common.js +14 -0
  40. package/dist/esm/api/maps-api-common.js.map +1 -1
  41. package/dist/esm/api/maps-client.js +6 -10
  42. package/dist/esm/api/maps-client.js.map +1 -1
  43. package/dist/esm/api/maps-v3-client.js +73 -38
  44. package/dist/esm/api/maps-v3-client.js.map +1 -1
  45. package/dist/esm/api/parseMap.js +9 -8
  46. package/dist/esm/api/parseMap.js.map +1 -1
  47. package/dist/esm/basemap.js +7 -7
  48. package/dist/esm/basemap.js.map +1 -1
  49. package/dist/esm/config.js.map +1 -1
  50. package/dist/esm/index.js +2 -2
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/layers/carto-layer.js +27 -23
  53. package/dist/esm/layers/carto-layer.js.map +1 -1
  54. package/dist/esm/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +20 -18
  55. package/dist/esm/layers/carto-tile-layer.js.map +1 -0
  56. package/dist/esm/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +1 -1
  57. package/dist/esm/layers/schema/carto-tile.js.map +1 -0
  58. package/dist/esm/style/color-bins-style.js +1 -1
  59. package/dist/esm/style/color-bins-style.js.map +1 -1
  60. package/dist/esm/style/color-categories-style.js +1 -1
  61. package/dist/esm/style/color-categories-style.js.map +1 -1
  62. package/dist/esm/style/color-continuous-style.js +1 -1
  63. package/dist/esm/style/color-continuous-style.js.map +1 -1
  64. package/dist/esm/style/palette.js +1 -6
  65. package/dist/esm/style/palette.js.map +1 -1
  66. package/dist/esm/style/utils.js +2 -6
  67. package/dist/esm/style/utils.js.map +1 -1
  68. package/dist/esm/utils.js +5 -0
  69. package/dist/esm/utils.js.map +1 -0
  70. package/dist.min.js +4 -4
  71. package/package.json +8 -2
  72. package/src/api/{index.js → index.ts} +0 -0
  73. package/src/api/{layer-map.js → layer-map.ts} +50 -23
  74. package/src/api/maps-api-common.ts +76 -0
  75. package/src/api/{maps-client.js → maps-client.ts} +55 -20
  76. package/src/api/{maps-v3-client.js → maps-v3-client.ts} +145 -57
  77. package/src/api/{parseMap.js → parseMap.ts} +8 -7
  78. package/src/basemap.ts +10 -0
  79. package/src/{config.js → config.ts} +22 -6
  80. package/src/{index.js → index.ts} +2 -2
  81. package/src/layers/carto-layer.js +31 -32
  82. package/src/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +20 -16
  83. package/src/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +0 -0
  84. package/src/style/color-bins-style.ts +26 -0
  85. package/src/style/{color-categories-style.js → color-categories-style.ts} +10 -4
  86. package/src/style/color-continuous-style.ts +25 -0
  87. package/src/style/{palette.js → palette.ts} +18 -15
  88. package/src/style/{utils.js → utils.ts} +7 -10
  89. package/src/utils.ts +5 -0
  90. package/dist/es5/layers/carto-dynamic-tile-layer.js.map +0 -1
  91. package/dist/es5/layers/schema/carto-dynamic-tile.js.map +0 -1
  92. package/dist/esm/layers/carto-dynamic-tile-layer.js.map +0 -1
  93. package/dist/esm/layers/schema/carto-dynamic-tile.js.map +0 -1
  94. package/src/api/maps-api-common.js +0 -41
  95. package/src/basemap.js +0 -10
  96. package/src/style/color-bins-style.js +0 -21
  97. package/src/style/color-continuous-style.js +0 -20
package/dist/dist.dev.js CHANGED
@@ -52870,7 +52870,7 @@ attribute float instanceOffsets;
52870
52870
  /*! no static exports found */
52871
52871
  /***/ (function(module, exports, __webpack_require__) {
52872
52872
 
52873
- const CartoUtils = __webpack_require__(/*! ./src */ "./src/index.js");
52873
+ const CartoUtils = __webpack_require__(/*! ./src */ "./src/index.ts");
52874
52874
 
52875
52875
  const deck = globalThis.deck || {}; // Check if peer dependencies are included
52876
52876
 
@@ -52884,16 +52884,16 @@ module.exports = Object.assign(deck, {
52884
52884
 
52885
52885
  /***/ }),
52886
52886
 
52887
- /***/ "./src/api/index.js":
52887
+ /***/ "./src/api/index.ts":
52888
52888
  /*!**************************!*\
52889
- !*** ./src/api/index.js ***!
52889
+ !*** ./src/api/index.ts ***!
52890
52890
  \**************************/
52891
52891
  /*! exports provided: FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS, getDataV2, CONNECTIONS, fetchLayerData, fetchMap, getData, mapInstantiation */
52892
52892
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
52893
52893
 
52894
52894
  "use strict";
52895
52895
  __webpack_require__.r(__webpack_exports__);
52896
- /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.js");
52896
+ /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.ts");
52897
52897
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FORMATS", function() { return _maps_api_common__WEBPACK_IMPORTED_MODULE_0__["FORMATS"]; });
52898
52898
 
52899
52899
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TILE_FORMATS", function() { return _maps_api_common__WEBPACK_IMPORTED_MODULE_0__["TILE_FORMATS"]; });
@@ -52902,12 +52902,12 @@ __webpack_require__.r(__webpack_exports__);
52902
52902
 
52903
52903
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "API_VERSIONS", function() { return _maps_api_common__WEBPACK_IMPORTED_MODULE_0__["API_VERSIONS"]; });
52904
52904
 
52905
- /* harmony import */ var _maps_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-client */ "./src/api/maps-client.js");
52905
+ /* harmony import */ var _maps_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-client */ "./src/api/maps-client.ts");
52906
52906
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDataV2", function() { return _maps_client__WEBPACK_IMPORTED_MODULE_1__["getDataV2"]; });
52907
52907
 
52908
52908
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CONNECTIONS", function() { return _maps_client__WEBPACK_IMPORTED_MODULE_1__["CONNECTIONS"]; });
52909
52909
 
52910
- /* harmony import */ var _maps_v3_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./maps-v3-client */ "./src/api/maps-v3-client.js");
52910
+ /* harmony import */ var _maps_v3_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./maps-v3-client */ "./src/api/maps-v3-client.ts");
52911
52911
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fetchLayerData", function() { return _maps_v3_client__WEBPACK_IMPORTED_MODULE_2__["fetchLayerData"]; });
52912
52912
 
52913
52913
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fetchMap", function() { return _maps_v3_client__WEBPACK_IMPORTED_MODULE_2__["fetchMap"]; });
@@ -52922,9 +52922,9 @@ __webpack_require__.r(__webpack_exports__);
52922
52922
 
52923
52923
  /***/ }),
52924
52924
 
52925
- /***/ "./src/api/layer-map.js":
52925
+ /***/ "./src/api/layer-map.ts":
52926
52926
  /*!******************************!*\
52927
- !*** ./src/api/layer-map.js ***!
52927
+ !*** ./src/api/layer-map.ts ***!
52928
52928
  \******************************/
52929
52929
  /*! exports provided: getLayer, getColorAccessor, getSizeAccessor, getTextAccessor, getTextPixelOffsetAccessor, _domainFromValues */
52930
52930
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -52943,8 +52943,13 @@ __webpack_require__.r(__webpack_exports__);
52943
52943
  /* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-format */ "../../node_modules/d3-format/src/index.js");
52944
52944
  /* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! moment-timezone */ "../../node_modules/moment-timezone/index.js");
52945
52945
  /* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_4__);
52946
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
52947
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_5__);
52946
+ /* harmony import */ var _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @deck.gl/geo-layers */ "@deck.gl/core");
52947
+ /* harmony import */ var _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__);
52948
+ /* harmony import */ var _layers_carto_tile_layer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../layers/carto-tile-layer */ "./src/layers/carto-tile-layer.js");
52949
+ /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.ts");
52950
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils */ "./src/utils.ts");
52951
+
52952
+
52948
52953
 
52949
52954
 
52950
52955
 
@@ -52961,8 +52966,8 @@ const SCALE_FUNCS = {
52961
52966
  quantile: d3_scale__WEBPACK_IMPORTED_MODULE_2__["scaleQuantile"],
52962
52967
  quantize: d3_scale__WEBPACK_IMPORTED_MODULE_2__["scaleQuantize"],
52963
52968
  sqrt: d3_scale__WEBPACK_IMPORTED_MODULE_2__["scaleSqrt"]
52964
- }; // Kepler -> Deck.gl
52965
-
52969
+ };
52970
+ // Kepler -> Deck.gl
52966
52971
  const sharedPropMap = {
52967
52972
  color: 'getFillColor',
52968
52973
  isVisible: 'visible',
@@ -53003,11 +53008,15 @@ function mergePropMaps(a, b) {
53003
53008
  };
53004
53009
  }
53005
53010
 
53006
- function getLayer(type, config) {
53011
+ function getLayer(type, config, dataset) {
53012
+ if (type === 'mvt' || type === 'tileset') {
53013
+ return getTileLayer(dataset);
53014
+ }
53015
+
53007
53016
  const hexagonId = config.columns?.hex_id;
53008
53017
  const layer = {
53009
53018
  point: {
53010
- Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
53019
+ Layer: _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
53011
53020
  propMap: mergePropMaps(sharedPropMap, {
53012
53021
  visConfig: {
53013
53022
  outline: 'stroked'
@@ -53016,14 +53025,14 @@ function getLayer(type, config) {
53016
53025
  defaultProps
53017
53026
  },
53018
53027
  geojson: {
53019
- Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
53028
+ Layer: _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
53020
53029
  propMap: sharedPropMap,
53021
53030
  defaultProps: { ...defaultProps,
53022
53031
  lineWidthScale: 2
53023
53032
  }
53024
53033
  },
53025
53034
  hexagonId: {
53026
- Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["H3HexagonLayer"],
53035
+ Layer: _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__["H3HexagonLayer"],
53027
53036
  propMap: mergePropMaps(sharedPropMap, {
53028
53037
  visConfig: {
53029
53038
  coverage: 'coverage',
@@ -53033,21 +53042,33 @@ function getLayer(type, config) {
53033
53042
  defaultProps: { ...defaultProps,
53034
53043
  getHexagon: d => d[hexagonId]
53035
53044
  }
53036
- },
53037
- mvt: {
53038
- Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["MVTLayer"],
53039
- propMap: sharedPropMap,
53040
- defaultProps: { ...defaultProps,
53041
- pointRadiusScale: 0.3,
53042
- lineWidthScale: 2,
53043
- uniqueIdProperty: 'geoid'
53044
- }
53045
53045
  }
53046
53046
  }[type];
53047
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["log"].assert(layer, `Unsupported layer type: ${type}`);
53047
+ Object(_utils__WEBPACK_IMPORTED_MODULE_8__["assert"])(layer, `Unsupported layer type: ${type}`);
53048
53048
  return layer;
53049
53049
  }
53050
53050
 
53051
+ function getTileLayer(dataset) {
53052
+ const {
53053
+ data: {
53054
+ tiles: [tileUrl]
53055
+ }
53056
+ } = dataset;
53057
+ /* global URL */
53058
+
53059
+ const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || _maps_api_common__WEBPACK_IMPORTED_MODULE_7__["TILE_FORMATS"].MVT;
53060
+ return {
53061
+ Layer: formatTiles === _maps_api_common__WEBPACK_IMPORTED_MODULE_7__["TILE_FORMATS"].MVT ? _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__["MVTLayer"] : _layers_carto_tile_layer__WEBPACK_IMPORTED_MODULE_6__["default"],
53062
+ propMap: sharedPropMap,
53063
+ defaultProps: { ...defaultProps,
53064
+ pointRadiusScale: 0.3,
53065
+ lineWidthScale: 2,
53066
+ uniqueIdProperty: 'geoid',
53067
+ formatTiles
53068
+ }
53069
+ };
53070
+ }
53071
+
53051
53072
  function domainFromAttribute(attribute, scaleType) {
53052
53073
  if (scaleType === 'ordinal' || scaleType === 'point') {
53053
53074
  return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);
@@ -53184,11 +53205,11 @@ function getTextPixelOffsetAccessor({
53184
53205
 
53185
53206
  /***/ }),
53186
53207
 
53187
- /***/ "./src/api/maps-api-common.js":
53208
+ /***/ "./src/api/maps-api-common.ts":
53188
53209
  /*!************************************!*\
53189
- !*** ./src/api/maps-api-common.js ***!
53210
+ !*** ./src/api/maps-api-common.ts ***!
53190
53211
  \************************************/
53191
- /*! exports provided: DEFAULT_USER_COMPONENT_IN_URL, DEFAULT_REGION_COMPONENT_IN_URL, API_VERSIONS, DEFAULT_MAPS_URL_FORMAT, MAP_TYPES, FORMATS, TILE_FORMATS, encodeParameter */
53212
+ /*! exports provided: DEFAULT_USER_COMPONENT_IN_URL, DEFAULT_REGION_COMPONENT_IN_URL, API_VERSIONS, DEFAULT_MAPS_URL_FORMAT, MAP_TYPES, FORMATS, TILE_FORMATS, SchemaFieldType, encodeParameter */
53192
53213
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
53193
53214
 
53194
53215
  "use strict";
@@ -53200,6 +53221,7 @@ __webpack_require__.r(__webpack_exports__);
53200
53221
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAP_TYPES", function() { return MAP_TYPES; });
53201
53222
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FORMATS", function() { return FORMATS; });
53202
53223
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TILE_FORMATS", function() { return TILE_FORMATS; });
53224
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SchemaFieldType", function() { return SchemaFieldType; });
53203
53225
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeParameter", function() { return encodeParameter; });
53204
53226
  const DEFAULT_USER_COMPONENT_IN_URL = '{user}';
53205
53227
  const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';
@@ -53216,33 +53238,46 @@ const MAP_TYPES = {
53216
53238
  QUERY: 'query',
53217
53239
  TABLE: 'table',
53218
53240
  TILESET: 'tileset'
53219
- }; // AVAILABLE FORMATS
53220
-
53241
+ };
53242
+ // AVAILABLE FORMATS
53221
53243
  const FORMATS = {
53222
53244
  GEOJSON: 'geojson',
53223
53245
  NDJSON: 'ndjson',
53224
53246
  TILEJSON: 'tilejson',
53225
53247
  JSON: 'json'
53226
- }; // AVAILABLE FORMATS FOR TILES
53227
-
53248
+ };
53249
+ // AVAILABLE FORMATS FOR TILES
53228
53250
  const TILE_FORMATS = {
53229
53251
  MVT: 'mvt',
53230
53252
  GEOJSON: 'geojson',
53231
53253
  BINARY: 'binary'
53232
53254
  };
53255
+ let SchemaFieldType;
53256
+
53257
+ (function (SchemaFieldType) {
53258
+ SchemaFieldType["Number"] = "number";
53259
+ SchemaFieldType["Bigint"] = "bigint";
53260
+ SchemaFieldType["String"] = "string";
53261
+ SchemaFieldType["Geometry"] = "geometry";
53262
+ SchemaFieldType["Timestamp"] = "timestamp";
53263
+ SchemaFieldType["Object"] = "object";
53264
+ SchemaFieldType["Boolean"] = "boolean";
53265
+ SchemaFieldType["Variant"] = "variant";
53266
+ SchemaFieldType["Unknown"] = "unknown";
53267
+ })(SchemaFieldType || (SchemaFieldType = {}));
53268
+
53233
53269
  /**
53234
53270
  * Simple encode parameter
53235
53271
  */
53236
-
53237
53272
  function encodeParameter(name, value) {
53238
53273
  return `${name}=${encodeURIComponent(value)}`;
53239
53274
  }
53240
53275
 
53241
53276
  /***/ }),
53242
53277
 
53243
- /***/ "./src/api/maps-client.js":
53278
+ /***/ "./src/api/maps-client.ts":
53244
53279
  /*!********************************!*\
53245
- !*** ./src/api/maps-client.js ***!
53280
+ !*** ./src/api/maps-client.ts ***!
53246
53281
  \********************************/
53247
53282
  /*! exports provided: CONNECTIONS, getDataV2 */
53248
53283
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -53251,8 +53286,8 @@ function encodeParameter(name, value) {
53251
53286
  __webpack_require__.r(__webpack_exports__);
53252
53287
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONNECTIONS", function() { return CONNECTIONS; });
53253
53288
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDataV2", function() { return getDataV2; });
53254
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config */ "./src/config.js");
53255
- /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.js");
53289
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config */ "./src/config.ts");
53290
+ /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.ts");
53256
53291
  /**
53257
53292
  * Maps API Client for Maps API v1 and Maps API v2
53258
53293
  */
@@ -53274,20 +53309,16 @@ async function getDataV2({
53274
53309
  credentials
53275
53310
  }) {
53276
53311
  const defaultCredentials = Object(_config__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"])();
53277
- const apiVersion = credentials && credentials.apiVersion || defaultCredentials.apiVersion; // Only pick up default credentials if they have been defined for
53312
+ const apiVersion = credentials?.apiVersion || defaultCredentials.apiVersion; // Only pick up default credentials if they have been defined for
53278
53313
  // correct API version
53279
53314
 
53280
- const localCreds = { ..._config__WEBPACK_IMPORTED_MODULE_0__["defaultClassicCredentials"],
53315
+ const localCreds = { ...(apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3 ? _config__WEBPACK_IMPORTED_MODULE_0__["defaultCloudNativeCredentials"] : _config__WEBPACK_IMPORTED_MODULE_0__["defaultClassicCredentials"]),
53316
+ mapsUrl: _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_MAPS_URL_FORMAT"][apiVersion],
53281
53317
  ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),
53282
53318
  ...credentials
53283
53319
  };
53284
-
53285
- if (!localCreds.mapsUrl) {
53286
- localCreds.mapsUrl = _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_MAPS_URL_FORMAT"][apiVersion];
53287
- }
53288
-
53289
53320
  let url;
53290
- const connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
53321
+ const connection = type === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["MAP_TYPES"].TILESET ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
53291
53322
 
53292
53323
  switch (apiVersion) {
53293
53324
  case _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V1:
@@ -53332,8 +53363,6 @@ async function request({
53332
53363
 
53333
53364
  try {
53334
53365
  /* global fetch */
53335
-
53336
- /* eslint no-undef: "error" */
53337
53366
  response = await fetch(url, {
53338
53367
  headers: {
53339
53368
  Accept: 'application/json'
@@ -53380,7 +53409,7 @@ function dealWithError({
53380
53409
 
53381
53410
  function initURLParameters(credentials) {
53382
53411
  const encodedApiKey = Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('api_key', credentials.apiKey);
53383
- const encodedClient = Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('client', `deck-gl-carto`);
53412
+ const encodedClient = Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('client', 'deck-gl-carto');
53384
53413
  return [encodedApiKey, encodedClient];
53385
53414
  }
53386
53415
  /**
@@ -53429,6 +53458,7 @@ function createMapConfig(sql) {
53429
53458
  type: 'mapnik',
53430
53459
  options: {
53431
53460
  sql,
53461
+ // eslint-disable-next-line camelcase
53432
53462
  vector_extent: TILE_EXTENT
53433
53463
  }
53434
53464
  }]
@@ -53437,9 +53467,9 @@ function createMapConfig(sql) {
53437
53467
 
53438
53468
  /***/ }),
53439
53469
 
53440
- /***/ "./src/api/maps-v3-client.js":
53470
+ /***/ "./src/api/maps-v3-client.ts":
53441
53471
  /*!***********************************!*\
53442
- !*** ./src/api/maps-v3-client.js ***!
53472
+ !*** ./src/api/maps-v3-client.ts ***!
53443
53473
  \***********************************/
53444
53474
  /*! exports provided: mapInstantiation, fetchLayerData, getData, fetchMap */
53445
53475
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -53450,11 +53480,12 @@ __webpack_require__.r(__webpack_exports__);
53450
53480
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchLayerData", function() { return fetchLayerData; });
53451
53481
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getData", function() { return getData; });
53452
53482
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchMap", function() { return fetchMap; });
53453
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config */ "./src/config.js");
53454
- /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.js");
53455
- /* harmony import */ var _parseMap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parseMap */ "./src/api/parseMap.js");
53483
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config */ "./src/config.ts");
53484
+ /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.ts");
53485
+ /* harmony import */ var _parseMap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parseMap */ "./src/api/parseMap.ts");
53456
53486
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
53457
53487
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_3__);
53488
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./src/utils.ts");
53458
53489
  /**
53459
53490
  * Maps API Client for Carto 3
53460
53491
  */
@@ -53462,20 +53493,19 @@ __webpack_require__.r(__webpack_exports__);
53462
53493
 
53463
53494
 
53464
53495
 
53496
+
53465
53497
  const MAX_GET_LENGTH = 2048;
53466
53498
  const DEFAULT_CLIENT = 'deck-gl-carto';
53499
+
53467
53500
  /**
53468
53501
  * Request against Maps API
53469
53502
  */
53470
-
53471
53503
  async function request({
53472
53504
  method,
53473
53505
  url,
53474
- format,
53475
53506
  accessToken,
53476
53507
  body
53477
53508
  }) {
53478
- let response;
53479
53509
  const headers = {
53480
53510
  Accept: 'application/json'
53481
53511
  };
@@ -53490,9 +53520,7 @@ async function request({
53490
53520
 
53491
53521
  try {
53492
53522
  /* global fetch */
53493
-
53494
- /* eslint no-undef: "error" */
53495
- response = await fetch(url, {
53523
+ return await fetch(url, {
53496
53524
  method,
53497
53525
  headers,
53498
53526
  body
@@ -53500,11 +53528,20 @@ async function request({
53500
53528
  } catch (error) {
53501
53529
  throw new Error(`Failed to connect to Maps API: ${error}`);
53502
53530
  }
53531
+ }
53503
53532
 
53504
- if (format === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].NDJSON) {
53505
- return response;
53506
- }
53507
-
53533
+ async function requestJson({
53534
+ method,
53535
+ url,
53536
+ accessToken,
53537
+ body
53538
+ }) {
53539
+ const response = await request({
53540
+ method,
53541
+ url,
53542
+ accessToken,
53543
+ body
53544
+ });
53508
53545
  const json = await response.json();
53509
53546
 
53510
53547
  if (!response.ok) {
@@ -53514,7 +53551,32 @@ async function request({
53514
53551
  });
53515
53552
  }
53516
53553
 
53517
- return json.rows ? json.rows : json;
53554
+ return json;
53555
+ }
53556
+
53557
+ async function requestData({
53558
+ method,
53559
+ url,
53560
+ accessToken,
53561
+ format,
53562
+ body
53563
+ }) {
53564
+ if (format === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].NDJSON) {
53565
+ return request({
53566
+ method,
53567
+ url,
53568
+ accessToken,
53569
+ body
53570
+ });
53571
+ }
53572
+
53573
+ const data = await requestJson({
53574
+ method,
53575
+ url,
53576
+ accessToken,
53577
+ body
53578
+ });
53579
+ return data.rows ? data.rows : data;
53518
53580
  }
53519
53581
  /**
53520
53582
  * Display proper message from Maps API error
@@ -53537,11 +53599,10 @@ function dealWithError({
53537
53599
  throw new Error(error);
53538
53600
  }
53539
53601
  }
53602
+
53540
53603
  /**
53541
53604
  * Build a URL with all required parameters
53542
53605
  */
53543
-
53544
-
53545
53606
  function getParameters({
53546
53607
  type,
53547
53608
  source,
@@ -53594,7 +53655,6 @@ async function mapInstantiation({
53594
53655
  const {
53595
53656
  accessToken
53596
53657
  } = credentials;
53597
- const format = 'json';
53598
53658
 
53599
53659
  if (url.length > MAX_GET_LENGTH && type === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["MAP_TYPES"].QUERY) {
53600
53660
  // need to be a POST request
@@ -53602,18 +53662,16 @@ async function mapInstantiation({
53602
53662
  q: source,
53603
53663
  client: clientId || DEFAULT_CLIENT
53604
53664
  });
53605
- return await request({
53665
+ return await requestJson({
53606
53666
  method: 'POST',
53607
53667
  url: baseUrl,
53608
- format,
53609
53668
  accessToken,
53610
53669
  body
53611
53670
  });
53612
53671
  }
53613
53672
 
53614
- return await request({
53673
+ return await requestJson({
53615
53674
  url,
53616
- format,
53617
53675
  accessToken
53618
53676
  });
53619
53677
  }
@@ -53632,14 +53690,14 @@ function checkFetchLayerDataParameters({
53632
53690
  type,
53633
53691
  source,
53634
53692
  connection,
53635
- localCreds
53693
+ credentials
53636
53694
  }) {
53637
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(connection, 'Must define connection');
53638
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(type, 'Must define a type');
53639
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(source, 'Must define a source');
53640
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(localCreds.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3, 'Method only available for v3');
53641
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
53642
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(localCreds.accessToken, 'Must define an accessToken');
53695
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(connection, 'Must define connection');
53696
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(type, 'Must define a type');
53697
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(source, 'Must define a source');
53698
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(credentials.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3, 'Method only available for v3');
53699
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(credentials.apiBaseUrl, 'Must define apiBaseUrl');
53700
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(credentials.accessToken, 'Must define an accessToken');
53643
53701
  }
53644
53702
 
53645
53703
  async function fetchLayerData({
@@ -53671,7 +53729,7 @@ async function fetchLayerData({
53671
53729
  schema,
53672
53730
  clientId
53673
53731
  });
53674
- const data = await request({
53732
+ const data = await requestData({
53675
53733
  url,
53676
53734
  format: mapFormat,
53677
53735
  accessToken
@@ -53709,7 +53767,7 @@ async function _fetchDataUrl({
53709
53767
  type,
53710
53768
  source,
53711
53769
  connection,
53712
- localCreds
53770
+ credentials: localCreds
53713
53771
  });
53714
53772
 
53715
53773
  if (!localCreds.mapsUrl) {
@@ -53726,13 +53784,13 @@ async function _fetchDataUrl({
53726
53784
  schema,
53727
53785
  clientId
53728
53786
  });
53729
- let url;
53787
+ let url = null;
53730
53788
  let mapFormat;
53731
53789
 
53732
53790
  if (format) {
53733
53791
  mapFormat = format;
53734
53792
  url = getUrlFromMetadata(metadata, format);
53735
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(url, `Format ${format} not available`);
53793
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(url, `Format ${format} not available`);
53736
53794
  } else {
53737
53795
  // guess map format
53738
53796
  const prioritizedFormats = [_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].GEOJSON, _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].JSON, _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].NDJSON, _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].TILEJSON];
@@ -53745,6 +53803,8 @@ async function _fetchDataUrl({
53745
53803
  break;
53746
53804
  }
53747
53805
  }
53806
+
53807
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(url && mapFormat, 'Unsupported data formats received from backend.');
53748
53808
  }
53749
53809
 
53750
53810
  const {
@@ -53782,7 +53842,7 @@ async function getData({
53782
53842
  });
53783
53843
  return layerData.data;
53784
53844
  }
53785
- /* global clearInterval, setInterval, URLSearchParams */
53845
+ /* global clearInterval, setInterval, URL */
53786
53846
 
53787
53847
  async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
53788
53848
  // First fetch metadata
@@ -53804,7 +53864,7 @@ async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
53804
53864
  clientId
53805
53865
  }); // Extract the last time the data changed
53806
53866
 
53807
- const cache = parseInt(new URLSearchParams(url).get('cache'), 10);
53867
+ const cache = parseInt(new URL(url).searchParams.get('cache') || '', 10);
53808
53868
 
53809
53869
  if (cache && dataset.cache === cache) {
53810
53870
  return false;
@@ -53812,12 +53872,11 @@ async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
53812
53872
 
53813
53873
  dataset.cache = cache; // Only fetch if the data has changed
53814
53874
 
53815
- const data = await request({
53875
+ dataset.data = await requestData({
53816
53876
  url,
53817
53877
  format: mapFormat,
53818
53878
  accessToken
53819
53879
  });
53820
- dataset.data = data;
53821
53880
  return true;
53822
53881
  }
53823
53882
 
@@ -53840,33 +53899,38 @@ async function fetchMap({
53840
53899
  const localCreds = { ...(defaultCredentials.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3 && defaultCredentials),
53841
53900
  ...credentials
53842
53901
  };
53843
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(cartoMapId, `Must define CARTO map id: fetchMap({cartoMapId: 'XXXX-XXXX-XXXX'})`);
53844
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(localCreds.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3, 'Method only available for v3');
53845
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
53902
+ const {
53903
+ accessToken
53904
+ } = localCreds;
53905
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: "XXXX-XXXX-XXXX"})');
53906
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(localCreds.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3, 'Method only available for v3');
53907
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
53846
53908
 
53847
53909
  if (!localCreds.mapsUrl) {
53848
53910
  localCreds.mapsUrl = Object(_config__WEBPACK_IMPORTED_MODULE_0__["buildMapsUrlFromBase"])(localCreds.apiBaseUrl);
53849
53911
  }
53850
53912
 
53851
53913
  if (autoRefresh || onNewData) {
53852
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(onNewData, 'Must define `onNewData` when using autoRefresh');
53853
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(typeof onNewData === 'function', '`onNewData` must be a function');
53854
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(autoRefresh > 0, '`autoRefresh` must be a positive number');
53914
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(onNewData, 'Must define `onNewData` when using autoRefresh');
53915
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(typeof onNewData === 'function', '`onNewData` must be a function');
53916
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(typeof autoRefresh === 'number' && autoRefresh > 0, '`autoRefresh` must be a positive number');
53855
53917
  }
53856
53918
 
53857
53919
  const url = `${localCreds.mapsUrl}/public/${cartoMapId}`;
53858
- const map = await request({
53859
- url
53920
+ const map = await requestJson({
53921
+ url,
53922
+ accessToken
53860
53923
  }); // Periodically check if the data has changed. Note that this
53861
53924
  // will not update when a map is published.
53862
53925
 
53863
53926
  let stopAutoRefresh;
53864
53927
 
53865
53928
  if (autoRefresh) {
53929
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
53866
53930
  const intervalId = setInterval(async () => {
53867
- const changed = await fillInMapDatasets(map, clientId, credentials);
53931
+ const changed = await fillInMapDatasets(map, clientId, localCreds);
53868
53932
 
53869
- if (changed.some(v => v === true)) {
53933
+ if (onNewData && changed.some(v => v === true)) {
53870
53934
  onNewData(Object(_parseMap__WEBPACK_IMPORTED_MODULE_2__["parseMap"])(map));
53871
53935
  }
53872
53936
  }, autoRefresh * 1000);
@@ -53877,7 +53941,7 @@ async function fetchMap({
53877
53941
  } // Mutates map.datasets so that dataset.data contains data
53878
53942
 
53879
53943
 
53880
- await fillInMapDatasets(map, clientId, credentials);
53944
+ await fillInMapDatasets(map, clientId, localCreds);
53881
53945
  return { ...Object(_parseMap__WEBPACK_IMPORTED_MODULE_2__["parseMap"])(map),
53882
53946
  ...{
53883
53947
  stopAutoRefresh
@@ -53887,9 +53951,9 @@ async function fetchMap({
53887
53951
 
53888
53952
  /***/ }),
53889
53953
 
53890
- /***/ "./src/api/parseMap.js":
53954
+ /***/ "./src/api/parseMap.ts":
53891
53955
  /*!*****************************!*\
53892
- !*** ./src/api/parseMap.js ***!
53956
+ !*** ./src/api/parseMap.ts ***!
53893
53957
  \*****************************/
53894
53958
  /*! exports provided: parseMap */
53895
53959
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -53898,9 +53962,11 @@ async function fetchMap({
53898
53962
  __webpack_require__.r(__webpack_exports__);
53899
53963
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMap", function() { return parseMap; });
53900
53964
  /* harmony import */ var _luma_gl_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @luma.gl/constants */ "../../node_modules/@luma.gl/constants/dist/esm/index.js");
53901
- /* harmony import */ var _layer_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layer-map */ "./src/api/layer-map.js");
53965
+ /* harmony import */ var _layer_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layer-map */ "./src/api/layer-map.ts");
53902
53966
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
53903
53967
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_2__);
53968
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./src/utils.ts");
53969
+
53904
53970
 
53905
53971
 
53906
53972
 
@@ -53909,7 +53975,7 @@ function parseMap(json) {
53909
53975
  keplerMapConfig,
53910
53976
  datasets
53911
53977
  } = json;
53912
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');
53978
+ Object(_utils__WEBPACK_IMPORTED_MODULE_3__["assert"])(keplerMapConfig.version === 'v1', 'Only support Kepler v1');
53913
53979
  const {
53914
53980
  mapState,
53915
53981
  mapStyle
@@ -53934,20 +54000,20 @@ function parseMap(json) {
53934
54000
  visualChannels
53935
54001
  }) => {
53936
54002
  try {
53937
- const {
53938
- Layer,
53939
- propMap,
53940
- defaultProps
53941
- } = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getLayer"])(type, config);
53942
54003
  const {
53943
54004
  dataId
53944
54005
  } = config;
53945
54006
  const dataset = datasets.find(d => d.id === dataId);
53946
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(dataset, `No dataset matching dataId: ${dataId}`);
54007
+ Object(_utils__WEBPACK_IMPORTED_MODULE_3__["assert"])(dataset, `No dataset matching dataId: ${dataId}`);
53947
54008
  const {
53948
54009
  data
53949
54010
  } = dataset;
53950
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(data, `No data loaded for dataId: ${dataId}`);
54011
+ Object(_utils__WEBPACK_IMPORTED_MODULE_3__["assert"])(data, `No data loaded for dataId: ${dataId}`);
54012
+ const {
54013
+ Layer,
54014
+ propMap,
54015
+ defaultProps
54016
+ } = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getLayer"])(type, config, dataset);
53951
54017
  return new Layer({
53952
54018
  id,
53953
54019
  data,
@@ -54111,30 +54177,30 @@ function createChannelProps(visualChannels, type, config, data) {
54111
54177
 
54112
54178
  /***/ }),
54113
54179
 
54114
- /***/ "./src/basemap.js":
54180
+ /***/ "./src/basemap.ts":
54115
54181
  /*!************************!*\
54116
- !*** ./src/basemap.js ***!
54182
+ !*** ./src/basemap.ts ***!
54117
54183
  \************************/
54118
54184
  /*! exports provided: default */
54119
54185
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
54120
54186
 
54121
54187
  "use strict";
54122
54188
  __webpack_require__.r(__webpack_exports__);
54123
- const base_url = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json';
54189
+ const baseUrl = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json';
54124
54190
  /* harmony default export */ __webpack_exports__["default"] = ({
54125
- VOYAGER: base_url.replace('{basemap}', 'voyager'),
54126
- POSITRON: base_url.replace('{basemap}', 'positron'),
54127
- DARK_MATTER: base_url.replace('{basemap}', 'dark-matter'),
54128
- VOYAGER_NOLABELS: base_url.replace('{basemap}', 'voyager-nolabels'),
54129
- POSITRON_NOLABELS: base_url.replace('{basemap}', 'positron-nolabels'),
54130
- DARK_MATTER_NOLABELS: base_url.replace('{basemap}', 'dark-matter-nolabels')
54191
+ VOYAGER: baseUrl.replace('{basemap}', 'voyager'),
54192
+ POSITRON: baseUrl.replace('{basemap}', 'positron'),
54193
+ DARK_MATTER: baseUrl.replace('{basemap}', 'dark-matter'),
54194
+ VOYAGER_NOLABELS: baseUrl.replace('{basemap}', 'voyager-nolabels'),
54195
+ POSITRON_NOLABELS: baseUrl.replace('{basemap}', 'positron-nolabels'),
54196
+ DARK_MATTER_NOLABELS: baseUrl.replace('{basemap}', 'dark-matter-nolabels')
54131
54197
  });
54132
54198
 
54133
54199
  /***/ }),
54134
54200
 
54135
- /***/ "./src/config.js":
54201
+ /***/ "./src/config.ts":
54136
54202
  /*!***********************!*\
54137
- !*** ./src/config.js ***!
54203
+ !*** ./src/config.ts ***!
54138
54204
  \***********************/
54139
54205
  /*! exports provided: defaultClassicCredentials, defaultCloudNativeCredentials, setDefaultCredentials, getDefaultCredentials, buildMapsUrlFromBase */
54140
54206
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54146,7 +54212,7 @@ __webpack_require__.r(__webpack_exports__);
54146
54212
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDefaultCredentials", function() { return setDefaultCredentials; });
54147
54213
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultCredentials", function() { return getDefaultCredentials; });
54148
54214
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildMapsUrlFromBase", function() { return buildMapsUrlFromBase; });
54149
- /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./api/maps-api-common */ "./src/api/maps-api-common.js");
54215
+ /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./api/maps-api-common */ "./src/api/maps-api-common.ts");
54150
54216
 
54151
54217
  const defaultClassicCredentials = {
54152
54218
  apiKey: 'default_public',
@@ -54201,39 +54267,39 @@ function buildMapsUrlFromBase(apiBaseUrl) {
54201
54267
 
54202
54268
  /***/ }),
54203
54269
 
54204
- /***/ "./src/index.js":
54270
+ /***/ "./src/index.ts":
54205
54271
  /*!**********************!*\
54206
- !*** ./src/index.js ***!
54272
+ !*** ./src/index.ts ***!
54207
54273
  \**********************/
54208
- /*! exports provided: getDefaultCredentials, setDefaultCredentials, CartoLayer, _CartoDynamicTileLayer, BASEMAP, colorBins, colorCategories, colorContinuous, FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, fetchMap, _getDataV2, getData, _mapInstantiation */
54274
+ /*! exports provided: getDefaultCredentials, setDefaultCredentials, CartoLayer, _CartoTileLayer, BASEMAP, colorBins, colorCategories, colorContinuous, FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, fetchMap, _getDataV2, getData, _mapInstantiation */
54209
54275
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
54210
54276
 
54211
54277
  "use strict";
54212
54278
  __webpack_require__.r(__webpack_exports__);
54213
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config.js */ "./src/config.js");
54214
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultCredentials", function() { return _config_js__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"]; });
54279
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ "./src/config.ts");
54280
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultCredentials", function() { return _config__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"]; });
54215
54281
 
54216
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setDefaultCredentials", function() { return _config_js__WEBPACK_IMPORTED_MODULE_0__["setDefaultCredentials"]; });
54282
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setDefaultCredentials", function() { return _config__WEBPACK_IMPORTED_MODULE_0__["setDefaultCredentials"]; });
54217
54283
 
54218
54284
  /* harmony import */ var _layers_carto_layer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layers/carto-layer */ "./src/layers/carto-layer.js");
54219
54285
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CartoLayer", function() { return _layers_carto_layer__WEBPACK_IMPORTED_MODULE_1__["default"]; });
54220
54286
 
54221
- /* harmony import */ var _layers_carto_dynamic_tile_layer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./layers/carto-dynamic-tile-layer */ "./src/layers/carto-dynamic-tile-layer.js");
54222
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_CartoDynamicTileLayer", function() { return _layers_carto_dynamic_tile_layer__WEBPACK_IMPORTED_MODULE_2__["default"]; });
54287
+ /* harmony import */ var _layers_carto_tile_layer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./layers/carto-tile-layer */ "./src/layers/carto-tile-layer.js");
54288
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_CartoTileLayer", function() { return _layers_carto_tile_layer__WEBPACK_IMPORTED_MODULE_2__["default"]; });
54223
54289
 
54224
- /* harmony import */ var _basemap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basemap */ "./src/basemap.js");
54290
+ /* harmony import */ var _basemap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basemap */ "./src/basemap.ts");
54225
54291
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BASEMAP", function() { return _basemap__WEBPACK_IMPORTED_MODULE_3__["default"]; });
54226
54292
 
54227
- /* harmony import */ var _style_color_bins_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style/color-bins-style */ "./src/style/color-bins-style.js");
54293
+ /* harmony import */ var _style_color_bins_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style/color-bins-style */ "./src/style/color-bins-style.ts");
54228
54294
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colorBins", function() { return _style_color_bins_style__WEBPACK_IMPORTED_MODULE_4__["default"]; });
54229
54295
 
54230
- /* harmony import */ var _style_color_categories_style__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./style/color-categories-style */ "./src/style/color-categories-style.js");
54296
+ /* harmony import */ var _style_color_categories_style__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./style/color-categories-style */ "./src/style/color-categories-style.ts");
54231
54297
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colorCategories", function() { return _style_color_categories_style__WEBPACK_IMPORTED_MODULE_5__["default"]; });
54232
54298
 
54233
- /* harmony import */ var _style_color_continuous_style__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style/color-continuous-style */ "./src/style/color-continuous-style.js");
54299
+ /* harmony import */ var _style_color_continuous_style__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style/color-continuous-style */ "./src/style/color-continuous-style.ts");
54234
54300
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colorContinuous", function() { return _style_color_continuous_style__WEBPACK_IMPORTED_MODULE_6__["default"]; });
54235
54301
 
54236
- /* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./api */ "./src/api/index.js");
54302
+ /* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./api */ "./src/api/index.ts");
54237
54303
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FORMATS", function() { return _api__WEBPACK_IMPORTED_MODULE_7__["FORMATS"]; });
54238
54304
 
54239
54305
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TILE_FORMATS", function() { return _api__WEBPACK_IMPORTED_MODULE_7__["TILE_FORMATS"]; });
@@ -54261,166 +54327,6 @@ __webpack_require__.r(__webpack_exports__);
54261
54327
 
54262
54328
 
54263
54329
 
54264
- /***/ }),
54265
-
54266
- /***/ "./src/layers/carto-dynamic-tile-layer.js":
54267
- /*!************************************************!*\
54268
- !*** ./src/layers/carto-dynamic-tile-layer.js ***!
54269
- \************************************************/
54270
- /*! exports provided: default */
54271
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
54272
-
54273
- "use strict";
54274
- __webpack_require__.r(__webpack_exports__);
54275
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CartoDynamicTileLayer; });
54276
- /* harmony import */ var pbf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pbf */ "../../node_modules/pbf/index.js");
54277
- /* harmony import */ var pbf__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(pbf__WEBPACK_IMPORTED_MODULE_0__);
54278
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
54279
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__);
54280
- /* harmony import */ var _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/extensions */ "../extensions/src/index.ts");
54281
- /* harmony import */ var _loaders_gl_gis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @loaders.gl/gis */ "../../node_modules/@loaders.gl/gis/dist/esm/index.js");
54282
- /* harmony import */ var _schema_carto_dynamic_tile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./schema/carto-dynamic-tile */ "./src/layers/schema/carto-dynamic-tile.js");
54283
- /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.js");
54284
- /* global TextDecoder */
54285
-
54286
-
54287
-
54288
-
54289
-
54290
-
54291
-
54292
-
54293
-
54294
- function parseJSON(arrayBuffer) {
54295
- return JSON.parse(new TextDecoder().decode(arrayBuffer));
54296
- }
54297
-
54298
- function parsePbf(buffer) {
54299
- const pbf = new pbf__WEBPACK_IMPORTED_MODULE_0___default.a(buffer);
54300
- const tile = _schema_carto_dynamic_tile__WEBPACK_IMPORTED_MODULE_4__["Tile"].read(pbf);
54301
- return tile;
54302
- }
54303
-
54304
- function unpackProperties(properties) {
54305
- if (!properties || !properties.length) {
54306
- return [];
54307
- }
54308
-
54309
- return properties.map(item => {
54310
- const currentRecord = {};
54311
- item.data.forEach(({
54312
- key,
54313
- value
54314
- }) => {
54315
- currentRecord[key] = value;
54316
- });
54317
- return currentRecord;
54318
- });
54319
- }
54320
-
54321
- function parseCartoDynamicTile(arrayBuffer, options) {
54322
- if (!arrayBuffer) return null;
54323
- const formatTiles = options && options.cartoDynamicTile && options.cartoDynamicTile.formatTiles;
54324
- if (formatTiles === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].GEOJSON) return Object(_loaders_gl_gis__WEBPACK_IMPORTED_MODULE_3__["geojsonToBinary"])(parseJSON(arrayBuffer).features);
54325
- const tile = parsePbf(arrayBuffer);
54326
- const {
54327
- points,
54328
- lines,
54329
- polygons
54330
- } = tile;
54331
- const data = {
54332
- points: { ...points,
54333
- properties: unpackProperties(points.properties)
54334
- },
54335
- lines: { ...lines,
54336
- properties: unpackProperties(lines.properties)
54337
- },
54338
- polygons: { ...polygons,
54339
- properties: unpackProperties(polygons.properties)
54340
- }
54341
- };
54342
- return data;
54343
- }
54344
-
54345
- const CartoDynamicTileLoader = {
54346
- name: 'CARTO Dynamic Tile',
54347
- id: 'cartoDynamicTile',
54348
- module: 'carto',
54349
- extensions: ['pbf'],
54350
- mimeTypes: ['application/x-protobuf'],
54351
- category: 'geometry',
54352
- worker: false,
54353
- parse: async (arrayBuffer, options) => parseCartoDynamicTile(arrayBuffer, options),
54354
- parseSync: parseCartoDynamicTile,
54355
- options: {
54356
- cartoDynamicTile: {
54357
- formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].BINARY
54358
- }
54359
- }
54360
- };
54361
- class CartoDynamicTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"] {
54362
- getTileData(tile) {
54363
- let url = Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["_getURLFromTemplate"])(this.state.data, tile);
54364
-
54365
- if (!url) {
54366
- return Promise.reject('Invalid URL');
54367
- }
54368
-
54369
- let loadOptions = this.getLoadOptions();
54370
- const {
54371
- fetch,
54372
- formatTiles
54373
- } = this.props;
54374
- const {
54375
- signal
54376
- } = tile;
54377
- loadOptions = { ...loadOptions,
54378
- mimeType: 'application/x-protobuf'
54379
- };
54380
-
54381
- if (formatTiles) {
54382
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["log"].assert(Object.values(_api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"]).includes(formatTiles), `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`);
54383
- url += `&${Object(_api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["encodeParameter"])('formatTiles', formatTiles)}`;
54384
- loadOptions.cartoDynamicTile = {
54385
- formatTiles
54386
- };
54387
- }
54388
-
54389
- return fetch(url, {
54390
- propName: 'data',
54391
- layer: this,
54392
- loadOptions,
54393
- signal
54394
- });
54395
- }
54396
-
54397
- renderSubLayers(props) {
54398
- if (props.data === null) {
54399
- return null;
54400
- }
54401
-
54402
- props.autoHighlight = false;
54403
- const {
54404
- bbox: {
54405
- west,
54406
- south,
54407
- east,
54408
- north
54409
- }
54410
- } = props.tile;
54411
- props.extensions = [new _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__["ClipExtension"](), ...props.extensions];
54412
- props.clipBounds = [west, south, east, north];
54413
- const subLayer = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["GeoJsonLayer"]({ ...props
54414
- });
54415
- return subLayer;
54416
- }
54417
-
54418
- }
54419
- CartoDynamicTileLayer.layerName = 'CartoDynamicTileLayer';
54420
- CartoDynamicTileLayer.defaultProps = { ..._deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"].defaultProps,
54421
- loaders: [CartoDynamicTileLoader]
54422
- };
54423
-
54424
54330
  /***/ }),
54425
54331
 
54426
54332
  /***/ "./src/layers/carto-layer.js":
@@ -54435,10 +54341,10 @@ __webpack_require__.r(__webpack_exports__);
54435
54341
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CartoLayer; });
54436
54342
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
54437
54343
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
54438
- /* harmony import */ var _carto_dynamic_tile_layer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./carto-dynamic-tile-layer */ "./src/layers/carto-dynamic-tile-layer.js");
54439
- /* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api */ "./src/api/index.js");
54440
- /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.js");
54441
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config.js");
54344
+ /* harmony import */ var _carto_tile_layer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./carto-tile-layer */ "./src/layers/carto-tile-layer.js");
54345
+ /* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api */ "./src/api/index.ts");
54346
+ /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.ts");
54347
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config.ts");
54442
54348
 
54443
54349
 
54444
54350
 
@@ -54475,9 +54381,8 @@ const defaultProps = {
54475
54381
  connection: null,
54476
54382
  // (String, optional): format of data
54477
54383
  format: null,
54478
- // (String, optional): format of data
54479
- formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].GEOJSON,
54480
- // TODO: for 8.7 release switch to BINARY
54384
+ // (String, optional): force format of data for tiles
54385
+ formatTiles: null,
54481
54386
  // (String, optional): clientId identifier used for internal tracing, place here a string to identify the client who is doing the request.
54482
54387
  clientId: null,
54483
54388
  // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.
@@ -54603,42 +54508,46 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
54603
54508
  }
54604
54509
  }
54605
54510
 
54606
- renderLayers() {
54511
+ _getSubLayerAndProps() {
54607
54512
  const {
54608
54513
  data,
54609
54514
  format,
54610
54515
  apiVersion
54611
54516
  } = this.state;
54612
- if (!data) return null;
54613
54517
  const {
54614
- type,
54615
- updateTriggers
54616
- } = this.props;
54617
- let layer;
54618
- /* global URLSearchParams */
54619
-
54620
- const tilesFormat = apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V3 && format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON && new URLSearchParams(data.tiles[0]).get('format');
54621
- const nonMvtTiles = tilesFormat && tilesFormat !== _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT;
54622
- const dynamicTiles = apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V3 && type === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["MAP_TYPES"].TABLE && format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON;
54623
-
54624
- if (nonMvtTiles || dynamicTiles) {
54625
- layer = _carto_dynamic_tile_layer__WEBPACK_IMPORTED_MODULE_1__["default"];
54626
- } else if (apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V1 || apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V2 || format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON) {
54627
- layer = _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"];
54628
- } else {
54629
- layer = _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"];
54630
- }
54631
-
54632
- const {
54633
- formatTiles,
54634
54518
  uniqueIdProperty
54635
54519
  } = defaultProps;
54636
54520
  const props = {
54637
- formatTiles,
54638
54521
  uniqueIdProperty,
54639
54522
  ...this.props
54640
54523
  };
54641
- delete props.data; // eslint-disable-next-line new-cap
54524
+ delete props.data;
54525
+
54526
+ if (apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V1 || apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V2) {
54527
+ return [_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"], props];
54528
+ }
54529
+
54530
+ if (format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON) {
54531
+ /* global URL */
54532
+ props.formatTiles = props.formatTiles || new URL(data.tiles[0]).searchParams.get('formatTiles') || _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT;
54533
+ return props.formatTiles === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT ? [_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"], props] : [_carto_tile_layer__WEBPACK_IMPORTED_MODULE_1__["default"], props];
54534
+ } // It's a geojson layer
54535
+
54536
+
54537
+ return [_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"], props];
54538
+ }
54539
+
54540
+ renderLayers() {
54541
+ const {
54542
+ data
54543
+ } = this.state;
54544
+ if (!data) return null;
54545
+ const {
54546
+ updateTriggers
54547
+ } = this.props;
54548
+
54549
+ const [layer, props] = this._getSubLayerAndProps(); // eslint-disable-next-line new-cap
54550
+
54642
54551
 
54643
54552
  return new layer(props, this.getSubLayerProps({
54644
54553
  id: `carto-${layer.layerName}`,
@@ -54653,10 +54562,174 @@ CartoLayer.defaultProps = defaultProps;
54653
54562
 
54654
54563
  /***/ }),
54655
54564
 
54656
- /***/ "./src/layers/schema/carto-dynamic-tile.js":
54657
- /*!*************************************************!*\
54658
- !*** ./src/layers/schema/carto-dynamic-tile.js ***!
54659
- \*************************************************/
54565
+ /***/ "./src/layers/carto-tile-layer.js":
54566
+ /*!****************************************!*\
54567
+ !*** ./src/layers/carto-tile-layer.js ***!
54568
+ \****************************************/
54569
+ /*! exports provided: default */
54570
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
54571
+
54572
+ "use strict";
54573
+ __webpack_require__.r(__webpack_exports__);
54574
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CartoTileLayer; });
54575
+ /* harmony import */ var pbf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pbf */ "../../node_modules/pbf/index.js");
54576
+ /* harmony import */ var pbf__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(pbf__WEBPACK_IMPORTED_MODULE_0__);
54577
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
54578
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__);
54579
+ /* harmony import */ var _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/extensions */ "../extensions/src/index.ts");
54580
+ /* harmony import */ var _loaders_gl_gis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @loaders.gl/gis */ "../../node_modules/@loaders.gl/gis/dist/esm/index.js");
54581
+ /* harmony import */ var _schema_carto_tile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./schema/carto-tile */ "./src/layers/schema/carto-tile.js");
54582
+ /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.ts");
54583
+ /* global TextDecoder */
54584
+
54585
+
54586
+
54587
+
54588
+
54589
+
54590
+
54591
+
54592
+
54593
+ function parseJSON(arrayBuffer) {
54594
+ return JSON.parse(new TextDecoder().decode(arrayBuffer));
54595
+ }
54596
+
54597
+ function parsePbf(buffer) {
54598
+ const pbf = new pbf__WEBPACK_IMPORTED_MODULE_0___default.a(buffer);
54599
+ const tile = _schema_carto_tile__WEBPACK_IMPORTED_MODULE_4__["Tile"].read(pbf);
54600
+ return tile;
54601
+ }
54602
+
54603
+ function unpackProperties(properties) {
54604
+ if (!properties || !properties.length) {
54605
+ return [];
54606
+ }
54607
+
54608
+ return properties.map(item => {
54609
+ const currentRecord = {};
54610
+ item.data.forEach(({
54611
+ key,
54612
+ value
54613
+ }) => {
54614
+ currentRecord[key] = value;
54615
+ });
54616
+ return currentRecord;
54617
+ });
54618
+ }
54619
+
54620
+ function parseCartoTile(arrayBuffer, options) {
54621
+ if (!arrayBuffer) return null;
54622
+ const formatTiles = options && options.cartoTile && options.cartoTile.formatTiles;
54623
+ if (formatTiles === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].GEOJSON) return Object(_loaders_gl_gis__WEBPACK_IMPORTED_MODULE_3__["geojsonToBinary"])(parseJSON(arrayBuffer).features);
54624
+ const tile = parsePbf(arrayBuffer);
54625
+ const {
54626
+ points,
54627
+ lines,
54628
+ polygons
54629
+ } = tile;
54630
+ const data = {
54631
+ points: { ...points,
54632
+ properties: unpackProperties(points.properties)
54633
+ },
54634
+ lines: { ...lines,
54635
+ properties: unpackProperties(lines.properties)
54636
+ },
54637
+ polygons: { ...polygons,
54638
+ properties: unpackProperties(polygons.properties)
54639
+ }
54640
+ };
54641
+ return data;
54642
+ }
54643
+
54644
+ const CartoTileLoader = {
54645
+ name: 'CARTO Tile',
54646
+ id: 'cartoTile',
54647
+ module: 'carto',
54648
+ extensions: ['pbf'],
54649
+ mimeTypes: ['application/x-protobuf'],
54650
+ category: 'geometry',
54651
+ worker: false,
54652
+ parse: async (arrayBuffer, options) => parseCartoTile(arrayBuffer, options),
54653
+ parseSync: parseCartoTile,
54654
+ options: {
54655
+ cartoTile: {
54656
+ // TODO change to BINARY for 8.7 prod release
54657
+ formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].BINARY
54658
+ }
54659
+ }
54660
+ };
54661
+ class CartoTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"] {
54662
+ getTileData(tile) {
54663
+ let url = Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["_getURLFromTemplate"])(this.state.data, tile);
54664
+
54665
+ if (!url) {
54666
+ return Promise.reject('Invalid URL');
54667
+ }
54668
+
54669
+ let loadOptions = this.getLoadOptions();
54670
+ const {
54671
+ fetch,
54672
+ formatTiles
54673
+ } = this.props;
54674
+ const {
54675
+ signal
54676
+ } = tile;
54677
+ loadOptions = { ...loadOptions,
54678
+ mimeType: 'application/x-protobuf'
54679
+ };
54680
+
54681
+ if (formatTiles) {
54682
+ _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["log"].assert(Object.values(_api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"]).includes(formatTiles), `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`); // eslint-disable-next-line no-undef
54683
+
54684
+ const newUrl = new URL(url);
54685
+ newUrl.searchParams.set('formatTiles', formatTiles);
54686
+ url = newUrl.toString();
54687
+ loadOptions.cartoTile = {
54688
+ formatTiles
54689
+ };
54690
+ }
54691
+
54692
+ return fetch(url, {
54693
+ propName: 'data',
54694
+ layer: this,
54695
+ loadOptions,
54696
+ signal
54697
+ });
54698
+ }
54699
+
54700
+ renderSubLayers(props) {
54701
+ if (props.data === null) {
54702
+ return null;
54703
+ }
54704
+
54705
+ props.autoHighlight = false;
54706
+ const {
54707
+ bbox: {
54708
+ west,
54709
+ south,
54710
+ east,
54711
+ north
54712
+ }
54713
+ } = props.tile;
54714
+ props.extensions = [new _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__["ClipExtension"](), ...(props.extensions || [])];
54715
+ props.clipBounds = [west, south, east, north];
54716
+ const subLayer = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["GeoJsonLayer"]({ ...props
54717
+ });
54718
+ return subLayer;
54719
+ }
54720
+
54721
+ }
54722
+ CartoTileLayer.layerName = 'CartoTileLayer';
54723
+ CartoTileLayer.defaultProps = { ..._deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"].defaultProps,
54724
+ loaders: [CartoTileLoader]
54725
+ };
54726
+
54727
+ /***/ }),
54728
+
54729
+ /***/ "./src/layers/schema/carto-tile.js":
54730
+ /*!*****************************************!*\
54731
+ !*** ./src/layers/schema/carto-tile.js ***!
54732
+ \*****************************************/
54660
54733
  /*! exports provided: Tile */
54661
54734
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
54662
54735
 
@@ -54869,9 +54942,9 @@ Tile._readField = function (tag, obj, pbf) {
54869
54942
 
54870
54943
  /***/ }),
54871
54944
 
54872
- /***/ "./src/style/color-bins-style.js":
54945
+ /***/ "./src/style/color-bins-style.ts":
54873
54946
  /*!***************************************!*\
54874
- !*** ./src/style/color-bins-style.js ***!
54947
+ !*** ./src/style/color-bins-style.ts ***!
54875
54948
  \***************************************/
54876
54949
  /*! exports provided: default */
54877
54950
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54880,8 +54953,8 @@ Tile._readField = function (tag, obj, pbf) {
54880
54953
  __webpack_require__.r(__webpack_exports__);
54881
54954
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return colorBins; });
54882
54955
  /* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-scale */ "../../node_modules/d3-scale/src/index.js");
54883
- /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./palette */ "./src/style/palette.js");
54884
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/style/utils.js");
54956
+ /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./palette */ "./src/style/palette.ts");
54957
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/style/utils.ts");
54885
54958
 
54886
54959
 
54887
54960
 
@@ -54896,15 +54969,15 @@ function colorBins({
54896
54969
  const color = Object(d3_scale__WEBPACK_IMPORTED_MODULE_0__["scaleThreshold"])().domain(domain).range(palette);
54897
54970
  return d => {
54898
54971
  const value = Object(_utils__WEBPACK_IMPORTED_MODULE_2__["getAttrValue"])(attr, d);
54899
- return Number.isFinite(value) ? color(value) : nullColor;
54972
+ return typeof value === 'number' && Number.isFinite(value) ? color(value) : nullColor;
54900
54973
  };
54901
54974
  }
54902
54975
 
54903
54976
  /***/ }),
54904
54977
 
54905
- /***/ "./src/style/color-categories-style.js":
54978
+ /***/ "./src/style/color-categories-style.ts":
54906
54979
  /*!*********************************************!*\
54907
- !*** ./src/style/color-categories-style.js ***!
54980
+ !*** ./src/style/color-categories-style.ts ***!
54908
54981
  \*********************************************/
54909
54982
  /*! exports provided: default */
54910
54983
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54912,8 +54985,8 @@ function colorBins({
54912
54985
  "use strict";
54913
54986
  __webpack_require__.r(__webpack_exports__);
54914
54987
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return colorCategories; });
54915
- /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./palette */ "./src/style/palette.js");
54916
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/style/utils.js");
54988
+ /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./palette */ "./src/style/palette.ts");
54989
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/style/utils.ts");
54917
54990
 
54918
54991
 
54919
54992
  function colorCategories({
@@ -54933,15 +55006,15 @@ function colorCategories({
54933
55006
 
54934
55007
  return d => {
54935
55008
  const value = Object(_utils__WEBPACK_IMPORTED_MODULE_1__["getAttrValue"])(attr, d);
54936
- return Number.isFinite(value) || typeof value === 'string' ? colorsByCategory[value] || othersColor : nullColor;
55009
+ return typeof value === 'number' && Number.isFinite(value) || typeof value === 'string' ? colorsByCategory[value] || othersColor : nullColor;
54937
55010
  };
54938
55011
  }
54939
55012
 
54940
55013
  /***/ }),
54941
55014
 
54942
- /***/ "./src/style/color-continuous-style.js":
55015
+ /***/ "./src/style/color-continuous-style.ts":
54943
55016
  /*!*********************************************!*\
54944
- !*** ./src/style/color-continuous-style.js ***!
55017
+ !*** ./src/style/color-continuous-style.ts ***!
54945
55018
  \*********************************************/
54946
55019
  /*! exports provided: default */
54947
55020
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54950,8 +55023,8 @@ function colorCategories({
54950
55023
  __webpack_require__.r(__webpack_exports__);
54951
55024
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return colorContinuous; });
54952
55025
  /* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-scale */ "../../node_modules/d3-scale/src/index.js");
54953
- /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./palette */ "./src/style/palette.js");
54954
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/style/utils.js");
55026
+ /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./palette */ "./src/style/palette.ts");
55027
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/style/utils.ts");
54955
55028
 
54956
55029
 
54957
55030
 
@@ -54966,15 +55039,15 @@ function colorContinuous({
54966
55039
  const color = Object(d3_scale__WEBPACK_IMPORTED_MODULE_0__["scaleLinear"])().domain(domain).range(palette);
54967
55040
  return d => {
54968
55041
  const value = Object(_utils__WEBPACK_IMPORTED_MODULE_2__["getAttrValue"])(attr, d);
54969
- return Number.isFinite(value) ? color(value) : nullColor;
55042
+ return typeof value === 'number' && Number.isFinite(value) ? color(value) : nullColor;
54970
55043
  };
54971
55044
  }
54972
55045
 
54973
55046
  /***/ }),
54974
55047
 
54975
- /***/ "./src/style/palette.js":
55048
+ /***/ "./src/style/palette.ts":
54976
55049
  /*!******************************!*\
54977
- !*** ./src/style/palette.js ***!
55050
+ !*** ./src/style/palette.ts ***!
54978
55051
  \******************************/
54979
55052
  /*! exports provided: DEFAULT_PALETTE, NULL_COLOR, OTHERS_COLOR, default, hexToRgb */
54980
55053
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54988,7 +55061,7 @@ __webpack_require__.r(__webpack_exports__);
54988
55061
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexToRgb", function() { return hexToRgb; });
54989
55062
  /* harmony import */ var cartocolor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cartocolor */ "../../node_modules/cartocolor/index.js");
54990
55063
  /* harmony import */ var cartocolor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cartocolor__WEBPACK_IMPORTED_MODULE_0__);
54991
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/style/utils.js");
55064
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/style/utils.ts");
54992
55065
 
54993
55066
 
54994
55067
  const DEFAULT_PALETTE = 'PurpOr';
@@ -55040,20 +55113,15 @@ function hexToRgb(hex) {
55040
55113
 
55041
55114
 
55042
55115
  result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
55043
-
55044
- if (result) {
55045
- return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), parseInt(result[4], 16)];
55046
- }
55047
-
55048
55116
  Object(_utils__WEBPACK_IMPORTED_MODULE_1__["assert"])(result, `Hexadecimal color "${hex}" was not parsed correctly`);
55049
- return NULL_COLOR;
55117
+ return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), parseInt(result[4], 16)];
55050
55118
  }
55051
55119
 
55052
55120
  /***/ }),
55053
55121
 
55054
- /***/ "./src/style/utils.js":
55122
+ /***/ "./src/style/utils.ts":
55055
55123
  /*!****************************!*\
55056
- !*** ./src/style/utils.js ***!
55124
+ !*** ./src/style/utils.ts ***!
55057
55125
  \****************************/
55058
55126
  /*! exports provided: getAttrValue, assert */
55059
55127
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -55067,16 +55135,11 @@ function getAttrValue(attr, d) {
55067
55135
  assert(typeof d === 'object', 'Expected "data" to be an object');
55068
55136
  assert(ALLOWED_ATTR_TYPES.includes(typeof attr), 'Expected "attr" to be a function or string'); // Is function
55069
55137
 
55070
- if (typeof attr === ALLOWED_ATTR_TYPES[0]) {
55138
+ if (typeof attr === 'function') {
55071
55139
  return attr(d);
55072
- } // Is string
55073
-
55074
-
55075
- if (typeof attr === ALLOWED_ATTR_TYPES[1]) {
55076
- return d.properties[attr];
55077
55140
  }
55078
55141
 
55079
- return {};
55142
+ return d.properties[attr];
55080
55143
  }
55081
55144
  function assert(condition, message = '') {
55082
55145
  if (!condition) {
@@ -55086,6 +55149,25 @@ function assert(condition, message = '') {
55086
55149
 
55087
55150
  /***/ }),
55088
55151
 
55152
+ /***/ "./src/utils.ts":
55153
+ /*!**********************!*\
55154
+ !*** ./src/utils.ts ***!
55155
+ \**********************/
55156
+ /*! exports provided: assert */
55157
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
55158
+
55159
+ "use strict";
55160
+ __webpack_require__.r(__webpack_exports__);
55161
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assert", function() { return assert; });
55162
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
55163
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
55164
+
55165
+ function assert(condition, message) {
55166
+ _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(condition, message);
55167
+ }
55168
+
55169
+ /***/ }),
55170
+
55089
55171
  /***/ "@deck.gl/core":
55090
55172
  /*!***********************!*\
55091
55173
  !*** external "deck" ***!