@pie-lib/config-ui 13.1.0-beta.7 → 14.0.0-next.35

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 (233) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +11 -0
  2. package/dist/alert-dialog.d.ts +44 -0
  3. package/dist/alert-dialog.js +47 -0
  4. package/dist/checkbox.d.ts +34 -0
  5. package/dist/checkbox.js +57 -0
  6. package/dist/choice-configuration/feedback-menu.d.ts +32 -0
  7. package/dist/choice-configuration/feedback-menu.js +85 -0
  8. package/dist/choice-configuration/index.d.ts +62 -0
  9. package/dist/choice-configuration/index.js +240 -0
  10. package/dist/choice-utils.d.ts +21 -0
  11. package/dist/choice-utils.js +15 -0
  12. package/dist/feedback-config/feedback-selector.d.ts +33 -0
  13. package/dist/feedback-config/feedback-selector.js +92 -0
  14. package/dist/feedback-config/group.d.ts +21 -0
  15. package/dist/feedback-config/group.js +33 -0
  16. package/dist/feedback-config/index.d.ts +48 -0
  17. package/dist/feedback-config/index.js +96 -0
  18. package/dist/form-section.d.ts +25 -0
  19. package/dist/form-section.js +25 -0
  20. package/dist/fraction-to-number.d.ts +7 -0
  21. package/dist/fraction-to-number.js +9 -0
  22. package/dist/help.d.ts +41 -0
  23. package/dist/help.js +62 -0
  24. package/dist/index.d.ts +31 -0
  25. package/dist/index.js +34 -0
  26. package/dist/input.d.ts +29 -0
  27. package/dist/input.js +65 -0
  28. package/dist/inputs.d.ts +63 -0
  29. package/dist/inputs.js +70 -0
  30. package/dist/langs.d.ts +41 -0
  31. package/dist/langs.js +76 -0
  32. package/dist/layout/config-layout.d.ts +10 -0
  33. package/dist/layout/config-layout.js +75 -0
  34. package/dist/layout/index.d.ts +11 -0
  35. package/dist/layout/index.js +10 -0
  36. package/dist/layout/layout-contents.d.ts +21 -0
  37. package/dist/layout/layout-contents.js +70 -0
  38. package/dist/layout/settings-box.d.ts +19 -0
  39. package/dist/layout/settings-box.js +32 -0
  40. package/dist/mui-box/index.d.ts +21 -0
  41. package/dist/mui-box/index.js +47 -0
  42. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/extends.js +12 -0
  43. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +7 -0
  44. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +12 -0
  45. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +8 -0
  46. package/dist/node_modules/.bun/react-measure@2.5.2_6dbf9a050bc9aadb/node_modules/react-measure/dist/index.esm.js +122 -0
  47. package/dist/node_modules/.bun/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +276 -0
  48. package/dist/number-text-field-custom.d.ts +51 -0
  49. package/dist/number-text-field-custom.js +192 -0
  50. package/dist/number-text-field.d.ts +47 -0
  51. package/dist/number-text-field.js +122 -0
  52. package/dist/radio-with-label.d.ts +25 -0
  53. package/dist/radio-with-label.js +27 -0
  54. package/dist/settings/display-size.d.ts +26 -0
  55. package/dist/settings/display-size.js +45 -0
  56. package/dist/settings/index.d.ts +45 -0
  57. package/dist/settings/index.js +63 -0
  58. package/dist/settings/panel.d.ts +27 -0
  59. package/dist/settings/panel.js +201 -0
  60. package/dist/settings/settings-radio-label.d.ts +25 -0
  61. package/dist/settings/settings-radio-label.js +29 -0
  62. package/dist/settings/toggle.d.ts +25 -0
  63. package/dist/settings/toggle.js +33 -0
  64. package/dist/tabs/index.d.ts +22 -0
  65. package/dist/tabs/index.js +39 -0
  66. package/dist/tags-input/index.d.ts +21 -0
  67. package/dist/tags-input/index.js +83 -0
  68. package/dist/two-choice.d.ts +43 -0
  69. package/dist/two-choice.js +79 -0
  70. package/dist/with-stateful-model.d.ts +42 -0
  71. package/dist/with-stateful-model.js +32 -0
  72. package/package.json +31 -19
  73. package/CHANGELOG.json +0 -32
  74. package/CHANGELOG.md +0 -2419
  75. package/lib/__tests__/alert-dialog.test.js +0 -262
  76. package/lib/__tests__/alert-dialog.test.js.map +0 -1
  77. package/lib/__tests__/checkbox.test.js +0 -227
  78. package/lib/__tests__/checkbox.test.js.map +0 -1
  79. package/lib/__tests__/choice-utils.test.js +0 -14
  80. package/lib/__tests__/choice-utils.test.js.map +0 -1
  81. package/lib/__tests__/form-section.test.js +0 -252
  82. package/lib/__tests__/form-section.test.js.map +0 -1
  83. package/lib/__tests__/help.test.js +0 -270
  84. package/lib/__tests__/help.test.js.map +0 -1
  85. package/lib/__tests__/input.test.js +0 -268
  86. package/lib/__tests__/input.test.js.map +0 -1
  87. package/lib/__tests__/langs.test.js +0 -541
  88. package/lib/__tests__/langs.test.js.map +0 -1
  89. package/lib/__tests__/number-text-field-custom.test.js +0 -362
  90. package/lib/__tests__/number-text-field-custom.test.js.map +0 -1
  91. package/lib/__tests__/number-text-field.test.js +0 -421
  92. package/lib/__tests__/number-text-field.test.js.map +0 -1
  93. package/lib/__tests__/radio-with-label.test.js +0 -233
  94. package/lib/__tests__/radio-with-label.test.js.map +0 -1
  95. package/lib/__tests__/settings-panel.test.js +0 -184
  96. package/lib/__tests__/settings-panel.test.js.map +0 -1
  97. package/lib/__tests__/settings.test.js +0 -653
  98. package/lib/__tests__/settings.test.js.map +0 -1
  99. package/lib/__tests__/tabs.test.js +0 -211
  100. package/lib/__tests__/tabs.test.js.map +0 -1
  101. package/lib/__tests__/two-choice.test.js +0 -124
  102. package/lib/__tests__/two-choice.test.js.map +0 -1
  103. package/lib/__tests__/with-stateful-model.test.js +0 -221
  104. package/lib/__tests__/with-stateful-model.test.js.map +0 -1
  105. package/lib/alert-dialog.js +0 -68
  106. package/lib/alert-dialog.js.map +0 -1
  107. package/lib/checkbox.js +0 -84
  108. package/lib/checkbox.js.map +0 -1
  109. package/lib/choice-configuration/__tests__/feedback-menu.test.js +0 -287
  110. package/lib/choice-configuration/__tests__/feedback-menu.test.js.map +0 -1
  111. package/lib/choice-configuration/__tests__/index.test.js +0 -253
  112. package/lib/choice-configuration/__tests__/index.test.js.map +0 -1
  113. package/lib/choice-configuration/feedback-menu.js +0 -129
  114. package/lib/choice-configuration/feedback-menu.js.map +0 -1
  115. package/lib/choice-configuration/index.js +0 -381
  116. package/lib/choice-configuration/index.js.map +0 -1
  117. package/lib/choice-utils.js +0 -42
  118. package/lib/choice-utils.js.map +0 -1
  119. package/lib/feedback-config/__tests__/feedback-config.test.js +0 -201
  120. package/lib/feedback-config/__tests__/feedback-config.test.js.map +0 -1
  121. package/lib/feedback-config/__tests__/feedback-selector.test.js +0 -177
  122. package/lib/feedback-config/__tests__/feedback-selector.test.js.map +0 -1
  123. package/lib/feedback-config/feedback-selector.js +0 -155
  124. package/lib/feedback-config/feedback-selector.js.map +0 -1
  125. package/lib/feedback-config/group.js +0 -61
  126. package/lib/feedback-config/group.js.map +0 -1
  127. package/lib/feedback-config/index.js +0 -146
  128. package/lib/feedback-config/index.js.map +0 -1
  129. package/lib/form-section.js +0 -44
  130. package/lib/form-section.js.map +0 -1
  131. package/lib/help.js +0 -106
  132. package/lib/help.js.map +0 -1
  133. package/lib/index.js +0 -186
  134. package/lib/index.js.map +0 -1
  135. package/lib/input.js +0 -106
  136. package/lib/input.js.map +0 -1
  137. package/lib/inputs.js +0 -105
  138. package/lib/inputs.js.map +0 -1
  139. package/lib/langs.js +0 -136
  140. package/lib/langs.js.map +0 -1
  141. package/lib/layout/__tests__/config.layout.test.js +0 -70
  142. package/lib/layout/__tests__/config.layout.test.js.map +0 -1
  143. package/lib/layout/__tests__/layout-content.test.js +0 -6
  144. package/lib/layout/__tests__/layout-content.test.js.map +0 -1
  145. package/lib/layout/config-layout.js +0 -137
  146. package/lib/layout/config-layout.js.map +0 -1
  147. package/lib/layout/index.js +0 -21
  148. package/lib/layout/index.js.map +0 -1
  149. package/lib/layout/layout-contents.js +0 -160
  150. package/lib/layout/layout-contents.js.map +0 -1
  151. package/lib/layout/settings-box.js +0 -57
  152. package/lib/layout/settings-box.js.map +0 -1
  153. package/lib/mui-box/index.js +0 -63
  154. package/lib/mui-box/index.js.map +0 -1
  155. package/lib/number-text-field-custom.js +0 -376
  156. package/lib/number-text-field-custom.js.map +0 -1
  157. package/lib/number-text-field.js +0 -229
  158. package/lib/number-text-field.js.map +0 -1
  159. package/lib/radio-with-label.js +0 -48
  160. package/lib/radio-with-label.js.map +0 -1
  161. package/lib/settings/display-size.js +0 -61
  162. package/lib/settings/display-size.js.map +0 -1
  163. package/lib/settings/index.js +0 -110
  164. package/lib/settings/index.js.map +0 -1
  165. package/lib/settings/panel.js +0 -392
  166. package/lib/settings/panel.js.map +0 -1
  167. package/lib/settings/settings-radio-label.js +0 -51
  168. package/lib/settings/settings-radio-label.js.map +0 -1
  169. package/lib/settings/toggle.js +0 -63
  170. package/lib/settings/toggle.js.map +0 -1
  171. package/lib/tabs/index.js +0 -75
  172. package/lib/tabs/index.js.map +0 -1
  173. package/lib/tags-input/__tests__/index.test.js +0 -183
  174. package/lib/tags-input/__tests__/index.test.js.map +0 -1
  175. package/lib/tags-input/index.js +0 -149
  176. package/lib/tags-input/index.js.map +0 -1
  177. package/lib/two-choice.js +0 -136
  178. package/lib/two-choice.js.map +0 -1
  179. package/lib/with-stateful-model.js +0 -61
  180. package/lib/with-stateful-model.js.map +0 -1
  181. package/src/__tests__/alert-dialog.test.jsx +0 -183
  182. package/src/__tests__/checkbox.test.jsx +0 -152
  183. package/src/__tests__/choice-utils.test.js +0 -12
  184. package/src/__tests__/form-section.test.jsx +0 -328
  185. package/src/__tests__/help.test.jsx +0 -184
  186. package/src/__tests__/input.test.jsx +0 -156
  187. package/src/__tests__/langs.test.jsx +0 -376
  188. package/src/__tests__/number-text-field-custom.test.jsx +0 -255
  189. package/src/__tests__/number-text-field.test.jsx +0 -263
  190. package/src/__tests__/radio-with-label.test.jsx +0 -155
  191. package/src/__tests__/settings-panel.test.js +0 -187
  192. package/src/__tests__/settings.test.jsx +0 -452
  193. package/src/__tests__/tabs.test.jsx +0 -188
  194. package/src/__tests__/two-choice.test.js +0 -110
  195. package/src/__tests__/with-stateful-model.test.jsx +0 -139
  196. package/src/alert-dialog.jsx +0 -75
  197. package/src/checkbox.jsx +0 -61
  198. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +0 -151
  199. package/src/choice-configuration/__tests__/index.test.jsx +0 -234
  200. package/src/choice-configuration/feedback-menu.jsx +0 -96
  201. package/src/choice-configuration/index.jsx +0 -357
  202. package/src/choice-utils.js +0 -30
  203. package/src/feedback-config/__tests__/feedback-config.test.jsx +0 -141
  204. package/src/feedback-config/__tests__/feedback-selector.test.jsx +0 -97
  205. package/src/feedback-config/feedback-selector.jsx +0 -112
  206. package/src/feedback-config/group.jsx +0 -51
  207. package/src/feedback-config/index.jsx +0 -111
  208. package/src/form-section.jsx +0 -31
  209. package/src/help.jsx +0 -79
  210. package/src/index.js +0 -55
  211. package/src/input.jsx +0 -72
  212. package/src/inputs.jsx +0 -69
  213. package/src/langs.jsx +0 -111
  214. package/src/layout/__tests__/config.layout.test.jsx +0 -59
  215. package/src/layout/__tests__/layout-content.test.jsx +0 -3
  216. package/src/layout/config-layout.jsx +0 -103
  217. package/src/layout/index.js +0 -4
  218. package/src/layout/layout-contents.jsx +0 -117
  219. package/src/layout/settings-box.jsx +0 -32
  220. package/src/mui-box/index.jsx +0 -56
  221. package/src/number-text-field-custom.jsx +0 -333
  222. package/src/number-text-field.jsx +0 -215
  223. package/src/radio-with-label.jsx +0 -30
  224. package/src/settings/display-size.jsx +0 -53
  225. package/src/settings/index.js +0 -83
  226. package/src/settings/panel.jsx +0 -333
  227. package/src/settings/settings-radio-label.jsx +0 -32
  228. package/src/settings/toggle.jsx +0 -46
  229. package/src/tabs/index.jsx +0 -47
  230. package/src/tags-input/__tests__/index.test.jsx +0 -113
  231. package/src/tags-input/index.jsx +0 -116
  232. package/src/two-choice.jsx +0 -90
  233. package/src/with-stateful-model.jsx +0 -36
