kepler.gl 3.1.0 → 3.1.1

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 (234) hide show
  1. package/README.md +27 -132
  2. package/dist/src/common-utils/src/data-type.d.ts +9 -1
  3. package/dist/src/components/src/common/data-table/header-cell.d.ts +1 -0
  4. package/dist/src/components/src/common/data-table/index.d.ts +1 -0
  5. package/dist/src/components/src/common/file-uploader/file-drop.d.ts +1 -32
  6. package/dist/src/components/src/common/item-selector/dropdown-list.d.ts +2 -2
  7. package/dist/src/components/src/common/item-selector/item-selector.d.ts +1 -1
  8. package/dist/src/components/src/common/item-selector/typeahead.d.ts +1 -1
  9. package/dist/src/components/src/geocoder/geocoder.d.ts +7 -0
  10. package/dist/src/components/src/geocoder-panel.d.ts +2 -2
  11. package/dist/src/components/src/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
  12. package/dist/src/constants/src/default-settings.d.ts +14 -1
  13. package/dist/src/deckgl-arrow-layers/src/constants.d.ts +0 -12
  14. package/dist/src/deckgl-arrow-layers/src/index.d.ts +0 -1
  15. package/dist/src/deckgl-arrow-layers/src/utils/utils.d.ts +12 -1
  16. package/dist/src/duckdb/src/components/preview-data-panel.d.ts +7 -2
  17. package/dist/src/duckdb/src/components/schema-panel.d.ts +12 -3
  18. package/dist/src/duckdb/src/processors/data-processor.d.ts +1 -0
  19. package/dist/src/duckdb/src/table/duckdb-table-utils.d.ts +106 -0
  20. package/dist/src/duckdb/src/table/duckdb-table.d.ts +5 -3
  21. package/dist/src/processors/src/data-processor.d.ts +15 -1
  22. package/dist/src/reducers/src/provider-state-updaters.d.ts +1 -0
  23. package/dist/src/reducers/src/vis-state-updaters.d.ts +1 -1
  24. package/dist/src/table/src/dataset-utils.d.ts +1 -1
  25. package/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
  26. package/dist/src/utils/src/application-config.d.ts +4 -3
  27. package/dist/src/utils/src/data-utils.d.ts +9 -3
  28. package/dist/src/utils/src/indexed-data-container.d.ts +2 -2
  29. package/dist/src/utils/src/map-style-utils/mapbox-utils.d.ts +1 -1
  30. package/dist/src/utils/src/map-utils.d.ts +1 -1
  31. package/dist/src/utils/src/plot.d.ts +2 -2
  32. package/package.json +5 -5
  33. package/src/actions/package.json +8 -8
  34. package/src/ai-assistant/dist/components/ai-assistant-component.js +2 -1
  35. package/src/ai-assistant/package.json +7 -7
  36. package/src/ai-assistant/src/components/ai-assistant-component.tsx +1 -0
  37. package/src/cloud-providers/package.json +2 -2
  38. package/src/common-utils/dist/data-type.d.ts +9 -1
  39. package/src/common-utils/dist/data-type.js +50 -1
  40. package/src/common-utils/package.json +3 -3
  41. package/src/common-utils/src/data-type.ts +49 -1
  42. package/src/components/dist/common/data-table/header-cell.d.ts +1 -0
  43. package/src/components/dist/common/data-table/header-cell.js +2 -2
  44. package/src/components/dist/common/data-table/index.d.ts +1 -0
  45. package/src/components/dist/common/data-table/index.js +5 -1
  46. package/src/components/dist/common/file-uploader/file-drop.d.ts +1 -32
  47. package/src/components/dist/common/file-uploader/file-drop.js +152 -167
  48. package/src/components/dist/common/item-selector/dropdown-list.d.ts +2 -2
  49. package/src/components/dist/common/item-selector/dropdown-list.js +2 -3
  50. package/src/components/dist/common/item-selector/item-selector.d.ts +1 -1
  51. package/src/components/dist/common/item-selector/typeahead.d.ts +1 -1
  52. package/src/components/dist/common/range-brush.js +3 -3
  53. package/src/components/dist/geocoder/geocoder.d.ts +7 -0
  54. package/src/components/dist/geocoder/geocoder.js +19 -11
  55. package/src/components/dist/geocoder-panel.d.ts +2 -2
  56. package/src/components/dist/geocoder-panel.js +64 -91
  57. package/src/components/dist/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
  58. package/src/components/dist/hooks/use-fetch-vector-tile-metadata.js +35 -26
  59. package/src/components/dist/hooks/use-legend-position.js +8 -4
  60. package/src/components/dist/map/map-legend-panel.js +2 -3
  61. package/src/components/dist/modal-container.js +8 -8
  62. package/src/components/dist/modals/tilesets-modals/tileset-vector-form.js +31 -12
  63. package/src/components/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
  64. package/src/components/dist/side-panel/layer-panel/color-range-selector.js +10 -11
  65. package/src/components/dist/side-panel/layer-panel/color-selector.js +3 -3
  66. package/src/components/dist/side-panel/layer-panel/custom-palette.js +1 -2
  67. package/src/components/dist/side-panel/layer-panel/layer-configurator.js +6 -8
  68. package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +1 -2
  69. package/src/components/package.json +16 -16
  70. package/src/components/src/common/data-table/header-cell.tsx +2 -1
  71. package/src/components/src/common/data-table/index.tsx +4 -0
  72. package/src/components/src/common/file-uploader/file-drop.tsx +186 -161
  73. package/src/components/src/common/item-selector/dropdown-list.tsx +1 -6
  74. package/src/components/src/common/range-brush.tsx +2 -2
  75. package/src/components/src/geocoder/geocoder.tsx +16 -8
  76. package/src/components/src/geocoder-panel.tsx +95 -85
  77. package/src/components/src/hooks/use-fetch-vector-tile-metadata.ts +27 -25
  78. package/src/components/src/hooks/use-legend-position.ts +5 -2
  79. package/src/components/src/map/map-legend-panel.tsx +1 -2
  80. package/src/components/src/modal-container.tsx +7 -7
  81. package/src/components/src/modals/tilesets-modals/tileset-vector-form.tsx +12 -3
  82. package/src/components/src/side-panel/layer-panel/color-palette-preset.tsx +1 -1
  83. package/src/components/src/side-panel/layer-panel/color-range-selector.tsx +6 -11
  84. package/src/components/src/side-panel/layer-panel/color-selector.tsx +2 -2
  85. package/src/components/src/side-panel/layer-panel/custom-palette.tsx +0 -1
  86. package/src/components/src/side-panel/layer-panel/layer-configurator.tsx +23 -33
  87. package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +0 -1
  88. package/src/constants/dist/default-settings.d.ts +14 -1
  89. package/src/constants/dist/default-settings.js +20 -5
  90. package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/91/4f/6c65f3a1eba584ffd2d892cabc25ab5804d4a9ef53694c98707372a83e56343a274bec04f15927a6fe7602615f0f23f73ccf599f524ef97ad6c77c8832ea +1 -0
  91. package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/a6/b2/5424aa4477192fb44cc90fd80892efdc96731f2ff0f48e8f28abf64243cc +2 -0
  92. package/src/constants/package.json +2 -2
  93. package/src/constants/src/default-settings.ts +16 -1
  94. package/src/constants/umd/keplergl.min.js +2 -2
  95. package/src/deckgl-arrow-layers/dist/constants.d.ts +0 -12
  96. package/src/deckgl-arrow-layers/dist/constants.js +4 -15
  97. package/src/deckgl-arrow-layers/dist/index.d.ts +0 -1
  98. package/src/deckgl-arrow-layers/dist/index.js +1 -8
  99. package/src/deckgl-arrow-layers/dist/layers/geo-arrow-scatterplot-layer.js +4 -4
  100. package/src/deckgl-arrow-layers/dist/layers/geo-arrow-text-layer.js +5 -5
  101. package/src/deckgl-arrow-layers/dist/utils/utils.d.ts +12 -1
  102. package/src/deckgl-arrow-layers/dist/utils/utils.js +7 -5
  103. package/src/deckgl-arrow-layers/package.json +2 -1
  104. package/src/deckgl-arrow-layers/src/constants.ts +0 -13
  105. package/src/deckgl-arrow-layers/src/index.ts +0 -2
  106. package/src/deckgl-arrow-layers/src/layers/geo-arrow-scatterplot-layer.ts +5 -3
  107. package/src/deckgl-arrow-layers/src/layers/geo-arrow-text-layer.ts +8 -4
  108. package/src/deckgl-arrow-layers/src/utils/utils.ts +7 -5
  109. package/src/deckgl-layers/dist/deckgl-extensions/filter-arrow-layer.d.ts +1 -1
  110. package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.d.ts +1 -1
  111. package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.js +3 -3
  112. package/src/deckgl-layers/package.json +5 -5
  113. package/src/deckgl-layers/src/deckgl-extensions/filter-shader-module.ts +4 -3
  114. package/src/duckdb/dist/components/monaco-editor.js +4 -5
  115. package/src/duckdb/dist/components/preview-data-panel.d.ts +7 -2
  116. package/src/duckdb/dist/components/preview-data-panel.js +7 -8
  117. package/src/duckdb/dist/components/schema-panel.d.ts +12 -3
  118. package/src/duckdb/dist/components/schema-panel.js +41 -24
  119. package/src/duckdb/dist/components/sql-panel.js +245 -56
  120. package/src/duckdb/dist/init.js +20 -14
  121. package/src/duckdb/dist/processors/data-processor.d.ts +1 -0
  122. package/src/duckdb/dist/processors/data-processor.js +4 -4
  123. package/src/duckdb/dist/table/duckdb-table-utils.d.ts +106 -0
  124. package/src/duckdb/dist/table/duckdb-table-utils.js +493 -2
  125. package/src/duckdb/dist/table/duckdb-table.d.ts +5 -3
  126. package/src/duckdb/dist/table/duckdb-table.js +153 -261
  127. package/src/duckdb/package.json +6 -6
  128. package/src/duckdb/src/components/monaco-editor.tsx +3 -3
  129. package/src/duckdb/src/components/preview-data-panel.tsx +15 -8
  130. package/src/duckdb/src/components/schema-panel.tsx +92 -21
  131. package/src/duckdb/src/components/sql-panel.tsx +160 -22
  132. package/src/duckdb/src/init.ts +4 -1
  133. package/src/duckdb/src/processors/data-processor.ts +2 -2
  134. package/src/duckdb/src/table/duckdb-table-utils.ts +407 -1
  135. package/src/duckdb/src/table/duckdb-table.ts +61 -92
  136. package/src/effects/package.json +5 -5
  137. package/src/layers/dist/arc-layer/arc-layer.d.ts +1 -1
  138. package/src/layers/dist/arc-layer/arc-layer.js +2 -3
  139. package/src/layers/dist/base-layer.d.ts +7 -6
  140. package/src/layers/dist/base-layer.js +36 -19
  141. package/src/layers/dist/geojson-layer/geojson-layer.js +4 -2
  142. package/src/layers/dist/geojson-layer/geojson-utils.js +10 -3
  143. package/src/layers/dist/heatmap-layer/heatmap-layer.d.ts +2 -0
  144. package/src/layers/dist/heatmap-layer/heatmap-layer.js +16 -9
  145. package/src/layers/dist/icon-layer/icon-layer.d.ts +6 -3
  146. package/src/layers/dist/icon-layer/icon-layer.js +19 -11
  147. package/src/layers/dist/index.d.ts +1 -1
  148. package/src/layers/dist/index.js +1 -1
  149. package/src/layers/dist/layer-text-label.d.ts +9 -0
  150. package/src/layers/dist/layer-text-label.js +51 -6
  151. package/src/layers/dist/layer-utils.d.ts +39 -30
  152. package/src/layers/dist/layer-utils.js +69 -9
  153. package/src/layers/dist/line-layer/line-layer.d.ts +1 -1
  154. package/src/layers/dist/line-layer/line-layer.js +2 -3
  155. package/src/layers/dist/point-layer/point-layer.d.ts +10 -7
  156. package/src/layers/dist/point-layer/point-layer.js +16 -8
  157. package/src/layers/dist/trip-layer/trip-layer.d.ts +2 -2
  158. package/src/layers/dist/trip-layer/trip-layer.js +4 -2
  159. package/src/layers/dist/vector-tile/abstract-tile-layer.d.ts +3 -7
  160. package/src/layers/dist/vector-tile/abstract-tile-layer.js +7 -6
  161. package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +5 -7
  162. package/src/layers/dist/vector-tile/vector-tile-layer.js +23 -2
  163. package/src/layers/package.json +11 -10
  164. package/src/layers/src/arc-layer/arc-layer.ts +1 -1
  165. package/src/layers/src/base-layer.ts +50 -9
  166. package/src/layers/src/geojson-layer/geojson-layer.ts +3 -1
  167. package/src/layers/src/geojson-layer/geojson-utils.ts +4 -1
  168. package/src/layers/src/heatmap-layer/heatmap-layer.ts +17 -12
  169. package/src/layers/src/icon-layer/icon-layer.ts +7 -3
  170. package/src/layers/src/index.ts +1 -2
  171. package/src/layers/src/layer-text-label.ts +53 -4
  172. package/src/layers/src/layer-utils.ts +88 -9
  173. package/src/layers/src/line-layer/line-layer.ts +1 -1
  174. package/src/layers/src/point-layer/point-layer.ts +15 -11
  175. package/src/layers/src/trip-layer/trip-layer.ts +4 -2
  176. package/src/layers/src/vector-tile/abstract-tile-layer.ts +11 -5
  177. package/src/layers/src/vector-tile/vector-tile-layer.ts +33 -4
  178. package/src/localization/package.json +1 -1
  179. package/src/processors/dist/data-processor.d.ts +15 -1
  180. package/src/processors/dist/data-processor.js +104 -11
  181. package/src/processors/package.json +8 -7
  182. package/src/processors/src/data-processor.ts +116 -13
  183. package/src/reducers/dist/export-utils.js +2 -2
  184. package/src/reducers/dist/layer-utils.js +1 -1
  185. package/src/reducers/dist/provider-state-updaters.d.ts +1 -0
  186. package/src/reducers/dist/provider-state-updaters.js +5 -2
  187. package/src/reducers/dist/vis-state-updaters.d.ts +1 -1
  188. package/src/reducers/dist/vis-state-updaters.js +23 -12
  189. package/src/reducers/package.json +16 -16
  190. package/src/reducers/src/export-utils.ts +1 -1
  191. package/src/reducers/src/layer-utils.ts +2 -1
  192. package/src/reducers/src/provider-state-updaters.ts +4 -1
  193. package/src/reducers/src/vis-state-updaters.ts +45 -10
  194. package/src/schemas/dist/dataset-schema.js +35 -6
  195. package/src/schemas/package.json +7 -7
  196. package/src/schemas/src/dataset-schema.ts +36 -8
  197. package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/a3/a9/7f26bbc52905b0e21e9366a30ef0ba98f4ccf9aa8dd8326d90ba90191ba2e305323f505bf134c825356156c793bf9386ed2cef2aeb48eb327c26d106f69a +1 -0
  198. package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/7e/51/b8756555a0e2e696d944445ac23f7febf769006013fbc8419f39a701649d +2 -0
  199. package/src/styles/package.json +2 -2
  200. package/src/styles/umd/keplergl.min.js +2 -2
  201. package/src/table/dist/dataset-utils.js +23 -14
  202. package/src/table/dist/src/table/src/dataset-utils.d.ts +1 -1
  203. package/src/table/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
  204. package/src/table/dist/tileset/vector-tile-utils.js +122 -2
  205. package/src/table/package.json +5 -5
  206. package/src/table/src/dataset-utils.ts +16 -6
  207. package/src/table/src/tileset/vector-tile-utils.ts +131 -8
  208. package/src/tasks/package.json +2 -2
  209. package/src/types/actions.d.ts +1 -0
  210. package/src/types/layers.d.ts +1 -0
  211. package/src/types/package.json +1 -1
  212. package/src/types/types.d.ts +17 -0
  213. package/src/utils/dist/application-config.d.ts +4 -3
  214. package/src/utils/dist/application-config.js +3 -2
  215. package/src/utils/dist/data-scale-utils.js +4 -4
  216. package/src/utils/dist/data-utils.d.ts +9 -3
  217. package/src/utils/dist/data-utils.js +40 -7
  218. package/src/utils/dist/dataset-utils.js +23 -8
  219. package/src/utils/dist/indexed-data-container.d.ts +2 -2
  220. package/src/utils/dist/indexed-data-container.js +1 -1
  221. package/src/utils/dist/map-style-utils/mapbox-utils.d.ts +1 -1
  222. package/src/utils/dist/map-style-utils/mapbox-utils.js +3 -3
  223. package/src/utils/dist/plot.d.ts +2 -2
  224. package/src/utils/dist/plot.js +6 -6
  225. package/src/utils/map-utils.spec.js +1 -2
  226. package/src/utils/package.json +5 -4
  227. package/src/utils/src/application-config.ts +11 -8
  228. package/src/utils/src/data-scale-utils.ts +3 -3
  229. package/src/utils/src/data-utils.ts +36 -7
  230. package/src/utils/src/dataset-utils.ts +41 -9
  231. package/src/utils/src/indexed-data-container.ts +1 -1
  232. package/src/utils/src/map-style-utils/mapbox-utils.ts +2 -2
  233. package/src/utils/src/plot.ts +5 -5
  234. package/umd/keplergl.min.js +1279 -1295
