@deck.gl/carto 8.6.3 → 8.7.0-alpha.1

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 (52) hide show
  1. package/dist/dist.dev.js +24388 -720
  2. package/dist/es5/api/index.js +14 -8
  3. package/dist/es5/api/index.js.map +1 -1
  4. package/dist/es5/api/layer-map.js +255 -0
  5. package/dist/es5/api/layer-map.js.map +1 -0
  6. package/dist/es5/api/maps-api-common.js +13 -9
  7. package/dist/es5/api/maps-api-common.js.map +1 -1
  8. package/dist/es5/api/maps-client.js +157 -98
  9. package/dist/es5/api/maps-client.js.map +1 -1
  10. package/dist/es5/api/maps-v3-client.js +535 -190
  11. package/dist/es5/api/maps-v3-client.js.map +1 -1
  12. package/dist/es5/api/parseMap.js +211 -0
  13. package/dist/es5/api/parseMap.js.map +1 -0
  14. package/dist/es5/basemap.js +1 -1
  15. package/dist/es5/basemap.js.map +1 -1
  16. package/dist/es5/config.js +23 -21
  17. package/dist/es5/config.js.map +1 -1
  18. package/dist/es5/index.js +22 -16
  19. package/dist/es5/index.js.map +1 -1
  20. package/dist/es5/layers/carto-bqtiler-layer.js +39 -6
  21. package/dist/es5/layers/carto-bqtiler-layer.js.map +1 -1
  22. package/dist/es5/layers/carto-layer.js +211 -132
  23. package/dist/es5/layers/carto-layer.js.map +1 -1
  24. package/dist/es5/layers/carto-sql-layer.js +39 -6
  25. package/dist/es5/layers/carto-sql-layer.js.map +1 -1
  26. package/dist/es5/style/color-bins-style.js +11 -10
  27. package/dist/es5/style/color-bins-style.js.map +1 -1
  28. package/dist/es5/style/color-categories-style.js +38 -13
  29. package/dist/es5/style/color-categories-style.js.map +1 -1
  30. package/dist/es5/style/color-continuous-style.js +11 -10
  31. package/dist/es5/style/color-continuous-style.js.map +1 -1
  32. package/dist/es5/style/palette.js +19 -11
  33. package/dist/es5/style/palette.js.map +1 -1
  34. package/dist/es5/style/utils.js +13 -6
  35. package/dist/es5/style/utils.js.map +1 -1
  36. package/dist/esm/api/index.js +1 -1
  37. package/dist/esm/api/index.js.map +1 -1
  38. package/dist/esm/api/layer-map.js +219 -0
  39. package/dist/esm/api/layer-map.js.map +1 -0
  40. package/dist/esm/api/maps-v3-client.js +135 -16
  41. package/dist/esm/api/maps-v3-client.js.map +1 -1
  42. package/dist/esm/api/parseMap.js +202 -0
  43. package/dist/esm/api/parseMap.js.map +1 -0
  44. package/dist/esm/index.js +1 -1
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist.min.js +278 -1
  47. package/package.json +7 -3
  48. package/src/api/index.js +1 -1
  49. package/src/api/layer-map.js +194 -0
  50. package/src/api/maps-v3-client.js +103 -11
  51. package/src/api/parseMap.js +192 -0
  52. package/src/index.js +1 -0
@@ -2,32 +2,57 @@
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
4
 
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.default = colorCategories;
9
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _palette = _interopRequireWildcard(require("./palette"));
11
15
 
12
16
  var _utils = require("./utils");
13
17
 
