@kepler.gl/components 3.1.0-alpha.2 → 3.1.0-alpha.4

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 (203) hide show
  1. package/dist/bottom-widget.d.ts +7 -1
  2. package/dist/bottom-widget.js +2 -8
  3. package/dist/common/action-panel.d.ts +5 -6
  4. package/dist/common/action-panel.js +3 -5
  5. package/dist/common/animation-control/animation-control.d.ts +2 -1
  6. package/dist/common/animation-control/animation-control.js +4 -2
  7. package/dist/common/animation-control/animation-speed-slider.js +21 -7
  8. package/dist/common/animation-control/floating-time-display.js +1 -1
  9. package/dist/common/animation-control/play-control.js +11 -13
  10. package/dist/common/animation-control/playback-controls.d.ts +11 -20
  11. package/dist/common/animation-control/playback-controls.js +6 -4
  12. package/dist/common/animation-control/reset-control.js +11 -13
  13. package/dist/common/animation-control/speed-control.js +10 -12
  14. package/dist/common/color-legend.d.ts +4 -5
  15. package/dist/common/color-legend.js +16 -5
  16. package/dist/common/column-stats-chart.d.ts +9 -3
  17. package/dist/common/column-stats-chart.js +17 -63
  18. package/dist/common/data-table/canvas.d.ts +2 -1
  19. package/dist/common/data-table/index.d.ts +7 -7
  20. package/dist/common/data-table/index.js +4 -5
  21. package/dist/common/file-uploader/file-upload-progress.d.ts +4 -4
  22. package/dist/common/file-uploader/file-upload-progress.js +1 -2
  23. package/dist/common/file-uploader/file-upload.d.ts +1 -1
  24. package/dist/common/file-uploader/upload-button.js +2 -2
  25. package/dist/common/flex-container.d.ts +8 -3
  26. package/dist/common/histogram-plot.js +4 -2
  27. package/dist/common/icon-button.d.ts +7 -4
  28. package/dist/common/icons/draggable-dots.d.ts +14 -0
  29. package/dist/common/icons/draggable-dots.js +85 -0
  30. package/dist/common/icons/horizontal-resize-handle.d.ts +14 -0
  31. package/dist/common/icons/horizontal-resize-handle.js +59 -0
  32. package/dist/common/icons/index.d.ts +2 -0
  33. package/dist/common/icons/index.js +15 -1
  34. package/dist/common/icons/pin.js +1 -1
  35. package/dist/common/info-helper.js +2 -2
  36. package/dist/common/item-selector/chickleted-input.d.ts +21 -17
  37. package/dist/common/item-selector/chickleted-input.js +3 -3
  38. package/dist/common/item-selector/dropdown-list.d.ts +12 -12
  39. package/dist/common/item-selector/dropdown-list.js +1 -2
  40. package/dist/common/item-selector/dropdown-select.d.ts +8 -4
  41. package/dist/common/item-selector/dropdown-select.js +2 -2
  42. package/dist/common/item-selector/item-selector.d.ts +5 -9
  43. package/dist/common/item-selector/item-selector.js +1 -1
  44. package/dist/common/item-selector/typeahead.d.ts +20 -6
  45. package/dist/common/item-selector/typeahead.js +3 -3
  46. package/dist/common/loading-spinner.d.ts +8 -4
  47. package/dist/common/loading-spinner.js +1 -1
  48. package/dist/common/modal.d.ts +12 -12
  49. package/dist/common/modal.js +3 -3
  50. package/dist/common/portaled.d.ts +22 -486
  51. package/dist/common/portaled.js +6 -3
  52. package/dist/common/range-plot.d.ts +23 -28
  53. package/dist/common/range-plot.js +38 -29
  54. package/dist/common/range-slider-timeline.js +1 -2
  55. package/dist/common/slider/slider-bar-handle.d.ts +5 -0
  56. package/dist/common/slider/slider-bar-handle.js +2 -2
  57. package/dist/common/slider/slider-handle.d.ts +9 -0
  58. package/dist/common/slider/slider-handle.js +3 -3
  59. package/dist/common/slider/slider.d.ts +2 -2
  60. package/dist/common/styled-components.d.ts +444 -92
  61. package/dist/common/styled-components.js +15 -11
  62. package/dist/common/sync-timeline-control.js +2 -2
  63. package/dist/common/time-range-slider-time-title.d.ts +4 -0
  64. package/dist/common/time-range-slider-time-title.js +1 -1
  65. package/dist/common/time-range-slider.d.ts +7 -3
  66. package/dist/common/time-range-slider.js +1 -1
  67. package/dist/common/timeline-slider.d.ts +2 -0
  68. package/dist/common/timeline-slider.js +1 -1
  69. package/dist/common/toolbar-item.js +2 -2
  70. package/dist/common/toolbar.d.ts +5 -3
  71. package/dist/common/toolbar.js +1 -1
  72. package/dist/common/vertical-toolbar.d.ts +6 -1
  73. package/dist/container.js +2 -2
  74. package/dist/dnd-context.d.ts +1 -1
  75. package/dist/effects/compact-color-picker.d.ts +1 -1
  76. package/dist/effects/effect-configurator.d.ts +4 -4
  77. package/dist/effects/effect-manager.js +4 -2
  78. package/dist/effects/effect-panel-header.js +5 -5
  79. package/dist/effects/effect-time-configurator.js +2 -2
  80. package/dist/effects/effect-time-selector.d.ts +1 -6
  81. package/dist/effects/effect-time-selector.js +3 -3
  82. package/dist/effects/effect-type-dropdown-list.js +2 -2
  83. package/dist/effects/effect-type-list-item.d.ts +1 -10
  84. package/dist/effects/effect-type-list-item.js +2 -2
  85. package/dist/effects/effect-type-selector.d.ts +1 -12
  86. package/dist/effects/effect-type-selector.js +2 -2
  87. package/dist/effects/timezone-selector.d.ts +1 -9
  88. package/dist/effects/timezone-selector.js +1 -1
  89. package/dist/filters/components.d.ts +6 -3
  90. package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +3 -4
  91. package/dist/filters/time-widget-top.js +2 -2
  92. package/dist/filters/types.d.ts +4 -2
  93. package/dist/filters/types.js +1 -1
  94. package/dist/geocoder/geocoder.js +2 -2
  95. package/dist/geocoder-panel.d.ts +6 -0
  96. package/dist/geocoder-panel.js +1 -1
  97. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +3 -2
  98. package/dist/hooks/use-fetch-vector-tile-metadata.js +33 -18
  99. package/dist/hooks/use-legend-position.d.ts +36 -0
  100. package/dist/hooks/use-legend-position.js +147 -0
  101. package/dist/index.d.ts +2 -1
  102. package/dist/index.js +18 -3
  103. package/dist/kepler-gl.d.ts +44 -5
  104. package/dist/kepler-gl.js +77 -4
  105. package/dist/map/layer-hover-info.d.ts +3 -1
  106. package/dist/map/layer-hover-info.js +2 -2
  107. package/dist/map/map-control-panel.js +4 -3
  108. package/dist/map/map-control-toolbar.d.ts +15 -1
  109. package/dist/map/map-control-toolbar.js +1 -1
  110. package/dist/map/map-legend-panel.d.ts +10 -35
  111. package/dist/map/map-legend-panel.js +242 -127
  112. package/dist/map/map-legend.d.ts +3 -2
  113. package/dist/map/map-legend.js +7 -10
  114. package/dist/map/map-popover.js +16 -11
  115. package/dist/map-container.d.ts +10 -8
  116. package/dist/map-container.js +86 -55
  117. package/dist/modal-container.d.ts +2 -1
  118. package/dist/modal-container.js +4 -3
  119. package/dist/modals/add-map-style-modal.d.ts +3 -0
  120. package/dist/modals/add-map-style-modal.js +58 -10
  121. package/dist/modals/cloud-components/cloud-item.js +2 -2
  122. package/dist/modals/cloud-tile.d.ts +6 -1
  123. package/dist/modals/cloud-tile.js +2 -2
  124. package/dist/modals/data-table-modal.d.ts +5 -3
  125. package/dist/modals/data-table-modal.js +3 -3
  126. package/dist/modals/export-data-modal.js +4 -5
  127. package/dist/modals/export-map-modal/components.d.ts +5 -3
  128. package/dist/modals/export-map-modal/export-html-map.js +2 -2
  129. package/dist/modals/export-map-modal/export-json-map.js +3 -2
  130. package/dist/modals/modal-dialog.d.ts +3 -1
  131. package/dist/modals/modal-tabs.js +2 -2
  132. package/dist/modals/share-map-modal.d.ts +4 -4
  133. package/dist/modals/storage-map-viewer.js +3 -3
  134. package/dist/modals/tilesets-modals/common.d.ts +1 -1
  135. package/dist/modals/tilesets-modals/common.js +1 -1
  136. package/dist/modals/tilesets-modals/load-data-footer.d.ts +3 -3
  137. package/dist/modals/tilesets-modals/load-data-footer.js +16 -7
  138. package/dist/modals/tilesets-modals/load-tileset.js +5 -4
  139. package/dist/modals/tilesets-modals/tileset-vector-form.js +28 -14
  140. package/dist/plot-container.js +3 -3
  141. package/dist/side-panel/add-by-dataset-button.js +4 -1
  142. package/dist/side-panel/common/dataset-info.js +3 -3
  143. package/dist/side-panel/common/dataset-title.d.ts +1 -0
  144. package/dist/side-panel/common/dataset-title.js +5 -4
  145. package/dist/side-panel/filter-manager.d.ts +2 -2
  146. package/dist/side-panel/filter-manager.js +1 -1
  147. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +9 -1
  148. package/dist/side-panel/filter-panel/filter-panel-header.js +24 -9
  149. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +10 -1
  150. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +5 -3
  151. package/dist/side-panel/layer-panel/aggr-scale-selector.d.ts +2 -1
  152. package/dist/side-panel/layer-panel/aggr-scale-selector.js +3 -1
  153. package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +2 -4
  154. package/dist/side-panel/layer-panel/channel-by-value-selector.js +9 -5
  155. package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +15 -7
  156. package/dist/side-panel/layer-panel/color-breaks-panel.js +52 -20
  157. package/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
  158. package/dist/side-panel/layer-panel/color-palette.d.ts +9 -4
  159. package/dist/side-panel/layer-panel/color-palette.js +13 -7
  160. package/dist/side-panel/layer-panel/color-range-selector.d.ts +2 -2
  161. package/dist/side-panel/layer-panel/color-range-selector.js +2 -2
  162. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +5 -4
  163. package/dist/side-panel/layer-panel/color-scale-selector.js +93 -43
  164. package/dist/side-panel/layer-panel/color-selector.d.ts +7 -7
  165. package/dist/side-panel/layer-panel/color-selector.js +52 -36
  166. package/dist/side-panel/layer-panel/custom-palette.d.ts +44 -15
  167. package/dist/side-panel/layer-panel/custom-palette.js +342 -39
  168. package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -5
  169. package/dist/side-panel/layer-panel/custom-picker.js +2 -2
  170. package/dist/side-panel/layer-panel/dimension-scale-selector.js +5 -3
  171. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +1 -1
  172. package/dist/side-panel/layer-panel/layer-color-selector.js +1 -1
  173. package/dist/side-panel/layer-panel/layer-column-mode-config.js +1 -1
  174. package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -11
  175. package/dist/side-panel/layer-panel/layer-config-group.js +2 -2
  176. package/dist/side-panel/layer-panel/layer-configurator.d.ts +7 -7
  177. package/dist/side-panel/layer-panel/layer-configurator.js +10 -10
  178. package/dist/side-panel/layer-panel/layer-list.d.ts +2 -0
  179. package/dist/side-panel/layer-panel/layer-list.js +7 -4
  180. package/dist/side-panel/layer-panel/layer-panel-header.js +5 -5
  181. package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -0
  182. package/dist/side-panel/layer-panel/layer-panel.js +8 -8
  183. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
  184. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +1 -10
  185. package/dist/side-panel/layer-panel/layer-type-list-item.js +2 -2
  186. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -8
  187. package/dist/side-panel/layer-panel/layer-type-selector.js +1 -1
  188. package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -2
  189. package/dist/side-panel/layer-panel/single-color-palette.js +2 -2
  190. package/dist/side-panel/layer-panel/text-label-panel.js +1 -1
  191. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +6 -3
  192. package/dist/side-panel/map-style-panel/map-style-selector.js +2 -2
  193. package/dist/side-panel/panel-header-action.js +2 -2
  194. package/dist/side-panel/panel-header.js +2 -2
  195. package/dist/side-panel/panel-tab.d.ts +3 -3
  196. package/dist/side-panel/panel-tab.js +2 -2
  197. package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
  198. package/dist/side-panel/panel-view-list-toggle.js +2 -2
  199. package/dist/side-panel/side-bar.js +2 -2
  200. package/dist/side-panel.d.ts +1 -1
  201. package/dist/types.d.ts +6 -7
  202. package/dist/types.js +1 -1
  203. package/package.json +26 -22
