@deck.gl/carto 8.7.0-beta.5 → 8.7.0

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 +398 -343
  2. package/dist/es5/api/index.js.map +1 -1
  3. package/dist/es5/api/layer-map.js +8 -8
  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 +237 -177
  10. package/dist/es5/api/maps-v3-client.js.map +1 -1
  11. package/dist/es5/api/parseMap.js +5 -8
  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 +20 -18
  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} +24 -24
  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 +5 -4
  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 +72 -37
  44. package/dist/esm/api/maps-v3-client.js.map +1 -1
  45. package/dist/esm/api/parseMap.js +4 -3
  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 +15 -17
  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} +16 -16
  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} +25 -14
  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} +146 -57
  77. package/src/api/{parseMap.js → parseMap.ts} +7 -6
  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 +13 -12
  82. package/src/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +14 -14
  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,9 +52943,12 @@ __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__);
52948
- /* harmony import */ var _deck_gl_carto__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @deck.gl/carto */ "./src/index.js");
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
+
52949
52952
 
52950
52953
 
52951
52954
 
@@ -52963,8 +52966,8 @@ const SCALE_FUNCS = {
52963
52966
  quantile: d3_scale__WEBPACK_IMPORTED_MODULE_2__["scaleQuantile"],
52964
52967
  quantize: d3_scale__WEBPACK_IMPORTED_MODULE_2__["scaleQuantize"],
52965
52968
  sqrt: d3_scale__WEBPACK_IMPORTED_MODULE_2__["scaleSqrt"]
52966
- }; // Kepler -> Deck.gl
52967
-
52969
+ };
52970
+ // Kepler -> Deck.gl
52968
52971
  const sharedPropMap = {
52969
52972
  color: 'getFillColor',
52970
52973
  isVisible: 'visible',
@@ -53013,7 +53016,7 @@ function getLayer(type, config, dataset) {
53013
53016
  const hexagonId = config.columns?.hex_id;
53014
53017
  const layer = {
53015
53018
  point: {
53016
- Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
53019
+ Layer: _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
53017
53020
  propMap: mergePropMaps(sharedPropMap, {
53018
53021
  visConfig: {
53019
53022
  outline: 'stroked'
@@ -53022,14 +53025,14 @@ function getLayer(type, config, dataset) {
53022
53025
  defaultProps
53023
53026
  },
53024
53027
  geojson: {
53025
- Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
53028
+ Layer: _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
53026
53029
  propMap: sharedPropMap,
53027
53030
  defaultProps: { ...defaultProps,
53028
53031
  lineWidthScale: 2
53029
53032
  }
53030
53033
  },
53031
53034
  hexagonId: {
53032
- Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["H3HexagonLayer"],
53035
+ Layer: _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__["H3HexagonLayer"],
53033
53036
  propMap: mergePropMaps(sharedPropMap, {
53034
53037
  visConfig: {
53035
53038
  coverage: 'coverage',
@@ -53041,7 +53044,7 @@ function getLayer(type, config, dataset) {
53041
53044
  }
53042
53045
  }
53043
53046
  }[type];
53044
- _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}`);
53045
53048
  return layer;
53046
53049
  }
53047
53050
 
@@ -53053,9 +53056,9 @@ function getTileLayer(dataset) {
53053
53056
  } = dataset;
53054
53057
  /* global URL */
53055
53058
 
53056
- const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || _deck_gl_carto__WEBPACK_IMPORTED_MODULE_6__["TILE_FORMATS"].MVT;
53059
+ const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || _maps_api_common__WEBPACK_IMPORTED_MODULE_7__["TILE_FORMATS"].MVT;
53057
53060
  return {
53058
- Layer: formatTiles === _deck_gl_carto__WEBPACK_IMPORTED_MODULE_6__["TILE_FORMATS"].MVT ? _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["MVTLayer"] : _deck_gl_carto__WEBPACK_IMPORTED_MODULE_6__["_CartoDynamicTileLayer"],
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"],
53059
53062
  propMap: sharedPropMap,
53060
53063
  defaultProps: { ...defaultProps,
53061
53064
  pointRadiusScale: 0.3,
@@ -53202,11 +53205,11 @@ function getTextPixelOffsetAccessor({
53202
53205
 
53203
53206
  /***/ }),
53204
53207
 
53205
- /***/ "./src/api/maps-api-common.js":
53208
+ /***/ "./src/api/maps-api-common.ts":
53206
53209
  /*!************************************!*\
53207
- !*** ./src/api/maps-api-common.js ***!
53210
+ !*** ./src/api/maps-api-common.ts ***!
53208
53211
  \************************************/
53209
- /*! 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 */
53210
53213
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
53211
53214
 
53212
53215
  "use strict";
@@ -53218,6 +53221,7 @@ __webpack_require__.r(__webpack_exports__);
53218
53221
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAP_TYPES", function() { return MAP_TYPES; });
53219
53222
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FORMATS", function() { return FORMATS; });
53220
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; });
53221
53225
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeParameter", function() { return encodeParameter; });
53222
53226
  const DEFAULT_USER_COMPONENT_IN_URL = '{user}';
53223
53227
  const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';
@@ -53234,33 +53238,46 @@ const MAP_TYPES = {
53234
53238
  QUERY: 'query',
53235
53239
  TABLE: 'table',
53236
53240
  TILESET: 'tileset'
53237
- }; // AVAILABLE FORMATS
53238
-
53241
+ };
53242
+ // AVAILABLE FORMATS
53239
53243
  const FORMATS = {
53240
53244
  GEOJSON: 'geojson',
53241
53245
  NDJSON: 'ndjson',
53242
53246
  TILEJSON: 'tilejson',
53243
53247
  JSON: 'json'
53244
- }; // AVAILABLE FORMATS FOR TILES
53245
-
53248
+ };
53249
+ // AVAILABLE FORMATS FOR TILES
53246
53250
  const TILE_FORMATS = {
53247
53251
  MVT: 'mvt',
53248
53252
  GEOJSON: 'geojson',
53249
53253
  BINARY: 'binary'
53250
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
+
53251
53269
  /**
53252
53270
  * Simple encode parameter
53253
53271
  */
53254
-
53255
53272
  function encodeParameter(name, value) {
53256
53273
  return `${name}=${encodeURIComponent(value)}`;
53257
53274
  }
53258
53275
 
53259
53276
  /***/ }),
53260
53277
 
53261
- /***/ "./src/api/maps-client.js":
53278
+ /***/ "./src/api/maps-client.ts":
53262
53279
  /*!********************************!*\
53263
- !*** ./src/api/maps-client.js ***!
53280
+ !*** ./src/api/maps-client.ts ***!
53264
53281
  \********************************/
53265
53282
  /*! exports provided: CONNECTIONS, getDataV2 */
53266
53283
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -53269,8 +53286,8 @@ function encodeParameter(name, value) {
53269
53286
  __webpack_require__.r(__webpack_exports__);
53270
53287
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONNECTIONS", function() { return CONNECTIONS; });
53271
53288
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDataV2", function() { return getDataV2; });
53272
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config */ "./src/config.js");
53273
- /* 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");
53274
53291
  /**
53275
53292
  * Maps API Client for Maps API v1 and Maps API v2
53276
53293
  */
@@ -53292,20 +53309,16 @@ async function getDataV2({
53292
53309
  credentials
53293
53310
  }) {
53294
53311
  const defaultCredentials = Object(_config__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"])();
53295
- 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
53296
53313
  // correct API version
53297
53314
 
53298
- 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],
53299
53317
  ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),
53300
53318
  ...credentials
53301
53319
  };
53302
-
53303
- if (!localCreds.mapsUrl) {
53304
- localCreds.mapsUrl = _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_MAPS_URL_FORMAT"][apiVersion];
53305
- }
53306
-
53307
53320
  let url;
53308
- 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;
53309
53322
 
53310
53323
  switch (apiVersion) {
53311
53324
  case _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V1:
@@ -53350,8 +53363,6 @@ async function request({
53350
53363
 
53351
53364
  try {
53352
53365
  /* global fetch */
53353
-
53354
- /* eslint no-undef: "error" */
53355
53366
  response = await fetch(url, {
53356
53367
  headers: {
53357
53368
  Accept: 'application/json'
@@ -53398,7 +53409,7 @@ function dealWithError({
53398
53409
 
53399
53410
  function initURLParameters(credentials) {
53400
53411
  const encodedApiKey = Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('api_key', credentials.apiKey);
53401
- 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');
53402
53413
  return [encodedApiKey, encodedClient];
53403
53414
  }
53404
53415
  /**
@@ -53447,6 +53458,7 @@ function createMapConfig(sql) {
53447
53458
  type: 'mapnik',
53448
53459
  options: {
53449
53460
  sql,
53461
+ // eslint-disable-next-line camelcase
53450
53462
  vector_extent: TILE_EXTENT
53451
53463
  }
53452
53464
  }]
@@ -53455,9 +53467,9 @@ function createMapConfig(sql) {
53455
53467
 
53456
53468
  /***/ }),
53457
53469
 
53458
- /***/ "./src/api/maps-v3-client.js":
53470
+ /***/ "./src/api/maps-v3-client.ts":
53459
53471
  /*!***********************************!*\
53460
- !*** ./src/api/maps-v3-client.js ***!
53472
+ !*** ./src/api/maps-v3-client.ts ***!
53461
53473
  \***********************************/
53462
53474
  /*! exports provided: mapInstantiation, fetchLayerData, getData, fetchMap */
53463
53475
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -53468,11 +53480,12 @@ __webpack_require__.r(__webpack_exports__);
53468
53480
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchLayerData", function() { return fetchLayerData; });
53469
53481
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getData", function() { return getData; });
53470
53482
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchMap", function() { return fetchMap; });
53471
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config */ "./src/config.js");
53472
- /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.js");
53473
- /* 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");
53474
53486
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
53475
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");
53476
53489
  /**
53477
53490
  * Maps API Client for Carto 3
53478
53491
  */
@@ -53480,20 +53493,19 @@ __webpack_require__.r(__webpack_exports__);
53480
53493
 
53481
53494
 
53482
53495
 
53496
+
53483
53497
  const MAX_GET_LENGTH = 2048;
53484
53498
  const DEFAULT_CLIENT = 'deck-gl-carto';
53499
+
53485
53500
  /**
53486
53501
  * Request against Maps API
53487
53502
  */
53488
-
53489
53503
  async function request({
53490
53504
  method,
53491
53505
  url,
53492
- format,
53493
53506
  accessToken,
53494
53507
  body
53495
53508
  }) {
53496
- let response;
53497
53509
  const headers = {
53498
53510
  Accept: 'application/json'
53499
53511
  };
@@ -53508,9 +53520,7 @@ async function request({
53508
53520
 
53509
53521
  try {
53510
53522
  /* global fetch */
53511
-
53512
- /* eslint no-undef: "error" */
53513
- response = await fetch(url, {
53523
+ return await fetch(url, {
53514
53524
  method,
53515
53525
  headers,
53516
53526
  body
@@ -53518,11 +53528,20 @@ async function request({
53518
53528
  } catch (error) {
53519
53529
  throw new Error(`Failed to connect to Maps API: ${error}`);
53520
53530
  }
53531
+ }
53521
53532
 
53522
- if (format === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].NDJSON) {
53523
- return response;
53524
- }
53525
-
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
+ });
53526
53545
  const json = await response.json();
53527
53546
 
53528
53547
  if (!response.ok) {
@@ -53532,7 +53551,32 @@ async function request({
53532
53551
  });
53533
53552
  }
53534
53553
 
53535
- 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;
53536
53580
  }
53537
53581
  /**
53538
53582
  * Display proper message from Maps API error
@@ -53555,11 +53599,10 @@ function dealWithError({
53555
53599
  throw new Error(error);
53556
53600
  }
53557
53601
  }
53602
+
53558
53603
  /**
53559
53604
  * Build a URL with all required parameters
53560
53605
  */
53561
-
53562
-
53563
53606
  function getParameters({
53564
53607
  type,
53565
53608
  source,
@@ -53612,7 +53655,6 @@ async function mapInstantiation({
53612
53655
  const {
53613
53656
  accessToken
53614
53657
  } = credentials;
53615
- const format = 'json';
53616
53658
 
53617
53659
  if (url.length > MAX_GET_LENGTH && type === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["MAP_TYPES"].QUERY) {
53618
53660
  // need to be a POST request
@@ -53620,18 +53662,16 @@ async function mapInstantiation({
53620
53662
  q: source,
53621
53663
  client: clientId || DEFAULT_CLIENT
53622
53664
  });
53623
- return await request({
53665
+ return await requestJson({
53624
53666
  method: 'POST',
53625
53667
  url: baseUrl,
53626
- format,
53627
53668
  accessToken,
53628
53669
  body
53629
53670
  });
53630
53671
  }
53631
53672
 
53632
- return await request({
53673
+ return await requestJson({
53633
53674
  url,
53634
- format,
53635
53675
  accessToken
53636
53676
  });
53637
53677
  }
@@ -53650,14 +53690,14 @@ function checkFetchLayerDataParameters({
53650
53690
  type,
53651
53691
  source,
53652
53692
  connection,
53653
- localCreds
53693
+ credentials
53654
53694
  }) {
53655
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(connection, 'Must define connection');
53656
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(type, 'Must define a type');
53657
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(source, 'Must define a source');
53658
- _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');
53659
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
53660
- _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');
53661
53701
  }
53662
53702
 
53663
53703
  async function fetchLayerData({
@@ -53689,7 +53729,7 @@ async function fetchLayerData({
53689
53729
  schema,
53690
53730
  clientId
53691
53731
  });
53692
- const data = await request({
53732
+ const data = await requestData({
53693
53733
  url,
53694
53734
  format: mapFormat,
53695
53735
  accessToken
@@ -53727,7 +53767,7 @@ async function _fetchDataUrl({
53727
53767
  type,
53728
53768
  source,
53729
53769
  connection,
53730
- localCreds
53770
+ credentials: localCreds
53731
53771
  });
53732
53772
 
53733
53773
  if (!localCreds.mapsUrl) {
@@ -53744,13 +53784,13 @@ async function _fetchDataUrl({
53744
53784
  schema,
53745
53785
  clientId
53746
53786
  });
53747
- let url;
53787
+ let url = null;
53748
53788
  let mapFormat;
53749
53789
 
53750
53790
  if (format) {
53751
53791
  mapFormat = format;
53752
53792
  url = getUrlFromMetadata(metadata, format);
53753
- _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`);
53754
53794
  } else {
53755
53795
  // guess map format
53756
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];
@@ -53763,6 +53803,8 @@ async function _fetchDataUrl({
53763
53803
  break;
53764
53804
  }
53765
53805
  }
53806
+
53807
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(url && mapFormat, 'Unsupported data formats received from backend.');
53766
53808
  }
53767
53809
 
53768
53810
  const {
@@ -53803,12 +53845,14 @@ async function getData({
53803
53845
  /* global clearInterval, setInterval, URL */
53804
53846
 
53805
53847
  async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
53806
- // First fetch metadata
53807
53848
  const {
53808
53849
  connectionName: connection,
53850
+ columns,
53851
+ geoColumn,
53809
53852
  source,
53810
53853
  type
53811
- } = dataset;
53854
+ } = dataset; // First fetch metadata
53855
+
53812
53856
  const {
53813
53857
  url,
53814
53858
  mapFormat
@@ -53817,12 +53861,14 @@ async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
53817
53861
  accessToken
53818
53862
  },
53819
53863
  connection,
53864
+ columns,
53865
+ geoColumn,
53820
53866
  source,
53821
53867
  type,
53822
53868
  clientId
53823
53869
  }); // Extract the last time the data changed
53824
53870
 
53825
- const cache = parseInt(new URL(url).searchParams.get('cache'), 10);
53871
+ const cache = parseInt(new URL(url).searchParams.get('cache') || '', 10);
53826
53872
 
53827
53873
  if (cache && dataset.cache === cache) {
53828
53874
  return false;
@@ -53830,12 +53876,11 @@ async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
53830
53876
 
53831
53877
  dataset.cache = cache; // Only fetch if the data has changed
53832
53878
 
53833
- const data = await request({
53879
+ dataset.data = await requestData({
53834
53880
  url,
53835
53881
  format: mapFormat,
53836
53882
  accessToken
53837
53883
  });
53838
- dataset.data = data;
53839
53884
  return true;
53840
53885
  }
53841
53886
 
@@ -53861,22 +53906,22 @@ async function fetchMap({
53861
53906
  const {
53862
53907
  accessToken
53863
53908
  } = localCreds;
53864
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(cartoMapId, `Must define CARTO map id: fetchMap({cartoMapId: 'XXXX-XXXX-XXXX'})`);
53865
- _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');
53866
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
53909
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: "XXXX-XXXX-XXXX"})');
53910
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(localCreds.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3, 'Method only available for v3');
53911
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
53867
53912
 
53868
53913
  if (!localCreds.mapsUrl) {
53869
53914
  localCreds.mapsUrl = Object(_config__WEBPACK_IMPORTED_MODULE_0__["buildMapsUrlFromBase"])(localCreds.apiBaseUrl);
53870
53915
  }
53871
53916
 
53872
53917
  if (autoRefresh || onNewData) {
53873
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(onNewData, 'Must define `onNewData` when using autoRefresh');
53874
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(typeof onNewData === 'function', '`onNewData` must be a function');
53875
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(autoRefresh > 0, '`autoRefresh` must be a positive number');
53918
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(onNewData, 'Must define `onNewData` when using autoRefresh');
53919
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(typeof onNewData === 'function', '`onNewData` must be a function');
53920
+ Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(typeof autoRefresh === 'number' && autoRefresh > 0, '`autoRefresh` must be a positive number');
53876
53921
  }
53877
53922
 
53878
53923
  const url = `${localCreds.mapsUrl}/public/${cartoMapId}`;
53879
- const map = await request({
53924
+ const map = await requestJson({
53880
53925
  url,
53881
53926
  accessToken
53882
53927
  }); // Periodically check if the data has changed. Note that this
@@ -53885,10 +53930,11 @@ async function fetchMap({
53885
53930
  let stopAutoRefresh;
53886
53931
 
53887
53932
  if (autoRefresh) {
53933
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
53888
53934
  const intervalId = setInterval(async () => {
53889
- const changed = await fillInMapDatasets(map, clientId, credentials);
53935
+ const changed = await fillInMapDatasets(map, clientId, localCreds);
53890
53936
 
53891
- if (changed.some(v => v === true)) {
53937
+ if (onNewData && changed.some(v => v === true)) {
53892
53938
  onNewData(Object(_parseMap__WEBPACK_IMPORTED_MODULE_2__["parseMap"])(map));
53893
53939
  }
53894
53940
  }, autoRefresh * 1000);
@@ -53899,7 +53945,7 @@ async function fetchMap({
53899
53945
  } // Mutates map.datasets so that dataset.data contains data
53900
53946
 
53901
53947
 
53902
- await fillInMapDatasets(map, clientId, credentials);
53948
+ await fillInMapDatasets(map, clientId, localCreds);
53903
53949
  return { ...Object(_parseMap__WEBPACK_IMPORTED_MODULE_2__["parseMap"])(map),
53904
53950
  ...{
53905
53951
  stopAutoRefresh
@@ -53909,9 +53955,9 @@ async function fetchMap({
53909
53955
 
53910
53956
  /***/ }),
53911
53957
 
53912
- /***/ "./src/api/parseMap.js":
53958
+ /***/ "./src/api/parseMap.ts":
53913
53959
  /*!*****************************!*\
53914
- !*** ./src/api/parseMap.js ***!
53960
+ !*** ./src/api/parseMap.ts ***!
53915
53961
  \*****************************/
53916
53962
  /*! exports provided: parseMap */
53917
53963
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -53920,9 +53966,11 @@ async function fetchMap({
53920
53966
  __webpack_require__.r(__webpack_exports__);
53921
53967
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMap", function() { return parseMap; });
53922
53968
  /* harmony import */ var _luma_gl_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @luma.gl/constants */ "../../node_modules/@luma.gl/constants/dist/esm/index.js");
53923
- /* harmony import */ var _layer_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layer-map */ "./src/api/layer-map.js");
53969
+ /* harmony import */ var _layer_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layer-map */ "./src/api/layer-map.ts");
53924
53970
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
53925
53971
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_2__);
53972
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./src/utils.ts");
53973
+
53926
53974
 
53927
53975
 
53928
53976
 
@@ -53931,7 +53979,7 @@ function parseMap(json) {
53931
53979
  keplerMapConfig,
53932
53980
  datasets
53933
53981
  } = json;
53934
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');
53982
+ Object(_utils__WEBPACK_IMPORTED_MODULE_3__["assert"])(keplerMapConfig.version === 'v1', 'Only support Kepler v1');
53935
53983
  const {
53936
53984
  mapState,
53937
53985
  mapStyle
@@ -53960,11 +54008,11 @@ function parseMap(json) {
53960
54008
  dataId
53961
54009
  } = config;
53962
54010
  const dataset = datasets.find(d => d.id === dataId);
53963
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(dataset, `No dataset matching dataId: ${dataId}`);
54011
+ Object(_utils__WEBPACK_IMPORTED_MODULE_3__["assert"])(dataset, `No dataset matching dataId: ${dataId}`);
53964
54012
  const {
53965
54013
  data
53966
54014
  } = dataset;
53967
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(data, `No data loaded for dataId: ${dataId}`);
54015
+ Object(_utils__WEBPACK_IMPORTED_MODULE_3__["assert"])(data, `No data loaded for dataId: ${dataId}`);
53968
54016
  const {
53969
54017
  Layer,
53970
54018
  propMap,
@@ -54133,30 +54181,30 @@ function createChannelProps(visualChannels, type, config, data) {
54133
54181
 
54134
54182
  /***/ }),
54135
54183
 
54136
- /***/ "./src/basemap.js":
54184
+ /***/ "./src/basemap.ts":
54137
54185
  /*!************************!*\
54138
- !*** ./src/basemap.js ***!
54186
+ !*** ./src/basemap.ts ***!
54139
54187
  \************************/
54140
54188
  /*! exports provided: default */
54141
54189
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
54142
54190
 
54143
54191
  "use strict";
54144
54192
  __webpack_require__.r(__webpack_exports__);
54145
- const base_url = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json';
54193
+ const baseUrl = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json';
54146
54194
  /* harmony default export */ __webpack_exports__["default"] = ({
54147
- VOYAGER: base_url.replace('{basemap}', 'voyager'),
54148
- POSITRON: base_url.replace('{basemap}', 'positron'),
54149
- DARK_MATTER: base_url.replace('{basemap}', 'dark-matter'),
54150
- VOYAGER_NOLABELS: base_url.replace('{basemap}', 'voyager-nolabels'),
54151
- POSITRON_NOLABELS: base_url.replace('{basemap}', 'positron-nolabels'),
54152
- DARK_MATTER_NOLABELS: base_url.replace('{basemap}', 'dark-matter-nolabels')
54195
+ VOYAGER: baseUrl.replace('{basemap}', 'voyager'),
54196
+ POSITRON: baseUrl.replace('{basemap}', 'positron'),
54197
+ DARK_MATTER: baseUrl.replace('{basemap}', 'dark-matter'),
54198
+ VOYAGER_NOLABELS: baseUrl.replace('{basemap}', 'voyager-nolabels'),
54199
+ POSITRON_NOLABELS: baseUrl.replace('{basemap}', 'positron-nolabels'),
54200
+ DARK_MATTER_NOLABELS: baseUrl.replace('{basemap}', 'dark-matter-nolabels')
54153
54201
  });
54154
54202
 
54155
54203
  /***/ }),
54156
54204
 
54157
- /***/ "./src/config.js":
54205
+ /***/ "./src/config.ts":
54158
54206
  /*!***********************!*\
54159
- !*** ./src/config.js ***!
54207
+ !*** ./src/config.ts ***!
54160
54208
  \***********************/
54161
54209
  /*! exports provided: defaultClassicCredentials, defaultCloudNativeCredentials, setDefaultCredentials, getDefaultCredentials, buildMapsUrlFromBase */
54162
54210
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54168,7 +54216,7 @@ __webpack_require__.r(__webpack_exports__);
54168
54216
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDefaultCredentials", function() { return setDefaultCredentials; });
54169
54217
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultCredentials", function() { return getDefaultCredentials; });
54170
54218
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildMapsUrlFromBase", function() { return buildMapsUrlFromBase; });
54171
- /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./api/maps-api-common */ "./src/api/maps-api-common.js");
54219
+ /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./api/maps-api-common */ "./src/api/maps-api-common.ts");
54172
54220
 
54173
54221
  const defaultClassicCredentials = {
54174
54222
  apiKey: 'default_public',
@@ -54223,39 +54271,39 @@ function buildMapsUrlFromBase(apiBaseUrl) {
54223
54271
 
54224
54272
  /***/ }),
54225
54273
 
54226
- /***/ "./src/index.js":
54274
+ /***/ "./src/index.ts":
54227
54275
  /*!**********************!*\
54228
- !*** ./src/index.js ***!
54276
+ !*** ./src/index.ts ***!
54229
54277
  \**********************/
54230
- /*! exports provided: getDefaultCredentials, setDefaultCredentials, CartoLayer, _CartoDynamicTileLayer, BASEMAP, colorBins, colorCategories, colorContinuous, FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, fetchMap, _getDataV2, getData, _mapInstantiation */
54278
+ /*! exports provided: getDefaultCredentials, setDefaultCredentials, CartoLayer, _CartoTileLayer, BASEMAP, colorBins, colorCategories, colorContinuous, FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, fetchMap, _getDataV2, getData, _mapInstantiation */
54231
54279
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
54232
54280
 
54233
54281
  "use strict";
54234
54282
  __webpack_require__.r(__webpack_exports__);
54235
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config.js */ "./src/config.js");
54236
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultCredentials", function() { return _config_js__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"]; });
54283
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ "./src/config.ts");
54284
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultCredentials", function() { return _config__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"]; });
54237
54285
 
54238
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setDefaultCredentials", function() { return _config_js__WEBPACK_IMPORTED_MODULE_0__["setDefaultCredentials"]; });
54286
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setDefaultCredentials", function() { return _config__WEBPACK_IMPORTED_MODULE_0__["setDefaultCredentials"]; });
54239
54287
 
54240
54288
  /* harmony import */ var _layers_carto_layer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layers/carto-layer */ "./src/layers/carto-layer.js");
54241
54289
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CartoLayer", function() { return _layers_carto_layer__WEBPACK_IMPORTED_MODULE_1__["default"]; });
54242
54290
 
54243
- /* 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");
54244
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_CartoDynamicTileLayer", function() { return _layers_carto_dynamic_tile_layer__WEBPACK_IMPORTED_MODULE_2__["default"]; });
54291
+ /* harmony import */ var _layers_carto_tile_layer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./layers/carto-tile-layer */ "./src/layers/carto-tile-layer.js");
54292
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_CartoTileLayer", function() { return _layers_carto_tile_layer__WEBPACK_IMPORTED_MODULE_2__["default"]; });
54245
54293
 
54246
- /* harmony import */ var _basemap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basemap */ "./src/basemap.js");
54294
+ /* harmony import */ var _basemap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basemap */ "./src/basemap.ts");
54247
54295
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BASEMAP", function() { return _basemap__WEBPACK_IMPORTED_MODULE_3__["default"]; });
54248
54296
 
