@deck.gl/carto 8.9.6 → 8.9.8

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 (150) hide show
  1. package/dist/dist.dev.js +774 -114
  2. package/dist/es5/api/layer-map.js +9 -15
  3. package/dist/es5/api/layer-map.js.map +1 -1
  4. package/dist/es5/api/maps-api-common.js +2 -1
  5. package/dist/es5/api/maps-api-common.js.map +1 -1
  6. package/dist/es5/api/maps-v3-client.js +17 -6
  7. package/dist/es5/api/maps-v3-client.js.map +1 -1
  8. package/dist/es5/api/parseMap.js +1 -1
  9. package/dist/es5/api/parseMap.js.map +1 -1
  10. package/dist/es5/index.js +8 -0
  11. package/dist/es5/index.js.map +1 -1
  12. package/dist/es5/layers/carto-layer.js +1 -1
  13. package/dist/es5/layers/carto-layer.js.map +1 -1
  14. package/dist/es5/layers/h3-tile-layer.js +2 -1
  15. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  16. package/dist/es5/layers/quadbin-tile-layer.js +2 -1
  17. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  18. package/dist/es5/layers/quadbin-utils.js +14 -4
  19. package/dist/es5/layers/quadbin-utils.js.map +1 -1
  20. package/dist/es5/layers/raster-layer-vertex.glsl.js +9 -0
  21. package/dist/es5/layers/raster-layer-vertex.glsl.js.map +1 -0
  22. package/dist/es5/layers/raster-layer.js +176 -0
  23. package/dist/es5/layers/raster-layer.js.map +1 -0
  24. package/dist/es5/layers/raster-tile-layer.js +114 -0
  25. package/dist/es5/layers/raster-tile-layer.js.map +1 -0
  26. package/dist/es5/layers/schema/carto-raster-tile-loader.js +80 -0
  27. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -0
  28. package/dist/es5/layers/schema/carto-raster-tile.js +87 -0
  29. package/dist/es5/layers/schema/carto-raster-tile.js.map +1 -0
  30. package/dist/es5/layers/schema/carto-spatial-tile.js +1 -1
  31. package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
  32. package/dist/es5/layers/schema/carto-tile.js +2 -2
  33. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  34. package/dist/es5/layers/schema/fast-pbf.js +3 -11
  35. package/dist/es5/layers/schema/fast-pbf.js.map +1 -1
  36. package/dist/es5/layers/spatial-index-tile-layer.js +3 -41
  37. package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
  38. package/dist/es5/utils.js +18 -0
  39. package/dist/es5/utils.js.map +1 -1
  40. package/dist/esm/api/layer-map.js +9 -21
  41. package/dist/esm/api/layer-map.js.map +1 -1
  42. package/dist/esm/api/maps-api-common.js +2 -1
  43. package/dist/esm/api/maps-api-common.js.map +1 -1
  44. package/dist/esm/api/maps-v3-client.js +9 -1
  45. package/dist/esm/api/maps-v3-client.js.map +1 -1
  46. package/dist/esm/api/parseMap.js +1 -1
  47. package/dist/esm/api/parseMap.js.map +1 -1
  48. package/dist/esm/index.js +1 -0
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/layers/carto-layer.js +1 -1
  51. package/dist/esm/layers/carto-layer.js.map +1 -1
  52. package/dist/esm/layers/h3-tile-layer.js +2 -1
  53. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  54. package/dist/esm/layers/quadbin-tile-layer.js +2 -1
  55. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  56. package/dist/esm/layers/quadbin-utils.js +7 -4
  57. package/dist/esm/layers/quadbin-utils.js.map +1 -1
  58. package/dist/esm/layers/raster-layer-vertex.glsl.js +2 -0
  59. package/dist/esm/layers/raster-layer-vertex.glsl.js.map +1 -0
  60. package/dist/esm/layers/raster-layer.js +111 -0
  61. package/dist/esm/layers/raster-layer.js.map +1 -0
  62. package/dist/esm/layers/raster-tile-layer.js +67 -0
  63. package/dist/esm/layers/raster-tile-layer.js.map +1 -0
  64. package/dist/esm/layers/schema/carto-raster-tile-loader.js +46 -0
  65. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -0
  66. package/dist/esm/layers/schema/carto-raster-tile.js +51 -0
  67. package/dist/esm/layers/schema/carto-raster-tile.js.map +1 -0
  68. package/dist/esm/layers/schema/carto-spatial-tile.js +2 -2
  69. package/dist/esm/layers/schema/carto-spatial-tile.js.map +1 -1
  70. package/dist/esm/layers/schema/carto-tile.js +3 -3
  71. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  72. package/dist/esm/layers/schema/fast-pbf.js +2 -8
  73. package/dist/esm/layers/schema/fast-pbf.js.map +1 -1
  74. package/dist/esm/layers/spatial-index-tile-layer.js +3 -41
  75. package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
  76. package/dist/esm/utils.js +20 -0
  77. package/dist/esm/utils.js.map +1 -1
  78. package/dist.min.js +100 -23
  79. package/package.json +3 -3
  80. package/src/api/layer-map.ts +12 -19
  81. package/src/api/maps-api-common.ts +2 -1
  82. package/src/api/maps-v3-client.ts +6 -1
  83. package/src/api/parseMap.ts +1 -1
  84. package/src/index.ts +1 -0
  85. package/src/layers/carto-layer.ts +1 -1
  86. package/src/layers/h3-tile-layer.ts +2 -3
  87. package/src/layers/quadbin-tile-layer.ts +2 -3
  88. package/src/layers/quadbin-utils.ts +9 -5
  89. package/src/layers/raster-layer-vertex.glsl.ts +98 -0
  90. package/src/layers/raster-layer.ts +146 -0
  91. package/src/layers/raster-tile-layer.ts +63 -0
  92. package/src/layers/schema/carto-raster-tile-loader.ts +42 -0
  93. package/src/layers/schema/carto-raster-tile.ts +46 -0
  94. package/src/layers/schema/carto-spatial-tile.ts +2 -2
  95. package/src/layers/schema/carto-tile.ts +3 -3
  96. package/src/layers/schema/fast-pbf.ts +3 -9
  97. package/src/layers/spatial-index-tile-layer.ts +3 -38
  98. package/src/utils.ts +22 -0
  99. package/typed/api/layer-map.d.ts +2 -1
  100. package/typed/api/layer-map.d.ts.map +1 -1
  101. package/typed/api/maps-api-common.d.ts +1 -0
  102. package/typed/api/maps-api-common.d.ts.map +1 -1
  103. package/typed/api/maps-v3-client.d.ts.map +1 -1
  104. package/typed/index.d.ts +1 -0
  105. package/typed/index.d.ts.map +1 -1
  106. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  107. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  108. package/typed/layers/quadbin-utils.d.ts +1 -0
  109. package/typed/layers/quadbin-utils.d.ts.map +1 -1
  110. package/typed/layers/raster-layer-vertex.glsl.d.ts +3 -0
  111. package/typed/layers/raster-layer-vertex.glsl.d.ts.map +1 -0
  112. package/typed/layers/raster-layer.d.ts +19 -0
  113. package/typed/layers/raster-layer.d.ts.map +1 -0
  114. package/typed/layers/raster-tile-layer.d.ts +24 -0
  115. package/typed/layers/raster-tile-layer.d.ts.map +1 -0
  116. package/typed/layers/schema/carto-raster-tile-loader.d.ts +13 -0
  117. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -0
  118. package/typed/layers/schema/carto-raster-tile.d.ts +9 -0
  119. package/typed/layers/schema/carto-raster-tile.d.ts.map +1 -0
  120. package/typed/layers/schema/carto-spa-tile.d.ts +57 -0
  121. package/typed/layers/schema/carto-spa-tile.d.ts.map +1 -0
  122. package/typed/layers/schema/fast-pbf.d.ts +1 -2
  123. package/typed/layers/schema/fast-pbf.d.ts.map +1 -1
  124. package/typed/layers/spatial-index-tile-layer.d.ts +1 -2
  125. package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
  126. package/typed/utils.d.ts +5 -0
  127. package/typed/utils.d.ts.map +1 -1
  128. package/typed/api/index.js +0 -3
  129. package/typed/api/layer-map.js +0 -264
  130. package/typed/api/maps-api-common.js +0 -50
  131. package/typed/api/maps-client.js +0 -125
  132. package/typed/api/maps-v3-client.js +0 -304
  133. package/typed/api/parseMap.js +0 -178
  134. package/typed/basemap.js +0 -9
  135. package/typed/config.js +0 -35
  136. package/typed/index.js +0 -10
  137. package/typed/layers/carto-layer.js +0 -173
  138. package/typed/layers/carto-tile-layer.js +0 -105
  139. package/typed/layers/h3-tile-layer.js +0 -47
  140. package/typed/layers/h3-tileset-2d.js +0 -85
  141. package/typed/layers/quadkey-tile-layer.js +0 -42
  142. package/typed/layers/quadkey-tileset-2d.js +0 -36
  143. package/typed/layers/schema/carto-tile.js +0 -161
  144. package/typed/layers/spatial-index-tile-layer.js +0 -40
  145. package/typed/style/color-bins-style.js +0 -12
  146. package/typed/style/color-categories-style.js +0 -16
  147. package/typed/style/color-continuous-style.js +0 -12
  148. package/typed/style/palette.js +0 -62
  149. package/typed/style/utils.js +0 -15
  150. package/typed/utils.js +0 -4
