@kepler.gl/deckgl-layers 3.2.5 → 3.3.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/3d-building-layer/3d-building-layer.d.ts +3 -3
  2. package/dist/3d-building-layer/3d-building-layer.js +9 -12
  3. package/dist/3d-building-layer/types.d.ts +8 -8
  4. package/dist/cluster-layer/cluster-layer.d.ts +16 -26
  5. package/dist/cluster-layer/cluster-layer.js +19 -30
  6. package/dist/column-layer/enhanced-column-layer.d.ts +4 -4
  7. package/dist/column-layer/enhanced-column-layer.js +39 -35
  8. package/dist/deckgl-extensions/filter-arrow-layer.d.ts +33 -6
  9. package/dist/deckgl-extensions/filter-arrow-layer.js +4 -12
  10. package/dist/deckgl-extensions/filter-shader-module.d.ts +32 -4
  11. package/dist/deckgl-extensions/filter-shader-module.js +3 -4
  12. package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +4906 -6
  13. package/dist/grid-layer/enhanced-cpu-grid-layer.js +46 -44
  14. package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +4903 -4
  15. package/dist/hexagon-layer/enhanced-hexagon-layer.js +61 -41
  16. package/dist/layer-utils/cpu-aggregator.d.ts +74 -27
  17. package/dist/layer-utils/cpu-aggregator.js +224 -19
  18. package/dist/line-layer/line-layer.d.ts +4 -4
  19. package/dist/line-layer/line-layer.js +29 -21
  20. package/dist/raster/images.d.ts +10 -3
  21. package/dist/raster/images.js +154 -60
  22. package/dist/raster/pipeline-validation-patch.d.ts +1 -0
  23. package/dist/raster/pipeline-validation-patch.js +60 -0
  24. package/dist/raster/raster-layer/raster-layer-shaders.d.ts +56 -0
  25. package/dist/raster/raster-layer/raster-layer-shaders.js +129 -0
  26. package/dist/raster/raster-layer/raster-layer.d.ts +6 -6
  27. package/dist/raster/raster-layer/raster-layer.js +100 -79
  28. package/dist/raster/raster-mesh-layer/matrix.d.ts +3 -1
  29. package/dist/raster/raster-mesh-layer/matrix.js +3 -3
  30. package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.d.ts +19 -0
  31. package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +38 -0
  32. package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +7 -6
  33. package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +106 -81
  34. package/dist/raster/types.d.ts +8 -8
  35. package/dist/raster/types.js +1 -1
  36. package/dist/raster/webgl/color/colormap.js +13 -7
  37. package/dist/raster/webgl/color/filter.js +22 -12
  38. package/dist/raster/webgl/color/gamma-contrast.js +9 -3
  39. package/dist/raster/webgl/color/linear-rescale.js +9 -5
  40. package/dist/raster/webgl/color/saturation.js +7 -4
  41. package/dist/raster/webgl/color/sigmoidal-contrast.js +9 -5
  42. package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +7 -4
  43. package/dist/raster/webgl/texture/combine-bands.js +1 -1
  44. package/dist/raster/webgl/texture/mask.js +27 -35
  45. package/dist/raster/webgl/texture/reorder-bands.js +8 -5
  46. package/dist/raster/webgl/texture/rgba-image.js +1 -1
  47. package/dist/raster/webgl/types.d.ts +11 -6
  48. package/dist/raster/webgl/types.js +1 -1
  49. package/dist/svg-icon-layer/scatterplot-icon-layer.d.ts +2 -4
  50. package/dist/svg-icon-layer/scatterplot-icon-layer.js +19 -25
  51. package/dist/svg-icon-layer/svg-icon-layer.d.ts +4 -6
  52. package/dist/svg-icon-layer/svg-icon-layer.js +5 -3
  53. package/dist/wms/wms-layer.d.ts +3 -3
  54. package/dist/wms/wms-layer.js +7 -7
  55. package/package.json +14 -13
@@ -1,42 +1,43 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.hexagonAggregation = exports["default"] = void 0;
7
+ exports["default"] = void 0;
9
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
15
  var _aggregationLayers = require("@deck.gl/aggregation-layers");
15
- var _cpuAggregator = _interopRequireWildcard(require("../layer-utils/cpu-aggregator"));
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
16
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
18
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
19
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // SPDX-License-Identifier: MIT
19
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
20
+ function _superPropGet(t, e, r, o) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; } // SPDX-License-Identifier: MIT
20
21
  // Copyright contributors to the kepler.gl project
