@deck.gl/carto 8.6.4 → 8.7.0-alpha.11

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 (78) hide show
  1. package/dist/dist.dev.js +49068 -6661
  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 +256 -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 +549 -190
  11. package/dist/es5/api/maps-v3-client.js.map +1 -1
  12. package/dist/es5/api/parseMap.js +207 -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 +30 -37
  17. package/dist/es5/config.js.map +1 -1
  18. package/dist/es5/index.js +20 -30
  19. package/dist/es5/index.js.map +1 -1
  20. package/dist/es5/layers/carto-dynamic-tile-layer.js +166 -0
  21. package/dist/es5/layers/carto-dynamic-tile-layer.js.map +1 -0
  22. package/dist/es5/layers/carto-layer.js +217 -131
  23. package/dist/es5/layers/carto-layer.js.map +1 -1
  24. package/dist/es5/style/color-bins-style.js +16 -11
  25. package/dist/es5/style/color-bins-style.js.map +1 -1
  26. package/dist/es5/style/color-categories-style.js +43 -14
  27. package/dist/es5/style/color-categories-style.js.map +1 -1
  28. package/dist/es5/style/color-continuous-style.js +16 -11
  29. package/dist/es5/style/color-continuous-style.js.map +1 -1
  30. package/dist/es5/style/palette.js +24 -12
  31. package/dist/es5/style/palette.js.map +1 -1
  32. package/dist/es5/style/utils.js +13 -6
  33. package/dist/es5/style/utils.js.map +1 -1
  34. package/dist/esm/api/index.js +1 -1
  35. package/dist/esm/api/index.js.map +1 -1
  36. package/dist/esm/api/layer-map.js +220 -0
  37. package/dist/esm/api/layer-map.js.map +1 -0
  38. package/dist/esm/api/maps-client.js +1 -1
  39. package/dist/esm/api/maps-client.js.map +1 -1
  40. package/dist/esm/api/maps-v3-client.js +166 -25
  41. package/dist/esm/api/maps-v3-client.js.map +1 -1
  42. package/dist/esm/api/parseMap.js +195 -0
  43. package/dist/esm/api/parseMap.js.map +1 -0
  44. package/dist/esm/config.js +11 -26
  45. package/dist/esm/config.js.map +1 -1
  46. package/dist/esm/index.js +1 -3
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/layers/carto-dynamic-tile-layer.js +97 -0
  49. package/dist/esm/layers/carto-dynamic-tile-layer.js.map +1 -0
  50. package/dist/esm/layers/carto-layer.js +35 -28
  51. package/dist/esm/layers/carto-layer.js.map +1 -1
  52. package/dist/esm/style/color-bins-style.js +1 -1
  53. package/dist/esm/style/color-bins-style.js.map +1 -1
  54. package/dist/esm/style/color-continuous-style.js +1 -1
  55. package/dist/esm/style/color-continuous-style.js.map +1 -1
  56. package/dist.min.js +278 -1
  57. package/package.json +13 -8
  58. package/src/api/index.js +1 -1
  59. package/src/api/layer-map.js +195 -0
  60. package/src/api/maps-client.js +3 -7
  61. package/src/api/maps-v3-client.js +140 -20
  62. package/src/api/parseMap.js +183 -0
  63. package/src/config.js +8 -39
  64. package/src/index.js +1 -2
  65. package/src/layers/carto-dynamic-tile-layer.js +86 -0
  66. package/src/layers/carto-layer.js +25 -25
  67. package/src/style/color-bins-style.js +2 -4
  68. package/src/style/color-continuous-style.js +2 -4
  69. package/dist/es5/layers/carto-bqtiler-layer.js +0 -32
  70. package/dist/es5/layers/carto-bqtiler-layer.js.map +0 -1
  71. package/dist/es5/layers/carto-sql-layer.js +0 -33
  72. package/dist/es5/layers/carto-sql-layer.js.map +0 -1
  73. package/dist/esm/layers/carto-bqtiler-layer.js +0 -16
  74. package/dist/esm/layers/carto-bqtiler-layer.js.map +0 -1
  75. package/dist/esm/layers/carto-sql-layer.js +0 -17
  76. package/dist/esm/layers/carto-sql-layer.js.map +0 -1
  77. package/src/layers/carto-bqtiler-layer.js +0 -21
  78. package/src/layers/carto-sql-layer.js +0 -22
@@ -1,50 +1,35 @@
1
- import { API_VERSIONS, DEFAULT_MAPS_URL_FORMAT } from './api/maps-api-common';
1
+ import { API_VERSIONS } from './api/maps-api-common';
2
2
  export const defaultClassicCredentials = {
3
- username: 'public',
4
3
  apiKey: 'default_public',
5
4
  region: 'us',
6
- mapsUrl: null
5
+ username: 'public'
7
6
  };
