@deck.gl/carto 8.7.0-alpha.1 → 8.7.0-alpha.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 (62) hide show
  1. package/dist/dist.dev.js +1521 -1700
  2. package/dist/es5/api/layer-map.js +4 -3
  3. package/dist/es5/api/layer-map.js.map +1 -1
  4. package/dist/es5/api/maps-client.js +2 -2
  5. package/dist/es5/api/maps-client.js.map +1 -1
  6. package/dist/es5/api/maps-v3-client.js +34 -27
  7. package/dist/es5/api/maps-v3-client.js.map +1 -1
  8. package/dist/es5/api/parseMap.js +9 -13
  9. package/dist/es5/api/parseMap.js.map +1 -1
  10. package/dist/es5/config.js +15 -24
  11. package/dist/es5/config.js.map +1 -1
  12. package/dist/es5/index.js +0 -16
  13. package/dist/es5/index.js.map +1 -1
  14. package/dist/es5/layers/carto-layer.js +50 -51
  15. package/dist/es5/layers/carto-layer.js.map +1 -1
  16. package/dist/es5/style/color-bins-style.js +6 -2
  17. package/dist/es5/style/color-bins-style.js.map +1 -1
  18. package/dist/es5/style/color-categories-style.js +7 -3
  19. package/dist/es5/style/color-categories-style.js.map +1 -1
  20. package/dist/es5/style/color-continuous-style.js +6 -2
  21. package/dist/es5/style/color-continuous-style.js.map +1 -1
  22. package/dist/es5/style/palette.js +6 -2
  23. package/dist/es5/style/palette.js.map +1 -1
  24. package/dist/esm/api/layer-map.js +3 -2
  25. package/dist/esm/api/layer-map.js.map +1 -1
  26. package/dist/esm/api/maps-client.js +1 -1
  27. package/dist/esm/api/maps-client.js.map +1 -1
  28. package/dist/esm/api/maps-v3-client.js +23 -13
  29. package/dist/esm/api/maps-v3-client.js.map +1 -1
  30. package/dist/esm/api/parseMap.js +3 -10
  31. package/dist/esm/api/parseMap.js.map +1 -1
  32. package/dist/esm/config.js +11 -26
  33. package/dist/esm/config.js.map +1 -1
  34. package/dist/esm/index.js +0 -2
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/layers/carto-layer.js +28 -28
  37. package/dist/esm/layers/carto-layer.js.map +1 -1
  38. package/dist/esm/style/color-bins-style.js +1 -1
  39. package/dist/esm/style/color-bins-style.js.map +1 -1
  40. package/dist/esm/style/color-continuous-style.js +1 -1
  41. package/dist/esm/style/color-continuous-style.js.map +1 -1
  42. package/dist.min.js +4 -4
  43. package/package.json +7 -7
  44. package/src/api/layer-map.js +3 -2
  45. package/src/api/maps-client.js +3 -7
  46. package/src/api/maps-v3-client.js +24 -13
  47. package/src/api/parseMap.js +17 -26
  48. package/src/config.js +8 -39
  49. package/src/index.js +0 -2
  50. package/src/layers/carto-layer.js +17 -23
  51. package/src/style/color-bins-style.js +2 -4
  52. package/src/style/color-continuous-style.js +2 -4
  53. package/dist/es5/layers/carto-bqtiler-layer.js +0 -65
  54. package/dist/es5/layers/carto-bqtiler-layer.js.map +0 -1
  55. package/dist/es5/layers/carto-sql-layer.js +0 -66
  56. package/dist/es5/layers/carto-sql-layer.js.map +0 -1
  57. package/dist/esm/layers/carto-bqtiler-layer.js +0 -16
  58. package/dist/esm/layers/carto-bqtiler-layer.js.map +0 -1
  59. package/dist/esm/layers/carto-sql-layer.js +0 -17
  60. package/dist/esm/layers/carto-sql-layer.js.map +0 -1
  61. package/src/layers/carto-bqtiler-layer.js +0 -21
  62. package/src/layers/carto-sql-layer.js +0 -22
