@deck.gl/carto 8.9.32 → 8.9.34

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 (33) hide show
  1. package/dist/cartoRasterTile-worker.js +1 -1
  2. package/dist/cartoSpatialTile-worker.js +1 -1
  3. package/dist/cartoVectorTile-worker.js +1 -1
  4. package/dist/dist.dev.js +34 -11
  5. package/dist/es5/api/layer-map.js +1 -1
  6. package/dist/es5/api/layer-map.js.map +1 -1
  7. package/dist/es5/api/maps-api-common.js +13 -2
  8. package/dist/es5/api/maps-api-common.js.map +1 -1
  9. package/dist/es5/api/maps-v3-client.js +26 -12
  10. package/dist/es5/api/maps-v3-client.js.map +1 -1
  11. package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
  12. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
  13. package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -1
  14. package/dist/esm/api/layer-map.js +1 -1
  15. package/dist/esm/api/layer-map.js.map +1 -1
  16. package/dist/esm/api/maps-api-common.js +10 -1
  17. package/dist/esm/api/maps-api-common.js.map +1 -1
  18. package/dist/esm/api/maps-v3-client.js +26 -9
  19. package/dist/esm/api/maps-v3-client.js.map +1 -1
  20. package/dist/esm/layers/schema/carto-raster-tile-loader.js +1 -1
  21. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +1 -1
  22. package/dist/esm/layers/schema/carto-vector-tile-loader.js +1 -1
  23. package/dist.min.js +23 -23
  24. package/package.json +2 -2
  25. package/src/api/layer-map.ts +3 -1
  26. package/src/api/maps-api-common.ts +21 -1
  27. package/src/api/maps-v3-client.ts +31 -10
  28. package/typed/api/layer-map.d.ts.map +1 -1
  29. package/typed/api/maps-api-common.d.ts +17 -0
  30. package/typed/api/maps-api-common.d.ts.map +1 -1
  31. package/typed/api/maps-v3-client.d.ts +4 -6
  32. package/typed/api/maps-v3-client.d.ts.map +1 -1
  33. package/src/.DS_Store +0 -0
@@ -1045,7 +1045,7 @@
1045
1045
  }
1046
1046
 
1047
1047
  // src/layers/schema/carto-raster-tile-loader.ts
1048
- var VERSION = true ? "8.9.32" : "latest";
1048
+ var VERSION = true ? "8.9.34" : "latest";
1049
1049
  var id = "cartoRasterTile";
