@pie-element/graphing 4.8.1-beta.3 → 4.8.1-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configure/lib/configure.js +326 -0
- package/configure/lib/configure.js.map +1 -0
- package/configure/lib/correct-response.js +471 -0
- package/configure/lib/correct-response.js.map +1 -0
- package/configure/lib/defaults.js +364 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/graphing-config.js +379 -0
- package/configure/lib/graphing-config.js.map +1 -0
- package/configure/lib/index.js +151 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/utils.js +137 -0
- package/configure/lib/utils.js.map +1 -0
- package/controller/lib/defaults.js +55 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +312 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/utils.js +282 -0
- package/controller/lib/utils.js.map +1 -0
- package/lib/index.js +87 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +165 -0
- package/lib/main.js.map +1 -0
- package/lib/utils.js +43 -0
- package/lib/utils.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.Tools = exports.CorrectResponse = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
18
|
+
var React = _interopRequireWildcard(require("react"));
|
|
19
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
20
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
|
+
var _styles = require("@material-ui/core/styles");
|
|
22
|
+
var _graphing = require("@pie-lib/graphing");
|
|
23
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
24
|
+
var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
|
|
25
|
+
var _lodash = require("lodash");
|
|
26
|
+
var _core = require("@material-ui/core");
|
|
27
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
28
|
+
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); }
|
|
29
|
+
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; }
|
|
30
|
+
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; }
|
|
31
|
+
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; }
|
|
32
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
33
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
34
|
+
var styles = function styles(theme) {
|
|
35
|
+
return {
|
|
36
|
+
column: {
|
|
37
|
+
flex: 1
|
|
38
|
+
},
|
|
39
|
+
graphingTools: {
|
|
40
|
+
color: '#ababab'
|
|
41
|
+
},
|
|
42
|
+
availableTools: {
|
|
43
|
+
marginTop: theme.spacing.unit,
|
|
44
|
+
display: 'flex'
|
|
45
|
+
},
|
|
46
|
+
availableTool: {
|
|
47
|
+
cursor: 'pointer',
|
|
48
|
+
margin: theme.spacing.unit,
|
|
49
|
+
padding: theme.spacing.unit,
|
|
50
|
+
border: '2px solid white',
|
|
51
|
+
textTransform: 'capitalize',
|
|
52
|
+
'&:hover': {
|
|
53
|
+
color: '#4d4d4d'
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
selectedTool: {
|
|
57
|
+
background: '#d8d8d8',
|
|
58
|
+
border: '2px solid #ababab'
|
|
59
|
+
},
|
|
60
|
+
container: {
|
|
61
|
+
border: '2px solid #ababab',
|
|
62
|
+
borderRadius: '4px',
|
|
63
|
+
padding: "0 ".concat(theme.spacing.unit * 4, "px ").concat(theme.spacing.unit * 2, "px"),
|
|
64
|
+
background: '#fafafa'
|
|
65
|
+
},
|
|
66
|
+
button: {
|
|
67
|
+
margin: "".concat(theme.spacing.unit * 3, "px 0"),
|
|
68
|
+
cursor: 'pointer',
|
|
69
|
+
background: '#eee',
|
|
70
|
+
padding: theme.spacing.unit * 1.5,
|
|
71
|
+
width: 'fit-content',
|
|
72
|
+
borderRadius: '4px',
|
|
73
|
+
'&:hover': {
|
|
74
|
+
background: '#d8d8d8'
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
responseTitle: {
|
|
78
|
+
display: 'flex',
|
|
79
|
+
alignItems: 'center',
|
|
80
|
+
marginTop: '20px'
|
|
81
|
+
},
|
|
82
|
+
iconButton: {
|
|
83
|
+
marginLeft: '6px',
|
|
84
|
+
color: '#6d6d6d',
|
|
85
|
+
'&:hover': {
|
|
86
|
+
cursor: 'pointer',
|
|
87
|
+
color: '#000000'
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
name: {
|
|
91
|
+
margin: '5px 0'
|
|
92
|
+
},
|
|
93
|
+
subtitleText: {
|
|
94
|
+
marginTop: theme.spacing.unit * 1.5,
|
|
95
|
+
marginBottom: theme.spacing.unit
|
|
96
|
+
},
|
|
97
|
+
toolsHeader: {
|
|
98
|
+
display: 'flex',
|
|
99
|
+
alignItems: 'center',
|
|
100
|
+
justifyContent: 'space-between'
|
|
101
|
+
},
|
|
102
|
+
defaultTool: {
|
|
103
|
+
display: 'flex',
|
|
104
|
+
alignItems: 'center',
|
|
105
|
+
width: '300px'
|
|
106
|
+
},
|
|
107
|
+
defaultToolSelect: {
|
|
108
|
+
marginLeft: theme.spacing.unit,
|
|
109
|
+
textTransform: 'uppercase',
|
|
110
|
+
color: '#4d4d4d'
|
|
111
|
+
},
|
|
112
|
+
menuItem: {
|
|
113
|
+
textTransform: 'uppercase'
|
|
114
|
+
},
|
|
115
|
+
noDefaultTool: {
|
|
116
|
+
padding: theme.spacing.unit / 2
|
|
117
|
+
},
|
|
118
|
+
error: {
|
|
119
|
+
color: 'red'
|
|
120
|
+
},
|
|
121
|
+
errorMessage: {
|
|
122
|
+
fontSize: '14px',
|
|
123
|
+
color: 'red',
|
|
124
|
+
marginTop: theme.spacing.unit
|
|
125
|
+
},
|
|
126
|
+
graphError: {
|
|
127
|
+
border: '2px solid red'
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
var Tools = function Tools(_ref) {
|
|
132
|
+
var classes = _ref.classes,
|
|
133
|
+
availableTools = _ref.availableTools,
|
|
134
|
+
defaultTool = _ref.defaultTool,
|
|
135
|
+
hasErrors = _ref.hasErrors,
|
|
136
|
+
toolbarTools = _ref.toolbarTools,
|
|
137
|
+
toggleToolBarTool = _ref.toggleToolBarTool,
|
|
138
|
+
onDefaultToolChange = _ref.onDefaultToolChange;
|
|
139
|
+
var allTools = availableTools || [];
|
|
140
|
+
var isLabelAvailable = allTools.includes('label');
|
|
141
|
+
var toolbarToolsNoLabel = (toolbarTools || []).filter(function (tool) {
|
|
142
|
+
return tool !== 'label';
|
|
143
|
+
});
|
|
144
|
+
if (isLabelAvailable) {
|
|
145
|
+
// label has to be placed at the end of the list
|
|
146
|
+
var allToolsNoLabel = allTools.filter(function (tool) {
|
|
147
|
+
return tool !== 'label';
|
|
148
|
+
});
|
|
149
|
+
allTools = [].concat((0, _toConsumableArray2["default"])(allToolsNoLabel), ['label']);
|
|
150
|
+
}
|
|
151
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
152
|
+
className: classes.graphingTools
|
|
153
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
154
|
+
className: classes.toolsHeader
|
|
155
|
+
}, /*#__PURE__*/React.createElement("span", null, "GRAPHING TOOLS"), toolbarToolsNoLabel.length > 0 && /*#__PURE__*/React.createElement("div", {
|
|
156
|
+
className: classes.defaultTool
|
|
157
|
+
}, /*#__PURE__*/React.createElement("span", null, "Default graphing tool:"), /*#__PURE__*/React.createElement(_core.Select, {
|
|
158
|
+
className: classes.defaultToolSelect,
|
|
159
|
+
onChange: onDefaultToolChange,
|
|
160
|
+
value: defaultTool,
|
|
161
|
+
disableUnderline: true
|
|
162
|
+
}, toolbarToolsNoLabel.map(function (tool, index) {
|
|
163
|
+
return /*#__PURE__*/React.createElement(_core.MenuItem, {
|
|
164
|
+
key: index,
|
|
165
|
+
className: classes.menuItem,
|
|
166
|
+
value: tool
|
|
167
|
+
}, tool);
|
|
168
|
+
})))), /*#__PURE__*/React.createElement("div", {
|
|
169
|
+
className: classes.availableTools
|
|
170
|
+
}, allTools.map(function (tool) {
|
|
171
|
+
var selected = toolbarTools.find(function (t) {
|
|
172
|
+
return t === tool;
|
|
173
|
+
});
|
|
174
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
175
|
+
key: tool,
|
|
176
|
+
className: (0, _classnames["default"])(classes.availableTool, selected && classes.selectedTool, hasErrors && tool !== 'label' && classes.error),
|
|
177
|
+
onClick: function onClick() {
|
|
178
|
+
return toggleToolBarTool(tool);
|
|
179
|
+
}
|
|
180
|
+
}, tool.toUpperCase());
|
|
181
|
+
})));
|
|
182
|
+
};
|
|
183
|
+
exports.Tools = Tools;
|
|
184
|
+
Tools.propTypes = {
|
|
185
|
+
classes: _propTypes["default"].object.isRequired,
|
|
186
|
+
toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
|
187
|
+
toggleToolBarTool: _propTypes["default"].func
|
|
188
|
+
};
|
|
189
|
+
var CorrectResponse = /*#__PURE__*/function (_React$Component) {
|
|
190
|
+
(0, _inherits2["default"])(CorrectResponse, _React$Component);
|
|
191
|
+
var _super = _createSuper(CorrectResponse);
|
|
192
|
+
function CorrectResponse() {
|
|
193
|
+
var _this;
|
|
194
|
+
(0, _classCallCheck2["default"])(this, CorrectResponse);
|
|
195
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
196
|
+
args[_key] = arguments[_key];
|
|
197
|
+
}
|
|
198
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
199
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
200
|
+
dialog: {
|
|
201
|
+
open: false
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleAlertDialog", function (open, callback) {
|
|
205
|
+
return _this.setState({
|
|
206
|
+
dialog: {
|
|
207
|
+
open: open
|
|
208
|
+
}
|
|
209
|
+
}, callback);
|
|
210
|
+
});
|
|
211
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMarks", function (key, marks) {
|
|
212
|
+
var _this$props = _this.props,
|
|
213
|
+
model = _this$props.model,
|
|
214
|
+
onChange = _this$props.onChange;
|
|
215
|
+
(0, _lodash.set)(model, "answers.".concat(key, ".marks"), marks);
|
|
216
|
+
onChange(model);
|
|
217
|
+
});
|
|
218
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "filterMarks", function (tool) {
|
|
219
|
+
var answers = _this.props.model.answers;
|
|
220
|
+
return Object.entries(answers || {}).reduce(function (object, _ref2) {
|
|
221
|
+
var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
|
|
222
|
+
key = _ref3[0],
|
|
223
|
+
answer = _ref3[1];
|
|
224
|
+
object[key] = _objectSpread(_objectSpread({}, answer), {}, {
|
|
225
|
+
marks: (answer.marks || []).filter(function (mark) {
|
|
226
|
+
return mark.type !== tool;
|
|
227
|
+
})
|
|
228
|
+
});
|
|
229
|
+
return object;
|
|
230
|
+
}, {});
|
|
231
|
+
});
|
|
232
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeToolbarTools", function (toolbarTools) {
|
|
233
|
+
var _this$props2 = _this.props,
|
|
234
|
+
model = _this$props2.model,
|
|
235
|
+
onChange = _this$props2.onChange;
|
|
236
|
+
model.toolbarTools = toolbarTools;
|
|
237
|
+
onChange(model);
|
|
238
|
+
});
|
|
239
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateModel", function (props) {
|
|
240
|
+
var _this$props3 = _this.props,
|
|
241
|
+
model = _this$props3.model,
|
|
242
|
+
onChange = _this$props3.onChange;
|
|
243
|
+
onChange(_objectSpread(_objectSpread({}, model), props));
|
|
244
|
+
});
|
|
245
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleToolBarTool", function (tool) {
|
|
246
|
+
var _this$props$model = _this.props.model,
|
|
247
|
+
defaultTool = _this$props$model.defaultTool,
|
|
248
|
+
toolbarTools = _this$props$model.toolbarTools,
|
|
249
|
+
_this$props$model$ans = _this$props$model.answers,
|
|
250
|
+
answers = _this$props$model$ans === void 0 ? {} : _this$props$model$ans;
|
|
251
|
+
var updatedToolbarTools = (0, _toConsumableArray2["default"])(toolbarTools);
|
|
252
|
+
var newDefaultTool = defaultTool;
|
|
253
|
+
var index = toolbarTools.findIndex(function (t) {
|
|
254
|
+
return tool === t;
|
|
255
|
+
});
|
|
256
|
+
if (index >= 0) {
|
|
257
|
+
var updatedAnswers = _this.filterMarks(tool);
|
|
258
|
+
updatedToolbarTools.splice(index, 1);
|
|
259
|
+
if (tool === defaultTool) {
|
|
260
|
+
var toolbarToolsNoLabel = (updatedToolbarTools || []).filter(function (tool) {
|
|
261
|
+
return tool !== 'label';
|
|
262
|
+
});
|
|
263
|
+
newDefaultTool = toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';
|
|
264
|
+
}
|
|
265
|
+
if (!(0, _lodash.isEqual)(answers, updatedAnswers)) {
|
|
266
|
+
_this.setState({
|
|
267
|
+
dialog: {
|
|
268
|
+
open: true,
|
|
269
|
+
title: 'Warning',
|
|
270
|
+
text: "Correct answer includes one or more ".concat(tool, " objects and all of them will be deleted."),
|
|
271
|
+
onConfirm: function onConfirm() {
|
|
272
|
+
return _this.handleAlertDialog(false, _this.updateModel({
|
|
273
|
+
toolbarTools: updatedToolbarTools,
|
|
274
|
+
answers: updatedAnswers,
|
|
275
|
+
defaultTool: newDefaultTool
|
|
276
|
+
}));
|
|
277
|
+
},
|
|
278
|
+
onClose: function onClose() {
|
|
279
|
+
return _this.handleAlertDialog(false);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
} else {
|
|
286
|
+
updatedToolbarTools.push(tool);
|
|
287
|
+
if (defaultTool === '' && tool !== 'label') {
|
|
288
|
+
newDefaultTool = tool;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
_this.updateModel({
|
|
292
|
+
toolbarTools: updatedToolbarTools,
|
|
293
|
+
defaultTool: newDefaultTool
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDefaultToolChange", function (event) {
|
|
297
|
+
var value = event.target.value;
|
|
298
|
+
_this.updateModel({
|
|
299
|
+
defaultTool: value
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addAlternateResponse", function () {
|
|
303
|
+
var _this$props4 = _this.props,
|
|
304
|
+
model = _this$props4.model,
|
|
305
|
+
onChange = _this$props4.onChange;
|
|
306
|
+
var _ref4 = model || {},
|
|
307
|
+
answers = _ref4.answers;
|
|
308
|
+
var answersKeys = Object.keys(answers || {});
|
|
309
|
+
(0, _lodash.set)(model, "answers.".concat("alternate".concat(answersKeys.length)), {
|
|
310
|
+
name: "Alternate ".concat(answersKeys.length),
|
|
311
|
+
marks: []
|
|
312
|
+
});
|
|
313
|
+
onChange(model);
|
|
314
|
+
});
|
|
315
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteAlternateResponse", function (key, answer) {
|
|
316
|
+
var _this$props5 = _this.props,
|
|
317
|
+
model = _this$props5.model,
|
|
318
|
+
onChange = _this$props5.onChange;
|
|
319
|
+
var _ref5 = model || {},
|
|
320
|
+
answers = _ref5.answers;
|
|
321
|
+
var _ref6 = answer || {},
|
|
322
|
+
_ref6$marks = _ref6.marks,
|
|
323
|
+
marks = _ref6$marks === void 0 ? [] : _ref6$marks,
|
|
324
|
+
name = _ref6.name;
|
|
325
|
+
var deleteAnswer = function deleteAnswer() {
|
|
326
|
+
delete answers[key];
|
|
327
|
+
onChange(model);
|
|
328
|
+
};
|
|
329
|
+
if (marks.length) {
|
|
330
|
+
_this.setState({
|
|
331
|
+
dialog: {
|
|
332
|
+
open: true,
|
|
333
|
+
title: 'Warning',
|
|
334
|
+
text: "".concat(name, " includes one or more shapes and the entire response will be deleted."),
|
|
335
|
+
onConfirm: function onConfirm() {
|
|
336
|
+
return _this.handleAlertDialog(false, deleteAnswer);
|
|
337
|
+
},
|
|
338
|
+
onClose: function onClose() {
|
|
339
|
+
return _this.handleAlertDialog(false);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
deleteAnswer();
|
|
346
|
+
});
|
|
347
|
+
return _this;
|
|
348
|
+
}
|
|
349
|
+
(0, _createClass2["default"])(CorrectResponse, [{
|
|
350
|
+
key: "render",
|
|
351
|
+
value: function render() {
|
|
352
|
+
var _this2 = this;
|
|
353
|
+
var _this$props6 = this.props,
|
|
354
|
+
availableTools = _this$props6.availableTools,
|
|
355
|
+
classes = _this$props6.classes,
|
|
356
|
+
errors = _this$props6.errors,
|
|
357
|
+
model = _this$props6.model;
|
|
358
|
+
var dialog = this.state.dialog;
|
|
359
|
+
var _ref7 = model || {},
|
|
360
|
+
_ref7$answers = _ref7.answers,
|
|
361
|
+
answers = _ref7$answers === void 0 ? {} : _ref7$answers,
|
|
362
|
+
arrows = _ref7.arrows,
|
|
363
|
+
backgroundMarks = _ref7.backgroundMarks,
|
|
364
|
+
coordinatesOnHover = _ref7.coordinatesOnHover,
|
|
365
|
+
defaultTool = _ref7.defaultTool,
|
|
366
|
+
domain = _ref7.domain,
|
|
367
|
+
_ref7$graph = _ref7.graph,
|
|
368
|
+
graph = _ref7$graph === void 0 ? {} : _ref7$graph,
|
|
369
|
+
labels = _ref7.labels,
|
|
370
|
+
labelsEnabled = _ref7.labelsEnabled,
|
|
371
|
+
range = _ref7.range,
|
|
372
|
+
title = _ref7.title,
|
|
373
|
+
titleEnabled = _ref7.titleEnabled,
|
|
374
|
+
toolbarTools = _ref7.toolbarTools;
|
|
375
|
+
var _ref8 = errors || {},
|
|
376
|
+
_ref8$correctAnswerEr = _ref8.correctAnswerErrors,
|
|
377
|
+
correctAnswerErrors = _ref8$correctAnswerEr === void 0 ? {} : _ref8$correctAnswerEr,
|
|
378
|
+
toolbarToolsError = _ref8.toolbarToolsError;
|
|
379
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_core.Typography, {
|
|
380
|
+
component: "div",
|
|
381
|
+
variant: "subheading"
|
|
382
|
+
}, /*#__PURE__*/React.createElement("span", null, "Define Tool Set and Correct Response")), /*#__PURE__*/React.createElement(_core.Typography, {
|
|
383
|
+
component: "div",
|
|
384
|
+
variant: "body1",
|
|
385
|
+
className: classes.subtitleText
|
|
386
|
+
}, /*#__PURE__*/React.createElement("span", null, "Use this interface to choose which graphing tools students will be able to use, and to define the correct answer")), /*#__PURE__*/React.createElement(Tools, {
|
|
387
|
+
classes: classes,
|
|
388
|
+
availableTools: availableTools,
|
|
389
|
+
defaultTool: defaultTool,
|
|
390
|
+
hasErrors: !!toolbarToolsError,
|
|
391
|
+
onDefaultToolChange: this.onDefaultToolChange,
|
|
392
|
+
toggleToolBarTool: this.toggleToolBarTool,
|
|
393
|
+
toolbarTools: toolbarTools
|
|
394
|
+
}), toolbarToolsError && /*#__PURE__*/React.createElement("div", {
|
|
395
|
+
className: classes.errorMessage
|
|
396
|
+
}, toolbarToolsError), Object.entries(answers || {}).map(function (_ref9) {
|
|
397
|
+
var _ref10 = (0, _slicedToArray2["default"])(_ref9, 2),
|
|
398
|
+
key = _ref10[0],
|
|
399
|
+
answer = _ref10[1];
|
|
400
|
+
var _ref11 = answer || {},
|
|
401
|
+
_ref11$marks = _ref11.marks,
|
|
402
|
+
marks = _ref11$marks === void 0 ? [] : _ref11$marks,
|
|
403
|
+
name = _ref11.name;
|
|
404
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
405
|
+
key: "correct-response-graph-".concat(name)
|
|
406
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
407
|
+
className: classes.responseTitle
|
|
408
|
+
}, /*#__PURE__*/React.createElement("p", {
|
|
409
|
+
className: classes.name
|
|
410
|
+
}, name), key !== 'correctAnswer' && /*#__PURE__*/React.createElement(_Delete["default"], {
|
|
411
|
+
className: classes.iconButton,
|
|
412
|
+
onClick: function onClick() {
|
|
413
|
+
return _this2.deleteAlternateResponse(key, answer);
|
|
414
|
+
}
|
|
415
|
+
})), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
|
|
416
|
+
className: correctAnswerErrors[key] && classes.graphError,
|
|
417
|
+
axesSettings: {
|
|
418
|
+
includeArrows: arrows
|
|
419
|
+
},
|
|
420
|
+
backgroundMarks: backgroundMarks,
|
|
421
|
+
coordinatesOnHover: coordinatesOnHover,
|
|
422
|
+
disabledLabels: true,
|
|
423
|
+
disabledTitle: true,
|
|
424
|
+
domain: domain,
|
|
425
|
+
draggableTools: key === 'correctAnswer',
|
|
426
|
+
labels: labels,
|
|
427
|
+
marks: marks,
|
|
428
|
+
onChangeMarks: function onChangeMarks(newMarks) {
|
|
429
|
+
return _this2.changeMarks(key, newMarks);
|
|
430
|
+
},
|
|
431
|
+
range: range,
|
|
432
|
+
showLabels: labelsEnabled,
|
|
433
|
+
showTitle: titleEnabled,
|
|
434
|
+
size: {
|
|
435
|
+
width: graph.width,
|
|
436
|
+
height: graph.height
|
|
437
|
+
},
|
|
438
|
+
title: title,
|
|
439
|
+
toolbarTools: toolbarTools,
|
|
440
|
+
onChangeTools: function onChangeTools(toolbarTools) {
|
|
441
|
+
return _this2.updateModel({
|
|
442
|
+
toolbarTools: toolbarTools
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}), correctAnswerErrors[key] && /*#__PURE__*/React.createElement("div", {
|
|
446
|
+
className: classes.errorMessage
|
|
447
|
+
}, correctAnswerErrors[key]));
|
|
448
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
449
|
+
className: classes.button,
|
|
450
|
+
onClick: this.addAlternateResponse
|
|
451
|
+
}, "ADD ALTERNATE"), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
|
|
452
|
+
open: dialog.open,
|
|
453
|
+
title: dialog.title,
|
|
454
|
+
text: dialog.text,
|
|
455
|
+
onClose: dialog.onClose,
|
|
456
|
+
onConfirm: dialog.onConfirm
|
|
457
|
+
}));
|
|
458
|
+
}
|
|
459
|
+
}]);
|
|
460
|
+
return CorrectResponse;
|
|
461
|
+
}(React.Component);
|
|
462
|
+
exports.CorrectResponse = CorrectResponse;
|
|
463
|
+
(0, _defineProperty2["default"])(CorrectResponse, "propTypes", {
|
|
464
|
+
classes: _propTypes["default"].object.isRequired,
|
|
465
|
+
model: _propTypes["default"].object.isRequired,
|
|
466
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
467
|
+
toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].String)
|
|
468
|
+
});
|
|
469
|
+
var _default = (0, _styles.withStyles)(styles)(CorrectResponse);
|
|
470
|
+
exports["default"] = _default;
|
|
471
|
+
//# sourceMappingURL=correct-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correct-response.js","names":["React","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_propTypes","_styles","_graphing","_configUi","_Delete","_lodash","_core","_renderUi","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","styles","theme","column","flex","graphingTools","color","availableTools","marginTop","spacing","unit","display","availableTool","cursor","margin","padding","border","textTransform","selectedTool","background","container","borderRadius","concat","button","width","responseTitle","alignItems","iconButton","marginLeft","name","subtitleText","marginBottom","toolsHeader","justifyContent","defaultTool","defaultToolSelect","menuItem","noDefaultTool","error","errorMessage","fontSize","graphError","Tools","_ref","classes","hasErrors","toolbarTools","toggleToolBarTool","onDefaultToolChange","allTools","isLabelAvailable","includes","toolbarToolsNoLabel","tool","allToolsNoLabel","_toConsumableArray2","createElement","className","Select","onChange","value","disableUnderline","map","index","MenuItem","selected","find","t","classnames","onClick","toUpperCase","exports","propTypes","PropTypes","isRequired","arrayOf","string","func","CorrectResponse","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","_assertThisInitialized2","dialog","open","callback","setState","marks","_this$props","props","model","answers","entries","reduce","_ref2","_ref3","_slicedToArray2","answer","mark","type","_this$props2","_this$props3","_this$props$model","_this$props$model$ans","updatedToolbarTools","newDefaultTool","findIndex","updatedAnswers","filterMarks","splice","isEqual","title","text","onConfirm","handleAlertDialog","updateModel","onClose","event","_this$props4","_ref4","answersKeys","_this$props5","_ref5","_ref6","_ref6$marks","deleteAnswer","_createClass2","render","_this2","_this$props6","errors","state","_ref7","_ref7$answers","arrows","backgroundMarks","coordinatesOnHover","domain","_ref7$graph","graph","labels","labelsEnabled","range","titleEnabled","_ref8","_ref8$correctAnswerEr","correctAnswerErrors","toolbarToolsError","Typography","component","variant","_ref9","_ref10","_ref11","_ref11$marks","deleteAlternateResponse","GraphContainer","axesSettings","includeArrows","disabledLabels","disabledTitle","draggableTools","onChangeMarks","newMarks","changeMarks","showLabels","showTitle","size","height","onChangeTools","addAlternateResponse","AlertDialog","Component","String","_default","withStyles"],"sources":["../src/correct-response.jsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer as Graph } from '@pie-lib/graphing';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Delete from '@material-ui/icons/Delete';\nimport { set, isEqual } from 'lodash';\nimport { MenuItem, Select, Typography } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n column: {\n flex: 1,\n },\n graphingTools: {\n color: '#ababab',\n },\n availableTools: {\n marginTop: theme.spacing.unit,\n display: 'flex',\n },\n availableTool: {\n cursor: 'pointer',\n margin: theme.spacing.unit,\n padding: theme.spacing.unit,\n border: '2px solid white',\n textTransform: 'capitalize',\n '&:hover': {\n color: '#4d4d4d',\n },\n },\n selectedTool: {\n background: '#d8d8d8',\n border: '2px solid #ababab',\n },\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `0 ${theme.spacing.unit * 4}px ${theme.spacing.unit * 2}px`,\n background: '#fafafa',\n },\n button: {\n margin: `${theme.spacing.unit * 3}px 0`,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 1.5,\n width: 'fit-content',\n borderRadius: '4px',\n '&:hover': {\n background: '#d8d8d8',\n },\n },\n responseTitle: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '20px',\n },\n iconButton: {\n marginLeft: '6px',\n color: '#6d6d6d',\n '&:hover': {\n cursor: 'pointer',\n color: '#000000',\n },\n },\n name: {\n margin: '5px 0',\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit,\n },\n toolsHeader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n defaultTool: {\n display: 'flex',\n alignItems: 'center',\n width: '300px',\n },\n defaultToolSelect: {\n marginLeft: theme.spacing.unit,\n textTransform: 'uppercase',\n color: '#4d4d4d',\n },\n menuItem: {\n textTransform: 'uppercase',\n },\n noDefaultTool: {\n padding: theme.spacing.unit / 2,\n },\n error: {\n color: 'red',\n },\n errorMessage: {\n fontSize: '14px',\n color: 'red',\n marginTop: theme.spacing.unit,\n },\n graphError: {\n border: '2px solid red',\n },\n});\n\nexport const Tools = ({\n classes,\n availableTools,\n defaultTool,\n hasErrors,\n toolbarTools,\n toggleToolBarTool,\n onDefaultToolChange,\n}) => {\n let allTools = availableTools || [];\n const isLabelAvailable = allTools.includes('label');\n const toolbarToolsNoLabel = (toolbarTools || []).filter(\n (tool) => tool !== 'label'\n );\n\n if (isLabelAvailable) {\n // label has to be placed at the end of the list\n const allToolsNoLabel = allTools.filter((tool) => tool !== 'label');\n allTools = [...allToolsNoLabel, 'label'];\n }\n\n return (\n <div className={classes.graphingTools}>\n <div className={classes.toolsHeader}>\n <span>GRAPHING TOOLS</span>\n {toolbarToolsNoLabel.length > 0 && (\n <div className={classes.defaultTool}>\n <span>Default graphing tool:</span>\n <Select\n className={classes.defaultToolSelect}\n onChange={onDefaultToolChange}\n value={defaultTool}\n disableUnderline\n >\n {toolbarToolsNoLabel.map((tool, index) => (\n <MenuItem key={index} className={classes.menuItem} value={tool}>\n {tool}\n </MenuItem>\n ))}\n </Select>\n </div>\n )}\n </div>\n <div className={classes.availableTools}>\n {allTools.map((tool) => {\n const selected = toolbarTools.find((t) => t === tool);\n\n return (\n <div\n key={tool}\n className={classnames(\n classes.availableTool,\n selected && classes.selectedTool,\n hasErrors && tool !== 'label' && classes.error\n )}\n onClick={() => toggleToolBarTool(tool)}\n >\n {tool.toUpperCase()}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nTools.propTypes = {\n classes: PropTypes.object.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n toggleToolBarTool: PropTypes.func,\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.String),\n };\n\n state = {\n dialog: {\n open: false,\n },\n };\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback\n );\n\n changeMarks = (key, marks) => {\n const { model, onChange } = this.props;\n\n set(model, `answers.${key}.marks`, marks);\n onChange(model);\n };\n\n filterMarks = (tool) => {\n const {\n model: { answers },\n } = this.props;\n\n return Object.entries(answers || {}).reduce((object, [key, answer]) => {\n object[key] = {\n ...answer,\n marks: (answer.marks || []).filter((mark) => mark.type !== tool),\n };\n\n return object;\n }, {});\n };\n\n changeToolbarTools = (toolbarTools) => {\n const { model, onChange } = this.props;\n model.toolbarTools = toolbarTools;\n\n onChange(model);\n };\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n ...props,\n });\n };\n\n toggleToolBarTool = (tool) => {\n const {\n model: { defaultTool, toolbarTools, answers = {} },\n } = this.props;\n const updatedToolbarTools = [...toolbarTools];\n let newDefaultTool = defaultTool;\n\n const index = toolbarTools.findIndex((t) => tool === t);\n\n if (index >= 0) {\n const updatedAnswers = this.filterMarks(tool);\n updatedToolbarTools.splice(index, 1);\n\n if (tool === defaultTool) {\n const toolbarToolsNoLabel = (updatedToolbarTools || []).filter(\n (tool) => tool !== 'label'\n );\n newDefaultTool =\n (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n }\n\n if (!isEqual(answers, updatedAnswers)) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `Correct answer includes one or more ${tool} objects and all of them will be deleted.`,\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n this.updateModel({\n toolbarTools: updatedToolbarTools,\n answers: updatedAnswers,\n defaultTool: newDefaultTool,\n })\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n\n return;\n }\n } else {\n updatedToolbarTools.push(tool);\n\n if (defaultTool === '' && tool !== 'label') {\n newDefaultTool = tool;\n }\n }\n\n this.updateModel({\n toolbarTools: updatedToolbarTools,\n defaultTool: newDefaultTool,\n });\n };\n\n onDefaultToolChange = (event) => {\n const { value } = event.target;\n\n this.updateModel({ defaultTool: value });\n };\n\n addAlternateResponse = () => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const answersKeys = Object.keys(answers || {});\n\n set(model, `answers.${`alternate${answersKeys.length}`}`, {\n name: `Alternate ${answersKeys.length}`,\n marks: [],\n });\n onChange(model);\n };\n\n deleteAlternateResponse = (key, answer) => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const { marks = [], name } = answer || {};\n\n const deleteAnswer = () => {\n delete answers[key];\n onChange(model);\n };\n\n if (marks.length) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `${name} includes one or more shapes and the entire response will be deleted.`,\n onConfirm: () => this.handleAlertDialog(false, deleteAnswer),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n\n return;\n }\n\n deleteAnswer();\n };\n\n render() {\n const { availableTools, classes, errors, model } = this.props;\n const { dialog } = this.state;\n const {\n answers = {},\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n defaultTool,\n domain,\n graph = {},\n labels,\n labelsEnabled,\n range,\n title,\n titleEnabled,\n toolbarTools,\n } = model || {};\n const { correctAnswerErrors = {}, toolbarToolsError } = errors || {};\n\n return (\n <div>\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Tool Set and Correct Response</span>\n </Typography>\n\n <Typography\n component=\"div\"\n variant=\"body1\"\n className={classes.subtitleText}\n >\n <span>\n Use this interface to choose which graphing tools students will be\n able to use, and to define the correct answer\n </span>\n </Typography>\n\n <Tools\n classes={classes}\n availableTools={availableTools}\n defaultTool={defaultTool}\n hasErrors={!!toolbarToolsError}\n onDefaultToolChange={this.onDefaultToolChange}\n toggleToolBarTool={this.toggleToolBarTool}\n toolbarTools={toolbarTools}\n />\n\n {toolbarToolsError && (\n <div className={classes.errorMessage}>{toolbarToolsError}</div>\n )}\n\n {Object.entries(answers || {}).map(([key, answer]) => {\n const { marks = [], name } = answer || {};\n\n return (\n <div key={`correct-response-graph-${name}`}>\n <div className={classes.responseTitle}>\n <p className={classes.name}>{name}</p>\n {key !== 'correctAnswer' && (\n <Delete\n className={classes.iconButton}\n onClick={() => this.deleteAlternateResponse(key, answer)}\n />\n )}\n </div>\n\n <Graph\n className={correctAnswerErrors[key] && classes.graphError}\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n draggableTools={key === 'correctAnswer'}\n labels={labels}\n marks={marks}\n onChangeMarks={(newMarks) => this.changeMarks(key, newMarks)}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={toolbarTools}\n onChangeTools={(toolbarTools) =>\n this.updateModel({ toolbarTools })\n }\n />\n\n {correctAnswerErrors[key] && (\n <div className={classes.errorMessage}>\n {correctAnswerErrors[key]}\n </div>\n )}\n </div>\n );\n })}\n\n <div className={classes.button} onClick={this.addAlternateResponse}>\n ADD ALTERNATE\n </div>\n\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAA2C,SAAAW,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAb,wBAAAiB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAZ,MAAA,CAAAY,IAAA,CAAAF,MAAA,OAAAV,MAAA,CAAAa,qBAAA,QAAAC,OAAA,GAAAd,MAAA,CAAAa,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhB,MAAA,CAAAE,wBAAA,CAAAQ,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAb,OAAA,CAAAT,MAAA,CAAAyB,MAAA,OAAAC,OAAA,WAAAvB,GAAA,QAAAwB,gBAAA,aAAAN,MAAA,EAAAlB,GAAA,EAAAsB,MAAA,CAAAtB,GAAA,SAAAH,MAAA,CAAA4B,yBAAA,GAAA5B,MAAA,CAAA6B,gBAAA,CAAAR,MAAA,EAAArB,MAAA,CAAA4B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAT,MAAA,CAAAyB,MAAA,GAAAC,OAAA,WAAAvB,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAoB,MAAA,EAAAlB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAuB,MAAA,EAAAtB,GAAA,iBAAAkB,MAAA;AAAA,SAAAS,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,aAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,mBAAAG,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAN,KAAA,EAAAZ,SAAA,EAAAe,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAhB,KAAA,OAAAI,SAAA,gBAAAmB,2BAAA,mBAAAL,MAAA;AAAA,SAAAJ,0BAAA,eAAAO,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAE,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAzC,SAAA,CAAA0C,OAAA,CAAAxC,IAAA,CAAAkC,OAAA,CAAAC,SAAA,CAAAI,OAAA,8CAAAE,CAAA;AAE3C,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAIC,KAAK;EAAA,OAAM;IACzBC,MAAM,EAAE;MACNC,IAAI,EAAE;IACR,CAAC;IACDC,aAAa,EAAE;MACbC,KAAK,EAAE;IACT,CAAC;IACDC,cAAc,EAAE;MACdC,SAAS,EAAEN,KAAK,CAACO,OAAO,CAACC,IAAI;MAC7BC,OAAO,EAAE;IACX,CAAC;IACDC,aAAa,EAAE;MACbC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAEZ,KAAK,CAACO,OAAO,CAACC,IAAI;MAC1BK,OAAO,EAAEb,KAAK,CAACO,OAAO,CAACC,IAAI;MAC3BM,MAAM,EAAE,iBAAiB;MACzBC,aAAa,EAAE,YAAY;MAC3B,SAAS,EAAE;QACTX,KAAK,EAAE;MACT;IACF,CAAC;IACDY,YAAY,EAAE;MACZC,UAAU,EAAE,SAAS;MACrBH,MAAM,EAAE;IACV,CAAC;IACDI,SAAS,EAAE;MACTJ,MAAM,EAAE,mBAAmB;MAC3BK,YAAY,EAAE,KAAK;MACnBN,OAAO,OAAAO,MAAA,CAAOpB,KAAK,CAACO,OAAO,CAACC,IAAI,GAAG,CAAC,SAAAY,MAAA,CAAMpB,KAAK,CAACO,OAAO,CAACC,IAAI,GAAG,CAAC,OAAI;MACpES,UAAU,EAAE;IACd,CAAC;IACDI,MAAM,EAAE;MACNT,MAAM,KAAAQ,MAAA,CAAKpB,KAAK,CAACO,OAAO,CAACC,IAAI,GAAG,CAAC,SAAM;MACvCG,MAAM,EAAE,SAAS;MACjBM,UAAU,EAAE,MAAM;MAClBJ,OAAO,EAAEb,KAAK,CAACO,OAAO,CAACC,IAAI,GAAG,GAAG;MACjCc,KAAK,EAAE,aAAa;MACpBH,YAAY,EAAE,KAAK;MACnB,SAAS,EAAE;QACTF,UAAU,EAAE;MACd;IACF,CAAC;IACDM,aAAa,EAAE;MACbd,OAAO,EAAE,MAAM;MACfe,UAAU,EAAE,QAAQ;MACpBlB,SAAS,EAAE;IACb,CAAC;IACDmB,UAAU,EAAE;MACVC,UAAU,EAAE,KAAK;MACjBtB,KAAK,EAAE,SAAS;MAChB,SAAS,EAAE;QACTO,MAAM,EAAE,SAAS;QACjBP,KAAK,EAAE;MACT;IACF,CAAC;IACDuB,IAAI,EAAE;MACJf,MAAM,EAAE;IACV,CAAC;IACDgB,YAAY,EAAE;MACZtB,SAAS,EAAEN,KAAK,CAACO,OAAO,CAACC,IAAI,GAAG,GAAG;MACnCqB,YAAY,EAAE7B,KAAK,CAACO,OAAO,CAACC;IAC9B,CAAC;IACDsB,WAAW,EAAE;MACXrB,OAAO,EAAE,MAAM;MACfe,UAAU,EAAE,QAAQ;MACpBO,cAAc,EAAE;IAClB,CAAC;IACDC,WAAW,EAAE;MACXvB,OAAO,EAAE,MAAM;MACfe,UAAU,EAAE,QAAQ;MACpBF,KAAK,EAAE;IACT,CAAC;IACDW,iBAAiB,EAAE;MACjBP,UAAU,EAAE1B,KAAK,CAACO,OAAO,CAACC,IAAI;MAC9BO,aAAa,EAAE,WAAW;MAC1BX,KAAK,EAAE;IACT,CAAC;IACD8B,QAAQ,EAAE;MACRnB,aAAa,EAAE;IACjB,CAAC;IACDoB,aAAa,EAAE;MACbtB,OAAO,EAAEb,KAAK,CAACO,OAAO,CAACC,IAAI,GAAG;IAChC,CAAC;IACD4B,KAAK,EAAE;MACLhC,KAAK,EAAE;IACT,CAAC;IACDiC,YAAY,EAAE;MACZC,QAAQ,EAAE,MAAM;MAChBlC,KAAK,EAAE,KAAK;MACZE,SAAS,EAAEN,KAAK,CAACO,OAAO,CAACC;IAC3B,CAAC;IACD+B,UAAU,EAAE;MACVzB,MAAM,EAAE;IACV;EACF,CAAC;AAAA,CAAC;AAEK,IAAM0B,KAAK,GAAG,SAARA,KAAKA,CAAAC,IAAA,EAQZ;EAAA,IAPJC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPrC,cAAc,GAAAoC,IAAA,CAAdpC,cAAc;IACd2B,WAAW,GAAAS,IAAA,CAAXT,WAAW;IACXW,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IACZC,iBAAiB,GAAAJ,IAAA,CAAjBI,iBAAiB;IACjBC,mBAAmB,GAAAL,IAAA,CAAnBK,mBAAmB;EAEnB,IAAIC,QAAQ,GAAG1C,cAAc,IAAI,EAAE;EACnC,IAAM2C,gBAAgB,GAAGD,QAAQ,CAACE,QAAQ,CAAC,OAAO,CAAC;EACnD,IAAMC,mBAAmB,GAAG,CAACN,YAAY,IAAI,EAAE,EAAE9E,MAAM,CACrD,UAACqF,IAAI;IAAA,OAAKA,IAAI,KAAK,OAAO;EAAA,CAC5B,CAAC;EAED,IAAIH,gBAAgB,EAAE;IACpB;IACA,IAAMI,eAAe,GAAGL,QAAQ,CAACjF,MAAM,CAAC,UAACqF,IAAI;MAAA,OAAKA,IAAI,KAAK,OAAO;IAAA,EAAC;IACnEJ,QAAQ,MAAA3B,MAAA,KAAAiC,mBAAA,aAAOD,eAAe,IAAE,OAAO,EAAC;EAC1C;EAEA,oBACE/H,KAAA,CAAAiI,aAAA;IAAKC,SAAS,EAAEb,OAAO,CAACvC;EAAc,gBACpC9E,KAAA,CAAAiI,aAAA;IAAKC,SAAS,EAAEb,OAAO,CAACZ;EAAY,gBAClCzG,KAAA,CAAAiI,aAAA,eAAM,gBAAoB,CAAC,EAC1BJ,mBAAmB,CAAC3E,MAAM,GAAG,CAAC,iBAC7BlD,KAAA,CAAAiI,aAAA;IAAKC,SAAS,EAAEb,OAAO,CAACV;EAAY,gBAClC3G,KAAA,CAAAiI,aAAA,eAAM,wBAA4B,CAAC,eACnCjI,KAAA,CAAAiI,aAAA,CAACtH,KAAA,CAAAwH,MAAM;IACLD,SAAS,EAAEb,OAAO,CAACT,iBAAkB;IACrCwB,QAAQ,EAAEX,mBAAoB;IAC9BY,KAAK,EAAE1B,WAAY;IACnB2B,gBAAgB;EAAA,GAEfT,mBAAmB,CAACU,GAAG,CAAC,UAACT,IAAI,EAAEU,KAAK;IAAA,oBACnCxI,KAAA,CAAAiI,aAAA,CAACtH,KAAA,CAAA8H,QAAQ;MAAC5G,GAAG,EAAE2G,KAAM;MAACN,SAAS,EAAEb,OAAO,CAACR,QAAS;MAACwB,KAAK,EAAEP;IAAK,GAC5DA,IACO,CAAC;EAAA,CACZ,CACK,CACL,CAEJ,CAAC,eACN9H,KAAA,CAAAiI,aAAA;IAAKC,SAAS,EAAEb,OAAO,CAACrC;EAAe,GACpC0C,QAAQ,CAACa,GAAG,CAAC,UAACT,IAAI,EAAK;IACtB,IAAMY,QAAQ,GAAGnB,YAAY,CAACoB,IAAI,CAAC,UAACC,CAAC;MAAA,OAAKA,CAAC,KAAKd,IAAI;IAAA,EAAC;IAErD,oBACE9H,KAAA,CAAAiI,aAAA;MACEpG,GAAG,EAAEiG,IAAK;MACVI,SAAS,EAAE,IAAAW,sBAAU,EACnBxB,OAAO,CAAChC,aAAa,EACrBqD,QAAQ,IAAIrB,OAAO,CAAC1B,YAAY,EAChC2B,SAAS,IAAIQ,IAAI,KAAK,OAAO,IAAIT,OAAO,CAACN,KAC3C,CAAE;MACF+B,OAAO,EAAE,SAAAA,QAAA;QAAA,OAAMtB,iBAAiB,CAACM,IAAI,CAAC;MAAA;IAAC,GAEtCA,IAAI,CAACiB,WAAW,CAAC,CACf,CAAC;EAEV,CAAC,CACE,CACF,CAAC;AAEV,CAAC;AAACC,OAAA,CAAA7B,KAAA,GAAAA,KAAA;AAEFA,KAAK,CAAC8B,SAAS,GAAG;EAChB5B,OAAO,EAAE6B,qBAAS,CAAC9G,MAAM,CAAC+G,UAAU;EACpC5B,YAAY,EAAE2B,qBAAS,CAACE,OAAO,CAACF,qBAAS,CAACG,MAAM,CAAC;EACjD7B,iBAAiB,EAAE0B,qBAAS,CAACI;AAC/B,CAAC;AAAC,IAEWC,eAAe,0BAAAC,gBAAA;EAAA,IAAAC,UAAA,aAAAF,eAAA,EAAAC,gBAAA;EAAA,IAAAE,MAAA,GAAAlG,YAAA,CAAA+F,eAAA;EAAA,SAAAA,gBAAA;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,mBAAAL,eAAA;IAAA,SAAAM,IAAA,GAAA5G,SAAA,CAAAC,MAAA,EAAA4G,IAAA,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAA/G,SAAA,CAAA+G,IAAA;IAAA;IAAAL,KAAA,GAAAD,MAAA,CAAA1H,IAAA,CAAAa,KAAA,CAAA6G,MAAA,SAAA3D,MAAA,CAAA+D,IAAA;IAAA,IAAAzG,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,YAQlB;MACNO,MAAM,EAAE;QACNC,IAAI,EAAE;MACR;IACF,CAAC;IAAA,IAAA9G,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,wBAEmB,UAACQ,IAAI,EAAEC,QAAQ;MAAA,OACjCT,KAAA,CAAKU,QAAQ,CACX;QACEH,MAAM,EAAE;UAAEC,IAAI,EAAJA;QAAK;MACjB,CAAC,EACDC,QACF,CAAC;IAAA;IAAA,IAAA/G,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,kBAEW,UAAC9H,GAAG,EAAEyI,KAAK,EAAK;MAC5B,IAAAC,WAAA,GAA4BZ,KAAA,CAAKa,KAAK;QAA9BC,KAAK,GAAAF,WAAA,CAALE,KAAK;QAAErC,QAAQ,GAAAmC,WAAA,CAARnC,QAAQ;MAEvB,IAAAlG,WAAG,EAACuI,KAAK,aAAA1E,MAAA,CAAalE,GAAG,aAAUyI,KAAK,CAAC;MACzClC,QAAQ,CAACqC,KAAK,CAAC;IACjB,CAAC;IAAA,IAAApH,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,kBAEa,UAAC7B,IAAI,EAAK;MACtB,IACW4C,OAAO,GACdf,KAAA,CAAKa,KAAK,CADZC,KAAK,CAAIC,OAAO;MAGlB,OAAOhJ,MAAM,CAACiJ,OAAO,CAACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAACE,MAAM,CAAC,UAACxI,MAAM,EAAAyI,KAAA,EAAoB;QAAA,IAAAC,KAAA,OAAAC,eAAA,aAAAF,KAAA;UAAjBhJ,GAAG,GAAAiJ,KAAA;UAAEE,MAAM,GAAAF,KAAA;QAC/D1I,MAAM,CAACP,GAAG,CAAC,GAAAiB,aAAA,CAAAA,aAAA,KACNkI,MAAM;UACTV,KAAK,EAAE,CAACU,MAAM,CAACV,KAAK,IAAI,EAAE,EAAE7H,MAAM,CAAC,UAACwI,IAAI;YAAA,OAAKA,IAAI,CAACC,IAAI,KAAKpD,IAAI;UAAA;QAAC,EACjE;QAED,OAAO1F,MAAM;MACf,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAAA,IAAAiB,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,yBAEoB,UAACpC,YAAY,EAAK;MACrC,IAAA4D,YAAA,GAA4BxB,KAAA,CAAKa,KAAK;QAA9BC,KAAK,GAAAU,YAAA,CAALV,KAAK;QAAErC,QAAQ,GAAA+C,YAAA,CAAR/C,QAAQ;MACvBqC,KAAK,CAAClD,YAAY,GAAGA,YAAY;MAEjCa,QAAQ,CAACqC,KAAK,CAAC;IACjB,CAAC;IAAA,IAAApH,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,kBAEa,UAACa,KAAK,EAAK;MACvB,IAAAY,YAAA,GAA4BzB,KAAA,CAAKa,KAAK;QAA9BC,KAAK,GAAAW,YAAA,CAALX,KAAK;QAAErC,QAAQ,GAAAgD,YAAA,CAARhD,QAAQ;MAEvBA,QAAQ,CAAAtF,aAAA,CAAAA,aAAA,KACH2H,KAAK,GACLD,KAAK,CACT,CAAC;IACJ,CAAC;IAAA,IAAAnH,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,wBAEmB,UAAC7B,IAAI,EAAK;MAC5B,IAAAuD,iBAAA,GAEI1B,KAAA,CAAKa,KAAK,CADZC,KAAK;QAAI9D,WAAW,GAAA0E,iBAAA,CAAX1E,WAAW;QAAEY,YAAY,GAAA8D,iBAAA,CAAZ9D,YAAY;QAAA+D,qBAAA,GAAAD,iBAAA,CAAEX,OAAO;QAAPA,OAAO,GAAAY,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;MAElD,IAAMC,mBAAmB,OAAAvD,mBAAA,aAAOT,YAAY,CAAC;MAC7C,IAAIiE,cAAc,GAAG7E,WAAW;MAEhC,IAAM6B,KAAK,GAAGjB,YAAY,CAACkE,SAAS,CAAC,UAAC7C,CAAC;QAAA,OAAKd,IAAI,KAAKc,CAAC;MAAA,EAAC;MAEvD,IAAIJ,KAAK,IAAI,CAAC,EAAE;QACd,IAAMkD,cAAc,GAAG/B,KAAA,CAAKgC,WAAW,CAAC7D,IAAI,CAAC;QAC7CyD,mBAAmB,CAACK,MAAM,CAACpD,KAAK,EAAE,CAAC,CAAC;QAEpC,IAAIV,IAAI,KAAKnB,WAAW,EAAE;UACxB,IAAMkB,mBAAmB,GAAG,CAAC0D,mBAAmB,IAAI,EAAE,EAAE9I,MAAM,CAC5D,UAACqF,IAAI;YAAA,OAAKA,IAAI,KAAK,OAAO;UAAA,CAC5B,CAAC;UACD0D,cAAc,GACX3D,mBAAmB,CAAC3E,MAAM,IAAI2E,mBAAmB,CAAC,CAAC,CAAC,IAAK,EAAE;QAChE;QAEA,IAAI,CAAC,IAAAgE,eAAO,EAACnB,OAAO,EAAEgB,cAAc,CAAC,EAAE;UACrC/B,KAAA,CAAKU,QAAQ,CAAC;YACZH,MAAM,EAAE;cACNC,IAAI,EAAE,IAAI;cACV2B,KAAK,EAAE,SAAS;cAChBC,IAAI,yCAAAhG,MAAA,CAAyC+B,IAAI,8CAA2C;cAC5FkE,SAAS,EAAE,SAAAA,UAAA;gBAAA,OACTrC,KAAA,CAAKsC,iBAAiB,CACpB,KAAK,EACLtC,KAAA,CAAKuC,WAAW,CAAC;kBACf3E,YAAY,EAAEgE,mBAAmB;kBACjCb,OAAO,EAAEgB,cAAc;kBACvB/E,WAAW,EAAE6E;gBACf,CAAC,CACH,CAAC;cAAA;cACHW,OAAO,EAAE,SAAAA,QAAA;gBAAA,OAAMxC,KAAA,CAAKsC,iBAAiB,CAAC,KAAK,CAAC;cAAA;YAC9C;UACF,CAAC,CAAC;UAEF;QACF;MACF,CAAC,MAAM;QACLV,mBAAmB,CAAC3I,IAAI,CAACkF,IAAI,CAAC;QAE9B,IAAInB,WAAW,KAAK,EAAE,IAAImB,IAAI,KAAK,OAAO,EAAE;UAC1C0D,cAAc,GAAG1D,IAAI;QACvB;MACF;MAEA6B,KAAA,CAAKuC,WAAW,CAAC;QACf3E,YAAY,EAAEgE,mBAAmB;QACjC5E,WAAW,EAAE6E;MACf,CAAC,CAAC;IACJ,CAAC;IAAA,IAAAnI,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,0BAEqB,UAACyC,KAAK,EAAK;MAC/B,IAAQ/D,KAAK,GAAK+D,KAAK,CAACrJ,MAAM,CAAtBsF,KAAK;MAEbsB,KAAA,CAAKuC,WAAW,CAAC;QAAEvF,WAAW,EAAE0B;MAAM,CAAC,CAAC;IAC1C,CAAC;IAAA,IAAAhF,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,2BAEsB,YAAM;MAC3B,IAAA0C,YAAA,GAA4B1C,KAAA,CAAKa,KAAK;QAA9BC,KAAK,GAAA4B,YAAA,CAAL5B,KAAK;QAAErC,QAAQ,GAAAiE,YAAA,CAARjE,QAAQ;MACvB,IAAAkE,KAAA,GAAoB7B,KAAK,IAAI,CAAC,CAAC;QAAvBC,OAAO,GAAA4B,KAAA,CAAP5B,OAAO;MACf,IAAM6B,WAAW,GAAG7K,MAAM,CAACY,IAAI,CAACoI,OAAO,IAAI,CAAC,CAAC,CAAC;MAE9C,IAAAxI,WAAG,EAACuI,KAAK,aAAA1E,MAAA,aAAAA,MAAA,CAAyBwG,WAAW,CAACrJ,MAAM,IAAM;QACxDoD,IAAI,eAAAP,MAAA,CAAewG,WAAW,CAACrJ,MAAM,CAAE;QACvCoH,KAAK,EAAE;MACT,CAAC,CAAC;MACFlC,QAAQ,CAACqC,KAAK,CAAC;IACjB,CAAC;IAAA,IAAApH,gBAAA,iBAAA4G,uBAAA,aAAAN,KAAA,8BAEyB,UAAC9H,GAAG,EAAEmJ,MAAM,EAAK;MACzC,IAAAwB,YAAA,GAA4B7C,KAAA,CAAKa,KAAK;QAA9BC,KAAK,GAAA+B,YAAA,CAAL/B,KAAK;QAAErC,QAAQ,GAAAoE,YAAA,CAARpE,QAAQ;MACvB,IAAAqE,KAAA,GAAoBhC,KAAK,IAAI,CAAC,CAAC;QAAvBC,OAAO,GAAA+B,KAAA,CAAP/B,OAAO;MACf,IAAAgC,KAAA,GAA6B1B,MAAM,IAAI,CAAC,CAAC;QAAA2B,WAAA,GAAAD,KAAA,CAAjCpC,KAAK;QAALA,KAAK,GAAAqC,WAAA,cAAG,EAAE,GAAAA,WAAA;QAAErG,IAAI,GAAAoG,KAAA,CAAJpG,IAAI;MAExB,IAAMsG,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;QACzB,OAAOlC,OAAO,CAAC7I,GAAG,CAAC;QACnBuG,QAAQ,CAACqC,KAAK,CAAC;MACjB,CAAC;MAED,IAAIH,KAAK,CAACpH,MAAM,EAAE;QAChByG,KAAA,CAAKU,QAAQ,CAAC;UACZH,MAAM,EAAE;YACNC,IAAI,EAAE,IAAI;YACV2B,KAAK,EAAE,SAAS;YAChBC,IAAI,KAAAhG,MAAA,CAAKO,IAAI,0EAAuE;YACpF0F,SAAS,EAAE,SAAAA,UAAA;cAAA,OAAMrC,KAAA,CAAKsC,iBAAiB,CAAC,KAAK,EAAEW,YAAY,CAAC;YAAA;YAC5DT,OAAO,EAAE,SAAAA,QAAA;cAAA,OAAMxC,KAAA,CAAKsC,iBAAiB,CAAC,KAAK,CAAC;YAAA;UAC9C;QACF,CAAC,CAAC;QAEF;MACF;MAEAW,YAAY,CAAC,CAAC;IAChB,CAAC;IAAA,OAAAjD,KAAA;EAAA;EAAA,IAAAkD,aAAA,aAAAtD,eAAA;IAAA1H,GAAA;IAAAwG,KAAA,EAED,SAAAyE,OAAA,EAAS;MAAA,IAAAC,MAAA;MACP,IAAAC,YAAA,GAAmD,IAAI,CAACxC,KAAK;QAArDxF,cAAc,GAAAgI,YAAA,CAAdhI,cAAc;QAAEqC,OAAO,GAAA2F,YAAA,CAAP3F,OAAO;QAAE4F,MAAM,GAAAD,YAAA,CAANC,MAAM;QAAExC,KAAK,GAAAuC,YAAA,CAALvC,KAAK;MAC9C,IAAQP,MAAM,GAAK,IAAI,CAACgD,KAAK,CAArBhD,MAAM;MACd,IAAAiD,KAAA,GAcI1C,KAAK,IAAI,CAAC,CAAC;QAAA2C,aAAA,GAAAD,KAAA,CAbbzC,OAAO;QAAPA,OAAO,GAAA0C,aAAA,cAAG,CAAC,CAAC,GAAAA,aAAA;QACZC,MAAM,GAAAF,KAAA,CAANE,MAAM;QACNC,eAAe,GAAAH,KAAA,CAAfG,eAAe;QACfC,kBAAkB,GAAAJ,KAAA,CAAlBI,kBAAkB;QAClB5G,WAAW,GAAAwG,KAAA,CAAXxG,WAAW;QACX6G,MAAM,GAAAL,KAAA,CAANK,MAAM;QAAAC,WAAA,GAAAN,KAAA,CACNO,KAAK;QAALA,KAAK,GAAAD,WAAA,cAAG,CAAC,CAAC,GAAAA,WAAA;QACVE,MAAM,GAAAR,KAAA,CAANQ,MAAM;QACNC,aAAa,GAAAT,KAAA,CAAbS,aAAa;QACbC,KAAK,GAAAV,KAAA,CAALU,KAAK;QACL/B,KAAK,GAAAqB,KAAA,CAALrB,KAAK;QACLgC,YAAY,GAAAX,KAAA,CAAZW,YAAY;QACZvG,YAAY,GAAA4F,KAAA,CAAZ5F,YAAY;MAEd,IAAAwG,KAAA,GAAwDd,MAAM,IAAI,CAAC,CAAC;QAAAe,qBAAA,GAAAD,KAAA,CAA5DE,mBAAmB;QAAnBA,mBAAmB,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;QAAEE,iBAAiB,GAAAH,KAAA,CAAjBG,iBAAiB;MAEnD,oBACElO,KAAA,CAAAiI,aAAA,2BACEjI,KAAA,CAAAiI,aAAA,CAACtH,KAAA,CAAAwN,UAAU;QAACC,SAAS,EAAC,KAAK;QAACC,OAAO,EAAC;MAAY,gBAC9CrO,KAAA,CAAAiI,aAAA,eAAM,sCAA0C,CACtC,CAAC,eAEbjI,KAAA,CAAAiI,aAAA,CAACtH,KAAA,CAAAwN,UAAU;QACTC,SAAS,EAAC,KAAK;QACfC,OAAO,EAAC,OAAO;QACfnG,SAAS,EAAEb,OAAO,CAACd;MAAa,gBAEhCvG,KAAA,CAAAiI,aAAA,eAAM,kHAGA,CACI,CAAC,eAEbjI,KAAA,CAAAiI,aAAA,CAACd,KAAK;QACJE,OAAO,EAAEA,OAAQ;QACjBrC,cAAc,EAAEA,cAAe;QAC/B2B,WAAW,EAAEA,WAAY;QACzBW,SAAS,EAAE,CAAC,CAAC4G,iBAAkB;QAC/BzG,mBAAmB,EAAE,IAAI,CAACA,mBAAoB;QAC9CD,iBAAiB,EAAE,IAAI,CAACA,iBAAkB;QAC1CD,YAAY,EAAEA;MAAa,CAC5B,CAAC,EAED2G,iBAAiB,iBAChBlO,KAAA,CAAAiI,aAAA;QAAKC,SAAS,EAAEb,OAAO,CAACL;MAAa,GAAEkH,iBAAuB,CAC/D,EAEAxM,MAAM,CAACiJ,OAAO,CAACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAACnC,GAAG,CAAC,UAAA+F,KAAA,EAAmB;QAAA,IAAAC,MAAA,OAAAxD,eAAA,aAAAuD,KAAA;UAAjBzM,GAAG,GAAA0M,MAAA;UAAEvD,MAAM,GAAAuD,MAAA;QAC9C,IAAAC,MAAA,GAA6BxD,MAAM,IAAI,CAAC,CAAC;UAAAyD,YAAA,GAAAD,MAAA,CAAjClE,KAAK;UAALA,KAAK,GAAAmE,YAAA,cAAG,EAAE,GAAAA,YAAA;UAAEnI,IAAI,GAAAkI,MAAA,CAAJlI,IAAI;QAExB,oBACEtG,KAAA,CAAAiI,aAAA;UAAKpG,GAAG,4BAAAkE,MAAA,CAA4BO,IAAI;QAAG,gBACzCtG,KAAA,CAAAiI,aAAA;UAAKC,SAAS,EAAEb,OAAO,CAACnB;QAAc,gBACpClG,KAAA,CAAAiI,aAAA;UAAGC,SAAS,EAAEb,OAAO,CAACf;QAAK,GAAEA,IAAQ,CAAC,EACrCzE,GAAG,KAAK,eAAe,iBACtB7B,KAAA,CAAAiI,aAAA,CAACxH,OAAA,WAAM;UACLyH,SAAS,EAAEb,OAAO,CAACjB,UAAW;UAC9B0C,OAAO,EAAE,SAAAA,QAAA;YAAA,OAAMiE,MAAI,CAAC2B,uBAAuB,CAAC7M,GAAG,EAAEmJ,MAAM,CAAC;UAAA;QAAC,CAC1D,CAEA,CAAC,eAENhL,KAAA,CAAAiI,aAAA,CAAC1H,SAAA,CAAAoO,cAAK;UACJzG,SAAS,EAAE+F,mBAAmB,CAACpM,GAAG,CAAC,IAAIwF,OAAO,CAACH,UAAW;UAC1D0H,YAAY,EAAE;YAAEC,aAAa,EAAExB;UAAO,CAAE;UACxCC,eAAe,EAAEA,eAAgB;UACjCC,kBAAkB,EAAEA,kBAAmB;UACvCuB,cAAc,EAAE,IAAK;UACrBC,aAAa,EAAE,IAAK;UACpBvB,MAAM,EAAEA,MAAO;UACfwB,cAAc,EAAEnN,GAAG,KAAK,eAAgB;UACxC8L,MAAM,EAAEA,MAAO;UACfrD,KAAK,EAAEA,KAAM;UACb2E,aAAa,EAAE,SAAAA,cAACC,QAAQ;YAAA,OAAKnC,MAAI,CAACoC,WAAW,CAACtN,GAAG,EAAEqN,QAAQ,CAAC;UAAA,CAAC;UAC7DrB,KAAK,EAAEA,KAAM;UACbuB,UAAU,EAAExB,aAAc;UAC1ByB,SAAS,EAAEvB,YAAa;UACxBwB,IAAI,EAAE;YAAErJ,KAAK,EAAEyH,KAAK,CAACzH,KAAK;YAAEsJ,MAAM,EAAE7B,KAAK,CAAC6B;UAAO,CAAE;UACnDzD,KAAK,EAAEA,KAAM;UACbvE,YAAY,EAAEA,YAAa;UAC3BiI,aAAa,EAAE,SAAAA,cAACjI,YAAY;YAAA,OAC1BwF,MAAI,CAACb,WAAW,CAAC;cAAE3E,YAAY,EAAZA;YAAa,CAAC,CAAC;UAAA;QACnC,CACF,CAAC,EAED0G,mBAAmB,CAACpM,GAAG,CAAC,iBACvB7B,KAAA,CAAAiI,aAAA;UAAKC,SAAS,EAAEb,OAAO,CAACL;QAAa,GAClCiH,mBAAmB,CAACpM,GAAG,CACrB,CAEJ,CAAC;MAEV,CAAC,CAAC,eAEF7B,KAAA,CAAAiI,aAAA;QAAKC,SAAS,EAAEb,OAAO,CAACrB,MAAO;QAAC8C,OAAO,EAAE,IAAI,CAAC2G;MAAqB,GAAC,eAE/D,CAAC,eAENzP,KAAA,CAAAiI,aAAA,CAACzH,SAAA,CAAAkP,WAAW;QACVvF,IAAI,EAAED,MAAM,CAACC,IAAK;QAClB2B,KAAK,EAAE5B,MAAM,CAAC4B,KAAM;QACpBC,IAAI,EAAE7B,MAAM,CAAC6B,IAAK;QAClBI,OAAO,EAAEjC,MAAM,CAACiC,OAAQ;QACxBH,SAAS,EAAE9B,MAAM,CAAC8B;MAAU,CAC7B,CACE,CAAC;IAEV;EAAC;EAAA,OAAAzC,eAAA;AAAA,EAhRkCvJ,KAAK,CAAC2P,SAAS;AAAA3G,OAAA,CAAAO,eAAA,GAAAA,eAAA;AAAA,IAAAlG,gBAAA,aAAvCkG,eAAe,eACP;EACjBlC,OAAO,EAAE6B,qBAAS,CAAC9G,MAAM,CAAC+G,UAAU;EACpCsB,KAAK,EAAEvB,qBAAS,CAAC9G,MAAM,CAAC+G,UAAU;EAClCf,QAAQ,EAAEc,qBAAS,CAACI,IAAI,CAACH,UAAU;EACnC5B,YAAY,EAAE2B,qBAAS,CAACE,OAAO,CAACF,qBAAS,CAAC0G,MAAM;AAClD,CAAC;AAAA,IAAAC,QAAA,GA6QY,IAAAC,kBAAU,EAACpL,MAAM,CAAC,CAAC6E,eAAe,CAAC;AAAAP,OAAA,cAAA6G,QAAA"}
|