@@ -44,6 +44,8 @@ var _h3TileLayer = _interopRequireDefault(require("../layers/h3-tile-layer"));
44
44
 
45
45
  var _quadbinTileLayer = _interopRequireDefault(require("../layers/quadbin-tile-layer"));
46
46
 
47
+ var _rasterTileLayer = _interopRequireDefault(require("../layers/raster-tile-layer"));
48
+
47
49
  var _mapsApiCommon = require("./maps-api-common");
48
50
 
49
51
  var _utils = require("../utils");
@@ -279,6 +281,11 @@ function getLayer(type, config, dataset) {
279
281
  function layerFromTileDataset() {
280
282
  var formatTiles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _mapsApiCommon.TILE_FORMATS.MVT;
281
283
  var scheme = arguments.length > 1 ? arguments[1] : undefined;
284
+ var type = arguments.length > 2 ? arguments[2] : undefined;
285
+
286
+ if (type === 'raster') {
287
+ return _rasterTileLayer.default;
288
+ }
282
289
 
283
290
  if (scheme === 'h3') {
284
291
  return _h3TileLayer.default;
@@ -288,7 +295,7 @@ function layerFromTileDataset() {
288
295
  return _quadbinTileLayer.default;
289
296
  }
290
297
 
291
- if (formatTiles === _mapsApiCommon.TILE_FORMATS.MVT) {
298
+ if (formatTiles === 'mvt') {
292
299
  return _geoLayers.MVTLayer;
293
300
  }
294
301
 
@@ -396,20 +403,7 @@ function normalizeAccessor(accessor, data) {
396
403
 
397
404
  var data = info.data,
398
405
  index = info.index;
399
- var properties = data.properties,
400
- numericProps = data.numericProps;
401
- var proxy = new Proxy(properties[index] || {}, {
402
- get: function get(target, property, receiver) {
403
- if (property in numericProps) {
404
- return numericProps[property].value[index];
405
- }
406
-
407
- return target[property];
408
- },
409
- has: function has(target, property) {
410
- return property in numericProps || property in target;
411
- }
412
- });
406
+ var proxy = (0, _utils.createBinaryProxy)(data, index);
413
407
  return accessor(proxy);
414
408
  };
415
409
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","custom","scaleThreshold","identity","v","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","OPACITY_MAP","getFillColor","getLineColor","getTextColor","AGGREGATION_FUNC","values","accessor","length","median","mode","pop","stddev","deviation","variance","hexToRGBA","c","r","g","b","opacity","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","elevationScale","filled","strokeColor","stroked","thickness","radius","wireframe","customMarkersPropsMap","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","basePropMap","customMarkers","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layerTypeDefs","Layer","GeoJsonLayer","propMap","altitude","parameters","depthTest","Boolean","outline","geojson","grid","CPUGridLayer","worldUnitSize","cellSize","heatmap","HeatmapLayer","hexagon","HexagonLayer","H3HexagonLayer","getHexagon","layer","layerFromTileDataset","formatTiles","TILE_FORMATS","MVT","scheme","H3TileLayer","QuadbinTileLayer","MVTLayer","CartoTileLayer","aggregationExp","aggregationResLevel","data","tiles","tileUrl","URL","searchParams","get","uniqueIdProperty","domainFromAttribute","attribute","scaleType","scaleLength","categories","category","filter","undefined","quantiles","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","object","info","__source","index","numericProps","proxy","Proxy","target","property","receiver","value","has","opacityToAlpha","Math","round","pow","getAccessorKeys","aggregation","keys","concat","toUpperCase","findAccessorKey","key","Error","getColorValueAccessor","aggregator","p","getColorAccessor","range","colorMap","scale","domain","scaleColor","forEach","push","slice","unknown","alpha","accessorKeys","propertyValue","FALLBACK_ICON","getIconUrlAccessor","field","fallbackUrl","maxIconSize","useMaskedIcons","urlToUnpackedIcon","url","id","width","height","mask","unknownValue","othersMarker","unknownIcon","mapping","markerMap","markerUrl","getMaxMarkerSize","visualChannels","radiusRange","radiusField","sizeField","ceil","negateAccessor","i","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor"],"mappings":"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","sourcesContent":["import {deviation, extent, groupSort, median, variance} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt,\n scaleThreshold\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\n\nimport {Accessor, Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport H3TileLayer from '../layers/h3-tile-layer';\nimport QuadbinTileLayer from '../layers/quadbin-tile-layer';\nimport {TILE_FORMATS} from './maps-api-common';\nimport {assert} from '../utils';\nimport {\n CustomMarkersRange,\n MapDataset,\n MapTextSubLayerConfig,\n VisConfig,\n VisualChannelField,\n VisualChannels\n} from './types';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nfunction identity<T>(v: T): T {\n return v;\n}\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nexport const OPACITY_MAP = {\n getFillColor: 'opacity',\n getLineColor: 'strokeOpacity',\n getTextColor: 'opacity'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler prop value -> Deck.gl prop value\n// Supports nested definitions, and function transforms:\n// {keplerProp: 'deckProp'} is equivalent to:\n// {keplerProp: x => ({deckProp: x})}\nconst sharedPropMap = {\n // Apply the value of Kepler `color` prop to the deck `getFillColor` prop\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n // Apply the value of Kepler `textLabel.color` prop to the deck `getTextColor` prop\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n elevationScale: 'elevationScale',\n filled: 'filled',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst customMarkersPropsMap = {\n color: 'getIconColor',\n visConfig: {\n radius: 'getIconSize'\n }\n};\n\nconst aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a: Record<string, any> = {}, b: Record<string, any> = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config: MapTextSubLayerConfig,\n dataset: MapDataset\n): {Layer: ConstructorOf<Layer>; propMap: any; defaultProps: any} {\n let basePropMap: any = sharedPropMap;\n\n if (config.visConfig?.customMarkers) {\n basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);\n }\n if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {\n return getTileLayer(dataset, basePropMap);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n\n const layerTypeDefs: Record<\n string,\n {Layer: ConstructorOf<Layer>; propMap?: any; defaultProps?: any}\n > = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {\n columns: {\n altitude: x => ({parameters: {depthTest: Boolean(x)}})\n },\n visConfig: {outline: 'stroked'}\n }\n },\n geojson: {\n Layer: GeoJsonLayer\n },\n grid: {\n Layer: CPUGridLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({cellSize: 1000 * x})}},\n defaultProps: {getPosition}\n },\n heatmap: {\n Layer: HeatmapLayer,\n propMap: {visConfig: {...aggregationVisConfig, radius: 'radiusPixels'}},\n defaultProps: {getPosition}\n },\n hexagon: {\n Layer: HexagonLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({radius: 1000 * x})}},\n defaultProps: {getPosition}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: {visConfig: {coverage: 'coverage'}},\n defaultProps: {getHexagon: d => d[hexagonId], stroked: false}\n }\n };\n\n const layer = layerTypeDefs[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return {\n ...layer,\n propMap: mergePropMaps(basePropMap, layer.propMap),\n defaultProps: {...defaultProps, ...layer.defaultProps}\n };\n}\n\nexport function layerFromTileDataset(\n formatTiles: string | null = TILE_FORMATS.MVT,\n scheme: string\n): typeof CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {\n if (scheme === 'h3') {\n return H3TileLayer;\n }\n if (scheme === 'quadbin') {\n return QuadbinTileLayer;\n }\n if (formatTiles === TILE_FORMATS.MVT) {\n return MVTLayer;\n }\n\n // formatTiles === BINARY|JSON|GEOJSON\n return CartoTileLayer;\n}\n\nfunction getTileLayer(dataset: MapDataset, basePropMap) {\n const {\n aggregationExp,\n aggregationResLevel,\n data: {\n scheme,\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles');\n\n return {\n Layer: layerFromTileDataset(formatTiles, scheme),\n propMap: basePropMap,\n defaultProps: {\n ...defaultProps,\n ...(aggregationExp && {aggregationExp}),\n ...(aggregationResLevel && {aggregationResLevel}),\n formatTiles,\n uniqueIdProperty: 'geoid'\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE, scaleLength: number) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n if (scaleType === 'quantile' && attribute.quantiles) {\n return attribute.quantiles[scaleLength];\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType, scaleLength?) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType, scaleLength);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return (object, info) => {\n if (object) {\n return accessor(object.properties || object.__source.object.properties);\n }\n\n const {data, index} = info;\n const {properties, numericProps} = data;\n const proxy = new Proxy(properties[index] || {}, {\n get(target, property, receiver) {\n if (property in numericProps) {\n return numericProps[property as string].value[index];\n }\n return target[property as string];\n },\n\n has(target, property) {\n return property in numericProps || property in target;\n }\n });\n return accessor(proxy);\n };\n }\n return accessor;\n}\n\nexport function opacityToAlpha(opacity?: number) {\n return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n}\n\nfunction getAccessorKeys(name: string, aggregation: string | undefined): string[] {\n let keys = [name];\n if (aggregation) {\n // Snowflake will capitalized the keys, need to check lower and upper case version\n keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));\n }\n return keys;\n}\n\nfunction findAccessorKey(keys: string[], properties): string[] {\n for (const key of keys) {\n if (key in properties) {\n return [key];\n }\n }\n\n throw new Error(`Could not find property for any accessor key: ${keys}`);\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name},\n scaleType: SCALE_TYPE,\n {aggregation, range: {colors, colorMap}},\n opacity: number | undefined,\n data: any\n) {\n const scale = SCALE_FUNCS[scaleType as any]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\n\n if (Array.isArray(colorMap)) {\n colorMap.forEach(([value, color]) => {\n domain.push(value);\n scaleColor.push(color);\n });\n } else {\n domain = calculateDomain(data, name, scaleType, colors.length);\n scaleColor = colors;\n }\n\n if (scaleType === 'ordinal') {\n domain = domain.slice(0, scaleColor.length);\n }\n\n scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\n const alpha = opacityToAlpha(opacity);\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FALLBACK_ICON =\n 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';\n\nexport function getIconUrlAccessor(\n field: VisualChannelField | null | undefined,\n range: CustomMarkersRange | null | undefined,\n {fallbackUrl, maxIconSize, useMaskedIcons},\n data: any\n) {\n const urlToUnpackedIcon = (url: string) => ({\n id: `${url}@@${maxIconSize}`,\n url,\n width: maxIconSize,\n height: maxIconSize,\n mask: useMaskedIcons\n });\n let unknownValue = fallbackUrl || FALLBACK_ICON;\n\n if (range?.othersMarker) {\n unknownValue = range.othersMarker;\n }\n\n const unknownIcon = urlToUnpackedIcon(unknownValue);\n if (!range || !field) {\n return () => unknownIcon;\n }\n\n const mapping: Record<string, any> = {};\n for (const {value, markerUrl} of range.markerMap) {\n if (markerUrl) {\n mapping[value] = urlToUnpackedIcon(markerUrl);\n }\n }\n\n const accessor = properties => {\n const propertyValue = properties[field.name];\n return mapping[propertyValue] || unknownIcon;\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number {\n const {radiusRange, radius} = visConfig;\n const {radiusField, sizeField} = visualChannels;\n const field = radiusField || sizeField;\n return Math.ceil(radiusRange && field ? radiusRange[1] : radius);\n}\n\nexport function negateAccessor<T>(accessor: Accessor<T, number>): Accessor<T, number> {\n return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;\n}\n\nexport function getSizeAccessor(\n {name},\n scaleType: SCALE_TYPE | undefined,\n aggregation,\n range: Iterable<Range> | undefined,\n data: any\n) {\n const scale = scaleType ? SCALE_FUNCS[scaleType as any]() : identity;\n if (scaleType) {\n if (aggregation !== 'count') {\n scale.domain(calculateDomain(data, name, scaleType));\n }\n scale.range(range);\n }\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n return scale(propertyValue);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}: VisualChannelField, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
1
+ {"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","custom","scaleThreshold","identity","v","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","OPACITY_MAP","getFillColor","getLineColor","getTextColor","AGGREGATION_FUNC","values","accessor","length","median","mode","pop","stddev","deviation","variance","hexToRGBA","c","r","g","b","opacity","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","elevationScale","filled","strokeColor","stroked","thickness","radius","wireframe","customMarkersPropsMap","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","basePropMap","customMarkers","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layerTypeDefs","Layer","GeoJsonLayer","propMap","altitude","parameters","depthTest","Boolean","outline","geojson","grid","CPUGridLayer","worldUnitSize","cellSize","heatmap","HeatmapLayer","hexagon","HexagonLayer","H3HexagonLayer","getHexagon","layer","layerFromTileDataset","formatTiles","TILE_FORMATS","MVT","scheme","RasterTileLayer","H3TileLayer","QuadbinTileLayer","MVTLayer","CartoTileLayer","aggregationExp","aggregationResLevel","data","tiles","tileUrl","URL","searchParams","get","uniqueIdProperty","domainFromAttribute","attribute","scaleType","scaleLength","categories","category","filter","undefined","quantiles","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","object","info","__source","index","proxy","opacityToAlpha","Math","round","pow","getAccessorKeys","aggregation","keys","concat","toUpperCase","findAccessorKey","key","Error","getColorValueAccessor","aggregator","p","getColorAccessor","range","colorMap","scale","domain","scaleColor","forEach","value","push","slice","unknown","alpha","accessorKeys","propertyValue","FALLBACK_ICON","getIconUrlAccessor","field","fallbackUrl","maxIconSize","useMaskedIcons","urlToUnpackedIcon","url","id","width","height","mask","unknownValue","othersMarker","unknownIcon","mapping","markerMap","markerUrl","getMaxMarkerSize","visualChannels","radiusRange","radiusField","sizeField","ceil","negateAccessor","i","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor"],"mappings":"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","sourcesContent":["import {deviation, extent, groupSort, median, variance} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt,\n scaleThreshold\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\n\nimport {Accessor, Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport H3TileLayer from '../layers/h3-tile-layer';\nimport QuadbinTileLayer from '../layers/quadbin-tile-layer';\nimport RasterTileLayer from '../layers/raster-tile-layer';\nimport {MapType, TILE_FORMATS, TileFormat} from './maps-api-common';\nimport {assert, createBinaryProxy} from '../utils';\nimport {\n CustomMarkersRange,\n MapDataset,\n MapTextSubLayerConfig,\n VisConfig,\n VisualChannelField,\n VisualChannels\n} from './types';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nfunction identity<T>(v: T): T {\n return v;\n}\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nexport const OPACITY_MAP = {\n getFillColor: 'opacity',\n getLineColor: 'strokeOpacity',\n getTextColor: 'opacity'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler prop value -> Deck.gl prop value\n// Supports nested definitions, and function transforms:\n// {keplerProp: 'deckProp'} is equivalent to:\n// {keplerProp: x => ({deckProp: x})}\nconst sharedPropMap = {\n // Apply the value of Kepler `color` prop to the deck `getFillColor` prop\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n // Apply the value of Kepler `textLabel.color` prop to the deck `getTextColor` prop\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n elevationScale: 'elevationScale',\n filled: 'filled',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst customMarkersPropsMap = {\n color: 'getIconColor',\n visConfig: {\n radius: 'getIconSize'\n }\n};\n\nconst aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a: Record<string, any> = {}, b: Record<string, any> = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config: MapTextSubLayerConfig,\n dataset: MapDataset\n): {Layer: ConstructorOf<Layer>; propMap: any; defaultProps: any} {\n let basePropMap: any = sharedPropMap;\n\n if (config.visConfig?.customMarkers) {\n basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);\n }\n if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {\n return getTileLayer(dataset, basePropMap);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n\n const layerTypeDefs: Record<\n string,\n {Layer: ConstructorOf<Layer>; propMap?: any; defaultProps?: any}\n > = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {\n columns: {\n altitude: x => ({parameters: {depthTest: Boolean(x)}})\n },\n visConfig: {outline: 'stroked'}\n }\n },\n geojson: {\n Layer: GeoJsonLayer\n },\n grid: {\n Layer: CPUGridLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({cellSize: 1000 * x})}},\n defaultProps: {getPosition}\n },\n heatmap: {\n Layer: HeatmapLayer,\n propMap: {visConfig: {...aggregationVisConfig, radius: 'radiusPixels'}},\n defaultProps: {getPosition}\n },\n hexagon: {\n Layer: HexagonLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({radius: 1000 * x})}},\n defaultProps: {getPosition}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: {visConfig: {coverage: 'coverage'}},\n defaultProps: {getHexagon: d => d[hexagonId], stroked: false}\n }\n };\n\n const layer = layerTypeDefs[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return {\n ...layer,\n propMap: mergePropMaps(basePropMap, layer.propMap),\n defaultProps: {...defaultProps, ...layer.defaultProps}\n };\n}\n\nexport function layerFromTileDataset(\n formatTiles: TileFormat | null = TILE_FORMATS.MVT,\n scheme: string,\n type?: MapType\n): typeof CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {\n if (type === 'raster') {\n return RasterTileLayer;\n }\n if (scheme === 'h3') {\n return H3TileLayer;\n }\n if (scheme === 'quadbin') {\n return QuadbinTileLayer;\n }\n if (formatTiles === 'mvt') {\n return MVTLayer;\n }\n\n // formatTiles === BINARY|JSON|GEOJSON\n return CartoTileLayer;\n}\n\nfunction getTileLayer(dataset: MapDataset, basePropMap) {\n const {\n aggregationExp,\n aggregationResLevel,\n data: {\n scheme,\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') as TileFormat;\n\n return {\n Layer: layerFromTileDataset(formatTiles, scheme),\n propMap: basePropMap,\n defaultProps: {\n ...defaultProps,\n ...(aggregationExp && {aggregationExp}),\n ...(aggregationResLevel && {aggregationResLevel}),\n formatTiles,\n uniqueIdProperty: 'geoid'\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE, scaleLength: number) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n if (scaleType === 'quantile' && attribute.quantiles) {\n return attribute.quantiles[scaleLength];\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType, scaleLength?) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType, scaleLength);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return (object, info) => {\n if (object) {\n return accessor(object.properties || object.__source.object.properties);\n }\n\n const {data, index} = info;\n const proxy = createBinaryProxy(data, index);\n return accessor(proxy);\n };\n }\n return accessor;\n}\n\nexport function opacityToAlpha(opacity?: number) {\n return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n}\n\nfunction getAccessorKeys(name: string, aggregation: string | undefined): string[] {\n let keys = [name];\n if (aggregation) {\n // Snowflake will capitalized the keys, need to check lower and upper case version\n keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));\n }\n return keys;\n}\n\nfunction findAccessorKey(keys: string[], properties): string[] {\n for (const key of keys) {\n if (key in properties) {\n return [key];\n }\n }\n\n throw new Error(`Could not find property for any accessor key: ${keys}`);\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name},\n scaleType: SCALE_TYPE,\n {aggregation, range: {colors, colorMap}},\n opacity: number | undefined,\n data: any\n) {\n const scale = SCALE_FUNCS[scaleType as any]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\n\n if (Array.isArray(colorMap)) {\n colorMap.forEach(([value, color]) => {\n domain.push(value);\n scaleColor.push(color);\n });\n } else {\n domain = calculateDomain(data, name, scaleType, colors.length);\n scaleColor = colors;\n }\n\n if (scaleType === 'ordinal') {\n domain = domain.slice(0, scaleColor.length);\n }\n\n scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\n const alpha = opacityToAlpha(opacity);\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FALLBACK_ICON =\n 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';\n\nexport function getIconUrlAccessor(\n field: VisualChannelField | null | undefined,\n range: CustomMarkersRange | null | undefined,\n {fallbackUrl, maxIconSize, useMaskedIcons},\n data: any\n) {\n const urlToUnpackedIcon = (url: string) => ({\n id: `${url}@@${maxIconSize}`,\n url,\n width: maxIconSize,\n height: maxIconSize,\n mask: useMaskedIcons\n });\n let unknownValue = fallbackUrl || FALLBACK_ICON;\n\n if (range?.othersMarker) {\n unknownValue = range.othersMarker;\n }\n\n const unknownIcon = urlToUnpackedIcon(unknownValue);\n if (!range || !field) {\n return () => unknownIcon;\n }\n\n const mapping: Record<string, any> = {};\n for (const {value, markerUrl} of range.markerMap) {\n if (markerUrl) {\n mapping[value] = urlToUnpackedIcon(markerUrl);\n }\n }\n\n const accessor = properties => {\n const propertyValue = properties[field.name];\n return mapping[propertyValue] || unknownIcon;\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number {\n const {radiusRange, radius} = visConfig;\n const {radiusField, sizeField} = visualChannels;\n const field = radiusField || sizeField;\n return Math.ceil(radiusRange && field ? radiusRange[1] : radius);\n}\n\nexport function negateAccessor<T>(accessor: Accessor<T, number>): Accessor<T, number> {\n return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;\n}\n\nexport function getSizeAccessor(\n {name},\n scaleType: SCALE_TYPE | undefined,\n aggregation,\n range: Iterable<Range> | undefined,\n data: any\n) {\n const scale = scaleType ? SCALE_FUNCS[scaleType as any]() : identity;\n if (scaleType) {\n if (aggregation !== 'count') {\n scale.domain(calculateDomain(data, name, scaleType));\n }\n scale.range(range);\n }\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n return scale(propertyValue);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}: VisualChannelField, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
@@ -27,7 +27,8 @@ exports.DEFAULT_MAPS_URL_FORMAT = DEFAULT_MAPS_URL_FORMAT;
27
27
  var MAP_TYPES = {
28
28
  QUERY: 'query',
29
29
  TABLE: 'table',
30
- TILESET: 'tileset'
30
+ TILESET: 'tileset',
31
+ RASTER: 'raster'
31
32
  };
32
33
  exports.MAP_TYPES = MAP_TYPES;
33
34
  var COLUMNS_SUPPORT = [MAP_TYPES.TABLE];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","COLUMNS_SUPPORT","GEO_COLUMN_SUPPORT","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","REQUEST_TYPES","DATA","INSTANTIATION","PUBLIC_MAP","TILE_STATS","encodeParameter","name","value","encodeURIComponent"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,6BAA6B,GAAG,QAAtC;;AACA,IAAMC,+BAA+B,GAAG,UAAxC;;AAGA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAOA,IAAMC,uBAAuB,qFACjCJ,YAAY,CAACC,EADoB,oBACJH,6BADI,kFAEjCE,YAAY,CAACE,EAFoB,gCAEQH,+BAFR,6BAE0DD,6BAF1D,0BAA7B;;AAKA,IAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE;AAHc,CAAlB;;AAMA,IAAMC,eAA0B,GAAG,CAACJ,SAAS,CAACE,KAAX,CAAnC;;AACA,IAAMG,kBAA6B,GAAG,CAACL,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAtC;;AAGA,IAAMI,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;;AASA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BF,EAAAA,IAAI,EAAE,MAFoB;AAG1BH,EAAAA,OAAO,EAAE,SAHiB;AAI1BM,EAAAA,MAAM,EAAE;AAJkB,CAArB;;IAQKC,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;AA8BL,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,UADqB;AAE3BC,EAAAA,aAAa,EAAE,mBAFY;AAG3BC,EAAAA,UAAU,EAAE,YAHe;AAI3BC,EAAAA,UAAU,EAAE;AAJe,CAAtB;;;AAWA,SAASC,eAAT,CAAyBC,IAAzB,EAAuCC,KAAvC,EAAiF;AACtF,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport type ValuesOf<T extends {}> = T[keyof T];\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n} as const;\nexport type ApiVersion = ValuesOf<typeof API_VERSIONS>;\n\nexport const DEFAULT_MAPS_URL_FORMAT = {\n [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,\n [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`\n} as const;\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset'\n} as const;\nexport type MapType = ValuesOf<typeof MAP_TYPES>;\nexport const COLUMNS_SUPPORT: MapType[] = [MAP_TYPES.TABLE];\nexport const GEO_COLUMN_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n} as const;\nexport type Format = ValuesOf<typeof FORMATS>;\n\n// AVAILABLE FORMATS FOR TILES\nexport const TILE_FORMATS = {\n MVT: 'mvt',\n JSON: 'json',\n GEOJSON: 'geojson',\n BINARY: 'binary'\n} as const;\nexport type TileFormat = ValuesOf<typeof TILE_FORMATS>;\n\nexport enum SchemaFieldType {\n Number = 'number',\n Bigint = 'bigint',\n String = 'string',\n Geometry = 'geometry',\n Timestamp = 'timestamp',\n Object = 'object',\n Boolean = 'boolean',\n Variant = 'variant',\n Unknown = 'unknown'\n}\nexport interface SchemaField {\n name: string;\n type: SchemaFieldType; // Field type in the CARTO stack, common for all providers\n}\n\nexport interface MapInstantiation extends MapInstantiationFormats {\n nrows: number;\n size?: number;\n schema: SchemaField[];\n}\n\ntype MapInstantiationFormats = Record<\n Format,\n {\n url: string[];\n error?: any;\n }\n>;\n\nexport const REQUEST_TYPES = {\n DATA: 'Map data',\n INSTANTIATION: 'Map instantiation',\n PUBLIC_MAP: 'Public map',\n TILE_STATS: 'Tile stats'\n} as const;\nexport type RequestType = ValuesOf<typeof REQUEST_TYPES>;\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name: string, value: string | boolean | number): string {\n return `${name}=${encodeURIComponent(value)}`;\n}\n\nexport type QueryParameterValue = string | number | boolean | Array<QueryParameterValue> | object;\n\nexport type NamedQueryParameter = Record<string, QueryParameterValue>;\n\nexport type PositionalQueryParameter = QueryParameterValue[];\n\nexport type QueryParameters = NamedQueryParameter | PositionalQueryParameter;\n"],"file":"maps-api-common.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","RASTER","COLUMNS_SUPPORT","GEO_COLUMN_SUPPORT","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","REQUEST_TYPES","DATA","INSTANTIATION","PUBLIC_MAP","TILE_STATS","encodeParameter","name","value","encodeURIComponent"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,6BAA6B,GAAG,QAAtC;;AACA,IAAMC,+BAA+B,GAAG,UAAxC;;AAGA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAOA,IAAMC,uBAAuB,qFACjCJ,YAAY,CAACC,EADoB,oBACJH,6BADI,kFAEjCE,YAAY,CAACE,EAFoB,gCAEQH,+BAFR,6BAE0DD,6BAF1D,0BAA7B;;AAKA,IAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE,SAHc;AAIvBC,EAAAA,MAAM,EAAE;AAJe,CAAlB;;AAOA,IAAMC,eAA0B,GAAG,CAACL,SAAS,CAACE,KAAX,CAAnC;;AACA,IAAMI,kBAA6B,GAAG,CAACN,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAtC;;AAGA,IAAMK,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;;AASA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BF,EAAAA,IAAI,EAAE,MAFoB;AAG1BH,EAAAA,OAAO,EAAE,SAHiB;AAI1BM,EAAAA,MAAM,EAAE;AAJkB,CAArB;;IAQKC,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;AA8BL,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,UADqB;AAE3BC,EAAAA,aAAa,EAAE,mBAFY;AAG3BC,EAAAA,UAAU,EAAE,YAHe;AAI3BC,EAAAA,UAAU,EAAE;AAJe,CAAtB;;;AAWA,SAASC,eAAT,CAAyBC,IAAzB,EAAuCC,KAAvC,EAAiF;AACtF,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport type ValuesOf<T extends {}> = T[keyof T];\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n} as const;\nexport type ApiVersion = ValuesOf<typeof API_VERSIONS>;\n\nexport const DEFAULT_MAPS_URL_FORMAT = {\n [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,\n [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`\n} as const;\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset',\n RASTER: 'raster'\n} as const;\nexport type MapType = ValuesOf<typeof MAP_TYPES>;\nexport const COLUMNS_SUPPORT: MapType[] = [MAP_TYPES.TABLE];\nexport const GEO_COLUMN_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n} as const;\nexport type Format = ValuesOf<typeof FORMATS>;\n\n// AVAILABLE FORMATS FOR TILES\nexport const TILE_FORMATS = {\n MVT: 'mvt',\n JSON: 'json',\n GEOJSON: 'geojson',\n BINARY: 'binary'\n} as const;\nexport type TileFormat = ValuesOf<typeof TILE_FORMATS>;\n\nexport enum SchemaFieldType {\n Number = 'number',\n Bigint = 'bigint',\n String = 'string',\n Geometry = 'geometry',\n Timestamp = 'timestamp',\n Object = 'object',\n Boolean = 'boolean',\n Variant = 'variant',\n Unknown = 'unknown'\n}\nexport interface SchemaField {\n name: string;\n type: SchemaFieldType; // Field type in the CARTO stack, common for all providers\n}\n\nexport interface MapInstantiation extends MapInstantiationFormats {\n nrows: number;\n size?: number;\n schema: SchemaField[];\n}\n\ntype MapInstantiationFormats = Record<\n Format,\n {\n url: string[];\n error?: any;\n }\n>;\n\nexport const REQUEST_TYPES = {\n DATA: 'Map data',\n INSTANTIATION: 'Map instantiation',\n PUBLIC_MAP: 'Public map',\n TILE_STATS: 'Tile stats'\n} as const;\nexport type RequestType = ValuesOf<typeof REQUEST_TYPES>;\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name: string, value: string | boolean | number): string {\n return `${name}=${encodeURIComponent(value)}`;\n}\n\nexport type QueryParameterValue = string | number | boolean | Array<QueryParameterValue> | object;\n\nexport type NamedQueryParameter = Record<string, QueryParameterValue>;\n\nexport type PositionalQueryParameter = QueryParameterValue[];\n\nexport type QueryParameters = NamedQueryParameter | PositionalQueryParameter;\n"],"file":"maps-api-common.js"}
@@ -117,28 +117,39 @@ function _requestJson() {
117
117
 
118
118
  case 3:
119
119
  response = _context2.sent;
120
- _context2.next = 6;
120
+ _context2.prev = 4;
121
+ _context2.next = 7;
121
122
  return response.json();
122
123
 
123
- case 6:
124
+ case 7:
124
125
  json = _context2.sent;
126
+ _context2.next = 13;
127
+ break;
128
+
129
+ case 10:
130
+ _context2.prev = 10;
131
+ _context2.t0 = _context2["catch"](4);
132
+ json = {
133
+ error: ''
134
+ };
125
135
 
136
+ case 13:
126
137
  if (response.ok) {
127
- _context2.next = 9;
138
+ _context2.next = 15;
128
139
  break;
129
140
  }
130
141
 
131
142
  throw new _cartoApiError.CartoAPIError(json.error, errorContext, response);
132
143
 
133
- case 9:
144
+ case 15:
134
145
  return _context2.abrupt("return", json);
135
146
 
136
- case 10:
147
+ case 16:
137
148
  case "end":
138
149
  return _context2.stop();
139
150
  }
140
151
  }
141
- }, _callee2);
152
+ }, _callee2, null, [[4, 10]]);
142
153
  }));
143
154
  return _requestJson.apply(this, arguments);
144
155
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-v3-client.ts"],"names":["MAX_GET_LENGTH","DEFAULT_CLIENT","V3_MINOR_VERSION","request","method","url","customHeaders","headers","accessToken","body","errorContext","Accept","Authorization","fetch","CartoAPIError","requestJson","response","json","ok","error","requestData","format","FORMATS","NDJSON","data","rows","getParameters","type","source","geoColumn","columns","clientId","aggregationExp","aggregationResLevel","queryParameters","parameters","client","v","sourceName","MAP_TYPES","QUERY","geo_column","join","isSpatialIndexGeoColumn","spatialIndex","split","mapInstantiation","connection","credentials","baseUrl","mapsUrl","encodedParameters","Object","entries","map","key","value","JSON","stringify","requestType","REQUEST_TYPES","INSTANTIATION","length","getUrlFromMetadata","metadata","m","checkFetchLayerDataParameters","apiVersion","API_VERSIONS","V3","apiBaseUrl","COLUMNS_SUPPORT","includes","GEO_COLUMN_SUPPORT","fetchLayerData","formatTiles","_fetchDataUrl","mapFormat","DATA","result","schema","defaultCredentials","localCreds","prioritizedFormats","GEOJSON","TILEJSON","f","log","assert","values","TILE_FORMATS","_fetchMapDataset","dataset","connectionName","cache","parseInt","URL","searchParams","get","_fetchTilestats","attribute","statsUrl","TILE_STATS","stats","attributes","tilestats","layers","index","findIndex","d","fillInMapDatasets","datasets","token","promises","Promise","all","fillInTileStats","keplerMapConfig","config","visState","layer","keys","visualChannels","channel","name","find","id","dataId","TILESET","push","filteredAttributes","a","fetchMap","cartoMapId","autoRefresh","onNewData","PUBLIC_MAP","mapId","intervalId","setInterval","changed","some","stopAutoRefresh","clearInterval","geojsonLayers","filter","geojsonDatasetIds","forEach","geojson","out","textLayers","pointType","props","window","FontFace","document","fonts","check","font","load","then","add"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Carto 3\n */\nimport {\n getDefaultCredentials,\n buildMapsUrlFromBase,\n buildStatsUrlFromBase,\n CloudNativeCredentials\n} from '../config';\nimport {\n API_VERSIONS,\n COLUMNS_SUPPORT,\n encodeParameter,\n Format,\n FORMATS,\n GEO_COLUMN_SUPPORT,\n MapInstantiation,\n MapType,\n MAP_TYPES,\n QueryParameters,\n REQUEST_TYPES,\n SchemaField,\n TileFormat,\n TILE_FORMATS\n} from './maps-api-common';\n\nimport {APIErrorContext, CartoAPIError} from './carto-api-error';\n\nimport {parseMap} from './parseMap';\nimport {log} from '@deck.gl/core';\nimport {assert} from '../utils';\n\nconst MAX_GET_LENGTH = 8192;\nconst DEFAULT_CLIENT = 'deck-gl-carto';\nconst V3_MINOR_VERSION = '3.1';\n\nexport type Headers = Record<string, string>;\ninterface RequestParams {\n method?: string;\n url: string;\n headers?: Headers;\n accessToken?: string;\n body?: any;\n errorContext: APIErrorContext;\n}\n\n/**\n * Request against Maps API\n */\nasync function request({\n method,\n url,\n headers: customHeaders,\n accessToken,\n body,\n errorContext\n}: RequestParams): Promise<Response> {\n const headers: Headers = {\n ...customHeaders,\n Accept: 'application/json'\n };\n\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n\n if (method === 'POST') {\n headers['Content-Type'] = 'application/json';\n }\n\n try {\n /* global fetch */\n return await fetch(url, {\n method,\n headers,\n body\n });\n } catch (error) {\n throw new CartoAPIError(error as Error, errorContext);\n }\n}\n\nasync function requestJson<T = unknown>({\n method,\n url,\n headers,\n accessToken,\n body,\n errorContext\n}: RequestParams): Promise<T> {\n const response = await request({method, url, headers, accessToken, body, errorContext});\n const json = await response.json();\n\n if (!response.ok) {\n throw new CartoAPIError(json.error, errorContext, response);\n }\n return json as T;\n}\n\nasync function requestData({\n method,\n url,\n accessToken,\n format,\n body,\n errorContext\n}: RequestParams & {\n format: Format;\n}): Promise<Response | unknown> {\n if (format === FORMATS.NDJSON) {\n return request({method, url, accessToken, body, errorContext});\n }\n\n const data = await requestJson<any>({method, url, accessToken, body, errorContext});\n return data.rows ? data.rows : data;\n}\n\ntype FetchLayerDataParams = {\n type: MapType;\n source: string;\n connection: string;\n credentials: CloudNativeCredentials;\n geoColumn?: string;\n columns?: string[];\n clientId?: string;\n format?: Format;\n formatTiles?: TileFormat;\n headers?: Headers;\n aggregationExp?: string;\n aggregationResLevel?: number;\n queryParameters?: QueryParameters;\n};\n\ntype MapsAPIParameters = {\n client: string;\n v: string;\n q?: string;\n name?: string;\n queryParameters?: QueryParameters;\n geo_column?: string;\n columns?: string;\n aggregationExp?: string;\n aggregationResLevel?: number;\n};\n\n/**\n * Build a URL with all required parameters\n */\nfunction getParameters({\n type,\n source,\n geoColumn,\n columns,\n clientId,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n}: Omit<FetchLayerDataParams, 'connection' | 'credentials'>): MapsAPIParameters {\n const parameters: MapsAPIParameters = {\n client: clientId || DEFAULT_CLIENT,\n v: V3_MINOR_VERSION\n };\n\n const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';\n parameters[sourceName] = source;\n\n if (queryParameters) {\n parameters.queryParameters = queryParameters;\n }\n\n if (geoColumn) {\n parameters.geo_column = geoColumn;\n }\n if (columns) {\n parameters.columns = columns.join(',');\n }\n if (aggregationExp) {\n parameters.aggregationExp = aggregationExp;\n } else if (isSpatialIndexGeoColumn(geoColumn)) {\n // Default aggregationExp required for spatial index layers\n parameters.aggregationExp = '1 AS value';\n }\n if (aggregationResLevel) {\n parameters.aggregationResLevel = aggregationResLevel;\n }\n\n return parameters;\n}\n\nfunction isSpatialIndexGeoColumn(geoColumn: string | undefined) {\n const spatialIndex = geoColumn?.split(':')[0];\n return spatialIndex === 'h3' || spatialIndex === 'quadbin';\n}\n\nexport async function mapInstantiation({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n}: FetchLayerDataParams): Promise<MapInstantiation> {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const parameters = getParameters({\n type,\n source,\n geoColumn,\n columns,\n clientId,\n aggregationResLevel,\n aggregationExp,\n queryParameters\n });\n const encodedParameters = Object.entries(parameters).map(([key, value]) => {\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n return encodeParameter(key, value);\n });\n const url = `${baseUrl}?${encodedParameters.join('&')}`;\n const {accessToken} = credentials;\n\n const errorContext = {requestType: REQUEST_TYPES.INSTANTIATION, connection, type, source};\n if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {\n return await requestJson({\n method: 'POST',\n url: baseUrl,\n headers,\n accessToken,\n body: JSON.stringify(parameters),\n errorContext\n });\n }\n\n return await requestJson({url, headers, accessToken, errorContext});\n}\n\nfunction getUrlFromMetadata(metadata: MapInstantiation, format: Format): string | null {\n const m = metadata[format];\n\n if (m && !m.error && m.url) {\n return m.url[0];\n }\n\n return null;\n}\n\nfunction checkFetchLayerDataParameters({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n aggregationExp,\n aggregationResLevel\n}: FetchLayerDataParams) {\n assert(connection, 'Must define connection');\n assert(type, 'Must define a type');\n assert(source, 'Must define a source');\n\n assert(credentials.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n assert(credentials.apiBaseUrl, 'Must define apiBaseUrl');\n assert(credentials.accessToken, 'Must define an accessToken');\n\n if (columns) {\n assert(\n COLUMNS_SUPPORT.includes(type),\n `The columns parameter is not supported by type ${type}`\n );\n }\n if (geoColumn) {\n assert(\n GEO_COLUMN_SUPPORT.includes(type),\n `The geoColumn parameter is not supported by type ${type}`\n );\n } else {\n assert(!aggregationExp, 'Have aggregationExp, but geoColumn parameter is missing');\n assert(!aggregationResLevel, 'Have aggregationResLevel, but geoColumn parameter is missing');\n }\n}\n\nexport interface FetchLayerDataResult {\n data: any;\n format?: Format;\n schema: SchemaField[];\n}\nexport async function fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n}: FetchLayerDataParams): Promise<FetchLayerDataResult> {\n // Internally we split data fetching into two parts to allow us to\n // conditionally fetch the actual data, depending on the metadata state\n const {url, accessToken, mapFormat, metadata} = await _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n });\n\n const errorContext = {requestType: REQUEST_TYPES.DATA, connection, type, source};\n const data = await requestData({url, format: mapFormat, accessToken, errorContext});\n const result: FetchLayerDataResult = {data, format: mapFormat, schema: metadata.schema};\n return result;\n}\n\nasync function _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n}: FetchLayerDataParams) {\n const defaultCredentials = getDefaultCredentials();\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n };\n checkFetchLayerDataParameters({\n type,\n source,\n connection,\n credentials: localCreds,\n geoColumn,\n columns,\n aggregationExp,\n aggregationResLevel\n });\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n const metadata = await mapInstantiation({\n type,\n source,\n connection,\n credentials: localCreds,\n geoColumn,\n columns,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n });\n let url: string | null = null;\n let mapFormat: Format | undefined;\n\n if (format) {\n mapFormat = format;\n url = getUrlFromMetadata(metadata, format);\n assert(url, `Format ${format} not available`);\n } else {\n // guess map format\n const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.JSON, FORMATS.NDJSON, FORMATS.TILEJSON];\n for (const f of prioritizedFormats) {\n url = getUrlFromMetadata(metadata, f);\n if (url) {\n mapFormat = f;\n break;\n }\n }\n assert(url && mapFormat, 'Unsupported data formats received from backend.');\n }\n\n if (format === FORMATS.TILEJSON && formatTiles) {\n log.assert(\n Object.values(TILE_FORMATS).includes(formatTiles),\n `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`\n );\n url += `&${encodeParameter('formatTiles', formatTiles)}`;\n }\n\n const {accessToken} = localCreds;\n return {url, accessToken, mapFormat, metadata};\n}\n\n/* global clearInterval, setInterval, URL */\nasync function _fetchMapDataset(\n dataset,\n accessToken: string,\n credentials: CloudNativeCredentials,\n clientId?: string,\n headers?: Headers\n) {\n const {\n aggregationExp,\n aggregationResLevel,\n connectionName: connection,\n columns,\n format,\n geoColumn,\n source,\n type,\n queryParameters\n } = dataset;\n // First fetch metadata\n const {url, mapFormat} = await _fetchDataUrl({\n aggregationExp,\n aggregationResLevel,\n clientId,\n credentials: {...credentials, accessToken},\n connection,\n columns,\n format,\n geoColumn,\n headers,\n source,\n type,\n queryParameters\n });\n\n // Extract the last time the data changed\n const cache = parseInt(new URL(url).searchParams.get('cache') || '', 10);\n if (cache && dataset.cache === cache) {\n return false;\n }\n dataset.cache = cache;\n\n // Only fetch if the data has changed\n const errorContext = {requestType: REQUEST_TYPES.DATA, connection, type, source};\n dataset.data = await requestData({url, format: mapFormat, accessToken, errorContext});\n\n return true;\n}\n\nasync function _fetchTilestats(\n attribute,\n dataset,\n accessToken: string,\n credentials: CloudNativeCredentials\n) {\n const {connectionName: connection, source, type} = dataset;\n\n const statsUrl = buildStatsUrlFromBase(credentials.apiBaseUrl);\n let url = `${statsUrl}/${connection}/`;\n if (type === MAP_TYPES.QUERY) {\n url += `${attribute}?${encodeParameter('q', source)}`;\n } else {\n // MAP_TYPE.TABLE\n url += `${source}/${attribute}`;\n }\n const errorContext = {requestType: REQUEST_TYPES.TILE_STATS, connection, type, source};\n const stats = await requestData({url, format: FORMATS.JSON, accessToken, errorContext});\n\n // Replace tilestats for attribute with value from API\n const {attributes} = dataset.data.tilestats.layers[0];\n const index = attributes.findIndex(d => d.attribute === attribute);\n attributes[index] = stats;\n return true;\n}\n\nasync function fillInMapDatasets(\n {datasets, token},\n clientId: string,\n credentials: CloudNativeCredentials,\n headers?: Headers\n) {\n const promises = datasets.map(dataset =>\n _fetchMapDataset(dataset, token, credentials, clientId, headers)\n );\n return await Promise.all(promises);\n}\n\nasync function fillInTileStats(\n {datasets, keplerMapConfig, token},\n credentials: CloudNativeCredentials\n) {\n const attributes: {attribute?: string; dataset?: any}[] = [];\n const {layers} = keplerMapConfig.config.visState;\n for (const layer of layers) {\n for (const channel of Object.keys(layer.visualChannels)) {\n const attribute = layer.visualChannels[channel]?.name;\n if (attribute) {\n const dataset = datasets.find(d => d.id === layer.config.dataId);\n if (dataset.data.tilestats && dataset.type !== MAP_TYPES.TILESET) {\n // Only fetch stats for QUERY & TABLE map types\n attributes.push({attribute, dataset});\n }\n }\n }\n }\n // Remove duplicates to avoid repeated requests\n const filteredAttributes: {attribute?: string; dataset?: any}[] = [];\n for (const a of attributes) {\n if (\n !filteredAttributes.find(\n ({attribute, dataset}) => attribute === a.attribute && dataset === a.dataset\n )\n ) {\n filteredAttributes.push(a);\n }\n }\n\n const promises = filteredAttributes.map(({attribute, dataset}) =>\n _fetchTilestats(attribute, dataset, token, credentials)\n );\n return await Promise.all(promises);\n}\n\n/* eslint-disable max-statements */\nexport async function fetchMap({\n cartoMapId,\n clientId,\n credentials,\n headers,\n autoRefresh,\n onNewData\n}: {\n cartoMapId: string;\n clientId: string;\n credentials?: CloudNativeCredentials;\n headers?: Headers;\n autoRefresh?: number;\n onNewData?: (map: any) => void;\n}) {\n const defaultCredentials = getDefaultCredentials();\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n } as CloudNativeCredentials;\n const {accessToken} = localCreds;\n\n assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: \"XXXX-XXXX-XXXX\"})');\n\n assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n if (autoRefresh || onNewData) {\n assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n assert(typeof onNewData === 'function', '`onNewData` must be a function');\n assert(\n typeof autoRefresh === 'number' && autoRefresh > 0,\n '`autoRefresh` must be a positive number'\n );\n }\n\n const url = `${localCreds.mapsUrl}/public/${cartoMapId}`;\n const errorContext = {requestType: REQUEST_TYPES.PUBLIC_MAP, mapId: cartoMapId};\n const map = await requestJson<any>({url, headers, accessToken, errorContext});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n let stopAutoRefresh: (() => void) | undefined;\n if (autoRefresh) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const intervalId = setInterval(async () => {\n const changed = await fillInMapDatasets(map, clientId, localCreds, headers);\n if (onNewData && changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n stopAutoRefresh = () => {\n clearInterval(intervalId);\n };\n }\n\n const geojsonLayers = map.keplerMapConfig.config.visState.layers.filter(\n ({type}) => type === 'geojson' || type === 'point'\n );\n const geojsonDatasetIds = geojsonLayers.map(({config}) => config.dataId);\n map.datasets.forEach(dataset => {\n if (geojsonDatasetIds.includes(dataset.id)) {\n const {config} = geojsonLayers.find(({config}) => config.dataId === dataset.id);\n dataset.format = 'geojson';\n // Support for very old maps. geoColumn was not stored in the past\n if (!dataset.geoColumn && config.columns.geojson) {\n dataset.geoColumn = config.columns.geojson;\n }\n }\n });\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, localCreds, headers);\n\n // Mutates attributes in visualChannels to contain tile stats\n await fillInTileStats(map, localCreds);\n const out = {...parseMap(map), ...{stopAutoRefresh}};\n\n const textLayers = out.layers.filter(layer => {\n const pointType = layer.props.pointType || '';\n return pointType.includes('text');\n });\n\n /* global FontFace, window, document */\n if (textLayers.length && window.FontFace && !document.fonts.check('12px Inter')) {\n // Fetch font needed for labels\n const font = new FontFace(\n 'Inter',\n 'url(https://fonts.gstatic.com/s/inter/v12/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7W0Q5nw.woff2)'\n );\n await font.load().then(f => document.fonts.add(f));\n }\n\n return out;\n}\n"],"file":"maps-v3-client.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-v3-client.ts"],"names":["MAX_GET_LENGTH","DEFAULT_CLIENT","V3_MINOR_VERSION","request","method","url","customHeaders","headers","accessToken","body","errorContext","Accept","Authorization","fetch","CartoAPIError","requestJson","response","json","error","ok","requestData","format","FORMATS","NDJSON","data","rows","getParameters","type","source","geoColumn","columns","clientId","aggregationExp","aggregationResLevel","queryParameters","parameters","client","v","sourceName","MAP_TYPES","QUERY","geo_column","join","isSpatialIndexGeoColumn","spatialIndex","split","mapInstantiation","connection","credentials","baseUrl","mapsUrl","encodedParameters","Object","entries","map","key","value","JSON","stringify","requestType","REQUEST_TYPES","INSTANTIATION","length","getUrlFromMetadata","metadata","m","checkFetchLayerDataParameters","apiVersion","API_VERSIONS","V3","apiBaseUrl","COLUMNS_SUPPORT","includes","GEO_COLUMN_SUPPORT","fetchLayerData","formatTiles","_fetchDataUrl","mapFormat","DATA","result","schema","defaultCredentials","localCreds","prioritizedFormats","GEOJSON","TILEJSON","f","log","assert","values","TILE_FORMATS","_fetchMapDataset","dataset","connectionName","cache","parseInt","URL","searchParams","get","_fetchTilestats","attribute","statsUrl","TILE_STATS","stats","attributes","tilestats","layers","index","findIndex","d","fillInMapDatasets","datasets","token","promises","Promise","all","fillInTileStats","keplerMapConfig","config","visState","layer","keys","visualChannels","channel","name","find","id","dataId","TILESET","push","filteredAttributes","a","fetchMap","cartoMapId","autoRefresh","onNewData","PUBLIC_MAP","mapId","intervalId","setInterval","changed","some","stopAutoRefresh","clearInterval","geojsonLayers","filter","geojsonDatasetIds","forEach","geojson","out","textLayers","pointType","props","window","FontFace","document","fonts","check","font","load","then","add"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Carto 3\n */\nimport {\n getDefaultCredentials,\n buildMapsUrlFromBase,\n buildStatsUrlFromBase,\n CloudNativeCredentials\n} from '../config';\nimport {\n API_VERSIONS,\n COLUMNS_SUPPORT,\n encodeParameter,\n Format,\n FORMATS,\n GEO_COLUMN_SUPPORT,\n MapInstantiation,\n MapType,\n MAP_TYPES,\n QueryParameters,\n REQUEST_TYPES,\n SchemaField,\n TileFormat,\n TILE_FORMATS\n} from './maps-api-common';\n\nimport {APIErrorContext, CartoAPIError} from './carto-api-error';\n\nimport {parseMap} from './parseMap';\nimport {log} from '@deck.gl/core';\nimport {assert} from '../utils';\n\nconst MAX_GET_LENGTH = 8192;\nconst DEFAULT_CLIENT = 'deck-gl-carto';\nconst V3_MINOR_VERSION = '3.1';\n\nexport type Headers = Record<string, string>;\ninterface RequestParams {\n method?: string;\n url: string;\n headers?: Headers;\n accessToken?: string;\n body?: any;\n errorContext: APIErrorContext;\n}\n\n/**\n * Request against Maps API\n */\nasync function request({\n method,\n url,\n headers: customHeaders,\n accessToken,\n body,\n errorContext\n}: RequestParams): Promise<Response> {\n const headers: Headers = {\n ...customHeaders,\n Accept: 'application/json'\n };\n\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n\n if (method === 'POST') {\n headers['Content-Type'] = 'application/json';\n }\n\n try {\n /* global fetch */\n return await fetch(url, {\n method,\n headers,\n body\n });\n } catch (error) {\n throw new CartoAPIError(error as Error, errorContext);\n }\n}\n\nasync function requestJson<T = unknown>({\n method,\n url,\n headers,\n accessToken,\n body,\n errorContext\n}: RequestParams): Promise<T> {\n const response = await request({method, url, headers, accessToken, body, errorContext});\n let json;\n try {\n json = await response.json();\n } catch (error) {\n json = {error: ''};\n }\n\n if (!response.ok) {\n throw new CartoAPIError(json.error, errorContext, response);\n }\n return json as T;\n}\n\nasync function requestData({\n method,\n url,\n accessToken,\n format,\n body,\n errorContext\n}: RequestParams & {\n format: Format;\n}): Promise<Response | unknown> {\n if (format === FORMATS.NDJSON) {\n return request({method, url, accessToken, body, errorContext});\n }\n\n const data = await requestJson<any>({method, url, accessToken, body, errorContext});\n return data.rows ? data.rows : data;\n}\n\ntype FetchLayerDataParams = {\n type: MapType;\n source: string;\n connection: string;\n credentials: CloudNativeCredentials;\n geoColumn?: string;\n columns?: string[];\n clientId?: string;\n format?: Format;\n formatTiles?: TileFormat;\n headers?: Headers;\n aggregationExp?: string;\n aggregationResLevel?: number;\n queryParameters?: QueryParameters;\n};\n\ntype MapsAPIParameters = {\n client: string;\n v: string;\n q?: string;\n name?: string;\n queryParameters?: QueryParameters;\n geo_column?: string;\n columns?: string;\n aggregationExp?: string;\n aggregationResLevel?: number;\n};\n\n/**\n * Build a URL with all required parameters\n */\nfunction getParameters({\n type,\n source,\n geoColumn,\n columns,\n clientId,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n}: Omit<FetchLayerDataParams, 'connection' | 'credentials'>): MapsAPIParameters {\n const parameters: MapsAPIParameters = {\n client: clientId || DEFAULT_CLIENT,\n v: V3_MINOR_VERSION\n };\n\n const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';\n parameters[sourceName] = source;\n\n if (queryParameters) {\n parameters.queryParameters = queryParameters;\n }\n\n if (geoColumn) {\n parameters.geo_column = geoColumn;\n }\n if (columns) {\n parameters.columns = columns.join(',');\n }\n if (aggregationExp) {\n parameters.aggregationExp = aggregationExp;\n } else if (isSpatialIndexGeoColumn(geoColumn)) {\n // Default aggregationExp required for spatial index layers\n parameters.aggregationExp = '1 AS value';\n }\n if (aggregationResLevel) {\n parameters.aggregationResLevel = aggregationResLevel;\n }\n\n return parameters;\n}\n\nfunction isSpatialIndexGeoColumn(geoColumn: string | undefined) {\n const spatialIndex = geoColumn?.split(':')[0];\n return spatialIndex === 'h3' || spatialIndex === 'quadbin';\n}\n\nexport async function mapInstantiation({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n}: FetchLayerDataParams): Promise<MapInstantiation> {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const parameters = getParameters({\n type,\n source,\n geoColumn,\n columns,\n clientId,\n aggregationResLevel,\n aggregationExp,\n queryParameters\n });\n const encodedParameters = Object.entries(parameters).map(([key, value]) => {\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n return encodeParameter(key, value);\n });\n const url = `${baseUrl}?${encodedParameters.join('&')}`;\n const {accessToken} = credentials;\n\n const errorContext = {requestType: REQUEST_TYPES.INSTANTIATION, connection, type, source};\n if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {\n return await requestJson({\n method: 'POST',\n url: baseUrl,\n headers,\n accessToken,\n body: JSON.stringify(parameters),\n errorContext\n });\n }\n\n return await requestJson({url, headers, accessToken, errorContext});\n}\n\nfunction getUrlFromMetadata(metadata: MapInstantiation, format: Format): string | null {\n const m = metadata[format];\n\n if (m && !m.error && m.url) {\n return m.url[0];\n }\n\n return null;\n}\n\nfunction checkFetchLayerDataParameters({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n aggregationExp,\n aggregationResLevel\n}: FetchLayerDataParams) {\n assert(connection, 'Must define connection');\n assert(type, 'Must define a type');\n assert(source, 'Must define a source');\n\n assert(credentials.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n assert(credentials.apiBaseUrl, 'Must define apiBaseUrl');\n assert(credentials.accessToken, 'Must define an accessToken');\n\n if (columns) {\n assert(\n COLUMNS_SUPPORT.includes(type),\n `The columns parameter is not supported by type ${type}`\n );\n }\n if (geoColumn) {\n assert(\n GEO_COLUMN_SUPPORT.includes(type),\n `The geoColumn parameter is not supported by type ${type}`\n );\n } else {\n assert(!aggregationExp, 'Have aggregationExp, but geoColumn parameter is missing');\n assert(!aggregationResLevel, 'Have aggregationResLevel, but geoColumn parameter is missing');\n }\n}\n\nexport interface FetchLayerDataResult {\n data: any;\n format?: Format;\n schema: SchemaField[];\n}\nexport async function fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n}: FetchLayerDataParams): Promise<FetchLayerDataResult> {\n // Internally we split data fetching into two parts to allow us to\n // conditionally fetch the actual data, depending on the metadata state\n const {url, accessToken, mapFormat, metadata} = await _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n });\n\n const errorContext = {requestType: REQUEST_TYPES.DATA, connection, type, source};\n const data = await requestData({url, format: mapFormat, accessToken, errorContext});\n const result: FetchLayerDataResult = {data, format: mapFormat, schema: metadata.schema};\n return result;\n}\n\nasync function _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n}: FetchLayerDataParams) {\n const defaultCredentials = getDefaultCredentials();\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n };\n checkFetchLayerDataParameters({\n type,\n source,\n connection,\n credentials: localCreds,\n geoColumn,\n columns,\n aggregationExp,\n aggregationResLevel\n });\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n const metadata = await mapInstantiation({\n type,\n source,\n connection,\n credentials: localCreds,\n geoColumn,\n columns,\n clientId,\n headers,\n aggregationExp,\n aggregationResLevel,\n queryParameters\n });\n let url: string | null = null;\n let mapFormat: Format | undefined;\n\n if (format) {\n mapFormat = format;\n url = getUrlFromMetadata(metadata, format);\n assert(url, `Format ${format} not available`);\n } else {\n // guess map format\n const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.JSON, FORMATS.NDJSON, FORMATS.TILEJSON];\n for (const f of prioritizedFormats) {\n url = getUrlFromMetadata(metadata, f);\n if (url) {\n mapFormat = f;\n break;\n }\n }\n assert(url && mapFormat, 'Unsupported data formats received from backend.');\n }\n\n if (format === FORMATS.TILEJSON && formatTiles) {\n log.assert(\n Object.values(TILE_FORMATS).includes(formatTiles),\n `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`\n );\n url += `&${encodeParameter('formatTiles', formatTiles)}`;\n }\n\n const {accessToken} = localCreds;\n return {url, accessToken, mapFormat, metadata};\n}\n\n/* global clearInterval, setInterval, URL */\nasync function _fetchMapDataset(\n dataset,\n accessToken: string,\n credentials: CloudNativeCredentials,\n clientId?: string,\n headers?: Headers\n) {\n const {\n aggregationExp,\n aggregationResLevel,\n connectionName: connection,\n columns,\n format,\n geoColumn,\n source,\n type,\n queryParameters\n } = dataset;\n // First fetch metadata\n const {url, mapFormat} = await _fetchDataUrl({\n aggregationExp,\n aggregationResLevel,\n clientId,\n credentials: {...credentials, accessToken},\n connection,\n columns,\n format,\n geoColumn,\n headers,\n source,\n type,\n queryParameters\n });\n\n // Extract the last time the data changed\n const cache = parseInt(new URL(url).searchParams.get('cache') || '', 10);\n if (cache && dataset.cache === cache) {\n return false;\n }\n dataset.cache = cache;\n\n // Only fetch if the data has changed\n const errorContext = {requestType: REQUEST_TYPES.DATA, connection, type, source};\n dataset.data = await requestData({url, format: mapFormat, accessToken, errorContext});\n\n return true;\n}\n\nasync function _fetchTilestats(\n attribute,\n dataset,\n accessToken: string,\n credentials: CloudNativeCredentials\n) {\n const {connectionName: connection, source, type} = dataset;\n\n const statsUrl = buildStatsUrlFromBase(credentials.apiBaseUrl);\n let url = `${statsUrl}/${connection}/`;\n if (type === MAP_TYPES.QUERY) {\n url += `${attribute}?${encodeParameter('q', source)}`;\n } else {\n // MAP_TYPE.TABLE\n url += `${source}/${attribute}`;\n }\n const errorContext = {requestType: REQUEST_TYPES.TILE_STATS, connection, type, source};\n const stats = await requestData({url, format: FORMATS.JSON, accessToken, errorContext});\n\n // Replace tilestats for attribute with value from API\n const {attributes} = dataset.data.tilestats.layers[0];\n const index = attributes.findIndex(d => d.attribute === attribute);\n attributes[index] = stats;\n return true;\n}\n\nasync function fillInMapDatasets(\n {datasets, token},\n clientId: string,\n credentials: CloudNativeCredentials,\n headers?: Headers\n) {\n const promises = datasets.map(dataset =>\n _fetchMapDataset(dataset, token, credentials, clientId, headers)\n );\n return await Promise.all(promises);\n}\n\nasync function fillInTileStats(\n {datasets, keplerMapConfig, token},\n credentials: CloudNativeCredentials\n) {\n const attributes: {attribute?: string; dataset?: any}[] = [];\n const {layers} = keplerMapConfig.config.visState;\n for (const layer of layers) {\n for (const channel of Object.keys(layer.visualChannels)) {\n const attribute = layer.visualChannels[channel]?.name;\n if (attribute) {\n const dataset = datasets.find(d => d.id === layer.config.dataId);\n if (dataset.data.tilestats && dataset.type !== MAP_TYPES.TILESET) {\n // Only fetch stats for QUERY & TABLE map types\n attributes.push({attribute, dataset});\n }\n }\n }\n }\n // Remove duplicates to avoid repeated requests\n const filteredAttributes: {attribute?: string; dataset?: any}[] = [];\n for (const a of attributes) {\n if (\n !filteredAttributes.find(\n ({attribute, dataset}) => attribute === a.attribute && dataset === a.dataset\n )\n ) {\n filteredAttributes.push(a);\n }\n }\n\n const promises = filteredAttributes.map(({attribute, dataset}) =>\n _fetchTilestats(attribute, dataset, token, credentials)\n );\n return await Promise.all(promises);\n}\n\n/* eslint-disable max-statements */\nexport async function fetchMap({\n cartoMapId,\n clientId,\n credentials,\n headers,\n autoRefresh,\n onNewData\n}: {\n cartoMapId: string;\n clientId: string;\n credentials?: CloudNativeCredentials;\n headers?: Headers;\n autoRefresh?: number;\n onNewData?: (map: any) => void;\n}) {\n const defaultCredentials = getDefaultCredentials();\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n } as CloudNativeCredentials;\n const {accessToken} = localCreds;\n\n assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: \"XXXX-XXXX-XXXX\"})');\n\n assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n if (autoRefresh || onNewData) {\n assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n assert(typeof onNewData === 'function', '`onNewData` must be a function');\n assert(\n typeof autoRefresh === 'number' && autoRefresh > 0,\n '`autoRefresh` must be a positive number'\n );\n }\n\n const url = `${localCreds.mapsUrl}/public/${cartoMapId}`;\n const errorContext = {requestType: REQUEST_TYPES.PUBLIC_MAP, mapId: cartoMapId};\n const map = await requestJson<any>({url, headers, accessToken, errorContext});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n let stopAutoRefresh: (() => void) | undefined;\n if (autoRefresh) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const intervalId = setInterval(async () => {\n const changed = await fillInMapDatasets(map, clientId, localCreds, headers);\n if (onNewData && changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n stopAutoRefresh = () => {\n clearInterval(intervalId);\n };\n }\n\n const geojsonLayers = map.keplerMapConfig.config.visState.layers.filter(\n ({type}) => type === 'geojson' || type === 'point'\n );\n const geojsonDatasetIds = geojsonLayers.map(({config}) => config.dataId);\n map.datasets.forEach(dataset => {\n if (geojsonDatasetIds.includes(dataset.id)) {\n const {config} = geojsonLayers.find(({config}) => config.dataId === dataset.id);\n dataset.format = 'geojson';\n // Support for very old maps. geoColumn was not stored in the past\n if (!dataset.geoColumn && config.columns.geojson) {\n dataset.geoColumn = config.columns.geojson;\n }\n }\n });\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, localCreds, headers);\n\n // Mutates attributes in visualChannels to contain tile stats\n await fillInTileStats(map, localCreds);\n const out = {...parseMap(map), ...{stopAutoRefresh}};\n\n const textLayers = out.layers.filter(layer => {\n const pointType = layer.props.pointType || '';\n return pointType.includes('text');\n });\n\n /* global FontFace, window, document */\n if (textLayers.length && window.FontFace && !document.fonts.check('12px Inter')) {\n // Fetch font needed for labels\n const font = new FontFace(\n 'Inter',\n 'url(https://fonts.gstatic.com/s/inter/v12/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7W0Q5nw.woff2)'\n );\n await font.load().then(f => document.fonts.add(f));\n }\n\n return out;\n}\n"],"file":"maps-v3-client.js"}
@@ -234,7 +234,7 @@ function createChannelProps(id, type, config, visualChannels, data) {
234
234
  }, opacity, data);
235
235
  }
236
236
 
237
- if (heightField) {
237
+ if (heightField && visConfig.enable3d) {
238
238
  result.getElevation = (0, _layerMap.getSizeAccessor)(heightField, heightScale, visConfig.heightAggregation, visConfig.heightRange || visConfig.sizeRange, data);
239
239
  }
240
240