@kepler.gl/deckgl-layers 3.3.0-alpha.4 → 3.3.0-alpha.6

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 (190) 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 +220 -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 +569 -0
  12. package/dist/cjs/globe/globe-stars-layer.js +69 -0
  13. package/dist/cjs/globe/globe-view.js +407 -0
  14. package/dist/{globe → cjs/globe}/index.js +1 -1
  15. package/dist/cjs/globe/mvt-label-layer.js +190 -0
  16. package/dist/cjs/grid-layer/enhanced-cpu-grid-layer.js +116 -0
  17. package/dist/cjs/hexagon-layer/enhanced-hexagon-layer.js +134 -0
  18. package/dist/{index.js → cjs/index.js} +1 -1
  19. package/dist/cjs/layer-utils/aggregation-utils.js +181 -0
  20. package/dist/cjs/layer-utils/cluster-utils.js +93 -0
  21. package/dist/cjs/layer-utils/cpu-aggregator.js +798 -0
  22. package/dist/cjs/layer-utils/globe-cell-utils.js +173 -0
  23. package/dist/cjs/layer-utils/shader-utils.js +38 -0
  24. package/dist/cjs/line-layer/line-layer.js +95 -0
  25. package/dist/cjs/raster/images.js +271 -0
  26. package/dist/cjs/raster/pipeline-validation-patch.js +101 -0
  27. package/dist/cjs/raster/raster-layer/raster-layer-shaders.js +163 -0
  28. package/dist/cjs/raster/raster-layer/raster-layer-webgl1.fs.js +10 -0
  29. package/dist/cjs/raster/raster-layer/raster-layer-webgl1.vs.js +10 -0
  30. package/dist/cjs/raster/raster-layer/raster-layer-webgl2.fs.js +10 -0
  31. package/dist/cjs/raster/raster-layer/raster-layer-webgl2.vs.js +10 -0
  32. package/dist/cjs/raster/raster-layer/raster-layer.js +287 -0
  33. package/dist/cjs/raster/raster-mesh-layer/matrix.js +18 -0
  34. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +38 -0
  35. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +10 -0
  36. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +10 -0
  37. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +10 -0
  38. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +10 -0
  39. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer.js +321 -0
  40. package/dist/cjs/raster/raster-processing-uniforms.js +124 -0
  41. package/dist/cjs/raster/types.js +6 -0
  42. package/dist/cjs/raster/util.js +139 -0
  43. package/dist/cjs/raster/webgl/color/colormap.js +45 -0
  44. package/dist/cjs/raster/webgl/color/filter.js +58 -0
  45. package/dist/cjs/raster/webgl/color/gamma-contrast.js +68 -0
  46. package/dist/cjs/raster/webgl/color/linear-rescale.js +35 -0
  47. package/dist/cjs/raster/webgl/color/saturation.js +42 -0
  48. package/dist/cjs/raster/webgl/color/sigmoidal-contrast.js +68 -0
  49. package/dist/{raster → cjs/raster}/webgl/index.js +1 -1
  50. package/dist/cjs/raster/webgl/pansharpen/pansharpen-brovey.js +46 -0
  51. package/dist/cjs/raster/webgl/spectral-indices/evi.js +26 -0
  52. package/dist/cjs/raster/webgl/spectral-indices/msavi.js +25 -0
  53. package/dist/cjs/raster/webgl/spectral-indices/normalized-difference.js +19 -0
  54. package/dist/cjs/raster/webgl/spectral-indices/savi.js +21 -0
  55. package/dist/cjs/raster/webgl/texture/combine-bands.js +65 -0
  56. package/dist/cjs/raster/webgl/texture/mask.js +50 -0
  57. package/dist/cjs/raster/webgl/texture/reorder-bands.js +72 -0
  58. package/dist/cjs/raster/webgl/texture/rgba-image.js +34 -0
  59. package/dist/cjs/raster/webgl/types.js +6 -0
  60. package/dist/cjs/svg-icon-layer/scatterplot-icon-layer.js +88 -0
  61. package/dist/cjs/svg-icon-layer/svg-icon-layer.js +104 -0
  62. package/dist/cjs/wms/wms-layer.js +624 -0
  63. package/dist/esm/3d-building-layer/3d-building-layer.js +62 -0
  64. package/dist/esm/3d-building-layer/3d-building-utils.js +157 -0
  65. package/dist/esm/3d-building-layer/types.js +3 -0
  66. package/dist/esm/cluster-layer/cluster-layer.js +286 -0
  67. package/dist/esm/column-layer/enhanced-column-layer.js +156 -0
  68. package/dist/esm/deckgl-extensions/filter-arrow-layer.js +64 -0
  69. package/dist/esm/deckgl-extensions/filter-shader-module.js +20 -0
  70. package/dist/esm/globe/atmosphere-layer.js +214 -0
  71. package/dist/esm/globe/enhanced-multi-icon-layer.js +60 -0
  72. package/dist/esm/globe/globe-depth-disk-layer.js +140 -0
  73. package/dist/esm/globe/globe-layers.js +561 -0
  74. package/dist/esm/globe/globe-stars-layer.js +63 -0
  75. package/dist/esm/globe/globe-view.js +401 -0
  76. package/dist/esm/globe/index.js +26 -0
  77. package/dist/esm/globe/mvt-label-layer.js +187 -0
  78. package/dist/esm/grid-layer/enhanced-cpu-grid-layer.js +112 -0
  79. package/dist/esm/hexagon-layer/enhanced-hexagon-layer.js +130 -0
  80. package/dist/esm/index.js +22 -0
  81. package/dist/esm/layer-utils/aggregation-utils.js +172 -0
  82. package/dist/esm/layer-utils/cluster-utils.js +86 -0
  83. package/dist/esm/layer-utils/cpu-aggregator.js +788 -0
  84. package/dist/esm/layer-utils/globe-cell-utils.js +167 -0
  85. package/dist/esm/layer-utils/shader-utils.js +32 -0
  86. package/dist/esm/line-layer/line-layer.js +91 -0
  87. package/dist/esm/raster/images.js +267 -0
  88. package/dist/esm/raster/pipeline-validation-patch.js +94 -0
  89. package/dist/esm/raster/raster-layer/raster-layer-shaders.js +153 -0
  90. package/dist/esm/raster/raster-layer/raster-layer-webgl1.fs.js +5 -0
  91. package/dist/esm/raster/raster-layer/raster-layer-webgl1.vs.js +5 -0
  92. package/dist/esm/raster/raster-layer/raster-layer-webgl2.fs.js +5 -0
  93. package/dist/esm/raster/raster-layer/raster-layer-webgl2.vs.js +5 -0
  94. package/dist/esm/raster/raster-layer/raster-layer.js +283 -0
  95. package/dist/esm/raster/raster-mesh-layer/matrix.js +12 -0
  96. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +30 -0
  97. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +5 -0
  98. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +5 -0
  99. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +5 -0
  100. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +5 -0
  101. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer.js +318 -0
  102. package/dist/esm/raster/raster-processing-uniforms.js +118 -0
  103. package/dist/esm/raster/types.js +3 -0
  104. package/dist/esm/raster/util.js +134 -0
  105. package/dist/esm/raster/webgl/color/colormap.js +39 -0
  106. package/dist/esm/raster/webgl/color/filter.js +52 -0
  107. package/dist/esm/raster/webgl/color/gamma-contrast.js +62 -0
  108. package/dist/esm/raster/webgl/color/linear-rescale.js +29 -0
  109. package/dist/esm/raster/webgl/color/saturation.js +36 -0
  110. package/dist/esm/raster/webgl/color/sigmoidal-contrast.js +62 -0
  111. package/dist/esm/raster/webgl/index.js +26 -0
  112. package/dist/esm/raster/webgl/pansharpen/pansharpen-brovey.js +40 -0
  113. package/dist/esm/raster/webgl/spectral-indices/evi.js +20 -0
  114. package/dist/esm/raster/webgl/spectral-indices/msavi.js +19 -0
  115. package/dist/esm/raster/webgl/spectral-indices/normalized-difference.js +13 -0
  116. package/dist/esm/raster/webgl/spectral-indices/savi.js +15 -0
  117. package/dist/esm/raster/webgl/texture/combine-bands.js +58 -0
  118. package/dist/esm/raster/webgl/texture/mask.js +44 -0
  119. package/dist/esm/raster/webgl/texture/reorder-bands.js +65 -0
  120. package/dist/esm/raster/webgl/texture/rgba-image.js +28 -0
  121. package/dist/esm/raster/webgl/types.js +3 -0
  122. package/dist/esm/svg-icon-layer/scatterplot-icon-layer.js +84 -0
  123. package/dist/esm/svg-icon-layer/svg-icon-layer.js +101 -0
  124. package/dist/esm/wms/wms-layer.js +619 -0
  125. package/dist/globe/atmosphere-layer.d.ts +13 -2
  126. package/dist/globe/globe-depth-disk-layer.d.ts +1 -0
  127. package/dist/globe/globe-layers.d.ts +8 -2
  128. package/dist/raster/images.d.ts +10 -1
  129. package/dist/raster/raster-layer/raster-layer.d.ts +4 -0
  130. package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +4 -0
  131. package/dist/wms/wms-layer.d.ts +8 -0
  132. package/package.json +18 -11
  133. package/dist/3d-building-layer/3d-building-layer.js +0 -66
  134. package/dist/3d-building-layer/3d-building-utils.js +0 -166
  135. package/dist/3d-building-layer/types.js +0 -6
  136. package/dist/cluster-layer/cluster-layer.js +0 -292
  137. package/dist/column-layer/enhanced-column-layer.js +0 -160
  138. package/dist/deckgl-extensions/filter-shader-module.js +0 -26
  139. package/dist/globe/atmosphere-layer.js +0 -184
  140. package/dist/globe/enhanced-multi-icon-layer.js +0 -63
  141. package/dist/globe/globe-depth-disk-layer.js +0 -145
  142. package/dist/globe/globe-layers.js +0 -565
  143. package/dist/globe/globe-stars-layer.js +0 -69
  144. package/dist/globe/globe-view.js +0 -316
  145. package/dist/globe/mvt-label-layer.js +0 -190
  146. package/dist/grid-layer/enhanced-cpu-grid-layer.js +0 -116
  147. package/dist/hexagon-layer/enhanced-hexagon-layer.js +0 -134
  148. package/dist/layer-utils/aggregation-utils.js +0 -181
  149. package/dist/layer-utils/cluster-utils.js +0 -93
  150. package/dist/layer-utils/cpu-aggregator.js +0 -798
  151. package/dist/layer-utils/globe-cell-utils.js +0 -173
  152. package/dist/layer-utils/shader-utils.js +0 -38
  153. package/dist/line-layer/line-layer.js +0 -95
  154. package/dist/raster/images.js +0 -259
  155. package/dist/raster/pipeline-validation-patch.js +0 -101
  156. package/dist/raster/raster-layer/raster-layer-shaders.js +0 -163
  157. package/dist/raster/raster-layer/raster-layer-webgl1.fs.js +0 -10
  158. package/dist/raster/raster-layer/raster-layer-webgl1.vs.js +0 -10
  159. package/dist/raster/raster-layer/raster-layer-webgl2.fs.js +0 -10
  160. package/dist/raster/raster-layer/raster-layer-webgl2.vs.js +0 -10
  161. package/dist/raster/raster-layer/raster-layer.js +0 -237
  162. package/dist/raster/raster-mesh-layer/matrix.js +0 -18
  163. package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +0 -38
  164. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +0 -10
  165. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +0 -10
  166. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +0 -10
  167. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +0 -10
  168. package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +0 -271
  169. package/dist/raster/raster-processing-uniforms.js +0 -124
  170. package/dist/raster/types.js +0 -6
  171. package/dist/raster/util.js +0 -139
  172. package/dist/raster/webgl/color/colormap.js +0 -45
  173. package/dist/raster/webgl/color/filter.js +0 -58
  174. package/dist/raster/webgl/color/gamma-contrast.js +0 -68
  175. package/dist/raster/webgl/color/linear-rescale.js +0 -35
  176. package/dist/raster/webgl/color/saturation.js +0 -42
  177. package/dist/raster/webgl/color/sigmoidal-contrast.js +0 -68
  178. package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +0 -46
  179. package/dist/raster/webgl/spectral-indices/evi.js +0 -26
  180. package/dist/raster/webgl/spectral-indices/msavi.js +0 -25
  181. package/dist/raster/webgl/spectral-indices/normalized-difference.js +0 -19
  182. package/dist/raster/webgl/spectral-indices/savi.js +0 -21
  183. package/dist/raster/webgl/texture/combine-bands.js +0 -65
  184. package/dist/raster/webgl/texture/mask.js +0 -50
  185. package/dist/raster/webgl/texture/reorder-bands.js +0 -72
  186. package/dist/raster/webgl/texture/rgba-image.js +0 -34
  187. package/dist/raster/webgl/types.js +0 -6
  188. package/dist/svg-icon-layer/scatterplot-icon-layer.js +0 -88
  189. package/dist/svg-icon-layer/svg-icon-layer.js +0 -104
  190. package/dist/wms/wms-layer.js +0 -594
@@ -0,0 +1,167 @@
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 { WebMercatorViewport } from '@deck.gl/core';
18
+
19
+ /**
20
+ * deck.gl's aggregation cell layers (GridCellLayer / HexagonCellLayer) position
21
+ * each cell in flat mercator "common space" (a 2D XY plane) and then draw it with
22
+ * `project_common_position_to_clipspace`, which only multiplies by the
23
+ * view-projection matrix. Under `_GlobeView` this leaves the cells on the flat XY
24
+ * plane that passes through the center of the globe instead of on its surface
25
+ * (the base ColumnLayer works on the globe because it feeds real lng/lat through
26
+ * `project_position` -> `project_globe_`; the aggregation cell shaders skip that).
27
+ *
28
+ * To fix this we remap the already-computed flat common-space vertex position back
29
+ * to lng/lat (inverse Web Mercator) and then onto the sphere with the same math
30
+ * `project_globe_` uses for geographic layers. Because we remap every vertex of the
31
+ * cell footprint (not just the centroid), the flat quad/hexagon naturally curves
32
+ * onto the surface. Elevation (extruded cells, stored in `geometry.position.z` in
33
+ * common units) is added along the radius so columns rise radially off the globe.
34
+ *
35
+ * The remap is gated by a `globeMode` uniform so 2D/3D mercator rendering is
36
+ * byte-for-byte unchanged.
37
+ *
38
+ * `WORLD_SCALE`, `PI`, `GLOBE_RADIUS` and `project.commonOrigin` are all provided
39
+ * by deck.gl's project shader module which these layers include.
40
+ */
41
+
42
+ // deck.gl 9 / luma 9 sets custom uniforms via UBO-backed shader modules (there is
43
+ // no Model.setUniforms). This minimal module exposes the globe-mode flag.
44
+ var globeCellUniforms = {
45
+ name: 'globeCell',
46
+ vs: "layout(std140) uniform globeCellUniforms {\n float globeMode;\n} globeCellProps;\n",
47
+ uniformTypes: {
48
+ globeMode: 'f32'
49
+ }
50
+ };
51
+ var GLOBE_CELL_DECL = /* glsl */"\n// Inverse of deck.gl project_mercator_: flat common XY -> lng/lat (degrees).\nvec2 kepler_commonToLngLat(vec2 commonXY) {\n float lng = degrees(commonXY.x / WORLD_SCALE - PI);\n float lat = degrees(2.0 * atan(exp(commonXY.y / WORLD_SCALE - PI)) - PI * 0.5);\n return vec2(lng, lat);\n}\n\n// Same math as deck.gl project_globe_. elevationCommon is in common units already\n// (GLOBE_RADIUS space), matching how project_globe_ scales z off EARTH_RADIUS.\nvec3 kepler_lngLatToGlobe(vec2 lngLat, float elevationCommon) {\n float lambda = radians(lngLat.x);\n float phi = radians(lngLat.y);\n float cosPhi = cos(phi);\n float D = GLOBE_RADIUS + elevationCommon;\n return vec3(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\n";
52
+
53
+ /**
54
+ * Rewrites a grid/hexagon cell vertex shader so that, in globe mode, the final
55
+ * clip-space position is derived from the sphere surface instead of the flat XY
56
+ * plane. In 2D/3D mode the original path is kept unchanged.
57
+ */
58
+ export function addGlobeCellProjection(vs, type) {
59
+ var decl = "".concat(GLOBE_CELL_DECL, "\nvoid main(void) {");
60
+ var withDecl = vs.includes('void main(void) {') ? vs.replace('void main(void) {', decl) : vs;
61
+ var target = 'gl_Position = project_common_position_to_clipspace(geometry.position);';
62
+ if (!withDecl.includes(target)) {
63
+ // Shader shape changed in a deck.gl update; leave the original so we don't crash.
64
+ // eslint-disable-next-line no-console
65
+ console.error("Cannot edit ".concat(type, " globe cell shader"));
66
+ return withDecl;
67
+ }
68
+ return withDecl.replace(target, "if (globeCellProps.globeMode > 0.5) {\n vec2 lngLat = kepler_commonToLngLat(geometry.position.xy + project.commonOrigin.xy);\n vec3 globePos = kepler_lngLatToGlobe(lngLat, geometry.position.z);\n geometry.position = vec4(globePos, 1.0);\n }\n gl_Position = project_common_position_to_clipspace(geometry.position);");
69
+ }
70
+
71
+ /**
72
+ * deck.gl 9's Grid/Hexagon aggregation compute bin positions and the cell layer's
73
+ * "common space" from `this.context.viewport`. Under `_GlobeView` that common space
74
+ * is the globe's 3D-projected space (projectFlat is identity on lng/lat, positions
75
+ * bin off the sphere-projected XY), which both mis-bins data and — combined with the
76
+ * flat cell shader — drops cells onto the plane through the globe center.
77
+ *
78
+ * We sidestep this by running `_updateBinOptions` with a WebMercatorViewport that
79
+ * matches the current globe camera. That makes binning, `cellOriginCommon` /
80
+ * `cellSizeCommon` (or `radiusCommon` / `hexOriginCommon`) and the cell shader's
81
+ * flat position all live in genuine Web Mercator common space, which the cell shader
82
+ * remap (`addGlobeCellProjection`) then curves back onto the sphere. In 2D/3D mode
83
+ * this is a no-op.
84
+ *
85
+ * `callSuper` runs deck.gl's original `_updateBinOptions` while the viewport is
86
+ * temporarily swapped. The swap is synchronous and restored in `finally`.
87
+ */
88
+ export function runBinOptionsWithMercatorViewport(layer, callSuper) {
89
+ var _layer$context;
90
+ var viewport = (_layer$context = layer.context) === null || _layer$context === void 0 ? void 0 : _layer$context.viewport;
91
+ var isGlobe = Boolean(viewport === null || viewport === void 0 ? void 0 : viewport.resolution);
92
+ if (!isGlobe) {
93
+ callSuper();
94
+ return;
95
+ }
96
+ var mercatorViewport = new WebMercatorViewport({
97
+ width: viewport.width,
98
+ height: viewport.height,
99
+ longitude: viewport.longitude,
100
+ latitude: viewport.latitude,
101
+ zoom: viewport.zoom
102
+ });
103
+ var originalViewport = layer.context.viewport;
104
+ layer.context.viewport = mercatorViewport;
105
+ try {
106
+ callSuper();
107
+ } finally {
108
+ layer.context.viewport = originalViewport;
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Wraps a deck.gl aggregation cell layer class (GridCellLayer / HexagonCellLayer)
114
+ * with a subclass that injects the globe surface remap into its vertex shader.
115
+ *
116
+ * We create the subclass dynamically from whatever default class deck.gl provides
117
+ * to `getSubLayerClass` so we don't have to import the (non-public) cell layer
118
+ * classes directly. Results are cached per base class so deck.gl sees a stable
119
+ * layer class across renders (layers are recreated every frame) and shader
120
+ * compilation / sublayer diffing stays stable.
121
+ */
122
+ var globeCellClassCache = new WeakMap();
123
+ export function makeGlobeCellLayerClass(BaseCellLayer, type) {
124
+ var cached = globeCellClassCache.get(BaseCellLayer);
125
+ if (cached) {
126
+ return cached;
127
+ }
128
+ var GlobeCellLayer = /*#__PURE__*/function (_ref) {
129
+ function GlobeCellLayer() {
130
+ _classCallCheck(this, GlobeCellLayer);
131
+ return _callSuper(this, GlobeCellLayer, arguments);
132
+ }
133
+ _inherits(GlobeCellLayer, _ref);
134
+ return _createClass(GlobeCellLayer, [{
135
+ key: "getShaders",
136
+ value: function getShaders() {
137
+ var shaders = _superPropGet(GlobeCellLayer, "getShaders", this, 1)();
138
+ return _objectSpread(_objectSpread({}, shaders), {}, {
139
+ vs: addGlobeCellProjection(shaders.vs, type),
140
+ modules: [].concat(_toConsumableArray(shaders.modules || []), [globeCellUniforms])
141
+ });
142
+ }
143
+ }, {
144
+ key: "draw",
145
+ value: function draw(opts) {
146
+ var globeMode = this.context.viewport.resolution ? 1.0 : 0.0;
147
+ // GridCellLayer / HexagonCellLayer render through a single fillModel and set
148
+ // their own module props in draw(); set ours first so it merges (setProps is
149
+ // per-module). deck.gl 9 has no Model.setUniforms — uniforms go through
150
+ // shaderInputs UBO modules.
151
+ var model = this.state.fillModel;
152
+ if (model !== null && model !== void 0 && model.shaderInputs) {
153
+ model.shaderInputs.setProps({
154
+ globeCell: {
155
+ globeMode: globeMode
156
+ }
157
+ });
158
+ }
159
+ _superPropGet(GlobeCellLayer, "draw", this, 1)(opts);
160
+ }
161
+ }]);
162
+ }(BaseCellLayer);
163
+ GlobeCellLayer.layerName = "Globe".concat(type, "CellLayer");
164
+ globeCellClassCache.set(BaseCellLayer, GlobeCellLayer);
165
+ return GlobeCellLayer;
166
+ }
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWJNZXJjYXRvclZpZXdwb3J0IiwiZ2xvYmVDZWxsVW5pZm9ybXMiLCJuYW1lIiwidnMiLCJ1bmlmb3JtVHlwZXMiLCJnbG9iZU1vZGUiLCJHTE9CRV9DRUxMX0RFQ0wiLCJhZGRHbG9iZUNlbGxQcm9qZWN0aW9uIiwidHlwZSIsImRlY2wiLCJjb25jYXQiLCJ3aXRoRGVjbCIsImluY2x1ZGVzIiwicmVwbGFjZSIsInRhcmdldCIsImNvbnNvbGUiLCJlcnJvciIsInJ1bkJpbk9wdGlvbnNXaXRoTWVyY2F0b3JWaWV3cG9ydCIsImxheWVyIiwiY2FsbFN1cGVyIiwiX2xheWVyJGNvbnRleHQiLCJ2aWV3cG9ydCIsImNvbnRleHQiLCJpc0dsb2JlIiwiQm9vbGVhbiIsInJlc29sdXRpb24iLCJtZXJjYXRvclZpZXdwb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsInpvb20iLCJvcmlnaW5hbFZpZXdwb3J0IiwiZ2xvYmVDZWxsQ2xhc3NDYWNoZSIsIldlYWtNYXAiLCJtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyIsIkJhc2VDZWxsTGF5ZXIiLCJjYWNoZWQiLCJnZXQiLCJHbG9iZUNlbGxMYXllciIsIl9yZWYiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJnZXRTaGFkZXJzIiwic2hhZGVycyIsIl9zdXBlclByb3BHZXQiLCJfb2JqZWN0U3ByZWFkIiwibW9kdWxlcyIsIl90b0NvbnN1bWFibGVBcnJheSIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gKHN1cGVyLmdldFNoYWRlcnMgYXMgKCkgPT4gYW55KSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIChzdXBlci5kcmF3IGFzIChvOiBhbnkpID0+IHZvaWQpKG9wdHMpO1xuICAgIH1cbiAgfVxuICAoR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyB7bGF5ZXJOYW1lOiBzdHJpbmd9KS5sYXllck5hbWUgPSBgR2xvYmUke3R5cGV9Q2VsbExheWVyYDtcbiAgZ2xvYmVDZWxsQ2xhc3NDYWNoZS5zZXQoQmFzZUNlbGxMYXllciwgR2xvYmVDZWxsTGF5ZXIpO1xuICByZXR1cm4gR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyBUO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTs7QUFFQSxTQUFRQSxtQkFBbUIsUUFBTyxlQUFlOztBQUVqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBTUMsaUJBQWlCLEdBQUc7RUFDeEJDLElBQUksRUFBRSxXQUFXO0VBQ2pCQyxFQUFFLHVGQUdIO0VBQ0NDLFlBQVksRUFBRTtJQUNaQyxTQUFTLEVBQUU7RUFDYjtBQUNGLENBQVU7QUFFVixJQUFNQyxlQUFlLEdBQUcsMndCQXFCdkI7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0Msc0JBQXNCQSxDQUFDSixFQUFVLEVBQUVLLElBQVksRUFBVTtFQUN2RSxJQUFNQyxJQUFJLE1BQUFDLE1BQUEsQ0FBTUosZUFBZSx3QkFBcUI7RUFDcEQs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
@@ -0,0 +1,32 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright contributors to the kepler.gl project
3
+
4
+ import { console as Console } from 'global/window';
5
+
6
+ /*
7
+ * Amendment to default layer vertex shader
8
+ * @param {string} vs
9
+ * @param {string} type
10
+ * @param {string} originalText
11
+ * @param {string} testToReplace
12
+ * @return {string} output shader
13
+ *
14
+ */
15
+ export function editShader(vs, type, originalText, testToReplace) {
16
+ if (!vs.includes(originalText)) {
17
+ // Here we call Console.error when we fail to edit deck.gl shader
18
+ // This should be caught by layer test
19
+ Console.error("Cannot edit ".concat(type, " layer shader"));
20
+ return vs;
21
+ }
22
+ return vs.replace(originalText, testToReplace);
23
+ }
24
+ export function insertBefore(vs, type, insertBeforeText, textToInsert) {
25
+ var at = vs.indexOf(insertBeforeText);
26
+ if (at < 0) {
27
+ Console.error("Cannot edit ".concat(type, " layer shader"));
28
+ return vs;
29
+ }
30
+ return vs.slice(0, at) + textToInsert + vs.slice(at);
31
+ }
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25zb2xlIiwiQ29uc29sZSIsImVkaXRTaGFkZXIiLCJ2cyIsInR5cGUiLCJvcmlnaW5hbFRleHQiLCJ0ZXN0VG9SZXBsYWNlIiwiaW5jbHVkZXMiLCJlcnJvciIsImNvbmNhdCIsInJlcGxhY2UiLCJpbnNlcnRCZWZvcmUiLCJpbnNlcnRCZWZvcmVUZXh0IiwidGV4dFRvSW5zZXJ0IiwiYXQiLCJpbmRleE9mIiwic2xpY2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXItdXRpbHMvc2hhZGVyLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Y29uc29sZSBhcyBDb25zb2xlfSBmcm9tICdnbG9iYWwvd2luZG93JztcblxuLypcbiAqIEFtZW5kbWVudCB0byBkZWZhdWx0IGxheWVyIHZlcnRleCBzaGFkZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSB2c1xuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXN0VG9SZXBsYWNlXG4gKiBAcmV0dXJuIHtzdHJpbmd9IG91dHB1dCBzaGFkZXJcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlZGl0U2hhZGVyKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgb3JpZ2luYWxUZXh0OiBzdHJpbmcsIHRlc3RUb1JlcGxhY2U6IHN0cmluZykge1xuICBpZiAoIXZzLmluY2x1ZGVzKG9yaWdpbmFsVGV4dCkpIHtcbiAgICAvLyBIZXJlIHdlIGNhbGwgQ29uc29sZS5lcnJvciB3aGVuIHdlIGZhaWwgdG8gZWRpdCBkZWNrLmdsIHNoYWRlclxuICAgIC8vIFRoaXMgc2hvdWxkIGJlIGNhdWdodCBieSBsYXllciB0ZXN0XG4gICAgQ29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBsYXllciBzaGFkZXJgKTtcbiAgICByZXR1cm4gdnM7XG4gIH1cblxuICByZXR1cm4gdnMucmVwbGFjZShvcmlnaW5hbFRleHQsIHRlc3RUb1JlcGxhY2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0QmVmb3JlKFxuICB2czogc3RyaW5nLFxuICB0eXBlOiBzdHJpbmcsXG4gIGluc2VydEJlZm9yZVRleHQ6IHN0cmluZyxcbiAgdGV4dFRvSW5zZXJ0OiBzdHJpbmdcbikge1xuICBjb25zdCBhdCA9IHZzLmluZGV4T2YoaW5zZXJ0QmVmb3JlVGV4dCk7XG4gIGlmIChhdCA8IDApIHtcbiAgICBDb25zb2xlLmVycm9yKGBDYW5ub3QgZWRpdCAke3R5cGV9IGxheWVyIHNoYWRlcmApO1xuICAgIHJldHVybiB2cztcbiAgfVxuXG4gIHJldHVybiB2cy5zbGljZSgwLCBhdCkgKyB0ZXh0VG9JbnNlcnQgKyB2cy5zbGljZShhdCk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUEsU0FBUUEsT0FBTyxJQUFJQyxPQUFPLFFBQU8sZUFBZTs7QUFFaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTQyxVQUFVQSxDQUFDQyxFQUFVLEVBQUVDLElBQVksRUFBRUMsWUFBb0IsRUFBRUMsYUFBcUIsRUFBRTtFQUNoRyxJQUFJLENBQUNILEVBQUUsQ0FBQ0ksUUFBUSxDQUFDRixZQUFZLENBQUMsRUFBRTtJQUM5QjtJQUNBO0lBQ0FKLE9BQU8sQ0FBQ08sS0FBSyxnQkFBQUMsTUFBQSxDQUFnQkwsSUFBSSxrQkFBZSxDQUFDO0lBQ2pELE9BQU9ELEVBQUU7RUFDWDtFQUVBLE9BQU9BLEVBQUUsQ0FBQ08sT0FBTyxDQUFDTCxZQUFZLEVBQUVDLGFBQWEsQ0FBQztBQUNoRDtBQUVBLE9BQU8sU0FBU0ssWUFBWUEsQ0FDMUJSLEVBQVUsRUFDVkMsSUFBWSxFQUNaUSxnQkFBd0IsRUFDeEJDLFlBQW9CLEVBQ3BCO0VBQ0EsSUFBTUMsRUFBRSxHQUFHWCxFQUFFLENBQUNZLE9BQU8sQ0FBQ0gsZ0JBQWdCLENBQUM7RUFDdkMsSUFBSUUsRUFBRSxHQUFHLENBQUMsRUFBRTtJQUNWYixPQUFPLENBQUNPLEtBQUssZ0JBQUFDLE1BQUEsQ0FBZ0JMLElBQUksa0JBQWUsQ0FBQztJQUNqRCxPQUFPRCxFQUFFO0VBQ1g7RUFFQSxPQUFPQSxFQUFFLENBQUNhLEtBQUssQ0FBQyxDQUFDLEVBQUVGLEVBQUUsQ0FBQyxHQUFHRCxZQUFZLEdBQUdWLEVBQUUsQ0FBQ2EsS0FBSyxDQUFDRixFQUFFLENBQUM7QUFDdEQiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,91 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
5
+ import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
6
+ import _get from "@babel/runtime/helpers/esm/get";
7
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
8
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
10
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
+ 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; }
12
+ 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; }
13
+ 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; }
14
+ // SPDX-License-Identifier: MIT
15
+ // Copyright contributors to the kepler.gl project
16
+
17
+ import { LineLayer } from '@deck.gl/layers';
18
+ import { editShader } from '../';
19
+ var elevationScaleUniforms = {
20
+ name: 'elevationScale',
21
+ vs: "uniform elevationScaleUniforms {\n float elevationScale;\n} elevationScaleProps;\n",
22
+ uniformTypes: {
23
+ elevationScale: 'f32'
24
+ }
25
+ };
26
+ var defaultProps = _objectSpread(_objectSpread({}, LineLayer.defaultProps), {}, {
27
+ getTargetColor: function getTargetColor(x) {
28
+ return x.color || [0, 0, 0, 255];
29
+ }
30
+ });
31
+ function addInstanceColorShader(vs) {
32
+ var targetColorVs = editShader(vs, 'line target color vs', 'in vec4 instanceColors;', 'in vec4 instanceColors; in vec4 instanceTargetColors;');
33
+ return editShader(targetColorVs, 'line color vs', 'vColor = vec4(instanceColors.rgb, instanceColors.a * layer.opacity);', "vec4 color = mix(instanceColors, instanceTargetColors, positions.x);" + "vColor = vec4(color.rgb, color.a * layer.opacity);");
34
+ }
35
+ function addElevationScale(vs) {
36
+ return editShader(vs, 'line elevation scale vs - multiply by elevation scale', "geometry.worldPosition = instanceSourcePositions;\ngeometry.worldPositionAlt = instanceTargetPositions;\nvec3 source_world = instanceSourcePositions;\nvec3 target_world = instanceTargetPositions;", "vec3 source_world = instanceSourcePositions;\nvec3 target_world = instanceTargetPositions;\nsource_world.z *= elevationScaleProps.elevationScale;\ntarget_world.z *= elevationScaleProps.elevationScale;\ngeometry.worldPosition = source_world;\ngeometry.worldPositionAlt = target_world;");
37
+ }
38
+ var EnhancedLineLayer = /*#__PURE__*/function (_LineLayer) {
39
+ function EnhancedLineLayer() {
40
+ _classCallCheck(this, EnhancedLineLayer);
41
+ return _callSuper(this, EnhancedLineLayer, arguments);
42
+ }
43
+ _inherits(EnhancedLineLayer, _LineLayer);
44
+ return _createClass(EnhancedLineLayer, [{
45
+ key: "getShaders",
46
+ value: function getShaders() {
47
+ var shaders = _superPropGet(EnhancedLineLayer, "getShaders", this, 3)([]);
48
+ var vs = addInstanceColorShader(shaders.vs);
49
+ vs = addElevationScale(vs);
50
+ return _objectSpread(_objectSpread({}, shaders), {}, {
51
+ vs: vs,
52
+ modules: [].concat(_toConsumableArray(shaders.modules || []), [elevationScaleUniforms])
53
+ });
54
+ }
55
+ }, {
56
+ key: "draw",
57
+ value: function draw(opts) {
58
+ var model = this.state.model;
59
+ if (model) {
60
+ var _this$props$elevation;
61
+ model.shaderInputs.setProps({
62
+ elevationScale: {
63
+ elevationScale: (_this$props$elevation = this.props.elevationScale) !== null && _this$props$elevation !== void 0 ? _this$props$elevation : 1
64
+ }
65
+ });
66
+ }
67
+ _superPropGet(EnhancedLineLayer, "draw", this, 3)([opts]);
68
+ }
69
+ }, {
70
+ key: "initializeState",
71
+ value: function initializeState() {
72
+ var _this$props$colorForm;
73
+ _superPropGet(EnhancedLineLayer, "initializeState", this, 3)([]);
74
+ var _ref = this.state,
75
+ attributeManager = _ref.attributeManager;
76
+ attributeManager.addInstanced({
77
+ instanceTargetColors: {
78
+ size: (_this$props$colorForm = this.props.colorFormat) === null || _this$props$colorForm === void 0 ? void 0 : _this$props$colorForm.length,
79
+ type: 'unorm8',
80
+ transition: true,
81
+ accessor: 'getTargetColor',
82
+ defaultValue: [0, 0, 0, 255]
83
+ }
84
+ });
85
+ }
86
+ }]);
87
+ }(LineLayer);
88
+ export { EnhancedLineLayer as default };
89
+ EnhancedLineLayer.layerName = 'EnhancedLineLayer';
90
+ EnhancedLineLayer.defaultProps = defaultProps;
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMaW5lTGF5ZXIiLCJlZGl0U2hhZGVyIiwiZWxldmF0aW9uU2NhbGVVbmlmb3JtcyIsIm5hbWUiLCJ2cyIsInVuaWZvcm1UeXBlcyIsImVsZXZhdGlvblNjYWxlIiwiZGVmYXVsdFByb3BzIiwiX29iamVjdFNwcmVhZCIsImdldFRhcmdldENvbG9yIiwieCIsImNvbG9yIiwiYWRkSW5zdGFuY2VDb2xvclNoYWRlciIsInRhcmdldENvbG9yVnMiLCJhZGRFbGV2YXRpb25TY2FsZSIsIkVuaGFuY2VkTGluZUxheWVyIiwiX0xpbmVMYXllciIsIl9jbGFzc0NhbGxDaGVjayIsIl9jYWxsU3VwZXIiLCJhcmd1bWVudHMiLCJfaW5oZXJpdHMiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsImdldFNoYWRlcnMiLCJzaGFkZXJzIiwiX3N1cGVyUHJvcEdldCIsIm1vZHVsZXMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJkcmF3Iiwib3B0cyIsIm1vZGVsIiwic3RhdGUiLCJfdGhpcyRwcm9wcyRlbGV2YXRpb24iLCJzaGFkZXJJbnB1dHMiLCJzZXRQcm9wcyIsInByb3BzIiwiaW5pdGlhbGl6ZVN0YXRlIiwiX3RoaXMkcHJvcHMkY29sb3JGb3JtIiwiX3JlZiIsImF0dHJpYnV0ZU1hbmFnZXIiLCJhZGRJbnN0YW5jZWQiLCJpbnN0YW5jZVRhcmdldENvbG9ycyIsInNpemUiLCJjb2xvckZvcm1hdCIsImxlbmd0aCIsInR5cGUiLCJ0cmFuc2l0aW9uIiwiYWNjZXNzb3IiLCJkZWZhdWx0VmFsdWUiLCJkZWZhdWx0IiwibGF5ZXJOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpbmUtbGF5ZXIvbGluZS1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0xpbmVMYXllciwgTGluZUxheWVyUHJvcHN9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQgdHlwZSB7Q29sb3IsIEF0dHJpYnV0ZU1hbmFnZXJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtlZGl0U2hhZGVyfSBmcm9tICcuLi8nO1xuXG50eXBlIFJHQkFDb2xvciA9IENvbG9yO1xuXG5jb25zdCBlbGV2YXRpb25TY2FsZVVuaWZvcm1zID0ge1xuICBuYW1lOiAnZWxldmF0aW9uU2NhbGUnLFxuICB2czogYHVuaWZvcm0gZWxldmF0aW9uU2NhbGVVbmlmb3JtcyB7XG4gIGZsb2F0IGVsZXZhdGlvblNjYWxlO1xufSBlbGV2YXRpb25TY2FsZVByb3BzO1xuYCxcbiAgdW5pZm9ybVR5cGVzOiB7XG4gICAgZWxldmF0aW9uU2NhbGU6ICdmMzInXG4gIH1cbn07XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgLi4uTGluZUxheWVyLmRlZmF1bHRQcm9wcyxcbiAgZ2V0VGFyZ2V0Q29sb3I6IHggPT4geC5jb2xvciB8fCBbMCwgMCwgMCwgMjU1XVxufTtcblxuZnVuY3Rpb24gYWRkSW5zdGFuY2VDb2xvclNoYWRlcih2cykge1xuICBjb25zdCB0YXJnZXRDb2xvclZzID0gZWRpdFNoYWRlcihcbiAgICB2cyxcbiAgICAnbGluZSB0YXJnZXQgY29sb3IgdnMnLFxuICAgICdpbiB2ZWM0IGluc3RhbmNlQ29sb3JzOycsXG4gICAgJ2luIHZlYzQgaW5zdGFuY2VDb2xvcnM7IGluIHZlYzQgaW5zdGFuY2VUYXJnZXRDb2xvcnM7J1xuICApO1xuXG4gIHJldHVybiBlZGl0U2hhZGVyKFxuICAgIHRhcmdldENvbG9yVnMsXG4gICAgJ2xpbmUgY29sb3IgdnMnLFxuICAgICd2Q29sb3IgPSB2ZWM0KGluc3RhbmNlQ29sb3JzLnJnYiwgaW5zdGFuY2VDb2xvcnMuYSAqIGxheWVyLm9wYWNpdHkpOycsXG4gICAgYHZlYzQgY29sb3IgPSBtaXgoaW5zdGFuY2VDb2xvcnMsIGluc3RhbmNlVGFyZ2V0Q29sb3JzLCBwb3NpdGlvbnMueCk7YCArXG4gICAgICBgdkNvbG9yID0gdmVjNChjb2xvci5yZ2IsIGNvbG9yLmEgKiBsYXllci5vcGFjaXR5KTtgXG4gICk7XG59XG5cbmZ1bmN0aW9uIGFkZEVsZXZhdGlvblNjYWxlKHZzKSB7XG4gIHJldHVybiBlZGl0U2hhZGVyKFxuICAgIHZzLFxuICAgICdsaW5lIGVsZXZhdGlvbiBzY2FsZSB2cyAtIG11bHRpcGx5IGJ5IGVsZXZhdGlvbiBzY2FsZScsXG4gICAgYGdlb21ldHJ5LndvcmxkUG9zaXRpb24gPSBpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucztcbmdlb21ldHJ5LndvcmxkUG9zaXRpb25BbHQgPSBpbnN0YW5jZVRhcmdldFBvc2l0aW9ucztcbnZlYzMgc291cmNlX3dvcmxkID0gaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM7XG52ZWMzIHRhcmdldF93b3JsZCA9IGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO2AsXG4gICAgYHZlYzMgc291cmNlX3dvcmxkID0gaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM7XG52ZWMzIHRhcmdldF93b3JsZCA9IGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO1xuc291cmNlX3dvcmxkLnogKj0gZWxldmF0aW9uU2NhbGVQcm9wcy5lbGV2YXRpb25TY2FsZTtcbnRhcmdldF93b3JsZC56ICo9IGVsZXZhdGlvblNjYWxlUHJvcHMuZWxldmF0aW9uU2NhbGU7XG5nZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gc291cmNlX3dvcmxkO1xuZ2VvbWV0cnkud29ybGRQb3NpdGlvbkFsdCA9IHRhcmdldF93b3JsZDtgXG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVuaGFuY2VkTGluZUxheWVyIGV4dGVuZHMgTGluZUxheWVyPFxuICBhbnksXG4gIExpbmVMYXllclByb3BzPGFueT4gJiB7ZWxldmF0aW9uU2NhbGU6IG51bWJlcjsgZ2V0VGFyZ2V0Q29sb3I6IFJHQkFDb2xvcn1cbj4ge1xuICBnZXRTaGFkZXJzKCkge1xuICAgIGNvbnN0IHNoYWRlcnMgPSBzdXBlci5nZXRTaGFkZXJzKCk7XG5cbiAgICBsZXQgdnMgPSBhZGRJbnN0YW5jZUNvbG9yU2hhZGVyKHNoYWRlcnMudnMpO1xuICAgIHZzID0gYWRkRWxldmF0aW9uU2NhbGUodnMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNoYWRlcnMsXG4gICAgICB2cyxcbiAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZWxldmF0aW9uU2NhbGVVbmlmb3Jtc11cbiAgICB9O1xuICB9XG5cbiAgZHJhdyhvcHRzKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLnN0YXRlLm1vZGVsO1xuICAgIGlmIChtb2RlbCkge1xuICAgICAgbW9kZWwuc2hhZGVySW5wdXRzLnNldFByb3BzKHtcbiAgICAgICAgZWxldmF0aW9uU2NhbGU6IHtcbiAgICAgICAgICBlbGV2YXRpb25TY2FsZTogdGhpcy5wcm9wcy5lbGV2YXRpb25TY2FsZSA/PyAxXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBzdXBlci5kcmF3KG9wdHMpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZSgpO1xuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGUgYXMge2F0dHJpYnV0ZU1hbmFnZXI6IEF0dHJpYnV0ZU1hbmFnZXJ9O1xuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkSW5zdGFuY2VkKHtcbiAgICAgIGluc3RhbmNlVGFyZ2V0Q29sb3JzOiB7XG4gICAgICAgIHNpemU6IHRoaXMucHJvcHMuY29sb3JGb3JtYXQ/Lmxlbmd0aCxcbiAgICAgICAgdHlwZTogJ3Vub3JtOCcsXG4gICAgICAgIHRyYW5zaXRpb246IHRydWUsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0VGFyZ2V0Q29sb3InLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IFswLCAwLCAwLCAyNTVdXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuRW5oYW5jZWRMaW5lTGF5ZXIubGF5ZXJOYW1lID0gJ0VuaGFuY2VkTGluZUxheWVyJztcbkVuaGFuY2VkTGluZUxheWVyLmRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBRUEsU0FBUUEsU0FBUyxRQUF1QixpQkFBaUI7QUFFekQsU0FBUUMsVUFBVSxRQUFPLEtBQUs7QUFJOUIsSUFBTUMsc0JBQXNCLEdBQUc7RUFDN0JDLElBQUksRUFBRSxnQkFBZ0I7RUFDdEJDLEVBQUUsdUZBR0g7RUFDQ0MsWUFBWSxFQUFFO0lBQ1pDLGNBQWMsRUFBRTtFQUNsQjtBQUNGLENBQUM7QUFFRCxJQUFNQyxZQUFZLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNiUixTQUFTLENBQUNPLFlBQVk7RUFDekJFLGNBQWMsRUFBRSxTQUFoQkEsY0FBY0EsQ0FBRUMsQ0FBQztJQUFBLE9BQUlBLENBQUMsQ0FBQ0MsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDO0VBQUE7QUFBQSxFQUMvQztBQUVELFNBQVNDLHNCQUFzQkEsQ0FBQ1IsRUFBRSxFQUFFO0VBQ2xDLElBQU1TLGFBQWEsR0FBR1osVUFBVSxDQUM5QkcsRUFBRSxFQUNGLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsdURBQ0YsQ0FBQztFQUVELE9BQU9ILFVBQVUsQ0FDZlksYUFBYSxFQUNiLGVBQWUsRUFDZixzRUFBc0UsRUFDdEUsNkhBRUYsQ0FBQztBQUNIO0FBRUEsU0FBU0MsaUJBQWlCQSxDQUFDVixFQUFFLEVBQUU7RUFDN0IsT0FBT0gsVUFBVSxDQUNmRyxFQUFFLEVBQ0YsdURBQXVELHNlQVd6RCxDQUFDO0FBQ0g7QUFBQyxJQUVvQlcsaUJBQWlCLDBCQUFBQyxVQUFBO0VBQUEsU0FBQUQsa0JBQUE7SUFBQUUsZUFBQSxPQUFBRixpQkFBQTtJQUFBLE9BQUFHLFVBQUEsT0FBQUgsaUJBQUEsRUFBQUksU0FBQTtFQUFBO0VBQUFDLFNBQUEsQ0FBQUwsaUJBQUEsRUFBQUMsVUFBQTtFQUFBLE9BQUFLLFlBQUEsQ0FBQU4saUJBQUE7SUFBQU8sR0FBQTtJQUFBQyxLQUFBLEVBSXBDLFNBQUFDLFVBQVVBLENBQUEsRUFBRztNQUNYLElBQU1DLE9BQU8sR0FBQUMsYUFBQSxDQUFBWCxpQkFBQSw0QkFBcUI7TUFFbEMsSUFBSVgsRUFBRSxHQUFHUSxzQkFBc0IsQ0FBQ2EsT0FBTyxDQUFDckIsRUFBRSxDQUFDO01BQzNDQSxFQUFFLEdBQUdVLGlCQUFpQixDQUFDVixFQUFFLENBQUM7TUFFMUIsT0FBQUksYUFBQSxDQUFBQSxhQUFBLEtBQ0tpQixPQUFPO1FBQ1ZyQixFQUFFLEVBQUZBLEVBQUU7UUFDRnVCLE9BQU8sS0FBQUMsTUFBQSxDQUFBQyxrQkFBQSxDQUFPSixPQUFPLENBQUNFLE9BQU8sSUFBSSxFQUFFLElBQUd6QixzQkFBc0I7TUFBQztJQUVqRTtFQUFDO0lBQUFvQixHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBTyxJQUFJQSxDQUFDQyxJQUFJLEVBQUU7TUFDVCxJQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFDQyxLQUFLLENBQUNELEtBQUs7TUFDOUIsSUFBSUEsS0FBSyxFQUFFO1FBQUEsSUFBQUUscUJBQUE7UUFDVEYsS0FBSyxDQUFDRyxZQUFZLENBQUNDLFFBQVEsQ0FBQztVQUMxQjlCLGNBQWMsRUFBRTtZQUNkQSxjQUFjLEdBQUE0QixxQkFBQSxHQUFFLElBQUksQ0FBQ0csS0FBSyxDQUFDL0IsY0FBYyxjQUFBNEIscUJBQUEsY0FBQUEscUJBQUEsR0FBSTtVQUMvQztRQUNGLENBQUMsQ0FBQztNQUNKO01BQ0FSLGFBQUEsQ0FBQVgsaUJBQUEsb0JBQVdnQixJQUFJO0lBQ2pCO0VBQUM7SUFBQVQsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQWUsZUFBZUEsQ0FBQSxFQUFHO01BQUEsSUFBQUMscUJBQUE7TUFDaEJiLGFBQUEsQ0FBQVgsaUJBQUE7TUFDQSxJQUFBeUIsSUFBQSxHQUEyQixJQUFJLENBQUNQLEtBQUs7UUFBOUJRLGdCQUFnQixHQUFBRCxJQUFBLENBQWhCQyxnQkFBZ0I7TUFDdkJBLGdCQUFnQixDQUFDQyxZQUFZLENBQUM7UUFDNUJDLG9CQUFvQixFQUFFO1VBQ3BCQyxJQUFJLEdBQUFMLHFCQUFBLEdBQUUsSUFBSSxDQUFDRixLQUFLLENBQUNRLFdBQVcsY0FBQU4scUJBQUEsdUJBQXRCQSxxQkFBQSxDQUF3Qk8sTUFBTTtVQUNwQ0MsSUFBSSxFQUFFLFFBQVE7VUFDZEMsVUFBVSxFQUFFLElBQUk7VUFDaEJDLFFBQVEsRUFBRSxnQkFBZ0I7VUFDMUJDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUc7UUFDN0I7TUFDRixDQUFDLENBQUM7SUFDSjtFQUFDO0FBQUEsRUF6QzRDbEQsU0FBUztBQUFBLFNBQW5DZSxpQkFBaUIsSUFBQW9DLE9BQUE7QUE0Q3RDcEMsaUJBQWlCLENBQUNxQyxTQUFTLEdBQUcsbUJBQW1CO0FBQ2pEckMsaUJBQWlCLENBQUNSLFlBQVksR0FBR0EsWUFBWSIsImlnbm9yZUxpc3QiOltdfQ==