54249
- /* harmony import */ var _style_color_bins_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style/color-bins-style */ "./src/style/color-bins-style.js");
54297
+ /* harmony import */ var _style_color_bins_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style/color-bins-style */ "./src/style/color-bins-style.ts");
54250
54298
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colorBins", function() { return _style_color_bins_style__WEBPACK_IMPORTED_MODULE_4__["default"]; });
54251
54299
 
54252
- /* harmony import */ var _style_color_categories_style__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./style/color-categories-style */ "./src/style/color-categories-style.js");
54300
+ /* harmony import */ var _style_color_categories_style__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./style/color-categories-style */ "./src/style/color-categories-style.ts");
54253
54301
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colorCategories", function() { return _style_color_categories_style__WEBPACK_IMPORTED_MODULE_5__["default"]; });
54254
54302
 
54255
- /* harmony import */ var _style_color_continuous_style__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style/color-continuous-style */ "./src/style/color-continuous-style.js");
54303
+ /* harmony import */ var _style_color_continuous_style__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style/color-continuous-style */ "./src/style/color-continuous-style.ts");
54256
54304
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colorContinuous", function() { return _style_color_continuous_style__WEBPACK_IMPORTED_MODULE_6__["default"]; });
54257
54305
 
54258
- /* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./api */ "./src/api/index.js");
54306
+ /* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./api */ "./src/api/index.ts");
54259
54307
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FORMATS", function() { return _api__WEBPACK_IMPORTED_MODULE_7__["FORMATS"]; });
54260
54308
 