@@ -29,7 +29,7 @@ var _geoLayers = require("@deck.gl/geo-layers");
29
29
 
30
30
  var _layers = require("@deck.gl/layers");
31
31
 
32
- 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; }
32
+ 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; }
33
33
 
34
34
  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; }
35
35
 
@@ -45,6 +45,7 @@ var SCALE_FUNCS = {
45
45
  var sharedPropMap = {
46
46
  color: 'getFillColor',
47
47
  isVisible: 'visible',
48
+ label: 'cartoLabel',
48
49
  textLabel: {
49
50
  alignment: 'getTextAlignmentBaseline',
50
51
  anchor: 'getTextAnchor',
@@ -159,7 +160,7 @@ function calculateDomain(data, name, scaleType) {
159
160
  return properties[name];
160
161
  });
161
162
  return domainFromValues(values, scaleType);
162
- } else if (Array.isArray(data) && data[0][name]) {
163
+ } else if (Array.isArray(data) && data[0][name] !== undefined) {
163
164
  var _values = data.map(function (properties) {
164
165
  return properties[name];
165
166
  });
@@ -187,7 +188,7 @@ function getColorAccessor(_ref3, scaleType, _ref4, opacity, data) {
187
188
  var scale = SCALE_FUNCS[scaleType]();
188
189
  scale.domain(calculateDomain(data, name, scaleType));
189
190
  scale.range(colors);
190
- var alpha = opacity !== undefined ? 255 * Math.pow(opacity, 1 / 2.2) : 255;
191
+ var alpha = opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;
191
192
 
192
193
  var accessor = function accessor(properties) {
193
194
  var rgba = (0, _d3Color.rgb)(scale(properties[name]));
@@ -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","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","LAYER_MAP","Layer","GeoJsonLayer","propMap","outline","geojson","lineWidthScale","hexagonId","H3HexagonLayer","coverage","elevationScale","getHexagon","d","h3","mvt","MVTLayer","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","calculateDomain","data","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor","type","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 {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 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 const LAYER_MAP = {\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.h3}\n },\n mvt: {\n Layer: MVTLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, pointRadiusScale: 0.3, lineWidthScale: 2}\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 }\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]) {\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 ? 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"],"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","LAYER_MAP","Layer","GeoJsonLayer","propMap","outline","geojson","lineWidthScale","hexagonId","H3HexagonLayer","coverage","elevationScale","getHexagon","d","h3","mvt","MVTLayer","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","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","type","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 {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 const LAYER_MAP = {\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.h3}\n },\n mvt: {\n Layer: MVTLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, pointRadiusScale: 0.3, lineWidthScale: 2}\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 }\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"],"file":"layer-map.js"}
@@ -18,7 +18,7 @@ var _config = require("../config");
18
18
 
19
19
  var _mapsApiCommon = require("./maps-api-common");
20
20
 
21
- 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; }
21
+ 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; }
22
22
 
23
23
  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; }
24
24
 
