@deck.gl/aggregation-layers 8.10.0-alpha.2 → 8.10.0-alpha.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.
Files changed (142) hide show
  1. package/LICENSE +1 -1
  2. package/dist/dist.dev.js +58 -709
  3. package/dist/es5/aggregation-layer.js +120 -134
  4. package/dist/es5/aggregation-layer.js.map +1 -1
  5. package/dist/es5/contour-layer/contour-layer.js +225 -234
  6. package/dist/es5/contour-layer/contour-layer.js.map +1 -1
  7. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js +90 -100
  8. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js.map +1 -1
  9. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js +131 -140
  10. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js.map +1 -1
  11. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js +285 -295
  12. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js.map +1 -1
  13. package/dist/es5/grid-aggregation-layer.js +194 -209
  14. package/dist/es5/grid-aggregation-layer.js.map +1 -1
  15. package/dist/es5/grid-layer/grid-layer.js +59 -66
  16. package/dist/es5/grid-layer/grid-layer.js.map +1 -1
  17. package/dist/es5/heatmap-layer/heatmap-layer.js +471 -497
  18. package/dist/es5/heatmap-layer/heatmap-layer.js.map +1 -1
  19. package/dist/es5/heatmap-layer/triangle-layer.js +64 -69
  20. package/dist/es5/heatmap-layer/triangle-layer.js.map +1 -1
  21. package/dist/es5/hexagon-layer/hexagon-layer.js +129 -140
  22. package/dist/es5/hexagon-layer/hexagon-layer.js.map +1 -1
  23. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js +153 -166
  24. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
  25. package/dist/es5/screen-grid-layer/screen-grid-layer.js +207 -220
  26. package/dist/es5/screen-grid-layer/screen-grid-layer.js.map +1 -1
  27. package/dist/es5/utils/bin-sorter.js +163 -173
  28. package/dist/es5/utils/bin-sorter.js.map +1 -1
  29. package/dist/es5/utils/cpu-aggregator.js +300 -323
  30. package/dist/es5/utils/cpu-aggregator.js.map +1 -1
  31. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +483 -504
  32. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +1 -1
  33. package/dist/esm/aggregation-layer.js +2 -5
  34. package/dist/esm/aggregation-layer.js.map +1 -1
  35. package/dist/esm/contour-layer/contour-layer.js +2 -5
  36. package/dist/esm/contour-layer/contour-layer.js.map +1 -1
  37. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js +2 -5
  38. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js.map +1 -1
  39. package/dist/esm/cpu-grid-layer/grid-aggregator.js +1 -1
  40. package/dist/esm/cpu-grid-layer/grid-aggregator.js.map +1 -1
  41. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +15 -1
  42. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +1 -1
  43. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +121 -1
  44. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +1 -1
  45. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js +2 -5
  46. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js.map +1 -1
  47. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js +3 -6
  48. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js.map +1 -1
  49. package/dist/esm/grid-aggregation-layer.js +3 -6
  50. package/dist/esm/grid-aggregation-layer.js.map +1 -1
  51. package/dist/esm/grid-layer/grid-layer.js +3 -7
  52. package/dist/esm/grid-layer/grid-layer.js.map +1 -1
  53. package/dist/esm/heatmap-layer/heatmap-layer.js +7 -11
  54. package/dist/esm/heatmap-layer/heatmap-layer.js.map +1 -1
  55. package/dist/esm/heatmap-layer/max-fs.glsl.js +7 -1
  56. package/dist/esm/heatmap-layer/max-fs.glsl.js.map +1 -1
  57. package/dist/esm/heatmap-layer/max-vs.glsl.js +12 -1
  58. package/dist/esm/heatmap-layer/max-vs.glsl.js.map +1 -1
  59. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +39 -1
  60. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js.map +1 -1
  61. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +31 -1
  62. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js.map +1 -1
  63. package/dist/esm/heatmap-layer/triangle-layer.js +1 -3
  64. package/dist/esm/heatmap-layer/triangle-layer.js.map +1 -1
  65. package/dist/esm/heatmap-layer/weights-fs.glsl.js +19 -1
  66. package/dist/esm/heatmap-layer/weights-fs.glsl.js.map +1 -1
  67. package/dist/esm/heatmap-layer/weights-vs.glsl.js +23 -1
  68. package/dist/esm/heatmap-layer/weights-vs.glsl.js.map +1 -1
  69. package/dist/esm/hexagon-layer/hexagon-layer.js +3 -7
  70. package/dist/esm/hexagon-layer/hexagon-layer.js.map +1 -1
  71. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js +3 -7
  72. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
  73. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js +17 -1
  74. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +1 -1
  75. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js +64 -1
  76. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +1 -1
  77. package/dist/esm/screen-grid-layer/screen-grid-layer.js +5 -9
  78. package/dist/esm/screen-grid-layer/screen-grid-layer.js.map +1 -1
  79. package/dist/esm/utils/bin-sorter.js +7 -16
  80. package/dist/esm/utils/bin-sorter.js.map +1 -1
  81. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +20 -1
  82. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +1 -1
  83. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +34 -1
  84. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +1 -1
  85. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +12 -1
  86. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +1 -1
  87. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +58 -1
  88. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +1 -1
  89. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +14 -14
  90. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +1 -1
  91. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +17 -1
  92. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +1 -1
  93. package/dist/esm/utils/scale-utils.js +2 -2
  94. package/dist/esm/utils/scale-utils.js.map +1 -1
  95. package/dist.min.js +30 -27
  96. package/package.json +2 -2
  97. package/typed/aggregation-layer.js +0 -151
  98. package/typed/contour-layer/contour-layer.js +0 -234
  99. package/typed/contour-layer/contour-utils.js +0 -64
  100. package/typed/contour-layer/marching-squares-codes.js +0 -337
  101. package/typed/contour-layer/marching-squares.js +0 -147
  102. package/typed/cpu-grid-layer/cpu-grid-layer.js +0 -129
  103. package/typed/cpu-grid-layer/grid-aggregator.js +0 -141
  104. package/typed/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -34
  105. package/typed/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -141
  106. package/typed/gpu-grid-layer/gpu-grid-cell-layer.js +0 -143
  107. package/typed/gpu-grid-layer/gpu-grid-layer.js +0 -289
  108. package/typed/grid-aggregation-layer.js +0 -172
  109. package/typed/grid-layer/grid-layer.js +0 -60
  110. package/typed/heatmap-layer/heatmap-layer-utils.js +0 -78
  111. package/typed/heatmap-layer/heatmap-layer.js +0 -478
  112. package/typed/heatmap-layer/max-fs.glsl.js +0 -7
  113. package/typed/heatmap-layer/max-vs.glsl.js +0 -12
  114. package/typed/heatmap-layer/triangle-layer-fragment.glsl.js +0 -58
  115. package/typed/heatmap-layer/triangle-layer-vertex.glsl.js +0 -51
  116. package/typed/heatmap-layer/triangle-layer.js +0 -67
  117. package/typed/heatmap-layer/weights-fs.glsl.js +0 -19
  118. package/typed/heatmap-layer/weights-vs.glsl.js +0 -23
  119. package/typed/hexagon-layer/hexagon-aggregator.js +0 -112
  120. package/typed/hexagon-layer/hexagon-layer.js +0 -171
  121. package/typed/index.js +0 -33
  122. package/typed/screen-grid-layer/screen-grid-cell-layer.js +0 -159
  123. package/typed/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -37
  124. package/typed/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -83
  125. package/typed/screen-grid-layer/screen-grid-layer.js +0 -216
  126. package/typed/types.js +0 -1
  127. package/typed/utils/aggregation-operation-utils.js +0 -94
  128. package/typed/utils/bin-sorter.js +0 -167
  129. package/typed/utils/color-utils.js +0 -53
  130. package/typed/utils/cpu-aggregator.js +0 -417
  131. package/typed/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -39
  132. package/typed/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -53
  133. package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -31
  134. package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -77
  135. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -41
  136. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -1
  137. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -562
  138. package/typed/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -36
  139. package/typed/utils/grid-aggregation-utils.js +0 -114
  140. package/typed/utils/prop-utils.js +0 -28
  141. package/typed/utils/resource-utils.js +0 -40
  142. package/typed/utils/scale-utils.js +0 -184
