@pie-element/math-inline 12.4.0-beta.7 → 13.0.0-next.20261002100925

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 (128) hide show
  1. package/author.js +2 -0
  2. package/configure.js +2 -0
  3. package/controller.js +1 -0
  4. package/dist/author/configure.d.ts +25 -0
  5. package/dist/author/configure.js +114 -0
  6. package/dist/author/defaults.d.ts +186 -0
  7. package/dist/author/defaults.js +145 -0
  8. package/dist/author/general-config-block.d.ts +35 -0
  9. package/dist/author/general-config-block.js +390 -0
  10. package/dist/author/index.d.ts +61 -0
  11. package/dist/author/index.js +80 -0
  12. package/dist/author/response.d.ts +40 -0
  13. package/dist/author/response.js +238 -0
  14. package/dist/author/utils.d.ts +14 -0
  15. package/dist/author/utils.js +13 -0
  16. package/dist/browser/assets/Symbola-4c507403.woff2 +0 -0
  17. package/dist/browser/author/index.js +28236 -0
  18. package/dist/browser/author/index.js.map +1 -0
  19. package/dist/browser/controller/index.js +37791 -0
  20. package/dist/browser/controller/index.js.map +1 -0
  21. package/dist/browser/delivery/index.js +134 -0
  22. package/dist/browser/delivery/index.js.map +1 -0
  23. package/dist/browser/dist--pvq7WNe.js +324 -0
  24. package/dist/browser/dist--pvq7WNe.js.map +1 -0
  25. package/dist/browser/dist-CQJsyamN.js +16952 -0
  26. package/dist/browser/dist-CQJsyamN.js.map +1 -0
  27. package/dist/browser/dist-DCmVXYeO.js +1528 -0
  28. package/dist/browser/dist-DCmVXYeO.js.map +1 -0
  29. package/dist/browser/editor-runtime/assets/Symbola-4c507403.woff2 +0 -0
  30. package/dist/browser/editor-runtime/author/index.js +11827 -0
  31. package/dist/browser/editor-runtime/author/index.js.map +1 -0
  32. package/dist/browser/editor-runtime/controller/index.js +37791 -0
  33. package/dist/browser/editor-runtime/controller/index.js.map +1 -0
  34. package/dist/browser/editor-runtime/delivery/index.js +134 -0
  35. package/dist/browser/editor-runtime/delivery/index.js.map +1 -0
  36. package/dist/browser/editor-runtime/dist-CiHbVK7d.js +324 -0
  37. package/dist/browser/editor-runtime/dist-CiHbVK7d.js.map +1 -0
  38. package/dist/browser/editor-runtime/dist-DCmVXYeO.js +1528 -0
  39. package/dist/browser/editor-runtime/dist-DCmVXYeO.js.map +1 -0
  40. package/dist/browser/editor-runtime/dist-DMfQpkwV.js +16952 -0
  41. package/dist/browser/editor-runtime/dist-DMfQpkwV.js.map +1 -0
  42. package/dist/browser/editor-runtime/main-C26X4jqh.js +973 -0
  43. package/dist/browser/editor-runtime/main-C26X4jqh.js.map +1 -0
  44. package/dist/browser/editor-runtime/print/index.js +52 -0
  45. package/dist/browser/editor-runtime/print/index.js.map +1 -0
  46. package/dist/browser/main-BT-ouGfG.js +973 -0
  47. package/dist/browser/main-BT-ouGfG.js.map +1 -0
  48. package/dist/browser/print/index.js +52 -0
  49. package/dist/browser/print/index.js.map +1 -0
  50. package/dist/controller/defaults.d.ts +44 -0
  51. package/dist/controller/defaults.js +39 -0
  52. package/dist/controller/index.d.ts +22 -0
  53. package/dist/controller/index.js +171 -0
  54. package/dist/controller/utils.d.ts +12 -0
  55. package/dist/controller/utils.js +7 -0
  56. package/dist/delivery/index.d.ts +22 -0
  57. package/dist/delivery/index.js +54 -0
  58. package/dist/delivery/main.d.ts +44 -0
  59. package/dist/delivery/main.js +606 -0
  60. package/dist/delivery/simple-question-block.d.ts +27 -0
  61. package/dist/delivery/simple-question-block.js +94 -0
  62. package/dist/delivery/utils.d.ts +12 -0
  63. package/dist/delivery/utils.js +7 -0
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.iife.d.ts +8 -0
  66. package/dist/index.iife.js +224 -0
  67. package/dist/index.js +2 -0
  68. package/dist/math-inline.css +2 -0
  69. package/dist/print/index.d.ts +15 -0
  70. package/dist/print/index.js +52 -0
  71. package/dist/runtime-support.d.ts +12 -0
  72. package/dist/runtime-support.js +12 -0
  73. package/module/assets/Symbola-4c507403.woff2 +0 -0
  74. package/module/print.js +25557 -0
  75. package/module/print.js.map +1 -0
  76. package/package.json +110 -26
  77. package/print.js +2 -0
  78. package/CHANGELOG.json +0 -2627
  79. package/CHANGELOG.md +0 -2526
  80. package/LICENSE.md +0 -5
  81. package/README.md +0 -3
  82. package/configure/CHANGELOG.json +0 -1652
  83. package/configure/CHANGELOG.md +0 -2154
  84. package/configure/lib/__tests__/configure.test.js +0 -237
  85. package/configure/lib/configure.js +0 -186
  86. package/configure/lib/configure.js.map +0 -1
  87. package/configure/lib/defaults.js +0 -185
  88. package/configure/lib/defaults.js.map +0 -1
  89. package/configure/lib/general-config-block.js +0 -525
  90. package/configure/lib/general-config-block.js.map +0 -1
  91. package/configure/lib/index.js +0 -140
  92. package/configure/lib/index.js.map +0 -1
  93. package/configure/lib/response.js +0 -369
  94. package/configure/lib/response.js.map +0 -1
  95. package/configure/lib/utils.js +0 -31
  96. package/configure/lib/utils.js.map +0 -1
  97. package/configure/package.json +0 -29
  98. package/controller/CHANGELOG.json +0 -1002
  99. package/controller/CHANGELOG.md +0 -1580
  100. package/controller/lib/__tests__/index.test.js +0 -1416
  101. package/controller/lib/defaults.js +0 -43
  102. package/controller/lib/defaults.js.map +0 -1
  103. package/controller/lib/index.js +0 -383
  104. package/controller/lib/index.js.map +0 -1
  105. package/controller/lib/utils.js +0 -11
  106. package/controller/lib/utils.js.map +0 -1
  107. package/controller/package.json +0 -26
  108. package/docs/config-schema.json +0 -2071
  109. package/docs/config-schema.json.md +0 -1533
  110. package/docs/demo/config.js +0 -8
  111. package/docs/demo/generate.js +0 -41
  112. package/docs/demo/index.html +0 -1
  113. package/docs/demo/pie.manifest.json +0 -11
  114. package/docs/demo/session.js +0 -11
  115. package/docs/pie-schema.json +0 -1472
  116. package/docs/pie-schema.json.md +0 -845
  117. package/lib/__tests__/main.test.js +0 -516
  118. package/lib/__tests__/simple-question-block.test.js +0 -129
  119. package/lib/index.js +0 -94
  120. package/lib/index.js.map +0 -1
  121. package/lib/main.js +0 -1030
  122. package/lib/main.js.map +0 -1
  123. package/lib/print.js +0 -92
  124. package/lib/print.js.map +0 -1
  125. package/lib/simple-question-block.js +0 -148
  126. package/lib/simple-question-block.js.map +0 -1
  127. package/lib/utils.js +0 -11
  128. package/lib/utils.js.map +0 -1