54261
54309
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TILE_FORMATS", function() { return _api__WEBPACK_IMPORTED_MODULE_7__["TILE_FORMATS"]; });
@@ -54283,170 +54331,6 @@ __webpack_require__.r(__webpack_exports__);
54283
54331
 
54284
54332
 
54285
54333
 
54286
- /***/ }),
54287
-
54288
- /***/ "./src/layers/carto-dynamic-tile-layer.js":
54289
- /*!************************************************!*\
54290
- !*** ./src/layers/carto-dynamic-tile-layer.js ***!
54291
- \************************************************/
54292
- /*! exports provided: default */
54293
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
54294
-
54295
- "use strict";
54296
- __webpack_require__.r(__webpack_exports__);
54297
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CartoDynamicTileLayer; });
54298
- /* harmony import */ var pbf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pbf */ "../../node_modules/pbf/index.js");
54299
- /* harmony import */ var pbf__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(pbf__WEBPACK_IMPORTED_MODULE_0__);
54300
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
54301
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__);
54302
- /* harmony import */ var _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/extensions */ "../extensions/src/index.ts");
54303
- /* harmony import */ var _loaders_gl_gis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @loaders.gl/gis */ "../../node_modules/@loaders.gl/gis/dist/esm/index.js");
54304
- /* harmony import */ var _schema_carto_dynamic_tile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./schema/carto-dynamic-tile */ "./src/layers/schema/carto-dynamic-tile.js");
54305
- /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.js");
54306
- /* global TextDecoder */
54307
-
54308
-
54309
-
54310
-
54311
-
54312
-
54313
-
54314
-
54315
-
54316
- function parseJSON(arrayBuffer) {
54317
- return JSON.parse(new TextDecoder().decode(arrayBuffer));
54318
- }
54319
-
54320
- function parsePbf(buffer) {
54321
- const pbf = new pbf__WEBPACK_IMPORTED_MODULE_0___default.a(buffer);
54322
- const tile = _schema_carto_dynamic_tile__WEBPACK_IMPORTED_MODULE_4__["Tile"].read(pbf);
54323
- return tile;
54324
- }
54325
-
54326
- function unpackProperties(properties) {
54327
- if (!properties || !properties.length) {
54328
- return [];
54329
- }
54330
-
54331
- return properties.map(item => {
54332
- const currentRecord = {};
54333
- item.data.forEach(({
54334
- key,
54335
- value
54336
- }) => {
54337
- currentRecord[key] = value;
54338
- });
54339
- return currentRecord;
54340
- });
54341
- }
54342
-
54343
- function parseCartoDynamicTile(arrayBuffer, options) {
54344
- if (!arrayBuffer) return null;
54345
- const formatTiles = options && options.cartoDynamicTile && options.cartoDynamicTile.formatTiles;
54346
- 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);
54347
- const tile = parsePbf(arrayBuffer);
54348
- const {
54349
- points,
54350
- lines,
54351
- polygons
54352
- } = tile;
54353
- const data = {
54354
- points: { ...points,
54355
- properties: unpackProperties(points.properties)
54356
- },
54357
- lines: { ...lines,
54358
- properties: unpackProperties(lines.properties)
54359
- },
54360
- polygons: { ...polygons,
54361
- properties: unpackProperties(polygons.properties)
54362
- }
54363
- };
54364
- return data;
54365
- }
54366
-
54367
- const CartoDynamicTileLoader = {
54368
- name: 'CARTO Dynamic Tile',
54369
- id: 'cartoDynamicTile',
54370
- module: 'carto',
54371
- extensions: ['pbf'],
54372
- mimeTypes: ['application/x-protobuf'],
54373
- category: 'geometry',
54374
- worker: false,
54375
- parse: async (arrayBuffer, options) => parseCartoDynamicTile(arrayBuffer, options),
54376
- parseSync: parseCartoDynamicTile,
54377
- options: {
54378
- cartoDynamicTile: {
54379
- // TODO change to BINARY for 8.7 prod release
54380
- formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].GEOJSON
54381
- }
54382
- }
54383
- };
54384
- class CartoDynamicTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"] {
54385
- getTileData(tile) {
54386
- let url = Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["_getURLFromTemplate"])(this.state.data, tile);
54387
-
54388
- if (!url) {
54389
- return Promise.reject('Invalid URL');
54390
- }
54391
-
54392
- let loadOptions = this.getLoadOptions();
54393
- const {
54394
- fetch,
54395
- formatTiles
54396
- } = this.props;
54397
- const {
54398
- signal
54399
- } = tile;
54400
- loadOptions = { ...loadOptions,
54401
- mimeType: 'application/x-protobuf'
54402
- };
54403
-
54404
- if (formatTiles) {
54405
- _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
54406
-
54407
- const newUrl = new URL(url);
54408
- newUrl.searchParams.set('formatTiles', formatTiles);
54409
- url = newUrl.toString();
54410
- loadOptions.cartoDynamicTile = {
54411
- formatTiles
54412
- };
54413
- }
54414
-
54415
- return fetch(url, {
54416
- propName: 'data',
54417
- layer: this,
54418
- loadOptions,
54419
- signal
54420
- });
54421
- }
54422
-
54423
- renderSubLayers(props) {
54424
- if (props.data === null) {
54425
- return null;
54426
- }
54427
-
54428
- props.autoHighlight = false;
54429
- const {
54430
- bbox: {
54431
- west,
54432
- south,
54433
- east,
54434
- north
54435
- }
54436
- } = props.tile;
54437
- props.extensions = [new _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__["ClipExtension"](), ...(props.extensions || [])];
54438
- props.clipBounds = [west, south, east, north];
54439
- const subLayer = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["GeoJsonLayer"]({ ...props
54440
- });
54441
- return subLayer;
54442
- }
54443
-
54444
- }
54445
- CartoDynamicTileLayer.layerName = 'CartoDynamicTileLayer';
54446
- CartoDynamicTileLayer.defaultProps = { ..._deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"].defaultProps,
54447
- loaders: [CartoDynamicTileLoader]
54448
- };
54449
-
54450
54334
  /***/ }),
