@carto/kepler.gl 0.0.44 → 0.0.45-alpha.carto-colors-range
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.
- package/dist/components/side-panel/layer-panel/color-range-selector.js +237 -188
- package/dist/components/side-panel/layer-panel/color-selector.js +6 -6
- package/dist/components/side-panel/layer-panel/layer-configurator.js +1 -1
- package/dist/components/side-panel/layer-panel/layer-panel.js +5 -2
- package/dist/components/side-panel/map-manager.js +6 -6
- package/dist/constants/default-settings.js +2 -2
- package/dist/layers/base-layer.js +3 -2
- package/package.json +1 -1
- package/src/components/side-panel/layer-panel/color-range-selector.js +206 -165
- package/src/components/side-panel/layer-panel/color-selector.js +3 -4
- package/src/components/side-panel/layer-panel/layer-configurator.js +2 -0
- package/src/components/side-panel/layer-panel/layer-panel.js +4 -1
- package/src/components/side-panel/map-manager.js +3 -3
- package/src/layers/base-layer.js +2 -1
- package/CHANGELOG.md +0 -711
- package/umd/keplergl.min.js +0 -508
|
@@ -7,7 +7,10 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports
|
|
10
|
+
exports["default"] = ColorRangeSelectFactory;
|
|
11
|
+
exports.PaletteConfigFactory = PaletteConfigFactory;
|
|
12
|
+
exports.ColorPaletteGroupFactory = ColorPaletteGroupFactory;
|
|
13
|
+
exports.ALL_STEPS = exports.ALL_TYPES = void 0;
|
|
11
14
|
|
|
12
15
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
16
|
|
|
@@ -105,182 +108,209 @@ var CONFIG_SETTINGS = {
|
|
|
105
108
|
options: [true, false]
|
|
106
109
|
}
|
|
107
110
|
};
|
|
111
|
+
ColorRangeSelectFactory.deps = [ColorPaletteGroupFactory, PaletteConfigFactory];
|
|
108
112
|
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig) {
|
|
114
|
+
var ColorRangeSelect = /*#__PURE__*/function (_Component) {
|
|
115
|
+
(0, _inherits2["default"])(ColorRangeSelect, _Component);
|
|
111
116
|
|
|
112
|
-
|
|
117
|
+
var _super = _createSuper(ColorRangeSelect);
|
|
113
118
|
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
function ColorRangeSelect() {
|
|
120
|
+
var _this;
|
|
116
121
|
|
|
117
|
-
|
|
122
|
+
(0, _classCallCheck2["default"])(this, ColorRangeSelect);
|
|
118
123
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
124
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
125
|
+
args[_key] = arguments[_key];
|
|
126
|
+
}
|
|
122
127
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
});
|
|
127
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "configTypeSelector", function (props) {
|
|
128
|
-
return props.colorPaletteUI.colorRangeConfig.type;
|
|
129
|
-
});
|
|
130
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "configStepSelector", function (props) {
|
|
131
|
-
return props.colorPaletteUI.colorRangeConfig.steps;
|
|
132
|
-
});
|
|
133
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "filteredColorRange", (0, _reselect.createSelector)(_this.colorRangesSelector, _this.configTypeSelector, _this.configStepSelector, function (colorRanges, type, steps) {
|
|
134
|
-
return colorRanges.filter(function (colorRange) {
|
|
135
|
-
var isType = type === 'all' || type === colorRange.type;
|
|
136
|
-
var isStep = Number(steps) === colorRange.colors.length;
|
|
137
|
-
return isType && isStep;
|
|
128
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
129
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "colorRangesSelector", function (props) {
|
|
130
|
+
return props.colorRanges;
|
|
138
131
|
});
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
var key = _ref.key,
|
|
142
|
-
value = _ref.value;
|
|
143
|
-
|
|
144
|
-
_this._setColorRangeConfig(_objectSpread((0, _defineProperty2["default"])({}, key, value), key === 'type' && {
|
|
145
|
-
custom: value === 'custom'
|
|
146
|
-
}));
|
|
147
|
-
});
|
|
148
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSetCustomPalette", function (config) {
|
|
149
|
-
_this.props.setColorPaletteUI({
|
|
150
|
-
customPalette: config
|
|
132
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "configTypeSelector", function (props) {
|
|
133
|
+
return props.colorPaletteUI.colorRangeConfig.type;
|
|
151
134
|
});
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
_this.props.setColorPaletteUI({
|
|
155
|
-
colorRangeConfig: newConfig
|
|
135
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "configStepSelector", function (props) {
|
|
136
|
+
return props.colorPaletteUI.colorRangeConfig.steps;
|
|
156
137
|
});
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
138
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "filteredColorRange", (0, _reselect.createSelector)(_this.colorRangesSelector, _this.configTypeSelector, _this.configStepSelector, function (colorRanges, type, steps) {
|
|
139
|
+
return colorRanges.filter(function (colorRange) {
|
|
140
|
+
var isType = type === 'all' || type === colorRange.type;
|
|
141
|
+
var isStep = Number(steps) === colorRange.colors.length;
|
|
142
|
+
return isType && isStep;
|
|
143
|
+
});
|
|
144
|
+
}));
|
|
145
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_updateConfig", function (_ref) {
|
|
146
|
+
var key = _ref.key,
|
|
147
|
+
value = _ref.value;
|
|
148
|
+
|
|
149
|
+
_this._setColorRangeConfig(_objectSpread((0, _defineProperty2["default"])({}, key, value), key === 'type' && {
|
|
150
|
+
custom: value === 'custom'
|
|
151
|
+
}));
|
|
164
152
|
});
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
153
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSetCustomPalette", function (config) {
|
|
154
|
+
_this.props.setColorPaletteUI({
|
|
155
|
+
customPalette: config
|
|
156
|
+
});
|
|
169
157
|
});
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
customPalette = _this$props$colorPale.customPalette,
|
|
181
|
-
showSketcher = _this$props$colorPale.showSketcher,
|
|
182
|
-
colorRangeConfig = _this$props$colorPale.colorRangeConfig;
|
|
183
|
-
var filteredColorRanges = this.filteredColorRange(this.props);
|
|
184
|
-
return /*#__PURE__*/_react["default"].createElement(StyledColorRangeSelector, null, /*#__PURE__*/_react["default"].createElement(StyledColorConfig, {
|
|
185
|
-
className: "color-range-selector__config"
|
|
186
|
-
}, Object.keys(colorRangeConfig).filter(function (key) {
|
|
187
|
-
return Boolean(CONFIG_SETTINGS[key]) && (colorRangeConfig.custom ? key === 'type' : true);
|
|
188
|
-
}).map(function (key) {
|
|
189
|
-
return /*#__PURE__*/_react["default"].createElement(PaletteConfig, {
|
|
190
|
-
key: key,
|
|
191
|
-
label: CONFIG_SETTINGS[key].label || key,
|
|
192
|
-
config: CONFIG_SETTINGS[key],
|
|
193
|
-
value: colorRangeConfig[key],
|
|
194
|
-
onChange: function onChange(value) {
|
|
195
|
-
return _this2._updateConfig({
|
|
196
|
-
key: key,
|
|
197
|
-
value: value
|
|
198
|
-
});
|
|
158
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_setColorRangeConfig", function (newConfig) {
|
|
159
|
+
_this.props.setColorPaletteUI({
|
|
160
|
+
colorRangeConfig: newConfig
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onCustomPaletteCancel", function (newConfig) {
|
|
164
|
+
_this.props.setColorPaletteUI({
|
|
165
|
+
showSketcher: false,
|
|
166
|
+
colorRangeConfig: {
|
|
167
|
+
custom: false
|
|
199
168
|
}
|
|
200
169
|
});
|
|
201
|
-
})
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
onCancel: this._onCustomPaletteCancel
|
|
209
|
-
}) : /*#__PURE__*/_react["default"].createElement(ColorPaletteGroup, {
|
|
210
|
-
colorRanges: filteredColorRanges,
|
|
211
|
-
onSelect: this.props.onSelectColorRange,
|
|
212
|
-
selected: this.props.selectedColorRange,
|
|
213
|
-
reversed: colorRangeConfig.reversed
|
|
214
|
-
}));
|
|
170
|
+
});
|
|
171
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onToggleSketcher", function (val) {
|
|
172
|
+
_this.props.setColorPaletteUI({
|
|
173
|
+
showSketcher: val
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
return _this;
|
|
215
177
|
}
|
|
216
|
-
|
|
178
|
+
|
|
179
|
+
(0, _createClass2["default"])(ColorRangeSelect, [{
|
|
180
|
+
key: "render",
|
|
181
|
+
value: function render() {
|
|
182
|
+
var _this2 = this;
|
|
183
|
+
|
|
184
|
+
var _this$props$colorPale = this.props.colorPaletteUI,
|
|
185
|
+
customPalette = _this$props$colorPale.customPalette,
|
|
186
|
+
showSketcher = _this$props$colorPale.showSketcher,
|
|
187
|
+
colorRangeConfig = _this$props$colorPale.colorRangeConfig;
|
|
188
|
+
var filteredColorRanges = this.filteredColorRange(this.props);
|
|
189
|
+
return /*#__PURE__*/_react["default"].createElement(StyledColorRangeSelector, null, /*#__PURE__*/_react["default"].createElement(StyledColorConfig, {
|
|
190
|
+
className: "color-range-selector__config"
|
|
191
|
+
}, Object.keys(colorRangeConfig).filter(function (key) {
|
|
192
|
+
return Boolean(CONFIG_SETTINGS[key]) && (colorRangeConfig.custom ? key === 'type' : true);
|
|
193
|
+
}).map(function (key) {
|
|
194
|
+
return /*#__PURE__*/_react["default"].createElement(PaletteConfig, {
|
|
195
|
+
key: key,
|
|
196
|
+
label: CONFIG_SETTINGS[key].label || key,
|
|
197
|
+
config: CONFIG_SETTINGS[key],
|
|
198
|
+
value: colorRangeConfig[key],
|
|
199
|
+
onChange: function onChange(value) {
|
|
200
|
+
return _this2._updateConfig({
|
|
201
|
+
key: key,
|
|
202
|
+
value: value
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
})), colorRangeConfig.custom ? /*#__PURE__*/_react["default"].createElement(_customPalette["default"], {
|
|
207
|
+
customPalette: customPalette,
|
|
208
|
+
showSketcher: showSketcher,
|
|
209
|
+
selected: this.props.selectedColorRange,
|
|
210
|
+
onApply: this.props.onSelectColorRange,
|
|
211
|
+
onToggleSketcher: this._onToggleSketcher,
|
|
212
|
+
setCustomPalette: this._onSetCustomPalette,
|
|
213
|
+
onCancel: this._onCustomPaletteCancel
|
|
214
|
+
}) : /*#__PURE__*/_react["default"].createElement(ColorPaletteGroup, {
|
|
215
|
+
colorRanges: filteredColorRanges,
|
|
216
|
+
onSelect: this.props.onSelectColorRange,
|
|
217
|
+
selected: this.props.selectedColorRange,
|
|
218
|
+
reversed: colorRangeConfig.reversed,
|
|
219
|
+
configTypeSelector: function configTypeSelector() {
|
|
220
|
+
return _this2.props.colorPaletteUI.colorRangeConfig.type;
|
|
221
|
+
},
|
|
222
|
+
configStepSelector: function configStepSelector() {
|
|
223
|
+
return _this2.props.colorPaletteUI.colorRangeConfig.steps;
|
|
224
|
+
}
|
|
225
|
+
}));
|
|
226
|
+
}
|
|
227
|
+
}]);
|
|
228
|
+
return ColorRangeSelect;
|
|
229
|
+
}(_react.Component);
|
|
230
|
+
|
|
231
|
+
(0, _defineProperty2["default"])(ColorRangeSelect, "propTypes", {
|
|
232
|
+
colorPaletteUI: _propTypes["default"].object.isRequired,
|
|
233
|
+
selectedColorRange: _propTypes["default"].object.isRequired,
|
|
234
|
+
onSelectColorRange: _propTypes["default"].func.isRequired,
|
|
235
|
+
setColorPaletteUI: _propTypes["default"].func.isRequired,
|
|
236
|
+
// optional
|
|
237
|
+
colorRanges: _propTypes["default"].arrayOf(_propTypes["default"].any)
|
|
238
|
+
});
|
|
239
|
+
(0, _defineProperty2["default"])(ColorRangeSelect, "defaultProps", {
|
|
240
|
+
colorRanges: _colorRanges.COLOR_RANGES,
|
|
241
|
+
onSelectColorRange: function onSelectColorRange() {},
|
|
242
|
+
setColorPaletteUI: function setColorPaletteUI() {}
|
|
243
|
+
});
|
|
217
244
|
return ColorRangeSelect;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
exports["default"] = ColorRangeSelect;
|
|
221
|
-
(0, _defineProperty2["default"])(ColorRangeSelect, "propTypes", {
|
|
222
|
-
colorPaletteUI: _propTypes["default"].object.isRequired,
|
|
223
|
-
selectedColorRange: _propTypes["default"].object.isRequired,
|
|
224
|
-
onSelectColorRange: _propTypes["default"].func.isRequired,
|
|
225
|
-
setColorPaletteUI: _propTypes["default"].func.isRequired,
|
|
226
|
-
// optional
|
|
227
|
-
colorRanges: _propTypes["default"].arrayOf(_propTypes["default"].any)
|
|
228
|
-
});
|
|
229
|
-
(0, _defineProperty2["default"])(ColorRangeSelect, "defaultProps", {
|
|
230
|
-
colorRanges: _colorRanges.COLOR_RANGES,
|
|
231
|
-
onSelectColorRange: function onSelectColorRange() {},
|
|
232
|
-
setColorPaletteUI: function setColorPaletteUI() {}
|
|
233
|
-
});
|
|
245
|
+
}
|
|
234
246
|
|
|
235
|
-
|
|
236
|
-
var
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
onClick: function onClick(e) {
|
|
245
|
-
return e.stopPropagation();
|
|
246
|
-
}
|
|
247
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
248
|
-
className: "color-palette__config__label"
|
|
249
|
-
}, type !== CONFIG_SETTINGS_CUSTOM_REVERSED_BUTTON_TYPE && /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
250
|
-
id: "color.".concat(label)
|
|
251
|
-
}))), type === 'select' && /*#__PURE__*/_react["default"].createElement("div", {
|
|
252
|
-
className: "color-palette__config__select"
|
|
253
|
-
}, /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], {
|
|
254
|
-
selectedItems: value,
|
|
255
|
-
options: options,
|
|
256
|
-
multiSelect: false,
|
|
257
|
-
searchable: false,
|
|
258
|
-
onChange: _onChange
|
|
259
|
-
})), type === 'switch' && /*#__PURE__*/_react["default"].createElement(_switch["default"], {
|
|
260
|
-
checked: value,
|
|
261
|
-
id: "".concat(label, "-toggle"),
|
|
262
|
-
onChange: function onChange() {
|
|
263
|
-
return _onChange(!value);
|
|
264
|
-
},
|
|
265
|
-
secondary: true
|
|
266
|
-
}), type === CONFIG_SETTINGS_CUSTOM_REVERSED_BUTTON_TYPE && /*#__PURE__*/_react["default"].createElement(_styledComponents2.Button, (0, _extends2["default"])({
|
|
267
|
-
className: "color-palette__config__button ".concat(value ? 'color-palette__config__button--active' : ''),
|
|
268
|
-
"data-tip": true,
|
|
269
|
-
"data-for": "".concat(label, "-tooltip")
|
|
270
|
-
}, !value && {
|
|
271
|
-
link: true
|
|
272
|
-
}, {
|
|
273
|
-
onClick: function onClick() {
|
|
274
|
-
return _onChange(!value);
|
|
247
|
+
function PaletteConfigFactory() {
|
|
248
|
+
var PaletteConfig = /*#__PURE__*/function (_Component2) {
|
|
249
|
+
(0, _inherits2["default"])(PaletteConfig, _Component2);
|
|
250
|
+
|
|
251
|
+
var _super2 = _createSuper(PaletteConfig);
|
|
252
|
+
|
|
253
|
+
function PaletteConfig() {
|
|
254
|
+
(0, _classCallCheck2["default"])(this, PaletteConfig);
|
|
255
|
+
return _super2.apply(this, arguments);
|
|
275
256
|
}
|
|
276
|
-
}), /*#__PURE__*/_react["default"].createElement(_icons.SwapHorizontal, null), /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
|
|
277
|
-
id: "".concat(label, "-tooltip"),
|
|
278
|
-
effect: "solid",
|
|
279
|
-
place: "top"
|
|
280
|
-
}, label)));
|
|
281
|
-
};
|
|
282
257
|
|
|
283
|
-
|
|
258
|
+
(0, _createClass2["default"])(PaletteConfig, [{
|
|
259
|
+
key: "render",
|
|
260
|
+
value: function render() {
|
|
261
|
+
var _this$props = this.props,
|
|
262
|
+
label = _this$props.label,
|
|
263
|
+
value = _this$props.value,
|
|
264
|
+
_this$props$config = _this$props.config,
|
|
265
|
+
type = _this$props$config.type,
|
|
266
|
+
options = _this$props$config.options,
|
|
267
|
+
_onChange = _this$props.onChange;
|
|
268
|
+
return /*#__PURE__*/_react["default"].createElement(StyledPaletteConfig, {
|
|
269
|
+
className: "color-palette__config color-palette__config--".concat(label),
|
|
270
|
+
onClick: function onClick(e) {
|
|
271
|
+
return e.stopPropagation();
|
|
272
|
+
}
|
|
273
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
274
|
+
className: "color-palette__config__label"
|
|
275
|
+
}, type !== CONFIG_SETTINGS_CUSTOM_REVERSED_BUTTON_TYPE && /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
276
|
+
id: "color.".concat(label)
|
|
277
|
+
}))), type === 'select' && /*#__PURE__*/_react["default"].createElement("div", {
|
|
278
|
+
className: "color-palette__config__select"
|
|
279
|
+
}, /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], {
|
|
280
|
+
selectedItems: value,
|
|
281
|
+
options: options,
|
|
282
|
+
multiSelect: false,
|
|
283
|
+
searchable: false,
|
|
284
|
+
onChange: _onChange
|
|
285
|
+
})), type === 'switch' && /*#__PURE__*/_react["default"].createElement(_switch["default"], {
|
|
286
|
+
checked: value,
|
|
287
|
+
id: "".concat(label, "-toggle"),
|
|
288
|
+
onChange: function onChange() {
|
|
289
|
+
return _onChange(!value);
|
|
290
|
+
},
|
|
291
|
+
secondary: true
|
|
292
|
+
}), type === CONFIG_SETTINGS_CUSTOM_REVERSED_BUTTON_TYPE && /*#__PURE__*/_react["default"].createElement(_styledComponents2.Button, (0, _extends2["default"])({
|
|
293
|
+
className: "color-palette__config__button ".concat(value ? 'color-palette__config__button--active' : ''),
|
|
294
|
+
"data-tip": true,
|
|
295
|
+
"data-for": "".concat(label, "-tooltip")
|
|
296
|
+
}, !value && {
|
|
297
|
+
link: true
|
|
298
|
+
}, {
|
|
299
|
+
onClick: function onClick() {
|
|
300
|
+
return _onChange(!value);
|
|
301
|
+
}
|
|
302
|
+
}), /*#__PURE__*/_react["default"].createElement(_icons.SwapHorizontal, null), /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
|
|
303
|
+
id: "".concat(label, "-tooltip"),
|
|
304
|
+
effect: "solid",
|
|
305
|
+
place: "top"
|
|
306
|
+
}, label)));
|
|
307
|
+
}
|
|
308
|
+
}]);
|
|
309
|
+
return PaletteConfig;
|
|
310
|
+
}(_react.Component);
|
|
311
|
+
|
|
312
|
+
return PaletteConfig;
|
|
313
|
+
}
|
|
284
314
|
|
|
285
315
|
var StyledColorRange = _styledComponents["default"].div.attrs({
|
|
286
316
|
className: 'color-palette-outer'
|
|
@@ -288,34 +318,53 @@ var StyledColorRange = _styledComponents["default"].div.attrs({
|
|
|
288
318
|
return props.theme.panelBackgroundHover;
|
|
289
319
|
});
|
|
290
320
|
|
|
291
|
-
|
|
292
|
-
var
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
321
|
+
function ColorPaletteGroupFactory() {
|
|
322
|
+
var ColorPaletteGroup = /*#__PURE__*/function (_Component3) {
|
|
323
|
+
(0, _inherits2["default"])(ColorPaletteGroup, _Component3);
|
|
324
|
+
|
|
325
|
+
var _super3 = _createSuper(ColorPaletteGroup);
|
|
326
|
+
|
|
327
|
+
function ColorPaletteGroup() {
|
|
328
|
+
(0, _classCallCheck2["default"])(this, ColorPaletteGroup);
|
|
329
|
+
return _super3.apply(this, arguments);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
(0, _createClass2["default"])(ColorPaletteGroup, [{
|
|
333
|
+
key: "render",
|
|
334
|
+
value: function render() {
|
|
335
|
+
var _this$props2 = this.props,
|
|
336
|
+
reversed = _this$props2.reversed,
|
|
337
|
+
onSelect = _this$props2.onSelect,
|
|
338
|
+
selected = _this$props2.selected,
|
|
339
|
+
colorRanges = _this$props2.colorRanges,
|
|
340
|
+
title = _this$props2.title;
|
|
341
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
342
|
+
className: "color-palette__group"
|
|
343
|
+
}, title && title, colorRanges.map(function (colorRange, i) {
|
|
344
|
+
return /*#__PURE__*/_react["default"].createElement(StyledColorRange, {
|
|
345
|
+
key: "".concat(colorRange.name, "-").concat(i),
|
|
346
|
+
onClick: function onClick(e) {
|
|
347
|
+
return onSelect(reversed ? (0, _colorUtils.reverseColorRange)(true, colorRange) : colorRange, e);
|
|
348
|
+
}
|
|
349
|
+
}, /*#__PURE__*/_react["default"].createElement(_colorPalette["default"], {
|
|
350
|
+
colors: colorRange.colors,
|
|
351
|
+
isReversed: reversed,
|
|
352
|
+
isSelected: colorRange.name === selected.name && reversed === Boolean(selected.reversed),
|
|
353
|
+
rootProps: {
|
|
354
|
+
'data-tip': true,
|
|
355
|
+
'data-for': "color-range-".concat(i, "-tooltip")
|
|
356
|
+
}
|
|
357
|
+
}, /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
|
|
358
|
+
id: "color-range-".concat(i, "-tooltip"),
|
|
359
|
+
effect: "solid",
|
|
360
|
+
place: "top"
|
|
361
|
+
}, colorRange.name)));
|
|
362
|
+
}));
|
|
311
363
|
}
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
place: "top"
|
|
316
|
-
}, colorRange.name)));
|
|
317
|
-
}));
|
|
318
|
-
};
|
|
364
|
+
}]);
|
|
365
|
+
return ColorPaletteGroup;
|
|
366
|
+
}(_react.Component);
|
|
319
367
|
|
|
320
|
-
|
|
321
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3ItcmFuZ2Utc2VsZWN0b3IuanMiXSwibmFtZXMiOlsiQUxMX1RZUEVTIiwiQ09MT1JfUkFOR0VTIiwibWFwIiwiYyIsInR5cGUiLCJmaWx0ZXIiLCJjdHlwZSIsIkFMTF9TVEVQUyIsImQiLCJjb2xvcnMiLCJsZW5ndGgiLCJzb3J0IiwibnVtYmVyU29ydCIsIlN0eWxlZENvbG9yQ29uZmlnIiwic3R5bGVkIiwiZGl2IiwiU3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yIiwiYXR0cnMiLCJjbGFzc05hbWUiLCJTdHlsZWRQYWxldHRlQ29uZmlnIiwicHJvcHMiLCJ0aGVtZSIsInNlY29uZGFyeUlucHV0IiwiQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSIsIkNPTkZJR19TRVRUSU5HUyIsIm9wdGlvbnMiLCJzdGVwcyIsInJldmVyc2VkIiwiQ29sb3JSYW5nZVNlbGVjdCIsImNvbG9yUmFuZ2VzIiwiY29sb3JQYWxldHRlVUkiLCJjb2xvclJhbmdlQ29uZmlnIiwiY29sb3JSYW5nZXNTZWxlY3RvciIsImNvbmZpZ1R5cGVTZWxlY3RvciIsImNvbmZpZ1N0ZXBTZWxlY3RvciIsImNvbG9yUmFuZ2UiLCJpc1R5cGUiLCJpc1N0ZXAiLCJOdW1iZXIiLCJrZXkiLCJ2YWx1ZSIsIl9zZXRDb2xvclJhbmdlQ29uZmlnIiwiY3VzdG9tIiwiY29uZmlnIiwic2V0Q29sb3JQYWxldHRlVUkiLCJjdXN0b21QYWxldHRlIiwibmV3Q29uZmlnIiwic2hvd1NrZXRjaGVyIiwidmFsIiwiZmlsdGVyZWRDb2xvclJhbmdlcyIsImZpbHRlcmVkQ29sb3JSYW5nZSIsIk9iamVjdCIsImtleXMiLCJCb29sZWFuIiwibGFiZWwiLCJfdXBkYXRlQ29uZmlnIiwic2VsZWN0ZWRDb2xvclJhbmdlIiwib25TZWxlY3RDb2xvclJhbmdlIiwiX29uVG9nZ2xlU2tldGNoZXIiLCJfb25TZXRDdXN0b21QYWxldHRlIiwiX29uQ3VzdG9tUGFsZXR0ZUNhbmNlbCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwiYXJyYXlPZiIsImFueSIsIlBhbGV0dGVDb25maWciLCJvbkNoYW5nZSIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJsaW5rIiwiU3R5bGVkQ29sb3JSYW5nZSIsInBhbmVsQmFja2dyb3VuZEhvdmVyIiwiQ29sb3JQYWxldHRlR3JvdXAiLCJvblNlbGVjdCIsInNlbGVjdGVkIiwiaSIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLFNBQVMsR0FBRyx5QkFDdkIsS0FEdUIsNkNBRXBCQywwQkFBYUMsR0FBYixDQUFpQixVQUFBQyxDQUFDO0FBQUEsU0FBSUEsQ0FBQyxDQUFDQyxJQUFOO0FBQUEsQ0FBbEIsRUFBOEJDLE1BQTlCLENBQXFDLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFKO0FBQUEsQ0FBMUMsQ0FGb0IsSUFHdkIsUUFIdUIsR0FBbEI7O0FBTUEsSUFBTUMsU0FBUyxHQUFHLHdCQUFLTiwwQkFBYUMsR0FBYixDQUFpQixVQUFBTSxDQUFDO0FBQUEsU0FBSUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLE1BQWI7QUFBQSxDQUFsQixDQUFMLEVBQTZDQyxJQUE3QyxDQUFrREMscUJBQWxELENBQWxCOzs7QUFFUCxJQUFNQyxpQkFBaUIsR0FBR0MsNkJBQU9DLEdBQVYsc0hBQXZCOztBQUlBLElBQU1DLHdCQUF3QixHQUFHRiw2QkFBT0MsR0FBUCxDQUFXRSxLQUFYLENBQWlCO0FBQ2hEQyxFQUFBQSxTQUFTLEVBQUU7QUFEcUMsQ0FBakIsQ0FBSCxtSEFBOUI7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QUFHLG1DQUFrQixJQUFsQixFQUF3QlEsVUFBeEIsQ0FBSCxHQUF5Q0EsVUFBbEQsRUFBOERtQyxDQUE5RCxDQUFaO0FBQUE7QUFGWixvQkFJRSxnQ0FBQyx3QkFBRDtBQUNFLE1BQUEsTUFBTSxFQUFFbkMsVUFBVSxDQUFDMUIsTUFEckI7QUFFRSxNQUFBLFVBQVUsRUFBRWtCLFFBRmQ7QUFHRSxNQUFBLFVBQVUsRUFBRVEsVUFBVSxDQUFDNEMsSUFBWCxLQUFvQkYsUUFBUSxDQUFDRSxJQUE3QixJQUFxQ3BELFFBQVEsS0FBSzBCLE9BQU8sQ0FBQ3dCLFFBQVEsQ0FBQ2xELFFBQVYsQ0FIdkU7QUFJRSxNQUFBLFNBQVMsRUFBRTtBQUNULG9CQUFZLElBREg7QUFFVCwwQ0FBMkJtRCxDQUEzQjtBQUZTO0FBSmIsb0JBU0UsZ0NBQUMsMEJBQUQ7QUFBUyxNQUFBLEVBQUUsd0JBQWlCQSxDQUFqQixhQUFYO0FBQXlDLE1BQUEsTUFBTSxFQUFDLE9BQWhEO0FBQXdELE1BQUEsS0FBSyxFQUFDO0FBQTlELE9BQ0czQyxVQUFVLENBQUM0QyxJQURkLENBVEYsQ0FKRixDQURlO0FBQUEsR0FBaEIsQ0FESCxDQUQrQjtBQUFBLENBQTFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHVuaXEgZnJvbSAnbG9kYXNoLnVuaXEnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmltcG9ydCB7UGFuZWxMYWJlbCwgQnV0dG9uLCBUb29sdGlwfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgU3dpdGNoIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N3aXRjaCc7XG5pbXBvcnQgQ29sb3JQYWxldHRlIGZyb20gJy4vY29sb3ItcGFsZXR0ZSc7XG5pbXBvcnQgQ3VzdG9tUGFsZXR0ZSBmcm9tICcuL2N1c3RvbS1wYWxldHRlJztcbmltcG9ydCB7Q09MT1JfUkFOR0VTfSBmcm9tICdjb25zdGFudHMvY29sb3ItcmFuZ2VzJztcbmltcG9ydCB7bnVtYmVyU29ydH0gZnJvbSAndXRpbHMvZGF0YS11dGlscyc7XG5pbXBvcnQge3JldmVyc2VDb2xvclJhbmdlfSBmcm9tICd1dGlscy9jb2xvci11dGlscyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1N3YXBIb3Jpem9udGFsfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucyc7XG5cbmV4cG9ydCBjb25zdCBBTExfVFlQRVMgPSB1bmlxKFtcbiAgJ2FsbCcsXG4gIC4uLkNPTE9SX1JBTkdFUy5tYXAoYyA9PiBjLnR5cGUpLmZpbHRlcihjdHlwZSA9PiBjdHlwZSksXG4gICdjdXN0b20nXG5dKTtcblxuZXhwb3J0IGNvbnN0IEFMTF9TVEVQUyA9IHVuaXEoQ09MT1JfUkFOR0VTLm1hcChkID0+IGQuY29sb3JzLmxlbmd0aCkpLnNvcnQobnVtYmVyU29ydCk7XG5cbmNvbnN0IFN0eWxlZENvbG9yQ29uZmlnID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTJweCAxMnB4IDAgMTJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZENvbG9yUmFuZ2VTZWxlY3RvciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjb2xvci1yYW5nZS1zZWxlY3Rvcidcbn0pYFxuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZFBhbGV0dGVDb25maWcgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLmNvbG9yLXBhbGV0dGVfX2NvbmZpZ19fbGFiZWwge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuICAuY29sb3ItcGFsZXR0ZV9fY29uZmlnX19zZWxlY3Qge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuICAuaXRlbS1zZWxlY3RvciAuaXRlbS1zZWxlY3Rvcl9fZHJvcGRvd24ge1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2Vjb25kYXJ5SW5wdXR9O1xuICB9XG4gIC5jb2xvci1wYWxldHRlX19jb25maWdfX2J1dHRvbiB7XG4gICAgc3ZnIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IENPTkZJR19TRVRUSU5HU19DVVNUT01fUkVWRVJTRURfQlVUVE9OX1RZUEUgPSAnY3VzdG9tLXJldmVyc2VkLWJ1dHRvbic7XG5cbmNvbnN0IENPTkZJR19TRVRUSU5HUyA9IHtcbiAgdHlwZToge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IEFMTF9UWVBFU1xuICB9LFxuICBzdGVwczoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IEFMTF9TVEVQU1xuICB9LFxuICByZXZlcnNlZDoge1xuICAgIHR5cGU6IENPTkZJR19TRVRUSU5HU19DVVNUT01fUkVWRVJTRURfQlVUVE9OX1RZUEUsXG4gICAgb3B0aW9uczogW3RydWUsIGZhbHNlXVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xvclJhbmdlU2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjb2xvclBhbGV0dGVVSTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNlbGVjdGVkQ29sb3JSYW5nZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9uU2VsZWN0Q29sb3JSYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZXRDb2xvclBhbGV0dGVVSTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAvLyBvcHRpb25hbFxuICAgIGNvbG9yUmFuZ2VzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KVxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY29sb3JSYW5nZXM6IENPTE9SX1JBTkdFUyxcbiAgICBvblNlbGVjdENvbG9yUmFuZ2U6ICgpID0+IHt9LFxuICAgIHNldENvbG9yUGFsZXR0ZVVJOiAoKSA9PiB7fVxuICB9O1xuXG4gIGNvbG9yUmFuZ2VzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5jb2xvclJhbmdlcztcbiAgY29uZmlnVHlwZVNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMuY29sb3JQYWxldHRlVUkuY29sb3JSYW5nZUNvbmZpZy50eXBlO1xuICBjb25maWdTdGVwU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5jb2xvclBhbGV0dGVVSS5jb2xvclJhbmdlQ29uZmlnLnN0ZXBzO1xuICBmaWx0ZXJlZENvbG9yUmFuZ2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgICB0aGlzLmNvbG9yUmFuZ2VzU2VsZWN0b3IsXG4gICAgdGhpcy5jb25maWdUeXBlU2VsZWN0b3IsXG4gICAgdGhpcy5jb25maWdTdGVwU2VsZWN0b3IsXG4gICAgKGNvbG9yUmFuZ2VzLCB0eXBlLCBzdGVwcykgPT4ge1xuICAgICAgcmV0dXJuIGNvbG9yUmFuZ2VzLmZpbHRlcihjb2xvclJhbmdlID0+IHtcbiAgICAgICAgY29uc3QgaXNUeXBlID0gdHlwZSA9PT0gJ2FsbCcgfHwgdHlwZSA9PT0gY29sb3JSYW5nZS50eXBlO1xuICAgICAgICBjb25zdCBpc1N0ZXAgPSBOdW1iZXIoc3RlcHMpID09PSBjb2xvclJhbmdlLmNvbG9ycy5sZW5ndGg7XG5cbiAgICAgICAgcmV0dXJuIGlzVHlwZSAmJiBpc1N0ZXA7XG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgX3VwZGF0ZUNvbmZpZyA9ICh7a2V5LCB2YWx1ZX0pID0+IHtcbiAgICB0aGlzLl9zZXRDb2xvclJhbmdlQ29uZmlnKHtcbiAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICAgIC4uLihrZXkgPT09ICd0eXBlJyAmJiB7Y3VzdG9tOiB2YWx1ZSA9PT0gJ2N1c3RvbSd9KVxuICAgIH0pO1xuICB9O1xuXG4gIF9vblNldEN1c3RvbVBhbGV0dGUgPSBjb25maWcgPT4ge1xuICAgIHRoaXMucHJvcHMuc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgY3VzdG9tUGFsZXR0ZTogY29uZmlnXG4gICAgfSk7XG4gIH07XG5cbiAgX3NldENvbG9yUmFuZ2VDb25maWcgPSBuZXdDb25maWcgPT4ge1xuICAgIHRoaXMucHJvcHMuc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgY29sb3JSYW5nZUNvbmZpZzogbmV3Q29uZmlnXG4gICAgfSk7XG4gIH07XG5cbiAgX29uQ3VzdG9tUGFsZXR0ZUNhbmNlbCA9IG5ld0NvbmZpZyA9PiB7XG4gICAgdGhpcy5wcm9wcy5zZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICBzaG93U2tldGNoZXI6IGZhbHNlLFxuICAgICAgY29sb3JSYW5nZUNvbmZpZzoge2N1c3RvbTogZmFsc2V9XG4gICAgfSk7XG4gIH07XG5cbiAgX29uVG9nZ2xlU2tldGNoZXIgPSB2YWwgPT4ge1xuICAgIHRoaXMucHJvcHMuc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgc2hvd1NrZXRjaGVyOiB2YWxcbiAgICB9KTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2N1c3RvbVBhbGV0dGUsIHNob3dTa2V0Y2hlciwgY29sb3JSYW5nZUNvbmZpZ30gPSB0aGlzLnByb3BzLmNvbG9yUGFsZXR0ZVVJO1xuXG4gICAgY29uc3QgZmlsdGVyZWRDb2xvclJhbmdlcyA9IHRoaXMuZmlsdGVyZWRDb2xvclJhbmdlKHRoaXMucHJvcHMpO1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yPlxuICAgICAgICA8U3R5bGVkQ29sb3JDb25maWcgY2xhc3NOYW1lPVwiY29sb3ItcmFuZ2Utc2VsZWN0b3JfX2NvbmZpZ1wiPlxuICAgICAgICAgIHtPYmplY3Qua2V5cyhjb2xvclJhbmdlQ29uZmlnKVxuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAga2V5ID0+XG4gICAgICAgICAgICAgICAgQm9vbGVhbihDT05GSUdfU0VUVElOR1Nba2V5XSkgJiYgKGNvbG9yUmFuZ2VDb25maWcuY3VzdG9tID8ga2V5ID09PSAndHlwZScgOiB0cnVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLm1hcChrZXkgPT4gKFxuICAgICAgICAgICAgICA8UGFsZXR0ZUNvbmZpZ1xuICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtDT05GSUdfU0VUVElOR1Nba2V5XS5sYWJlbCB8fCBrZXl9XG4gICAgICAgICAgICAgICAgY29uZmlnPXtDT05GSUdfU0VUVElOR1Nba2V5XX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17Y29sb3JSYW5nZUNvbmZpZ1trZXldfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PiB0aGlzLl91cGRhdGVDb25maWcoe2tleSwgdmFsdWV9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L1N0eWxlZENvbG9yQ29uZmlnPlxuXG4gICAgICAgIHtjb2xvclJhbmdlQ29uZmlnLmN1c3RvbSA/IChcbiAgICAgICAgICA8Q3VzdG9tUGFsZXR0ZVxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZT17Y3VzdG9tUGFsZXR0ZX1cbiAgICAgICAgICAgIHNob3dTa2V0Y2hlcj17c2hvd1NrZXRjaGVyfVxuICAgICAgICAgICAgc2VsZWN0ZWQ9e3RoaXMucHJvcHMuc2VsZWN0ZWRDb2xvclJhbmdlfVxuICAgICAgICAgICAgb25BcHBseT17dGhpcy5wcm9wcy5vblNlbGVjdENvbG9yUmFuZ2V9XG4gICAgICAgICAgICBvblRvZ2dsZVNrZXRjaGVyPXt0aGlzLl9vblRvZ2dsZVNrZXRjaGVyfVxuICAgICAgICAgICAgc2V0Q3VzdG9tUGFsZXR0ZT17dGhpcy5fb25TZXRDdXN0b21QYWxldHRlfVxuICAgICAgICAgICAgb25DYW5jZWw9e3RoaXMuX29uQ3VzdG9tUGFsZXR0ZUNhbmNlbH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxDb2xvclBhbGV0dGVHcm91cFxuICAgICAgICAgICAgY29sb3JSYW5nZXM9e2ZpbHRlcmVkQ29sb3JSYW5nZXN9XG4gICAgICAgICAgICBvblNlbGVjdD17dGhpcy5wcm9wcy5vblNlbGVjdENvbG9yUmFuZ2V9XG4gICAgICAgICAgICBzZWxlY3RlZD17dGhpcy5wcm9wcy5zZWxlY3RlZENvbG9yUmFuZ2V9XG4gICAgICAgICAgICByZXZlcnNlZD17Y29sb3JSYW5nZUNvbmZpZy5yZXZlcnNlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9TdHlsZWRDb2xvclJhbmdlU2VsZWN0b3I+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgUGFsZXR0ZUNvbmZpZyA9ICh7bGFiZWwsIHZhbHVlLCBjb25maWc6IHt0eXBlLCBvcHRpb25zfSwgb25DaGFuZ2V9KSA9PiAoXG4gIDxTdHlsZWRQYWxldHRlQ29uZmlnXG4gICAgY2xhc3NOYW1lPXtgY29sb3ItcGFsZXR0ZV9fY29uZmlnIGNvbG9yLXBhbGV0dGVfX2NvbmZpZy0tJHtsYWJlbH1gfVxuICAgIG9uQ2xpY2s9e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGFsZXR0ZV9fY29uZmlnX19sYWJlbFwiPlxuICAgICAge3R5cGUgIT09IENPTkZJR19TRVRUSU5HU19DVVNUT01fUkVWRVJTRURfQlVUVE9OX1RZUEUgJiYgKFxuICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YGNvbG9yLiR7bGFiZWx9YH0gLz5cbiAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgICB7dHlwZSA9PT0gJ3NlbGVjdCcgJiYgKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1wYWxldHRlX19jb25maWdfX3NlbGVjdFwiPlxuICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dmFsdWV9XG4gICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKX1cbiAgICB7dHlwZSA9PT0gJ3N3aXRjaCcgJiYgKFxuICAgICAgPFN3aXRjaCBjaGVja2VkPXt2YWx1ZX0gaWQ9e2Ake2xhYmVsfS10b2dnbGVgfSBvbkNoYW5nZT17KCkgPT4gb25DaGFuZ2UoIXZhbHVlKX0gc2Vjb25kYXJ5IC8+XG4gICAgKX1cbiAgICB7dHlwZSA9PT0gQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSAmJiAoXG4gICAgICA8QnV0dG9uXG4gICAgICAgIGNsYXNzTmFtZT17YGNvbG9yLXBhbGV0dGVfX2NvbmZpZ19fYnV0dG9uICR7XG4gICAgICAgICAgdmFsdWUgPyAnY29sb3ItcGFsZXR0ZV9fY29uZmlnX19idXR0b24tLWFjdGl2ZScgOiAnJ1xuICAgICAgICB9YH1cbiAgICAgICAgZGF0YS10aXBcbiAgICAgICAgZGF0YS1mb3I9e2Ake2xhYmVsfS10b29sdGlwYH1cbiAgICAgICAgey4uLighdmFsdWUgJiYge2xpbms6IHRydWV9KX1cbiAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2UoIXZhbHVlKX1cbiAgICAgID5cbiAgICAgICAgPFN3YXBIb3Jpem9udGFsIC8+XG4gICAgICAgIDxUb29sdGlwIGlkPXtgJHtsYWJlbH0tdG9vbHRpcGB9IGVmZmVjdD1cInNvbGlkXCIgcGxhY2U9XCJ0b3BcIj5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIDwvQnV0dG9uPlxuICAgICl9XG4gIDwvU3R5bGVkUGFsZXR0ZUNvbmZpZz5cbik7XG5cbmNvbnN0IFN0eWxlZENvbG9yUmFuZ2UgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY29sb3ItcGFsZXR0ZS1vdXRlcidcbn0pYFxuICBwYWRkaW5nOiAwIDhweDtcbiAgOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDb2xvclBhbGV0dGVHcm91cCA9ICh7cmV2ZXJzZWQsIG9uU2VsZWN0LCBzZWxlY3RlZCwgY29sb3JSYW5nZXN9KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGFsZXR0ZV9fZ3JvdXBcIj5cbiAgICB7Y29sb3JSYW5nZXMubWFwKChjb2xvclJhbmdlLCBpKSA9PiAoXG4gICAgICA8U3R5bGVkQ29sb3JSYW5nZVxuICAgICAgICBrZXk9e2Ake2NvbG9yUmFuZ2UubmFtZX0tJHtpfWB9XG4gICAgICAgIG9uQ2xpY2s9e2UgPT4gb25TZWxlY3QocmV2ZXJzZWQgPyByZXZlcnNlQ29sb3JSYW5nZSh0cnVlLCBjb2xvclJhbmdlKSA6IGNvbG9yUmFuZ2UsIGUpfVxuICAgICAgPlxuICAgICAgICA8Q29sb3JQYWxldHRlXG4gICAgICAgICAgY29sb3JzPXtjb2xvclJhbmdlLmNvbG9yc31cbiAgICAgICAgICBpc1JldmVyc2VkPXtyZXZlcnNlZH1cbiAgICAgICAgICBpc1NlbGVjdGVkPXtjb2xvclJhbmdlLm5hbWUgPT09IHNlbGVjdGVkLm5hbWUgJiYgcmV2ZXJzZWQgPT09IEJvb2xlYW4oc2VsZWN0ZWQucmV2ZXJzZWQpfVxuICAgICAgICAgIHJvb3RQcm9wcz17e1xuICAgICAgICAgICAgJ2RhdGEtdGlwJzogdHJ1ZSxcbiAgICAgICAgICAgICdkYXRhLWZvcic6IGBjb2xvci1yYW5nZS0ke2l9LXRvb2x0aXBgXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxUb29sdGlwIGlkPXtgY29sb3ItcmFuZ2UtJHtpfS10b29sdGlwYH0gZWZmZWN0PVwic29saWRcIiBwbGFjZT1cInRvcFwiPlxuICAgICAgICAgICAge2NvbG9yUmFuZ2UubmFtZX1cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvQ29sb3JQYWxldHRlPlxuICAgICAgPC9TdHlsZWRDb2xvclJhbmdlPlxuICAgICkpfVxuICA8L2Rpdj5cbik7XG4iXX0=
|
|
368
|
+
return ColorPaletteGroup;
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3ItcmFuZ2Utc2VsZWN0b3IuanMiXSwibmFtZXMiOlsiQUxMX1RZUEVTIiwiQ09MT1JfUkFOR0VTIiwibWFwIiwiYyIsInR5cGUiLCJmaWx0ZXIiLCJjdHlwZSIsIkFMTF9TVEVQUyIsImQiLCJjb2xvcnMiLCJsZW5ndGgiLCJzb3J0IiwibnVtYmVyU29ydCIsIlN0eWxlZENvbG9yQ29uZmlnIiwic3R5bGVkIiwiZGl2IiwiU3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yIiwiYXR0cnMiLCJjbGFzc05hbWUiLCJTdHlsZWRQYWxldHRlQ29uZmlnIiwicHJvcHMiLCJ0aGVtZSIsInNlY29uZGFyeUlucHV0IiwiQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSIsIkNPTkZJR19TRVRUSU5HUyIsIm9wdGlvbnMiLCJzdGVwcyIsInJldmVyc2VkIiwiQ29sb3JSYW5nZVNlbGVjdEZhY3RvcnkiLCJkZXBzIiwiQ29sb3JQYWxldHRlR3JvdXBGYWN0b3J5IiwiUGFsZXR0ZUNvbmZpZ0ZhY3RvcnkiLCJDb2xvclBhbGV0dGVHcm91cCIsIlBhbGV0dGVDb25maWciLCJDb2xvclJhbmdlU2VsZWN0IiwiY29sb3JSYW5nZXMiLCJjb2xvclBhbGV0dGVVSSIsImNvbG9yUmFuZ2VDb25maWciLCJjb2xvclJhbmdlc1NlbGVjdG9yIiwiY29uZmlnVHlwZVNlbGVjdG9yIiwiY29uZmlnU3RlcFNlbGVjdG9yIiwiY29sb3JSYW5nZSIsImlzVHlwZSIsImlzU3RlcCIsIk51bWJlciIsImtleSIsInZhbHVlIiwiX3NldENvbG9yUmFuZ2VDb25maWciLCJjdXN0b20iLCJjb25maWciLCJzZXRDb2xvclBhbGV0dGVVSSIsImN1c3RvbVBhbGV0dGUiLCJuZXdDb25maWciLCJzaG93U2tldGNoZXIiLCJ2YWwiLCJmaWx0ZXJlZENvbG9yUmFuZ2VzIiwiZmlsdGVyZWRDb2xvclJhbmdlIiwiT2JqZWN0Iiwia2V5cyIsIkJvb2xlYW4iLCJsYWJlbCIsIl91cGRhdGVDb25maWciLCJzZWxlY3RlZENvbG9yUmFuZ2UiLCJvblNlbGVjdENvbG9yUmFuZ2UiLCJfb25Ub2dnbGVTa2V0Y2hlciIsIl9vblNldEN1c3RvbVBhbGV0dGUiLCJfb25DdXN0b21QYWxldHRlQ2FuY2VsIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJhcnJheU9mIiwiYW55Iiwib25DaGFuZ2UiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwibGluayIsIlN0eWxlZENvbG9yUmFuZ2UiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsIm9uU2VsZWN0Iiwic2VsZWN0ZWQiLCJ0aXRsZSIsImkiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxTQUFTLEdBQUcseUJBQ3ZCLEtBRHVCLDZDQUVwQkMsMEJBQWFDLEdBQWIsQ0FBaUIsVUFBQUMsQ0FBQztBQUFBLFNBQUlBLENBQUMsQ0FBQ0MsSUFBTjtBQUFBLENBQWxCLEVBQThCQyxNQUE5QixDQUFxQyxVQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSjtBQUFBLENBQTFDLENBRm9CLElBR3ZCLFFBSHVCLEdBQWxCOztBQU1BLElBQU1DLFNBQVMsR0FBRyx3QkFBS04sMEJBQWFDLEdBQWIsQ0FBaUIsVUFBQU0sQ0FBQztBQUFBLFNBQUlBLENBQUMsQ0FBQ0MsTUFBRixDQUFTQyxNQUFiO0FBQUEsQ0FBbEIsQ0FBTCxFQUE2Q0MsSUFBN0MsQ0FBa0RDLHFCQUFsRCxDQUFsQjs7O0FBRVAsSUFBTUMsaUJBQWlCLEdBQUdDLDZCQUFPQyxHQUFWLHNIQUF2Qjs7QUFJQSxJ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QUFBLHFCQUNSSyxRQUFRLENBQUNyRCxRQUFRLEdBQUcsbUNBQWtCLElBQWxCLEVBQXdCYyxVQUF4QixDQUFILEdBQXlDQSxVQUFsRCxFQUE4RGtDLENBQTlELENBREE7QUFBQTtBQUZaLDBCQU1FLGdDQUFDLHdCQUFEO0FBQ0UsWUFBQSxNQUFNLEVBQUVsQyxVQUFVLENBQUNoQyxNQURyQjtBQUVFLFlBQUEsVUFBVSxFQUFFa0IsUUFGZDtBQUdFLFlBQUEsVUFBVSxFQUNSYyxVQUFVLENBQUMyQyxJQUFYLEtBQW9CSCxRQUFRLENBQUNHLElBQTdCLElBQXFDekQsUUFBUSxLQUFLZ0MsT0FBTyxDQUFDc0IsUUFBUSxDQUFDdEQsUUFBVixDQUo3RDtBQU1FLFlBQUEsU0FBUyxFQUFFO0FBQ1QsMEJBQVksSUFESDtBQUVULGdEQUEyQndELENBQTNCO0FBRlM7QUFOYiwwQkFXRSxnQ0FBQywwQkFBRDtBQUFTLFlBQUEsRUFBRSx3QkFBaUJBLENBQWpCLGFBQVg7QUFBeUMsWUFBQSxNQUFNLEVBQUMsT0FBaEQ7QUFBd0QsWUFBQSxLQUFLLEVBQUM7QUFBOUQsYUFDRzFDLFVBQVUsQ0FBQzJDLElBRGQsQ0FYRixDQU5GLENBRGU7QUFBQSxTQUFoQixDQUZILENBREY7QUE2QkQ7QUFqQ3NDO0FBQUE7QUFBQSxJQUNUakIsZ0JBRFM7O0FBbUN6QyxTQUFPbkMsaUJBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB1bmlxIGZyb20gJ2xvZGFzaC51bmlxJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuXG5pbXBvcnQgSXRlbVNlbGVjdG9yIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge1BhbmVsTGFiZWwsIEJ1dHRvbiwgVG9vbHRpcH0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFN3aXRjaCBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zd2l0Y2gnO1xuaW1wb3J0IENvbG9yUGFsZXR0ZSBmcm9tICcuL2NvbG9yLXBhbGV0dGUnO1xuaW1wb3J0IEN1c3RvbVBhbGV0dGUgZnJvbSAnLi9jdXN0b20tcGFsZXR0ZSc7XG5pbXBvcnQge0NPTE9SX1JBTkdFU30gZnJvbSAnY29uc3RhbnRzL2NvbG9yLXJhbmdlcyc7XG5pbXBvcnQge251bWJlclNvcnR9IGZyb20gJ3V0aWxzL2RhdGEtdXRpbHMnO1xuaW1wb3J0IHtyZXZlcnNlQ29sb3JSYW5nZX0gZnJvbSAndXRpbHMvY29sb3ItdXRpbHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdsb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtTd2FwSG9yaXpvbnRhbH0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuXG5leHBvcnQgY29uc3QgQUxMX1RZUEVTID0gdW5pcShbXG4gICdhbGwnLFxuICAuLi5DT0xPUl9SQU5HRVMubWFwKGMgPT4gYy50eXBlKS5maWx0ZXIoY3R5cGUgPT4gY3R5cGUpLFxuICAnY3VzdG9tJ1xuXSk7XG5cbmV4cG9ydCBjb25zdCBBTExfU1RFUFMgPSB1bmlxKENPTE9SX1JBTkdFUy5tYXAoZCA9PiBkLmNvbG9ycy5sZW5ndGgpKS5zb3J0KG51bWJlclNvcnQpO1xuXG5jb25zdCBTdHlsZWRDb2xvckNvbmZpZyA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDEycHggMTJweCAwIDEycHg7XG5gO1xuXG5jb25zdCBTdHlsZWRDb2xvclJhbmdlU2VsZWN0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY29sb3ItcmFuZ2Utc2VsZWN0b3InXG59KWBcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBTdHlsZWRQYWxldHRlQ29uZmlnID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC5jb2xvci1wYWxldHRlX19jb25maWdfX2xhYmVsIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cbiAgLmNvbG9yLXBhbGV0dGVfX2NvbmZpZ19fc2VsZWN0IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cbiAgLml0ZW0tc2VsZWN0b3IgLml0ZW0tc2VsZWN0b3JfX2Ryb3Bkb3duIHtcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNlY29uZGFyeUlucHV0fTtcbiAgfVxuICAuY29sb3ItcGFsZXR0ZV9fY29uZmlnX19idXR0b24ge1xuICAgIHN2ZyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBDT05GSUdfU0VUVElOR1NfQ1VTVE9NX1JFVkVSU0VEX0JVVFRPTl9UWVBFID0gJ2N1c3RvbS1yZXZlcnNlZC1idXR0b24nO1xuXG5jb25zdCBDT05GSUdfU0VUVElOR1MgPSB7XG4gIHR5cGU6IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBvcHRpb25zOiBBTExfVFlQRVNcbiAgfSxcbiAgc3RlcHM6IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBvcHRpb25zOiBBTExfU1RFUFNcbiAgfSxcbiAgcmV2ZXJzZWQ6IHtcbiAgICB0eXBlOiBDT05GSUdfU0VUVElOR1NfQ1VTVE9NX1JFVkVSU0VEX0JVVFRPTl9UWVBFLFxuICAgIG9wdGlvbnM6IFt0cnVlLCBmYWxzZV1cbiAgfVxufTtcblxuQ29sb3JSYW5nZVNlbGVjdEZhY3RvcnkuZGVwcyA9IFtDb2xvclBhbGV0dGVHcm91cEZhY3RvcnksIFBhbGV0dGVDb25maWdGYWN0b3J5XTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvbG9yUmFuZ2VTZWxlY3RGYWN0b3J5KENvbG9yUGFsZXR0ZUdyb3VwLCBQYWxldHRlQ29uZmlnKSB7XG4gIGNsYXNzIENvbG9yUmFuZ2VTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICBjb2xvclBhbGV0dGVVSTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgc2VsZWN0ZWRDb2xvclJhbmdlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBvblNlbGVjdENvbG9yUmFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBzZXRDb2xvclBhbGV0dGVVSTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIC8vIG9wdGlvbmFsXG4gICAgICBjb2xvclJhbmdlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSlcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIGNvbG9yUmFuZ2VzOiBDT0xPUl9SQU5HRVMsXG4gICAgICBvblNlbGVjdENvbG9yUmFuZ2U6ICgpID0+IHt9LFxuICAgICAgc2V0Q29sb3JQYWxldHRlVUk6ICgpID0+IHt9XG4gICAgfTtcblxuICAgIGNvbG9yUmFuZ2VzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5jb2xvclJhbmdlcztcbiAgICBjb25maWdUeXBlU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5jb2xvclBhbGV0dGVVSS5jb2xvclJhbmdlQ29uZmlnLnR5cGU7XG4gICAgY29uZmlnU3RlcFNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMuY29sb3JQYWxldHRlVUkuY29sb3JSYW5nZUNvbmZpZy5zdGVwcztcbiAgICBmaWx0ZXJlZENvbG9yUmFuZ2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMuY29sb3JSYW5nZXNTZWxlY3RvcixcbiAgICAgIHRoaXMuY29uZmlnVHlwZVNlbGVjdG9yLFxuICAgICAgdGhpcy5jb25maWdTdGVwU2VsZWN0b3IsXG4gICAgICAoY29sb3JSYW5nZXMsIHR5cGUsIHN0ZXBzKSA9PiB7XG4gICAgICAgIHJldHVybiBjb2xvclJhbmdlcy5maWx0ZXIoY29sb3JSYW5nZSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNUeXBlID0gdHlwZSA9PT0gJ2FsbCcgfHwgdHlwZSA9PT0gY29sb3JSYW5nZS50eXBlO1xuICAgICAgICAgIGNvbnN0IGlzU3RlcCA9IE51bWJlcihzdGVwcykgPT09IGNvbG9yUmFuZ2UuY29sb3JzLmxlbmd0aDtcblxuICAgICAgICAgIHJldHVybiBpc1R5cGUgJiYgaXNTdGVwO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgX3VwZGF0ZUNvbmZpZyA9ICh7a2V5LCB2YWx1ZX0pID0+IHtcbiAgICAgIHRoaXMuX3NldENvbG9yUmFuZ2VDb25maWcoe1xuICAgICAgICBba2V5XTogdmFsdWUsXG4gICAgICAgIC4uLihrZXkgPT09ICd0eXBlJyAmJiB7Y3VzdG9tOiB2YWx1ZSA9PT0gJ2N1c3RvbSd9KVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9vblNldEN1c3RvbVBhbGV0dGUgPSBjb25maWcgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5zZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgIGN1c3RvbVBhbGV0dGU6IGNvbmZpZ1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9zZXRDb2xvclJhbmdlQ29uZmlnID0gbmV3Q29uZmlnID0+IHtcbiAgICAgIHRoaXMucHJvcHMuc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiBuZXdDb25maWdcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25DdXN0b21QYWxldHRlQ2FuY2VsID0gbmV3Q29uZmlnID0+IHtcbiAgICAgIHRoaXMucHJvcHMuc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICBzaG93U2tldGNoZXI6IGZhbHNlLFxuICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7Y3VzdG9tOiBmYWxzZX1cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25Ub2dnbGVTa2V0Y2hlciA9IHZhbCA9PiB7XG4gICAgICB0aGlzLnByb3BzLnNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgc2hvd1NrZXRjaGVyOiB2YWxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7Y3VzdG9tUGFsZXR0ZSwgc2hvd1NrZXRjaGVyLCBjb2xvclJhbmdlQ29uZmlnfSA9IHRoaXMucHJvcHMuY29sb3JQYWxldHRlVUk7XG4gICAgICBjb25zdCBmaWx0ZXJlZENvbG9yUmFuZ2VzID0gdGhpcy5maWx0ZXJlZENvbG9yUmFuZ2UodGhpcy5wcm9wcyk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRDb2xvclJhbmdlU2VsZWN0b3I+XG4gICAgICAgICAgPFN0eWxlZENvbG9yQ29uZmlnIGNsYXNzTmFtZT1cImNvbG9yLXJhbmdlLXNlbGVjdG9yX19jb25maWdcIj5cbiAgICAgICAgICAgIHtPYmplY3Qua2V5cyhjb2xvclJhbmdlQ29uZmlnKVxuICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIGtleSA9PlxuICAgICAgICAgICAgICAgICAgQm9vbGVhbihDT05GSUdfU0VUVElOR1Nba2V5XSkgJiYgKGNvbG9yUmFuZ2VDb25maWcuY3VzdG9tID8ga2V5ID09PSAndHlwZScgOiB0cnVlKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPFBhbGV0dGVDb25maWdcbiAgICAgICAgICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPXtDT05GSUdfU0VUVElOR1Nba2V5XS5sYWJlbCB8fCBrZXl9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Q09ORklHX1NFVFRJTkdTW2tleV19XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb2xvclJhbmdlQ29uZmlnW2tleV19XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PiB0aGlzLl91cGRhdGVDb25maWcoe2tleSwgdmFsdWV9KX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TdHlsZWRDb2xvckNvbmZpZz5cblxuICAgICAgICAgIHtjb2xvclJhbmdlQ29uZmlnLmN1c3RvbSA/IChcbiAgICAgICAgICAgIDxDdXN0b21QYWxldHRlXG4gICAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU9e2N1c3RvbVBhbGV0dGV9XG4gICAgICAgICAgICAgIHNob3dTa2V0Y2hlcj17c2hvd1NrZXRjaGVyfVxuICAgICAgICAgICAgICBzZWxlY3RlZD17dGhpcy5wcm9wcy5zZWxlY3RlZENvbG9yUmFuZ2V9XG4gICAgICAgICAgICAgIG9uQXBwbHk9e3RoaXMucHJvcHMub25TZWxlY3RDb2xvclJhbmdlfVxuICAgICAgICAgICAgICBvblRvZ2dsZVNrZXRjaGVyPXt0aGlzLl9vblRvZ2dsZVNrZXRjaGVyfVxuICAgICAgICAgICAgICBzZXRDdXN0b21QYWxldHRlPXt0aGlzLl9vblNldEN1c3RvbVBhbGV0dGV9XG4gICAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLl9vbkN1c3RvbVBhbGV0dGVDYW5jZWx9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8Q29sb3JQYWxldHRlR3JvdXBcbiAgICAgICAgICAgICAgY29sb3JSYW5nZXM9e2ZpbHRlcmVkQ29sb3JSYW5nZXN9XG4gICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnByb3BzLm9uU2VsZWN0Q29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3RoaXMucHJvcHMuc2VsZWN0ZWRDb2xvclJhbmdlfVxuICAgICAgICAgICAgICByZXZlcnNlZD17Y29sb3JSYW5nZUNvbmZpZy5yZXZlcnNlZH1cbiAgICAgICAgICAgICAgY29uZmlnVHlwZVNlbGVjdG9yPXsoKSA9PiB0aGlzLnByb3BzLmNvbG9yUGFsZXR0ZVVJLmNvbG9yUmFuZ2VDb25maWcudHlwZX1cbiAgICAgICAgICAgICAgY29uZmlnU3RlcFNlbGVjdG9yPXsoKSA9PiB0aGlzLnByb3BzLmNvbG9yUGFsZXR0ZVVJLmNvbG9yUmFuZ2VDb25maWcuc3RlcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gQ29sb3JSYW5nZVNlbGVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFBhbGV0dGVDb25maWdGYWN0b3J5KCkge1xuICBjbGFzcyBQYWxldHRlQ29uZmlnIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGxhYmVsLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29uZmlnOiB7dHlwZSwgb3B0aW9uc30sXG4gICAgICAgIG9uQ2hhbmdlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZFBhbGV0dGVDb25maWdcbiAgICAgICAgICBjbGFzc05hbWU9e2Bjb2xvci1wYWxldHRlX19jb25maWcgY29sb3ItcGFsZXR0ZV9fY29uZmlnLS0ke2xhYmVsfWB9XG4gICAgICAgICAgb25DbGljaz17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1wYWxldHRlX19jb25maWdfX2xhYmVsXCI+XG4gICAgICAgICAgICB7dHlwZSAhPT0gQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSAmJiAoXG4gICAgICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtgY29sb3IuJHtsYWJlbH1gfSAvPlxuICAgICAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHt0eXBlID09PSAnc2VsZWN0JyAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbG9yLXBhbGV0dGVfX2NvbmZpZ19fc2VsZWN0XCI+XG4gICAgICAgICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHt0eXBlID09PSAnc3dpdGNoJyAmJiAoXG4gICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e3ZhbHVlfVxuICAgICAgICAgICAgICBpZD17YCR7bGFiZWx9LXRvZ2dsZWB9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiBvbkNoYW5nZSghdmFsdWUpfVxuICAgICAgICAgICAgICBzZWNvbmRhcnlcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7dHlwZSA9PT0gQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSAmJiAoXG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YGNvbG9yLXBhbGV0dGVfX2NvbmZpZ19fYnV0dG9uICR7XG4gICAgICAgICAgICAgICAgdmFsdWUgPyAnY29sb3ItcGFsZXR0ZV9fY29uZmlnX19idXR0b24tLWFjdGl2ZScgOiAnJ1xuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgZGF0YS10aXBcbiAgICAgICAgICAgICAgZGF0YS1mb3I9e2Ake2xhYmVsfS10b29sdGlwYH1cbiAgICAgICAgICAgICAgey4uLighdmFsdWUgJiYge2xpbms6IHRydWV9KX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2UoIXZhbHVlKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN3YXBIb3Jpem9udGFsIC8+XG4gICAgICAgICAgICAgIDxUb29sdGlwIGlkPXtgJHtsYWJlbH0tdG9vbHRpcGB9IGVmZmVjdD1cInNvbGlkXCIgcGxhY2U9XCJ0b3BcIj5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3R5bGVkUGFsZXR0ZUNvbmZpZz5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBQYWxldHRlQ29uZmlnO1xufVxuXG5jb25zdCBTdHlsZWRDb2xvclJhbmdlID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2NvbG9yLXBhbGV0dGUtb3V0ZXInXG59KWBcbiAgcGFkZGluZzogMCA4cHg7XG4gIDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5gO1xuXG5leHBvcnQgZnVuY3Rpb24gQ29sb3JQYWxldHRlR3JvdXBGYWN0b3J5KCkge1xuICBjbGFzcyBDb2xvclBhbGV0dGVHcm91cCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge3JldmVyc2VkLCBvblNlbGVjdCwgc2VsZWN0ZWQsIGNvbG9yUmFuZ2VzLCB0aXRsZX0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1wYWxldHRlX19ncm91cFwiPlxuICAgICAgICAgIHt0aXRsZSAmJiB0aXRsZX1cbiAgICAgICAgICB7Y29sb3JSYW5nZXMubWFwKChjb2xvclJhbmdlLCBpKSA9PiAoXG4gICAgICAgICAgICA8U3R5bGVkQ29sb3JSYW5nZVxuICAgICAgICAgICAgICBrZXk9e2Ake2NvbG9yUmFuZ2UubmFtZX0tJHtpfWB9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT5cbiAgICAgICAgICAgICAgICBvblNlbGVjdChyZXZlcnNlZCA/IHJldmVyc2VDb2xvclJhbmdlKHRydWUsIGNvbG9yUmFuZ2UpIDogY29sb3JSYW5nZSwgZSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Q29sb3JQYWxldHRlXG4gICAgICAgICAgICAgICAgY29sb3JzPXtjb2xvclJhbmdlLmNvbG9yc31cbiAgICAgICAgICAgICAgICBpc1JldmVyc2VkPXtyZXZlcnNlZH1cbiAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtcbiAgICAgICAgICAgICAgICAgIGNvbG9yUmFuZ2UubmFtZSA9PT0gc2VsZWN0ZWQubmFtZSAmJiByZXZlcnNlZCA9PT0gQm9vbGVhbihzZWxlY3RlZC5yZXZlcnNlZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm9vdFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAnZGF0YS10aXAnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgJ2RhdGEtZm9yJzogYGNvbG9yLXJhbmdlLSR7aX0tdG9vbHRpcGBcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgaWQ9e2Bjb2xvci1yYW5nZS0ke2l9LXRvb2x0aXBgfSBlZmZlY3Q9XCJzb2xpZFwiIHBsYWNlPVwidG9wXCI+XG4gICAgICAgICAgICAgICAgICB7Y29sb3JSYW5nZS5uYW1lfVxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgPC9Db2xvclBhbGV0dGU+XG4gICAgICAgICAgICA8L1N0eWxlZENvbG9yUmFuZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIENvbG9yUGFsZXR0ZUdyb3VwO1xufVxuIl19
|