@deck.gl/carto 8.9.34 → 8.9.35

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.34" : "latest";
1048
+ var VERSION = true ? "8.9.35" : "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.34" : "latest";
1435
+ var VERSION = true ? "8.9.35" : "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.34" : "latest";
1665
+ var VERSION = true ? "8.9.35" : "latest";
1666
1666
  var id = "cartoVectorTile";
1667
1667
  var DEFAULT_OPTIONS = {
1668
1668
  cartoVectorTile: {
package/dist/dist.dev.js CHANGED
@@ -12996,7 +12996,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
12996
12996
  hoveredFeatureId
12997
12997
  } = this.state;
12998
12998
  const hoveredFeature = info.object;
12999
- let newHoveredFeatureId;
12999
+ let newHoveredFeatureId = null;
13000
13000
  if (hoveredFeature) {
13001
13001
  newHoveredFeatureId = hoveredFeature.id;
13002
13002
  }
@@ -13031,19 +13031,16 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
13031
13031
  return data.findIndex((feature) => feature.id === hoveredFeatureId);
13032
13032
  }
13033
13033
  _featureInTile(tile, featureId) {
13034
- const {
13035
- getTileZoom,
13036
- getParentIndex
13037
- } = this.state.tileset;
13038
- const tileZoom = getTileZoom(tile.index);
13034
+ const tileset = this.state.tileset;
13035
+ const tileZoom = tileset.getTileZoom(tile.index);
13039
13036
  const KEY = tile.index.q ? "q" : "i";
13040
13037
  let featureIndex = {
13041
13038
  [KEY]: featureId
13042
13039
  };
13043
- let featureZoom = getTileZoom(featureIndex);
13040
+ let featureZoom = tileset.getTileZoom(featureIndex);
13044
13041
  while (!(featureZoom <= tileZoom)) {
13045
- featureIndex = getParentIndex(featureIndex);
13046
- featureZoom = getTileZoom(featureIndex);
13042
+ featureIndex = tileset.getParentIndex(featureIndex);
13043
+ featureZoom = tileset.getTileZoom(featureIndex);
13047
13044
  }
13048
13045
  return featureIndex[KEY] === tile.index[KEY];
13049
13046
  }
@@ -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.34" !== 'undefined' ? "8.9.34" : 'latest';
20
+ var VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : '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.34" !== 'undefined' ? "8.9.34" : 'latest';
22
+ var VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : '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.34" !== 'undefined' ? "8.9.34" : 'latest';
22
+ var VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : 'latest';
23
23
  var id = 'cartoVectorTile';