@@ -88,7 +88,7 @@ function _getDataV() {
88
88
  return _context.abrupt("return", _context.sent);
89
89
 
90
90
  case 19:
91
- throw new Error("Invalid maps API version. It shoud be ".concat(_mapsApiCommon.API_VERSIONS.V1, " or ").concat(_mapsApiCommon.API_VERSIONS.V2));
91
+ throw new Error("Invalid maps API version. It should be ".concat(_mapsApiCommon.API_VERSIONS.V1, " or ").concat(_mapsApiCommon.API_VERSIONS.V2));
92
92
 
93
93
  case 20:
94
94
  case "end":
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-client.js"],"names":["CONNECTIONS","BIGQUERY","CARTO","BUFFER_SIZE","TILE_EXTENT","getDataV2","type","source","credentials","defaultCredentials","apiVersion","localCreds","defaultClassicCredentials","mapsUrl","DEFAULT_MAPS_URL_FORMAT","connection","API_VERSIONS","V1","V2","mapConfig","createMapConfig","url","buildURLMapsAPIv1","request","layergroup","metadata","tilejson","vector","buildURLMapsAPIv2","Error","fetch","headers","Accept","response","json","ok","dealWithError","status","username","apiKey","e","JSON","stringify","errors","error","initURLParameters","encodedApiKey","encodedClient","parameters","cfg","join","mapsApiType","MAP_TYPES","QUERY","replace","DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","region","sql","version","buffersize","mvt","layers","options","vector_extent"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Maps API v1 and Maps API v2\n */\nimport {defaultClassicCredentials, getDefaultCredentials} from '../config';\nimport {\n API_VERSIONS,\n DEFAULT_MAPS_URL_FORMAT,\n DEFAULT_REGION_COMPONENT_IN_URL,\n DEFAULT_USER_COMPONENT_IN_URL,\n encodeParameter,\n MAP_TYPES\n} from './maps-api-common';\n\nexport const CONNECTIONS = {\n BIGQUERY: 'bigquery',\n CARTO: 'carto'\n};\n\nconst BUFFER_SIZE = 16;\nconst TILE_EXTENT = 4096;\n\n/**\n * Obtain a TileJson from Maps API v1 and v2\n */\nexport async function getDataV2({type, source, credentials}) {\n const defaultCredentials = getDefaultCredentials();\n const apiVersion = (credentials && credentials.apiVersion) || defaultCredentials.apiVersion;\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...defaultClassicCredentials,\n ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),\n ...credentials\n };\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = DEFAULT_MAPS_URL_FORMAT[apiVersion];\n }\n\n let url;\n\n const connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n // Maps API v1\n const mapConfig = createMapConfig(source);\n url = buildURLMapsAPIv1({mapConfig, credentials: localCreds});\n const layergroup = await request({url, credentials: localCreds});\n return layergroup.metadata.tilejson.vector;\n\n case API_VERSIONS.V2:\n // Maps API v2\n url = buildURLMapsAPIv2({connection, type, source, credentials: localCreds});\n return await request({url, credentials: localCreds});\n\n default:\n throw new Error(\n `Invalid maps API version. It shoud be ${API_VERSIONS.V1} or ${API_VERSIONS.V2}`\n );\n }\n}\n\n/**\n * Request against Maps API\n */\nasync function request({url, credentials}) {\n let response;\n\n try {\n /* global fetch */\n /* eslint no-undef: \"error\" */\n response = await fetch(url, {\n headers: {\n Accept: 'application/json'\n }\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, json, credentials});\n }\n\n return json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, json, credentials}) {\n switch (response.status) {\n case 401:\n throw new Error(\n `Unauthorized access to Maps API: invalid combination of user ('${\n credentials.username\n }') and apiKey ('${credentials.apiKey}')`\n );\n case 403:\n throw new Error(\n `Unauthorized access to dataset: the provided apiKey('${\n credentials.apiKey\n }') doesn't provide access to the requested data`\n );\n\n default:\n const e =\n credentials.apiVersion === API_VERSIONS.V1 ? JSON.stringify(json.errors) : json.error;\n throw new Error(e);\n }\n}\n\nfunction initURLParameters(credentials) {\n const encodedApiKey = encodeParameter('api_key', credentials.apiKey);\n const encodedClient = encodeParameter('client', `deck-gl-carto`);\n return [encodedApiKey, encodedClient];\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction buildURLMapsAPIv1({mapConfig, credentials}) {\n const parameters = initURLParameters(credentials);\n const cfg = JSON.stringify(mapConfig);\n return `${mapsUrl(credentials)}?${parameters.join('&')}&${encodeParameter('config', cfg)}`;\n}\n\nfunction buildURLMapsAPIv2({connection, type, source, credentials}) {\n const parameters = initURLParameters(credentials);\n // Query type is mapped to 'sql' at maps api v1\n const mapsApiType = type === MAP_TYPES.QUERY ? 'sql' : type;\n let url = `${mapsUrl(credentials)}/${connection}/${mapsApiType}?`;\n url += `${encodeParameter('source', source)}&format=tilejson&${parameters.join('&')}`;\n return url;\n}\n\n/**\n * Prepare a url valid for the specified user\n */\nfunction mapsUrl(credentials) {\n return credentials.mapsUrl\n .replace(DEFAULT_USER_COMPONENT_IN_URL, credentials.username)\n .replace(DEFAULT_REGION_COMPONENT_IN_URL, credentials.region);\n}\n\nfunction createMapConfig(sql) {\n return {\n version: '1.3.1',\n buffersize: {\n mvt: BUFFER_SIZE\n },\n layers: [\n {\n type: 'mapnik',\n options: {\n sql,\n vector_extent: TILE_EXTENT\n }\n }\n ]\n };\n}\n"],"file":"maps-client.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-client.js"],"names":["CONNECTIONS","BIGQUERY","CARTO","BUFFER_SIZE","TILE_EXTENT","getDataV2","type","source","credentials","defaultCredentials","apiVersion","localCreds","defaultClassicCredentials","mapsUrl","DEFAULT_MAPS_URL_FORMAT","connection","API_VERSIONS","V1","V2","mapConfig","createMapConfig","url","buildURLMapsAPIv1","request","layergroup","metadata","tilejson","vector","buildURLMapsAPIv2","Error","fetch","headers","Accept","response","json","ok","dealWithError","status","username","apiKey","e","JSON","stringify","errors","error","initURLParameters","encodedApiKey","encodedClient","parameters","cfg","join","mapsApiType","MAP_TYPES","QUERY","replace","DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","region","sql","version","buffersize","mvt","layers","options","vector_extent"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Maps API v1 and Maps API v2\n */\nimport {defaultClassicCredentials, getDefaultCredentials} from '../config';\nimport {\n API_VERSIONS,\n DEFAULT_MAPS_URL_FORMAT,\n DEFAULT_REGION_COMPONENT_IN_URL,\n DEFAULT_USER_COMPONENT_IN_URL,\n encodeParameter,\n MAP_TYPES\n} from './maps-api-common';\n\nexport const CONNECTIONS = {\n BIGQUERY: 'bigquery',\n CARTO: 'carto'\n};\n\nconst BUFFER_SIZE = 16;\nconst TILE_EXTENT = 4096;\n\n/**\n * Obtain a TileJson from Maps API v1 and v2\n */\nexport async function getDataV2({type, source, credentials}) {\n const defaultCredentials = getDefaultCredentials();\n const apiVersion = (credentials && credentials.apiVersion) || defaultCredentials.apiVersion;\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...defaultClassicCredentials,\n ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),\n ...credentials\n };\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = DEFAULT_MAPS_URL_FORMAT[apiVersion];\n }\n\n let url;\n\n const connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n // Maps API v1\n const mapConfig = createMapConfig(source);\n url = buildURLMapsAPIv1({mapConfig, credentials: localCreds});\n const layergroup = await request({url, credentials: localCreds});\n return layergroup.metadata.tilejson.vector;\n\n case API_VERSIONS.V2:\n // Maps API v2\n url = buildURLMapsAPIv2({connection, type, source, credentials: localCreds});\n return await request({url, credentials: localCreds});\n\n default:\n throw new Error(\n `Invalid maps API version. It should be ${API_VERSIONS.V1} or ${API_VERSIONS.V2}`\n );\n }\n}\n\n/**\n * Request against Maps API\n */\nasync function request({url, credentials}) {\n let response;\n\n try {\n /* global fetch */\n /* eslint no-undef: \"error\" */\n response = await fetch(url, {\n headers: {\n Accept: 'application/json'\n }\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, json, credentials});\n }\n\n return json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, json, credentials}) {\n switch (response.status) {\n case 401:\n throw new Error(\n `Unauthorized access to Maps API: invalid combination of user ('${credentials.username}') and apiKey ('${credentials.apiKey}')`\n );\n case 403:\n throw new Error(\n `Unauthorized access to dataset: the provided apiKey('${credentials.apiKey}') doesn't provide access to the requested data`\n );\n\n default:\n const e =\n credentials.apiVersion === API_VERSIONS.V1 ? JSON.stringify(json.errors) : json.error;\n throw new Error(e);\n }\n}\n\nfunction initURLParameters(credentials) {\n const encodedApiKey = encodeParameter('api_key', credentials.apiKey);\n const encodedClient = encodeParameter('client', `deck-gl-carto`);\n return [encodedApiKey, encodedClient];\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction buildURLMapsAPIv1({mapConfig, credentials}) {\n const parameters = initURLParameters(credentials);\n const cfg = JSON.stringify(mapConfig);\n return `${mapsUrl(credentials)}?${parameters.join('&')}&${encodeParameter('config', cfg)}`;\n}\n\nfunction buildURLMapsAPIv2({connection, type, source, credentials}) {\n const parameters = initURLParameters(credentials);\n // Query type is mapped to 'sql' at maps api v1\n const mapsApiType = type === MAP_TYPES.QUERY ? 'sql' : type;\n let url = `${mapsUrl(credentials)}/${connection}/${mapsApiType}?`;\n url += `${encodeParameter('source', source)}&format=tilejson&${parameters.join('&')}`;\n return url;\n}\n\n/**\n * Prepare a url valid for the specified user\n */\nfunction mapsUrl(credentials) {\n return credentials.mapsUrl\n .replace(DEFAULT_USER_COMPONENT_IN_URL, credentials.username)\n .replace(DEFAULT_REGION_COMPONENT_IN_URL, credentials.region);\n}\n\nfunction createMapConfig(sql) {\n return {\n version: '1.3.1',\n buffersize: {\n mvt: BUFFER_SIZE\n },\n layers: [\n {\n type: 'mapnik',\n options: {\n sql,\n vector_extent: TILE_EXTENT\n }\n }\n ]\n };\n}\n"],"file":"maps-client.js"}
@@ -10,10 +10,10 @@ exports.fetchLayerData = fetchLayerData;
10
10
  exports.getData = getData;