1050
1050
  var DEFAULT_OPTIONS = {
1051
1051
  cartoRasterTile: {
@@ -1432,7 +1432,7 @@
1432
1432
  }
1433
1433
 
1434
1434
  // src/layers/schema/carto-spatial-tile-loader.ts
1435
- var VERSION = true ? "8.9.32" : "latest";
1435
+ var VERSION = true ? "8.9.34" : "latest";
1436
1436
  var id = "cartoSpatialTile";
1437
1437
  var DEFAULT_OPTIONS = {
1438
1438
  cartoSpatialTile: {
@@ -1662,7 +1662,7 @@
1662
1662
  }
1663
1663
 
1664
1664
  // src/layers/schema/carto-vector-tile-loader.ts
1665
- var VERSION = true ? "8.9.32" : "latest";
1665
+ var VERSION = true ? "8.9.34" : "latest";
1666
1666
  var id = "cartoVectorTile";
1667
1667
  var DEFAULT_OPTIONS = {
1668
1668
  cartoVectorTile: {
package/dist/dist.dev.js CHANGED
@@ -9155,7 +9155,7 @@ var __exports__ = (() => {
9155
9155
  TILESET: "tileset",
9156
9156
  RASTER: "raster"
9157
9157
  };
9158
- var COLUMNS_SUPPORT = [MAP_TYPES.TABLE];
9158
+ var COLUMNS_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
9159
9159
  var GEO_COLUMN_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
9160
9160
  var FORMATS = {
9161
9161
  GEOJSON: "geojson",
@@ -9190,6 +9190,14 @@ var __exports__ = (() => {
9190
9190
  function encodeParameter(name, value) {
9191
9191
  return `${name}=${encodeURIComponent(value)}`;
9192
9192
  }
9193
+ var FilterTypes;
9194
+ (function(FilterTypes2) {
9195
+ FilterTypes2["In"] = "in";
9196
+ FilterTypes2["Between"] = "between";
9197
+ FilterTypes2["ClosedOpen"] = "closed_open";
9198
+ FilterTypes2["Time"] = "time";
9199
+ FilterTypes2["StringSearch"] = "stringSearch";
9200
+ })(FilterTypes || (FilterTypes = {}));
9193
9201
 
9194
9202
  // src/config.ts
9195
9203
  var defaultClassicCredentials = {
@@ -13785,7 +13793,7 @@ void main(void) {
13785
13793
  return attribute.categories.map((c) => c.category).filter((c) => c !== void 0 && c !== null);
13786
13794
  }
13787
13795
  if (scaleType === "quantile" && attribute.quantiles) {
13788
- return attribute.quantiles[scaleLength];
13796
+ return attribute.quantiles.global ? attribute.quantiles.global[scaleLength] : attribute.quantiles[scaleLength];
13789
13797
  }
13790
13798
  let {
13791
13799
  min: min2
@@ -14619,7 +14627,8 @@ void main(void) {
14619
14627
  clientId,
14620
14628
  aggregationExp,
14621
14629
  aggregationResLevel,
14622
- queryParameters
14630
+ queryParameters,
14631
+ filters
14623
14632
  }) {
14624
14633
  const parameters = {
14625
14634
  client: clientId || DEFAULT_CLIENT,
@@ -14644,6 +14653,9 @@ void main(void) {
14644
14653
  if (aggregationResLevel) {
14645
14654
  parameters.aggregationResLevel = aggregationResLevel;
14646
14655
  }
14656
+ if (filters) {
14657
+ parameters.filters = filters;
14658
+ }
14647
14659
  return parameters;
14648
14660
  }
14649
14661
  function isSpatialIndexGeoColumn(geoColumn) {
@@ -14661,7 +14673,8 @@ void main(void) {
14661
14673
  headers,
14662
14674
  aggregationExp,
14663
14675
  aggregationResLevel,
14664
- queryParameters
14676
+ queryParameters,
14677
+ filters
14665
14678
  }) {
14666
14679
  const baseUrl2 = `${credentials2.mapsUrl}/${connection}/${type}`;
14667
14680
  const parameters = getParameters({
@@ -14672,7 +14685,8 @@ void main(void) {
14672
14685
  clientId,
14673
14686
  aggregationResLevel,
14674
14687
  aggregationExp,
14675
- queryParameters
14688
+ queryParameters,
14689
+ filters
14676
14690
  });
14677
14691
  const encodedParameters = Object.entries(parameters).map(([key, value]) => {
14678
14692
  if (typeof value !== "string") {
@@ -14722,7 +14736,8 @@ void main(void) {
14722
14736
  geoColumn,
14723
14737
  columns,
14724
14738
  aggregationExp,
14725
- aggregationResLevel
14739
+ aggregationResLevel,
14740
+ filters
14726
14741
  }) {
14727
14742
  assert(connection, "Must define connection");
14728
14743
  assert(type, "Must define a type");
@@ -14739,6 +14754,9 @@ void main(void) {
14739
14754
  assert(!aggregationExp, "Have aggregationExp, but geoColumn parameter is missing");
14740
14755
  assert(!aggregationResLevel, "Have aggregationResLevel, but geoColumn parameter is missing");
14741
14756
  }
14757
+ if (filters) {
14758
+ assert(type === MAP_TYPES.TABLE || type === MAP_TYPES.QUERY, "The filters parameter is only supported by type table and query");
14759
+ }
14742
14760
  }
14743
14761
  async function fetchLayerData({
14744
14762
  type,
@@ -14753,7 +14771,8 @@ void main(void) {
14753
14771
  headers,
14754
14772
  aggregationExp,
14755
14773
  aggregationResLevel,
14756
- queryParameters
14774
+ queryParameters,
14775
+ filters
14757
14776
  }) {
14758
14777
  const {
14759
14778
  url,
@@ -14773,7 +14792,8 @@ void main(void) {
14773
14792
  headers,
14774
14793
  aggregationExp,
14775
14794
  aggregationResLevel,
14776
- queryParameters
14795
+ queryParameters,
14796
+ filters
14777
14797
  });
14778
14798
  const errorContext = {
14779
14799
  requestType: REQUEST_TYPES.DATA,
@@ -14807,7 +14827,8 @@ void main(void) {
14807
14827
  headers,
14808
14828
  aggregationExp,
14809
14829
  aggregationResLevel,
14810
- queryParameters
14830
+ queryParameters,
14831
+ filters
14811
14832
  }) {
14812
14833
  const defaultCredentials = getDefaultCredentials();
14813
14834
  const localCreds = {
@@ -14822,7 +14843,8 @@ void main(void) {
14822
14843
  geoColumn,
14823
14844
  columns,
14824
14845
  aggregationExp,
14825
- aggregationResLevel
14846
+ aggregationResLevel,
14847
+ filters
14826
14848
  });
14827
14849
  if (!localCreds.mapsUrl) {
14828
14850
  localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);
@@ -14838,7 +14860,8 @@ void main(void) {
14838
14860
  headers,
14839
14861
  aggregationExp,
14840
14862
  aggregationResLevel,
14841
- queryParameters
14863
+ queryParameters,
14864
+ filters
14842
14865
  });
14843
14866
  let url = null;
14844
14867
  let mapFormat;
@@ -336,7 +336,7 @@ function domainFromAttribute(attribute, scaleType, scaleLength) {
336
336
  }
337
337
 
338
338
  if (scaleType === 'quantile' && attribute.quantiles) {
339
- return attribute.quantiles[scaleLength];
339
+ return attribute.quantiles.global ? attribute.quantiles.global[scaleLength] : attribute.quantiles[scaleLength];
340
340
  }
341
341
 
342
342
  var min = attribute.min;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","custom","scaleThreshold","identity","scaleIdentity","v","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","OPACITY_MAP","getFillColor","getLineColor","getTextColor","AGGREGATION_FUNC","values","accessor","length","median","mode","pop","stddev","deviation","variance","hexToRGBA","c","r","g","b","opacity","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","elevationScale","filled","strokeColor","stroked","thickness","radius","wireframe","customMarkersPropsMap","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","basePropMap","customMarkers","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layerTypeDefs","Layer","GeoJsonLayer","propMap","altitude","parameters","depthTest","Boolean","outline","geojson","grid","CPUGridLayer","worldUnitSize","cellSize","heatmap","HeatmapLayer","hexagon","HexagonLayer","H3HexagonLayer","getHexagon","layer","layerFromTileDataset","formatTiles","TILE_FORMATS","MVT","scheme","RasterTileLayer","H3TileLayer","QuadbinTileLayer","MVTLayer","CartoTileLayer","aggregationExp","aggregationResLevel","data","tiles","tileUrl","URL","searchParams","get","uniqueIdProperty","domainFromAttribute","attribute","scaleType","scaleLength","categories","category","filter","undefined","quantiles","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","object","info","__source","index","proxy","opacityToAlpha","Math","round","pow","getAccessorKeys","aggregation","keys","concat","toUpperCase","findAccessorKey","key","Error","getColorValueAccessor","aggregator","p","getColorAccessor","colorColumn","range","scale","calculateLayerScale","alpha","accessorKeys","propertyValue","domain","scaleColor","colorMap","forEach","value","push","slice","unknown","FALLBACK_ICON","getIconUrlAccessor","field","fallbackUrl","maxIconSize","useMaskedIcons","urlToUnpackedIcon","url","id","width","height","mask","unknownValue","othersMarker","unknownIcon","mapping","markerMap","markerUrl","getMaxMarkerSize","visualChannels","radiusRange","radiusField","sizeField","ceil","negateAccessor","i","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAUA;;AACA;;AAGA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAUA,IAAMA,WAAW,GAAG;AAClBC,EAAAA,MAAM,EAAEC,oBADU;AAElBC,EAAAA,OAAO,EAAEC,qBAFS;AAGlBC,EAAAA,GAAG,EAAEC,iBAHa;AAIlBC,EAAAA,KAAK,EAAEC,mBAJW;AAKlBC,EAAAA,QAAQ,EAAEC,sBALQ;AAMlBC,EAAAA,QAAQ,EAAEC,sBANQ;AAOlBC,EAAAA,IAAI,EAAEC,kBAPY;AAQlBC,EAAAA,MAAM,EAAEC,uBARU;AASlBC,EAAAA,QAAQ,EAAEC;AATQ,CAApB;;AAaA,SAASD,QAAT,CAAqBE,CAArB,EAA8B;AAC5B,SAAOA,CAAP;AACD;;AAED,IAAMC,aAAa,GAAG,SAAtB;AAEO,IAAMC,WAAW,GAAG;AACzBC,EAAAA,OAAO,EAAE,MADgB;AAEzBC,EAAAA,OAAO,EAAE,KAFgB;AAGzBC,EAAAA,OAAO,EAAE,KAHgB;AAIzBC,EAAAA,GAAG,EAAE;AAJoB,CAApB;;AAOA,IAAMC,WAAW,GAAG;AACzBC,EAAAA,YAAY,EAAE,SADW;AAEzBC,EAAAA,YAAY,EAAE,eAFW;AAGzBC,EAAAA,YAAY,EAAE;AAHW,CAApB;;AAMP,IAAMC,gBAAgB,GAAG;AACvB,kBAAgB,qBAACC,MAAD,EAASC,QAAT;AAAA,WAAsB,wBAAUD,MAAV,EAAkB,UAAAZ,CAAC;AAAA,aAAIA,CAAC,CAACc,MAAN;AAAA,KAAnB,EAAiCD,QAAjC,EAA2CC,MAAjE;AAAA,GADO;AAEvBC,EAAAA,MAAM,EAANA,eAFuB;AAIvBC,EAAAA,IAAI,EAAE,cAACJ,MAAD,EAASC,QAAT;AAAA,WAAsB,wBAAUD,MAAV,EAAkB,UAAAZ,CAAC;AAAA,aAAIA,CAAC,CAACc,MAAN;AAAA,KAAnB,EAAiCD,QAAjC,EAA2CI,GAA3C,EAAtB;AAAA,GAJiB;AAKvBC,EAAAA,MAAM,EAAEC,kBALe;AAMvBC,EAAAA,QAAQ,EAARA;AANuB,CAAzB;;AASA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,CAAC,EAAI;AACrB,aAA2B,kBAAIA,CAAJ,CAA3B;AAAA,MAAOC,CAAP,QAAOA,CAAP;AAAA,MAAUC,CAAV,QAAUA,CAAV;AAAA,MAAaC,CAAb,QAAaA,CAAb;AAAA,MAAgBC,OAAhB,QAAgBA,OAAhB;;AACA,SAAO,CAACH,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAU,MAAMC,OAAhB,CAAP;AACD,CAHD;;AASA,IAAMC,aAAa,GAAG;AAEpBC,EAAAA,KAAK,EAAE,cAFa;AAGpBC,EAAAA,SAAS,EAAE,SAHS;AAIpBC,EAAAA,KAAK,EAAE,YAJa;AAKpBC,EAAAA,SAAS,EAAE;AACTC,IAAAA,SAAS,EAAE,0BADF;AAETC,IAAAA,MAAM,EAAE,eAFC;AAITL,IAAAA,KAAK,EAAE,cAJE;AAKTM,IAAAA,IAAI,EAAE;AALG,GALS;AAYpBC,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE,UADD;AAETC,IAAAA,cAAc,EAAE,gBAFP;AAGTC,IAAAA,MAAM,EAAE,QAHC;AAITC,IAAAA,WAAW,EAAE,cAJJ;AAKTC,IAAAA,OAAO,EAAE,SALA;AAMTC,IAAAA,SAAS,EAAE,cANF;AAOTC,IAAAA,MAAM,EAAE,gBAPC;AAQTC,IAAAA,SAAS,EAAE;AARF;AAZS,CAAtB;AAwBA,IAAMC,qBAAqB,GAAG;AAC5BhB,EAAAA,KAAK,EAAE,cADqB;AAE5BO,EAAAA,SAAS,EAAE;AACTO,IAAAA,MAAM,EAAE;AADC;AAFiB,CAA9B;AAOA,IAAMG,oBAAoB,GAAG;AAC3BC,EAAAA,gBAAgB,EAAE,0BAAAC,CAAC;AAAA,WAAK;AAACD,MAAAA,gBAAgB,EAAE5C,WAAW,CAAC6C,CAAD,CAAX,IAAkB7C,WAAW,CAACI;AAAjD,KAAL;AAAA,GADQ;AAE3B0C,EAAAA,UAAU,EAAE,oBAAAD,CAAC;AAAA,WAAK;AAACC,MAAAA,UAAU,EAAED,CAAC,CAACE,MAAF,CAASC,GAAT,CAAa7B,SAAb;AAAb,KAAL;AAAA,GAFc;AAG3B8B,EAAAA,QAAQ,EAAE,UAHiB;AAI3BC,EAAAA,mBAAmB,EAAE,CAAC,0BAAD,EAA6B,0BAA7B,CAJM;AAK3BC,EAAAA,UAAU,EAAE,CAAC,iBAAD,EAAoB,iBAApB;AALe,CAA7B;AAQA,IAAMC,YAAY,GAAG;AACnBC,EAAAA,cAAc,EAAE,CADG;AAEnBC,EAAAA,cAAc,EAAE,QAFG;AAGnBC,EAAAA,gBAAgB,EAAE,QAHC;AAInBC,EAAAA,OAAO,EAAE,IAJU;AAKnBC,EAAAA,aAAa,EAAE;AALI,CAArB;;AAQA,SAASC,aAAT,GAAiF;AAAA,MAA1DC,CAA0D,uEAAjC,EAAiC;AAAA,MAA7BpC,CAA6B,uEAAJ,EAAI;AAC/E,uDAAWoC,CAAX,GAAiBpC,CAAjB;AAAoBU,IAAAA,SAAS,kCAAM0B,CAAC,CAAC1B,SAAR,GAAsBV,CAAC,CAACU,SAAxB;AAA7B;AACD;;AAEM,SAAS2B,QAAT,CACLC,IADK,EAELC,MAFK,EAGLC,OAHK,EAI2D;AAAA;;AAChE,MAAIC,WAAgB,GAAGvC,aAAvB;;AAEA,2BAAIqC,MAAM,CAAC7B,SAAX,8CAAI,kBAAkBgC,aAAtB,EAAqC;AACnCD,IAAAA,WAAW,GAAGN,aAAa,CAACjC,aAAD,EAAgBiB,qBAAhB,CAA3B;AACD;;AACD,MAAImB,IAAI,KAAK,KAAT,IAAkBA,IAAI,KAAK,SAA3B,IAAwCA,IAAI,KAAK,IAAjD,IAAyDA,IAAI,KAAK,SAAtE,EAAiF;AAC/E,WAAOK,YAAY,CAACH,OAAD,EAAUC,WAAV,CAAnB;AACD;;AAED,MAAMG,SAAS,GAAGJ,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEI,SAA3B;;AACA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,CAAC;AAAA,WAAIA,CAAC,CAACF,SAAD,CAAD,CAAaG,WAAjB;AAAA,GAArB;;AAEA,MAAMC,SAAS,sBAAGT,MAAM,CAACU,OAAV,oDAAG,gBAAgBC,MAAlC;AAEA,MAAMC,aAGL,GAAG;AACFxF,IAAAA,KAAK,EAAE;AACLyF,MAAAA,KAAK,EAAEC,oBADF;AAELC,MAAAA,OAAO,EAAE;AACPL,QAAAA,OAAO,EAAE;AACPM,UAAAA,QAAQ,EAAE,kBAAAjC,CAAC;AAAA,mBAAK;AAACkC,cAAAA,UAAU,EAAE;AAACC,gBAAAA,SAAS,EAAEC,OAAO,CAACpC,CAAD;AAAnB;AAAb,aAAL;AAAA;AADJ,SADF;AAIPZ,QAAAA,SAAS,EAAE;AAACiD,UAAAA,OAAO,EAAE;AAAV;AAJJ;AAFJ,KADL;AAUFC,IAAAA,OAAO,EAAE;AACPR,MAAAA,KAAK,EAAEC;AADA,KAVP;AAaFQ,IAAAA,IAAI,EAAE;AACJT,MAAAA,KAAK,EAAEU,+BADH;AAEJR,MAAAA,OAAO,EAAE;AAAC5C,QAAAA,SAAS,kCAAMU,oBAAN;AAA4B2C,UAAAA,aAAa,EAAE,uBAAAzC,CAAC;AAAA,mBAAK;AAAC0C,cAAAA,QAAQ,EAAE,OAAO1C;AAAlB,aAAL;AAAA;AAA5C;AAAV,OAFL;AAGJO,MAAAA,YAAY,EAAE;AAACgB,QAAAA,WAAW,EAAXA;AAAD;AAHV,KAbJ;AAkBFoB,IAAAA,OAAO,EAAE;AACPb,MAAAA,KAAK,EAAEc,+BADA;AAEPZ,MAAAA,OAAO,EAAE;AAAC5C,QAAAA,SAAS,kCAAMU,oBAAN;AAA4BH,UAAAA,MAAM,EAAE;AAApC;AAAV,OAFF;AAGPY,MAAAA,YAAY,EAAE;AAACgB,QAAAA,WAAW,EAAXA;AAAD;AAHP,KAlBP;AAuBFsB,IAAAA,OAAO,EAAE;AACPf,MAAAA,KAAK,EAAEgB,+BADA;AAEPd,MAAAA,OAAO,EAAE;AAAC5C,QAAAA,SAAS,kCAAMU,oBAAN;AAA4B2C,UAAAA,aAAa,EAAE,uBAAAzC,CAAC;AAAA,mBAAK;AAACL,cAAAA,MAAM,EAAE,OAAOK;AAAhB,aAAL;AAAA;AAA5C;AAAV,OAFF;AAGPO,MAAAA,YAAY,EAAE;AAACgB,QAAAA,WAAW,EAAXA;AAAD;AAHP,KAvBP;AA4BFG,IAAAA,SAAS,EAAE;AACTI,MAAAA,KAAK,EAAEiB,yBADE;AAETf,MAAAA,OAAO,EAAE;AAAC5C,QAAAA,SAAS,EAAE;AAACgB,UAAAA,QAAQ,EAAE;AAAX;AAAZ,OAFA;AAGTG,MAAAA,YAAY,EAAE;AAACyC,QAAAA,UAAU,EAAE,oBAAAxB,CAAC;AAAA,iBAAIA,CAAC,CAACE,SAAD,CAAL;AAAA,SAAd;AAAgCjC,QAAAA,OAAO,EAAE;AAAzC;AAHL;AA5BT,GAHJ;AAsCA,MAAMwD,KAAK,GAAGpB,aAAa,CAACb,IAAD,CAA3B;AAEA,qBAAOiC,KAAP,oCAAyCjC,IAAzC;AACA,yCACKiC,KADL;AAEEjB,IAAAA,OAAO,EAAEnB,aAAa,CAACM,WAAD,EAAc8B,KAAK,CAACjB,OAApB,CAFxB;AAGEzB,IAAAA,YAAY,kCAAMA,YAAN,GAAuB0C,KAAK,CAAC1C,YAA7B;AAHd;AAKD;;AAEM,SAAS2C,oBAAT,GAImF;AAAA,MAHxFC,WAGwF,uEAHvDC,4BAAaC,GAG0C;AAAA,MAFxFC,MAEwF;AAAA,MADxFtC,IACwF;;AACxF,MAAIA,IAAI,KAAK,QAAb,EAAuB;AACrB,WAAOuC,wBAAP;AACD;;AACD,MAAID,MAAM,KAAK,IAAf,EAAqB;AACnB,WAAOE,oBAAP;AACD;;AACD,MAAIF,MAAM,KAAK,SAAf,EAA0B;AACxB,WAAOG,yBAAP;AACD;;AACD,MAAIN,WAAW,KAAK,KAApB,EAA2B;AACzB,WAAOO,mBAAP;AACD;;AAGD,SAAOC,uBAAP;AACD;;AAED,SAAStC,YAAT,CAAsBH,OAAtB,EAA2CC,WAA3C,EAAwD;AACtD,MACEyC,cADF,GAOI1C,OAPJ,CACE0C,cADF;AAAA,MAEEC,mBAFF,GAOI3C,OAPJ,CAEE2C,mBAFF;AAAA,sBAOI3C,OAPJ,CAGE4C,IAHF;AAAA,MAIIR,MAJJ,iBAIIA,MAJJ;AAAA,uEAKIS,KALJ;AAAA,MAKYC,OALZ;;AASA,MAAMb,WAAW,GAAG,IAAIc,GAAJ,CAAQD,OAAR,EAAiBE,YAAjB,CAA8BC,GAA9B,CAAkC,aAAlC,CAApB;AAEA,SAAO;AACLrC,IAAAA,KAAK,EAAEoB,oBAAoB,CAACC,WAAD,EAAcG,MAAd,CADtB;AAELtB,IAAAA,OAAO,EAAEb,WAFJ;AAGLZ,IAAAA,YAAY,8DACPA,YADO,GAENqD,cAAc,IAAI;AAACA,MAAAA,cAAc,EAAdA;AAAD,KAFZ,GAGNC,mBAAmB,IAAI;AAACA,MAAAA,mBAAmB,EAAnBA;AAAD,KAHjB;AAIVV,MAAAA,WAAW,EAAXA,WAJU;AAKViB,MAAAA,gBAAgB,EAAE;AALR;AAHP,GAAP;AAWD;;AAED,SAASC,mBAAT,CAA6BC,SAA7B,EAAwCC,SAAxC,EAA+DC,WAA/D,EAAoF;AAClF,MAAID,SAAS,KAAK,SAAd,IAA2BA,SAAS,KAAK,OAA7C,EAAsD;AACpD,WAAOD,SAAS,CAACG,UAAV,CAAqBtE,GAArB,CAAyB,UAAA5B,CAAC;AAAA,aAAIA,CAAC,CAACmG,QAAN;AAAA,KAA1B,EAA0CC,MAA1C,CAAiD,UAAApG,CAAC;AAAA,aAAIA,CAAC,KAAKqG,SAAN,IAAmBrG,CAAC,KAAK,IAA7B;AAAA,KAAlD,CAAP;AACD;;AAED,MAAIgG,SAAS,KAAK,UAAd,IAA4BD,SAAS,CAACO,SAA1C,EAAqD;AACnD,WAAOP,SAAS,CAACO,SAAV,CAAoBL,WAApB,CAAP;AACD;;AAED,MAAKM,GAAL,GAAYR,SAAZ,CAAKQ,GAAL;;AACA,MAAIP,SAAS,KAAK,KAAd,IAAuBO,GAAG,KAAK,CAAnC,EAAsC;AACpCA,IAAAA,GAAG,GAAG,IAAN;AACD;;AACD,SAAO,CAACA,GAAD,EAAMR,SAAS,CAACS,GAAhB,CAAP;AACD;;AAED,SAASC,gBAAT,CAA0BnH,MAA1B,EAAkC0G,SAAlC,EAAyD;AACvD,MAAIA,SAAS,KAAK,SAAd,IAA2BA,SAAS,KAAK,OAA7C,EAAsD;AACpD,WAAO,wBACL1G,MADK,EAEL,UAAAY,CAAC;AAAA,aAAI,CAACA,CAAC,CAACV,MAAP;AAAA,KAFI,EAGL,UAAAyD,CAAC;AAAA,aAAIA,CAAJ;AAAA,KAHI,CAAP;AAKD,GAND,MAMO,IAAI+C,SAAS,KAAK,UAAlB,EAA8B;AACnC,WAAO1G,MAAM,CAACoH,IAAP,CAAY,UAACnE,CAAD,EAAIpC,CAAJ;AAAA,aAAUoC,CAAC,GAAGpC,CAAd;AAAA,KAAZ,CAAP;AACD,GAFM,MAEA,IAAI6F,SAAS,KAAK,KAAlB,EAAyB;AAC9B,kBAAiB,qBAAO1G,MAAP,CAAjB;AAAA;AAAA,QAAOqH,EAAP;AAAA,QAAWC,EAAX;;AACA,WAAO,CAACD,EAAE,KAAK,CAAP,GAAW,IAAX,GAAkBA,EAAnB,EAAuBC,EAAvB,CAAP;AACD;;AACD,SAAO,qBAAOtH,MAAP,CAAP;AACD;;AAED,SAASuH,eAAT,CAAyBtB,IAAzB,EAA+BuB,IAA/B,EAAqCd,SAArC,EAAgDC,WAAhD,EAA8D;AAC5D,MAAIV,IAAI,CAACwB,SAAT,EAAoB;AAElB,QAAOC,UAAP,GAAqBzB,IAAI,CAACwB,SAAL,CAAeE,MAAf,CAAsB,CAAtB,CAArB,CAAOD,UAAP;AACA,QAAMjB,SAAS,GAAGiB,UAAU,CAACE,IAAX,CAAgB,UAAA3E,CAAC;AAAA,aAAIA,CAAC,CAACwD,SAAF,KAAgBe,IAApB;AAAA,KAAjB,CAAlB;AACA,WAAOhB,mBAAmB,CAACC,SAAD,EAAYC,SAAZ,EAAuBC,WAAvB,CAA1B;AACD,GALD,MAKO,IAAIV,IAAI,CAAC4B,QAAT,EAAmB;AAExB,QAAM7H,MAAM,GAAGiG,IAAI,CAAC4B,QAAL,CAAcvF,GAAd,CAAkB;AAAA,UAAEwF,UAAF,QAAEA,UAAF;AAAA,aAAkBA,UAAU,CAACN,IAAD,CAA5B;AAAA,KAAlB,CAAf;AACA,WAAOL,gBAAgB,CAACnH,MAAD,EAAS0G,SAAT,CAAvB;AACD,GAJM,MAIA,IAAIqB,KAAK,CAACC,OAAN,CAAc/B,IAAd,KAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQuB,IAAR,MAAkBT,SAA7C,EAAwD;AAE7D,QAAM/G,OAAM,GAAGiG,IAAI,CAAC3D,GAAL,CAAS,UAAAwF,UAAU;AAAA,aAAIA,UAAU,CAACN,IAAD,CAAd;AAAA,KAAnB,CAAf;;AACA,WAAOL,gBAAgB,CAACnH,OAAD,EAAS0G,SAAT,CAAvB;AACD;;AAED,SAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACD;;AAED,SAASuB,iBAAT,CAA2BhI,QAA3B,EAAqCgG,IAArC,EAA2C;AACzC,MAAIA,IAAI,CAAC4B,QAAL,IAAiB5B,IAAI,CAACwB,SAA1B,EAAqC;AACnC,WAAO,UAACS,MAAD,EAASC,IAAT,EAAkB;AACvB,UAAID,MAAJ,EAAY;AACV,eAAOjI,QAAQ,CAACiI,MAAM,CAACJ,UAAP,IAAqBI,MAAM,CAACE,QAAP,CAAgBF,MAAhB,CAAuBJ,UAA7C,CAAf;AACD;;AAED,UAAO7B,IAAP,GAAsBkC,IAAtB,CAAOlC,IAAP;AAAA,UAAaoC,KAAb,GAAsBF,IAAtB,CAAaE,KAAb;AACA,UAAMC,KAAK,GAAG,8BAAkBrC,IAAlB,EAAwBoC,KAAxB,CAAd;AACA,aAAOpI,QAAQ,CAACqI,KAAD,CAAf;AACD,KARD;AASD;;AACD,SAAOrI,QAAP;AACD;;AAEM,SAASsI,cAAT,CAAwBzH,OAAxB,EAA0C;AAC/C,SAAOA,OAAO,KAAKiG,SAAZ,GAAwByB,IAAI,CAACC,KAAL,CAAW,MAAMD,IAAI,CAACE,GAAL,CAAS5H,OAAT,EAAkB,IAAI,GAAtB,CAAjB,CAAxB,GAAuE,GAA9E;AACD;;AAED,SAAS6H,eAAT,CAAyBnB,IAAzB,EAAuCoB,WAAvC,EAAmF;AACjF,MAAIC,IAAI,GAAG,CAACrB,IAAD,CAAX;;AACA,MAAIoB,WAAJ,EAAiB;AAEfC,IAAAA,IAAI,GAAGA,IAAI,CAACC,MAAL,CAAY,CAACF,WAAD,EAAcA,WAAW,CAACG,WAAZ,EAAd,EAAyCzG,GAAzC,CAA6C,UAAAW,CAAC;AAAA,uBAAOuE,IAAP,cAAevE,CAAf;AAAA,KAA9C,CAAZ,CAAP;AACD;;AACD,SAAO4F,IAAP;AACD;;AAED,SAASG,eAAT,CAAyBH,IAAzB,EAAyCf,UAAzC,EAA+D;AAAA,6CAC3Ce,IAD2C;AAAA;;AAAA;AAC7D,wDAAwB;AAAA,UAAbI,GAAa;;AACtB,UAAIA,GAAG,IAAInB,UAAX,EAAuB;AACrB,eAAO,CAACmB,GAAD,CAAP;AACD;AACF;AAL4D;AAAA;AAAA;AAAA;AAAA;;AAO7D,QAAM,IAAIC,KAAJ,yDAA2DL,IAA3D,EAAN;AACD;;AAEM,SAASM,qBAAT,QAAuCjH,gBAAvC,EAAyD+D,IAAzD,EAAoE;AAAA,MAApCuB,IAAoC,SAApCA,IAAoC;AACzE,MAAM4B,UAAU,GAAGrJ,gBAAgB,CAACmC,gBAAD,CAAnC;;AACA,MAAMjC,QAAQ,GAAG,SAAXA,QAAW,CAAAD,MAAM;AAAA,WAAIoJ,UAAU,CAACpJ,MAAD,EAAS,UAAAqJ,CAAC;AAAA,aAAIA,CAAC,CAAC7B,IAAD,CAAL;AAAA,KAAV,CAAd;AAAA,GAAvB;;AACA,SAAOS,iBAAiB,CAAChI,QAAD,EAAWgG,IAAX,CAAxB;AACD;;AAEM,SAASqD,gBAAT,QAEL5C,SAFK,SAIL5F,OAJK,EAKLmF,IALK,EAML;AAAA,MALCuB,IAKD,SALCA,IAKD;AAAA,MALO+B,WAKP,SALOA,WAKP;AAAA,MAHCX,WAGD,SAHCA,WAGD;AAAA,MAHcY,KAGd,SAHcA,KAGd;AACA,MAAMC,KAAK,GAAGC,mBAAmB,CAACH,WAAW,IAAI/B,IAAhB,EAAsBd,SAAtB,EAAiC8C,KAAjC,EAAwCvD,IAAxC,CAAjC;AACA,MAAM0D,KAAK,GAAGpB,cAAc,CAACzH,OAAD,CAA5B;AAEA,MAAI8I,YAAY,GAAGjB,eAAe,CAACnB,IAAD,EAAOoB,WAAP,CAAlC;;AACA,MAAM3I,QAAQ,GAAG,SAAXA,QAAW,CAAA6H,UAAU,EAAI;AAC7B,QAAI,EAAE8B,YAAY,CAAC,CAAD,CAAZ,IAAmB9B,UAArB,CAAJ,EAAsC;AACpC8B,MAAAA,YAAY,GAAGZ,eAAe,CAACY,YAAD,EAAe9B,UAAf,CAA9B;AACD;;AACD,QAAM+B,aAAa,GAAG/B,UAAU,CAAC8B,YAAY,CAAC,CAAD,CAAb,CAAhC;;AACA,gBAAkB,kBAAIH,KAAK,CAACI,aAAD,CAAT,CAAlB;AAAA,QAAOlJ,CAAP,SAAOA,CAAP;AAAA,QAAUC,CAAV,SAAUA,CAAV;AAAA,QAAaC,CAAb,SAAaA,CAAb;;AACA,WAAO,CAACF,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUgJ,aAAa,KAAK,IAAlB,GAAyB,CAAzB,GAA6BF,KAAvC,CAAP;AACD,GAPD;;AAQA,SAAO1B,iBAAiB,CAAChI,QAAD,EAAWgG,IAAX,CAAxB;AACD;;AAED,SAASyD,mBAAT,CAA6BlC,IAA7B,EAAmCd,SAAnC,EAA8C8C,KAA9C,EAAqDvD,IAArD,EAA2D;AACzD,MAAMwD,KAAK,GAAGxL,WAAW,CAACyI,SAAD,CAAX,EAAd;AACA,MAAIoD,MAA2B,GAAG,EAAlC;AACA,MAAIC,UAAoB,GAAG,EAA3B;;AAEA,MAAIrD,SAAS,KAAK,UAAlB,EAA8B;AAC5B,QAAOsD,QAAP,GAA2BR,KAA3B,CAAOQ,QAAP;AAAA,QAAiB3H,MAAjB,GAA2BmH,KAA3B,CAAiBnH,MAAjB;;AAEA,QAAI0F,KAAK,CAACC,OAAN,CAAcgC,QAAd,CAAJ,EAA6B;AAC3BA,MAAAA,QAAQ,CAACC,OAAT,CAAiB,iBAAoB;AAAA;AAAA,YAAlBC,KAAkB;AAAA,YAAXlJ,KAAW;;AACnC8I,QAAAA,MAAM,CAACK,IAAP,CAAYD,KAAZ;AACAH,QAAAA,UAAU,CAACI,IAAX,CAAgBnJ,KAAhB;AACD,OAHD;AAID,KALD,MAKO;AACL8I,MAAAA,MAAM,GAAGvC,eAAe,CAACtB,IAAD,EAAOuB,IAAP,EAAad,SAAb,EAAwBrE,MAAM,CAACnC,MAA/B,CAAxB;AACA6J,MAAAA,UAAU,GAAG1H,MAAb;AACD;;AAED,QAAIqE,SAAS,KAAK,SAAlB,EAA6B;AAC3BoD,MAAAA,MAAM,GAAGA,MAAM,CAACM,KAAP,CAAa,CAAb,EAAgBL,UAAU,CAAC7J,MAA3B,CAAT;AACD;AACF;;AAEDuJ,EAAAA,KAAK,CAACK,MAAN,CAAaA,MAAb;AACAL,EAAAA,KAAK,CAACD,KAAN,CAAYO,UAAZ;AACAN,EAAAA,KAAK,CAACY,OAAN,CAAchL,aAAd;AAEA,SAAOoK,KAAP;AACD;;AAED,IAAMa,aAAa,GACjB,0LADF;;AAGO,SAASC,kBAAT,CACLC,KADK,EAELhB,KAFK,SAILvD,IAJK,EAKL;AAAA,MAFCwE,WAED,SAFCA,WAED;AAAA,MAFcC,WAEd,SAFcA,WAEd;AAAA,MAF2BC,cAE3B,SAF2BA,cAE3B;;AACA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,GAAD;AAAA,WAAkB;AAC1CC,MAAAA,EAAE,YAAKD,GAAL,eAAaH,WAAb,CADwC;AAE1CG,MAAAA,GAAG,EAAHA,GAF0C;AAG1CE,MAAAA,KAAK,EAAEL,WAHmC;AAI1CM,MAAAA,MAAM,EAAEN,WAJkC;AAK1CO,MAAAA,IAAI,EAAEN;AALoC,KAAlB;AAAA,GAA1B;;AAOA,MAAIO,YAAY,GAAGT,WAAW,IAAIH,aAAlC;;AAEA,MAAId,KAAJ,aAAIA,KAAJ,eAAIA,KAAK,CAAE2B,YAAX,EAAyB;AACvBD,IAAAA,YAAY,GAAG1B,KAAK,CAAC2B,YAArB;AACD;;AAED,MAAMC,WAAW,GAAGR,iBAAiB,CAACM,YAAD,CAArC;;AACA,MAAI,CAAC1B,KAAD,IAAU,CAACgB,KAAf,EAAsB;AACpB,WAAO;AAAA,aAAMY,WAAN;AAAA,KAAP;AACD;;AAED,MAAMC,OAA4B,GAAG,EAArC;;AAnBA,8CAoBiC7B,KAAK,CAAC8B,SApBvC;AAAA;;AAAA;AAoBA,2DAAkD;AAAA;AAAA,UAAtCpB,MAAsC,gBAAtCA,KAAsC;AAAA,UAA/BqB,SAA+B,gBAA/BA,SAA+B;;AAChD,UAAIA,SAAJ,EAAe;AACbF,QAAAA,OAAO,CAACnB,MAAD,CAAP,GAAiBU,iBAAiB,CAACW,SAAD,CAAlC;AACD;AACF;AAxBD;AAAA;AAAA;AAAA;AAAA;;AA0BA,MAAMtL,QAAQ,GAAG,SAAXA,QAAW,CAAA6H,UAAU,EAAI;AAC7B,QAAM+B,aAAa,GAAG/B,UAAU,CAAC0C,KAAK,CAAChD,IAAP,CAAhC;AACA,WAAO6D,OAAO,CAACxB,aAAD,CAAP,IAA0BuB,WAAjC;AACD,GAHD;;AAIA,SAAOnD,iBAAiB,CAAChI,QAAD,EAAWgG,IAAX,CAAxB;AACD;;AAEM,SAASuF,gBAAT,CAA0BjK,SAA1B,EAAgDkK,cAAhD,EAAwF;AAC7F,MAAOC,WAAP,GAA8BnK,SAA9B,CAAOmK,WAAP;AAAA,MAAoB5J,MAApB,GAA8BP,SAA9B,CAAoBO,MAApB;AACA,MAAO6J,WAAP,GAAiCF,cAAjC,CAAOE,WAAP;AAAA,MAAoBC,SAApB,GAAiCH,cAAjC,CAAoBG,SAApB;AACA,MAAMpB,KAAK,GAAGmB,WAAW,IAAIC,SAA7B;AACA,SAAOpD,IAAI,CAACqD,IAAL,CAAUH,WAAW,IAAIlB,KAAf,GAAuBkB,WAAW,CAAC,CAAD,CAAlC,GAAwC5J,MAAlD,CAAP;AACD;;AAEM,SAASgK,cAAT,CAA2B7L,QAA3B,EAA+E;AACpF,SAAO,OAAOA,QAAP,KAAoB,UAApB,GAAiC,UAAC0D,CAAD,EAAIoI,CAAJ;AAAA,WAAU,CAAC9L,QAAQ,CAAC0D,CAAD,EAAIoI,CAAJ,CAAnB;AAAA,GAAjC,GAA6D,CAAC9L,QAArE;AACD;;AAEM,SAAS+L,eAAT,QAELtF,SAFK,EAGLkC,WAHK,EAILY,KAJK,EAKLvD,IALK,EAML;AAAA,MALCuB,IAKD,SALCA,IAKD;AACA,MAAMiC,KAAK,GAAG/C,SAAS,GAAGzI,WAAW,CAACyI,SAAD,CAAX,EAAH,GAAqCxH,QAA5D;;AACA,MAAIwH,SAAJ,EAAe;AACb,QAAIkC,WAAW,KAAK,OAApB,EAA6B;AAC3Ba,MAAAA,KAAK,CAACK,MAAN,CAAavC,eAAe,CAACtB,IAAD,EAAOuB,IAAP,EAAad,SAAb,CAA5B;AACD;;AACD+C,IAAAA,KAAK,CAACD,KAAN,CAAYA,KAAZ;AACD;;AAED,MAAII,YAAY,GAAGjB,eAAe,CAACnB,IAAD,EAAOoB,WAAP,CAAlC;;AACA,MAAM3I,QAAQ,GAAG,SAAXA,QAAW,CAAA6H,UAAU,EAAI;AAC7B,QAAI,EAAE8B,YAAY,CAAC,CAAD,CAAZ,IAAmB9B,UAArB,CAAJ,EAAsC;AACpC8B,MAAAA,YAAY,GAAGZ,eAAe,CAACY,YAAD,EAAe9B,UAAf,CAA9B;AACD;;AACD,QAAM+B,aAAa,GAAG/B,UAAU,CAAC8B,YAAY,CAAC,CAAD,CAAb,CAAhC;AACA,WAAOH,KAAK,CAACI,aAAD,CAAZ;AACD,GAND;;AAOA,SAAO5B,iBAAiB,CAAChI,QAAD,EAAWgG,IAAX,CAAxB;AACD;;AAED,IAAMgG,OAA+C,GAAG;AACtDC,EAAAA,IAAI,EAAE,cAAAC,CAAC;AAAA,WAAIC,wBAAOC,GAAP,CAAWF,CAAX,EAAcG,MAAd,CAAqB,oBAArB,CAAJ;AAAA,GAD+C;AAEtDC,EAAAA,OAAO,EAAE,sBAAS,GAAT,CAF6C;AAGtDC,EAAAA,KAAK,EAAE,sBAAS,KAAT,CAH+C;AAItDC,EAAAA,SAAS,EAAE,mBAAAN,CAAC;AAAA,WAAIC,wBAAOC,GAAP,CAAWF,CAAX,EAAcG,MAAd,CAAqB,GAArB,CAAJ;AAAA,GAJ0C;AAKtDI,EAAAA,OAAO,EAAEC;AAL6C,CAAxD;;AAQO,SAASC,eAAT,QAA2D3G,IAA3D,EAAiE;AAAA,MAAvCuB,IAAuC,SAAvCA,IAAuC;AAAA,MAAjCrE,IAAiC,SAAjCA,IAAiC;AACtE,MAAMmJ,MAAM,GAAGL,OAAO,CAAC9I,IAAD,CAAP,IAAiB8I,OAAO,CAACS,OAAxC;;AACA,MAAMzM,QAAQ,GAAG,SAAXA,QAAW,CAAA6H,UAAU,EAAI;AAC7B,WAAOwE,MAAM,CAACxE,UAAU,CAACN,IAAD,CAAX,CAAb;AACD,GAFD;;AAGA,SAAOS,iBAAiB,CAAChI,QAAD,EAAWgG,IAAX,CAAxB;AACD","sourcesContent":["import {deviation, extent, groupSort, median, variance} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt,\n scaleThreshold\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\n\nimport {Accessor, Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport H3TileLayer from '../layers/h3-tile-layer';\nimport QuadbinTileLayer from '../layers/quadbin-tile-layer';\nimport RasterTileLayer from '../layers/raster-tile-layer';\nimport {MapType, TILE_FORMATS, TileFormat} from './maps-api-common';\nimport {assert, createBinaryProxy, scaleIdentity} from '../utils';\nimport {\n CustomMarkersRange,\n MapDataset,\n MapTextSubLayerConfig,\n VisConfig,\n VisualChannelField,\n VisualChannels\n} from './types';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold,\n identity: scaleIdentity\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nfunction identity<T>(v: T): T {\n return v;\n}\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nexport const OPACITY_MAP = {\n getFillColor: 'opacity',\n getLineColor: 'strokeOpacity',\n getTextColor: 'opacity'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler prop value -> Deck.gl prop value\n// Supports nested definitions, and function transforms:\n// {keplerProp: 'deckProp'} is equivalent to:\n// {keplerProp: x => ({deckProp: x})}\nconst sharedPropMap = {\n // Apply the value of Kepler `color` prop to the deck `getFillColor` prop\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n // Apply the value of Kepler `textLabel.color` prop to the deck `getTextColor` prop\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n elevationScale: 'elevationScale',\n filled: 'filled',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst customMarkersPropsMap = {\n color: 'getIconColor',\n visConfig: {\n radius: 'getIconSize'\n }\n};\n\nconst aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a: Record<string, any> = {}, b: Record<string, any> = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config: MapTextSubLayerConfig,\n dataset: MapDataset\n): {Layer: ConstructorOf<Layer>; propMap: any; defaultProps: any} {\n let basePropMap: any = sharedPropMap;\n\n if (config.visConfig?.customMarkers) {\n basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);\n }\n if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {\n return getTileLayer(dataset, basePropMap);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n\n const layerTypeDefs: Record<\n string,\n {Layer: ConstructorOf<Layer>; propMap?: any; defaultProps?: any}\n > = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {\n columns: {\n altitude: x => ({parameters: {depthTest: Boolean(x)}})\n },\n visConfig: {outline: 'stroked'}\n }\n },\n geojson: {\n Layer: GeoJsonLayer\n },\n grid: {\n Layer: CPUGridLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({cellSize: 1000 * x})}},\n defaultProps: {getPosition}\n },\n heatmap: {\n Layer: HeatmapLayer,\n propMap: {visConfig: {...aggregationVisConfig, radius: 'radiusPixels'}},\n defaultProps: {getPosition}\n },\n hexagon: {\n Layer: HexagonLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({radius: 1000 * x})}},\n defaultProps: {getPosition}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: {visConfig: {coverage: 'coverage'}},\n defaultProps: {getHexagon: d => d[hexagonId], stroked: false}\n }\n };\n\n const layer = layerTypeDefs[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return {\n ...layer,\n propMap: mergePropMaps(basePropMap, layer.propMap),\n defaultProps: {...defaultProps, ...layer.defaultProps}\n };\n}\n\nexport function layerFromTileDataset(\n formatTiles: TileFormat | null = TILE_FORMATS.MVT,\n scheme: string,\n type?: MapType\n): typeof CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {\n if (type === 'raster') {\n return RasterTileLayer;\n }\n if (scheme === 'h3') {\n return H3TileLayer;\n }\n if (scheme === 'quadbin') {\n return QuadbinTileLayer;\n }\n if (formatTiles === 'mvt') {\n return MVTLayer;\n }\n\n // formatTiles === BINARY|JSON|GEOJSON\n return CartoTileLayer;\n}\n\nfunction getTileLayer(dataset: MapDataset, basePropMap) {\n const {\n aggregationExp,\n aggregationResLevel,\n data: {\n scheme,\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') as TileFormat;\n\n return {\n Layer: layerFromTileDataset(formatTiles, scheme),\n propMap: basePropMap,\n defaultProps: {\n ...defaultProps,\n ...(aggregationExp && {aggregationExp}),\n ...(aggregationResLevel && {aggregationResLevel}),\n formatTiles,\n uniqueIdProperty: 'geoid'\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE, scaleLength: number) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n if (scaleType === 'quantile' && attribute.quantiles) {\n return attribute.quantiles[scaleLength];\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType, scaleLength?) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType, scaleLength);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return (object, info) => {\n if (object) {\n return accessor(object.properties || object.__source.object.properties);\n }\n\n const {data, index} = info;\n const proxy = createBinaryProxy(data, index);\n return accessor(proxy);\n };\n }\n return accessor;\n}\n\nexport function opacityToAlpha(opacity?: number) {\n return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n}\n\nfunction getAccessorKeys(name: string, aggregation?: string | undefined): string[] {\n let keys = [name];\n if (aggregation) {\n // Snowflake will capitalized the keys, need to check lower and upper case version\n keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));\n }\n return keys;\n}\n\nfunction findAccessorKey(keys: string[], properties): string[] {\n for (const key of keys) {\n if (key in properties) {\n return [key];\n }\n }\n\n throw new Error(`Could not find property for any accessor key: ${keys}`);\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name, colorColumn}: VisualChannelField,\n scaleType: SCALE_TYPE,\n {aggregation, range},\n opacity: number | undefined,\n data: any\n) {\n const scale = calculateLayerScale(colorColumn || name, scaleType, range, data);\n const alpha = opacityToAlpha(opacity);\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nfunction calculateLayerScale(name, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\n\n if (scaleType !== 'identity') {\n const {colorMap, colors} = range;\n\n if (Array.isArray(colorMap)) {\n colorMap.forEach(([value, color]) => {\n domain.push(value);\n scaleColor.push(color);\n });\n } else {\n domain = calculateDomain(data, name, scaleType, colors.length);\n scaleColor = colors;\n }\n\n if (scaleType === 'ordinal') {\n domain = domain.slice(0, scaleColor.length);\n }\n }\n\n scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\n\n return scale;\n}\n\nconst FALLBACK_ICON =\n 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';\n\nexport function getIconUrlAccessor(\n field: VisualChannelField | null | undefined,\n range: CustomMarkersRange | null | undefined,\n {fallbackUrl, maxIconSize, useMaskedIcons},\n data: any\n) {\n const urlToUnpackedIcon = (url: string) => ({\n id: `${url}@@${maxIconSize}`,\n url,\n width: maxIconSize,\n height: maxIconSize,\n mask: useMaskedIcons\n });\n let unknownValue = fallbackUrl || FALLBACK_ICON;\n\n if (range?.othersMarker) {\n unknownValue = range.othersMarker;\n }\n\n const unknownIcon = urlToUnpackedIcon(unknownValue);\n if (!range || !field) {\n return () => unknownIcon;\n }\n\n const mapping: Record<string, any> = {};\n for (const {value, markerUrl} of range.markerMap) {\n if (markerUrl) {\n mapping[value] = urlToUnpackedIcon(markerUrl);\n }\n }\n\n const accessor = properties => {\n const propertyValue = properties[field.name];\n return mapping[propertyValue] || unknownIcon;\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number {\n const {radiusRange, radius} = visConfig;\n const {radiusField, sizeField} = visualChannels;\n const field = radiusField || sizeField;\n return Math.ceil(radiusRange && field ? radiusRange[1] : radius);\n}\n\nexport function negateAccessor<T>(accessor: Accessor<T, number>): Accessor<T, number> {\n return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;\n}\n\nexport function getSizeAccessor(\n {name},\n scaleType: SCALE_TYPE | undefined,\n aggregation,\n range: Iterable<Range> | undefined,\n data: any\n) {\n const scale = scaleType ? SCALE_FUNCS[scaleType as any]() : identity;\n if (scaleType) {\n if (aggregation !== 'count') {\n scale.domain(calculateDomain(data, name, scaleType));\n }\n scale.range(range);\n }\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n return scale(propertyValue);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}: VisualChannelField, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
1
+ {"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","custom","scaleThreshold","identity","scaleIdentity","v","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","OPACITY_MAP","getFillColor","getLineColor","getTextColor","AGGREGATION_FUNC","values","accessor","length","median","mode","pop","stddev","deviation","variance","hexToRGBA","c","r","g","b","opacity","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","elevationScale","filled","strokeColor","stroked","thickness","radius","wireframe","customMarkersPropsMap","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","basePropMap","customMarkers","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layerTypeDefs","Layer","GeoJsonLayer","propMap","altitude","parameters","depthTest","Boolean","outline","geojson","grid","CPUGridLayer","worldUnitSize","cellSize","heatmap","HeatmapLayer","hexagon","HexagonLayer","H3HexagonLayer","getHexagon","layer","layerFromTileDataset","formatTiles","TILE_FORMATS","MVT","scheme","RasterTileLayer","H3TileLayer","QuadbinTileLayer","MVTLayer","CartoTileLayer","aggregationExp","aggregationResLevel","data","tiles","tileUrl","URL","searchParams","get","uniqueIdProperty","domainFromAttribute","attribute","scaleType","scaleLength","categories","category","filter","undefined","quantiles","global","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","object","info","__source","index","proxy","opacityToAlpha","Math","round","pow","getAccessorKeys","aggregation","keys","concat","toUpperCase","findAccessorKey","key","Error","getColorValueAccessor","aggregator","p","getColorAccessor","colorColumn","range","scale","calculateLayerScale","alpha","accessorKeys","propertyValue","domain","scaleColor","colorMap","forEach","value","push","slice","unknown","FALLBACK_ICON","getIconUrlAccessor","field","fallbackUrl","maxIconSize","useMaskedIcons","urlToUnpackedIcon","url","id","width","height","mask","unknownValue","othersMarker","unknownIcon","mapping","markerMap","markerUrl","getMaxMarkerSize","visualChannels","radiusRange","radiusField","sizeField","ceil","negateAccessor","i","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor"],"mappings":"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","sourcesContent":["import {deviation, extent, groupSort, median, variance} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt,\n scaleThreshold\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\n\nimport {Accessor, Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport H3TileLayer from '../layers/h3-tile-layer';\nimport QuadbinTileLayer from '../layers/quadbin-tile-layer';\nimport RasterTileLayer from '../layers/raster-tile-layer';\nimport {MapType, TILE_FORMATS, TileFormat} from './maps-api-common';\nimport {assert, createBinaryProxy, scaleIdentity} from '../utils';\nimport {\n CustomMarkersRange,\n MapDataset,\n MapTextSubLayerConfig,\n VisConfig,\n VisualChannelField,\n VisualChannels\n} from './types';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold,\n identity: scaleIdentity\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nfunction identity<T>(v: T): T {\n return v;\n}\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nexport const OPACITY_MAP = {\n getFillColor: 'opacity',\n getLineColor: 'strokeOpacity',\n getTextColor: 'opacity'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler prop value -> Deck.gl prop value\n// Supports nested definitions, and function transforms:\n// {keplerProp: 'deckProp'} is equivalent to:\n// {keplerProp: x => ({deckProp: x})}\nconst sharedPropMap = {\n // Apply the value of Kepler `color` prop to the deck `getFillColor` prop\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n // Apply the value of Kepler `textLabel.color` prop to the deck `getTextColor` prop\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n elevationScale: 'elevationScale',\n filled: 'filled',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst customMarkersPropsMap = {\n color: 'getIconColor',\n visConfig: {\n radius: 'getIconSize'\n }\n};\n\nconst aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a: Record<string, any> = {}, b: Record<string, any> = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config: MapTextSubLayerConfig,\n dataset: MapDataset\n): {Layer: ConstructorOf<Layer>; propMap: any; defaultProps: any} {\n let basePropMap: any = sharedPropMap;\n\n if (config.visConfig?.customMarkers) {\n basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);\n }\n if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {\n return getTileLayer(dataset, basePropMap);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n\n const layerTypeDefs: Record<\n string,\n {Layer: ConstructorOf<Layer>; propMap?: any; defaultProps?: any}\n > = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {\n columns: {\n altitude: x => ({parameters: {depthTest: Boolean(x)}})\n },\n visConfig: {outline: 'stroked'}\n }\n },\n geojson: {\n Layer: GeoJsonLayer\n },\n grid: {\n Layer: CPUGridLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({cellSize: 1000 * x})}},\n defaultProps: {getPosition}\n },\n heatmap: {\n Layer: HeatmapLayer,\n propMap: {visConfig: {...aggregationVisConfig, radius: 'radiusPixels'}},\n defaultProps: {getPosition}\n },\n hexagon: {\n Layer: HexagonLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({radius: 1000 * x})}},\n defaultProps: {getPosition}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: {visConfig: {coverage: 'coverage'}},\n defaultProps: {getHexagon: d => d[hexagonId], stroked: false}\n }\n };\n\n const layer = layerTypeDefs[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return {\n ...layer,\n propMap: mergePropMaps(basePropMap, layer.propMap),\n defaultProps: {...defaultProps, ...layer.defaultProps}\n };\n}\n\nexport function layerFromTileDataset(\n formatTiles: TileFormat | null = TILE_FORMATS.MVT,\n scheme: string,\n type?: MapType\n): typeof CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {\n if (type === 'raster') {\n return RasterTileLayer;\n }\n if (scheme === 'h3') {\n return H3TileLayer;\n }\n if (scheme === 'quadbin') {\n return QuadbinTileLayer;\n }\n if (formatTiles === 'mvt') {\n return MVTLayer;\n }\n\n // formatTiles === BINARY|JSON|GEOJSON\n return CartoTileLayer;\n}\n\nfunction getTileLayer(dataset: MapDataset, basePropMap) {\n const {\n aggregationExp,\n aggregationResLevel,\n data: {\n scheme,\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') as TileFormat;\n\n return {\n Layer: layerFromTileDataset(formatTiles, scheme),\n propMap: basePropMap,\n defaultProps: {\n ...defaultProps,\n ...(aggregationExp && {aggregationExp}),\n ...(aggregationResLevel && {aggregationResLevel}),\n formatTiles,\n uniqueIdProperty: 'geoid'\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE, scaleLength: number) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n if (scaleType === 'quantile' && attribute.quantiles) {\n return attribute.quantiles.global\n ? attribute.quantiles.global[scaleLength]\n : attribute.quantiles[scaleLength];\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType, scaleLength?) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType, scaleLength);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return (object, info) => {\n if (object) {\n return accessor(object.properties || object.__source.object.properties);\n }\n\n const {data, index} = info;\n const proxy = createBinaryProxy(data, index);\n return accessor(proxy);\n };\n }\n return accessor;\n}\n\nexport function opacityToAlpha(opacity?: number) {\n return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n}\n\nfunction getAccessorKeys(name: string, aggregation?: string | undefined): string[] {\n let keys = [name];\n if (aggregation) {\n // Snowflake will capitalized the keys, need to check lower and upper case version\n keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));\n }\n return keys;\n}\n\nfunction findAccessorKey(keys: string[], properties): string[] {\n for (const key of keys) {\n if (key in properties) {\n return [key];\n }\n }\n\n throw new Error(`Could not find property for any accessor key: ${keys}`);\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name, colorColumn}: VisualChannelField,\n scaleType: SCALE_TYPE,\n {aggregation, range},\n opacity: number | undefined,\n data: any\n) {\n const scale = calculateLayerScale(colorColumn || name, scaleType, range, data);\n const alpha = opacityToAlpha(opacity);\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nfunction calculateLayerScale(name, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\n\n if (scaleType !== 'identity') {\n const {colorMap, colors} = range;\n\n if (Array.isArray(colorMap)) {\n colorMap.forEach(([value, color]) => {\n domain.push(value);\n scaleColor.push(color);\n });\n } else {\n domain = calculateDomain(data, name, scaleType, colors.length);\n scaleColor = colors;\n }\n\n if (scaleType === 'ordinal') {\n domain = domain.slice(0, scaleColor.length);\n }\n }\n\n scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\n\n return scale;\n}\n\nconst FALLBACK_ICON =\n 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';\n\nexport function getIconUrlAccessor(\n field: VisualChannelField | null | undefined,\n range: CustomMarkersRange | null | undefined,\n {fallbackUrl, maxIconSize, useMaskedIcons},\n data: any\n) {\n const urlToUnpackedIcon = (url: string) => ({\n id: `${url}@@${maxIconSize}`,\n url,\n width: maxIconSize,\n height: maxIconSize,\n mask: useMaskedIcons\n });\n let unknownValue = fallbackUrl || FALLBACK_ICON;\n\n if (range?.othersMarker) {\n unknownValue = range.othersMarker;\n }\n\n const unknownIcon = urlToUnpackedIcon(unknownValue);\n if (!range || !field) {\n return () => unknownIcon;\n }\n\n const mapping: Record<string, any> = {};\n for (const {value, markerUrl} of range.markerMap) {\n if (markerUrl) {\n mapping[value] = urlToUnpackedIcon(markerUrl);\n }\n }\n\n const accessor = properties => {\n const propertyValue = properties[field.name];\n return mapping[propertyValue] || unknownIcon;\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number {\n const {radiusRange, radius} = visConfig;\n const {radiusField, sizeField} = visualChannels;\n const field = radiusField || sizeField;\n return Math.ceil(radiusRange && field ? radiusRange[1] : radius);\n}\n\nexport function negateAccessor<T>(accessor: Accessor<T, number>): Accessor<T, number> {\n return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;\n}\n\nexport function getSizeAccessor(\n {name},\n scaleType: SCALE_TYPE | undefined,\n aggregation,\n range: Iterable<Range> | undefined,\n data: any\n) {\n const scale = scaleType ? SCALE_FUNCS[scaleType as any]() : identity;\n if (scaleType) {\n if (aggregation !== 'count') {\n scale.domain(calculateDomain(data, name, scaleType));\n }\n scale.range(range);\n }\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n return scale(propertyValue);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}: VisualChannelField, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.encodeParameter = encodeParameter;
9
- exports.REQUEST_TYPES = exports.SchemaFieldType = exports.TILE_FORMATS = exports.FORMATS = exports.GEO_COLUMN_SUPPORT = exports.COLUMNS_SUPPORT = exports.MAP_TYPES = exports.DEFAULT_MAPS_URL_FORMAT = exports.API_VERSIONS = exports.DEFAULT_REGION_COMPONENT_IN_URL = exports.DEFAULT_USER_COMPONENT_IN_URL = void 0;
9
+ exports.FilterTypes = exports.REQUEST_TYPES = exports.SchemaFieldType = exports.TILE_FORMATS = exports.FORMATS = exports.GEO_COLUMN_SUPPORT = exports.COLUMNS_SUPPORT = exports.MAP_TYPES = exports.DEFAULT_MAPS_URL_FORMAT = exports.API_VERSIONS = exports.DEFAULT_REGION_COMPONENT_IN_URL = exports.DEFAULT_USER_COMPONENT_IN_URL = void 0;
10
10
 
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
 
@@ -31,7 +31,7 @@ var MAP_TYPES = {
31
31
  RASTER: 'raster'
32
32
  };
33
33
  exports.MAP_TYPES = MAP_TYPES;
34
- var COLUMNS_SUPPORT = [MAP_TYPES.TABLE];
34
+ var COLUMNS_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
35
35
  exports.COLUMNS_SUPPORT = COLUMNS_SUPPORT;
36
36
  var GEO_COLUMN_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
37
37
  exports.GEO_COLUMN_SUPPORT = GEO_COLUMN_SUPPORT;
@@ -75,4 +75,15 @@ exports.REQUEST_TYPES = REQUEST_TYPES;
75
75
  function encodeParameter(name, value) {
76
76
  return "".concat(name, "=").concat(encodeURIComponent(value));
77
77
  }
78
+
79
+ var FilterTypes;
80
+ exports.FilterTypes = FilterTypes;
81
+
82
+ (function (FilterTypes) {
83
+ FilterTypes["In"] = "in";
84
+ FilterTypes["Between"] = "between";
85
+ FilterTypes["ClosedOpen"] = "closed_open";
86
+ FilterTypes["Time"] = "time";
87
+ FilterTypes["StringSearch"] = "stringSearch";
88
+ })(FilterTypes || (exports.FilterTypes = FilterTypes = {}));
78
89
  //# sourceMappingURL=maps-api-common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","RASTER","COLUMNS_SUPPORT","GEO_COLUMN_SUPPORT","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","REQUEST_TYPES","DATA","INSTANTIATION","PUBLIC_MAP","TILE_STATS","encodeParameter","name","value","encodeURIComponent"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,6BAA6B,GAAG,QAAtC;;AACA,IAAMC,+BAA+B,GAAG,UAAxC;;AAGA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAOA,IAAMC,uBAAuB,qFACjCJ,YAAY,CAACC,EADoB,oBACJH,6BADI,kFAEjCE,YAAY,CAACE,EAFoB,gCAEQH,+BAFR,6BAE0DD,6BAF1D,0BAA7B;;AAKA,IAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE,SAHc;AAIvBC,EAAAA,MAAM,EAAE;AAJe,CAAlB;;AAOA,IAAMC,eAA0B,GAAG,CAACL,SAAS,CAACE,KAAX,CAAnC;;AACA,IAAMI,kBAA6B,GAAG,CAACN,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAtC;;AAGA,IAAMK,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;;AASA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BF,EAAAA,IAAI,EAAE,MAFoB;AAG1BH,EAAAA,OAAO,EAAE,SAHiB;AAI1BM,EAAAA,MAAM,EAAE;AAJkB,CAArB;;IAQKC,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;AA8BL,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,UADqB;AAE3BC,EAAAA,aAAa,EAAE,mBAFY;AAG3BC,EAAAA,UAAU,EAAE,YAHe;AAI3BC,EAAAA,UAAU,EAAE;AAJe,CAAtB;;;AAWA,SAASC,eAAT,CAAyBC,IAAzB,EAAuCC,KAAvC,EAAiF;AACtF,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport type ValuesOf<T extends {}> = T[keyof T];\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n} as const;\nexport type ApiVersion = ValuesOf<typeof API_VERSIONS>;\n\nexport const DEFAULT_MAPS_URL_FORMAT = {\n [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,\n [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`\n} as const;\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset',\n RASTER: 'raster'\n} as const;\nexport type MapType = ValuesOf<typeof MAP_TYPES>;\nexport const COLUMNS_SUPPORT: MapType[] = [MAP_TYPES.TABLE];\nexport const GEO_COLUMN_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n} as const;\nexport type Format = ValuesOf<typeof FORMATS>;\n\n// AVAILABLE FORMATS FOR TILES\nexport const TILE_FORMATS = {\n MVT: 'mvt',\n JSON: 'json',\n GEOJSON: 'geojson',\n BINARY: 'binary'\n} as const;\nexport type TileFormat = ValuesOf<typeof TILE_FORMATS>;\n\nexport enum SchemaFieldType {\n Number = 'number',\n Bigint = 'bigint',\n String = 'string',\n Geometry = 'geometry',\n Timestamp = 'timestamp',\n Object = 'object',\n Boolean = 'boolean',\n Variant = 'variant',\n Unknown = 'unknown'\n}\nexport interface SchemaField {\n name: string;\n type: SchemaFieldType; // Field type in the CARTO stack, common for all providers\n}\n\nexport interface MapInstantiation extends MapInstantiationFormats {\n nrows: number;\n size?: number;\n schema: SchemaField[];\n}\n\ntype MapInstantiationFormats = Record<\n Format,\n {\n url: string[];\n error?: any;\n }\n>;\n\nexport const REQUEST_TYPES = {\n DATA: 'Map data',\n INSTANTIATION: 'Map instantiation',\n PUBLIC_MAP: 'Public map',\n TILE_STATS: 'Tile stats'\n} as const;\nexport type RequestType = ValuesOf<typeof REQUEST_TYPES>;\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name: string, value: string | boolean | number): string {\n return `${name}=${encodeURIComponent(value)}`;\n}\n\nexport type QueryParameterValue = string | number | boolean | Array<QueryParameterValue> | object;\n\nexport type NamedQueryParameter = Record<string, QueryParameterValue>;\n\nexport type PositionalQueryParameter = QueryParameterValue[];\n\nexport type QueryParameters = NamedQueryParameter | PositionalQueryParameter;\n"],"file":"maps-api-common.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","RASTER","COLUMNS_SUPPORT","GEO_COLUMN_SUPPORT","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","REQUEST_TYPES","DATA","INSTANTIATION","PUBLIC_MAP","TILE_STATS","encodeParameter","name","value","encodeURIComponent","FilterTypes"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,6BAA6B,GAAG,QAAtC;;AACA,IAAMC,+BAA+B,GAAG,UAAxC;;AAGA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAOA,IAAMC,uBAAuB,qFACjCJ,YAAY,CAACC,EADoB,oBACJH,6BADI,kFAEjCE,YAAY,CAACE,EAFoB,gCAEQH,+BAFR,6BAE0DD,6BAF1D,0BAA7B;;AAKA,IAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE,SAHc;AAIvBC,EAAAA,MAAM,EAAE;AAJe,CAAlB;;AAOA,IAAMC,eAA0B,GAAG,CAACL,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAnC;;AACA,IAAMI,kBAA6B,GAAG,CAACN,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAtC;;AAGA,IAAMK,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;;AASA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BF,EAAAA,IAAI,EAAE,MAFoB;AAG1BH,EAAAA,OAAO,EAAE,SAHiB;AAI1BM,EAAAA,MAAM,EAAE;AAJkB,CAArB;;IAQKC,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;AA8BL,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,UADqB;AAE3BC,EAAAA,aAAa,EAAE,mBAFY;AAG3BC,EAAAA,UAAU,EAAE,YAHe;AAI3BC,EAAAA,UAAU,EAAE;AAJe,CAAtB;;;AAWA,SAASC,eAAT,CAAyBC,IAAzB,EAAuCC,KAAvC,EAAiF;AACtF,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD;;IAsBWE,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport type ValuesOf<T extends {}> = T[keyof T];\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n} as const;\nexport type ApiVersion = ValuesOf<typeof API_VERSIONS>;\n\nexport const DEFAULT_MAPS_URL_FORMAT = {\n [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,\n [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`\n} as const;\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset',\n RASTER: 'raster'\n} as const;\nexport type MapType = ValuesOf<typeof MAP_TYPES>;\nexport const COLUMNS_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];\nexport const GEO_COLUMN_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n} as const;\nexport type Format = ValuesOf<typeof FORMATS>;\n\n// AVAILABLE FORMATS FOR TILES\nexport const TILE_FORMATS = {\n MVT: 'mvt',\n JSON: 'json',\n GEOJSON: 'geojson',\n BINARY: 'binary'\n} as const;\nexport type TileFormat = ValuesOf<typeof TILE_FORMATS>;\n\nexport enum SchemaFieldType {\n Number = 'number',\n Bigint = 'bigint',\n String = 'string',\n Geometry = 'geometry',\n Timestamp = 'timestamp',\n Object = 'object',\n Boolean = 'boolean',\n Variant = 'variant',\n Unknown = 'unknown'\n}\nexport interface SchemaField {\n name: string;\n type: SchemaFieldType; // Field type in the CARTO stack, common for all providers\n}\n\nexport interface MapInstantiation extends MapInstantiationFormats {\n nrows: number;\n size?: number;\n schema: SchemaField[];\n}\n\ntype MapInstantiationFormats = Record<\n Format,\n {\n url: string[];\n error?: any;\n }\n>;\n\nexport const REQUEST_TYPES = {\n DATA: 'Map data',\n INSTANTIATION: 'Map instantiation',\n PUBLIC_MAP: 'Public map',\n TILE_STATS: 'Tile stats'\n} as const;\nexport type RequestType = ValuesOf<typeof REQUEST_TYPES>;\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name: string, value: string | boolean | number): string {\n return `${name}=${encodeURIComponent(value)}`;\n}\n\nexport type QueryParameterValue = string | number | boolean | Array<QueryParameterValue> | object;\n\nexport type NamedQueryParameter = Record<string, QueryParameterValue>;\n\nexport type PositionalQueryParameter = QueryParameterValue[];\n\nexport type QueryParameters = NamedQueryParameter | PositionalQueryParameter;\n\nexport interface Filters {\n [column: string]: Filter;\n}\n\ninterface Filter {\n [FilterTypes.In]: number[];\n [FilterTypes.Between]: number[][];\n [FilterTypes.ClosedOpen]: number[][];\n [FilterTypes.Time]: number[][];\n [FilterTypes.StringSearch]: string[];\n}\n\nexport enum FilterTypes {\n In = 'in',\n Between = 'between', // [a, b] both are included\n ClosedOpen = 'closed_open', // [a, b) a is included, b is not\n Time = 'time',\n StringSearch = 'stringSearch'\n}\n"],"file":"maps-api-common.js"}
@@ -212,7 +212,8 @@ function getParameters(_ref4) {
212
212
  clientId = _ref4.clientId,
213
213
  aggregationExp = _ref4.aggregationExp,
214
214
  aggregationResLevel = _ref4.aggregationResLevel,
215
- queryParameters = _ref4.queryParameters;
215
+ queryParameters = _ref4.queryParameters,
216
+ filters = _ref4.filters;
216
217
  var parameters = {
217
218
  client: clientId || DEFAULT_CLIENT,
218
219
  v: V3_MINOR_VERSION
@@ -242,6 +243,10 @@ function getParameters(_ref4) {
242
243
  parameters.aggregationResLevel = aggregationResLevel;
243
244
  }
244
245
 
246
+ if (filters) {
247
+ parameters.filters = filters;
248
+ }
249
+
245
250
  return parameters;
246
251
  }
247
252
 
@@ -256,12 +261,12 @@ function mapInstantiation(_x4) {
256
261
 
257
262
  function _mapInstantiation() {
258
263
  _mapInstantiation = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(_ref5) {
259
- var type, source, connection, credentials, geoColumn, columns, clientId, headers, aggregationExp, aggregationResLevel, queryParameters, baseUrl, parameters, encodedParameters, url, accessToken, errorContext;
264
+ var type, source, connection, credentials, geoColumn, columns, clientId, headers, aggregationExp, aggregationResLevel, queryParameters, filters, baseUrl, parameters, encodedParameters, url, accessToken, errorContext;
260
265
  return _regenerator.default.wrap(function _callee4$(_context4) {
261
266
  while (1) {
262
267
  switch (_context4.prev = _context4.next) {
263
268
  case 0:
264
- type = _ref5.type, source = _ref5.source, connection = _ref5.connection, credentials = _ref5.credentials, geoColumn = _ref5.geoColumn, columns = _ref5.columns, clientId = _ref5.clientId, headers = _ref5.headers, aggregationExp = _ref5.aggregationExp, aggregationResLevel = _ref5.aggregationResLevel, queryParameters = _ref5.queryParameters;
269
+ type = _ref5.type, source = _ref5.source, connection = _ref5.connection, credentials = _ref5.credentials, geoColumn = _ref5.geoColumn, columns = _ref5.columns, clientId = _ref5.clientId, headers = _ref5.headers, aggregationExp = _ref5.aggregationExp, aggregationResLevel = _ref5.aggregationResLevel, queryParameters = _ref5.queryParameters, filters = _ref5.filters;
265
270
  baseUrl = "".concat(credentials.mapsUrl, "/").concat(connection, "/").concat(type);
266
271
  parameters = getParameters({
267
272
  type: type,
@@ -271,7 +276,8 @@ function _mapInstantiation() {
271
276
  clientId: clientId,
272
277
  aggregationResLevel: aggregationResLevel,
273
278
  aggregationExp: aggregationExp,
274
- queryParameters: queryParameters
279
+ queryParameters: queryParameters,
280
+ filters: filters
275
281
  });
276
282
  encodedParameters = Object.entries(parameters).map(function (_ref12) {
277
283
  var _ref13 = (0, _slicedToArray2.default)(_ref12, 2),
@@ -351,7 +357,8 @@ function checkFetchLayerDataParameters(_ref6) {
351
357
  geoColumn = _ref6.geoColumn,
352
358
  columns = _ref6.columns,
353
359
  aggregationExp = _ref6.aggregationExp,
354
- aggregationResLevel = _ref6.aggregationResLevel;
360
+ aggregationResLevel = _ref6.aggregationResLevel,
361
+ filters = _ref6.filters;
355
362
  (0, _utils.assert)(connection, 'Must define connection');
356
363
  (0, _utils.assert)(type, 'Must define a type');
357
364
  (0, _utils.assert)(source, 'Must define a source');
@@ -369,6 +376,10 @@ function checkFetchLayerDataParameters(_ref6) {
369
376
  (0, _utils.assert)(!aggregationExp, 'Have aggregationExp, but geoColumn parameter is missing');
370
377
  (0, _utils.assert)(!aggregationResLevel, 'Have aggregationResLevel, but geoColumn parameter is missing');
371
378
  }
379
+
380
+ if (filters) {
381
+ (0, _utils.assert)(type === _mapsApiCommon.MAP_TYPES.TABLE || type === _mapsApiCommon.MAP_TYPES.QUERY, 'The filters parameter is only supported by type table and query');
382
+ }
372
383
  }
373
384
 
374
385
  function fetchLayerData(_x5) {
@@ -377,13 +388,13 @@ function fetchLayerData(_x5) {
377
388
 
378
389
  function _fetchLayerData() {
379
390
  _fetchLayerData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(_ref7) {
380
- var type, source, connection, credentials, geoColumn, columns, format, formatTiles, clientId, headers, aggregationExp, aggregationResLevel, queryParameters, _yield$_fetchDataUrl, url, accessToken, mapFormat, metadata, errorContext, data, result;
391
+ var type, source, connection, credentials, geoColumn, columns, format, formatTiles, clientId, headers, aggregationExp, aggregationResLevel, queryParameters, filters, _yield$_fetchDataUrl, url, accessToken, mapFormat, metadata, errorContext, data, result;
381
392
 
382
393
  return _regenerator.default.wrap(function _callee5$(_context5) {
383
394
  while (1) {
384
395
  switch (_context5.prev = _context5.next) {
385
396
  case 0:
386
- type = _ref7.type, source = _ref7.source, connection = _ref7.connection, credentials = _ref7.credentials, geoColumn = _ref7.geoColumn, columns = _ref7.columns, format = _ref7.format, formatTiles = _ref7.formatTiles, clientId = _ref7.clientId, headers = _ref7.headers, aggregationExp = _ref7.aggregationExp, aggregationResLevel = _ref7.aggregationResLevel, queryParameters = _ref7.queryParameters;
397
+ type = _ref7.type, source = _ref7.source, connection = _ref7.connection, credentials = _ref7.credentials, geoColumn = _ref7.geoColumn, columns = _ref7.columns, format = _ref7.format, formatTiles = _ref7.formatTiles, clientId = _ref7.clientId, headers = _ref7.headers, aggregationExp = _ref7.aggregationExp, aggregationResLevel = _ref7.aggregationResLevel, queryParameters = _ref7.queryParameters, filters = _ref7.filters;
387
398
  _context5.next = 3;
388
399
  return _fetchDataUrl({
389
400
  type: type,
@@ -398,7 +409,8 @@ function _fetchLayerData() {
398
409
  headers: headers,
399
410
  aggregationExp: aggregationExp,
400
411
  aggregationResLevel: aggregationResLevel,
401
- queryParameters: queryParameters
412
+ queryParameters: queryParameters,
413
+ filters: filters
402
414
  });
403
415
 
404
416
  case 3:
@@ -446,13 +458,13 @@ function _fetchDataUrl(_x6) {
446
458
 
447
459
  function _fetchDataUrl2() {
448
460
  _fetchDataUrl2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(_ref8) {
449
- var type, source, connection, credentials, geoColumn, columns, format, formatTiles, clientId, headers, aggregationExp, aggregationResLevel, queryParameters, defaultCredentials, localCreds, metadata, url, mapFormat, prioritizedFormats, _i, _prioritizedFormats, f, accessToken;
461
+ var type, source, connection, credentials, geoColumn, columns, format, formatTiles, clientId, headers, aggregationExp, aggregationResLevel, queryParameters, filters, defaultCredentials, localCreds, metadata, url, mapFormat, prioritizedFormats, _i, _prioritizedFormats, f, accessToken;
450
462
 
451
463
  return _regenerator.default.wrap(function _callee6$(_context6) {
452
464
  while (1) {
453
465
  switch (_context6.prev = _context6.next) {
454
466
  case 0:
455
- type = _ref8.type, source = _ref8.source, connection = _ref8.connection, credentials = _ref8.credentials, geoColumn = _ref8.geoColumn, columns = _ref8.columns, format = _ref8.format, formatTiles = _ref8.formatTiles, clientId = _ref8.clientId, headers = _ref8.headers, aggregationExp = _ref8.aggregationExp, aggregationResLevel = _ref8.aggregationResLevel, queryParameters = _ref8.queryParameters;
467
+ type = _ref8.type, source = _ref8.source, connection = _ref8.connection, credentials = _ref8.credentials, geoColumn = _ref8.geoColumn, columns = _ref8.columns, format = _ref8.format, formatTiles = _ref8.formatTiles, clientId = _ref8.clientId, headers = _ref8.headers, aggregationExp = _ref8.aggregationExp, aggregationResLevel = _ref8.aggregationResLevel, queryParameters = _ref8.queryParameters, filters = _ref8.filters;
456
468
  defaultCredentials = (0, _config.getDefaultCredentials)();
457
469
  localCreds = _objectSpread(_objectSpread({}, defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials), credentials);
458
470
  checkFetchLayerDataParameters({
@@ -463,7 +475,8 @@ function _fetchDataUrl2() {
463
475
  geoColumn: geoColumn,
464
476
  columns: columns,
465
477
  aggregationExp: aggregationExp,
466
- aggregationResLevel: aggregationResLevel
478
+ aggregationResLevel: aggregationResLevel,
479
+ filters: filters
467
480
  });
468
481
 
469
482
  if (!localCreds.mapsUrl) {
@@ -482,7 +495,8 @@ function _fetchDataUrl2() {
482
495
  headers: headers,
483
496
  aggregationExp: aggregationExp,
484
497
  aggregationResLevel: aggregationResLevel,
485
- queryParameters: queryParameters
498
+ queryParameters: queryParameters,
499
+ filters: filters
486
500
  });
487
501
 
488
502
  case 7: