@kepler.gl/deckgl-layers 3.3.0-alpha.1 → 3.3.0-alpha.11

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 (198) hide show
  1. package/dist/cjs/3d-building-layer/3d-building-layer.js +66 -0
  2. package/dist/cjs/3d-building-layer/3d-building-utils.js +166 -0
  3. package/dist/cjs/3d-building-layer/types.js +6 -0
  4. package/dist/cjs/cluster-layer/cluster-layer.js +292 -0
  5. package/dist/cjs/column-layer/enhanced-column-layer.js +160 -0
  6. package/dist/{deckgl-extensions → cjs/deckgl-extensions}/filter-arrow-layer.js +1 -1
  7. package/dist/cjs/deckgl-extensions/filter-shader-module.js +26 -0
  8. package/dist/cjs/globe/atmosphere-layer.js +341 -0
  9. package/dist/cjs/globe/enhanced-multi-icon-layer.js +63 -0
  10. package/dist/cjs/globe/globe-depth-disk-layer.js +145 -0
  11. package/dist/cjs/globe/globe-layers.js +574 -0
  12. package/dist/cjs/globe/globe-stars-layer.js +99 -0
  13. package/dist/cjs/globe/globe-stars-layer.spec.js +42 -0
  14. package/dist/cjs/globe/globe-view.js +404 -0
  15. package/dist/cjs/globe/index.js +140 -0
  16. package/dist/cjs/globe/mvt-label-layer.js +190 -0
  17. package/dist/cjs/grid-layer/enhanced-cpu-grid-layer.js +116 -0
  18. package/dist/cjs/hexagon-layer/enhanced-hexagon-layer.js +134 -0
  19. package/dist/cjs/index.js +163 -0
  20. package/dist/cjs/layer-utils/aggregation-utils.js +181 -0
  21. package/dist/cjs/layer-utils/cluster-utils.js +95 -0
  22. package/dist/cjs/layer-utils/cpu-aggregator.js +798 -0
  23. package/dist/cjs/layer-utils/globe-cell-utils.js +203 -0
  24. package/dist/cjs/layer-utils/globe-cell-utils.spec.js +118 -0
  25. package/dist/cjs/layer-utils/shader-utils.js +38 -0
  26. package/dist/cjs/line-layer/line-layer.js +95 -0
  27. package/dist/cjs/raster/images.js +271 -0
  28. package/dist/cjs/raster/pipeline-validation-patch.js +101 -0
  29. package/dist/cjs/raster/raster-layer/raster-layer-shaders.js +163 -0
  30. package/dist/cjs/raster/raster-layer/raster-layer-webgl1.fs.js +10 -0
  31. package/dist/cjs/raster/raster-layer/raster-layer-webgl1.vs.js +10 -0
  32. package/dist/cjs/raster/raster-layer/raster-layer-webgl2.fs.js +10 -0
  33. package/dist/cjs/raster/raster-layer/raster-layer-webgl2.vs.js +10 -0
  34. package/dist/cjs/raster/raster-layer/raster-layer.js +287 -0
  35. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +38 -0
  36. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +10 -0
  37. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +10 -0
  38. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +10 -0
  39. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +10 -0
  40. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer.js +321 -0
  41. package/dist/cjs/raster/raster-processing-uniforms.js +124 -0
  42. package/dist/cjs/raster/types.js +6 -0
  43. package/dist/cjs/raster/util.js +139 -0
  44. package/dist/cjs/raster/webgl/color/colormap.js +45 -0
  45. package/dist/cjs/raster/webgl/color/filter.js +58 -0
  46. package/dist/cjs/raster/webgl/color/gamma-contrast.js +68 -0
  47. package/dist/cjs/raster/webgl/color/linear-rescale.js +35 -0
  48. package/dist/cjs/raster/webgl/color/saturation.js +42 -0
  49. package/dist/cjs/raster/webgl/color/sigmoidal-contrast.js +68 -0
  50. package/dist/{raster → cjs/raster}/webgl/index.js +1 -1
  51. package/dist/cjs/raster/webgl/pansharpen/pansharpen-brovey.js +46 -0
  52. package/dist/cjs/raster/webgl/spectral-indices/evi.js +26 -0
  53. package/dist/cjs/raster/webgl/spectral-indices/msavi.js +25 -0
  54. package/dist/cjs/raster/webgl/spectral-indices/normalized-difference.js +19 -0
  55. package/dist/cjs/raster/webgl/spectral-indices/savi.js +21 -0
  56. package/dist/cjs/raster/webgl/texture/combine-bands.js +65 -0
  57. package/dist/{raster → cjs/raster}/webgl/texture/mask.js +5 -2
  58. package/dist/cjs/raster/webgl/texture/reorder-bands.js +72 -0
  59. package/dist/cjs/raster/webgl/texture/rgba-image.js +34 -0
  60. package/dist/cjs/raster/webgl/types.js +6 -0
  61. package/dist/cjs/svg-icon-layer/scatterplot-icon-layer.js +88 -0
  62. package/dist/cjs/svg-icon-layer/svg-icon-layer.js +104 -0
  63. package/dist/cjs/wms/wms-layer.js +624 -0
  64. package/dist/esm/3d-building-layer/3d-building-layer.js +62 -0
  65. package/dist/esm/3d-building-layer/3d-building-utils.js +157 -0
  66. package/dist/esm/3d-building-layer/types.js +3 -0
  67. package/dist/esm/cluster-layer/cluster-layer.js +286 -0
  68. package/dist/esm/column-layer/enhanced-column-layer.js +156 -0
  69. package/dist/esm/deckgl-extensions/filter-arrow-layer.js +64 -0
  70. package/dist/esm/deckgl-extensions/filter-shader-module.js +20 -0
  71. package/dist/esm/globe/atmosphere-layer.js +335 -0
  72. package/dist/esm/globe/enhanced-multi-icon-layer.js +60 -0
  73. package/dist/esm/globe/globe-depth-disk-layer.js +140 -0
  74. package/dist/esm/globe/globe-layers.js +566 -0
  75. package/dist/esm/globe/globe-stars-layer.js +92 -0
  76. package/dist/esm/globe/globe-stars-layer.spec.js +40 -0
  77. package/dist/esm/globe/globe-view.js +398 -0
  78. package/dist/esm/globe/index.js +26 -0
  79. package/dist/esm/globe/mvt-label-layer.js +187 -0
  80. package/dist/esm/grid-layer/enhanced-cpu-grid-layer.js +112 -0
  81. package/dist/esm/hexagon-layer/enhanced-hexagon-layer.js +130 -0
  82. package/dist/esm/index.js +22 -0
  83. package/dist/esm/layer-utils/aggregation-utils.js +172 -0
  84. package/dist/esm/layer-utils/cluster-utils.js +89 -0
  85. package/dist/esm/layer-utils/cpu-aggregator.js +788 -0
  86. package/dist/esm/layer-utils/globe-cell-utils.js +197 -0
  87. package/dist/esm/layer-utils/globe-cell-utils.spec.js +115 -0
  88. package/dist/esm/layer-utils/shader-utils.js +32 -0
  89. package/dist/esm/line-layer/line-layer.js +91 -0
  90. package/dist/esm/raster/images.js +267 -0
  91. package/dist/esm/raster/pipeline-validation-patch.js +94 -0
  92. package/dist/esm/raster/raster-layer/raster-layer-shaders.js +153 -0
  93. package/dist/esm/raster/raster-layer/raster-layer-webgl1.fs.js +5 -0
  94. package/dist/esm/raster/raster-layer/raster-layer-webgl1.vs.js +5 -0
  95. package/dist/esm/raster/raster-layer/raster-layer-webgl2.fs.js +5 -0
  96. package/dist/esm/raster/raster-layer/raster-layer-webgl2.vs.js +5 -0
  97. package/dist/esm/raster/raster-layer/raster-layer.js +283 -0
  98. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +30 -0
  99. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +5 -0
  100. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +5 -0
  101. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +5 -0
  102. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +5 -0
  103. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer.js +318 -0
  104. package/dist/esm/raster/raster-processing-uniforms.js +118 -0
  105. package/dist/esm/raster/types.js +3 -0
  106. package/dist/esm/raster/util.js +134 -0
  107. package/dist/esm/raster/webgl/color/colormap.js +39 -0
  108. package/dist/esm/raster/webgl/color/filter.js +52 -0
  109. package/dist/esm/raster/webgl/color/gamma-contrast.js +62 -0
  110. package/dist/esm/raster/webgl/color/linear-rescale.js +29 -0
  111. package/dist/esm/raster/webgl/color/saturation.js +36 -0
  112. package/dist/esm/raster/webgl/color/sigmoidal-contrast.js +62 -0
  113. package/dist/esm/raster/webgl/index.js +26 -0
  114. package/dist/esm/raster/webgl/pansharpen/pansharpen-brovey.js +40 -0
  115. package/dist/esm/raster/webgl/spectral-indices/evi.js +20 -0
  116. package/dist/esm/raster/webgl/spectral-indices/msavi.js +19 -0
  117. package/dist/esm/raster/webgl/spectral-indices/normalized-difference.js +13 -0
  118. package/dist/esm/raster/webgl/spectral-indices/savi.js +15 -0
  119. package/dist/esm/raster/webgl/texture/combine-bands.js +58 -0
  120. package/dist/esm/raster/webgl/texture/mask.js +47 -0
  121. package/dist/esm/raster/webgl/texture/reorder-bands.js +65 -0
  122. package/dist/esm/raster/webgl/texture/rgba-image.js +28 -0
  123. package/dist/esm/raster/webgl/types.js +3 -0
  124. package/dist/esm/svg-icon-layer/scatterplot-icon-layer.js +84 -0
  125. package/dist/esm/svg-icon-layer/svg-icon-layer.js +101 -0
  126. package/dist/esm/wms/wms-layer.js +619 -0
  127. package/dist/globe/atmosphere-layer.d.ts +58 -0
  128. package/dist/globe/enhanced-multi-icon-layer.d.ts +6 -0
  129. package/dist/globe/globe-depth-disk-layer.d.ts +19 -0
  130. package/dist/globe/globe-layers.d.ts +108 -0
  131. package/dist/globe/globe-stars-layer.d.ts +10 -0
  132. package/dist/globe/globe-stars-layer.spec.d.ts +1 -0
  133. package/dist/globe/globe-view.d.ts +23 -0
  134. package/dist/globe/index.d.ts +8 -0
  135. package/dist/globe/mvt-label-layer.d.ts +7928 -0
  136. package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +138 -56
  137. package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +138 -56
  138. package/dist/index.d.ts +1 -0
  139. package/dist/layer-utils/cluster-utils.d.ts +6 -1
  140. package/dist/layer-utils/globe-cell-utils.d.ts +30 -0
  141. package/dist/layer-utils/globe-cell-utils.spec.d.ts +1 -0
  142. package/dist/raster/images.d.ts +10 -1
  143. package/dist/raster/raster-layer/raster-layer.d.ts +4 -0
  144. package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +4 -0
  145. package/dist/svg-icon-layer/scatterplot-icon-layer.d.ts +4 -1
  146. package/dist/wms/wms-layer.d.ts +27 -0
  147. package/package.json +22 -13
  148. package/dist/3d-building-layer/3d-building-layer.js +0 -66
  149. package/dist/3d-building-layer/3d-building-utils.js +0 -166
  150. package/dist/3d-building-layer/types.js +0 -6
  151. package/dist/cluster-layer/cluster-layer.js +0 -293
  152. package/dist/column-layer/enhanced-column-layer.js +0 -135
  153. package/dist/deckgl-extensions/filter-shader-module.js +0 -26
  154. package/dist/grid-layer/enhanced-cpu-grid-layer.js +0 -90
  155. package/dist/hexagon-layer/enhanced-hexagon-layer.js +0 -108
  156. package/dist/index.js +0 -152
  157. package/dist/layer-utils/aggregation-utils.js +0 -181
  158. package/dist/layer-utils/cluster-utils.js +0 -93
  159. package/dist/layer-utils/cpu-aggregator.js +0 -798
  160. package/dist/layer-utils/shader-utils.js +0 -38
  161. package/dist/line-layer/line-layer.js +0 -95
  162. package/dist/raster/images.js +0 -259
  163. package/dist/raster/pipeline-validation-patch.js +0 -101
  164. package/dist/raster/raster-layer/raster-layer-shaders.js +0 -163
  165. package/dist/raster/raster-layer/raster-layer-webgl1.fs.js +0 -10
  166. package/dist/raster/raster-layer/raster-layer-webgl1.vs.js +0 -10
  167. package/dist/raster/raster-layer/raster-layer-webgl2.fs.js +0 -10
  168. package/dist/raster/raster-layer/raster-layer-webgl2.vs.js +0 -10
  169. package/dist/raster/raster-layer/raster-layer.js +0 -237
  170. package/dist/raster/raster-mesh-layer/matrix.d.ts +0 -4
  171. package/dist/raster/raster-mesh-layer/matrix.js +0 -18
  172. package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +0 -38
  173. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +0 -10
  174. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +0 -10
  175. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +0 -10
  176. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +0 -10
  177. package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +0 -271
  178. package/dist/raster/raster-processing-uniforms.js +0 -124
  179. package/dist/raster/types.js +0 -6
  180. package/dist/raster/util.js +0 -139
  181. package/dist/raster/webgl/color/colormap.js +0 -45
  182. package/dist/raster/webgl/color/filter.js +0 -58
  183. package/dist/raster/webgl/color/gamma-contrast.js +0 -68
  184. package/dist/raster/webgl/color/linear-rescale.js +0 -35
  185. package/dist/raster/webgl/color/saturation.js +0 -42
  186. package/dist/raster/webgl/color/sigmoidal-contrast.js +0 -68
  187. package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +0 -46
  188. package/dist/raster/webgl/spectral-indices/evi.js +0 -26
  189. package/dist/raster/webgl/spectral-indices/msavi.js +0 -25
  190. package/dist/raster/webgl/spectral-indices/normalized-difference.js +0 -19
  191. package/dist/raster/webgl/spectral-indices/savi.js +0 -21
  192. package/dist/raster/webgl/texture/combine-bands.js +0 -65
  193. package/dist/raster/webgl/texture/reorder-bands.js +0 -72
  194. package/dist/raster/webgl/texture/rgba-image.js +0 -34
  195. package/dist/raster/webgl/types.js +0 -6
  196. package/dist/svg-icon-layer/scatterplot-icon-layer.js +0 -51
  197. package/dist/svg-icon-layer/svg-icon-layer.js +0 -104
  198. package/dist/wms/wms-layer.js +0 -424