@@ -12,17 +12,23 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
- var _components = require("@kepler.gl/components");
16
15
  var _constants = require("@kepler.gl/constants");
17
16
  var _utils = require("@kepler.gl/utils");
18
17
  var _colorBreaksPanel = _interopRequireDefault(require("./color-breaks-panel"));
19
18
  var _dropdownSelect = _interopRequireDefault(require("../../common/item-selector/dropdown-select"));
20
- var _excluded = ["layer", "field", "dataset", "onSelect", "scaleType", "domain", "range", "setColorUI", "colorUIConfig"],
19
+ var _accessor = _interopRequireDefault(require("../../common/item-selector/accessor"));
20
+ var _dropdownList = _interopRequireDefault(require("../../common/item-selector/dropdown-list"));
21
+ var _lazyTippy = _interopRequireDefault(require("../../map/lazy-tippy"));
22
+ var _typeahead = _interopRequireDefault(require("../../common/item-selector/typeahead"));
23
+ var _excluded = ["layer", "field", "dataset", "onSelect", "scaleType", "domain", "aggregatedBins", "range", "setColorUI", "colorUIConfig", "channelKey"],
21
24
  _excluded2 = ["colorMap"];
22
25
  var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
23
26
  // Copyright contributors to the kepler.gl project
24
27
  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); }
25
28
  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; }
29
+ // 'tippy-js'
30
+
31
+ var HISTOGRAM_BINS = 30;
26
32
  var DropdownPropContext = /*#__PURE__*/_react["default"].createContext({});
27
33
  var POPPER_OPTIONS = {
28
34
  modifiers: [
@@ -54,25 +60,27 @@ function hideTippy(tippyInstance) {
54
60
  ColorScaleSelectorFactory.deps = [_colorBreaksPanel["default"]];
55
61
  function ColorScaleSelectorFactory(ColorBreaksPanel) {
56
62
  var ColorScaleSelectDropdown = function ColorScaleSelectDropdown(props) {
57
- return /*#__PURE__*/_react["default"].createElement(StyledScaleSelectDropdown, null, /*#__PURE__*/_react["default"].createElement(_components.DropdownList, props), /*#__PURE__*/_react["default"].createElement(DropdownPropContext.Consumer, null, function (context) {
63
+ return /*#__PURE__*/_react["default"].createElement(StyledScaleSelectDropdown, null, /*#__PURE__*/_react["default"].createElement(_dropdownList["default"], props), /*#__PURE__*/_react["default"].createElement(DropdownPropContext.Consumer, null, function (context) {
58
64
  return /*#__PURE__*/_react["default"].createElement(DropdownBottom, null, /*#__PURE__*/_react["default"].createElement(ColorBreaksPanel, context));
59
65
  }));
60
66
  };
61
67
  var ColorScaleSelector = function ColorScaleSelector(_ref) {
62
- var _colorUIConfig$colorR;
68
+ var _colorUIConfig$colorR, _field$filterProps;
63
69
  var layer = _ref.layer,
64
70
  field = _ref.field,
65
71
  dataset = _ref.dataset,
66
72
  onSelect = _ref.onSelect,
67
73
  scaleType = _ref.scaleType,
68
74
  domain = _ref.domain,
75
+ aggregatedBins = _ref.aggregatedBins,
69
76
  range = _ref.range,
70
77
  setColorUI = _ref.setColorUI,
71
78
  colorUIConfig = _ref.colorUIConfig,
79
+ channelKey = _ref.channelKey,
72
80
  dropdownSelectProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
73
- var displayOption = _components.Accessor.generateOptionToStringFor(dropdownSelectProps.displayOption);
81
+ var displayOption = _accessor["default"].generateOptionToStringFor(dropdownSelectProps.displayOption);
74
82
  var getOptionValue = (0, _react.useMemo)(function () {
75
- return _components.Accessor.generateOptionToStringFor(dropdownSelectProps.getOptionValue);
83
+ return _accessor["default"].generateOptionToStringFor(dropdownSelectProps.getOptionValue);
76
84
  }, [dropdownSelectProps.getOptionValue]);
77
85
  var _useState = (0, _react.useState)(),
78
86
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -88,23 +96,69 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
88
96
  });
89
97
  }, [range, domain, scaleType, layer]);
90
98
  var colorBreaks = (0, _react.useMemo)(function () {
99
+ var _field$type;
91
100
  return colorScale ? (0, _utils.getLegendOfScale)({
92
- scale: colorScale,
101
+ scale: colorScale.byZoom && domain ? colorScale((domain === null || domain === void 0 ? void 0 : domain.length) - 1) : colorScale,
93
102
  scaleType: scaleType,
94
- fieldType: field.type
103
+ fieldType: (_field$type = field === null || field === void 0 ? void 0 : field.type) !== null && _field$type !== void 0 ? _field$type : _constants.ALL_FIELD_TYPES.real
95
104
  }) : null;
96
- }, [colorScale, scaleType, field.type]);
105
+ }, [colorScale, scaleType, field === null || field === void 0 ? void 0 : field.type, domain]);
106
+ var columnStats = field === null || field === void 0 || (_field$filterProps = field.filterProps) === null || _field$filterProps === void 0 ? void 0 : _field$filterProps.columnStats;
107
+ var fieldValueAccessor = (0, _react.useMemo)(function () {
108
+ return field ? function (idx) {
109
+ return dataset.getValue(field.name, idx);
110
+ } : function (idx) {
111
+ return dataset.dataContainer.rowAsArray(idx);
112
+ };
113
+ }, [dataset, field]);
114
+
115
+ // aggregatedBins should be the raw data
116
+ var allBins = (0, _react.useMemo)(function () {
117
+ if (aggregatedBins) {
118
+ return (0, _utils.histogramFromValues)(Object.values(aggregatedBins).map(function (bin) {
119
+ return bin.i;
120
+ }), HISTOGRAM_BINS, function (idx) {
121
+ return aggregatedBins[idx].value;
122
+ });
123
+ }
124
+ return columnStats !== null && columnStats !== void 0 && columnStats.bins ? columnStats === null || columnStats === void 0 ? void 0 : columnStats.bins : (0, _utils.histogramFromValues)(dataset.allIndexes, HISTOGRAM_BINS, fieldValueAccessor);
125
+ }, [aggregatedBins, columnStats, dataset, fieldValueAccessor]);
126
+ var histogramDomain = (0, _react.useMemo)(function () {
127
+ return (0, _utils.getHistogramDomain)({
128
+ aggregatedBins: aggregatedBins,
129
+ columnStats: columnStats,
130
+ dataset: dataset,
131
+ fieldValueAccessor: fieldValueAccessor
132
+ });
133
+ }, [dataset, fieldValueAccessor, aggregatedBins, columnStats]);
134
+ var ordinalDomain = (0, _react.useMemo)(function () {
135
+ return layer.config[layer.visualChannels[channelKey].domain] || [];
136
+ }, [channelKey, layer.config, layer.visualChannels]);
137
+ var isFiltered = aggregatedBins ? false : dataset.filteredIndexForDomain.length !== dataset.allIndexes.length;
138
+
139
+ // get filteredBins (not apply to aggregate layer)
140
+ var filteredBins = (0, _react.useMemo)(function () {
141
+ if (!isFiltered) {
142
+ return allBins;
143
+ }
144
+ // get threholds
145
+ var filterEmptyBins = false;
146
+ var threholds = allBins.map(function (b) {
147
+ return b.x0;
148
+ });
149
+ return (0, _utils.histogramFromThreshold)(threholds, dataset.filteredIndexForDomain, fieldValueAccessor, filterEmptyBins);
150
+ }, [dataset, fieldValueAccessor, allBins, isFiltered]);
97
151
  var onSelectScale = (0, _react.useCallback)(function (val) {
98
152
  // highlight selected option
99
- if (getOptionValue(val) === _constants.SCALE_TYPES.custom) {
100
- // update custom breaks
101
- var customPalette = {
102
- name: 'color.customPalette',
103
- type: 'custom',
104
- category: 'Custom',
105
- colors: range.colors,
106
- colorMap: range.colorMap ? range.colorMap : colorBreaks ? (0, _utils.colorBreaksToColorMap)(colorBreaks) : undefined
107
- };
153
+ if (!val || isEditingColorBreaks) return;
154
+ var selectedScale = getOptionValue(val);
155
+ if (selectedScale === _constants.SCALE_TYPES.custom) {
156
+ var customPalette = (0, _utils.initCustomPaletteByCustomScale)({
157
+ scale: selectedScale,
158
+ field: field,
159
+ range: range,
160
+ colorBreaks: colorBreaks
161
+ });
108
162
  setColorUI({
109
163
  showColorChart: true,
110
164
  colorRangeConfig: {
@@ -112,35 +166,26 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
112
166
  },
113
167
  customPalette: customPalette
114
168
  });
115
- onSelect(_constants.SCALE_TYPES.custom, customPalette);
116
- } else {
169
+ onSelect(selectedScale, customPalette);
170
+ } else if ((0, _utils.hasColorMap)(range) && selectedScale !== _constants.SCALE_TYPES.customOrdinal) {
117
171
  // not custom
118
- if (isEditingColorBreaks) {
119
- setColorUI({
120
- colorRangeConfig: {
121
- customBreaks: false
122
- }
123
- });
124
- }
125
- if ((0, _utils.hasColorMap)(range)) {
126
- // remove custom breaks
127
- // eslint-disable-next-line no-unused-vars
128
- var _ = range.colorMap,
129
- newRange = (0, _objectWithoutProperties2["default"])(range, _excluded2);
130
- onSelect(getOptionValue(val), newRange);
131
- } else {
132
- onSelect(getOptionValue(val));
133
- }
172
+ // remove colorMap
173
+ // eslint-disable-next-line no-unused-vars
174
+ var _ = range.colorMap,
175
+ newRange = (0, _objectWithoutProperties2["default"])(range, _excluded2);
176
+ onSelect(selectedScale, newRange);
177
+ } else {
178
+ onSelect(selectedScale);
134
179
  }
135
- }, [setColorUI, onSelect, range, getOptionValue, isEditingColorBreaks, colorBreaks]);
180
+ }, [isEditingColorBreaks, field, setColorUI, onSelect, range, getOptionValue, colorBreaks]);
136
181
  var onApply = (0, _react.useCallback)(function () {
137
- onSelect(_constants.SCALE_TYPES.custom, colorUIConfig.customPalette);
182
+ onSelect(scaleType, colorUIConfig.customPalette);
138
183
  hideTippy(tippyInstance);
139
- }, [onSelect, colorUIConfig.customPalette, tippyInstance]);
184
+ }, [onSelect, colorUIConfig.customPalette, tippyInstance, scaleType]);
140
185
  var onCancel = (0, _react.useCallback)(function () {
141
186
  hideTippy(tippyInstance);
142
187
  }, [tippyInstance]);
