@pie-lib/config-ui 13.0.4-next.31 → 13.0.4-next.36

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 (190) hide show
  1. package/CHANGELOG.json +32 -0
  2. package/CHANGELOG.md +2419 -0
  3. package/LICENSE.md +5 -0
  4. package/lib/alert-dialog.js +68 -0
  5. package/lib/alert-dialog.js.map +1 -0
  6. package/lib/checkbox.js +84 -0
  7. package/lib/checkbox.js.map +1 -0
  8. package/lib/choice-configuration/feedback-menu.js +129 -0
  9. package/lib/choice-configuration/feedback-menu.js.map +1 -0
  10. package/lib/choice-configuration/index.js +381 -0
  11. package/lib/choice-configuration/index.js.map +1 -0
  12. package/lib/choice-utils.js +42 -0
  13. package/lib/choice-utils.js.map +1 -0
  14. package/lib/feedback-config/feedback-selector.js +155 -0
  15. package/lib/feedback-config/feedback-selector.js.map +1 -0
  16. package/lib/feedback-config/group.js +61 -0
  17. package/lib/feedback-config/group.js.map +1 -0
  18. package/lib/feedback-config/index.js +146 -0
  19. package/lib/feedback-config/index.js.map +1 -0
  20. package/lib/form-section.js +44 -0
  21. package/lib/form-section.js.map +1 -0
  22. package/lib/help.js +106 -0
  23. package/lib/help.js.map +1 -0
  24. package/lib/index.js +186 -0
  25. package/lib/index.js.map +1 -0
  26. package/lib/input.js +106 -0
  27. package/lib/input.js.map +1 -0
  28. package/lib/inputs.js +105 -0
  29. package/lib/inputs.js.map +1 -0
  30. package/lib/langs.js +136 -0
  31. package/lib/langs.js.map +1 -0
  32. package/lib/layout/config-layout.js +137 -0
  33. package/lib/layout/config-layout.js.map +1 -0
  34. package/lib/layout/index.js +21 -0
  35. package/lib/layout/index.js.map +1 -0
  36. package/lib/layout/layout-contents.js +160 -0
  37. package/lib/layout/layout-contents.js.map +1 -0
  38. package/lib/layout/settings-box.js +57 -0
  39. package/lib/layout/settings-box.js.map +1 -0
  40. package/lib/mui-box/index.js +63 -0
  41. package/lib/mui-box/index.js.map +1 -0
  42. package/lib/number-text-field-custom.js +376 -0
  43. package/lib/number-text-field-custom.js.map +1 -0
  44. package/lib/number-text-field.js +229 -0
  45. package/lib/number-text-field.js.map +1 -0
  46. package/lib/radio-with-label.js +48 -0
  47. package/lib/radio-with-label.js.map +1 -0
  48. package/lib/settings/display-size.js +61 -0
  49. package/lib/settings/display-size.js.map +1 -0
  50. package/lib/settings/index.js +110 -0
  51. package/lib/settings/index.js.map +1 -0
  52. package/lib/settings/panel.js +392 -0
  53. package/lib/settings/panel.js.map +1 -0
  54. package/lib/settings/settings-radio-label.js +51 -0
  55. package/lib/settings/settings-radio-label.js.map +1 -0
  56. package/lib/settings/toggle.js +63 -0
  57. package/lib/settings/toggle.js.map +1 -0
  58. package/lib/tabs/index.js +75 -0
  59. package/lib/tabs/index.js.map +1 -0
  60. package/lib/tags-input/index.js +149 -0
  61. package/lib/tags-input/index.js.map +1 -0
  62. package/lib/two-choice.js +136 -0
  63. package/lib/two-choice.js.map +1 -0
  64. package/lib/with-stateful-model.js +61 -0
  65. package/lib/with-stateful-model.js.map +1 -0
  66. package/package.json +19 -33
  67. package/src/__tests__/alert-dialog.test.jsx +183 -0
  68. package/src/__tests__/checkbox.test.jsx +152 -0
  69. package/src/__tests__/choice-utils.test.js +12 -0
  70. package/src/__tests__/form-section.test.jsx +328 -0
  71. package/src/__tests__/help.test.jsx +184 -0
  72. package/src/__tests__/input.test.jsx +156 -0
  73. package/src/__tests__/langs.test.jsx +376 -0
  74. package/src/__tests__/number-text-field-custom.test.jsx +255 -0
  75. package/src/__tests__/number-text-field.test.jsx +263 -0
  76. package/src/__tests__/radio-with-label.test.jsx +155 -0
  77. package/src/__tests__/settings-panel.test.js +187 -0
  78. package/src/__tests__/settings.test.jsx +452 -0
  79. package/src/__tests__/tabs.test.jsx +188 -0
  80. package/src/__tests__/two-choice.test.js +110 -0
  81. package/src/__tests__/with-stateful-model.test.jsx +139 -0
  82. package/src/alert-dialog.jsx +75 -0
  83. package/src/checkbox.jsx +61 -0
  84. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +151 -0
  85. package/src/choice-configuration/__tests__/index.test.jsx +234 -0
  86. package/src/choice-configuration/feedback-menu.jsx +96 -0
  87. package/src/choice-configuration/index.jsx +357 -0
  88. package/src/choice-utils.js +30 -0
  89. package/src/feedback-config/__tests__/feedback-config.test.jsx +141 -0
  90. package/src/feedback-config/__tests__/feedback-selector.test.jsx +97 -0
  91. package/src/feedback-config/feedback-selector.jsx +112 -0
  92. package/src/feedback-config/group.jsx +51 -0
  93. package/src/feedback-config/index.jsx +111 -0
  94. package/src/form-section.jsx +31 -0
  95. package/src/help.jsx +79 -0
  96. package/src/index.js +55 -0
  97. package/src/input.jsx +72 -0
  98. package/src/inputs.jsx +69 -0
  99. package/src/langs.jsx +111 -0
  100. package/src/layout/__tests__/config.layout.test.jsx +59 -0
  101. package/src/layout/__tests__/layout-content.test.jsx +3 -0
  102. package/src/layout/config-layout.jsx +103 -0
  103. package/src/layout/index.js +4 -0
  104. package/src/layout/layout-contents.jsx +117 -0
  105. package/src/layout/settings-box.jsx +32 -0
  106. package/src/mui-box/index.jsx +56 -0
  107. package/src/number-text-field-custom.jsx +333 -0
  108. package/src/number-text-field.jsx +215 -0
  109. package/src/radio-with-label.jsx +30 -0
  110. package/src/settings/display-size.jsx +53 -0
  111. package/src/settings/index.js +83 -0
  112. package/src/settings/panel.jsx +333 -0
  113. package/src/settings/settings-radio-label.jsx +32 -0
  114. package/src/settings/toggle.jsx +46 -0
  115. package/src/tabs/index.jsx +47 -0
  116. package/src/tags-input/__tests__/index.test.jsx +113 -0
  117. package/src/tags-input/index.jsx +116 -0
  118. package/src/two-choice.jsx +90 -0
  119. package/src/with-stateful-model.jsx +36 -0
  120. package/dist/_virtual/_rolldown/runtime.js +0 -11
  121. package/dist/alert-dialog.d.ts +0 -44
  122. package/dist/alert-dialog.js +0 -47
  123. package/dist/checkbox.d.ts +0 -34
  124. package/dist/checkbox.js +0 -57
  125. package/dist/choice-configuration/feedback-menu.d.ts +0 -32
  126. package/dist/choice-configuration/feedback-menu.js +0 -85
  127. package/dist/choice-configuration/index.d.ts +0 -62
  128. package/dist/choice-configuration/index.js +0 -240
  129. package/dist/choice-utils.d.ts +0 -21
  130. package/dist/choice-utils.js +0 -15
  131. package/dist/feedback-config/feedback-selector.d.ts +0 -33
  132. package/dist/feedback-config/feedback-selector.js +0 -92
  133. package/dist/feedback-config/group.d.ts +0 -21
  134. package/dist/feedback-config/group.js +0 -33
  135. package/dist/feedback-config/index.d.ts +0 -48
  136. package/dist/feedback-config/index.js +0 -96
  137. package/dist/form-section.d.ts +0 -25
  138. package/dist/form-section.js +0 -25
  139. package/dist/fraction-to-number.d.ts +0 -7
  140. package/dist/fraction-to-number.js +0 -9
  141. package/dist/help.d.ts +0 -41
  142. package/dist/help.js +0 -61
  143. package/dist/index.d.ts +0 -31
  144. package/dist/index.js +0 -34
  145. package/dist/input.d.ts +0 -29
  146. package/dist/input.js +0 -65
  147. package/dist/inputs.d.ts +0 -63
  148. package/dist/inputs.js +0 -70
  149. package/dist/langs.d.ts +0 -41
  150. package/dist/langs.js +0 -76
  151. package/dist/layout/config-layout.d.ts +0 -10
  152. package/dist/layout/config-layout.js +0 -75
  153. package/dist/layout/index.d.ts +0 -11
  154. package/dist/layout/index.js +0 -10
  155. package/dist/layout/layout-contents.d.ts +0 -21
  156. package/dist/layout/layout-contents.js +0 -70
  157. package/dist/layout/settings-box.d.ts +0 -19
  158. package/dist/layout/settings-box.js +0 -31
  159. package/dist/mui-box/index.d.ts +0 -21
  160. package/dist/mui-box/index.js +0 -47
  161. package/dist/node_modules/.bun/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/extends.js +0 -12
  162. package/dist/node_modules/.bun/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +0 -7
  163. package/dist/node_modules/.bun/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +0 -12
  164. package/dist/node_modules/.bun/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +0 -8
  165. package/dist/node_modules/.bun/react-measure@2.5.2_6dbf9a050bc9aadb/node_modules/react-measure/dist/index.esm.js +0 -122
  166. package/dist/node_modules/.bun/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +0 -276
  167. package/dist/number-text-field-custom.d.ts +0 -51
  168. package/dist/number-text-field-custom.js +0 -192
  169. package/dist/number-text-field.d.ts +0 -47
  170. package/dist/number-text-field.js +0 -122
  171. package/dist/radio-with-label.d.ts +0 -25
  172. package/dist/radio-with-label.js +0 -27
  173. package/dist/settings/display-size.d.ts +0 -26
  174. package/dist/settings/display-size.js +0 -45
  175. package/dist/settings/index.d.ts +0 -45
  176. package/dist/settings/index.js +0 -63
  177. package/dist/settings/panel.d.ts +0 -27
  178. package/dist/settings/panel.js +0 -201
  179. package/dist/settings/settings-radio-label.d.ts +0 -25
  180. package/dist/settings/settings-radio-label.js +0 -29
  181. package/dist/settings/toggle.d.ts +0 -25
  182. package/dist/settings/toggle.js +0 -33
  183. package/dist/tabs/index.d.ts +0 -22
  184. package/dist/tabs/index.js +0 -39
  185. package/dist/tags-input/index.d.ts +0 -21
  186. package/dist/tags-input/index.js +0 -83
  187. package/dist/two-choice.d.ts +0 -43
  188. package/dist/two-choice.js +0 -79
  189. package/dist/with-stateful-model.d.ts +0 -42
  190. package/dist/with-stateful-model.js +0 -32
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.ChoiceConfiguration = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+ var _styles = require("@mui/material/styles");
18
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
19
+ var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
20
+ var _SubdirectoryArrowRight = _interopRequireDefault(require("@mui/icons-material/SubdirectoryArrowRight"));
21
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
22
+ var _renderUi = require("@pie-lib/render-ui");
23
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
24
+ var _inputs = require("../inputs");
25
+ var _feedbackMenu = _interopRequireDefault(require("./feedback-menu"));
26
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
27
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
29
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
30
+ var StyledEditorHolder = (0, _styles.styled)('div')(function (_ref) {
31
+ var theme = _ref.theme;
32
+ return {
33
+ marginTop: theme.spacing(2)
34
+ };
35
+ });
36
+ var EditableHtmlContainer = function EditableHtmlContainer(_ref2) {
37
+ var label = _ref2.label,
38
+ onChange = _ref2.onChange,
39
+ value = _ref2.value,
40
+ className = _ref2.className,
41
+ imageSupport = _ref2.imageSupport,
42
+ disableImageAlignmentButtons = _ref2.disableImageAlignmentButtons,
43
+ disabled = _ref2.disabled,
44
+ spellCheck = _ref2.spellCheck,
45
+ nonEmpty = _ref2.nonEmpty,
46
+ pluginOpts = _ref2.pluginOpts,
47
+ toolbarOpts = _ref2.toolbarOpts,
48
+ error = _ref2.error,
49
+ maxImageWidth = _ref2.maxImageWidth,
50
+ maxImageHeight = _ref2.maxImageHeight,
51
+ uploadSoundSupport = _ref2.uploadSoundSupport,
52
+ _ref2$mathMlOptions = _ref2.mathMlOptions,
53
+ mathMlOptions = _ref2$mathMlOptions === void 0 ? {} : _ref2$mathMlOptions;
54
+ return /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
55
+ label: label,
56
+ className: className
57
+ }, /*#__PURE__*/_react["default"].createElement(StyledEditorHolder, null, /*#__PURE__*/_react["default"].createElement(_editableHtmlTipTap["default"], {
58
+ markup: value || '',
59
+ disabled: disabled,
60
+ spellCheck: spellCheck,
61
+ nonEmpty: nonEmpty,
62
+ onChange: onChange,
63
+ imageSupport: imageSupport,
64
+ disableImageAlignmentButtons: disableImageAlignmentButtons,
65
+ pluginProps: pluginOpts || {},
66
+ toolbarOpts: toolbarOpts,
67
+ error: error,
68
+ maxImageWidth: maxImageWidth,
69
+ maxImageHeight: maxImageHeight,
70
+ uploadSoundSupport: uploadSoundSupport,
71
+ languageCharactersProps: [{
72
+ language: 'spanish'
73
+ }, {
74
+ language: 'special'
75
+ }],
76
+ mathMlOptions: mathMlOptions
77
+ })));
78
+ };
79
+ var StyledFeedbackContainer = (0, _styles.styled)('div')(function () {
80
+ return {
81
+ position: 'relative'
82
+ };
83
+ });
84
+ var StyledArrowIcon = (0, _styles.styled)(_SubdirectoryArrowRight["default"])(function (_ref3) {
85
+ var theme = _ref3.theme;
86
+ return {
87
+ fill: theme.palette.grey[400],
88
+ left: -56,
89
+ position: 'absolute',
90
+ top: 40
91
+ };
92
+ });
93
+ var StyledTextField = (0, _styles.styled)(_TextField["default"])(function (_ref4) {
94
+ var theme = _ref4.theme;
95
+ return {
96
+ width: '100%',
97
+ marginTop: theme.spacing(2)
98
+ };
99
+ });
100
+ var StyledEditableHtmlContainer = (0, _styles.styled)(EditableHtmlContainer)(function (_ref5) {
101
+ var theme = _ref5.theme;
102
+ return {
103
+ width: '100%',
104
+ marginTop: theme.spacing(2)
105
+ };
106
+ });
107
+ var Feedback = function Feedback(_ref6) {
108
+ var value = _ref6.value,
109
+ onChange = _ref6.onChange,
110
+ type = _ref6.type,
111
+ correct = _ref6.correct,
112
+ defaults = _ref6.defaults,
113
+ toolbarOpts = _ref6.toolbarOpts,
114
+ _ref6$mathMlOptions = _ref6.mathMlOptions,
115
+ mathMlOptions = _ref6$mathMlOptions === void 0 ? {} : _ref6$mathMlOptions;
116
+ if (!type || type === 'none') {
117
+ return null;
118
+ } else if (type === 'default') {
119
+ return /*#__PURE__*/_react["default"].createElement(StyledFeedbackContainer, null, /*#__PURE__*/_react["default"].createElement(StyledArrowIcon, null), /*#__PURE__*/_react["default"].createElement(StyledTextField, {
120
+ label: "Feedback Text",
121
+ value: correct ? defaults.correct : defaults.incorrect,
122
+ variant: "standard"
123
+ }));
124
+ } else {
125
+ return /*#__PURE__*/_react["default"].createElement(StyledFeedbackContainer, null, /*#__PURE__*/_react["default"].createElement(StyledArrowIcon, null), /*#__PURE__*/_react["default"].createElement(StyledEditableHtmlContainer, {
126
+ label: "Feedback Text",
127
+ value: value,
128
+ onChange: onChange,
129
+ toolbarOpts: toolbarOpts,
130
+ mathMlOptions: mathMlOptions
131
+ }));
132
+ }
133
+ };
134
+ var StyledIndex = (0, _styles.styled)('span')(function (_ref7) {
135
+ var theme = _ref7.theme;
136
+ return {
137
+ paddingRight: theme.spacing(1),
138
+ paddingTop: theme.spacing(3)
139
+ };
140
+ });
141
+ var StyledTopRow = (0, _styles.styled)('div')(function () {
142
+ return {
143
+ display: 'flex',
144
+ alignItems: 'center'
145
+ };
146
+ });
147
+ var StyledToggle = (0, _styles.styled)('div')(function (_ref8) {
148
+ var theme = _ref8.theme;
149
+ return {
150
+ flex: '0 1 auto',
151
+ paddingTop: theme.spacing(0.5),
152
+ paddingBottom: 0,
153
+ marginRight: 0,
154
+ marginLeft: theme.spacing(1)
155
+ };
156
+ });
157
+ var StyledFeedback = (0, _styles.styled)('div')(function (_ref9) {
158
+ var theme = _ref9.theme;
159
+ return {
160
+ flex: '0 1 auto',
161
+ paddingTop: theme.spacing(2),
162
+ paddingLeft: 0,
163
+ marginLeft: 0,
164
+ marginRight: theme.spacing(1)
165
+ };
166
+ });
167
+ var StyledFeedbackIcon = (0, _styles.styled)('div')(function () {
168
+ return {
169
+ margin: 0,
170
+ width: 'inherit'
171
+ };
172
+ });
173
+ var StyledDeleteIcon = (0, _styles.styled)('div')(function () {
174
+ return {
175
+ margin: 0,
176
+ width: 'inherit'
177
+ };
178
+ });
179
+ var StyledDelete = (0, _styles.styled)('div')(function (_ref0) {
180
+ var theme = _ref0.theme;
181
+ return {
182
+ flex: '0 1 auto',
183
+ paddingTop: theme.spacing(2),
184
+ paddingLeft: 0,
185
+ marginLeft: 0
186
+ };
187
+ });
188
+ var StyledMiddleColumn = (0, _styles.styled)('div')(function (_ref1) {
189
+ var theme = _ref1.theme;
190
+ return {
191
+ display: 'flex',
192
+ flex: 1,
193
+ flexDirection: 'column',
194
+ marginRight: theme.spacing(1)
195
+ };
196
+ });
197
+ var StyledErrorText = (0, _styles.styled)('div')(function (_ref10) {
198
+ var theme = _ref10.theme;
199
+ return {
200
+ fontSize: theme.typography.fontSize - 2,
201
+ color: theme.palette.error.main
202
+ };
203
+ });
204
+ var ChoiceConfiguration = exports.ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
205
+ function ChoiceConfiguration() {
206
+ var _this;
207
+ (0, _classCallCheck2["default"])(this, ChoiceConfiguration);
208
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
209
+ args[_key] = arguments[_key];
210
+ }
211
+ _this = _callSuper(this, ChoiceConfiguration, [].concat(args));
212
+ (0, _defineProperty2["default"])(_this, "_changeFn", function (key) {
213
+ return function (update) {
214
+ var _this$props = _this.props,
215
+ data = _this$props.data,
216
+ onChange = _this$props.onChange;
217
+ if (onChange) {
218
+ onChange(_objectSpread(_objectSpread({}, data), {}, (0, _defineProperty2["default"])({}, key, update)));
219
+ }
220
+ };
221
+ });
222
+ (0, _defineProperty2["default"])(_this, "onLabelChange", _this._changeFn('label'));
223
+ (0, _defineProperty2["default"])(_this, "onCheckedChange", function (event) {
224
+ var correct = event.target.checked;
225
+ var _this$props2 = _this.props,
226
+ data = _this$props2.data,
227
+ onChange = _this$props2.onChange;
228
+ if (onChange) {
229
+ onChange(_objectSpread(_objectSpread({}, data), {}, {
230
+ correct: correct
231
+ }));
232
+ }
233
+ });
234
+ (0, _defineProperty2["default"])(_this, "onFeedbackValueChange", function (v) {
235
+ var _this$props3 = _this.props,
236
+ data = _this$props3.data,
237
+ onChange = _this$props3.onChange;
238
+ if (data.feedback.type !== 'custom') {
239
+ return;
240
+ }
241
+ var fb = _objectSpread(_objectSpread({}, data.feedback), {}, {
242
+ value: v
243
+ });
244
+ if (onChange) onChange(_objectSpread(_objectSpread({}, data), {}, {
245
+ feedback: fb
246
+ }));
247
+ });
248
+ (0, _defineProperty2["default"])(_this, "onFeedbackTypeChange", function (t) {
249
+ var _this$props4 = _this.props,
250
+ data = _this$props4.data,
251
+ onChange = _this$props4.onChange;
252
+ var fb = _objectSpread(_objectSpread({}, data.feedback), {}, {
253
+ type: t
254
+ });
255
+ if (fb.type !== 'custom') {
256
+ fb.value = undefined;
257
+ }
258
+ if (onChange) onChange(_objectSpread(_objectSpread({}, data), {}, {
259
+ feedback: fb
260
+ }));
261
+ });
262
+ return _this;
263
+ }
264
+ (0, _inherits2["default"])(ChoiceConfiguration, _React$Component);
265
+ return (0, _createClass2["default"])(ChoiceConfiguration, [{
266
+ key: "render",
267
+ value: function render() {
268
+ var _this$props5 = this.props,
269
+ data = _this$props5.data,
270
+ mode = _this$props5.mode,
271
+ onDelete = _this$props5.onDelete,
272
+ defaultFeedback = _this$props5.defaultFeedback,
273
+ index = _this$props5.index,
274
+ className = _this$props5.className,
275
+ noLabels = _this$props5.noLabels,
276
+ useLetterOrdering = _this$props5.useLetterOrdering,
277
+ imageSupport = _this$props5.imageSupport,
278
+ disableImageAlignmentButtons = _this$props5.disableImageAlignmentButtons,
279
+ disabled = _this$props5.disabled,
280
+ spellCheck = _this$props5.spellCheck,
281
+ nonEmpty = _this$props5.nonEmpty,
282
+ allowFeedBack = _this$props5.allowFeedBack,
283
+ allowDelete = _this$props5.allowDelete,
284
+ pluginOpts = _this$props5.pluginOpts,
285
+ toolbarOpts = _this$props5.toolbarOpts,
286
+ error = _this$props5.error,
287
+ noCorrectAnswerError = _this$props5.noCorrectAnswerError,
288
+ uploadSoundSupport = _this$props5.uploadSoundSupport,
289
+ maxImageWidth = _this$props5.maxImageWidth,
290
+ maxImageHeight = _this$props5.maxImageHeight,
291
+ _this$props5$mathMlOp = _this$props5.mathMlOptions,
292
+ mathMlOptions = _this$props5$mathMlOp === void 0 ? {} : _this$props5$mathMlOp;
293
+ var InputToggle = mode === 'checkbox' ? _inputs.InputCheckbox : _inputs.InputRadio;
294
+ return /*#__PURE__*/_react["default"].createElement(StyledTopRow, null, index > 0 && /*#__PURE__*/_react["default"].createElement(StyledIndex, {
295
+ type: "title"
296
+ }, useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index), /*#__PURE__*/_react["default"].createElement(StyledToggle, null, /*#__PURE__*/_react["default"].createElement(InputToggle, {
297
+ onChange: this.onCheckedChange,
298
+ label: !noLabels ? 'Correct' : '',
299
+ checked: !!data.correct,
300
+ error: noCorrectAnswerError
301
+ })), /*#__PURE__*/_react["default"].createElement(StyledMiddleColumn, null, /*#__PURE__*/_react["default"].createElement(EditableHtmlContainer, {
302
+ label: !noLabels ? 'Label' : '',
303
+ value: data.label,
304
+ onChange: this.onLabelChange,
305
+ imageSupport: imageSupport,
306
+ disableImageAlignmentButtons: disableImageAlignmentButtons,
307
+ disabled: disabled,
308
+ spellCheck: spellCheck,
309
+ nonEmpty: nonEmpty,
310
+ pluginOpts: pluginOpts,
311
+ toolbarOpts: toolbarOpts,
312
+ error: error,
313
+ uploadSoundSupport: uploadSoundSupport,
314
+ mathMlOptions: mathMlOptions,
315
+ maxImageWidth: maxImageWidth,
316
+ maxImageHeight: maxImageHeight
317
+ }), error && /*#__PURE__*/_react["default"].createElement(StyledErrorText, null, error), allowFeedBack && /*#__PURE__*/_react["default"].createElement(Feedback, (0, _extends2["default"])({}, data.feedback, {
318
+ correct: data.correct,
319
+ defaults: defaultFeedback,
320
+ onChange: this.onFeedbackValueChange,
321
+ toolbarOpts: toolbarOpts
322
+ }))), allowFeedBack && /*#__PURE__*/_react["default"].createElement(StyledFeedback, null, /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
323
+ label: !noLabels ? 'Feedback' : ''
324
+ }, /*#__PURE__*/_react["default"].createElement(StyledFeedbackIcon, null, /*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
325
+ onChange: this.onFeedbackTypeChange,
326
+ value: data.feedback
327
+ })))), allowDelete && /*#__PURE__*/_react["default"].createElement(StyledDelete, null, /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
328
+ label: !noLabels ? 'Delete' : ''
329
+ }, /*#__PURE__*/_react["default"].createElement(StyledDeleteIcon, null, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
330
+ "aria-label": "delete",
331
+ onClick: onDelete,
332
+ size: "large"
333
+ }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null))))));
334
+ }
335
+ }]);
336
+ }(_react["default"].Component);
337
+ (0, _defineProperty2["default"])(ChoiceConfiguration, "propTypes", {
338
+ noLabels: _propTypes["default"].bool,
339
+ useLetterOrdering: _propTypes["default"].bool,
340
+ className: _propTypes["default"].string,
341
+ error: _propTypes["default"].string,
342
+ mode: _propTypes["default"].oneOf(['checkbox', 'radio']),
343
+ defaultFeedback: _propTypes["default"].object.isRequired,
344
+ disabled: _propTypes["default"].bool,
345
+ nonEmpty: _propTypes["default"].bool,
346
+ data: _propTypes["default"].shape({
347
+ label: _propTypes["default"].string.isRequired,
348
+ value: _propTypes["default"].string.isRequired,
349
+ correct: _propTypes["default"].bool,
350
+ feedback: _propTypes["default"].shape({
351
+ type: _propTypes["default"].string,
352
+ value: _propTypes["default"].string
353
+ })
354
+ }),
355
+ onDelete: _propTypes["default"].func,
356
+ onChange: _propTypes["default"].func,
357
+ index: _propTypes["default"].number,
358
+ imageSupport: _propTypes["default"].shape({
359
+ add: _propTypes["default"].func.isRequired,
360
+ "delete": _propTypes["default"].func.isRequired
361
+ }),
362
+ disableImageAlignmentButtons: _propTypes["default"].bool,
363
+ allowFeedBack: _propTypes["default"].bool,
364
+ allowDelete: _propTypes["default"].bool,
365
+ noCorrectAnswerError: _propTypes["default"].string,
366
+ spellCheck: _propTypes["default"].bool,
367
+ pluginOpts: _propTypes["default"].object,
368
+ toolbarOpts: _propTypes["default"].object,
369
+ uploadSoundSupport: _propTypes["default"].object,
370
+ maxImageWidth: _propTypes["default"].number,
371
+ maxImageHeight: _propTypes["default"].number
372
+ });
373
+ (0, _defineProperty2["default"])(ChoiceConfiguration, "defaultProps", {
374
+ index: -1,
375
+ noLabels: false,
376
+ useLetterOrdering: false,
377
+ allowFeedBack: true,
378
+ allowDelete: true
379
+ });
380
+ var _default = exports["default"] = ChoiceConfiguration;
381
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_TextField","_Delete","_SubdirectoryArrowRight","_IconButton","_renderUi","_editableHtmlTipTap","_inputs","_feedbackMenu","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","StyledEditorHolder","styled","_ref","theme","marginTop","spacing","EditableHtmlContainer","_ref2","label","onChange","value","className","imageSupport","disableImageAlignmentButtons","disabled","spellCheck","nonEmpty","pluginOpts","toolbarOpts","error","maxImageWidth","maxImageHeight","uploadSoundSupport","_ref2$mathMlOptions","mathMlOptions","createElement","InputContainer","markup","pluginProps","languageCharactersProps","language","StyledFeedbackContainer","position","StyledArrowIcon","ArrowRight","_ref3","fill","palette","grey","left","top","StyledTextField","TextField","_ref4","width","StyledEditableHtmlContainer","_ref5","Feedback","_ref6","type","correct","defaults","_ref6$mathMlOptions","incorrect","variant","StyledIndex","_ref7","paddingRight","paddingTop","StyledTopRow","display","alignItems","StyledToggle","_ref8","flex","paddingBottom","marginRight","marginLeft","StyledFeedback","_ref9","paddingLeft","StyledFeedbackIcon","margin","StyledDeleteIcon","StyledDelete","_ref0","StyledMiddleColumn","_ref1","flexDirection","StyledErrorText","_ref10","fontSize","typography","color","main","ChoiceConfiguration","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","key","update","_this$props","props","data","_changeFn","event","target","checked","_this$props2","v","_this$props3","feedback","fb","_this$props4","undefined","_inherits2","_createClass2","render","_this$props5","mode","onDelete","defaultFeedback","index","noLabels","useLetterOrdering","allowFeedBack","allowDelete","noCorrectAnswerError","_this$props5$mathMlOp","InputToggle","InputCheckbox","InputRadio","String","fromCharCode","toUpperCase","onCheckedChange","onLabelChange","_extends2","onFeedbackValueChange","onFeedbackTypeChange","onClick","size","React","Component","PropTypes","bool","string","oneOf","object","isRequired","shape","func","number","add","_default"],"sources":["../../src/choice-configuration/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport TextField from '@mui/material/TextField';\nimport ActionDelete from '@mui/icons-material/Delete';\nimport ArrowRight from '@mui/icons-material/SubdirectoryArrowRight';\nimport IconButton from '@mui/material/IconButton';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputCheckbox, InputRadio } from '../inputs';\nimport FeedbackMenu from './feedback-menu';\n\nconst StyledEditorHolder = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n}));\n\nconst EditableHtmlContainer = ({\n label,\n onChange,\n value,\n className,\n imageSupport,\n disableImageAlignmentButtons,\n disabled,\n spellCheck,\n nonEmpty,\n pluginOpts,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n}) => {\n return (\n <InputContainer label={label} className={className}>\n <StyledEditorHolder>\n <EditableHtml\n markup={value || ''}\n disabled={disabled}\n spellCheck={spellCheck}\n nonEmpty={nonEmpty}\n onChange={onChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={disableImageAlignmentButtons}\n pluginProps={pluginOpts || {}}\n toolbarOpts={toolbarOpts}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </StyledEditorHolder>\n </InputContainer>\n );\n};\n\nconst StyledFeedbackContainer = styled('div')(() => ({\n position: 'relative',\n}));\n\nconst StyledArrowIcon = styled(ArrowRight)(({ theme }) => ({\n fill: theme.palette.grey[400],\n left: -56,\n position: 'absolute',\n top: 40,\n}));\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(2),\n}));\n\nconst StyledEditableHtmlContainer = styled(EditableHtmlContainer)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(2),\n}));\n\nconst Feedback = ({ value, onChange, type, correct, defaults, toolbarOpts, mathMlOptions = {} }) => {\n if (!type || type === 'none') {\n return null;\n } else if (type === 'default') {\n return (\n <StyledFeedbackContainer>\n <StyledArrowIcon />\n <StyledTextField\n label=\"Feedback Text\"\n value={correct ? defaults.correct : defaults.incorrect}\n variant=\"standard\"\n />\n </StyledFeedbackContainer>\n );\n } else {\n return (\n <StyledFeedbackContainer>\n <StyledArrowIcon />\n <StyledEditableHtmlContainer\n label=\"Feedback Text\"\n value={value}\n onChange={onChange}\n toolbarOpts={toolbarOpts}\n mathMlOptions={mathMlOptions}\n />\n </StyledFeedbackContainer>\n );\n }\n};\n\nconst StyledIndex = styled('span')(({ theme }) => ({\n paddingRight: theme.spacing(1),\n paddingTop: theme.spacing(3),\n}));\n\nconst StyledTopRow = styled('div')(() => ({\n display: 'flex',\n alignItems: 'center',\n}));\n\nconst StyledToggle = styled('div')(({ theme }) => ({\n flex: '0 1 auto',\n paddingTop: theme.spacing(0.5),\n paddingBottom: 0,\n marginRight: 0,\n marginLeft: theme.spacing(1),\n}));\n\nconst StyledFeedback = styled('div')(({ theme }) => ({\n flex: '0 1 auto',\n paddingTop: theme.spacing(2),\n paddingLeft: 0,\n marginLeft: 0,\n marginRight: theme.spacing(1),\n}));\n\nconst StyledFeedbackIcon = styled('div')(() => ({\n margin: 0,\n width: 'inherit',\n}));\n\nconst StyledDeleteIcon = styled('div')(() => ({\n margin: 0,\n width: 'inherit',\n}));\n\nconst StyledDelete = styled('div')(({ theme }) => ({\n flex: '0 1 auto',\n paddingTop: theme.spacing(2),\n paddingLeft: 0,\n marginLeft: 0,\n}));\n\nconst StyledMiddleColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n marginRight: theme.spacing(1),\n}));\n\nconst StyledErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n}));\n\nexport class ChoiceConfiguration extends React.Component {\n static propTypes = {\n noLabels: PropTypes.bool,\n useLetterOrdering: PropTypes.bool,\n className: PropTypes.string,\n error: PropTypes.string,\n mode: PropTypes.oneOf(['checkbox', 'radio']),\n defaultFeedback: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n data: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n correct: PropTypes.bool,\n feedback: PropTypes.shape({\n type: PropTypes.string,\n value: PropTypes.string,\n }),\n }),\n onDelete: PropTypes.func,\n onChange: PropTypes.func,\n index: PropTypes.number,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n disableImageAlignmentButtons: PropTypes.bool,\n allowFeedBack: PropTypes.bool,\n allowDelete: PropTypes.bool,\n noCorrectAnswerError: PropTypes.string,\n spellCheck: PropTypes.bool,\n pluginOpts: PropTypes.object,\n toolbarOpts: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n };\n\n static defaultProps = {\n index: -1,\n noLabels: false,\n useLetterOrdering: false,\n allowFeedBack: true,\n allowDelete: true,\n };\n\n _changeFn = (key) => (update) => {\n const { data, onChange } = this.props;\n\n if (onChange) {\n onChange({ ...data, [key]: update });\n }\n };\n\n onLabelChange = this._changeFn('label');\n\n onCheckedChange = (event) => {\n const correct = event.target.checked;\n const { data, onChange } = this.props;\n\n if (onChange) {\n onChange({ ...data, correct });\n }\n };\n\n onFeedbackValueChange = (v) => {\n const { data, onChange } = this.props;\n\n if (data.feedback.type !== 'custom') {\n return;\n }\n\n const fb = { ...data.feedback, value: v };\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n onFeedbackTypeChange = (t) => {\n const { data, onChange } = this.props;\n const fb = { ...data.feedback, type: t };\n\n if (fb.type !== 'custom') {\n fb.value = undefined;\n }\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n render() {\n const {\n data,\n mode,\n onDelete,\n defaultFeedback,\n index,\n className,\n noLabels,\n useLetterOrdering,\n imageSupport,\n disableImageAlignmentButtons,\n disabled,\n spellCheck,\n nonEmpty,\n allowFeedBack,\n allowDelete,\n pluginOpts,\n toolbarOpts,\n error,\n noCorrectAnswerError,\n uploadSoundSupport,\n maxImageWidth,\n maxImageHeight,\n mathMlOptions = {},\n } = this.props;\n\n const InputToggle = mode === 'checkbox' ? InputCheckbox : InputRadio;\n\n return (\n <StyledTopRow>\n {index > 0 && (\n <StyledIndex type=\"title\">\n {useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index}\n </StyledIndex>\n )}\n\n <StyledToggle>\n <InputToggle\n onChange={this.onCheckedChange}\n label={!noLabels ? 'Correct' : ''}\n checked={!!data.correct}\n error={noCorrectAnswerError}\n />\n </StyledToggle>\n\n <StyledMiddleColumn>\n <EditableHtmlContainer\n label={!noLabels ? 'Label' : ''}\n value={data.label}\n onChange={this.onLabelChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={disableImageAlignmentButtons}\n disabled={disabled}\n spellCheck={spellCheck}\n nonEmpty={nonEmpty}\n pluginOpts={pluginOpts}\n toolbarOpts={toolbarOpts}\n error={error}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n />\n {error && <StyledErrorText>{error}</StyledErrorText>}\n\n {allowFeedBack && (\n <Feedback\n {...data.feedback}\n correct={data.correct}\n defaults={defaultFeedback}\n onChange={this.onFeedbackValueChange}\n toolbarOpts={toolbarOpts}\n />\n )}\n </StyledMiddleColumn>\n\n {allowFeedBack && (\n <StyledFeedback>\n <InputContainer label={!noLabels ? 'Feedback' : ''}>\n <StyledFeedbackIcon>\n <FeedbackMenu onChange={this.onFeedbackTypeChange} value={data.feedback} />\n </StyledFeedbackIcon>\n </InputContainer>\n </StyledFeedback>\n )}\n\n {allowDelete && (\n <StyledDelete>\n <InputContainer label={!noLabels ? 'Delete' : ''}>\n <StyledDeleteIcon>\n <IconButton aria-label=\"delete\" onClick={onDelete} size=\"large\">\n <ActionDelete />\n </IconButton>\n </StyledDeleteIcon>\n </InputContainer>\n </StyledDelete>\n )}\n </StyledTopRow>\n );\n }\n}\n\nexport default ChoiceConfiguration;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.normalizeChoices = exports.firstAvailableIndex = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _lodashEs = require("lodash-es");
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ /**
13
+ * Add value to every model.choices.
14
+ * @param {Object} model the model to normalize
15
+ * @return {Object} the updated model
16
+ */
17
+ var normalizeChoices = exports.normalizeChoices = function normalizeChoices(model) {
18
+ var choices = model.choices.map(function (c, index) {
19
+ if (!c.value) {
20
+ c.value = "".concat(index);
21
+ }
22
+ return c;
23
+ });
24
+ return _objectSpread(_objectSpread({}, model), {}, {
25
+ choices: choices
26
+ });
27
+ };
28
+
29
+ /**
30
+ * Find the first available index.
31
+ * @param {string[]} values
32
+ * @param {number} index
33
+ * @return {string}
34
+ */
35
+ var _firstAvailableIndex = exports.firstAvailableIndex = function firstAvailableIndex(values, index) {
36
+ if ((0, _lodashEs.includes)(values, "".concat(index))) {
37
+ return _firstAvailableIndex(values, index + 1);
38
+ } else {
39
+ return "".concat(index);
40
+ }
41
+ };
42
+ //# sourceMappingURL=choice-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choice-utils.js","names":["_lodashEs","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","normalizeChoices","exports","model","choices","map","c","index","value","concat","firstAvailableIndex","values","includes"],"sources":["../src/choice-utils.js"],"sourcesContent":["import { includes } from 'lodash-es';\n\n/**\n * Add value to every model.choices.\n * @param {Object} model the model to normalize\n * @return {Object} the updated model\n */\nexport const normalizeChoices = (model) => {\n const choices = model.choices.map((c, index) => {\n if (!c.value) {\n c.value = `${index}`;\n }\n return c;\n });\n return { ...model, choices };\n};\n\n/**\n * Find the first available index.\n * @param {string[]} values\n * @param {number} index\n * @return {string}\n */\nexport const firstAvailableIndex = (values, index) => {\n if (includes(values, `${index}`)) {\n return firstAvailableIndex(values, index + 1);\n } else {\n return `${index}`;\n }\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAqC,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAErC;AACA;AACA;AACA;AACA;AACO,IAAMoB,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAIE,KAAK,EAAK;EACzC,IAAMC,OAAO,GAAGD,KAAK,CAACC,OAAO,CAACC,GAAG,CAAC,UAACC,CAAC,EAAEC,KAAK,EAAK;IAC9C,IAAI,CAACD,CAAC,CAACE,KAAK,EAAE;MACZF,CAAC,CAACE,KAAK,MAAAC,MAAA,CAAMF,KAAK,CAAE;IACtB;IACA,OAAOD,CAAC;EACV,CAAC,CAAC;EACF,OAAAb,aAAA,CAAAA,aAAA,KAAYU,KAAK;IAAEC,OAAO,EAAPA;EAAO;AAC5B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,IAAMM,oBAAmB,GAAAR,OAAA,CAAAQ,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAIC,MAAM,EAAEJ,KAAK,EAAK;EACpD,IAAI,IAAAK,kBAAQ,EAACD,MAAM,KAAAF,MAAA,CAAKF,KAAK,CAAE,CAAC,EAAE;IAChC,OAAOG,oBAAmB,CAACC,MAAM,EAAEJ,KAAK,GAAG,CAAC,CAAC;EAC/C,CAAC,MAAM;IACL,UAAAE,MAAA,CAAUF,KAAK;EACjB;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.FeedbackType = exports.FeedbackSelector = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
15
+ var _renderUi = require("@pie-lib/render-ui");
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var _styles = require("@mui/material/styles");
19
+ var _group = _interopRequireDefault(require("./group"));
20
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
23
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
+ // - mathquill error window not defined
25
+ var StyledEditableHTML = (0, _styles.styled)(_editableHtmlTipTap["default"])(function (_ref) {
26
+ var theme = _ref.theme;
27
+ return {
28
+ fontFamily: theme.typography.fontFamily
29
+ };
30
+ });
31
+ var feedbackLabels = {
32
+ "default": 'Simple Feedback',
33
+ none: 'No Feedback',
34
+ custom: 'Customized Feedback'
35
+ };
36
+ var StyledFeedbackSelector = (0, _styles.styled)('div')(function (_ref2) {
37
+ var theme = _ref2.theme;
38
+ return {
39
+ marginBottom: theme.spacing(1)
40
+ };
41
+ });
42
+ var StyledInputContainer = (0, _styles.styled)(_renderUi.InputContainer)(function () {
43
+ return {
44
+ paddingBottom: 0
45
+ };
46
+ });
47
+ var StyledCustomHolder = (0, _styles.styled)('div')(function (_ref3) {
48
+ var theme = _ref3.theme;
49
+ return {
50
+ marginTop: '0px',
51
+ background: theme.palette.grey[300],
52
+ padding: 0,
53
+ marginBottom: theme.spacing(2),
54
+ borderRadius: '4px'
55
+ };
56
+ });
57
+ var StyledDefaultHolder = (0, _styles.styled)('div')(function (_ref4) {
58
+ var theme = _ref4.theme;
59
+ return {
60
+ marginTop: '0px',
61
+ background: theme.palette.grey[300],
62
+ padding: theme.spacing(2),
63
+ marginBottom: theme.spacing(2),
64
+ borderRadius: '4px',
65
+ fontFamily: theme.typography.fontFamily,
66
+ cursor: 'default'
67
+ };
68
+ });
69
+ var StyledGroup = (0, _styles.styled)(_group["default"])(function (_ref5) {
70
+ var theme = _ref5.theme;
71
+ return {
72
+ paddingTop: theme.spacing(1)
73
+ };
74
+ });
75
+ var FeedbackType = exports.FeedbackType = {
76
+ type: _propTypes["default"].oneOf(['default', 'custom', 'none']),
77
+ "default": _propTypes["default"].string,
78
+ custom: _propTypes["default"].string
79
+ };
80
+ var FeedbackSelector = exports.FeedbackSelector = /*#__PURE__*/function (_React$Component) {
81
+ function FeedbackSelector() {
82
+ var _this;
83
+ (0, _classCallCheck2["default"])(this, FeedbackSelector);
84
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
85
+ args[_key] = arguments[_key];
86
+ }
87
+ _this = _callSuper(this, FeedbackSelector, [].concat(args));
88
+ (0, _defineProperty2["default"])(_this, "changeType", function (type) {
89
+ var _this$props = _this.props,
90
+ onChange = _this$props.onChange,
91
+ feedback = _this$props.feedback;
92
+ onChange(_objectSpread(_objectSpread({}, feedback), {}, {
93
+ type: type
94
+ }));
95
+ });
96
+ (0, _defineProperty2["default"])(_this, "changeCustom", function (custom) {
97
+ var _this$props2 = _this.props,
98
+ onChange = _this$props2.onChange,
99
+ feedback = _this$props2.feedback;
100
+ onChange(_objectSpread(_objectSpread({}, feedback), {}, {
101
+ type: 'custom',
102
+ custom: custom
103
+ }));
104
+ });
105
+ return _this;
106
+ }
107
+ (0, _inherits2["default"])(FeedbackSelector, _React$Component);
108
+ return (0, _createClass2["default"])(FeedbackSelector, [{
109
+ key: "render",
110
+ value: function render() {
111
+ var _this$props3 = this.props,
112
+ keys = _this$props3.keys,
113
+ label = _this$props3.label,
114
+ feedback = _this$props3.feedback,
115
+ toolbarOpts = _this$props3.toolbarOpts,
116
+ _this$props3$mathMlOp = _this$props3.mathMlOptions,
117
+ mathMlOptions = _this$props3$mathMlOp === void 0 ? {} : _this$props3$mathMlOp;
118
+ var feedbackKeys = keys || Object.keys(feedbackLabels);
119
+ return /*#__PURE__*/_react["default"].createElement(StyledFeedbackSelector, null, /*#__PURE__*/_react["default"].createElement(StyledInputContainer, {
120
+ label: label,
121
+ extraClasses: {
122
+ label: {
123
+ transform: 'translateY(-20%)'
124
+ }
125
+ }
126
+ }, /*#__PURE__*/_react["default"].createElement(StyledGroup, {
127
+ keys: feedbackKeys,
128
+ label: label,
129
+ value: feedback.type,
130
+ onChange: this.changeType,
131
+ feedbackLabels: feedbackLabels
132
+ })), feedback.type === 'custom' && /*#__PURE__*/_react["default"].createElement(StyledCustomHolder, null, /*#__PURE__*/_react["default"].createElement(StyledEditableHTML, {
133
+ onChange: this.changeCustom,
134
+ markup: feedback.custom || '',
135
+ toolbarOpts: toolbarOpts,
136
+ languageCharactersProps: [{
137
+ language: 'spanish'
138
+ }, {
139
+ language: 'special'
140
+ }],
141
+ mathMlOptions: mathMlOptions
142
+ })), feedback.type === 'default' && /*#__PURE__*/_react["default"].createElement(StyledDefaultHolder, null, " ", feedback["default"]));
143
+ }
144
+ }]);
145
+ }(_react["default"].Component);
146
+ (0, _defineProperty2["default"])(FeedbackSelector, "propTypes", {
147
+ keys: _propTypes["default"].arrayOf(_propTypes["default"].string),
148
+ label: _propTypes["default"].string.isRequired,
149
+ feedback: _propTypes["default"].shape(FeedbackType).isRequired,
150
+ onChange: _propTypes["default"].func.isRequired,
151
+ toolbarOpts: _propTypes["default"].object,
152
+ mathMlOptions: _propTypes["default"].object
153
+ });
154
+ var _default = exports["default"] = FeedbackSelector;
155
+ //# sourceMappingURL=feedback-selector.js.map