54451
54335
 
54452
54336
  /***/ "./src/layers/carto-layer.js":
@@ -54461,10 +54345,10 @@ __webpack_require__.r(__webpack_exports__);
54461
54345
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CartoLayer; });
54462
54346
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
54463
54347
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
54464
- /* harmony import */ var _carto_dynamic_tile_layer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./carto-dynamic-tile-layer */ "./src/layers/carto-dynamic-tile-layer.js");
54465
- /* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api */ "./src/api/index.js");
54466
- /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.js");
54467
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config.js");
54348
+ /* harmony import */ var _carto_tile_layer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./carto-tile-layer */ "./src/layers/carto-tile-layer.js");
54349
+ /* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api */ "./src/api/index.ts");
54350
+ /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.ts");
54351
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config.ts");
54468
54352
 
54469
54353
 
54470
54354
 
@@ -54628,25 +54512,33 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
54628
54512
  }
54629
54513
  }
54630
54514
 
54631
- _getRenderLayer() {
54515
+ _getSubLayerAndProps() {
54632
54516
  const {
54633
54517
  data,
54634
54518
  format,
54635
54519
  apiVersion
54636
54520
  } = this.state;
54521
+ const {
54522
+ uniqueIdProperty
54523
+ } = defaultProps;
54524
+ const props = {
54525
+ uniqueIdProperty,
54526
+ ...this.props
54527
+ };
54528
+ delete props.data;
54637
54529
 
54638
54530
  if (apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V1 || apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V2) {
54639
- return _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"];
54531
+ return [_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"], props];
54640
54532
  }
54641
54533
 
54642
54534
  if (format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON) {
54643
54535
  /* global URL */
54644
- const formatTiles = this.props.formatTiles || new URL(data.tiles[0]).searchParams.get('formatTiles') || _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT;
54645
- return formatTiles === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT ? _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"] : _carto_dynamic_tile_layer__WEBPACK_IMPORTED_MODULE_1__["default"];
54536
+ props.formatTiles = props.formatTiles || new URL(data.tiles[0]).searchParams.get('formatTiles') || _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT;
54537
+ 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];
54646
54538
  } // It's a geojson layer
54647
54539
 
54648
54540
 
54649
- return _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"];
54541
+ return [_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"], props];
54650
54542
  }
54651
54543
 
54652
54544
  renderLayers() {
@@ -54658,18 +54550,8 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
54658
54550
  updateTriggers
54659
54551
  } = this.props;
54660
54552
 
54661
- const layer = this._getRenderLayer();
54553
+ const [layer, props] = this._getSubLayerAndProps(); // eslint-disable-next-line new-cap
54662
54554
 
54663
- const {
54664
- formatTiles,
54665
- uniqueIdProperty
54666
- } = defaultProps;
54667
- const props = {
54668
- formatTiles,
54669
- uniqueIdProperty,
54670
- ...this.props
54671
- };
54672
- delete props.data; // eslint-disable-next-line new-cap
54673
54555
 
54674
54556
  return new layer(props, this.getSubLayerProps({
54675
54557
  id: `carto-${layer.layerName}`,
@@ -54684,10 +54566,174 @@ CartoLayer.defaultProps = defaultProps;
54684
54566
 
54685
54567
  /***/ }),
54686
54568
 
54687
- /***/ "./src/layers/schema/carto-dynamic-tile.js":
54688
- /*!*************************************************!*\
54689
- !*** ./src/layers/schema/carto-dynamic-tile.js ***!
54690
- \*************************************************/
54569
+ /***/ "./src/layers/carto-tile-layer.js":
54570
+ /*!****************************************!*\
54571
+ !*** ./src/layers/carto-tile-layer.js ***!
54572
+ \****************************************/
54573
+ /*! exports provided: default */
54574
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
54575
+
54576
+ "use strict";
54577
+ __webpack_require__.r(__webpack_exports__);
54578
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CartoTileLayer; });
54579
+ /* harmony import */ var pbf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pbf */ "../../node_modules/pbf/index.js");
54580
+ /* harmony import */ var pbf__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(pbf__WEBPACK_IMPORTED_MODULE_0__);
54581
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
54582
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__);
54583
+ /* harmony import */ var _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/extensions */ "../extensions/src/index.ts");
54584
+ /* harmony import */ var _loaders_gl_gis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @loaders.gl/gis */ "../../node_modules/@loaders.gl/gis/dist/esm/index.js");
54585
+ /* harmony import */ var _schema_carto_tile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./schema/carto-tile */ "./src/layers/schema/carto-tile.js");
54586
+ /* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.ts");
54587
+ /* global TextDecoder */
54588
+
54589
+
54590
+
54591
+
54592
+
54593
+
54594
+
54595
+
54596
+
54597
+ function parseJSON(arrayBuffer) {
54598
+ return JSON.parse(new TextDecoder().decode(arrayBuffer));
54599
+ }
54600
+
54601
+ function parsePbf(buffer) {
54602
+ const pbf = new pbf__WEBPACK_IMPORTED_MODULE_0___default.a(buffer);
54603
+ const tile = _schema_carto_tile__WEBPACK_IMPORTED_MODULE_4__["Tile"].read(pbf);
54604
+ return tile;
54605
+ }
54606
+
54607
+ function unpackProperties(properties) {
54608
+ if (!properties || !properties.length) {
54609
+ return [];
54610
+ }
54611
+
54612
+ return properties.map(item => {
54613
+ const currentRecord = {};
54614
+ item.data.forEach(({
54615
+ key,
54616
+ value
54617
+ }) => {
54618
+ currentRecord[key] = value;
54619
+ });
54620
+ return currentRecord;
54621
+ });
54622
+ }
54623
+
54624
+ function parseCartoTile(arrayBuffer, options) {
54625
+ if (!arrayBuffer) return null;
54626
+ const formatTiles = options && options.cartoTile && options.cartoTile.formatTiles;
54627
+ 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);
54628
+ const tile = parsePbf(arrayBuffer);
54629
+ const {
54630
+ points,
54631
+ lines,
54632
+ polygons
54633
+ } = tile;
54634
+ const data = {
54635
+ points: { ...points,
54636
+ properties: unpackProperties(points.properties)
54637
+ },
54638
+ lines: { ...lines,
54639
+ properties: unpackProperties(lines.properties)
54640
+ },
54641
+ polygons: { ...polygons,
54642
+ properties: unpackProperties(polygons.properties)
54643
+ }
54644
+ };
54645
+ return data;
54646
+ }
54647
+
54648
+ const CartoTileLoader = {
54649
+ name: 'CARTO Tile',
54650
+ id: 'cartoTile',
54651
+ module: 'carto',
54652
+ extensions: ['pbf'],
54653
+ mimeTypes: ['application/x-protobuf'],
54654
+ category: 'geometry',
54655
+ worker: false,
54656
+ parse: async (arrayBuffer, options) => parseCartoTile(arrayBuffer, options),
54657
+ parseSync: parseCartoTile,
54658
+ options: {
54659
+ cartoTile: {
54660
+ // TODO change to BINARY for 8.7 prod release
54661
+ formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].BINARY
54662
+ }
54663
+ }
54664
+ };
54665
+ class CartoTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"] {
54666
+ getTileData(tile) {
54667
+ let url = Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["_getURLFromTemplate"])(this.state.data, tile);
54668
+
54669
+ if (!url) {
54670
+ return Promise.reject('Invalid URL');
54671
+ }
54672
+
54673
+ let loadOptions = this.getLoadOptions();
54674
+ const {
54675
+ fetch,
54676
+ formatTiles
54677
+ } = this.props;
54678
+ const {
54679
+ signal
54680
+ } = tile;
54681
+ loadOptions = { ...loadOptions,
54682
+ mimeType: 'application/x-protobuf'
54683
+ };
54684
+
54685
+ if (formatTiles) {
54686
+ _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
54687
+
54688
+ const newUrl = new URL(url);
54689
+ newUrl.searchParams.set('formatTiles', formatTiles);
54690
+ url = newUrl.toString();
54691
+ loadOptions.cartoTile = {
54692
+ formatTiles
54693
+ };
54694
+ }
54695
+
54696
+ return fetch(url, {
54697
+ propName: 'data',
54698
+ layer: this,
54699
+ loadOptions,
54700
+ signal
54701
+ });
54702
+ }
54703
+
54704
+ renderSubLayers(props) {
54705
+ if (props.data === null) {
54706
+ return null;
54707
+ }
54708
+
54709
+ props.autoHighlight = false;
54710
+ const {
54711
+ bbox: {
54712
+ west,
54713
+ south,
54714
+ east,
54715
+ north
54716
+ }
54717
+ } = props.tile;
54718
+ props.extensions = [new _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__["ClipExtension"](), ...(props.extensions || [])];
54719
+ props.clipBounds = [west, south, east, north];
54720
+ const subLayer = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["GeoJsonLayer"]({ ...props
54721
+ });
54722
+ return subLayer;
54723
+ }
54724
+
54725
+ }
54726
+ CartoTileLayer.layerName = 'CartoTileLayer';
54727
+ CartoTileLayer.defaultProps = { ..._deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"].defaultProps,
54728
+ loaders: [CartoTileLoader]
54729
+ };
54730
+
54731
+ /***/ }),
54732
+
54733
+ /***/ "./src/layers/schema/carto-tile.js":
54734
+ /*!*****************************************!*\
54735
+ !*** ./src/layers/schema/carto-tile.js ***!
54736
+ \*****************************************/
54691
54737
  /*! exports provided: Tile */