@@ -1,201 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
- var _react = _interopRequireDefault(require("react"));
8
- var _react2 = require("@testing-library/react");
9
- var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
- var _index = require("../index");
11
- 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; }
12
- 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; }
13
- // Mock FeedbackSelector to simplify testing
14
- jest.mock('../feedback-selector', function () {
15
- return function FeedbackSelector(_ref) {
16
- var label = _ref.label,
17
- feedback = _ref.feedback,
18
- _onChange = _ref.onChange;
19
- return /*#__PURE__*/_react["default"].createElement("div", {
20
- "data-testid": "feedback-selector"
21
- }, /*#__PURE__*/_react["default"].createElement("label", null, label), /*#__PURE__*/_react["default"].createElement("select", {
22
- "aria-label": label,
23
- value: feedback.type,
24
- onChange: function onChange(e) {
25
- return _onChange(_objectSpread(_objectSpread({}, feedback), {}, {
26
- type: e.target.value
27
- }));
28
- }
29
- }, /*#__PURE__*/_react["default"].createElement("option", {
30
- value: "default"
31
- }, "Default"), /*#__PURE__*/_react["default"].createElement("option", {
32
- value: "custom"
33
- }, "Custom"), /*#__PURE__*/_react["default"].createElement("option", {
34
- value: "none"
35
- }, "None")));
36
- };
37
- });
38
- describe('FeedbackConfig', function () {
39
- var onChange = jest.fn();
40
- beforeEach(function () {
41
- onChange.mockClear();
42
- });
43
- describe('rendering', function () {
44
- it('renders with default feedback types', function () {
45
- var feedback = (0, _index.buildDefaults)();
46
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
47
- feedback: feedback,
48
- onChange: onChange
49
- }));
50
- expect(_react2.screen.getByText('Feedback')).toBeInTheDocument();
51
- expect(_react2.screen.getByText('If correct, show')).toBeInTheDocument();
52
- expect(_react2.screen.getByText('If partially correct, show')).toBeInTheDocument();
53
- expect(_react2.screen.getByText('If incorrect, show')).toBeInTheDocument();
54
- });
55
- it('renders all three feedback selectors by default', function () {
56
- var feedback = (0, _index.buildDefaults)();
57
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
58
- feedback: feedback,
59
- onChange: onChange
60
- }));
61
- var selectors = _react2.screen.getAllByTestId('feedback-selector');
62
- expect(selectors).toHaveLength(3);
63
- });
64
- it('does not render partial feedback selector when allowPartial is false', function () {
65
- var feedback = (0, _index.buildDefaults)();
66
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
67
- allowPartial: false,
68
- feedback: feedback,
69
- onChange: onChange
70
- }));
71
- expect(_react2.screen.getByText('If correct, show')).toBeInTheDocument();
72
- expect(_react2.screen.queryByText('If partially correct, show')).not.toBeInTheDocument();
73
- expect(_react2.screen.getByText('If incorrect, show')).toBeInTheDocument();
74
- var selectors = _react2.screen.getAllByTestId('feedback-selector');
75
- expect(selectors).toHaveLength(2);
76
- });
77
- });
78
- describe('user interactions', function () {
79
- it('calls onChange when correct feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
80
- var user, feedback, correctSelect;
81
- return _regenerator["default"].wrap(function (_context) {
82
- while (1) switch (_context.prev = _context.next) {
83
- case 0:
84
- user = _userEvent["default"].setup();
85
- feedback = (0, _index.buildDefaults)();
86
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
87
- feedback: feedback,
88
- onChange: onChange
89
- }));
90
- correctSelect = _react2.screen.getByLabelText('If correct, show');
91
- _context.next = 1;
92
- return user.selectOptions(correctSelect, 'custom');
93
- case 1:
94
- expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
95
- correct: expect.objectContaining({
96
- type: 'custom'
97
- })
98
- }));
99
- case 2:
100
- case "end":
101
- return _context.stop();
102
- }
103
- }, _callee);
104
- })));
105
- it('calls onChange when incorrect feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
106
- var user, feedback, incorrectSelect;
107
- return _regenerator["default"].wrap(function (_context2) {
108
- while (1) switch (_context2.prev = _context2.next) {
109
- case 0:
110
- user = _userEvent["default"].setup();
111
- feedback = (0, _index.buildDefaults)();
112
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
113
- feedback: feedback,
114
- onChange: onChange
115
- }));
116
- incorrectSelect = _react2.screen.getByLabelText('If incorrect, show');
117
- _context2.next = 1;
118
- return user.selectOptions(incorrectSelect, 'none');
119
- case 1:
120
- expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
121
- incorrect: expect.objectContaining({
122
- type: 'none'
123
- })
124
- }));
125
- case 2:
126
- case "end":
127
- return _context2.stop();
128
- }
129
- }, _callee2);
130
- })));
131
- it('calls onChange when partial feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
132
- var user, feedback, partialSelect;
133
- return _regenerator["default"].wrap(function (_context3) {
134
- while (1) switch (_context3.prev = _context3.next) {
135
- case 0:
136
- user = _userEvent["default"].setup();
137
- feedback = (0, _index.buildDefaults)();
138
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
139
- feedback: feedback,
140
- onChange: onChange
141
- }));
142
- partialSelect = _react2.screen.getByLabelText('If partially correct, show');
143
- _context3.next = 1;
144
- return user.selectOptions(partialSelect, 'custom');
145
- case 1:
146
- expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
147
- partial: expect.objectContaining({
148
- type: 'custom'
149
- })
150
- }));
151
- case 2:
152
- case "end":
153
- return _context3.stop();
154
- }
155
- }, _callee3);
156
- })));
157
- });
158
- describe('buildDefaults helper', function () {
159
- it('returns default feedback configuration', function () {
160
- var defaults = (0, _index.buildDefaults)();
161
- expect(defaults).toEqual({
162
- correct: {
163
- type: 'default',
164
- "default": 'Correct'
165
- },
166
- incorrect: {
167
- type: 'default',
168
- "default": 'Incorrect'
169
- },
170
- partial: {
171
- type: 'default',
172
- "default": 'Nearly'
173
- }
174
- });
175
- });
176
- it('merges custom values with defaults', function () {
177
- var defaults = (0, _index.buildDefaults)({
178
- correct: {
179
- type: 'custom',
180
- custom: 'Great job!'
181
- }
182
- });
183
- expect(defaults).toEqual({
184
- correct: {
185
- type: 'custom',
186
- "default": 'Correct',
187
- custom: 'Great job!'
188
- },
189
- incorrect: {
190
- type: 'default',
191
- "default": 'Incorrect'
192
- },
193
- partial: {
194
- type: 'default',
195
- "default": 'Nearly'
196
- }
197
- });
198
- });
199
- });
200
- });
201
- //# sourceMappingURL=feedback-config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-config.test.js","names":["_react","_interopRequireDefault","require","_react2","_userEvent","_index","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","FeedbackSelector","_ref","label","feedback","onChange","createElement","value","type","target","describe","fn","beforeEach","mockClear","it","buildDefaults","render","FeedbackConfig","expect","screen","getByText","toBeInTheDocument","selectors","getAllByTestId","toHaveLength","allowPartial","queryByText","not","_asyncToGenerator2","_regenerator","mark","_callee","user","correctSelect","wrap","_context","prev","next","userEvent","setup","getByLabelText","selectOptions","toHaveBeenCalledWith","objectContaining","correct","stop","_callee2","incorrectSelect","_context2","incorrect","_callee3","partialSelect","_context3","partial","defaults","toEqual","custom"],"sources":["../../../src/feedback-config/__tests__/feedback-config.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport { buildDefaults, FeedbackConfig } from '../index';\n\n// Mock FeedbackSelector to simplify testing\njest.mock('../feedback-selector', () => {\n return function FeedbackSelector({ label, feedback, onChange }) {\n return (\n <div data-testid=\"feedback-selector\">\n <label>{label}</label>\n <select\n aria-label={label}\n value={feedback.type}\n onChange={(e) => onChange({ ...feedback, type: e.target.value })}\n >\n <option value=\"default\">Default</option>\n <option value=\"custom\">Custom</option>\n <option value=\"none\">None</option>\n </select>\n </div>\n );\n };\n});\n\ndescribe('FeedbackConfig', () => {\n const onChange = jest.fn();\n\n beforeEach(() => {\n onChange.mockClear();\n });\n\n describe('rendering', () => {\n it('renders with default feedback types', () => {\n const feedback = buildDefaults();\n\n render(<FeedbackConfig feedback={feedback} onChange={onChange} />);\n\n expect(screen.getByText('Feedback')).toBeInTheDocument();\n expect(screen.getByText('If correct, show')).toBeInTheDocument();\n expect(screen.getByText('If partially correct, show')).toBeInTheDocument();\n expect(screen.getByText('If incorrect, show')).toBeInTheDocument();\n });\n\n it('renders all three feedback selectors by default', () => {\n const feedback = buildDefaults();\n\n render(<FeedbackConfig feedback={feedback} onChange={onChange} />);\n\n const selectors = screen.getAllByTestId('feedback-selector');\n expect(selectors).toHaveLength(3);\n });\n\n it('does not render partial feedback selector when allowPartial is false', () => {\n const feedback = buildDefaults();\n\n render(<FeedbackConfig allowPartial={false} feedback={feedback} onChange={onChange} />);\n\n expect(screen.getByText('If correct, show')).toBeInTheDocument();\n expect(screen.queryByText('If partially correct, show')).not.toBeInTheDocument();\n expect(screen.getByText('If incorrect, show')).toBeInTheDocument();\n\n const selectors = screen.getAllByTestId('feedback-selector');\n expect(selectors).toHaveLength(2);\n });\n });\n\n describe('user interactions', () => {\n it('calls onChange when correct feedback type changes', async () => {\n const user = userEvent.setup();\n const feedback = buildDefaults();\n\n render(<FeedbackConfig feedback={feedback} onChange={onChange} />);\n\n const correctSelect = screen.getByLabelText('If correct, show');\n await user.selectOptions(correctSelect, 'custom');\n\n expect(onChange).toHaveBeenCalledWith(\n expect.objectContaining({\n correct: expect.objectContaining({ type: 'custom' }),\n }),\n );\n });\n\n it('calls onChange when incorrect feedback type changes', async () => {\n const user = userEvent.setup();\n const feedback = buildDefaults();\n\n render(<FeedbackConfig feedback={feedback} onChange={onChange} />);\n\n const incorrectSelect = screen.getByLabelText('If incorrect, show');\n await user.selectOptions(incorrectSelect, 'none');\n\n expect(onChange).toHaveBeenCalledWith(\n expect.objectContaining({\n incorrect: expect.objectContaining({ type: 'none' }),\n }),\n );\n });\n\n it('calls onChange when partial feedback type changes', async () => {\n const user = userEvent.setup();\n const feedback = buildDefaults();\n\n render(<FeedbackConfig feedback={feedback} onChange={onChange} />);\n\n const partialSelect = screen.getByLabelText('If partially correct, show');\n await user.selectOptions(partialSelect, 'custom');\n\n expect(onChange).toHaveBeenCalledWith(\n expect.objectContaining({\n partial: expect.objectContaining({ type: 'custom' }),\n }),\n );\n });\n });\n\n describe('buildDefaults helper', () => {\n it('returns default feedback configuration', () => {\n const defaults = buildDefaults();\n\n expect(defaults).toEqual({\n correct: { type: 'default', default: 'Correct' },\n incorrect: { type: 'default', default: 'Incorrect' },\n partial: { type: 'default', default: 'Nearly' },\n });\n });\n\n it('merges custom values with defaults', () => {\n const defaults = buildDefaults({\n correct: { type: 'custom', custom: 'Great job!' },\n });\n\n expect(defaults).toEqual({\n correct: { type: 'custom', default: 'Correct', custom: 'Great job!' },\n incorrect: { type: 'default', default: 'Incorrect' },\n partial: { type: 'default', default: 'Nearly' },\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,177 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
- var _react = require("@testing-library/react");
7
- var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
8
- var _react2 = _interopRequireDefault(require("react"));
9
- var _feedbackSelector = require("../feedback-selector");
10
- // Mock the editable-html component to avoid window dependencies in tests
11
- jest.mock('@pie-lib/editable-html-tip-tap', function () {
12
- return {
13
- __esModule: true,
14
- "default": function _default(_ref) {
15
- var markup = _ref.markup,
16
- _onChange = _ref.onChange;
17
- return /*#__PURE__*/_react2["default"].createElement("textarea", {
18
- "data-testid": "editable-html",
19
- defaultValue: markup || '',
20
- onChange: function onChange(e) {
21
- return _onChange(e.target.value);
22
- }
23
- });
24
- }
25
- };
26
- });
27
- describe('feedback-selector', function () {
28
- var onChange;
29
- var renderComponent = function renderComponent() {
30
- var feedback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
31
- type: 'default',
32
- "default": 'hi'
33
- };
34
- return (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_feedbackSelector.FeedbackSelector, {
35
- label: 'Feedback',
36
- onChange: onChange,
37
- feedback: feedback
38
- }));
39
- };
40
- beforeEach(function () {
41
- onChange = jest.fn();
42
- });
43
- describe('rendering', function () {
44
- it('renders feedback type selector', function () {
45
- renderComponent();
46
- expect(_react.screen.getByText('Simple Feedback')).toBeInTheDocument();
47
- expect(_react.screen.getByText('No Feedback')).toBeInTheDocument();
48
- expect(_react.screen.getByText('Customized Feedback')).toBeInTheDocument();
49
- });
50
- it('shows default feedback text when type is default', function () {
51
- renderComponent({
52
- type: 'default',
53
- "default": 'hi'
54
- });
55
- expect(_react.screen.getByText('hi')).toBeInTheDocument();
56
- });
57
- it('shows editable html when type is custom', function () {
58
- renderComponent({
59
- type: 'custom',
60
- "default": 'hi',
61
- custom: 'custom text'
62
- });
63
- expect(_react.screen.getByTestId('editable-html')).toBeInTheDocument();
64
- expect(_react.screen.getByTestId('editable-html')).toHaveValue('custom text');
65
- });
66
- it('does not show default feedback when type is none', function () {
67
- renderComponent({
68
- type: 'none',
69
- "default": 'hi'
70
- });
71
- expect(_react.screen.queryByText('hi')).not.toBeInTheDocument();
72
- });
73
- });
74
- describe('user interactions', function () {
75
- it('calls onChange when switching to default feedback', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
76
- var user;
77
- return _regenerator["default"].wrap(function (_context) {
78
- while (1) switch (_context.prev = _context.next) {
79
- case 0:
80
- user = _userEvent["default"].setup();
81
- renderComponent({
82
- type: 'custom',
83
- "default": 'hi'
84
- });
85
- _context.next = 1;
86
- return user.click(_react.screen.getByLabelText('Simple Feedback'));
87
- case 1:
88
- expect(onChange).toHaveBeenCalledWith({
89
- type: 'default',
90
- "default": 'hi'
91
- });
92
- case 2:
93
- case "end":
94
- return _context.stop();
95
- }
96
- }, _callee);
97
- })));
98
- it('calls onChange when switching to custom feedback', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
99
- var user;
100
- return _regenerator["default"].wrap(function (_context2) {
101
- while (1) switch (_context2.prev = _context2.next) {
102
- case 0:
103
- user = _userEvent["default"].setup();
104
- renderComponent({
105
- type: 'default',
106
- "default": 'hi'
107
- });
108
- _context2.next = 1;
109
- return user.click(_react.screen.getByLabelText('Customized Feedback'));
110
- case 1:
111
- expect(onChange).toHaveBeenCalledWith({
112
- type: 'custom',
113
- "default": 'hi'
114
- });
115
- case 2:
116
- case "end":
117
- return _context2.stop();
118
- }
119
- }, _callee2);
120
- })));
121
- it('calls onChange when switching to no feedback', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
122
- var user;
123
- return _regenerator["default"].wrap(function (_context3) {
124
- while (1) switch (_context3.prev = _context3.next) {
125
- case 0:
126
- user = _userEvent["default"].setup();
127
- renderComponent({
128
- type: 'default',
129
- "default": 'hi'
130
- });
131
- _context3.next = 1;
132
- return user.click(_react.screen.getByLabelText('No Feedback'));
133
- case 1:
134
- expect(onChange).toHaveBeenCalledWith({
135
- type: 'none',
136
- "default": 'hi'
137
- });
138
- case 2:
139
- case "end":
140
- return _context3.stop();
141
- }
142
- }, _callee3);
143
- })));
144
- it('calls onChange with custom text when editing custom feedback', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
145
- var user, editor, lastCall;
146
- return _regenerator["default"].wrap(function (_context4) {
147
- while (1) switch (_context4.prev = _context4.next) {
148
- case 0:
149
- user = _userEvent["default"].setup();
150
- renderComponent({
151
- type: 'custom',
152
- "default": 'hi',
153
- custom: ''
154
- });
155
- editor = _react.screen.getByTestId('editable-html');
156
- _context4.next = 1;
157
- return user.clear(editor);
158
- case 1:
159
- _context4.next = 2;
160
- return user.type(editor, 'text');
161
- case 2:
162
- // user.type triggers onChange for each character, so check that onChange was called
163
- // and that the last call has 'text' in custom field
164
- expect(onChange).toHaveBeenCalled();
165
- lastCall = onChange.mock.calls[onChange.mock.calls.length - 1][0];
166
- expect(lastCall.type).toBe('custom');
167
- expect(lastCall.custom).toBe('text');
168
- expect(lastCall["default"]).toBe('hi');
169
- case 3:
170
- case "end":
171
- return _context4.stop();
172
- }
173
- }, _callee4);
174
- })));
175
- });
176
- });
177
- //# sourceMappingURL=feedback-selector.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-selector.test.js","names":["_react","require","_userEvent","_interopRequireDefault","_react2","_feedbackSelector","jest","mock","__esModule","default","_ref","markup","onChange","createElement","defaultValue","e","target","value","describe","renderComponent","feedback","arguments","length","undefined","type","render","FeedbackSelector","label","beforeEach","fn","it","expect","screen","getByText","toBeInTheDocument","custom","getByTestId","toHaveValue","queryByText","not","_asyncToGenerator2","_regenerator","mark","_callee","user","wrap","_context","prev","next","userEvent","setup","click","getByLabelText","toHaveBeenCalledWith","stop","_callee2","_context2","_callee3","_context3","_callee4","editor","lastCall","_context4","clear","toHaveBeenCalled","calls","toBe"],"sources":["../../../src/feedback-config/__tests__/feedback-selector.test.jsx"],"sourcesContent":["import { render, screen } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport React from 'react';\nimport { FeedbackSelector } from '../feedback-selector';\n\n// Mock the editable-html component to avoid window dependencies in tests\njest.mock('@pie-lib/editable-html-tip-tap', () => {\n return {\n __esModule: true,\n default: ({ markup, onChange }) => (\n <textarea data-testid=\"editable-html\" defaultValue={markup || ''} onChange={(e) => onChange(e.target.value)} />\n ),\n };\n});\n\ndescribe('feedback-selector', () => {\n let onChange;\n\n const renderComponent = (feedback = { type: 'default', default: 'hi' }) => {\n return render(<FeedbackSelector label={'Feedback'} onChange={onChange} feedback={feedback} />);\n };\n\n beforeEach(() => {\n onChange = jest.fn();\n });\n\n describe('rendering', () => {\n it('renders feedback type selector', () => {\n renderComponent();\n expect(screen.getByText('Simple Feedback')).toBeInTheDocument();\n expect(screen.getByText('No Feedback')).toBeInTheDocument();\n expect(screen.getByText('Customized Feedback')).toBeInTheDocument();\n });\n\n it('shows default feedback text when type is default', () => {\n renderComponent({ type: 'default', default: 'hi' });\n expect(screen.getByText('hi')).toBeInTheDocument();\n });\n\n it('shows editable html when type is custom', () => {\n renderComponent({ type: 'custom', default: 'hi', custom: 'custom text' });\n expect(screen.getByTestId('editable-html')).toBeInTheDocument();\n expect(screen.getByTestId('editable-html')).toHaveValue('custom text');\n });\n\n it('does not show default feedback when type is none', () => {\n renderComponent({ type: 'none', default: 'hi' });\n expect(screen.queryByText('hi')).not.toBeInTheDocument();\n });\n });\n\n describe('user interactions', () => {\n it('calls onChange when switching to default feedback', async () => {\n const user = userEvent.setup();\n renderComponent({ type: 'custom', default: 'hi' });\n\n await user.click(screen.getByLabelText('Simple Feedback'));\n\n expect(onChange).toHaveBeenCalledWith({ type: 'default', default: 'hi' });\n });\n\n it('calls onChange when switching to custom feedback', async () => {\n const user = userEvent.setup();\n renderComponent({ type: 'default', default: 'hi' });\n\n await user.click(screen.getByLabelText('Customized Feedback'));\n\n expect(onChange).toHaveBeenCalledWith({ type: 'custom', default: 'hi' });\n });\n\n it('calls onChange when switching to no feedback', async () => {\n const user = userEvent.setup();\n renderComponent({ type: 'default', default: 'hi' });\n\n await user.click(screen.getByLabelText('No Feedback'));\n\n expect(onChange).toHaveBeenCalledWith({ type: 'none', default: 'hi' });\n });\n\n it('calls onChange with custom text when editing custom feedback', async () => {\n const user = userEvent.setup();\n renderComponent({ type: 'custom', default: 'hi', custom: '' });\n\n const editor = screen.getByTestId('editable-html');\n await user.clear(editor);\n await user.type(editor, 'text');\n\n // user.type triggers onChange for each character, so check that onChange was called\n // and that the last call has 'text' in custom field\n expect(onChange).toHaveBeenCalled();\n const lastCall = onChange.mock.calls[onChange.mock.calls.length - 1][0];\n expect(lastCall.type).toBe('custom');\n expect(lastCall.custom).toBe('text');\n expect(lastCall.default).toBe('hi');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,155 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-selector.js","names":["_editableHtmlTipTap","_interopRequireDefault","require","_renderUi","_propTypes","_react","_styles","_group","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","StyledEditableHTML","styled","EditableHtml","_ref","theme","fontFamily","typography","feedbackLabels","none","custom","StyledFeedbackSelector","_ref2","marginBottom","spacing","StyledInputContainer","InputContainer","paddingBottom","StyledCustomHolder","_ref3","marginTop","background","palette","grey","padding","borderRadius","StyledDefaultHolder","_ref4","cursor","StyledGroup","Group","_ref5","paddingTop","FeedbackType","exports","type","PropTypes","oneOf","string","FeedbackSelector","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","_this$props","props","onChange","feedback","_this$props2","_inherits2","_createClass2","key","value","render","_this$props3","label","toolbarOpts","_this$props3$mathMlOp","mathMlOptions","feedbackKeys","createElement","extraClasses","transform","changeType","changeCustom","markup","languageCharactersProps","language","React","Component","arrayOf","isRequired","shape","func","object","_default"],"sources":["../../src/feedback-config/feedback-selector.jsx"],"sourcesContent":["import EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\nimport Group from './group';\n\n// - mathquill error window not defined\nconst StyledEditableHTML = styled(EditableHtml)(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst feedbackLabels = {\n default: 'Simple Feedback',\n none: 'No Feedback',\n custom: 'Customized Feedback',\n};\n\nconst StyledFeedbackSelector = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledInputContainer = styled(InputContainer)(() => ({\n paddingBottom: 0,\n}));\n\nconst StyledCustomHolder = styled('div')(({ theme }) => ({\n marginTop: '0px',\n background: theme.palette.grey[300],\n padding: 0,\n marginBottom: theme.spacing(2),\n borderRadius: '4px',\n}));\n\nconst StyledDefaultHolder = styled('div')(({ theme }) => ({\n marginTop: '0px',\n background: theme.palette.grey[300],\n padding: theme.spacing(2),\n marginBottom: theme.spacing(2),\n borderRadius: '4px',\n fontFamily: theme.typography.fontFamily,\n cursor: 'default',\n}));\n\nconst StyledGroup = styled(Group)(({ theme }) => ({\n paddingTop: theme.spacing(1),\n}));\n\nexport const FeedbackType = {\n type: PropTypes.oneOf(['default', 'custom', 'none']),\n default: PropTypes.string,\n custom: PropTypes.string,\n};\n\nexport class FeedbackSelector extends React.Component {\n static propTypes = {\n keys: PropTypes.arrayOf(PropTypes.string),\n label: PropTypes.string.isRequired,\n feedback: PropTypes.shape(FeedbackType).isRequired,\n onChange: PropTypes.func.isRequired,\n toolbarOpts: PropTypes.object,\n mathMlOptions: PropTypes.object,\n };\n\n changeType = (type) => {\n const { onChange, feedback } = this.props;\n\n onChange({ ...feedback, type });\n };\n\n changeCustom = (custom) => {\n const { onChange, feedback } = this.props;\n\n onChange({ ...feedback, type: 'custom', custom });\n };\n\n render() {\n const { keys, label, feedback, toolbarOpts, mathMlOptions = {} } = this.props;\n\n const feedbackKeys = keys || Object.keys(feedbackLabels);\n\n return (\n <StyledFeedbackSelector>\n <StyledInputContainer label={label} extraClasses={{ label: { transform: 'translateY(-20%)' } }}>\n <StyledGroup\n keys={feedbackKeys}\n label={label}\n value={feedback.type}\n onChange={this.changeType}\n feedbackLabels={feedbackLabels}\n />\n </StyledInputContainer>\n\n {feedback.type === 'custom' && (\n <StyledCustomHolder>\n <StyledEditableHTML\n onChange={this.changeCustom}\n markup={feedback.custom || ''}\n toolbarOpts={toolbarOpts}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </StyledCustomHolder>\n )}\n\n {feedback.type === 'default' && <StyledDefaultHolder> {feedback.default}</StyledDefaultHolder>}\n </StyledFeedbackSelector>\n );\n }\n}\n\nexport default FeedbackSelector;\n"],"mappings":"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","ignoreList":[]}