14
- function colorCategories({
15
- attr,
16
- domain,
17
- colors = _palette.DEFAULT_PALETTE,
18
- nullColor = _palette.NULL_COLOR,
19
- othersColor = _palette.OTHERS_COLOR
20
- }) {
18
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
24
+ function colorCategories(_ref) {
25
+ var attr = _ref.attr,
26
+ domain = _ref.domain,
27
+ _ref$colors = _ref.colors,
28
+ colors = _ref$colors === void 0 ? _palette.DEFAULT_PALETTE : _ref$colors,
29
+ _ref$nullColor = _ref.nullColor,
30
+ nullColor = _ref$nullColor === void 0 ? _palette.NULL_COLOR : _ref$nullColor,
31
+ _ref$othersColor = _ref.othersColor,
32
+ othersColor = _ref$othersColor === void 0 ? _palette.OTHERS_COLOR : _ref$othersColor;
21
33
  (0, _utils.assert)(Array.isArray(domain), 'Expected "domain" to be an array of numbers or strings');
22
- const colorsByCategory = {};
23
- const palette = typeof colors === 'string' ? (0, _palette.default)(colors, domain.length) : colors;
34
+ var colorsByCategory = {};
35
+ var palette = typeof colors === 'string' ? (0, _palette.default)(colors, domain.length) : colors;
36
+
37
+ var _iterator = _createForOfIteratorHelper(domain.entries()),
38
+ _step;
39
+
40
+ try {
41
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
42
+ var _step$value = (0, _slicedToArray2.default)(_step.value, 2),
43
+ i = _step$value[0],
44
+ c = _step$value[1];
24
45
 
25
- for (const [i, c] of domain.entries()) {
26
- colorsByCategory[c] = palette[i];
46
+ colorsByCategory[c] = palette[i];
47
+ }
48
+ } catch (err) {
49
+ _iterator.e(err);
50
+ } finally {
51
+ _iterator.f();
27
52
  }
28
53
 
29
- return d => {
30
- const value = (0, _utils.getAttrValue)(attr, d);
54
+ return function (d) {
55
+ var value = (0, _utils.getAttrValue)(attr, d);
31
56
  return Number.isFinite(value) || typeof value === 'string' ? colorsByCategory[value] || othersColor : nullColor;
32
57
  };
33
58
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/style/color-categories-style.js"],"names":["colorCategories","attr","domain","colors","DEFAULT_PALETTE","nullColor","NULL_COLOR","othersColor","OTHERS_COLOR","Array","isArray","colorsByCategory","palette","length","i","c","entries","d","value","Number","isFinite"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEe,SAASA,eAAT,CAAyB;AACtCC,EAAAA,IADsC;AAEtCC,EAAAA,MAFsC;AAGtCC,EAAAA,MAAM,GAAGC,wBAH6B;AAItCC,EAAAA,SAAS,GAAGC,mBAJ0B;AAKtCC,EAAAA,WAAW,GAAGC;AALwB,CAAzB,EAMZ;AACD,qBAAOC,KAAK,CAACC,OAAN,CAAcR,MAAd,CAAP,EAA8B,wDAA9B;AAEA,QAAMS,gBAAgB,GAAG,EAAzB;AACA,QAAMC,OAAO,GAAG,OAAOT,MAAP,KAAkB,QAAlB,GAA6B,sBAAWA,MAAX,EAAmBD,MAAM,CAACW,MAA1B,CAA7B,GAAiEV,MAAjF;;AAEA,OAAK,MAAM,CAACW,CAAD,EAAIC,CAAJ,CAAX,IAAqBb,MAAM,CAACc,OAAP,EAArB,EAAuC;AACrCL,IAAAA,gBAAgB,CAACI,CAAD,CAAhB,GAAsBH,OAAO,CAACE,CAAD,CAA7B;AACD;;AAED,SAAOG,CAAC,IAAI;AACV,UAAMC,KAAK,GAAG,yBAAajB,IAAb,EAAmBgB,CAAnB,CAAd;AACA,WAAOE,MAAM,CAACC,QAAP,CAAgBF,KAAhB,KAA0B,OAAOA,KAAP,KAAiB,QAA3C,GACHP,gBAAgB,CAACO,KAAD,CAAhB,IAA2BX,WADxB,GAEHF,SAFJ;AAGD,GALD;AAMD","sourcesContent":["import getPalette, {DEFAULT_PALETTE, NULL_COLOR, OTHERS_COLOR} from './palette';\nimport {assert, getAttrValue} from './utils';\n\nexport default function colorCategories({\n attr,\n domain,\n colors = DEFAULT_PALETTE,\n nullColor = NULL_COLOR,\n othersColor = OTHERS_COLOR\n}) {\n assert(Array.isArray(domain), 'Expected \"domain\" to be an array of numbers or strings');\n\n const colorsByCategory = {};\n const palette = typeof colors === 'string' ? getPalette(colors, domain.length) : colors;\n\n for (const [i, c] of domain.entries()) {\n colorsByCategory[c] = palette[i];\n }\n\n return d => {\n const value = getAttrValue(attr, d);\n return Number.isFinite(value) || typeof value === 'string'\n ? colorsByCategory[value] || othersColor\n : nullColor;\n };\n}\n"],"file":"color-categories-style.js"}
1
+ {"version":3,"sources":["../../../src/style/color-categories-style.js"],"names":["colorCategories","attr","domain","colors","DEFAULT_PALETTE","nullColor","NULL_COLOR","othersColor","OTHERS_COLOR","Array","isArray","colorsByCategory","palette","length","entries","i","c","d","value","Number","isFinite"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;;;;;AAEe,SAASA,eAAT,OAMZ;AAAA,MALDC,IAKC,QALDA,IAKC;AAAA,MAJDC,MAIC,QAJDA,MAIC;AAAA,yBAHDC,MAGC;AAAA,MAHDA,MAGC,4BAHQC,wBAGR;AAAA,4BAFDC,SAEC;AAAA,MAFDA,SAEC,+BAFWC,mBAEX;AAAA,8BADDC,WACC;AAAA,MADDA,WACC,iCADaC,qBACb;AACD,qBAAOC,KAAK,CAACC,OAAN,CAAcR,MAAd,CAAP,EAA8B,wDAA9B;AAEA,MAAMS,gBAAgB,GAAG,EAAzB;AACA,MAAMC,OAAO,GAAG,OAAOT,MAAP,KAAkB,QAAlB,GAA6B,sBAAWA,MAAX,EAAmBD,MAAM,CAACW,MAA1B,CAA7B,GAAiEV,MAAjF;;AAJC,6CAMoBD,MAAM,CAACY,OAAP,EANpB;AAAA;;AAAA;AAMD,wDAAuC;AAAA;AAAA,UAA3BC,CAA2B;AAAA,UAAxBC,CAAwB;;AACrCL,MAAAA,gBAAgB,CAACK,CAAD,CAAhB,GAAsBJ,OAAO,CAACG,CAAD,CAA7B;AACD;AARA;AAAA;AAAA;AAAA;AAAA;;AAUD,SAAO,UAAAE,CAAC,EAAI;AACV,QAAMC,KAAK,GAAG,yBAAajB,IAAb,EAAmBgB,CAAnB,CAAd;AACA,WAAOE,MAAM,CAACC,QAAP,CAAgBF,KAAhB,KAA0B,OAAOA,KAAP,KAAiB,QAA3C,GACHP,gBAAgB,CAACO,KAAD,CAAhB,IAA2BX,WADxB,GAEHF,SAFJ;AAGD,GALD;AAMD","sourcesContent":["import getPalette, {DEFAULT_PALETTE, NULL_COLOR, OTHERS_COLOR} from './palette';\nimport {assert, getAttrValue} from './utils';\n\nexport default function colorCategories({\n attr,\n domain,\n colors = DEFAULT_PALETTE,\n nullColor = NULL_COLOR,\n othersColor = OTHERS_COLOR\n}) {\n assert(Array.isArray(domain), 'Expected \"domain\" to be an array of numbers or strings');\n\n const colorsByCategory = {};\n const palette = typeof colors === 'string' ? getPalette(colors, domain.length) : colors;\n\n for (const [i, c] of domain.entries()) {\n colorsByCategory[c] = palette[i];\n }\n\n return d => {\n const value = getAttrValue(attr, d);\n return Number.isFinite(value) || typeof value === 'string'\n ? colorsByCategory[value] || othersColor\n : nullColor;\n };\n}\n"],"file":"color-categories-style.js"}
@@ -13,17 +13,18 @@ var _palette = _interopRequireWildcard(require("./palette"));
13
13
 
14
14
  var _utils = require("./utils");
15
15
 
16
- function colorContinuous({
17
- attr,
18
- domain,
19
- colors = _palette.DEFAULT_PALETTE,
20
- nullColor = _palette.NULL_COLOR
21
- }) {
16
+ function colorContinuous(_ref) {
17
+ var attr = _ref.attr,
18
+ domain = _ref.domain,
19
+ _ref$colors = _ref.colors,
20
+ colors = _ref$colors === void 0 ? _palette.DEFAULT_PALETTE : _ref$colors,
21
+ _ref$nullColor = _ref.nullColor,
22
+ nullColor = _ref$nullColor === void 0 ? _palette.NULL_COLOR : _ref$nullColor;
22
23
  (0, _utils.assert)(Array.isArray(domain), 'Expected "domain" to be an array of numbers');
23
- const palette = typeof colors === 'string' ? (0, _palette.default)(colors) : colors;
24
- const color = (0, _d3Scale.scaleLinear)().domain(domain).range(palette);
25
- return d => {
26
- const value = (0, _utils.getAttrValue)(attr, d);
24
+ var palette = typeof colors === 'string' ? (0, _palette.default)(colors) : colors;
25
+ var color = (0, _d3Scale.scaleLinear)().domain(domain).range(palette);
26
+ return function (d) {
27
+ var value = (0, _utils.getAttrValue)(attr, d);
27
28
  return Number.isFinite(value) ? color(value) : nullColor;
28
29
  };
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/style/color-continuous-style.js"],"names":["colorContinuous","attr","domain","colors","DEFAULT_PALETTE","nullColor","NULL_COLOR","Array","isArray","palette","color","range","d","value","Number","isFinite"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEe,SAASA,eAAT,CAAyB;AACtCC,EAAAA,IADsC;AAEtCC,EAAAA,MAFsC;AAGtCC,EAAAA,MAAM,GAAGC,wBAH6B;AAItCC,EAAAA,SAAS,GAAGC;AAJ0B,CAAzB,EAKZ;AACD,qBAAOC,KAAK,CAACC,OAAN,CAAcN,MAAd,CAAP,EAA8B,6CAA9B;AAEA,QAAMO,OAAO,GAAG,OAAON,MAAP,KAAkB,QAAlB,GAA6B,sBAAWA,MAAX,CAA7B,GAAkDA,MAAlE;AACA,QAAMO,KAAK,GAAG,4BACXR,MADW,CACJA,MADI,EAEXS,KAFW,CAELF,OAFK,CAAd;AAIA,SAAOG,CAAC,IAAI;AACV,UAAMC,KAAK,GAAG,yBAAaZ,IAAb,EAAmBW,CAAnB,CAAd;AACA,WAAOE,MAAM,CAACC,QAAP,CAAgBF,KAAhB,IAAyBH,KAAK,CAACG,KAAD,CAA9B,GAAwCR,SAA/C;AACD,GAHD;AAID","sourcesContent":["import {scaleLinear} from 'd3-scale';\nimport getPalette, {DEFAULT_PALETTE, NULL_COLOR} from './palette';\nimport {assert, getAttrValue} from './utils';\n\nexport default function colorContinuous({\n attr,\n domain,\n colors = DEFAULT_PALETTE,\n nullColor = NULL_COLOR\n}) {\n assert(Array.isArray(domain), 'Expected \"domain\" to be an array of numbers');\n\n const palette = typeof colors === 'string' ? getPalette(colors) : colors;\n const color = scaleLinear()\n .domain(domain)\n .range(palette);\n\n return d => {\n const value = getAttrValue(attr, d);\n return Number.isFinite(value) ? color(value) : nullColor;\n };\n}\n"],"file":"color-continuous-style.js"}
1
+ {"version":3,"sources":["../../../src/style/color-continuous-style.js"],"names":["colorContinuous","attr","domain","colors","DEFAULT_PALETTE","nullColor","NULL_COLOR","Array","isArray","palette","color","range","d","value","Number","isFinite"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEe,SAASA,eAAT,OAKZ;AAAA,MAJDC,IAIC,QAJDA,IAIC;AAAA,MAHDC,MAGC,QAHDA,MAGC;AAAA,yBAFDC,MAEC;AAAA,MAFDA,MAEC,4BAFQC,wBAER;AAAA,4BADDC,SACC;AAAA,MADDA,SACC,+BADWC,mBACX;AACD,qBAAOC,KAAK,CAACC,OAAN,CAAcN,MAAd,CAAP,EAA8B,6CAA9B;AAEA,MAAMO,OAAO,GAAG,OAAON,MAAP,KAAkB,QAAlB,GAA6B,sBAAWA,MAAX,CAA7B,GAAkDA,MAAlE;AACA,MAAMO,KAAK,GAAG,4BACXR,MADW,CACJA,MADI,EAEXS,KAFW,CAELF,OAFK,CAAd;AAIA,SAAO,UAAAG,CAAC,EAAI;AACV,QAAMC,KAAK,GAAG,yBAAaZ,IAAb,EAAmBW,CAAnB,CAAd;AACA,WAAOE,MAAM,CAACC,QAAP,CAAgBF,KAAhB,IAAyBH,KAAK,CAACG,KAAD,CAA9B,GAAwCR,SAA/C;AACD,GAHD;AAID","sourcesContent":["import {scaleLinear} from 'd3-scale';\nimport getPalette, {DEFAULT_PALETTE, NULL_COLOR} from './palette';\nimport {assert, getAttrValue} from './utils';\n\nexport default function colorContinuous({\n attr,\n domain,\n colors = DEFAULT_PALETTE,\n nullColor = NULL_COLOR\n}) {\n assert(Array.isArray(domain), 'Expected \"domain\" to be an array of numbers');\n\n const palette = typeof colors === 'string' ? getPalette(colors) : colors;\n const color = scaleLinear()\n .domain(domain)\n .range(palette);\n\n return d => {\n const value = getAttrValue(attr, d);\n return Number.isFinite(value) ? color(value) : nullColor;\n };\n}\n"],"file":"color-continuous-style.js"}
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
4
 
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,24 +11,28 @@ exports.default = getPalette;
9
11
  exports.hexToRgb = hexToRgb;
10
12
  exports.OTHERS_COLOR = exports.NULL_COLOR = exports.DEFAULT_PALETTE = void 0;
11
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
12
16
  var cartoColors = _interopRequireWildcard(require("cartocolor"));
13
17
 
14
18
  var _utils = require("./utils");
15
19
 
16
- const DEFAULT_PALETTE = 'PurpOr';
20
+ var DEFAULT_PALETTE = 'PurpOr';
17
21
  exports.DEFAULT_PALETTE = DEFAULT_PALETTE;
18
- const NULL_COLOR = [204, 204, 204];
22
+ var NULL_COLOR = [204, 204, 204];
19
23
  exports.NULL_COLOR = NULL_COLOR;
20
- const OTHERS_COLOR = [119, 119, 119];
24
+ var OTHERS_COLOR = [119, 119, 119];
21
25
  exports.OTHERS_COLOR = OTHERS_COLOR;
22
26
 
23
27
  function getPalette(name, numCategories) {
24
- const palette = cartoColors[name];
25
- let paletteIndex = numCategories;
28
+ var palette = cartoColors[name];
29
+ var paletteIndex = numCategories;
26
30
  (0, _utils.assert)(palette, "Palette \"".concat(name, "\" not found. Expected a CARTOColors string"));
27
- const palettesColorVariants = Object.keys(palette).filter(p => p !== 'tags').map(Number);
28
- const longestPaletteIndex = Math.max(...palettesColorVariants);
29
- const smallestPaletteIndex = Math.min(...palettesColorVariants);
31
+ var palettesColorVariants = Object.keys(palette).filter(function (p) {
32
+ return p !== 'tags';
33
+ }).map(Number);
34
+ var longestPaletteIndex = Math.max.apply(Math, (0, _toConsumableArray2.default)(palettesColorVariants));
35
+ var smallestPaletteIndex = Math.min.apply(Math, (0, _toConsumableArray2.default)(palettesColorVariants));
30
36
 
31
37
  if (!Number.isInteger(numCategories) || numCategories > longestPaletteIndex) {
32
38
  paletteIndex = longestPaletteIndex;
@@ -34,17 +40,19 @@ function getPalette(name, numCategories) {
34
40
  paletteIndex = smallestPaletteIndex;
35
41
  }
36
42
 
37
- let colors = palette[paletteIndex];
43
+ var colors = palette[paletteIndex];
38
44
 
39
45
  if (palette.tags && palette.tags.includes('qualitative')) {
40
46
  colors = colors.slice(0, -1);
41
47
  }
42
48
 
43
- return colors.map(c => hexToRgb(c));
49
+ return colors.map(function (c) {
50
+ return hexToRgb(c);
51
+ });
44
52
  }
45
53
 
46
54
  function hexToRgb(hex) {
47
- let result = /^#?([a-f\d]{1})([a-f\d]{1})([a-f\d]{1})$/i.exec(hex);
55
+ var result = /^#?([a-f\d]{1})([a-f\d]{1})([a-f\d]{1})$/i.exec(hex);
48
56
 
49
57
  if (result) {
50
58
  return [parseInt(result[1] + result[1], 16), parseInt(result[2] + result[2], 16), parseInt(result[3] + result[3], 16), 255];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/style/palette.js"],"names":["DEFAULT_PALETTE","NULL_COLOR","OTHERS_COLOR","getPalette","name","numCategories","palette","cartoColors","paletteIndex","palettesColorVariants","Object","keys","filter","p","map","Number","longestPaletteIndex","Math","max","smallestPaletteIndex","min","isInteger","colors","tags","includes","slice","c","hexToRgb","hex","result","exec","parseInt"],"mappings":"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","sourcesContent":["import * as cartoColors from 'cartocolor';\nimport {assert} from './utils';\n\nexport const DEFAULT_PALETTE = 'PurpOr';\nexport const NULL_COLOR = [204, 204, 204];\nexport const OTHERS_COLOR = [119, 119, 119];\n\nexport default function getPalette(name, numCategories) {\n const palette = cartoColors[name];\n let paletteIndex = numCategories;\n\n assert(palette, `Palette \"${name}\" not found. Expected a CARTOColors string`);\n\n const palettesColorVariants = Object.keys(palette)\n .filter(p => p !== 'tags')\n .map(Number);\n\n const longestPaletteIndex = Math.max(...palettesColorVariants);\n const smallestPaletteIndex = Math.min(...palettesColorVariants);\n\n if (!Number.isInteger(numCategories) || numCategories > longestPaletteIndex) {\n paletteIndex = longestPaletteIndex;\n } else if (numCategories < smallestPaletteIndex) {\n paletteIndex = smallestPaletteIndex;\n }\n\n let colors = palette[paletteIndex];\n\n if (palette.tags && palette.tags.includes('qualitative')) {\n colors = colors.slice(0, -1);\n }\n\n return colors.map(c => hexToRgb(c));\n}\n\nexport function hexToRgb(hex) {\n // Evaluate #ABC\n let result = /^#?([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})$/i.exec(hex);\n\n if (result) {\n return [\n parseInt(result[1] + result[1], 16),\n parseInt(result[2] + result[2], 16),\n parseInt(result[3] + result[3], 16),\n 255\n ];\n }\n\n // Evaluate #ABCD\n result = /^#?([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})$/i.exec(hex);\n\n if (result) {\n return [\n parseInt(result[1] + result[1], 16),\n parseInt(result[2] + result[2], 16),\n parseInt(result[3] + result[3], 16),\n parseInt(result[4] + result[4], 16)\n ];\n }\n\n // Evaluate #ABCDEF\n result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (result) {\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), 255];\n }\n\n // Evaluate #ABCDEFAF\n result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (result) {\n return [\n parseInt(result[1], 16),\n parseInt(result[2], 16),\n parseInt(result[3], 16),\n parseInt(result[4], 16)\n ];\n }\n\n assert(result, `Hexadecimal color \"${hex}\" was not parsed correctly`);\n\n return NULL_COLOR;\n}\n"],"file":"palette.js"}
1
+ {"version":3,"sources":["../../../src/style/palette.js"],"names":["DEFAULT_PALETTE","NULL_COLOR","OTHERS_COLOR","getPalette","name","numCategories","palette","cartoColors","paletteIndex","palettesColorVariants","Object","keys","filter","p","map","Number","longestPaletteIndex","Math","max","smallestPaletteIndex","min","isInteger","colors","tags","includes","slice","c","hexToRgb","hex","result","exec","parseInt"],"mappings":"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","sourcesContent":["import * as cartoColors from 'cartocolor';\nimport {assert} from './utils';\n\nexport const DEFAULT_PALETTE = 'PurpOr';\nexport const NULL_COLOR = [204, 204, 204];\nexport const OTHERS_COLOR = [119, 119, 119];\n\nexport default function getPalette(name, numCategories) {\n const palette = cartoColors[name];\n let paletteIndex = numCategories;\n\n assert(palette, `Palette \"${name}\" not found. Expected a CARTOColors string`);\n\n const palettesColorVariants = Object.keys(palette)\n .filter(p => p !== 'tags')\n .map(Number);\n\n const longestPaletteIndex = Math.max(...palettesColorVariants);\n const smallestPaletteIndex = Math.min(...palettesColorVariants);\n\n if (!Number.isInteger(numCategories) || numCategories > longestPaletteIndex) {\n paletteIndex = longestPaletteIndex;\n } else if (numCategories < smallestPaletteIndex) {\n paletteIndex = smallestPaletteIndex;\n }\n\n let colors = palette[paletteIndex];\n\n if (palette.tags && palette.tags.includes('qualitative')) {\n colors = colors.slice(0, -1);\n }\n\n return colors.map(c => hexToRgb(c));\n}\n\nexport function hexToRgb(hex) {\n // Evaluate #ABC\n let result = /^#?([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})$/i.exec(hex);\n\n if (result) {\n return [\n parseInt(result[1] + result[1], 16),\n parseInt(result[2] + result[2], 16),\n parseInt(result[3] + result[3], 16),\n 255\n ];\n }\n\n // Evaluate #ABCD\n result = /^#?([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})$/i.exec(hex);\n\n if (result) {\n return [\n parseInt(result[1] + result[1], 16),\n parseInt(result[2] + result[2], 16),\n parseInt(result[3] + result[3], 16),\n parseInt(result[4] + result[4], 16)\n ];\n }\n\n // Evaluate #ABCDEF\n result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (result) {\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), 255];\n }\n\n // Evaluate #ABCDEFAF\n result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (result) {\n return [\n parseInt(result[1], 16),\n parseInt(result[2], 16),\n parseInt(result[3], 16),\n parseInt(result[4], 16)\n ];\n }\n\n assert(result, `Hexadecimal color \"${hex}\" was not parsed correctly`);\n\n return NULL_COLOR;\n}\n"],"file":"palette.js"}
@@ -1,28 +1,35 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.getAttrValue = getAttrValue;
7
9
  exports.assert = assert;
8
- const ALLOWED_ATTR_TYPES = Object.freeze(['function', 'string']);
10
+
11
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
+
13
+ var ALLOWED_ATTR_TYPES = Object.freeze(['function', 'string']);
9
14
 
10
15
  function getAttrValue(attr, d) {
11
- assert(typeof d === 'object', 'Expected "data" to be an object');
12
- assert(ALLOWED_ATTR_TYPES.includes(typeof attr), 'Expected "attr" to be a function or string');
16
+ assert((0, _typeof2.default)(d) === 'object', 'Expected "data" to be an object');
17
+ assert(ALLOWED_ATTR_TYPES.includes((0, _typeof2.default)(attr)), 'Expected "attr" to be a function or string');
13
18
 
14
- if (typeof attr === ALLOWED_ATTR_TYPES[0]) {
19
+ if ((0, _typeof2.default)(attr) === ALLOWED_ATTR_TYPES[0]) {
15
20
  return attr(d);
16
21
  }
17
22
 
18
- if (typeof attr === ALLOWED_ATTR_TYPES[1]) {
23
+ if ((0, _typeof2.default)(attr) === ALLOWED_ATTR_TYPES[1]) {
19
24
  return d.properties[attr];
20
25
  }
21
26
 
22
27
  return {};
23
28
  }
24
29
 
25
- function assert(condition, message = '') {
30
+ function assert(condition) {
31
+ var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
32
+
26
33
  if (!condition) {
27
34
  throw new Error("CARTO style error: ".concat(message));
28
35
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/style/utils.js"],"names":["ALLOWED_ATTR_TYPES","Object","freeze","getAttrValue","attr","d","assert","includes","properties","condition","message","Error"],"mappings":";;;;;;;AAAA,MAAMA,kBAAkB,GAAGC,MAAM,CAACC,MAAP,CAAc,CAAC,UAAD,EAAa,QAAb,CAAd,CAA3B;;AAEO,SAASC,YAAT,CAAsBC,IAAtB,EAA4BC,CAA5B,EAA+B;AACpCC,EAAAA,MAAM,CAAC,OAAOD,CAAP,KAAa,QAAd,EAAwB,iCAAxB,CAAN;AACAC,EAAAA,MAAM,CAACN,kBAAkB,CAACO,QAAnB,CAA4B,OAAOH,IAAnC,CAAD,EAA2C,4CAA3C,CAAN;;AAGA,MAAI,OAAOA,IAAP,KAAgBJ,kBAAkB,CAAC,CAAD,CAAtC,EAA2C;AACzC,WAAOI,IAAI,CAACC,CAAD,CAAX;AACD;;AAGD,MAAI,OAAOD,IAAP,KAAgBJ,kBAAkB,CAAC,CAAD,CAAtC,EAA2C;AACzC,WAAOK,CAAC,CAACG,UAAF,CAAaJ,IAAb,CAAP;AACD;;AAED,SAAO,EAAP;AACD;;AAEM,SAASE,MAAT,CAAgBG,SAAhB,EAA2BC,OAAO,GAAG,EAArC,EAAyC;AAC9C,MAAI,CAACD,SAAL,EAAgB;AACd,UAAM,IAAIE,KAAJ,8BAAgCD,OAAhC,EAAN;AACD;AACF","sourcesContent":["const ALLOWED_ATTR_TYPES = Object.freeze(['function', 'string']);\n\nexport function getAttrValue(attr, d) {\n assert(typeof d === 'object', 'Expected \"data\" to be an object');\n assert(ALLOWED_ATTR_TYPES.includes(typeof attr), 'Expected \"attr\" to be a function or string');\n\n // Is function\n if (typeof attr === ALLOWED_ATTR_TYPES[0]) {\n return attr(d);\n }\n\n // Is string\n if (typeof attr === ALLOWED_ATTR_TYPES[1]) {\n return d.properties[attr];\n }\n\n return {};\n}\n\nexport function assert(condition, message = '') {\n if (!condition) {\n throw new Error(`CARTO style error: ${message}`);\n }\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../../src/style/utils.js"],"names":["ALLOWED_ATTR_TYPES","Object","freeze","getAttrValue","attr","d","assert","includes","properties","condition","message","Error"],"mappings":";;;;;;;;;;;;AAAA,IAAMA,kBAAkB,GAAGC,MAAM,CAACC,MAAP,CAAc,CAAC,UAAD,EAAa,QAAb,CAAd,CAA3B;;AAEO,SAASC,YAAT,CAAsBC,IAAtB,EAA4BC,CAA5B,EAA+B;AACpCC,EAAAA,MAAM,CAAC,sBAAOD,CAAP,MAAa,QAAd,EAAwB,iCAAxB,CAAN;AACAC,EAAAA,MAAM,CAACN,kBAAkB,CAACO,QAAnB,uBAAmCH,IAAnC,EAAD,EAA2C,4CAA3C,CAAN;;AAGA,MAAI,sBAAOA,IAAP,MAAgBJ,kBAAkB,CAAC,CAAD,CAAtC,EAA2C;AACzC,WAAOI,IAAI,CAACC,CAAD,CAAX;AACD;;AAGD,MAAI,sBAAOD,IAAP,MAAgBJ,kBAAkB,CAAC,CAAD,CAAtC,EAA2C;AACzC,WAAOK,CAAC,CAACG,UAAF,CAAaJ,IAAb,CAAP;AACD;;AAED,SAAO,EAAP;AACD;;AAEM,SAASE,MAAT,CAAgBG,SAAhB,EAAyC;AAAA,MAAdC,OAAc,uEAAJ,EAAI;;AAC9C,MAAI,CAACD,SAAL,EAAgB;AACd,UAAM,IAAIE,KAAJ,8BAAgCD,OAAhC,EAAN;AACD;AACF","sourcesContent":["const ALLOWED_ATTR_TYPES = Object.freeze(['function', 'string']);\n\nexport function getAttrValue(attr, d) {\n assert(typeof d === 'object', 'Expected \"data\" to be an object');\n assert(ALLOWED_ATTR_TYPES.includes(typeof attr), 'Expected \"attr\" to be a function or string');\n\n // Is function\n if (typeof attr === ALLOWED_ATTR_TYPES[0]) {\n return attr(d);\n }\n\n // Is string\n if (typeof attr === ALLOWED_ATTR_TYPES[1]) {\n return d.properties[attr];\n }\n\n return {};\n}\n\nexport function assert(condition, message = '') {\n if (!condition) {\n throw new Error(`CARTO style error: ${message}`);\n }\n}\n"],"file":"utils.js"}
@@ -1,4 +1,4 @@
1
1
  export { FORMATS, MAP_TYPES, API_VERSIONS } from './maps-api-common';
2
2
  export { getDataV2, CONNECTIONS } from './maps-client';
3
- export { fetchLayerData, getData, mapInstantiation } from './maps-v3-client';
3
+ export { fetchLayerData, fetchMap, getData, mapInstantiation } from './maps-v3-client';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/index.js"],"names":["FORMATS","MAP_TYPES","API_VERSIONS","getDataV2","CONNECTIONS","fetchLayerData","getData","mapInstantiation"],"mappings":"AAAA,SAAQA,OAAR,EAAiBC,SAAjB,EAA4BC,YAA5B,QAA+C,mBAA/C;AACA,SAAQC,SAAR,EAAmBC,WAAnB,QAAqC,eAArC;AACA,SAAQC,cAAR,EAAwBC,OAAxB,EAAiCC,gBAAjC,QAAwD,kBAAxD","sourcesContent":["export {FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';\nexport {getDataV2, CONNECTIONS} from './maps-client';\nexport {fetchLayerData, getData, mapInstantiation} from './maps-v3-client';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/api/index.js"],"names":["FORMATS","MAP_TYPES","API_VERSIONS","getDataV2","CONNECTIONS","fetchLayerData","fetchMap","getData","mapInstantiation"],"mappings":"AAAA,SAAQA,OAAR,EAAiBC,SAAjB,EAA4BC,YAA5B,QAA+C,mBAA/C;AACA,SAAQC,SAAR,EAAmBC,WAAnB,QAAqC,eAArC;AACA,SAAQC,cAAR,EAAwBC,QAAxB,EAAkCC,OAAlC,EAA2CC,gBAA3C,QAAkE,kBAAlE","sourcesContent":["export {FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';\nexport {getDataV2, CONNECTIONS} from './maps-client';\nexport {fetchLayerData, fetchMap, getData, mapInstantiation} from './maps-v3-client';\n"],"file":"index.js"}
@@ -0,0 +1,219 @@
1
+ import { extent } from 'd3-array';
2
+ import { rgb } from 'd3-color';
3
+ import { scaleLinear, scaleOrdinal, scaleLog, scalePoint, scaleQuantile, scaleQuantize, scaleSqrt } from 'd3-scale';
4
+ import { format as d3Format } from 'd3-format';
5
+ import moment from 'moment-timezone';
6
+ import { H3HexagonLayer, MVTLayer } from '@deck.gl/geo-layers';
7
+ import { GeoJsonLayer } from '@deck.gl/layers';
8
+ const SCALE_FUNCS = {
9
+ linear: scaleLinear,
10
+ ordinal: scaleOrdinal,
11
+ log: scaleLog,
12
+ point: scalePoint,
13
+ quantile: scaleQuantile,
14
+ quantize: scaleQuantize,
15
+ sqrt: scaleSqrt
16
+ };
17
+ const sharedPropMap = {
18
+ color: 'getFillColor',
19
+ isVisible: 'visible',
20
+ textLabel: {
21
+ alignment: 'getTextAlignmentBaseline',
22
+ anchor: 'getTextAnchor',
23
+ color: 'getTextColor',
24
+ size: 'getTextSize'
25
+ },
26
+ visConfig: {
27
+ enable3d: 'extruded',
28
+ filled: 'filled',
29
+ opacity: 'opacity',
30
+ strokeColor: 'getLineColor',
31
+ stroked: 'stroked',
32
+ thickness: 'getLineWidth',
33
+ radius: 'getPointRadius',
34
+ wireframe: 'wireframe'
35
+ }
36
+ };
37
+ const RADIUS_DOWNSCALE = 0.2;
38
+ const defaultProps = {
39
+ lineMiterLimit: 2,
40
+ lineWidthUnits: 'pixels',
41
+ pointRadiusScale: RADIUS_DOWNSCALE,
42
+ pointRadiusUnits: 'pixels',
43
+ rounded: true,
44
+ wrapLongitude: false
45
+ };
46
+
47
+ function mergePropMaps(a, b) {
48
+ return { ...a,
49
+ ...b,
50
+ visConfig: { ...a.visConfig,
51
+ ...b.visConfig
52
+ }
53
+ };
54
+ }
55
+
56
+ export const LAYER_MAP = {
57
+ point: {
58
+ Layer: GeoJsonLayer,
59
+ propMap: mergePropMaps(sharedPropMap, {
60
+ visConfig: {
61
+ outline: 'stroked'
62
+ }
63
+ }),
64
+ defaultProps
65
+ },
66
+ geojson: {
67
+ Layer: GeoJsonLayer,
68
+ propMap: sharedPropMap,
69
+ defaultProps: { ...defaultProps,
70
+ lineWidthScale: 2
71
+ }
72
+ },
73
+ hexagonId: {
74
+ Layer: H3HexagonLayer,
75
+ propMap: mergePropMaps(sharedPropMap, {
76
+ visConfig: {
77
+ coverage: 'coverage',
78
+ elevationScale: 'elevationScale'
79
+ }
80
+ }),
81
+ defaultProps: { ...defaultProps,
82
+ getHexagon: d => d.h3
83
+ }
84
+ },
85
+ mvt: {
86
+ Layer: MVTLayer,
87
+ propMap: sharedPropMap,
88
+ defaultProps: { ...defaultProps,
89
+ pointRadiusScale: 0.3,
90
+ lineWidthScale: 2
91
+ }
92
+ }
93
+ };
94
+
95
+ function domainFromAttribute(attribute, scaleType) {
96
+ if (scaleType === 'ordinal' || scaleType === 'point') {
97
+ return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);
98
+ }
99
+
100
+ let {
101
+ min
102
+ } = attribute;
103
+
104
+ if (scaleType === 'log' && min === 0) {
105
+ min = 1e-5;
106
+ }
107
+
108
+ return [min, attribute.max];
109
+ }
110
+
111
+ function domainFromValues(values, scaleType) {
112
+ if (scaleType === 'ordinal') {
113
+ return [...new Set(values)].sort();
114
+ }
115
+
116
+ return extent(values);
117
+ }
118
+
119
+ function calculateDomain(data, name, scaleType) {
120
+ if (data.tilestats) {
121
+ const {
122
+ attributes
123
+ } = data.tilestats.layers[0];
124
+ const attribute = attributes.find(a => a.attribute === name);
125
+ return domainFromAttribute(attribute, scaleType);
126
+ } else if (data.features) {
127
+ const values = data.features.map(({
128
+ properties
129
+ }) => properties[name]);
130
+ return domainFromValues(values, scaleType);
131
+ } else if (Array.isArray(data) && data[0][name]) {
132
+ const values = data.map(properties => properties[name]);
133
+ return domainFromValues(values, scaleType);
134
+ }
135
+
136
+ return [0, 1];
137
+ }
138
+
139
+ function normalizeAccessor(accessor, data) {
140
+ if (data.features || data.tilestats) {
141
+ return ({
142
+ properties
143
+ }) => {
144
+ return accessor(properties);
145
+ };
146
+ }
147
+
148
+ return accessor;
149
+ }
150
+
151
+ export function getColorAccessor({
152
+ name
153
+ }, scaleType, {
154
+ colors
155
+ }, opacity, data) {
156
+ const scale = SCALE_FUNCS[scaleType]();
157
+ scale.domain(calculateDomain(data, name, scaleType));
158
+ scale.range(colors);
159
+ const alpha = opacity !== undefined ? 255 * Math.pow(opacity, 1 / 2.2) : 255;
160
+
161
+ const accessor = properties => {
162
+ const rgba = rgb(scale(properties[name]));
163
+ return [rgba.r, rgba.g, rgba.b, alpha];
164
+ };
165
+
166
+ return normalizeAccessor(accessor, data);
167
+ }
168
+ export function getSizeAccessor({
169
+ name
170
+ }, scaleType, range, data) {
171
+ const scale = SCALE_FUNCS[scaleType]();
172
+ scale.domain(calculateDomain(data, name, scaleType));
173
+ scale.range(range);
174
+
175
+ const accessor = properties => {
176
+ return scale(properties[name]);
177
+ };
178
+
179
+ return normalizeAccessor(accessor, data);
180
+ }
181
+ const FORMATS = {
182
+ date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),
183
+ integer: d3Format('i'),
184
+ float: d3Format('.5f'),
185
+ timestamp: s => moment.utc(s).format('X'),
186
+ default: String
187
+ };
188
+ export function getTextAccessor({
189
+ name,
190
+ type
191
+ }, data) {
192
+ const format = FORMATS[type] || FORMATS.default;
193
+
194
+ const accessor = properties => {
195
+ return format(properties[name]);
196
+ };
197
+
198
+ return normalizeAccessor(accessor, data);
199
+ }
200
+ export function getTextPixelOffsetAccessor({
201
+ alignment,
202
+ anchor,
203
+ size
204
+ }, radius) {
205
+ const padding = 20;
206
+ const signX = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;
207
+ const signY = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;
208
+ const sizeOffset = alignment === 'center' ? 0 : size;
209
+
210
+ const calculateOffset = r => {
211
+ r = RADIUS_DOWNSCALE * r;
212
+ return [signX * (r + padding), signY * (r + padding + sizeOffset)];
213
+ };
214
+
215
+ return typeof radius === 'function' ? d => {
216
+ return calculateOffset(radius(d));
217
+ } : calculateOffset(radius);
218
+ }
219
+ //# sourceMappingURL=layer-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/api/layer-map.js"],"names":["extent","rgb","scaleLinear","scaleOrdinal","scaleLog","scalePoint","scaleQuantile","scaleQuantize","scaleSqrt","format","d3Format","moment","H3HexagonLayer","MVTLayer","GeoJsonLayer","SCALE_FUNCS","linear","ordinal","log","point","quantile","quantize","sqrt","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","propMap","outline","geojson","lineWidthScale","hexagonId","coverage","elevationScale","getHexagon","d","h3","mvt","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","utc","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"}