54692
54738
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
54693
54739
 
@@ -54900,9 +54946,9 @@ Tile._readField = function (tag, obj, pbf) {
54900
54946
 
54901
54947
  /***/ }),
54902
54948
 
54903
- /***/ "./src/style/color-bins-style.js":
54949
+ /***/ "./src/style/color-bins-style.ts":
54904
54950
  /*!***************************************!*\
54905
- !*** ./src/style/color-bins-style.js ***!
54951
+ !*** ./src/style/color-bins-style.ts ***!
54906
54952
  \***************************************/
54907
54953
  /*! exports provided: default */
54908
54954
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54911,8 +54957,8 @@ Tile._readField = function (tag, obj, pbf) {
54911
54957
  __webpack_require__.r(__webpack_exports__);
54912
54958
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return colorBins; });
54913
54959
  /* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-scale */ "../../node_modules/d3-scale/src/index.js");
54914
- /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./palette */ "./src/style/palette.js");
54915
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/style/utils.js");
54960
+ /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./palette */ "./src/style/palette.ts");
54961
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/style/utils.ts");
54916
54962
 
54917
54963
 
54918
54964
 
@@ -54927,15 +54973,15 @@ function colorBins({
54927
54973
  const color = Object(d3_scale__WEBPACK_IMPORTED_MODULE_0__["scaleThreshold"])().domain(domain).range(palette);
54928
54974
  return d => {
54929
54975
  const value = Object(_utils__WEBPACK_IMPORTED_MODULE_2__["getAttrValue"])(attr, d);
54930
- return Number.isFinite(value) ? color(value) : nullColor;
54976
+ return typeof value === 'number' && Number.isFinite(value) ? color(value) : nullColor;
54931
54977
  };
54932
54978
  }
54933
54979
 
54934
54980
  /***/ }),
