@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
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
- var _aggregationLayers = require("@deck.gl/aggregation-layers");
16
- var _aggregationUtils = require("../layer-utils/aggregation-utils");
17
- 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; }
18
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
20
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
- function _superPropGet(t, e, r, o) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; } // SPDX-License-Identifier: MIT
22
- // Copyright contributors to the kepler.gl project
23
- /**
24
- * In deck.gl 9, GridLayer natively supports CPU aggregation via gpuAggregation: false,
25
- * custom getColorValue/getElevationValue accessors, percentile filtering, and scale types.
26
- * The custom CPUAggregator override from deck.gl 8 is no longer needed.
27
- *
28
- * We override getPickingInfo to add `cellOutline` — an array of [lng, lat] coordinates
29
- * computed in common space so the outline aligns with rendered cells at all latitudes.
30
- *
31
- * We also override _onAggregationUpdate to send per-bin aggregated values through
32
- * onSetColorDomain so the legend can compute proper quantile/custom breaks.
33
- */
34
- // @ts-expect-error -- overriding private _onAggregationUpdate to enrich the onSetColorDomain callback
35
- var ScaleEnhancedGridLayer = exports["default"] = /*#__PURE__*/function (_GridLayer) {
36
- function ScaleEnhancedGridLayer() {
37
- (0, _classCallCheck2["default"])(this, ScaleEnhancedGridLayer);
38
- return _callSuper(this, ScaleEnhancedGridLayer, arguments);
39
- }
40
- (0, _inherits2["default"])(ScaleEnhancedGridLayer, _GridLayer);
41
- return (0, _createClass2["default"])(ScaleEnhancedGridLayer, [{
42
- key: "_onAggregationUpdate",
43
- value:
44
- // HACK: deck.gl 9's _onAggregationUpdate is private and its onSetColorDomain
45
- // callback only provides [min, max]. That is sufficient for quantize/linear
46
- // scales but d3.scaleQuantile needs the *full sorted array* of bin values to
47
- // compute correct break points — without it the legend labels are wrong
48
- function _onAggregationUpdate(_ref) {
49
- var channel = _ref.channel;
50
- (0, _aggregationUtils.enrichedAggregationUpdate)(this, _aggregationLayers.GridLayer, channel);
51
- }
52
- }, {
53
- key: "renderLayers",
54
- value: function renderLayers() {
55
- return (0, _aggregationUtils.enrichedRenderLayers)(this, _aggregationLayers.GridLayer);
56
- }
57
- }, {
58
- key: "getPickingInfo",
59
- value: function getPickingInfo(params) {
60
- var info = _superPropGet(ScaleEnhancedGridLayer, "getPickingInfo", this, 3)([params]);
61
- if (info.object) {
62
- var _this$props$coverage;
63
- var _ref2 = this.state,
64
- cellOriginCommon = _ref2.cellOriginCommon,
65
- cellSizeCommon = _ref2.cellSizeCommon,
66
- aggregatorViewport = _ref2.aggregatorViewport;
67
- var coverage = (_this$props$coverage = this.props.coverage) !== null && _this$props$coverage !== void 0 ? _this$props$coverage : 1;
68
- if (!cellOriginCommon || !cellSizeCommon || !aggregatorViewport) {
69
- console.error('ScaleEnhancedGridLayer: expected internal state properties ' + '(cellOriginCommon, cellSizeCommon, aggregatorViewport) are missing. ' + 'Hover outline will not be shown. This may indicate a deck.gl version change.');
70
- return info;
71
- }
72
- var _ref3 = info.object,
73
- col = _ref3.col,
74
- row = _ref3.row;
75
- if (typeof col !== 'number' || typeof row !== 'number') return info;
76
- var cx = (col + 0.5) * cellSizeCommon[0] + cellOriginCommon[0];
77
- var cy = (row + 0.5) * cellSizeCommon[1] + cellOriginCommon[1];
78
- var hw = 0.5 * coverage * cellSizeCommon[0];
79
- var hh = 0.5 * coverage * cellSizeCommon[1];
80
- info.object.cellOutline = [aggregatorViewport.unprojectFlat([cx - hw, cy - hh]), aggregatorViewport.unprojectFlat([cx + hw, cy - hh]), aggregatorViewport.unprojectFlat([cx + hw, cy + hh]), aggregatorViewport.unprojectFlat([cx - hw, cy + hh]), aggregatorViewport.unprojectFlat([cx - hw, cy - hh])];
81
- }
82
- return info;
83
- }
84
- }]);
85
- }(_aggregationLayers.GridLayer);
86
- (0, _defineProperty2["default"])(ScaleEnhancedGridLayer, "defaultProps", _objectSpread(_objectSpread({}, _aggregationLayers.GridLayer.defaultProps), {}, {
87
- gpuAggregation: false
88
- }));
89
- ScaleEnhancedGridLayer.layerName = 'ScaleEnhancedGridLayer';
90
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWdncmVnYXRpb25MYXllcnMiLCJyZXF1aXJlIiwiX2FnZ3JlZ2F0aW9uVXRpbHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJTY2FsZUVuaGFuY2VkR3JpZExheWVyIiwiZXhwb3J0cyIsIl9HcmlkTGF5ZXIiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsIl9vbkFnZ3JlZ2F0aW9uVXBkYXRlIiwiX3JlZiIsImNoYW5uZWwiLCJlbnJpY2hlZEFnZ3JlZ2F0aW9uVXBkYXRlIiwiR3JpZExheWVyIiwicmVuZGVyTGF5ZXJzIiwiZW5yaWNoZWRSZW5kZXJMYXllcnMiLCJnZXRQaWNraW5nSW5mbyIsInBhcmFtcyIsImluZm8iLCJvYmplY3QiLCJfdGhpcyRwcm9wcyRjb3ZlcmFnZSIsIl9yZWYyIiwic3RhdGUiLCJjZWxsT3JpZ2luQ29tbW9uIiwiY2VsbFNpemVDb21tb24iLCJhZ2dyZWdhdG9yVmlld3BvcnQiLCJjb3ZlcmFnZSIsInByb3BzIiwiY29uc29sZSIsImVycm9yIiwiX3JlZjMiLCJjb2wiLCJyb3ciLCJjeCIsImN5IiwiaHciLCJoaCIsImNlbGxPdXRsaW5lIiwidW5wcm9qZWN0RmxhdCIsImRlZmF1bHRQcm9wcyIsImdwdUFnZ3JlZ2F0aW9uIiwibGF5ZXJOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dyaWQtbGF5ZXIvZW5oYW5jZWQtY3B1LWdyaWQtbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtHcmlkTGF5ZXIsIEdyaWRMYXllclBpY2tpbmdJbmZvfSBmcm9tICdAZGVjay5nbC9hZ2dyZWdhdGlvbi1sYXllcnMnO1xuaW1wb3J0IHtHZXRQaWNraW5nSW5mb1BhcmFtcywgUGlja2luZ0luZm8sIFZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7ZW5yaWNoZWRBZ2dyZWdhdGlvblVwZGF0ZSwgZW5yaWNoZWRSZW5kZXJMYXllcnN9IGZyb20gJy4uL2xheWVyLXV0aWxzL2FnZ3JlZ2F0aW9uLXV0aWxzJztcblxuaW50ZXJmYWNlIEdyaWRJbnRlcm5hbFN0YXRlIHtcbiAgY2VsbE9yaWdpbkNvbW1vbj86IFtudW1iZXIsIG51bWJlcl07XG4gIGNlbGxTaXplQ29tbW9uPzogW251bWJlciwgbnVtYmVyXTtcbiAgYWdncmVnYXRvclZpZXdwb3J0PzogVmlld3BvcnQgJiB7dW5wcm9qZWN0RmxhdCh4eTogbnVtYmVyW10pOiBudW1iZXJbXX07XG59XG5cbmludGVyZmFjZSBHcmlkUGlja2luZ09iamVjdCB7XG4gIGNvbDogbnVtYmVyO1xuICByb3c6IG51bWJlcjtcbiAgY2VsbE91dGxpbmU/OiBudW1iZXJbXVtdO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEluIGRlY2suZ2wgOSwgR3JpZExheWVyIG5hdGl2ZWx5IHN1cHBvcnRzIENQVSBhZ2dyZWdhdGlvbiB2aWEgZ3B1QWdncmVnYXRpb246IGZhbHNlLFxuICogY3VzdG9tIGdldENvbG9yVmFsdWUvZ2V0RWxldmF0aW9uVmFsdWUgYWNjZXNzb3JzLCBwZXJjZW50aWxlIGZpbHRlcmluZywgYW5kIHNjYWxlIHR5cGVzLlxuICogVGhlIGN1c3RvbSBDUFVBZ2dyZWdhdG9yIG92ZXJyaWRlIGZyb20gZGVjay5nbCA4IGlzIG5vIGxvbmdlciBuZWVkZWQuXG4gKlxuICogV2Ugb3ZlcnJpZGUgZ2V0UGlja2luZ0luZm8gdG8gYWRkIGBjZWxsT3V0bGluZWAg4oCUIGFuIGFycmF5IG9mIFtsbmcsIGxhdF0gY29vcmRpbmF0ZXNcbiAqIGNvbXB1dGVkIGluIGNvbW1vbiBzcGFjZSBzbyB0aGUgb3V0bGluZSBhbGlnbnMgd2l0aCByZW5kZXJlZCBjZWxscyBhdCBhbGwgbGF0aXR1ZGVzLlxuICpcbiAqIFdlIGFsc28gb3ZlcnJpZGUgX29uQWdncmVnYXRpb25VcGRhdGUgdG8gc2VuZCBwZXItYmluIGFnZ3JlZ2F0ZWQgdmFsdWVzIHRocm91Z2hcbiAqIG9uU2V0Q29sb3JEb21haW4gc28gdGhlIGxlZ2VuZCBjYW4gY29tcHV0ZSBwcm9wZXIgcXVhbnRpbGUvY3VzdG9tIGJyZWFrcy5cbiAqL1xuLy8gQHRzLWV4cGVjdC1lcnJvciAtLSBvdmVycmlkaW5nIHByaXZhdGUgX29uQWdncmVnYXRpb25VcGRhdGUgdG8gZW5yaWNoIHRoZSBvblNldENvbG9yRG9tYWluIGNhbGxiYWNrXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY2FsZUVuaGFuY2VkR3JpZExheWVyIGV4dGVuZHMgR3JpZExheWVyPGFueT4ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIC4uLkdyaWRMYXllci5kZWZhdWx0UHJvcHMsXG4gICAgZ3B1QWdncmVnYXRpb246IGZhbHNlXG4gIH07XG5cbiAgLy8gSEFDSzogZGVjay5nbCA5J3MgX29uQWdncmVnYXRpb25VcGRhdGUgaXMgcHJpdmF0ZSBhbmQgaXRzIG9uU2V0Q29sb3JEb21haW5cbiAgLy8gY2FsbGJhY2sgb25seSBwcm92aWRlcyBbbWluLCBtYXhdLiAgVGhhdCBpcyBzdWZmaWNpZW50IGZvciBxdWFudGl6ZS9saW5lYXJcbiAgLy8gc2NhbGVzIGJ1dCBkMy5zY2FsZVF1YW50aWxlIG5lZWRzIHRoZSAqZnVsbCBzb3J0ZWQgYXJyYXkqIG9mIGJpbiB2YWx1ZXMgdG9cbiAgLy8gY29tcHV0ZSBjb3JyZWN0IGJyZWFrIHBvaW50cyDigJQgd2l0aG91dCBpdCB0aGUgbGVnZW5kIGxhYmVscyBhcmUgd3JvbmdcbiAgX29uQWdncmVnYXRpb25VcGRhdGUoe2NoYW5uZWx9OiB7Y2hhbm5lbDogbnVtYmVyfSkge1xuICAgIGVucmljaGVkQWdncmVnYXRpb25VcGRhdGUodGhpcywgR3JpZExheWVyLCBjaGFubmVsKTtcbiAgfVxuXG4gIHJlbmRlckxheWVycygpIHtcbiAgICByZXR1cm4gZW5yaWNoZWRSZW5kZXJMYXllcnModGhpcywgR3JpZExheWVyKTtcbiAgfVxuXG4gIGdldFBpY2tpbmdJbmZvKHBhcmFtczogR2V0UGlja2luZ0luZm9QYXJhbXMpOiBQaWNraW5nSW5mbyB7XG4gICAgY29uc3QgaW5mbyA9IHN1cGVyLmdldFBpY2tpbmdJbmZvKHBhcmFtcykgYXMgR3JpZExheWVyUGlja2luZ0luZm88UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuICAgIGlmIChpbmZvLm9iamVjdCkge1xuICAgICAgY29uc3Qge2NlbGxPcmlnaW5Db21tb24sIGNlbGxTaXplQ29tbW9uLCBhZ2dyZWdhdG9yVmlld3BvcnR9ID0gdGhpc1xuICAgICAgICAuc3RhdGUgYXMgdW5rbm93biBhcyBHcmlkSW50ZXJuYWxTdGF0ZTtcbiAgICAgIGNvbnN0IGNvdmVyYWdlID0gdGhpcy5wcm9wcy5jb3ZlcmFnZSA/PyAxO1xuICAgICAgaWYgKCFjZWxsT3JpZ2luQ29tbW9uIHx8ICFjZWxsU2l6ZUNvbW1vbiB8fCAhYWdncmVnYXRvclZpZXdwb3J0KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ1NjYWxlRW5oYW5jZWRHcmlkTGF5ZXI6IGV4cGVjdGVkIGludGVybmFsIHN0YXRlIHByb3BlcnRpZXMgJyArXG4gICAgICAgICAgICAnKGNlbGxPcmlnaW5Db21tb24sIGNlbGxTaXplQ29tbW9uLCBhZ2dyZWdhdG9yVmlld3BvcnQpIGFyZSBtaXNzaW5nLiAnICtcbiAgICAgICAgICAgICdIb3ZlciBvdXRsaW5lIHdpbGwgbm90IGJlIHNob3duLiBUaGlzIG1heSBpbmRpY2F0ZSBhIGRlY2suZ2wgdmVyc2lvbiBjaGFuZ2UuJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gaW5mbztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHtjb2wsIHJvd30gPSBpbmZvLm9iamVjdCBhcyBHcmlkUGlja2luZ09iamVjdDtcbiAgICAgIGlmICh0eXBlb2YgY29sICE9PSAnbnVtYmVyJyB8fCB0eXBlb2Ygcm93ICE9PSAnbnVtYmVyJykgcmV0dXJuIGluZm87XG4gICAgICBjb25zdCBjeCA9IChjb2wgKyAwLjUpICogY2VsbFNpemVDb21tb25bMF0gKyBjZWxsT3JpZ2luQ29tbW9uWzBdO1xuICAgICAgY29uc3QgY3kgPSAocm93ICsgMC41KSAqIGNlbGxTaXplQ29tbW9uWzFdICsgY2VsbE9yaWdpbkNvbW1vblsxXTtcbiAgICAgIGNvbnN0IGh3ID0gMC41ICogY292ZXJhZ2UgKiBjZWxsU2l6ZUNvbW1vblswXTtcbiAgICAgIGNvbnN0IGhoID0gMC41ICogY292ZXJhZ2UgKiBjZWxsU2l6ZUNvbW1vblsxXTtcblxuICAgICAgKGluZm8ub2JqZWN0IGFzIEdyaWRQaWNraW5nT2JqZWN0KS5jZWxsT3V0bGluZSA9IFtcbiAgICAgICAgYWdncmVnYXRvclZpZXdwb3J0LnVucHJvamVjdEZsYXQoW2N4IC0gaHcsIGN5IC0gaGhdKSxcbiAgICAgICAgYWdncmVnYXRvclZpZXdwb3J0LnVucHJvamVjdEZsYXQoW2N4ICsgaHcsIGN5IC0gaGhdKSxcbiAgICAgICAgYWdncmVnYXRvclZpZXdwb3J0LnVucHJvamVjdEZsYXQoW2N4ICsgaHcsIGN5ICsgaGhdKSxcbiAgICAgICAgYWdncmVnYXRvclZpZXdwb3J0LnVucHJvamVjdEZsYXQoW2N4IC0gaHcsIGN5ICsgaGhdKSxcbiAgICAgICAgYWdncmVnYXRvclZpZXdwb3J0LnVucHJvamVjdEZsYXQoW2N4IC0gaHcsIGN5IC0gaGhdKVxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIGluZm87XG4gIH1cbn1cblxuU2NhbGVFbmhhbmNlZEdyaWRMYXllci5sYXllck5hbWUgPSAnU2NhbGVFbmhhbmNlZEdyaWRMYXllcic7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsa0JBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFBaUcsU0FBQUUsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFBQSxTQUFBb0IsV0FBQWxCLENBQUEsRUFBQUksQ0FBQSxFQUFBTixDQUFBLFdBQUFNLENBQUEsT0FBQWUsZ0JBQUEsYUFBQWYsQ0FBQSxPQUFBZ0IsMkJBQUEsYUFBQXBCLENBQUEsRUFBQXFCLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBbkIsQ0FBQSxFQUFBTixDQUFBLFlBQUFxQixnQkFBQSxhQUFBbkIsQ0FBQSxFQUFBd0IsV0FBQSxJQUFBcEIsQ0FBQSxDQUFBSyxLQUFBLENBQUFULENBQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUF1QiwwQkFBQSxjQUFBckIsQ0FBQSxJQUFBeUIsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQUMsSUFBQSxDQUFBTixPQUFBLENBQUFDLFNBQUEsQ0FBQUUsT0FBQSxpQ0FBQXpCLENBQUEsYUFBQXFCLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFyQixDQUFBO0FBQUEsU0FBQTZCLGNBQUE3QixDQUFBLEVBQUFGLENBQUEsRUFBQUMsQ0FBQSxFQUFBSyxDQUFBLFFBQUEwQixDQUFBLE9BQUFDLEtBQUEsaUJBQUFaLGdCQUFBLGlCQUFBZixDQUFBLEdBQUFKLENBQUEsQ0FBQTBCLFNBQUEsR0FBQTFCLENBQUEsR0FBQUYsQ0FBQSxFQUFBQyxDQUFBLGNBQUFLLENBQUEsYUFBQUosQ0FBQSxXQUFBOEIsQ0FBQSxDQUFBckIsS0FBQSxDQUFBVixDQUFBLEVBQUFDLENBQUEsT0FBQThCLENBQUEsSUFMakc7QUFDQTtBQW1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQSxJQUNxQkUsc0JBQXNCLEdBQUFDLE9BQUEscUNBQUFDLFVBQUE7RUFBQSxTQUFBRix1QkFBQTtJQUFBLElBQUFHLGdCQUFBLG1CQUFBSCxzQkFBQTtJQUFBLE9BQUFkLFVBQUEsT0FBQWMsc0JBQUEsRUFBQXJCLFNBQUE7RUFBQTtFQUFBLElBQUF5QixVQUFBLGFBQUFKLHNCQUFBLEVBQUFFLFVBQUE7RUFBQSxXQUFBRyxhQUFBLGFBQUFMLHNCQUFBO0lBQUFNLEdBQUE7SUFBQUMsS0FBQTtJQU16QztJQUNBO0lBQ0E7SUFDQTtJQUNBLFNBQUFDLG9CQUFvQkEsQ0FBQUMsSUFBQSxFQUErQjtNQUFBLElBQTdCQyxPQUFPLEdBQUFELElBQUEsQ0FBUEMsT0FBTztNQUMzQixJQUFBQywyQ0FBeUIsRUFBQyxJQUFJLEVBQUVDLDRCQUFTLEVBQUVGLE9BQU8sQ0FBQztJQUNyRDtFQUFDO0lBQUFKLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFNLFlBQVlBLENBQUEsRUFBRztNQUNiLE9BQU8sSUFBQUMsc0NBQW9CLEVBQUMsSUFBSSxFQUFFRiw0QkFBUyxDQUFDO0lBQzlDO0VBQUM7SUFBQU4sR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQVEsY0FBY0EsQ0FBQ0MsTUFBNEIsRUFBZTtNQUN4RCxJQUFNQyxJQUFJLEdBQUFwQixhQUFBLENBQUFHLHNCQUFBLDhCQUF3QmdCLE1BQU0sRUFBa0Q7TUFDMUYsSUFBSUMsSUFBSSxDQUFDQyxNQUFNLEVBQUU7UUFBQSxJQUFBQyxvQkFBQTtRQUNmLElBQUFDLEtBQUEsR0FBK0QsSUFBSSxDQUNoRUMsS0FBSztVQUREQyxnQkFBZ0IsR0FBQUYsS0FBQSxDQUFoQkUsZ0JBQWdCO1VBQUVDLGNBQWMsR0FBQUgsS0FBQSxDQUFkRyxjQUFjO1VBQUVDLGtCQUFrQixHQUFBSixLQUFBLENBQWxCSSxrQkFBa0I7UUFFM0QsSUFBTUMsUUFBUSxJQUFBTixvQkFBQSxHQUFHLElBQUksQ0FBQ08sS0FBSyxDQUFDRCxRQUFRLGNBQUFOLG9CQUFBLGNBQUFBLG9CQUFBLEdBQUksQ0FBQztRQUN6QyxJQUFJLENBQUNHLGdCQUFnQixJQUFJLENBQUNDLGNBQWMsSUFBSSxDQUFDQyxrQkFBa0IsRUFBRTtVQUMvREcsT0FBTyxDQUFDQyxLQUFLLENBQ1gsNkRBQTZELEdBQzNELHNFQUFzRSxHQUN0RSw4RUFDSixDQUFDO1VBQ0QsT0FBT1gsSUFBSTtRQUNiO1FBQ0EsSUFBQVksS0FBQSxHQUFtQlosSUFBSSxDQUFDQyxNQUFNO1VBQXZCWSxHQUFHLEdBQUFELEtBQUEsQ0FBSEMsR0FBRztVQUFFQyxHQUFHLEdBQUFGLEtBQUEsQ0FBSEUsR0FBRztRQUNmLElBQUksT0FBT0QsR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQyxHQUFHLEtBQUssUUFBUSxFQUFFLE9BQU9kLElBQUk7UUFDbkUsSUFBTWUsRUFBRSxHQUFHLENBQUNGLEdBQUcsR0FBRyxHQUFHLElBQUlQLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBR0QsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQU1XLEVBQUUsR0FBRyxDQUFDRixHQUFHLEdBQUcsR0FBRyxJQUFJUixjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUdELGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFNWSxFQUFFLEdBQUcsR0FBRyxHQUFHVCxRQUFRLEdBQUdGLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBTVksRUFBRSxHQUFHLEdBQUcsR0FBR1YsUUFBUSxHQUFHRixjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTVDTixJQUFJLENBQUNDLE1BQU0sQ0FBdUJrQixXQUFXLEdBQUcsQ0FDL0NaLGtCQUFrQixDQUFDYSxhQUFhLENBQUMsQ0FBQ0wsRUFBRSxHQUFHRSxFQUFFLEVBQUVELEVBQUUsR0FBR0UsRUFBRSxDQUFDLENBQUMsRUFDcERYLGtCQUFrQixDQUFDYSxhQUFhLENBQUMsQ0FBQ0wsRUFBRSxHQUFHRSxFQUFFLEVBQUVELEVBQUUsR0FBR0UsRUFBRSxDQUFDLENBQUMsRUFDcERYLGtCQUFrQixDQUFDYSxhQUFhLENBQUMsQ0FBQ0wsRUFBRSxHQUFHRSxFQUFFLEVBQUVELEVBQUUsR0FBR0UsRUFBRSxDQUFDLENBQUMsRUFDcERYLGtCQUFrQixDQUFDYSxhQUFhLENBQUMsQ0FBQ0wsRUFBRSxHQUFHRSxFQUFFLEVBQUVELEVBQUUsR0FBR0UsRUFBRSxDQUFDLENBQUMsRUFDcERYLGtCQUFrQixDQUFDYSxhQUFhLENBQUMsQ0FBQ0wsRUFBRSxHQUFHRSxFQUFFLEVBQUVELEVBQUUsR0FBR0UsRUFBRSxDQUFDLENBQUMsQ0FDckQ7TUFDSDtNQUNBLE9BQU9sQixJQUFJO0lBQ2I7RUFBQztBQUFBLEVBaERpREwsNEJBQVM7QUFBQSxJQUFBOUIsZ0JBQUEsYUFBeENrQixzQkFBc0Isa0JBQUF0QixhQUFBLENBQUFBLGFBQUEsS0FFcENrQyw0QkFBUyxDQUFDMEIsWUFBWTtFQUN6QkMsY0FBYyxFQUFFO0FBQUs7QUFnRHpCdkMsc0JBQXNCLENBQUN3QyxTQUFTLEdBQUcsd0JBQXdCIiwiaWdub3JlTGlzdCI6W119
@@ -1,108 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
- var _aggregationLayers = require("@deck.gl/aggregation-layers");
16
- var _aggregationUtils = require("../layer-utils/aggregation-utils");
17
- 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; }
18
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
20
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
- function _superPropGet(t, e, r, o) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; } // SPDX-License-Identifier: MIT
22
- // Copyright contributors to the kepler.gl project
23
- var THIRD_PI = Math.PI / 3;
24
- var HexbinVertices = Array.from({
25
- length: 6
26
- }, function (_, i) {
27
- var angle = i * THIRD_PI;
28
- return [Math.sin(angle), -Math.cos(angle)];
29
- });
30
- function getHexbinCentroid(id, radius) {
31
- var DIST_X = 2 * Math.sin(THIRD_PI);
32
- var DIST_Y = 1.5;
33
- return [(id[0] + (id[1] & 1) / 2) * radius * DIST_X, id[1] * radius * DIST_Y];
34
- }
35
- /**
36
- * In deck.gl 9, HexagonLayer natively supports CPU aggregation via gpuAggregation: false,
37
- * custom getColorValue/getElevationValue accessors, percentile filtering, and scale types.
38
- *
39
- * We override getPickingInfo to add `cellOutline` — an array of [lng, lat] coordinates
40
- * computed in common space so the outline aligns with rendered cells at all latitudes.
41
- *
42
- * We also override _onAggregationUpdate to send per-bin aggregated values through
43
- * onSetColorDomain so the legend can compute proper quantile/custom breaks.
44
- */
45
- // @ts-expect-error -- overriding private _onAggregationUpdate to enrich the onSetColorDomain callback
46
- var ScaleEnhancedHexagonLayer = exports["default"] = /*#__PURE__*/function (_HexagonLayer) {
47
- function ScaleEnhancedHexagonLayer() {
48
- (0, _classCallCheck2["default"])(this, ScaleEnhancedHexagonLayer);
49
- return _callSuper(this, ScaleEnhancedHexagonLayer, arguments);
50
- }
51
- (0, _inherits2["default"])(ScaleEnhancedHexagonLayer, _HexagonLayer);
52
- return (0, _createClass2["default"])(ScaleEnhancedHexagonLayer, [{
53
- key: "_onAggregationUpdate",
54
- value:
55
- // HACK: deck.gl 9's _onAggregationUpdate is private and its onSetColorDomain
56
- // callback only provides [min, max]. That is sufficient for quantize/linear
57
- // scales but d3.scaleQuantile needs the *full sorted array* of bin values to
58
- // compute correct break points — without it the legend labels are wrong
59
- function _onAggregationUpdate(_ref) {
60
- var channel = _ref.channel;
61
- (0, _aggregationUtils.enrichedAggregationUpdate)(this, _aggregationLayers.HexagonLayer, channel);
62
- }
63
- }, {
64
- key: "renderLayers",
65
- value: function renderLayers() {
66
- return (0, _aggregationUtils.enrichedRenderLayers)(this, _aggregationLayers.HexagonLayer);
67
- }
68
- }, {
69
- key: "getPickingInfo",
70
- value: function getPickingInfo(params) {
71
- var info = _superPropGet(ScaleEnhancedHexagonLayer, "getPickingInfo", this, 3)([params]);
72
- if (info.object) {
73
- var _this$props$coverage, _hexOriginCommon$, _hexOriginCommon$2;
74
- var _ref2 = this.state,
75
- radiusCommon = _ref2.radiusCommon,
76
- hexOriginCommon = _ref2.hexOriginCommon,
77
- aggregatorViewport = _ref2.aggregatorViewport;
78
- var coverage = (_this$props$coverage = this.props.coverage) !== null && _this$props$coverage !== void 0 ? _this$props$coverage : 1;
79
- if (!radiusCommon || !aggregatorViewport) {
80
- console.error('ScaleEnhancedHexagonLayer: expected internal state properties ' + '(radiusCommon, aggregatorViewport) are missing. ' + 'Hover outline will not be shown. This may indicate a deck.gl version change.');
81
- return info;
82
- }
83
- var _ref3 = info.object,
84
- col = _ref3.col,
85
- row = _ref3.row;
86
- if (typeof col !== 'number' || typeof row !== 'number') return info;
87
- var centroid = getHexbinCentroid([col, row], radiusCommon);
88
- var ox = (_hexOriginCommon$ = hexOriginCommon === null || hexOriginCommon === void 0 ? void 0 : hexOriginCommon[0]) !== null && _hexOriginCommon$ !== void 0 ? _hexOriginCommon$ : 0;
89
- var oy = (_hexOriginCommon$2 = hexOriginCommon === null || hexOriginCommon === void 0 ? void 0 : hexOriginCommon[1]) !== null && _hexOriginCommon$2 !== void 0 ? _hexOriginCommon$2 : 0;
90
- var r = radiusCommon * coverage;
91
- var outline = [];
92
- for (var i = 0; i < 6; i++) {
93
- var vx = centroid[0] + r * HexbinVertices[i][0] + ox;
94
- var vy = centroid[1] + r * HexbinVertices[i][1] + oy;
95
- outline.push(aggregatorViewport.unprojectFlat([vx, vy]));
96
- }
97
- outline.push(outline[0]);
98
- info.object.cellOutline = outline;
99
- }
100
- return info;
101
- }
102
- }]);
103
- }(_aggregationLayers.HexagonLayer);
104
- (0, _defineProperty2["default"])(ScaleEnhancedHexagonLayer, "defaultProps", _objectSpread(_objectSpread({}, _aggregationLayers.HexagonLayer.defaultProps), {}, {
105
- gpuAggregation: false
106
- }));
107
- ScaleEnhancedHexagonLayer.layerName = 'ScaleEnhancedHexagonLayer';
108
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWdncmVnYXRpb25MYXllcnMiLCJyZXF1aXJlIiwiX2FnZ3JlZ2F0aW9uVXRpbHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJUSElSRF9QSSIsIk1hdGgiLCJQSSIsIkhleGJpblZlcnRpY2VzIiwiQXJyYXkiLCJmcm9tIiwiXyIsImkiLCJhbmdsZSIsInNpbiIsImNvcyIsImdldEhleGJpbkNlbnRyb2lkIiwiaWQiLCJyYWRpdXMiLCJESVNUX1giLCJESVNUX1kiLCJTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyIiwiZXhwb3J0cyIsIl9IZXhhZ29uTGF5ZXIiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsIl9vbkFnZ3JlZ2F0aW9uVXBkYXRlIiwiX3JlZiIsImNoYW5uZWwiLCJlbnJpY2hlZEFnZ3JlZ2F0aW9uVXBkYXRlIiwiSGV4YWdvbkxheWVyIiwicmVuZGVyTGF5ZXJzIiwiZW5yaWNoZWRSZW5kZXJMYXllcnMiLCJnZXRQaWNraW5nSW5mbyIsInBhcmFtcyIsImluZm8iLCJvYmplY3QiLCJfdGhpcyRwcm9wcyRjb3ZlcmFnZSIsIl9oZXhPcmlnaW5Db21tb24kIiwiX2hleE9yaWdpbkNvbW1vbiQyIiwiX3JlZjIiLCJzdGF0ZSIsInJhZGl1c0NvbW1vbiIsImhleE9yaWdpbkNvbW1vbiIsImFnZ3JlZ2F0b3JWaWV3cG9ydCIsImNvdmVyYWdlIiwicHJvcHMiLCJjb25zb2xlIiwiZXJyb3IiLCJfcmVmMyIsImNvbCIsInJvdyIsImNlbnRyb2lkIiwib3giLCJveSIsIm91dGxpbmUiLCJ2eCIsInZ5IiwidW5wcm9qZWN0RmxhdCIsImNlbGxPdXRsaW5lIiwiZGVmYXVsdFByb3BzIiwiZ3B1QWdncmVnYXRpb24iLCJsYXllck5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaGV4YWdvbi1sYXllci9lbmhhbmNlZC1oZXhhZ29uLWxheWVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7SGV4YWdvbkxheWVyLCBIZXhhZ29uTGF5ZXJQaWNraW5nSW5mb30gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzJztcbmltcG9ydCB7R2V0UGlja2luZ0luZm9QYXJhbXMsIFBpY2tpbmdJbmZvLCBWaWV3cG9ydH0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQge2VucmljaGVkQWdncmVnYXRpb25VcGRhdGUsIGVucmljaGVkUmVuZGVyTGF5ZXJzfSBmcm9tICcuLi9sYXllci11dGlscy9hZ2dyZWdhdGlvbi11dGlscyc7XG5cbmNvbnN0IFRISVJEX1BJID0gTWF0aC5QSSAvIDM7XG5jb25zdCBIZXhiaW5WZXJ0aWNlcyA9IEFycmF5LmZyb20oe2xlbmd0aDogNn0sIChfLCBpKSA9PiB7XG4gIGNvbnN0IGFuZ2xlID0gaSAqIFRISVJEX1BJO1xuICByZXR1cm4gW01hdGguc2luKGFuZ2xlKSwgLU1hdGguY29zKGFuZ2xlKV07XG59KTtcblxuZnVuY3Rpb24gZ2V0SGV4YmluQ2VudHJvaWQoaWQ6IFtudW1iZXIsIG51bWJlcl0sIHJhZGl1czogbnVtYmVyKTogW251bWJlciwgbnVtYmVyXSB7XG4gIGNvbnN0IERJU1RfWCA9IDIgKiBNYXRoLnNpbihUSElSRF9QSSk7XG4gIGNvbnN0IERJU1RfWSA9IDEuNTtcbiAgcmV0dXJuIFsoaWRbMF0gKyAoaWRbMV0gJiAxKSAvIDIpICogcmFkaXVzICogRElTVF9YLCBpZFsxXSAqIHJhZGl1cyAqIERJU1RfWV07XG59XG5cbmludGVyZmFjZSBIZXhJbnRlcm5hbFN0YXRlIHtcbiAgcmFkaXVzQ29tbW9uPzogbnVtYmVyO1xuICBoZXhPcmlnaW5Db21tb24/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBhZ2dyZWdhdG9yVmlld3BvcnQ/OiBWaWV3cG9ydCAmIHt1bnByb2plY3RGbGF0KHh5OiBudW1iZXJbXSk6IG51bWJlcltdfTtcbn1cblxuaW50ZXJmYWNlIEhleFBpY2tpbmdPYmplY3Qge1xuICBjb2w6IG51bWJlcjtcbiAgcm93OiBudW1iZXI7XG4gIGNlbGxPdXRsaW5lPzogbnVtYmVyW11bXTtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBJbiBkZWNrLmdsIDksIEhleGFnb25MYXllciBuYXRpdmVseSBzdXBwb3J0cyBDUFUgYWdncmVnYXRpb24gdmlhIGdwdUFnZ3JlZ2F0aW9uOiBmYWxzZSxcbiAqIGN1c3RvbSBnZXRDb2xvclZhbHVlL2dldEVsZXZhdGlvblZhbHVlIGFjY2Vzc29ycywgcGVyY2VudGlsZSBmaWx0ZXJpbmcsIGFuZCBzY2FsZSB0eXBlcy5cbiAqXG4gKiBXZSBvdmVycmlkZSBnZXRQaWNraW5nSW5mbyB0byBhZGQgYGNlbGxPdXRsaW5lYCDigJQgYW4gYXJyYXkgb2YgW2xuZywgbGF0XSBjb29yZGluYXRlc1xuICogY29tcHV0ZWQgaW4gY29tbW9uIHNwYWNlIHNvIHRoZSBvdXRsaW5lIGFsaWducyB3aXRoIHJlbmRlcmVkIGNlbGxzIGF0IGFsbCBsYXRpdHVkZXMuXG4gKlxuICogV2UgYWxzbyBvdmVycmlkZSBfb25BZ2dyZWdhdGlvblVwZGF0ZSB0byBzZW5kIHBlci1iaW4gYWdncmVnYXRlZCB2YWx1ZXMgdGhyb3VnaFxuICogb25TZXRDb2xvckRvbWFpbiBzbyB0aGUgbGVnZW5kIGNhbiBjb21wdXRlIHByb3BlciBxdWFudGlsZS9jdXN0b20gYnJlYWtzLlxuICovXG4vLyBAdHMtZXhwZWN0LWVycm9yIC0tIG92ZXJyaWRpbmcgcHJpdmF0ZSBfb25BZ2dyZWdhdGlvblVwZGF0ZSB0byBlbnJpY2ggdGhlIG9uU2V0Q29sb3JEb21haW4gY2FsbGJhY2tcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYWxlRW5oYW5jZWRIZXhhZ29uTGF5ZXIgZXh0ZW5kcyBIZXhhZ29uTGF5ZXI8YW55PiB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgLi4uSGV4YWdvbkxheWVyLmRlZmF1bHRQcm9wcyxcbiAgICBncHVBZ2dyZWdhdGlvbjogZmFsc2VcbiAgfTtcblxuICAvLyBIQUNLOiBkZWNrLmdsIDkncyBfb25BZ2dyZWdhdGlvblVwZGF0ZSBpcyBwcml2YXRlIGFuZCBpdHMgb25TZXRDb2xvckRvbWFpblxuICAvLyBjYWxsYmFjayBvbmx5IHByb3ZpZGVzIFttaW4sIG1heF0uICBUaGF0IGlzIHN1ZmZpY2llbnQgZm9yIHF1YW50aXplL2xpbmVhclxuICAvLyBzY2FsZXMgYnV0IGQzLnNjYWxlUXVhbnRpbGUgbmVlZHMgdGhlICpmdWxsIHNvcnRlZCBhcnJheSogb2YgYmluIHZhbHVlcyB0b1xuICAvLyBjb21wdXRlIGNvcnJlY3QgYnJlYWsgcG9pbnRzIOKAlCB3aXRob3V0IGl0IHRoZSBsZWdlbmQgbGFiZWxzIGFyZSB3cm9uZ1xuICBfb25BZ2dyZWdhdGlvblVwZGF0ZSh7Y2hhbm5lbH06IHtjaGFubmVsOiBudW1iZXJ9KSB7XG4gICAgZW5yaWNoZWRBZ2dyZWdhdGlvblVwZGF0ZSh0aGlzLCBIZXhhZ29uTGF5ZXIsIGNoYW5uZWwpO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIHJldHVybiBlbnJpY2hlZFJlbmRlckxheWVycyh0aGlzLCBIZXhhZ29uTGF5ZXIpO1xuICB9XG5cbiAgZ2V0UGlja2luZ0luZm8ocGFyYW1zOiBHZXRQaWNraW5nSW5mb1BhcmFtcyk6IFBpY2tpbmdJbmZvIHtcbiAgICBjb25zdCBpbmZvID0gc3VwZXIuZ2V0UGlja2luZ0luZm8ocGFyYW1zKSBhcyBIZXhhZ29uTGF5ZXJQaWNraW5nSW5mbzxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG4gICAgaWYgKGluZm8ub2JqZWN0KSB7XG4gICAgICBjb25zdCB7cmFkaXVzQ29tbW9uLCBoZXhPcmlnaW5Db21tb24sIGFnZ3JlZ2F0b3JWaWV3cG9ydH0gPSB0aGlzXG4gICAgICAgIC5zdGF0ZSBhcyB1bmtub3duIGFzIEhleEludGVybmFsU3RhdGU7XG4gICAgICBjb25zdCBjb3ZlcmFnZSA9IHRoaXMucHJvcHMuY292ZXJhZ2UgPz8gMTtcbiAgICAgIGlmICghcmFkaXVzQ29tbW9uIHx8ICFhZ2dyZWdhdG9yVmlld3BvcnQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnU2NhbGVFbmhhbmNlZEhleGFnb25MYXllcjogZXhwZWN0ZWQgaW50ZXJuYWwgc3RhdGUgcHJvcGVydGllcyAnICtcbiAgICAgICAgICAgICcocmFkaXVzQ29tbW9uLCBhZ2dyZWdhdG9yVmlld3BvcnQpIGFyZSBtaXNzaW5nLiAnICtcbiAgICAgICAgICAgICdIb3ZlciBvdXRsaW5lIHdpbGwgbm90IGJlIHNob3duLiBUaGlzIG1heSBpbmRpY2F0ZSBhIGRlY2suZ2wgdmVyc2lvbiBjaGFuZ2UuJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gaW5mbztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHtjb2wsIHJvd30gPSBpbmZvLm9iamVjdCBhcyBIZXhQaWNraW5nT2JqZWN0O1xuICAgICAgaWYgKHR5cGVvZiBjb2wgIT09ICdudW1iZXInIHx8IHR5cGVvZiByb3cgIT09ICdudW1iZXInKSByZXR1cm4gaW5mbztcbiAgICAgIGNvbnN0IGNlbnRyb2lkID0gZ2V0SGV4YmluQ2VudHJvaWQoW2NvbCwgcm93XSwgcmFkaXVzQ29tbW9uKTtcbiAgICAgIGNvbnN0IG94ID0gaGV4T3JpZ2luQ29tbW9uPy5bMF0gPz8gMDtcbiAgICAgIGNvbnN0IG95ID0gaGV4T3JpZ2luQ29tbW9uPy5bMV0gPz8gMDtcbiAgICAgIGNvbnN0IHIgPSByYWRpdXNDb21tb24gKiBjb3ZlcmFnZTtcblxuICAgICAgY29uc3Qgb3V0bGluZTogbnVtYmVyW11bXSA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2OyBpKyspIHtcbiAgICAgICAgY29uc3QgdnggPSBjZW50cm9pZFswXSArIHIgKiBIZXhiaW5WZXJ0aWNlc1tpXVswXSArIG94O1xuICAgICAgICBjb25zdCB2eSA9IGNlbnRyb2lkWzFdICsgciAqIEhleGJpblZlcnRpY2VzW2ldWzFdICsgb3k7XG4gICAgICAgIG91dGxpbmUucHVzaChhZ2dyZWdhdG9yVmlld3BvcnQudW5wcm9qZWN0RmxhdChbdngsIHZ5XSkpO1xuICAgICAgfVxuICAgICAgb3V0bGluZS5wdXNoKG91dGxpbmVbMF0pO1xuICAgICAgKGluZm8ub2JqZWN0IGFzIEhleFBpY2tpbmdPYmplY3QpLmNlbGxPdXRsaW5lID0gb3V0bGluZTtcbiAgICB9XG4gICAgcmV0dXJuIGluZm87XG4gIH1cbn1cblxuU2NhbGVFbmhhbmNlZEhleGFnb25MYXllci5sYXllck5hbWUgPSAnU2NhbGVFbmhhbmNlZEhleGFnb25MYXllcic7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsa0JBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFBaUcsU0FBQUUsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFBQSxTQUFBb0IsV0FBQWxCLENBQUEsRUFBQUksQ0FBQSxFQUFBTixDQUFBLFdBQUFNLENBQUEsT0FBQWUsZ0JBQUEsYUFBQWYsQ0FBQSxPQUFBZ0IsMkJBQUEsYUFBQXBCLENBQUEsRUFBQXFCLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBbkIsQ0FBQSxFQUFBTixDQUFBLFlBQUFxQixnQkFBQSxhQUFBbkIsQ0FBQSxFQUFBd0IsV0FBQSxJQUFBcEIsQ0FBQSxDQUFBSyxLQUFBLENBQUFULENBQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUF1QiwwQkFBQSxjQUFBckIsQ0FBQSxJQUFBeUIsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQUMsSUFBQSxDQUFBTixPQUFBLENBQUFDLFNBQUEsQ0FBQUUsT0FBQSxpQ0FBQXpCLENBQUEsYUFBQXFCLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFyQixDQUFBO0FBQUEsU0FBQTZCLGNBQUE3QixDQUFBLEVBQUFGLENBQUEsRUFBQUMsQ0FBQSxFQUFBSyxDQUFBLFFBQUEwQixDQUFBLE9BQUFDLEtBQUEsaUJBQUFaLGdCQUFBLGlCQUFBZixDQUFBLEdBQUFKLENBQUEsQ0FBQTBCLFNBQUEsR0FBQTFCLENBQUEsR0FBQUYsQ0FBQSxFQUFBQyxDQUFBLGNBQUFLLENBQUEsYUFBQUosQ0FBQSxXQUFBOEIsQ0FBQSxDQUFBckIsS0FBQSxDQUFBVixDQUFBLEVBQUFDLENBQUEsT0FBQThCLENBQUEsSUFMakc7QUFDQTtBQU1BLElBQU1FLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFFLEdBQUcsQ0FBQztBQUM1QixJQUFNQyxjQUFjLEdBQUdDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDO0VBQUN6QixNQUFNLEVBQUU7QUFBQyxDQUFDLEVBQUUsVUFBQzBCLENBQUMsRUFBRUMsQ0FBQyxFQUFLO0VBQ3ZELElBQU1DLEtBQUssR0FBR0QsQ0FBQyxHQUFHUCxRQUFRO0VBQzFCLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDUSxHQUFHLENBQUNELEtBQUssQ0FBQyxFQUFFLENBQUNQLElBQUksQ0FBQ1MsR0FBRyxDQUFDRixLQUFLLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUM7QUFFRixTQUFTRyxpQkFBaUJBLENBQUNDLEVBQW9CLEVBQUVDLE1BQWMsRUFBb0I7RUFDakYsSUFBTUMsTUFBTSxHQUFHLENBQUMsR0FBR2IsSUFBSSxDQUFDUSxHQUFHLENBQUNULFFBQVEsQ0FBQztFQUNyQyxJQUFNZSxNQUFNLEdBQUcsR0FBRztFQUNsQixPQUFPLENBQUMsQ0FBQ0gsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUNBLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJQyxNQUFNLEdBQUdDLE1BQU0sRUFBRUYsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHQyxNQUFNLEdBQUdFLE1BQU0sQ0FBQztBQUMvRTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQSxJQUNxQkMseUJBQXlCLEdBQUFDLE9BQUEscUNBQUFDLGFBQUE7RUFBQSxTQUFBRiwwQkFBQTtJQUFBLElBQUFHLGdCQUFBLG1CQUFBSCx5QkFBQTtJQUFBLE9BQUE5QixVQUFBLE9BQUE4Qix5QkFBQSxFQUFBckMsU0FBQTtFQUFBO0VBQUEsSUFBQXlDLFVBQUEsYUFBQUoseUJBQUEsRUFBQUUsYUFBQTtFQUFBLFdBQUFHLGFBQUEsYUFBQUwseUJBQUE7SUFBQU0sR0FBQTtJQUFBQyxLQUFBO0lBTTVDO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsU0FBQUMsb0JBQW9CQSxDQUFBQyxJQUFBLEVBQStCO01BQUEsSUFBN0JDLE9BQU8sR0FBQUQsSUFBQSxDQUFQQyxPQUFPO01BQzNCLElBQUFDLDJDQUF5QixFQUFDLElBQUksRUFBRUMsK0JBQVksRUFBRUYsT0FBTyxDQUFDO0lBQ3hEO0VBQUM7SUFBQUosR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQU0sWUFBWUEsQ0FBQSxFQUFHO01BQ2IsT0FBTyxJQUFBQyxzQ0FBb0IsRUFBQyxJQUFJLEVBQUVGLCtCQUFZLENBQUM7SUFDakQ7RUFBQztJQUFBTixHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBUSxjQUFjQSxDQUFDQyxNQUE0QixFQUFlO01BQ3hELElBQU1DLElBQUksR0FBQXBDLGFBQUEsQ0FBQW1CLHlCQUFBLDhCQUF3QmdCLE1BQU0sRUFBcUQ7TUFDN0YsSUFBSUMsSUFBSSxDQUFDQyxNQUFNLEVBQUU7UUFBQSxJQUFBQyxvQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxrQkFBQTtRQUNmLElBQUFDLEtBQUEsR0FBNEQsSUFBSSxDQUM3REMsS0FBSztVQUREQyxZQUFZLEdBQUFGLEtBQUEsQ0FBWkUsWUFBWTtVQUFFQyxlQUFlLEdBQUFILEtBQUEsQ0FBZkcsZUFBZTtVQUFFQyxrQkFBa0IsR0FBQUosS0FBQSxDQUFsQkksa0JBQWtCO1FBRXhELElBQU1DLFFBQVEsSUFBQVIsb0JBQUEsR0FBRyxJQUFJLENBQUNTLEtBQUssQ0FBQ0QsUUFBUSxjQUFBUixvQkFBQSxjQUFBQSxvQkFBQSxHQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDSyxZQUFZLElBQUksQ0FBQ0Usa0JBQWtCLEVBQUU7VUFDeENHLE9BQU8sQ0FBQ0MsS0FBSyxDQUNYLGdFQUFnRSxHQUM5RCxrREFBa0QsR0FDbEQsOEVBQ0osQ0FBQztVQUNELE9BQU9iLElBQUk7UUFDYjtRQUNBLElBQUFjLEtBQUEsR0FBbUJkLElBQUksQ0FBQ0MsTUFBTTtVQUF2QmMsR0FBRyxHQUFBRCxLQUFBLENBQUhDLEdBQUc7VUFBRUMsR0FBRyxHQUFBRixLQUFBLENBQUhFLEdBQUc7UUFDZixJQUFJLE9BQU9ELEdBQUcsS0FBSyxRQUFRLElBQUksT0FBT0MsR0FBRyxLQUFLLFFBQVEsRUFBRSxPQUFPaEIsSUFBSTtRQUNuRSxJQUFNaUIsUUFBUSxHQUFHdkMsaUJBQWlCLENBQUMsQ0FBQ3FDLEdBQUcsRUFBRUMsR0FBRyxDQUFDLEVBQUVULFlBQVksQ0FBQztRQUM1RCxJQUFNVyxFQUFFLElBQUFmLGlCQUFBLEdBQUdLLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFHLENBQUMsQ0FBQyxjQUFBTCxpQkFBQSxjQUFBQSxpQkFBQSxHQUFJLENBQUM7UUFDcEMsSUFBTWdCLEVBQUUsSUFBQWYsa0JBQUEsR0FBR0ksZUFBZSxhQUFmQSxlQUFlLHVCQUFmQSxlQUFlLENBQUcsQ0FBQyxDQUFDLGNBQUFKLGtCQUFBLGNBQUFBLGtCQUFBLEdBQUksQ0FBQztRQUNwQyxJQUFNdEUsQ0FBQyxHQUFHeUUsWUFBWSxHQUFHRyxRQUFRO1FBRWpDLElBQU1VLE9BQW1CLEdBQUcsRUFBRTtRQUM5QixLQUFLLElBQUk5QyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEVBQUUsRUFBRTtVQUMxQixJQUFNK0MsRUFBRSxHQUFHSixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUduRixDQUFDLEdBQUdvQyxjQUFjLENBQUNJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHNEMsRUFBRTtVQUN0RCxJQUFNSSxFQUFFLEdBQUdMLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBR25GLENBQUMsR0FBR29DLGNBQWMsQ0FBQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc2QyxFQUFFO1VBQ3REQyxPQUFPLENBQUM3RSxJQUFJLENBQUNrRSxrQkFBa0IsQ0FBQ2MsYUFBYSxDQUFDLENBQUNGLEVBQUUsRUFBRUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRDtRQUNBRixPQUFPLENBQUM3RSxJQUFJLENBQUM2RSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkJwQixJQUFJLENBQUNDLE1BQU0sQ0FBc0J1QixXQUFXLEdBQUdKLE9BQU87TUFDekQ7TUFDQSxPQUFPcEIsSUFBSTtJQUNiO0VBQUM7QUFBQSxFQWpEb0RMLCtCQUFZO0FBQUEsSUFBQTlDLGdCQUFBLGFBQTlDa0MseUJBQXlCLGtCQUFBdEMsYUFBQSxDQUFBQSxhQUFBLEtBRXZDa0QsK0JBQVksQ0FBQzhCLFlBQVk7RUFDNUJDLGNBQWMsRUFBRTtBQUFLO0FBaUR6QjNDLHlCQUF5QixDQUFDNEMsU0FBUyxHQUFHLDJCQUEyQiIsImlnbm9yZUxpc3QiOltdfQ==
package/dist/index.js DELETED
@@ -1,152 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- var _exportNames = {
9
- ThreeDBuildingLayer: true,
10
- DeckGLClusterLayer: true,
11
- EnhancedColumnLayer: true,
12
- EnhancedGridLayer: true,
13
- EnhancedHexagonLayer: true,
14
- EnhancedLineLayer: true,
15
- SvgIconLayer: true,
16
- FilterArrowExtension: true,
17
- RasterLayer: true,
18
- RasterMeshLayer: true,
19
- RasterWebGL: true,
20
- WMSLayer: true
21
- };
22
- Object.defineProperty(exports, "DeckGLClusterLayer", {
23
- enumerable: true,
24
- get: function get() {
25
- return _clusterLayer["default"];
26
- }
27
- });
28
- Object.defineProperty(exports, "EnhancedColumnLayer", {
29
- enumerable: true,
30
- get: function get() {
31
- return _enhancedColumnLayer["default"];
32
- }
33
- });
34
- Object.defineProperty(exports, "EnhancedGridLayer", {
35
- enumerable: true,
36
- get: function get() {
37
- return _enhancedCpuGridLayer["default"];
38
- }
39
- });
40
- Object.defineProperty(exports, "EnhancedHexagonLayer", {
41
- enumerable: true,
42
- get: function get() {
43
- return _enhancedHexagonLayer["default"];
44
- }
45
- });
46
- Object.defineProperty(exports, "EnhancedLineLayer", {
47
- enumerable: true,
48
- get: function get() {
49
- return _lineLayer["default"];
50
- }
51
- });
52
- Object.defineProperty(exports, "FilterArrowExtension", {
53
- enumerable: true,
54
- get: function get() {
55
- return _filterArrowLayer["default"];
56
- }
57
- });
58
- Object.defineProperty(exports, "RasterLayer", {
59
- enumerable: true,
60
- get: function get() {
61
- return _rasterLayer["default"];
62
- }
63
- });
64
- Object.defineProperty(exports, "RasterMeshLayer", {
65
- enumerable: true,
66
- get: function get() {
67
- return _rasterMeshLayer["default"];
68
- }
69
- });
70
- exports.RasterWebGL = void 0;
71
- Object.defineProperty(exports, "SvgIconLayer", {
72
- enumerable: true,
73
- get: function get() {
74
- return _svgIconLayer["default"];
75
- }
76
- });
77
- Object.defineProperty(exports, "ThreeDBuildingLayer", {
78
- enumerable: true,
79
- get: function get() {
80
- return _dBuildingLayer["default"];
81
- }
82
- });
83
- Object.defineProperty(exports, "WMSLayer", {
84
- enumerable: true,
85
- get: function get() {
86
- return _wmsLayer["default"];
87
- }
88
- });
89
- var _dBuildingLayer = _interopRequireDefault(require("./3d-building-layer/3d-building-layer"));
90
- var _clusterLayer = _interopRequireDefault(require("./cluster-layer/cluster-layer"));
91
- var _enhancedColumnLayer = _interopRequireDefault(require("./column-layer/enhanced-column-layer"));
92
- var _enhancedCpuGridLayer = _interopRequireDefault(require("./grid-layer/enhanced-cpu-grid-layer"));
93
- var _enhancedHexagonLayer = _interopRequireDefault(require("./hexagon-layer/enhanced-hexagon-layer"));
94
- var _lineLayer = _interopRequireDefault(require("./line-layer/line-layer"));
95
- var _svgIconLayer = _interopRequireDefault(require("./svg-icon-layer/svg-icon-layer"));
96
- var _filterArrowLayer = _interopRequireDefault(require("./deckgl-extensions/filter-arrow-layer"));
97
- var _rasterLayer = _interopRequireDefault(require("./raster/raster-layer/raster-layer"));
98
- var _rasterMeshLayer = _interopRequireDefault(require("./raster/raster-mesh-layer/raster-mesh-layer"));
99
- var _RasterWebGL = _interopRequireWildcard(require("./raster/webgl"));
100
- exports.RasterWebGL = _RasterWebGL;
101
- var _wmsLayer = _interopRequireDefault(require("./wms/wms-layer"));
102
- var _shaderUtils = require("./layer-utils/shader-utils");
103
- Object.keys(_shaderUtils).forEach(function (key) {
104
- if (key === "default" || key === "__esModule") return;
105
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
106
- if (key in exports && exports[key] === _shaderUtils[key]) return;
107
- Object.defineProperty(exports, key, {
108
- enumerable: true,
109
- get: function get() {
110
- return _shaderUtils[key];
111
- }
112
- });
113
- });
114
- var _aggregationUtils = require("./layer-utils/aggregation-utils");
115
- Object.keys(_aggregationUtils).forEach(function (key) {
116
- if (key === "default" || key === "__esModule") return;
117
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
118
- if (key in exports && exports[key] === _aggregationUtils[key]) return;
119
- Object.defineProperty(exports, key, {
120
- enumerable: true,
121
- get: function get() {
122
- return _aggregationUtils[key];
123
- }
124
- });
125
- });
126
- var _types = require("./3d-building-layer/types");
127
- Object.keys(_types).forEach(function (key) {
128
- if (key === "default" || key === "__esModule") return;
129
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
130
- if (key in exports && exports[key] === _types[key]) return;
131
- Object.defineProperty(exports, key, {
132
- enumerable: true,
133
- get: function get() {
134
- return _types[key];
135
- }
136
- });
137
- });
138
- var _dBuildingUtils = require("./3d-building-layer/3d-building-utils");
139
- Object.keys(_dBuildingUtils).forEach(function (key) {
140
- if (key === "default" || key === "__esModule") return;
141
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
142
- if (key in exports && exports[key] === _dBuildingUtils[key]) return;
143
- Object.defineProperty(exports, key, {
144
- enumerable: true,
145
- get: function get() {
146
- return _dBuildingUtils[key];
147
- }
148
- });
149
- });
150
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
151
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
152
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZEJ1aWxkaW5nTGF5ZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbHVzdGVyTGF5ZXIiLCJfZW5oYW5jZWRDb2x1bW5MYXllciIsIl9lbmhhbmNlZENwdUdyaWRMYXllciIsIl9lbmhhbmNlZEhleGFnb25MYXllciIsIl9saW5lTGF5ZXIiLCJfc3ZnSWNvbkxheWVyIiwiX2ZpbHRlckFycm93TGF5ZXIiLCJfcmFzdGVyTGF5ZXIiLCJfcmFzdGVyTWVzaExheWVyIiwiX1Jhc3RlcldlYkdMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJleHBvcnRzIiwiUmFzdGVyV2ViR0wiLCJfd21zTGF5ZXIiLCJfc2hhZGVyVXRpbHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIl9hZ2dyZWdhdGlvblV0aWxzIiwiX3R5cGVzIiwiX2RCdWlsZGluZ1V0aWxzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwibiIsIl9fcHJvdG9fXyIsImEiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaSIsInNldCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQge2RlZmF1bHQgYXMgVGhyZWVEQnVpbGRpbmdMYXllcn0gZnJvbSAnLi8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllcic7XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBEZWNrR0xDbHVzdGVyTGF5ZXJ9IGZyb20gJy4vY2x1c3Rlci1sYXllci9jbHVzdGVyLWxheWVyJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIEVuaGFuY2VkQ29sdW1uTGF5ZXJ9IGZyb20gJy4vY29sdW1uLWxheWVyL2VuaGFuY2VkLWNvbHVtbi1sYXllcic7XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBFbmhhbmNlZEdyaWRMYXllcn0gZnJvbSAnLi9ncmlkLWxheWVyL2VuaGFuY2VkLWNwdS1ncmlkLWxheWVyJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIEVuaGFuY2VkSGV4YWdvbkxheWVyfSBmcm9tICcuL2hleGFnb24tbGF5ZXIvZW5oYW5jZWQtaGV4YWdvbi1sYXllcic7XG5leHBvcnQge2RlZmF1bHQgYXMgRW5oYW5jZWRMaW5lTGF5ZXJ9IGZyb20gJy4vbGluZS1sYXllci9saW5lLWxheWVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBTdmdJY29uTGF5ZXJ9IGZyb20gJy4vc3ZnLWljb24tbGF5ZXIvc3ZnLWljb24tbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZpbHRlckFycm93RXh0ZW5zaW9ufSBmcm9tICcuL2RlY2tnbC1leHRlbnNpb25zL2ZpbHRlci1hcnJvdy1sYXllcic7XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBSYXN0ZXJMYXllcn0gZnJvbSAnLi9yYXN0ZXIvcmFzdGVyLWxheWVyL3Jhc3Rlci1sYXllcic7XG5leHBvcnQge2RlZmF1bHQgYXMgUmFzdGVyTWVzaExheWVyfSBmcm9tICcuL3Jhc3Rlci9yYXN0ZXItbWVzaC1sYXllci9yYXN0ZXItbWVzaC1sYXllcic7XG5leHBvcnQgKiBhcyBSYXN0ZXJXZWJHTCBmcm9tICcuL3Jhc3Rlci93ZWJnbCc7XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBXTVNMYXllcn0gZnJvbSAnLi93bXMvd21zLWxheWVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9sYXllci11dGlscy9zaGFkZXItdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9sYXllci11dGlscy9hZ2dyZWdhdGlvbi11dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vM2QtYnVpbGRpbmctbGF5ZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy11dGlscyc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxlQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxhQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxvQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcscUJBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLHFCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQVEsWUFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsZ0JBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUF3RixJQUFBVSxZQUFBLEdBQUFDLHVCQUFBLENBQUFYLE9BQUE7QUFBQVksT0FBQSxDQUFBQyxXQUFBLEdBQUFILFlBQUE7QUFHeEYsSUFBQUksU0FBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQWUsWUFBQSxHQUFBZixPQUFBO0FBQUFnQixNQUFBLENBQUFDLElBQUEsQ0FBQUYsWUFBQSxFQUFBRyxPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVB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
@@ -1,181 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.buildAggregatedBinMap = buildAggregatedBinMap;
7
- exports.classifyBinsByCustomBreaks = classifyBinsByCustomBreaks;
8
- exports.enrichedAggregationUpdate = enrichedAggregationUpdate;
9
- exports.enrichedRenderLayers = enrichedRenderLayers;
10
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
11
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
12
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
13
- // SPDX-License-Identifier: MIT
14
- // Copyright contributors to the kepler.gl project
15
-
16
- /**
17
- * Build a Record<index, AggregatedBin> from the raw Float32Array of per-bin
18
- * aggregated values returned by deck.gl 9's CPUAggregator/WebGLAggregator.
19
- * The resulting map is compatible with the format kepler.gl expects for
20
- * histogram rendering and color-scale selector.
21
- */
22
- function buildAggregatedBinMap(binValues, binCount, aggregator) {
23
- var bins = {};
24
- for (var i = 0; i < binCount; i++) {
25
- var _aggregator$getBin$co, _aggregator$getBin;
26
- var val = binValues[i];
27
- var count = (_aggregator$getBin$co = aggregator === null || aggregator === void 0 || (_aggregator$getBin = aggregator.getBin) === null || _aggregator$getBin === void 0 || (_aggregator$getBin = _aggregator$getBin.call(aggregator, i)) === null || _aggregator$getBin === void 0 ? void 0 : _aggregator$getBin.count) !== null && _aggregator$getBin$co !== void 0 ? _aggregator$getBin$co : 0;
28
- bins[i] = {
29
- i: i,
30
- value: val,
31
- counts: count
32
- };
33
- }
34
- return bins;
35
- }
36
-
37
- /**
38
- * Classify raw per-bin aggregated values into break indices according to
39
- * a custom colorMap, and patch the deck.gl internal `state.colors` so the
40
- * GPU shader renders the correct color for each bin.
41
- *
42
- * Custom breaks define thresholds [t0, t1, …, t_{N-2}] for N colors:
43
- * color 0: value < t0
44
- * color i: t_{i-1} <= value < t_i
45
- * color N-1: value >= t_{N-2}
46
- *
47
- * We replace the values in `state.colors.attribute` / `state.colors.input`
48
- * with integer break indices [0 … N-1]. Combined with `colorScaleType: 'quantize'`
49
- * and `colorDomain: [0, N-1]`, the shader's linear interpolation maps each index
50
- * to the correct color texture pixel.
51
- *
52
- * `rawValues` must be the original aggregated values (not previously classified).
53
- */
54
- function classifyBinsByCustomBreaks(stateColors, binCount, colorMap, rawValues) {
55
- if (!rawValues || binCount === 0) return;
56
- var thresholds = [];
57
- var _iterator = _createForOfIteratorHelper(colorMap),
58
- _step;
59
- try {
60
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
61
- var entry = _step.value;
62
- if (typeof entry[0] === 'number' && Number.isFinite(entry[0])) {
63
- thresholds.push(entry[0]);
64
- }
65
- }
66
- } catch (err) {
67
- _iterator.e(err);
68
- } finally {
69
- _iterator.f();
70
- }
71
- thresholds.sort(function (a, b) {
72
- return a - b;
73
- });
74
- var numColors = colorMap.length;
75
- var classified = new Float32Array(rawValues.length);
76
- for (var i = 0; i < binCount; i++) {
77
- var v = rawValues[i];
78
- if (!Number.isFinite(v)) {
79
- classified[i] = NaN;
80
- continue;
81
- }
82
- var idx = numColors - 1;
83
- for (var t = 0; t < thresholds.length; t++) {
84
- if (v < thresholds[t]) {
85
- idx = t;
86
- break;
87
- }
88
- }
89
- classified[i] = idx;
90
- }
91
- for (var _i = binCount; _i < classified.length; _i++) {
92
- classified[_i] = NaN;
93
- }
94
- var classifiedAttr = {
95
- value: classified,
96
- type: 'float32',
97
- size: 1
98
- };
99
- stateColors.input = classifiedAttr;
100
- stateColors.attribute = classifiedAttr;
101
- }
102
-
103
- // ---------------------------------------------------------------------------
104
- // Shared _onAggregationUpdate / renderLayers logic for ScaleEnhanced* layers
105
- // ---------------------------------------------------------------------------
106
- //
107
- // deck.gl 9's _onAggregationUpdate is private and its onSetColorDomain
108
- // callback only provides [min, max]. That is sufficient for quantize/linear
109
- // scales but d3.scaleQuantile needs the *full sorted array* of bin values to
110
- // compute correct break points — without it the legend labels are wrong
111
- // (see https://github.com/keplergl/kepler.gl/issues/3381).
112
- //
113
- // deck.gl does not expose a public hook for post-aggregation data, and props
114
- // are Object.freeze()'d so we cannot suppress the parent's callback. Instead
115
- // we let the parent fire its [min, max] call, then immediately fire a second
116
- // enriched call with per-bin values (aggregatedBins) and, for quantile scale,
117
- // the full sorted domain. The second call overwrites the first downstream in
118
- // _onLayerSetDomain.
119
- //
120
- // This can be removed once deck.gl exposes a richer post-aggregation callback
121
- // or makes _onAggregationUpdate / AttributeWithScale part of the public API.
122
-
123
- /**
124
- * Enriched _onAggregationUpdate implementation shared by ScaleEnhancedHexagonLayer
125
- * and ScaleEnhancedGridLayer.
126
- *
127
- * @param layer The enhanced layer instance (`this`)
128
- * @param ParentClass The deck.gl parent class (HexagonLayer or GridLayer)
129
- * @param channel The aggregation channel index passed by deck.gl
130
- */
131
- function enrichedAggregationUpdate(layer, ParentClass, channel) {
132
- var _props$onSetColorDoma;
133
- ParentClass.prototype._onAggregationUpdate.call(layer, {
134
- channel: channel
135
- });
136
- if (channel !== 0) return;
137
- var props = layer.getCurrentLayer().props;
138
- var aggregator = layer.state.aggregator;
139
- var result = aggregator.getResult(0);
140
- var binValues = result === null || result === void 0 ? void 0 : result.value;
141
- if (!binValues || aggregator.binCount <= 0) return;
142
- layer.setState({
143
- rawColorBinValues: Float32Array.from(binValues.subarray(0, aggregator.binCount))
144
- });
145
- var domain = aggregator.getResultDomain(0);
146
- var aggregatedBins = buildAggregatedBinMap(binValues, aggregator.binCount, aggregator);
147
- if (props.colorMap) {
148
- classifyBinsByCustomBreaks(layer.state.colors, aggregator.binCount, props.colorMap, binValues);
149
- }
150
- var enrichedDomain = domain;
151
- if (props.colorScaleType === 'quantile') {
152
- enrichedDomain = Array.from(binValues).slice(0, aggregator.binCount).filter(Number.isFinite).sort(function (a, b) {
153
- return a - b;
154
- });
155
- }
156
- (_props$onSetColorDoma = props.onSetColorDomain) === null || _props$onSetColorDoma === void 0 || _props$onSetColorDoma.call(props, {
157
- domain: enrichedDomain,
158
- aggregatedBins: aggregatedBins
159
- });
160
- }
161
-
162
- /**
163
- * Shared renderLayers() wrapper that re-classifies bins when custom colorMap
164
- * changes between renders without triggering a full re-aggregation.
165
- *
166
- * @param layer The enhanced layer instance (`this`)
167
- * @param ParentClass The deck.gl parent class (HexagonLayer or GridLayer)
168
- * @returns The sublayers returned by the parent's renderLayers()
169
- */
170
- function enrichedRenderLayers(layer, ParentClass) {
171
- var props = layer.getCurrentLayer().props;
172
- var _layer$state = layer.state,
173
- colors = _layer$state.colors,
174
- rawColorBinValues = _layer$state.rawColorBinValues,
175
- aggregator = _layer$state.aggregator;
176
- if (props.colorMap && colors && rawColorBinValues && (aggregator === null || aggregator === void 0 ? void 0 : aggregator.binCount) > 0) {
177
- classifyBinsByCustomBreaks(colors, aggregator.binCount, props.colorMap, rawColorBinValues);
178
- }
179
- return ParentClass.prototype.renderLayers.call(layer);
180
- }
181
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZEFnZ3JlZ2F0ZWRCaW5NYXAiLCJiaW5WYWx1ZXMiLCJiaW5Db3VudCIsImFnZ3JlZ2F0b3IiLCJiaW5zIiwiaSIsIl9hZ2dyZWdhdG9yJGdldEJpbiRjbyIsIl9hZ2dyZWdhdG9yJGdldEJpbiIsInZhbCIsImNvdW50IiwiZ2V0QmluIiwiY2FsbCIsInZhbHVlIiwiY291bnRzIiwiY2xhc3NpZnlCaW5zQnlDdXN0b21CcmVha3MiLCJzdGF0ZUNvbG9ycyIsImNvbG9yTWFwIiwicmF3VmFsdWVzIiwidGhyZXNob2xkcyIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJlbnRyeSIsIk51bWJlciIsImlzRmluaXRlIiwicHVzaCIsImVyciIsImUiLCJmIiwic29ydCIsImEiLCJiIiwibnVtQ29sb3JzIiwibGVuZ3RoIiwiY2xhc3NpZmllZCIsIkZsb2F0MzJBcnJheSIsInYiLCJOYU4iLCJpZHgiLCJ0IiwiY2xhc3NpZmllZEF0dHIiLCJ0eXBlIiwic2l6ZSIsImlucHV0IiwiYXR0cmlidXRlIiwiZW5yaWNoZWRBZ2dyZWdhdGlvblVwZGF0ZSIsImxheWVyIiwiUGFyZW50Q2xhc3MiLCJjaGFubmVsIiwiX3Byb3BzJG9uU2V0Q29sb3JEb21hIiwicHJvdG90eXBlIiwiX29uQWdncmVnYXRpb25VcGRhdGUiLCJwcm9wcyIsImdldEN1cnJlbnRMYXllciIsInN0YXRlIiwicmVzdWx0IiwiZ2V0UmVzdWx0Iiwic2V0U3RhdGUiLCJyYXdDb2xvckJpblZhbHVlcyIsImZyb20iLCJzdWJhcnJheSIsImRvbWFpbiIsImdldFJlc3VsdERvbWFpbiIsImFnZ3JlZ2F0ZWRCaW5zIiwiY29sb3JzIiwiZW5yaWNoZWREb21haW4iLCJjb2xvclNjYWxlVHlwZSIsIkFycmF5Iiwic2xpY2UiLCJmaWx0ZXIiLCJvblNldENvbG9yRG9tYWluIiwiZW5yaWNoZWRSZW5kZXJMYXllcnMiLCJfbGF5ZXIkc3RhdGUiLCJyZW5kZXJMYXllcnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGF5ZXItdXRpbHMvYWdncmVnYXRpb24tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHR5cGUge0FnZ3JlZ2F0ZWRCaW4sIENvbG9yTWFwfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuLyoqXG4gKiBCdWlsZCBhIFJlY29yZDxpbmRleCwgQWdncmVnYXRlZEJpbj4gZnJvbSB0aGUgcmF3IEZsb2F0MzJBcnJheSBvZiBwZXItYmluXG4gKiBhZ2dyZWdhdGVkIHZhbHVlcyByZXR1cm5lZCBieSBkZWNrLmdsIDkncyBDUFVBZ2dyZWdhdG9yL1dlYkdMQWdncmVnYXRvci5cbiAqIFRoZSByZXN1bHRpbmcgbWFwIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgZm9ybWF0IGtlcGxlci5nbCBleHBlY3RzIGZvclxuICogaGlzdG9ncmFtIHJlbmRlcmluZyBhbmQgY29sb3Itc2NhbGUgc2VsZWN0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFnZ3JlZ2F0ZWRCaW5NYXAoXG4gIGJpblZhbHVlczogQXJyYXlMaWtlPG51bWJlcj4sXG4gIGJpbkNvdW50OiBudW1iZXIsXG4gIGFnZ3JlZ2F0b3I/OiBhbnlcbik6IFJlY29yZDxudW1iZXIsIEFnZ3JlZ2F0ZWRCaW4+IHtcbiAgY29uc3QgYmluczogUmVjb3JkPG51bWJlciwgQWdncmVnYXRlZEJpbj4gPSB7fTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBiaW5Db3VudDsgaSsrKSB7XG4gICAgY29uc3QgdmFsID0gYmluVmFsdWVzW2ldO1xuICAgIGNvbnN0IGNvdW50ID0gYWdncmVnYXRvcj8uZ2V0QmluPy4oaSk/LmNvdW50ID8/IDA7XG4gICAgYmluc1tpXSA9IHtpLCB2YWx1ZTogdmFsLCBjb3VudHM6IGNvdW50fTtcbiAgfVxuICByZXR1cm4gYmlucztcbn1cblxuLyoqXG4gKiBDbGFzc2lmeSByYXcgcGVyLWJpbiBhZ2dyZWdhdGVkIHZhbHVlcyBpbnRvIGJyZWFrIGluZGljZXMgYWNjb3JkaW5nIHRvXG4gKiBhIGN1c3RvbSBjb2xvck1hcCwgYW5kIHBhdGNoIHRoZSBkZWNrLmdsIGludGVybmFsIGBzdGF0ZS5jb2xvcnNgIHNvIHRoZVxuICogR1BVIHNoYWRlciByZW5kZXJzIHRoZSBjb3JyZWN0IGNvbG9yIGZvciBlYWNoIGJpbi5cbiAqXG4gKiBDdXN0b20gYnJlYWtzIGRlZmluZSB0aHJlc2hvbGRzIFt0MCwgdDEsIOKApiwgdF97Ti0yfV0gZm9yIE4gY29sb3JzOlxuICogICBjb2xvciAwOiB2YWx1ZSA8IHQwXG4gKiAgIGNvbG9yIGk6IHRfe2ktMX0gPD0gdmFsdWUgPCB0X2lcbiAqICAgY29sb3IgTi0xOiB2YWx1ZSA+PSB0X3tOLTJ9XG4gKlxuICogV2UgcmVwbGFjZSB0aGUgdmFsdWVzIGluIGBzdGF0ZS5jb2xvcnMuYXR0cmlidXRlYCAvIGBzdGF0ZS5jb2xvcnMuaW5wdXRgXG4gKiB3aXRoIGludGVnZXIgYnJlYWsgaW5kaWNlcyBbMCDigKYgTi0xXS4gIENvbWJpbmVkIHdpdGggYGNvbG9yU2NhbGVUeXBlOiAncXVhbnRpemUnYFxuICogYW5kIGBjb2xvckRvbWFpbjogWzAsIE4tMV1gLCB0aGUgc2hhZGVyJ3MgbGluZWFyIGludGVycG9sYXRpb24gbWFwcyBlYWNoIGluZGV4XG4gKiB0byB0aGUgY29ycmVjdCBjb2xvciB0ZXh0dXJlIHBpeGVsLlxuICpcbiAqIGByYXdWYWx1ZXNgIG11c3QgYmUgdGhlIG9yaWdpbmFsIGFnZ3JlZ2F0ZWQgdmFsdWVzIChub3QgcHJldmlvdXNseSBjbGFzc2lmaWVkKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsYXNzaWZ5Qmluc0J5Q3VzdG9tQnJlYWtzKFxuICBzdGF0ZUNvbG9yczogYW55LFxuICBiaW5Db3VudDogbnVtYmVyLFxuICBjb2xvck1hcDogQ29sb3JNYXAsXG4gIHJhd1ZhbHVlczogRmxvYXQzMkFycmF5XG4pOiB2b2lkIHtcbiAgaWYgKCFyYXdWYWx1ZXMgfHwgYmluQ291bnQgPT09IDApIHJldHVybjtcblxuICBjb25zdCB0aHJlc2hvbGRzOiBudW1iZXJbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGNvbG9yTWFwKSB7XG4gICAgaWYgKHR5cGVvZiBlbnRyeVswXSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKGVudHJ5WzBdKSkge1xuICAgICAgdGhyZXNob2xkcy5wdXNoKGVudHJ5WzBdKTtcbiAgICB9XG4gIH1cbiAgdGhyZXNob2xkcy5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG5cbiAgY29uc3QgbnVtQ29sb3JzID0gY29sb3JNYXAubGVuZ3RoO1xuICBjb25zdCBjbGFzc2lmaWVkID0gbmV3IEZsb2F0MzJBcnJheShyYXdWYWx1ZXMubGVuZ3RoKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBiaW5Db3VudDsgaSsrKSB7XG4gICAgY29uc3QgdiA9IHJhd1ZhbHVlc1tpXTtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2KSkge1xuICAgICAgY2xhc3NpZmllZFtpXSA9IE5hTjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBsZXQgaWR4ID0gbnVtQ29sb3JzIC0gMTtcbiAgICBmb3IgKGxldCB0ID0gMDsgdCA8IHRocmVzaG9sZHMubGVuZ3RoOyB0KyspIHtcbiAgICAgIGlmICh2IDwgdGhyZXNob2xkc1t0XSkge1xuICAgICAgICBpZHggPSB0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgY2xhc3NpZmllZFtpXSA9IGlkeDtcbiAgfVxuICBmb3IgKGxldCBpID0gYmluQ291bnQ7IGkgPCBjbGFzc2lmaWVkLmxlbmd0aDsgaSsrKSB7XG4gICAgY2xhc3NpZmllZFtpXSA9IE5hTjtcbiAgfVxuXG4gIGNvbnN0IGNsYXNzaWZpZWRBdHRyID0ge3ZhbHVlOiBjbGFzc2lmaWVkLCB0eXBlOiAnZmxvYXQzMicsIHNpemU6IDF9O1xuICBzdGF0ZUNvbG9ycy5pbnB1dCA9IGNsYXNzaWZpZWRBdHRyO1xuICBzdGF0ZUNvbG9ycy5hdHRyaWJ1dGUgPSBjbGFzc2lmaWVkQXR0cjtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTaGFyZWQgX29uQWdncmVnYXRpb25VcGRhdGUgLyByZW5kZXJMYXllcnMgbG9naWMgZm9yIFNjYWxlRW5oYW5jZWQqIGxheWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gZGVjay5nbCA5J3MgX29uQWdncmVnYXRpb25VcGRhdGUgaXMgcHJpdmF0ZSBhbmQgaXRzIG9uU2V0Q29sb3JEb21haW5cbi8vIGNhbGxiYWNrIG9ubHkgcHJvdmlkZXMgW21pbiwgbWF4XS4gIFRoYXQgaXMgc3VmZmljaWVudCBmb3IgcXVhbnRpemUvbGluZWFyXG4vLyBzY2FsZXMgYnV0IGQzLnNjYWxlUXVhbnRpbGUgbmVlZHMgdGhlICpmdWxsIHNvcnRlZCBhcnJheSogb2YgYmluIHZhbHVlcyB0b1xuLy8gY29tcHV0ZSBjb3JyZWN0IGJyZWFrIHBvaW50cyDigJQgd2l0aG91dCBpdCB0aGUgbGVnZW5kIGxhYmVscyBhcmUgd3Jvbmdcbi8vIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2tlcGxlcmdsL2tlcGxlci5nbC9pc3N1ZXMvMzM4MSkuXG4vL1xuLy8gZGVjay5nbCBkb2VzIG5vdCBleHBvc2UgYSBwdWJsaWMgaG9vayBmb3IgcG9zdC1hZ2dyZWdhdGlvbiBkYXRhLCBhbmQgcHJvcHNcbi8vIGFyZSBPYmplY3QuZnJlZXplKCknZCBzbyB3ZSBjYW5ub3Qgc3VwcHJlc3MgdGhlIHBhcmVudCdzIGNhbGxiYWNrLiAgSW5zdGVhZFxuLy8gd2UgbGV0IHRoZSBwYXJlbnQgZmlyZSBpdHMgW21pbiwgbWF4XSBjYWxsLCB0aGVuIGltbWVkaWF0ZWx5IGZpcmUgYSBzZWNvbmRcbi8vIGVucmljaGVkIGNhbGwgd2l0aCBwZXItYmluIHZhbHVlcyAoYWdncmVnYXRlZEJpbnMpIGFuZCwgZm9yIHF1YW50aWxlIHNjYWxlLFxuLy8gdGhlIGZ1bGwgc29ydGVkIGRvbWFpbi4gIFRoZSBzZWNvbmQgY2FsbCBvdmVyd3JpdGVzIHRoZSBmaXJzdCBkb3duc3RyZWFtIGluXG4vLyBfb25MYXllclNldERvbWFpbi5cbi8vXG4vLyBUaGlzIGNhbiBiZSByZW1vdmVkIG9uY2UgZGVjay5nbCBleHBvc2VzIGEgcmljaGVyIHBvc3QtYWdncmVnYXRpb24gY2FsbGJhY2tcbi8vIG9yIG1ha2VzIF9vbkFnZ3JlZ2F0aW9uVXBkYXRlIC8gQXR0cmlidXRlV2l0aFNjYWxlIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuXG5cbi8qKlxuICogRW5yaWNoZWQgX29uQWdncmVnYXRpb25VcGRhdGUgaW1wbGVtZW50YXRpb24gc2hhcmVkIGJ5IFNjYWxlRW5oYW5jZWRIZXhhZ29uTGF5ZXJcbiAqIGFuZCBTY2FsZUVuaGFuY2VkR3JpZExheWVyLlxuICpcbiAqIEBwYXJhbSBsYXllciAgICAgICBUaGUgZW5oYW5jZWQgbGF5ZXIgaW5zdGFuY2UgKGB0aGlzYClcbiAqIEBwYXJhbSBQYXJlbnRDbGFzcyBUaGUgZGVjay5nbCBwYXJlbnQgY2xhc3MgKEhleGFnb25MYXllciBvciBHcmlkTGF5ZXIpXG4gKiBAcGFyYW0gY2hhbm5lbCAgICAgVGhlIGFnZ3JlZ2F0aW9uIGNoYW5uZWwgaW5kZXggcGFzc2VkIGJ5IGRlY2suZ2xcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVucmljaGVkQWdncmVnYXRpb25VcGRhdGUobGF5ZXI6IGFueSwgUGFyZW50Q2xhc3M6IGFueSwgY2hhbm5lbDogbnVtYmVyKTogdm9pZCB7XG4gIChQYXJlbnRDbGFzcy5wcm90b3R5cGUgYXMgYW55KS5fb25BZ2dyZWdhdGlvblVwZGF0ZS5jYWxsKGxheWVyLCB7Y2hhbm5lbH0pO1xuXG4gIGlmIChjaGFubmVsICE9PSAwKSByZXR1cm47XG5cbiAgY29uc3QgcHJvcHMgPSBsYXllci5nZXRDdXJyZW50TGF5ZXIoKS5wcm9wcztcbiAgY29uc3Qge2FnZ3JlZ2F0b3J9ID0gbGF5ZXIuc3RhdGU7XG4gIGNvbnN0IHJlc3VsdCA9IGFnZ3JlZ2F0b3IuZ2V0UmVzdWx0KDApO1xuICBjb25zdCBiaW5WYWx1ZXMgPSByZXN1bHQ/LnZhbHVlIGFzIEZsb2F0MzJBcnJheSB8IHVuZGVmaW5lZDtcbiAgaWYgKCFiaW5WYWx1ZXMgfHwgYWdncmVnYXRvci5iaW5Db3VudCA8PSAwKSByZXR1cm47XG5cbiAgbGF5ZXIuc2V0U3RhdGUoe1xuICAgIHJhd0NvbG9yQmluVmFsdWVzOiBGbG9hdDMyQXJyYXkuZnJvbShiaW5WYWx1ZXMuc3ViYXJyYXkoMCwgYWdncmVnYXRvci5iaW5Db3VudCkpXG4gIH0pO1xuXG4gIGNvbnN0IGRvbWFpbiA9IGFnZ3JlZ2F0b3IuZ2V0UmVzdWx0RG9tYWluKDApO1xuICBjb25zdCBhZ2dyZWdhdGVkQmlucyA9IGJ1aWxkQWdncmVnYXRlZEJpbk1hcChiaW5WYWx1ZXMsIGFnZ3JlZ2F0b3IuYmluQ291bnQsIGFnZ3JlZ2F0b3IpO1xuXG4gIGlmIChwcm9wcy5jb2xvck1hcCkge1xuICAgIGNsYXNzaWZ5Qmluc0J5Q3VzdG9tQnJlYWtzKGxheWVyLnN0YXRlLmNvbG9ycywgYWdncmVnYXRvci5iaW5Db3VudCwgcHJvcHMuY29sb3JNYXAsIGJpblZhbHVlcyk7XG4gIH1cblxuICBsZXQgZW5yaWNoZWREb21haW4gPSBkb21haW47XG4gIGlmIChwcm9wcy5jb2xvclNjYWxlVHlwZSA9PT0gJ3F1YW50aWxlJykge1xuICAgIGVucmljaGVkRG9tYWluID0gQXJyYXkuZnJvbShiaW5WYWx1ZXMpXG4gICAgICAuc2xpY2UoMCwgYWdncmVnYXRvci5iaW5Db3VudClcbiAgICAgIC5maWx0ZXIoTnVtYmVyLmlzRmluaXRlKVxuICAgICAgLnNvcnQoKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBhIC0gYik7XG4gIH1cbiAgcHJvcHMub25TZXRDb2xvckRvbWFpbj8uKHtkb21haW46IGVucmljaGVkRG9tYWluLCBhZ2dyZWdhdGVkQmluc30pO1xufVxuXG4vKipcbiAqIFNoYXJlZCByZW5kZXJMYXllcnMoKSB3cmFwcGVyIHRoYXQgcmUtY2xhc3NpZmllcyBiaW5zIHdoZW4gY3VzdG9tIGNvbG9yTWFwXG4gKiBjaGFuZ2VzIGJldHdlZW4gcmVuZGVycyB3aXRob3V0IHRyaWdnZXJpbmcgYSBmdWxsIHJlLWFnZ3JlZ2F0aW9uLlxuICpcbiAqIEBwYXJhbSBsYXllciAgICAgICBUaGUgZW5oYW5jZWQgbGF5ZXIgaW5zdGFuY2UgKGB0aGlzYClcbiAqIEBwYXJhbSBQYXJlbnRDbGFzcyBUaGUgZGVjay5nbCBwYXJlbnQgY2xhc3MgKEhleGFnb25MYXllciBvciBHcmlkTGF5ZXIpXG4gKiBAcmV0dXJucyBUaGUgc3VibGF5ZXJzIHJldHVybmVkIGJ5IHRoZSBwYXJlbnQncyByZW5kZXJMYXllcnMoKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5yaWNoZWRSZW5kZXJMYXllcnMobGF5ZXI6IGFueSwgUGFyZW50Q2xhc3M6IGFueSk6IGFueSB7XG4gIGNvbnN0IHByb3BzID0gbGF5ZXIuZ2V0Q3VycmVudExheWVyKCkucHJvcHM7XG4gIGNvbnN0IHtjb2xvcnMsIHJhd0NvbG9yQmluVmFsdWVzLCBhZ2dyZWdhdG9yfSA9IGxheWVyLnN0YXRlO1xuICBpZiAocHJvcHMuY29sb3JNYXAgJiYgY29sb3JzICYmIHJhd0NvbG9yQmluVmFsdWVzICYmIGFnZ3JlZ2F0b3I/LmJpbkNvdW50ID4gMCkge1xuICAgIGNsYXNzaWZ5Qmluc0J5Q3VzdG9tQnJlYWtzKGNvbG9ycywgYWdncmVnYXRvci5iaW5Db3VudCwgcHJvcHMuY29sb3JNYXAsIHJhd0NvbG9yQmluVmFsdWVzKTtcbiAgfVxuICByZXR1cm4gKFBhcmVudENsYXNzLnByb3Rv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