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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.dev.js CHANGED
@@ -52945,6 +52945,8 @@ __webpack_require__.r(__webpack_exports__);
52945
52945
  /* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_4__);
52946
52946
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
52947
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");
52949
+
52948
52950
 
52949
52951
 
52950
52952
 
@@ -53003,7 +53005,11 @@ function mergePropMaps(a, b) {
53003
53005
  };
53004
53006
  }
53005
53007
 
53006
- function getLayer(type, config) {
53008
+ function getLayer(type, config, dataset) {
53009
+ if (type === 'mvt' || type === 'tileset') {
53010
+ return getTileLayer(dataset);
53011
+ }
53012
+
53007
53013
  const hexagonId = config.columns?.hex_id;
53008
53014
  const layer = {
53009
53015
  point: {
@@ -53033,21 +53039,33 @@ function getLayer(type, config) {
53033
53039
  defaultProps: { ...defaultProps,
53034
53040
  getHexagon: d => d[hexagonId]
53035
53041
  }
53036
- },
53037
- mvt: {
53038
- Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["MVTLayer"],
53039
- propMap: sharedPropMap,
53040
- defaultProps: { ...defaultProps,
53041
- pointRadiusScale: 0.3,
53042
- lineWidthScale: 2,
53043
- uniqueIdProperty: 'geoid'
53044
- }
53045
53042
  }
53046
53043
  }[type];
53047
53044
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["log"].assert(layer, `Unsupported layer type: ${type}`);
53048
53045
  return layer;
53049
53046
  }
53050
53047
 
53048
+ function getTileLayer(dataset) {
53049
+ const {
53050
+ data: {
53051
+ tiles: [tileUrl]
53052
+ }
53053
+ } = dataset;
53054
+ /* global URL */
53055
+
53056
+ const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || _deck_gl_carto__WEBPACK_IMPORTED_MODULE_6__["TILE_FORMATS"].MVT;
53057
+ 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"],
53059
+ propMap: sharedPropMap,
53060
+ defaultProps: { ...defaultProps,
53061
+ pointRadiusScale: 0.3,
53062
+ lineWidthScale: 2,
53063
+ uniqueIdProperty: 'geoid',
53064
+ formatTiles
53065
+ }
53066
+ };
53067
+ }
53068
+
53051
53069
  function domainFromAttribute(attribute, scaleType) {
53052
53070
  if (scaleType === 'ordinal' || scaleType === 'point') {
53053
53071
  return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);
@@ -53782,7 +53800,7 @@ async function getData({
53782
53800
  });
53783
53801
  return layerData.data;
53784
53802
  }
53785
- /* global clearInterval, setInterval, URLSearchParams */
53803
+ /* global clearInterval, setInterval, URL */
53786
53804
 
53787
53805
  async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
53788
53806
  // First fetch metadata
@@ -53804,7 +53822,7 @@ async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
53804
53822
  clientId
53805
53823
  }); // Extract the last time the data changed
53806
53824
 
53807
- const cache = parseInt(new URLSearchParams(url).get('cache'), 10);
53825
+ const cache = parseInt(new URL(url).searchParams.get('cache'), 10);
53808
53826
 
