@pie-element/drawing-response 10.0.1 → 10.2.0-mui-update.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/configure/CHANGELOG.md +74 -0
  3. package/configure/lib/__tests__/image-container.test.js +176 -0
  4. package/configure/lib/__tests__/index.test.js +53 -0
  5. package/configure/lib/__tests__/root.test.js +84 -0
  6. package/configure/lib/button.js +24 -48
  7. package/configure/lib/button.js.map +1 -1
  8. package/configure/lib/defaults.js +3 -4
  9. package/configure/lib/defaults.js.map +1 -1
  10. package/configure/lib/image-container.js +239 -328
  11. package/configure/lib/image-container.js.map +1 -1
  12. package/configure/lib/index.js +116 -183
  13. package/configure/lib/index.js.map +1 -1
  14. package/configure/lib/root.js +195 -261
  15. package/configure/lib/root.js.map +1 -1
  16. package/configure/package.json +9 -7
  17. package/configure/src/__tests__/index.test.js +10 -4
  18. package/configure/src/button.jsx +14 -24
  19. package/configure/src/image-container.jsx +73 -77
  20. package/configure/src/index.js +12 -2
  21. package/configure/src/root.jsx +24 -25
  22. package/controller/CHANGELOG.md +32 -0
  23. package/controller/lib/__tests__/index.test.js +177 -0
  24. package/controller/lib/defaults.js +3 -4
  25. package/controller/lib/defaults.js.map +1 -1
  26. package/controller/lib/index.js +40 -66
  27. package/controller/lib/index.js.map +1 -1
  28. package/controller/package.json +1 -1
  29. package/docs/demo/pie.manifest.json +11 -0
  30. package/lib/__tests__/drawing-index-test.js +36 -0
  31. package/lib/drawing-response/__tests__/container.test.js +66 -0
  32. package/lib/drawing-response/__tests__/drawable-helper.test.js +23 -0
  33. package/lib/drawing-response/__tests__/drawing-main.test.js +684 -0
  34. package/lib/drawing-response/__tests__/factory.test.js +15 -0
  35. package/lib/drawing-response/button.js +36 -61
  36. package/lib/drawing-response/button.js.map +1 -1
  37. package/lib/drawing-response/constants.js +3 -4
  38. package/lib/drawing-response/constants.js.map +1 -1
  39. package/lib/drawing-response/container.js +271 -352
  40. package/lib/drawing-response/container.js.map +1 -1
  41. package/lib/drawing-response/drawable-circle.js +66 -105
  42. package/lib/drawing-response/drawable-circle.js.map +1 -1
  43. package/lib/drawing-response/drawable-eraser.js +51 -87
  44. package/lib/drawing-response/drawable-eraser.js.map +1 -1
  45. package/lib/drawing-response/drawable-free-path.js +57 -98
  46. package/lib/drawing-response/drawable-free-path.js.map +1 -1
  47. package/lib/drawing-response/drawable-helper.js +17 -29
  48. package/lib/drawing-response/drawable-helper.js.map +1 -1
  49. package/lib/drawing-response/drawable-image.js +31 -50
  50. package/lib/drawing-response/drawable-image.js.map +1 -1
  51. package/lib/drawing-response/drawable-line.js +61 -100
  52. package/lib/drawing-response/drawable-line.js.map +1 -1
  53. package/lib/drawing-response/drawable-main.js +274 -346
  54. package/lib/drawing-response/drawable-main.js.map +1 -1
  55. package/lib/drawing-response/drawable-palette.js +124 -167
  56. package/lib/drawing-response/drawable-palette.js.map +1 -1
  57. package/lib/drawing-response/drawable-rectangle.js +66 -105
  58. package/lib/drawing-response/drawable-rectangle.js.map +1 -1
  59. package/lib/drawing-response/drawable-text.js +202 -314
  60. package/lib/drawing-response/drawable-text.js.map +1 -1
  61. package/lib/drawing-response/drawable-transformer.js +37 -80
  62. package/lib/drawing-response/drawable-transformer.js.map +1 -1
  63. package/lib/drawing-response/factory.js +7 -20
  64. package/lib/drawing-response/factory.js.map +1 -1
  65. package/lib/drawing-response/icon.js +9 -25
  66. package/lib/drawing-response/icon.js.map +1 -1
  67. package/lib/drawing-response/index.js +75 -117
  68. package/lib/drawing-response/index.js.map +1 -1
  69. package/lib/index.js +52 -103
  70. package/lib/index.js.map +1 -1
  71. package/package.json +14 -29
  72. package/src/drawing-response/button.jsx +23 -34
  73. package/src/drawing-response/container.jsx +39 -40
  74. package/src/drawing-response/drawable-image.jsx +17 -20
  75. package/src/drawing-response/drawable-main.jsx +67 -60
  76. package/src/drawing-response/drawable-palette.jsx +48 -54
  77. package/src/drawing-response/drawable-text.jsx +26 -38
  78. package/src/drawing-response/index.jsx +21 -20
  79. package/src/index.js +17 -2
  80. package/LICENSE.md +0 -5
  81. package/configure/node_modules/debug/CHANGELOG.md +0 -395
  82. package/configure/node_modules/debug/LICENSE +0 -19
  83. package/configure/node_modules/debug/README.md +0 -437
  84. package/configure/node_modules/debug/node.js +0 -1
  85. package/configure/node_modules/debug/package.json +0 -51
  86. package/configure/node_modules/debug/src/browser.js +0 -180
  87. package/configure/node_modules/debug/src/common.js +0 -249
  88. package/configure/node_modules/debug/src/index.js +0 -12
  89. package/configure/node_modules/debug/src/node.js +0 -177
  90. package/esm/configure.js +0 -11856
  91. package/esm/configure.js.map +0 -1
  92. package/esm/controller.js +0 -108
  93. package/esm/controller.js.map +0 -1
  94. package/esm/element.js +0 -49111
  95. package/esm/element.js.map +0 -1
@@ -1,285 +1,219 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = exports.Root = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
7
+ exports.default = exports.Root = void 0;
22
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
9
  var _react = _interopRequireDefault(require("react"));
25
-
26
10
  var _configUi = require("@pie-lib/config-ui");
27
-
28
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
12
  var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
31
-
32
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
33
-
34
- var _styles = require("@material-ui/core/styles");
35
-
13
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
14
+ var _styles = require("@mui/material/styles");
36
15
  var _imageContainer = _interopRequireDefault(require("./image-container"));