@@ -7,13 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = GeocoderPanelFactory;
9
9
  exports.getUpdateVisDataPayload = getUpdateVisDataPayload;
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
18
13
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
14
  var _react = _interopRequireWildcard(require("react"));
@@ -30,8 +25,6 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
30
25
  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; }
31
26
  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; }
32
27
  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; }
33
- 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)); }
34
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
35
28
  var ICON_LAYER = {
36
29
  id: _constants.GEOCODER_LAYER_ID,
37
30
  type: 'icon',
@@ -106,92 +99,72 @@ function getUpdateVisDataPayload(lat, lon, text) {
106
99
  }];
107
100
  }
108
101
  function GeocoderPanelFactory() {
109
- var GeocoderPanel = /*#__PURE__*/function (_Component) {
110
- function GeocoderPanel() {
111
- var _this;
112
- (0, _classCallCheck2["default"])(this, GeocoderPanel);
113
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
114
- args[_key] = arguments[_key];
102
+ var GeocoderPanel = function GeocoderPanel(_ref) {
103
+ var isGeocoderEnabled = _ref.isGeocoderEnabled,
104
+ mapState = _ref.mapState,
105
+ mapboxApiAccessToken = _ref.mapboxApiAccessToken,
106
+ updateVisData = _ref.updateVisData,
107
+ removeDataset = _ref.removeDataset,
108
+ updateMap = _ref.updateMap,
109
+ layerOrder = _ref.layerOrder,
110
+ _ref$transitionDurati = _ref.transitionDuration,
111
+ transitionDuration = _ref$transitionDurati === void 0 ? 3000 : _ref$transitionDurati,
112
+ width = _ref.width,
113
+ className = _ref.className,
114
+ index = _ref.index,
115
+ unsyncedViewports = _ref.unsyncedViewports;
116
+ var removeGeocoderDataset = (0, _react.useCallback)(function () {
117
+ removeDataset(_constants.GEOCODER_DATASET_NAME);
118
+ }, [removeDataset]);
119
+ var onSelected = (0, _react.useCallback)(function () {
120
+ var _viewport = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
121
+ var geoItem = arguments.length > 1 ? arguments[1] : undefined;
122
+ var _geoItem$center = (0, _slicedToArray2["default"])(geoItem.center, 2),
123
+ lon = _geoItem$center[0],
124
+ lat = _geoItem$center[1],
125
+ text = geoItem.text,
126
+ bbox = geoItem.bbox;
127
+ var updateVisDataPayload = getUpdateVisDataPayload(lat, lon, text);
128
+ if (updateVisDataPayload) {
129
+ removeGeocoderDataset();
130
+ updateVisData.apply(void 0, (0, _toConsumableArray2["default"])(updateVisDataPayload).concat([generateConfig(layerOrder)]));
115
131
  }
116
- _this = _callSuper(this, GeocoderPanel, [].concat(args));
117
- (0, _defineProperty2["default"])(_this, "defaultProps", {
118
- transitionDuration: 3000
119
- });
120
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
121
- (0, _defineProperty2["default"])(_this, "onSelected", function () {
122
- var viewport = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
123
- var geoItem = arguments.length > 1 ? arguments[1] : undefined;
124
- var _geoItem$center = (0, _slicedToArray2["default"])(geoItem.center, 2),
125
- lon = _geoItem$center[0],
126
- lat = _geoItem$center[1],
127
- text = geoItem.text,
128
- bbox = geoItem.bbox;
129
- var layerOrder = _this.props.layerOrder;
130
- var updateVisDataPayload = getUpdateVisDataPayload(lat, lon, text);
131
- if (updateVisDataPayload) {
132
- var _this$props;
133
- _this.removeGeocoderDataset();
134
- (_this$props = _this.props).updateVisData.apply(_this$props, (0, _toConsumableArray2["default"])(updateVisDataPayload).concat([generateConfig(layerOrder)]));
135
- }
136
- var bounds = bbox || [lon - _constants.GEOCODER_GEO_OFFSET, lat - _constants.GEOCODER_GEO_OFFSET, lon + _constants.GEOCODER_GEO_OFFSET, lat + _constants.GEOCODER_GEO_OFFSET];
137
- var centerAndZoom = (0, _utils.getCenterAndZoomFromBounds)(bounds, {
138
- width: _this.props.mapState.width,
139
- height: _this.props.mapState.height
140
- });
141
- if (!centerAndZoom) {
142
- // failed to fit bounds
143
- return;
144
- }
145
- _this.props.updateMap(_objectSpread(_objectSpread({
146
- latitude: centerAndZoom.center[1],
147
- longitude: centerAndZoom.center[0]
148
- }, Number.isFinite(centerAndZoom.zoom) ? {
149
- zoom: centerAndZoom.zoom
150
- } : {}), {}, {
151
- pitch: 0,
152
- bearing: 0,
153
- transitionDuration: _this.props.transitionDuration,
154
- transitionInterpolator: new _typed.FlyToInterpolator()
155
- }), _this.props.index);
132
+ var bounds = bbox || [lon - _constants.GEOCODER_GEO_OFFSET, lat - _constants.GEOCODER_GEO_OFFSET, lon + _constants.GEOCODER_GEO_OFFSET, lat + _constants.GEOCODER_GEO_OFFSET];
133
+ var centerAndZoom = (0, _utils.getCenterAndZoomFromBounds)(bounds, {
134
+ width: mapState.width,
135
+ height: mapState.height
156
136
  });
157
- (0, _defineProperty2["default"])(_this, "removeMarker", function () {
158
- _this.removeGeocoderDataset();
159
- });
160
- return _this;
161
- }
162
- (0, _inherits2["default"])(GeocoderPanel, _Component);
163
- return (0, _createClass2["default"])(GeocoderPanel, [{
164
- key: "removeGeocoderDataset",
165
- value: function removeGeocoderDataset() {
166
- this.props.removeDataset(_constants.GEOCODER_DATASET_NAME);
137
+ if (!centerAndZoom) {
138
+ // failed to fit bounds
139
+ return;
167
140
  }
168
- }, {
169
- key: "render",
170
- value: function render() {
171
- var _this$props2 = this.props,
172
- className = _this$props2.className,
173
- isGeocoderEnabled = _this$props2.isGeocoderEnabled,
174
- mapboxApiAccessToken = _this$props2.mapboxApiAccessToken,
175
- width = _this$props2.width,
176
- index = _this$props2.index,
177
- unsyncedViewports = _this$props2.unsyncedViewports;
178
- return /*#__PURE__*/_react["default"].createElement(StyledGeocoderPanel, {
179
- className: (0, _classnames["default"])('geocoder-panel', className),
180
- width: width,
181
- index: index,
182
- unsyncedViewports: unsyncedViewports,
183
- style: {
184
- display: isGeocoderEnabled ? 'block' : 'none'
185
- }
186
- }, isValid(mapboxApiAccessToken) && /*#__PURE__*/_react["default"].createElement(_geocoder["default"], {
187
- mapboxApiAccessToken: mapboxApiAccessToken,
188
- onSelected: this.onSelected,
189
- onDeleteMarker: this.removeMarker,
190
- width: width
191
- }));
141
+ updateMap(_objectSpread(_objectSpread({
142
+ latitude: centerAndZoom.center[1],
143
+ longitude: centerAndZoom.center[0]
144
+ }, Number.isFinite(centerAndZoom.zoom) ? {
145
+ zoom: centerAndZoom.zoom
146
+ } : {}), {}, {
147
+ pitch: 0,
148
+ bearing: 0,
149
+ transitionDuration: transitionDuration,
150
+ transitionInterpolator: new _typed.FlyToInterpolator()
151
+ }), index);
152
+ }, [index, layerOrder, mapState, removeGeocoderDataset, transitionDuration, updateMap, updateVisData]);
153
+ return /*#__PURE__*/_react["default"].createElement(StyledGeocoderPanel, {
154
+ className: (0, _classnames["default"])('geocoder-panel', className),
155
+ width: width,
156
+ index: index,
157
+ unsyncedViewports: unsyncedViewports,
158
+ style: {
159
+ display: isGeocoderEnabled ? 'block' : 'none'
192
160
  }
193
- }]);
194
- }(_react.Component);
161
+ }, isValid(mapboxApiAccessToken) && /*#__PURE__*/_react["default"].createElement(_geocoder["default"], {
162
+ mapboxApiAccessToken: mapboxApiAccessToken,
163
+ onSelected: onSelected,
164
+ onDeleteMarker: removeGeocoderDataset,
165
+ width: width
166
+ }));
167
+ };
195
168
  return GeocoderPanel;
196
169
  }
197
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9wcm9jZXNzb3JzIiwiX3R5cGVkIiwiX3V0aWxzIiwiX2NvbnN0YW50cyIsIl9nZW9jb2RlciIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiSUNPTl9MQVlFUiIsImlkIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJ0eXBlIiwiY29uZmlnIiwibGFiZWwiLCJjb2xvciIsIkdFT0NPREVSX0lDT05fQ09MT1IiLCJkYXRhSWQiLCJHRU9DT0RFUl9EQVRBU0VUX05BTUUiLCJjb2x1bW5zIiwibGF0IiwibG5nIiwiaWNvbiIsImlzVmlzaWJsZSIsImhpZGRlbiIsInZpc0NvbmZpZyIsInJhZGl1cyIsIkdFT0NPREVSX0lDT05fU0laRSIsImdlbmVyYXRlQ29uZmlnIiwibGF5ZXJPcmRlciIsInZpc1N0YXRlIiwibGF5ZXJzIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIlN0eWxlZEdlb2NvZGVyUGFuZWwiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJnZW9jb2RlclRvcCIsInVuc3luY2VkVmlld3BvcnRzIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJpbmRleCIsImdlb2NvZGVyUmlnaHQiLCJ3aWR0aCIsImdlb2NvZGVyV2lkdGgiLCJib3hTaGFkb3ciLCJnZW5lcmF0ZUdlb2NvZGVyRGF0YXNldCIsImxvbiIsInRleHQiLCJkYXRhIiwicHJvY2Vzc1Jvd09iamVjdCIsImx0IiwibG4iLCJpbmZvIiwiaXNWYWxpZCIsImtleSIsInRlc3QiLCJnZXRVcGRhdGVWaXNEYXRhUGF5bG9hZCIsImRhdGFzZXQiLCJrZWVwRXhpc3RpbmdDb25maWciLCJHZW9jb2RlclBhbmVsRmFjdG9yeSIsIkdlb2NvZGVyUGFuZWwiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJ2aWV3cG9ydCIsInVuZGVmaW5lZCIsImdlb0l0ZW0iLCJfZ2VvSXRlbSRjZW50ZXIiLCJfc2xpY2VkVG9BcnJheTIiLCJjZW50ZXIiLCJiYm94IiwidXBkYXRlVmlzRGF0YVBheWxvYWQiLCJfdGhpcyRwcm9wcyIsInJlbW92ZUdlb2NvZGVyRGF0YXNldCIsInVwZGF0ZVZpc0RhdGEiLCJib3VuZHMiLCJHRU9DT0RFUl9HRU9fT0ZGU0VUIiwiY2VudGVyQW5kWm9vbSIsImdldENlbnRlckFuZFpvb21Gcm9tQm91bmRzIiwibWFwU3RhdGUiLCJoZWlnaHQiLCJ1cGRhdGVNYXAiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInpvb20iLCJwaXRjaCIsImJlYXJpbmciLCJ0cmFuc2l0aW9uSW50ZXJwb2xhdG9yIiwiRmx5VG9JbnRlcnBvbGF0b3IiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsInZhbHVlIiwicmVtb3ZlRGF0YXNldCIsInJlbmRlciIsIl90aGlzJHByb3BzMiIsImNsYXNzTmFtZSIsImlzR2VvY29kZXJFbmFibGVkIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NuYW1lcyIsInN0eWxlIiwiZGlzcGxheSIsIm9uU2VsZWN0ZWQiLCJvbkRlbGV0ZU1hcmtlciIsInJlbW92ZU1hcmtlciIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9nZW9jb2Rlci1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBDb21wb25lbnRUeXBlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7SVN0eWxlZENvbXBvbmVudH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge3Byb2Nlc3NSb3dPYmplY3R9IGZyb20gJ0BrZXBsZXIuZ2wvcHJvY2Vzc29ycyc7XG5pbXBvcnQge0ZseVRvSW50ZXJwb2xhdG9yfSBmcm9tICdAZGVjay5nbC9jb3JlL3R5cGVkJztcbmltcG9ydCB7Z2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHN9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtcbiAgR0VPQ09ERVJfREFUQVNFVF9OQU1FLFxuICBHRU9DT0RFUl9MQVlFUl9JRCxcbiAgR0VPQ09ERVJfR0VPX09GRlNFVCxcbiAgR0VPQ09ERVJfSUNPTl9DT0xPUixcbiAgR0VPQ09ERVJfSUNPTl9TSVpFXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7QWRkRGF0YVRvTWFwT3B0aW9ucywgTWFwU3RhdGUsIFByb3RvRGF0YXNldCwgVWlTdGF0ZSwgVmlld3BvcnR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBY3Rpb25IYW5kbGVyLCByZW1vdmVEYXRhc2V0LCB1cGRhdGVNYXAsIHVwZGF0ZVZpc0RhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCBHZW9jb2Rlciwge1Jlc3VsdH0gZnJvbSAnLi9nZW9jb2Rlci9nZW9jb2Rlcic7XG5pbXBvcnQge01hcFZpZXdTdGF0ZX0gZnJvbSAnQGRlY2suZ2wvY29yZS90eXBlZCc7XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgSUNPTl9MQVlFUiA9IHtcbiAgaWQ6IEdFT0NPREVSX0xBWUVSX0lELFxuICB0eXBlOiAnaWNvbicsXG4gIGNvbmZpZzoge1xuICAgIGxhYmVsOiAnR2VvY29kZXIgTGF5ZXInLFxuICAgIGNvbG9yOiBHRU9DT0RFUl9JQ09OX0NPTE9SLFxuICAgIGRhdGFJZDogR0VPQ09ERVJfREFUQVNFVF9OQU1FLFxuICAgIGNvbHVtbnM6IHtcbiAgICAgIGxhdDogJ2x0JyxcbiAgICAgIGxuZzogJ2xuJyxcbiAgICAgIGljb246ICdpY29uJyxcbiAgICAgIGxhYmVsOiAndGV4dCdcbiAgICB9LFxuICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICBoaWRkZW46IHRydWUsXG4gICAgdmlzQ29uZmlnOiB7XG4gICAgICByYWRpdXM6IEdFT0NPREVSX0lDT05fU0laRVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gZ2VuZXJhdGVDb25maWcobGF5ZXJPcmRlcikge1xuICByZXR1cm4ge1xuICAgIHZpc1N0YXRlOiB7XG4gICAgICBsYXllcnM6IFtJQ09OX0xBWUVSXSxcbiAgICAgIGxheWVyT3JkZXI6IFtJQ09OX0xBWUVSLmlkLCAuLi5sYXllck9yZGVyXVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgU3R5bGVkR2VvY29kZXJQYW5lbFByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzICYge1xuICB1bnN5bmNlZFZpZXdwb3J0cz86IGJvb2xlYW47XG4gIGluZGV4PzogbnVtYmVyO1xuICB3aWR0aD86IG51bWJlcjtcbn07XG5cbmNvbnN0IFN0eWxlZEdlb2NvZGVyUGFuZWw6IElTdHlsZWRDb21wb25lbnQ8XG4gICd3ZWInLFxuICBTdHlsZWRHZW9jb2RlclBhbmVsUHJvcHNcbj4gPSBzdHlsZWQuZGl2PFN0eWxlZEdlb2NvZGVyUGFuZWxQcm9wcz5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVyVG9wfXB4O1xuICByaWdodDogJHtwcm9wcyA9PlxuICAgIHByb3BzLnVuc3luY2VkVmlld3BvcnRzXG4gICAgICA/IC8vIDIgZ2VvY29kZXJzOiBzcGxpdCBtb2RlIGFuZCB1bnN5bmNlZCB2aWV3cG9ydHNcbiAgICAgICAgTnVtYmVyLmlzRmluaXRlKHByb3BzLmluZGV4KSAmJiBwcm9wcy5pbmRleCA9PT0gMFxuICAgICAgICA/IGBjYWxjKDUwJSArICR7cHJvcHMudGhlbWUuZ2VvY29kZXJSaWdodH1weClgIC8vIHVuc3luY2VkIGxlZnQgZ2VvY29kZXIgKGluZGV4IDApXG4gICAgICAgIDogYCR7cHJvcHMudGhlbWUuZ2VvY29kZXJSaWdodH1weGAgLy8gdW5zeW5jZWQgcmlnaHQgZ2VvY29kZXIgKGluZGV4IDEpXG4gICAgICA6IC8vIDEgZ2VvY29kZXI6IHNpbmdsZSBtb2RlIE9SIHNwbGl0IG1vZGUgYW5kIHN5bmNlZCB2aWV3cG9ydHNcbiAgICAgICAgYCR7cHJvcHMudGhlbWUuZ2VvY29kZXJSaWdodH1weGB9O1xuICB3aWR0aDogJHtwcm9wcyA9PiAoTnVtYmVyLmlzRmluaXRlKHByb3BzLndpZHRoKSA/IHByb3BzLndpZHRoIDogcHJvcHMudGhlbWUuZ2VvY29kZXJXaWR0aCl9cHg7XG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgei1pbmRleDogMTAwO1xuYDtcblxuZnVuY3Rpb24gZ2VuZXJhdGVHZW9jb2RlckRhdGFzZXQobGF0OiBudW1iZXIsIGxvbjogbnVtYmVyLCB0ZXh0Pzogc3RyaW5nKTogUHJvdG9EYXRhc2V0IHwgbnVsbCB7XG4gIGNvbnN0IGRhdGEgPSBwcm9jZXNzUm93T2JqZWN0KFtcbiAgICB7XG4gICAgICBsdDogbGF0LFxuICAgICAgbG46IGxvbixcbiAgICAgIGljb246ICdwbGFjZScsXG4gICAgICB0ZXh0XG4gICAgfVxuICBdKTtcbiAgaWYgKCFkYXRhKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRhdGEsXG4gICAgaW5mbzoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgaWQ6IEdFT0NPREVSX0RBVEFTRVRfTkFNRSxcbiAgICAgIGxhYmVsOiBHRU9DT0RFUl9EQVRBU0VUX05BTUVcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzVmFsaWQoa2V5KSB7XG4gIHJldHVybiAvcGtcXC4uKlxcLi4qLy50ZXN0KGtleSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVcGRhdGVWaXNEYXRhUGF5bG9hZChcbiAgbGF0OiBudW1iZXIsXG4gIGxvbjogbnVtYmVyLFxuICB0ZXh0Pzogc3RyaW5nXG4pOiBbUHJvdG9EYXRhc2V0W10sIEFkZERhdGFUb01hcE9wdGlvbnNdIHwgbnVsbCB7XG4gIGNvbnN0IGRhdGFzZXQgPSBnZW5lcmF0ZUdlb2NvZGVyRGF0YXNldChsYXQsIGxvbiwgdGV4dCk7XG4gIGlmICghZGF0YXNldCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBbXG4gICAgW2RhdGFzZXRdLFxuICAgIHtcbiAgICAgIGtlZXBFeGlzdGluZ0NvbmZpZzogdHJ1ZVxuICAgIH1cbiAgXTtcbn1cblxuaW50ZXJmYWNlIEdlb2NvZGVyUGFuZWxQcm9wcyB7XG4gIGlzR2VvY29kZXJFbmFibGVkOiBib29sZWFuO1xuICBtYXBTdGF0ZTogTWFwU3RhdGU7XG4gIHVpU3RhdGU6IFVpU3RhdGU7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIHVwZGF0ZVZpc0RhdGE6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHVwZGF0ZVZpc0RhdGE+O1xuICByZW1vdmVEYXRhc2V0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiByZW1vdmVEYXRhc2V0PjtcbiAgdXBkYXRlTWFwOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB1cGRhdGVNYXA+O1xuICBsYXllck9yZGVyOiBzdHJpbmdbXTtcblxuICB0cmFuc2l0aW9uRHVyYXRpb24/OiBNYXBWaWV3U3RhdGVbJ3RyYW5zaXRpb25EdXJhdGlvbiddO1xuICB3aWR0aD86IG51bWJlcjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICB1bnN5bmNlZFZpZXdwb3J0czogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR2VvY29kZXJQYW5lbEZhY3RvcnkoKTogQ29tcG9uZW50VHlwZTxHZW9jb2RlclBhbmVsUHJvcHM+IHtcbiAgY2xhc3MgR2VvY29kZXJQYW5lbCBleHRlbmRzIENvbXBvbmVudDxHZW9jb2RlclBhbmVsUHJvcHM+IHtcbiAgICBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB0cmFuc2l0aW9uRHVyYXRpb246IDMwMDBcbiAgICB9O1xuXG4gICAgcmVtb3ZlR2VvY29kZXJEYXRhc2V0KCkge1xuICAgICAgdGhpcy5wcm9wcy5yZW1vdmVEYXRhc2V0KEdFT0NPREVSX0RBVEFTRVRfTkFNRSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIG9uU2VsZWN0ZWQgPSAodmlld3BvcnQ6IFZpZXdwb3J0IHwgbnVsbCA9IG51bGwsIGdlb0l0ZW06IFJlc3VsdCkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBjZW50ZXI6IFtsb24sIGxhdF0sXG4gICAgICAgIHRleHQsXG4gICAgICAgIGJib3hcbiAgICAgIH0gPSBnZW9JdGVtO1xuICAgICAgY29uc3Qge2xheWVyT3JkZXJ9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgdXBkYXRlVmlzRGF0YVBheWxvYWQgPSBnZXRVcGRhdGVWaXNEYXRhUGF5bG9hZChsYXQsIGxvbiwgdGV4dCk7XG4gICAgICBpZiAodXBkYXRlVmlzRGF0YVBheWxvYWQpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVHZW9jb2RlckRhdGFzZXQoKTtcbiAgICAgICAgdGhpcy5wcm9wcy51cGRhdGVWaXNEYXRhKC4uLnVwZGF0ZVZpc0RhdGFQYXlsb2FkLCBnZW5lcmF0ZUNvbmZpZyhsYXllck9yZGVyKSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvdW5kcyA9IGJib3ggfHwgW1xuICAgICAgICBsb24gLSBHRU9DT0RFUl9HRU9fT0ZGU0VULFxuICAgICAgICBsYXQgLSBHRU9DT0RFUl9HRU9fT0ZGU0VULFxuICAgICAgICBsb24gKyBHRU9DT0RFUl9HRU9fT0ZGU0VULFxuICAgICAgICBsYXQgKyBHRU9DT0RFUl9HRU9fT0ZGU0VUXG4gICAgICBdO1xuICAgICAgY29uc3QgY2VudGVyQW5kWm9vbSA9IGdldENlbnRlckFuZFpvb21Gcm9tQm91bmRzKGJvdW5kcywge1xuICAgICAgICB3aWR0aDogdGhpcy5wcm9wcy5tYXBTdGF0ZS53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB0aGlzLnByb3BzLm1hcFN0YXRlLmhlaWdodFxuICAgICAgfSk7XG5cbiAgICAgIGlmICghY2VudGVyQW5kWm9vbSkge1xuICAgICAgICAvLyBmYWlsZWQgdG8gZml0IGJvdW5kc1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJvcHMudXBkYXRlTWFwKFxuICAgICAgICB7XG4gICAgICAgICAgbGF0aXR1ZGU6IGNlbnRlckFuZFpvb20uY2VudGVyWzFdLFxuICAgICAgICAgIGxvbmdpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMF0sXG4gICAgICAgICAgLy8gRm9yIG1hcmdpbmFsIG9yIGludmFsaWQgYm91bmRzLCB6b29tIG1heSBiZSBOYU4uIE1ha2Ugc3VyZSB0byBwcm92aWRlIGEgdmFsaWQgdmFsdWUgaW4gb3JkZXJcbiAgICAgICAgICAvLyB0byBhdm9pZCBjb3JydXB0IHN0YXRlIGFuZCBwb3RlbnRpYWwgY3Jhc2hlcyBhcyB6b29tIGlzIGV4cGVjdGVkIHRvIGJlIGEgbnVtYmVyXG4gICAgICAgICAgLi4uKE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pID8ge3pvb206IGNlbnRlckFuZFpvb20uem9vbX0gOiB7fSksXG4gICAgICAgICAgcGl0Y2g6IDAsXG4gICAgICAgICAgYmVhcmluZzogMCxcbiAgICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IHRoaXMucHJvcHMudHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICAgIHRyYW5zaXRpb25JbnRlcnBvbGF0b3I6IG5ldyBGbHlUb0ludGVycG9sYXRvcigpXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucHJvcHMuaW5kZXhcbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbW92ZU1hcmtlciA9ICgpID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlR2VvY29kZXJEYXRhc2V0KCk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtjbGFzc05hbWUsIGlzR2VvY29kZXJFbmFibGVkLCBtYXBib3hBcGlBY2Nlc3NUb2tlbiwgd2lkdGgsIGluZGV4LCB1bnN5bmNlZFZpZXdwb3J0c30gPVxuICAgICAgICB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZEdlb2NvZGVyUGFuZWxcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2dlb2NvZGVyLXBhbmVsJywgY2xhc3NOYW1lKX1cbiAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXt1bnN5bmNlZFZpZXdwb3J0c31cbiAgICAgICAgICBzdHlsZT17e2Rpc3BsYXk6IGlzR2VvY29kZXJFbmFibGVkID8gJ2Jsb2NrJyA6ICdub25lJ319XG4gICAgICAgID5cbiAgICAgICAgICB7aXNWYWxpZChtYXBib3hBcGlBY2Nlc3NUb2tlbikgJiYgKFxuICAgICAgICAgICAgPEdlb2NvZGVyXG4gICAgICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuPXttYXBib3hBcGlBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgb25TZWxlY3RlZD17dGhpcy5vblNlbGVjdGVkfVxuICAgICAgICAgICAgICBvbkRlbGV0ZU1hcmtlcj17dGhpcy5yZW1vdmVNYXJrZXJ9XG4gICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRHZW9jb2RlclBhbmVsPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gR2VvY29kZXJQYW5lbDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQVVBLElBQUFRLFNBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUFx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
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9wcm9jZXNzb3JzIiwiX3R5cGVkIiwiX3V0aWxzIiwiX2NvbnN0YW50cyIsIl9nZW9jb2RlciIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIklDT05fTEFZRVIiLCJpZCIsIkdFT0NPREVSX0xBWUVSX0lEIiwidHlwZSIsImNvbmZpZyIsImxhYmVsIiwiY29sb3IiLCJHRU9DT0RFUl9JQ09OX0NPTE9SIiwiZGF0YUlkIiwiR0VPQ09ERVJfREFUQVNFVF9OQU1FIiwiY29sdW1ucyIsImxhdCIsImxuZyIsImljb24iLCJpc1Zpc2libGUiLCJoaWRkZW4iLCJ2aXNDb25maWciLCJyYWRpdXMiLCJHRU9DT0RFUl9JQ09OX1NJWkUiLCJnZW5lcmF0ZUNvbmZpZyIsImxheWVyT3JkZXIiLCJ2aXNTdGF0ZSIsImxheWVycyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJTdHlsZWRHZW9jb2RlclBhbmVsIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiZ2VvY29kZXJUb3AiLCJ1bnN5bmNlZFZpZXdwb3J0cyIsIk51bWJlciIsImlzRmluaXRlIiwiaW5kZXgiLCJnZW9jb2RlclJpZ2h0Iiwid2lkdGgiLCJnZW9jb2RlcldpZHRoIiwiYm94U2hhZG93IiwiZ2VuZXJhdGVHZW9jb2RlckRhdGFzZXQiLCJsb24iLCJ0ZXh0IiwiZGF0YSIsInByb2Nlc3NSb3dPYmplY3QiLCJsdCIsImxuIiwiaW5mbyIsImlzVmFsaWQiLCJrZXkiLCJ0ZXN0IiwiZ2V0VXBkYXRlVmlzRGF0YVBheWxvYWQiLCJkYXRhc2V0Iiwia2VlcEV4aXN0aW5nQ29uZmlnIiwiR2VvY29kZXJQYW5lbEZhY3RvcnkiLCJHZW9jb2RlclBhbmVsIiwiX3JlZiIsImlzR2VvY29kZXJFbmFibGVkIiwibWFwU3RhdGUiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsInVwZGF0ZVZpc0RhdGEiLCJyZW1vdmVEYXRhc2V0IiwidXBkYXRlTWFwIiwiX3JlZiR0cmFuc2l0aW9uRHVyYXRpIiwidHJhbnNpdGlvbkR1cmF0aW9uIiwiY2xhc3NOYW1lIiwicmVtb3ZlR2VvY29kZXJEYXRhc2V0IiwidXNlQ2FsbGJhY2siLCJvblNlbGVjdGVkIiwiX3ZpZXdwb3J0IiwidW5kZWZpbmVkIiwiZ2VvSXRlbSIsIl9nZW9JdGVtJGNlbnRlciIsIl9zbGljZWRUb0FycmF5MiIsImNlbnRlciIsImJib3giLCJ1cGRhdGVWaXNEYXRhUGF5bG9hZCIsImJvdW5kcyIsIkdFT0NPREVSX0dFT19PRkZTRVQiLCJjZW50ZXJBbmRab29tIiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJoZWlnaHQiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInpvb20iLCJwaXRjaCIsImJlYXJpbmciLCJ0cmFuc2l0aW9uSW50ZXJwb2xhdG9yIiwiRmx5VG9JbnRlcnBvbGF0b3IiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NuYW1lcyIsInN0eWxlIiwiZGlzcGxheSIsIm9uRGVsZXRlTWFya2VyIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dlb2NvZGVyLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFja30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge0lTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtwcm9jZXNzUm93T2JqZWN0fSBmcm9tICdAa2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHtGbHlUb0ludGVycG9sYXRvcn0gZnJvbSAnQGRlY2suZ2wvY29yZS90eXBlZCc7XG5pbXBvcnQge2dldENlbnRlckFuZFpvb21Gcm9tQm91bmRzfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7XG4gIEdFT0NPREVSX0RBVEFTRVRfTkFNRSxcbiAgR0VPQ09ERVJfTEFZRVJfSUQsXG4gIEdFT0NPREVSX0dFT19PRkZTRVQsXG4gIEdFT0NPREVSX0lDT05fQ09MT1IsXG4gIEdFT0NPREVSX0lDT05fU0laRVxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0FkZERhdGFUb01hcE9wdGlvbnMsIE1hcFN0YXRlLCBQcm90b0RhdGFzZXQsIFVpU3RhdGUsIFZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QWN0aW9uSGFuZGxlciwgcmVtb3ZlRGF0YXNldCwgdXBkYXRlTWFwLCB1cGRhdGVWaXNEYXRhfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5pbXBvcnQgR2VvY29kZXIsIHtSZXN1bHR9IGZyb20gJy4vZ2VvY29kZXIvZ2VvY29kZXInO1xuaW1wb3J0IHtNYXBWaWV3U3RhdGV9IGZyb20gJ0BkZWNrLmdsL2NvcmUvdHlwZWQnO1xuXG5pbXBvcnQge0Jhc2VDb21wb25lbnRQcm9wc30gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IElDT05fTEFZRVIgPSB7XG4gIGlkOiBHRU9DT0RFUl9MQVlFUl9JRCxcbiAgdHlwZTogJ2ljb24nLFxuICBjb25maWc6IHtcbiAgICBsYWJlbDogJ0dlb2NvZGVyIExheWVyJyxcbiAgICBjb2xvcjogR0VPQ09ERVJfSUNPTl9DT0xPUixcbiAgICBkYXRhSWQ6IEdFT0NPREVSX0RBVEFTRVRfTkFNRSxcbiAgICBjb2x1bW5zOiB7XG4gICAgICBsYXQ6ICdsdCcsXG4gICAgICBsbmc6ICdsbicsXG4gICAgICBpY29uOiAnaWNvbicsXG4gICAgICBsYWJlbDogJ3RleHQnXG4gICAgfSxcbiAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgaGlkZGVuOiB0cnVlLFxuICAgIHZpc0NvbmZpZzoge1xuICAgICAgcmFkaXVzOiBHRU9DT0RFUl9JQ09OX1NJWkVcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ29uZmlnKGxheWVyT3JkZXIpIHtcbiAgcmV0dXJuIHtcbiAgICB2aXNTdGF0ZToge1xuICAgICAgbGF5ZXJzOiBbSUNPTl9MQVlFUl0sXG4gICAgICBsYXllck9yZGVyOiBbSUNPTl9MQVlFUi5pZCwgLi4ubGF5ZXJPcmRlcl1cbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFN0eWxlZEdlb2NvZGVyUGFuZWxQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcyAmIHtcbiAgdW5zeW5jZWRWaWV3cG9ydHM/OiBib29sZWFuO1xuICBpbmRleD86IG51bWJlcjtcbiAgd2lkdGg/OiBudW1iZXI7XG59O1xuXG5jb25zdCBTdHlsZWRHZW9jb2RlclBhbmVsOiBJU3R5bGVkQ29tcG9uZW50PFxuICAnd2ViJyxcbiAgU3R5bGVkR2VvY29kZXJQYW5lbFByb3BzXG4+ID0gc3R5bGVkLmRpdjxTdHlsZWRHZW9jb2RlclBhbmVsUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlclRvcH1weDtcbiAgcmlnaHQ6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy51bnN5bmNlZFZpZXdwb3J0c1xuICAgICAgPyAvLyAyIGdlb2NvZGVyczogc3BsaXQgbW9kZSBhbmQgdW5zeW5jZWQgdmlld3BvcnRzXG4gICAgICAgIE51bWJlci5pc0Zpbml0ZShwcm9wcy5pbmRleCkgJiYgcHJvcHMuaW5kZXggPT09IDBcbiAgICAgICAgPyBgY2FsYyg1MCUgKyAke3Byb3BzLnRoZW1lLmdlb2NvZGVyUmlnaHR9cHgpYCAvLyB1bnN5bmNlZCBsZWZ0IGdlb2NvZGVyIChpbmRleCAwKVxuICAgICAgICA6IGAke3Byb3BzLnRoZW1lLmdlb2NvZGVyUmlnaHR9cHhgIC8vIHVuc3luY2VkIHJpZ2h0IGdlb2NvZGVyIChpbmRleCAxKVxuICAgICAgOiAvLyAxIGdlb2NvZGVyOiBzaW5nbGUgbW9kZSBPUiBzcGxpdCBtb2RlIGFuZCBzeW5jZWQgdmlld3BvcnRzXG4gICAgICAgIGAke3Byb3BzLnRoZW1lLmdlb2NvZGVyUmlnaHR9cHhgfTtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gKE51bWJlci5pc0Zpbml0ZShwcm9wcy53aWR0aCkgPyBwcm9wcy53aWR0aCA6IHByb3BzLnRoZW1lLmdlb2NvZGVyV2lkdGgpfXB4O1xuICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJveFNoYWRvd307XG4gIHotaW5kZXg6IDEwMDtcbmA7XG5cbmZ1bmN0aW9uIGdlbmVyYXRlR2VvY29kZXJEYXRhc2V0KGxhdDogbnVtYmVyLCBsb246IG51bWJlciwgdGV4dD86IHN0cmluZyk6IFByb3RvRGF0YXNldCB8IG51bGwge1xuICBjb25zdCBkYXRhID0gcHJvY2Vzc1Jvd09iamVjdChbXG4gICAge1xuICAgICAgbHQ6IGxhdCxcbiAgICAgIGxuOiBsb24sXG4gICAgICBpY29uOiAncGxhY2UnLFxuICAgICAgdGV4dFxuICAgIH1cbiAgXSk7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhLFxuICAgIGluZm86IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIGlkOiBHRU9DT0RFUl9EQVRBU0VUX05BTUUsXG4gICAgICBsYWJlbDogR0VPQ09ERVJfREFUQVNFVF9OQU1FXG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkKGtleSkge1xuICByZXR1cm4gL3BrXFwuLipcXC4uKi8udGVzdChrZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXBkYXRlVmlzRGF0YVBheWxvYWQoXG4gIGxhdDogbnVtYmVyLFxuICBsb246IG51bWJlcixcbiAgdGV4dD86IHN0cmluZ1xuKTogW1Byb3RvRGF0YXNldFtdLCBBZGREYXRhVG9NYXBPcHRpb25zXSB8IG51bGwge1xuICBjb25zdCBkYXRhc2V0ID0gZ2VuZXJhdGVHZW9jb2RlckRhdGFzZXQobGF0LCBsb24sIHRleHQpO1xuICBpZiAoIWRhdGFzZXQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gW1xuICAgIFtkYXRhc2V0XSxcbiAgICB7XG4gICAgICBrZWVwRXhpc3RpbmdDb25maWc6IHRydWVcbiAgICB9XG4gIF07XG59XG5cbmludGVyZmFjZSBHZW9jb2RlclBhbmVsUHJvcHMge1xuICBpc0dlb2NvZGVyRW5hYmxlZDogYm9vbGVhbjtcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICB1cGRhdGVWaXNEYXRhOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB1cGRhdGVWaXNEYXRhPjtcbiAgcmVtb3ZlRGF0YXNldDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgcmVtb3ZlRGF0YXNldD47XG4gIHVwZGF0ZU1hcDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgdXBkYXRlTWFwPjtcbiAgbGF5ZXJPcmRlcjogc3RyaW5nW107XG5cbiAgdHJhbnNpdGlvbkR1cmF0aW9uPzogTWFwVmlld1N0YXRlWyd0cmFuc2l0aW9uRHVyYXRpb24nXTtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgdW5zeW5jZWRWaWV3cG9ydHM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEdlb2NvZGVyUGFuZWxGYWN0b3J5KCk6IFJlYWN0LkZDPEdlb2NvZGVyUGFuZWxQcm9wcz4ge1xuICBjb25zdCBHZW9jb2RlclBhbmVsID0gKHtcbiAgICBpc0dlb2NvZGVyRW5hYmxlZCxcbiAgICBtYXBTdGF0ZSxcbiAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgICB1cGRhdGVWaXNEYXRhLFxuICAgIHJlbW92ZURhdGFzZXQsXG4gICAgdXBkYXRlTWFwLFxuICAgIGxheWVyT3JkZXIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uID0gMzAwMCxcbiAgICB3aWR0aCxcbiAgICBjbGFzc05hbWUsXG4gICAgaW5kZXgsXG4gICAgdW5zeW5jZWRWaWV3cG9ydHNcbiAgfTogR2VvY29kZXJQYW5lbFByb3BzKSA9PiB7XG4gICAgY29uc3QgcmVtb3ZlR2VvY29kZXJEYXRhc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgcmVtb3ZlRGF0YXNldChHRU9DT0RFUl9EQVRBU0VUX05BTUUpO1xuICAgIH0sIFtyZW1vdmVEYXRhc2V0XSk7XG5cbiAgICBjb25zdCBvblNlbGVjdGVkID0gdXNlQ2FsbGJhY2soXG4gICAgICAoX3ZpZXdwb3J0OiBWaWV3cG9ydCB8IG51bGwgPSBudWxsLCBnZW9JdGVtOiBSZXN1bHQpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGNlbnRlcjogW2xvbiwgbGF0XSxcbiAgICAgICAgICB0ZXh0LFxuICAgICAgICAgIGJib3hcbiAgICAgICAgfSA9IGdlb0l0ZW07XG5cbiAgICAgICAgY29uc3QgdXBkYXRlVmlzRGF0YVBheWxvYWQgPSBnZXRVcGRhdGVWaXNEYXRhUGF5bG9hZChsYXQsIGxvbiwgdGV4dCk7XG4gICAgICAgIGlmICh1cGRhdGVWaXNEYXRhUGF5bG9hZCkge1xuICAgICAgICAgIHJlbW92ZUdlb2NvZGVyRGF0YXNldCgpO1xuICAgICAgICAgIHVwZGF0ZVZpc0RhdGEoLi4udXBkYXRlVmlzRGF0YVBheWxvYWQsIGdlbmVyYXRlQ29uZmlnKGxheWVyT3JkZXIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IGJib3ggfHwgW1xuICAgICAgICAgIGxvbiAtIEdFT0NPREVSX0dFT19PRkZTRVQsXG4gICAgICAgICAgbGF0IC0gR0VPQ09ERVJfR0VPX09GRlNFVCxcbiAgICAgICAgICBsb24gKyBHRU9DT0RFUl9HRU9fT0ZGU0VULFxuICAgICAgICAgIGxhdCArIEdFT0NPREVSX0dFT19PRkZTRVRcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgY2VudGVyQW5kWm9vbSA9IGdldENlbnRlckFuZFpvb21Gcm9tQm91bmRzKGJvdW5kcywge1xuICAgICAgICAgIHdpZHRoOiBtYXBTdGF0ZS53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IG1hcFN0YXRlLmhlaWdodFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWNlbnRlckFuZFpvb20pIHtcbiAgICAgICAgICAvLyBmYWlsZWQgdG8gZml0IGJvdW5kc1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZU1hcChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMV0sXG4gICAgICAgICAgICBsb25naXR1ZGU6IGNlbnRlckFuZFpvb20uY2VudGVyWzBdLFxuICAgICAgICAgICAgLy8gRm9yIG1hcmdpbmFsIG9yIGludmFsaWQgYm91bmRzLCB6b29tIG1heSBiZSBOYU4uIE1ha2Ugc3VyZSB0byBwcm92aWRlIGEgdmFsaWQgdmFsdWUgaW4gb3JkZXJcbiAgICAgICAgICAgIC8vIHRvIGF2b2lkIGNvcnJ1cHQgc3RhdGUgYW5kIHBvdGVudGlhbCBjcmFzaGVzIGFzIHpvb20gaXMgZXhwZWN0ZWQgdG8gYmUgYSBudW1iZXJcbiAgICAgICAgICAgIC4uLihOdW1iZXIuaXNGaW5pdGUoY2VudGVyQW5kWm9vbS56b29tKSA/IHt6b29tOiBjZW50ZXJBbmRab29tLnpvb219IDoge30pLFxuICAgICAgICAgICAgcGl0Y2g6IDAsXG4gICAgICAgICAgICBiZWFyaW5nOiAwLFxuICAgICAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICAgICAgdHJhbnNpdGlvbkludGVycG9sYXRvcjogbmV3IEZseVRvSW50ZXJwb2xhdG9yKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluZGV4XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBpbmRleCxcbiAgICAgICAgbGF5ZXJPcmRlcixcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIHJlbW92ZUdlb2NvZGVyRGF0YXNldCxcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICB1cGRhdGVNYXAsXG4gICAgICAgIHVwZGF0ZVZpc0RhdGFcbiAgICAgIF1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRHZW9jb2RlclBhbmVsXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZ2VvY29kZXItcGFuZWwnLCBjbGFzc05hbWUpfVxuICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgdW5zeW5jZWRWaWV3cG9ydHM9e3Vuc3luY2VkVmlld3BvcnRzfVxuICAgICAgICBzdHlsZT17e2Rpc3BsYXk6IGlzR2VvY29kZXJFbmFibGVkID8gJ2Jsb2NrJyA6ICdub25lJ319XG4gICAgICA+XG4gICAgICAgIHtpc1ZhbGlkKG1hcGJveEFwaUFjY2Vzc1Rva2VuKSAmJiAoXG4gICAgICAgICAgPEdlb2NvZGVyXG4gICAgICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbj17bWFwYm94QXBpQWNjZXNzVG9rZW59XG4gICAgICAgICAgICBvblNlbGVjdGVkPXtvblNlbGVjdGVkfVxuICAgICAgICAgICAgb25EZWxldGVNYXJrZXI9e3JlbW92ZUdlb2NvZGVyRGF0YXNldH1cbiAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9TdHlsZWRHZW9jb2RlclBhbmVsPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIEdlb2NvZGVyUGFuZWw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBVUEsSUFBQVEsU0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQXFELElBQUFTLGVBQUEsRUFuQnJEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVosd0JBQUFZLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFB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
@@ -1,9 +1,10 @@
1
- import { /* MVTSource,*/ TileJSON } from '@loaders.gl/mvt';
1
+ import { TileJSON } from '@loaders.gl/mvt';
2
2
  import { PMTilesMetadata } from '@loaders.gl/pmtiles';
3
3
  import { RemoteTileFormat } from '@kepler.gl/constants';
4
4
  import { VectorTileMetadata } from '@kepler.gl/table';
5
5
  declare type FetchVectorTileMetadataProps = {
6
- url: string | null;
6
+ metadataUrl: string | null;
7
+ tilesetUrl: string | null;
7
8
  remoteTileFormat: RemoteTileFormat;
8
9
  process?: (json: PMTilesMetadata | TileJSON) => VectorTileMetadata | Error | null;
9
10
  };
@@ -13,5 +14,5 @@ declare type FetchVectorTileMetadataReturn = {
13
14
  error: Error | null;
14
15
  };
15
16
  /** Hook to fetch and return mvt or pmtiles metadata. */
16
- export default function useFetchVectorTileMetadata({ remoteTileFormat, url, process }: FetchVectorTileMetadataProps): FetchVectorTileMetadataReturn;
17
+ export default function useFetchVectorTileMetadata({ remoteTileFormat, tilesetUrl, metadataUrl, process }: FetchVectorTileMetadataProps): FetchVectorTileMetadataReturn;
17
18
  export {};
@@ -29,7 +29,8 @@ var DEFAULT_PROCESS_FUNCTION = function DEFAULT_PROCESS_FUNCTION(json) {
29
29
  /** Hook to fetch and return mvt or pmtiles metadata. */
30
30
  function useFetchVectorTileMetadata(_ref) {
31
31
  var remoteTileFormat = _ref.remoteTileFormat,
32
- url = _ref.url,
32
+ tilesetUrl = _ref.tilesetUrl,
33
+ metadataUrl = _ref.metadataUrl,
33
34
  _ref$process = _ref.process,
34
35
  process = _ref$process === void 0 ? DEFAULT_PROCESS_FUNCTION : _ref$process;
35
36
  var _useState = (0, _react.useState)(null),
@@ -44,28 +45,17 @@ function useFetchVectorTileMetadata(_ref) {
44
45
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
45
46
  loading = _useState6[0],
46
47
  setLoading = _useState6[1];
47
- var setProcessedData = (0, _react.useCallback)(function (value) {
48
- if (!value) {
49
- return setError(value);
50
- }
51
- var processedData = process(value);
52
- if (processedData instanceof Error) {
53
- setError(processedData);
54
- } else {
55
- setData(processedData);
56
- }
57
- }, [setError, setData, process]);
58
48
  (0, _react.useEffect)(function () {
59
49
  var getAndProcessMetadata = /*#__PURE__*/function () {
60
50
  var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
61
- var metadata, tileSource;
51
+ var metadata, tileSource, processedMetadata;
62
52
  return _regenerator["default"].wrap(function _callee$(_context) {
63
53
  while (1) switch (_context.prev = _context.next) {
64
54
  case 0:
65
55
  setError(null);
66
56
  setData(null);
67
- if (!url) {
68
- _context.next = 25;
57
+ if (!metadataUrl) {
58
+ _context.next = 33;
69
59
  break;
70
60
  }
71
61
  setLoading(true);
@@ -76,13 +66,13 @@ function useFetchVectorTileMetadata(_ref) {
76
66
  break;
77
67
  }
78
68
  _context.next = 9;
79
- return (0, _table.getMVTMetadata)(url);
69
+ return (0, _table.getMVTMetadata)(metadataUrl);
80
70
  case 9:
81
71
  metadata = _context.sent;
82
72
  _context.next = 16;
83
73
  break;
84
74
  case 12:
85
- tileSource = _pmtiles.PMTilesSource.createDataSource(url, {});
75
+ tileSource = _pmtiles.PMTilesSource.createDataSource(metadataUrl, {});
86
76
  _context.next = 15;
87
77
  return tileSource.metadata;
88
78
  case 15:
@@ -94,31 +84,50 @@ function useFetchVectorTileMetadata(_ref) {
94
84
  }
95
85
  throw new Error('Failed to fetch metadata');
96
86
  case 18:
97
- setProcessedData(metadata);
98
- _context.next = 24;
87
+ processedMetadata = process(metadata);
88
+ if (!(processedMetadata instanceof Error)) {
89
+ _context.next = 23;
90
+ break;
91
+ }
92
+ setError(processedMetadata);
93
+ _context.next = 27;
94
+ break;
95
+ case 23:
96
+ setError(null);
97
+ _context.next = 26;
98
+ return (0, _table.getFieldsFromTile)({
99
+ remoteTileFormat: remoteTileFormat,
100
+ tilesetUrl: tilesetUrl,
101
+ metadataUrl: metadataUrl,
102
+ metadata: processedMetadata
103
+ });
104
+ case 26:
105
+ setData(processedMetadata);
106
+ case 27:
107
+ _context.next = 32;
99
108
  break;
100
- case 21:
101
- _context.prev = 21;
109
+ case 29:
110
+ _context.prev = 29;
102
111
  _context.t0 = _context["catch"](4);
103
112
  setError(_context.t0);
104
- case 24:
113
+ case 32:
105
114
  setLoading(false);
106
- case 25:
115
+ case 33:
107
116
  case "end":
108
117
  return _context.stop();
109
118
  }
110
- }, _callee, null, [[4, 21]]);
119
+ }, _callee, null, [[4, 29]]);
111
120
  }));
112
121
  return function getAndProcessMetadata() {
113
122
  return _ref2.apply(this, arguments);
114
123
  };
115
124
  }();
116
125
  getAndProcessMetadata();
117
- }, [url, remoteTileFormat, setProcessedData]);
126
+ }, [metadataUrl, tilesetUrl, remoteTileFormat, setError, setData, process]);
118
127
  return {
119
128
  data: data,
120
129
  loading: loading,
121
130
  error: error
122
131
  };
123
132
  }
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3BtdGlsZXMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJERUZBVUxUX1BST0NFU1NfRlVOQ1RJT04iLCJqc29uIiwibWV0YUpzb24iLCJib3VuZHMiLCJjZW50ZXIiLCJtYXhab29tIiwibWluWm9vbSIsImZpZWxkcyIsInVzZUZldGNoVmVjdG9yVGlsZU1ldGFkYXRhIiwiX3JlZiIsInJlbW90ZVRpbGVGb3JtYXQiLCJ1cmwiLCJfcmVmJHByb2Nlc3MiLCJwcm9jZXNzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZGF0YSIsInNldERhdGEiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwic2V0UHJvY2Vzc2VkRGF0YSIsInVzZUNhbGxiYWNrIiwidmFsdWUiLCJwcm9jZXNzZWREYXRhIiwiRXJyb3IiLCJ1c2VFZmZlY3QiLCJnZXRBbmRQcm9jZXNzTWV0YWRhdGEiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwibWV0YWRhdGEiLCJ0aWxlU291cmNlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIlJlbW90ZVRpbGVGb3JtYXQiLCJNVlQiLCJnZXRNVlRNZXRhZGF0YSIsInNlbnQiLCJQTVRpbGVzU291cmNlIiwiY3JlYXRlRGF0YVNvdXJjZSIsInQwIiwic3RvcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtZmV0Y2gtdmVjdG9yLXRpbGUtbWV0YWRhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgey8qIE1WVFNvdXJjZSwqLyBUaWxlSlNPTn0gZnJvbSAnQGxvYWRlcnMuZ2wvbXZ0JztcbmltcG9ydCB7UE1UaWxlc1NvdXJjZSwgUE1UaWxlc01ldGFkYXRhfSBmcm9tICdAbG9hZGVycy5nbC9wbXRpbGVzJztcblxuaW1wb3J0IHtSZW1vdGVUaWxlRm9ybWF0fSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge2dldE1WVE1ldGFkYXRhLCBWZWN0b3JUaWxlTWV0YWRhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG50eXBlIEZldGNoVmVjdG9yVGlsZU1ldGFkYXRhUHJvcHMgPSB7XG4gIHVybDogc3RyaW5nIHwgbnVsbDtcbiAgcmVtb3RlVGlsZUZvcm1hdDogUmVtb3RlVGlsZUZvcm1hdDtcbiAgcHJvY2Vzcz86IChqc29uOiBQTVRpbGVzTWV0YWRhdGEgfCBUaWxlSlNPTikgPT4gVmVjdG9yVGlsZU1ldGFkYXRhIHwgRXJyb3IgfCBudWxsO1xufTtcblxuY29uc3QgREVGQVVMVF9QUk9DRVNTX0ZVTkNUSU9OID0gKGpzb246IFBNVGlsZXNNZXRhZGF0YSB8IFRpbGVKU09OKTogVmVjdG9yVGlsZU1ldGFkYXRhID0+IHtcbiAgcmV0dXJuIHtcbiAgICBtZXRhSnNvbjogbnVsbCxcbiAgICBib3VuZHM6IG51bGwsXG4gICAgY2VudGVyOiBudWxsLFxuICAgIG1heFpvb206IG51bGwsXG4gICAgbWluWm9vbTogbnVsbCxcbiAgICBmaWVsZHM6IFtdLFxuICAgIC4uLmpzb25cbiAgfTtcbn07XG5cbnR5cGUgRmV0Y2hWZWN0b3JUaWxlTWV0YWRhdGFSZXR1cm4gPSB7XG4gIGRhdGE6IFZlY3RvclRpbGVNZXRhZGF0YSB8IG51bGw7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGVycm9yOiBFcnJvciB8IG51bGw7XG59O1xuXG4vKiogSG9vayB0byBmZXRjaCBhbmQgcmV0dXJuIG12dCBvciBwbXRpbGVzIG1ldGFkYXRhLiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlRmV0Y2hWZWN0b3JUaWxlTWV0YWRhdGEoe1xuICByZW1vdGVUaWxlRm9ybWF0LFxuICB1cmwsXG4gIHByb2Nlc3MgPSBERUZBVUxUX1BST0NFU1NfRlVOQ1RJT05cbn06IEZldGNoVmVjdG9yVGlsZU1ldGFkYXRhUHJvcHMpOiBGZXRjaFZlY3RvclRpbGVNZXRhZGF0YVJldHVybiB7XG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8RXJyb3IgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2RhdGEsIHNldERhdGFdID0gdXNlU3RhdGU8VmVjdG9yVGlsZU1ldGFkYXRhIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdCBzZXRQcm9jZXNzZWREYXRhID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBQTVRpbGVzTWV0YWRhdGEgfCBUaWxlSlNPTiB8IG51bGwpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHNldEVycm9yKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb2Nlc3NlZERhdGEgPSBwcm9jZXNzKHZhbHVlKTtcbiAgICAgIGlmIChwcm9jZXNzZWREYXRhIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IocHJvY2Vzc2VkRGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXREYXRhKHByb2Nlc3NlZERhdGEpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEVycm9yLCBzZXREYXRhLCBwcm9jZXNzXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZ2V0QW5kUHJvY2Vzc01ldGFkYXRhID0gYXN5bmMgKCkgPT4ge1xuICAgICAgc2V0RXJyb3IobnVsbCk7XG4gICAgICBzZXREYXRhKG51bGwpO1xuICAgICAgaWYgKHVybCkge1xuICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbGV0IG1ldGFkYXRhOiBQTVRpbGVzTWV0YWRhdGEgfCBUaWxlSlNPTiB8IG51bGwgPSBudWxsO1xuICAgICAgICAgIGlmIChyZW1vdGVUaWxlRm9ybWF0ID09PSBSZW1vdGVUaWxlRm9ybWF0Lk1WVCkge1xuICAgICAgICAgICAgbWV0YWRhdGEgPSBhd2FpdCBnZXRNVlRNZXRhZGF0YSh1cmwpO1xuXG4gICAgICAgICAgICAvLyBNVlRTb3VyY2UgcmV0dXJucyBtZXNzeSBwYXJ0aWFsIG1ldGFkYXRhXG4gICAgICAgICAgICAvLyBNVlRTb3VyY2UuY3JlYXRlRGF0YVNvdXJjZSgnJywge1xuICAgICAgICAgICAgLy8gICBtdnQ6IHtcbiAgICAgICAgICAgIC8vICAgICBtZXRhZGF0YVVybDogZGVjb2RlVVJJQ29tcG9uZW50KHVybClcbiAgICAgICAgICAgIC8vICAgfVxuICAgICAgICAgICAgLy8gfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdGlsZVNvdXJjZSA9IFBNVGlsZXNTb3VyY2UuY3JlYXRlRGF0YVNvdXJjZSh1cmwsIHt9KTtcbiAgICAgICAgICAgIG1ldGFkYXRhID0gYXdhaXQgdGlsZVNvdXJjZS5tZXRhZGF0YTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTaW5jZSB3ZSBzd2l0Y2hlZCB0byBTb3VyY2UuY3JlYXRlRGF0YVNvdXJjZSBkZXRhaWxlZCByZXNwb25zZSBlcnJvcnMgYXJlbid0IGF2YWlsYWJsZSBoZXJlLi4uXG4gICAgICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggbWV0YWRhdGEnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0UHJvY2Vzc2VkRGF0YShtZXRhZGF0YSk7XG4gICAgICAgIH0gY2F0Y2ggKG1ldGFkYXRhRXJyb3IpIHtcbiAgICAgICAgICBzZXRFcnJvcihtZXRhZGF0YUVycm9yIGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGdldEFuZFByb2Nlc3NNZXRhZGF0YSgpO1xuICB9LCBbdXJsLCByZW1vdGVUaWxlRm9ybWF0LCBzZXRQcm9jZXNzZWREYXRhXSk7XG5cbiAgcmV0dXJuIHtkYXRhLCBsb2FkaW5nLCBlcnJvcn07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQW9FLFNBQUFJLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFB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
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3BtdGlsZXMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJERUZBVUxUX1BST0NFU1NfRlVOQ1RJT04iLCJqc29uIiwibWV0YUpzb24iLCJib3VuZHMiLCJjZW50ZXIiLCJtYXhab29tIiwibWluWm9vbSIsImZpZWxkcyIsInVzZUZldGNoVmVjdG9yVGlsZU1ldGFkYXRhIiwiX3JlZiIsInJlbW90ZVRpbGVGb3JtYXQiLCJ0aWxlc2V0VXJsIiwibWV0YWRhdGFVcmwiLCJfcmVmJHByb2Nlc3MiLCJwcm9jZXNzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZGF0YSIsInNldERhdGEiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwidXNlRWZmZWN0IiwiZ2V0QW5kUHJvY2Vzc01ldGFkYXRhIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIm1ldGFkYXRhIiwidGlsZVNvdXJjZSIsInByb2Nlc3NlZE1ldGFkYXRhIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIlJlbW90ZVRpbGVGb3JtYXQiLCJNVlQiLCJnZXRNVlRNZXRhZGF0YSIsInNlbnQiLCJQTVRpbGVzU291cmNlIiwiY3JlYXRlRGF0YVNvdXJjZSIsIkVycm9yIiwiZ2V0RmllbGRzRnJvbVRpbGUiLCJ0MCIsInN0b3AiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLWZldGNoLXZlY3Rvci10aWxlLW1ldGFkYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge1RpbGVKU09OfSBmcm9tICdAbG9hZGVycy5nbC9tdnQnO1xuaW1wb3J0IHtQTVRpbGVzU291cmNlLCBQTVRpbGVzTWV0YWRhdGF9IGZyb20gJ0Bsb2FkZXJzLmdsL3BtdGlsZXMnO1xuXG5pbXBvcnQge1JlbW90ZVRpbGVGb3JtYXR9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Z2V0TVZUTWV0YWRhdGEsIFZlY3RvclRpbGVNZXRhZGF0YSwgZ2V0RmllbGRzRnJvbVRpbGV9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG50eXBlIEZldGNoVmVjdG9yVGlsZU1ldGFkYXRhUHJvcHMgPSB7XG4gIG1ldGFkYXRhVXJsOiBzdHJpbmcgfCBudWxsO1xuICB0aWxlc2V0VXJsOiBzdHJpbmcgfCBudWxsO1xuICByZW1vdGVUaWxlRm9ybWF0OiBSZW1vdGVUaWxlRm9ybWF0O1xuICBwcm9jZXNzPzogKGpzb246IFBNVGlsZXNNZXRhZGF0YSB8IFRpbGVKU09OKSA9PiBWZWN0b3JUaWxlTWV0YWRhdGEgfCBFcnJvciB8IG51bGw7XG59O1xuXG5jb25zdCBERUZBVUxUX1BST0NFU1NfRlVOQ1RJT04gPSAoanNvbjogUE1UaWxlc01ldGFkYXRhIHwgVGlsZUpTT04pOiBWZWN0b3JUaWxlTWV0YWRhdGEgPT4ge1xuICByZXR1cm4ge1xuICAgIG1ldGFKc29uOiBudWxsLFxuICAgIGJvdW5kczogbnVsbCxcbiAgICBjZW50ZXI6IG51bGwsXG4gICAgbWF4Wm9vbTogbnVsbCxcbiAgICBtaW5ab29tOiBudWxsLFxuICAgIGZpZWxkczogW10sXG4gICAgLi4uanNvblxuICB9O1xufTtcblxudHlwZSBGZXRjaFZlY3RvclRpbGVNZXRhZGF0YVJldHVybiA9IHtcbiAgZGF0YTogVmVjdG9yVGlsZU1ldGFkYXRhIHwgbnVsbDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IEVycm9yIHwgbnVsbDtcbn07XG5cbi8qKiBIb29rIHRvIGZldGNoIGFuZCByZXR1cm4gbXZ0IG9yIHBtdGlsZXMgbWV0YWRhdGEuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VGZXRjaFZlY3RvclRpbGVNZXRhZGF0YSh7XG4gIHJlbW90ZVRpbGVGb3JtYXQsXG4gIHRpbGVzZXRVcmwsXG4gIG1ldGFkYXRhVXJsLFxuICBwcm9jZXNzID0gREVGQVVMVF9QUk9DRVNTX0ZVTkNUSU9OXG59OiBGZXRjaFZlY3RvclRpbGVNZXRhZGF0YVByb3BzKTogRmV0Y2hWZWN0b3JUaWxlTWV0YWRhdGFSZXR1cm4ge1xuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPEVycm9yIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPFZlY3RvclRpbGVNZXRhZGF0YSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBnZXRBbmRQcm9jZXNzTWV0YWRhdGEgPSBhc3luYyAoKSA9PiB7XG4gICAgICBzZXRFcnJvcihudWxsKTtcbiAgICAgIHNldERhdGEobnVsbCk7XG4gICAgICBpZiAobWV0YWRhdGFVcmwpIHtcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGxldCBtZXRhZGF0YTogUE1UaWxlc01ldGFkYXRhIHwgVGlsZUpTT04gfCBudWxsID0gbnVsbDtcbiAgICAgICAgICBpZiAocmVtb3RlVGlsZUZvcm1hdCA9PT0gUmVtb3RlVGlsZUZvcm1hdC5NVlQpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhID0gYXdhaXQgZ2V0TVZUTWV0YWRhdGEobWV0YWRhdGFVcmwpO1xuXG4gICAgICAgICAgICAvLyBNVlRTb3VyY2UgcmV0dXJucyBtZXNzeSBwYXJ0aWFsIG1ldGFkYXRhXG4gICAgICAgICAgICAvLyBNVlRTb3VyY2UuY3JlYXRlRGF0YVNvdXJjZSgnJywge1xuICAgICAgICAgICAgLy8gICBtdnQ6IHtcbiAgICAgICAgICAgIC8vICAgICBtZXRhZGF0YVVybDogZGVjb2RlVVJJQ29tcG9uZW50KHVybClcbiAgICAgICAgICAgIC8vICAgfVxuICAgICAgICAgICAgLy8gfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdGlsZVNvdXJjZSA9IFBNVGlsZXNTb3VyY2UuY3JlYXRlRGF0YVNvdXJjZShtZXRhZGF0YVVybCwge30pO1xuICAgICAgICAgICAgbWV0YWRhdGEgPSBhd2FpdCB0aWxlU291cmNlLm1ldGFkYXRhO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFNpbmNlIHdlIHN3aXRjaGVkIHRvIFNvdXJjZS5jcmVhdGVEYXRhU291cmNlIGRldGFpbGVkIHJlc3BvbnNlIGVycm9ycyBhcmVuJ3QgYXZhaWxhYmxlIGhlcmUuLi5cbiAgICAgICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBtZXRhZGF0YScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZE1ldGFkYXRhID0gcHJvY2VzcyhtZXRhZGF0YSk7XG4gICAgICAgICAgaWYgKHByb2Nlc3NlZE1ldGFkYXRhIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHNldEVycm9yKHByb2Nlc3NlZE1ldGFkYXRhKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0RXJyb3IobnVsbCk7XG5cbiAgICAgICAgICAgIGF3YWl0IGdldEZpZWxkc0Zyb21UaWxlKHtcbiAgICAgICAgICAgICAgcmVtb3RlVGlsZUZvcm1hdCxcbiAgICAgICAgICAgICAgdGlsZXNldFVybCxcbiAgICAgICAgICAgICAgbWV0YWRhdGFVcmwsXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiBwcm9jZXNzZWRNZXRhZGF0YVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHNldERhdGEocHJvY2Vzc2VkTWV0YWRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAobWV0YWRhdGFFcnJvcikge1xuICAgICAgICAgIHNldEVycm9yKG1ldGFkYXRhRXJyb3IgYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZ2V0QW5kUHJvY2Vzc01ldGFkYXRhKCk7XG4gIH0sIFttZXRhZGF0YVVybCwgdGlsZXNldFVybCwgcmVtb3RlVGlsZUZvcm1hdCwgc2V0RXJyb3IsIHNldERhdGEsIHByb2Nlc3NdKTtcblxuICByZXR1cm4ge2RhdGEsIGxvYWRpbmcsIGVycm9yfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFHQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFBdUYsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFB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
@@ -55,7 +55,8 @@ function useCalcLegendPosition(_ref) {
55
55
  y: bottomOffset,
56
56
  anchorY: 'bottom'
57
57
  });
