@kepler.gl/deckgl-layers 3.0.0 → 3.1.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 (33) hide show
  1. package/package.json +12 -11
  2. package/dist/3d-building-layer/3d-building-layer.d.ts +0 -16
  3. package/dist/3d-building-layer/3d-building-layer.js +0 -91
  4. package/dist/3d-building-layer/3d-building-utils.d.ts +0 -9
  5. package/dist/3d-building-layer/3d-building-utils.js +0 -199
  6. package/dist/3d-building-layer/types.d.ts +0 -51
  7. package/dist/3d-building-layer/types.js +0 -6
  8. package/dist/cluster-layer/cluster-layer.d.ts +0 -42
  9. package/dist/cluster-layer/cluster-layer.js +0 -329
  10. package/dist/column-layer/enhanced-column-layer.d.ts +0 -12
  11. package/dist/column-layer/enhanced-column-layer.js +0 -156
  12. package/dist/deckgl-extensions/filter-arrow-layer.d.ts +0 -46
  13. package/dist/deckgl-extensions/filter-arrow-layer.js +0 -97
  14. package/dist/deckgl-extensions/filter-shader-module.d.ts +0 -19
  15. package/dist/deckgl-extensions/filter-shader-module.js +0 -29
  16. package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +0 -7
  17. package/dist/grid-layer/enhanced-cpu-grid-layer.js +0 -85
  18. package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +0 -7
  19. package/dist/hexagon-layer/enhanced-hexagon-layer.js +0 -85
  20. package/dist/index.d.ts +0 -11
  21. package/dist/index.js +0 -124
  22. package/dist/layer-utils/cluster-utils.d.ts +0 -22
  23. package/dist/layer-utils/cluster-utils.js +0 -107
  24. package/dist/layer-utils/cpu-aggregator.d.ts +0 -93
  25. package/dist/layer-utils/cpu-aggregator.js +0 -653
  26. package/dist/layer-utils/shader-utils.d.ts +0 -1
  27. package/dist/layer-utils/shader-utils.js +0 -33
  28. package/dist/line-layer/line-layer.d.ts +0 -12
  29. package/dist/line-layer/line-layer.js +0 -112
  30. package/dist/svg-icon-layer/scatterplot-icon-layer.d.ts +0 -9
  31. package/dist/svg-icon-layer/scatterplot-icon-layer.js +0 -79
  32. package/dist/svg-icon-layer/svg-icon-layer.d.ts +0 -22
  33. package/dist/svg-icon-layer/svg-icon-layer.js +0 -127