37
-
38
16
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
39
-
40
- 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; }
41
-
42
- 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; }
43
-
44
- 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); }; }
45
-
46
- 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; } }
47
-
48
- var Panel = _configUi.settings.Panel,
49
- toggle = _configUi.settings.toggle,
50
- dropdown = _configUi.settings.dropdown;
51
-
52
- var Root = /*#__PURE__*/function (_React$Component) {
53
- (0, _inherits2["default"])(Root, _React$Component);
54
-
55
- var _super = _createSuper(Root);
56
-
57
- function Root() {
58
- var _this;
59
-
60
- (0, _classCallCheck2["default"])(this, Root);
61
-
62
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
63
- args[_key] = arguments[_key];
64
- }
65
-
66
- _this = _super.call.apply(_super, [this].concat(args));
67
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPromptChanged", function (prompt) {
68
- var _this$props = _this.props,
69
- model = _this$props.model,
70
- onModelChanged = _this$props.onModelChanged;
71
- var update = (0, _cloneDeep["default"])(model);
72
- onModelChanged(_objectSpread(_objectSpread({}, update), {}, {
73
- prompt: prompt
74
- }));
17
+ const {
18
+ Panel,
19
+ toggle,
20
+ dropdown
21
+ } = _configUi.settings;
22
+ const PromptHolder = (0, _styles.styled)(_configUi.InputContainer)(({
23
+ theme
24
+ }) => ({
25
+ paddingTop: theme.spacing(1),
26
+ marginTop: theme.spacing(2),
27
+ marginBottom: theme.spacing(1),
28
+ width: '100%'
29
+ }));
30
+ const ErrorText = (0, _styles.styled)('div')(({
31
+ theme
32
+ }) => ({
33
+ fontSize: theme.typography.fontSize - 2,
34
+ color: theme.palette.error.main,
35
+ paddingTop: theme.spacing(1)
36
+ }));
37
+ class Root extends _react.default.Component {
38
+ constructor(...args) {
39
+ super(...args);
40
+ (0, _defineProperty2.default)(this, "onPromptChanged", prompt => {
41
+ const {
42
+ model,
43
+ onModelChanged
44
+ } = this.props;
45
+ const update = (0, _cloneDeep.default)(model);
46
+ onModelChanged({
47
+ ...update,
48
+ prompt
49
+ });
75
50
  });
76
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTeacherInstructionsChanged", function (teacherInstructions) {
77
- var _this$props2 = _this.props,
78
- model = _this$props2.model,
79
- onModelChanged = _this$props2.onModelChanged;
80
- onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
81
- teacherInstructions: teacherInstructions
82
- }));
51
+ (0, _defineProperty2.default)(this, "onTeacherInstructionsChanged", teacherInstructions => {
52
+ const {
53
+ model,
54
+ onModelChanged
55
+ } = this.props;
56
+ onModelChanged({
57
+ ...model,
58
+ teacherInstructions
59
+ });
83
60
  });
84
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onUpdateImageDimension", function (dimensions) {
85
- var _this$props3 = _this.props,
86
- model = _this$props3.model,
87
- onModelChanged = _this$props3.onModelChanged;
88
- onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
61
+ (0, _defineProperty2.default)(this, "onUpdateImageDimension", dimensions => {
62
+ const {
63
+ model,
64
+ onModelChanged
65
+ } = this.props;
66
+ onModelChanged({
67
+ ...model,
89
68
  imageDimensions: dimensions
90
- }));
69
+ });
91
70
  });
92
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onImageUpload", function (imageUrl) {
93
- var _this$props4 = _this.props,
94
- model = _this$props4.model,
95
- onModelChanged = _this$props4.onModelChanged;
96
- onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
97
- imageUrl: imageUrl
98
- }));
71
+ (0, _defineProperty2.default)(this, "onImageUpload", imageUrl => {
72
+ const {
73
+ model,
74
+ onModelChanged
75
+ } = this.props;
76
+ onModelChanged({
77
+ ...model,
78
+ imageUrl
79
+ });
99
80
  });
100
- return _this;
101
81
  }
