@pie-element/multiple-choice 13.5.0-beta.6 → 14.0.0-next.20261002094057

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 (150) hide show
  1. package/author.js +2 -0
  2. package/configure.js +2 -0
  3. package/controller.js +1 -0
  4. package/dist/author/defaults.d.ts +205 -0
  5. package/dist/author/defaults.js +151 -0
  6. package/dist/author/index.d.ts +26 -0
  7. package/dist/author/index.js +119 -0
  8. package/dist/author/main.d.ts +34 -0
  9. package/dist/author/main.js +287 -0
  10. package/dist/author/utils.d.ts +9 -0
  11. package/dist/author/utils.js +7 -0
  12. package/dist/browser/Radio-CfqdhvRH.js +9769 -0
  13. package/dist/browser/Radio-CfqdhvRH.js.map +1 -0
  14. package/dist/browser/assets/Symbola-4c507403.woff2 +0 -0
  15. package/dist/browser/author/index.js +35079 -0
  16. package/dist/browser/author/index.js.map +1 -0
  17. package/dist/browser/controller/index.js +204 -0
  18. package/dist/browser/controller/index.js.map +1 -0
  19. package/dist/browser/delivery/index.js +303 -0
  20. package/dist/browser/delivery/index.js.map +1 -0
  21. package/dist/browser/dist-CHbLnyuX.js +111 -0
  22. package/dist/browser/dist-CHbLnyuX.js.map +1 -0
  23. package/dist/browser/editor-runtime/Radio-D3ynJgVj.js +9769 -0
  24. package/dist/browser/editor-runtime/Radio-D3ynJgVj.js.map +1 -0
  25. package/dist/browser/editor-runtime/assets/Symbola-4c507403.woff2 +0 -0
  26. package/dist/browser/editor-runtime/author/index.js +18670 -0
  27. package/dist/browser/editor-runtime/author/index.js.map +1 -0
  28. package/dist/browser/editor-runtime/controller/index.js +204 -0
  29. package/dist/browser/editor-runtime/controller/index.js.map +1 -0
  30. package/dist/browser/editor-runtime/delivery/index.js +303 -0
  31. package/dist/browser/editor-runtime/delivery/index.js.map +1 -0
  32. package/dist/browser/editor-runtime/dist-CHbLnyuX.js +111 -0
  33. package/dist/browser/editor-runtime/dist-CHbLnyuX.js.map +1 -0
  34. package/dist/browser/editor-runtime/main-BzlfiDu3.js +2553 -0
  35. package/dist/browser/editor-runtime/main-BzlfiDu3.js.map +1 -0
  36. package/dist/browser/editor-runtime/print/index.js +45 -0
  37. package/dist/browser/editor-runtime/print/index.js.map +1 -0
  38. package/dist/browser/main-0JQfvG0B.js +2553 -0
  39. package/dist/browser/main-0JQfvG0B.js.map +1 -0
  40. package/dist/browser/print/index.js +45 -0
  41. package/dist/browser/print/index.js.map +1 -0
  42. package/dist/controller/defaults.d.ts +35 -0
  43. package/dist/controller/defaults.js +29 -0
  44. package/dist/controller/index.d.ts +65 -0
  45. package/dist/controller/index.js +129 -0
  46. package/dist/controller/utils.d.ts +10 -0
  47. package/dist/controller/utils.js +8 -0
  48. package/dist/delivery/choice-input.d.ts +44 -0
  49. package/dist/delivery/choice-input.js +280 -0
  50. package/dist/delivery/choice.d.ts +20 -0
  51. package/dist/delivery/choice.js +106 -0
  52. package/dist/delivery/feedback-tick.d.ts +20 -0
  53. package/dist/delivery/feedback-tick.js +104 -0
  54. package/dist/delivery/index.d.ts +37 -0
  55. package/dist/delivery/index.js +217 -0
  56. package/dist/delivery/main.d.ts +31 -0
  57. package/dist/delivery/main.js +51 -0
  58. package/dist/delivery/multiple-choice.d.ts +61 -0
  59. package/dist/delivery/multiple-choice.js +245 -0
  60. package/dist/delivery/session-updater.d.ts +10 -0
  61. package/dist/delivery/session-updater.js +9 -0
  62. package/dist/delivery/utils.d.ts +10 -0
  63. package/dist/delivery/utils.js +4 -0
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.iife.d.ts +8 -0
  66. package/dist/index.iife.js +148 -0
  67. package/dist/index.js +2 -0
  68. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  69. package/dist/print/index.d.ts +15 -0
  70. package/dist/print/index.js +45 -0
  71. package/dist/runtime-support.d.ts +12 -0
  72. package/dist/runtime-support.js +12 -0
  73. package/module/print.js +18205 -1
  74. package/module/print.js.map +1 -0
  75. package/package.json +107 -30
  76. package/print.js +2 -0
  77. package/CHANGELOG.json +0 -1972
  78. package/CHANGELOG.md +0 -2773
  79. package/LICENSE.md +0 -5
  80. package/PRINT.md +0 -35
  81. package/README.md +0 -56
  82. package/choice.png +0 -0
  83. package/configure/CHANGELOG.json +0 -1387
  84. package/configure/CHANGELOG.md +0 -2113
  85. package/configure/lib/__tests__/root.test.js +0 -279
  86. package/configure/lib/defaults.js +0 -203
  87. package/configure/lib/defaults.js.map +0 -1
  88. package/configure/lib/index.js +0 -203
  89. package/configure/lib/index.js.map +0 -1
  90. package/configure/lib/main.js +0 -484
  91. package/configure/lib/main.js.map +0 -1
  92. package/configure/lib/utils.js +0 -18
  93. package/configure/lib/utils.js.map +0 -1
  94. package/configure/package.json +0 -22
  95. package/controller/CHANGELOG.json +0 -527
  96. package/controller/CHANGELOG.md +0 -1444
  97. package/controller/lib/__tests__/index.test.js +0 -561
  98. package/controller/lib/__tests__/utils.test.js +0 -8
  99. package/controller/lib/defaults.js +0 -33
  100. package/controller/lib/defaults.js.map +0 -1
  101. package/controller/lib/index.js +0 -298
  102. package/controller/lib/index.js.map +0 -1
  103. package/controller/lib/utils.js +0 -15
  104. package/controller/lib/utils.js.map +0 -1
  105. package/controller/package.json +0 -15
  106. package/docs/config-schema.json +0 -2993
  107. package/docs/config-schema.json.md +0 -2217
  108. package/docs/demo/config.js +0 -8
  109. package/docs/demo/generate.js +0 -61
  110. package/docs/demo/index.html +0 -1
  111. package/docs/demo/pie.manifest.json +0 -11
  112. package/docs/demo/session.js +0 -7
  113. package/docs/pie-schema.json +0 -1332
  114. package/docs/pie-schema.json.md +0 -1015
  115. package/lib/__tests__/choice-input-test.js +0 -49
  116. package/lib/__tests__/choice-input.test.js +0 -49
  117. package/lib/__tests__/index-test.js +0 -206
  118. package/lib/__tests__/index.test.js +0 -221
  119. package/lib/__tests__/key-events-test.js +0 -95
  120. package/lib/__tests__/key-events.test.js +0 -107
  121. package/lib/__tests__/multiple-choice-test.js +0 -101
  122. package/lib/__tests__/multiple-choice.test.js +0 -256
  123. package/lib/__tests__/session-updater-test.js +0 -70
  124. package/lib/__tests__/session-updater.test.js +0 -70
  125. package/lib/choice-input.js +0 -383
  126. package/lib/choice-input.js.map +0 -1
  127. package/lib/choice.js +0 -192
  128. package/lib/choice.js.map +0 -1
  129. package/lib/feedback-tick.js +0 -134
  130. package/lib/feedback-tick.js.map +0 -1
  131. package/lib/index.js +0 -405
  132. package/lib/index.js.map +0 -1
  133. package/lib/main.js +0 -63
  134. package/lib/main.js.map +0 -1
  135. package/lib/multiple-choice.js +0 -399
  136. package/lib/multiple-choice.js.map +0 -1
  137. package/lib/print.js +0 -94
  138. package/lib/print.js.map +0 -1
  139. package/lib/session-updater.js +0 -37
  140. package/lib/session-updater.js.map +0 -1
  141. package/lib/utils.js +0 -14
  142. package/lib/utils.js.map +0 -1
  143. package/module/configure.js +0 -1
  144. package/module/controller.js +0 -3045
  145. package/module/demo.js +0 -86
  146. package/module/element.js +0 -1
  147. package/module/index.html +0 -21
  148. package/module/manifest.json +0 -14
  149. package/module/print-demo.js +0 -124
  150. package/module/print.html +0 -18