@@ -13,8 +13,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
13
13
 
14
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
15
 
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
16
  var _binSorter = _interopRequireDefault(require("./bin-sorter"));
19
17
 
20
18
  var _scaleUtils = require("./scale-utils");
@@ -149,365 +147,344 @@ var CPUAggregator = function () {
149
147
  this._addDimension(opts.dimensions || _defaultDimensions);
150
148
  }
151
149
 
152
- (0, _createClass2.default)(CPUAggregator, [{
153
- key: "updateState",
154
- value: function updateState(opts, aggregationParams) {
155
- var oldProps = opts.oldProps,
156
- props = opts.props,
157
- changeFlags = opts.changeFlags;
158
- this.updateGetValueFuncs(oldProps, props, changeFlags);
159
- var reprojectNeeded = this.needsReProjectPoints(oldProps, props, changeFlags);
160
- var aggregationDirty = false;
161
-
162
- if (changeFlags.dataChanged || reprojectNeeded) {
163
- this.getAggregatedData(props, aggregationParams);
164
- aggregationDirty = true;
165
- } else {
166
- var dimensionChanges = this.getDimensionChanges(oldProps, props, changeFlags) || [];
167
- dimensionChanges.forEach(function (f) {
168
- return typeof f === 'function' && f();
169
- });
170
- aggregationDirty = true;
171
- }
172
-
173
- this.setState({
174
- aggregationDirty: aggregationDirty
150
+ CPUAggregator.defaultDimensions = function defaultDimensions() {
151
+ return _defaultDimensions;
152
+ };
153
+
154
+ var _proto = CPUAggregator.prototype;
155
+
156
+ _proto.updateState = function updateState(opts, aggregationParams) {
157
+ var oldProps = opts.oldProps,
158
+ props = opts.props,
159
+ changeFlags = opts.changeFlags;
160
+ this.updateGetValueFuncs(oldProps, props, changeFlags);
161
+ var reprojectNeeded = this.needsReProjectPoints(oldProps, props, changeFlags);
162
+ var aggregationDirty = false;
163
+
164
+ if (changeFlags.dataChanged || reprojectNeeded) {
165
+ this.getAggregatedData(props, aggregationParams);
166
+ aggregationDirty = true;
167
+ } else {
168
+ var dimensionChanges = this.getDimensionChanges(oldProps, props, changeFlags) || [];
169
+ dimensionChanges.forEach(function (f) {
170
+ return typeof f === 'function' && f();
175
171
  });
176
- return this.state;
177
- }
178
- }, {
179
- key: "setState",
180
- value: function setState(updateObject) {
181
- this.state = _objectSpread(_objectSpread({}, this.state), updateObject);
172
+ aggregationDirty = true;
182
173
  }
183
- }, {
184
- key: "setDimensionState",
185
- value: function setDimensionState(key, updateObject) {
186
- this.setState({
187
- dimensions: _objectSpread(_objectSpread({}, this.state.dimensions), {}, (0, _defineProperty2.default)({}, key, _objectSpread(_objectSpread({}, this.state.dimensions[key]), updateObject)))
188
- });
189
- }
190
- }, {
191
- key: "normalizeResult",
192
- value: function normalizeResult() {
193
- var result = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
194
-
195
- if (result.hexagons) {
196
- return _objectSpread({
197
- data: result.hexagons
198
- }, result);
199
- } else if (result.layerData) {
200
- return _objectSpread({
201
- data: result.layerData
202
- }, result);
203
- }
204
174
 
205
- return result;
206
- }
207
- }, {
208
- key: "getAggregatedData",
209
- value: function getAggregatedData(props, aggregationParams) {
210
- var aggregator = this._getAggregator(props);
211
-
212
- var result = aggregator(props, aggregationParams);
213
- this.setState({
214
- layerData: this.normalizeResult(result)
215
- });
216
- this.changeFlags = {
217
- layerData: true
218
- };
219
- this.getSortedBins(props);
175
+ this.setState({
176
+ aggregationDirty: aggregationDirty
177
+ });
178
+ return this.state;
179
+ };
180
+
181
+ _proto.setState = function setState(updateObject) {
182
+ this.state = _objectSpread(_objectSpread({}, this.state), updateObject);
183
+ };
184
+
185
+ _proto.setDimensionState = function setDimensionState(key, updateObject) {
186
+ this.setState({
187
+ dimensions: _objectSpread(_objectSpread({}, this.state.dimensions), {}, (0, _defineProperty2.default)({}, key, _objectSpread(_objectSpread({}, this.state.dimensions[key]), updateObject)))
188
+ });
189
+ };
190
+
191
+ _proto.normalizeResult = function normalizeResult() {
192
+ var result = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
193
+
194
+ if (result.hexagons) {
195
+ return _objectSpread({
196
+ data: result.hexagons
197
+ }, result);
198
+ } else if (result.layerData) {
199
+ return _objectSpread({
200
+ data: result.layerData
201
+ }, result);
220
202
  }
221
- }, {
222
- key: "updateGetValueFuncs",
223
- value: function updateGetValueFuncs(oldProps, props, changeFlags) {
224
- for (var key in this.dimensionUpdaters) {
225
- var _this$dimensionUpdate = this.dimensionUpdaters[key].getBins.triggers,
226
- value = _this$dimensionUpdate.value,
227
- weight = _this$dimensionUpdate.weight,
228
- aggregation = _this$dimensionUpdate.aggregation;
229
- var getValue = props[value.prop];
230
- var getValueChanged = this.needUpdateDimensionStep(this.dimensionUpdaters[key].getBins, oldProps, props, changeFlags);
231
-
232
- if (getValueChanged) {
233
- if (getValue) {
234
- getValue = (0, _aggregationOperationUtils.wrapGetValueFunc)(getValue, {
235
- data: props.data
236
- });
237
- } else {
238
- getValue = (0, _aggregationOperationUtils.getValueFunc)(props[aggregation.prop], props[weight.prop], {
239
- data: props.data
240
- });
241
- }
242
- }
243
203
 
204
+ return result;
205
+ };
206
+
207
+ _proto.getAggregatedData = function getAggregatedData(props, aggregationParams) {
208
+ var aggregator = this._getAggregator(props);
209
+
210
+ var result = aggregator(props, aggregationParams);
211
+ this.setState({
212
+ layerData: this.normalizeResult(result)
213
+ });
214
+ this.changeFlags = {
215
+ layerData: true
216
+ };
217
+ this.getSortedBins(props);
218
+ };
219
+
220
+ _proto.updateGetValueFuncs = function updateGetValueFuncs(oldProps, props, changeFlags) {
221
+ for (var key in this.dimensionUpdaters) {
222
+ var _this$dimensionUpdate = this.dimensionUpdaters[key].getBins.triggers,
223
+ value = _this$dimensionUpdate.value,
224
+ weight = _this$dimensionUpdate.weight,
225
+ aggregation = _this$dimensionUpdate.aggregation;
226
+ var getValue = props[value.prop];
227
+ var getValueChanged = this.needUpdateDimensionStep(this.dimensionUpdaters[key].getBins, oldProps, props, changeFlags);
228
+
229
+ if (getValueChanged) {
244
230
  if (getValue) {
245
- this.setDimensionState(key, {
246
- getValue: getValue
231
+ getValue = (0, _aggregationOperationUtils.wrapGetValueFunc)(getValue, {
232
+ data: props.data
233
+ });
234
+ } else {
235
+ getValue = (0, _aggregationOperationUtils.getValueFunc)(props[aggregation.prop], props[weight.prop], {
236
+ data: props.data
247
237
  });
248
238
  }
249
239
  }
240
+
241
+ if (getValue) {
242
+ this.setDimensionState(key, {
243
+ getValue: getValue
244
+ });
245
+ }
250
246
  }
251
- }, {
252
- key: "needsReProjectPoints",
253
- value: function needsReProjectPoints(oldProps, props, changeFlags) {
254
- return this._getCellSize(oldProps) !== this._getCellSize(props) || this._getAggregator(oldProps) !== this._getAggregator(props) || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getPosition);
255
- }
256
- }, {
257
- key: "addDimension",
258
- value: function addDimension(dimensions) {
259
- this._addDimension(dimensions);
260
- }
261
- }, {
262
- key: "_addDimension",
263
- value: function _addDimension() {
264
- var _this = this;
265
-
266
- var dimensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
267
- dimensions.forEach(function (dimension) {
268
- var key = dimension.key;
269
- _this.dimensionUpdaters[key] = _this.getDimensionUpdaters(dimension);
270
- _this.state.dimensions[key] = {
271
- getValue: null,
272
- domain: null,
273
- sortedBins: null,
274
- scaleFunc: nop
275
- };
276
- });
277
- }
278
- }, {
279
- key: "getDimensionUpdaters",
280
- value: function getDimensionUpdaters(_ref) {
281
- var key = _ref.key,
282
- accessor = _ref.accessor,
283
- pickingInfo = _ref.pickingInfo,
284
- getBins = _ref.getBins,
285
- getDomain = _ref.getDomain,
286
- getScaleFunc = _ref.getScaleFunc,
287
- nullValue = _ref.nullValue;
288
- return {
289
- key: key,
290
- accessor: accessor,
291
- pickingInfo: pickingInfo,
292
- getBins: _objectSpread({
293
- updater: this.getDimensionSortedBins
294
- }, getBins),
295
- getDomain: _objectSpread({
296
- updater: this.getDimensionValueDomain
297
- }, getDomain),
298
- getScaleFunc: _objectSpread({
299
- updater: this.getDimensionScale
300
- }, getScaleFunc),
301
- attributeAccessor: this.getSubLayerDimensionAttribute(key, nullValue)
247
+ };
248
+
249
+ _proto.needsReProjectPoints = function needsReProjectPoints(oldProps, props, changeFlags) {
250
+ return this._getCellSize(oldProps) !== this._getCellSize(props) || this._getAggregator(oldProps) !== this._getAggregator(props) || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getPosition);
251
+ };
252
+
253
+ _proto.addDimension = function addDimension(dimensions) {
254
+ this._addDimension(dimensions);
255
+ };
256
+
257
+ _proto._addDimension = function _addDimension() {
258
+ var _this = this;
259
+
260
+ var dimensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
261
+ dimensions.forEach(function (dimension) {
262
+ var key = dimension.key;
263
+ _this.dimensionUpdaters[key] = _this.getDimensionUpdaters(dimension);
264
+ _this.state.dimensions[key] = {
265
+ getValue: null,
266
+ domain: null,
267
+ sortedBins: null,
268
+ scaleFunc: nop
302
269
  };
303
- }
304
- }, {
305
- key: "needUpdateDimensionStep",
306
- value: function needUpdateDimensionStep(dimensionStep, oldProps, props, changeFlags) {
307
- return Object.values(dimensionStep.triggers).some(function (item) {
308
- if (item.updateTrigger) {
309
- return changeFlags.dataChanged || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged[item.updateTrigger]);
310
- }
270
+ });
271
+ };
272
+
273
+ _proto.getDimensionUpdaters = function getDimensionUpdaters(_ref) {
274
+ var key = _ref.key,
275
+ accessor = _ref.accessor,
276
+ pickingInfo = _ref.pickingInfo,
277
+ getBins = _ref.getBins,
278
+ getDomain = _ref.getDomain,
279
+ getScaleFunc = _ref.getScaleFunc,
280
+ nullValue = _ref.nullValue;
281
+ return {
282
+ key: key,
283
+ accessor: accessor,
284
+ pickingInfo: pickingInfo,
285
+ getBins: _objectSpread({
286
+ updater: this.getDimensionSortedBins
287
+ }, getBins),
288
+ getDomain: _objectSpread({
289
+ updater: this.getDimensionValueDomain
290
+ }, getDomain),
291
+ getScaleFunc: _objectSpread({
292
+ updater: this.getDimensionScale
293
+ }, getScaleFunc),
294
+ attributeAccessor: this.getSubLayerDimensionAttribute(key, nullValue)
295
+ };
296
+ };
311
297
 
312
- return oldProps[item.prop] !== props[item.prop];
313
- });
314
- }
315
- }, {
316
- key: "getDimensionChanges",
317
- value: function getDimensionChanges(oldProps, props, changeFlags) {
318
- var _this2 = this;
298
+ _proto.needUpdateDimensionStep = function needUpdateDimensionStep(dimensionStep, oldProps, props, changeFlags) {
299
+ return Object.values(dimensionStep.triggers).some(function (item) {
300
+ if (item.updateTrigger) {
301
+ return changeFlags.dataChanged || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged[item.updateTrigger]);
302
+ }
319
303
 
320
- var updaters = [];
304
+ return oldProps[item.prop] !== props[item.prop];
305
+ });
306
+ };
321
307
 
322
- var _loop = function _loop(key) {
323
- var needUpdate = dimensionSteps.find(function (step) {
324
- return _this2.needUpdateDimensionStep(_this2.dimensionUpdaters[key][step], oldProps, props, changeFlags);
325
- });
308
+ _proto.getDimensionChanges = function getDimensionChanges(oldProps, props, changeFlags) {
309
+ var _this2 = this;
326
310
 
327
- if (needUpdate) {
328
- updaters.push(_this2.dimensionUpdaters[key][needUpdate].updater.bind(_this2, props, _this2.dimensionUpdaters[key]));
329
- }
330
- };
311
+ var updaters = [];
331
312
 
332
- for (var key in this.dimensionUpdaters) {
333
- _loop(key);
313
+ var _loop = function _loop(key) {
314
+ var needUpdate = dimensionSteps.find(function (step) {
315
+ return _this2.needUpdateDimensionStep(_this2.dimensionUpdaters[key][step], oldProps, props, changeFlags);
316
+ });
317
+
318
+ if (needUpdate) {
319
+ updaters.push(_this2.dimensionUpdaters[key][needUpdate].updater.bind(_this2, props, _this2.dimensionUpdaters[key]));
334
320
  }
321
+ };
335
322
 
336
- return updaters.length ? updaters : null;
323
+ for (var key in this.dimensionUpdaters) {
324
+ _loop(key);
337
325
  }
338
- }, {
339
- key: "getUpdateTriggers",
340
- value: function getUpdateTriggers(props) {
341
- var _this3 = this;
342
-
343
- var _updateTriggers = props.updateTriggers || {};
344
-
345
- var updateTriggers = {};
346
-
347
- var _loop2 = function _loop2(key) {
348
- var accessor = _this3.dimensionUpdaters[key].accessor;
349
- updateTriggers[accessor] = {};
350
- dimensionSteps.forEach(function (step) {
351
- Object.values(_this3.dimensionUpdaters[key][step].triggers).forEach(function (_ref2) {
352
- var prop = _ref2.prop,
353
- updateTrigger = _ref2.updateTrigger;
354
-
355
- if (updateTrigger) {
356
- var fromProp = _updateTriggers[updateTrigger];
357
-
358
- if ((0, _typeof2.default)(fromProp) === 'object' && !Array.isArray(fromProp)) {
359
- Object.assign(updateTriggers[accessor], fromProp);
360
- } else if (fromProp !== undefined) {
361
- updateTriggers[accessor][prop] = fromProp;
362
- }
363
- } else {
364
- updateTriggers[accessor][prop] = props[prop];
326
+
327
+ return updaters.length ? updaters : null;
328
+ };
329
+
330
+ _proto.getUpdateTriggers = function getUpdateTriggers(props) {
331
+ var _this3 = this;
332
+
333
+ var _updateTriggers = props.updateTriggers || {};
334
+
335
+ var updateTriggers = {};
336
+
337
+ var _loop2 = function _loop2(key) {
338
+ var accessor = _this3.dimensionUpdaters[key].accessor;
339
+ updateTriggers[accessor] = {};
340
+ dimensionSteps.forEach(function (step) {
341
+ Object.values(_this3.dimensionUpdaters[key][step].triggers).forEach(function (_ref2) {
342
+ var prop = _ref2.prop,
343
+ updateTrigger = _ref2.updateTrigger;
344
+
345
+ if (updateTrigger) {
346
+ var fromProp = _updateTriggers[updateTrigger];
347
+
348
+ if ((0, _typeof2.default)(fromProp) === 'object' && !Array.isArray(fromProp)) {
349
+ Object.assign(updateTriggers[accessor], fromProp);
350
+ } else if (fromProp !== undefined) {
351
+ updateTriggers[accessor][prop] = fromProp;
365
352
  }
366
- });
353
+ } else {
354
+ updateTriggers[accessor][prop] = props[prop];
355
+ }
367
356
  });
368
- };
369
-
370
- for (var key in this.dimensionUpdaters) {
371
- _loop2(key);
372
- }
357
+ });
358
+ };
373
359
 
374
- return updateTriggers;
375
- }
376
- }, {
377
- key: "getSortedBins",
378
- value: function getSortedBins(props) {
379
- for (var key in this.dimensionUpdaters) {
380
- this.getDimensionSortedBins(props, this.dimensionUpdaters[key]);
381
- }
360
+ for (var key in this.dimensionUpdaters) {
361
+ _loop2(key);
382
362
  }
383
- }, {
384
- key: "getDimensionSortedBins",
385
- value: function getDimensionSortedBins(props, dimensionUpdater) {
386
- var key = dimensionUpdater.key;
387
- var getValue = this.state.dimensions[key].getValue;
388
- var sortedBins = new _binSorter.default(this.state.layerData.data || [], {
389
- getValue: getValue,
390
- filterData: props._filterData
391
- });
392
- this.setDimensionState(key, {
393
- sortedBins: sortedBins
394
- });
395
- this.getDimensionValueDomain(props, dimensionUpdater);
363
+
364
+ return updateTriggers;
365
+ };
366
+
367
+ _proto.getSortedBins = function getSortedBins(props) {
368
+ for (var key in this.dimensionUpdaters) {
369
+ this.getDimensionSortedBins(props, this.dimensionUpdaters[key]);
396
370
  }
397
- }, {
398
- key: "getDimensionValueDomain",
399
- value: function getDimensionValueDomain(props, dimensionUpdater) {
400
- var getDomain = dimensionUpdater.getDomain,
401
- key = dimensionUpdater.key;
402
- var _getDomain$triggers = getDomain.triggers,
403
- lowerPercentile = _getDomain$triggers.lowerPercentile,
404
- upperPercentile = _getDomain$triggers.upperPercentile,
405
- scaleType = _getDomain$triggers.scaleType;
406
- var valueDomain = this.state.dimensions[key].sortedBins.getValueDomainByScale(props[scaleType.prop], [props[lowerPercentile.prop], props[upperPercentile.prop]]);
407
- this.setDimensionState(key, {
408
- valueDomain: valueDomain
409
- });
410
- this.getDimensionScale(props, dimensionUpdater);
371
+ };
372
+
373
+ _proto.getDimensionSortedBins = function getDimensionSortedBins(props, dimensionUpdater) {
374
+ var key = dimensionUpdater.key;
375
+ var getValue = this.state.dimensions[key].getValue;
376
+ var sortedBins = new _binSorter.default(this.state.layerData.data || [], {
377
+ getValue: getValue,
378
+ filterData: props._filterData
379
+ });
380
+ this.setDimensionState(key, {
381
+ sortedBins: sortedBins
382
+ });
383
+ this.getDimensionValueDomain(props, dimensionUpdater);
384
+ };
385
+
386
+ _proto.getDimensionValueDomain = function getDimensionValueDomain(props, dimensionUpdater) {
387
+ var getDomain = dimensionUpdater.getDomain,
388
+ key = dimensionUpdater.key;
389
+ var _getDomain$triggers = getDomain.triggers,
390
+ lowerPercentile = _getDomain$triggers.lowerPercentile,
391
+ upperPercentile = _getDomain$triggers.upperPercentile,
392
+ scaleType = _getDomain$triggers.scaleType;
393
+ var valueDomain = this.state.dimensions[key].sortedBins.getValueDomainByScale(props[scaleType.prop], [props[lowerPercentile.prop], props[upperPercentile.prop]]);
394
+ this.setDimensionState(key, {
395
+ valueDomain: valueDomain
396
+ });
397
+ this.getDimensionScale(props, dimensionUpdater);
398
+ };
399
+
400
+ _proto.getDimensionScale = function getDimensionScale(props, dimensionUpdater) {
401
+ var key = dimensionUpdater.key,
402
+ getScaleFunc = dimensionUpdater.getScaleFunc,
403
+ getDomain = dimensionUpdater.getDomain;
404
+ var _getScaleFunc$trigger = getScaleFunc.triggers,
405
+ domain = _getScaleFunc$trigger.domain,
406
+ range = _getScaleFunc$trigger.range;
407
+ var scaleType = getDomain.triggers.scaleType;
408
+ var onSet = getScaleFunc.onSet;
409
+ var dimensionRange = props[range.prop];
410
+ var dimensionDomain = props[domain.prop] || this.state.dimensions[key].valueDomain;
411
+ var getScaleFunction = (0, _scaleUtils.getScaleFunctionByScaleType)(scaleType && props[scaleType.prop]);
412
+ var scaleFunc = getScaleFunction(dimensionDomain, dimensionRange);
413
+
414
+ if ((0, _typeof2.default)(onSet) === 'object' && typeof props[onSet.props] === 'function') {
415
+ props[onSet.props](scaleFunc.domain());
411
416
  }
412
- }, {
413
- key: "getDimensionScale",
414
- value: function getDimensionScale(props, dimensionUpdater) {
415
- var key = dimensionUpdater.key,
416
- getScaleFunc = dimensionUpdater.getScaleFunc,
417
- getDomain = dimensionUpdater.getDomain;
418
- var _getScaleFunc$trigger = getScaleFunc.triggers,
419
- domain = _getScaleFunc$trigger.domain,
420
- range = _getScaleFunc$trigger.range;
421
- var scaleType = getDomain.triggers.scaleType;
422
- var onSet = getScaleFunc.onSet;
423
- var dimensionRange = props[range.prop];
424
- var dimensionDomain = props[domain.prop] || this.state.dimensions[key].valueDomain;
425
- var getScaleFunction = (0, _scaleUtils.getScaleFunctionByScaleType)(scaleType && props[scaleType.prop]);
426
- var scaleFunc = getScaleFunction(dimensionDomain, dimensionRange);
427
-
428
- if ((0, _typeof2.default)(onSet) === 'object' && typeof props[onSet.props] === 'function') {
429
- props[onSet.props](scaleFunc.domain());
417
+
418
+ this.setDimensionState(key, {
419
+ scaleFunc: scaleFunc
420
+ });
421
+ };
422
+
423
+ _proto.getSubLayerDimensionAttribute = function getSubLayerDimensionAttribute(key, nullValue) {
424
+ var _this4 = this;
425
+
426
+ return function (cell) {
427
+ var _this4$state$dimensio = _this4.state.dimensions[key],
428
+ sortedBins = _this4$state$dimensio.sortedBins,
429
+ scaleFunc = _this4$state$dimensio.scaleFunc;
430
+ var bin = sortedBins.binMap[cell.index];
431
+
432
+ if (bin && bin.counts === 0) {
433
+ return nullValue;
430
434
  }
431
435
 
432
- this.setDimensionState(key, {
433
- scaleFunc: scaleFunc
434
- });
435
- }
436
- }, {
437
- key: "getSubLayerDimensionAttribute",
438
- value: function getSubLayerDimensionAttribute(key, nullValue) {
439
- var _this4 = this;
440
-
441
- return function (cell) {
442
- var _this4$state$dimensio = _this4.state.dimensions[key],
443
- sortedBins = _this4$state$dimensio.sortedBins,
444
- scaleFunc = _this4$state$dimensio.scaleFunc;
445
- var bin = sortedBins.binMap[cell.index];
446
-
447
- if (bin && bin.counts === 0) {
448
- return nullValue;
449
- }
436
+ var cv = bin && bin.value;
437
+ var domain = scaleFunc.domain();
438
+ var isValueInDomain = cv >= domain[0] && cv <= domain[domain.length - 1];
439
+ return isValueInDomain ? scaleFunc(cv) : nullValue;
440
+ };
441
+ };
450
442
 
451
- var cv = bin && bin.value;
452
- var domain = scaleFunc.domain();
453
- var isValueInDomain = cv >= domain[0] && cv <= domain[domain.length - 1];
454
- return isValueInDomain ? scaleFunc(cv) : nullValue;
455
- };
443
+ _proto.getSubLayerAccessors = function getSubLayerAccessors(props) {
444
+ var accessors = {};
445
+
446
+ for (var key in this.dimensionUpdaters) {
447
+ var accessor = this.dimensionUpdaters[key].accessor;
448
+ accessors[accessor] = this.getSubLayerDimensionAttribute(props, key);
456
449
  }
457
- }, {
458
- key: "getSubLayerAccessors",
459
- value: function getSubLayerAccessors(props) {
460
- var accessors = {};
450
+
451
+ return accessors;
452
+ };
453
+
454
+ _proto.getPickingInfo = function getPickingInfo(_ref3) {
455
+ var info = _ref3.info;
456
+ var isPicked = info.picked && info.index > -1;
457
+ var object = null;
458
+
459
+ if (isPicked) {
460
+ var cell = this.state.layerData.data[info.index];
461
+ var binInfo = {};
461
462
 
462
463
  for (var key in this.dimensionUpdaters) {
463
- var accessor = this.dimensionUpdaters[key].accessor;
464
- accessors[accessor] = this.getSubLayerDimensionAttribute(props, key);
464
+ var pickingInfo = this.dimensionUpdaters[key].pickingInfo;
465
+ var sortedBins = this.state.dimensions[key].sortedBins;
466
+ var value = sortedBins.binMap[cell.index] && sortedBins.binMap[cell.index].value;
467
+ binInfo[pickingInfo] = value;
465
468
  }
466
469
 
467
- return accessors;
470
+ object = Object.assign(binInfo, cell, {
471
+ points: cell.filteredPoints || cell.points
472
+ });
468
473
  }
469
- }, {
470
- key: "getPickingInfo",
471
- value: function getPickingInfo(_ref3) {
472
- var info = _ref3.info;
473
- var isPicked = info.picked && info.index > -1;
474
- var object = null;
475
-
476
- if (isPicked) {
477
- var cell = this.state.layerData.data[info.index];
478
- var binInfo = {};
479
-
480
- for (var key in this.dimensionUpdaters) {
481
- var pickingInfo = this.dimensionUpdaters[key].pickingInfo;
482
- var sortedBins = this.state.dimensions[key].sortedBins;
483
- var value = sortedBins.binMap[cell.index] && sortedBins.binMap[cell.index].value;
484
- binInfo[pickingInfo] = value;
485
- }
486
474
 
487
- object = Object.assign(binInfo, cell, {
488
- points: cell.filteredPoints || cell.points
489
- });
490
- }
475
+ info.picked = Boolean(object);
476
+ info.object = object;
477
+ return info;
478
+ };
491
479
 
492
- info.picked = Boolean(object);
493
- info.object = object;
494
- return info;
480
+ _proto.getAccessor = function getAccessor(dimensionKey) {
481
+ if (!this.dimensionUpdaters.hasOwnProperty(dimensionKey)) {
482
+ return nop;
495
483
  }
496
- }, {
497
- key: "getAccessor",
498
- value: function getAccessor(dimensionKey) {
499
- if (!this.dimensionUpdaters.hasOwnProperty(dimensionKey)) {
500
- return nop;
501
- }
502
484
 
503
- return this.dimensionUpdaters[dimensionKey].attributeAccessor;
504
- }
505
- }], [{
506
- key: "defaultDimensions",
507
- value: function defaultDimensions() {
508
- return _defaultDimensions;
509
- }
510
- }]);
485
+ return this.dimensionUpdaters[dimensionKey].attributeAccessor;
486
+ };
487
+
511
488
  return CPUAggregator;
512
489
  }();
513
490