@@ -1,329 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = exports.clusterAggregation = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _layers = require("@deck.gl/layers");
25
-
26
- var _aggregationLayers = require("@deck.gl/aggregation-layers");
27
-
28
- var _geoViewport = _interopRequireDefault(require("@mapbox/geo-viewport"));
29
-
30
- var _cpuAggregator = _interopRequireWildcard(require("../layer-utils/cpu-aggregator"));
31
-
32
- var _viewportMercatorProject = require("viewport-mercator-project");
33
-
34
- var _d3Array = require("d3-array");
35
-
36
- var _constants = require("@kepler.gl/constants");
37
-
38
- var _clusterUtils = _interopRequireWildcard(require("../layer-utils/cluster-utils"));
39
-
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
41
-
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
43
-
44
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
45
-
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
-
48
- var defaultRadius = _constants.LAYER_VIS_CONFIGS.clusterRadius.defaultValue;
49
- var defaultRadiusRange = _constants.LAYER_VIS_CONFIGS.clusterRadiusRange.defaultValue;
50
-
51
- var defaultGetColorValue = function defaultGetColorValue(points) {
52
- return points.length;
53
- };
54
-
55
- var defaultGetRadiusValue = function defaultGetRadiusValue(cell) {
56
- return cell.filteredPoints ? cell.filteredPoints.length : cell.points.length;
57
- };
58
-
59
- function processGeoJSON(step, props, aggregation, _ref) {
60
- var viewport = _ref.viewport;
61
- var data = props.data,
62
- getPosition = props.getPosition,
63
- filterData = props.filterData;
64
- var geoJSON = (0, _clusterUtils.getGeoJSON)(data, getPosition, filterData);
65
- var clusterBuilder = new _clusterUtils["default"]();
66
- this.setState({
67
- geoJSON: geoJSON,
68
- clusterBuilder: clusterBuilder
69
- });
70
- }
71
-
72
- function getClusters(step, props, aggregation, _ref2) {
73
- var viewport = _ref2.viewport;
74
- var _this$state = this.state,
75
- geoJSON = _this$state.geoJSON,
76
- clusterBuilder = _this$state.clusterBuilder;
77
- var clusterRadius = props.clusterRadius,
78
- zoom = props.zoom,
79
- width = props.width,
80
- height = props.height;
81
- var longitude = viewport.longitude,
82
- latitude = viewport.latitude; // zoom needs to be an integer for the different map utils. Also helps with cache key.
83
-
84
- var bbox = _geoViewport["default"].bounds([longitude, latitude], zoom, [width, height]);
85
-
86
- var clusters = clusterBuilder.clustersAtZoom({
87
- bbox: bbox,
88
- clusterRadius: clusterRadius,
89
- geoJSON: geoJSON,
90
- zoom: zoom
91
- });
92
- this.setState({
93
- layerData: {
94
- data: clusters
95
- }
96
- });
97
- }
98
-
99
- function getSubLayerRadius(dimensionState, dimension, layerProps) {
100
- return function (cell) {
101
- var getRadiusValue = layerProps.getRadiusValue;
102
- var scaleFunc = dimensionState.scaleFunc;
103
- return scaleFunc(getRadiusValue(cell));
104
- };
105
- }
106
-
107
- var clusterAggregation = {
108
- key: 'position',
109
- updateSteps: [{
110
- key: 'geojson',
111
- triggers: {
112
- position: {
113
- prop: 'getPosition',
114
- updateTrigger: 'getPosition'
115
- },
116
- filterData: {
117
- prop: 'filterData',
118
- updateTrigger: 'filterData'
119
- }
120
- },
121
- updater: processGeoJSON
122
- }, {
123
- key: 'clustering',
124
- triggers: {
125
- clusterRadius: {
126
- prop: 'clusterRadius'
127
- },
128
- zoom: {
129
- prop: 'zoom'
130
- },
131
- width: {
132
- prop: 'width'
133
- },
134
- height: {
135
- prop: 'height'
136
- }
137
- },
138
- updater: getClusters
139
- }]
140
- };
141
- exports.clusterAggregation = clusterAggregation;
142
-
143
- function getRadiusValueDomain(step, props, dimensionUpdater) {
144
- var key = dimensionUpdater.key;
145
- var getRadiusValue = props.getRadiusValue;
146
- var layerData = this.state.layerData;
147
- var valueDomain = [0, (0, _d3Array.max)(layerData.data, getRadiusValue)];
148
-
149
- this._setDimensionState(key, {
150
- valueDomain: valueDomain
151
- });
152
- }
153
-
154
- var clusterLayerDimensions = [_cpuAggregator.defaultColorDimension, {
155
- key: 'radius',
156
- accessor: 'getRadius',
157
- nullValue: 0,
158
- updateSteps: [{
159
- key: 'getDomain',
160
- triggers: {
161
- value: {
162
- prop: 'getRadiusValue',
163
- updateTrigger: 'getRadiusValue'
164
- }
165
- },
166
- updater: getRadiusValueDomain
167
- }, {
168
- key: 'getScaleFunc',
169
- triggers: {
170
- domain: {
171
- prop: 'radiusDomain'
172
- },
173
- range: {
174
- prop: 'radiusRange'
175
- },
176
- scaleType: {
177
- prop: 'radiusScaleType'
178
- }
179
- },
180
- updater: _cpuAggregator.getDimensionScale
181
- }],
182
- getSubLayerAccessor: getSubLayerRadius,
183
- getPickingInfo: function getPickingInfo(dimensionState, cell, layerProps) {
184
- var radiusValue = layerProps.getRadiusValue(cell);
185
- return {
186
- radiusValue: radiusValue
187
- };
188
- }
189
- }];
190
- var defaultProps = {
191
- clusterRadius: defaultRadius,
192
- colorDomain: null,
193
- colorRange: _constants.DEFAULT_COLOR_RANGE,
194
- colorScaleType: _constants.SCALE_TYPES.quantize,
195
- radiusScaleType: _constants.SCALE_TYPES.sqrt,
196
- radiusRange: defaultRadiusRange,
197
- getPosition: {
198
- type: 'accessor',
199
- value: function value(x) {
200
- return x.position;
201
- }
202
- },
203
- getColorValue: {
204
- type: 'accessor',
205
- value: defaultGetColorValue
206
- },
207
- getRadiusValue: {
208
- type: 'accessor',
209
- value: defaultGetRadiusValue
210
- }
211
- };
212
-
213
- var ClusterLayer = /*#__PURE__*/function (_AggregationLayer) {
214
- (0, _inherits2["default"])(ClusterLayer, _AggregationLayer);
215
-
216
- var _super = _createSuper(ClusterLayer);
217
-
218
- function ClusterLayer() {
219
- (0, _classCallCheck2["default"])(this, ClusterLayer);
220
- return _super.apply(this, arguments);
221
- }
222
-
223
- (0, _createClass2["default"])(ClusterLayer, [{
224
- key: "initializeState",
225
- value: function initializeState() {
226
- var cpuAggregator = new _cpuAggregator["default"]({
227
- aggregation: clusterAggregation,
228
- dimensions: clusterLayerDimensions
229
- });
230
- this.state = {
231
- cpuAggregator: cpuAggregator,
232
- aggregatorState: cpuAggregator.state
233
- };
234
- var attributeManager = this.getAttributeManager();
235
- attributeManager.add({
236
- positions: {
237
- size: 3,
238
- accessor: 'getPosition'
239
- }
240
- });
241
- }
242
- }, {
243
- key: "updateState",
244
- value: function updateState(_ref3) {
245
- var oldProps = _ref3.oldProps,
246
- props = _ref3.props,
247
- changeFlags = _ref3.changeFlags;
248
- this.setState({
249
- // make a copy of the internal state of cpuAggregator for testing
250
- aggregatorState: this.state.cpuAggregator.updateState({
251
- oldProps: oldProps,
252
- props: props,
253
- changeFlags: changeFlags
254
- }, {
255
- viewport: this.context.viewport,
256
- attributes: this.getAttributes(),
257
- numInstances: this.getNumInstances(props)
258
- })
259
- });
260
- }
261
- }, {
262
- key: "getPickingInfo",
263
- value: function getPickingInfo(_ref4) {
264
- var info = _ref4.info;
265
- return this.state.cpuAggregator.getPickingInfo({
266
- info: info
267
- }, this.props);
268
- }
269
- }, {
270
- key: "_getSublayerUpdateTriggers",
271
- value: function _getSublayerUpdateTriggers() {
272
- return this.state.cpuAggregator.getUpdateTriggers(this.props);
273
- }
274
- }, {
275
- key: "_getSubLayerAccessors",
276
- value: function _getSubLayerAccessors() {
277
- return {
278
- getRadius: this.state.cpuAggregator.getAccessor('radius', this.props),
279
- getFillColor: this.state.cpuAggregator.getAccessor('fillColor', this.props)
280
- };
281
- }
282
- }, {
283
- key: "renderLayers",
284
- value: function renderLayers() {
285
- // for subclassing, override this method to return
286
- // customized sub layer props
287
- var _this$props = this.props,
288
- id = _this$props.id,
289
- radiusScale = _this$props.radiusScale;
290
- var cpuAggregator = this.state.cpuAggregator; // base layer props
291
-
292
- var _this$props2 = this.props,
293
- visible = _this$props2.visible,
294
- opacity = _this$props2.opacity,
295
- pickable = _this$props2.pickable,
296
- autoHighlight = _this$props2.autoHighlight,
297
- highlightColor = _this$props2.highlightColor;
298
-
299
- var updateTriggers = this._getSublayerUpdateTriggers();
300
-
301
- var accessors = this._getSubLayerAccessors(); // @ts-expect-error
302
-
303
-
304
- var distanceScale = (0, _viewportMercatorProject.getDistanceScales)(this.context.viewport);
305
- var metersPerPixel = distanceScale.metersPerPixel[0]; // return props to the sublayer constructor
306
-
307
- return new _layers.ScatterplotLayer(_objectSpread({
308
- id: "".concat(id, "-cluster"),
309
- data: cpuAggregator.state.layerData.data,
310
- radiusScale: metersPerPixel * radiusScale,
311
- visible: visible,
312
- opacity: opacity,
313
- pickable: pickable,
314
- autoHighlight: autoHighlight,
315
- highlightColor: highlightColor,
316
- updateTriggers: updateTriggers,
317
- parameters: {
318
- depthMask: false
319
- }
320
- }, accessors));
321
- }
322
- }]);
323
- return ClusterLayer;
324
- }(_aggregationLayers._AggregationLayer);
325
-
326
- exports["default"] = ClusterLayer;
327
- ClusterLayer.layerName = 'ClusterLayer';
328
- ClusterLayer.defaultProps = defaultProps;
329
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdFJhZGl1cyIsIkxBWUVSX1ZJU19DT05GSUdTIiwiY2x1c3RlclJhZGl1cyIsImRlZmF1bHRWYWx1ZSIsImRlZmF1bHRSYWRpdXNSYW5nZSIsImNsdXN0ZXJSYWRpdXNSYW5nZSIsImRlZmF1bHRHZXRDb2xvclZhbHVlIiwicG9pbnRzIiwibGVuZ3RoIiwiZGVmYXVsdEdldFJhZGl1c1ZhbHVlIiwiY2VsbCIsImZpbHRlcmVkUG9pbnRzIiwicHJvY2Vzc0dlb0pTT04iLCJzdGVwIiwicHJvcHMiLCJhZ2dyZWdhdGlvbiIsInZpZXdwb3J0IiwiZGF0YSIsImdldFBvc2l0aW9uIiwiZmlsdGVyRGF0YSIsImdlb0pTT04iLCJjbHVzdGVyQnVpbGRlciIsIkNsdXN0ZXJCdWlsZGVyIiwic2V0U3RhdGUiLCJnZXRDbHVzdGVycyIsInN0YXRlIiwiem9vbSIsIndpZHRoIiwiaGVpZ2h0IiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJiYm94IiwiZ2VvVmlld3BvcnQiLCJib3VuZHMiLCJjbHVzdGVycyIsImNsdXN0ZXJzQXRab29tIiwibGF5ZXJEYXRhIiwiZ2V0U3ViTGF5ZXJSYWRpdXMiLCJkaW1lbnNpb25TdGF0ZSIsImRpbWVuc2lvbiIsImxheWVyUHJvcHMiLCJnZXRSYWRpdXNWYWx1ZSIsInNjYWxlRnVuYyIsImNsdXN0ZXJBZ2dyZWdhdGlvbiIsImtleSIsInVwZGF0ZVN0ZXBzIiwidHJpZ2dlcnMiLCJwb3NpdGlvbiIsInByb3AiLCJ1cGRhdGVUcmlnZ2VyIiwidXBkYXRlciIsImdldFJhZGl1c1ZhbHVlRG9tYWluIiwiZGltZW5zaW9uVXBkYXRlciIsInZhbHVlRG9tYWluIiwiX3NldERpbWVuc2lvblN0YXRlIiwiY2x1c3RlckxheWVyRGltZW5zaW9ucyIsImRlZmF1bHRDb2xvckRpbWVuc2lvbiIsImFjY2Vzc29yIiwibnVsbFZhbHVlIiwidmFsdWUiLCJkb21haW4iLCJyYW5nZSIsInNjYWxlVHlwZSIsImdldERpbWVuc2lvblNjYWxlIiwiZ2V0U3ViTGF5ZXJBY2Nlc3NvciIsImdldFBpY2tpbmdJbmZvIiwicmFkaXVzVmFsdWUiLCJkZWZhdWx0UHJvcHMiLCJjb2xvckRvbWFpbiIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwiY29sb3JTY2FsZVR5cGUiLCJTQ0FMRV9UWVBFUyIsInF1YW50aXplIiwicmFkaXVzU2NhbGVUeXBlIiwic3FydCIsInJhZGl1c1JhbmdlIiwidHlwZSIsIngiLCJnZXRDb2xvclZhbHVlIiwiQ2x1c3RlckxheWVyIiwiY3B1QWdncmVnYXRvciIsIkNQVUFnZ3JlZ2F0b3IiLCJkaW1lbnNpb25zIiwiYWdncmVnYXRvclN0YXRlIiwiYXR0cmlidXRlTWFuYWdlciIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGQiLCJwb3NpdGlvbnMiLCJzaXplIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsInVwZGF0ZVN0YXRlIiwiY29udGV4dCIsImF0dHJpYnV0ZXMiLCJnZXRBdHRyaWJ1dGVzIiwibnVtSW5zdGFuY2VzIiwiZ2V0TnVtSW5zdGFuY2VzIiwiaW5mbyIsImdldFVwZGF0ZVRyaWdnZXJzIiwiZ2V0UmFkaXVzIiwiZ2V0QWNjZXNzb3IiLCJnZXRGaWxsQ29sb3IiLCJpZCIsInJhZGl1c1NjYWxlIiwidmlzaWJsZSIsIm9wYWNpdHkiLCJwaWNrYWJsZSIsImF1dG9IaWdobGlnaHQiLCJoaWdobGlnaHRDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMiLCJhY2Nlc3NvcnMiLCJfZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMiLCJkaXN0YW5jZVNjYWxlIiwibWV0ZXJzUGVyUGl4ZWwiLCJTY2F0dGVycGxvdExheWVyIiwicGFyYW1ldGVycyIsImRlcHRoTWFzayIsIkFnZ3JlZ2F0aW9uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7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Ri9CO0FBR0x1RixRQUFBQSxXQUFXLEVBQUVXLGNBQWMsR0FBR1gsV0FIekI7QUFJTEMsUUFBQUEsT0FBTyxFQUFQQSxPQUpLO0FBS0xDLFFBQUFBLE9BQU8sRUFBUEEsT0FMSztBQU1MQyxRQUFBQSxRQUFRLEVBQVJBLFFBTks7QUFPTEMsUUFBQUEsYUFBYSxFQUFiQSxhQVBLO0FBUUxDLFFBQUFBLGNBQWMsRUFBZEEsY0FSSztBQVNMQyxRQUFBQSxjQUFjLEVBQWRBLGNBVEs7QUFVTE8sUUFBQUEsVUFBVSxFQUFFO0FBQ1ZDLFVBQUFBLFNBQVMsRUFBRTtBQUREO0FBVlAsU0FhRk4sU0FiRSxFQUFQO0FBZUQ7OztFQWhGdUNPLG9DOzs7QUFtRjFDdkMsWUFBWSxDQUFDd0MsU0FBYixHQUF5QixjQUF6QjtBQUNBeEMsWUFBWSxDQUFDYixZQUFiLEdBQTRCQSxZQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2NhdHRlcnBsb3RMYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcbmltcG9ydCB7X0FnZ3JlZ2F0aW9uTGF5ZXIgYXMgQWdncmVnYXRpb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzJztcblxuaW1wb3J0IGdlb1ZpZXdwb3J0IGZyb20gJ0BtYXBib3gvZ2VvLXZpZXdwb3J0JztcbmltcG9ydCBDUFVBZ2dyZWdhdG9yLCB7XG4gIEFnZ3JlZ2F0aW9uVHlwZSxcbiAgZGVmYXVsdENvbG9yRGltZW5zaW9uLFxuICBEaW1lbnNpb25UeXBlLFxuICBnZXREaW1lbnNpb25TY2FsZVxufSBmcm9tICcuLi9sYXllci11dGlscy9jcHUtYWdncmVnYXRvcic7XG5pbXBvcnQge2dldERpc3RhbmNlU2NhbGVzfSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7bWF4fSBmcm9tICdkMy1hcnJheSc7XG5cbmltcG9ydCB7U0NBTEVfVFlQRVMsIERFRkFVTFRfQ09MT1JfUkFOR0UsIExBWUVSX1ZJU19DT05GSUdTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgQ2x1c3RlckJ1aWxkZXIsIHtnZXRHZW9KU09OfSBmcm9tICcuLi9sYXllci11dGlscy9jbHVzdGVyLXV0aWxzJztcbmltcG9ydCB7UkdCQUNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QWdncmVnYXRpb25MYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9hZ2dyZWdhdGlvbi1sYXllcnMvYWdncmVnYXRpb24tbGF5ZXInO1xuXG5jb25zdCBkZWZhdWx0UmFkaXVzID0gTEFZRVJfVklTX0NPTkZJR1MuY2x1c3RlclJhZGl1cy5kZWZhdWx0VmFsdWU7XG5jb25zdCBkZWZhdWx0UmFkaXVzUmFuZ2UgPSBMQVlFUl9WSVNfQ09ORklHUy5jbHVzdGVyUmFkaXVzUmFuZ2UuZGVmYXVsdFZhbHVlO1xuXG5jb25zdCBkZWZhdWx0R2V0Q29sb3JWYWx1ZSA9IHBvaW50cyA9PiBwb2ludHMubGVuZ3RoO1xuY29uc3QgZGVmYXVsdEdldFJhZGl1c1ZhbHVlID0gY2VsbCA9PlxuICBjZWxsLmZpbHRlcmVkUG9pbnRzID8gY2VsbC5maWx0ZXJlZFBvaW50cy5sZW5ndGggOiBjZWxsLnBvaW50cy5sZW5ndGg7XG5cbmZ1bmN0aW9uIHByb2Nlc3NHZW9KU09OKHRoaXM6IENQVUFnZ3JlZ2F0b3IsIHN0ZXAsIHByb3BzLCBhZ2dyZWdhdGlvbiwge3ZpZXdwb3J0fSkge1xuICBjb25zdCB7ZGF0YSwgZ2V0UG9zaXRpb24sIGZpbHRlckRhdGF9ID0gcHJvcHM7XG4gIGNvbnN0IGdlb0pTT04gPSBnZXRHZW9KU09OKGRhdGEsIGdldFBvc2l0aW9uLCBmaWx0ZXJEYXRhKTtcbiAgY29uc3QgY2x1c3RlckJ1aWxkZXIgPSBuZXcgQ2x1c3RlckJ1aWxkZXIoKTtcblxuICB0aGlzLnNldFN0YXRlKHtnZW9KU09OLCBjbHVzdGVyQnVpbGRlcn0pO1xufVxuXG5mdW5jdGlvbiBnZXRDbHVzdGVycyh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgYWdncmVnYXRpb24sIHt2aWV3cG9ydH0pIHtcbiAgY29uc3Qge2dlb0pTT04sIGNsdXN0ZXJCdWlsZGVyfSA9IHRoaXMuc3RhdGU7XG4gIGNvbnN0IHtjbHVzdGVyUmFkaXVzLCB6b29tLCB3aWR0aCwgaGVpZ2h0fSA9IHByb3BzO1xuICBjb25zdCB7bG9uZ2l0dWRlLCBsYXRpdHVkZX0gPSB2aWV3cG9ydDtcblxuICAvLyB6b29tIG5lZWRzIHRvIGJlIGFuIGludGVnZXIgZm9yIHRoZSBkaWZmZXJlbnQgbWFwIHV0aWxzLiBBbHNvIGhlbHBzIHdpdGggY2FjaGUga2V5LlxuICBjb25zdCBiYm94ID0gZ2VvVmlld3BvcnQuYm91bmRzKFtsb25naXR1ZGUsIGxhdGl0dWRlXSwgem9vbSwgW3dpZHRoLCBoZWlnaHRdKTtcbiAgY29uc3QgY2x1c3RlcnMgPSBjbHVzdGVyQnVpbGRlci5jbHVzdGVyc0F0Wm9vbSh7YmJveCwgY2x1c3RlclJhZGl1cywgZ2VvSlNPTiwgem9vbX0pO1xuXG4gIHRoaXMuc2V0U3RhdGUoe1xuICAgIGxheWVyRGF0YToge2RhdGE6IGNsdXN0ZXJzfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0U3ViTGF5ZXJSYWRpdXMoZGltZW5zaW9uU3RhdGUsIGRpbWVuc2lvbiwgbGF5ZXJQcm9wcykge1xuICByZXR1cm4gY2VsbCA9PiB7XG4gICAgY29uc3Qge2dldFJhZGl1c1ZhbHVlfSA9IGxheWVyUHJvcHM7XG4gICAgY29uc3Qge3NjYWxlRnVuY30gPSBkaW1lbnNpb25TdGF0ZTtcbiAgICByZXR1cm4gc2NhbGVGdW5jKGdldFJhZGl1c1ZhbHVlKGNlbGwpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJBZ2dyZWdhdGlvbjogQWdncmVnYXRpb25UeXBlID0ge1xuICBrZXk6ICdwb3NpdGlvbicsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnZ2VvanNvbicsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdnZXRQb3NpdGlvbicsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFBvc2l0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBmaWx0ZXJEYXRhOiB7XG4gICAgICAgICAgcHJvcDogJ2ZpbHRlckRhdGEnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdmaWx0ZXJEYXRhJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogcHJvY2Vzc0dlb0pTT05cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2NsdXN0ZXJpbmcnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgY2x1c3RlclJhZGl1czoge1xuICAgICAgICAgIHByb3A6ICdjbHVzdGVyUmFkaXVzJ1xuICAgICAgICB9LFxuICAgICAgICB6b29tOiB7XG4gICAgICAgICAgcHJvcDogJ3pvb20nXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiB7XG4gICAgICAgICAgcHJvcDogJ3dpZHRoJ1xuICAgICAgICB9LFxuICAgICAgICBoZWlnaHQ6IHtcbiAgICAgICAgICBwcm9wOiAnaGVpZ2h0J1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0Q2x1c3RlcnNcbiAgICB9XG4gIF1cbn07XG5cbmZ1bmN0aW9uIGdldFJhZGl1c1ZhbHVlRG9tYWluKHRoaXM6IENQVUFnZ3JlZ2F0b3IsIHN0ZXAsIHByb3BzLCBkaW1lbnNpb25VcGRhdGVyKSB7XG4gIGNvbnN0IHtrZXl9ID0gZGltZW5zaW9uVXBkYXRlcjtcbiAgY29uc3Qge2dldFJhZGl1c1ZhbHVlfSA9IHByb3BzO1xuICBjb25zdCB7bGF5ZXJEYXRhfSA9IHRoaXMuc3RhdGU7XG5cbiAgY29uc3QgdmFsdWVEb21haW4gPSBbMCwgbWF4KGxheWVyRGF0YS5kYXRhLCBnZXRSYWRpdXNWYWx1ZSldO1xuICB0aGlzLl9zZXREaW1lbnNpb25TdGF0ZShrZXksIHt2YWx1ZURvbWFpbn0pO1xufVxuXG5jb25zdCBjbHVzdGVyTGF5ZXJEaW1lbnNpb25zOiBbRGltZW5zaW9uVHlwZTxSR0JBQ29sb3I+LCBEaW1lbnNpb25UeXBlPG51bWJlcj5dID0gW1xuICBkZWZhdWx0Q29sb3JEaW1lbnNpb24sXG4gIHtcbiAgICBrZXk6ICdyYWRpdXMnLFxuICAgIGFjY2Vzc29yOiAnZ2V0UmFkaXVzJyxcbiAgICBudWxsVmFsdWU6IDAsXG4gICAgdXBkYXRlU3RlcHM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZ2V0RG9tYWluJyxcbiAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgcHJvcDogJ2dldFJhZGl1c1ZhbHVlJyxcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRSYWRpdXNWYWx1ZSdcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZXI6IGdldFJhZGl1c1ZhbHVlRG9tYWluXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdnZXRTY2FsZUZ1bmMnLFxuICAgICAgICB0cmlnZ2Vyczoge1xuICAgICAgICAgIGRvbWFpbjoge3Byb3A6ICdyYWRpdXNEb21haW4nfSxcbiAgICAgICAgICByYW5nZToge3Byb3A6ICdyYWRpdXNSYW5nZSd9LFxuICAgICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdyYWRpdXNTY2FsZVR5cGUnfVxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVyOiBnZXREaW1lbnNpb25TY2FsZVxuICAgICAgfVxuICAgIF0sXG4gICAgZ2V0U3ViTGF5ZXJBY2Nlc3NvcjogZ2V0U3ViTGF5ZXJSYWRpdXMsXG4gICAgZ2V0UGlja2luZ0luZm86IChkaW1lbnNpb25TdGF0ZSwgY2VsbCwgbGF5ZXJQcm9wcykgPT4ge1xuICAgICAgY29uc3QgcmFkaXVzVmFsdWUgPSBsYXllclByb3BzLmdldFJhZGl1c1ZhbHVlKGNlbGwpO1xuICAgICAgcmV0dXJuIHtyYWRpdXNWYWx1ZX07XG4gICAgfVxuICB9XG5dO1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIGNsdXN0ZXJSYWRpdXM6IGRlZmF1bHRSYWRpdXMsXG4gIGNvbG9yRG9tYWluOiBudWxsLFxuICBjb2xvclJhbmdlOiBERUZBVUxUX0NPTE9SX1JBTkdFLFxuICBjb2xvclNjYWxlVHlwZTogU0NBTEVfVFlQRVMucXVhbnRpemUsXG4gIHJhZGl1c1NjYWxlVHlwZTogU0NBTEVfVFlQRVMuc3FydCxcbiAgcmFkaXVzUmFuZ2U6IGRlZmF1bHRSYWRpdXNSYW5nZSxcbiAgZ2V0UG9zaXRpb246IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogeCA9PiB4LnBvc2l0aW9ufSxcbiAgZ2V0Q29sb3JWYWx1ZToge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBkZWZhdWx0R2V0Q29sb3JWYWx1ZX0sXG4gIGdldFJhZGl1c1ZhbHVlOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IGRlZmF1bHRHZXRSYWRpdXNWYWx1ZX1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENsdXN0ZXJMYXllciBleHRlbmRzIEFnZ3JlZ2F0aW9uTGF5ZXI8XG4gIGFueSxcbiAgQWdncmVnYXRpb25MYXllclByb3BzPGFueT4gJiB7cmFkaXVzU2NhbGU6IG51bWJlcn1cbj4ge1xuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3QgY3B1QWdncmVnYXRvciA9IG5ldyBDUFVBZ2dyZWdhdG9yKHtcbiAgICAgIGFnZ3JlZ2F0aW9uOiBjbHVzdGVyQWdncmVnYXRpb24sXG4gICAgICBkaW1lbnNpb25zOiBjbHVzdGVyTGF5ZXJEaW1lbnNpb25zXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY3B1QWdncmVnYXRvcixcbiAgICAgIGFnZ3JlZ2F0b3JTdGF0ZTogY3B1QWdncmVnYXRvci5zdGF0ZVxuICAgIH07XG4gICAgY29uc3QgYXR0cmlidXRlTWFuYWdlciA9IHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpO1xuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkKHtcbiAgICAgIHBvc2l0aW9uczoge3NpemU6IDMsIGFjY2Vzc29yOiAnZ2V0UG9zaXRpb24nfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe29sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3N9KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAvLyBtYWtlIGEgY29weSBvZiB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgY3B1QWdncmVnYXRvciBmb3IgdGVzdGluZ1xuICAgICAgYWdncmVnYXRvclN0YXRlOiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IudXBkYXRlU3RhdGUoXG4gICAgICAgIHtvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzfSxcbiAgICAgICAge1xuICAgICAgICAgIHZpZXdwb3J0OiB0aGlzLmNvbnRleHQudmlld3BvcnQsXG4gICAgICAgICAgYXR0cmlidXRlczogdGhpcy5nZXRBdHRyaWJ1dGVzKCksXG4gICAgICAgICAgbnVtSW5zdGFuY2VzOiB0aGlzLmdldE51bUluc3RhbmNlcyhwcm9wcylcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UGlja2luZ0luZm8oe2luZm99KSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuY3B1QWdncmVnYXRvci5nZXRQaWNraW5nSW5mbyh7aW5mb30sIHRoaXMucHJvcHMpO1xuICB9XG5cbiAgX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuY3B1QWdncmVnYXRvci5nZXRVcGRhdGVUcmlnZ2Vycyh0aGlzLnByb3BzKTtcbiAgfVxuXG4gIF9nZXRTdWJMYXllckFjY2Vzc29ycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0UmFkaXVzOiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0QWNjZXNzb3IoJ3JhZGl1cycsIHRoaXMucHJvcHMpLFxuICAgICAgZ2V0RmlsbENvbG9yOiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0QWNjZXNzb3IoJ2ZpbGxDb2xvcicsIHRoaXMucHJvcHMpXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlckxheWVycygpIHtcbiAgICAvLyBmb3Igc3ViY2xhc3NpbmcsIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJldHVyblxuICAgIC8vIGN1c3RvbWl6ZWQgc3ViIGxheWVyIHByb3BzXG4gICAgY29uc3Qge2lkLCByYWRpdXNTY2FsZX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtjcHVBZ2dyZWdhdG9yfSA9IHRoaXMuc3RhdGU7XG5cbiAgICAvLyBiYXNlIGxheWVyIHByb3BzXG4gICAgY29uc3Qge3Zpc2libGUsIG9wYWNpdHksIHBpY2thYmxlLCBhdXRvSGlnaGxpZ2h0LCBoaWdobGlnaHRDb2xvcn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0gdGhpcy5fZ2V0U3VibGF5ZXJVcGRhdGVUcmlnZ2VycygpO1xuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuX2dldFN1YkxheWVyQWNjZXNzb3JzKCk7XG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgY29uc3QgZGlzdGFuY2VTY2FsZSA9IGdldERpc3RhbmNlU2NhbGVzKHRoaXMuY29udGV4dC52aWV3cG9ydCk7XG4gICAgY29uc3QgbWV0ZXJzUGVyUGl4ZWwgPSBkaXN0YW5jZVNjYWxlLm1ldGVyc1BlclBpeGVsWzBdO1xuXG4gICAgLy8gcmV0dXJuIHByb3BzIHRvIHRoZSBzdWJsYXllciBjb25zdHJ1Y3RvclxuICAgIHJldHVybiBuZXcgU2NhdHRlcnBsb3RMYXllcih7XG4gICAgICBpZDogYCR7aWR9LWNsdXN0ZXJgLFxuICAgICAgZGF0YTogY3B1QWdncmVnYXRvci5zdGF0ZS5sYXllckRhdGEuZGF0YSxcbiAgICAgIHJhZGl1c1NjYWxlOiBtZXRlcnNQZXJQaXhlbCAqIHJhZGl1c1NjYWxlLFxuICAgICAgdmlzaWJsZSxcbiAgICAgIG9wYWNpdHksXG4gICAgICBwaWNrYWJsZSxcbiAgICAgIGF1dG9IaWdobGlnaHQsXG4gICAgICBoaWdobGlnaHRDb2xvcixcbiAgICAgIHVwZGF0ZVRyaWdnZXJzLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBkZXB0aE1hc2s6IGZhbHNlXG4gICAgICB9LFxuICAgICAgLi4uYWNjZXNzb3JzXG4gICAgfSk7XG4gIH1cbn1cblxuQ2x1c3RlckxheWVyLmxheWVyTmFtZSA9ICdDbHVzdGVyTGF5ZXInO1xuQ2x1c3RlckxheWVyLmRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wcztcbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { ColumnLayer, ColumnLayerProps } from '@deck.gl/layers/typed';
2
- declare type EnhancedColumnLayerProps = ColumnLayerProps<any> & {
3
- strokeOpacity: any;
4
- };
5
- declare class EnhancedColumnLayer extends ColumnLayer<any, EnhancedColumnLayerProps> {
6
- getShaders(): any;
7
- initializeState(): void;
8
- draw({ uniforms }: {
9
- uniforms: any;
10
- }): void;
11
- }
12
- export default EnhancedColumnLayer;
@@ -1,156 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _core = require("@deck.gl/core");
25
-
26
- var _typed = require("@deck.gl/layers/typed");
27
-
28
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
29
-
30
- var _ = require("../");
31
-
32
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
33
-
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
37
-
38
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
-
40
- function addInstanceCoverage(vs) {
41
- var addDecl = (0, _.editShader)(vs, 'hexagon cell vs add instance 1', 'in vec3 instancePickingColors;', "in vec3 instancePickingColors;\n in float instanceCoverage;");
42
- return (0, _.editShader)(addDecl, 'hexagon cell vs add instance 2', 'float dotRadius = radius * coverage * shouldRender;', 'float dotRadius = radius * coverage * instanceCoverage * shouldRender;');
43
- }
44
-
45
- // TODO: export all deck.gl layers from kepler.gl
46
- var EnhancedColumnLayer = /*#__PURE__*/function (_ColumnLayer) {
47
- (0, _inherits2["default"])(EnhancedColumnLayer, _ColumnLayer);
48
-
49
- var _super = _createSuper(EnhancedColumnLayer);
50
-
51
- function EnhancedColumnLayer() {
52
- (0, _classCallCheck2["default"])(this, EnhancedColumnLayer);
53
- return _super.apply(this, arguments);
54
- }
55
-
56
- (0, _createClass2["default"])(EnhancedColumnLayer, [{
57
- key: "getShaders",
58
- value: function getShaders() {
59
- var shaders = (0, _get2["default"])((0, _getPrototypeOf2["default"])(EnhancedColumnLayer.prototype), "getShaders", this).call(this);
60
- return _objectSpread(_objectSpread({}, shaders), {}, {
61
- vs: addInstanceCoverage(shaders.vs)
62
- });
63
- }
64
- }, {
65
- key: "initializeState",
66
- value: function initializeState() {
67
- var _this$getAttributeMan;
68
-
69
- (0, _get2["default"])((0, _getPrototypeOf2["default"])(EnhancedColumnLayer.prototype), "initializeState", this).call(this);
70
- (_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 ? void 0 : _this$getAttributeMan.addInstanced({
71
- instanceCoverage: {
72
- size: 1,
73
- accessor: 'getCoverage'
74
- }
75
- });
76
- }
77
- }, {
78
- key: "draw",
79
- value: function draw(_ref) {
80
- var uniforms = _ref.uniforms;
81
- var _this$props = this.props,
82
- lineWidthUnits = _this$props.lineWidthUnits,
83
- lineWidthScale = _this$props.lineWidthScale,
84
- lineWidthMinPixels = _this$props.lineWidthMinPixels,
85
- lineWidthMaxPixels = _this$props.lineWidthMaxPixels,
86
- radiusUnits = _this$props.radiusUnits,
87
- elevationScale = _this$props.elevationScale,
88
- extruded = _this$props.extruded,
89
- filled = _this$props.filled,
90
- stroked = _this$props.stroked,
91
- strokeOpacity = _this$props.strokeOpacity,
92
- wireframe = _this$props.wireframe,
93
- offset = _this$props.offset,
94
- coverage = _this$props.coverage,
95
- radius = _this$props.radius,
96
- angle = _this$props.angle;
97
- var _this$state = this.state,
98
- model = _this$state.model,
99
- fillVertexCount = _this$state.fillVertexCount,
100
- wireframeVertexCount = _this$state.wireframeVertexCount,
101
- edgeDistance = _this$state.edgeDistance;
102
- model.setUniforms(uniforms).setUniforms({
103
- radius: radius,
104
- angle: angle / 180 * Math.PI,
105
- offset: offset,
106
- extruded: extruded,
107
- stroked: stroked,
108
- coverage: coverage,
109
- elevationScale: elevationScale,
110
- edgeDistance: edgeDistance,
111
- radiusUnits: _core.UNIT[radiusUnits],
112
- widthUnits: _core.UNIT[lineWidthUnits],
113
- widthScale: lineWidthScale,
114
- widthMinPixels: lineWidthMinPixels,
115
- widthMaxPixels: lineWidthMaxPixels
116
- }); // When drawing 3d: draw wireframe first so it doesn't get occluded by depth test
117
-
118
- if (extruded && wireframe) {
119
- model.setProps({
120
- isIndexed: true
121
- });
122
- model.setVertexCount(wireframeVertexCount).setDrawMode(_constants["default"].LINES).setUniforms({
123
- isStroke: true
124
- }).draw();
125
- }
126
-
127
- if (filled) {
128
- model.setProps({
129
- isIndexed: false
130
- });
131
- model.setVertexCount(fillVertexCount).setDrawMode(_constants["default"].TRIANGLE_STRIP).setUniforms({
132
- isStroke: false
133
- }).draw();
134
- } // When drawing 2d: draw fill before stroke so that the outline is always on top
135
-
136
-
137
- if (!extruded && stroked) {
138
- model.setProps({
139
- isIndexed: false
140
- }); // The width of the stroke is achieved by flattening the side of the cylinder.
141
- // Skip the last 1/3 of the vertices which is the top.
142
-
143
- model.setVertexCount(fillVertexCount * 2 / 3).setDrawMode(_constants["default"].TRIANGLE_STRIP).setUniforms({
144
- isStroke: true,
145
- opacity: strokeOpacity
146
- }).draw();
147
- }
148
- }
149
- }]);
150
- return EnhancedColumnLayer;
151
- }(_typed.ColumnLayer);
152
-
153
- EnhancedColumnLayer.layerName = 'EnhancedColumnLayer';
154
- var _default = EnhancedColumnLayer;
155
- exports["default"] = _default;
156
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2x1bW4tbGF5ZXIvZW5oYW5jZWQtY29sdW1uLWxheWVyLnRzIl0sIm5hbWVzIjpbImFkZEluc3RhbmNlQ292ZXJhZ2UiLCJ2cyIsImFkZERlY2wiLCJFbmhhbmNlZENvbHVtbkxheWVyIiwic2hhZGVycyIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGRJbnN0YW5jZWQiLCJpbnN0YW5jZUNvdmVyYWdlIiwic2l6ZSIsImFjY2Vzc29yIiwidW5pZm9ybXMiLCJwcm9wcyIsImxpbmVXaWR0aFVuaXRzIiwibGluZVdpZHRoU2NhbGUiLCJsaW5lV2lkdGhNaW5QaXhlbHMiLCJsaW5lV2lkdGhNYXhQaXhlbHMiLCJyYWRpdXNVbml0cyIsImVsZXZhdGlvblNjYWxlIiwiZXh0cnVkZWQiLCJmaWxsZWQiLCJzdHJva2VkIiwic3Ryb2tlT3BhY2l0eSIsIndpcmVmcmFtZSIsIm9mZnNldCIsImNvdmVyYWdlIiwicmFkaXVzIiwiYW5nbGUiLCJzdGF0ZSIsIm1vZGVsIiwiZmlsbFZlcnRleENvdW50Iiwid2lyZWZyYW1lVmVydGV4Q291bnQiLCJlZGdlRGlzdGFuY2UiLCJzZXRVbmlmb3JtcyIsIk1hdGgiLCJQSSIsIlVOSVQiLCJ3aWR0aFVuaXRzIiwid2lkdGhTY2FsZSIsIndpZHRoTWluUGl4ZWxzIiwid2lkdGhNYXhQaXhlbHMiLCJzZXRQcm9wcyIsImlzSW5kZXhlZCIsInNldFZlcnRleENvdW50Iiwic2V0RHJhd01vZGUiLCJHTCIsIkxJTkVTIiwiaXNTdHJva2UiLCJkcmF3IiwiVFJJQU5HTEVfU1RSSVAiLCJvcGFjaXR5IiwiQ29sdW1uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7QUFFQSxTQUFTQSxtQkFBVCxDQUE2QkMsRUFBN0IsRUFBaUM7QUFDL0IsTUFBTUMsT0FBTyxHQUFHLGtCQUNkRCxFQURjLEVBRWQsZ0NBRmMs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VUFBSTVCLE1BQUosRUFBWTtBQUNWUyxRQUFBQSxLQUFLLENBQUNZLFFBQU4sQ0FBZTtBQUFDQyxVQUFBQSxTQUFTLEVBQUU7QUFBWixTQUFmO0FBQ0FiLFFBQUFBLEtBQUssQ0FDRmMsY0FESCxDQUNrQmIsZUFEbEIsRUFFR2MsV0FGSCxDQUVlQyxzQkFBR0ksY0FGbEIsRUFHR2hCLFdBSEgsQ0FHZTtBQUFDYyxVQUFBQSxRQUFRLEVBQUU7QUFBWCxTQUhmLEVBSUdDLElBSkg7QUFLRCxPQXBEYyxDQXFEZjs7O0FBQ0EsVUFBSSxDQUFDN0IsUUFBRCxJQUFhRSxPQUFqQixFQUEwQjtBQUN4QlEsUUFBQUEsS0FBSyxDQUFDWSxRQUFOLENBQWU7QUFBQ0MsVUFBQUEsU0FBUyxFQUFFO0FBQVosU0FBZixFQUR3QixDQUV4QjtBQUNBOztBQUNBYixRQUFBQSxLQUFLLENBQ0ZjLGNBREgsQ0FDbUJiLGVBQWUsR0FBRyxDQUFuQixHQUF3QixDQUQxQyxFQUVHYyxXQUZILENBRWVDLHNCQUFHSSxjQUZsQixFQUdHaEIsV0FISCxDQUdlO0FBQUNjLFVBQUFBLFFBQVEsRUFBRSxJQUFYO0FBQWlCRyxVQUFBQSxPQUFPLEVBQUU1QjtBQUExQixTQUhmLEVBSUcwQixJQUpIO0FBS0Q7QUFDRjs7O0VBbEYrQkcsa0I7O0FBcUZsQy9DLG1CQUFtQixDQUFDZ0QsU0FBcEIsR0FBZ0MscUJBQWhDO2VBRWVoRCxtQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7VU5JVH0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQge0NvbHVtbkxheWVyLCBDb2x1bW5MYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9sYXllcnMvdHlwZWQnO1xuaW1wb3J0IEdMIGZyb20gJ0BsdW1hLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7ZWRpdFNoYWRlcn0gZnJvbSAnLi4vJztcblxuZnVuY3Rpb24gYWRkSW5zdGFuY2VDb3ZlcmFnZSh2cykge1xuICBjb25zdCBhZGREZWNsID0gZWRpdFNoYWRlcihcbiAgICB2cyxcbiAgICAnaGV4YWdvbiBjZWxsIHZzIGFkZCBpbnN0YW5jZSAxJyxcbiAgICAnaW4gdmVjMyBpbnN0YW5jZVBpY2tpbmdDb2xvcnM7JyxcbiAgICBgaW4gdmVjMyBpbnN0YW5jZVBpY2tpbmdDb2xvcnM7XG4gICAgIGluIGZsb2F0IGluc3RhbmNlQ292ZXJhZ2U7YFxuICApO1xuXG4gIHJldHVybiBlZGl0U2hhZGVyKFxuICAgIGFkZERlY2wsXG4gICAgJ2hleGFnb24gY2VsbCB2cyBhZGQgaW5zdGFuY2UgMicsXG4gICAgJ2Zsb2F0IGRvdFJhZGl1cyA9IHJhZGl1cyAqIGNvdmVyYWdlICogc2hvdWxkUmVuZGVyOycsXG4gICAgJ2Zsb2F0IGRvdFJhZGl1cyA9IHJhZGl1cyAqIGNvdmVyYWdlICogaW5zdGFuY2VDb3ZlcmFnZSAqIHNob3VsZFJlbmRlcjsnXG4gICk7XG59XG5cbnR5cGUgRW5oYW5jZWRDb2x1bW5MYXllclByb3BzID0gQ29sdW1uTGF5ZXJQcm9wczxhbnk+ICYge1xuICBzdHJva2VPcGFjaXR5OiBhbnk7XG59O1xuXG4vLyBUT0RPOiBleHBvcnQgYWxsIGRlY2suZ2wgbGF5ZXJzIGZyb20ga2VwbGVyLmdsXG5jbGFzcyBFbmhhbmNlZENvbHVtbkxheWVyIGV4dGVuZHMgQ29sdW1uTGF5ZXI8YW55LCBFbmhhbmNlZENvbHVtbkxheWVyUHJvcHM+IHtcbiAgZ2V0U2hhZGVycygpIHtcbiAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNoYWRlcnMsXG4gICAgICB2czogYWRkSW5zdGFuY2VDb3ZlcmFnZShzaGFkZXJzLnZzKVxuICAgIH07XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZVN0YXRlKCk7XG5cbiAgICB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKT8uYWRkSW5zdGFuY2VkKHtcbiAgICAgIGluc3RhbmNlQ292ZXJhZ2U6IHtzaXplOiAxLCBhY2Nlc3NvcjogJ2dldENvdmVyYWdlJ31cbiAgICB9KTtcbiAgfVxuXG4gIGRyYXcoe3VuaWZvcm1zfSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGxpbmVXaWR0aFVuaXRzLFxuICAgICAgbGluZVdpZHRoU2NhbGUsXG4gICAgICBsaW5lV2lkdGhNaW5QaXhlbHMsXG4gICAgICBsaW5lV2lkdGhNYXhQaXhlbHMsXG4gICAgICByYWRpdXNVbml0cyxcbiAgICAgIGVsZXZhdGlvblNjYWxlLFxuICAgICAgZXh0cnVkZWQsXG4gICAgICBmaWxsZWQsXG4gICAgICBzdHJva2VkLFxuICAgICAgc3Ryb2tlT3BhY2l0eSxcbiAgICAgIHdpcmVmcmFtZSxcbiAgICAgIG9mZnNldCxcbiAgICAgIGNvdmVyYWdlLFxuICAgICAgcmFkaXVzLFxuICAgICAgYW5nbGVcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7bW9kZWwsIGZpbGxWZXJ0ZXhDb3VudCwgd2lyZWZyYW1lVmVydGV4Q291bnQsIGVkZ2VEaXN0YW5jZX0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbW9kZWwuc2V0VW5pZm9ybXModW5pZm9ybXMpLnNldFVuaWZvcm1zKHtcbiAgICAgIHJhZGl1cyxcbiAgICAgIGFuZ2xlOiAoYW5nbGUgLyAxODApICogTWF0aC5QSSxcbiAgICAgIG9mZnNldCxcbiAgICAgIGV4dHJ1ZGVkLFxuICAgICAgc3Ryb2tlZCxcbiAgICAgIGNvdmVyYWdlLFxuICAgICAgZWxldmF0aW9uU2NhbGUsXG4gICAgICBlZGdlRGlzdGFuY2UsXG4gICAgICByYWRpdXNVbml0czogVU5JVFtyYWRpdXNVbml0c10sXG4gICAgICB3aWR0aFVuaXRzOiBVTklUW2xpbmVXaWR0aFVuaXRzXSxcbiAgICAgIHdpZHRoU2NhbGU6IGxpbmVXaWR0aFNjYWxlLFxuICAgICAgd2lkdGhNaW5QaXhlbHM6IGxpbmVXaWR0aE1pblBpeGVscyxcbiAgICAgIHdpZHRoTWF4UGl4ZWxzOiBsaW5lV2lkdGhNYXhQaXhlbHNcbiAgICB9KTtcblxuICAgIC8vIFdoZW4gZHJhd2luZyAzZDogZHJhdyB3aXJlZnJhbWUgZmlyc3Qgc28gaXQgZG9lc24ndCBnZXQgb2NjbHVkZWQgYnkgZGVwdGggdGVzdFxuICAgIGlmIChleHRydWRlZCAmJiB3aXJlZnJhbWUpIHtcbiAgICAgIG1vZGVsLnNldFByb3BzKHtpc0luZGV4ZWQ6IHRydWV9KTtcbiAgICAgIG1vZGVsXG4gICAgICAgIC5zZXRWZXJ0ZXhDb3VudCh3aXJlZnJhbWVWZXJ0ZXhDb3VudClcbiAgICAgICAgLnNldERyYXdNb2RlKEdMLkxJTkVTKVxuICAgICAgICAuc2V0VW5pZm9ybXMoe2lzU3Ryb2tlOiB0cnVlfSlcbiAgICAgICAgLmRyYXcoKTtcbiAgICB9XG4gICAgaWYgKGZpbGxlZCkge1xuICAgICAgbW9kZWwuc2V0UHJvcHMoe2lzSW5kZXhlZDogZmFsc2V9KTtcbiAgICAgIG1vZGVsXG4gICAgICAgIC5zZXRWZXJ0ZXhDb3VudChmaWxsVmVydGV4Q291bnQpXG4gICAgICAgIC5zZXREcmF3TW9kZShHTC5UUklBTkdMRV9TVFJJUClcbiAgICAgICAgLnNldFVuaWZvcm1zKHtpc1N0cm9rZTogZmFsc2V9KVxuICAgICAgICAuZHJhdygpO1xuICAgIH1cbiAgICAvLyBXaGVuIGRyYXdpbmcgMmQ6IGRyYXcgZmlsbCBiZWZvcmUgc3Ryb2tlIHNvIHRoYXQgdGhlIG91dGxpbmUgaXMgYWx3YXlzIG9uIHRvcFxuICAgIGlmICghZXh0cnVkZWQgJiYgc3Ryb2tlZCkge1xuICAgICAgbW9kZWwuc2V0UHJvcHMoe2lzSW5kZXhlZDogZmFsc2V9KTtcbiAgICAgIC8vIFRoZSB3aWR0aCBvZiB0aGUgc3Ryb2tlIGlzIGFjaGlldmVkIGJ5IGZsYXR0ZW5pbmcgdGhlIHNpZGUgb2YgdGhlIGN5bGluZGVyLlxuICAgICAgLy8gU2tpcCB0aGUgbGFzdCAxLzMgb2YgdGhlIHZlcnRpY2VzIHdoaWNoIGlzIHRoZSB0b3AuXG4gICAgICBtb2RlbFxuICAgICAgICAuc2V0VmVydGV4Q291bnQoKGZpbGxWZXJ0ZXhDb3VudCAqIDIpIC8gMylcbiAgICAgICAgLnNldERyYXdNb2RlKEdMLlRSSUFOR0xFX1NUUklQKVxuICAgICAgICAuc2V0VW5pZm9ybXMoe2lzU3Ryb2tlOiB0cnVlLCBvcGFjaXR5OiBzdHJva2VPcGFjaXR5fSlcbiAgICAgICAgLmRyYXcoKTtcbiAgICB9XG4gIH1cbn1cblxuRW5oYW5jZWRDb2x1bW5MYXllci5sYXllck5hbWUgPSAnRW5oYW5jZWRDb2x1bW5MYXllcic7XG5cbmV4cG9ydCBkZWZhdWx0IEVuaGFuY2VkQ29sdW1uTGF5ZXI7XG4iXX0=
@@ -1,46 +0,0 @@
1
- /// <reference types="deck.gl" />
2
- import { Layer, LayerExtension } from '@deck.gl/core';
3
- import { LayerContext } from '@deck.gl/core/lib/layer';
4
- export declare type FilterArrowExtensionProps = {
5
- getFiltered?: () => number;
6
- };
7
- /**
8
- * FilterArrowExtension - a deck.gl extension to filter arrow layer
9
- *
10
- * A simple extension to filter arrow layer based on the result of CPU filteredIndex,
11
- * so we can avoid filtering on the raw Arrow table and recreating geometry attributes.
12
- * Specifically, an attribute `filtered` is added to the layer to indicate whether the feature has been Filtered
13
- * the shader module is modified to discard the feature if filtered value is 0
14
- * the accessor getFiltered is used to get the value of `filtered` based on the value `filteredIndex` in Arrowlayer
15
- */
16
- export default class FilterArrowExtension extends LayerExtension {
17
- static defaultProps: {
18
- getFiltered: {
19
- type: string;
20
- value: number;
21
- };
22
- };
23
- static extensionName: string;
24
- getShaders(extension: any): {
25
- modules: {
26
- name: string;
27
- dependencies: {
28
- name: string;
29
- dependencies: any[];
30
- vs: string;
31
- getUniforms: (opts?: {} | undefined) => any;
32
- }[];
33
- vs: string;
34
- fs: string;
35
- inject: {
36
- 'vs:#decl': string;
37
- 'vs:#main-end': string;
38
- 'fs:#decl': string;
39
- 'fs:DECKGL_FILTER_COLOR': string;
40
- };
41
- getUniforms: () => void;
42
- }[];
43
- defines: {};
44
- };
45
- initializeState(this: Layer<FilterArrowExtensionProps>, context: LayerContext, extension: this): void;
46
- }