24
24
  var DEFAULT_OPTIONS = {
25
25
  cartoVectorTile: {
@@ -11,6 +11,8 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
11
11
 
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
14
16
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
17
 
16
18
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
@@ -49,8 +51,17 @@ var SpatialIndexTileLayer = function (_TileLayer) {
49
51
  var _super = _createSuper(SpatialIndexTileLayer);
50
52
 
51
53
  function SpatialIndexTileLayer() {
54
+ var _this;
55
+
52
56
  (0, _classCallCheck2.default)(this, SpatialIndexTileLayer);
53
- return _super.apply(this, arguments);
57
+
58
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
59
+ args[_key] = arguments[_key];
60
+ }
61
+
62
+ _this = _super.call.apply(_super, [this].concat(args));
63
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
64
+ return _this;
54
65
  }
55
66
 
56
67
  (0, _createClass2.default)(SpatialIndexTileLayer, [{
@@ -72,7 +83,7 @@ var SpatialIndexTileLayer = function (_TileLayer) {
72
83
  value: function _updateAutoHighlight(info) {
73
84
  var hoveredFeatureId = this.state.hoveredFeatureId;
74
85
  var hoveredFeature = info.object;
75
- var newHoveredFeatureId;
86
+ var newHoveredFeatureId = null;
76
87
 
77
88
  if (hoveredFeature) {
78
89
  newHoveredFeatureId = hoveredFeature.id;
@@ -117,17 +128,15 @@ var SpatialIndexTileLayer = function (_TileLayer) {
117
128
  }, {
118
129
  key: "_featureInTile",
119
130
  value: function _featureInTile(tile, featureId) {
120
- var _this$state$tileset = this.state.tileset,
121
- getTileZoom = _this$state$tileset.getTileZoom,
122
- getParentIndex = _this$state$tileset.getParentIndex;
123
- var tileZoom = getTileZoom(tile.index);
131
+ var tileset = this.state.tileset;
132
+ var tileZoom = tileset.getTileZoom(tile.index);
124
133
  var KEY = tile.index.q ? 'q' : 'i';
125
134
  var featureIndex = (0, _defineProperty2.default)({}, KEY, featureId);
126
- var featureZoom = getTileZoom(featureIndex);
135
+ var featureZoom = tileset.getTileZoom(featureIndex);
127
136
 
128
137
  while (!(featureZoom <= tileZoom)) {
129
- featureIndex = getParentIndex(featureIndex);
130
- featureZoom = getTileZoom(featureIndex);
138
+ featureIndex = tileset.getParentIndex(featureIndex);
139
+ featureZoom = tileset.getTileZoom(featureIndex);
131
140
  }
132
141
 
133
142
  return featureIndex[KEY] === tile.index[KEY];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["CartoRasterTileLoader","CartoSpatialTileLoader","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","params","props","oldProps","setState","tileset","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","getTileZoom","getParentIndex","tileZoom","index","KEY","q","featureIndex","featureZoom","TileLayer"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoRasterTileLoader from './schema/carto-raster-tile-loader';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {TileLayer, _Tile2DHeader as Tile2DHeader} from '@deck.gl/geo-layers';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps<DataT> &\n TileLayer<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps<DataT = any> = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps<DataT>>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n const {getTileZoom, getParentIndex} = this.state.tileset;\n const tileZoom = getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n let featureIndex = {[KEY]: featureId};\n let featureZoom = getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = getParentIndex(featureIndex);\n featureZoom = getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["CartoRasterTileLoader","CartoSpatialTileLoader","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","params","props","oldProps","setState","tileset","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","tileZoom","getTileZoom","index","KEY","q","featureIndex","featureZoom","getParentIndex","TileLayer"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoRasterTileLoader from './schema/carto-raster-tile-loader';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {TileLayer, _Tile2DHeader as Tile2DHeader, TileLayerProps} from '@deck.gl/geo-layers';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps<DataT> &\n TileLayerProps<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps<DataT = any> = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps<DataT>>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n state!: TileLayer<DataT>['state'] & {\n // TODO: tileset: Tileset2D should be generic for either H3Tileset2D or QuadbinTileset2D\n hoveredFeatureId: BigInt | number | null;\n highlightColor?: number[];\n };\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId: BigInt | number | null = null;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId!)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n // TODO: Tile2DHeader index should be generic for H3TileIndex or QuadbinTileIndex\n const tileset = this.state.tileset!;\n const tileZoom = tileset.getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n // TODO - Tileset2D methods expect tile index in the shape of {x, y, z}\n let featureIndex: any = {[KEY]: featureId};\n let featureZoom = tileset.getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = tileset.getParentIndex(featureIndex);\n featureZoom = tileset.getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
@@ -1,7 +1,7 @@
1
1
  import { TileReader } from './carto-raster-tile';
2
2
  import { parsePbf } from './tile-loader-utils';
3
3
  import { getWorkerUrl } from '../../utils';
4
- const VERSION = typeof "8.9.34" !== 'undefined' ? "8.9.34" : 'latest';
4
+ const VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : 'latest';
5
5
  const id = 'cartoRasterTile';
6
6
  const DEFAULT_OPTIONS = {
7
7
  cartoRasterTile: {
@@ -2,7 +2,7 @@ import { TileReader } from './carto-spatial-tile';
2
2
  import { parsePbf } from './tile-loader-utils';
3
3
  import { getWorkerUrl } from '../../utils';
4
4
  import { binaryToSpatialjson } from './spatialjson-utils';
5
- const VERSION = typeof "8.9.34" !== 'undefined' ? "8.9.34" : 'latest';
5
+ const VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : 'latest';
6
6
  const id = 'cartoSpatialTile';
7
7
  const DEFAULT_OPTIONS = {
8
8
  cartoSpatialTile: {
@@ -2,7 +2,7 @@ import earcut from 'earcut';
2
2
  import { TileReader } from './carto-tile';
3
3
  import { parsePbf } from './tile-loader-utils';
4
4
  import { getWorkerUrl } from '../../utils';
5
- const VERSION = typeof "8.9.34" !== 'undefined' ? "8.9.34" : 'latest';
5
+ const VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : 'latest';
6
6
  const id = 'cartoVectorTile';
7
7
  const DEFAULT_OPTIONS = {
8
8
  cartoVectorTile: {
@@ -13,6 +13,12 @@ const defaultProps = {
13
13
  aggregationResLevel: 4
14
14
  };
15
15
  export default class SpatialIndexTileLayer extends TileLayer {
16
+ constructor(...args) {
17
+ super(...args);
18
+
19
+ _defineProperty(this, "state", void 0);
20
+ }
21
+
16
22
  updateState(params) {
17
23
  const {
18
24
  props,
@@ -33,7 +39,7 @@ export default class SpatialIndexTileLayer extends TileLayer {
33
39
  hoveredFeatureId
34
40
  } = this.state;
35
41
  const hoveredFeature = info.object;
36
- let newHoveredFeatureId;
42
+ let newHoveredFeatureId = null;
37
43
 
38
44
  if (hoveredFeature) {
39
45
  newHoveredFeatureId = hoveredFeature.id;
@@ -77,20 +83,17 @@ export default class SpatialIndexTileLayer extends TileLayer {
77
83
  }
78
84
 
79
85
  _featureInTile(tile, featureId) {
80
- const {
81
- getTileZoom,
82
- getParentIndex
83
- } = this.state.tileset;
84
- const tileZoom = getTileZoom(tile.index);
86
+ const tileset = this.state.tileset;
87
+ const tileZoom = tileset.getTileZoom(tile.index);
85
88
  const KEY = tile.index.q ? 'q' : 'i';
86
89
  let featureIndex = {
87
90
  [KEY]: featureId
88
91
  };
89
- let featureZoom = getTileZoom(featureIndex);
92
+ let featureZoom = tileset.getTileZoom(featureIndex);
90
93
 
91
94
  while (!(featureZoom <= tileZoom)) {
92
- featureIndex = getParentIndex(featureIndex);
93
- featureZoom = getTileZoom(featureIndex);
95
+ featureIndex = tileset.getParentIndex(featureIndex);
96
+ featureZoom = tileset.getTileZoom(featureIndex);
94
97
  }
95
98
 
96
99
  return featureIndex[KEY] === tile.index[KEY];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoRasterTileLoader","CartoSpatialTileLoader","TileLayer","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","updateState","params","props","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","getTileZoom","getParentIndex","tileZoom","index","KEY","q","featureIndex","featureZoom"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoRasterTileLoader from './schema/carto-raster-tile-loader';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {TileLayer, _Tile2DHeader as Tile2DHeader} from '@deck.gl/geo-layers';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps<DataT> &\n TileLayer<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps<DataT = any> = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps<DataT>>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n const {getTileZoom, getParentIndex} = this.state.tileset;\n const tileZoom = getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n let featureIndex = {[KEY]: featureId};\n let featureZoom = getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = getParentIndex(featureIndex);\n featureZoom = getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoRasterTileLoader","CartoSpatialTileLoader","TileLayer","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","updateState","params","props","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","tileZoom","getTileZoom","index","KEY","q","featureIndex","featureZoom","getParentIndex"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoRasterTileLoader from './schema/carto-raster-tile-loader';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {TileLayer, _Tile2DHeader as Tile2DHeader, TileLayerProps} from '@deck.gl/geo-layers';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps<DataT> &\n TileLayerProps<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps<DataT = any> = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps<DataT>>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n state!: TileLayer<DataT>['state'] & {\n // TODO: tileset: Tileset2D should be generic for either H3Tileset2D or QuadbinTileset2D\n hoveredFeatureId: BigInt | number | null;\n highlightColor?: number[];\n };\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId: BigInt | number | null = null;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId!)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n // TODO: Tile2DHeader index should be generic for H3TileIndex or QuadbinTileIndex\n const tileset = this.state.tileset!;\n const tileZoom = tileset.getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n // TODO - Tileset2D methods expect tile index in the shape of {x, y, z}\n let featureIndex: any = {[KEY]: featureId};\n let featureZoom = tileset.getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = tileset.getParentIndex(featureIndex);\n featureZoom = tileset.getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}