11
11
  exports.fetchMap = fetchMap;
12
12
 
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
-
15
13
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
16
14
 
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+
17
17
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
18
 
19
19
  var _config = require("../config");
@@ -24,7 +24,7 @@ var _parseMap = require("./parseMap");
24
24
 
25
25
  var _core = require("@deck.gl/core");
26
26
 
27
- 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; }
27
+ 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; }
28
28
 
29
29
  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; }
30
30
 
@@ -445,12 +445,12 @@ function _getData() {
445
445
  return _getData.apply(this, arguments);
446
446
  }
447
447
 
448
- function _fetchMapDataset(_x6, _x7) {
448
+ function _fetchMapDataset(_x6, _x7, _x8) {
449
449
  return _fetchMapDataset2.apply(this, arguments);
450
450
  }
451
451
 
452
452
  function _fetchMapDataset2() {
453
- _fetchMapDataset2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(dataset, accessToken) {
453
+ _fetchMapDataset2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(dataset, accessToken, credentials) {
454
454
  var connection, source, type, _yield$_fetchDataUrl2, url, mapFormat, cache, data;
455
455
 
456
456
  return _regenerator.default.wrap(function _callee6$(_context6) {
@@ -460,9 +460,9 @@ function _fetchMapDataset2() {
460
460
  connection = dataset.connectionName, source = dataset.source, type = dataset.type;
461
461
  _context6.next = 3;
462
462
  return _fetchDataUrl({
463
- credentials: {
463
+ credentials: _objectSpread(_objectSpread({}, credentials), {}, {
464
464
  accessToken: accessToken
465
- },
465
+ }),
466
466
  connection: connection,
467
467
  source: source,
468
468
  type: type
@@ -505,20 +505,20 @@ function _fetchMapDataset2() {
505
505
  return _fetchMapDataset2.apply(this, arguments);
506
506
  }
507
507
 
508
- function fillInMapDatasets(_x8) {
508
+ function fillInMapDatasets(_x9, _x10) {
509
509
  return _fillInMapDatasets.apply(this, arguments);
510
510
  }
511
511
 
512
512
  function _fillInMapDatasets() {
513
- _fillInMapDatasets = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(_ref9) {
514
- var datasets, publicToken, promises;
513
+ _fillInMapDatasets = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(_ref9, credentials) {
514
+ var datasets, token, promises;
515
515
  return _regenerator.default.wrap(function _callee7$(_context7) {
516
516
  while (1) {
517
517
  switch (_context7.prev = _context7.next) {
518
518
  case 0:
519
- datasets = _ref9.datasets, publicToken = _ref9.publicToken;
519
+ datasets = _ref9.datasets, token = _ref9.token;
520
520
  promises = datasets.map(function (dataset) {
521
- return _fetchMapDataset(dataset, publicToken);
521
+ return _fetchMapDataset(dataset, token, credentials);
522
522
  });
523
523
  _context7.next = 4;
524
524
  return Promise.all(promises);
@@ -536,21 +536,22 @@ function _fillInMapDatasets() {
536
536
  return _fillInMapDatasets.apply(this, arguments);
537
537
  }
538
538
 
539
- function fetchMap(_x9) {
539
+ function fetchMap(_x11) {
540
540
  return _fetchMap.apply(this, arguments);
541
541
  }
542
542
 
543
543
  function _fetchMap() {
544
544
  _fetchMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(_ref10) {
545
- var mapId, credentials, autoRefresh, onNewData, localCreds, url, map;
545
+ var cartoMapId, credentials, autoRefresh, onNewData, defaultCredentials, localCreds, url, map, stopAutoRefresh, intervalId;
546
546
  return _regenerator.default.wrap(function _callee9$(_context9) {
547
547
  while (1) {
548
548
  switch (_context9.prev = _context9.next) {
549
549
  case 0:
550
- mapId = _ref10.mapId, credentials = _ref10.credentials, autoRefresh = _ref10.autoRefresh, onNewData = _ref10.onNewData;
551
- localCreds = _objectSpread(_objectSpread({}, (0, _config.getDefaultCredentials)()), credentials);
550
+ cartoMapId = _ref10.cartoMapId, credentials = _ref10.credentials, autoRefresh = _ref10.autoRefresh, onNewData = _ref10.onNewData;
551
+ defaultCredentials = (0, _config.getDefaultCredentials)();
552
+ localCreds = _objectSpread(_objectSpread({}, defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials), credentials);
552
553
 
553
- _core.log.assert(mapId, 'Must define map id');
554
+ _core.log.assert(cartoMapId, "Must define CARTO map id: fetchMap({cartoMapId: 'XXXX-XXXX-XXXX'})");
554
555
 
555
556
  _core.log.assert(localCreds.apiVersion === _mapsApiCommon.API_VERSIONS.V3, 'Method only available for v3');
556
557
 
@@ -568,24 +569,24 @@ function _fetchMap() {
568
569
  _core.log.assert(autoRefresh > 0, '`autoRefresh` must be a positive number');
569
570
  }
570
571
 
571
- url = "".concat(localCreds.mapsUrl, "/public/").concat(mapId);
572
- _context9.next = 10;
572
+ url = "".concat(localCreds.mapsUrl, "/public/").concat(cartoMapId);
573
+ _context9.next = 11;
573
574
  return request({
574
575
  url: url
575
576
  });
576
577
 
577
- case 10:
578
+ case 11:
578
579
  map = _context9.sent;
579
580
 
580
581
  if (autoRefresh) {
581
- setInterval((0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8() {
582
+ intervalId = setInterval((0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8() {
582
583
  var changed;
583
584
  return _regenerator.default.wrap(function _callee8$(_context8) {
584
585
  while (1) {
585
586
  switch (_context8.prev = _context8.next) {
586
587
  case 0:
587
588
  _context8.next = 2;
588
- return fillInMapDatasets(map);
589
+ return fillInMapDatasets(map, credentials);
589
590
 
590
591
  case 2:
591
592
  changed = _context8.sent;
@@ -603,15 +604,21 @@ function _fetchMap() {
603
604
  }
604
605
  }, _callee8);
605
606
  })), autoRefresh * 1000);
606
- }
607
607
 
608
- _context9.next = 14;
609
- return fillInMapDatasets(map);
608
+ stopAutoRefresh = function stopAutoRefresh() {
609
+ clearInterval(intervalId);
610
+ };
611
+ }
610
612
 
611
- case 14:
612
- return _context9.abrupt("return", (0, _parseMap.parseMap)(map));
613
+ _context9.next = 15;
614
+ return fillInMapDatasets(map, credentials);
613
615
 
614
616
  case 15:
617
+ return _context9.abrupt("return", _objectSpread(_objectSpread({}, (0, _parseMap.parseMap)(map)), {
618
+ stopAutoRefresh: stopAutoRefresh
619
+ }));
620
+
621
+ case 16:
615
622
  case "end":
616
623
  return _context9.stop();
617
624
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-v3-client.js"],"names":["MAX_GET_LENGTH","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","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","publicToken","promises","map","Promise","all","fetchMap","mapId","autoRefresh","onNewData","setInterval","changed","some","v"],"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;\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}) {\n const parameters = [encodeParameter('client', 'deck-gl-carto')];\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}) {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema})}`;\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: 'deck-gl-carto'\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}) {\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 });\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}) {\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 });\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({type, source, connection, credentials, geoColumn, columns, format}) {\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 });\n return layerData.data;\n}\n\n/* global setInterval, URLSearchParams */\nasync function _fetchMapDataset(dataset, accessToken) {\n // First fetch metadata\n const {connectionName: connection, source, type} = dataset;\n const {url, mapFormat} = await _fetchDataUrl({\n credentials: {accessToken},\n connection,\n source,\n type\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, publicToken}) {\n const promises = datasets.map(dataset => _fetchMapDataset(dataset, publicToken));\n return await Promise.all(promises);\n}\n\nexport async function fetchMap({mapId, credentials, autoRefresh, onNewData}) {\n const localCreds = {...getDefaultCredentials(), ...credentials};\n\n log.assert(mapId, 'Must define map id');\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/${mapId}`;\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 if (autoRefresh) {\n setInterval(async () => {\n const changed = await fillInMapDatasets(map);\n if (changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n }\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map);\n return parseMap(map);\n}\n"],"file":"maps-v3-client.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-v3-client.js"],"names":["MAX_GET_LENGTH","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","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;\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}) {\n const parameters = [encodeParameter('client', 'deck-gl-carto')];\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}) {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema})}`;\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: 'deck-gl-carto'\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}) {\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 });\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}) {\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 });\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({type, source, connection, credentials, geoColumn, columns, format}) {\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 });\n return layerData.data;\n}\n\n/* global clearInterval, setInterval, URLSearchParams */\nasync function _fetchMapDataset(dataset, accessToken, credentials) {\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 });\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}, credentials) {\n const promises = datasets.map(dataset => _fetchMapDataset(dataset, token, credentials));\n return await Promise.all(promises);\n}\n\nexport async function fetchMap({cartoMapId, 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, 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, credentials);\n return {\n ...parseMap(map),\n ...{stopAutoRefresh}\n };\n}\n"],"file":"maps-v3-client.js"}
@@ -19,7 +19,10 @@ var _layerMap = require("./layer-map");
19
19
 
20
20
  var _core = require("@deck.gl/core");
21
21
 
22
- 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; }
22
+ var _excluded = ["id", "config"],
23
+ _excluded2 = ["textLabel"];
24
+
25
+ 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; }
23
26
 
24
27
  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; }
25
28
 
@@ -42,7 +45,7 @@ function parseMap(json) {
42
45
  description: json.description,
43
46
  createdAt: json.createdAt,
44
47
  updatedAt: json.updatedAt,
45
- mapState: mapState,
48
+ initialViewState: mapState,
46
49
  mapStyle: mapStyle,
47
50
  layers: extractTextLayers(layers.reverse()).map(function (_ref) {
48
51
  var id = _ref.id,
@@ -79,9 +82,9 @@ function extractTextLayers(layers) {
79
82
  return (0, _core._flatten)(layers.map(function (_ref2) {
80
83
  var id = _ref2.id,
81
84
  config = _ref2.config,
82
- rest = (0, _objectWithoutProperties2.default)(_ref2, ["id", "config"]);
85
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
83
86
  var textLabel = config.textLabel,
84
- configRest = (0, _objectWithoutProperties2.default)(config, ["textLabel"]);
87
+ configRest = (0, _objectWithoutProperties2.default)(config, _excluded2);
85
88
  return [_objectSpread({
86
89
  id: id,
87
90
  config: configRest
@@ -89,10 +92,11 @@ function extractTextLayers(layers) {
89
92
  return t.field;
90
93
  }).map(function (t) {
91
94
  return _objectSpread({
92
- id: "id-label-".concat(t.field.name),
95
+ id: "".concat(id, "-label-").concat(t.field.name),
93
96
  config: _objectSpread(_objectSpread({
94
97
  textLabel: t
95
98
  }, configRest), {}, {
99
+ label: "".concat(config.label, "-label-").concat(t.field.name),
96
100
  visConfig: _objectSpread(_objectSpread({}, configRest.visConfig), {}, {
97
101
  opacity: 1
98
102
  })
@@ -131,14 +135,6 @@ function createInteractionProps(interactionConfig) {
131
135
  }
132
136
 
133
137
  function mapProps(source, target, mapping) {
134
- if (Array.isArray(source)) {
135
- source = source[0];
136
- }
137
-
138
- if (!source) {
139
- return;
140
- }
141
-
142
138
  for (var sourceKey in mapping) {
143
139
  var sourceValue = source[sourceKey];
144
140
  var targetKey = mapping[sourceKey];
@@ -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","extractTextLayers","reverse","map","type","visualChannels","LAYER_MAP","Layer","propMap","defaultProps","dataId","dataset","find","d","data","createBlendingProps","textLabel","createInteractionProps","createStyleProps","createChannelProps","rest","configRest","filter","t","field","name","visConfig","opacity","parameters","blendFunc","blendEquation","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","Array","isArray","sourceKey","sourceValue","targetKey","undefined","result","highlightColor","enable3d","colorField","colorScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabelField","getFillColor","colorRange","strokeOpacity","getLineColor","getElevation","heightRange","sizeRange","getPointRadius","radiusRange","getText","pointType","radius","getTextPixelOffset"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n LAYER_MAP,\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 mapState,\n mapStyle,\n layers: extractTextLayers(layers.reverse()).map(({id, type, config, visualChannels}) => {\n log.assert(type in LAYER_MAP, `Unsupported layer type: ${type}`);\n const {Layer, propMap, defaultProps} = LAYER_MAP[type];\n\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 })\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.filter(t => t.field).map(t => {\n return {\n id: `id-label-${t.field.name}`,\n config: {\n textLabel: t,\n ...configRest,\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 if (Array.isArray(source)) {\n source = source[0];\n }\n if (!source) {\n return;\n }\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 {\n colorField,\n colorScale,\n sizeField,\n sizeScale,\n strokeColorField,\n 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 =\n visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity / visConfig.opacity : 1;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n strokeColorScale,\n visConfig.colorRange,\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","LAYER_MAP","Layer","propMap","defaultProps","dataId","dataset","find","d","data","createBlendingProps","textLabel","createInteractionProps","createStyleProps","createChannelProps","rest","configRest","filter","t","field","name","label","visConfig","opacity","parameters","blendFunc","blendEquation","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","undefined","result","highlightColor","enable3d","colorField","colorScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabelField","getFillColor","colorRange","strokeOpacity","getLineColor","getElevation","heightRange","sizeRange","getPointRadius","radiusRange","getText","pointType","radius","getTextPixelOffset"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n LAYER_MAP,\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 log.assert(type in LAYER_MAP, `Unsupported layer type: ${type}`);\n const {Layer, propMap, defaultProps} = LAYER_MAP[type];\n\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 })\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 =\n visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity / visConfig.opacity : 1;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n strokeColorScale,\n visConfig.colorRange,\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"}