@@ -1,237 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
- var React = _interopRequireWildcard(require("react"));
6
- var _react2 = require("@testing-library/react");
7
- var _configure = _interopRequireWildcard(require("../configure"));
8
- var _configUi = require("@pie-lib/config-ui");
9
- var _response = _interopRequireDefault(require("../response"));
10
- var _mathToolbar = require("@pie-lib/math-toolbar");
11
- var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
12
- var _defaults = _interopRequireDefault(require("../defaults"));
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
- jest.mock('@pie-lib/config-ui', () => ({
15
- InputContainer: props => /*#__PURE__*/React.createElement("div", {
16
- "data-testid": "input-container"
17
- }, props.children),
18
- InputCheckbox: props => /*#__PURE__*/React.createElement("div", {
19
- "data-testid": "input-checkbox"
20
- }, props.children),
21
- FeedbackConfig: props => /*#__PURE__*/React.createElement("div", {
22
- "data-testid": "feedback-config"
23
- }, props.children),
24
- layout: {
25
- ConfigLayout: props => /*#__PURE__*/React.createElement("div", {
26
- "data-testid": "config-layout"
27
- }, props.children)
28
- },
29
- settings: {
30
- Panel: props => /*#__PURE__*/React.createElement("div", {
31
- "data-testid": "settings-panel",
32
- onChange: props.onChange
33
- }),
34
- toggle: jest.fn(),
35
- radio: jest.fn()
36
- }
37
- }));
38
- jest.mock('@pie-lib/math-toolbar', () => ({
39
- MathToolbar: props => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
40
- "data-testid": "math-toolbar"
41
- }, props))
42
- }));
43
- jest.mock('@pie-lib/math-input-mathlive', () => ({
44
- registerEmbed: jest.fn(),
45
- applyStaticMath: jest.fn()
46
- }));
47
- jest.mock('@pie-lib/editable-html-tip-tap', () => props => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
48
- "data-testid": "editable-html"
49
- }, props)));
50
- jest.mock('../response', () => props => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
51
- "data-testid": "response"
52
- }, props)));
53
- const {
54
- registerEmbed
55
- } = require('@pie-lib/math-input-mathlive');
56
- const defaultProps = {
57
- model: {
58
- id: '1',
59
- promptEnabled: true,
60
- feedbackEnabled: true,
61
- element: 'math-inline',
62
- responseType: 'Advanced Multi',
63
- feedback: {
64
- correct: {
65
- default: 'Correct',
66
- type: 'none'
67
- },
68
- incorrect: {
69
- default: 'Incorrect',
70
- type: 'none'
71
- },
72
- partial: {
73
- default: 'Nearly',
74
- type: 'none'
75
- }
76
- },
77
- equationEditor: '3',
78
- expression: '{{response}} = {{response}} \\text{eggs}',
79
- question: '<p>Sam sells baskets of eggs at his farm stand. He sold 12 baskets and wrote the number sentence below to show how many eggs he sold in all.</p><p><span class="equation-block"><math xmlns="http://www.w3.org/1998/Math/MathML" >\n <mrow>\n <mn>12</mn><mo>&#x00D7;</mo><mo>&#x25A1;</mo><mo>=</mo><mn>72</mn>\n </mrow>\n</math> </span></p><p>What <span class="relative-emphasis">division</span> number sentence can be used to show how many eggs were in each basket?</p><p>Use the on-screen keyboard to type your number sentence and answer in the box.</p>',
80
- response: {
81
- answer: '72\\div12=6\\text{eggs}',
82
- alternates: {
83
- 1: '6=72\\div12\\text{eggs}',
84
- 2: '\\frac{72}{12}=6\\text{eggs}',
85
- 3: '6=\\frac{72}{12}\\text{eggs}'
86
- },
87
- validation: 'literal'
88
- },
89
- responses: [{
90
- id: '1',
91
- answer: '72\\div12=6\\text{eggs}',
92
- alternates: {
93
- 1: '6=72\\div12\\text{eggs}',
94
- 2: '\\frac{72}{12}=6\\text{eggs}',
95
- 3: '6=\\frac{72}{12}\\text{eggs}'
96
- },
97
- validation: 'literal'
98
- }],
99
- note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',
100
- customKeys: ['\\left(\\right)', '\\frac{}{}', 'x\\frac{}{}'],
101
- configure: _defaults.default.configure
102
- },
103
- configuration: _defaults.default.configuration
104
- };
105
- describe('Configure', () => {
106
- it('changeTeacherInstructions calls onModelChange', () => {
107
- const onModelChanged = jest.fn();
108
- const {
109
- container
110
- } = (0, _react2.render)(/*#__PURE__*/React.createElement(_configure.Configure, (0, _extends2.default)({
111
- onModelChanged: onModelChanged,
112
- classes: {}
113
- }, _defaults.default)));
114
- const instance = new _configure.Configure({
115
- onModelChanged,
116
- classes: {},
117
- ..._defaults.default
118
- });
119
- instance.changeTeacherInstructions('Teacher Instructions');
120
- expect(onModelChanged).toBeCalledWith(expect.objectContaining({
121
- teacherInstructions: 'Teacher Instructions'
122
- }));
123
- });
124
- });
125
- describe('GeneralConfigBlock', () => {
126
- // Unmock GeneralConfigBlock for these tests
127
- const GeneralConfigBlock = require('../general-config-block').default;
128
- let props;
129
- beforeEach(() => {
130
- props = {
131
- model: defaultProps.model,
132
- promptEnabled: true,
133
- configuration: _defaults.default.configuration,
134
- onChange: jest.fn(),
135
- imageSupport: {},
136
- uploadSoundSupport: {}
137
- };
138
- });
139
- const wrapper = (extraProps = {}) => {
140
- return (0, _react2.render)(/*#__PURE__*/React.createElement(GeneralConfigBlock, (0, _extends2.default)({}, props, extraProps)));
141
- };
142
- const createInstance = (extraProps = {}) => {
143
- const instanceProps = {
144
- ...props,
145
- ...extraProps
146
- };
147
- const instance = new GeneralConfigBlock(instanceProps);
148
- instance.setState = jest.fn(state => {
149
- Object.assign(instance.state, typeof state === 'function' ? state(instance.state) : state);
150
- });
151
- return instance;
152
- };
153
- it('renders correctly', () => {
154
- const {
155
- container
156
- } = wrapper();
157
- expect(container.querySelector('[data-testid="input-container"]')).toBeInTheDocument();
158
- expect(container.querySelector('[data-testid="response"]')).toBeInTheDocument();
159
- expect(container.querySelector('[data-testid="math-toolbar"]')).toBeInTheDocument();
160
- expect(container.querySelector('[data-testid="editable-html"]')).toBeInTheDocument();
161
- expect(registerEmbed).toHaveBeenCalled();
162
- });
163
- it('renders correctly for Simple mode', () => {
164
- const {
165
- container
166
- } = wrapper({
167
- model: {
168
- ...props.model,
169
- responseType: 'Simple'
170
- }
171
- });
172
- expect(container.querySelector('[data-testid="input-container"]')).toBeInTheDocument();
173
- expect(container.querySelector('[data-testid="response"]')).toBeInTheDocument();
174
- expect(container.querySelector('[data-testid="editable-html"]')).toBeInTheDocument();
175
- });
176
- it('renders correctly with snapshot', () => {
177
- const {
178
- container
179
- } = wrapper();
180
-
181
- // // expect(container).toMatchSnapshot();
182
- });
183
- it('updates advanced model correctly', () => {
184
- const onChange = jest.fn();
185
- const instance = createInstance({
186
- onChange
187
- });
188
- instance.onResponseChange({
189
- answer: 'something',
190
- id: 'r1'
191
- }, 0);
192
- expect(onChange).toBeCalledWith({
193
- ...props.model,
194
- responses: [{
195
- id: 'r1',
196
- answer: 'something'
197
- }]
198
- });
199
- });
200
- it('builds out internal state correctly based on expression provided', () => {
201
- const instance = createInstance();
202
- expect(instance.state).toEqual({
203
- showKeypad: false,
204
- responseIdCounter: 2,
205
- responseAreas: {
206
- r1: {
207
- value: ''
208
- },
209
- r2: {
210
- value: ''
211
- }
212
- }
213
- });
214
- const instanceWithMoreResponses = createInstance({
215
- model: {
216
- ...props.model,
217
- expression: props.model.expression + ' {{response}} '
218
- }
219
- });
220
- expect(instanceWithMoreResponses.state).toEqual({
221
- showKeypad: false,
222
- responseIdCounter: 3,
223
- responseAreas: {
224
- r1: {
225
- value: ''
226
- },
227
- r2: {
228
- value: ''
229
- },
230
- r3: {
231
- value: ''
232
- }
233
- }
234
- });
235
- });
236
- });
237
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfY29uZmlndXJlIiwiX2NvbmZpZ1VpIiwiX3Jlc3BvbnNlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9tYXRoVG9vbGJhciIsIl9lZGl0YWJsZUh0bWxUaXBUYXAiLCJfZGVmYXVsdHMiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsIklucHV0Q29udGFpbmVyIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiY2hpbGRyZW4iLCJJbnB1dENoZWNrYm94IiwiRmVlZGJhY2tDb25maWciLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJzZXR0aW5ncyIsIlBhbmVsIiwib25DaGFuZ2UiLCJ0b2dnbGUiLCJmbiIsInJhZGlvIiwiTWF0aFRvb2xiYXIiLCJfZXh0ZW5kczIiLCJyZWdpc3RlckVtYmVkIiwiYXBwbHlTdGF0aWNNYXRoIiwiZGVmYXVsdFByb3BzIiwibW9kZWwiLCJpZCIsInByb21wdEVuYWJsZWQiLCJmZWVkYmFja0VuYWJsZWQiLCJlbGVtZW50IiwicmVzcG9uc2VUeXBlIiwiZmVlZGJhY2siLCJjb3JyZWN0IiwidHlwZSIsImluY29ycmVjdCIsInBhcnRpYWwiLCJlcXVhdGlvbkVkaXRvciIsImV4cHJlc3Npb24iLCJxdWVzdGlvbiIsInJlc3BvbnNlIiwiYW5zd2VyIiwiYWx0ZXJuYXRlcyIsInZhbGlkYXRpb24iLCJyZXNwb25zZXMiLCJub3RlIiwiY3VzdG9tS2V5cyIsImNvbmZpZ3VyZSIsImRlZmF1bHRWYWx1ZXMiLCJjb25maWd1cmF0aW9uIiwiZGVzY3JpYmUiLCJpdCIsIm9uTW9kZWxDaGFuZ2VkIiwiY29udGFpbmVyIiwicmVuZGVyIiwiQ29uZmlndXJlIiwiY2xhc3NlcyIsImluc3RhbmNlIiwiQ29uZmlndXJlTm90U3R5bGVkIiwiY2hhbmdlVGVhY2hlckluc3RydWN0aW9ucyIsImV4cGVjdCIsInRvQmVDYWxsZWRXaXRoIiwib2JqZWN0Q29udGFpbmluZyIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJHZW5lcmFsQ29uZmlnQmxvY2siLCJiZWZvcmVFYWNoIiwiaW1hZ2VTdXBwb3J0IiwidXBsb2FkU291bmRTdXBwb3J0Iiwid3JhcHBlciIsImV4dHJhUHJvcHMiLCJjcmVhdGVJbnN0YW5jZSIsImluc3RhbmNlUHJvcHMiLCJzZXRTdGF0ZSIsInN0YXRlIiwiYXNzaWduIiwicXVlcnlTZWxlY3RvciIsInRvQmVJblRoZURvY3VtZW50IiwidG9IYXZlQmVlbkNhbGxlZCIsIm9uUmVzcG9uc2VDaGFuZ2UiLCJ0b0VxdWFsIiwic2hvd0tleXBhZCIsInJlc3BvbnNlSWRDb3VudGVyIiwicmVzcG9uc2VBcmVhcyIsInIxIiwidmFsdWUiLCJyMiIsImluc3RhbmNlV2l0aE1vcmVSZXNwb25zZXMiLCJyMyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY29uZmlndXJlLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgQ29uZmlndXJlLCB7IENvbmZpZ3VyZSBhcyBDb25maWd1cmVOb3RTdHlsZWQgfSBmcm9tICcuLi9jb25maWd1cmUnO1xuaW1wb3J0IHsgSW5wdXRDb250YWluZXIsIElucHV0Q2hlY2tib3ggfSBmcm9tICdAcGllLWxpYi9jb25maWctdWknO1xuaW1wb3J0IFJlc3BvbnNlIGZyb20gJy4uL3Jlc3BvbnNlJztcbmltcG9ydCB7IE1hdGhUb29sYmFyIH0gZnJvbSAnQHBpZS1saWIvbWF0aC10b29sYmFyJztcbmltcG9ydCBFZGl0YWJsZUh0bWwgZnJvbSAnQHBpZS1saWIvZWRpdGFibGUtaHRtbC10aXAtdGFwJztcblxuaW1wb3J0IHsgRmVlZGJhY2tDb25maWcsIGxheW91dCwgc2V0dGluZ3MgfSBmcm9tICdAcGllLWxpYi9jb25maWctdWknO1xuXG5pbXBvcnQgZGVmYXVsdFZhbHVlcyBmcm9tICcuLi9kZWZhdWx0cyc7XG5cbmplc3QubW9jaygnQHBpZS1saWIvY29uZmlnLXVpJywgKCkgPT4gKHtcbiAgSW5wdXRDb250YWluZXI6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImlucHV0LWNvbnRhaW5lclwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIElucHV0Q2hlY2tib3g6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImlucHV0LWNoZWNrYm94XCI+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgRmVlZGJhY2tDb25maWc6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImZlZWRiYWNrLWNvbmZpZ1wiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIGxheW91dDoge1xuICAgIENvbmZpZ0xheW91dDogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiY29uZmlnLWxheW91dFwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIH0sXG4gIHNldHRpbmdzOiB7XG4gICAgUGFuZWw6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cInNldHRpbmdzLXBhbmVsXCIgb25DaGFuZ2U9e3Byb3BzLm9uQ2hhbmdlfSAvPixcbiAgICB0b2dnbGU6IGplc3QuZm4oKSxcbiAgICByYWRpbzogamVzdC5mbigpLFxuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL21hdGgtdG9vbGJhcicsICgpID0+ICh7XG4gIE1hdGhUb29sYmFyOiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJtYXRoLXRvb2xiYXJcIiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL21hdGgtaW5wdXQtbWF0aGxpdmUnLCAoKSA9PiAoe1xuICByZWdpc3RlckVtYmVkOiBqZXN0LmZuKCksXG4gIGFwcGx5U3RhdGljTWF0aDogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwtdGlwLXRhcCcsICgpID0+IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImVkaXRhYmxlLWh0bWxcIiB7Li4ucHJvcHN9IC8+KTtcblxuamVzdC5tb2NrKCcuLi9yZXNwb25zZScsICgpID0+IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cInJlc3BvbnNlXCIgey4uLnByb3BzfSAvPik7XG5cbmNvbnN0IHsgcmVnaXN0ZXJFbWJlZCB9ID0gcmVxdWlyZSgnQHBpZS1saWIvbWF0aC1pbnB1dC1tYXRobGl2ZScpO1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIG1vZGVsOiB7XG4gICAgaWQ6ICcxJyxcbiAgICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICAgIGZlZWRiYWNrRW5hYmxlZDogdHJ1ZSxcbiAgICBlbGVtZW50OiAnbWF0aC1pbmxpbmUnLFxuICAgIHJlc3BvbnNlVHlwZTogJ0FkdmFuY2VkIE11bHRpJyxcbiAgICBmZWVkYmFjazoge1xuICAgICAgY29ycmVjdDoge1xuICAgICAgICBkZWZhdWx0OiAnQ29ycmVjdCcsXG4gICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgIH0sXG4gICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgZGVmYXVsdDogJ0luY29ycmVjdCcsXG4gICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgIH0sXG4gICAgICBwYXJ0aWFsOiB7XG4gICAgICAgIGRlZmF1bHQ6ICdOZWFybHknLFxuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZXF1YXRpb25FZGl0b3I6ICczJyxcbiAgICBleHByZXNzaW9uOiAne3tyZXNwb25zZX19ID0ge3tyZXNwb25zZX19IFxcXFx0ZXh0e2VnZ3N9JyxcbiAgICBxdWVzdGlvbjpcbiAgICAgICc8cD5TYW0gc2VsbHMgYmFza2V0cyBvZiBlZ2dzIGF0IGhpcyBmYXJtIHN0YW5kLiBIZSBzb2xkIDEyIGJhc2tldHMgYW5kIHdyb3RlIHRoZSBudW1iZXIgc2VudGVuY2UgYmVsb3cgdG8gc2hvdyBob3cgbWFueSBlZ2dzIGhlIHNvbGQgaW4gYWxsLjwvcD48cD48c3BhbiBjbGFzcz1cImVxdWF0aW9uLWJsb2NrXCI+PG1hdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCIgPlxcbiA8bXJvdz5cXG4gIDxtbj4xMjwvbW4+PG1vPiYjeDAwRDc7PC9tbz48bW8+JiN4MjVBMTs8L21vPjxtbz49PC9tbz48bW4+NzI8L21uPlxcbiA8L21yb3c+XFxuPC9tYXRoPiA8L3NwYW4+PC9wPjxwPldoYXQgPHNwYW4gY2xhc3M9XCJyZWxhdGl2ZS1lbXBoYXNpc1wiPmRpdmlzaW9uPC9zcGFuPiBudW1iZXIgc2VudGVuY2UgY2FuIGJlIHVzZWQgdG8gc2hvdyBob3cgbWFueSBlZ2dzIHdlcmUgaW4gZWFjaCBiYXNrZXQ/PC9wPjxwPlVzZSB0aGUgb24tc2NyZWVuIGtleWJvYXJkIHRvIHR5cGUgeW91ciBudW1iZXIgc2VudGVuY2UgYW5kIGFuc3dlciBpbiB0aGUgYm94LjwvcD4nLFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBhbnN3ZXI6ICc3MlxcXFxkaXYxMj02XFxcXHRleHR7ZWdnc30nLFxuICAgICAgYWx0ZXJuYXRlczoge1xuICAgICAgICAxOiAnNj03MlxcXFxkaXYxMlxcXFx0ZXh0e2VnZ3N9JyxcbiAgICAgICAgMjogJ1xcXFxmcmFjezcyfXsxMn09NlxcXFx0ZXh0e2VnZ3N9JyxcbiAgICAgICAgMzogJzY9XFxcXGZyYWN7NzJ9ezEyfVxcXFx0ZXh0e2VnZ3N9JyxcbiAgICAgIH0sXG4gICAgICB2YWxpZGF0aW9uOiAnbGl0ZXJhbCcsXG4gICAgfSxcbiAgICByZXNwb25zZXM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgYW5zd2VyOiAnNzJcXFxcZGl2MTI9NlxcXFx0ZXh0e2VnZ3N9JyxcbiAgICAgICAgYWx0ZXJuYXRlczoge1xuICAgICAgICAgIDE6ICc2PTcyXFxcXGRpdjEyXFxcXHRleHR7ZWdnc30nLFxuICAgICAgICAgIDI6ICdcXFxcZnJhY3s3Mn17MTJ9PTZcXFxcdGV4dHtlZ2dzfScsXG4gICAgICAgICAgMzogJzY9XFxcXGZyYWN7NzJ9ezEyfVxcXFx0ZXh0e2VnZ3N9JyxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsaWRhdGlvbjogJ2xpdGVyYWwnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIG5vdGU6ICdUaGUgYW5zd2VyIHNob3duIGFib3ZlIGlzIHRoZSBwcmltYXJ5IGNvcnJlY3QgYW5zd2VyIHNwZWNpZmllZCBieSB0aGUgYXV0aG9yIGZvciB0aGlzIGl0ZW0sIGJ1dCBvdGhlciBhbnN3ZXJzIG1heSBhbHNvIGJlIHJlY29nbml6ZWQgYXMgY29ycmVjdC4nLFxuICAgIGN1c3RvbUtleXM6IFsnXFxcXGxlZnQoXFxcXHJpZ2h0KScsICdcXFxcZnJhY3t9e30nLCAneFxcXFxmcmFje317fSddLFxuICAgIGNvbmZpZ3VyZTogZGVmYXVsdFZhbHVlcy5jb25maWd1cmUsXG4gIH0sXG4gIGNvbmZpZ3VyYXRpb246IGRlZmF1bHRWYWx1ZXMuY29uZmlndXJhdGlvbixcbn07XG5cbmRlc2NyaWJlKCdDb25maWd1cmUnLCAoKSA9PiB7XG4gIGl0KCdjaGFuZ2VUZWFjaGVySW5zdHJ1Y3Rpb25zIGNhbGxzIG9uTW9kZWxDaGFuZ2UnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcihcbiAgICAgIDxDb25maWd1cmVOb3RTdHlsZWQgb25Nb2RlbENoYW5nZWQ9e29uTW9kZWxDaGFuZ2VkfSBjbGFzc2VzPXt7fX0gey4uLmRlZmF1bHRWYWx1ZXN9IC8+LFxuICAgICk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBDb25maWd1cmVOb3RTdHlsZWQoeyBvbk1vZGVsQ2hhbmdlZCwgY2xhc3Nlczoge30sIC4uLmRlZmF1bHRWYWx1ZXMgfSk7XG4gICAgaW5zdGFuY2UuY2hhbmdlVGVhY2hlckluc3RydWN0aW9ucygnVGVhY2hlciBJbnN0cnVjdGlvbnMnKTtcblxuICAgIGV4cGVjdChvbk1vZGVsQ2hhbmdlZCkudG9CZUNhbGxlZFdpdGgoXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6ICdUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgICB9KSxcbiAgICApO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnR2VuZXJhbENvbmZpZ0Jsb2NrJywgKCkgPT4ge1xuICAvLyBVbm1vY2sgR2VuZXJhbENvbmZpZ0Jsb2NrIGZvciB0aGVzZSB0ZXN0c1xuICBjb25zdCBHZW5lcmFsQ29uZmlnQmxvY2sgPSByZXF1aXJlKCcuLi9nZW5lcmFsLWNvbmZpZy1ibG9jaycpLmRlZmF1bHQ7XG5cbiAgbGV0IHByb3BzO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHByb3BzID0ge1xuICAgICAgbW9kZWw6IGRlZmF1bHRQcm9wcy5tb2RlbCxcbiAgICAgIHByb21wdEVuYWJsZWQ6IHRydWUsXG4gICAgICBjb25maWd1cmF0aW9uOiBkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb24sXG4gICAgICBvbkNoYW5nZTogamVzdC5mbigpLFxuICAgICAgaW1hZ2VTdXBwb3J0OiB7fSxcbiAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydDoge30sXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3Qgd3JhcHBlciA9IChleHRyYVByb3BzID0ge30pID0+IHtcbiAgICByZXR1cm4gcmVuZGVyKDxHZW5lcmFsQ29uZmlnQmxvY2sgey4uLnByb3BzfSB7Li4uZXh0cmFQcm9wc30gLz4pO1xuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZUluc3RhbmNlID0gKGV4dHJhUHJvcHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IGluc3RhbmNlUHJvcHMgPSB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIC4uLmV4dHJhUHJvcHMsXG4gICAgfTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBHZW5lcmFsQ29uZmlnQmxvY2soaW5zdGFuY2VQcm9wcyk7XG4gICAgaW5zdGFuY2Uuc2V0U3RhdGUgPSBqZXN0LmZuKChzdGF0ZSkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZS5zdGF0ZSwgdHlwZW9mIHN0YXRlID09PSAnZnVuY3Rpb24nID8gc3RhdGUoaW5zdGFuY2Uuc3RhdGUpIDogc3RhdGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcblxuICBpdCgncmVuZGVycyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHdyYXBwZXIoKTtcblxuICAgIGV4cGVjdChjb250YWluZXIucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaW5wdXQtY29udGFpbmVyXCJdJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJyZXNwb25zZVwiXScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIGV4cGVjdChjb250YWluZXIucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwibWF0aC10b29sYmFyXCJdJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJlZGl0YWJsZS1odG1sXCJdJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgZXhwZWN0KHJlZ2lzdGVyRW1iZWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IGZvciBTaW1wbGUgbW9kZScsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gd3JhcHBlcih7IG1vZGVsOiB7IC4uLnByb3BzLm1vZGVsLCByZXNwb25zZVR5cGU6ICdTaW1wbGUnIH0gfSk7XG5cbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImlucHV0LWNvbnRhaW5lclwiXScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIGV4cGVjdChjb250YWluZXIucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwicmVzcG9uc2VcIl0nKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImVkaXRhYmxlLWh0bWxcIl0nKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggc25hcHNob3QnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHdyYXBwZXIoKTtcblxuICAgIC8vIC8vIGV4cGVjdChjb250YWluZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcblxuICBpdCgndXBkYXRlcyBhZHZhbmNlZCBtb2RlbCBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSh7IG9uQ2hhbmdlIH0pO1xuXG4gICAgaW5zdGFuY2Uub25SZXNwb25zZUNoYW5nZSh7IGFuc3dlcjogJ3NvbWV0aGluZycsIGlkOiAncjEnIH0sIDApO1xuXG4gICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAuLi5wcm9wcy5tb2RlbCxcbiAgICAgIHJlc3BvbnNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdyMScsXG4gICAgICAgICAgYW5zd2VyOiAnc29tZXRoaW5nJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdidWlsZHMgb3V0IGludGVybmFsIHN0YXRlIGNvcnJlY3RseSBiYXNlZCBvbiBleHByZXNzaW9uIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcblxuICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZSkudG9FcXVhbCh7XG4gICAgICBzaG93S2V5cGFkOiBmYWxzZSxcbiAgICAgIHJlc3BvbnNlSWRDb3VudGVyOiAyLFxuICAgICAgcmVzcG9uc2VBcmVhczoge1xuICAgICAgICByMToge1xuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgcjI6IHtcbiAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgaW5zdGFuY2VXaXRoTW9yZVJlc3BvbnNlcyA9IGNyZWF0ZUluc3RhbmNlKHtcbiAgICAgIG1vZGVsOiB7XG4gICAgICAgIC4uLnByb3BzLm1vZGVsLFxuICAgICAgICBleHByZXNzaW9uOiBwcm9wcy5tb2RlbC5leHByZXNzaW9uICsgJyB7e3Jlc3BvbnNlfX0gJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBleHBlY3QoaW5zdGFuY2VXaXRoTW9yZVJlc3BvbnNlcy5zdGF0ZSkudG9FcXVhbCh7XG4gICAgICBzaG93S2V5cGFkOiBmYWxzZSxcbiAgICAgIHJlc3BvbnNlSWRDb3VudGVyOiAzLFxuICAgICAgcmVzcG9uc2VBcmVhczoge1xuICAgICAgICByMToge1xuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgcjI6IHtcbiAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHIzOiB7XG4gICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtc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
@@ -1,186 +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.Configure = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _styles = require("@mui/material/styles");
11
- var _configUi = require("@pie-lib/config-ui");
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _debug = _interopRequireDefault(require("debug"));
14
- var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
15
- var _generalConfigBlock = _interopRequireDefault(require("./general-config-block"));
16
- var _utils = require("./utils");
17
- const log = (0, _debug.default)('@pie-element:math-inline:configure');
18
- const {
19
- Panel,
20
- toggle,
21
- radio,
22
- dropdown
23
- } = _configUi.settings;
24
- const PromptHolder = (0, _styles.styled)(_configUi.InputContainer)(({
25
- theme
26
- }) => ({
27
- width: '100%',
28
- paddingTop: theme.spacing(2),
29
- marginBottom: theme.spacing(2)
30
- }));
31
- const ErrorText = (0, _styles.styled)('div')(({
32
- theme
33
- }) => ({
34
- fontSize: theme.typography.fontSize - 2,
35
- color: theme.palette.error.main,
36
- paddingTop: theme.spacing(1)
37
- }));
38
- class Configure extends _react.default.Component {
39
- constructor(...args) {
40
- super(...args);
41
- (0, _defineProperty2.default)(this, "onChange", model => {
42
- this.props.onModelChanged(model);
43
- });
44
- (0, _defineProperty2.default)(this, "changeTeacherInstructions", teacherInstructions => {
45
- this.props.onModelChanged({
46
- ...this.props.model,
47
- teacherInstructions
48
- });
49
- });
50
- (0, _defineProperty2.default)(this, "onFeedbackChange", feedback => {
51
- const {
52
- model,
53
- onModelChanged
54
- } = this.props;
55
- model.feedback = feedback;
56
- onModelChanged(model);
57
- });
58
- }
59
- render() {
60
- const {
61
- model,
62
- imageSupport,
63
- onModelChanged,
64
- configuration,
65
- onConfigurationChanged,
66
- uploadSoundSupport
67
- } = this.props;
68
- const {
69
- allowTrailingZeros = {},
70
- baseInputConfiguration = {},
71
- contentDimensions = {},
72
- feedback = {},
73
- ignoreOrder = {},
74
- maxImageWidth = {},
75
- maxImageHeight = {},
76
- prompt = {},
77
- rationale = {},
78
- responseType = {},
79
- scoringType = {},
80
- settingsPanelDisabled,
81
- spellCheck = {},
82
- studentInstructions = {},
83
- teacherInstructions = {},
84
- withRubric = {},
85
- mathMlOptions = {},
86
- language = {},
87
- languageChoices = {}
88
- } = configuration || {};
89
- const {
90
- errors = {},
91
- extraCSSRules,
92
- feedbackEnabled,
93
- promptEnabled,
94
- rationaleEnabled,
95
- spellCheckEnabled,
96
- teacherInstructionsEnabled,
97
- toolbarEditorPosition
98
- } = model || {};
99
- const {
100
- teacherInstructions: teacherInstructionsError
101
- } = errors;
102
- log('[render] model', model);
103
- const toolbarOpts = {
104
- position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
105
- };
106
- const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
107
- const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
108
- const panelSettings = {
109
- responseType: responseType.settings && radio(responseType.label, [_utils.ResponseTypes.simple, _utils.ResponseTypes.advanced]),
110
- feedbackEnabled: feedback.settings && toggle(feedback.label),
111
- promptEnabled: prompt.settings && toggle(prompt.label),
112
- 'language.enabled': language.settings && toggle(language.label, true),
113
- language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options)
114
- };
115
- const panelProperties = {
116
- teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
117
- studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
118
- rationaleEnabled: rationale.settings && toggle(rationale.label),
119
- spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
120
- scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
121
- 'ignoreOrder.enabled': ignoreOrder.settings && toggle(ignoreOrder.label),
122
- 'allowTrailingZeros.enabled': allowTrailingZeros.settings && toggle(allowTrailingZeros.label),
123
- rubricEnabled: withRubric?.settings && toggle(withRubric?.label)
124
- };
125
- return /*#__PURE__*/_react.default.createElement(_configUi.layout.ConfigLayout, {
126
- extraCSSRules: extraCSSRules,
127
- dimensions: contentDimensions,
128
- hideSettings: settingsPanelDisabled,
129
- settings: /*#__PURE__*/_react.default.createElement(Panel, {
130
- model: model,
131
- configuration: configuration,
132
- onChangeModel: model => onModelChanged(model),
133
- onChangeConfiguration: config => onConfigurationChanged(config),
134
- groups: {
135
- Settings: panelSettings,
136
- Properties: panelProperties
137
- }
138
- })
139
- }, teacherInstructionsEnabled && /*#__PURE__*/_react.default.createElement(PromptHolder, {
140
- label: teacherInstructions.label
141
- }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
142
- markup: model.teacherInstructions || '',
143
- onChange: this.changeTeacherInstructions,
144
- imageSupport: imageSupport,
145
- nonEmpty: false,
146
- error: teacherInstructionsError,
147
- toolbarOpts: toolbarOpts,
148
- pluginProps: (0, _utils.getPluginProps)(teacherInstructions?.inputConfiguration, baseInputConfiguration),
149
- spellCheck: spellCheckEnabled,
150
- maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
151
- maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
152
- uploadSoundSupport: uploadSoundSupport,
153
- languageCharactersProps: [{
154
- language: 'spanish'
155
- }, {
156
- language: 'special'
157
- }],
158
- mathMlOptions: mathMlOptions
159
- }), teacherInstructionsError && /*#__PURE__*/_react.default.createElement(ErrorText, null, teacherInstructionsError)), /*#__PURE__*/_react.default.createElement(_generalConfigBlock.default, {
160
- imageSupport: imageSupport,
161
- uploadSoundSupport: uploadSoundSupport,
162
- model: model,
163
- configuration: configuration,
164
- onChange: this.onChange,
165
- rationaleEnabled: rationaleEnabled,
166
- promptEnabled: promptEnabled,
167
- toolbarOpts: toolbarOpts,
168
- spellCheck: spellCheckEnabled
169
- }), feedbackEnabled && /*#__PURE__*/_react.default.createElement(_configUi.FeedbackConfig, {
170
- feedback: model.feedback,
171
- onChange: this.onFeedbackChange,
172
- toolbarOpts: toolbarOpts
173
- }));
174
- }
175
- }
176
- exports.Configure = Configure;
177
- (0, _defineProperty2.default)(Configure, "propTypes", {
178
- onModelChanged: _propTypes.default.func,
179
- onConfigurationChanged: _propTypes.default.func,
180
- model: _propTypes.default.object.isRequired,
181
- configuration: _propTypes.default.object.isRequired,
182
- imageSupport: _propTypes.default.object,
183
- uploadSoundSupport: _propTypes.default.object
184
- });
185
- var _default = exports.default = Configure;
186
- //# sourceMappingURL=configure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configure.js","names":["_react","_interopRequireDefault","require","_styles","_configUi","_propTypes","_debug","_editableHtmlTipTap","_generalConfigBlock","_utils","log","debug","Panel","toggle","radio","dropdown","settings","PromptHolder","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","ErrorText","fontSize","typography","color","palette","error","main","Configure","React","Component","constructor","args","_defineProperty2","default","model","props","onModelChanged","teacherInstructions","feedback","render","imageSupport","configuration","onConfigurationChanged","uploadSoundSupport","allowTrailingZeros","baseInputConfiguration","contentDimensions","ignoreOrder","maxImageWidth","maxImageHeight","prompt","rationale","responseType","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","errors","extraCSSRules","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","teacherInstructionsError","toolbarOpts","position","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","label","ResponseTypes","simple","advanced","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","createElement","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","config","groups","Settings","Properties","markup","onChange","changeTeacherInstructions","nonEmpty","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","FeedbackConfig","onFeedbackChange","exports","PropTypes","func","object","isRequired","_default"],"sources":["../src/configure.jsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { FeedbackConfig, settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport GeneralConfigBlock from './general-config-block';\nimport { getPluginProps, ResponseTypes } from './utils';\n\nconst log = debug('@pie-element:math-inline:configure');\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n };\n\n onChange = (model) => {\n this.props.onModelChanged(model);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onFeedbackChange = (feedback) => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n render() {\n const { model, imageSupport, onModelChanged, configuration, onConfigurationChanged, uploadSoundSupport } =\n this.props;\n const {\n allowTrailingZeros = {},\n baseInputConfiguration = {},\n contentDimensions = {},\n feedback = {},\n ignoreOrder = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n rationale = {},\n responseType = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n errors = {},\n extraCSSRules,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const { teacherInstructions: teacherInstructionsError } = errors;\n\n log('[render] model', model);\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n responseType: responseType.settings && radio(responseType.label, [ResponseTypes.simple, ResponseTypes.advanced]),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n 'ignoreOrder.enabled': ignoreOrder.settings && toggle(ignoreOrder.label),\n 'allowTrailingZeros.enabled': allowTrailingZeros.settings && toggle(allowTrailingZeros.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n <GeneralConfigBlock\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n configuration={configuration}\n onChange={this.onChange}\n rationaleEnabled={rationaleEnabled}\n promptEnabled={promptEnabled}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.onFeedbackChange} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Configure;\n"],"mappings":"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","ignoreList":[]}