@pie-element/charting 8.7.2-beta.1 → 8.7.2-beta.2
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/configure/lib/__tests__/configure.test.js +268 -0
- package/configure/lib/__tests__/correctResponse.test.js +151 -0
- package/configure/lib/charting-config.js +1 -1
- package/configure/lib/configure.js +1 -1
- package/configure/lib/correct-response.js +1 -1
- package/configure/lib/defaults.js +1 -1
- package/configure/lib/index.js +1 -1
- package/configure/lib/utils.js +1 -1
- package/controller/lib/__tests__/index.test.js +1807 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +1 -1
- package/controller/package.json +1 -1
- package/lib/__tests__/main.test.js +54 -0
- package/lib/index.js +1 -1
- package/lib/main.js +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
+
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
|
|
11
|
+
var _enzyme = require("enzyme");
|
|
12
|
+
|
|
13
|
+
var _configure = require("../configure");
|
|
14
|
+
|
|
15
|
+
var _chartingConfig = require("../charting-config");
|
|
16
|
+
|
|
17
|
+
var _correctResponse = require("../correct-response");
|
|
18
|
+
|
|
19
|
+
var _defaults = _interopRequireDefault(require("../defaults"));
|
|
20
|
+
|
|
21
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
|
+
|
|
23
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
|
+
|
|
25
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
26
|
+
|
|
27
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
28
|
+
|
|
29
|
+
jest.mock('@pie-lib/config-ui', function () {
|
|
30
|
+
return {
|
|
31
|
+
InputContainer: function InputContainer(props) {
|
|
32
|
+
return /*#__PURE__*/React.createElement("div", null, props.children);
|
|
33
|
+
},
|
|
34
|
+
InputCheckbox: function InputCheckbox(props) {
|
|
35
|
+
return /*#__PURE__*/React.createElement("div", null, props.children);
|
|
36
|
+
},
|
|
37
|
+
FeedbackConfig: function FeedbackConfig(props) {
|
|
38
|
+
return /*#__PURE__*/React.createElement("div", null, props.children);
|
|
39
|
+
},
|
|
40
|
+
layout: {
|
|
41
|
+
ConfigLayout: function ConfigLayout(props) {
|
|
42
|
+
return /*#__PURE__*/React.createElement("div", null, props.children);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
settings: {
|
|
46
|
+
Panel: function Panel(props) {
|
|
47
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
onChange: props.onChange
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
toggle: jest.fn(),
|
|
52
|
+
radio: jest.fn(),
|
|
53
|
+
numberFields: jest.fn()
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
jest.mock('@pie-lib/charting', function () {
|
|
58
|
+
return {
|
|
59
|
+
Chart: function Chart() {
|
|
60
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
61
|
+
},
|
|
62
|
+
chartTypes: {
|
|
63
|
+
Bar: function Bar() {
|
|
64
|
+
return {
|
|
65
|
+
Component: function Component() {
|
|
66
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
67
|
+
},
|
|
68
|
+
type: 'bar'
|
|
69
|
+
};
|
|
70
|
+
},
|
|
71
|
+
Histogram: function Histogram() {
|
|
72
|
+
return {
|
|
73
|
+
Component: function Component() {
|
|
74
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
75
|
+
},
|
|
76
|
+
type: 'histogram'
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
LineDot: function LineDot() {
|
|
80
|
+
return {
|
|
81
|
+
Component: function Component() {
|
|
82
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
83
|
+
},
|
|
84
|
+
type: 'lineDot'
|
|
85
|
+
};
|
|
86
|
+
},
|
|
87
|
+
LineCross: function LineCross() {
|
|
88
|
+
return {
|
|
89
|
+
Component: function Component() {
|
|
90
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
91
|
+
},
|
|
92
|
+
type: 'lineCross'
|
|
93
|
+
};
|
|
94
|
+
},
|
|
95
|
+
DotPlot: function DotPlot() {
|
|
96
|
+
return {
|
|
97
|
+
Component: function Component() {
|
|
98
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
99
|
+
},
|
|
100
|
+
type: 'dotPlot'
|
|
101
|
+
};
|
|
102
|
+
},
|
|
103
|
+
LinePlot: function LinePlot() {
|
|
104
|
+
return {
|
|
105
|
+
Component: function Component() {
|
|
106
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
107
|
+
},
|
|
108
|
+
type: 'linePlot'
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
describe('Configure', function () {
|
|
115
|
+
var wrapper;
|
|
116
|
+
beforeEach(function () {
|
|
117
|
+
wrapper = function wrapper(props) {
|
|
118
|
+
var configureProps = _objectSpread(_objectSpread({}, _defaults["default"]), props);
|
|
119
|
+
|
|
120
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_configure.Configure, configureProps));
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
describe('renders', function () {
|
|
124
|
+
it('snapshot', function () {
|
|
125
|
+
expect(wrapper()).toMatchSnapshot();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe('logic', function () {
|
|
129
|
+
it('updates rationale', function () {
|
|
130
|
+
var onModelChanged = jest.fn();
|
|
131
|
+
var component = wrapper({
|
|
132
|
+
onModelChanged: onModelChanged
|
|
133
|
+
});
|
|
134
|
+
component.instance().onRationaleChange('New Rationale');
|
|
135
|
+
expect(onModelChanged).toBeCalledWith(expect.objectContaining(_objectSpread(_objectSpread({}, _defaults["default"].model), {}, {
|
|
136
|
+
rationale: 'New Rationale'
|
|
137
|
+
})));
|
|
138
|
+
});
|
|
139
|
+
it('updates prompt', function () {
|
|
140
|
+
var onModelChanged = jest.fn();
|
|
141
|
+
var component = wrapper({
|
|
142
|
+
onModelChanged: onModelChanged
|
|
143
|
+
});
|
|
144
|
+
component.instance().onPromptChange('New Prompt');
|
|
145
|
+
expect(onModelChanged).toBeCalledWith(expect.objectContaining(_objectSpread(_objectSpread({}, _defaults["default"].model), {}, {
|
|
146
|
+
prompt: 'New Prompt'
|
|
147
|
+
})));
|
|
148
|
+
});
|
|
149
|
+
it('updates teacher instructions', function () {
|
|
150
|
+
var onModelChanged = jest.fn();
|
|
151
|
+
var component = wrapper({
|
|
152
|
+
onModelChanged: onModelChanged
|
|
153
|
+
});
|
|
154
|
+
component.instance().onTeacherInstructionsChange('New Teacher Instructions');
|
|
155
|
+
expect(onModelChanged).toBeCalledWith(expect.objectContaining(_objectSpread(_objectSpread({}, _defaults["default"].model), {}, {
|
|
156
|
+
teacherInstructions: 'New Teacher Instructions'
|
|
157
|
+
})));
|
|
158
|
+
});
|
|
159
|
+
it('updates chart type', function () {
|
|
160
|
+
var onModelChanged = jest.fn();
|
|
161
|
+
var component = wrapper({
|
|
162
|
+
onModelChanged: onModelChanged
|
|
163
|
+
});
|
|
164
|
+
component.instance().onChartTypeChange('histogram');
|
|
165
|
+
expect(onModelChanged).toBeCalledWith(expect.objectContaining(_objectSpread(_objectSpread({}, _defaults["default"].model), {}, {
|
|
166
|
+
chartType: 'histogram'
|
|
167
|
+
})));
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('CorrectResponse', function () {
|
|
172
|
+
var wrapper;
|
|
173
|
+
var props;
|
|
174
|
+
var onChange = jest.fn();
|
|
175
|
+
beforeEach(function () {
|
|
176
|
+
props = {
|
|
177
|
+
classes: {},
|
|
178
|
+
model: _defaults["default"].model,
|
|
179
|
+
onChange: onChange,
|
|
180
|
+
tools: []
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
wrapper = function wrapper(newProps) {
|
|
184
|
+
var configureProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
185
|
+
newProps: newProps
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_correctResponse.CorrectResponse, configureProps));
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
describe('renders', function () {
|
|
192
|
+
it('snapshot', function () {
|
|
193
|
+
expect(wrapper()).toMatchSnapshot();
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
describe('logic', function () {
|
|
197
|
+
var w;
|
|
198
|
+
beforeEach(function () {
|
|
199
|
+
w = wrapper();
|
|
200
|
+
});
|
|
201
|
+
it('changes correctAnswer data', function () {
|
|
202
|
+
w.instance().changeData([]);
|
|
203
|
+
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
204
|
+
correctAnswer: expect.objectContaining({
|
|
205
|
+
data: []
|
|
206
|
+
})
|
|
207
|
+
}));
|
|
208
|
+
var wrap = wrapper(_objectSpread(_objectSpread({}, _defaults["default"]), {}, {
|
|
209
|
+
correctAnswer: {
|
|
210
|
+
data: []
|
|
211
|
+
}
|
|
212
|
+
}));
|
|
213
|
+
wrap.instance().changeData([{
|
|
214
|
+
value: 2,
|
|
215
|
+
label: 'A'
|
|
216
|
+
}]);
|
|
217
|
+
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
218
|
+
correctAnswer: expect.objectContaining({
|
|
219
|
+
data: [{
|
|
220
|
+
value: 2,
|
|
221
|
+
label: 'A'
|
|
222
|
+
}]
|
|
223
|
+
})
|
|
224
|
+
}));
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
describe('ChartingConfig', function () {
|
|
229
|
+
var wrapper;
|
|
230
|
+
var props;
|
|
231
|
+
var onChange = jest.fn();
|
|
232
|
+
beforeEach(function () {
|
|
233
|
+
props = {
|
|
234
|
+
classes: {},
|
|
235
|
+
model: _defaults["default"].model,
|
|
236
|
+
onChange: onChange,
|
|
237
|
+
tools: []
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
wrapper = function wrapper(newProps) {
|
|
241
|
+
var configureProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
242
|
+
newProps: newProps
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_chartingConfig.ChartingConfig, configureProps));
|
|
246
|
+
};
|
|
247
|
+
});
|
|
248
|
+
describe('renders', function () {
|
|
249
|
+
it('snapshot', function () {
|
|
250
|
+
expect(wrapper()).toMatchSnapshot();
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
describe('logic', function () {
|
|
254
|
+
it('changeData calls onChange', function () {
|
|
255
|
+
wrapper().instance().changeData([{
|
|
256
|
+
value: 2,
|
|
257
|
+
label: 'A'
|
|
258
|
+
}]);
|
|
259
|
+
expect(onChange).toBeCalledWith(expect.objectContaining({
|
|
260
|
+
data: [{
|
|
261
|
+
value: 2,
|
|
262
|
+
label: 'A'
|
|
263
|
+
}]
|
|
264
|
+
}));
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY29uZmlndXJlLnRlc3QuanMiXSwibmFtZXMiOlsiamVzdCIsIm1vY2siLCJJbnB1dENvbnRhaW5lciIsInByb3BzIiwiY2hpbGRyZW4iLCJJbnB1dENoZWNrYm94IiwiRmVlZGJhY2tDb25maWciLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJzZXR0aW5ncyIsIlBhbmVsIiwib25DaGFuZ2UiLCJ0b2dnbGUiLCJmbiIsInJhZGlvIiwibnVtYmVyRmllbGRzIiwiQ2hhcnQiLCJjaGFydFR5cGVzIiwiQmFyIiwiQ29tcG9uZW50IiwidHlwZSIsIkhpc3RvZ3JhbSIsIkxpbmVEb3QiLCJMaW5lQ3Jvc3MiLCJEb3RQbG90IiwiTGluZVBsb3QiLCJkZXNjcmliZSIsIndyYXBwZXIiLCJiZWZvcmVFYWNoIiwiY29uZmlndXJlUHJvcHMiLCJkZWZhdWx0VmFsdWVzIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJvbk1vZGVsQ2hhbmdlZCIsImNvbXBvbmVudCIsImluc3RhbmNlIiwib25SYXRpb25hbGVDaGFuZ2UiLCJ0b0JlQ2FsbGVkV2l0aCIsIm9iamVjdENvbnRhaW5pbmciLCJtb2RlbCIsInJhdGlvbmFsZSIsIm9uUHJvbXB0Q2hhbmdlIiwicHJvbXB0Iiwib25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlIiwidGVhY2hlckluc3RydWN0aW9ucyIsIm9uQ2hhcnRUeXBlQ2hhbmdlIiwiY2hhcnRUeXBlIiwiY2xhc3NlcyIsInRvb2xzIiwibmV3UHJvcHMiLCJ3IiwiY2hhbmdlRGF0YSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiY29ycmVjdEFuc3dlciIsImRhdGEiLCJ3cmFwIiwidmFsdWUiLCJsYWJlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxvQkFBVixFQUFnQztBQUFBLFNB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O0FBQ0QsS0FKRDtBQUtELEdBYlMsQ0FBVjtBQWVBSCxFQUFBQSxRQUFRLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDeEJLLElBQUFBLEVBQUUsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUNuQkMsTUFBQUEsTUFBTSxDQUFDTCxPQUFPLEVBQVIsQ0FBTixDQUFrQk0sZUFBbEI7QUFDRCxLQUZDLENBQUY7QUFHRCxHQUpPLENBQVI7QUFNQVAsRUFBQUEsUUFBUSxDQUFDLE9BQUQsRUFBVSxZQUFNO0FBQ3RCSyxJQUFBQSxFQUFFLENBQUMsMkJBQUQsRUFBOEIsWUFBTTtBQUNwQ0osTUFBQUEsT0FBTyxHQUNKUyxRQURILEdBRUdnQixVQUZILENBRWMsQ0FBQztBQUFFSyxRQUFBQSxLQUFLLEVBQUUsQ0FBVDtBQUFZQyxRQUFBQSxLQUFLLEVBQUU7QUFBbkIsT0FBRCxDQUZkO0FBSUExQixNQUFBQSxNQUFNLENBQUNyQixRQUFELENBQU4sQ0FBaUIyQixjQUFqQixDQUNFTixNQUFNLENBQUNPLGdCQUFQLENBQXdCO0FBQ3RCZ0IsUUFBQUEsSUFBSSxFQUFFLENBQUM7QUFBRUUsVUFBQUEsS0FBSyxFQUFFLENBQVQ7QUFBWUMsVUFBQUEsS0FBSyxFQUFFO0FBQW5CLFNBQUQ7QUFEZ0IsT0FBeEIsQ0FERjtBQUtELEtBVkMsQ0FBRjtBQVdELEdBWk8sQ0FBUjtBQWFELENBdkNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcblxuaW1wb3J0IHsgQ29uZmlndXJlIH0gZnJvbSAnLi4vY29uZmlndXJlJztcbmltcG9ydCB7IENoYXJ0aW5nQ29uZmlnIH0gZnJvbSAnLi4vY2hhcnRpbmctY29uZmlnJztcbmltcG9ydCB7IENvcnJlY3RSZXNwb25zZSB9IGZyb20gJy4uL2NvcnJlY3QtcmVzcG9uc2UnO1xuaW1wb3J0IGRlZmF1bHRWYWx1ZXMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvbmZpZy11aScsICgpID0+ICh7XG4gIElucHV0Q29udGFpbmVyOiAocHJvcHMpID0+IDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgSW5wdXRDaGVja2JveDogKHByb3BzKSA9PiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIEZlZWRiYWNrQ29uZmlnOiAocHJvcHMpID0+IDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgbGF5b3V0OiB7XG4gICAgQ29uZmlnTGF5b3V0OiAocHJvcHMpID0+IDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgfSxcbiAgc2V0dGluZ3M6IHtcbiAgICBQYW5lbDogKHByb3BzKSA9PiA8ZGl2IG9uQ2hhbmdlPXtwcm9wcy5vbkNoYW5nZX0gLz4sXG4gICAgdG9nZ2xlOiBqZXN0LmZuKCksXG4gICAgcmFkaW86IGplc3QuZm4oKSxcbiAgICBudW1iZXJGaWVsZHM6IGplc3QuZm4oKSxcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9jaGFydGluZycsICgpID0+ICh7XG4gIENoYXJ0OiAoKSA9PiA8ZGl2IC8+LFxuICBjaGFydFR5cGVzOiB7XG4gICAgQmFyOiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2JhcicsXG4gICAgfSksXG4gICAgSGlzdG9ncmFtOiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2hpc3RvZ3JhbScsXG4gICAgfSksXG4gICAgTGluZURvdDogKCkgPT4gKHtcbiAgICAgIENvbXBvbmVudDogKCkgPT4gPGRpdiAvPixcbiAgICAgIHR5cGU6ICdsaW5lRG90JyxcbiAgICB9KSxcbiAgICBMaW5lQ3Jvc3M6ICgpID0+ICh7XG4gICAgICBDb21wb25lbnQ6ICgpID0+IDxkaXYgLz4sXG4gICAgICB0eXBlOiAnbGluZUNyb3NzJyxcbiAgICB9KSxcbiAgICBEb3RQbG90OiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2RvdFBsb3QnLFxuICAgIH0pLFxuICAgIExpbmVQbG90OiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2xpbmVQbG90JyxcbiAgICB9KSxcbiAgfSxcbn0pKTtcblxuZGVzY3JpYmUoJ0NvbmZpZ3VyZScsICgpID0+IHtcbiAgbGV0IHdyYXBwZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgd3JhcHBlciA9IChwcm9wcykgPT4ge1xuICAgICAgY29uc3QgY29uZmlndXJlUHJvcHMgPSB7IC4uLmRlZmF1bHRWYWx1ZXMsIC4uLnByb3BzIH07XG5cbiAgICAgIHJldHVybiBzaGFsbG93KDxDb25maWd1cmUgey4uLmNvbmZpZ3VyZVByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBpdCgndXBkYXRlcyByYXRpb25hbGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHdyYXBwZXIoeyBvbk1vZGVsQ2hhbmdlZCB9KTtcblxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlKCkub25SYXRpb25hbGVDaGFuZ2UoJ05ldyBSYXRpb25hbGUnKTtcblxuICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMubW9kZWwsXG4gICAgICAgICAgcmF0aW9uYWxlOiAnTmV3IFJhdGlvbmFsZScsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCd1cGRhdGVzIHByb21wdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG9uTW9kZWxDaGFuZ2VkID0gamVzdC5mbigpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gd3JhcHBlcih7IG9uTW9kZWxDaGFuZ2VkIH0pO1xuXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UoKS5vblByb21wdENoYW5nZSgnTmV3IFByb21wdCcpO1xuXG4gICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgLi4uZGVmYXVsdFZhbHVlcy5tb2RlbCxcbiAgICAgICAgICBwcm9tcHQ6ICdOZXcgUHJvbXB0JyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3VwZGF0ZXMgdGVhY2hlciBpbnN0cnVjdGlvbnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHdyYXBwZXIoeyBvbk1vZGVsQ2hhbmdlZCB9KTtcblxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlKCkub25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlKCdOZXcgVGVhY2hlciBJbnN0cnVjdGlvbnMnKTtcblxuICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMubW9kZWwsXG4gICAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogJ05ldyBUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCd1cGRhdGVzIGNoYXJ0IHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHdyYXBwZXIoeyBvbk1vZGVsQ2hhbmdlZCB9KTtcblxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlKCkub25DaGFydFR5cGVDaGFuZ2UoJ2hpc3RvZ3JhbScpO1xuXG4gICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgLi4uZGVmYXVsdFZhbHVlcy5tb2RlbCxcbiAgICAgICAgICBjaGFydFR5cGU6ICdoaXN0b2dyYW0nLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdDb3JyZWN0UmVzcG9uc2UnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuICBsZXQgcHJvcHM7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHByb3BzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBtb2RlbDogZGVmYXVsdFZhbHVlcy5tb2RlbCxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgdG9vbHM6IFtdLFxuICAgIH07XG5cbiAgICB3cmFwcGVyID0gKG5ld1Byb3BzKSA9PiB7XG4gICAgICBjb25zdCBjb25maWd1cmVQcm9wcyA9IHsgLi4ucHJvcHMsIG5ld1Byb3BzIH07XG5cbiAgICAgIHJldHVybiBzaGFsbG93KDxDb3JyZWN0UmVzcG9uc2Ugey4uLmNvbmZpZ3VyZVByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBsZXQgdztcblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgdyA9IHdyYXBwZXIoKTtcbiAgICB9KTtcblxuICAgIGl0KCdjaGFuZ2VzIGNvcnJlY3RBbnN3ZXIgZGF0YScsICgpID0+IHtcbiAgICAgIHcuaW5zdGFuY2UoKS5jaGFuZ2VEYXRhKFtdKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvcnJlY3RBbnN3ZXI6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHdyYXAgPSB3cmFwcGVyKHtcbiAgICAgICAgLi4uZGVmYXVsdFZhbHVlcyxcbiAgICAgICAgY29ycmVjdEFuc3dlcjoge1xuICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB3cmFwLmluc3RhbmNlKCkuY2hhbmdlRGF0YShbeyB2YWx1ZTogMiwgbGFiZWw6ICdBJyB9XSk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb3JyZWN0QW5zd2VyOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBkYXRhOiBbeyB2YWx1ZTogMiwgbGFiZWw6ICdBJyB9XSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnQ2hhcnRpbmdDb25maWcnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuICBsZXQgcHJvcHM7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHByb3BzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBtb2RlbDogZGVmYXVsdFZhbHVlcy5tb2RlbCxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgdG9vbHM6IFtdLFxuICAgIH07XG5cbiAgICB3cmFwcGVyID0gKG5ld1Byb3BzKSA9PiB7XG4gICAgICBjb25zdCBjb25maWd1cmVQcm9wcyA9IHsgLi4ucHJvcHMsIG5ld1Byb3BzIH07XG5cbiAgICAgIHJldHVybiBzaGFsbG93KDxDaGFydGluZ0NvbmZpZyB7Li4uY29uZmlndXJlUHJvcHN9IC8+KTtcbiAgICB9O1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVycycsICgpID0+IHtcbiAgICBpdCgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGl0KCdjaGFuZ2VEYXRhIGNhbGxzIG9uQ2hhbmdlJywgKCkgPT4ge1xuICAgICAgd3JhcHBlcigpXG4gICAgICAgIC5pbnN0YW5jZSgpXG4gICAgICAgIC5jaGFuZ2VEYXRhKFt7IHZhbHVlOiAyLCBsYWJlbDogJ0EnIH1dKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGRhdGE6IFt7IHZhbHVlOiAyLCBsYWJlbDogJ0EnIH1dLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _correctResponse = require("../correct-response");
|
|
6
|
+
|
|
7
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
8
|
+
|
|
9
|
+
describe('CorrectResponse - getUpdatedCategories function', function () {
|
|
10
|
+
var prevProps = {
|
|
11
|
+
model: {
|
|
12
|
+
data: [{
|
|
13
|
+
label: 'A',
|
|
14
|
+
value: 0,
|
|
15
|
+
interactive: true,
|
|
16
|
+
editable: true
|
|
17
|
+
}, {
|
|
18
|
+
label: 'B',
|
|
19
|
+
value: 1,
|
|
20
|
+
interactive: true,
|
|
21
|
+
editable: false
|
|
22
|
+
}, {
|
|
23
|
+
label: 'C',
|
|
24
|
+
value: 2,
|
|
25
|
+
interactive: true,
|
|
26
|
+
editable: false
|
|
27
|
+
}],
|
|
28
|
+
correctAnswer: {
|
|
29
|
+
data: [{
|
|
30
|
+
label: 'A',
|
|
31
|
+
value: 1
|
|
32
|
+
}, {
|
|
33
|
+
label: 'B',
|
|
34
|
+
value: 1
|
|
35
|
+
}, {
|
|
36
|
+
label: 'C',
|
|
37
|
+
value: 1
|
|
38
|
+
}]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
var prevState = {
|
|
43
|
+
categories: [{
|
|
44
|
+
label: 'A',
|
|
45
|
+
value: 0,
|
|
46
|
+
interactive: true,
|
|
47
|
+
editable: true
|
|
48
|
+
}, {
|
|
49
|
+
label: 'B',
|
|
50
|
+
value: 1,
|
|
51
|
+
interactive: true,
|
|
52
|
+
editable: false
|
|
53
|
+
}, {
|
|
54
|
+
label: 'C',
|
|
55
|
+
value: 2,
|
|
56
|
+
interactive: true,
|
|
57
|
+
editable: false
|
|
58
|
+
}]
|
|
59
|
+
}; // Test when a new category is added to Define Chart
|
|
60
|
+
|
|
61
|
+
it('should handle category addition correctly', function () {
|
|
62
|
+
var nextProps = (0, _cloneDeep["default"])(prevProps);
|
|
63
|
+
nextProps.model.data.push({
|
|
64
|
+
label: 'D',
|
|
65
|
+
value: 2,
|
|
66
|
+
interactive: true,
|
|
67
|
+
editable: true
|
|
68
|
+
});
|
|
69
|
+
var updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
|
|
70
|
+
expect(updatedCategories).toEqual([{
|
|
71
|
+
label: 'A',
|
|
72
|
+
value: 1,
|
|
73
|
+
interactive: true,
|
|
74
|
+
editable: true,
|
|
75
|
+
deletable: false
|
|
76
|
+
}, {
|
|
77
|
+
label: 'B',
|
|
78
|
+
value: 1,
|
|
79
|
+
interactive: true,
|
|
80
|
+
editable: false,
|
|
81
|
+
deletable: false
|
|
82
|
+
}, {
|
|
83
|
+
label: 'C',
|
|
84
|
+
value: 1,
|
|
85
|
+
interactive: true,
|
|
86
|
+
editable: false,
|
|
87
|
+
deletable: false
|
|
88
|
+
}, {
|
|
89
|
+
label: 'D',
|
|
90
|
+
value: 2,
|
|
91
|
+
interactive: true,
|
|
92
|
+
editable: true,
|
|
93
|
+
deletable: false
|
|
94
|
+
}]);
|
|
95
|
+
}); // Test when a category is removed from Define Chart
|
|
96
|
+
|
|
97
|
+
it('should handle category removal correctly', function () {
|
|
98
|
+
var nextProps = {
|
|
99
|
+
model: {
|
|
100
|
+
data: [{
|
|
101
|
+
label: 'A',
|
|
102
|
+
value: 0,
|
|
103
|
+
interactive: true,
|
|
104
|
+
editable: true,
|
|
105
|
+
index: 0,
|
|
106
|
+
deletable: true
|
|
107
|
+
}, {
|
|
108
|
+
label: 'C',
|
|
109
|
+
value: 2,
|
|
110
|
+
interactive: true,
|
|
111
|
+
editable: false,
|
|
112
|
+
index: 2,
|
|
113
|
+
deletable: true
|
|
114
|
+
}]
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
var updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
|
|
118
|
+
expect(updatedCategories).toEqual([{
|
|
119
|
+
label: 'A',
|
|
120
|
+
value: 0,
|
|
121
|
+
interactive: true,
|
|
122
|
+
editable: true,
|
|
123
|
+
deletable: false
|
|
124
|
+
}, {
|
|
125
|
+
label: 'C',
|
|
126
|
+
value: 2,
|
|
127
|
+
interactive: true,
|
|
128
|
+
editable: false,
|
|
129
|
+
deletable: false
|
|
130
|
+
}]);
|
|
131
|
+
}); // Test when all categories are removed from Define Chart
|
|
132
|
+
|
|
133
|
+
it('should handle all category removal correctly', function () {
|
|
134
|
+
var nextProps = {
|
|
135
|
+
model: {
|
|
136
|
+
data: []
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
var prevState = {
|
|
140
|
+
"categories": [{
|
|
141
|
+
"label": "A",
|
|
142
|
+
"value": 0,
|
|
143
|
+
"editable": true,
|
|
144
|
+
"interactive": true
|
|
145
|
+
}]
|
|
146
|
+
};
|
|
147
|
+
var updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
|
|
148
|
+
expect(updatedCategories).toEqual([]);
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY29ycmVjdFJlc3BvbnNlLnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJwcmV2UHJvcHMiLCJtb2RlbCIsImRhdGEiLCJsYWJlbCIsInZhbHVlIiwiaW50ZXJhY3RpdmUiLCJlZGl0YWJsZSIsImNvcnJlY3RBbnN3ZXIiLCJwcmV2U3RhdGUiLCJjYXRlZ29yaWVzIiwiaXQiLCJuZXh0UHJvcHMiLCJwdXNoIiwidXBkYXRlZENhdGVnb3JpZXMiLCJleHBlY3QiLCJ0b0VxdWFsIiwiZGVsZXRhYmxlIiwiaW5kZXgiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFDQTs7QUFFQUEsUUFBUSxDQUFDLGlEQUFELEVBQW9ELFlBQU07QUFDaEUsTUFBTUMsU0FBUyxHQUFHO0FBQ2hCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsSUFBSSxFQUFFLENBQ0o7QUFBRUMsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsUUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxRQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLFFBQUFBLFFBQVEsRUFBRTtBQUFyRCxPQURJLEVBRUo7QUFBRUgsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsUUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxRQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLFFBQUFBLFFBQVEsRUFBRTtBQUFyRCxPQUZJLEVBR0o7QUFBRUgsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsUUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxRQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLFFBQUFBLFFBQVEsRUFBRTtBQUFyRCxPQUhJLENBREQ7QUFNTEMsTUFBQUEsYUFBYSxFQUFFO0FBQ2JMLFFBQUFBLElBQUksRUFBRSxDQUNKO0FBQUVDLFVBQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNDLFVBQUFBLEtBQUssRUFBRTtBQUFyQixTQURJLEVBRUo7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LG9CQUFjLENBQ1Y7QUFDSSxpQkFBUyxHQURiO0FBRUksaUJBQVMsQ0FGYjtBQUdJLG9CQUFZLElBSGhCO0FBSUksdUJBQWU7QUFKbkIsT0FEVTtBQURFLEtBQWxCO0FBV0EsUUFBTUssaUJBQWlCLEdBQUcsMkNBQXFCRixTQUFyQixFQUFnQ1gsU0FBaEMsRUFBMkNRLFNBQTNDLENBQTFCO0FBRUFNLElBQUFBLE1BQU0sQ0FBQ0QsaUJBQUQsQ0FBTixDQUEwQkUsT0FBMUIsQ0FBa0MsRUFBbEM7QUFDRCxHQXJCQyxDQUFGO0FBc0JELENBakdPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRVcGRhdGVkQ2F0ZWdvcmllcyB9IGZyb20gJy4uL2NvcnJlY3QtcmVzcG9uc2UnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcblxuZGVzY3JpYmUoJ0NvcnJlY3RSZXNwb25zZSAtIGdldFVwZGF0ZWRDYXRlZ29yaWVzIGZ1bmN0aW9uJywgKCkgPT4ge1xuICBjb25zdCBwcmV2UHJvcHMgPSB7XG4gICAgbW9kZWw6IHtcbiAgICAgIGRhdGE6IFtcbiAgICAgICAgeyBsYWJlbDogJ0EnLCB2YWx1ZTogMCwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiB0cnVlIH0sXG4gICAgICAgIHsgbGFiZWw6ICdCJywgdmFsdWU6IDEsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UgfSxcbiAgICAgICAgeyBsYWJlbDogJ0MnLCB2YWx1ZTogMiwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiBmYWxzZSB9LFxuICAgICAgXSxcbiAgICAgIGNvcnJlY3RBbnN3ZXI6IHtcbiAgICAgICAgZGF0YTogW1xuICAgICAgICAgIHsgbGFiZWw6ICdBJywgdmFsdWU6IDEgfSxcbiAgICAgICAgICB7IGxhYmVsOiAnQicsIHZhbHVlOiAxIH0sXG4gICAgICAgICAgeyBsYWJlbDogJ0MnLCB2YWx1ZTogMSB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHByZXZTdGF0ZSA9IHtcbiAgICBjYXRlZ29yaWVzOiBbXG4gICAgICB7IGxhYmVsOiAnQScsIHZhbHVlOiAwLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IHRydWUgfSxcbiAgICAgIHsgbGFiZWw6ICdCJywgdmFsdWU6IDEsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdDJywgdmFsdWU6IDIsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UgfSxcbiAgICBdLFxuICB9O1xuXG4gIC8vIFRlc3Qgd2hlbiBhIG5ldyBjYXRlZ29yeSBpcyBhZGRlZCB0byBEZWZpbmUgQ2hhcnRcbiAgaXQoJ3Nob3VsZCBoYW5kbGUgY2F0ZWdvcnkgYWRkaXRpb24gY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IGNsb25lRGVlcChwcmV2UHJvcHMpO1xuICAgIG5leHRQcm9wcy5tb2RlbC5kYXRhLnB1c2goeyBsYWJlbDogJ0QnLCB2YWx1ZTogMiwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiB0cnVlIH0pO1xuXG4gICAgY29uc3QgdXBkYXRlZENhdGVnb3JpZXMgPSBnZXRVcGRhdGVkQ2F0ZWdvcmllcyhuZXh0UHJvcHMsIHByZXZQcm9wcywgcHJldlN0YXRlKTtcblxuICAgIGV4cGVjdCh1cGRhdGVkQ2F0ZWdvcmllcykudG9FcXVhbChbXG4gICAgICB7IGxhYmVsOiAnQScsIHZhbHVlOiAxLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IHRydWUsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdCJywgdmFsdWU6IDEsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdDJywgdmFsdWU6IDEsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdEJywgdmFsdWU6IDIsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogdHJ1ZSwgZGVsZXRhYmxlOiBmYWxzZSB9LFxuICAgIF0pO1xuICB9KTtcblxuICAvLyBUZXN0IHdoZW4gYSBjYXRlZ29yeSBpcyByZW1vdmVkIGZyb20gRGVmaW5lIENoYXJ0XG4gIGl0KCdzaG91bGQgaGFuZGxlIGNhdGVnb3J5IHJlbW92YWwgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IHtcbiAgICAgIG1vZGVsOiB7XG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ0EnLFxuICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgICAgICBkZWxldGFibGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ0MnLFxuICAgICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGluZGV4OiAyLFxuICAgICAgICAgICAgZGVsZXRhYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVkQ2F0ZWdvcmllcyA9IGdldFVwZGF0ZWRDYXRlZ29yaWVzKG5leHRQcm9wcywgcHJldlByb3BzLCBwcmV2U3RhdGUpO1xuXG4gICAgZXhwZWN0KHVwZGF0ZWRDYXRlZ29yaWVzKS50b0VxdWFsKFtcbiAgICAgIHsgbGFiZWw6ICdBJywgdmFsdWU6IDAsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogdHJ1ZSwgZGVsZXRhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBsYWJlbDogJ0MnLCB2YWx1ZTogMiwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiBmYWxzZSwgZGVsZXRhYmxlOiBmYWxzZSB9LFxuICAgIF0pO1xuICB9KTtcblxuICAvLyBUZXN0IHdoZW4gYWxsIGNhdGVnb3JpZXMgYXJlIHJlbW92ZWQgZnJvbSBEZWZpbmUgQ2hhcnRcbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYWxsIGNhdGVnb3J5IHJlbW92YWwgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IHtcbiAgICAgIG1vZGVsOiB7XG4gICAgICAgIGRhdGE6IFtdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgcHJldlN0YXRlID0ge1xuICAgICAgXCJjYXRlZ29yaWVzXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwibGFiZWxcIjogXCJBXCIsXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogMCxcbiAgICAgICAgICAgICAgXCJlZGl0YWJsZVwiOiB0cnVlLFxuICAgICAgICAgICAgICBcImludGVyYWN0aXZlXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICBdXG4gIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRDYXRlZ29yaWVzID0gZ2V0VXBkYXRlZENhdGVnb3JpZXMobmV4dFByb3BzLCBwcmV2UHJvcHMsIHByZXZTdGF0ZSk7XG5cbiAgICBleHBlY3QodXBkYXRlZENhdGVnb3JpZXMpLnRvRXF1YWwoW10pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -260,4 +260,4 @@ exports.ChartingConfig = ChartingConfig;
|
|
|
260
260
|
var _default = (0, _styles.withStyles)(styles)(ChartingConfig);
|
|
261
261
|
|
|
262
262
|
exports["default"] = _default;
|
|
263
|
-
//# sourceMappingURL=charting-config.js.map
|
|
263
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFydGluZy1jb25maWcuanN4Il0sIm5hbWVzIjpbInN0eWxlcyIsInRoZW1lIiwiY29udGFpbmVyIiwibWFyZ2luQm90dG9tIiwic3BhY2luZyIsInVuaXQiLCJkaXNwbGF5IiwiZmxleCIsInRpdGxlIiwiY29sdW1uIiwiY3VzdG9tQ29sb3IiLCJjb2xvciIsInRlcnRpYXJ5IiwicmVzdG9yZUNvcnJlY3RBbnN3ZXIiLCJjb3JyZWN0QW5zd2VyIiwiZGF0YSIsImNvcnJlY3RSZXNwb25zZURlZmluaXRpb24iLCJmb3JFYWNoIiwiY2F0ZWdvcnkiLCJjdXJyZW50SW5kZXgiLCJlZGl0YWJsZSIsImludGVyYWN0aXZlIiwibGFiZWwiLCJ2YWx1ZSIsIkNoYXJ0aW5nQ29uZmlnIiwicHJvcHMiLCJvcGVuIiwiY2FsbGJhY2siLCJzZXRTdGF0ZSIsImRpYWxvZyIsIm9uQ2hhbmdlIiwibW9kZWwiLCJ0ZXh0Iiwib25Db25maXJtIiwiaGFuZGxlQWxlcnREaWFsb2ciLCJhZGRDYXRlZ29yeUVuYWJsZWQiLCJvbkNsb3NlIiwidHlwZSIsInN0YXRlIiwiY2xhc3NlcyIsImNoYXJ0cyIsImxhYmVsc1BsYWNlaG9sZGVycyIsInRpdGxlUGxhY2Vob2xkZXIiLCJzaG93UGl4ZWxHdWlkZXMiLCJhdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzIiwiY2hhcnRpbmdPcHRpb25zIiwibWF0aE1sT3B0aW9ucyIsImxhYmVsc0NoYXJhY3RlcnNMaW1pdCIsImRvbWFpbiIsInJhbmdlIiwiY2hhcnRUeXBlIiwiZ3JhcGgiLCJtYXAiLCJpbmRleCIsImNoYW5nZURhdGEiLCJjaGFuZ2VUaXRsZSIsImNoYW5nZUxhYmVsIiwiY2hhbmdlSW50ZXJhY3RpdmVFbmFibGVkIiwiY2hhbmdlRWRpdGFibGVFbmFibGVkIiwiY2hhbmdlQWRkQ2F0ZWdvcnlFbmFibGVkIiwiZSIsImNoYW5nZUFkZFJlbW92ZUVuYWJsZWQiLCJ0YXJnZXQiLCJjaGVja2VkIiwiYWRkQ2F0ZWdvcnkiLCJhdXRob3JpbmdMYWJlbCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJhcnJheSIsImJvb2wiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxLQUFEO0FBQUEsU0FBWTtBQUN6QkMsSUFBQUEsU0FBUyxFQUFFO0FBQ1RDLE1BQUFBLFlBQVksRUFBRUYsS0FBSyxDQUFDRyxPQUFOLENBQWNDLElBQWQsR0FBcUIsR0FEMUI7QUFFVEMsTUFBQUEsT0FBTyxFQUFFLE1BRkE7QUFHVEMsTUFBQUEsSUFBSSxFQUFFO0FBSEcsS0FEYztBQU16QkMsSUFBQUEsS0FBSyxFQUFFO0FBQ0xMLE1BQUFBLFlBQVksRUFBRUYsS0FBSyxDQUFDRyxPQUFOLENBQWNDO0FBRHZCLEtBTmtCO0FBU3pCSSxJQUFBQSxNQUFNLEVBQUU7QUFDTkYsTUFBQUEsSUFBSSxFQUFFO0FBREEsS0FUaUI7QUFZekJHLElBQUFBLFdBQVcsRUFBRTtBQUNYQyxNQUFBQSxLQUFLLFlBQUtBLGdCQUFNQyxRQUFOLEVBQUw7QUFETTtBQVpZLEdBQVo7QUFBQSxDQUFmOztBQWlCQSxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQXVCLENBQUNDLGFBQUQsRUFBZ0JDLElBQWhCLEVBQXlCO0FBQ3BELE1BQUksQ0FBQ0QsYUFBTCxFQUFvQjtBQUNsQixXQUFPQyxJQUFQO0FBQ0Q7O0FBRUQsTUFBSUMseUJBQXlCLEdBQUcsRUFBaEM7QUFFQSxHQUFDRCxJQUFJLElBQUksRUFBVCxFQUFhRSxPQUFiLENBQXFCLFVBQUNDLFFBQUQsRUFBV0MsWUFBWCxFQUE0QjtBQUFBOztBQUMvQyxRQUFRQyxRQUFSLEdBQWtDRixRQUFsQyxDQUFRRSxRQUFSO0FBQUEsUUFBa0JDLFdBQWxC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QUFRLEVBQUVzQyxzQkFBVUcsSUFBVixDQUFlRCxVQUhSO0FBSWpCOUIsRUFBQUEsTUFBTSxFQUFFNEIsc0JBQVVJLEtBSkQ7QUFLakIvQixFQUFBQSxrQkFBa0IsRUFBRTJCLHNCQUFVQyxNQUxiO0FBTWpCM0IsRUFBQUEsZ0JBQWdCLEVBQUUwQixzQkFBVUMsTUFOWDtBQU9qQjFCLEVBQUFBLGVBQWUsRUFBRXlCLHNCQUFVSyxJQVBWO0FBUWpCN0IsRUFBQUEseUJBQXlCLEVBQUV3QixzQkFBVUMsTUFScEI7QUFTakJ4QixFQUFBQSxlQUFlLEVBQUV1QixzQkFBVUM7QUFUVixDOztlQW9KTix3QkFBV3JFLE1BQVgsRUFBbUJ3QixjQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICdAcGllLWxpYi9jaGFydGluZyc7XG5pbXBvcnQgeyBBbGVydERpYWxvZyB9IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ2hlY2tib3gnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UeXBvZ3JhcGh5JztcblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBjb250YWluZXI6IHtcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIuNSxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleDogMSxcbiAgfSxcbiAgdGl0bGU6IHtcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgfSxcbiAgY29sdW1uOiB7XG4gICAgZmxleDogMSxcbiAgfSxcbiAgY3VzdG9tQ29sb3I6IHtcbiAgICBjb2xvcjogYCR7Y29sb3IudGVydGlhcnkoKX0gIWltcG9ydGFudGAsXG4gIH0sXG59KTtcblxuY29uc3QgcmVzdG9yZUNvcnJlY3RBbnN3ZXIgPSAoY29ycmVjdEFuc3dlciwgZGF0YSkgPT4ge1xuICBpZiAoIWNvcnJlY3RBbnN3ZXIpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGxldCBjb3JyZWN0UmVzcG9uc2VEZWZpbml0aW9uID0gW107XG5cbiAgKGRhdGEgfHwgW10pLmZvckVhY2goKGNhdGVnb3J5LCBjdXJyZW50SW5kZXgpID0+IHtcbiAgICBjb25zdCB7IGVkaXRhYmxlLCBpbnRlcmFjdGl2ZSB9ID0gY2F0ZWdvcnk7XG5cbiAgICBjb25zdCBsYWJlbCA9IGVkaXRhYmxlICYmIGNvcnJlY3RBbnN3ZXJbY3VycmVudEluZGV4XT8ubGFiZWwgPyBjb3JyZWN0QW5zd2VyW2N1cnJlbnRJbmRleF0ubGFiZWwgOiBjYXRlZ29yeS5sYWJlbDtcblxuICAgIGNvbnN0IHZhbHVlID1cbiAgICAgIGludGVyYWN0aXZlICYmIGNvcnJlY3RBbnN3ZXJbY3VycmVudEluZGV4XT8udmFsdWUgPyBjb3JyZWN0QW5zd2VyW2N1cnJlbnRJbmRleF0udmFsdWUgOiBjYXRlZ29yeS52YWx1ZTtcblxuICAgIGNvcnJlY3RSZXNwb25zZURlZmluaXRpb25bY3VycmVudEluZGV4XSA9IHtcbiAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVkaXRhYmxlOiBjYXRlZ29yeS5lZGl0YWJsZSxcbiAgICAgIGludGVyYWN0aXZlOiBjYXRlZ29yeS5pbnRlcmFjdGl2ZSxcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4gY29ycmVjdFJlc3BvbnNlRGVmaW5pdGlvbjtcbn07XG5cbmV4cG9ydCBjbGFzcyBDaGFydGluZ0NvbmZpZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2hhcnRzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgbGFiZWxzUGxhY2Vob2xkZXJzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc2hvd1BpeGVsR3VpZGVzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNoYXJ0aW5nT3B0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZGlhbG9nOiB7XG4gICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgaGFuZGxlQWxlcnREaWFsb2cgPSAob3BlbiwgY2FsbGJhY2spID0+XG4gICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgZGlhbG9nOiB7IG9wZW4gfSxcbiAgICAgIH0sXG4gICAgICBjYWxsYmFjayxcbiAgICApO1xuXG4gIGNoYW5nZURhdGEgPSAoZGF0YSkgPT4gdGhpcy5wcm9wcy5vbkNoYW5nZSh7IC4uLnRoaXMucHJvcHMubW9kZWwsIGRhdGEgfSk7XG5cbiAgY2hhbmdlQWRkUmVtb3ZlRW5hYmxlZCA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgY29ycmVjdEFuc3dlciA9IHJlc3RvcmVDb3JyZWN0QW5zd2VyKG1vZGVsLmNvcnJlY3RBbnN3ZXIuZGF0YSwgbW9kZWwuZGF0YSk7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZGlhbG9nOiB7XG4gICAgICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgICAgICB0aXRsZTogJ1dhcm5pbmcnLFxuICAgICAgICAgIHRleHQ6ICdUaGlzIGNoYW5nZSB3aWxsIHJlbW92ZSBhbnkgY29ycmVjdCBhbnN3ZXIgY2F0ZWdvcmllcyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgaW5pdGlhbCBpdGVtIGNvbmZpZ3VyYXRpb24uJyxcbiAgICAgICAgICBvbkNvbmZpcm06ICgpID0+XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFsZXJ0RGlhbG9nKFxuICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5wcm9wcy5tb2RlbCxcbiAgICAgICAgICAgICAgICBhZGRDYXRlZ29yeUVuYWJsZWQ6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGNvcnJlY3RBbnN3ZXI6IHsgZGF0YTogY29ycmVjdEFuc3dlciB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgb25DbG9zZTogKCkgPT4gdGhpcy5oYW5kbGVBbGVydERpYWxvZyhmYWxzZSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7IC4uLnRoaXMucHJvcHMubW9kZWwsIGFkZENhdGVnb3J5RW5hYmxlZDogdmFsdWUgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNoYW5nZVRpdGxlID0gKHRpdGxlKSA9PiB0aGlzLnByb3BzLm9uQ2hhbmdlKHsgLi4udGhpcy5wcm9wcy5tb2RlbCwgdGl0bGUgfSk7XG5cbiAgY2hhbmdlTGFiZWwgPSAodHlwZSwgbGFiZWwpID0+XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7XG4gICAgICAuLi50aGlzLnByb3BzLm1vZGVsLFxuICAgICAgW3R5cGVdOiB7XG4gICAgICAgIC4uLnRoaXMucHJvcHMubW9kZWxbdHlwZV0sXG4gICAgICAgIGxhYmVsLFxuICAgICAgfSxcbiAgICB9KTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2xhc3NlcyxcbiAgICAgIG1vZGVsLFxuICAgICAgY2hhcnRzLFxuICAgICAgbGFiZWxzUGxhY2Vob2xkZXJzLFxuICAgICAgdGl0bGVQbGFjZWhvbGRlcixcbiAgICAgIHNob3dQaXhlbEd1aWRlcyxcbiAgICAgIGF1dGhvck5ld0NhdGVnb3J5RGVmYXVsdHMsXG4gICAgICBjaGFydGluZ09wdGlvbnMsXG4gICAgICBtYXRoTWxPcHRpb25zID0ge30sXG4gICAgICBsYWJlbHNDaGFyYWN0ZXJzTGltaXQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBkaWFsb2cgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgeyBkb21haW4gPSB7fSwgcmFuZ2UgPSB7fSB9ID0gbW9kZWwgfHwge307XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMudGl0bGV9PkRlZmluZSBJbml0aWFsIENoYXJ0IEF0dHJpYnV0ZXM8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuY29udGFpbmVyfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb2x1bW59IGtleT1cImdyYXBoXCI+XG4gICAgICAgICAgICA8VHlwb2dyYXBoeSBjb21wb25lbnQ9XCJkaXZcIiB0eXBlPVwiYm9keTFcIj5cbiAgICAgICAgICAgICAgPHNwYW4+VXNlIHRoZSB0b29scyBiZWxvdyB0byBzZXQgdXAgdGhlIGNoYXJ0IGFzIGl0IHdpbGwgaW5pdGlhbGx5IGFwcGVhciB0byBzdHVkZW50cy48L3NwYW4+XG4gICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG5cbiAgICAgICAgICAgIDxDaGFydFxuICAgICAgICAgICAgICBkZWZpbmVDaGFydD17dHJ1ZX1cbiAgICAgICAgICAgICAgY2hhcnRpbmdPcHRpb25zPXtjaGFydGluZ09wdGlvbnN9XG4gICAgICAgICAgICAgIHNob3dQaXhlbEd1aWRlcz17c2hvd1BpeGVsR3VpZGVzfVxuICAgICAgICAgICAgICBjaGFydFR5cGU9e21vZGVsLmNoYXJ0VHlwZX1cbiAgICAgICAgICAgICAgc2l6ZT17bW9kZWwuZ3JhcGh9XG4gICAgICAgICAgICAgIGRvbWFpbj17ZG9tYWlufVxuICAgICAgICAgICAgICByYW5nZT17cmFuZ2V9XG4gICAgICAgICAgICAgIGNoYXJ0cz17Y2hhcnRzfVxuICAgICAgICAgICAgICAvLyBpbmRleCBpcyBhIHByb3BlcnR5IHVzZWQgZm9yIHNldHRpbmcgdGhlIGNvcnJlY3QgYW5zd2VyIGRhdGE7IGl0J3MgbmVlZGVkIGluIG9yZGVyIHRvIHJlbW92ZSBjYXRlZ29yaWVzIGZyb20gb3RoZXIgZGF0YSBzZXRzIGZyb20gdGhlIHNhbWUgaW5kZXggaXQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgaW5pdGlhbCBkYXRhXG4gICAgICAgICAgICAgIGRhdGE9e21vZGVsLmRhdGEubWFwKChjYXRlZ29yeSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgLi4uY2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgIHRpdGxlPXttb2RlbC50aXRsZX1cbiAgICAgICAgICAgICAgb25EYXRhQ2hhbmdlPXt0aGlzLmNoYW5nZURhdGF9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlVGl0bGU9e3RoaXMuY2hhbmdlVGl0bGV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlTGFiZWxzPXt0aGlzLmNoYW5nZUxhYmVsfVxuICAgICAgICAgICAgICBhZGRDYXRlZ29yeUVuYWJsZWQ9e3RydWV9XG4gICAgICAgICAgICAgIGNoYW5nZUludGVyYWN0aXZlRW5hYmxlZD17bW9kZWwuY2hhbmdlSW50ZXJhY3RpdmVFbmFibGVkfVxuICAgICAgICAgICAgICBjaGFuZ2VFZGl0YWJsZUVuYWJsZWQ9e21vZGVsLmNoYW5nZUVkaXRhYmxlRW5hYmxlZH1cbiAgICAgICAgICAgICAgY2F0ZWdvcnlEZWZhdWx0TGFiZWw9e2F1dGhvck5ld0NhdGVnb3J5RGVmYXVsdHM/LmxhYmVsfVxuICAgICAgICAgICAgICBjYXRlZ29yeURlZmF1bHRzPXthdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzfVxuICAgICAgICAgICAgICBsYWJlbHNQbGFjZWhvbGRlcnM9e2xhYmVsc1BsYWNlaG9sZGVyc31cbiAgICAgICAgICAgICAgdGl0bGVQbGFjZWhvbGRlcj17dGl0bGVQbGFjZWhvbGRlcj8ubGFiZWx9XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAgIGxhYmVsc0NoYXJhY3RlcnNMaW1pdD17bGFiZWxzQ2hhcmFjdGVyc0xpbWl0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHttb2RlbC5jaGFuZ2VBZGRDYXRlZ29yeUVuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmN1c3RvbUNvbG9yfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17bW9kZWwuYWRkQ2F0ZWdvcnlFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlQWRkUmVtb3ZlRW5hYmxlZChlLnRhcmdldC5jaGVja2VkKTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7Y2hhcnRpbmdPcHRpb25zPy5hZGRDYXRlZ29yeT8uYXV0aG9yaW5nTGFiZWx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ1xuICAgICAgICAgICAgICBvcGVuPXtkaWFsb2cub3Blbn1cbiAgICAgICAgICAgICAgdGl0bGU9e2RpYWxvZy50aXRsZX1cbiAgICAgICAgICAgICAgdGV4dD17ZGlhbG9nLnRleHR9XG4gICAgICAgICAgICAgIG9uQ2xvc2U9e2RpYWxvZy5vbkNsb3NlfVxuICAgICAgICAgICAgICBvbkNvbmZpcm09e2RpYWxvZy5vbkNvbmZpcm19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKENoYXJ0aW5nQ29uZmlnKTtcbiJdfQ==
|
|
@@ -408,4 +408,4 @@ exports.Configure = Configure;
|
|
|
408
408
|
var _default = (0, _styles.withStyles)(styles)(Configure);
|
|
409
409
|
|
|
410
410
|
exports["default"] = _default;
|
|
411
|
-
//# sourceMappingURL=configure.js.map
|
|
411
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmUuanN4Il0sIm5hbWVzIjpbImxvZyIsIlBhbmVsIiwic2V0dGluZ3MiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwidGV4dEZpZWxkIiwic3R5bGVzIiwidGhlbWUiLCJ0aXRsZSIsImZvbnRTaXplIiwiZGlzcGxheSIsIm1hcmdpblRvcCIsInNwYWNpbmciLCJ1bml0IiwibWFyZ2luQm90dG9tIiwicHJvbXB0SG9sZGVyIiwid2lkdGgiLCJwYWRkaW5nVG9wIiwiZGVzY3JpcHRpb24iLCJlcnJvclRleHQiLCJ0eXBvZ3JhcGh5IiwiY29sb3IiLCJwYWxldHRlIiwiZXJyb3IiLCJtYWluIiwiY2hhcnRzIiwiY2hhcnRUeXBlcyIsIkJhciIsIkhpc3RvZ3JhbSIsIkxpbmVEb3QiLCJMaW5lQ3Jvc3MiLCJEb3RQbG90IiwiTGluZVBsb3QiLCJDb25maWd1cmUiLCJwcm9wcyIsInJhdGlvbmFsZSIsIm9uTW9kZWxDaGFuZ2VkIiwibW9kZWwiLCJwcm9tcHQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwiY2hhcnRUeXBlIiwiY29uZmlnIiwic3RhdGUiLCJvbGRHcmlkVmFsdWVzIiwiZ3JpZFZhbHVlcyIsIm9sZExhYmVsVmFsdWVzIiwibGFiZWxWYWx1ZXMiLCJ1cGRhdGVkTW9kZWwiLCJncmFwaCIsInJhbmdlIiwicmFuZ2VDb25zdHJhaW50cyIsImhlaWdodCIsInNldFN0YXRlIiwic3RlcCIsImNsYXNzZXMiLCJjb25maWd1cmF0aW9uIiwiaW1hZ2VTdXBwb3J0Iiwib25Db25maWd1cmF0aW9uQ2hhbmdlZCIsInVwbG9hZFNvdW5kU3VwcG9ydCIsImJhc2VJbnB1dENvbmZpZ3VyYXRpb24iLCJjb250ZW50RGltZW5zaW9ucyIsImNoYXJ0RGltZW5zaW9ucyIsImF1dGhvck5ld0NhdGVnb3J5RGVmYXVsdHMiLCJsYWJlbHNQbGFjZWhvbGRlcnMiLCJpbnN0cnVjdGlvbiIsIm1heEltYWdlV2lkdGgiLCJtYXhJbWFnZUhlaWdodCIsInNjb3JpbmdUeXBlIiwic2V0dGluZ3NQYW5lbERpc2FibGVkIiwic3BlbGxDaGVjayIsInN0dWRlbnRJbnN0cnVjdGlvbnMiLCJ0aXRsZVBsYWNlaG9sZGVyIiwid2l0aFJ1YnJpYyIsImNoYXJ0aW5nT3B0aW9ucyIsImF2YWlsYWJsZUNoYXJ0VHlwZXMiLCJtYXRoTWxPcHRpb25zIiwiY2hhcnRUeXBlTGFiZWwiLCJsYW5ndWFnZSIsImxhbmd1YWdlQ2hvaWNlcyIsImxhYmVsc0NoYXJhY3RlcnNMaW1pdCIsImVycm9ycyIsImV4dHJhQ1NTUnVsZXMiLCJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJzdHVkZW50TmV3Q2F0ZWdvcnlEZWZhdWx0TGFiZWwiLCJjYXRlZ29yeUVycm9ycyIsImNvcnJlY3RBbnN3ZXJFcnJvcnMiLCJwcm9tcHRFcnJvciIsInJhdGlvbmFsZUVycm9yIiwidGVhY2hlckluc3RydWN0aW9uc0Vycm9yIiwic2hvd1BpeGVHdWlkZXMiLCJzaG93SW5Db25maWdQYW5lbCIsImRlZmF1bHRJbWFnZU1heFdpZHRoIiwiZGVmYXVsdEltYWdlTWF4SGVpZ2h0IiwicGFuZWxJdGVtVHlwZSIsImNoYW5nZUludGVyYWN0aXZlRW5hYmxlZCIsImNoYW5nZUludGVyYWN0aXZlIiwic2V0dGluZ3NMYWJlbCIsImNoYW5nZUVkaXRhYmxlRW5hYmxlZCIsImNoYW5nZUVkaXRhYmxlIiwiY2hhbmdlQWRkQ2F0ZWdvcnlFbmFibGVkIiwiYWRkQ2F0ZWdvcnkiLCJwYW5lbFByb3BlcnRpZXMiLCJsYWJlbCIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwicnVicmljRW5hYmxlZCIsImVuYWJsZWQiLCJvcHRpb25zIiwiZ2V0UGx1Z2luUHJvcHMiLCJTZXR0aW5ncyIsIlByb3BlcnRpZXMiLCJvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2UiLCJpbnB1dENvbmZpZ3VyYXRpb24iLCJvblByb21wdENoYW5nZSIsIm9uQ29uZmlnQ2hhbmdlIiwib25SYXRpb25hbGVDaGFuZ2UiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImZ1bmMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLGlDQUFOLENBQVo7QUFDQSxJQUFRQyxLQUFSLEdBQXNEQyxrQkFBdEQsQ0FBUUQsS0FBUjtBQUFBLElBQWVFLE1BQWYsR0FBc0RELGtCQUF0RCxDQUFlQyxNQUFmO0FBQUEsSUFBdUJDLEtBQXZCLEdBQXNERixrQkFBdEQsQ0FBdUJFLEtBQXZCO0FBQUEsSUFBOEJDLFFBQTlCLEdBQXNESCxrQkFBdEQsQ0FBOEJHLFFBQTlCO0FBQUEsSUFBd0NDLFNBQXhDLEdBQXNESixrQkFBdEQsQ0FBd0NJLFNBQXhDOztBQUVBLElBQU1DLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQ3pCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsUUFBUSxFQUFFLFFBREw7QUFFTEMsTUFBQUEsT0FBTyxFQUFFLE9BRko7QUFHTEMsTUFBQUEsU0FBUyxFQUFFSixLQUFLLENBQUNLLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQixDQUgzQjtBQUlMQyxNQUFBQSxZQUFZLEVBQUVQLEtBQUssQ0FBQ0ssT0FBTixDQUFjQztBQUp2QixLQURrQjtBQU96QkUsSUFBQUEsWUFBWSxFQUFFO0FBQ1pDLE1BQUFBLEtBQUssRUFBRSxNQURLO0FBRVpDLE1BQUFBLFVBQVUsRUFBRVYsS0FBSyxDQUFDSyxPQUFOLENBQWNDLElBQWQsR0FBcUIsQ0FGckI7QUFHWkMsTUFBQUEsWUFBWSxFQUFFUCxLQUFLLENBQUNLLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtB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RSxFQUFBQSxZQUFZLEVBQUVnRSxzQkFBVUUsTUFKUDtBQUtqQmhFLEVBQUFBLGtCQUFrQixFQUFFOEQsc0JBQVVFLE1BTGI7QUFNakJyRixFQUFBQSxLQUFLLEVBQUVtRixzQkFBVUUsTUFBVixDQUFpQkMsVUFOUDtBQU9qQnBFLEVBQUFBLGFBQWEsRUFBRWlFLHNCQUFVRSxNQUFWLENBQWlCQyxVQVBmO0FBUWpCbEQsRUFBQUEsZUFBZSxFQUFFK0Msc0JBQVVFO0FBUlYsQztpQ0FEUnpGLFMsa0JBcUJXO0FBQUVxQixFQUFBQSxPQUFPLEVBQUU7QUFBWCxDOztlQTRPVCx3QkFBV2hELE1BQVgsRUFBbUIyQixTQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgY2hhcnRUeXBlcywgQ29uZmlndXJlQ2hhcnRQYW5lbCB9IGZyb20gJ0BwaWUtbGliL2NoYXJ0aW5nJztcbmltcG9ydCB7IHNldHRpbmdzLCBsYXlvdXQsIElucHV0Q29udGFpbmVyIH0gZnJvbSAnQHBpZS1saWIvY29uZmlnLXVpJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvVHlwb2dyYXBoeSc7XG5pbXBvcnQgRWRpdGFibGVIdG1sIGZyb20gJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwnO1xuXG5pbXBvcnQgQ2hhcnRpbmdDb25maWcgZnJvbSAnLi9jaGFydGluZy1jb25maWcnO1xuaW1wb3J0IENvcnJlY3RSZXNwb25zZSBmcm9tICcuL2NvcnJlY3QtcmVzcG9uc2UnO1xuaW1wb3J0IHsgYXBwbHlDb25zdHJhaW50cywgZ2V0R3JpZFZhbHVlcywgZ2V0TGFiZWxWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtZWxlbWVudDpncmFwaGluZzpjb25maWd1cmUnKTtcbmNvbnN0IHsgUGFuZWwsIHRvZ2dsZSwgcmFkaW8sIGRyb3Bkb3duLCB0ZXh0RmllbGQgfSA9IHNldHRpbmdzO1xuXG5jb25zdCBzdHlsZXMgPSAodGhlbWUpID0+ICh7XG4gIHRpdGxlOiB7XG4gICAgZm9udFNpemU6ICcxLjFyZW0nLFxuICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0LFxuICB9LFxuICBwcm9tcHRIb2xkZXI6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICB9LFxuICBkZXNjcmlwdGlvbjoge1xuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMi41LFxuICB9LFxuICBlcnJvclRleHQ6IHtcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSAtIDIsXG4gICAgY29sb3I6IHRoZW1lLnBhbGV0dGUuZXJyb3IubWFpbixcbiAgICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gIH0sXG59KTtcblxuY29uc3QgY2hhcnRzID0gW1xuICBjaGFydFR5cGVzLkJhcigpLFxuICBjaGFydFR5cGVzLkhpc3RvZ3JhbSgpLFxuICBjaGFydFR5cGVzLkxpbmVEb3QoKSxcbiAgY2hhcnRUeXBlcy5MaW5lQ3Jvc3MoKSxcbiAgY2hhcnRUeXBlcy5Eb3RQbG90KCksXG4gIGNoYXJ0VHlwZXMuTGluZVBsb3QoKSxcbl07XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGltYWdlU3VwcG9ydDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB1cGxvYWRTb3VuZFN1cHBvcnQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2hhcnRpbmdPcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIGNvbnN0IHsgcmFuZ2UgPSB7fSwgZ3JhcGggfSA9IHByb3BzLm1vZGVsIHx8IHt9O1xuICAgIGNvbnN0IGdyaWRWYWx1ZXMgPSB7IHJhbmdlOiBnZXRHcmlkVmFsdWVzKHJhbmdlLCBncmFwaC5oZWlnaHQsIHRydWUpIH07XG4gICAgY29uc3QgbGFiZWxWYWx1ZXMgPSB7IHJhbmdlOiBnZXRMYWJlbFZhbHVlcyhyYW5nZS5zdGVwIHx8IDEpIH07XG5cbiAgICB0aGlzLnN0YXRlID0geyBncmlkVmFsdWVzLCBsYWJlbFZhbHVlcyB9O1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHsgY2xhc3Nlczoge30gfTtcblxuICBvblJhdGlvbmFsZUNoYW5nZSA9IChyYXRpb25hbGUpID0+IHRoaXMucHJvcHMub25Nb2RlbENoYW5nZWQoeyAuLi50aGlzLnByb3BzLm1vZGVsLCByYXRpb25hbGUgfSk7XG5cbiAgb25Qcm9tcHRDaGFuZ2UgPSAocHJvbXB0KSA9PiB0aGlzLnByb3BzLm9uTW9kZWxDaGFuZ2VkKHsgLi4udGhpcy5wcm9wcy5tb2RlbCwgcHJvbXB0IH0pO1xuXG4gIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZSA9ICh0ZWFjaGVySW5zdHJ1Y3Rpb25zKSA9PlxuICAgIHRoaXMucHJvcHMub25Nb2RlbENoYW5nZWQoeyAuLi50aGlzLnByb3BzLm1vZGVsLCB0ZWFjaGVySW5zdHJ1Y3Rpb25zIH0pO1xuXG4gIG9uQ2hhcnRUeXBlQ2hhbmdlID0gKGNoYXJ0VHlwZSkgPT4gdGhpcy5wcm9wcy5vbk1vZGVsQ2hhbmdlZCh7IC4uLnRoaXMucHJvcHMubW9kZWwsIGNoYXJ0VHlwZSB9KTtcblxuICBvbkNvbmZpZ0NoYW5nZSA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBvbk1vZGVsQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGdyaWRWYWx1ZXM6IG9sZEdyaWRWYWx1ZXMsIGxhYmVsVmFsdWVzOiBvbGRMYWJlbFZhbHVlcyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLm1vZGVsLCAuLi5jb25maWcgfTtcbiAgICBjb25zdCB7IGdyYXBoLCByYW5nZSB9ID0gdXBkYXRlZE1vZGVsO1xuICAgIGNvbnN0IGdyaWRWYWx1ZXMgPSB7fTtcbiAgICBjb25zdCBsYWJlbFZhbHVlcyA9IHt9O1xuXG4gICAgY29uc3QgcmFuZ2VDb25zdHJhaW50cyA9IGFwcGx5Q29uc3RyYWludHMocmFuZ2UsIGdyYXBoLmhlaWdodCwgb2xkR3JpZFZhbHVlcy5yYW5nZSwgb2xkTGFiZWxWYWx1ZXMucmFuZ2UpO1xuXG4gICAgZ3JpZFZhbHVlcy5yYW5nZSA9IHJhbmdlQ29uc3RyYWludHMuZ3JpZFZhbHVlcztcbiAgICBsYWJlbFZhbHVlcy5yYW5nZSA9IHJhbmdlQ29uc3RyYWludHMubGFiZWxWYWx1ZXM7XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgZ3JpZFZhbHVlcywgbGFiZWxWYWx1ZXMgfSk7XG4gICAgb25Nb2RlbENoYW5nZWQodXBkYXRlZE1vZGVsKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjbGFzc2VzLCBjb25maWd1cmF0aW9uLCBpbWFnZVN1cHBvcnQsIG1vZGVsLCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLCBvbk1vZGVsQ2hhbmdlZCwgdXBsb2FkU291bmRTdXBwb3J0IH0gPVxuICAgICAgdGhpcy5wcm9wcztcblxuICAgIGxvZygnW3JlbmRlcl0gbW9kZWwnLCBtb2RlbCk7XG5cbiAgICBjb25zdCB7IGdyYXBoIH0gPSBtb2RlbDtcbiAgICBjb25zdCB7XG4gICAgICBiYXNlSW5wdXRDb25maWd1cmF0aW9uID0ge30sXG4gICAgICBjb250ZW50RGltZW5zaW9ucyA9IHt9LFxuICAgICAgY2hhcnREaW1lbnNpb25zID0ge30sXG4gICAgICBhdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzID0ge30sXG4gICAgICBsYWJlbHNQbGFjZWhvbGRlcnMgPSB7fSxcbiAgICAgIGluc3RydWN0aW9uID0ge30sXG4gICAgICBtYXhJbWFnZVdpZHRoID0ge30sXG4gICAgICBtYXhJbWFnZUhlaWdodCA9IHt9LFxuICAgICAgcHJvbXB0ID0ge30sXG4gICAgICByYXRpb25hbGUgPSB7fSxcbiAgICAgIHNjb3JpbmdUeXBlID0ge30sXG4gICAgICBzZXR0aW5nc1BhbmVsRGlzYWJsZWQsXG4gICAgICBzcGVsbENoZWNrID0ge30sXG4gICAgICBzdHVkZW50SW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgICB0aXRsZVBsYWNlaG9sZGVyID0ge30sXG4gICAgICB3aXRoUnVicmljID0ge30sXG4gICAgICBjaGFydGluZ09wdGlvbnMgPSB7fSxcbiAgICAgIGF2YWlsYWJsZUNoYXJ0VHlwZXMgPSB7fSxcbiAgICAgIG1hdGhNbE9wdGlvbnMgPSB7fSxcbiAgICAgIGNoYXJ0VHlwZUxhYmVsLFxuICAgICAgbGFuZ3VhZ2UgPSB7fSxcbiAgICAgIGxhbmd1YWdlQ2hvaWNlcyA9IHt9LFxuICAgICAgbGFiZWxzQ2hhcmFjdGVyc0xpbWl0LFxuICAgIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIGVycm9ycyxcbiAgICAgIGV4dHJhQ1NTUnVsZXMsXG4gICAgICBwcm9tcHRFbmFibGVkLFxuICAgICAgcmF0aW9uYWxlRW5hYmxlZCxcbiAgICAgIHNwZWxsQ2hlY2tFbmFibGVkLFxuICAgICAgdGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQsXG4gICAgICBzdHVkZW50TmV3Q2F0ZWdvcnlEZWZhdWx0TGFiZWwsXG4gICAgfSA9IG1vZGVsIHx8IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIGNhdGVnb3J5RXJyb3JzLFxuICAgICAgY29ycmVjdEFuc3dlckVycm9ycyxcbiAgICAgIHByb21wdDogcHJvbXB0RXJyb3IsXG4gICAgICByYXRpb25hbGU6IHJhdGlvbmFsZUVycm9yLFxuICAgICAgdGVhY2hlckluc3RydWN0aW9uczogdGVhY2hlckluc3RydWN0aW9uc0Vycm9yLFxuICAgIH0gPSBlcnJvcnMgfHwge307XG4gICAgY29uc3QgeyBncmlkVmFsdWVzLCBsYWJlbFZhbHVlcyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBzaG93UGl4ZUd1aWRlcyA9IGNoYXJ0RGltZW5zaW9ucy5zaG93SW5Db25maWdQYW5lbCB8fCB0cnVlO1xuXG4gICAgY29uc3QgZGVmYXVsdEltYWdlTWF4V2lkdGggPSBtYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucHJvbXB0O1xuICAgIGNvbnN0IGRlZmF1bHRJbWFnZU1heEhlaWdodCA9IG1heEltYWdlSGVpZ2h0ICYmIG1heEltYWdlSGVpZ2h0LnByb21wdDtcblxuICAgIGNvbnN0IHBhbmVsSXRlbVR5cGUgPSB7XG4gICAgICBjaGFuZ2VJbnRlcmFjdGl2ZUVuYWJsZWQ6XG4gICAgICAgIGNoYXJ0aW5nT3B0aW9ucy5jaGFuZ2VJbnRlcmFjdGl2ZT8uc2V0dGluZ3MgJiYgdG9nZ2xlKGNoYXJ0aW5nT3B0aW9ucy5jaGFuZ2VJbnRlcmFjdGl2ZS5zZXR0aW5nc0xhYmVsKSxcbiAgICAgIGNoYW5nZUVkaXRhYmxlRW5hYmxlZDpcbiAgICAgICAgY2hhcnRpbmdPcHRpb25zLmNoYW5nZUVkaXRhYmxlPy5zZXR0aW5ncyAmJiB0b2dnbGUoY2hhcnRpbmdPcHRpb25zLmNoYW5nZUVkaXRhYmxlLnNldHRpbmdzTGFiZWwpLFxuICAgICAgY2hhbmdlQWRkQ2F0ZWdvcnlFbmFibGVkOlxuICAgICAgICBjaGFydGluZ09wdGlvbnMuYWRkQ2F0ZWdvcnk/LnNldHRpbmdzICYmIHRvZ2dsZShjaGFydGluZ09wdGlvbnMuYWRkQ2F0ZWdvcnkuc2V0dGluZ3NMYWJlbCksXG4gICAgfTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcGVydGllcyA9IHtcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0ZWFjaGVySW5zdHJ1Y3Rpb25zLnNldHRpbmdzICYmIHRvZ2dsZSh0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsKSxcbiAgICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOiBzdHVkZW50SW5zdHJ1Y3Rpb25zLnNldHRpbmdzICYmIHRvZ2dsZShzdHVkZW50SW5zdHJ1Y3Rpb25zLmxhYmVsKSxcbiAgICAgIHJhdGlvbmFsZUVuYWJsZWQ6IHJhdGlvbmFsZS5zZXR0aW5ncyAmJiB0b2dnbGUocmF0aW9uYWxlLmxhYmVsKSxcbiAgICAgIHNwZWxsQ2hlY2tFbmFibGVkOiBzcGVsbENoZWNrLnNldHRpbmdzICYmIHRvZ2dsZShzcGVsbENoZWNrLmxhYmVsKSxcbiAgICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICAgIHNjb3JpbmdUeXBlOiBzY29yaW5nVHlwZS5zZXR0aW5ncyAmJiByYWRpbyhzY29yaW5nVHlwZS5sYWJlbCwgWydhbGwgb3Igbm90aGluZycsICdwYXJ0aWFsIHNjb3JpbmcnXSksXG4gICAgICBydWJyaWNFbmFibGVkOiB3aXRoUnVicmljPy5zZXR0aW5ncyAmJiB0b2dnbGUod2l0aFJ1YnJpYz8ubGFiZWwpLFxuICAgICAgJ2xhbmd1YWdlLmVuYWJsZWQnOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiB0b2dnbGUobGFuZ3VhZ2UubGFiZWwsIHRydWUpLFxuICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLnNldHRpbmdzICYmIGxhbmd1YWdlLmVuYWJsZWQgJiYgZHJvcGRvd24obGFuZ3VhZ2VDaG9pY2VzLmxhYmVsLCBsYW5ndWFnZUNob2ljZXMub3B0aW9ucyksXG4gICAgICBpbnN0cnVjdGlvbjogaW5zdHJ1Y3Rpb24uc2V0dGluZ3MgJiYgdGV4dEZpZWxkKGluc3RydWN0aW9uLmxhYmVsKSxcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0UGx1Z2luUHJvcHMgPSAocHJvcHMgPSB7fSkgPT4gKHtcbiAgICAgIC4uLmJhc2VJbnB1dENvbmZpZ3VyYXRpb24sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8bGF5b3V0LkNvbmZpZ0xheW91dFxuICAgICAgICBleHRyYUNTU1J1bGVzPXtleHRyYUNTU1J1bGVzfVxuICAgICAgICBkaW1lbnNpb25zPXtjb250ZW50RGltZW5zaW9uc31cbiAgICAgICAgaGlkZVNldHRpbmdzPXtzZXR0aW5nc1BhbmVsRGlzYWJsZWR9XG4gICAgICAgIHNldHRpbmdzPXtcbiAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBvbkNoYW5nZU1vZGVsPXtvbk1vZGVsQ2hhbmdlZH1cbiAgICAgICAgICAgIG9uQ2hhbmdlQ29uZmlndXJhdGlvbj17b25Db25maWd1cmF0aW9uQ2hhbmdlZH1cbiAgICAgICAgICAgIGdyb3Vwcz17e1xuICAgICAgICAgICAgICBTZXR0aW5nczogcGFuZWxJdGVtVHlwZSxcbiAgICAgICAgICAgICAgUHJvcGVydGllczogcGFuZWxQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIDxUeXBvZ3JhcGh5IGNvbXBvbmVudD1cImRpdlwiIHR5cGU9XCJib2R5MVwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5kZXNjcmlwdGlvbn0+XG4gICAgICAgICAge2luc3RydWN0aW9uPy5sYWJlbCB8fCAnJ31cbiAgICAgICAgPC9UeXBvZ3JhcGh5PlxuXG4gICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgICAgPElucHV0Q29udGFpbmVyIGxhYmVsPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsfSBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2V9XG4gICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICBub25FbXB0eT17ZmFsc2V9XG4gICAgICAgICAgICAgIGVycm9yPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3J9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBwbHVnaW5Qcm9wcz17Z2V0UGx1Z2luUHJvcHModGVhY2hlckluc3RydWN0aW9ucz8uaW5wdXRDb25maWd1cmF0aW9uKX1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3RlYWNoZXJJbnN0cnVjdGlvbnNFcnJvciAmJiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5lcnJvclRleHR9Pnt0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3J9PC9kaXY+fVxuICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICl9XG5cbiAgICAgICAge3Byb21wdEVuYWJsZWQgJiYgKFxuICAgICAgICAgIDxJbnB1dENvbnRhaW5lciBsYWJlbD17cHJvbXB0LmxhYmVsfSBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5wcm9tcHR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uUHJvbXB0Q2hhbmdlfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICBlcnJvcj17cHJvbXB0RXJyb3J9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBkaXNhYmxlVW5kZXJsaW5lXG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyhwcm9tcHQ/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICAgIG1heEltYWdlV2lkdGg9e2RlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17ZGVmYXVsdEltYWdlTWF4SGVpZ2h0fVxuICAgICAgICAgICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ9e3VwbG9hZFNvdW5kU3VwcG9ydH1cbiAgICAgICAgICAgICAgbGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHM9e1t7IGxhbmd1YWdlOiAnc3BhbmlzaCcgfSwgeyBsYW5ndWFnZTogJ3NwZWNpYWwnIH1dfVxuICAgICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtwcm9tcHRFcnJvciAmJiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5lcnJvclRleHR9Pntwcm9tcHRFcnJvcn08L2Rpdj59XG4gICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgKX1cblxuICAgICAgICA8Q29uZmlndXJlQ2hhcnRQYW5lbFxuICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNvbmZpZ0NoYW5nZX1cbiAgICAgICAgICBncmlkVmFsdWVzPXtncmlkVmFsdWVzfVxuICAgICAgICAgIGxhYmVsVmFsdWVzPXtsYWJlbFZhbHVlc31cbiAgICAgICAgICBjaGFydERpbWVuc2lvbnM9e2NoYXJ0RGltZW5zaW9uc31cbiAgICAgICAgICBjaGFydHM9e2NoYXJ0c31cbiAgICAgICAgICBzdHVkZW50TmV3Q2F0ZWdvcnlEZWZhdWx0TGFiZWw9e3N0dWRlbnROZXdDYXRlZ29yeURlZmF1bHRMYWJlbH1cbiAgICAgICAgICBhdmFpbGFibGVDaGFydFR5cGVzPXthdmFpbGFibGVDaGFydFR5cGVzfVxuICAgICAgICAgIGNoYXJ0VHlwZUxhYmVsPXtjaGFydFR5cGVMYWJlbH1cbiAgICAgICAgLz5cblxuICAgICAgICA8Q2hhcnRpbmdDb25maWdcbiAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgb25DaGFuZ2U9e29uTW9kZWxDaGFuZ2VkfVxuICAgICAgICAgIGNoYXJ0cz17Y2hhcnRzfVxuICAgICAgICAgIGxhYmVsc1BsYWNlaG9sZGVycz17bGFiZWxzUGxhY2Vob2xkZXJzfVxuICAgICAgICAgIHRpdGxlUGxhY2Vob2xkZXI9e3RpdGxlUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgc2hvd1BpeGVsR3VpZGVzPXtzaG93UGl4ZUd1aWRlc31cbiAgICAgICAgICBhdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzPXthdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzfVxuICAgICAgICAgIGNoYXJ0aW5nT3B0aW9ucz17Y2hhcnRpbmdPcHRpb25zfVxuICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgbGFiZWxzQ2hhcmFjdGVyc0xpbWl0PXtsYWJlbHNDaGFyYWN0ZXJzTGltaXR9XG4gICAgICAgIC8+XG5cbiAgICAgICAgPENvcnJlY3RSZXNwb25zZVxuICAgICAgICAgIGNvbmZpZz17Z3JhcGh9XG4gICAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbk1vZGVsQ2hhbmdlZH1cbiAgICAgICAgICBjaGFydHM9e2NoYXJ0c31cbiAgICAgICAgICBlcnJvcj17Y2F0ZWdvcnlFcnJvcnN9XG4gICAgICAgICAgY29ycmVjdEFuc3dlckVycm9ycz17Y29ycmVjdEFuc3dlckVycm9yc31cbiAgICAgICAgICBzdHVkZW50TmV3Q2F0ZWdvcnlEZWZhdWx0TGFiZWw9e3N0dWRlbnROZXdDYXRlZ29yeURlZmF1bHRMYWJlbH1cbiAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgIGxhYmVsc1BsYWNlaG9sZGVycz17bGFiZWxzUGxhY2Vob2xkZXJzfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYXRpb25hbGVFbmFibGVkICYmIChcbiAgICAgICAgICA8SW5wdXRDb250YWluZXIgbGFiZWw9e3JhdGlvbmFsZS5sYWJlbCB8fCAnUmF0aW9uYWxlJ30gY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdEhvbGRlcn0+XG4gICAgICAgICAgICA8RWRpdGFibGVIdG1sXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHR9XG4gICAgICAgICAgICAgIG1hcmt1cD17bW9kZWwucmF0aW9uYWxlIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblJhdGlvbmFsZUNoYW5nZX1cbiAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgIGVycm9yPXtyYXRpb25hbGVFcnJvcn1cbiAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyhyYXRpb25hbGU/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICAgIG1heEltYWdlV2lkdGg9eyhtYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucmF0aW9uYWxlKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5yYXRpb25hbGUpIHx8IGRlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgIGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzPXtbeyBsYW5ndWFnZTogJ3NwYW5pc2gnIH0sIHsgbGFuZ3VhZ2U6ICdzcGVjaWFsJyB9XX1cbiAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7cmF0aW9uYWxlRXJyb3IgJiYgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuZXJyb3JUZXh0fT57cmF0aW9uYWxlRXJyb3J9PC9kaXY+fVxuICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICl9XG4gICAgICA8L2xheW91dC5Db25maWdMYXlvdXQ+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoQ29uZmlndXJlKTtcbiJdfQ==
|