21
- var hexagonAggregation = exports.hexagonAggregation = {
22
- key: 'position',
23
- updateSteps: [{
24
- key: 'aggregate',
25
- triggers: {
26
- cellSize: {
27
- prop: 'radius'
28
- },
29
- position: {
30
- prop: 'getPosition',
31
- updateTrigger: 'getPosition'
32
- },
33
- aggregator: {
34
- prop: 'hexagonAggregator'
35
- }
36
- },
37
- updater: _cpuAggregator.getAggregatedData
38
- }]
39
- };
22
+ var THIRD_PI = Math.PI / 3;
23
+ var HexbinVertices = Array.from({
24
+ length: 6
25
+ }, function (_, i) {
26
+ var angle = i * THIRD_PI;
27
+ return [Math.sin(angle), -Math.cos(angle)];
28
+ });
29
+ function getHexbinCentroid(id, radius) {
30
+ var DIST_X = 2 * Math.sin(THIRD_PI);
31
+ var DIST_Y = 1.5;
32
+ return [(id[0] + (id[1] & 1) / 2) * radius * DIST_X, id[1] * radius * DIST_Y];
33
+ }
34
+ /**
35
+ * In deck.gl 9, HexagonLayer natively supports CPU aggregation via gpuAggregation: false,
36
+ * custom getColorValue/getElevationValue accessors, percentile filtering, and scale types.
37
+ *
38
+ * We override getPickingInfo to add `cellOutline` — an array of [lng, lat] coordinates
39
+ * computed in common space so the outline aligns with rendered cells at all latitudes.
40
+ */
40
41
  var ScaleEnhancedHexagonLayer = exports["default"] = /*#__PURE__*/function (_HexagonLayer) {
41
42
  function ScaleEnhancedHexagonLayer() {
42
43
  (0, _classCallCheck2["default"])(this, ScaleEnhancedHexagonLayer);
@@ -44,24 +45,43 @@ var ScaleEnhancedHexagonLayer = exports["default"] = /*#__PURE__*/function (_Hex
44
45
  }
45
46
  (0, _inherits2["default"])(ScaleEnhancedHexagonLayer, _HexagonLayer);
46
47
  return (0, _createClass2["default"])(ScaleEnhancedHexagonLayer, [{
47
- key: "initializeState",
48
- value: function initializeState() {
49
- var cpuAggregator = new _cpuAggregator["default"]({
50
- aggregation: hexagonAggregation
51
- });
52
- this.state = {
53
- cpuAggregator: cpuAggregator,
54
- aggregatorState: cpuAggregator.state
55
- };
56
- var attributeManager = this.getAttributeManager();
57
- attributeManager.add({
58
- positions: {
59
- size: 3,
60
- accessor: 'getPosition'
48
+ key: "getPickingInfo",
49
+ value: function getPickingInfo(params) {
50
+ var info = _superPropGet(ScaleEnhancedHexagonLayer, "getPickingInfo", this, 3)([params]);
51
+ if (info.object) {
52
+ var _this$props$coverage, _hexOriginCommon$, _hexOriginCommon$2;
53
+ var _ref = this.state,
54
+ radiusCommon = _ref.radiusCommon,
55
+ hexOriginCommon = _ref.hexOriginCommon,
56
+ aggregatorViewport = _ref.aggregatorViewport;
57
+ var coverage = (_this$props$coverage = this.props.coverage) !== null && _this$props$coverage !== void 0 ? _this$props$coverage : 1;
58
+ if (!radiusCommon || !aggregatorViewport) {
59
+ console.error('ScaleEnhancedHexagonLayer: expected internal state properties ' + '(radiusCommon, aggregatorViewport) are missing. ' + 'Hover outline will not be shown. This may indicate a deck.gl version change.');
60
+ return info;
61
61
  }
62
- });
62
+ var _ref2 = info.object,
63
+ col = _ref2.col,
64
+ row = _ref2.row;
65
+ if (typeof col !== 'number' || typeof row !== 'number') return info;
66
+ var centroid = getHexbinCentroid([col, row], radiusCommon);
67
+ var ox = (_hexOriginCommon$ = hexOriginCommon === null || hexOriginCommon === void 0 ? void 0 : hexOriginCommon[0]) !== null && _hexOriginCommon$ !== void 0 ? _hexOriginCommon$ : 0;
68
+ var oy = (_hexOriginCommon$2 = hexOriginCommon === null || hexOriginCommon === void 0 ? void 0 : hexOriginCommon[1]) !== null && _hexOriginCommon$2 !== void 0 ? _hexOriginCommon$2 : 0;
69
+ var r = radiusCommon * coverage;
70
+ var outline = [];
71
+ for (var i = 0; i < 6; i++) {
72
+ var vx = centroid[0] + r * HexbinVertices[i][0] + ox;
73
+ var vy = centroid[1] + r * HexbinVertices[i][1] + oy;
74
+ outline.push(aggregatorViewport.unprojectFlat([vx, vy]));
75
+ }
76
+ outline.push(outline[0]);
77
+ info.object.cellOutline = outline;
78
+ }
79
+ return info;
63
80
  }
64
81
  }]);
65
82
  }(_aggregationLayers.HexagonLayer);
83
+ (0, _defineProperty2["default"])(ScaleEnhancedHexagonLayer, "defaultProps", _objectSpread(_objectSpread({}, _aggregationLayers.HexagonLayer.defaultProps), {}, {
84
+ gpuAggregation: false
85
+ }));
66
86
  ScaleEnhancedHexagonLayer.layerName = 'ScaleEnhancedHexagonLayer';
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWdncmVnYXRpb25MYXllcnMiLCJyZXF1aXJlIiwiX2NwdUFnZ3JlZ2F0b3IiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jYWxsU3VwZXIiLCJvIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiaGV4YWdvbkFnZ3JlZ2F0aW9uIiwiZXhwb3J0cyIsImtleSIsInVwZGF0ZVN0ZXBzIiwidHJpZ2dlcnMiLCJjZWxsU2l6ZSIsInByb3AiLCJwb3NpdGlvbiIsInVwZGF0ZVRyaWdnZXIiLCJhZ2dyZWdhdG9yIiwidXBkYXRlciIsImdldEFnZ3JlZ2F0ZWREYXRhIiwiU2NhbGVFbmhhbmNlZEhleGFnb25MYXllciIsIl9IZXhhZ29uTGF5ZXIiLCJfY2xhc3NDYWxsQ2hlY2syIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJ2YWx1ZSIsImluaXRpYWxpemVTdGF0ZSIsImNwdUFnZ3JlZ2F0b3IiLCJDUFVBZ2dyZWdhdG9yIiwiYWdncmVnYXRpb24iLCJzdGF0ZSIsImFnZ3JlZ2F0b3JTdGF0ZSIsImF0dHJpYnV0ZU1hbmFnZXIiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiYWRkIiwicG9zaXRpb25zIiwic2l6ZSIsImFjY2Vzc29yIiwiSGV4YWdvbkxheWVyIiwibGF5ZXJOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hleGFnb24tbGF5ZXIvZW5oYW5jZWQtaGV4YWdvbi1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0hleGFnb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzJztcbmltcG9ydCBDUFVBZ2dyZWdhdG9yLCB7QWdncmVnYXRpb25UeXBlLCBnZXRBZ2dyZWdhdGVkRGF0YX0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY3B1LWFnZ3JlZ2F0b3InO1xuXG5leHBvcnQgY29uc3QgaGV4YWdvbkFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGUgPSB7XG4gIGtleTogJ3Bvc2l0aW9uJyxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdhZ2dyZWdhdGUnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgY2VsbFNpemU6IHtcbiAgICAgICAgICBwcm9wOiAncmFkaXVzJ1xuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdnZXRQb3NpdGlvbicsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFBvc2l0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBhZ2dyZWdhdG9yOiB7XG4gICAgICAgICAgcHJvcDogJ2hleGFnb25BZ2dyZWdhdG9yJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0QWdncmVnYXRlZERhdGFcbiAgICB9XG4gIF1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYWxlRW5oYW5jZWRIZXhhZ29uTGF5ZXIgZXh0ZW5kcyBIZXhhZ29uTGF5ZXI8YW55PiB7XG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBjb25zdCBjcHVBZ2dyZWdhdG9yID0gbmV3IENQVUFnZ3JlZ2F0b3Ioe1xuICAgICAgYWdncmVnYXRpb246IGhleGFnb25BZ2dyZWdhdGlvblxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNwdUFnZ3JlZ2F0b3IsXG4gICAgICBhZ2dyZWdhdG9yU3RhdGU6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGVcbiAgICB9O1xuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZCh7XG4gICAgICBwb3NpdGlvbnM6IHtzaXplOiAzLCBhY2Nlc3NvcjogJ2dldFBvc2l0aW9uJ31cbiAgICB9KTtcbiAgfVxufVxuXG5TY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyLmxheWVyTmFtZSA9ICdTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLGtCQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxjQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFBZ0csU0FBQUcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFGLHdCQUFBRSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLGNBQUFSLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFlLEdBQUEsQ0FBQWxCLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQVcsV0FBQWhCLENBQUEsRUFBQWlCLENBQUEsRUFBQXBCLENBQUEsV0FBQW9CLENBQUEsT0FBQUMsZ0JBQUEsYUFBQUQsQ0FBQSxPQUFBRSwyQkFBQSxhQUFBbkIsQ0FBQSxFQUFBb0IseUJBQUEsS0FBQUMsT0FBQSxDQUFBQyxTQUFBLENBQUFMLENBQUEsRUFBQXBCLENBQUEsWUFBQXFCLGdCQUFBLGFBQUFsQixDQUFBLEVBQUF1QixXQUFBLElBQUFOLENBQUEsQ0FBQU8sS0FBQSxDQUFBeEIsQ0FBQSxFQUFBSCxDQUFBO0FBQUEsU0FBQXVCLDBCQUFBLGNBQUFwQixDQUFBLElBQUF5QixPQUFBLENBQUFDLFNBQUEsQ0FBQUMsT0FBQSxDQUFBZCxJQUFBLENBQUFRLE9BQUEsQ0FBQUMsU0FBQSxDQUFBRyxPQUFBLGlDQUFBekIsQ0FBQSxhQUFBb0IseUJBQUEsWUFBQUEsMEJBQUEsYUFBQXBCLENBQUEsVUFKaEc7QUFDQTtBQUtPLElBQU00QixrQkFBbUMsR0FBQUMsT0FBQSxDQUFBRCxrQkFBQSxHQUFHO0VBQ2pERSxHQUFHLEVBQUUsVUFBVTtFQUNmQyxXQUFXLEVBQUUsQ0FDWDtJQUNFRCxHQUFHLEVBQUUsV0FBVztJQUNoQkUsUUFBUSxFQUFFO01BQ1JDLFFBQVEsRUFBRTtRQUNSQyxJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0RDLFFBQVEsRUFBRTtRQUNSRCxJQUFJLEVBQUUsYUFBYTtRQUNuQkUsYUFBYSxFQUFFO01BQ2pCLENBQUM7TUFDREMsVUFBVSxFQUFFO1FBQ1ZILElBQUksRUFBRTtNQUNSO0lBQ0YsQ0FBQztJQUNESSxPQUFPLEVBQUVDO0VBQ1gsQ0FBQztBQUVMLENBQUM7QUFBQyxJQUVtQkMseUJBQXlCLEdBQUFYLE9BQUEscUNBQUFZLGFBQUE7RUFBQSxTQUFBRCwwQkFBQTtJQUFBLElBQUFFLGdCQUFBLG1CQUFBRix5QkFBQTtJQUFBLE9BQUF4QixVQUFBLE9BQUF3Qix5QkFBQSxFQUFBRyxTQUFBO0VBQUE7RUFBQSxJQUFBQyxVQUFBLGFBQUFKLHlCQUFBLEVBQUFDLGFBQUE7RUFBQSxXQUFBSSxhQUFBLGFBQUFMLHlCQUFBO0lBQUFWLEdBQUE7SUFBQWdCLEtBQUEsRUFDNUMsU0FBQUMsZUFBZUEsQ0FBQSxFQUFHO01BQ2hCLElBQU1DLGFBQWEsR0FBRyxJQUFJQyx5QkFBYSxDQUFDO1FBQ3RDQyxXQUFXLEVBQUV0QjtNQUNmLENBQUMsQ0FBQztNQUVGLElBQUksQ0FBQ3VCLEtBQUssR0FBRztRQUNYSCxhQUFhLEVBQWJBLGFBQWE7UUFDYkksZUFBZSxFQUFFSixhQUFhLENBQUNHO01BQ2pDLENBQUM7TUFDRCxJQUFNRSxnQkFBZ0IsR0FBRyxJQUFJLENBQUNDLG1CQUFtQixDQUFDLENBQUM7TUFDbkRELGdCQUFnQixDQUFDRSxHQUFHLENBQUM7UUFDbkJDLFNBQVMsRUFBRTtVQUFDQyxJQUFJLEVBQUUsQ0FBQztVQUFFQyxRQUFRLEVBQUU7UUFBYTtNQUM5QyxDQUFDLENBQUM7SUFDSjtFQUFDO0FBQUEsRUFkb0RDLCtCQUFZO0FBaUJuRW5CLHlCQUF5QixDQUFDb0IsU0FBUyxHQUFHLDJCQUEyQiIsImlnbm9yZUxpc3QiOltdfQ==
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWdncmVnYXRpb25MYXllcnMiLCJyZXF1aXJlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiVEhJUkRfUEkiLCJNYXRoIiwiUEkiLCJIZXhiaW5WZXJ0aWNlcyIsIkFycmF5IiwiZnJvbSIsIl8iLCJpIiwiYW5nbGUiLCJzaW4iLCJjb3MiLCJnZXRIZXhiaW5DZW50cm9pZCIsImlkIiwicmFkaXVzIiwiRElTVF9YIiwiRElTVF9ZIiwiU2NhbGVFbmhhbmNlZEhleGFnb25MYXllciIsImV4cG9ydHMiLCJfSGV4YWdvbkxheWVyIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJnZXRQaWNraW5nSW5mbyIsInBhcmFtcyIsImluZm8iLCJvYmplY3QiLCJfdGhpcyRwcm9wcyRjb3ZlcmFnZSIsIl9oZXhPcmlnaW5Db21tb24kIiwiX2hleE9yaWdpbkNvbW1vbiQyIiwiX3JlZiIsInN0YXRlIiwicmFkaXVzQ29tbW9uIiwiaGV4T3JpZ2luQ29tbW9uIiwiYWdncmVnYXRvclZpZXdwb3J0IiwiY292ZXJhZ2UiLCJwcm9wcyIsImNvbnNvbGUiLCJlcnJvciIsIl9yZWYyIiwiY29sIiwicm93IiwiY2VudHJvaWQiLCJveCIsIm95Iiwib3V0bGluZSIsInZ4IiwidnkiLCJ1bnByb2plY3RGbGF0IiwiY2VsbE91dGxpbmUiLCJIZXhhZ29uTGF5ZXIiLCJkZWZhdWx0UHJvcHMiLCJncHVBZ2dyZWdhdGlvbiIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZXhhZ29uLWxheWVyL2VuaGFuY2VkLWhleGFnb24tbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtIZXhhZ29uTGF5ZXIsIEhleGFnb25MYXllclBpY2tpbmdJbmZvfSBmcm9tICdAZGVjay5nbC9hZ2dyZWdhdGlvbi1sYXllcnMnO1xuaW1wb3J0IHtHZXRQaWNraW5nSW5mb1BhcmFtcywgUGlja2luZ0luZm8sIFZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuY29uc3QgVEhJUkRfUEkgPSBNYXRoLlBJIC8gMztcbmNvbnN0IEhleGJpblZlcnRpY2VzID0gQXJyYXkuZnJvbSh7bGVuZ3RoOiA2fSwgKF8sIGkpID0+IHtcbiAgY29uc3QgYW5nbGUgPSBpICogVEhJUkRfUEk7XG4gIHJldHVybiBbTWF0aC5zaW4oYW5nbGUpLCAtTWF0aC5jb3MoYW5nbGUpXTtcbn0pO1xuXG5mdW5jdGlvbiBnZXRIZXhiaW5DZW50cm9pZChpZDogW251bWJlciwgbnVtYmVyXSwgcmFkaXVzOiBudW1iZXIpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgY29uc3QgRElTVF9YID0gMiAqIE1hdGguc2luKFRISVJEX1BJKTtcbiAgY29uc3QgRElTVF9ZID0gMS41O1xuICByZXR1cm4gWyhpZFswXSArIChpZFsxXSAmIDEpIC8gMikgKiByYWRpdXMgKiBESVNUX1gsIGlkWzFdICogcmFkaXVzICogRElTVF9ZXTtcbn1cblxuaW50ZXJmYWNlIEhleEludGVybmFsU3RhdGUge1xuICByYWRpdXNDb21tb24/OiBudW1iZXI7XG4gIGhleE9yaWdpbkNvbW1vbj86IFtudW1iZXIsIG51bWJlcl07XG4gIGFnZ3JlZ2F0b3JWaWV3cG9ydD86IFZpZXdwb3J0ICYge3VucHJvamVjdEZsYXQoeHk6IG51bWJlcltdKTogbnVtYmVyW119O1xufVxuXG5pbnRlcmZhY2UgSGV4UGlja2luZ09iamVjdCB7XG4gIGNvbDogbnVtYmVyO1xuICByb3c6IG51bWJlcjtcbiAgY2VsbE91dGxpbmU/OiBudW1iZXJbXVtdO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEluIGRlY2suZ2wgOSwgSGV4YWdvbkxheWVyIG5hdGl2ZWx5IHN1cHBvcnRzIENQVSBhZ2dyZWdhdGlvbiB2aWEgZ3B1QWdncmVnYXRpb246IGZhbHNlLFxuICogY3VzdG9tIGdldENvbG9yVmFsdWUvZ2V0RWxldmF0aW9uVmFsdWUgYWNjZXNzb3JzLCBwZXJjZW50aWxlIGZpbHRlcmluZywgYW5kIHNjYWxlIHR5cGVzLlxuICpcbiAqIFdlIG92ZXJyaWRlIGdldFBpY2tpbmdJbmZvIHRvIGFkZCBgY2VsbE91dGxpbmVgIOKAlCBhbiBhcnJheSBvZiBbbG5nLCBsYXRdIGNvb3JkaW5hdGVzXG4gKiBjb21wdXRlZCBpbiBjb21tb24gc3BhY2Ugc28gdGhlIG91dGxpbmUgYWxpZ25zIHdpdGggcmVuZGVyZWQgY2VsbHMgYXQgYWxsIGxhdGl0dWRlcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NhbGVFbmhhbmNlZEhleGFnb25MYXllciBleHRlbmRzIEhleGFnb25MYXllcjxhbnk+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAuLi5IZXhhZ29uTGF5ZXIuZGVmYXVsdFByb3BzLFxuICAgIGdwdUFnZ3JlZ2F0aW9uOiBmYWxzZVxuICB9O1xuXG4gIGdldFBpY2tpbmdJbmZvKHBhcmFtczogR2V0UGlja2luZ0luZm9QYXJhbXMpOiBQaWNraW5nSW5mbyB7XG4gICAgY29uc3QgaW5mbyA9IHN1cGVyLmdldFBpY2tpbmdJbmZvKHBhcmFtcykgYXMgSGV4YWdvbkxheWVyUGlja2luZ0luZm88UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuICAgIGlmIChpbmZvLm9iamVjdCkge1xuICAgICAgY29uc3Qge3JhZGl1c0NvbW1vbiwgaGV4T3JpZ2luQ29tbW9uLCBhZ2dyZWdhdG9yVmlld3BvcnR9ID0gdGhpc1xuICAgICAgICAuc3RhdGUgYXMgdW5rbm93biBhcyBIZXhJbnRlcm5hbFN0YXRlO1xuICAgICAgY29uc3QgY292ZXJhZ2UgPSB0aGlzLnByb3BzLmNvdmVyYWdlID8/IDE7XG4gICAgICBpZiAoIXJhZGl1c0NvbW1vbiB8fCAhYWdncmVnYXRvclZpZXdwb3J0KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ1NjYWxlRW5oYW5jZWRIZXhhZ29uTGF5ZXI6IGV4cGVjdGVkIGludGVybmFsIHN0YXRlIHByb3BlcnRpZXMgJyArXG4gICAgICAgICAgICAnKHJhZGl1c0NvbW1vbiwgYWdncmVnYXRvclZpZXdwb3J0KSBhcmUgbWlzc2luZy4gJyArXG4gICAgICAgICAgICAnSG92ZXIgb3V0bGluZSB3aWxsIG5vdCBiZSBzaG93bi4gVGhpcyBtYXkgaW5kaWNhdGUgYSBkZWNrLmdsIHZlcnNpb24gY2hhbmdlLidcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgICB9XG4gICAgICBjb25zdCB7Y29sLCByb3d9ID0gaW5mby5vYmplY3QgYXMgSGV4UGlja2luZ09iamVjdDtcbiAgICAgIGlmICh0eXBlb2YgY29sICE9PSAnbnVtYmVyJyB8fCB0eXBlb2Ygcm93ICE9PSAnbnVtYmVyJykgcmV0dXJuIGluZm87XG4gICAgICBjb25zdCBjZW50cm9pZCA9IGdldEhleGJpbkNlbnRyb2lkKFtjb2wsIHJvd10sIHJhZGl1c0NvbW1vbik7XG4gICAgICBjb25zdCBveCA9IGhleE9yaWdpbkNvbW1vbj8uWzBdID8/IDA7XG4gICAgICBjb25zdCBveSA9IGhleE9yaWdpbkNvbW1vbj8uWzFdID8/IDA7XG4gICAgICBjb25zdCByID0gcmFkaXVzQ29tbW9uICogY292ZXJhZ2U7XG5cbiAgICAgIGNvbnN0IG91dGxpbmU6IG51bWJlcltdW10gPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZ4ID0gY2VudHJvaWRbMF0gKyByICogSGV4YmluVmVydGljZXNbaV1bMF0gKyBveDtcbiAgICAgICAgY29uc3QgdnkgPSBjZW50cm9pZFsxXSArIHIgKiBIZXhiaW5WZXJ0aWNlc1tpXVsxXSArIG95O1xuICAgICAgICBvdXRsaW5lLnB1c2goYWdncmVnYXRvclZpZXdwb3J0LnVucHJvamVjdEZsYXQoW3Z4LCB2eV0pKTtcbiAgICAgIH1cbiAgICAgIG91dGxpbmUucHVzaChvdXRsaW5lWzBdKTtcbiAgICAgIChpbmZvLm9iamVjdCBhcyBIZXhQaWNraW5nT2JqZWN0KS5jZWxsT3V0bGluZSA9IG91dGxpbmU7XG4gICAgfVxuICAgIHJldHVybiBpbmZvO1xuICB9XG59XG5cblNjYWxlRW5oYW5jZWRIZXhhZ29uTGF5ZXIubGF5ZXJOYW1lID0gJ1NjYWxlRW5oYW5jZWRIZXhhZ29uTGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLGtCQUFBLEdBQUFDLE9BQUE7QUFBa0YsU0FBQUMsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFO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
@@ -1,9 +1,37 @@
1
1
  import { RGBAColor } from '@kepler.gl/types';
2
- export declare type UpdaterType = (this: CPUAggregator, step: any, props: any, dimensionUpdater: any) => void;
3
- export declare type BindedUpdaterType = () => void;
4
- export declare type AggregatedUpdaterType = (this: CPUAggregator, step: any, props: any, aggregation: any, aggregationParams: any) => void;
5
- export declare type BindedAggregatedUpdaterType = (aggregationParams: any) => void;
6
- export declare type UpdateStepsType = {
2
+ import type ClusterBuilder from './cluster-utils';
3
+ interface Bin {
4
+ points: Record<string, unknown>[];
5
+ filteredPoints?: Record<string, unknown>[] | null;
6
+ index?: number;
7
+ }
8
+ interface AggregatedBin {
9
+ i: number;
10
+ value: number;
11
+ counts: number;
12
+ }
13
+ declare class BinSorter {
14
+ maxCount: number;
15
+ maxValue: number;
16
+ minValue: number;
17
+ totalCount: number;
18
+ aggregatedBins: AggregatedBin[];
19
+ sortedBins: AggregatedBin[];
20
+ binMap: Record<number, AggregatedBin>;
21
+ constructor(bins?: Bin[], props?: Record<string, any>);
22
+ _getAggregatedBins(bins: Bin[], props: Record<string, any>): AggregatedBin[];
23
+ _updateMinMaxValues(): void;
24
+ _getBinMap(): {};
25
+ _percentileToIndex(percentileRange: number[]): number[];
26
+ getValueDomainByScale(scale: string, [lower, upper]?: number[]): number[];
27
+ _getScaleDomain(scaleType: string, [lowerIdx, upperIdx]: number[]): number[];
28
+ getValueRange(percentileRange?: number[]): number[];
29
+ }
30
+ export type UpdaterType = (this: CPUAggregator, step: any, props: any, dimensionUpdater: any) => void;
31
+ export type BindedUpdaterType = () => void;
32
+ export type AggregatedUpdaterType = (this: CPUAggregator, step: any, props: any, aggregation: any, aggregationParams: any) => void;
33
+ export type BindedAggregatedUpdaterType = (aggregationParams: any) => void;
34
+ export type UpdateStepsType = {
7
35
  key: string;
8
36
  triggers: {
9
37
  [key: string]: {
@@ -16,7 +44,7 @@ export declare type UpdateStepsType = {
16
44
  };
17
45
  updater: UpdaterType;
18
46
  };
19
- export declare type DimensionType<ValueType = any> = {
47
+ export type DimensionType<ValueType = any> = {
20
48
  key: string;
21
49
  accessor: string;
22
50
  getPickingInfo: (dimensionState: any, cell: any, layerProps?: any) => any;
@@ -24,7 +52,7 @@ export declare type DimensionType<ValueType = any> = {
24
52
  updateSteps: UpdateStepsType[];
25
53
  getSubLayerAccessor: any;
26
54
  };
27
- export declare type AggregationUpdateStepsType = {
55
+ export type AggregationUpdateStepsType = {
28
56
  key: string;
29
57
  triggers: {
30
58
  [key: string]: {
@@ -34,15 +62,18 @@ export declare type AggregationUpdateStepsType = {
34
62
  };
35
63
  updater: AggregatedUpdaterType;
36
64
  };
37
- export declare type AggregationType = {
65
+ export type AggregationType = {
38
66
  key: string;
39
67
  updateSteps: AggregationUpdateStepsType[];
40
68
  };
41
69
  export declare const DECK_AGGREGATION_MAP: {
42
- [x: number]: "sum" | "average" | "minimum" | "maximum";
70
+ SUM: "sum";
71
+ MEAN: "average";
72
+ MIN: "minimum";
73
+ MAX: "maximum";
43
74
  };
44
- export declare function getValueFunc(aggregation: any, accessor: any): (pts: any) => any;
45
- export declare function getScaleFunctor(scaleType: any): any;
75
+ export declare function getValueFunc(aggregation: string, accessor: (d: Record<string, unknown>) => number): (pts: any) => any;
76
+ export declare function getScaleFunctor(scaleType: string): any;
46
77
  export declare function getGetValue(this: CPUAggregator, step: any, props: any, dimensionUpdater: any): void;
47
78
  export declare function getDimensionSortedBins(this: CPUAggregator, step: any, props: any, dimensionUpdater: any): void;
48
79
  export declare function getDimensionValueDomain(this: CPUAggregator, step: any, props: any, dimensionUpdater: any): void;
@@ -52,13 +83,21 @@ export declare const defaultAggregation: AggregationType;
52
83
  export declare const defaultColorDimension: DimensionType<RGBAColor>;
53
84
  export declare const defaultElevationDimension: DimensionType<number>;
54
85
  export declare const defaultDimensions: (DimensionType<RGBAColor> | DimensionType<number>)[];
55
- export declare type CPUAggregatorState = {
86
+ export type CPUAggregatorState = {
56
87
  layerData: {
57
- data?: any;
88
+ data?: Record<string, unknown>[];
58
89
  };
59
- dimensions: object;
60
- geoJSON?: any;
61
- clusterBuilder?: any;
90
+ dimensions: Record<string, {
91
+ getValue?: (...args: unknown[]) => number;
92
+ sortedBins?: BinSorter;
93
+ valueDomain?: number[];
94
+ scaleFunc?: ((...args: unknown[]) => unknown) & {
95
+ domain: () => number[];
96
+ scaleType?: string;
97
+ };
98
+ }>;
99
+ geoJSON?: GeoJSON.FeatureCollection;
100
+ clusterBuilder?: ClusterBuilder;
62
101
  };
63
102
  export default class CPUAggregator {
64
103
  static getDimensionScale: any;
@@ -73,21 +112,29 @@ export default class CPUAggregator {
73
112
  aggregation?: AggregationType;
74
113
  });
75
114
  static defaultDimensions(): (DimensionType<RGBAColor> | DimensionType<number>)[];
76
- updateAllDimensions(props: any): void;
77
- updateAggregation(props: any, aggregationParams: any): void;
78
- updateState(opts: any, aggregationParams: any): CPUAggregatorState;
79
- setState(updateObject: any): void;
80
- _setDimensionState(key: any, updateObject: any): void;
115
+ updateAllDimensions(props: Record<string, any>): void;
116
+ updateAggregation(props: Record<string, any>, aggregationParams: Record<string, any>): void;
117
+ updateState(opts: {
118
+ oldProps: Record<string, any>;
119
+ props: Record<string, any>;
120
+ changeFlags: Record<string, any>;
121
+ }, aggregationParams: Record<string, any>): CPUAggregatorState;
122
+ setState(updateObject: Partial<CPUAggregatorState>): void;
123
+ _setDimensionState(key: string, updateObject: Record<string, any>): void;
81
124
  _addAggregation(aggregation: AggregationType): void;
82
125
  _addDimension(dimensions?: DimensionType[]): void;
83
126
  _needUpdateStep(dimensionStep: UpdateStepsType | AggregationUpdateStepsType, oldProps: any, props: any, changeFlags: any): boolean;
84
127
  _accumulateUpdaters<UpdaterObjectType extends DimensionType | AggregationType>(step: any, props: any, dimension: UpdaterObjectType): (UpdaterObjectType extends DimensionType<any> ? BindedUpdaterType : BindedAggregatedUpdaterType)[];
85
128
  _getAllUpdaters<UpdaterObjectType extends DimensionType | AggregationType>(dimension: UpdaterObjectType, oldProps: any, props: any, changeFlags: any): (UpdaterObjectType extends DimensionType<any> ? BindedUpdaterType : BindedAggregatedUpdaterType)[];
86
- _getAggregationChanges(oldProps: any, props: any, changeFlags: any): BindedAggregatedUpdaterType[] | null;
87
- _getDimensionChanges(oldProps: any, props: any, changeFlags: any): BindedUpdaterType[] | null;
88
- getUpdateTriggers(props: any): {};
129
+ _getAggregationChanges(oldProps: Record<string, any>, props: Record<string, any>, changeFlags: Record<string, any>): BindedAggregatedUpdaterType[] | null;
130
+ _getDimensionChanges(oldProps: Record<string, any>, props: Record<string, any>, changeFlags: Record<string, any>): BindedUpdaterType[] | null;
131
+ getUpdateTriggers(props: Record<string, any>): {};
89
132
  getPickingInfo({ info }: {
90
- info: any;
91
- }, layerProps: any): any;
92
- getAccessor(dimensionKey: any, layerProps: any): any;
133
+ info: Record<string, any>;
134
+ }, layerProps: Record<string, any>): Record<string, any> & {
135
+ picked: boolean;
136
+ object: Record<string, any> | null;
137
+ };
138
+ getAccessor(dimensionKey: string, layerProps: Record<string, any>): any;
93
139
  }
140
+ export {};