@@ -0,0 +1,156 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
+ import _get from "@babel/runtime/helpers/esm/get";
8
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
9
+ 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; }
10
+ 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) { _defineProperty(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; }
11
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
12
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
13
+ function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
14
+ // SPDX-License-Identifier: MIT
15
+ // Copyright contributors to the kepler.gl project
16
+
17
+ import { ColumnLayer } from '@deck.gl/layers';
18
+ import { UNIT } from '@deck.gl/core';
19
+ import { editShader } from '../';
20
+
21
+ // deck.gl 9 / luma 9 sets custom uniforms via UBO-backed shader modules (Model has
22
+ // no setUniforms). This module exposes the globe-mode flag to the shader.
23
+ var globeModeUniforms = {
24
+ name: 'globeMode',
25
+ vs: "layout(std140) uniform globeModeUniforms {\n float globeMode;\n} globeModeProps;\n",
26
+ uniformTypes: {
27
+ globeMode: 'f32'
28
+ }
29
+ };
30
+ function addInstanceCoverage(vs) {
31
+ var addDecl = editShader(vs, 'hexagon cell vs add instance 1', 'in vec3 instancePickingColors;', "in vec3 instancePickingColors;\n in float instanceCoverage;");
32
+ return editShader(addDecl, 'hexagon cell vs add instance 2', 'float dotRadius = column.radius * column.coverage * shouldRender;', 'float dotRadius = column.radius * column.coverage * instanceCoverage * shouldRender;');
33
+ }
34
+ function addGlobeScaling(vs) {
35
+ return editShader(vs, 'hexagon cell vs globe scale mod', 'vec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + column.offset) * dotRadius;', "float radiusGlobeMod = globeModeProps.globeMode > 0.5 ? sin((90.0 - abs(geometry.worldPosition.y)) * PI / 180.0) * PI : 1.0;\n vec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + column.offset) * dotRadius * radiusGlobeMod;");
36
+ }
37
+ var EnhancedColumnLayer = /*#__PURE__*/function (_ColumnLayer) {
38
+ function EnhancedColumnLayer() {
39
+ _classCallCheck(this, EnhancedColumnLayer);
40
+ return _callSuper(this, EnhancedColumnLayer, arguments);
41
+ }
42
+ _inherits(EnhancedColumnLayer, _ColumnLayer);
43
+ return _createClass(EnhancedColumnLayer, [{
44
+ key: "getShaders",
45
+ value: function getShaders() {
46
+ var shaders = _superPropGet(EnhancedColumnLayer, "getShaders", this, 3)([]);
47
+ var vs = addGlobeScaling(addInstanceCoverage(shaders.vs));
48
+ return _objectSpread(_objectSpread({}, shaders), {}, {
49
+ vs: vs,
50
+ modules: [].concat(_toConsumableArray(shaders.modules || []), [globeModeUniforms])
51
+ });
52
+ }
53
+ }, {
54
+ key: "initializeState",
55
+ value: function initializeState() {
56
+ var _this$getAttributeMan;
57
+ _superPropGet(EnhancedColumnLayer, "initializeState", this, 3)([]);
58
+ (_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 || _this$getAttributeMan.addInstanced({
59
+ instanceCoverage: {
60
+ size: 1,
61
+ accessor: 'getCoverage'
62
+ }
63
+ });
64
+ }
65
+ }, {
66
+ key: "draw",
67
+ value: function draw(_ref) {
68
+ var _uniforms = _ref.uniforms;
69
+ var _this$props = this.props,
70
+ lineWidthUnits = _this$props.lineWidthUnits,
71
+ lineWidthScale = _this$props.lineWidthScale,
72
+ lineWidthMinPixels = _this$props.lineWidthMinPixels,
73
+ lineWidthMaxPixels = _this$props.lineWidthMaxPixels,
74
+ radiusUnits = _this$props.radiusUnits,
75
+ elevationScale = _this$props.elevationScale,
76
+ extruded = _this$props.extruded,
77
+ filled = _this$props.filled,
78
+ stroked = _this$props.stroked,
79
+ strokeOpacity = _this$props.strokeOpacity,
80
+ wireframe = _this$props.wireframe,
81
+ offset = _this$props.offset,
82
+ coverage = _this$props.coverage,
83
+ radius = _this$props.radius,
84
+ angle = _this$props.angle;
85
+ var fillModel = this.state.fillModel;
86
+ var wireframeModel = this.state.wireframeModel;
87
+ var _this$state = this.state,
88
+ fillVertexCount = _this$state.fillVertexCount,
89
+ edgeDistance = _this$state.edgeDistance;
90
+ var globeMode = this.context.viewport.resolution ? 1.0 : 0.0;
91
+ var columnProps = {
92
+ radius: radius,
93
+ angle: angle / 180 * Math.PI,
94
+ offset: offset,
95
+ extruded: extruded,
96
+ stroked: stroked,
97
+ coverage: coverage,
98
+ elevationScale: elevationScale,
99
+ edgeDistance: edgeDistance,
100
+ radiusUnits: UNIT[radiusUnits],
101
+ widthUnits: UNIT[lineWidthUnits],
102
+ widthScale: lineWidthScale,
103
+ widthMinPixels: lineWidthMinPixels,
104
+ widthMaxPixels: lineWidthMaxPixels
105
+ };
106
+ if (extruded && wireframe && wireframeModel) {
107
+ wireframeModel.shaderInputs.setProps({
108
+ column: _objectSpread(_objectSpread({}, columnProps), {}, {
109
+ isStroke: true
110
+ }),
111
+ globeMode: {
112
+ globeMode: globeMode
113
+ }
114
+ });
115
+ wireframeModel.draw(this.context.renderPass);
116
+ }
117
+ if (filled && fillModel) {
118
+ fillModel.setVertexCount(fillVertexCount);
119
+ fillModel.shaderInputs.setProps({
120
+ column: _objectSpread(_objectSpread({}, columnProps), {}, {
121
+ isStroke: false
122
+ }),
123
+ globeMode: {
124
+ globeMode: globeMode
125
+ }
126
+ });
127
+ fillModel.draw(this.context.renderPass);
128
+ }
129
+ if (!extruded && stroked && fillModel) {
130
+ fillModel.setVertexCount(fillVertexCount * 2 / 3);
131
+ fillModel.shaderInputs.setProps({
132
+ column: _objectSpread(_objectSpread({}, columnProps), {}, {
133
+ isStroke: true
134
+ }),
135
+ layer: {
136
+ opacity: strokeOpacity !== null && strokeOpacity !== void 0 ? strokeOpacity : this.props.opacity
137
+ },
138
+ globeMode: {
139
+ globeMode: globeMode
140
+ }
141
+ });
142
+ fillModel.draw(this.context.renderPass);
143
+ // Restore original vertex count and opacity so subsequent passes are unaffected
144
+ fillModel.setVertexCount(fillVertexCount);
145
+ fillModel.shaderInputs.setProps({
146
+ layer: {
147
+ opacity: this.props.opacity
148
+ }
149
+ });
150
+ }
151
+ }
152
+ }]);
153
+ }(ColumnLayer);
154
+ EnhancedColumnLayer.layerName = 'EnhancedColumnLayer';
155
+ export default EnhancedColumnLayer;
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2x1bW5MYXllciIsIlVOSVQiLCJlZGl0U2hhZGVyIiwiZ2xvYmVNb2RlVW5pZm9ybXMiLCJuYW1lIiwidnMiLCJ1bmlmb3JtVHlwZXMiLCJnbG9iZU1vZGUiLCJhZGRJbnN0YW5jZUNvdmVyYWdlIiwiYWRkRGVjbCIsImFkZEdsb2JlU2NhbGluZyIsIkVuaGFuY2VkQ29sdW1uTGF5ZXIiLCJfQ29sdW1uTGF5ZXIiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJnZXRTaGFkZXJzIiwic2hhZGVycyIsIl9zdXBlclByb3BHZXQiLCJfb2JqZWN0U3ByZWFkIiwibW9kdWxlcyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsImluaXRpYWxpemVTdGF0ZSIsIl90aGlzJGdldEF0dHJpYnV0ZU1hbiIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGRJbnN0YW5jZWQiLCJpbnN0YW5jZUNvdmVyYWdlIiwic2l6ZSIsImFjY2Vzc29yIiwiZHJhdyIsIl9yZWYiLCJfdW5pZm9ybXMiLCJ1bmlmb3JtcyIsIl90aGlzJHByb3BzIiwicHJvcHMiLCJsaW5lV2lkdGhVbml0cyIsImxpbmVXaWR0aFNjYWxlIiwibGluZVdpZHRoTWluUGl4ZWxzIiwibGluZVdpZHRoTWF4UGl4ZWxzIiwicmFkaXVzVW5pdHMiLCJlbGV2YXRpb25TY2FsZSIsImV4dHJ1ZGVkIiwiZmlsbGVkIiwic3Ryb2tlZCIsInN0cm9rZU9wYWNpdHkiLCJ3aXJlZnJhbWUiLCJvZmZzZXQiLCJjb3ZlcmFnZSIsInJhZGl1cyIsImFuZ2xlIiwiZmlsbE1vZGVsIiwic3RhdGUiLCJ3aXJlZnJhbWVNb2RlbCIsIl90aGlzJHN0YXRlIiwiZmlsbFZlcnRleENvdW50IiwiZWRnZURpc3RhbmNlIiwiY29udGV4dCIsInZpZXdwb3J0IiwicmVzb2x1dGlvbiIsImNvbHVtblByb3BzIiwiTWF0aCIsIlBJIiwid2lkdGhVbml0cyIsIndpZHRoU2NhbGUiLCJ3aWR0aE1pblBpeGVscyIsIndpZHRoTWF4UGl4ZWxzIiwic2hhZGVySW5wdXRzIiwic2V0UHJvcHMiLCJjb2x1bW4iLCJpc1N0cm9rZSIsInJlbmRlclBhc3MiLCJzZXRWZXJ0ZXhDb3VudCIsImxheWVyIiwib3BhY2l0eSIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2x1bW4tbGF5ZXIvZW5oYW5jZWQtY29sdW1uLWxheWVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Q29sdW1uTGF5ZXIsIENvbHVtbkxheWVyUHJvcHN9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge1VOSVR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuXG5pbXBvcnQge2VkaXRTaGFkZXJ9IGZyb20gJy4uLyc7XG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAoTW9kZWwgaGFzXG4vLyBubyBzZXRVbmlmb3JtcykuIFRoaXMgbW9kdWxlIGV4cG9zZXMgdGhlIGdsb2JlLW1vZGUgZmxhZyB0byB0aGUgc2hhZGVyLlxuY29uc3QgZ2xvYmVNb2RlVW5pZm9ybXMgPSB7XG4gIG5hbWU6ICdnbG9iZU1vZGUnLFxuICB2czogYGxheW91dChzdGQxNDApIHVuaWZvcm0gZ2xvYmVNb2RlVW5pZm9ybXMge1xuICBmbG9hdCBnbG9iZU1vZGU7XG59IGdsb2JlTW9kZVByb3BzO1xuYCxcbiAgdW5pZm9ybVR5cGVzOiB7XG4gICAgZ2xvYmVNb2RlOiAnZjMyJ1xuICB9XG59IGFzIGNvbnN0O1xuXG5mdW5jdGlvbiBhZGRJbnN0YW5jZUNvdmVyYWdlKHZzOiBzdHJpbmcpIHtcbiAgY29uc3QgYWRkRGVjbCA9IGVkaXRTaGFkZXIoXG4gICAgdnMsXG4gICAgJ2hleGFnb24gY2VsbCB2cyBhZGQgaW5zdGFuY2UgMScsXG4gICAgJ2luIHZlYzMgaW5zdGFuY2VQaWNraW5nQ29sb3JzOycsXG4gICAgYGluIHZlYzMgaW5zdGFuY2VQaWNraW5nQ29sb3JzO1xuICAgICBpbiBmbG9hdCBpbnN0YW5jZUNvdmVyYWdlO2BcbiAgKTtcblxuICByZXR1cm4gZWRpdFNoYWRlcihcbiAgICBhZGREZWNsLFxuICAgICdoZXhhZ29uIGNlbGwgdnMgYWRkIGluc3RhbmNlIDInLFxuICAgICdmbG9hdCBkb3RSYWRpdXMgPSBjb2x1bW4ucmFkaXVzICogY29sdW1uLmNvdmVyYWdlICogc2hvdWxkUmVuZGVyOycsXG4gICAgJ2Zsb2F0IGRvdFJhZGl1cyA9IGNvbHVtbi5yYWRpdXMgKiBjb2x1bW4uY292ZXJhZ2UgKiBpbnN0YW5jZUNvdmVyYWdlICogc2hvdWxkUmVuZGVyOydcbiAgKTtcbn1cblxuZnVuY3Rpb24gYWRkR2xvYmVTY2FsaW5nKHZzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVkaXRTaGFkZXIoXG4gICAgdnMsXG4gICAgJ2hleGFnb24gY2VsbCB2cyBnbG9iZSBzY2FsZSBtb2QnLFxuICAgICd2ZWMyIG9mZnNldCA9IChyb3RhdGlvbk1hdHJpeCAqIHBvc2l0aW9ucy54eSAqIHN0cm9rZU9mZnNldFJhdGlvICsgY29sdW1uLm9mZnNldCkgKiBkb3RSYWRpdXM7JyxcbiAgICBgZmxvYXQgcmFkaXVzR2xvYmVNb2QgPSBnbG9iZU1vZGVQcm9wcy5nbG9iZU1vZGUgPiAwLjUgPyBzaW4oKDkwLjAgLSBhYnMoZ2VvbWV0cnkud29ybGRQb3NpdGlvbi55KSkgKiBQSSAvIDE4MC4wKSAqIFBJIDogMS4wO1xuICAgICAgdmVjMiBvZmZzZXQgPSAocm90YXRpb25NYXRyaXggKiBwb3NpdGlvbnMueHkgKiBzdHJva2VPZmZzZXRSYXRpbyArIGNvbHVtbi5vZmZzZXQpICogZG90UmFkaXVzICogcmFkaXVzR2xvYmVNb2Q7YFxuICApO1xufVxuXG50eXBlIEVuaGFuY2VkQ29sdW1uTGF5ZXJQcm9wcyA9IENvbHVtbkxheWVyUHJvcHM8YW55PiAmIHtcbiAgc3Ryb2tlT3BhY2l0eTogbnVtYmVyO1xufTtcblxuY2xhc3MgRW5oYW5jZWRDb2x1bW5MYXllciBleHRlbmRzIENvbHVtbkxheWVyPGFueSwgRW5oYW5jZWRDb2x1bW5MYXllclByb3BzPiB7XG4gIGdldFNoYWRlcnMoKSB7XG4gICAgY29uc3Qgc2hhZGVycyA9IHN1cGVyLmdldFNoYWRlcnMoKTtcblxuICAgIGNvbnN0IHZzID0gYWRkR2xvYmVTY2FsaW5nKGFkZEluc3RhbmNlQ292ZXJhZ2Uoc2hhZGVycy52cykpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNoYWRlcnMsXG4gICAgICB2cyxcbiAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVNb2RlVW5pZm9ybXNdXG4gICAgfTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUoKTtcblxuICAgIHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpPy5hZGRJbnN0YW5jZWQoe1xuICAgICAgaW5zdGFuY2VDb3ZlcmFnZToge3NpemU6IDEsIGFjY2Vzc29yOiAnZ2V0Q292ZXJhZ2UnfVxuICAgIH0pO1xuICB9XG5cbiAgZHJhdyh7dW5pZm9ybXM6IF91bmlmb3Jtc30pIHtcbiAgICBjb25zdCB7XG4gICAgICBsaW5lV2lkdGhVbml0cyxcbiAgICAgIGxpbmVXaWR0aFNjYWxlLFxuICAgICAgbGluZVdpZHRoTWluUGl4ZWxzLFxuICAgICAgbGluZVdpZHRoTWF4UGl4ZWxzLFxuICAgICAgcmFkaXVzVW5pdHMsXG4gICAgICBlbGV2YXRpb25TY2FsZSxcbiAgICAgIGV4dHJ1ZGVkLFxuICAgICAgZmlsbGVkLFxuICAgICAgc3Ryb2tlZCxcbiAgICAgIHN0cm9rZU9wYWNpdHksXG4gICAgICB3aXJlZnJhbWUsXG4gICAgICBvZmZzZXQsXG4gICAgICBjb3ZlcmFnZSxcbiAgICAgIHJhZGl1cyxcbiAgICAgIGFuZ2xlXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZmlsbE1vZGVsID0gdGhpcy5zdGF0ZS5maWxsTW9kZWw7XG4gICAgY29uc3Qgd2lyZWZyYW1lTW9kZWwgPSB0aGlzLnN0YXRlLndpcmVmcmFtZU1vZGVsO1xuICAgIGNvbnN0IHtmaWxsVmVydGV4Q291bnQsIGVkZ2VEaXN0YW5jZX0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgZ2xvYmVNb2RlID0gKHRoaXMuY29udGV4dC52aWV3cG9ydCBhcyBhbnkpLnJlc29sdXRpb24gPyAxLjAgOiAwLjA7XG5cbiAgICBjb25zdCBjb2x1bW5Qcm9wcyA9IHtcbiAgICAgIHJhZGl1cyxcbiAgICAgIGFuZ2xlOiAoYW5nbGUgLyAxODApICogTWF0aC5QSSxcbiAgICAgIG9mZnNldCxcbiAgICAgIGV4dHJ1ZGVkLFxuICAgICAgc3Ryb2tlZCxcbiAgICAgIGNvdmVyYWdlLFxuICAgICAgZWxldmF0aW9uU2NhbGUsXG4gICAgICBlZGdlRGlzdGFuY2UsXG4gICAgICByYWRpdXNVbml0czogVU5JVFtyYWRpdXNVbml0c10sXG4gICAgICB3aWR0aFVuaXRzOiBVTklUW2xpbmVXaWR0aFVuaXRzXSxcbiAgICAgIHdpZHRoU2NhbGU6IGxpbmVXaWR0aFNjYWxlLFxuICAgICAgd2lkdGhNaW5QaXhlbHM6IGxpbmVXaWR0aE1pblBpeGVscyxcbiAgICAgIHdpZHRoTWF4UGl4ZWxzOiBsaW5lV2lkdGhNYXhQaXhlbHNcbiAgICB9O1xuXG4gICAgaWYgKGV4dHJ1ZGVkICYmIHdpcmVmcmFtZSAmJiB3aXJlZnJhbWVNb2RlbCkge1xuICAgICAgd2lyZWZyYW1lTW9kZWwuc2hhZGVySW5wdXRzLnNldFByb3BzKHtcbiAgICAgICAgY29sdW1uOiB7Li4uY29sdW1uUHJvcHMsIGlzU3Ryb2tlOiB0cnVlfSxcbiAgICAgICAgZ2xvYmVNb2RlOiB7Z2xvYmVNb2RlfVxuICAgICAgfSk7XG4gICAgICB3aXJlZnJhbWVNb2RlbC5kcmF3KHRoaXMuY29udGV4dC5yZW5kZXJQYXNzKTtcbiAgICB9XG4gICAgaWYgKGZpbGxlZCAmJiBmaWxsTW9kZWwpIHtcbiAgICAgIGZpbGxNb2RlbC5zZXRWZXJ0ZXhDb3VudChmaWxsVmVydGV4Q291bnQpO1xuICAgICAgZmlsbE1vZGVsLnNoYWRlcklucHV0cy5zZXRQcm9wcyh7XG4gICAgICAgIGNvbHVtbjogey4uLmNvbHVtblByb3BzLCBpc1N0cm9rZTogZmFsc2V9LFxuICAgICAgICBnbG9iZU1vZGU6IHtnbG9iZU1vZGV9XG4gICAgICB9KTtcbiAgICAgIGZpbGxNb2RlbC5kcmF3KHRoaXMuY29udGV4dC5yZW5kZXJQYXNzKTtcbiAgICB9XG4gICAgaWYgKCFleHRydWRlZCAmJiBzdHJva2VkICYmIGZpbGxNb2RlbCkge1xuICAgICAgZmlsbE1vZGVsLnNldFZlcnRleENvdW50KChmaWxsVmVydGV4Q291bnQgKiAyKSAvIDMpO1xuICAgICAgZmlsbE1vZGVsLnNoYWRlcklucHV0cy5zZXRQcm9wcyh7XG4gICAgICAgIGNvbHVtbjogey4uLmNvbHVtblByb3BzLCBpc1N0cm9rZTogdHJ1ZX0sXG4gICAgICAgIGxheWVyOiB7b3BhY2l0eTogc3Ryb2tlT3BhY2l0eSA/PyB0aGlzLnByb3BzLm9wYWNpdHl9LFxuICAgICAgICBnbG9iZU1vZGU6IHtnbG9iZU1vZGV9XG4gICAgICB9KTtcbiAgICAgIGZpbGxNb2RlbC5kcmF3KHRoaXMuY29udGV4dC5yZW5kZXJQYXNzKTtcbiAgICAgIC8vIFJlc3RvcmUgb3JpZ2luYWwgdmVydGV4IGNvdW50IGFuZCBvcGFjaXR5IHNvIHN1YnNlcXVlbnQgcGFzc2VzIGFyZSB1bmFmZmVjdGVkXG4gICAgICBmaWxsTW9kZWwuc2V0VmVydGV4Q291bnQoZmlsbFZlcnRleENvdW50KTtcbiAgICAgIGZpbGxNb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe1xuICAgICAgICBsYXllcjoge29wYWNpdHk6IHRoaXMucHJvcHMub3BhY2l0eX1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5FbmhhbmNlZENvbHVtbkxheWVyLmxheWVyTmFtZSA9ICdFbmhhbmNlZENvbHVtbkxheWVyJztcblxuZXhwb3J0IGRlZmF1bHQgRW5oYW5jZWRDb2x1bW5MYXllcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBRUEsU0FBUUEsV0FBVyxRQUF5QixpQkFBaUI7QUFDN0QsU0FBUUMsSUFBSSxRQUFPLGVBQWU7QUFFbEMsU0FBUUMsVUFBVSxRQUFPLEtBQUs7O0FBRTlCO0FBQ0E7QUFDQSxJQUFNQyxpQkFBaUIsR0FBRztFQUN4QkMsSUFBSSxFQUFFLFdBQVc7RUFDakJDLEVBQUUsdUZBR0g7RUFDQ0MsWUFBWSxFQUFFO0lBQ1pDLFNBQVMsRUFBRTtFQUNiO0FBQ0YsQ0FBVTtBQUVWLFNBQVNDLG1CQUFtQkEsQ0FBQ0gsRUFBVSxFQUFFO0VBQ3ZDLElBQU1JLE9BQU8sR0FBR1AsVUFBVSxDQUN4QkcsRUFBRSxFQUNGLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsbUVBR2xDLENBQUM7RUFFRCxPQUFPSCxVQUFVLENBQ2ZPLE9BQU8sRUFDUCxnQ0FBZ0MsRUFDaEMsbUVBQW1FLEVBQ25FLHNGQUNGLENBQUM7QUFDSDtBQUVBLFNBQVNDLGVBQWVBLENBQUNMLEVBQVUsRUFBRTtFQUNuQyxPQUFPSCxVQUFVLENBQ2ZHLEVBQUUsRUFDRixpQ0FBaUMsRUFDakMsZ0dBQWdHLHVQQUdsRyxDQUFDO0FBQ0g7QUFBQyxJQU1LTSxtQkFBbUIsMEJBQUFDLFlBQUE7RUFBQSxTQUFBRCxvQkFBQTtJQUFBRSxlQUFBLE9BQUFGLG1CQUFBO0lBQUEsT0FBQUcsVUFBQSxPQUFBSCxtQkFBQSxFQUFBSSxTQUFBO0VBQUE7RUFBQUMsU0FBQSxDQUFBTCxtQkFBQSxFQUFBQyxZQUFBO0VBQUEsT0FBQUssWUFBQSxDQUFBTixtQkFBQTtJQUFBTyxHQUFBO0lBQUFDLEtBQUEsRUFDdkIsU0FBQUMsVUFBVUEsQ0FBQSxFQUFHO01BQ1gsSUFBTUMsT0FBTyxHQUFBQyxhQUFBLENBQUFYLG1CQUFBLDRCQUFxQjtNQUVsQyxJQUFNTixFQUFFLEdBQUdLLGVBQWUsQ0FBQ0YsbUJBQW1CLENBQUNhLE9BQU8sQ0FBQ2hCLEVBQUUsQ0FBQyxDQUFDO01BRTNELE9BQUFrQixhQUFBLENBQUFBLGFBQUEsS0FDS0YsT0FBTztRQUNWaEIsRUFBRSxFQUFGQSxFQUFFO1FBQ0ZtQixPQUFPLEtBQUFDLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBT0wsT0FBTyxDQUFDRyxPQUFPLElBQUksRUFBRSxJQUFHckIsaUJBQWlCO01BQUM7SUFFNUQ7RUFBQztJQUFBZSxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBUSxlQUFlQSxDQUFBLEVBQUc7TUFBQSxJQUFBQyxxQkFBQTtNQUNoQk4sYUFBQSxDQUFBWCxtQkFBQTtNQUVBLENBQUFpQixxQkFBQSxPQUFJLENBQUNDLG1CQUFtQixDQUFDLENBQUMsY0FBQUQscUJBQUEsZUFBMUJBLHFCQUFBLENBQTRCRSxZQUFZLENBQUM7UUFDdkNDLGdCQUFnQixFQUFFO1VBQUNDLElBQUksRUFBRSxDQUFDO1VBQUVDLFFBQVEsRUFBRTtRQUFhO01BQ3JELENBQUMsQ0FBQztJQUNKO0VBQUM7SUFBQWYsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQWUsSUFBSUEsQ0FBQUMsSUFBQSxFQUF3QjtNQUFBLElBQVpDLFNBQVMsR0FBQUQsSUFBQSxDQUFuQkUsUUFBUTtNQUNaLElBQUFDLFdBQUEsR0FnQkksSUFBSSxDQUFDQyxLQUFLO1FBZlpDLGNBQWMsR0FBQUYsV0FBQSxDQUFkRSxjQUFjO1FBQ2RDLGNBQWMsR0FBQUgsV0FBQSxDQUFkRyxjQUFjO1FBQ2RDLGtCQUFrQixHQUFBSixXQUFBLENBQWxCSSxrQkFBa0I7UUFDbEJDLGtCQUFrQixHQUFBTCxXQUFBLENBQWxCSyxrQkFBa0I7UUFDbEJDLFdBQVcsR0FBQU4sV0FBQSxDQUFYTSxXQUFXO1FBQ1hDLGNBQWMsR0FBQVAsV0FBQSxDQUFkTyxjQUFjO1FBQ2RDLFFBQVEsR0FBQVIsV0FBQSxDQUFSUSxRQUFRO1FBQ1JDLE1BQU0sR0FBQVQsV0FBQSxDQUFOUyxNQUFNO1FBQ05DLE9BQU8sR0FBQVYsV0FBQSxDQUFQVSxPQUFPO1FBQ1BDLGFBQWEsR0FBQVgsV0FBQSxDQUFiVyxhQUFhO1FBQ2JDLFNBQVMsR0FBQVosV0FBQSxDQUFUWSxTQUFTO1FBQ1RDLE1BQU0sR0FBQWIsV0FBQSxDQUFOYSxNQUFNO1FBQ05DLFFBQVEsR0FBQWQsV0FBQSxDQUFSYyxRQUFRO1FBQ1JDLE1BQU0sR0FBQWYsV0FBQSxDQUFOZSxNQUFNO1FBQ05DLEtBQUssR0FBQWhCLFdBQUEsQ0FBTGdCLEtBQUs7TUFFUCxJQUFNQyxTQUFTLEdBQUcsSUFBSSxDQUFDQyxLQUFLLENBQUNELFNBQVM7TUFDdEMsSUFBTUUsY0FBYyxHQUFHLElBQUksQ0FBQ0QsS0FBSyxDQUFDQyxjQUFjO01BQ2hELElBQUFDLFdBQUEsR0FBd0MsSUFBSSxDQUFDRixLQUFLO1FBQTNDRyxlQUFlLEdBQUFELFdBQUEsQ0FBZkMsZUFBZTtRQUFFQyxZQUFZLEdBQUFGLFdBQUEsQ0FBWkUsWUFBWTtNQUVwQyxJQUFNckQsU0FBUyxHQUFJLElBQUksQ0FBQ3NELE9BQU8sQ0FBQ0MsUUFBUSxDQUFTQyxVQUFVLEdBQUcsR0FBRyxHQUFHLEdBQUc7TUFFdkUsSUFBTUMsV0FBVyxHQUFHO1FBQ2xCWCxNQUFNLEVBQU5BLE1BQU07UUFDTkMsS0FBSyxFQUFHQSxLQUFLLEdBQUcsR0FBRyxHQUFJVyxJQUFJLENBQUNDLEVBQUU7UUFDOUJmLE1BQU0sRUFBTkEsTUFBTTtRQUNOTCxRQUFRLEVBQVJBLFFBQVE7UUFDUkUsT0FBTyxFQUFQQSxPQUFPO1FBQ1BJLFFBQVEsRUFBUkEsUUFBUTtRQUNSUCxjQUFjLEVBQWRBLGNBQWM7UUFDZGUsWUFBWSxFQUFaQSxZQUFZO1FBQ1poQixXQUFXLEVBQUUzQyxJQUFJLENBQUMyQyxXQUFXLENBQUM7UUFDOUJ1QixVQUFVLEVBQUVsRSxJQUFJLENBQUN1QyxjQUFjLENBQUM7UUFDaEM0QixVQUFVLEVBQUUzQixjQUFjO1FBQzFCNEIsY0FBYyxFQUFFM0Isa0JBQWtCO1FBQ2xDNEIsY0FBYyxFQUFFM0I7TUFDbEIsQ0FBQztNQUVELElBQUlHLFFBQVEsSUFBSUksU0FBUyxJQUFJTyxjQUFjLEVBQUU7UUFDM0NBLGNBQWMsQ0FBQ2MsWUFBWSxDQUFDQyxRQUFRLENBQUM7VUFDbkNDLE1BQU0sRUFBQWxELGFBQUEsQ0FBQUEsYUFBQSxLQUFNeUMsV0FBVztZQUFFVSxRQUFRLEVBQUU7VUFBSSxFQUFDO1VBQ3hDbkUsU0FBUyxFQUFFO1lBQUNBLFNBQVMsRUFBVEE7VUFBUztRQUN2QixDQUFDLENBQUM7UUFDRmtELGNBQWMsQ0FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMyQixPQUFPLENBQUNjLFVBQVUsQ0FBQztNQUM5QztNQUNBLElBQUk1QixNQUFNLElBQUlRLFNBQVMsRUFBRTtRQUN2QkEsU0FBUyxDQUFDcUIsY0FBYyxDQUFDakIsZUFBZSxDQUFDO1FBQ3pDSixTQUFTLENBQUNnQixZQUFZLENBQUNDLFFBQVEsQ0FBQztVQUM5QkMsTUFBTSxFQUFBbEQsYUFBQSxDQUFBQSxhQUFBLEtBQU15QyxXQUFXO1lBQUVVLFFBQVEsRUFBRTtVQUFLLEVBQUM7VUFDekNuRSxTQUFTLEVBQUU7WUFBQ0EsU0FBUyxFQUFUQTtVQUFTO1FBQ3ZCLENBQUMsQ0FBQztRQUNGZ0QsU0FBUyxDQUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQzJCLE9BQU8sQ0FBQ2MsVUFBVSxDQUFDO01BQ3pDO01BQ0EsSUFBSSxDQUFDN0IsUUFBUSxJQUFJRSxPQUFPLElBQUlPLFNBQVMsRUFBRTtRQUNyQ0EsU0FBUyxDQUFDcUIsY0FBYyxDQUFFakIsZUFBZSxHQUFHLENBQUMsR0FBSSxDQUFDLENBQUM7UUFDbkRKLFNBQVMsQ0FBQ2dCLFlBQVksQ0FBQ0MsUUFBUSxDQUFDO1VBQzlCQyxNQUFNLEVBQUFsRCxhQUFBLENBQUFBLGFBQUEsS0FBTXlDLFdBQVc7WUFBRVUsUUFBUSxFQUFFO1VBQUksRUFBQztVQUN4Q0csS0FBSyxFQUFFO1lBQUNDLE9BQU8sRUFBRTdCLGFBQWEsYUFBYkEsYUFBYSxjQUFiQSxhQUFhLEdBQUksSUFBSSxDQUFDVixLQUFLLENBQUN1QztVQUFPLENBQUM7VUFDckR2RSxTQUFTLEVBQUU7WUFBQ0EsU0FBUyxFQUFUQTtVQUFTO1FBQ3ZCLENBQUMsQ0FBQztRQUNGZ0QsU0FBUyxDQUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQzJCLE9BQU8sQ0FBQ2MsVUFBVSxDQUFDO1FBQ3ZDO1FBQ0FwQixTQUFTLENBQUNxQixjQUFjLENBQUNqQixlQUFlLENBQUM7UUFDekNKLFNBQVMsQ0FBQ2dCLFlBQVksQ0FBQ0MsUUFBUSxDQUFDO1VBQzlCSyxLQUFLLEVBQUU7WUFBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQ3ZDLEtBQUssQ0FBQ3VDO1VBQU87UUFDckMsQ0FBQyxDQUFDO01BQ0o7SUFDRjtFQUFDO0FBQUEsRUExRitCOUUsV0FBVztBQTZGN0NXLG1CQUFtQixDQUFDb0UsU0FBUyxHQUFHLHFCQUFxQjtBQUVyRCxlQUFlcEUsbUJBQW1CIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,64 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
4
+ import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
5
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
6
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
7
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
8
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
+ // SPDX-License-Identifier: MIT
10
+ // Copyright contributors to the kepler.gl project
11
+
12
+ import { LayerExtension } from '@deck.gl/core';
13
+ import shaderModule from './filter-shader-module';
14
+ var VALUE_FILTERED = 1;
15
+ var defaultProps = {
16
+ getFiltered: {
17
+ type: 'accessor',
18
+ value: VALUE_FILTERED
19
+ }
20
+ };
21
+ /**
22
+ * FilterArrowExtension - a deck.gl extension to filter arrow layer
23
+ *
24
+ * A simple extension to filter arrow layer based on the result of CPU filteredIndex,
25
+ * so we can avoid filtering on the raw Arrow table and recreating geometry attributes.
26
+ * Specifically, an attribute `filtered` is added to the layer to indicate whether the feature has been Filtered
27
+ * the shader module is modified to discard the feature if filtered value is 0
28
+ * the accessor getFiltered is used to get the value of `filtered` based on the value `filteredIndex` in Arrowlayer
29
+ */
30
+ var FilterArrowExtension = /*#__PURE__*/function (_LayerExtension) {
31
+ function FilterArrowExtension() {
32
+ _classCallCheck(this, FilterArrowExtension);
33
+ return _callSuper(this, FilterArrowExtension, arguments);
34
+ }
35
+ _inherits(FilterArrowExtension, _LayerExtension);
36
+ return _createClass(FilterArrowExtension, [{
37
+ key: "getShaders",
38
+ value: function getShaders() {
39
+ return {
40
+ modules: [shaderModule],
41
+ defines: {}
42
+ };
43
+ }
44
+ }, {
45
+ key: "initializeState",
46
+ value: function initializeState() {
47
+ var attributeManager = this.getAttributeManager();
48
+ if (attributeManager) {
49
+ attributeManager.add({
50
+ filtered: {
51
+ size: 1,
52
+ type: 'float32',
53
+ stepMode: 'dynamic',
54
+ accessor: 'getFiltered'
55
+ }
56
+ });
57
+ }
58
+ }
59
+ }]);
60
+ }(LayerExtension);
61
+ _defineProperty(FilterArrowExtension, "defaultProps", defaultProps);
62
+ _defineProperty(FilterArrowExtension, "extensionName", 'FilterArrowExtension');
63
+ export { FilterArrowExtension as default };
64
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMYXllckV4dGVuc2lvbiIsInNoYWRlck1vZHVsZSIsIlZBTFVFX0ZJTFRFUkVEIiwiZGVmYXVsdFByb3BzIiwiZ2V0RmlsdGVyZWQiLCJ0eXBlIiwidmFsdWUiLCJGaWx0ZXJBcnJvd0V4dGVuc2lvbiIsIl9MYXllckV4dGVuc2lvbiIsIl9jbGFzc0NhbGxDaGVjayIsIl9jYWxsU3VwZXIiLCJhcmd1bWVudHMiLCJfaW5oZXJpdHMiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJnZXRTaGFkZXJzIiwibW9kdWxlcyIsImRlZmluZXMiLCJpbml0aWFsaXplU3RhdGUiLCJhdHRyaWJ1dGVNYW5hZ2VyIiwiZ2V0QXR0cmlidXRlTWFuYWdlciIsImFkZCIsImZpbHRlcmVkIiwic2l6ZSIsInN0ZXBNb2RlIiwiYWNjZXNzb3IiLCJfZGVmaW5lUHJvcGVydHkiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlY2tnbC1leHRlbnNpb25zL2ZpbHRlci1hcnJvdy1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0xheWVyLCBMYXllckV4dGVuc2lvbn0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5cbmltcG9ydCBzaGFkZXJNb2R1bGUgZnJvbSAnLi9maWx0ZXItc2hhZGVyLW1vZHVsZSc7XG5cbmNvbnN0IFZBTFVFX0ZJTFRFUkVEID0gMTtcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBnZXRGaWx0ZXJlZDoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBWQUxVRV9GSUxURVJFRH1cbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlckFycm93RXh0ZW5zaW9uUHJvcHMgPSB7XG4gIGdldEZpbHRlcmVkPzogKCkgPT4gbnVtYmVyO1xufTtcblxuLyoqXG4gKiBGaWx0ZXJBcnJvd0V4dGVuc2lvbiAtIGEgZGVjay5nbCBleHRlbnNpb24gdG8gZmlsdGVyIGFycm93IGxheWVyXG4gKlxuICogQSBzaW1wbGUgZXh0ZW5zaW9uIHRvIGZpbHRlciBhcnJvdyBsYXllciBiYXNlZCBvbiB0aGUgcmVzdWx0IG9mIENQVSBmaWx0ZXJlZEluZGV4LFxuICogc28gd2UgY2FuIGF2b2lkIGZpbHRlcmluZyBvbiB0aGUgcmF3IEFycm93IHRhYmxlIGFuZCByZWNyZWF0aW5nIGdlb21ldHJ5IGF0dHJpYnV0ZXMuXG4gKiBTcGVjaWZpY2FsbHksIGFuIGF0dHJpYnV0ZSBgZmlsdGVyZWRgIGlzIGFkZGVkIHRvIHRoZSBsYXllciB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBmZWF0dXJlIGhhcyBiZWVuIEZpbHRlcmVkXG4gKiB0aGUgc2hhZGVyIG1vZHVsZSBpcyBtb2RpZmllZCB0byBkaXNjYXJkIHRoZSBmZWF0dXJlIGlmIGZpbHRlcmVkIHZhbHVlIGlzIDBcbiAqIHRoZSBhY2Nlc3NvciBnZXRGaWx0ZXJlZCBpcyB1c2VkIHRvIGdldCB0aGUgdmFsdWUgb2YgYGZpbHRlcmVkYCBiYXNlZCBvbiB0aGUgdmFsdWUgYGZpbHRlcmVkSW5kZXhgIGluIEFycm93bGF5ZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsdGVyQXJyb3dFeHRlbnNpb24gZXh0ZW5kcyBMYXllckV4dGVuc2lvbiB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4gIHN0YXRpYyBleHRlbnNpb25OYW1lID0gJ0ZpbHRlckFycm93RXh0ZW5zaW9uJztcblxuICBnZXRTaGFkZXJzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBtb2R1bGVzOiBbc2hhZGVyTW9kdWxlXSxcbiAgICAgIGRlZmluZXM6IHt9XG4gICAgfTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSh0aGlzOiBMYXllcjxGaWx0ZXJBcnJvd0V4dGVuc2lvblByb3BzPikge1xuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcbiAgICBpZiAoYXR0cmlidXRlTWFuYWdlcikge1xuICAgICAgYXR0cmlidXRlTWFuYWdlci5hZGQoe1xuICAgICAgICBmaWx0ZXJlZDoge1xuICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgdHlwZTogJ2Zsb2F0MzInLFxuICAgICAgICAgIHN0ZXBNb2RlOiAnZHluYW1pYycsXG4gICAgICAgICAgYWNjZXNzb3I6ICdnZXRGaWx0ZXJlZCdcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTs7QUFFQSxTQUFlQSxjQUFjLFFBQU8sZUFBZTtBQUVuRCxPQUFPQyxZQUFZLE1BQU0sd0JBQXdCO0FBRWpELElBQU1DLGNBQWMsR0FBRyxDQUFDO0FBRXhCLElBQU1DLFlBQVksR0FBRztFQUNuQkMsV0FBVyxFQUFFO0lBQUNDLElBQUksRUFBRSxVQUFVO0lBQUVDLEtBQUssRUFBRUo7RUFBYztBQUN2RCxDQUFDO0FBTUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkEsSUFTcUJLLG9CQUFvQiwwQkFBQUMsZUFBQTtFQUFBLFNBQUFELHFCQUFBO0lBQUFFLGVBQUEsT0FBQUYsb0JBQUE7SUFBQSxPQUFBRyxVQUFBLE9BQUFILG9CQUFBLEVBQUFJLFNBQUE7RUFBQTtFQUFBQyxTQUFBLENBQUFMLG9CQUFBLEVBQUFDLGVBQUE7RUFBQSxPQUFBSyxZQUFBLENBQUFOLG9CQUFBO0lBQUFPLEdBQUE7SUFBQVIsS0FBQSxFQUl2QyxTQUFBUyxVQUFVQSxDQUFBLEVBQUc7TUFDWCxPQUFPO1FBQ0xDLE9BQU8sRUFBRSxDQUFDZixZQUFZLENBQUM7UUFDdkJnQixPQUFPLEVBQUUsQ0FBQztNQUNaLENBQUM7SUFDSDtFQUFDO0lBQUFILEdBQUE7SUFBQVIsS0FBQSxFQUVELFNBQUFZLGVBQWVBLENBQUEsRUFBeUM7TUFDdEQsSUFBTUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO01BQ25ELElBQUlELGdCQUFnQixFQUFFO1FBQ3BCQSxnQkFBZ0IsQ0FBQ0UsR0FBRyxDQUFDO1VBQ25CQyxRQUFRLEVBQUU7WUFDUkMsSUFBSSxFQUFFLENBQUM7WUFDUGxCLElBQUksRUFBRSxTQUFTO1lBQ2ZtQixRQUFRLEVBQUUsU0FBUztZQUNuQkMsUUFBUSxFQUFFO1VBQ1o7UUFDRixDQUFDLENBQUM7TUFDSjtJQUNGO0VBQUM7QUFBQSxFQXZCK0N6QixjQUFjO0FBQUEwQixlQUFBLENBQTNDbkIsb0JBQW9CLGtCQUNqQkosWUFBWTtBQUFBdUIsZUFBQSxDQURmbkIsb0JBQW9CLG1CQUVoQixzQkFBc0I7QUFBQSxTQUYxQkEsb0JBQW9CLElBQUFvQixPQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright contributors to the kepler.gl project
3
+
4
+ import { project } from '@deck.gl/core';
5
+ var vs = "\n in float filtered;\n";
6
+ var fs = "";
7
+ var inject = {
8
+ 'vs:#main-start': "\n if (filtered == 0.) {\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n "
9
+ };
10
+ export default {
11
+ name: 'filter-arrow',
12
+ dependencies: [project],
13
+ vs: vs,
14
+ fs: fs,
15
+ inject: inject,
16
+ getUniforms: function getUniforms() {
17
+ return;
18
+ }
19
+ };
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcm9qZWN0IiwidnMiLCJmcyIsImluamVjdCIsIm5hbWUiLCJkZXBlbmRlbmNpZXMiLCJnZXRVbmlmb3JtcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNrZ2wtZXh0ZW5zaW9ucy9maWx0ZXItc2hhZGVyLW1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge3Byb2plY3R9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuXG5jb25zdCB2cyA9IGBcbiAgaW4gZmxvYXQgZmlsdGVyZWQ7XG5gO1xuXG5jb25zdCBmcyA9IGBgO1xuXG5jb25zdCBpbmplY3QgPSB7XG4gICd2czojbWFpbi1zdGFydCc6IGBcbiAgICBpZiAoZmlsdGVyZWQgPT0gMC4pIHtcbiAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgYFxufTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnZmlsdGVyLWFycm93JyxcbiAgZGVwZW5kZW5jaWVzOiBbcHJvamVjdF0sXG4gIHZzLFxuICBmcyxcbiAgaW5qZWN0LFxuICBnZXRVbmlmb3JtczogKCkgPT4ge1xuICAgIHJldHVybjtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQSxTQUFRQSxPQUFPLFFBQU8sZUFBZTtBQUVyQyxJQUFNQyxFQUFFLDZCQUVQO0FBRUQsSUFBTUMsRUFBRSxLQUFLO0FBRWIsSUFBTUMsTUFBTSxHQUFHO0VBQ2IsZ0JBQWdCO0FBTWxCLENBQUM7QUFFRCxlQUFlO0VBQ2JDLElBQUksRUFBRSxjQUFjO0VBQ3BCQyxZQUFZLEVBQUUsQ0FBQ0wsT0FBTyxDQUFDO0VBQ3ZCQyxFQUFFLEVBQUZBLEVBQUU7RUFDRkMsRUFBRSxFQUFGQSxFQUFFO0VBQ0ZDLE1BQU0sRUFBTkEsTUFBTTtFQUNORyxXQUFXLEVBQUUsU0FBYkEsV0FBV0EsQ0FBQSxFQUFRO0lBQ2pCO0VBQ0Y7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119