@deck.gl/carto 8.9.31 → 8.9.32

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.
@@ -1045,7 +1045,7 @@
1045
1045
  }
1046
1046
 
1047
1047
  // src/layers/schema/carto-raster-tile-loader.ts
1048
- var VERSION = true ? "8.9.31" : "latest";
1048
+ var VERSION = true ? "8.9.32" : "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.31" : "latest";
1435
+ var VERSION = true ? "8.9.32" : "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.31" : "latest";
1665
+ var VERSION = true ? "8.9.32" : "latest";
1666
1666
  var id = "cartoVectorTile";
1667
1667
  var DEFAULT_OPTIONS = {
1668
1668
  cartoVectorTile: {
package/dist/dist.dev.js CHANGED
@@ -12198,6 +12198,22 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
12198
12198
  function getWorkerUrl(id4, version) {
12199
12199
  return `https://unpkg.com/@deck.gl/carto@${version}/dist/${id4}-worker.js`;
12200
12200
  }
12201
+ function scaleIdentity() {
12202
+ let unknown;
12203
+ function scale(x) {
12204
+ return x === null ? unknown : x;
12205
+ }
12206
+ scale.invert = scale;
12207
+ scale.domain = scale.range = (d) => d;
12208
+ scale.unknown = (u) => {
12209
+ if (u) {
12210
+ unknown = u;
12211
+ }
12212
+ return unknown;
12213
+ };
12214
+ scale.copy = () => scaleIdentity().unknown(unknown);
12215
+ return scale;
12216
+ }
12201
12217
 
12202
12218
  // src/layers/schema/carto-vector-tile-loader.ts
12203
12219
  var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
@@ -13540,7 +13556,8 @@ void main(void) {
13540
13556
  quantile: quantile2,
13541
13557
  quantize,
13542
13558
  sqrt,
13543
- custom: threshold
13559
+ custom: threshold,
13560
+ identity: scaleIdentity
13544
13561
  };
13545
13562
  function identity3(v) {
13546
13563
  return v;
@@ -13849,32 +13866,13 @@ void main(void) {
13849
13866
  return normalizeAccessor(accessor, data);
13850
13867
  }
13851
13868
  function getColorAccessor({
13852
- name
13869
+ name,
13870
+ colorColumn
13853
13871
  }, scaleType, {
13854
13872
  aggregation,
13855
- range: {
13856
- colors,
13857
- colorMap
13858
- }
13873
+ range: range2
13859
13874
  }, opacity, data) {
13860
- const scale = SCALE_FUNCS[scaleType]();
13861
- let domain = [];
13862
- let scaleColor = [];
13863
- if (Array.isArray(colorMap)) {
13864
- colorMap.forEach(([value, color2]) => {
13865
- domain.push(value);
13866
- scaleColor.push(color2);
13867
- });
13868
- } else {
13869
- domain = calculateDomain(data, name, scaleType, colors.length);
13870
- scaleColor = colors;
13871
- }
13872
- if (scaleType === "ordinal") {
13873
- domain = domain.slice(0, scaleColor.length);
13874
- }
13875
- scale.domain(domain);
13876
- scale.range(scaleColor);
13877
- scale.unknown(UNKNOWN_COLOR);
13875
+ const scale = calculateLayerScale(colorColumn || name, scaleType, range2, data);
13878
13876
  const alpha = opacityToAlpha(opacity);
13879
13877
  let accessorKeys = getAccessorKeys(name, aggregation);
13880
13878
  const accessor = (properties) => {
@@ -13891,6 +13889,33 @@ void main(void) {
13891
13889
  };
13892
13890
  return normalizeAccessor(accessor, data);
13893
13891
  }
13892
+ function calculateLayerScale(name, scaleType, range2, data) {
13893
+ const scale = SCALE_FUNCS[scaleType]();
13894
+ let domain = [];
13895
+ let scaleColor = [];
13896
+ if (scaleType !== "identity") {
13897
+ const {
13898
+ colorMap,
13899
+ colors
13900
+ } = range2;
13901
+ if (Array.isArray(colorMap)) {
13902
+ colorMap.forEach(([value, color2]) => {
13903
+ domain.push(value);
13904
+ scaleColor.push(color2);
13905
+ });
13906
+ } else {
13907
+ domain = calculateDomain(data, name, scaleType, colors.length);
13908
+ scaleColor = colors;
13909
+ }
13910
+ if (scaleType === "ordinal") {
13911
+ domain = domain.slice(0, scaleColor.length);
13912
+ }
13913
+ }
13914
+ scale.domain(domain);
13915
+ scale.range(scaleColor);
13916
+ scale.unknown(UNKNOWN_COLOR);
13917
+ return scale;
13918
+ }
13894
13919
  var FALLBACK_ICON = "data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==";
13895
13920
  function getIconUrlAccessor(field, range2, {
13896
13921
  fallbackUrl,
@@ -68,7 +68,8 @@ var SCALE_FUNCS = {
68
68
  quantile: _d3Scale.scaleQuantile,
69
69
  quantize: _d3Scale.scaleQuantize,
70
70
  sqrt: _d3Scale.scaleSqrt,
71
- custom: _d3Scale.scaleThreshold
71
+ custom: _d3Scale.scaleThreshold,
72
+ identity: _utils.scaleIdentity
72
73
  };
73
74
 
74
75
  function identity(v) {
@@ -462,36 +463,11 @@ function getColorValueAccessor(_ref2, colorAggregation, data) {
462
463
  }
463
464
 
464
465
  function getColorAccessor(_ref3, scaleType, _ref4, opacity, data) {
465
- var name = _ref3.name;
466
+ var name = _ref3.name,
467
+ colorColumn = _ref3.colorColumn;
466
468
  var aggregation = _ref4.aggregation,
467
- _ref4$range = _ref4.range,
468
- colors = _ref4$range.colors,
469
- colorMap = _ref4$range.colorMap;
470
- var scale = SCALE_FUNCS[scaleType]();
471
- var domain = [];
472
- var scaleColor = [];
473
-
474
- if (Array.isArray(colorMap)) {
475
- colorMap.forEach(function (_ref5) {
476
- var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
477
- value = _ref6[0],
478
- color = _ref6[1];
479
-
480
- domain.push(value);
481
- scaleColor.push(color);
482
- });
483
- } else {
484
- domain = calculateDomain(data, name, scaleType, colors.length);
485
- scaleColor = colors;
486
- }
487
-
488
- if (scaleType === 'ordinal') {
489
- domain = domain.slice(0, scaleColor.length);
490
- }
491
-
492
- scale.domain(domain);
493
- scale.range(scaleColor);
494
- scale.unknown(UNKNOWN_COLOR);
469
+ range = _ref4.range;
470
+ var scale = calculateLayerScale(colorColumn || name, scaleType, range, data);
495
471
  var alpha = opacityToAlpha(opacity);
496
472
  var accessorKeys = getAccessorKeys(name, aggregation);
497
473
 
@@ -513,6 +489,40 @@ function getColorAccessor(_ref3, scaleType, _ref4, opacity, data) {
513
489
  return normalizeAccessor(accessor, data);
514
490
  }
515
491
 
492
+ function calculateLayerScale(name, scaleType, range, data) {
493
+ var scale = SCALE_FUNCS[scaleType]();
494
+ var domain = [];
495
+ var scaleColor = [];
496
+
497
+ if (scaleType !== 'identity') {
498
+ var colorMap = range.colorMap,
499
+ colors = range.colors;
500
+
501
+ if (Array.isArray(colorMap)) {
502
+ colorMap.forEach(function (_ref5) {
503
+ var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
504
+ value = _ref6[0],
505
+ color = _ref6[1];
506
+
507
+ domain.push(value);
508
+ scaleColor.push(color);
509
+ });
510
+ } else {
511
+ domain = calculateDomain(data, name, scaleType, colors.length);
512
+ scaleColor = colors;
513
+ }
514
+
515
+ if (scaleType === 'ordinal') {
516
+ domain = domain.slice(0, scaleColor.length);
517
+ }
518
+ }
519
+
520
+ scale.domain(domain);
521
+ scale.range(scaleColor);
522
+ scale.unknown(UNKNOWN_COLOR);
523
+ return scale;
524
+ }
525
+
516
526
  var FALLBACK_ICON = 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';
517
527
 
518
528
  function getIconUrlAccessor(field, range, _ref7, data) {
@@ -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","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","range","colorMap","scale","domain","scaleColor","forEach","value","push","slice","unknown","alpha","accessorKeys","propertyValue","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;AARU,CAApB;;AAYA,SAASC,QAAT,CAAqBC,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;AACFvF,IAAAA,KAAK,EAAE;AACLwF,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,EAAkF;AAChF,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,MAHCoB,WAGD,SAHCA,WAGD;AAAA,0BAHcW,KAGd;AAAA,MAHsBlH,MAGtB,eAHsBA,MAGtB;AAAA,MAH8BmH,QAG9B,eAH8BA,QAG9B;AACA,MAAMC,KAAK,GAAGvL,WAAW,CAACwI,SAAD,CAAX,EAAd;AACA,MAAIgD,MAA2B,GAAG,EAAlC;AACA,MAAIC,UAAoB,GAAG,EAA3B;;AAEA,MAAI5B,KAAK,CAACC,OAAN,CAAcwB,QAAd,CAAJ,EAA6B;AAC3BA,IAAAA,QAAQ,CAACI,OAAT,CAAiB,iBAAoB;AAAA;AAAA,UAAlBC,KAAkB;AAAA,UAAX7I,KAAW;;AACnC0I,MAAAA,MAAM,CAACI,IAAP,CAAYD,KAAZ;AACAF,MAAAA,UAAU,CAACG,IAAX,CAAgB9I,KAAhB;AACD,KAHD;AAID,GALD,MAKO;AACL0I,IAAAA,MAAM,GAAGnC,eAAe,CAACtB,IAAD,EAAOuB,IAAP,EAAad,SAAb,EAAwBrE,MAAM,CAACnC,MAA/B,CAAxB;AACAyJ,IAAAA,UAAU,GAAGtH,MAAb;AACD;;AAED,MAAIqE,SAAS,KAAK,SAAlB,EAA6B;AAC3BgD,IAAAA,MAAM,GAAGA,MAAM,CAACK,KAAP,CAAa,CAAb,EAAgBJ,UAAU,CAACzJ,MAA3B,CAAT;AACD;;AAEDuJ,EAAAA,KAAK,CAACC,MAAN,CAAaA,MAAb;AACAD,EAAAA,KAAK,CAACF,KAAN,CAAYI,UAAZ;AACAF,EAAAA,KAAK,CAACO,OAAN,CAAc3K,aAAd;AACA,MAAM4K,KAAK,GAAG1B,cAAc,CAACzH,OAAD,CAA5B;AAEA,MAAIoJ,YAAY,GAAGvB,eAAe,CAACnB,IAAD,EAAOoB,WAAP,CAAlC;;AACA,MAAM3I,QAAQ,GAAG,SAAXA,QAAW,CAAA6H,UAAU,EAAI;AAC7B,QAAI,EAAEoC,YAAY,CAAC,CAAD,CAAZ,IAAmBpC,UAArB,CAAJ,EAAsC;AACpCoC,MAAAA,YAAY,GAAGlB,eAAe,CAACkB,YAAD,EAAepC,UAAf,CAA9B;AACD;;AACD,QAAMqC,aAAa,GAAGrC,UAAU,CAACoC,YAAY,CAAC,CAAD,CAAb,CAAhC;;AACA,gBAAkB,kBAAIT,KAAK,CAACU,aAAD,CAAT,CAAlB;AAAA,QAAOxJ,CAAP,SAAOA,CAAP;AAAA,QAAUC,CAAV,SAAUA,CAAV;AAAA,QAAaC,CAAb,SAAaA,CAAb;;AACA,WAAO,CAACF,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUsJ,aAAa,KAAK,IAAlB,GAAyB,CAAzB,GAA6BF,KAAvC,CAAP;AACD,GAPD;;AAQA,SAAOhC,iBAAiB,CAAChI,QAAD,EAAWgG,IAAX,CAAxB;AACD;;AAED,IAAMmE,aAAa,GACjB,0LADF;;AAGO,SAASC,kBAAT,CACLC,KADK,EAELf,KAFK,SAILtD,IAJK,EAKL;AAAA,MAFCsE,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,MAAIb,KAAJ,aAAIA,KAAJ,eAAIA,KAAK,CAAE0B,YAAX,EAAyB;AACvBD,IAAAA,YAAY,GAAGzB,KAAK,CAAC0B,YAArB;AACD;;AAED,MAAMC,WAAW,GAAGR,iBAAiB,CAACM,YAAD,CAArC;;AACA,MAAI,CAACzB,KAAD,IAAU,CAACe,KAAf,EAAsB;AACpB,WAAO;AAAA,aAAMY,WAAN;AAAA,KAAP;AACD;;AAED,MAAMC,OAA4B,GAAG,EAArC;;AAnBA,8CAoBiC5B,KAAK,CAAC6B,SApBvC;AAAA;;AAAA;AAoBA,2DAAkD;AAAA;AAAA,UAAtCvB,MAAsC,gBAAtCA,KAAsC;AAAA,UAA/BwB,SAA+B,gBAA/BA,SAA+B;;AAChD,UAAIA,SAAJ,EAAe;AACbF,QAAAA,OAAO,CAACtB,MAAD,CAAP,GAAiBa,iBAAiB,CAACW,SAAD,CAAlC;AACD;AACF;AAxBD;AAAA;AAAA;AAAA;AAAA;;AA0BA,MAAMpL,QAAQ,GAAG,SAAXA,QAAW,CAAA6H,UAAU,EAAI;AAC7B,QAAMqC,aAAa,GAAGrC,UAAU,CAACwC,KAAK,CAAC9C,IAAP,CAAhC;AACA,WAAO2D,OAAO,CAAChB,aAAD,CAAP,IAA0Be,WAAjC;AACD,GAHD;;AAIA,SAAOjD,iBAAiB,CAAChI,QAAD,EAAWgG,IAAX,CAAxB;AACD;;AAEM,SAASqF,gBAAT,CAA0B/J,SAA1B,EAAgDgK,cAAhD,EAAwF;AAC7F,MAAOC,WAAP,GAA8BjK,SAA9B,CAAOiK,WAAP;AAAA,MAAoB1J,MAApB,GAA8BP,SAA9B,CAAoBO,MAApB;AACA,MAAO2J,WAAP,GAAiCF,cAAjC,CAAOE,WAAP;AAAA,MAAoBC,SAApB,GAAiCH,cAAjC,CAAoBG,SAApB;AACA,MAAMpB,KAAK,GAAGmB,WAAW,IAAIC,SAA7B;AACA,SAAOlD,IAAI,CAACmD,IAAL,CAAUH,WAAW,IAAIlB,KAAf,GAAuBkB,WAAW,CAAC,CAAD,CAAlC,GAAwC1J,MAAlD,CAAP;AACD;;AAEM,SAAS8J,cAAT,CAA2B3L,QAA3B,EAA+E;AACpF,SAAO,OAAOA,QAAP,KAAoB,UAApB,GAAiC,UAAC0D,CAAD,EAAIkI,CAAJ;AAAA,WAAU,CAAC5L,QAAQ,CAAC0D,CAAD,EAAIkI,CAAJ,CAAnB;AAAA,GAAjC,GAA6D,CAAC5L,QAArE;AACD;;AAEM,SAAS6L,eAAT,QAELpF,SAFK,EAGLkC,WAHK,EAILW,KAJK,EAKLtD,IALK,EAML;AAAA,MALCuB,IAKD,SALCA,IAKD;AACA,MAAMiC,KAAK,GAAG/C,SAAS,GAAGxI,WAAW,CAACwI,SAAD,CAAX,EAAH,GAAqCvH,QAA5D;;AACA,MAAIuH,SAAJ,EAAe;AACb,QAAIkC,WAAW,KAAK,OAApB,EAA6B;AAC3Ba,MAAAA,KAAK,CAACC,MAAN,CAAanC,eAAe,CAACtB,IAAD,EAAOuB,IAAP,EAAad,SAAb,CAA5B;AACD;;AACD+C,IAAAA,KAAK,CAACF,KAAN,CAAYA,KAAZ;AACD;;AAED,MAAIW,YAAY,GAAGvB,eAAe,CAACnB,IAAD,EAAOoB,WAAP,CAAlC;;AACA,MAAM3I,QAAQ,GAAG,SAAXA,QAAW,CAAA6H,UAAU,EAAI;AAC7B,QAAI,EAAEoC,YAAY,CAAC,CAAD,CAAZ,IAAmBpC,UAArB,CAAJ,EAAsC;AACpCoC,MAAAA,YAAY,GAAGlB,eAAe,CAACkB,YAAD,EAAepC,UAAf,CAA9B;AACD;;AACD,QAAMqC,aAAa,GAAGrC,UAAU,CAACoC,YAAY,CAAC,CAAD,CAAb,CAAhC;AACA,WAAOT,KAAK,CAACU,aAAD,CAAZ;AACD,GAND;;AAOA,SAAOlC,iBAAiB,CAAChI,QAAD,EAAWgG,IAAX,CAAxB;AACD;;AAED,IAAM8F,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,QAA2DzG,IAA3D,EAAiE;AAAA,MAAvCuB,IAAuC,SAAvCA,IAAuC;AAAA,MAAjCrE,IAAiC,SAAjCA,IAAiC;AACtE,MAAMiJ,MAAM,GAAGL,OAAO,CAAC5I,IAAD,CAAP,IAAiB4I,OAAO,CAACS,OAAxC;;AACA,MAAMvM,QAAQ,GAAG,SAAXA,QAAW,CAAA6H,UAAU,EAAI;AAC7B,WAAOsE,MAAM,CAACtE,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} 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};\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},\n scaleType: SCALE_TYPE,\n {aggregation, range: {colors, colorMap}},\n opacity: number | undefined,\n data: any\n) {\n const scale = SCALE_FUNCS[scaleType as any]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\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 scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\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\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","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[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"}
@@ -17,7 +17,7 @@ var _tileLoaderUtils = require("./tile-loader-utils");
17
17
 
18
18
  var _utils = require("../../utils");
19
19
 
20
- var VERSION = typeof "8.9.31" !== 'undefined' ? "8.9.31" : 'latest';
20
+ var VERSION = typeof "8.9.32" !== 'undefined' ? "8.9.32" : 'latest';
21
21
  var id = 'cartoRasterTile';
22
22
  var DEFAULT_OPTIONS = {
23
23
  cartoRasterTile: {
@@ -19,7 +19,7 @@ var _utils = require("../../utils");
19
19
 
20
20
  var _spatialjsonUtils = require("./spatialjson-utils");
21
21
 
22
- var VERSION = typeof "8.9.31" !== 'undefined' ? "8.9.31" : 'latest';
22
+ var VERSION = typeof "8.9.32" !== 'undefined' ? "8.9.32" : 'latest';
23
23
  var id = 'cartoSpatialTile';
24
24
  var DEFAULT_OPTIONS = {
25
25
  cartoSpatialTile: {
@@ -19,7 +19,7 @@ var _tileLoaderUtils = require("./tile-loader-utils");
19
19
 
20
20
  var _utils = require("../../utils");
21
21
 
22
- var VERSION = typeof "8.9.31" !== 'undefined' ? "8.9.31" : 'latest';
22
+ var VERSION = typeof "8.9.32" !== 'undefined' ? "8.9.32" : 'latest';
23
23
  var id = 'cartoVectorTile';
24
24
  var DEFAULT_OPTIONS = {
25
25
  cartoVectorTile: {
package/dist/es5/utils.js CHANGED
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.assert = assert;
7
7
  exports.createBinaryProxy = createBinaryProxy;
8
8
  exports.getWorkerUrl = getWorkerUrl;
9
+ exports.scaleIdentity = scaleIdentity;
9
10
 
10
11
  var _core = require("@deck.gl/core");
11
12
 
@@ -33,4 +34,32 @@ function createBinaryProxy(data, index) {
33
34
  function getWorkerUrl(id, version) {
34
35
  return "https://unpkg.com/@deck.gl/carto@".concat(version, "/dist/").concat(id, "-worker.js");
35
36
  }
37
+
38
+ function scaleIdentity() {
39
+ var unknown;
40
+
41
+ function scale(x) {
42
+ return x === null ? unknown : x;
43
+ }
44
+
45
+ scale.invert = scale;
46
+
47
+ scale.domain = scale.range = function (d) {
48
+ return d;
49
+ };
50
+
51
+ scale.unknown = function (u) {
52
+ if (u) {
53
+ unknown = u;
54
+ }
55
+
56
+ return unknown;
57
+ };
58
+
59
+ scale.copy = function () {
60
+ return scaleIdentity().unknown(unknown);
61
+ };
62
+
63
+ return scale;
64
+ }
36
65
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils.ts"],"names":["assert","condition","message","log","createBinaryProxy","data","index","properties","numericProps","Proxy","get","target","property","receiver","value","has","getWorkerUrl","id","version"],"mappings":";;;;;;;;;AAAA;;AAGO,SAASA,MAAT,CAAgBC,SAAhB,EAAoCC,OAApC,EAAyE;AAC9EC,YAAIH,MAAJ,CAAWC,SAAX,EAAsBC,OAAtB;AACD;;AAIM,SAASE,iBAAT,CACLC,IADK,EAELC,KAFK,EAGL;AACA,MAAOC,UAAP,GAAmCF,IAAnC,CAAOE,UAAP;AAAA,MAAmBC,YAAnB,GAAmCH,IAAnC,CAAmBG,YAAnB;AACA,SAAO,IAAIC,KAAJ,CAAUF,UAAU,CAACD,KAAD,CAAV,IAAqB,EAA/B,EAAmC;AACxCI,IAAAA,GADwC,eACpCC,MADoC,EAC5BC,QAD4B,EAClBC,QADkB,EACR;AAC9B,UAAID,QAAQ,IAAIJ,YAAhB,EAA8B;AAC5B,eAAOA,YAAY,CAACI,QAAD,CAAZ,CAAiCE,KAAjC,CAAuCR,KAAvC,CAAP;AACD;;AACD,aAAOK,MAAM,CAACC,QAAD,CAAb;AACD,KANuC;AAQxCG,IAAAA,GARwC,eAQpCJ,MARoC,EAQ5BC,QAR4B,EAQlB;AACpB,aAAOA,QAAQ,IAAIJ,YAAZ,IAA4BI,QAAQ,IAAID,MAA/C;AACD;AAVuC,GAAnC,CAAP;AAYD;;AAEM,SAASK,YAAT,CAAsBC,EAAtB,EAAkCC,OAAlC,EAAmD;AAGxD,oDAA2CA,OAA3C,mBAA2DD,EAA3D;AACD","sourcesContent":["import {log} from '@deck.gl/core';\nimport type {Properties, NumericProps} from './layers/schema/spatialjson-utils';\n\nexport function assert(condition: unknown, message?: string): asserts condition {\n log.assert(condition, message);\n}\n\n// Returns a Proxy object that allows accessing binary data\n// as if it were JSON properties\nexport function createBinaryProxy(\n data: {numericProps: NumericProps; properties: Properties[]},\n index: number\n) {\n const {properties, numericProps} = data;\n return new Proxy(properties[index] || {}, {\n get(target, property, receiver) {\n if (property in numericProps) {\n return numericProps[property as string].value[index];\n }\n return target[property as string];\n },\n\n has(target, property) {\n return property in numericProps || property in target;\n }\n });\n}\n\nexport function getWorkerUrl(id: string, version: string) {\n // For local testing `yarn build-workers` and then host `modules/carto/dist/`\n // return `http://localhost:8081/dist/${id}-worker.js`;\n return `https://unpkg.com/@deck.gl/carto@${version}/dist/${id}-worker.js`;\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../src/utils.ts"],"names":["assert","condition","message","log","createBinaryProxy","data","index","properties","numericProps","Proxy","get","target","property","receiver","value","has","getWorkerUrl","id","version","scaleIdentity","unknown","scale","x","invert","domain","range","d","u","copy"],"mappings":";;;;;;;;;;AAAA;;AAGO,SAASA,MAAT,CAAgBC,SAAhB,EAAoCC,OAApC,EAAyE;AAC9EC,YAAIH,MAAJ,CAAWC,SAAX,EAAsBC,OAAtB;AACD;;AAIM,SAASE,iBAAT,CACLC,IADK,EAELC,KAFK,EAGL;AACA,MAAOC,UAAP,GAAmCF,IAAnC,CAAOE,UAAP;AAAA,MAAmBC,YAAnB,GAAmCH,IAAnC,CAAmBG,YAAnB;AACA,SAAO,IAAIC,KAAJ,CAAUF,UAAU,CAACD,KAAD,CAAV,IAAqB,EAA/B,EAAmC;AACxCI,IAAAA,GADwC,eACpCC,MADoC,EAC5BC,QAD4B,EAClBC,QADkB,EACR;AAC9B,UAAID,QAAQ,IAAIJ,YAAhB,EAA8B;AAC5B,eAAOA,YAAY,CAACI,QAAD,CAAZ,CAAiCE,KAAjC,CAAuCR,KAAvC,CAAP;AACD;;AACD,aAAOK,MAAM,CAACC,QAAD,CAAb;AACD,KANuC;AAQxCG,IAAAA,GARwC,eAQpCJ,MARoC,EAQ5BC,QAR4B,EAQlB;AACpB,aAAOA,QAAQ,IAAIJ,YAAZ,IAA4BI,QAAQ,IAAID,MAA/C;AACD;AAVuC,GAAnC,CAAP;AAYD;;AAEM,SAASK,YAAT,CAAsBC,EAAtB,EAAkCC,OAAlC,EAAmD;AAGxD,oDAA2CA,OAA3C,mBAA2DD,EAA3D;AACD;;AAEM,SAASE,aAAT,GAAyB;AAC9B,MAAIC,OAAJ;;AAEA,WAASC,KAAT,CAAeC,CAAf,EAAkB;AAChB,WAAOA,CAAC,KAAK,IAAN,GAAaF,OAAb,GAAuBE,CAA9B;AACD;;AAEDD,EAAAA,KAAK,CAACE,MAAN,GAAeF,KAAf;;AAEAA,EAAAA,KAAK,CAACG,MAAN,GAAeH,KAAK,CAACI,KAAN,GAAc,UAAAC,CAAC;AAAA,WAAIA,CAAJ;AAAA,GAA9B;;AAEAL,EAAAA,KAAK,CAACD,OAAN,GAAgB,UAAAO,CAAC,EAAI;AACnB,QAAIA,CAAJ,EAAO;AACLP,MAAAA,OAAO,GAAGO,CAAV;AACD;;AAED,WAAOP,OAAP;AACD,GAND;;AAQAC,EAAAA,KAAK,CAACO,IAAN,GAAa;AAAA,WAAMT,aAAa,GAAGC,OAAhB,CAAwBA,OAAxB,CAAN;AAAA,GAAb;;AAEA,SAAOC,KAAP;AACD","sourcesContent":["import {log} from '@deck.gl/core';\nimport type {Properties, NumericProps} from './layers/schema/spatialjson-utils';\n\nexport function assert(condition: unknown, message?: string): asserts condition {\n log.assert(condition, message);\n}\n\n// Returns a Proxy object that allows accessing binary data\n// as if it were JSON properties\nexport function createBinaryProxy(\n data: {numericProps: NumericProps; properties: Properties[]},\n index: number\n) {\n const {properties, numericProps} = data;\n return new Proxy(properties[index] || {}, {\n get(target, property, receiver) {\n if (property in numericProps) {\n return numericProps[property as string].value[index];\n }\n return target[property as string];\n },\n\n has(target, property) {\n return property in numericProps || property in target;\n }\n });\n}\n\nexport function getWorkerUrl(id: string, version: string) {\n // For local testing `yarn build-workers` and then host `modules/carto/dist/`\n // return `http://localhost:8081/dist/${id}-worker.js`;\n return `https://unpkg.com/@deck.gl/carto@${version}/dist/${id}-worker.js`;\n}\n\nexport function scaleIdentity() {\n let unknown;\n\n function scale(x) {\n return x === null ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = d => d;\n\n scale.unknown = u => {\n if (u) {\n unknown = u;\n }\n\n return unknown;\n };\n\n scale.copy = () => scaleIdentity().unknown(unknown);\n\n return scale;\n}\n"],"file":"utils.js"}
@@ -11,7 +11,7 @@ import H3TileLayer from '../layers/h3-tile-layer';
11
11
  import QuadbinTileLayer from '../layers/quadbin-tile-layer';
12
12
  import RasterTileLayer from '../layers/raster-tile-layer';
13
13
  import { TILE_FORMATS } from './maps-api-common';
14
- import { assert, createBinaryProxy } from '../utils';
14
+ import { assert, createBinaryProxy, scaleIdentity } from '../utils';
15
15
  const SCALE_FUNCS = {
16
16
  linear: scaleLinear,
17
17
  ordinal: scaleOrdinal,
@@ -20,7 +20,8 @@ const SCALE_FUNCS = {
20
20
  quantile: scaleQuantile,
21
21
  quantize: scaleQuantize,
22
22
  sqrt: scaleSqrt,
23
- custom: scaleThreshold
23
+ custom: scaleThreshold,
24
+ identity: scaleIdentity
24
25
  };
25
26
 
26
27
  function identity(v) {
@@ -360,35 +361,13 @@ export function getColorValueAccessor({
360
361
  return normalizeAccessor(accessor, data);
361
362
  }
362
363
  export function getColorAccessor({
363
- name
364
+ name,
365
+ colorColumn
364
366
  }, scaleType, {
365
367
  aggregation,
366
- range: {
367
- colors,
368
- colorMap
369
- }
368
+ range
370
369
  }, opacity, data) {
371
- const scale = SCALE_FUNCS[scaleType]();
372
- let domain = [];
373
- let scaleColor = [];
374
-
375
- if (Array.isArray(colorMap)) {
376
- colorMap.forEach(([value, color]) => {
377
- domain.push(value);
378
- scaleColor.push(color);
379
- });
380
- } else {
381
- domain = calculateDomain(data, name, scaleType, colors.length);
382
- scaleColor = colors;
383
- }
384
-
385
- if (scaleType === 'ordinal') {
386
- domain = domain.slice(0, scaleColor.length);
387
- }
388
-
389
- scale.domain(domain);
390
- scale.range(scaleColor);
391
- scale.unknown(UNKNOWN_COLOR);
370
+ const scale = calculateLayerScale(colorColumn || name, scaleType, range, data);
392
371
  const alpha = opacityToAlpha(opacity);
393
372
  let accessorKeys = getAccessorKeys(name, aggregation);
394
373
 
@@ -408,6 +387,39 @@ export function getColorAccessor({
408
387
 
409
388
  return normalizeAccessor(accessor, data);
410
389
  }
390
+
391
+ function calculateLayerScale(name, scaleType, range, data) {
392
+ const scale = SCALE_FUNCS[scaleType]();
393
+ let domain = [];
394
+ let scaleColor = [];
395
+
396
+ if (scaleType !== 'identity') {
397
+ const {
398
+ colorMap,
399
+ colors
400
+ } = range;
401
+
402
+ if (Array.isArray(colorMap)) {
403
+ colorMap.forEach(([value, color]) => {
404
+ domain.push(value);
405
+ scaleColor.push(color);
406
+ });
407
+ } else {
408
+ domain = calculateDomain(data, name, scaleType, colors.length);
409
+ scaleColor = colors;
410
+ }
411
+
412
+ if (scaleType === 'ordinal') {
413
+ domain = domain.slice(0, scaleColor.length);
414
+ }
415
+ }
416
+
417
+ scale.domain(domain);
418
+ scale.range(scaleColor);
419
+ scale.unknown(UNKNOWN_COLOR);
420
+ return scale;
421
+ }
422
+
411
423
  const FALLBACK_ICON = 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';
412
424
  export function getIconUrlAccessor(field, range, {
413
425
  fallbackUrl,