58
- }, [isSidePanelShown, legendContentRef === null || legendContentRef === void 0 ? void 0 : legendContentRef.current, sidePanelWidth]);
58
+ // eslint-disable-next-line react-hooks/exhaustive-deps
59
+ }, [isSidePanelShown, sidePanelWidth]);
59
60
  }
60
61
 
61
62
  /**
@@ -92,6 +93,7 @@ function useLegendPosition(_ref2) {
92
93
  if (content instanceof HTMLElement) {
93
94
  startHeightRef.current = content.offsetHeight;
94
95
  }
96
+ // eslint-disable-next-line react-hooks/exhaustive-deps
95
97
  }, []);
96
98
  var resize = (0, _react.useCallback)(function (deltaY) {
97
99
  var _legendContentRef$cur3;
@@ -111,7 +113,9 @@ function useLegendPosition(_ref2) {
111
113
  });
112
114
  }
113
115
  }
114
- }, [contentHeight, pos, onChangeSettings]);
116
+ },
117
+ // eslint-disable-next-line react-hooks/exhaustive-deps
118
+ [contentHeight, pos, onChangeSettings]);
115
119
 
116
120
  // Shift when side panel is shown/hidden
117
121
  var posRef = (0, _react.useRef)(pos);
@@ -135,7 +139,7 @@ function useLegendPosition(_ref2) {
135
139
  });
136
140
  }
137
141
  }
138
- }, [isSidePanelShown, onChangeSettings]);
142
+ }, [isSidePanelShown, onChangeSettings, sidePanelWidth]);
139
143
  return {
140
144
  positionStyles: positionStyles,
141
145
  updatePosition: updatePosition,
@@ -144,4 +148,4 @@ function useLegendPosition(_ref2) {
144
148
  resize: resize
145
149
  };
146
150
  }
147
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJNQVJHSU4iLCJsZWZ0IiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJERUZBVUxUX1BPU0lUSU9OIiwieCIsInkiLCJhbmNob3JYIiwiYW5jaG9yWSIsIk1JTl9DT05URU5UX0hFSUdIVCIsInVzZUNhbGNMZWdlbmRQb3NpdGlvbiIsIl9yZWYiLCJsZWdlbmRDb250ZW50UmVmIiwiaXNTaWRlUGFuZWxTaG93biIsInNpZGVQYW5lbFdpZHRoIiwidXNlQ2FsbGJhY2siLCJfbGVnZW5kQ29udGVudFJlZiRjdXIiLCJyb290IiwiY3VycmVudCIsImNsb3Nlc3QiLCJsZWdlbmRDb250ZW50IiwiSFRNTEVsZW1lbnQiLCJsZWdlbmRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibWFwUm9vdEJvdW5kcyIsImxlZnRTaWRlYmFyT2Zmc2V0IiwibGVmdE9mZnNldCIsIk1hdGgiLCJtYXgiLCJyaWdodE9mZnNldCIsInRvcE9mZnNldCIsImJvdHRvbU9mZnNldCIsInVzZUxlZ2VuZFBvc2l0aW9uIiwiX3JlZjIiLCJfc2V0dGluZ3MkcG9zaXRpb24iLCJfc2V0dGluZ3MkY29udGVudEhlaWciLCJfdGhlbWUkc2lkZVBhbmVsIiwic2V0dGluZ3MiLCJvbkNoYW5nZVNldHRpbmdzIiwidGhlbWUiLCJwb3MiLCJwb3NpdGlvbiIsImNvbnRlbnRIZWlnaHQiLCJwb3NpdGlvblN0eWxlcyIsInVzZU1lbW8iLCJzdGFydEhlaWdodFJlZiIsInVzZVJlZiIsInNpZGVQYW5lbCIsIndpZHRoIiwiY2FsY1Bvc2l0aW9uIiwidXBkYXRlUG9zaXRpb24iLCJzdGFydFJlc2l6ZSIsIl9sZWdlbmRDb250ZW50UmVmJGN1cjIiLCJjb250ZW50IiwicXVlcnlTZWxlY3RvciIsIm9mZnNldEhlaWdodCIsInJlc2l6ZSIsImRlbHRhWSIsIl9sZWdlbmRDb250ZW50UmVmJGN1cjMiLCJuZXh0SGVpZ2h0IiwibWluIiwicG9zUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudFBvcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtbGVnZW5kLXBvc2l0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7dXNlTWVtbywgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncyA9IHtcbiAgcG9zaXRpb246IHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICAgIGFuY2hvclg6ICdsZWZ0JyB8ICdyaWdodCc7XG4gICAgYW5jaG9yWTogJ3RvcCcgfCAnYm90dG9tJztcbiAgfTtcbiAgY29udGVudEhlaWdodDogbnVtYmVyO1xufTtcblxudHlwZSBQYXJhbXMgPSB7XG4gIGxlZ2VuZENvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPjtcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgc2V0dGluZ3M6IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgb25DaGFuZ2VTZXR0aW5nczogKHNldHRpbmdzOiBQYXJ0aWFsPE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncz4pID0+IHZvaWQ7XG4gIHRoZW1lOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufTtcblxudHlwZSBSZXR1cm5UeXBlID0ge1xuICBwb3NpdGlvblN0eWxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHVwZGF0ZVBvc2l0aW9uOiAoKSA9PiB2b2lkO1xuICBjb250ZW50SGVpZ2h0OiBudW1iZXI7XG4gIHN0YXJ0UmVzaXplOiAoKSA9PiB2b2lkO1xuICByZXNpemU6IChkZWx0YVk6IG51bWJlcikgPT4gdm9pZDtcbn07XG5cbmNvbnN0IE1BUkdJTiA9IHtcbiAgbGVmdDogMTAsXG4gIHRvcDogMTAsXG4gIHJpZ2h0OiAxMCxcbiAgYm90dG9tOiAzMFxufTtcbmNvbnN0IERFRkFVTFRfUE9TSVRJT046IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5nc1sncG9zaXRpb24nXSA9IHtcbiAgeDogTUFSR0lOLnJpZ2h0LFxuICB5OiBNQVJHSU4uYm90dG9tLFxuICBhbmNob3JYOiAncmlnaHQnLFxuICBhbmNob3JZOiAnYm90dG9tJ1xufTtcbmNvbnN0IE1JTl9DT05URU5UX0hFSUdIVCA9IDEwMDtcblxuZXhwb3J0IHR5cGUgVXNlQ2FsY0xlZ2VuZFBvc2l0aW9uUHJvcHMgPSB7XG4gIGxlZ2VuZENvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPjtcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgc2lkZVBhbmVsV2lkdGg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYWxjTGVnZW5kUG9zaXRpb24oe1xuICBsZWdlbmRDb250ZW50UmVmLFxuICBpc1NpZGVQYW5lbFNob3duLFxuICBzaWRlUGFuZWxXaWR0aFxufTogVXNlQ2FsY0xlZ2VuZFBvc2l0aW9uUHJvcHMpIHtcbiAgcmV0dXJuIHVzZUNhbGxiYWNrKCgpOiBNYXBMZWdlbmRDb250cm9sU2V0dGluZ3NbJ3Bvc2l0aW9uJ10gPT4ge1xuICAgIGNvbnN0IHJvb3QgPSBsZWdlbmRDb250ZW50UmVmLmN1cnJlbnQ/LmNsb3Nlc3QoJy5rZXBsZXItZ2wnKTtcbiAgICBjb25zdCBsZWdlbmRDb250ZW50ID0gbGVnZW5kQ29udGVudFJlZi5jdXJyZW50O1xuICAgIGlmICghbGVnZW5kQ29udGVudCB8fCAhKHJvb3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBERUZBVUxUX1BPU0lUSU9OO1xuICAgIH1cbiAgICBjb25zdCBsZWdlbmRSZWN0ID0gbGVnZW5kQ29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBtYXBSb290Qm91bmRzID0gcm9vdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBsZWZ0U2lkZWJhck9mZnNldCA9IGlzU2lkZVBhbmVsU2hvd24gPyBzaWRlUGFuZWxXaWR0aCA6IDA7XG5cbiAgICBjb25zdCBsZWZ0T2Zmc2V0ID0gTWF0aC5tYXgoXG4gICAgICBNQVJHSU4ubGVmdCxcbiAgICAgIGxlZ2VuZFJlY3QubGVmdCAtIG1hcFJvb3RCb3VuZHMubGVmdCAtIGxlZnRTaWRlYmFyT2Zmc2V0XG4gICAgKTtcbiAgICBjb25zdCByaWdodE9mZnNldCA9IE1hdGgubWF4KE1BUkdJTi5yaWdodCwgbWFwUm9vdEJvdW5kcy5yaWdodCAtIGxlZ2VuZFJlY3QucmlnaHQpO1xuXG4gICAgY29uc3QgdG9wT2Zmc2V0ID0gTWF0aC5tYXgoTUFSR0lOLnRvcCwgbGVnZW5kUmVjdC50b3ApO1xuICAgIGNvbnN0IGJvdHRvbU9mZnNldCA9IE1hdGgubWF4KE1BUkdJTi5ib3R0b20sIG1hcFJvb3RCb3VuZHMuYm90dG9tIC0gbGVnZW5kUmVjdC5ib3R0b20pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihsZWZ0T2Zmc2V0IDwgcmlnaHRPZmZzZXRcbiAgICAgICAgPyB7eDogbGVmdE9mZnNldCArIGxlZnRTaWRlYmFyT2Zmc2V0LCBhbmNob3JYOiAnbGVmdCd9XG4gICAgICAgIDoge3g6IHJpZ2h0T2Zmc2V0LCBhbmNob3JYOiAncmlnaHQnfSksXG4gICAgICAuLi4odG9wT2Zmc2V0IDwgYm90dG9tT2Zmc2V0XG4gICAgICAgID8ge3k6IHRvcE9mZnNldCwgYW5jaG9yWTogJ3RvcCd9XG4gICAgICAgIDoge3k6IGJvdHRvbU9mZnNldCwgYW5jaG9yWTogJ2JvdHRvbSd9KVxuICAgIH07XG4gIH0sIFtpc1NpZGVQYW5lbFNob3duLCBsZWdlbmRDb250ZW50UmVmPy5jdXJyZW50LCBzaWRlUGFuZWxXaWR0aF0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNhbGN1bGF0ZXMgdGhlIGFuY2hvcmVkIHBvc2l0aW9uIG9mIHRoZSBtYXAgbGVnZW5kXG4gKiB0aGF0IGlzIGJlaW5nIGRyYWdnZWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUxlZ2VuZFBvc2l0aW9uKHtcbiAgbGVnZW5kQ29udGVudFJlZixcbiAgaXNTaWRlUGFuZWxTaG93bixcbiAgc2V0dGluZ3MsXG4gIG9uQ2hhbmdlU2V0dGluZ3MsXG4gIHRoZW1lXG59OiBQYXJhbXMpOiBSZXR1cm5UeXBlIHtcbiAgY29uc3QgcG9zID0gc2V0dGluZ3M/LnBvc2l0aW9uID8/IERFRkFVTFRfUE9TSVRJT047XG4gIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSBzZXR0aW5ncz8uY29udGVudEhlaWdodCA/PyAtMTtcbiAgY29uc3QgcG9zaXRpb25TdHlsZXMgPSB1c2VNZW1vKCgpID0+ICh7W3Bvcy5hbmNob3JYXTogcG9zLngsIFtwb3MuYW5jaG9yWV06IHBvcy55fSksIFtwb3NdKTtcbiAgY29uc3Qgc3RhcnRIZWlnaHRSZWYgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IHNpZGVQYW5lbFdpZHRoID0gdGhlbWUuc2lkZVBhbmVsPy53aWR0aCB8fCAwO1xuXG4gIGNvbnN0IGNhbGNQb3NpdGlvbiA9IHVzZUNhbGNMZWdlbmRQb3NpdGlvbih7XG4gICAgbGVnZW5kQ29udGVudFJlZixcbiAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgIHNpZGVQYW5lbFdpZHRoXG4gIH0pO1xuICBjb25zdCB1cGRhdGVQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IG9uQ2hhbmdlU2V0dGluZ3Moe3Bvc2l0aW9uOiBjYWxjUG9zaXRpb24oKX0pLFxuICAgIFtjYWxjUG9zaXRpb24sIG9uQ2hhbmdlU2V0dGluZ3NdXG4gICk7XG5cbiAgY29uc3Qgc3RhcnRSZXNpemUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IGxlZ2VuZENvbnRlbnRSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvcignLm1hcC1jb250cm9sX19wYW5lbC1jb250ZW50Jyk7XG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgc3RhcnRIZWlnaHRSZWYuY3VycmVudCA9IGNvbnRlbnQub2Zmc2V0SGVpZ2h0O1xuICAgIH1cbiAgfSwgW10pO1xuICBjb25zdCByZXNpemUgPSB1c2VDYWxsYmFjayhcbiAgICBkZWx0YVkgPT4ge1xuICAgICAgY29uc3Qgcm9vdCA9IGxlZ2VuZENvbnRlbnRSZWYuY3VycmVudD8uY2xvc2VzdCgnLmtlcGxlci1nbCcpO1xuICAgICAgY29uc3QgbGVnZW5kQ29udGVudCA9IGxlZ2VuZENvbnRlbnRSZWYuY3VycmVudDtcbiAgICAgIGlmIChyb290IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgbGVnZW5kQ29udGVudCkge1xuICAgICAgICBjb25zdCBsZWdlbmRSZWN0ID0gbGVnZW5kQ29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgbmV4dEhlaWdodCA9IE1hdGgubWluKFxuICAgICAgICAgIHJvb3Qub2Zmc2V0SGVpZ2h0IC0gbGVnZW5kUmVjdC50b3AgLSAxMDAsXG4gICAgICAgICAgTWF0aC5tYXgoTUlOX0NPTlRFTlRfSEVJR0hULCBzdGFydEhlaWdodFJlZi5jdXJyZW50ICsgZGVsdGFZKVxuICAgICAgICApO1xuICAgICAgICBvbkNoYW5nZVNldHRpbmdzKHtjb250ZW50SGVpZ2h0OiBuZXh0SGVpZ2h0fSk7XG4gICAgICAgIGlmIChjb250ZW50SGVpZ2h0ID4gMCAmJiBwb3MuYW5jaG9yWSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICBvbkNoYW5nZVNldHRpbmdzKHtwb3NpdGlvbjogey4uLnBvcywgeTogcG9zLnkgLSAobmV4dEhlaWdodCAtIGNvbnRlbnRIZWlnaHQpfX0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbY29udGVudEhlaWdodCwgcG9zLCBvbkNoYW5nZVNldHRpbmdzXVxuICApO1xuXG4gIC8vIFNoaWZ0IHdoZW4gc2lkZSBwYW5lbCBpcyBzaG93bi9oaWRkZW5cbiAgY29uc3QgcG9zUmVmID0gdXNlUmVmKHBvcyk7XG4gIHBvc1JlZi5jdXJyZW50ID0gcG9zO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRQb3MgPSBwb3NSZWYuY3VycmVudDtcbiAgICBpZiAoY3VycmVudFBvcy5hbmNob3JYID09PSAnbGVmdCcpIHtcbiAgICAgIGlmIChpc1NpZGVQYW5lbFNob3duKSB7XG4gICAgICAgIGlmIChjdXJyZW50UG9zLnggPD0gc2lkZVBhbmVsV2lkdGggKyBNQVJHSU4ubGVmdCkge1xuICAgICAgICAgIG9uQ2hhbmdlU2V0dGluZ3Moe3Bvc2l0aW9uOiB7Li4uY3VycmVudFBvcywgeDogc2lkZVBhbmVsV2lkdGggKyBNQVJHSU4ubGVmdH19KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25DaGFuZ2VTZXR0aW5ncyh7XG4gICAgICAgICAgcG9zaXRpb246IHsuLi5jdXJyZW50UG9zLCB4OiBNYXRoLm1heChNQVJHSU4ubGVmdCwgY3VycmVudFBvcy54IC0gc2lkZVBhbmVsV2lkdGgpfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpc1NpZGVQYW5lbFNob3duLCBvbkNoYW5nZVNldHRpbmdzXSk7XG5cbiAgcmV0dXJuIHtwb3NpdGlvblN0eWxlcywgdXBkYXRlUG9zaXRpb24sIGNvbnRlbnRIZWlnaHQsIHN0YXJ0UmVzaXplLCByZXNpemV9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFBOEQsU0FBQUMsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVB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
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJNQVJHSU4iLCJsZWZ0IiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJERUZBVUxUX1BPU0lUSU9OIiwieCIsInkiLCJhbmNob3JYIiwiYW5jaG9yWSIsIk1JTl9DT05URU5UX0hFSUdIVCIsInVzZUNhbGNMZWdlbmRQb3NpdGlvbiIsIl9yZWYiLCJsZWdlbmRDb250ZW50UmVmIiwiaXNTaWRlUGFuZWxTaG93biIsInNpZGVQYW5lbFdpZHRoIiwidXNlQ2FsbGJhY2siLCJfbGVnZW5kQ29udGVudFJlZiRjdXIiLCJyb290IiwiY3VycmVudCIsImNsb3Nlc3QiLCJsZWdlbmRDb250ZW50IiwiSFRNTEVsZW1lbnQiLCJsZWdlbmRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibWFwUm9vdEJvdW5kcyIsImxlZnRTaWRlYmFyT2Zmc2V0IiwibGVmdE9mZnNldCIsIk1hdGgiLCJtYXgiLCJyaWdodE9mZnNldCIsInRvcE9mZnNldCIsImJvdHRvbU9mZnNldCIsInVzZUxlZ2VuZFBvc2l0aW9uIiwiX3JlZjIiLCJfc2V0dGluZ3MkcG9zaXRpb24iLCJfc2V0dGluZ3MkY29udGVudEhlaWciLCJfdGhlbWUkc2lkZVBhbmVsIiwic2V0dGluZ3MiLCJvbkNoYW5nZVNldHRpbmdzIiwidGhlbWUiLCJwb3MiLCJwb3NpdGlvbiIsImNvbnRlbnRIZWlnaHQiLCJwb3NpdGlvblN0eWxlcyIsInVzZU1lbW8iLCJzdGFydEhlaWdodFJlZiIsInVzZVJlZiIsInNpZGVQYW5lbCIsIndpZHRoIiwiY2FsY1Bvc2l0aW9uIiwidXBkYXRlUG9zaXRpb24iLCJzdGFydFJlc2l6ZSIsIl9sZWdlbmRDb250ZW50UmVmJGN1cjIiLCJjb250ZW50IiwicXVlcnlTZWxlY3RvciIsIm9mZnNldEhlaWdodCIsInJlc2l6ZSIsImRlbHRhWSIsIl9sZWdlbmRDb250ZW50UmVmJGN1cjMiLCJuZXh0SGVpZ2h0IiwibWluIiwicG9zUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudFBvcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtbGVnZW5kLXBvc2l0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7dXNlTWVtbywgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncyA9IHtcbiAgcG9zaXRpb246IHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICAgIGFuY2hvclg6ICdsZWZ0JyB8ICdyaWdodCc7XG4gICAgYW5jaG9yWTogJ3RvcCcgfCAnYm90dG9tJztcbiAgfTtcbiAgY29udGVudEhlaWdodDogbnVtYmVyO1xufTtcblxudHlwZSBQYXJhbXMgPSB7XG4gIGxlZ2VuZENvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPjtcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgc2V0dGluZ3M6IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgb25DaGFuZ2VTZXR0aW5nczogKHNldHRpbmdzOiBQYXJ0aWFsPE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncz4pID0+IHZvaWQ7XG4gIHRoZW1lOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufTtcblxudHlwZSBSZXR1cm5UeXBlID0ge1xuICBwb3NpdGlvblN0eWxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHVwZGF0ZVBvc2l0aW9uOiAoKSA9PiB2b2lkO1xuICBjb250ZW50SGVpZ2h0OiBudW1iZXI7XG4gIHN0YXJ0UmVzaXplOiAoKSA9PiB2b2lkO1xuICByZXNpemU6IChkZWx0YVk6IG51bWJlcikgPT4gdm9pZDtcbn07XG5cbmNvbnN0IE1BUkdJTiA9IHtcbiAgbGVmdDogMTAsXG4gIHRvcDogMTAsXG4gIHJpZ2h0OiAxMCxcbiAgYm90dG9tOiAzMFxufTtcbmNvbnN0IERFRkFVTFRfUE9TSVRJT046IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5nc1sncG9zaXRpb24nXSA9IHtcbiAgeDogTUFSR0lOLnJpZ2h0LFxuICB5OiBNQVJHSU4uYm90dG9tLFxuICBhbmNob3JYOiAncmlnaHQnLFxuICBhbmNob3JZOiAnYm90dG9tJ1xufTtcbmNvbnN0IE1JTl9DT05URU5UX0hFSUdIVCA9IDEwMDtcblxuZXhwb3J0IHR5cGUgVXNlQ2FsY0xlZ2VuZFBvc2l0aW9uUHJvcHMgPSB7XG4gIGxlZ2VuZENvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPjtcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgc2lkZVBhbmVsV2lkdGg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYWxjTGVnZW5kUG9zaXRpb24oe1xuICBsZWdlbmRDb250ZW50UmVmLFxuICBpc1NpZGVQYW5lbFNob3duLFxuICBzaWRlUGFuZWxXaWR0aFxufTogVXNlQ2FsY0xlZ2VuZFBvc2l0aW9uUHJvcHMpIHtcbiAgcmV0dXJuIHVzZUNhbGxiYWNrKCgpOiBNYXBMZWdlbmRDb250cm9sU2V0dGluZ3NbJ3Bvc2l0aW9uJ10gPT4ge1xuICAgIGNvbnN0IHJvb3QgPSBsZWdlbmRDb250ZW50UmVmLmN1cnJlbnQ/LmNsb3Nlc3QoJy5rZXBsZXItZ2wnKTtcbiAgICBjb25zdCBsZWdlbmRDb250ZW50ID0gbGVnZW5kQ29udGVudFJlZi5jdXJyZW50O1xuICAgIGlmICghbGVnZW5kQ29udGVudCB8fCAhKHJvb3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBERUZBVUxUX1BPU0lUSU9OO1xuICAgIH1cbiAgICBjb25zdCBsZWdlbmRSZWN0ID0gbGVnZW5kQ29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBtYXBSb290Qm91bmRzID0gcm9vdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBsZWZ0U2lkZWJhck9mZnNldCA9IGlzU2lkZVBhbmVsU2hvd24gPyBzaWRlUGFuZWxXaWR0aCA6IDA7XG5cbiAgICBjb25zdCBsZWZ0T2Zmc2V0ID0gTWF0aC5tYXgoXG4gICAgICBNQVJHSU4ubGVmdCxcbiAgICAgIGxlZ2VuZFJlY3QubGVmdCAtIG1hcFJvb3RCb3VuZHMubGVmdCAtIGxlZnRTaWRlYmFyT2Zmc2V0XG4gICAgKTtcbiAgICBjb25zdCByaWdodE9mZnNldCA9IE1hdGgubWF4KE1BUkdJTi5yaWdodCwgbWFwUm9vdEJvdW5kcy5yaWdodCAtIGxlZ2VuZFJlY3QucmlnaHQpO1xuXG4gICAgY29uc3QgdG9wT2Zmc2V0ID0gTWF0aC5tYXgoTUFSR0lOLnRvcCwgbGVnZW5kUmVjdC50b3ApO1xuICAgIGNvbnN0IGJvdHRvbU9mZnNldCA9IE1hdGgubWF4KE1BUkdJTi5ib3R0b20sIG1hcFJvb3RCb3VuZHMuYm90dG9tIC0gbGVnZW5kUmVjdC5ib3R0b20pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihsZWZ0T2Zmc2V0IDwgcmlnaHRPZmZzZXRcbiAgICAgICAgPyB7eDogbGVmdE9mZnNldCArIGxlZnRTaWRlYmFyT2Zmc2V0LCBhbmNob3JYOiAnbGVmdCd9XG4gICAgICAgIDoge3g6IHJpZ2h0T2Zmc2V0LCBhbmNob3JYOiAncmlnaHQnfSksXG4gICAgICAuLi4odG9wT2Zmc2V0IDwgYm90dG9tT2Zmc2V0XG4gICAgICAgID8ge3k6IHRvcE9mZnNldCwgYW5jaG9yWTogJ3RvcCd9XG4gICAgICAgIDoge3k6IGJvdHRvbU9mZnNldCwgYW5jaG9yWTogJ2JvdHRvbSd9KVxuICAgIH07XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbaXNTaWRlUGFuZWxTaG93biwgc2lkZVBhbmVsV2lkdGhdKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBjYWxjdWxhdGVzIHRoZSBhbmNob3JlZCBwb3NpdGlvbiBvZiB0aGUgbWFwIGxlZ2VuZFxuICogdGhhdCBpcyBiZWluZyBkcmFnZ2VkLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VMZWdlbmRQb3NpdGlvbih7XG4gIGxlZ2VuZENvbnRlbnRSZWYsXG4gIGlzU2lkZVBhbmVsU2hvd24sXG4gIHNldHRpbmdzLFxuICBvbkNoYW5nZVNldHRpbmdzLFxuICB0aGVtZVxufTogUGFyYW1zKTogUmV0dXJuVHlwZSB7XG4gIGNvbnN0IHBvcyA9IHNldHRpbmdzPy5wb3NpdGlvbiA/PyBERUZBVUxUX1BPU0lUSU9OO1xuICBjb25zdCBjb250ZW50SGVpZ2h0ID0gc2V0dGluZ3M/LmNvbnRlbnRIZWlnaHQgPz8gLTE7XG4gIGNvbnN0IHBvc2l0aW9uU3R5bGVzID0gdXNlTWVtbygoKSA9PiAoe1twb3MuYW5jaG9yWF06IHBvcy54LCBbcG9zLmFuY2hvclldOiBwb3MueX0pLCBbcG9zXSk7XG4gIGNvbnN0IHN0YXJ0SGVpZ2h0UmVmID0gdXNlUmVmKDApO1xuICBjb25zdCBzaWRlUGFuZWxXaWR0aCA9IHRoZW1lLnNpZGVQYW5lbD8ud2lkdGggfHwgMDtcblxuICBjb25zdCBjYWxjUG9zaXRpb24gPSB1c2VDYWxjTGVnZW5kUG9zaXRpb24oe1xuICAgIGxlZ2VuZENvbnRlbnRSZWYsXG4gICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICBzaWRlUGFuZWxXaWR0aFxuICB9KTtcbiAgY29uc3QgdXBkYXRlUG9zaXRpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiBvbkNoYW5nZVNldHRpbmdzKHtwb3NpdGlvbjogY2FsY1Bvc2l0aW9uKCl9KSxcbiAgICBbY2FsY1Bvc2l0aW9uLCBvbkNoYW5nZVNldHRpbmdzXVxuICApO1xuXG4gIGNvbnN0IHN0YXJ0UmVzaXplID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBsZWdlbmRDb250ZW50UmVmLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3IoJy5tYXAtY29udHJvbF9fcGFuZWwtY29udGVudCcpO1xuICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHN0YXJ0SGVpZ2h0UmVmLmN1cnJlbnQgPSBjb250ZW50Lm9mZnNldEhlaWdodDtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbXSk7XG4gIGNvbnN0IHJlc2l6ZSA9IHVzZUNhbGxiYWNrKFxuICAgIGRlbHRhWSA9PiB7XG4gICAgICBjb25zdCByb290ID0gbGVnZW5kQ29udGVudFJlZi5jdXJyZW50Py5jbG9zZXN0KCcua2VwbGVyLWdsJyk7XG4gICAgICBjb25zdCBsZWdlbmRDb250ZW50ID0gbGVnZW5kQ29udGVudFJlZi5jdXJyZW50O1xuICAgICAgaWYgKHJvb3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBsZWdlbmRDb250ZW50KSB7XG4gICAgICAgIGNvbnN0IGxlZ2VuZFJlY3QgPSBsZWdlbmRDb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBuZXh0SGVpZ2h0ID0gTWF0aC5taW4oXG4gICAgICAgICAgcm9vdC5vZmZzZXRIZWlnaHQgLSBsZWdlbmRSZWN0LnRvcCAtIDEwMCxcbiAgICAgICAgICBNYXRoLm1heChNSU5fQ09OVEVOVF9IRUlHSFQsIHN0YXJ0SGVpZ2h0UmVmLmN1cnJlbnQgKyBkZWx0YVkpXG4gICAgICAgICk7XG4gICAgICAgIG9uQ2hhbmdlU2V0dGluZ3Moe2NvbnRlbnRIZWlnaHQ6IG5leHRIZWlnaHR9KTtcbiAgICAgICAgaWYgKGNvbnRlbnRIZWlnaHQgPiAwICYmIHBvcy5hbmNob3JZID09PSAnYm90dG9tJykge1xuICAgICAgICAgIG9uQ2hhbmdlU2V0dGluZ3Moe3Bvc2l0aW9uOiB7Li4ucG9zLCB5OiBwb3MueSAtIChuZXh0SGVpZ2h0IC0gY29udGVudEhlaWdodCl9fSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbY29udGVudEhlaWdodCwgcG9zLCBvbkNoYW5nZVNldHRpbmdzXVxuICApO1xuXG4gIC8vIFNoaWZ0IHdoZW4gc2lkZSBwYW5lbCBpcyBzaG93bi9oaWRkZW5cbiAgY29uc3QgcG9zUmVmID0gdXNlUmVmKHBvcyk7XG4gIHBvc1JlZi5jdXJyZW50ID0gcG9zO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRQb3MgPSBwb3NSZWYuY3VycmVudDtcbiAgICBpZiAoY3VycmVudFBvcy5hbmNob3JYID09PSAnbGVmdCcpIHtcbiAgICAgIGlmIChpc1NpZGVQYW5lbFNob3duKSB7XG4gICAgICAgIGlmIChjdXJyZW50UG9zLnggPD0gc2lkZVBhbmVsV2lkdGggKyBNQVJHSU4ubGVmdCkge1xuICAgICAgICAgIG9uQ2hhbmdlU2V0dGluZ3Moe3Bvc2l0aW9uOiB7Li4uY3VycmVudFBvcywgeDogc2lkZVBhbmVsV2lkdGggKyBNQVJHSU4ubGVmdH19KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25DaGFuZ2VTZXR0aW5ncyh7XG4gICAgICAgICAgcG9zaXRpb246IHsuLi5jdXJyZW50UG9zLCB4OiBNYXRoLm1heChNQVJHSU4ubGVmdCwgY3VycmVudFBvcy54IC0gc2lkZVBhbmVsV2lkdGgpfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpc1NpZGVQYW5lbFNob3duLCBvbkNoYW5nZVNldHRpbmdzLCBzaWRlUGFuZWxXaWR0aF0pO1xuXG4gIHJldHVybiB7cG9zaXRpb25TdHlsZXMsIHVwZGF0ZVBvc2l0aW9uLCBjb250ZW50SGVpZ2h0LCBzdGFydFJlc2l6ZSwgcmVzaXplfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQThELFNBQUFDLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxD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