143
- var isCustomBreaks = scaleType === _constants.SCALE_TYPES.custom;
188
+ var isCustomBreaks = scaleType === _constants.SCALE_TYPES.custom || scaleType === _constants.SCALE_TYPES.customOrdinal;
144
189
  return /*#__PURE__*/_react["default"].createElement(DropdownPropContext.Provider, {
145
190
  value: {
146
191
  setColorUI: setColorUI,
@@ -149,11 +194,16 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
149
194
  colorUIConfig: colorUIConfig,
150
195
  colorBreaks: colorBreaks,
151
196
  isCustomBreaks: isCustomBreaks,
197
+ allBins: allBins,
198
+ filteredBins: filteredBins,
199
+ isFiltered: isFiltered,
200
+ histogramDomain: histogramDomain,
201
+ ordinalDomain: ordinalDomain,
152
202
  onScaleChange: onSelect,
153
203
  onApply: onApply,
154
204
  onCancel: onCancel
155
205
  }
156
- }, /*#__PURE__*/_react["default"].createElement(StyledColorScaleSelector, null, /*#__PURE__*/_react["default"].createElement(_components.LazyTippy, {
206
+ }, /*#__PURE__*/_react["default"].createElement(StyledColorScaleSelector, null, /*#__PURE__*/_react["default"].createElement(_lazyTippy["default"], {
157
207
  trigger: "click",
158
208
  placement: "bottom-start",
159
209
  appendTo: "parent",
@@ -162,7 +212,7 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
162
212
  onCreate: setTippyInstance,
163
213
  popperOptions: POPPER_OPTIONS,
164
214
  render: function render(attrs) {
165
- return /*#__PURE__*/_react["default"].createElement(DropdownWrapper, attrs, !dropdownSelectProps.disabled && /*#__PURE__*/_react["default"].createElement(_components.Typeahead, (0, _extends2["default"])({}, dropdownSelectProps, {
215
+ return /*#__PURE__*/_react["default"].createElement(DropdownWrapper, attrs, !dropdownSelectProps.disabled && /*#__PURE__*/_react["default"].createElement(_typeahead["default"], (0, _extends2["default"])({}, dropdownSelectProps, {
166
216
  displayOption: displayOption
167
217
  // @ts-ignore
168
218
  ,
@@ -183,4 +233,4 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
183
233
  return ColorScaleSelector;
184
234
  }
185
235
  var _default = exports["default"] = ColorScaleSelectorFactory;
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfY29sb3JCcmVha3NQYW5lbCIsIl9kcm9wZG93blNlbGVjdCIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJEcm9wZG93blByb3BDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiUE9QUEVSX09QVElPTlMiLCJtb2RpZmllcnMiLCJuYW1lIiwib3B0aW9ucyIsIm9mZnNldCIsIkRyb3Bkb3duQm90dG9tIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIlN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJTdHlsZWRDb2xvclNjYWxlU2VsZWN0b3IiLCJoaWRlVGlwcHkiLCJ0aXBweUluc3RhbmNlIiwiaGlkZSIsIkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJDb2xvckJyZWFrc1BhbmVsIiwiQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duIiwiY3JlYXRlRWxlbWVudCIsIkRyb3Bkb3duTGlzdCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIkNvbG9yU2NhbGVTZWxlY3RvciIsIl9yZWYiLCJfY29sb3JVSUNvbmZpZyRjb2xvclIiLCJsYXllciIsImZpZWxkIiwiZGF0YXNldCIsIm9uU2VsZWN0Iiwic2NhbGVUeXBlIiwiZG9tYWluIiwicmFuZ2UiLCJzZXRDb2xvclVJIiwiY29sb3JVSUNvbmZpZyIsImRyb3Bkb3duU2VsZWN0UHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGlzcGxheU9wdGlvbiIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwidXNlTWVtbyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFRpcHB5SW5zdGFuY2UiLCJpc0VkaXRpbmdDb2xvckJyZWFrcyIsImNvbG9yUmFuZ2VDb25maWciLCJjdXN0b21CcmVha3MiLCJjb2xvclNjYWxlIiwiZ2V0TGF5ZXJDb2xvclNjYWxlIiwiY29sb3JCcmVha3MiLCJnZXRMZWdlbmRPZlNjYWxlIiwic2NhbGUiLCJmaWVsZFR5cGUiLCJ0eXBlIiwib25TZWxlY3RTY2FsZSIsInVzZUNhbGxiYWNrIiwidmFsIiwiU0NBTEVfVFlQRVMiLCJjdXN0b20iLCJjdXN0b21QYWxldHRlIiwiY2F0ZWdvcnkiLCJjb2xvcnMiLCJjb2xvck1hcCIsImNvbG9yQnJlYWtzVG9Db2xvck1hcCIsInVuZGVmaW5lZCIsInNob3dDb2xvckNoYXJ0IiwiaGFzQ29sb3JNYXAiLCJfIiwibmV3UmFuZ2UiLCJvbkFwcGx5Iiwib25DYW5jZWwiLCJpc0N1c3RvbUJyZWFrcyIsIlByb3ZpZGVyIiwidmFsdWUiLCJjb2xvckZpZWxkIiwib25TY2FsZUNoYW5nZSIsIkxhenlUaXBweSIsInRyaWdnZXIiLCJwbGFjZW1lbnQiLCJhcHBlbmRUbyIsImludGVyYWN0aXZlIiwiaGlkZU9uQ2xpY2siLCJvbkNyZWF0ZSIsInBvcHBlck9wdGlvbnMiLCJyZW5kZXIiLCJhdHRycyIsImRpc2FibGVkIiwiVHlwZWFoZWFkIiwiX2V4dGVuZHMyIiwib25PcHRpb25TZWxlY3RlZCIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJzZWFyY2hhYmxlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJjbGFzc05hbWUiLCJzZWxlY3RlZEl0ZW1zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3Itc2NhbGUtc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7QWNjZXNzb3IsIERyb3Bkb3duTGlzdCwgTGF6eVRpcHB5LCBUeXBlYWhlYWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbG9yUmFuZ2UsIFNDQUxFX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyLCBWaXN1YWxDaGFubmVsRG9tYWlufSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0NvbG9yVUksIEZpZWxkLCBOZXN0ZWRQYXJ0aWFsfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Y29sb3JCcmVha3NUb0NvbG9yTWFwLCBnZXRMYXllckNvbG9yU2NhbGUsIGdldExlZ2VuZE9mU2NhbGUsIGhhc0NvbG9yTWFwfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCBDb2xvckJyZWFrc1BhbmVsRmFjdG9yeSwge0NvbG9yQnJlYWtzUGFuZWxQcm9wc30gZnJvbSAnLi9jb2xvci1icmVha3MtcGFuZWwnO1xuaW1wb3J0IHtTZXRDb2xvclVJRnVuY30gZnJvbSAnLi9jdXN0b20tcGFsZXR0ZSc7XG5pbXBvcnQgRHJvcGRvd25TZWxlY3QgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tc2VsZWN0JztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHR5cGUge0luc3RhbmNlIGFzIFRpcHB5SW5zdGFuY2V9IGZyb20gJ3RpcHB5LmpzJztcblxuZXhwb3J0IHR5cGUgU2NhbGVPcHRpb24gPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgT25TZWxlY3RGdW5jID0gKHY6IHN0cmluZywgdmlzQ29uZmc/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBDb250ZXh0UHJvcHMgPSBDb2xvckJyZWFrc1BhbmVsUHJvcHM7XG5cbmV4cG9ydCB0eXBlIENvbG9yU2NhbGVTZWxlY3RvclByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIGZpZWxkOiBGaWVsZDtcbiAgZGF0YXNldDogS2VwbGVyVGFibGU7XG4gIHNjYWxlVHlwZTogc3RyaW5nO1xuICBkb21haW46IFZpc3VhbENoYW5uZWxEb21haW47XG4gIHJhbmdlOiBDb2xvclJhbmdlO1xuICBvblNlbGVjdDogT25TZWxlY3RGdW5jO1xuICBzZXRDb2xvclVJOiBTZXRDb2xvclVJRnVuYztcbiAgY29sb3JVSUNvbmZpZzogQ29sb3JVSTtcbiAgb3B0aW9uczogU2NhbGVPcHRpb25bXTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzZWxlY3RlZEl0ZW1zOiBTY2FsZU9wdGlvbltdO1xuICBtdWx0aVNlbGVjdDogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgZGlzcGxheU9wdGlvbjogc3RyaW5nO1xuICBnZXRPcHRpb25WYWx1ZTogc3RyaW5nO1xufTtcblxuY29uc3QgRHJvcGRvd25Qcm9wQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xuY29uc3QgUE9QUEVSX09QVElPTlMgPSB7XG4gIG1vZGlmaWVyczogW1xuICAgIC8vIHplcm8gb2Zmc2V0cyBzaW5jZSB0aGV5IGFyZSBhbHJlYWR5IGFkZGVkIGluIFZlcnRpY2FsVG9vbGJhclxuICAgIHtuYW1lOiAnb2Zmc2V0Jywgb3B0aW9uczoge29mZnNldDogWzAsIDBdfX1cbiAgXVxufTtcblxuY29uc3QgRHJvcGRvd25Cb3R0b20gPSBzdHlsZWQuZGl2PHtsaWdodD86IGJvb2xlYW59PmBcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkXG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3BMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG5gO1xuXG5jb25zdCBTdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RTaGFkb3d9O1xuICAubGlzdC1zZWxlY3RvciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG4gIC5saXN0X19pdGVtIHtcbiAgICBwYWRkaW5nOiA0cHggOXB4O1xuICB9XG5gO1xuY29uc3QgRHJvcGRvd25XcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJafTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAudHlwZWFoZWFkIHtcbiAgICAvLyBhZGRzIHBhZGRpbmcgdG8gYm90dG9tIG9mIGRyb3Bkb3duXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgfVxuICBbZGF0YS10aXBweS1yb290XSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmA7XG5cbmZ1bmN0aW9uIGhpZGVUaXBweSh0aXBweUluc3RhbmNlKSB7XG4gIGlmICh0aXBweUluc3RhbmNlKSB7XG4gICAgdGlwcHlJbnN0YW5jZS5oaWRlKCk7XG4gIH1cbn1cbkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkuZGVwcyA9IFtDb2xvckJyZWFrc1BhbmVsRmFjdG9yeV07XG5cbmZ1bmN0aW9uIENvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkoXG4gIENvbG9yQnJlYWtzUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIENvbG9yQnJlYWtzUGFuZWxGYWN0b3J5PlxuKTogUmVhY3QuRkM8Q29sb3JTY2FsZVNlbGVjdG9yUHJvcHM+IHtcbiAgY29uc3QgQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duID0gcHJvcHMgPT4gKFxuICAgIDxTdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duPlxuICAgICAgPERyb3Bkb3duTGlzdCB7Li4ucHJvcHN9IC8+XG4gICAgICA8RHJvcGRvd25Qcm9wQ29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyhjb250ZXh0OiBhbnkpID0+IChcbiAgICAgICAgICA8RHJvcGRvd25Cb3R0b20+XG4gICAgICAgICAgICA8Q29sb3JCcmVha3NQYW5lbCB7Li4uY29udGV4dH0gLz5cbiAgICAgICAgICA8L0Ryb3Bkb3duQm90dG9tPlxuICAgICAgICApfVxuICAgICAgPC9Ecm9wZG93blByb3BDb250ZXh0LkNvbnN1bWVyPlxuICAgIDwvU3R5bGVkU2NhbGVTZWxlY3REcm9wZG93bj5cbiAgKTtcblxuICBjb25zdCBDb2xvclNjYWxlU2VsZWN0b3I6IFJlYWN0LkZDPENvbG9yU2NhbGVTZWxlY3RvclByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgZmllbGQsXG4gICAgZGF0YXNldCxcbiAgICBvblNlbGVjdCxcbiAgICBzY2FsZVR5cGUsXG4gICAgZG9tYWluLFxuICAgIHJhbmdlLFxuICAgIHNldENvbG9yVUksXG4gICAgY29sb3JVSUNvbmZpZyxcbiAgICAuLi5kcm9wZG93blNlbGVjdFByb3BzXG4gIH0pID0+IHtcbiAgICBjb25zdCBkaXNwbGF5T3B0aW9uID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcihkcm9wZG93blNlbGVjdFByb3BzLmRpc3BsYXlPcHRpb24pO1xuICAgIGNvbnN0IGdldE9wdGlvblZhbHVlID0gdXNlTWVtbyhcbiAgICAgICgpID0+IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoZHJvcGRvd25TZWxlY3RQcm9wcy5nZXRPcHRpb25WYWx1ZSksXG4gICAgICBbZHJvcGRvd25TZWxlY3RQcm9wcy5nZXRPcHRpb25WYWx1ZV1cbiAgICApO1xuICAgIGNvbnN0IFt0aXBweUluc3RhbmNlLCBzZXRUaXBweUluc3RhbmNlXSA9IHVzZVN0YXRlPFRpcHB5SW5zdGFuY2U+KCk7XG4gICAgY29uc3QgaXNFZGl0aW5nQ29sb3JCcmVha3MgPSBjb2xvclVJQ29uZmlnPy5jb2xvclJhbmdlQ29uZmlnPy5jdXN0b21CcmVha3M7XG4gICAgY29uc3QgY29sb3JTY2FsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBnZXRMYXllckNvbG9yU2NhbGUoe1xuICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICBzY2FsZVR5cGUsXG4gICAgICAgICAgbGF5ZXJcbiAgICAgICAgfSksXG4gICAgICBbcmFuZ2UsIGRvbWFpbiwgc2NhbGVUeXBlLCBsYXllcl1cbiAgICApO1xuXG4gICAgY29uc3QgY29sb3JCcmVha3MgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgY29sb3JTY2FsZSA/IGdldExlZ2VuZE9mU2NhbGUoe3NjYWxlOiBjb2xvclNjYWxlLCBzY2FsZVR5cGUsIGZpZWxkVHlwZTogZmllbGQudHlwZX0pIDogbnVsbCxcbiAgICAgIFtjb2xvclNjYWxlLCBzY2FsZVR5cGUsIGZpZWxkLnR5cGVdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uU2VsZWN0U2NhbGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIHZhbCA9PiB7XG4gICAgICAgIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBvcHRpb25cbiAgICAgICAgaWYgKGdldE9wdGlvblZhbHVlKHZhbCkgPT09IFNDQUxFX1RZUEVTLmN1c3RvbSkge1xuICAgICAgICAgIC8vIHVwZGF0ZSBjdXN0b20gYnJlYWtzXG4gICAgICAgICAgY29uc3QgY3VzdG9tUGFsZXR0ZTogTmVzdGVkUGFydGlhbDxDb2xvclJhbmdlPiA9IHtcbiAgICAgICAgICAgIG5hbWU6ICdjb2xvci5jdXN0b21QYWxldHRlJyxcbiAgICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgICAgY2F0ZWdvcnk6ICdDdXN0b20nLFxuICAgICAgICAgICAgY29sb3JzOiByYW5nZS5jb2xvcnMsXG4gICAgICAgICAgICBjb2xvck1hcDogcmFuZ2UuY29sb3JNYXBcbiAgICAgICAgICAgICAgPyByYW5nZS5jb2xvck1hcFxuICAgICAgICAgICAgICA6IGNvbG9yQnJlYWtzXG4gICAgICAgICAgICAgID8gY29sb3JCcmVha3NUb0NvbG9yTWFwKGNvbG9yQnJlYWtzKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBzaG93Q29sb3JDaGFydDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICAgICAgY3VzdG9tQnJlYWtzOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG9uU2VsZWN0KFNDQUxFX1RZUEVTLmN1c3RvbSwgY3VzdG9tUGFsZXR0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gbm90IGN1c3RvbVxuICAgICAgICAgIGlmIChpc0VkaXRpbmdDb2xvckJyZWFrcykge1xuICAgICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICAgICAgICBjdXN0b21CcmVha3M6IGZhbHNlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaGFzQ29sb3JNYXAocmFuZ2UpKSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgY3VzdG9tIGJyZWFrc1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICAgICAgICBjb25zdCB7Y29sb3JNYXA6IF8sIC4uLm5ld1JhbmdlfSA9IHJhbmdlO1xuICAgICAgICAgICAgb25TZWxlY3QoZ2V0T3B0aW9uVmFsdWUodmFsKSwgbmV3UmFuZ2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvblNlbGVjdChnZXRPcHRpb25WYWx1ZSh2YWwpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JVSSwgb25TZWxlY3QsIHJhbmdlLCBnZXRPcHRpb25WYWx1ZSwgaXNFZGl0aW5nQ29sb3JCcmVha3MsIGNvbG9yQnJlYWtzXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkFwcGx5ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25TZWxlY3QoU0NBTEVfVFlQRVMuY3VzdG9tLCBjb2xvclVJQ29uZmlnLmN1c3RvbVBhbGV0dGUpO1xuICAgICAgaGlkZVRpcHB5KHRpcHB5SW5zdGFuY2UpO1xuICAgIH0sIFtvblNlbGVjdCwgY29sb3JVSUNvbmZpZy5jdXN0b21QYWxldHRlLCB0aXBweUluc3RhbmNlXSk7XG5cbiAgICBjb25zdCBvbkNhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGhpZGVUaXBweSh0aXBweUluc3RhbmNlKTtcbiAgICB9LCBbdGlwcHlJbnN0YW5jZV0pO1xuXG4gICAgY29uc3QgaXNDdXN0b21CcmVha3MgPSBzY2FsZVR5cGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RHJvcGRvd25Qcm9wQ29udGV4dC5Qcm92aWRlclxuICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgIHNldENvbG9yVUksXG4gICAgICAgICAgY29sb3JGaWVsZDogZmllbGQsXG4gICAgICAgICAgZGF0YXNldCxcbiAgICAgICAgICBjb2xvclVJQ29uZmlnLFxuICAgICAgICAgIGNvbG9yQnJlYWtzLFxuICAgICAgICAgIGlzQ3VzdG9tQnJlYWtzLFxuICAgICAgICAgIG9uU2NhbGVDaGFuZ2U6IG9uU2VsZWN0LFxuICAgICAgICAgIG9uQXBwbHksXG4gICAgICAgICAgb25DYW5jZWxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbG9yU2NhbGVTZWxlY3Rvcj5cbiAgICAgICAgICA8TGF6eVRpcHB5XG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICAgIGFwcGVuZFRvPVwicGFyZW50XCJcbiAgICAgICAgICAgIGludGVyYWN0aXZlPXt0cnVlfVxuICAgICAgICAgICAgaGlkZU9uQ2xpY2s9eyFpc0VkaXRpbmdDb2xvckJyZWFrc31cbiAgICAgICAgICAgIG9uQ3JlYXRlPXtzZXRUaXBweUluc3RhbmNlfVxuICAgICAgICAgICAgcG9wcGVyT3B0aW9ucz17UE9QUEVSX09QVElPTlN9XG4gICAgICAgICAgICByZW5kZXI9e2F0dHJzID0+IChcbiAgICAgICAgICAgICAgPERyb3Bkb3duV3JhcHBlciB7Li4uYXR0cnN9PlxuICAgICAgICAgICAgICAgIHsvKkB0cy1pZ25vcmUqL31cbiAgICAgICAgICAgICAgICB7IWRyb3Bkb3duU2VsZWN0UHJvcHMuZGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17ZGlzcGxheU9wdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT17Z2V0T3B0aW9uVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e29uU2VsZWN0U2NhbGV9XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUxpc3RDb21wb25lbnQ9e0NvbG9yU2NhbGVTZWxlY3REcm9wZG93bn1cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIHNob3dPcHRpb25zV2hlbkVtcHR5XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25XcmFwcGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRyb3Bkb3duLXNlbGVjdFwiPlxuICAgICAgICAgICAgICB7LypAdHMtaWdub3JlKi99XG4gICAgICAgICAgICAgIDxEcm9wZG93blNlbGVjdFxuICAgICAgICAgICAgICAgIHsuLi5kcm9wZG93blNlbGVjdFByb3BzfVxuICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAgICAgICAgICAgdmFsdWU9e2Ryb3Bkb3duU2VsZWN0UHJvcHMuc2VsZWN0ZWRJdGVtc1swXX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvTGF6eVRpcHB5PlxuICAgICAgICA8L1N0eWxlZENvbG9yU2NhbGVTZWxlY3Rvcj5cbiAgICAgIDwvRHJvcGRvd25Qcm9wQ29udGV4dC5Qcm92aWRlcj5cbiAgICApO1xuICB9O1xuICByZXR1cm4gQ29sb3JTY2FsZVNlbGVjdG9yO1xufVxuZXhwb3J0IGRlZmF1bHQgQ29sb3JTY2FsZVNlbGVjdG9yRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUdBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGlCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBTyxlQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFBd0UsSUFBQVEsU0FBQTtFQUFBQyxVQUFBO0FBQUEsSUFBQUMsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWJ4RTtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFoQix3QkFBQWdCLENB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
236
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX2NvbG9yQnJlYWtzUGFuZWwiLCJfZHJvcGRvd25TZWxlY3QiLCJfYWNjZXNzb3IiLCJfZHJvcGRvd25MaXN0IiwiX2xhenlUaXBweSIsIl90eXBlYWhlYWQiLCJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiSElTVE9HUkFNX0JJTlMiLCJEcm9wZG93blByb3BDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiUE9QUEVSX09QVElPTlMiLCJtb2RpZmllcnMiLCJuYW1lIiwib3B0aW9ucyIsIm9mZnNldCIsIkRyb3Bkb3duQm90dG9tIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIlN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJTdHlsZWRDb2xvclNjYWxlU2VsZWN0b3IiLCJoaWRlVGlwcHkiLCJ0aXBweUluc3RhbmNlIiwiaGlkZSIsIkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJDb2xvckJyZWFrc1BhbmVsIiwiQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duIiwiY3JlYXRlRWxlbWVudCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIkNvbG9yU2NhbGVTZWxlY3RvciIsIl9yZWYiLCJfY29sb3JVSUNvbmZpZyRjb2xvclIiLCJfZmllbGQkZmlsdGVyUHJvcHMiLCJsYXllciIsImZpZWxkIiwiZGF0YXNldCIsIm9uU2VsZWN0Iiwic2NhbGVUeXBlIiwiZG9tYWluIiwiYWdncmVnYXRlZEJpbnMiLCJyYW5nZSIsInNldENvbG9yVUkiLCJjb2xvclVJQ29uZmlnIiwiY2hhbm5lbEtleSIsImRyb3Bkb3duU2VsZWN0UHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGlzcGxheU9wdGlvbiIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwidXNlTWVtbyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFRpcHB5SW5zdGFuY2UiLCJpc0VkaXRpbmdDb2xvckJyZWFrcyIsImNvbG9yUmFuZ2VDb25maWciLCJjdXN0b21CcmVha3MiLCJjb2xvclNjYWxlIiwiZ2V0TGF5ZXJDb2xvclNjYWxlIiwiY29sb3JCcmVha3MiLCJfZmllbGQkdHlwZSIsImdldExlZ2VuZE9mU2NhbGUiLCJzY2FsZSIsImJ5Wm9vbSIsImxlbmd0aCIsImZpZWxkVHlwZSIsInR5cGUiLCJBTExfRklFTERfVFlQRVMiLCJyZWFsIiwiY29sdW1uU3RhdHMiLCJmaWx0ZXJQcm9wcyIsImZpZWxkVmFsdWVBY2Nlc3NvciIsImlkeCIsImdldFZhbHVlIiwiZGF0YUNvbnRhaW5lciIsInJvd0FzQXJyYXkiLCJhbGxCaW5zIiwiaGlzdG9ncmFtRnJvbVZhbHVlcyIsInZhbHVlcyIsIm1hcCIsImJpbiIsInZhbHVlIiwiYmlucyIsImFsbEluZGV4ZXMiLCJoaXN0b2dyYW1Eb21haW4iLCJnZXRIaXN0b2dyYW1Eb21haW4iLCJvcmRpbmFsRG9tYWluIiwiY29uZmlnIiwidmlzdWFsQ2hhbm5lbHMiLCJpc0ZpbHRlcmVkIiwiZmlsdGVyZWRJbmRleEZvckRvbWFpbiIsImZpbHRlcmVkQmlucyIsImZpbHRlckVtcHR5QmlucyIsInRocmVob2xkcyIsImIiLCJ4MCIsImhpc3RvZ3JhbUZyb21UaHJlc2hvbGQiLCJvblNlbGVjdFNjYWxlIiwidXNlQ2FsbGJhY2siLCJ2YWwiLCJzZWxlY3RlZFNjYWxlIiwiU0NBTEVfVFlQRVMiLCJjdXN0b20iLCJjdXN0b21QYWxldHRlIiwiaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlIiwic2hvd0NvbG9yQ2hhcnQiLCJoYXNDb2xvck1hcCIsImN1c3RvbU9yZGluYWwiLCJfIiwiY29sb3JNYXAiLCJuZXdSYW5nZSIsIm9uQXBwbHkiLCJvbkNhbmNlbCIsImlzQ3VzdG9tQnJlYWtzIiwiUHJvdmlkZXIiLCJjb2xvckZpZWxkIiwib25TY2FsZUNoYW5nZSIsInRyaWdnZXIiLCJwbGFjZW1lbnQiLCJhcHBlbmRUbyIsImludGVyYWN0aXZlIiwiaGlkZU9uQ2xpY2siLCJvbkNyZWF0ZSIsInBvcHBlck9wdGlvbnMiLCJyZW5kZXIiLCJhdHRycyIsImRpc2FibGVkIiwiX2V4dGVuZHMyIiwib25PcHRpb25TZWxlY3RlZCIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJzZWFyY2hhYmxlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJjbGFzc05hbWUiLCJzZWxlY3RlZEl0ZW1zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3Itc2NhbGUtc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7QUxMX0ZJRUxEX1RZUEVTLCBTQ0FMRV9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtBZ2dyZWdhdGVkQmluLCBMYXllciwgVmlzdWFsQ2hhbm5lbERvbWFpbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0NvbG9yUmFuZ2UsIENvbG9yVUksIEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIGdldExheWVyQ29sb3JTY2FsZSxcbiAgZ2V0TGVnZW5kT2ZTY2FsZSxcbiAgaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlLFxuICBoaXN0b2dyYW1Gcm9tVmFsdWVzLFxuICBoaXN0b2dyYW1Gcm9tVGhyZXNob2xkLFxuICBnZXRIaXN0b2dyYW1Eb21haW4sXG4gIGhhc0NvbG9yTWFwXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQgQ29sb3JCcmVha3NQYW5lbEZhY3RvcnksIHtDb2xvckJyZWFrc1BhbmVsUHJvcHN9IGZyb20gJy4vY29sb3ItYnJlYWtzLXBhbmVsJztcbmltcG9ydCB7U2V0Q29sb3JVSUZ1bmN9IGZyb20gJy4vY3VzdG9tLXBhbGV0dGUnO1xuaW1wb3J0IERyb3Bkb3duU2VsZWN0IGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLXNlbGVjdCc7XG5pbXBvcnQgQWNjZXNzb3IgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvYWNjZXNzb3InO1xuaW1wb3J0IERyb3Bkb3duTGlzdCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9kcm9wZG93bi1saXN0JztcbmltcG9ydCBMYXp5VGlwcHkgZnJvbSAnLi4vLi4vbWFwL2xhenktdGlwcHknO1xuaW1wb3J0IFR5cGVhaGVhZCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQnO1xuXG50eXBlIFRpcHB5SW5zdGFuY2UgPSBhbnk7IC8vICd0aXBweS1qcydcblxuY29uc3QgSElTVE9HUkFNX0JJTlMgPSAzMDtcblxuZXhwb3J0IHR5cGUgU2NhbGVPcHRpb24gPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgT25TZWxlY3RGdW5jID0gKHY6IHN0cmluZywgdmlzQ29uZmc/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBDb250ZXh0UHJvcHMgPSBDb2xvckJyZWFrc1BhbmVsUHJvcHM7XG5cbmV4cG9ydCB0eXBlIENvbG9yU2NhbGVTZWxlY3RvclByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIGZpZWxkOiBGaWVsZDtcbiAgZGF0YXNldDogS2VwbGVyVGFibGU7XG4gIHNjYWxlVHlwZTogc3RyaW5nO1xuICBkb21haW46IFZpc3VhbENoYW5uZWxEb21haW47XG4gIHJhbmdlOiBDb2xvclJhbmdlO1xuICBvblNlbGVjdDogT25TZWxlY3RGdW5jO1xuICBzZXRDb2xvclVJOiBTZXRDb2xvclVJRnVuYztcbiAgY29sb3JVSUNvbmZpZzogQ29sb3JVSTtcbiAgb3B0aW9uczogU2NhbGVPcHRpb25bXTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzZWxlY3RlZEl0ZW1zOiBTY2FsZU9wdGlvbltdO1xuICBtdWx0aVNlbGVjdDogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgZGlzcGxheU9wdGlvbjogc3RyaW5nO1xuICBnZXRPcHRpb25WYWx1ZTogc3RyaW5nO1xuICBhZ2dyZWdhdGVkQmlucz86IEFnZ3JlZ2F0ZWRCaW5bXTtcbiAgY2hhbm5lbEtleTogc3RyaW5nO1xufTtcblxuY29uc3QgRHJvcGRvd25Qcm9wQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xuY29uc3QgUE9QUEVSX09QVElPTlMgPSB7XG4gIG1vZGlmaWVyczogW1xuICAgIC8vIHplcm8gb2Zmc2V0cyBzaW5jZSB0aGV5IGFyZSBhbHJlYWR5IGFkZGVkIGluIFZlcnRpY2FsVG9vbGJhclxuICAgIHtuYW1lOiAnb2Zmc2V0Jywgb3B0aW9uczoge29mZnNldDogWzAsIDBdfX1cbiAgXVxufTtcblxuY29uc3QgRHJvcGRvd25Cb3R0b20gPSBzdHlsZWQuZGl2PHtsaWdodD86IGJvb2xlYW59PmBcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkXG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3BMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG5gO1xuXG5jb25zdCBTdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RTaGFkb3d9O1xuICAubGlzdC1zZWxlY3RvciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG4gIC5saXN0X19pdGVtIHtcbiAgICBwYWRkaW5nOiA0cHggOXB4O1xuICB9XG5gO1xuY29uc3QgRHJvcGRvd25XcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJafTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAudHlwZWFoZWFkIHtcbiAgICAvLyBhZGRzIHBhZGRpbmcgdG8gYm90dG9tIG9mIGRyb3Bkb3duXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgfVxuICBbZGF0YS10aXBweS1yb290XSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmA7XG5cbmZ1bmN0aW9uIGhpZGVUaXBweSh0aXBweUluc3RhbmNlKSB7XG4gIGlmICh0aXBweUluc3RhbmNlKSB7XG4gICAgdGlwcHlJbnN0YW5jZS5oaWRlKCk7XG4gIH1cbn1cbkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkuZGVwcyA9IFtDb2xvckJyZWFrc1BhbmVsRmFjdG9yeV07XG5cbmZ1bmN0aW9uIENvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkoXG4gIENvbG9yQnJlYWtzUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIENvbG9yQnJlYWtzUGFuZWxGYWN0b3J5PlxuKTogUmVhY3QuRkM8Q29sb3JTY2FsZVNlbGVjdG9yUHJvcHM+IHtcbiAgY29uc3QgQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duID0gcHJvcHMgPT4gKFxuICAgIDxTdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duPlxuICAgICAgPERyb3Bkb3duTGlzdCB7Li4ucHJvcHN9IC8+XG4gICAgICA8RHJvcGRvd25Qcm9wQ29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyhjb250ZXh0OiBhbnkpID0+IChcbiAgICAgICAgICA8RHJvcGRvd25Cb3R0b20+XG4gICAgICAgICAgICA8Q29sb3JCcmVha3NQYW5lbCB7Li4uY29udGV4dH0gLz5cbiAgICAgICAgICA8L0Ryb3Bkb3duQm90dG9tPlxuICAgICAgICApfVxuICAgICAgPC9Ecm9wZG93blByb3BDb250ZXh0LkNvbnN1bWVyPlxuICAgIDwvU3R5bGVkU2NhbGVTZWxlY3REcm9wZG93bj5cbiAgKTtcblxuICBjb25zdCBDb2xvclNjYWxlU2VsZWN0b3I6IFJlYWN0LkZDPENvbG9yU2NhbGVTZWxlY3RvclByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgZmllbGQsXG4gICAgZGF0YXNldCxcbiAgICBvblNlbGVjdCxcbiAgICBzY2FsZVR5cGUsXG4gICAgZG9tYWluLFxuICAgIGFnZ3JlZ2F0ZWRCaW5zLFxuICAgIHJhbmdlLFxuICAgIHNldENvbG9yVUksXG4gICAgY29sb3JVSUNvbmZpZyxcbiAgICBjaGFubmVsS2V5LFxuICAgIC4uLmRyb3Bkb3duU2VsZWN0UHJvcHNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGRpc3BsYXlPcHRpb24gPSBBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKGRyb3Bkb3duU2VsZWN0UHJvcHMuZGlzcGxheU9wdGlvbik7XG4gICAgY29uc3QgZ2V0T3B0aW9uVmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcihkcm9wZG93blNlbGVjdFByb3BzLmdldE9wdGlvblZhbHVlKSxcbiAgICAgIFtkcm9wZG93blNlbGVjdFByb3BzLmdldE9wdGlvblZhbHVlXVxuICAgICk7XG4gICAgY29uc3QgW3RpcHB5SW5zdGFuY2UsIHNldFRpcHB5SW5zdGFuY2VdID0gdXNlU3RhdGU8VGlwcHlJbnN0YW5jZT4oKTtcbiAgICBjb25zdCBpc0VkaXRpbmdDb2xvckJyZWFrcyA9IGNvbG9yVUlDb25maWc/LmNvbG9yUmFuZ2VDb25maWc/LmN1c3RvbUJyZWFrcztcbiAgICBjb25zdCBjb2xvclNjYWxlID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGdldExheWVyQ29sb3JTY2FsZSh7XG4gICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgZG9tYWluLFxuICAgICAgICAgIHNjYWxlVHlwZSxcbiAgICAgICAgICBsYXllclxuICAgICAgICB9KSxcbiAgICAgIFtyYW5nZSwgZG9tYWluLCBzY2FsZVR5cGUsIGxheWVyXVxuICAgICk7XG5cbiAgICBjb25zdCBjb2xvckJyZWFrcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIGNvbG9yU2NhbGVcbiAgICAgICAgPyBnZXRMZWdlbmRPZlNjYWxlKHtcbiAgICAgICAgICAgIHNjYWxlOiBjb2xvclNjYWxlLmJ5Wm9vbSAmJiBkb21haW4gPyBjb2xvclNjYWxlKGRvbWFpbj8ubGVuZ3RoIC0gMSkgOiBjb2xvclNjYWxlLFxuICAgICAgICAgICAgc2NhbGVUeXBlLFxuICAgICAgICAgICAgZmllbGRUeXBlOiBmaWVsZD8udHlwZSA/PyBBTExfRklFTERfVFlQRVMucmVhbFxuICAgICAgICAgIH0pXG4gICAgICAgIDogbnVsbDtcbiAgICB9LCBbY29sb3JTY2FsZSwgc2NhbGVUeXBlLCBmaWVsZD8udHlwZSwgZG9tYWluXSk7XG5cbiAgICBjb25zdCBjb2x1bW5TdGF0cyA9IGZpZWxkPy5maWx0ZXJQcm9wcz8uY29sdW1uU3RhdHM7XG5cbiAgICBjb25zdCBmaWVsZFZhbHVlQWNjZXNzb3IgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZFxuICAgICAgICA/IGlkeCA9PiBkYXRhc2V0LmdldFZhbHVlKGZpZWxkLm5hbWUsIGlkeClcbiAgICAgICAgOiBpZHggPT4gZGF0YXNldC5kYXRhQ29udGFpbmVyLnJvd0FzQXJyYXkoaWR4KTtcbiAgICB9LCBbZGF0YXNldCwgZmllbGRdKTtcblxuICAgIC8vIGFnZ3JlZ2F0ZWRCaW5zIHNob3VsZCBiZSB0aGUgcmF3IGRhdGFcbiAgICBjb25zdCBhbGxCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYWdncmVnYXRlZEJpbnMpIHtcbiAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21WYWx1ZXMoXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhhZ2dyZWdhdGVkQmlucykubWFwKGJpbiA9PiBiaW4uaSksXG4gICAgICAgICAgSElTVE9HUkFNX0JJTlMsXG4gICAgICAgICAgaWR4ID0+IGFnZ3JlZ2F0ZWRCaW5zW2lkeF0udmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb2x1bW5TdGF0cz8uYmluc1xuICAgICAgICA/IGNvbHVtblN0YXRzPy5iaW5zXG4gICAgICAgIDogaGlzdG9ncmFtRnJvbVZhbHVlcyhkYXRhc2V0LmFsbEluZGV4ZXMsIEhJU1RPR1JBTV9CSU5TLCBmaWVsZFZhbHVlQWNjZXNzb3IpO1xuICAgIH0sIFthZ2dyZWdhdGVkQmlucywgY29sdW1uU3RhdHMsIGRhdGFzZXQsIGZpZWxkVmFsdWVBY2Nlc3Nvcl0pO1xuXG4gICAgY29uc3QgaGlzdG9ncmFtRG9tYWluID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0SGlzdG9ncmFtRG9tYWluKHthZ2dyZWdhdGVkQmlucywgY29sdW1uU3RhdHMsIGRhdGFzZXQsIGZpZWxkVmFsdWVBY2Nlc3Nvcn0pO1xuICAgIH0sIFtkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3IsIGFnZ3JlZ2F0ZWRCaW5zLCBjb2x1bW5TdGF0c10pO1xuXG4gICAgY29uc3Qgb3JkaW5hbERvbWFpbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIGxheWVyLmNvbmZpZ1tsYXllci52aXN1YWxDaGFubmVsc1tjaGFubmVsS2V5XS5kb21haW5dIHx8IFtdO1xuICAgIH0sIFtjaGFubmVsS2V5LCBsYXllci5jb25maWcsIGxheWVyLnZpc3VhbENoYW5uZWxzXSk7XG5cbiAgICBjb25zdCBpc0ZpbHRlcmVkID0gYWdncmVnYXRlZEJpbnNcbiAgICAgID8gZmFsc2VcbiAgICAgIDogZGF0YXNldC5maWx0ZXJlZEluZGV4Rm9yRG9tYWluLmxlbmd0aCAhPT0gZGF0YXNldC5hbGxJbmRleGVzLmxlbmd0aDtcblxuICAgIC8vIGdldCBmaWx0ZXJlZEJpbnMgKG5vdCBhcHBseSB0byBhZ2dyZWdhdGUgbGF5ZXIpXG4gICAgY29uc3QgZmlsdGVyZWRCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWlzRmlsdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuIGFsbEJpbnM7XG4gICAgICB9XG4gICAgICAvLyBnZXQgdGhyZWhvbGRzXG4gICAgICBjb25zdCBmaWx0ZXJFbXB0eUJpbnMgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHRocmVob2xkcyA9IGFsbEJpbnMubWFwKGIgPT4gYi54MCk7XG4gICAgICByZXR1cm4gaGlzdG9ncmFtRnJvbVRocmVzaG9sZChcbiAgICAgICAgdGhyZWhvbGRzLFxuICAgICAgICBkYXRhc2V0LmZpbHRlcmVkSW5kZXhGb3JEb21haW4sXG4gICAgICAgIGZpZWxkVmFsdWVBY2Nlc3NvcixcbiAgICAgICAgZmlsdGVyRW1wdHlCaW5zXG4gICAgICApO1xuICAgIH0sIFtkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3IsIGFsbEJpbnMsIGlzRmlsdGVyZWRdKTtcblxuICAgIGNvbnN0IG9uU2VsZWN0U2NhbGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIHZhbCA9PiB7XG4gICAgICAgIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBvcHRpb25cbiAgICAgICAgaWYgKCF2YWwgfHwgaXNFZGl0aW5nQ29sb3JCcmVha3MpIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTY2FsZSA9IGdldE9wdGlvblZhbHVlKHZhbCk7XG4gICAgICAgIGlmIChzZWxlY3RlZFNjYWxlID09PSBTQ0FMRV9UWVBFUy5jdXN0b20pIHtcbiAgICAgICAgICBjb25zdCBjdXN0b21QYWxldHRlID0gaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlKHtcbiAgICAgICAgICAgIHNjYWxlOiBzZWxlY3RlZFNjYWxlLFxuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICByYW5nZSxcbiAgICAgICAgICAgIGNvbG9yQnJlYWtzXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBzaG93Q29sb3JDaGFydDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICAgICAgY3VzdG9tQnJlYWtzOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG9uU2VsZWN0KHNlbGVjdGVkU2NhbGUsIGN1c3RvbVBhbGV0dGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGhhc0NvbG9yTWFwKHJhbmdlKSAmJiBzZWxlY3RlZFNjYWxlICE9PSBTQ0FMRV9UWVBFUy5jdXN0b21PcmRpbmFsKSB7XG4gICAgICAgICAgLy8gbm90IGN1c3RvbVxuICAgICAgICAgIC8vIHJlbW92ZSBjb2xvck1hcFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgICAgICAgIGNvbnN0IHtjb2xvck1hcDogXywgLi4ubmV3UmFuZ2V9ID0gcmFuZ2U7XG4gICAgICAgICAgb25TZWxlY3Qoc2VsZWN0ZWRTY2FsZSwgbmV3UmFuZ2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uU2VsZWN0KHNlbGVjdGVkU2NhbGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2lzRWRpdGluZ0NvbG9yQnJlYWtzLCBmaWVsZCwgc2V0Q29sb3JVSSwgb25TZWxlY3QsIHJhbmdlLCBnZXRPcHRpb25WYWx1ZSwgY29sb3JCcmVha3NdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uQXBwbHkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblNlbGVjdChzY2FsZVR5cGUsIGNvbG9yVUlDb25maWcuY3VzdG9tUGFsZXR0ZSk7XG4gICAgICBoaWRlVGlwcHkodGlwcHlJbnN0YW5jZSk7XG4gICAgfSwgW29uU2VsZWN0LCBjb2xvclVJQ29uZmlnLmN1c3RvbVBhbGV0dGUsIHRpcHB5SW5zdGFuY2UsIHNjYWxlVHlwZV0pO1xuXG4gICAgY29uc3Qgb25DYW5jZWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBoaWRlVGlwcHkodGlwcHlJbnN0YW5jZSk7XG4gICAgfSwgW3RpcHB5SW5zdGFuY2VdKTtcblxuICAgIGNvbnN0IGlzQ3VzdG9tQnJlYWtzID1cbiAgICAgIHNjYWxlVHlwZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tIHx8IHNjYWxlVHlwZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tT3JkaW5hbDtcblxuICAgIHJldHVybiAoXG4gICAgICA8RHJvcGRvd25Qcm9wQ29udGV4dC5Qcm92aWRlclxuICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgIHNldENvbG9yVUksXG4gICAgICAgICAgY29sb3JGaWVsZDogZmllbGQsXG4gICAgICAgICAgZGF0YXNldCxcbiAgICAgICAgICBjb2xvclVJQ29uZmlnLFxuICAgICAgICAgIGNvbG9yQnJlYWtzLFxuICAgICAgICAgIGlzQ3VzdG9tQnJlYWtzLFxuICAgICAgICAgIGFsbEJpbnMsXG4gICAgICAgICAgZmlsdGVyZWRCaW5zLFxuICAgICAgICAgIGlzRmlsdGVyZWQsXG4gICAgICAgICAgaGlzdG9ncmFtRG9tYWluLFxuICAgICAgICAgIG9yZGluYWxEb21haW4sXG4gICAgICAgICAgb25TY2FsZUNoYW5nZTogb25TZWxlY3QsXG4gICAgICAgICAgb25BcHBseSxcbiAgICAgICAgICBvbkNhbmNlbFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yPlxuICAgICAgICAgIDxMYXp5VGlwcHlcbiAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tc3RhcnRcIlxuICAgICAgICAgICAgYXBwZW5kVG89XCJwYXJlbnRcIlxuICAgICAgICAgICAgaW50ZXJhY3RpdmU9e3RydWV9XG4gICAgICAgICAgICBoaWRlT25DbGljaz17IWlzRWRpdGluZ0NvbG9yQnJlYWtzfVxuICAgICAgICAgICAgb25DcmVhdGU9e3NldFRpcHB5SW5zdGFuY2V9XG4gICAgICAgICAgICBwb3BwZXJPcHRpb25zPXtQT1BQRVJfT1BUSU9OU31cbiAgICAgICAgICAgIHJlbmRlcj17YXR0cnMgPT4gKFxuICAgICAgICAgICAgICA8RHJvcGRvd25XcmFwcGVyIHsuLi5hdHRyc30+XG4gICAgICAgICAgICAgICAgey8qIEB0cy1pZ25vcmUqL31cbiAgICAgICAgICAgICAgICB7IWRyb3Bkb3duU2VsZWN0UHJvcHMuZGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17ZGlzcGxheU9wdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT17Z2V0T3B0aW9uVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e29uU2VsZWN0U2NhbGV9XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUxpc3RDb21wb25lbnQ9e0NvbG9yU2NhbGVTZWxlY3REcm9wZG93bn1cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIHNob3dPcHRpb25zV2hlbkVtcHR5XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25XcmFwcGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRyb3Bkb3duLXNlbGVjdFwiPlxuICAgICAgICAgICAgICB7LyogQHRzLWlnbm9yZSovfVxuICAgICAgICAgICAgICA8RHJvcGRvd25TZWxlY3RcbiAgICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5T3B0aW9ufVxuICAgICAgICAgICAgICAgIHZhbHVlPXtkcm9wZG93blNlbGVjdFByb3BzLnNlbGVjdGVkSXRlbXNbMF19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L0xhenlUaXBweT5cbiAgICAgICAgPC9TdHlsZWRDb2xvclNjYWxlU2VsZWN0b3I+XG4gICAgICA8L0Ryb3Bkb3duUHJvcENvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIENvbG9yU2NhbGVTZWxlY3Rvcjtcbn1cbmV4cG9ydCBkZWZhdWx0IENvbG9yU2NhbGVTZWxlY3RvckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFJQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFVQSxJQUFBSyxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQU0sZUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsYUFBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBQTZELElBQUFXLFNBQUE7RUFBQUMsVUFBQTtBQUFBLElBQUFDLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUExQjdEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFB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
@@ -1,6 +1,6 @@
1
- import { ColorRange } from '@kepler.gl/constants';
1
+ import React from 'react';
2
+ import { ColorRange } from '@kepler.gl/types';
2
3
  import { ColorUI, NestedPartial, RGBAColor, RGBColor } from '@kepler.gl/types';
3
- import { ComponentType } from 'react';
4
4
  import RangeSliderFactory from '../../common/range-slider';
5
5
  import ColorRangeSelectorFactory from './color-range-selector';
6
6
  declare type ColorSelectorInputProps = {
@@ -22,12 +22,12 @@ declare type ColorSelectorProps = {
22
22
  useOpacity?: boolean;
23
23
  setColorUI?: (newConfig: NestedPartial<ColorUI>) => void;
24
24
  };
25
- export declare const ColorBlock: import("styled-components").StyledComponent<"div", any, {
25
+ export declare const ColorBlock: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
26
26
  backgroundcolor: RGBColor;
27
- }, never>;
28
- export declare const ColorSelectorInput: import("styled-components").StyledComponent<"div", any, ColorSelectorInputProps, never>;
29
- export declare const InputBoxContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
30
- declare function ColorSelectorFactory(ColorRangeSelector: any, RangeSlider: any): ComponentType<ColorSelectorProps>;
27
+ }>>;
28
+ export declare const ColorSelectorInput: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ColorSelectorInputProps>>;
29
+ export declare const InputBoxContainer: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
30
+ declare function ColorSelectorFactory(ColorRangeSelector: ReturnType<typeof ColorRangeSelectorFactory>, RangeSlider: ReturnType<typeof RangeSliderFactory>): React.FC<ColorSelectorProps>;
31
31
  declare namespace ColorSelectorFactory {
32
32
  var deps: (typeof RangeSliderFactory | typeof ColorRangeSelectorFactory)[];
33
33
  }