102
-
103
- (0, _createClass2["default"])(Root, [{
104
- key: "render",
105
- value: function render() {
106
- var _this$props5 = this.props,
107
- classes = _this$props5.classes,
108
- configuration = _this$props5.configuration,
109
- imageSupport = _this$props5.imageSupport,
110
- model = _this$props5.model,
111
- onConfigurationChanged = _this$props5.onConfigurationChanged,
112
- onModelChanged = _this$props5.onModelChanged,
113
- uploadSoundSupport = _this$props5.uploadSoundSupport;
114
-
115
- var _ref = configuration || {},
116
- _ref$baseInputConfigu = _ref.baseInputConfiguration,
117
- baseInputConfiguration = _ref$baseInputConfigu === void 0 ? {} : _ref$baseInputConfigu,
118
- _ref$backgroundImage = _ref.backgroundImage,
119
- backgroundImage = _ref$backgroundImage === void 0 ? {} : _ref$backgroundImage,
120
- _ref$contentDimension = _ref.contentDimensions,
121
- contentDimensions = _ref$contentDimension === void 0 ? {} : _ref$contentDimension,
122
- _ref$maxImageWidth = _ref.maxImageWidth,
123
- maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
124
- _ref$maxImageHeight = _ref.maxImageHeight,
125
- maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
126
- _ref$prompt = _ref.prompt,
127
- prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
128
- settingsPanelDisabled = _ref.settingsPanelDisabled,
129
- _ref$spellCheck = _ref.spellCheck,
130
- spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
131
- _ref$teacherInstructi = _ref.teacherInstructions,
132
- teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
133
- _ref$withRubric = _ref.withRubric,
134
- withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric,
135
- _ref$language = _ref.language,
136
- language = _ref$language === void 0 ? {} : _ref$language,
137
- _ref$languageChoices = _ref.languageChoices,
138
- languageChoices = _ref$languageChoices === void 0 ? {} : _ref$languageChoices,
139
- _ref$mathMlOptions = _ref.mathMlOptions,
140
- mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
141
-
142
- var _ref2 = model || {},
143
- backgroundImageEnabled = _ref2.backgroundImageEnabled,
144
- _ref2$errors = _ref2.errors,
145
- errors = _ref2$errors === void 0 ? {} : _ref2$errors,
146
- extraCSSRules = _ref2.extraCSSRules,
147
- promptEnabled = _ref2.promptEnabled,
148
- spellCheckEnabled = _ref2.spellCheckEnabled,
149
- teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
150
- toolbarEditorPosition = _ref2.toolbarEditorPosition;
151
-
152
- var promptError = errors.prompt,
153
- teacherInstructionsError = errors.teacherInstructions;
154
- var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
155
- var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
156
- var toolbarOpts = {
157
- position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
158
- };
159
- var panelSettings = {
160
- backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),
161
- promptEnabled: prompt.settings && toggle(prompt.label),
162
- 'language.enabled': language.settings && toggle(language.label, true),
163
- language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options)
164
- };
165
- var panelProperties = {
166
- teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
167
- spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
168
- rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
169
- };
170
-
171
- var getPluginProps = function getPluginProps() {
172
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
173
- return _objectSpread(_objectSpread({}, baseInputConfiguration), props);
174
- };
175
-
176
- return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
177
- extraCSSRules: extraCSSRules,
178
- dimensions: contentDimensions,
179
- hideSettings: settingsPanelDisabled,
180
- settings: /*#__PURE__*/_react["default"].createElement(Panel, {
181
- model: model,
182
- onChangeModel: onModelChanged,
183
- configuration: configuration,
184
- onChangeConfiguration: onConfigurationChanged,
185
- groups: {
186
- Settings: panelSettings,
187
- Properties: panelProperties
188
- }
189
- })
190
- }, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
191
- label: teacherInstructions.label,
192
- className: classes.promptHolder
193
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
194
- markup: model.teacherInstructions || '',
195
- onChange: this.onTeacherInstructionsChanged,
196
- imageSupport: imageSupport,
197
- nonEmpty: false,
198
- error: teacherInstructionsError,
199
- toolbarOpts: toolbarOpts,
200
- pluginProps: getPluginProps(teacherInstructions === null || teacherInstructions === void 0 ? void 0 : teacherInstructions.inputConfiguration),
201
- spellCheck: spellCheckEnabled,
202
- maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
203
- maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
204
- uploadSoundSupport: uploadSoundSupport,
205
- languageCharactersProps: [{
206
- language: 'spanish'
207
- }, {
208
- language: 'special'
209
- }],
210
- mathMlOptions: mathMlOptions
211
- }), teacherInstructionsError && /*#__PURE__*/_react["default"].createElement("div", {
212
- className: classes.errorText
213
- }, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
214
- label: "Item Stem",
215
- className: classes.promptHolder
216
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
217
- markup: model.prompt,
218
- onChange: this.onPromptChanged,
219
- error: promptError,
220
- toolbarOpts: toolbarOpts,
221
- spellCheck: spellCheckEnabled,
222
- pluginProps: getPluginProps(prompt === null || prompt === void 0 ? void 0 : prompt.inputConfiguration),
223
- imageSupport: imageSupport,
224
- maxImageWidth: defaultImageMaxWidth,
225
- maxImageHeight: defaultImageMaxHeight,
226
- uploadSoundSupport: uploadSoundSupport,
227
- languageCharactersProps: [{
228
- language: 'spanish'
229
- }, {
230
- language: 'special'
231
- }],
232
- mathMlOptions: mathMlOptions
233
- }), promptError && /*#__PURE__*/_react["default"].createElement("div", {
234
- className: classes.errorText
235
- }, promptError)), backgroundImageEnabled && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
236
- variant: "subheading"
237
- }, "Define Background Image"), /*#__PURE__*/_react["default"].createElement(_imageContainer["default"], {
238
- imageUrl: model.imageUrl,
239
- onUpdateImageDimension: this.onUpdateImageDimension,
240
- onImageUpload: this.onImageUpload,
241
- imageDimensions: model.imageDimensions,
242
- insertImage: imageSupport && imageSupport.add
243
- })));
244
- }
245
- }]);
246
- return Root;
247
- }(_react["default"].Component);
248
-
82
+ render() {
83
+ const {
84
+ configuration,
85
+ imageSupport,
86
+ model,
87
+ onConfigurationChanged,
88
+ onModelChanged,
89
+ uploadSoundSupport
90
+ } = this.props;
91
+ const {
92
+ baseInputConfiguration = {},
93
+ backgroundImage = {},
94
+ contentDimensions = {},
95
+ maxImageWidth = {},
96
+ maxImageHeight = {},
97
+ prompt = {},
98
+ settingsPanelDisabled,
99
+ spellCheck = {},
100
+ teacherInstructions = {},
101
+ withRubric = {},
102
+ language = {},
103
+ languageChoices = {},
104
+ mathMlOptions = {}
105
+ } = configuration || {};
106
+ const {
107
+ backgroundImageEnabled,
108
+ errors = {},
109
+ extraCSSRules,
110
+ promptEnabled,
111
+ spellCheckEnabled,
112
+ teacherInstructionsEnabled,
113
+ toolbarEditorPosition
114
+ } = model || {};
115
+ const {
116
+ prompt: promptError,
117
+ teacherInstructions: teacherInstructionsError
118
+ } = errors;
119
+ const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
120
+ const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
121
+ const toolbarOpts = {
122
+ position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
123
+ };
124
+ const panelSettings = {
125
+ backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),
126
+ promptEnabled: prompt.settings && toggle(prompt.label),
127
+ 'language.enabled': language.settings && toggle(language.label, true),
128
+ language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options)
129
+ };
130
+ const panelProperties = {
131
+ teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
132
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
133
+ rubricEnabled: withRubric?.settings && toggle(withRubric?.label)
134
+ };
135
+ const getPluginProps = (props = {}) => ({
136
+ ...baseInputConfiguration,
137
+ ...props
138
+ });
139
+ return /*#__PURE__*/_react.default.createElement(_configUi.layout.ConfigLayout, {
140
+ extraCSSRules: extraCSSRules,
141
+ dimensions: contentDimensions,
142
+ hideSettings: settingsPanelDisabled,
143
+ settings: /*#__PURE__*/_react.default.createElement(Panel, {
144
+ model: model,
145
+ onChangeModel: onModelChanged,
146
+ configuration: configuration,
147
+ onChangeConfiguration: onConfigurationChanged,
148
+ groups: {
149
+ Settings: panelSettings,
150
+ Properties: panelProperties
151
+ }
152
+ })
153
+ }, teacherInstructionsEnabled && /*#__PURE__*/_react.default.createElement(PromptHolder, {
154
+ label: teacherInstructions.label
155
+ }, /*#__PURE__*/_react.default.createElement(_editableHtml.default, {
156
+ markup: model.teacherInstructions || '',
157
+ onChange: this.onTeacherInstructionsChanged,
158
+ imageSupport: imageSupport,
159
+ nonEmpty: false,
160
+ error: teacherInstructionsError,
161
+ toolbarOpts: toolbarOpts,
162
+ pluginProps: getPluginProps(teacherInstructions?.inputConfiguration),
163
+ spellCheck: spellCheckEnabled,
164
+ maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
165
+ maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
166
+ uploadSoundSupport: uploadSoundSupport,
167
+ languageCharactersProps: [{
168
+ language: 'spanish'
169
+ }, {
170
+ language: 'special'
171
+ }],
172
+ mathMlOptions: mathMlOptions
173
+ }), teacherInstructionsError && /*#__PURE__*/_react.default.createElement(ErrorText, null, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react.default.createElement(PromptHolder, {
174
+ label: "Item Stem"
175
+ }, /*#__PURE__*/_react.default.createElement(_editableHtml.default, {
176
+ markup: model.prompt,
177
+ onChange: this.onPromptChanged,
178
+ error: promptError,
179
+ toolbarOpts: toolbarOpts,
180
+ spellCheck: spellCheckEnabled,
181
+ pluginProps: getPluginProps(prompt?.inputConfiguration),
182
+ imageSupport: imageSupport,
183
+ maxImageWidth: defaultImageMaxWidth,
184
+ maxImageHeight: defaultImageMaxHeight,
185
+ uploadSoundSupport: uploadSoundSupport,
186
+ languageCharactersProps: [{
187
+ language: 'spanish'
188
+ }, {
189
+ language: 'special'
190
+ }],
191
+ mathMlOptions: mathMlOptions
192
+ }), promptError && /*#__PURE__*/_react.default.createElement(ErrorText, null, promptError)), backgroundImageEnabled && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
193
+ variant: "h6"
194
+ }, "Define Background Image"), /*#__PURE__*/_react.default.createElement(_imageContainer.default, {
195
+ imageUrl: model.imageUrl,
196
+ onUpdateImageDimension: this.onUpdateImageDimension,
197
+ onImageUpload: this.onImageUpload,
198
+ imageDimensions: model.imageDimensions,
199
+ insertImage: imageSupport && imageSupport.add
200
+ })));
201
+ }
202
+ }
249
203
  exports.Root = Root;