54935
54981
 
54936
- /***/ "./src/style/color-categories-style.js":
54982
+ /***/ "./src/style/color-categories-style.ts":
54937
54983
  /*!*********************************************!*\
54938
- !*** ./src/style/color-categories-style.js ***!
54984
+ !*** ./src/style/color-categories-style.ts ***!
54939
54985
  \*********************************************/
54940
54986
  /*! exports provided: default */
54941
54987
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54943,8 +54989,8 @@ function colorBins({
54943
54989
  "use strict";
54944
54990
  __webpack_require__.r(__webpack_exports__);
54945
54991
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return colorCategories; });
54946
- /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./palette */ "./src/style/palette.js");
54947
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/style/utils.js");
54992
+ /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./palette */ "./src/style/palette.ts");
54993
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/style/utils.ts");
54948
54994
 
54949
54995
 
54950
54996
  function colorCategories({
@@ -54964,15 +55010,15 @@ function colorCategories({
54964
55010
 
54965
55011
  return d => {
54966
55012
  const value = Object(_utils__WEBPACK_IMPORTED_MODULE_1__["getAttrValue"])(attr, d);
54967
- return Number.isFinite(value) || typeof value === 'string' ? colorsByCategory[value] || othersColor : nullColor;
55013
+ return typeof value === 'number' && Number.isFinite(value) || typeof value === 'string' ? colorsByCategory[value] || othersColor : nullColor;
54968
55014
  };
54969
55015
  }
54970
55016
 
54971
55017
  /***/ }),
54972
55018
 
54973
- /***/ "./src/style/color-continuous-style.js":
55019
+ /***/ "./src/style/color-continuous-style.ts":
54974
55020
  /*!*********************************************!*\
54975
- !*** ./src/style/color-continuous-style.js ***!
55021
+ !*** ./src/style/color-continuous-style.ts ***!
54976
55022
  \*********************************************/
54977
55023
  /*! exports provided: default */
54978
55024
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -54981,8 +55027,8 @@ function colorCategories({
54981
55027
  __webpack_require__.r(__webpack_exports__);
54982
55028
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return colorContinuous; });
54983
55029
  /* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-scale */ "../../node_modules/d3-scale/src/index.js");