package/author.js ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from './dist/author/index.js';
2
+ export * from './dist/author/index.js';
package/configure.js ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from './dist/author/index.js';
2
+ export * from './dist/author/index.js';
package/controller.js ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/controller/index.js';
@@ -0,0 +1,205 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/multiple-choice/configure/src/defaults.js
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ /** NOTE: teacherInstructions, studentInstructions, rationale & scoringType
10
+ * functionalities are not defined yet - the value for those can belong to
11
+ * model or to configure
12
+ */
13
+ declare const _default: {
14
+ model: {
15
+ choiceMode: string;
16
+ choicePrefix: string;
17
+ choices: never[];
18
+ choicesLayout: string;
19
+ feedbackEnabled: boolean;
20
+ gridColumns: number;
21
+ lockChoiceOrder: boolean;
22
+ partialScoring: boolean;
23
+ prompt: string;
24
+ promptEnabled: boolean;
25
+ rationale: string;
26
+ rationaleEnabled: boolean;
27
+ scoringType: string;
28
+ studentInstructionsEnabled: boolean;
29
+ teacherInstructions: string;
30
+ teacherInstructionsEnabled: boolean;
31
+ toolbarEditorPosition: string;
32
+ selectedAnswerBackgroundColor: string;
33
+ keyboardEventsEnabled: boolean;
34
+ };
35
+ configuration: {
36
+ baseInputConfiguration: {
37
+ h3: {
38
+ disabled: boolean;
39
+ };
40
+ audio: {
41
+ disabled: boolean;
42
+ };
43
+ video: {
44
+ disabled: boolean;
45
+ };
46
+ image: {
47
+ disabled: boolean;
48
+ };
49
+ textAlign: {
50
+ disabled: boolean;
51
+ };
52
+ showParagraphs: {
53
+ disabled: boolean;
54
+ };
55
+ separateParagraphs: {
56
+ disabled: boolean;
57
+ };
58
+ };
59
+ choices: {
60
+ inputConfiguration: {
61
+ audio: {
62
+ disabled: boolean;
63
+ };
64
+ video: {
65
+ disabled: boolean;
66
+ };
67
+ image: {
68
+ disabled: boolean;
69
+ };
70
+ };
71
+ };
72
+ spellCheck: {
73
+ label: string;
74
+ settings: boolean;
75
+ enabled: boolean;
76
+ };
77
+ choicesLayout: {
78
+ settings: boolean;
79
+ label: string;
80
+ };
81
+ gridColumns: {
82
+ label: string;
83
+ };
84
+ answerChoiceCount: number;
85
+ addChoiceButton: {
86
+ settings: boolean;
87
+ label: string;
88
+ };
89
+ choiceMode: {
90
+ settings: boolean;
91
+ label: string;
92
+ };
93
+ choicePrefix: {
94
+ settings: boolean;
95
+ label: string;
96
+ };
97
+ deleteChoice: {
98
+ settings: boolean;
99
+ };
100
+ feedback: {
101
+ settings: boolean;
102
+ label: string;
103
+ };
104
+ prompt: {
105
+ settings: boolean;
106
+ label: string;
107
+ inputConfiguration: {
108
+ audio: {
109
+ disabled: boolean;
110
+ };
111
+ video: {
112
+ disabled: boolean;
113
+ };
114
+ image: {
115
+ disabled: boolean;
116
+ };
117
+ };
118
+ required: boolean;
119
+ };
120
+ lockChoiceOrder: {
121
+ settings: boolean;
122
+ label: string;
123
+ };
124
+ partialScoring: {
125
+ settings: boolean;
126
+ label: string;
127
+ };
128
+ rationale: {
129
+ settings: boolean;
130
+ label: string;
131
+ inputConfiguration: {
132
+ audio: {
133
+ disabled: boolean;
134
+ };
135
+ video: {
136
+ disabled: boolean;
137
+ };
138
+ image: {
139
+ disabled: boolean;
140
+ };
141
+ };
142
+ required: boolean;
143
+ };
144
+ scoringType: {
145
+ settings: boolean;
146
+ label: string;
147
+ };
148
+ studentInstructions: {
149
+ settings: boolean;
150
+ label: string;
151
+ };
152
+ teacherInstructions: {
153
+ settings: boolean;
154
+ label: string;
155
+ inputConfiguration: {
156
+ audio: {
157
+ disabled: boolean;
158
+ };
159
+ video: {
160
+ disabled: boolean;
161
+ };
162
+ image: {
163
+ disabled: boolean;
164
+ };
165
+ };
166
+ required: boolean;
167
+ };
168
+ toolbarEditorPosition: {
169
+ settings: boolean;
170
+ label: string;
171
+ };
172
+ minAnswerChoices: number;
173
+ maxAnswerChoices: number;
174
+ maxImageWidth: {
175
+ teacherInstructions: number;
176
+ prompt: number;
177
+ rationale: number;
178
+ choices: number;
179
+ };
180
+ maxImageHeight: {
181
+ teacherInstructions: number;
182
+ prompt: number;
183
+ rationale: number;
184
+ choices: number;
185
+ };
186
+ withRubric: {
187
+ settings: boolean;
188
+ label: string;
189
+ };
190
+ mathMlOptions: {
191
+ mmlOutput: boolean;
192
+ mmlEditing: boolean;
193
+ };
194
+ language: {
195
+ settings: boolean;
196
+ label: string;
197
+ enabled: boolean;
198
+ };
199
+ languageChoices: {
200
+ label: string;
201
+ options: never[];
202
+ };
203
+ };
204
+ };
205
+ export default _default;
@@ -0,0 +1,151 @@
1
+ //#region src/author/defaults.ts
2
+ var e = {
3
+ model: {
4
+ choiceMode: "checkbox",
5
+ choicePrefix: "letters",
6
+ choices: [],
7
+ choicesLayout: "vertical",
8
+ feedbackEnabled: !1,
9
+ gridColumns: 2,
10
+ lockChoiceOrder: !0,
11
+ partialScoring: !0,
12
+ prompt: "",
13
+ promptEnabled: !0,
14
+ rationale: "",
15
+ rationaleEnabled: !0,
16
+ scoringType: "auto",
17
+ studentInstructionsEnabled: !0,
18
+ teacherInstructions: "",
19
+ teacherInstructionsEnabled: !0,
20
+ toolbarEditorPosition: "bottom",
21
+ selectedAnswerBackgroundColor: "initial",
22
+ keyboardEventsEnabled: !1
23
+ },
24
+ configuration: {
25
+ baseInputConfiguration: {
26
+ h3: { disabled: !0 },
27
+ audio: { disabled: !1 },
28
+ video: { disabled: !1 },
29
+ image: { disabled: !1 },
30
+ textAlign: { disabled: !0 },
31
+ showParagraphs: { disabled: !1 },
32
+ separateParagraphs: { disabled: !0 }
33
+ },
34
+ choices: { inputConfiguration: {
35
+ audio: { disabled: !1 },
36
+ video: { disabled: !1 },
37
+ image: { disabled: !1 }
38
+ } },
39
+ spellCheck: {
40
+ label: "Spellcheck",
41
+ settings: !1,
42
+ enabled: !0
43
+ },
44
+ choicesLayout: {
45
+ settings: !1,
46
+ label: "Choices Layout"
47
+ },
48
+ gridColumns: { label: "Grid columns" },
49
+ answerChoiceCount: 0,
50
+ addChoiceButton: {
51
+ settings: !0,
52
+ label: "Add a Choice"
53
+ },
54
+ choiceMode: {
55
+ settings: !0,
56
+ label: "Response Type"
57
+ },
58
+ choicePrefix: {
59
+ settings: !0,
60
+ label: "Choice Labels"
61
+ },
62
+ deleteChoice: { settings: !0 },
63
+ feedback: {
64
+ settings: !0,
65
+ label: "Feedback"
66
+ },
67
+ prompt: {
68
+ settings: !0,
69
+ label: "Prompt",
70
+ inputConfiguration: {
71
+ audio: { disabled: !1 },
72
+ video: { disabled: !1 },
73
+ image: { disabled: !1 }
74
+ },
75
+ required: !1
76
+ },
77
+ lockChoiceOrder: {
78
+ settings: !0,
79
+ label: "Lock Choice Order"
80
+ },
81
+ partialScoring: {
82
+ settings: !1,
83
+ label: "Allow Partial Scoring"
84
+ },
85
+ rationale: {
86
+ settings: !0,
87
+ label: "Rationale",
88
+ inputConfiguration: {
89
+ audio: { disabled: !0 },
90
+ video: { disabled: !0 },
91
+ image: { disabled: !1 }
92
+ },
93
+ required: !1
94
+ },
95
+ scoringType: {
96
+ settings: !1,
97
+ label: "Scoring Type"
98
+ },
99
+ studentInstructions: {
100
+ settings: !1,
101
+ label: "Student Instructions"
102
+ },
103
+ teacherInstructions: {
104
+ settings: !0,
105
+ label: "Teacher Instructions",
106
+ inputConfiguration: {
107
+ audio: { disabled: !1 },
108
+ video: { disabled: !1 },
109
+ image: { disabled: !1 }
110
+ },
111
+ required: !1
112
+ },
113
+ toolbarEditorPosition: {
114
+ settings: !1,
115
+ label: "Toolbar Editor Position"
116
+ },
117
+ minAnswerChoices: 2,
118
+ maxAnswerChoices: 5,
119
+ maxImageWidth: {
120
+ teacherInstructions: 300,
121
+ prompt: 300,
122
+ rationale: 636,
123
+ choices: 900
124
+ },
125
+ maxImageHeight: {
126
+ teacherInstructions: 300,
127
+ prompt: 300,
128
+ rationale: 300,
129
+ choices: 300
130
+ },
131
+ withRubric: {
132
+ settings: !1,
133
+ label: "Add Rubric"
134
+ },
135
+ mathMlOptions: {
136
+ mmlOutput: !1,
137
+ mmlEditing: !1
138
+ },
139
+ language: {
140
+ settings: !1,
141
+ label: "Specify Language",
142
+ enabled: !1
143
+ },
144
+ languageChoices: {
145
+ label: "Language Choices",
146
+ options: []
147
+ }
148
+ }
149
+ };
150
+ //#endregion
151
+ export { e as default };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/multiple-choice/configure/src/index.js
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ export default class MultipleChoice extends HTMLElement {
10
+ static createDefaultModel: (model?: {}) => any;
11
+ constructor();
12
+ set model(s: any);
13
+ set configuration(c: any);
14
+ set disableSidePanel(s: any);
15
+ dispatchModelUpdated(reset: any): void;
16
+ onModelChanged(m: any, reset: any): void;
17
+ onConfigurationChanged(c: any): void;
18
+ /** @param {done, progress, file} handler */
19
+ insertImage(handler: any): void;
20
+ onDeleteImage(src: any, done: any): void;
21
+ insertSound(handler: any): void;
22
+ onDeleteSound(src: any, done: any): void;
23
+ _render(): void;
24
+ connectedCallback(): void;
25
+ disconnectedCallback(): void;
26
+ }
@@ -0,0 +1,119 @@
1
+ import { Main as e } from "./main.js";
2
+ import t from "./defaults.js";
3
+ import n from "react";
4
+ import { createRoot as r } from "react-dom/client";
5
+ import { defaults as i } from "@pie-element/shared-lodash";
6
+ import a from "debug";
7
+ import { DeleteImageEvent as o, DeleteSoundEvent as s, InsertImageEvent as c, InsertSoundEvent as l, ModelUpdatedEvent as u } from "@pie-element/shared-configure-events";
8
+ import { choiceUtils as d } from "@pie-lib/config-ui";
9
+ //#region src/author/index.ts
10
+ var f = a("multiple-choice:configure"), p = (e, t = 0) => {
11
+ if (!e || e.length === 0) {
12
+ let e = [];
13
+ for (let n = 0; n < t; n++) e.push({
14
+ value: `${n}`,
15
+ label: "",
16
+ feedback: {
17
+ type: "none",
18
+ value: ""
19
+ }
20
+ });
21
+ return e;
22
+ }
23
+ return e;
24
+ }, m = (e, n) => {
25
+ let r = i(e, t.configuration);
26
+ return {
27
+ configuration: r,
28
+ model: {
29
+ ...n,
30
+ choices: p(n && n.choices || [], r && r.answerChoiceCount)
31
+ }
32
+ };
33
+ }, h = class i extends HTMLElement {
34
+ static createDefaultModel = (e = {}) => {
35
+ let n = d.normalizeChoices({
36
+ ...t.model,
37
+ ...e,
38
+ choices: p(e && e.choices || [])
39
+ });
40
+ return n.choicesLayout = e.choicesLayout || e.verticalMode === !1 && "horizontal" || t.model.choicesLayout, n;
41
+ };
42
+ constructor() {
43
+ super(), this._root = null, this._reactContainer = null, this._model = i.createDefaultModel(), this._configuration = t.configuration, this.onModelChanged = this.onModelChanged.bind(this), this.onConfigurationChanged = this.onConfigurationChanged.bind(this);
44
+ }
45
+ set model(e) {
46
+ this._model = i.createDefaultModel(e), this._render();
47
+ }
48
+ set configuration(e) {
49
+ let n = m(e, this._model);
50
+ this.onModelChanged(n.model);
51
+ let r = {
52
+ ...t.configuration,
53
+ ...n.configuration
54
+ };
55
+ this._configuration = r, r?.language?.enabled ? r?.languageChoices?.options?.length && (this._model.language = r?.languageChoices.options[0].value) : r.language.settings && this._model.language ? (this._configuration.language.enabled = !0, (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) && (this._configuration.languageChoices.options = []), this._configuration.languageChoices.options.find((e) => e.value === this._model.language) || this._configuration.languageChoices.options.push({
56
+ value: this._model.language,
57
+ label: this._model.language
58
+ })) : delete this._model.language, this._render();
59
+ }
60
+ set disableSidePanel(e) {
61
+ this._disableSidePanel = e, this._render();
62
+ }
63
+ dispatchModelUpdated(e) {
64
+ let t = !!e;
65
+ this.dispatchEvent(new u(this._model, t));
66
+ }
67
+ onModelChanged(e, t) {
68
+ this._model = {
69
+ ...this._model,
70
+ ...e
71
+ }, this._render(), this.dispatchModelUpdated(t);
72
+ }
73
+ onConfigurationChanged(e) {
74
+ this._configuration = m(e, this._model).configuration, this._model && this.onModelChanged(this._model), this._render();
75
+ }
76
+ insertImage(e) {
77
+ this.dispatchEvent(new c(e));
78
+ }
79
+ onDeleteImage(e, t) {
80
+ this.dispatchEvent(new o(e, t));
81
+ }
82
+ insertSound(e) {
83
+ this.dispatchEvent(new l(e));
84
+ }
85
+ onDeleteSound(e, t) {
86
+ this.dispatchEvent(new s(e, t));
87
+ }
88
+ _render() {
89
+ f("_render - Starting render"), f("_render - Model:", this._model ? "present" : "missing"), f("_render - Configuration:", this._configuration ? "present" : "missing"), f("_render - Root exists:", !!this._root);
90
+ try {
91
+ let t = n.createElement(e, {
92
+ model: this._model,
93
+ configuration: this._configuration,
94
+ onModelChanged: this.onModelChanged,
95
+ onConfigurationChanged: this.onConfigurationChanged,
96
+ disableSidePanel: this._disableSidePanel,
97
+ imageSupport: {
98
+ add: this.insertImage.bind(this),
99
+ delete: this.onDeleteImage.bind(this)
100
+ },
101
+ uploadSoundSupport: {
102
+ add: this.insertSound.bind(this),
103
+ delete: this.onDeleteSound.bind(this)
104
+ }
105
+ });
106
+ this._root || (f("_render - Creating React container"), this._reactContainer = document.createElement("div"), this._reactContainer.className = "pie-configure-wrapper", this.appendChild(this._reactContainer), f("_render - Creating new React root"), this._root = r(this._reactContainer), f("_render - React root created successfully")), f("_render - Calling root.render()"), this._root.render(t), f("_render - Render completed successfully");
107
+ } catch (e) {
108
+ throw console.error("❌ [multiple-choice-configure] Render error:", e), console.error("Error stack:", e.stack), e;
109
+ }
110
+ }
111
+ connectedCallback() {
112
+ f("connectedCallback - Component connected to DOM"), f("connectedCallback - Model:", this._model ? "present" : "missing"), f("connectedCallback - Configuration:", this._configuration ? "present" : "missing"), this._render();
113
+ }
114
+ disconnectedCallback() {
115
+ f("disconnectedCallback - Component disconnected from DOM"), this._root &&= (f("disconnectedCallback - Unmounting React root"), this._root.unmount(), null), this._reactContainer &&= null;
116
+ }
117
+ };
118
+ //#endregion
119
+ export { h as default };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/multiple-choice/configure/src/main.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare class Main extends React.Component {
12
+ static propTypes: {
13
+ model: PropTypes.Validator<object>;
14
+ configuration: PropTypes.Validator<object>;
15
+ disableSidePanel: PropTypes.Requireable<boolean>;
16
+ onModelChanged: PropTypes.Validator<(...args: any[]) => any>;
17
+ onConfigurationChanged: PropTypes.Validator<(...args: any[]) => any>;
18
+ imageSupport: PropTypes.Requireable<PropTypes.InferProps<{
19
+ add: PropTypes.Validator<(...args: any[]) => any>;
20
+ delete: PropTypes.Validator<(...args: any[]) => any>;
21
+ }>>;
22
+ };
23
+ state: {
24
+ showWarning: boolean;
25
+ };
26
+ onRemoveChoice: any;
27
+ onAddChoice: any;
28
+ onChoiceChanged: any;
29
+ onPromptChanged: any;
30
+ onTeacherInstructionsChanged: any;
31
+ onModelChanged: any;
32
+ render(): React.JSX.Element;
33
+ }
34
+ export default Main;