250
-
251
- var styles = function styles(theme) {
252
- return {
253
- promptHolder: {
254
- paddingTop: theme.spacing.unit * 2,
255
- marginBottom: theme.spacing.unit * 2,
256
- width: '100%'
257
- },
258
- errorText: {
259
- fontSize: theme.typography.fontSize - 2,
260
- color: theme.palette.error.main,
261
- paddingTop: theme.spacing.unit
262
- }
263
- };
264
- };
265
-
266
204
  Root.propTypes = {
267
- classes: _propTypes["default"].object.isRequired,
268
- configuration: _propTypes["default"].object,
269
- model: _propTypes["default"].object.isRequired,
270
- imageSupport: _propTypes["default"].shape({
271
- add: _propTypes["default"].func,
272
- "delete": _propTypes["default"].func
205
+ configuration: _propTypes.default.object,
206
+ model: _propTypes.default.object.isRequired,
207
+ imageSupport: _propTypes.default.shape({
208
+ add: _propTypes.default.func,
209
+ delete: _propTypes.default.func
273
210
  }),
274
- uploadSoundSupport: _propTypes["default"].shape({
275
- add: _propTypes["default"].func,
276
- "delete": _propTypes["default"].func
211
+ uploadSoundSupport: _propTypes.default.shape({
212
+ add: _propTypes.default.func,
213
+ delete: _propTypes.default.func
277
214
  }),
278
- onModelChanged: _propTypes["default"].func.isRequired,
279
- onConfigurationChanged: _propTypes["default"].func.isRequired
215
+ onModelChanged: _propTypes.default.func.isRequired,
216
+ onConfigurationChanged: _propTypes.default.func.isRequired
280
217
  };
281
-
282
- var _default = (0, _styles.withStyles)(styles)(Root);
283
-
284
- exports["default"] = _default;
285
- //# sourceMappingURL=root.js.map
218
+ var _default = exports.default = Root;
219
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jb25maWdVaSIsIl9wcm9wVHlwZXMiLCJfZWRpdGFibGVIdG1sIiwiX1R5cG9ncmFwaHkiLCJfc3R5bGVzIiwiX2ltYWdlQ29udGFpbmVyIiwiX2Nsb25lRGVlcCIsIlBhbmVsIiwidG9nZ2xlIiwiZHJvcGRvd24iLCJzZXR0aW5ncyIsIlByb21wdEhvbGRlciIsInN0eWxlZCIsIklucHV0Q29udGFpbmVyIiwidGhlbWUiLCJwYWRkaW5nVG9wIiwic3BhY2luZyIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsIndpZHRoIiwiRXJyb3JUZXh0IiwiZm9udFNpemUiLCJ0eXBvZ3JhcGh5IiwiY29sb3IiLCJwYWxldHRlIiwiZXJyb3IiLCJtYWluIiwiUm9vdCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmdzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJwcm9tcHQiLCJtb2RlbCIsIm9uTW9kZWxDaGFuZ2VkIiwicHJvcHMiLCJ1cGRhdGUiLCJjbG9uZURlZXAiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwiZGltZW5zaW9ucyIsImltYWdlRGltZW5zaW9ucyIsImltYWdlVXJsIiwicmVuZGVyIiwiY29uZmlndXJhdGlvbiIsImltYWdlU3VwcG9ydCIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJ1cGxvYWRTb3VuZFN1cHBvcnQiLCJiYXNlSW5wdXRDb25maWd1cmF0aW9uIiwiYmFja2dyb3VuZEltYWdlIiwiY29udGVudERpbWVuc2lvbnMiLCJtYXhJbWFnZVdpZHRoIiwibWF4SW1hZ2VIZWlnaHQiLCJzZXR0aW5nc1BhbmVsRGlzYWJsZWQiLCJzcGVsbENoZWNrIiwid2l0aFJ1YnJpYyIsImxhbmd1YWdlIiwibGFuZ3VhZ2VDaG9pY2VzIiwibWF0aE1sT3B0aW9ucyIsImJhY2tncm91bmRJbWFnZUVuYWJsZWQiLCJlcnJvcnMiLCJleHRyYUNTU1J1bGVzIiwicHJvbXB0RW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJ0b29sYmFyRWRpdG9yUG9zaXRpb24iLCJwcm9tcHRFcnJvciIsInRlYWNoZXJJbnN0cnVjdGlvbnNFcnJvciIsImRlZmF1bHRJbWFnZU1heFdpZHRoIiwiZGVmYXVsdEltYWdlTWF4SGVpZ2h0IiwidG9vbGJhck9wdHMiLCJwb3NpdGlvbiIsInBhbmVsU2V0dGluZ3MiLCJsYWJlbCIsImVuYWJsZWQiLCJvcHRpb25zIiwicGFuZWxQcm9wZXJ0aWVzIiwicnVicmljRW5hYmxlZCIsImdldFBsdWdpblByb3BzIiwiY3JlYXRlRWxlbWVudCIsImxheW91dCIsIkNvbmZpZ0xheW91dCIsImhpZGVTZXR0aW5ncyIsIm9uQ2hhbmdlTW9kZWwiLCJvbkNoYW5nZUNvbmZpZ3VyYXRpb24iLCJncm91cHMiLCJTZXR0aW5ncyIsIlByb3BlcnRpZXMiLCJtYXJrdXAiLCJvbkNoYW5nZSIsIm9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQiLCJub25FbXB0eSIsInBsdWdpblByb3BzIiwiaW5wdXRDb25maWd1cmF0aW9uIiwibGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHMiLCJvblByb21wdENoYW5nZWQiLCJGcmFnbWVudCIsInZhcmlhbnQiLCJvblVwZGF0ZUltYWdlRGltZW5zaW9uIiwib25JbWFnZVVwbG9hZCIsImluc2VydEltYWdlIiwiYWRkIiwiZXhwb3J0cyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJzaGFwZSIsImZ1bmMiLCJkZWxldGUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9yb290LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2V0dGluZ3MsIGxheW91dCwgSW5wdXRDb250YWluZXIgfSBmcm9tICdAcGllLWxpYi9jb25maWctdWknO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBFZGl0YWJsZUh0bWwgZnJvbSAnQHBpZS1saWIvZWRpdGFibGUtaHRtbCc7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbXVpL21hdGVyaWFsL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuXG5pbXBvcnQgSW1hZ2VDb250YWluZXIgZnJvbSAnLi9pbWFnZS1jb250YWluZXInO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcblxuY29uc3QgeyBQYW5lbCwgdG9nZ2xlLCBkcm9wZG93biB9ID0gc2V0dGluZ3M7XG5cbmNvbnN0IFByb21wdEhvbGRlciA9IHN0eWxlZChJbnB1dENvbnRhaW5lcikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygxKSxcbiAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDIpLFxuICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcoMSksXG4gIHdpZHRoOiAnMTAwJScsXG59KSk7XG5cbmNvbnN0IEVycm9yVGV4dCA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgLSAyLFxuICBjb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5tYWluLFxuICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nKDEpLFxufSkpO1xuXG5leHBvcnQgY2xhc3MgUm9vdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIG9uUHJvbXB0Q2hhbmdlZCA9IChwcm9tcHQpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBvbk1vZGVsQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgb25Nb2RlbENoYW5nZWQoeyAuLi51cGRhdGUsIHByb21wdCB9KTtcbiAgfTtcblxuICBvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkID0gKHRlYWNoZXJJbnN0cnVjdGlvbnMpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBvbk1vZGVsQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIG9uTW9kZWxDaGFuZ2VkKHsgLi4ubW9kZWwsIHRlYWNoZXJJbnN0cnVjdGlvbnMgfSk7XG4gIH07XG5cbiAgb25VcGRhdGVJbWFnZURpbWVuc2lvbiA9IChkaW1lbnNpb25zKSA9PiB7XG4gICAgY29uc3QgeyBtb2RlbCwgb25Nb2RlbENoYW5nZWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBvbk1vZGVsQ2hhbmdlZCh7IC4uLm1vZGVsLCBpbWFnZURpbWVuc2lvbnM6IGRpbWVuc2lvbnMgfSk7XG4gIH07XG5cbiAgb25JbWFnZVVwbG9hZCA9IChpbWFnZVVybCkgPT4ge1xuICAgIGNvbnN0IHsgbW9kZWwsIG9uTW9kZWxDaGFuZ2VkIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgb25Nb2RlbENoYW5nZWQoeyAuLi5tb2RlbCwgaW1hZ2VVcmwgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY29uZmlndXJhdGlvbiwgaW1hZ2VTdXBwb3J0LCBtb2RlbCwgb25Db25maWd1cmF0aW9uQ2hhbmdlZCwgb25Nb2RlbENoYW5nZWQsIHVwbG9hZFNvdW5kU3VwcG9ydCB9ID1cbiAgICAgIHRoaXMucHJvcHM7XG4gICAgY29uc3Qge1xuICAgICAgYmFzZUlucHV0Q29uZmlndXJhdGlvbiA9IHt9LFxuICAgICAgYmFja2dyb3VuZEltYWdlID0ge30sXG4gICAgICBjb250ZW50RGltZW5zaW9ucyA9IHt9LFxuICAgICAgbWF4SW1hZ2VXaWR0aCA9IHt9LFxuICAgICAgbWF4SW1hZ2VIZWlnaHQgPSB7fSxcbiAgICAgIHByb21wdCA9IHt9LFxuICAgICAgc2V0dGluZ3NQYW5lbERpc2FibGVkLFxuICAgICAgc3BlbGxDaGVjayA9IHt9LFxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgd2l0aFJ1YnJpYyA9IHt9LFxuICAgICAgbGFuZ3VhZ2UgPSB7fSxcbiAgICAgIGxhbmd1YWdlQ2hvaWNlcyA9IHt9LFxuICAgICAgbWF0aE1sT3B0aW9ucyA9IHt9LFxuICAgIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIGJhY2tncm91bmRJbWFnZUVuYWJsZWQsXG4gICAgICBlcnJvcnMgPSB7fSxcbiAgICAgIGV4dHJhQ1NTUnVsZXMsXG4gICAgICBwcm9tcHRFbmFibGVkLFxuICAgICAgc3BlbGxDaGVja0VuYWJsZWQsXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCxcbiAgICAgIHRvb2xiYXJFZGl0b3JQb3NpdGlvbixcbiAgICB9ID0gbW9kZWwgfHwge307XG4gICAgY29uc3QgeyBwcm9tcHQ6IHByb21wdEVycm9yLCB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiB0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3IgfSA9IGVycm9ycztcblxuICAgIGNvbnN0IGRlZmF1bHRJbWFnZU1heFdpZHRoID0gbWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnByb21wdDtcbiAgICBjb25zdCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHQgPSBtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5wcm9tcHQ7XG5cbiAgICBjb25zdCB0b29sYmFyT3B0cyA9IHtcbiAgICAgIHBvc2l0aW9uOiB0b29sYmFyRWRpdG9yUG9zaXRpb24gPT09ICd0b3AnID8gJ3RvcCcgOiAnYm90dG9tJyxcbiAgICB9O1xuXG4gICAgY29uc3QgcGFuZWxTZXR0aW5ncyA9IHtcbiAgICAgIGJhY2tncm91bmRJbWFnZUVuYWJsZWQ6IGJhY2tncm91bmRJbWFnZS5zZXR0aW5ncyAmJiB0b2dnbGUoYmFja2dyb3VuZEltYWdlLmxhYmVsKSxcbiAgICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICAgICdsYW5ndWFnZS5lbmFibGVkJzogbGFuZ3VhZ2Uuc2V0dGluZ3MgJiYgdG9nZ2xlKGxhbmd1YWdlLmxhYmVsLCB0cnVlKSxcbiAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiBsYW5ndWFnZS5lbmFibGVkICYmIGRyb3Bkb3duKGxhbmd1YWdlQ2hvaWNlcy5sYWJlbCwgbGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMpLFxuICAgIH07XG5cbiAgICBjb25zdCBwYW5lbFByb3BlcnRpZXMgPSB7XG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdGVhY2hlckluc3RydWN0aW9ucy5zZXR0aW5ncyAmJiB0b2dnbGUodGVhY2hlckluc3RydWN0aW9ucy5sYWJlbCksXG4gICAgICBzcGVsbENoZWNrRW5hYmxlZDogc3BlbGxDaGVjay5zZXR0aW5ncyAmJiB0b2dnbGUoc3BlbGxDaGVjay5sYWJlbCksXG4gICAgICBydWJyaWNFbmFibGVkOiB3aXRoUnVicmljPy5zZXR0aW5ncyAmJiB0b2dnbGUod2l0aFJ1YnJpYz8ubGFiZWwpLFxuICAgIH07XG5cbiAgICBjb25zdCBnZXRQbHVnaW5Qcm9wcyA9IChwcm9wcyA9IHt9KSA9PiAoe1xuICAgICAgLi4uYmFzZUlucHV0Q29uZmlndXJhdGlvbixcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsYXlvdXQuQ29uZmlnTGF5b3V0XG4gICAgICAgIGV4dHJhQ1NTUnVsZXM9e2V4dHJhQ1NTUnVsZXN9XG4gICAgICAgIGRpbWVuc2lvbnM9e2NvbnRlbnREaW1lbnNpb25zfVxuICAgICAgICBoaWRlU2V0dGluZ3M9e3NldHRpbmdzUGFuZWxEaXNhYmxlZH1cbiAgICAgICAgc2V0dGluZ3M9e1xuICAgICAgICAgIDxQYW5lbFxuICAgICAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICAgICAgb25DaGFuZ2VNb2RlbD17b25Nb2RlbENoYW5nZWR9XG4gICAgICAgICAgICBjb25maWd1cmF0aW9uPXtjb25maWd1cmF0aW9ufVxuICAgICAgICAgICAgb25DaGFuZ2VDb25maWd1cmF0aW9uPXtvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkfVxuICAgICAgICAgICAgZ3JvdXBzPXt7XG4gICAgICAgICAgICAgIFNldHRpbmdzOiBwYW5lbFNldHRpbmdzLFxuICAgICAgICAgICAgICBQcm9wZXJ0aWVzOiBwYW5lbFByb3BlcnRpZXMsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAge3RlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkICYmIChcbiAgICAgICAgICA8UHJvbXB0SG9sZGVyIGxhYmVsPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICBlcnJvcj17dGVhY2hlckluc3RydWN0aW9uc0Vycm9yfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyh0ZWFjaGVySW5zdHJ1Y3Rpb25zPy5pbnB1dENvbmZpZ3VyYXRpb24pfVxuICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3RlYWNoZXJJbnN0cnVjdGlvbnNFcnJvciAmJiA8RXJyb3JUZXh0Pnt0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3J9PC9FcnJvclRleHQ+fVxuICAgICAgICAgIDwvUHJvbXB0SG9sZGVyPlxuICAgICAgICApfVxuXG4gICAgICAgIHtwcm9tcHRFbmFibGVkICYmIChcbiAgICAgICAgICA8UHJvbXB0SG9sZGVyIGxhYmVsPVwiSXRlbSBTdGVtXCI+XG4gICAgICAgICAgICA8RWRpdGFibGVIdG1sXG4gICAgICAgICAgICAgIG1hcmt1cD17bW9kZWwucHJvbXB0fVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblByb21wdENoYW5nZWR9XG4gICAgICAgICAgICAgIGVycm9yPXtwcm9tcHRFcnJvcn1cbiAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgcGx1Z2luUHJvcHM9e2dldFBsdWdpblByb3BzKHByb21wdD8uaW5wdXRDb25maWd1cmF0aW9uKX1cbiAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgIG1heEltYWdlV2lkdGg9e2RlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17ZGVmYXVsdEltYWdlTWF4SGVpZ2h0fVxuICAgICAgICAgICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ9e3VwbG9hZFNvdW5kU3VwcG9ydH1cbiAgICAgICAgICAgICAgbGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHM9e1t7IGxhbmd1YWdlOiAnc3BhbmlzaCcgfSwgeyBsYW5ndWFnZTogJ3NwZWNpYWwnIH1dfVxuICAgICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtwcm9tcHRFcnJvciAmJiA8RXJyb3JUZXh0Pntwcm9tcHRFcnJvcn08L0Vycm9yVGV4dD59XG4gICAgICAgICAgPC9Qcm9tcHRIb2xkZXI+XG4gICAgICAgICl9XG5cbiAgICAgICAge2JhY2tncm91bmRJbWFnZUVuYWJsZWQgJiYgKFxuICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJoNlwiPkRlZmluZSBCYWNrZ3JvdW5kIEltYWdlPC9UeXBvZ3JhcGh5PlxuXG4gICAgICAgICAgICA8SW1hZ2VDb250YWluZXJcbiAgICAgICAgICAgICAgaW1hZ2VVcmw9e21vZGVsLmltYWdlVXJsfVxuICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlRGltZW5zaW9uPXt0aGlzLm9uVXBkYXRlSW1hZ2VEaW1lbnNpb259XG4gICAgICAgICAgICAgIG9uSW1hZ2VVcGxvYWQ9e3RoaXMub25JbWFnZVVwbG9hZH1cbiAgICAgICAgICAgICAgaW1hZ2VEaW1lbnNpb25zPXttb2RlbC5pbWFnZURpbWVuc2lvbnN9XG4gICAgICAgICAgICAgIGluc2VydEltYWdlPXtpbWFnZVN1cHBvcnQgJiYgaW1hZ2VTdXBwb3J0LmFkZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgKX1cbiAgICAgIDwvbGF5b3V0LkNvbmZpZ0xheW91dD5cbiAgICApO1xuICB9XG59XG5cblJvb3QucHJvcFR5cGVzID0ge1xuICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBpbWFnZVN1cHBvcnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYWRkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBkZWxldGU6IFByb3BUeXBlcy5mdW5jLFxuICB9KSxcbiAgdXBsb2FkU291bmRTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGFkZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgfSksXG4gIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgUm9vdDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFMLE9BQUE7QUFFQSxJQUFBTSxlQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxNQUFNO0VBQUVRLEtBQUs7RUFBRUMsTUFBTTtFQUFFQztBQUFTLENBQUMsR0FBR0Msa0JBQVE7QUFFNUMsTUFBTUMsWUFBWSxHQUFHLElBQUFDLGNBQU0sRUFBQ0Msd0JBQWMsQ0FBQyxDQUFDLENB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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","dropdown","Root","prompt","props","model","onModelChanged","update","teacherInstructions","dimensions","imageDimensions","imageUrl","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","backgroundImage","contentDimensions","maxImageWidth","maxImageHeight","settingsPanelDisabled","spellCheck","withRubric","language","languageChoices","mathMlOptions","backgroundImageEnabled","errors","extraCSSRules","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","rubricEnabled","getPluginProps","Settings","Properties","promptHolder","onTeacherInstructionsChanged","inputConfiguration","errorText","onPromptChanged","onUpdateImageDimension","onImageUpload","add","React","Component","styles","theme","paddingTop","spacing","unit","marginBottom","width","fontSize","typography","color","palette","error","main","propTypes","PropTypes","object","isRequired","shape","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport ImageContainer from './image-container';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle, dropdown } = settings;\n\nexport class Root extends React.Component {\n onPromptChanged = (prompt) => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n onModelChanged({ ...update, prompt });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageDimensions: dimensions });\n };\n\n onImageUpload = (imageUrl) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageUrl });\n };\n\n render() {\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n backgroundImage = {},\n contentDimensions = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n backgroundImageEnabled,\n errors = {},\n extraCSSRules,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label=\"Item Stem\" className={classes.promptHolder}>\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n imageSupport={imageSupport}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {backgroundImageEnabled && (\n <React.Fragment>\n <Typography variant=\"subheading\">Define Background Image</Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n imageDimensions={model.imageDimensions}\n insertImage={imageSupport && imageSupport.add}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n promptHolder: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nRoot.propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(Root);\n"],"file":"root.js"}
1
+ {"version":3,"file":"root.js","names":["_react","_interopRequireDefault","require","_configUi","_propTypes","_editableHtml","_Typography","_styles","_imageContainer","_cloneDeep","Panel","toggle","dropdown","settings","PromptHolder","styled","InputContainer","theme","paddingTop","spacing","marginTop","marginBottom","width","ErrorText","fontSize","typography","color","palette","error","main","Root","React","Component","constructor","args","_defineProperty2","default","prompt","model","onModelChanged","props","update","cloneDeep","teacherInstructions","dimensions","imageDimensions","imageUrl","render","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","backgroundImage","contentDimensions","maxImageWidth","maxImageHeight","settingsPanelDisabled","spellCheck","withRubric","language","languageChoices","mathMlOptions","backgroundImageEnabled","errors","extraCSSRules","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","rubricEnabled","getPluginProps","createElement","layout","ConfigLayout","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","markup","onChange","onTeacherInstructionsChanged","nonEmpty","pluginProps","inputConfiguration","languageCharactersProps","onPromptChanged","Fragment","variant","onUpdateImageDimension","onImageUpload","insertImage","add","exports","propTypes","PropTypes","object","isRequired","shape","func","delete","_default"],"sources":["../src/root.jsx"],"sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\n\nimport ImageContainer from './image-container';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle, dropdown } = settings;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n paddingTop: theme.spacing(1),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n width: '100%',\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nexport class Root extends React.Component {\n onPromptChanged = (prompt) => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n onModelChanged({ ...update, prompt });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageDimensions: dimensions });\n };\n\n onImageUpload = (imageUrl) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageUrl });\n };\n\n render() {\n const { configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n backgroundImage = {},\n contentDimensions = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n backgroundImageEnabled,\n errors = {},\n extraCSSRules,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label=\"Item Stem\">\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n imageSupport={imageSupport}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n {backgroundImageEnabled && (\n <React.Fragment>\n <Typography variant=\"h6\">Define Background Image</Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n imageDimensions={model.imageDimensions}\n insertImage={imageSupport && imageSupport.add}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nRoot.propTypes = {\n configuration: PropTypes.object,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n};\n\nexport default Root;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,WAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAEA,IAAAM,eAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,UAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEA,MAAM;EAAEQ,KAAK;EAAEC,MAAM;EAAEC;AAAS,CAAC,GAAGC,kBAAQ;AAE5C,MAAMC,YAAY,GAAG,IAAAC,cAAM,EAACC,wBAAc,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC1DC,UAAU,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC5BC,SAAS,EAAEH,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC3BE,YAAY,EAAEJ,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC9BG,KAAK,EAAE;AACT,CAAC,CAAC,CAAC;AAEH,MAAMC,SAAS,GAAG,IAAAR,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEE;AAAM,CAAC,MAAM;EAC9CO,QAAQ,EAAEP,KAAK,CAACQ,UAAU,CAACD,QAAQ,GAAG,CAAC;EACvCE,KAAK,EAAET,KAAK,CAACU,OAAO,CAACC,KAAK,CAACC,IAAI;EAC/BX,UAAU,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEI,MAAMW,IAAI,SAASC,cAAK,CAACC,SAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,2BACrBC,MAAM,IAAK;MAC5B,MAAM;QAAEC,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAC5C,MAAMC,MAAM,GAAG,IAAAC,kBAAS,EAACJ,KAAK,CAAC;MAE/BC,cAAc,CAAC;QAAE,GAAGE,MAAM;QAAEJ;MAAO,CAAC,CAAC;IACvC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,wCAE+BO,mBAAmB,IAAK;MACtD,MAAM;QAAEL,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAE5CD,cAAc,CAAC;QAAE,GAAGD,KAAK;QAAEK;MAAoB,CAAC,CAAC;IACnD,CAAC;IAAA,IAAAR,gBAAA,CAAAC,OAAA,kCAEyBQ,UAAU,IAAK;MACvC,MAAM;QAAEN,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAE5CD,cAAc,CAAC;QAAE,GAAGD,KAAK;QAAEO,eAAe,EAAED;MAAW,CAAC,CAAC;IAC3D,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,yBAEgBU,QAAQ,IAAK;MAC5B,MAAM;QAAER,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAE5CD,cAAc,CAAC;QAAE,GAAGD,KAAK;QAAEQ;MAAS,CAAC,CAAC;IACxC,CAAC;EAAA;EAEDC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,aAAa;MAAEC,YAAY;MAAEX,KAAK;MAAEY,sBAAsB;MAAEX,cAAc;MAAEY;IAAmB,CAAC,GACtG,IAAI,CAACX,KAAK;IACZ,MAAM;MACJY,sBAAsB,GAAG,CAAC,CAAC;MAC3BC,eAAe,GAAG,CAAC,CAAC;MACpBC,iBAAiB,GAAG,CAAC,CAAC;MACtBC,aAAa,GAAG,CAAC,CAAC;MAClBC,cAAc,GAAG,CAAC,CAAC;MACnBnB,MAAM,GAAG,CAAC,CAAC;MACXoB,qBAAqB;MACrBC,UAAU,GAAG,CAAC,CAAC;MACff,mBAAmB,GAAG,CAAC,CAAC;MACxBgB,UAAU,GAAG,CAAC,CAAC;MACfC,QAAQ,GAAG,CAAC,CAAC;MACbC,eAAe,GAAG,CAAC,CAAC;MACpBC,aAAa,GAAG,CAAC;IACnB,CAAC,GAAGd,aAAa,IAAI,CAAC,CAAC;IACvB,MAAM;MACJe,sBAAsB;MACtBC,MAAM,GAAG,CAAC,CAAC;MACXC,aAAa;MACbC,aAAa;MACbC,iBAAiB;MACjBC,0BAA0B;MAC1BC;IACF,CAAC,GAAG/B,KAAK,IAAI,CAAC,CAAC;IACf,MAAM;MAAED,MAAM,EAAEiC,WAAW;MAAE3B,mBAAmB,EAAE4B;IAAyB,CAAC,GAAGP,MAAM;IAErF,MAAMQ,oBAAoB,GAAGjB,aAAa,IAAIA,aAAa,CAAClB,MAAM;IAClE,MAAMoC,qBAAqB,GAAGjB,cAAc,IAAIA,cAAc,CAACnB,MAAM;IAErE,MAAMqC,WAAW,GAAG;MAClBC,QAAQ,EAAEN,qBAAqB,KAAK,KAAK,GAAG,KAAK,GAAG;IACtD,CAAC;IAED,MAAMO,aAAa,GAAG;MACpBb,sBAAsB,EAAEV,eAAe,CAACxC,QAAQ,IAAIF,MAAM,CAAC0C,eAAe,CAACwB,KAAK,CAAC;MACjFX,aAAa,EAAE7B,MAAM,CAACxB,QAAQ,IAAIF,MAAM,CAAC0B,MAAM,CAACwC,KAAK,CAAC;MACtD,kBAAkB,EAAEjB,QAAQ,CAAC/C,QAAQ,IAAIF,MAAM,CAACiD,QAAQ,CAACiB,KAAK,EAAE,IAAI,CAAC;MACrEjB,QAAQ,EAAEA,QAAQ,CAAC/C,QAAQ,IAAI+C,QAAQ,CAACkB,OAAO,IAAIlE,QAAQ,CAACiD,eAAe,CAACgB,KAAK,EAAEhB,eAAe,CAACkB,OAAO;IAC5G,CAAC;IAED,MAAMC,eAAe,GAAG;MACtBZ,0BAA0B,EAAEzB,mBAAmB,CAAC9B,QAAQ,IAAIF,MAAM,CAACgC,mBAAmB,CAACkC,KAAK,CAAC;MAC7FV,iBAAiB,EAAET,UAAU,CAAC7C,QAAQ,IAAIF,MAAM,CAAC+C,UAAU,CAACmB,KAAK,CAAC;MAClEI,aAAa,EAAEtB,UAAU,EAAE9C,QAAQ,IAAIF,MAAM,CAACgD,UAAU,EAAEkB,KAAK;IACjE,CAAC;IAED,MAAMK,cAAc,GAAGA,CAAC1C,KAAK,GAAG,CAAC,CAAC,MAAM;MACtC,GAAGY,sBAAsB;MACzB,GAAGZ;IACL,CAAC,CAAC;IAEF,oBACExC,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAChF,SAAA,CAAAiF,MAAM,CAACC,YAAY;MAClBpB,aAAa,EAAEA,aAAc;MAC7BrB,UAAU,EAAEU,iBAAkB;MAC9BgC,YAAY,EAAE7B,qBAAsB;MACpC5C,QAAQ,eACNb,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAACzE,KAAK;QACJ4B,KAAK,EAAEA,KAAM;QACbiD,aAAa,EAAEhD,cAAe;QAC9BS,aAAa,EAAEA,aAAc;QAC7BwC,qBAAqB,EAAEtC,sBAAuB;QAC9CuC,MAAM,EAAE;UACNC,QAAQ,EAAEd,aAAa;UACvBe,UAAU,EAAEX;QACd;MAAE,CACH;IACF,GAEAZ,0BAA0B,iBACzBpE,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAACrE,YAAY;MAAC+D,KAAK,EAAElC,mBAAmB,CAACkC;IAAM,gBAC7C7E,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC9E,aAAA,CAAA+B,OAAY;MACXwD,MAAM,EAAEtD,KAAK,CAACK,mBAAmB,IAAI,EAAG;MACxCkD,QAAQ,EAAE,IAAI,CAACC,4BAA6B;MAC5C7C,YAAY,EAAEA,YAAa;MAC3B8C,QAAQ,EAAE,KAAM;MAChBnE,KAAK,EAAE2C,wBAAyB;MAChCG,WAAW,EAAEA,WAAY;MACzBsB,WAAW,EAAEd,cAAc,CAACvC,mBAAmB,EAAEsD,kBAAkB,CAAE;MACrEvC,UAAU,EAAES,iBAAkB;MAC9BZ,aAAa,EAAGA,aAAa,IAAIA,aAAa,CAACZ,mBAAmB,IAAK6B,oBAAqB;MAC5FhB,cAAc,EAAGA,cAAc,IAAIA,cAAc,CAACb,mBAAmB,IAAK8B,qBAAsB;MAChGtB,kBAAkB,EAAEA,kBAAmB;MACvC+C,uBAAuB,EAAE,CAAC;QAAEtC,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5EE,aAAa,EAAEA;IAAc,CAC9B,CAAC,EACDS,wBAAwB,iBAAIvE,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC5D,SAAS,QAAEgD,wBAAoC,CACjE,CACf,EAEAL,aAAa,iBACZlE,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAACrE,YAAY;MAAC+D,KAAK,EAAC;IAAW,gBAC7B7E,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC9E,aAAA,CAAA+B,OAAY;MACXwD,MAAM,EAAEtD,KAAK,CAACD,MAAO;MACrBwD,QAAQ,EAAE,IAAI,CAACM,eAAgB;MAC/BvE,KAAK,EAAE0C,WAAY;MACnBI,WAAW,EAAEA,WAAY;MACzBhB,UAAU,EAAES,iBAAkB;MAC9B6B,WAAW,EAAEd,cAAc,CAAC7C,MAAM,EAAE4D,kBAAkB,CAAE;MACxDhD,YAAY,EAAEA,YAAa;MAC3BM,aAAa,EAAEiB,oBAAqB;MACpChB,cAAc,EAAEiB,qBAAsB;MACtCtB,kBAAkB,EAAEA,kBAAmB;MACvC+C,uBAAuB,EAAE,CAAC;QAAEtC,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5EE,aAAa,EAAEA;IAAc,CAC9B,CAAC,EACDQ,WAAW,iBAAItE,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC5D,SAAS,QAAE+C,WAAuB,CACvC,CACf,EAEAP,sBAAsB,iBACrB/D,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAACnF,MAAA,CAAAoC,OAAK,CAACgE,QAAQ,qBACbpG,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC7E,WAAA,CAAA8B,OAAU;MAACiE,OAAO,EAAC;IAAI,GAAC,yBAAmC,CAAC,eAE7DrG,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC3E,eAAA,CAAA4B,OAAc;MACbU,QAAQ,EAAER,KAAK,CAACQ,QAAS;MACzBwD,sBAAsB,EAAE,IAAI,CAACA,sBAAuB;MACpDC,aAAa,EAAE,IAAI,CAACA,aAAc;MAClC1D,eAAe,EAAEP,KAAK,CAACO,eAAgB;MACvC2D,WAAW,EAAEvD,YAAY,IAAIA,YAAY,CAACwD;IAAI,CAC/C,CACa,CAEC,CAAC;EAE1B;AACF;AAACC,OAAA,CAAA5E,IAAA,GAAAA,IAAA;AAEDA,IAAI,CAAC6E,SAAS,GAAG;EACf3D,aAAa,EAAE4D,kBAAS,CAACC,MAAM;EAC/BvE,KAAK,EAAEsE,kBAAS,CAACC,MAAM,CAACC,UAAU;EAClC7D,YAAY,EAAE2D,kBAAS,CAACG,KAAK,CAAC;IAC5BN,GAAG,EAAEG,kBAAS,CAACI,IAAI;IACnBC,MAAM,EAAEL,kBAAS,CAACI;EACpB,CAAC,CAAC;EACF7D,kBAAkB,EAAEyD,kBAAS,CAACG,KAAK,CAAC;IAClCN,GAAG,EAAEG,kBAAS,CAACI,IAAI;IACnBC,MAAM,EAAEL,kBAAS,CAACI;EACpB,CAAC,CAAC;EACFzE,cAAc,EAAEqE,kBAAS,CAACI,IAAI,CAACF,UAAU;EACzC5D,sBAAsB,EAAE0D,kBAAS,CAACI,IAAI,CAACF;AACzC,CAAC;AAAC,IAAAI,QAAA,GAAAR,OAAA,CAAAtE,OAAA,GAEaN,IAAI","ignoreList":[]}