53809
53827
  if (cache && dataset.cache === cache) {
53810
53828
  return false;
@@ -53840,6 +53858,9 @@ async function fetchMap({
53840
53858
  const localCreds = { ...(defaultCredentials.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3 && defaultCredentials),
53841
53859
  ...credentials
53842
53860
  };
53861
+ const {
53862
+ accessToken
53863
+ } = localCreds;
53843
53864
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(cartoMapId, `Must define CARTO map id: fetchMap({cartoMapId: 'XXXX-XXXX-XXXX'})`);
53844
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');
53845
53866
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
@@ -53856,7 +53877,8 @@ async function fetchMap({
53856
53877
 
53857
53878
  const url = `${localCreds.mapsUrl}/public/${cartoMapId}`;
53858
53879
  const map = await request({
53859
- url
53880
+ url,
53881
+ accessToken
53860
53882
  }); // Periodically check if the data has changed. Note that this
53861
53883
  // will not update when a map is published.
53862
53884
 
@@ -53934,11 +53956,6 @@ function parseMap(json) {
53934
53956
  visualChannels
53935
53957
  }) => {
53936
53958
  try {
53937
- const {
53938
- Layer,
53939
- propMap,
53940
- defaultProps
53941
- } = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getLayer"])(type, config);
53942
53959
  const {
53943
53960
  dataId
53944
53961
  } = config;
@@ -53948,6 +53965,11 @@ function parseMap(json) {
53948
53965
  data
53949
53966
  } = dataset;
53950
53967
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(data, `No data loaded for dataId: ${dataId}`);
53968
+ const {
53969
+ Layer,
53970
+ propMap,
53971
+ defaultProps
53972
+ } = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getLayer"])(type, config, dataset);
53951
53973
  return new Layer({
53952
53974
  id,
53953
53975
  data,
@@ -54354,7 +54376,8 @@ const CartoDynamicTileLoader = {
54354
54376
  parseSync: parseCartoDynamicTile,
54355
54377
  options: {
54356
54378
  cartoDynamicTile: {
54357
- formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].BINARY
54379
+ // TODO change to BINARY for 8.7 prod release
54380
+ formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].GEOJSON
54358
54381
  }
54359
54382
  }
54360
54383
  };
@@ -54379,8 +54402,11 @@ class CartoDynamicTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["
54379
54402
  };
54380
54403
 
54381
54404
  if (formatTiles) {
54382
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["log"].assert(Object.values(_api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"]).includes(formatTiles), `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`);
54383
- url += `&${Object(_api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["encodeParameter"])('formatTiles', formatTiles)}`;
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();
54384
54410
  loadOptions.cartoDynamicTile = {
54385
54411
  formatTiles
54386
54412
  };
@@ -54408,7 +54434,7 @@ class CartoDynamicTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["
54408
54434
  north
54409
54435
  }
54410
54436
  } = props.tile;
54411
- props.extensions = [new _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__["ClipExtension"](), ...props.extensions];
54437
+ props.extensions = [new _deck_gl_extensions__WEBPACK_IMPORTED_MODULE_2__["ClipExtension"](), ...(props.extensions || [])];
54412
54438
  props.clipBounds = [west, south, east, north];
54413
54439
  const subLayer = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["GeoJsonLayer"]({ ...props
54414
54440
  });
@@ -54475,9 +54501,8 @@ const defaultProps = {
54475
54501
  connection: null,
54476
54502
  // (String, optional): format of data
54477
54503
  format: null,
54478
- // (String, optional): format of data
54479
- formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].GEOJSON,
54480
- // TODO: for 8.7 release switch to BINARY
54504
+ // (String, optional): force format of data for tiles
54505
+ formatTiles: null,
54481
54506
  // (String, optional): clientId identifier used for internal tracing, place here a string to identify the client who is doing the request.
54482
54507
  clientId: null,
54483
54508
  // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.
@@ -54603,31 +54628,37 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
54603
54628
  }
54604
54629
  }
54605
54630
 
54606
- renderLayers() {
54631
+ _getRenderLayer() {
54607
54632
  const {
54608
54633
  data,
54609
54634
  format,
54610
54635
  apiVersion
54611
54636
  } = this.state;
54637
+
54638
+ 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"];
54640
+ }
54641
+
54642
+ if (format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON) {
54643
+ /* 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"];
54646
+ } // It's a geojson layer
54647
+
54648
+
54649
+ return _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"];
54650
+ }
54651
+
54652
+ renderLayers() {
54653
+ const {
54654
+ data
54655
+ } = this.state;
54612
54656
  if (!data) return null;
54613
54657
  const {
54614
- type,
54615
54658
  updateTriggers
54616
54659
  } = this.props;
54617
- let layer;
54618
- /* global URLSearchParams */
54619
54660
 
54620
- const tilesFormat = apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V3 && format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON && new URLSearchParams(data.tiles[0]).get('format');
54621
- const nonMvtTiles = tilesFormat && tilesFormat !== _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT;
54622
- const dynamicTiles = apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V3 && type === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["MAP_TYPES"].TABLE && format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON;
54623
-
54624
- if (nonMvtTiles || dynamicTiles) {
54625
- layer = _carto_dynamic_tile_layer__WEBPACK_IMPORTED_MODULE_1__["default"];
54626
- } else if (apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V1 || apiVersion === _api__WEBPACK_IMPORTED_MODULE_2__["API_VERSIONS"].V2 || format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON) {
54627
- layer = _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"];
54628
- } else {
54629
- layer = _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"];
54630
- }
54661
+ const layer = this._getRenderLayer();
54631
54662
 
54632
54663
  const {
54633
54664
  formatTiles,
@@ -12,10 +12,10 @@ exports.getTextAccessor = getTextAccessor;
12
12
  exports.getTextPixelOffsetAccessor = getTextPixelOffsetAccessor;
13
13
  exports._domainFromValues = domainFromValues;
14
14
 
15
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
-
17
15
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
18
16
 
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
+
19
19
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
20
 
21
21
  var _d3Array = require("d3-array");
@@ -34,6 +34,8 @@ var _geoLayers = require("@deck.gl/geo-layers");
34
34
 
35
35
  var _layers = require("@deck.gl/layers");
36
36
 
37
+ var _carto = require("@deck.gl/carto");
38
+
37
39
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
38
40
 
39
41
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -84,9 +86,13 @@ function mergePropMaps(a, b) {
84
86
  });
85
87
  }
86
88
 
87
- function getLayer(type, config) {
89
+ function getLayer(type, config, dataset) {
88
90
  var _config$columns;
89
91
 
92
+ if (type === 'mvt' || type === 'tileset') {
93
+ return getTileLayer(dataset);
94
+ }
95
+
90
96
  var hexagonId = (_config$columns = config.columns) === null || _config$columns === void 0 ? void 0 : _config$columns.hex_id;
91
97
  var layer = {
92
98
  point: {
@@ -118,15 +124,6 @@ function getLayer(type, config) {
118
124
  return d[hexagonId];
119
125
  }
120
126
  })
121
- },
122
- mvt: {
123
- Layer: _geoLayers.MVTLayer,
124
- propMap: sharedPropMap,
125
- defaultProps: _objectSpread(_objectSpread({}, defaultProps), {}, {
126
- pointRadiusScale: 0.3,
127
- lineWidthScale: 2,
128
- uniqueIdProperty: 'geoid'
129
- })
130
127
  }
131
128
  }[type];
132
129
 
@@ -135,6 +132,24 @@ function getLayer(type, config) {
135
132
  return layer;
136
133
  }
137
134
 
135
+ function getTileLayer(dataset) {
136
+ var _dataset$data$tiles = (0, _slicedToArray2.default)(dataset.data.tiles, 1),
137
+ tileUrl = _dataset$data$tiles[0];
138
+
139
+ var formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || _carto.TILE_FORMATS.MVT;
140
+
141
+ return {
142
+ Layer: formatTiles === _carto.TILE_FORMATS.MVT ? _geoLayers.MVTLayer : _carto._CartoDynamicTileLayer,
143
+ propMap: sharedPropMap,
144
+ defaultProps: _objectSpread(_objectSpread({}, defaultProps), {}, {
145
+ pointRadiusScale: 0.3,
146
+ lineWidthScale: 2,
147
+ uniqueIdProperty: 'geoid',
148
+ formatTiles: formatTiles
149
+ })
150
+ };
151
+ }
152
+
138
153
  function domainFromAttribute(attribute, scaleType) {
139
154
  if (scaleType === 'ordinal' || scaleType === 'point') {
140
155
  return attribute.categories.map(function (c) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/layer-map.js"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","filled","opacity","strokeColor","stroked","thickness","radius","wireframe","RADIUS_DOWNSCALE","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusScale","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","b","getLayer","type","config","hexagonId","columns","hex_id","layer","Layer","GeoJsonLayer","propMap","outline","geojson","lineWidthScale","H3HexagonLayer","coverage","elevationScale","getHexagon","d","mvt","MVTLayer","uniqueIdProperty","assert","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","d0","d1","calculateDomain","data","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","round","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset"],"mappings":"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","sourcesContent":["import {extent} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\nimport {log} from '@deck.gl/core';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\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};\n\n// Kepler -> Deck.gl\nconst sharedPropMap = {\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n filled: 'filled',\n opacity: 'opacity',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst RADIUS_DOWNSCALE = 0.2;\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusScale: RADIUS_DOWNSCALE,\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a, b) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(type, config) {\n const hexagonId = config.columns?.hex_id;\n\n const layer = {\n point: {\n Layer: GeoJsonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {outline: 'stroked'}\n }),\n defaultProps\n },\n geojson: {\n Layer: GeoJsonLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, lineWidthScale: 2}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}\n }),\n defaultProps: {...defaultProps, getHexagon: d => d[hexagonId]}\n },\n mvt: {\n Layer: MVTLayer,\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n pointRadiusScale: 0.3,\n lineWidthScale: 2,\n uniqueIdProperty: 'geoid'\n }\n }\n }[type];\n\n log.assert(layer, `Unsupported layer type: ${type}`);\n\n return layer;\n}\n\nfunction domainFromAttribute(attribute, scaleType) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\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) {\n if (scaleType === 'ordinal') {\n return [...new Set(values)].sort();\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType) {\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);\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 ({properties}) => {\n return accessor(properties);\n };\n }\n return accessor;\n}\n\nexport function getColorAccessor({name}, scaleType, {colors}, opacity, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(colors);\n const alpha = opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n\n const accessor = properties => {\n const rgba = rgb(scale(properties[name]));\n return [rgba.r, rgba.g, rgba.b, alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(range);\n\n const accessor = properties => {\n return scale(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS = {\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}, 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 function getTextPixelOffsetAccessor({alignment, anchor, size}, radius) {\n const padding = 20;\n const signX = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const signY = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n const sizeOffset = alignment === 'center' ? 0 : size;\n\n const calculateOffset = r => {\n r = RADIUS_DOWNSCALE * r;\n return [signX * (r + padding), signY * (r + padding + sizeOffset)];\n };\n\n return typeof radius === 'function'\n ? d => {\n return calculateOffset(radius(d));\n }\n : calculateOffset(radius);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
1
+ {"version":3,"sources":["../../../src/api/layer-map.js"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","filled","opacity","strokeColor","stroked","thickness","radius","wireframe","RADIUS_DOWNSCALE","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusScale","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","b","getLayer","type","config","dataset","getTileLayer","hexagonId","columns","hex_id","layer","Layer","GeoJsonLayer","propMap","outline","geojson","lineWidthScale","H3HexagonLayer","coverage","elevationScale","getHexagon","d","assert","data","tiles","tileUrl","formatTiles","URL","searchParams","get","TILE_FORMATS","MVT","MVTLayer","_CartoDynamicTileLayer","uniqueIdProperty","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","round","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset"],"mappings":"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","sourcesContent":["import {extent} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\nimport {log} from '@deck.gl/core';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {_CartoDynamicTileLayer, TILE_FORMATS} from '@deck.gl/carto';\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};\n\n// Kepler -> Deck.gl\nconst sharedPropMap = {\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n filled: 'filled',\n opacity: 'opacity',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst RADIUS_DOWNSCALE = 0.2;\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusScale: RADIUS_DOWNSCALE,\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a, b) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(type, config, dataset) {\n if (type === 'mvt' || type === 'tileset') {\n return getTileLayer(dataset);\n }\n\n const hexagonId = config.columns?.hex_id;\n const layer = {\n point: {\n Layer: GeoJsonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {outline: 'stroked'}\n }),\n defaultProps\n },\n geojson: {\n Layer: GeoJsonLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, lineWidthScale: 2}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}\n }),\n defaultProps: {...defaultProps, getHexagon: d => d[hexagonId]}\n }\n }[type];\n\n log.assert(layer, `Unsupported layer type: ${type}`);\n\n return layer;\n}\n\nfunction getTileLayer(dataset) {\n const {\n data: {\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || TILE_FORMATS.MVT;\n\n return {\n Layer: formatTiles === TILE_FORMATS.MVT ? MVTLayer : _CartoDynamicTileLayer,\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n pointRadiusScale: 0.3,\n lineWidthScale: 2,\n uniqueIdProperty: 'geoid',\n formatTiles\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\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) {\n if (scaleType === 'ordinal') {\n return [...new Set(values)].sort();\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType) {\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);\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 ({properties}) => {\n return accessor(properties);\n };\n }\n return accessor;\n}\n\nexport function getColorAccessor({name}, scaleType, {colors}, opacity, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(colors);\n const alpha = opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n\n const accessor = properties => {\n const rgba = rgb(scale(properties[name]));\n return [rgba.r, rgba.g, rgba.b, alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(range);\n\n const accessor = properties => {\n return scale(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS = {\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}, 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 function getTextPixelOffsetAccessor({alignment, anchor, size}, radius) {\n const padding = 20;\n const signX = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const signY = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n const sizeOffset = alignment === 'center' ? 0 : size;\n\n const calculateOffset = r => {\n r = RADIUS_DOWNSCALE * r;\n return [signX * (r + padding), signY * (r + padding + sizeOffset)];\n };\n\n return typeof radius === 'function'\n ? d => {\n return calculateOffset(radius(d));\n }\n : calculateOffset(radius);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
@@ -479,7 +479,7 @@ function _fetchMapDataset2() {
479
479
  _yield$_fetchDataUrl2 = _context6.sent;
480
480
  url = _yield$_fetchDataUrl2.url;
481
481
  mapFormat = _yield$_fetchDataUrl2.mapFormat;
482
- cache = parseInt(new URLSearchParams(url).get('cache'), 10);
482
+ cache = parseInt(new URL(url).searchParams.get('cache'), 10);
483
483
 
484
484
  if (!(cache && dataset.cache === cache)) {
485
485
  _context6.next = 9;
@@ -549,7 +549,7 @@ function fetchMap(_x13) {
549
549
 
550
550
  function _fetchMap() {
551
551
  _fetchMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(_ref10) {
552
- var cartoMapId, clientId, credentials, autoRefresh, onNewData, defaultCredentials, localCreds, url, map, stopAutoRefresh, intervalId;
552
+ var cartoMapId, clientId, credentials, autoRefresh, onNewData, defaultCredentials, localCreds, accessToken, url, map, stopAutoRefresh, intervalId;
553
553
  return _regenerator.default.wrap(function _callee9$(_context9) {
554
554
  while (1) {
555
555
  switch (_context9.prev = _context9.next) {
@@ -557,6 +557,7 @@ function _fetchMap() {
557
557
  cartoMapId = _ref10.cartoMapId, clientId = _ref10.clientId, credentials = _ref10.credentials, autoRefresh = _ref10.autoRefresh, onNewData = _ref10.onNewData;
558
558
  defaultCredentials = (0, _config.getDefaultCredentials)();
559
559
  localCreds = _objectSpread(_objectSpread({}, defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials), credentials);
560
+ accessToken = localCreds.accessToken;
560
561
 
561
562
  _core.log.assert(cartoMapId, "Must define CARTO map id: fetchMap({cartoMapId: 'XXXX-XXXX-XXXX'})");
562
563
 
@@ -577,12 +578,13 @@ function _fetchMap() {
577
578
  }
578
579
 
579
580
  url = "".concat(localCreds.mapsUrl, "/public/").concat(cartoMapId);
580
- _context9.next = 11;
581
+ _context9.next = 12;
581
582
  return request({
582
- url: url
583
+ url: url,
584
+ accessToken: accessToken
583
585
  });
584
586
 
585
- case 11:
587
+ case 12:
586
588
  map = _context9.sent;
587
589
 
588
590
  if (autoRefresh) {
@@ -617,15 +619,15 @@ function _fetchMap() {
617
619
  };
618
620
  }
619
621
 
620
- _context9.next = 15;
622
+ _context9.next = 16;
621
623
  return fillInMapDatasets(map, clientId, credentials);
622
624
 
623
- case 15:
625
+ case 16:
624
626
  return _context9.abrupt("return", _objectSpread(_objectSpread({}, (0, _parseMap.parseMap)(map)), {
625
627
  stopAutoRefresh: stopAutoRefresh
626
628
  }));
627
629
 
628
- case 16:
630
+ case 17:
629
631
  case "end":
630
632
  return _context9.stop();
631
633
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-v3-client.js"],"names":["MAX_GET_LENGTH","DEFAULT_CLIENT","request","method","url","format","accessToken","body","headers","Accept","Authorization","fetch","response","Error","FORMATS","NDJSON","json","ok","dealWithError","error","rows","status","getParameters","type","source","geoColumn","columns","schema","clientId","parameters","push","sourceName","MAP_TYPES","QUERY","TABLE","join","mapInstantiation","connection","credentials","baseUrl","mapsUrl","length","JSON","stringify","q","client","getUrlFromMetadata","metadata","m","checkFetchLayerDataParameters","localCreds","log","assert","apiVersion","API_VERSIONS","V3","apiBaseUrl","fetchLayerData","_fetchDataUrl","mapFormat","data","result","defaultCredentials","prioritizedFormats","GEOJSON","TILEJSON","f","getData","deprecated","layerData","_fetchMapDataset","dataset","connectionName","cache","parseInt","URLSearchParams","get","fillInMapDatasets","datasets","token","promises","map","Promise","all","fetchMap","cartoMapId","autoRefresh","onNewData","intervalId","setInterval","changed","some","v","stopAutoRefresh","clearInterval"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Carto 3\n */\nimport {getDefaultCredentials, buildMapsUrlFromBase} from '../config';\nimport {API_VERSIONS, encodeParameter, FORMATS, MAP_TYPES} from './maps-api-common';\nimport {parseMap} from './parseMap';\nimport {log} from '@deck.gl/core';\n\nconst MAX_GET_LENGTH = 2048;\nconst DEFAULT_CLIENT = 'deck-gl-carto';\n\n/**\n * Request against Maps API\n */\nasync function request({method, url, format, accessToken, body}) {\n let response;\n\n const headers = {\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 /* eslint no-undef: \"error\" */\n response = await fetch(url, {\n method,\n headers,\n body\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n if (format === FORMATS.NDJSON) {\n return response;\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, error: json.error});\n }\n\n return json.rows ? json.rows : json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, error}) {\n switch (response.status) {\n case 400:\n throw new Error(`Bad request. ${error}`);\n case 401:\n case 403:\n throw new Error(`Unauthorized access. ${error}`);\n default:\n throw new Error(error);\n }\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction getParameters({type, source, geoColumn, columns, schema, clientId}) {\n const parameters = [encodeParameter('client', clientId || DEFAULT_CLIENT)];\n if (schema) {\n parameters.push(encodeParameter('schema', true));\n }\n\n const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';\n parameters.push(encodeParameter(sourceName, source));\n\n if (type === MAP_TYPES.TABLE) {\n if (geoColumn) {\n parameters.push(encodeParameter('geo_column', geoColumn));\n }\n if (columns) {\n parameters.push(encodeParameter('columns', columns.join(',')));\n }\n }\n\n return parameters.join('&');\n}\n\nexport async function mapInstantiation({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n schema,\n clientId\n}) {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema, clientId})}`;\n const {accessToken} = credentials;\n\n const format = 'json';\n\n if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {\n // need to be a POST request\n const body = JSON.stringify({\n q: source,\n client: clientId || DEFAULT_CLIENT\n });\n return await request({method: 'POST', url: baseUrl, format, accessToken, body});\n }\n\n return await request({url, format, accessToken});\n}\n\nfunction getUrlFromMetadata(metadata, format) {\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({type, source, connection, localCreds}) {\n log.assert(connection, 'Must define connection');\n log.assert(type, 'Must define a type');\n log.assert(source, 'Must define a source');\n\n log.assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n log.assert(localCreds.accessToken, 'Must define an accessToken');\n}\n\nexport async function fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema,\n clientId\n}) {\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 schema,\n clientId\n });\n\n const data = await request({url, format: mapFormat, accessToken});\n const result = {data, format: mapFormat};\n if (schema) {\n result.schema = metadata.schema;\n }\n\n return result;\n}\n\nasync function _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema,\n clientId\n}) {\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({type, source, connection, localCreds});\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 schema,\n clientId\n });\n let url;\n let mapFormat;\n\n if (format) {\n mapFormat = format;\n url = getUrlFromMetadata(metadata, format);\n log.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 }\n\n const {accessToken} = localCreds;\n return {url, accessToken, mapFormat, metadata};\n}\n\nexport async function getData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n clientId\n}) {\n log.deprecated('getData', 'fetchLayerData')();\n const layerData = await fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema: false,\n clientId\n });\n return layerData.data;\n}\n\n/* global clearInterval, setInterval, URLSearchParams */\nasync function _fetchMapDataset(dataset, accessToken, credentials, clientId) {\n // First fetch metadata\n const {connectionName: connection, source, type} = dataset;\n const {url, mapFormat} = await _fetchDataUrl({\n credentials: {...credentials, accessToken},\n connection,\n source,\n type,\n clientId\n });\n\n // Extract the last time the data changed\n const cache = parseInt(new URLSearchParams(url).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 data = await request({url, format: mapFormat, accessToken});\n dataset.data = data;\n return true;\n}\n\nasync function fillInMapDatasets({datasets, token}, clientId, credentials) {\n const promises = datasets.map(dataset => _fetchMapDataset(dataset, token, credentials, clientId));\n return await Promise.all(promises);\n}\n\nexport async function fetchMap({cartoMapId, clientId, credentials, autoRefresh, onNewData}) {\n const defaultCredentials = getDefaultCredentials();\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n };\n\n log.assert(cartoMapId, `Must define CARTO map id: fetchMap({cartoMapId: 'XXXX-XXXX-XXXX'})`);\n\n log.assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n if (autoRefresh || onNewData) {\n log.assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n log.assert(typeof onNewData === 'function', '`onNewData` must be a function');\n log.assert(autoRefresh > 0, '`autoRefresh` must be a positive number');\n }\n\n const url = `${localCreds.mapsUrl}/public/${cartoMapId}`;\n const map = await request({url});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n let stopAutoRefresh;\n if (autoRefresh) {\n const intervalId = setInterval(async () => {\n const changed = await fillInMapDatasets(map, clientId, credentials);\n if (changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n stopAutoRefresh = () => {\n clearInterval(intervalId);\n };\n }\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, credentials);\n return {\n ...parseMap(map),\n ...{stopAutoRefresh}\n };\n}\n"],"file":"maps-v3-client.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-v3-client.js"],"names":["MAX_GET_LENGTH","DEFAULT_CLIENT","request","method","url","format","accessToken","body","headers","Accept","Authorization","fetch","response","Error","FORMATS","NDJSON","json","ok","dealWithError","error","rows","status","getParameters","type","source","geoColumn","columns","schema","clientId","parameters","push","sourceName","MAP_TYPES","QUERY","TABLE","join","mapInstantiation","connection","credentials","baseUrl","mapsUrl","length","JSON","stringify","q","client","getUrlFromMetadata","metadata","m","checkFetchLayerDataParameters","localCreds","log","assert","apiVersion","API_VERSIONS","V3","apiBaseUrl","fetchLayerData","_fetchDataUrl","mapFormat","data","result","defaultCredentials","prioritizedFormats","GEOJSON","TILEJSON","f","getData","deprecated","layerData","_fetchMapDataset","dataset","connectionName","cache","parseInt","URL","searchParams","get","fillInMapDatasets","datasets","token","promises","map","Promise","all","fetchMap","cartoMapId","autoRefresh","onNewData","intervalId","setInterval","changed","some","v","stopAutoRefresh","clearInterval"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Carto 3\n */\nimport {getDefaultCredentials, buildMapsUrlFromBase} from '../config';\nimport {API_VERSIONS, encodeParameter, FORMATS, MAP_TYPES} from './maps-api-common';\nimport {parseMap} from './parseMap';\nimport {log} from '@deck.gl/core';\n\nconst MAX_GET_LENGTH = 2048;\nconst DEFAULT_CLIENT = 'deck-gl-carto';\n\n/**\n * Request against Maps API\n */\nasync function request({method, url, format, accessToken, body}) {\n let response;\n\n const headers = {\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 /* eslint no-undef: \"error\" */\n response = await fetch(url, {\n method,\n headers,\n body\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n if (format === FORMATS.NDJSON) {\n return response;\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, error: json.error});\n }\n\n return json.rows ? json.rows : json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, error}) {\n switch (response.status) {\n case 400:\n throw new Error(`Bad request. ${error}`);\n case 401:\n case 403:\n throw new Error(`Unauthorized access. ${error}`);\n default:\n throw new Error(error);\n }\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction getParameters({type, source, geoColumn, columns, schema, clientId}) {\n const parameters = [encodeParameter('client', clientId || DEFAULT_CLIENT)];\n if (schema) {\n parameters.push(encodeParameter('schema', true));\n }\n\n const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';\n parameters.push(encodeParameter(sourceName, source));\n\n if (type === MAP_TYPES.TABLE) {\n if (geoColumn) {\n parameters.push(encodeParameter('geo_column', geoColumn));\n }\n if (columns) {\n parameters.push(encodeParameter('columns', columns.join(',')));\n }\n }\n\n return parameters.join('&');\n}\n\nexport async function mapInstantiation({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n schema,\n clientId\n}) {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema, clientId})}`;\n const {accessToken} = credentials;\n\n const format = 'json';\n\n if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {\n // need to be a POST request\n const body = JSON.stringify({\n q: source,\n client: clientId || DEFAULT_CLIENT\n });\n return await request({method: 'POST', url: baseUrl, format, accessToken, body});\n }\n\n return await request({url, format, accessToken});\n}\n\nfunction getUrlFromMetadata(metadata, format) {\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({type, source, connection, localCreds}) {\n log.assert(connection, 'Must define connection');\n log.assert(type, 'Must define a type');\n log.assert(source, 'Must define a source');\n\n log.assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n log.assert(localCreds.accessToken, 'Must define an accessToken');\n}\n\nexport async function fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema,\n clientId\n}) {\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 schema,\n clientId\n });\n\n const data = await request({url, format: mapFormat, accessToken});\n const result = {data, format: mapFormat};\n if (schema) {\n result.schema = metadata.schema;\n }\n\n return result;\n}\n\nasync function _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema,\n clientId\n}) {\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({type, source, connection, localCreds});\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 schema,\n clientId\n });\n let url;\n let mapFormat;\n\n if (format) {\n mapFormat = format;\n url = getUrlFromMetadata(metadata, format);\n log.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 }\n\n const {accessToken} = localCreds;\n return {url, accessToken, mapFormat, metadata};\n}\n\nexport async function getData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n clientId\n}) {\n log.deprecated('getData', 'fetchLayerData')();\n const layerData = await fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema: false,\n clientId\n });\n return layerData.data;\n}\n\n/* global clearInterval, setInterval, URL */\nasync function _fetchMapDataset(dataset, accessToken, credentials, clientId) {\n // First fetch metadata\n const {connectionName: connection, source, type} = dataset;\n const {url, mapFormat} = await _fetchDataUrl({\n credentials: {...credentials, accessToken},\n connection,\n source,\n type,\n clientId\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 data = await request({url, format: mapFormat, accessToken});\n dataset.data = data;\n return true;\n}\n\nasync function fillInMapDatasets({datasets, token}, clientId, credentials) {\n const promises = datasets.map(dataset => _fetchMapDataset(dataset, token, credentials, clientId));\n return await Promise.all(promises);\n}\n\nexport async function fetchMap({cartoMapId, clientId, credentials, autoRefresh, onNewData}) {\n const defaultCredentials = getDefaultCredentials();\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n };\n const {accessToken} = localCreds;\n\n log.assert(cartoMapId, `Must define CARTO map id: fetchMap({cartoMapId: 'XXXX-XXXX-XXXX'})`);\n\n log.assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n if (autoRefresh || onNewData) {\n log.assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n log.assert(typeof onNewData === 'function', '`onNewData` must be a function');\n log.assert(autoRefresh > 0, '`autoRefresh` must be a positive number');\n }\n\n const url = `${localCreds.mapsUrl}/public/${cartoMapId}`;\n const map = await request({url, accessToken});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n let stopAutoRefresh;\n if (autoRefresh) {\n const intervalId = setInterval(async () => {\n const changed = await fillInMapDatasets(map, clientId, credentials);\n if (changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n stopAutoRefresh = () => {\n clearInterval(intervalId);\n };\n }\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, credentials);\n return {\n ...parseMap(map),\n ...{stopAutoRefresh}\n };\n}\n"],"file":"maps-v3-client.js"}
@@ -54,11 +54,6 @@ function parseMap(json) {
54
54
  visualChannels = _ref.visualChannels;
55
55
 
56
56
  try {
57
- var _getLayer = (0, _layerMap.getLayer)(type, config),
58
- Layer = _getLayer.Layer,
59
- propMap = _getLayer.propMap,
60
- defaultProps = _getLayer.defaultProps;
61
-
62
57
  var dataId = config.dataId;
63
58
  var dataset = datasets.find(function (d) {
64
59
  return d.id === dataId;
@@ -70,6 +65,11 @@ function parseMap(json) {
70
65
 
71
66
  _core.log.assert(data, "No data loaded for dataId: ".concat(dataId));
72
67
 
68
+ var _getLayer = (0, _layerMap.getLayer)(type, config, dataset),
69
+ Layer = _getLayer.Layer,
70
+ propMap = _getLayer.propMap,
71
+ defaultProps = _getLayer.defaultProps;
72
+
73
73
  return new Layer(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
74
74
  id: id,
75
75
  data: data
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/parseMap.js"],"names":["parseMap","json","keplerMapConfig","datasets","log","assert","version","config","mapState","mapStyle","visState","layers","layerBlending","interactionConfig","id","title","description","createdAt","updatedAt","initialViewState","extractTextLayers","reverse","map","type","visualChannels","Layer","propMap","defaultProps","dataId","dataset","find","d","data","createBlendingProps","textLabel","createInteractionProps","createStyleProps","createChannelProps","e","error","message","undefined","rest","configRest","filter","t","field","name","label","visConfig","opacity","parameters","blendFunc","blendEquation","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","result","highlightColor","enable3d","colorField","colorScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabelField","getFillColor","colorRange","strokeOpacity","getLineColor","strokeColorRange","getElevation","heightRange","sizeRange","getPointRadius","radiusRange","getText","pointType","radius","getTextPixelOffset"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n getLayer,\n getColorAccessor,\n getSizeAccessor,\n getTextAccessor,\n getTextPixelOffsetAccessor\n} from './layer-map';\nimport {_flatten as flatten, log} from '@deck.gl/core';\n\nexport function parseMap(json) {\n const {keplerMapConfig, datasets} = json;\n log.assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');\n const {mapState, mapStyle} = keplerMapConfig.config;\n const {layers, layerBlending, interactionConfig} = keplerMapConfig.config.visState;\n\n return {\n id: json.id,\n title: json.title,\n description: json.description,\n createdAt: json.createdAt,\n updatedAt: json.updatedAt,\n initialViewState: mapState,\n mapStyle,\n layers: extractTextLayers(layers.reverse()).map(({id, type, config, visualChannels}) => {\n try {\n const {Layer, propMap, defaultProps} = getLayer(type, config);\n const {dataId} = config;\n const dataset = datasets.find(d => d.id === dataId);\n log.assert(dataset, `No dataset matching dataId: ${dataId}`);\n const {data} = dataset;\n log.assert(data, `No data loaded for dataId: ${dataId}`);\n return new Layer({\n id,\n data,\n ...defaultProps,\n ...createBlendingProps(layerBlending),\n ...(!config.textLabel && createInteractionProps(interactionConfig)),\n ...createStyleProps(config, propMap),\n ...createChannelProps(visualChannels, type, config, data) // Must come after style\n });\n } catch (e) {\n log.error(e.message)();\n return undefined;\n }\n })\n };\n}\n\nfunction extractTextLayers(layers) {\n return flatten(\n layers.map(({id, config, ...rest}) => {\n const {textLabel, ...configRest} = config;\n return [\n // Original layer without textLabel\n {id, config: configRest, ...rest},\n\n // One layer per valid text label, with full opacity\n ...textLabel\n .filter(t => t.field)\n .map(t => {\n return {\n id: `${id}-label-${t.field.name}`,\n config: {\n textLabel: t,\n ...configRest,\n label: `${config.label}-label-${t.field.name}`,\n visConfig: {...configRest.visConfig, opacity: 1}\n },\n ...rest\n };\n })\n ];\n })\n );\n}\n\nfunction createBlendingProps(layerBlending) {\n if (layerBlending === 'additive') {\n return {\n parameters: {\n blendFunc: [GL.SRC_ALPHA, GL.DST_ALPHA],\n blendEquation: GL.FUNC_ADD\n }\n };\n } else if (layerBlending === 'subtractive') {\n return {\n parameters: {\n blendFunc: [GL.ONE, GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.DST_ALPHA],\n blendEquation: [GL.FUNC_SUBTRACT, GL.FUNC_ADD]\n }\n };\n }\n\n return {};\n}\n\nfunction createInteractionProps(interactionConfig) {\n const pickable = interactionConfig && interactionConfig.tooltip.enabled;\n return {\n autoHighlight: pickable,\n pickable\n };\n}\n\nfunction mapProps(source, target, mapping) {\n for (const sourceKey in mapping) {\n const sourceValue = source[sourceKey];\n const targetKey = mapping[sourceKey];\n if (sourceValue === undefined) {\n // eslint-disable-next-line no-continue\n continue;\n }\n if (typeof targetKey === 'string') {\n target[targetKey] = sourceValue;\n } else if (typeof targetKey === 'object') {\n // Nested definition, recurse down one level\n mapProps(sourceValue, target, targetKey);\n }\n }\n}\n\nfunction createStyleProps(config, mapping) {\n const result = {};\n mapProps(config, result, mapping);\n result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];\n return result;\n}\n\n/* eslint-disable complexity */\nfunction createChannelProps(visualChannels, type, config, data) {\n const {colorField, colorScale, sizeField, sizeScale, strokeColorField, strokeColorScale} =\n visualChannels;\n let {heightField, heightScale} = visualChannels;\n if (type === 'hexagonId') {\n heightField = sizeField;\n heightScale = sizeScale;\n }\n const {textLabel, visConfig} = config;\n const result = {};\n const textLabelField = textLabel && textLabel.field;\n if (colorField) {\n result.getFillColor = getColorAccessor(\n colorField,\n colorScale,\n visConfig.colorRange,\n 1, // Rely on layer opacity\n data\n );\n }\n if (strokeColorField) {\n const opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : 1;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n strokeColorScale,\n visConfig.strokeColorRange,\n opacity,\n data\n );\n }\n if (heightField) {\n result.getElevation = getSizeAccessor(\n heightField,\n heightScale,\n visConfig.heightRange || visConfig.sizeRange,\n data\n );\n }\n if (sizeField) {\n result.getPointRadius = getSizeAccessor(\n sizeField,\n sizeScale,\n visConfig.radiusRange || visConfig.sizeRange,\n data\n );\n }\n if (textLabelField) {\n result.getText = getTextAccessor(textLabelField, data);\n result.pointType = 'text';\n const radius = result.getPointRadius || visConfig.radius;\n result.getTextPixelOffset = getTextPixelOffsetAccessor(textLabel, radius);\n }\n\n return result;\n}\n"],"file":"parseMap.js"}
1
+ {"version":3,"sources":["../../../src/api/parseMap.js"],"names":["parseMap","json","keplerMapConfig","datasets","log","assert","version","config","mapState","mapStyle","visState","layers","layerBlending","interactionConfig","id","title","description","createdAt","updatedAt","initialViewState","extractTextLayers","reverse","map","type","visualChannels","dataId","dataset","find","d","data","Layer","propMap","defaultProps","createBlendingProps","textLabel","createInteractionProps","createStyleProps","createChannelProps","e","error","message","undefined","rest","configRest","filter","t","field","name","label","visConfig","opacity","parameters","blendFunc","blendEquation","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","result","highlightColor","enable3d","colorField","colorScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabelField","getFillColor","colorRange","strokeOpacity","getLineColor","strokeColorRange","getElevation","heightRange","sizeRange","getPointRadius","radiusRange","getText","pointType","radius","getTextPixelOffset"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n getLayer,\n getColorAccessor,\n getSizeAccessor,\n getTextAccessor,\n getTextPixelOffsetAccessor\n} from './layer-map';\nimport {_flatten as flatten, log} from '@deck.gl/core';\n\nexport function parseMap(json) {\n const {keplerMapConfig, datasets} = json;\n log.assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');\n const {mapState, mapStyle} = keplerMapConfig.config;\n const {layers, layerBlending, interactionConfig} = keplerMapConfig.config.visState;\n\n return {\n id: json.id,\n title: json.title,\n description: json.description,\n createdAt: json.createdAt,\n updatedAt: json.updatedAt,\n initialViewState: mapState,\n mapStyle,\n layers: extractTextLayers(layers.reverse()).map(({id, type, config, visualChannels}) => {\n try {\n const {dataId} = config;\n const dataset = datasets.find(d => d.id === dataId);\n log.assert(dataset, `No dataset matching dataId: ${dataId}`);\n const {data} = dataset;\n log.assert(data, `No data loaded for dataId: ${dataId}`);\n const {Layer, propMap, defaultProps} = getLayer(type, config, dataset);\n return new Layer({\n id,\n data,\n ...defaultProps,\n ...createBlendingProps(layerBlending),\n ...(!config.textLabel && createInteractionProps(interactionConfig)),\n ...createStyleProps(config, propMap),\n ...createChannelProps(visualChannels, type, config, data) // Must come after style\n });\n } catch (e) {\n log.error(e.message)();\n return undefined;\n }\n })\n };\n}\n\nfunction extractTextLayers(layers) {\n return flatten(\n layers.map(({id, config, ...rest}) => {\n const {textLabel, ...configRest} = config;\n return [\n // Original layer without textLabel\n {id, config: configRest, ...rest},\n\n // One layer per valid text label, with full opacity\n ...textLabel\n .filter(t => t.field)\n .map(t => {\n return {\n id: `${id}-label-${t.field.name}`,\n config: {\n textLabel: t,\n ...configRest,\n label: `${config.label}-label-${t.field.name}`,\n visConfig: {...configRest.visConfig, opacity: 1}\n },\n ...rest\n };\n })\n ];\n })\n );\n}\n\nfunction createBlendingProps(layerBlending) {\n if (layerBlending === 'additive') {\n return {\n parameters: {\n blendFunc: [GL.SRC_ALPHA, GL.DST_ALPHA],\n blendEquation: GL.FUNC_ADD\n }\n };\n } else if (layerBlending === 'subtractive') {\n return {\n parameters: {\n blendFunc: [GL.ONE, GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.DST_ALPHA],\n blendEquation: [GL.FUNC_SUBTRACT, GL.FUNC_ADD]\n }\n };\n }\n\n return {};\n}\n\nfunction createInteractionProps(interactionConfig) {\n const pickable = interactionConfig && interactionConfig.tooltip.enabled;\n return {\n autoHighlight: pickable,\n pickable\n };\n}\n\nfunction mapProps(source, target, mapping) {\n for (const sourceKey in mapping) {\n const sourceValue = source[sourceKey];\n const targetKey = mapping[sourceKey];\n if (sourceValue === undefined) {\n // eslint-disable-next-line no-continue\n continue;\n }\n if (typeof targetKey === 'string') {\n target[targetKey] = sourceValue;\n } else if (typeof targetKey === 'object') {\n // Nested definition, recurse down one level\n mapProps(sourceValue, target, targetKey);\n }\n }\n}\n\nfunction createStyleProps(config, mapping) {\n const result = {};\n mapProps(config, result, mapping);\n result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];\n return result;\n}\n\n/* eslint-disable complexity */\nfunction createChannelProps(visualChannels, type, config, data) {\n const {colorField, colorScale, sizeField, sizeScale, strokeColorField, strokeColorScale} =\n visualChannels;\n let {heightField, heightScale} = visualChannels;\n if (type === 'hexagonId') {\n heightField = sizeField;\n heightScale = sizeScale;\n }\n const {textLabel, visConfig} = config;\n const result = {};\n const textLabelField = textLabel && textLabel.field;\n if (colorField) {\n result.getFillColor = getColorAccessor(\n colorField,\n colorScale,\n visConfig.colorRange,\n 1, // Rely on layer opacity\n data\n );\n }\n if (strokeColorField) {\n const opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : 1;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n strokeColorScale,\n visConfig.strokeColorRange,\n opacity,\n data\n );\n }\n if (heightField) {\n result.getElevation = getSizeAccessor(\n heightField,\n heightScale,\n visConfig.heightRange || visConfig.sizeRange,\n data\n );\n }\n if (sizeField) {\n result.getPointRadius = getSizeAccessor(\n sizeField,\n sizeScale,\n visConfig.radiusRange || visConfig.sizeRange,\n data\n );\n }\n if (textLabelField) {\n result.getText = getTextAccessor(textLabelField, data);\n result.pointType = 'text';\n const radius = result.getPointRadius || visConfig.radius;\n result.getTextPixelOffset = getTextPixelOffsetAccessor(textLabel, radius);\n }\n\n return result;\n}\n"],"file":"parseMap.js"}