8
- const defaultCloudNativeCredentials = {
9
- accessToken: null,
10
- apiBaseUrl: null,
11
- mapsUrl: null
7
+ export const defaultCloudNativeCredentials = {
8
+ apiBaseUrl: 'https://gcp-us-east1.api.carto.com'
12
9
  };
13
10
  let credentials = {};
14
11
  setDefaultCredentials({});
15
- export function setDefaultCredentials(opts) {
16
- const apiVersion = opts.apiVersion || API_VERSIONS.V2;
12
+ export function setDefaultCredentials({
13
+ apiVersion,
14
+ ...rest
15
+ }) {
16
+ apiVersion = apiVersion || API_VERSIONS.V3;
17
17
 
18
18
  switch (apiVersion) {
19
19
  case API_VERSIONS.V1:
20
- opts.mapsUrl = opts.mapsUrl || DEFAULT_MAPS_URL_FORMAT[apiVersion];
21
- credentials = {
22
- apiVersion,
23
- ...defaultClassicCredentials,
24
- ...opts
25
- };
26
- break;
27
-
28
20
  case API_VERSIONS.V2:
29
- opts.mapsUrl = opts.mapsUrl || DEFAULT_MAPS_URL_FORMAT[apiVersion];
30
21
  credentials = {
31
22
  apiVersion,
32
23
  ...defaultClassicCredentials,
33
- ...opts
24
+ ...rest
34
25
  };
35
26
  break;
36
27
 
37
28
  case API_VERSIONS.V3:
38
- if (!opts.apiBaseUrl) {
39
- throw new Error("API version ".concat(API_VERSIONS.V3, " requires to define apiBaseUrl at credentials. Go to https://app.carto.com to get your apiBaseUrl."));
40
- }
41
-
42
- const apiBaseUrl = opts.apiBaseUrl || defaultCloudNativeCredentials.apiBaseUrl;
43
- opts.mapsUrl = opts.mapsUrl || buildMapsUrlFromBase(apiBaseUrl);
44
29
  credentials = {
45
30
  apiVersion,
46
31
  ...defaultCloudNativeCredentials,
47
- ...opts
32
+ ...rest
48
33
  };
49
34
  break;
50
35
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config.js"],"names":["API_VERSIONS","DEFAULT_MAPS_URL_FORMAT","defaultClassicCredentials","username","apiKey","region","mapsUrl","defaultCloudNativeCredentials","accessToken","apiBaseUrl","credentials","setDefaultCredentials","opts","apiVersion","V2","V1","V3","Error","buildMapsUrlFromBase","getDefaultCredentials","suffix","endsWith","substring"],"mappings":"AAAA,SAAQA,YAAR,EAAsBC,uBAAtB,QAAoD,uBAApD;AAEA,OAAO,MAAMC,yBAAyB,GAAG;AACvCC,EAAAA,QAAQ,EAAE,QAD6B;AAEvCC,EAAAA,MAAM,EAAE,gBAF+B;AAGvCC,EAAAA,MAAM,EAAE,IAH+B;AAIvCC,EAAAA,OAAO,EAAE;AAJ8B,CAAlC;AAOP,MAAMC,6BAA6B,GAAG;AACpCC,EAAAA,WAAW,EAAE,IADuB;AAEpCC,EAAAA,UAAU,EAAE,IAFwB;AAGpCH,EAAAA,OAAO,EAAE;AAH2B,CAAtC;AAMA,IAAII,WAAW,GAAG,EAAlB;AAEAC,qBAAqB,CAAC,EAAD,CAArB;AAEA,OAAO,SAASA,qBAAT,CAA+BC,IAA/B,EAAqC;AAC1C,QAAMC,UAAU,GAAGD,IAAI,CAACC,UAAL,IAAmBb,YAAY,CAACc,EAAnD;;AAEA,UAAQD,UAAR;AACE,SAAKb,YAAY,CAACe,EAAlB;AACEH,MAAAA,IAAI,CAACN,OAAL,GAAeM,IAAI,CAACN,OAAL,IAAgBL,uBAAuB,CAACY,UAAD,CAAtD;AACAH,MAAAA,WAAW,GAAG;AACZG,QAAAA,UADY;AAEZ,WAAGX,yBAFS;AAGZ,WAAGU;AAHS,OAAd;AAKA;;AAEF,SAAKZ,YAAY,CAACc,EAAlB;AACEF,MAAAA,IAAI,CAACN,OAAL,GAAeM,IAAI,CAACN,OAAL,IAAgBL,uBAAuB,CAACY,UAAD,CAAtD;AACAH,MAAAA,WAAW,GAAG;AACZG,QAAAA,UADY;AAEZ,WAAGX,yBAFS;AAGZ,WAAGU;AAHS,OAAd;AAMA;;AACF,SAAKZ,YAAY,CAACgB,EAAlB;AACE,UAAI,CAACJ,IAAI,CAACH,UAAV,EAAsB;AACpB,cAAM,IAAIQ,KAAJ,uBAEFjB,YAAY,CAACgB,EAFX,wGAAN;AAKD;;AAED,YAAMP,UAAU,GAAGG,IAAI,CAACH,UAAL,IAAmBF,6BAA6B,CAACE,UAApE;AACAG,MAAAA,IAAI,CAACN,OAAL,GAAeM,IAAI,CAACN,OAAL,IAAgBY,oBAAoB,CAACT,UAAD,CAAnD;AACAC,MAAAA,WAAW,GAAG;AACZG,QAAAA,UADY;AAEZ,WAAGN,6BAFS;AAGZ,WAAGK;AAHS,OAAd;AAKA;;AACF;AACE,YAAM,IAAIK,KAAJ,+BAAiCJ,UAAjC,8BAAN;AArCJ;AAuCD;AAED,OAAO,SAASM,qBAAT,GAAiC;AACtC,SAAOT,WAAP;AACD;AAED,OAAO,SAASQ,oBAAT,CAA8BT,UAA9B,EAA0C;AAC/C,MAAIW,MAAM,GAAG,UAAb;;AACA,MAAIX,UAAU,CAACY,QAAX,CAAoB,GAApB,CAAJ,EAA8B;AAC5BD,IAAAA,MAAM,GAAGA,MAAM,CAACE,SAAP,CAAiB,CAAjB,CAAT;AACD;;AAED,mBAAUb,UAAV,SAAuBW,MAAvB;AACD","sourcesContent":["import {API_VERSIONS, DEFAULT_MAPS_URL_FORMAT} from './api/maps-api-common';\n\nexport const defaultClassicCredentials = {\n username: 'public',\n apiKey: 'default_public',\n region: 'us',\n mapsUrl: null\n};\n\nconst defaultCloudNativeCredentials = {\n accessToken: null,\n apiBaseUrl: null,\n mapsUrl: null\n};\n\nlet credentials = {};\n\nsetDefaultCredentials({});\n\nexport function setDefaultCredentials(opts) {\n const apiVersion = opts.apiVersion || API_VERSIONS.V2;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n opts.mapsUrl = opts.mapsUrl || DEFAULT_MAPS_URL_FORMAT[apiVersion];\n credentials = {\n apiVersion,\n ...defaultClassicCredentials,\n ...opts\n };\n break;\n\n case API_VERSIONS.V2:\n opts.mapsUrl = opts.mapsUrl || DEFAULT_MAPS_URL_FORMAT[apiVersion];\n credentials = {\n apiVersion,\n ...defaultClassicCredentials,\n ...opts\n };\n\n break;\n case API_VERSIONS.V3:\n if (!opts.apiBaseUrl) {\n throw new Error(\n `API version ${\n API_VERSIONS.V3\n } requires to define apiBaseUrl at credentials. Go to https://app.carto.com to get your apiBaseUrl.`\n );\n }\n\n const apiBaseUrl = opts.apiBaseUrl || defaultCloudNativeCredentials.apiBaseUrl;\n opts.mapsUrl = opts.mapsUrl || buildMapsUrlFromBase(apiBaseUrl);\n credentials = {\n apiVersion,\n ...defaultCloudNativeCredentials,\n ...opts\n };\n break;\n default:\n throw new Error(`Invalid API version ${apiVersion}. Use API_VERSIONS enum.`);\n }\n}\n\nexport function getDefaultCredentials() {\n return credentials;\n}\n\nexport function buildMapsUrlFromBase(apiBaseUrl) {\n let suffix = '/v3/maps';\n if (apiBaseUrl.endsWith('/')) {\n suffix = suffix.substring(1);\n }\n\n return `${apiBaseUrl}${suffix}`;\n}\n"],"file":"config.js"}
1
+ {"version":3,"sources":["../../src/config.js"],"names":["API_VERSIONS","defaultClassicCredentials","apiKey","region","username","defaultCloudNativeCredentials","apiBaseUrl","credentials","setDefaultCredentials","apiVersion","rest","V3","V1","V2","Error","getDefaultCredentials","buildMapsUrlFromBase","suffix","endsWith","substring"],"mappings":"AAAA,SAAQA,YAAR,QAA2B,uBAA3B;AAEA,OAAO,MAAMC,yBAAyB,GAAG;AACvCC,EAAAA,MAAM,EAAE,gBAD+B;AAEvCC,EAAAA,MAAM,EAAE,IAF+B;AAGvCC,EAAAA,QAAQ,EAAE;AAH6B,CAAlC;AAMP,OAAO,MAAMC,6BAA6B,GAAG;AAC3CC,EAAAA,UAAU,EAAE;AAD+B,CAAtC;AAIP,IAAIC,WAAW,GAAG,EAAlB;AAEAC,qBAAqB,CAAC,EAAD,CAArB;AAEA,OAAO,SAASA,qBAAT,CAA+B;AAACC,EAAAA,UAAD;AAAa,KAAGC;AAAhB,CAA/B,EAAsD;AAC3DD,EAAAA,UAAU,GAAGA,UAAU,IAAIT,YAAY,CAACW,EAAxC;;AAEA,UAAQF,UAAR;AACE,SAAKT,YAAY,CAACY,EAAlB;AACA,SAAKZ,YAAY,CAACa,EAAlB;AACEN,MAAAA,WAAW,GAAG;AAACE,QAAAA,UAAD;AAAa,WAAGR,yBAAhB;AAA2C,WAAGS;AAA9C,OAAd;AACA;;AACF,SAAKV,YAAY,CAACW,EAAlB;AACEJ,MAAAA,WAAW,GAAG;AAACE,QAAAA,UAAD;AAAa,WAAGJ,6BAAhB;AAA+C,WAAGK;AAAlD,OAAd;AACA;;AACF;AACE,YAAM,IAAII,KAAJ,+BAAiCL,UAAjC,8BAAN;AATJ;AAWD;AAED,OAAO,SAASM,qBAAT,GAAiC;AACtC,SAAOR,WAAP;AACD;AAED,OAAO,SAASS,oBAAT,CAA8BV,UAA9B,EAA0C;AAC/C,MAAIW,MAAM,GAAG,UAAb;;AACA,MAAIX,UAAU,CAACY,QAAX,CAAoB,GAApB,CAAJ,EAA8B;AAC5BD,IAAAA,MAAM,GAAGA,MAAM,CAACE,SAAP,CAAiB,CAAjB,CAAT;AACD;;AAED,mBAAUb,UAAV,SAAuBW,MAAvB;AACD","sourcesContent":["import {API_VERSIONS} from './api/maps-api-common';\n\nexport const defaultClassicCredentials = {\n apiKey: 'default_public',\n region: 'us',\n username: 'public'\n};\n\nexport const defaultCloudNativeCredentials = {\n apiBaseUrl: 'https://gcp-us-east1.api.carto.com'\n};\n\nlet credentials = {};\n\nsetDefaultCredentials({});\n\nexport function setDefaultCredentials({apiVersion, ...rest}) {\n apiVersion = apiVersion || API_VERSIONS.V3;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n case API_VERSIONS.V2:\n credentials = {apiVersion, ...defaultClassicCredentials, ...rest};\n break;\n case API_VERSIONS.V3:\n credentials = {apiVersion, ...defaultCloudNativeCredentials, ...rest};\n break;\n default:\n throw new Error(`Invalid API version ${apiVersion}. Use API_VERSIONS enum.`);\n }\n}\n\nexport function getDefaultCredentials() {\n return credentials;\n}\n\nexport function buildMapsUrlFromBase(apiBaseUrl) {\n let suffix = '/v3/maps';\n if (apiBaseUrl.endsWith('/')) {\n suffix = suffix.substring(1);\n }\n\n return `${apiBaseUrl}${suffix}`;\n}\n"],"file":"config.js"}
package/dist/esm/index.js CHANGED
@@ -1,10 +1,8 @@
1
1
  export { getDefaultCredentials, setDefaultCredentials } from './config.js';
2
- export { default as CartoSQLLayer } from './layers/carto-sql-layer';
3
- export { default as CartoBQTilerLayer } from './layers/carto-bqtiler-layer';
4
2
  export { default as CartoLayer } from './layers/carto-layer';
5
3
  export { default as BASEMAP } from './basemap';
6
4
  export { default as colorBins } from './style/color-bins-style';
7
5
  export { default as colorCategories } from './style/color-categories-style';
8
6
  export { default as colorContinuous } from './style/color-continuous-style';
9
- export { FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, getDataV2 as _getDataV2, getData, mapInstantiation as _mapInstantiation } from './api';
7
+ export { FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, fetchMap, getDataV2 as _getDataV2, getData, mapInstantiation as _mapInstantiation } from './api';
10
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.js"],"names":["getDefaultCredentials","setDefaultCredentials","default","CartoSQLLayer","CartoBQTilerLayer","CartoLayer","BASEMAP","colorBins","colorCategories","colorContinuous","FORMATS","MAP_TYPES","API_VERSIONS","fetchLayerData","getDataV2","_getDataV2","getData","mapInstantiation","_mapInstantiation"],"mappings":"AAAA,SAAQA,qBAAR,EAA+BC,qBAA/B,QAA2D,aAA3D;AACA,SAAQC,OAAO,IAAIC,aAAnB,QAAuC,0BAAvC;AACA,SAAQD,OAAO,IAAIE,iBAAnB,QAA2C,8BAA3C;AACA,SAAQF,OAAO,IAAIG,UAAnB,QAAoC,sBAApC;AACA,SAAQH,OAAO,IAAII,OAAnB,QAAiC,WAAjC;AACA,SAAQJ,OAAO,IAAIK,SAAnB,QAAmC,0BAAnC;AACA,SAAQL,OAAO,IAAIM,eAAnB,QAAyC,gCAAzC;AACA,SAAQN,OAAO,IAAIO,eAAnB,QAAyC,gCAAzC;AACA,SACEC,OADF,EAEEC,SAFF,EAGEC,YAHF,EAIEC,cAJF,EAKEC,SAAS,IAAIC,UALf,EAMEC,OANF,EAOEC,gBAAgB,IAAIC,iBAPtB,QAQO,OARP","sourcesContent":["export {getDefaultCredentials, setDefaultCredentials} from './config.js';\nexport {default as CartoSQLLayer} from './layers/carto-sql-layer';\nexport {default as CartoBQTilerLayer} from './layers/carto-bqtiler-layer';\nexport {default as CartoLayer} from './layers/carto-layer';\nexport {default as BASEMAP} from './basemap';\nexport {default as colorBins} from './style/color-bins-style';\nexport {default as colorCategories} from './style/color-categories-style';\nexport {default as colorContinuous} from './style/color-continuous-style';\nexport {\n FORMATS,\n MAP_TYPES,\n API_VERSIONS,\n fetchLayerData,\n getDataV2 as _getDataV2,\n getData,\n mapInstantiation as _mapInstantiation\n} from './api';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.js"],"names":["getDefaultCredentials","setDefaultCredentials","default","CartoLayer","BASEMAP","colorBins","colorCategories","colorContinuous","FORMATS","MAP_TYPES","API_VERSIONS","fetchLayerData","fetchMap","getDataV2","_getDataV2","getData","mapInstantiation","_mapInstantiation"],"mappings":"AAAA,SAAQA,qBAAR,EAA+BC,qBAA/B,QAA2D,aAA3D;AACA,SAAQC,OAAO,IAAIC,UAAnB,QAAoC,sBAApC;AACA,SAAQD,OAAO,IAAIE,OAAnB,QAAiC,WAAjC;AACA,SAAQF,OAAO,IAAIG,SAAnB,QAAmC,0BAAnC;AACA,SAAQH,OAAO,IAAII,eAAnB,QAAyC,gCAAzC;AACA,SAAQJ,OAAO,IAAIK,eAAnB,QAAyC,gCAAzC;AACA,SACEC,OADF,EAEEC,SAFF,EAGEC,YAHF,EAIEC,cAJF,EAKEC,QALF,EAMEC,SAAS,IAAIC,UANf,EAOEC,OAPF,EAQEC,gBAAgB,IAAIC,iBARtB,QASO,OATP","sourcesContent":["export {getDefaultCredentials, setDefaultCredentials} from './config.js';\nexport {default as CartoLayer} from './layers/carto-layer';\nexport {default as BASEMAP} from './basemap';\nexport {default as colorBins} from './style/color-bins-style';\nexport {default as colorCategories} from './style/color-categories-style';\nexport {default as colorContinuous} from './style/color-continuous-style';\nexport {\n FORMATS,\n MAP_TYPES,\n API_VERSIONS,\n fetchLayerData,\n fetchMap,\n getDataV2 as _getDataV2,\n getData,\n mapInstantiation as _mapInstantiation\n} from './api';\n"],"file":"index.js"}
@@ -0,0 +1,97 @@
1
+ import { log } from '@deck.gl/core';
2
+ import { ClipExtension } from '@deck.gl/extensions';
3
+ import { MVTLayer, _getURLFromTemplate } from '@deck.gl/geo-layers';
4
+ import { GeoJsonLayer } from '@deck.gl/layers';
5
+ import { geojsonToBinary } from '@loaders.gl/gis';
6
+ import { encodeParameter } from '../api/maps-api-common';
7
+
8
+ function parseJSON(arrayBuffer) {
9
+ return JSON.parse(new TextDecoder().decode(arrayBuffer));
10
+ }
11
+
12
+ function parseCartoDynamicTile(arrayBuffer, options) {
13
+ if (!arrayBuffer) return null;
14
+ const formatTiles = options && options.cartoDynamicTile && options.cartoDynamicTile.formatTiles;
15
+ if (formatTiles === 'geojson') return geojsonToBinary(parseJSON(arrayBuffer).features);
16
+ return null;
17
+ }
18
+
19
+ const CartoDynamicTileLoader = {
20
+ name: 'CARTO Dynamic Tile',
21
+ id: 'cartoDynamicTile',
22
+ module: 'carto',
23
+ extensions: ['pbf'],
24
+ mimeTypes: ['application/x-protobuf'],
25
+ category: 'geometry',
26
+ worker: false,
27
+ parse: async (arrayBuffer, options) => parseCartoDynamicTile(arrayBuffer, options),
28
+ parseSync: parseCartoDynamicTile,
29
+ options: {
30
+ cartoDynamicTile: {
31
+ formatTiles: 'geojson'
32
+ }
33
+ }
34
+ };
35
+ export default class CartoDynamicTileLayer extends MVTLayer {
36
+ getTileData(tile) {
37
+ let url = _getURLFromTemplate(this.state.data, tile);
38
+
39
+ if (!url) {
40
+ return Promise.reject('Invalid URL');
41
+ }
42
+
43
+ let loadOptions = this.getLoadOptions();
44
+ const {
45
+ fetch,
46
+ formatTiles
47
+ } = this.props;
48
+ const {
49
+ signal
50
+ } = tile;
51
+ loadOptions = { ...loadOptions,
52
+ mimeType: 'application/x-protobuf'
53
+ };
54
+
55
+ if (formatTiles) {
56
+ log.assert(['geojson'].includes(formatTiles), "Invalid value for formatTiles: ".concat(formatTiles));
57
+ url += "&".concat(encodeParameter('formatTiles', formatTiles));
58
+ loadOptions.cartoBinaryTile = {
59
+ formatTiles
60
+ };
61
+ }
62
+
63
+ return fetch(url, {
64
+ propName: 'data',
65
+ layer: this,
66
+ loadOptions,
67
+ signal
68
+ });
69
+ }
70
+
71
+ renderSubLayers(props) {
72
+ if (props.data === null) {
73
+ return null;
74
+ }
75
+
76
+ props.autoHighlight = false;
77
+ const {
78
+ bbox: {
79
+ west,
80
+ south,
81
+ east,
82
+ north
83
+ }
84
+ } = props.tile;
85
+ props.extensions = [new ClipExtension()];
86
+ props.clipBounds = [west, south, east, north];
87
+ const subLayer = new GeoJsonLayer({ ...props
88
+ });
89
+ return subLayer;
90
+ }
91
+
92
+ }
93
+ CartoDynamicTileLayer.layerName = 'CartoDynamicTileLayer';
94
+ CartoDynamicTileLayer.defaultProps = { ...MVTLayer.defaultProps,
95
+ loaders: [CartoDynamicTileLoader]
96
+ };
97
+ //# sourceMappingURL=carto-dynamic-tile-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layers/carto-dynamic-tile-layer.js"],"names":["log","ClipExtension","MVTLayer","_getURLFromTemplate","GeoJsonLayer","geojsonToBinary","encodeParameter","parseJSON","arrayBuffer","JSON","parse","TextDecoder","decode","parseCartoDynamicTile","options","formatTiles","cartoDynamicTile","features","CartoDynamicTileLoader","name","id","module","extensions","mimeTypes","category","worker","parseSync","CartoDynamicTileLayer","getTileData","tile","url","state","data","Promise","reject","loadOptions","getLoadOptions","fetch","props","signal","mimeType","assert","includes","cartoBinaryTile","propName","layer","renderSubLayers","autoHighlight","bbox","west","south","east","north","clipBounds","subLayer","layerName","defaultProps","loaders"],"mappings":"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","sourcesContent":["/* global TextDecoder */\nimport {log} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\nimport {MVTLayer, _getURLFromTemplate} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {encodeParameter} from '../api/maps-api-common';\n\nfunction parseJSON(arrayBuffer) {\n return JSON.parse(new TextDecoder().decode(arrayBuffer));\n}\n\nfunction parseCartoDynamicTile(arrayBuffer, options) {\n if (!arrayBuffer) return null;\n const formatTiles = options && options.cartoDynamicTile && options.cartoDynamicTile.formatTiles;\n if (formatTiles === 'geojson') return geojsonToBinary(parseJSON(arrayBuffer).features);\n return null;\n}\n\nconst CartoDynamicTileLoader = {\n name: 'CARTO Dynamic Tile',\n id: 'cartoDynamicTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/x-protobuf'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoDynamicTile(arrayBuffer, options),\n parseSync: parseCartoDynamicTile,\n options: {\n cartoDynamicTile: {\n formatTiles: 'geojson'\n }\n }\n};\n\nexport default class CartoDynamicTileLayer extends MVTLayer {\n getTileData(tile) {\n let url = _getURLFromTemplate(this.state.data, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n\n let loadOptions = this.getLoadOptions();\n const {fetch, formatTiles} = this.props;\n const {signal} = tile;\n\n loadOptions = {\n ...loadOptions,\n mimeType: 'application/x-protobuf'\n };\n\n if (formatTiles) {\n log.assert(\n ['geojson'].includes(formatTiles),\n `Invalid value for formatTiles: ${formatTiles}`\n );\n url += `&${encodeParameter('formatTiles', formatTiles)}`;\n loadOptions.cartoBinaryTile = {formatTiles};\n }\n\n return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n renderSubLayers(props) {\n if (props.data === null) {\n return null;\n }\n\n props.autoHighlight = false;\n\n const {\n bbox: {west, south, east, north}\n } = props.tile;\n props.extensions = [new ClipExtension()];\n props.clipBounds = [west, south, east, north];\n\n const subLayer = new GeoJsonLayer({\n ...props\n });\n return subLayer;\n }\n}\n\nCartoDynamicTileLayer.layerName = 'CartoDynamicTileLayer';\nCartoDynamicTileLayer.defaultProps = {...MVTLayer.defaultProps, loaders: [CartoDynamicTileLoader]};\n"],"file":"carto-dynamic-tile-layer.js"}
@@ -1,8 +1,9 @@
1
1
  import { CompositeLayer, log } from '@deck.gl/core';
2
+ import CartoDynamicTileLayer from './carto-dynamic-tile-layer';
2
3
  import { MVTLayer } from '@deck.gl/geo-layers';
3
4
  import { GeoJsonLayer } from '@deck.gl/layers';
4
- import { getData, getDataV2, API_VERSIONS } from '../api';
5
- import { MAP_TYPES } from '../api/maps-api-common';
5
+ import { fetchLayerData, getDataV2, API_VERSIONS } from '../api';
6
+ import { FORMATS, MAP_TYPES } from '../api/maps-api-common';
6
7
  import { getDefaultCredentials } from '../config';
7
8
  const defaultProps = {
8
9
  data: null,
@@ -18,8 +19,11 @@ const defaultProps = {
18
19
  compare: false,
19
20
  optional: true
20
21
  },
22
+ uniqueIdProperty: 'cartodb_id',
21
23
  credentials: null,
22
24
  connection: null,
25
+ format: null,
26
+ clientId: null,
23
27
  geoColumn: null,
24
28
  columns: {
25
29
  type: 'array',
@@ -98,10 +102,9 @@ export default class CartoLayer extends CompositeLayer {
98
102
  const {
99
103
  type,
100
104
  data: source,
101
- connection,
105
+ clientId,
102
106
  credentials,
103
- geoColumn,
104
- columns
107
+ ...rest
105
108
  } = this.props;
106
109
  const localConfig = { ...getDefaultCredentials(),
107
110
  ...credentials
@@ -109,32 +112,30 @@ export default class CartoLayer extends CompositeLayer {
109
112
  const {
110
113
  apiVersion
111
114
  } = localConfig;
112
- let data;
113
-
114
- if (apiVersion === API_VERSIONS.V3) {
115
- data = await getData({
115
+ let result;
116
+
117
+ if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {
118
+ result = {
119
+ data: await getDataV2({
120
+ type,
121
+ source,
122
+ credentials
123
+ })
124
+ };
125
+ } else {
126
+ result = await fetchLayerData({
116
127
  type,
117
128
  source,
118
- connection,
129
+ clientId,
119
130
  credentials,
120
- geoColumn,
121
- columns
122
- });
123
- } else if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {
124
- data = await getDataV2({
125
- type,
126
- source,
127
- credentials
131
+ ...rest
128
132
  });
129
- } else {
130
- log.assert("Unknow apiVersion ".concat(apiVersion, ". Use API_VERSIONS enum."));
131
133
  }
132
134
 
133
- this.setState({
134
- data,
135
+ this.setState({ ...result,
135
136
  apiVersion
136
137
  });
137
- this.props.onDataLoad(data);
138
+ this.props.onDataLoad(result.data);
138
139
  } catch (err) {
139
140
  if (this.props.onDataError) {
140
141
  this.props.onDataError(err);
@@ -147,24 +148,30 @@ export default class CartoLayer extends CompositeLayer {
147
148
  renderLayers() {
148
149
  const {
149
150
  data,
151
+ format,
150
152
  apiVersion
151
153
  } = this.state;
152
- const {
153
- type
154
- } = this.props;
155
154
  if (!data) return null;
156
155
  const {
156
+ type,
157
157
  updateTriggers
158
158
  } = this.props;
159
159
  let layer;
160
160
 
161
- if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2 || type === MAP_TYPES.TILESET) {
161
+ if (apiVersion === API_VERSIONS.V3 && type === MAP_TYPES.TABLE && format === FORMATS.TILEJSON) {
162
+ layer = CartoDynamicTileLayer;
163
+ } else if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2 || format === FORMATS.TILEJSON) {
162
164
  layer = MVTLayer;
163
165
  } else {
164
166
  layer = GeoJsonLayer;
165
167
  }
166
168
 
167
- const props = { ...this.props
169
+ const {
170
+ uniqueIdProperty
171
+ } = defaultProps;
172
+ const props = {
173
+ uniqueIdProperty,
174
+ ...this.props
168
175
  };
169
176
  delete props.data;
170
177
  return new layer(props, this.getSubLayerProps({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/carto-layer.js"],"names":["CompositeLayer","log","MVTLayer","GeoJsonLayer","getData","getDataV2","API_VERSIONS","MAP_TYPES","getDefaultCredentials","defaultProps","data","type","onDataLoad","value","compare","onDataError","optional","credentials","connection","geoColumn","columns","CartoLayer","initializeState","state","apiVersion","isLoaded","getSubLayers","length","_checkProps","props","localCreds","assert","Object","values","includes","V1","V2","QUERY","TILESET","V3","TABLE","Array","isArray","updateState","oldProps","changeFlags","shouldUpdateData","dataChanged","JSON","stringify","setState","_updateData","source","localConfig","err","renderLayers","updateTriggers","layer","getSubLayerProps","id","layerName"],"mappings":"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","sourcesContent":["import {CompositeLayer, log} from '@deck.gl/core';\nimport {MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {getData, getDataV2, API_VERSIONS} from '../api';\nimport {MAP_TYPES} from '../api/maps-api-common';\nimport {getDefaultCredentials} from '../config';\n\nconst defaultProps = {\n // (String, required): data resource to load. table name, sql query or tileset name.\n data: null,\n // (Enum (MAP_TYPES), required)\n type: null,\n onDataLoad: {type: 'function', value: data => {}, compare: false},\n onDataError: {type: 'function', value: null, compare: false, optional: true},\n\n // override carto credentials for the layer, set to null to read from default\n credentials: null,\n\n /*********************/\n /* API v3 PARAMETERS */\n /**********************/\n // (String, required): connection name at CARTO platform\n connection: null,\n\n // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.\n geoColumn: null,\n\n // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.\n columns: {type: 'array', value: null}\n};\n\nexport default class CartoLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n data: null,\n apiVersion: null\n };\n }\n\n get isLoaded() {\n return this.getSubLayers().length > 0 && super.isLoaded;\n }\n\n _checkProps(props) {\n const {type, credentials, connection, geoColumn, columns} = props;\n const localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\n\n log.assert(\n Object.values(API_VERSIONS).includes(apiVersion),\n `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`\n );\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n log.assert(\n type === MAP_TYPES.QUERY || type === MAP_TYPES.TILESET,\n `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`\n );\n log.assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);\n } else if (apiVersion === API_VERSIONS.V3) {\n log.assert(connection, 'Missing mandatory connection parameter');\n log.assert(\n Object.values(MAP_TYPES).includes(type),\n `Invalid type ${type}. Use MAP_TYPES enum.`\n );\n if (type !== MAP_TYPES.TABLE) {\n log.assert(!geoColumn, `geoColumn prop is only supported for type ${MAP_TYPES.TABLE}`);\n log.assert(!columns, `columns prop is only supported for type ${MAP_TYPES.TABLE}`);\n }\n if (columns) {\n log.assert(Array.isArray(columns), 'columns prop must be an Array');\n }\n }\n }\n\n updateState({props, oldProps, changeFlags}) {\n this._checkProps(props);\n const shouldUpdateData =\n changeFlags.dataChanged ||\n props.connection !== oldProps.connection ||\n props.geoColumn !== oldProps.geoColumn ||\n JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||\n props.type !== oldProps.type ||\n JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials);\n\n if (shouldUpdateData) {\n this.setState({data: null, apiVersion: null});\n this._updateData();\n }\n }\n\n async _updateData() {\n try {\n const {type, data: source, connection, credentials, geoColumn, columns} = this.props;\n const localConfig = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localConfig;\n\n let data;\n\n if (apiVersion === API_VERSIONS.V3) {\n data = await getData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns\n });\n } else if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n data = await getDataV2({type, source, credentials});\n } else {\n log.assert(`Unknow apiVersion ${apiVersion}. Use API_VERSIONS enum.`);\n }\n\n this.setState({data, apiVersion});\n this.props.onDataLoad(data);\n } catch (err) {\n if (this.props.onDataError) {\n this.props.onDataError(err);\n } else {\n throw err;\n }\n }\n }\n\n renderLayers() {\n const {data, apiVersion} = this.state;\n const {type} = this.props;\n\n if (!data) return null;\n\n const {updateTriggers} = this.props;\n\n let layer;\n\n if (\n apiVersion === API_VERSIONS.V1 ||\n apiVersion === API_VERSIONS.V2 ||\n type === MAP_TYPES.TILESET\n ) {\n layer = MVTLayer;\n } else {\n layer = GeoJsonLayer;\n }\n\n const props = {...this.props};\n delete props.data;\n\n // eslint-disable-next-line new-cap\n return new layer(\n props,\n this.getSubLayerProps({\n id: `carto-${layer.layerName}`,\n data,\n updateTriggers\n })\n );\n }\n}\n\nCartoLayer.layerName = 'CartoLayer';\nCartoLayer.defaultProps = defaultProps;\n"],"file":"carto-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/carto-layer.js"],"names":["CompositeLayer","log","CartoDynamicTileLayer","MVTLayer","GeoJsonLayer","fetchLayerData","getDataV2","API_VERSIONS","FORMATS","MAP_TYPES","getDefaultCredentials","defaultProps","data","type","onDataLoad","value","compare","onDataError","optional","uniqueIdProperty","credentials","connection","format","clientId","geoColumn","columns","CartoLayer","initializeState","state","apiVersion","isLoaded","getSubLayers","length","_checkProps","props","localCreds","assert","Object","values","includes","V1","V2","QUERY","TILESET","V3","TABLE","Array","isArray","updateState","oldProps","changeFlags","shouldUpdateData","dataChanged","JSON","stringify","setState","_updateData","source","rest","localConfig","result","err","renderLayers","updateTriggers","layer","TILEJSON","getSubLayerProps","id","layerName"],"mappings":"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","sourcesContent":["import {CompositeLayer, log} from '@deck.gl/core';\nimport CartoDynamicTileLayer from './carto-dynamic-tile-layer';\nimport {MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {fetchLayerData, getDataV2, API_VERSIONS} from '../api';\nimport {FORMATS, MAP_TYPES} from '../api/maps-api-common';\nimport {getDefaultCredentials} from '../config';\n\nconst defaultProps = {\n // (String, required): data resource to load. table name, sql query or tileset name.\n data: null,\n // (Enum (MAP_TYPES), required)\n type: null,\n onDataLoad: {type: 'function', value: data => {}, compare: false},\n onDataError: {type: 'function', value: null, compare: false, optional: true},\n uniqueIdProperty: 'cartodb_id',\n\n // override carto credentials for the layer, set to null to read from default\n credentials: null,\n\n /*********************/\n /* API v3 PARAMETERS */\n /**********************/\n // (String, required): connection name at CARTO platform\n connection: null,\n\n // (String, optional): format of data\n format: null,\n\n // (String, optional): clientId identifier used for internal tracing, place here a string to identify the client who is doing the request.\n clientId: null,\n\n // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.\n geoColumn: null,\n\n // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.\n columns: {type: 'array', value: null}\n};\n\nexport default class CartoLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n data: null,\n apiVersion: null\n };\n }\n\n get isLoaded() {\n return this.getSubLayers().length > 0 && super.isLoaded;\n }\n\n _checkProps(props) {\n const {type, credentials, connection, geoColumn, columns} = props;\n const localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\n\n log.assert(\n Object.values(API_VERSIONS).includes(apiVersion),\n `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`\n );\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n log.assert(\n type === MAP_TYPES.QUERY || type === MAP_TYPES.TILESET,\n `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`\n );\n log.assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);\n } else if (apiVersion === API_VERSIONS.V3) {\n log.assert(connection, 'Missing mandatory connection parameter');\n log.assert(\n Object.values(MAP_TYPES).includes(type),\n `Invalid type ${type}. Use MAP_TYPES enum.`\n );\n if (type !== MAP_TYPES.TABLE) {\n log.assert(!geoColumn, `geoColumn prop is only supported for type ${MAP_TYPES.TABLE}`);\n log.assert(!columns, `columns prop is only supported for type ${MAP_TYPES.TABLE}`);\n }\n if (columns) {\n log.assert(Array.isArray(columns), 'columns prop must be an Array');\n }\n }\n }\n\n updateState({props, oldProps, changeFlags}) {\n this._checkProps(props);\n const shouldUpdateData =\n changeFlags.dataChanged ||\n props.connection !== oldProps.connection ||\n props.geoColumn !== oldProps.geoColumn ||\n JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||\n props.type !== oldProps.type ||\n JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials);\n\n if (shouldUpdateData) {\n this.setState({data: null, apiVersion: null});\n this._updateData();\n }\n }\n\n async _updateData() {\n try {\n const {type, data: source, clientId, credentials, ...rest} = this.props;\n const localConfig = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localConfig;\n\n let result;\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n result = {data: await getDataV2({type, source, credentials})};\n } else {\n result = await fetchLayerData({type, source, clientId, credentials, ...rest});\n }\n\n this.setState({...result, apiVersion});\n this.props.onDataLoad(result.data);\n } catch (err) {\n if (this.props.onDataError) {\n this.props.onDataError(err);\n } else {\n throw err;\n }\n }\n }\n\n renderLayers() {\n const {data, format, apiVersion} = this.state;\n\n if (!data) return null;\n\n const {type, updateTriggers} = this.props;\n\n let layer;\n\n if (apiVersion === API_VERSIONS.V3 && type === MAP_TYPES.TABLE && format === FORMATS.TILEJSON) {\n layer = CartoDynamicTileLayer;\n } else if (\n apiVersion === API_VERSIONS.V1 ||\n apiVersion === API_VERSIONS.V2 ||\n format === FORMATS.TILEJSON\n ) {\n layer = MVTLayer;\n } else {\n layer = GeoJsonLayer;\n }\n\n const {uniqueIdProperty} = defaultProps;\n const props = {uniqueIdProperty, ...this.props};\n delete props.data;\n\n // eslint-disable-next-line new-cap\n return new layer(\n props,\n this.getSubLayerProps({\n id: `carto-${layer.layerName}`,\n data,\n updateTriggers\n })\n );\n }\n}\n\nCartoLayer.layerName = 'CartoLayer';\nCartoLayer.defaultProps = defaultProps;\n"],"file":"carto-layer.js"}
@@ -8,7 +8,7 @@ export default function colorBins({
8
8
  nullColor = NULL_COLOR
9
9
  }) {
10
10
  assert(Array.isArray(domain), 'Expected "domain" to be an array of numbers');
11
- const palette = typeof colors === 'string' ? getPalette(colors, domain.length) : colors;
11
+ const palette = typeof colors === 'string' ? getPalette(colors, domain.length + 1) : colors;
12
12
  const color = scaleThreshold().domain(domain).range(palette);
13
13
  return d => {
14
14
  const value = getAttrValue(attr, d);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/style/color-bins-style.js"],"names":["scaleThreshold","getPalette","DEFAULT_PALETTE","NULL_COLOR","assert","getAttrValue","colorBins","attr","domain","colors","nullColor","Array","isArray","palette","length","color","range","d","value","Number","isFinite"],"mappings":"AAAA,SAAQA,cAAR,QAA6B,UAA7B;AACA,OAAOC,UAAP,IAAoBC,eAApB,EAAqCC,UAArC,QAAsD,WAAtD;AACA,SAAQC,MAAR,EAAgBC,YAAhB,QAAmC,SAAnC;AAEA,eAAe,SAASC,SAAT,CAAmB;AAChCC,EAAAA,IADgC;AAEhCC,EAAAA,MAFgC;AAGhCC,EAAAA,MAAM,GAAGP,eAHuB;AAIhCQ,EAAAA,SAAS,GAAGP;AAJoB,CAAnB,EAKZ;AACDC,EAAAA,MAAM,CAACO,KAAK,CAACC,OAAN,CAAcJ,MAAd,CAAD,EAAwB,6CAAxB,CAAN;AAEA,QAAMK,OAAO,GAAG,OAAOJ,MAAP,KAAkB,QAAlB,GAA6BR,UAAU,CAACQ,MAAD,EAASD,MAAM,CAACM,MAAhB,CAAvC,GAAiEL,MAAjF;AAEA,QAAMM,KAAK,GAAGf,cAAc,GACzBQ,MADW,CACJA,MADI,EAEXQ,KAFW,CAELH,OAFK,CAAd;AAIA,SAAOI,CAAC,IAAI;AACV,UAAMC,KAAK,GAAGb,YAAY,CAACE,IAAD,EAAOU,CAAP,CAA1B;AACA,WAAOE,MAAM,CAACC,QAAP,CAAgBF,KAAhB,IAAyBH,KAAK,CAACG,KAAD,CAA9B,GAAwCR,SAA/C;AACD,GAHD;AAID","sourcesContent":["import {scaleThreshold} from 'd3-scale';\nimport getPalette, {DEFAULT_PALETTE, NULL_COLOR} from './palette';\nimport {assert, getAttrValue} from './utils';\n\nexport default function colorBins({\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, domain.length) : colors;\n\n const color = scaleThreshold()\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-bins-style.js"}
1
+ {"version":3,"sources":["../../../src/style/color-bins-style.js"],"names":["scaleThreshold","getPalette","DEFAULT_PALETTE","NULL_COLOR","assert","getAttrValue","colorBins","attr","domain","colors","nullColor","Array","isArray","palette","length","color","range","d","value","Number","isFinite"],"mappings":"AAAA,SAAQA,cAAR,QAA6B,UAA7B;AACA,OAAOC,UAAP,IAAoBC,eAApB,EAAqCC,UAArC,QAAsD,WAAtD;AACA,SAAQC,MAAR,EAAgBC,YAAhB,QAAmC,SAAnC;AAEA,eAAe,SAASC,SAAT,CAAmB;AAChCC,EAAAA,IADgC;AAEhCC,EAAAA,MAFgC;AAGhCC,EAAAA,MAAM,GAAGP,eAHuB;AAIhCQ,EAAAA,SAAS,GAAGP;AAJoB,CAAnB,EAKZ;AACDC,EAAAA,MAAM,CAACO,KAAK,CAACC,OAAN,CAAcJ,MAAd,CAAD,EAAwB,6CAAxB,CAAN;AAEA,QAAMK,OAAO,GAAG,OAAOJ,MAAP,KAAkB,QAAlB,GAA6BR,UAAU,CAACQ,MAAD,EAASD,MAAM,CAACM,MAAP,GAAgB,CAAzB,CAAvC,GAAqEL,MAArF;AAEA,QAAMM,KAAK,GAAGf,cAAc,GAAGQ,MAAjB,CAAwBA,MAAxB,EAAgCQ,KAAhC,CAAsCH,OAAtC,CAAd;AAEA,SAAOI,CAAC,IAAI;AACV,UAAMC,KAAK,GAAGb,YAAY,CAACE,IAAD,EAAOU,CAAP,CAA1B;AACA,WAAOE,MAAM,CAACC,QAAP,CAAgBF,KAAhB,IAAyBH,KAAK,CAACG,KAAD,CAA9B,GAAwCR,SAA/C;AACD,GAHD;AAID","sourcesContent":["import {scaleThreshold} from 'd3-scale';\nimport getPalette, {DEFAULT_PALETTE, NULL_COLOR} from './palette';\nimport {assert, getAttrValue} from './utils';\n\nexport default function colorBins({\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, domain.length + 1) : colors;\n\n const color = scaleThreshold().domain(domain).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-bins-style.js"}
@@ -8,7 +8,7 @@ export default function colorContinuous({
8
8
  nullColor = NULL_COLOR
9
9
  }) {
10
10
  assert(Array.isArray(domain), 'Expected "domain" to be an array of numbers');
11
- const palette = typeof colors === 'string' ? getPalette(colors) : colors;
11
+ const palette = typeof colors === 'string' ? getPalette(colors, domain.length) : colors;
12
12
  const color = scaleLinear().domain(domain).range(palette);
13
13
  return d => {
14
14
  const value = getAttrValue(attr, d);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/style/color-continuous-style.js"],"names":["scaleLinear","getPalette","DEFAULT_PALETTE","NULL_COLOR","assert","getAttrValue","colorContinuous","attr","domain","colors","nullColor","Array","isArray","palette","color","range","d","value","Number","isFinite"],"mappings":"AAAA,SAAQA,WAAR,QAA0B,UAA1B;AACA,OAAOC,UAAP,IAAoBC,eAApB,EAAqCC,UAArC,QAAsD,WAAtD;AACA,SAAQC,MAAR,EAAgBC,YAAhB,QAAmC,SAAnC;AAEA,eAAe,SAASC,eAAT,CAAyB;AACtCC,EAAAA,IADsC;AAEtCC,EAAAA,MAFsC;AAGtCC,EAAAA,MAAM,GAAGP,eAH6B;AAItCQ,EAAAA,SAAS,GAAGP;AAJ0B,CAAzB,EAKZ;AACDC,EAAAA,MAAM,CAACO,KAAK,CAACC,OAAN,CAAcJ,MAAd,CAAD,EAAwB,6CAAxB,CAAN;AAEA,QAAMK,OAAO,GAAG,OAAOJ,MAAP,KAAkB,QAAlB,GAA6BR,UAAU,CAACQ,MAAD,CAAvC,GAAkDA,MAAlE;AACA,QAAMK,KAAK,GAAGd,WAAW,GACtBQ,MADW,CACJA,MADI,EAEXO,KAFW,CAELF,OAFK,CAAd;AAIA,SAAOG,CAAC,IAAI;AACV,UAAMC,KAAK,GAAGZ,YAAY,CAACE,IAAD,EAAOS,CAAP,CAA1B;AACA,WAAOE,MAAM,CAACC,QAAP,CAAgBF,KAAhB,IAAyBH,KAAK,CAACG,KAAD,CAA9B,GAAwCP,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":["scaleLinear","getPalette","DEFAULT_PALETTE","NULL_COLOR","assert","getAttrValue","colorContinuous","attr","domain","colors","nullColor","Array","isArray","palette","length","color","range","d","value","Number","isFinite"],"mappings":"AAAA,SAAQA,WAAR,QAA0B,UAA1B;AACA,OAAOC,UAAP,IAAoBC,eAApB,EAAqCC,UAArC,QAAsD,WAAtD;AACA,SAAQC,MAAR,EAAgBC,YAAhB,QAAmC,SAAnC;AAEA,eAAe,SAASC,eAAT,CAAyB;AACtCC,EAAAA,IADsC;AAEtCC,EAAAA,MAFsC;AAGtCC,EAAAA,MAAM,GAAGP,eAH6B;AAItCQ,EAAAA,SAAS,GAAGP;AAJ0B,CAAzB,EAKZ;AACDC,EAAAA,MAAM,CAACO,KAAK,CAACC,OAAN,CAAcJ,MAAd,CAAD,EAAwB,6CAAxB,CAAN;AAEA,QAAMK,OAAO,GAAG,OAAOJ,MAAP,KAAkB,QAAlB,GAA6BR,UAAU,CAACQ,MAAD,EAASD,MAAM,CAACM,MAAhB,CAAvC,GAAiEL,MAAjF;AACA,QAAMM,KAAK,GAAGf,WAAW,GAAGQ,MAAd,CAAqBA,MAArB,EAA6BQ,KAA7B,CAAmCH,OAAnC,CAAd;AAEA,SAAOI,CAAC,IAAI;AACV,UAAMC,KAAK,GAAGb,YAAY,CAACE,IAAD,EAAOU,CAAP,CAA1B;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, domain.length) : colors;\n const color = scaleLinear().domain(domain).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"}