@deck.gl/carto 8.8.4 → 8.8.5
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.
- package/dist/dist.dev.js +237 -66
- package/dist/es5/api/layer-map.js +104 -17
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +191 -35
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +14 -4
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/es5/config.js +11 -2
- package/dist/es5/config.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +4 -17
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/esm/api/layer-map.js +79 -14
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +90 -3
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +18 -4
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/config.js +10 -2
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +4 -15
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist.min.js +138 -138
- package/package.json +2 -2
- package/src/api/layer-map.ts +76 -13
- package/src/api/maps-v3-client.ts +92 -4
- package/src/api/parseMap.ts +6 -2
- package/src/config.ts +12 -2
- package/src/layers/carto-layer.ts +9 -29
- package/typed/api/layer-map.d.ts +12 -4
- package/typed/api/layer-map.d.ts.map +1 -1
- package/typed/api/maps-v3-client.d.ts.map +1 -1
- package/typed/config.d.ts +2 -0
- package/typed/config.d.ts.map +1 -1
- package/typed/layers/carto-layer.d.ts +2 -7
- package/typed/layers/carto-layer.d.ts.map +1 -1
package/dist/dist.dev.js
CHANGED
|
@@ -46676,7 +46676,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
46676
46676
|
/*!******************************!*\
|
|
46677
46677
|
!*** ./src/api/layer-map.ts ***!
|
|
46678
46678
|
\******************************/
|
|
46679
|
-
/*! exports provided: AGGREGATION, OPACITY_MAP, getLayer, opacityToAlpha, getColorValueAccessor, getColorAccessor, getSizeAccessor, getTextAccessor, getTextPixelOffsetAccessor, _domainFromValues */
|
|
46679
|
+
/*! exports provided: AGGREGATION, OPACITY_MAP, getLayer, layerFromTileDataset, opacityToAlpha, getColorValueAccessor, getColorAccessor, getSizeAccessor, getTextAccessor, getTextPixelOffsetAccessor, _domainFromValues */
|
|
46680
46680
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
46681
46681
|
|
|
46682
46682
|
"use strict";
|
|
@@ -46684,6 +46684,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
46684
46684
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AGGREGATION", function() { return AGGREGATION; });
|
|
46685
46685
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OPACITY_MAP", function() { return OPACITY_MAP; });
|
|
46686
46686
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLayer", function() { return getLayer; });
|
|
46687
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "layerFromTileDataset", function() { return layerFromTileDataset; });
|
|
46687
46688
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "opacityToAlpha", function() { return opacityToAlpha; });
|
|
46688
46689
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getColorValueAccessor", function() { return getColorValueAccessor; });
|
|
46689
46690
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getColorAccessor", function() { return getColorAccessor; });
|
|
@@ -46700,8 +46701,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
46700
46701
|
/* harmony import */ var _deck_gl_aggregation_layers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @deck.gl/aggregation-layers */ "@deck.gl/core");
|
|
46701
46702
|
/* harmony import */ var _deck_gl_aggregation_layers__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_aggregation_layers__WEBPACK_IMPORTED_MODULE_5__);
|
|
46702
46703
|
/* harmony import */ var _layers_carto_tile_layer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../layers/carto-tile-layer */ "./src/layers/carto-tile-layer.ts");
|
|
46703
|
-
/* harmony import */ var
|
|
46704
|
-
/* harmony import */ var
|
|
46704
|
+
/* harmony import */ var _layers_h3_tile_layer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../layers/h3-tile-layer */ "./src/layers/h3-tile-layer.ts");
|
|
46705
|
+
/* harmony import */ var _layers_quadbin_tile_layer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../layers/quadbin-tile-layer */ "./src/layers/quadbin-tile-layer.ts");
|
|
46706
|
+
/* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.ts");
|
|
46707
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils */ "./src/utils.ts");
|
|
46708
|
+
|
|
46709
|
+
|
|
46705
46710
|
|
|
46706
46711
|
|
|
46707
46712
|
|
|
@@ -46805,7 +46810,7 @@ function mergePropMaps(a = {}, b = {}) {
|
|
|
46805
46810
|
}
|
|
46806
46811
|
|
|
46807
46812
|
function getLayer(type, config, dataset) {
|
|
46808
|
-
if (type === 'mvt' || type === 'tileset') {
|
|
46813
|
+
if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {
|
|
46809
46814
|
return getTileLayer(dataset);
|
|
46810
46815
|
}
|
|
46811
46816
|
|
|
@@ -46877,7 +46882,7 @@ function getLayer(type, config, dataset) {
|
|
|
46877
46882
|
}
|
|
46878
46883
|
};
|
|
46879
46884
|
const layer = layerTypeDefs[type];
|
|
46880
|
-
Object(
|
|
46885
|
+
Object(_utils__WEBPACK_IMPORTED_MODULE_10__["assert"])(layer, `Unsupported layer type: ${type}`);
|
|
46881
46886
|
return { ...layer,
|
|
46882
46887
|
propMap: mergePropMaps(sharedPropMap, layer.propMap),
|
|
46883
46888
|
defaultProps: { ...defaultProps,
|
|
@@ -46885,31 +46890,60 @@ function getLayer(type, config, dataset) {
|
|
|
46885
46890
|
}
|
|
46886
46891
|
};
|
|
46887
46892
|
}
|
|
46893
|
+
function layerFromTileDataset(formatTiles = _maps_api_common__WEBPACK_IMPORTED_MODULE_9__["TILE_FORMATS"].MVT, scheme) {
|
|
46894
|
+
if (scheme === 'h3') {
|
|
46895
|
+
return _layers_h3_tile_layer__WEBPACK_IMPORTED_MODULE_7__["default"];
|
|
46896
|
+
}
|
|
46897
|
+
|
|
46898
|
+
if (scheme === 'quadbin') {
|
|
46899
|
+
return _layers_quadbin_tile_layer__WEBPACK_IMPORTED_MODULE_8__["default"];
|
|
46900
|
+
}
|
|
46901
|
+
|
|
46902
|
+
if (formatTiles === _maps_api_common__WEBPACK_IMPORTED_MODULE_9__["TILE_FORMATS"].MVT) {
|
|
46903
|
+
return _deck_gl_aggregation_layers__WEBPACK_IMPORTED_MODULE_5__["MVTLayer"];
|
|
46904
|
+
} // formatTiles === BINARY|JSON|GEOJSON
|
|
46905
|
+
|
|
46906
|
+
|
|
46907
|
+
return _layers_carto_tile_layer__WEBPACK_IMPORTED_MODULE_6__["default"];
|
|
46908
|
+
}
|
|
46888
46909
|
|
|
46889
46910
|
function getTileLayer(dataset) {
|
|
46890
46911
|
const {
|
|
46912
|
+
aggregationExp,
|
|
46913
|
+
aggregationResLevel,
|
|
46891
46914
|
data: {
|
|
46915
|
+
scheme,
|
|
46892
46916
|
tiles: [tileUrl]
|
|
46893
46917
|
}
|
|
46894
46918
|
} = dataset;
|
|
46895
46919
|
/* global URL */
|
|
46896
46920
|
|
|
46897
|
-
const formatTiles = new URL(tileUrl).searchParams.get('formatTiles')
|
|
46921
|
+
const formatTiles = new URL(tileUrl).searchParams.get('formatTiles');
|
|
46898
46922
|
return {
|
|
46899
|
-
Layer: formatTiles
|
|
46923
|
+
Layer: layerFromTileDataset(formatTiles, scheme),
|
|
46900
46924
|
propMap: sharedPropMap,
|
|
46901
46925
|
defaultProps: { ...defaultProps,
|
|
46902
|
-
|
|
46903
|
-
|
|
46926
|
+
...(aggregationExp && {
|
|
46927
|
+
aggregationExp
|
|
46928
|
+
}),
|
|
46929
|
+
...(aggregationResLevel && {
|
|
46930
|
+
aggregationResLevel
|
|
46931
|
+
}),
|
|
46932
|
+
formatTiles,
|
|
46933
|
+
uniqueIdProperty: 'geoid'
|
|
46904
46934
|
}
|
|
46905
46935
|
};
|
|
46906
46936
|
}
|
|
46907
46937
|
|
|
46908
|
-
function domainFromAttribute(attribute, scaleType) {
|
|
46938
|
+
function domainFromAttribute(attribute, scaleType, scaleLength) {
|
|
46909
46939
|
if (scaleType === 'ordinal' || scaleType === 'point') {
|
|
46910
46940
|
return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);
|
|
46911
46941
|
}
|
|
46912
46942
|
|
|
46943
|
+
if (scaleType === 'quantile' && attribute.quantiles) {
|
|
46944
|
+
return attribute.quantiles[scaleLength];
|
|
46945
|
+
}
|
|
46946
|
+
|
|
46913
46947
|
let {
|
|
46914
46948
|
min
|
|
46915
46949
|
} = attribute;
|
|
@@ -46934,14 +46968,14 @@ function domainFromValues(values, scaleType) {
|
|
|
46934
46968
|
return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__["extent"])(values);
|
|
46935
46969
|
}
|
|
46936
46970
|
|
|
46937
|
-
function calculateDomain(data, name, scaleType) {
|
|
46971
|
+
function calculateDomain(data, name, scaleType, scaleLength) {
|
|
46938
46972
|
if (data.tilestats) {
|
|
46939
46973
|
// Tileset data type
|
|
46940
46974
|
const {
|
|
46941
46975
|
attributes
|
|
46942
46976
|
} = data.tilestats.layers[0];
|
|
46943
46977
|
const attribute = attributes.find(a => a.attribute === name);
|
|
46944
|
-
return domainFromAttribute(attribute, scaleType);
|
|
46978
|
+
return domainFromAttribute(attribute, scaleType, scaleLength);
|
|
46945
46979
|
} else if (data.features) {
|
|
46946
46980
|
// GeoJSON data type
|
|
46947
46981
|
const values = data.features.map(({
|
|
@@ -46972,6 +47006,28 @@ function normalizeAccessor(accessor, data) {
|
|
|
46972
47006
|
function opacityToAlpha(opacity) {
|
|
46973
47007
|
return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;
|
|
46974
47008
|
}
|
|
47009
|
+
|
|
47010
|
+
function getAccessorKeys(name, aggregation) {
|
|
47011
|
+
let keys = [name];
|
|
47012
|
+
|
|
47013
|
+
if (aggregation) {
|
|
47014
|
+
// Snowflake will capitalized the keys, need to check lower and upper case version
|
|
47015
|
+
keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));
|
|
47016
|
+
}
|
|
47017
|
+
|
|
47018
|
+
return keys;
|
|
47019
|
+
}
|
|
47020
|
+
|
|
47021
|
+
function findAccessorKey(keys, properties) {
|
|
47022
|
+
for (const key of keys) {
|
|
47023
|
+
if (key in properties) {
|
|
47024
|
+
return [key];
|
|
47025
|
+
}
|
|
47026
|
+
}
|
|
47027
|
+
|
|
47028
|
+
throw new Error(`Could not find property for any accessor key: ${keys}`);
|
|
47029
|
+
}
|
|
47030
|
+
|
|
46975
47031
|
function getColorValueAccessor({
|
|
46976
47032
|
name
|
|
46977
47033
|
}, colorAggregation, data) {
|
|
@@ -46984,8 +47040,11 @@ function getColorValueAccessor({
|
|
|
46984
47040
|
function getColorAccessor({
|
|
46985
47041
|
name
|
|
46986
47042
|
}, scaleType, {
|
|
46987
|
-
|
|
46988
|
-
|
|
47043
|
+
aggregation,
|
|
47044
|
+
range: {
|
|
47045
|
+
colors,
|
|
47046
|
+
colorMap
|
|
47047
|
+
}
|
|
46989
47048
|
}, opacity, data) {
|
|
46990
47049
|
const scale = SCALE_FUNCS[scaleType]();
|
|
46991
47050
|
let domain = [];
|
|
@@ -46997,7 +47056,7 @@ function getColorAccessor({
|
|
|
46997
47056
|
scaleColor.push(color);
|
|
46998
47057
|
});
|
|
46999
47058
|
} else {
|
|
47000
|
-
domain = calculateDomain(data, name, scaleType);
|
|
47059
|
+
domain = calculateDomain(data, name, scaleType, colors.length);
|
|
47001
47060
|
scaleColor = colors;
|
|
47002
47061
|
}
|
|
47003
47062
|
|
|
@@ -47009,9 +47068,14 @@ function getColorAccessor({
|
|
|
47009
47068
|
scale.range(scaleColor);
|
|
47010
47069
|
scale.unknown(UNKNOWN_COLOR);
|
|
47011
47070
|
const alpha = opacityToAlpha(opacity);
|
|
47071
|
+
let accessorKeys = getAccessorKeys(name, aggregation);
|
|
47012
47072
|
|
|
47013
47073
|
const accessor = properties => {
|
|
47014
|
-
|
|
47074
|
+
if (!(accessorKeys[0] in properties)) {
|
|
47075
|
+
accessorKeys = findAccessorKey(accessorKeys, properties);
|
|
47076
|
+
}
|
|
47077
|
+
|
|
47078
|
+
const propertyValue = properties[accessorKeys[0]];
|
|
47015
47079
|
const {
|
|
47016
47080
|
r,
|
|
47017
47081
|
g,
|
|
@@ -47024,13 +47088,19 @@ function getColorAccessor({
|
|
|
47024
47088
|
}
|
|
47025
47089
|
function getSizeAccessor({
|
|
47026
47090
|
name
|
|
47027
|
-
}, scaleType, range, data) {
|
|
47091
|
+
}, scaleType, aggregation, range, data) {
|
|
47028
47092
|
const scale = SCALE_FUNCS[scaleType]();
|
|
47029
47093
|
scale.domain(calculateDomain(data, name, scaleType));
|
|
47030
47094
|
scale.range(range);
|
|
47095
|
+
let accessorKeys = getAccessorKeys(name, aggregation);
|
|
47031
47096
|
|
|
47032
47097
|
const accessor = properties => {
|
|
47033
|
-
|
|
47098
|
+
if (!(accessorKeys[0] in properties)) {
|
|
47099
|
+
accessorKeys = findAccessorKey(accessorKeys, properties);
|
|
47100
|
+
}
|
|
47101
|
+
|
|
47102
|
+
const propertyValue = properties[accessorKeys[0]];
|
|
47103
|
+
return scale(propertyValue);
|
|
47034
47104
|
};
|
|
47035
47105
|
|
|
47036
47106
|
return normalizeAccessor(accessor, data);
|
|
@@ -47499,6 +47569,9 @@ function getParameters({
|
|
|
47499
47569
|
|
|
47500
47570
|
if (aggregationExp) {
|
|
47501
47571
|
parameters.push(Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('aggregationExp', aggregationExp));
|
|
47572
|
+
} else if (isSpatialIndexGeoColumn(geoColumn)) {
|
|
47573
|
+
// Default aggregationExp required for spatial index layers
|
|
47574
|
+
parameters.push(Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('aggregationExp', '1 AS value'));
|
|
47502
47575
|
}
|
|
47503
47576
|
|
|
47504
47577
|
if (aggregationResLevel) {
|
|
@@ -47508,6 +47581,11 @@ function getParameters({
|
|
|
47508
47581
|
return parameters.join('&');
|
|
47509
47582
|
}
|
|
47510
47583
|
|
|
47584
|
+
function isSpatialIndexGeoColumn(geoColumn) {
|
|
47585
|
+
const spatialIndex = geoColumn?.split(':')[0];
|
|
47586
|
+
return spatialIndex === 'h3' || spatialIndex === 'quadbin';
|
|
47587
|
+
}
|
|
47588
|
+
|
|
47511
47589
|
async function mapInstantiation({
|
|
47512
47590
|
type,
|
|
47513
47591
|
source,
|
|
@@ -47526,8 +47604,8 @@ async function mapInstantiation({
|
|
|
47526
47604
|
geoColumn,
|
|
47527
47605
|
columns,
|
|
47528
47606
|
clientId,
|
|
47529
|
-
|
|
47530
|
-
|
|
47607
|
+
aggregationResLevel,
|
|
47608
|
+
aggregationExp
|
|
47531
47609
|
})}`;
|
|
47532
47610
|
const {
|
|
47533
47611
|
accessToken
|
|
@@ -47730,6 +47808,8 @@ async function _fetchDataUrl({
|
|
|
47730
47808
|
|
|
47731
47809
|
async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
|
|
47732
47810
|
const {
|
|
47811
|
+
aggregationExp,
|
|
47812
|
+
aggregationResLevel,
|
|
47733
47813
|
connectionName: connection,
|
|
47734
47814
|
columns,
|
|
47735
47815
|
format,
|
|
@@ -47742,6 +47822,8 @@ async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
|
|
|
47742
47822
|
url,
|
|
47743
47823
|
mapFormat
|
|
47744
47824
|
} = await _fetchDataUrl({
|
|
47825
|
+
aggregationExp,
|
|
47826
|
+
aggregationResLevel,
|
|
47745
47827
|
clientId,
|
|
47746
47828
|
credentials: { ...credentials,
|
|
47747
47829
|
accessToken
|
|
@@ -47770,6 +47852,36 @@ async function _fetchMapDataset(dataset, accessToken, credentials, clientId) {
|
|
|
47770
47852
|
return true;
|
|
47771
47853
|
}
|
|
47772
47854
|
|
|
47855
|
+
async function _fetchTilestats(attribute, dataset, accessToken, credentials) {
|
|
47856
|
+
const {
|
|
47857
|
+
connectionName: connection,
|
|
47858
|
+
source,
|
|
47859
|
+
type
|
|
47860
|
+
} = dataset;
|
|
47861
|
+
const statsUrl = Object(_config__WEBPACK_IMPORTED_MODULE_0__["buildStatsUrlFromBase"])(credentials.apiBaseUrl);
|
|
47862
|
+
let url = `${statsUrl}/${connection}/`;
|
|
47863
|
+
|
|
47864
|
+
if (type === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["MAP_TYPES"].QUERY) {
|
|
47865
|
+
url += `${attribute}?q=${source}`;
|
|
47866
|
+
} else {
|
|
47867
|
+
// MAP_TYPE.TABLE
|
|
47868
|
+
url += `${source}/${attribute}`;
|
|
47869
|
+
}
|
|
47870
|
+
|
|
47871
|
+
const stats = await requestData({
|
|
47872
|
+
url,
|
|
47873
|
+
format: _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].JSON,
|
|
47874
|
+
accessToken
|
|
47875
|
+
}); // Replace tilestats for attribute with value from API
|
|
47876
|
+
|
|
47877
|
+
const {
|
|
47878
|
+
attributes
|
|
47879
|
+
} = dataset.data.tilestats.layers[0];
|
|
47880
|
+
const index = attributes.findIndex(d => d.attribute === attribute);
|
|
47881
|
+
attributes[index] = stats;
|
|
47882
|
+
return true;
|
|
47883
|
+
}
|
|
47884
|
+
|
|
47773
47885
|
async function fillInMapDatasets({
|
|
47774
47886
|
datasets,
|
|
47775
47887
|
token
|
|
@@ -47778,6 +47890,53 @@ async function fillInMapDatasets({
|
|
|
47778
47890
|
return await Promise.all(promises);
|
|
47779
47891
|
}
|
|
47780
47892
|
|
|
47893
|
+
async function fillInTileStats({
|
|
47894
|
+
datasets,
|
|
47895
|
+
keplerMapConfig,
|
|
47896
|
+
token
|
|
47897
|
+
}, credentials) {
|
|
47898
|
+
const attributes = [];
|
|
47899
|
+
const {
|
|
47900
|
+
layers
|
|
47901
|
+
} = keplerMapConfig.config.visState;
|
|
47902
|
+
|
|
47903
|
+
for (const layer of layers) {
|
|
47904
|
+
for (const channel of Object.keys(layer.visualChannels)) {
|
|
47905
|
+
const attribute = layer.visualChannels[channel]?.name;
|
|
47906
|
+
|
|
47907
|
+
if (attribute) {
|
|
47908
|
+
const dataset = datasets.find(d => d.id === layer.config.dataId);
|
|
47909
|
+
|
|
47910
|
+
if (dataset.data.tilestats && dataset.type !== _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["MAP_TYPES"].TILESET) {
|
|
47911
|
+
// Only fetch stats for QUERY & TABLE map types
|
|
47912
|
+
attributes.push({
|
|
47913
|
+
attribute,
|
|
47914
|
+
dataset
|
|
47915
|
+
});
|
|
47916
|
+
}
|
|
47917
|
+
}
|
|
47918
|
+
}
|
|
47919
|
+
} // Remove duplicates to avoid repeated requests
|
|
47920
|
+
|
|
47921
|
+
|
|
47922
|
+
const filteredAttributes = [];
|
|
47923
|
+
|
|
47924
|
+
for (const a of attributes) {
|
|
47925
|
+
if (!filteredAttributes.find(({
|
|
47926
|
+
attribute,
|
|
47927
|
+
dataset
|
|
47928
|
+
}) => attribute === a.attribute && dataset === a.dataset)) {
|
|
47929
|
+
filteredAttributes.push(a);
|
|
47930
|
+
}
|
|
47931
|
+
}
|
|
47932
|
+
|
|
47933
|
+
const promises = filteredAttributes.map(({
|
|
47934
|
+
attribute,
|
|
47935
|
+
dataset
|
|
47936
|
+
}) => _fetchTilestats(attribute, dataset, token, credentials));
|
|
47937
|
+
return await Promise.all(promises);
|
|
47938
|
+
}
|
|
47939
|
+
|
|
47781
47940
|
async function fetchMap({
|
|
47782
47941
|
cartoMapId,
|
|
47783
47942
|
clientId,
|
|
@@ -47842,7 +48001,9 @@ async function fetchMap({
|
|
|
47842
48001
|
}
|
|
47843
48002
|
}); // Mutates map.datasets so that dataset.data contains data
|
|
47844
48003
|
|
|
47845
|
-
await fillInMapDatasets(map, clientId, localCreds);
|
|
48004
|
+
await fillInMapDatasets(map, clientId, localCreds); // Mutates attributes in visualChannels to contain tile stats
|
|
48005
|
+
|
|
48006
|
+
await fillInTileStats(map, localCreds);
|
|
47846
48007
|
return { ...Object(_parseMap__WEBPACK_IMPORTED_MODULE_2__["parseMap"])(map),
|
|
47847
48008
|
...{
|
|
47848
48009
|
stopAutoRefresh
|
|
@@ -48082,21 +48243,35 @@ function createChannelProps(visualChannels, type, config, data) {
|
|
|
48082
48243
|
}
|
|
48083
48244
|
}
|
|
48084
48245
|
} else if (colorField) {
|
|
48085
|
-
|
|
48246
|
+
const {
|
|
48247
|
+
colorAggregation: aggregation,
|
|
48248
|
+
colorRange: range
|
|
48249
|
+
} = visConfig;
|
|
48250
|
+
result.getFillColor = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getColorAccessor"])(colorField, colorScale, {
|
|
48251
|
+
aggregation,
|
|
48252
|
+
range
|
|
48253
|
+
}, visConfig.opacity, data);
|
|
48086
48254
|
}
|
|
48087
48255
|
|
|
48088
48256
|
if (strokeColorField) {
|
|
48089
48257
|
const fallbackOpacity = type === 'point' ? visConfig.opacity : 1;
|
|
48090
48258
|
const opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : fallbackOpacity;
|
|
48091
|
-
|
|
48259
|
+
const {
|
|
48260
|
+
strokeColorAggregation: aggregation,
|
|
48261
|
+
strokeColorRange: range
|
|
48262
|
+
} = visConfig;
|
|
48263
|
+
result.getLineColor = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getColorAccessor"])(strokeColorField, strokeColorScale, {
|
|
48264
|
+
aggregation,
|
|
48265
|
+
range
|
|
48266
|
+
}, opacity, data);
|
|
48092
48267
|
}
|
|
48093
48268
|
|
|
48094
48269
|
if (heightField) {
|
|
48095
|
-
result.getElevation = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getSizeAccessor"])(heightField, heightScale, visConfig.heightRange || visConfig.sizeRange, data);
|
|
48270
|
+
result.getElevation = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getSizeAccessor"])(heightField, heightScale, visConfig.heightAggregation, visConfig.heightRange || visConfig.sizeRange, data);
|
|
48096
48271
|
}
|
|
48097
48272
|
|
|
48098
48273
|
if (sizeField) {
|
|
48099
|
-
result.getPointRadius = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getSizeAccessor"])(sizeField, sizeScale, visConfig.radiusRange || visConfig.sizeRange, data);
|
|
48274
|
+
result.getPointRadius = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getSizeAccessor"])(sizeField, sizeScale, visConfig.sizeAggregation, visConfig.radiusRange || visConfig.sizeRange, data);
|
|
48100
48275
|
}
|
|
48101
48276
|
|
|
48102
48277
|
if (textLabelField) {
|
|
@@ -48136,7 +48311,7 @@ const baseUrl = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json'
|
|
|
48136
48311
|
/*!***********************!*\
|
|
48137
48312
|
!*** ./src/config.ts ***!
|
|
48138
48313
|
\***********************/
|
|
48139
|
-
/*! exports provided: defaultClassicCredentials, defaultCloudNativeCredentials, setDefaultCredentials, getDefaultCredentials, buildMapsUrlFromBase */
|
|
48314
|
+
/*! exports provided: defaultClassicCredentials, defaultCloudNativeCredentials, setDefaultCredentials, getDefaultCredentials, buildMapsUrlFromBase, buildStatsUrlFromBase */
|
|
48140
48315
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
48141
48316
|
|
|
48142
48317
|
"use strict";
|
|
@@ -48146,6 +48321,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
48146
48321
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDefaultCredentials", function() { return setDefaultCredentials; });
|
|
48147
48322
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultCredentials", function() { return getDefaultCredentials; });
|
|
48148
48323
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildMapsUrlFromBase", function() { return buildMapsUrlFromBase; });
|
|
48324
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildStatsUrlFromBase", function() { return buildStatsUrlFromBase; });
|
|
48149
48325
|
/* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./api/maps-api-common */ "./src/api/maps-api-common.ts");
|
|
48150
48326
|
|
|
48151
48327
|
const defaultClassicCredentials = {
|
|
@@ -48189,8 +48365,9 @@ function setDefaultCredentials({
|
|
|
48189
48365
|
function getDefaultCredentials() {
|
|
48190
48366
|
return credentials;
|
|
48191
48367
|
}
|
|
48192
|
-
|
|
48193
|
-
|
|
48368
|
+
|
|
48369
|
+
function buildUrlFromBase(apiBaseUrl, endpoint) {
|
|
48370
|
+
let suffix = `/v3/${endpoint}`;
|
|
48194
48371
|
|
|
48195
48372
|
if (apiBaseUrl.endsWith('/')) {
|
|
48196
48373
|
suffix = suffix.substring(1);
|
|
@@ -48199,6 +48376,13 @@ function buildMapsUrlFromBase(apiBaseUrl) {
|
|
|
48199
48376
|
return `${apiBaseUrl}${suffix}`;
|
|
48200
48377
|
}
|
|
48201
48378
|
|
|
48379
|
+
function buildMapsUrlFromBase(apiBaseUrl) {
|
|
48380
|
+
return buildUrlFromBase(apiBaseUrl, 'maps');
|
|
48381
|
+
}
|
|
48382
|
+
function buildStatsUrlFromBase(apiBaseUrl) {
|
|
48383
|
+
return buildUrlFromBase(apiBaseUrl, 'stats');
|
|
48384
|
+
}
|
|
48385
|
+
|
|
48202
48386
|
/***/ }),
|
|
48203
48387
|
|
|
48204
48388
|
/***/ "./src/index.ts":
|
|
@@ -48289,13 +48473,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
48289
48473
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CartoLayer; });
|
|
48290
48474
|
/* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
|
|
48291
48475
|
/* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
|
|
48292
|
-
/* harmony import */ var
|
|
48293
|
-
/* harmony import */ var
|
|
48294
|
-
/* harmony import */ var
|
|
48295
|
-
/* harmony import */ var
|
|
48296
|
-
/* harmony import */ var
|
|
48297
|
-
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../config */ "./src/config.ts");
|
|
48298
|
-
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ "./src/utils.ts");
|
|
48476
|
+
/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api */ "./src/api/index.ts");
|
|
48477
|
+
/* harmony import */ var _api_layer_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api/layer-map */ "./src/api/layer-map.ts");
|
|
48478
|
+
/* harmony import */ var _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api/maps-api-common */ "./src/api/maps-api-common.ts");
|
|
48479
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config.ts");
|
|
48480
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ "./src/utils.ts");
|
|
48299
48481
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
48300
48482
|
|
|
48301
48483
|
|
|
@@ -48305,8 +48487,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
48305
48487
|
|
|
48306
48488
|
|
|
48307
48489
|
|
|
48308
|
-
|
|
48309
|
-
|
|
48310
48490
|
const defaultProps = {
|
|
48311
48491
|
// (String, required): data resource to load. table name, sql query or tileset name.
|
|
48312
48492
|
data: null,
|
|
@@ -48374,29 +48554,29 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
|
|
|
48374
48554
|
geoColumn,
|
|
48375
48555
|
columns
|
|
48376
48556
|
} = props;
|
|
48377
|
-
const localCreds = { ...Object(
|
|
48557
|
+
const localCreds = { ...Object(_config__WEBPACK_IMPORTED_MODULE_4__["getDefaultCredentials"])(),
|
|
48378
48558
|
...credentials
|
|
48379
48559
|
};
|
|
48380
48560
|
const {
|
|
48381
48561
|
apiVersion
|
|
48382
48562
|
} = localCreds;
|
|
48383
|
-
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(Object.values(
|
|
48563
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(Object.values(_api__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"]).includes(apiVersion), `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`);
|
|
48384
48564
|
|
|
48385
|
-
if (apiVersion ===
|
|
48386
|
-
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(type ===
|
|
48565
|
+
if (apiVersion === _api__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V1 || apiVersion === _api__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V2) {
|
|
48566
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(type === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["MAP_TYPES"].QUERY || type === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["MAP_TYPES"].TILESET, `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`);
|
|
48387
48567
|
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);
|
|
48388
48568
|
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);
|
|
48389
48569
|
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);
|
|
48390
|
-
} else if (apiVersion ===
|
|
48570
|
+
} else if (apiVersion === _api__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3) {
|
|
48391
48571
|
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(connection, 'Missing mandatory connection parameter');
|
|
48392
|
-
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(Object.values(
|
|
48572
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(Object.values(_api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["MAP_TYPES"]).includes(type), `Invalid type ${type}. Use MAP_TYPES enum.`);
|
|
48393
48573
|
|
|
48394
|
-
if (!
|
|
48395
|
-
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(!columns, `columns prop is only supported for types: ${
|
|
48574
|
+
if (!_api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["COLUMNS_SUPPORT"].includes(type)) {
|
|
48575
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(!columns, `columns prop is only supported for types: ${_api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["COLUMNS_SUPPORT"].join()}`);
|
|
48396
48576
|
}
|
|
48397
48577
|
|
|
48398
|
-
if (!
|
|
48399
|
-
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(!geoColumn, `geoColumn prop is only supported for types: ${
|
|
48578
|
+
if (!_api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["GEO_COLUMN_SUPPORT"].includes(type)) {
|
|
48579
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].assert(!geoColumn, `geoColumn prop is only supported for types: ${_api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["GEO_COLUMN_SUPPORT"].join()}`);
|
|
48400
48580
|
}
|
|
48401
48581
|
|
|
48402
48582
|
if (columns) {
|
|
@@ -48434,7 +48614,7 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
|
|
|
48434
48614
|
connection,
|
|
48435
48615
|
...rest
|
|
48436
48616
|
} = this.props;
|
|
48437
|
-
const localConfig = { ...Object(
|
|
48617
|
+
const localConfig = { ...Object(_config__WEBPACK_IMPORTED_MODULE_4__["getDefaultCredentials"])(),
|
|
48438
48618
|
...credentials
|
|
48439
48619
|
};
|
|
48440
48620
|
const {
|
|
@@ -48442,16 +48622,16 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
|
|
|
48442
48622
|
} = localConfig;
|
|
48443
48623
|
let result;
|
|
48444
48624
|
|
|
48445
|
-
if (apiVersion ===
|
|
48625
|
+
if (apiVersion === _api__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V1 || apiVersion === _api__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V2) {
|
|
48446
48626
|
result = {
|
|
48447
|
-
data: await Object(
|
|
48627
|
+
data: await Object(_api__WEBPACK_IMPORTED_MODULE_1__["getDataV2"])({
|
|
48448
48628
|
type,
|
|
48449
48629
|
source,
|
|
48450
48630
|
credentials: credentials
|
|
48451
48631
|
})
|
|
48452
48632
|
};
|
|
48453
48633
|
} else {
|
|
48454
|
-
result = await Object(
|
|
48634
|
+
result = await Object(_api__WEBPACK_IMPORTED_MODULE_1__["fetchLayerData"])({
|
|
48455
48635
|
type,
|
|
48456
48636
|
source,
|
|
48457
48637
|
clientId,
|
|
@@ -48459,7 +48639,7 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
|
|
|
48459
48639
|
connection,
|
|
48460
48640
|
...rest,
|
|
48461
48641
|
// CartoLayer only supports tiled output from v8.8, force data format
|
|
48462
|
-
format:
|
|
48642
|
+
format: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON
|
|
48463
48643
|
});
|
|
48464
48644
|
}
|
|
48465
48645
|
|
|
@@ -48480,7 +48660,7 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
|
|
|
48480
48660
|
}
|
|
48481
48661
|
|
|
48482
48662
|
_getSubLayerAndProps() {
|
|
48483
|
-
Object(
|
|
48663
|
+
Object(_utils__WEBPACK_IMPORTED_MODULE_5__["assert"])(this.state);
|
|
48484
48664
|
const {
|
|
48485
48665
|
data,
|
|
48486
48666
|
apiVersion
|
|
@@ -48499,28 +48679,19 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
|
|
|
48499
48679
|
...propsNoData
|
|
48500
48680
|
};
|
|
48501
48681
|
|
|
48502
|
-
if (apiVersion ===
|
|
48682
|
+
if (apiVersion === _api__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V1 || apiVersion === _api__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V2) {
|
|
48503
48683
|
return [_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"], props];
|
|
48504
48684
|
}
|
|
48505
48685
|
/* global URL */
|
|
48506
48686
|
|
|
48507
48687
|
|
|
48508
48688
|
const tileUrl = new URL(data.tiles[0]);
|
|
48509
|
-
props.formatTiles = props.formatTiles || tileUrl.searchParams.get('formatTiles')
|
|
48510
|
-
|
|
48511
|
-
if (data.scheme === 'h3') {
|
|
48512
|
-
return [_h3_tile_layer__WEBPACK_IMPORTED_MODULE_2__["default"], props];
|
|
48513
|
-
}
|
|
48514
|
-
|
|
48515
|
-
if (data.scheme === 'quadbin') {
|
|
48516
|
-
return [_quadbin_tile_layer__WEBPACK_IMPORTED_MODULE_3__["default"], props];
|
|
48517
|
-
}
|
|
48518
|
-
|
|
48519
|
-
return props.formatTiles === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].MVT ? [_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"], props] : [_carto_tile_layer__WEBPACK_IMPORTED_MODULE_1__["default"], props];
|
|
48689
|
+
props.formatTiles = props.formatTiles || tileUrl.searchParams.get('formatTiles');
|
|
48690
|
+
return [Object(_api_layer_map__WEBPACK_IMPORTED_MODULE_2__["layerFromTileDataset"])(props.formatTiles, data.scheme), props];
|
|
48520
48691
|
}
|
|
48521
48692
|
|
|
48522
48693
|
renderLayers() {
|
|
48523
|
-
Object(
|
|
48694
|
+
Object(_utils__WEBPACK_IMPORTED_MODULE_5__["assert"])(this.state);
|
|
48524
48695
|
const {
|
|
48525
48696
|
data
|
|
48526
48697
|
} = this.state;
|