54984
- /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./palette */ "./src/style/palette.js");
54985
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/style/utils.js");
55030
+ /* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./palette */ "./src/style/palette.ts");
55031
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/style/utils.ts");
54986
55032
 
54987
55033
 
54988
55034
 
@@ -54997,15 +55043,15 @@ function colorContinuous({
54997
55043
  const color = Object(d3_scale__WEBPACK_IMPORTED_MODULE_0__["scaleLinear"])().domain(domain).range(palette);
54998
55044
  return d => {
54999
55045
  const value = Object(_utils__WEBPACK_IMPORTED_MODULE_2__["getAttrValue"])(attr, d);
55000
- return Number.isFinite(value) ? color(value) : nullColor;
55046
+ return typeof value === 'number' && Number.isFinite(value) ? color(value) : nullColor;
55001
55047
  };
55002
55048
  }
55003
55049
 
55004
55050
  /***/ }),
55005
55051
 
55006
- /***/ "./src/style/palette.js":
55052
+ /***/ "./src/style/palette.ts":
55007
55053
  /*!******************************!*\
55008
- !*** ./src/style/palette.js ***!
55054
+ !*** ./src/style/palette.ts ***!
55009
55055
  \******************************/
55010
55056
  /*! exports provided: DEFAULT_PALETTE, NULL_COLOR, OTHERS_COLOR, default, hexToRgb */
55011
55057
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -55019,7 +55065,7 @@ __webpack_require__.r(__webpack_exports__);
55019
55065
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexToRgb", function() { return hexToRgb; });
55020
55066
  /* harmony import */ var cartocolor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cartocolor */ "../../node_modules/cartocolor/index.js");
55021
55067
  /* harmony import */ var cartocolor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cartocolor__WEBPACK_IMPORTED_MODULE_0__);
55022
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/style/utils.js");
55068
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/style/utils.ts");
55023
55069
 
55024
55070
 
55025
55071
  const DEFAULT_PALETTE = 'PurpOr';
@@ -55071,20 +55117,15 @@ function hexToRgb(hex) {
55071
55117
 
55072
55118
 
55073
55119
  result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
55074
-
55075
- if (result) {
55076
- return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), parseInt(result[4], 16)];
55077
- }
55078
-
55079
55120
  Object(_utils__WEBPACK_IMPORTED_MODULE_1__["assert"])(result, `Hexadecimal color "${hex}" was not parsed correctly`);
55080
- return NULL_COLOR;
55121
+ return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), parseInt(result[4], 16)];
55081
55122
  }
55082
55123
 
55083
55124
  /***/ }),
55084
55125
 
55085
- /***/ "./src/style/utils.js":
55126
+ /***/ "./src/style/utils.ts":
55086
55127
  /*!****************************!*\
55087
- !*** ./src/style/utils.js ***!
55128
+ !*** ./src/style/utils.ts ***!
55088
55129
  \****************************/
55089
55130
  /*! exports provided: getAttrValue, assert */
55090
55131
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -55098,16 +55139,11 @@ function getAttrValue(attr, d) {
55098
55139
  assert(typeof d === 'object', 'Expected "data" to be an object');
55099
55140
  assert(ALLOWED_ATTR_TYPES.includes(typeof attr), 'Expected "attr" to be a function or string'); // Is function
55100
55141
 
55101
- if (typeof attr === ALLOWED_ATTR_TYPES[0]) {
55142
+ if (typeof attr === 'function') {
55102
55143
  return attr(d);
55103
- } // Is string
55104
-
55105
-
55106
- if (typeof attr === ALLOWED_ATTR_TYPES[1]) {
55107
- return d.properties[attr];
55108
55144
  }
55109
55145
 
55110
- return {};
55146
+ return d.properties[attr];
55111
55147
  }
55112
55148
  function assert(condition, message = '') {
55113
55149
  if (!condition) {
@@ -55117,6 +55153,25 @@ function assert(condition, message = '') {
55117
55153
 
55118
55154
  /***/ }),
55119
55155
 
55156
+ /***/ "./src/utils.ts":
55157
+ /*!**********************!*\
55158
+ !*** ./src/utils.ts ***!
55159
+ \**********************/
55160
+ /*! exports provided: assert */
55161
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
55162
+
55163
+ "use strict";
55164
+ __webpack_require__.r(__webpack_exports__);
55165
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assert", function() { return assert; });
55166
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
55167
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
55168
+
55169
+ function assert(condition, message) {
55170
+ _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(condition, message);
55171
+ }
55172
+
55173
+ /***/ }),
55174
+
55120
55175
  /***/ "@deck.gl/core":
55121
55176
  /*!***********************!*\
55122
55177
  !*** external "deck" ***!