@pie-element/multiple-choice 13.2.2-next.5 → 13.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +1972 -0
- package/CHANGELOG.md +2738 -0
- package/LICENSE.md +5 -0
- package/PRINT.md +35 -0
- package/README.md +56 -0
- package/choice.png +0 -0
- package/configure/CHANGELOG.json +1387 -0
- package/configure/CHANGELOG.md +2080 -0
- package/configure/lib/defaults.js +203 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/index.js +202 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/main.js +484 -0
- package/configure/lib/main.js.map +1 -0
- package/configure/lib/utils.js +18 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +22 -0
- package/controller/CHANGELOG.json +527 -0
- package/controller/CHANGELOG.md +1405 -0
- package/controller/lib/defaults.js +33 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +288 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/utils.js +15 -0
- package/controller/lib/utils.js.map +1 -0
- package/controller/package.json +15 -0
- package/docs/config-schema.json +2993 -0
- package/docs/config-schema.json.md +2217 -0
- package/docs/demo/config.js +8 -0
- package/docs/demo/generate.js +61 -0
- package/docs/demo/index.html +1 -0
- package/docs/demo/session.js +7 -0
- package/docs/pie-schema.json +1332 -0
- package/docs/pie-schema.json.md +1015 -0
- package/lib/choice-input.js +383 -0
- package/lib/choice-input.js.map +1 -0
- package/lib/choice.js +192 -0
- package/lib/choice.js.map +1 -0
- package/lib/feedback-tick.js +134 -0
- package/lib/feedback-tick.js.map +1 -0
- package/lib/index.js +402 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +63 -0
- package/lib/main.js.map +1 -0
- package/lib/multiple-choice.js +397 -0
- package/lib/multiple-choice.js.map +1 -0
- package/lib/print.js +94 -0
- package/lib/print.js.map +1 -0
- package/lib/session-updater.js +37 -0
- package/lib/session-updater.js.map +1 -0
- package/module/configure.js +1 -0
- package/module/controller.js +3045 -0
- package/module/demo.js +86 -0
- package/module/element.js +1 -0
- package/module/index.html +21 -0
- package/module/manifest.json +14 -0
- package/module/print-demo.js +124 -0
- package/module/print.html +18 -0
- package/module/print.js +1 -0
- package/package.json +29 -89
- package/configure.js +0 -2
- package/controller.js +0 -1
- package/dist/author/defaults.d.ts +0 -205
- package/dist/author/defaults.js +0 -151
- package/dist/author/index.d.ts +0 -26
- package/dist/author/index.js +0 -119
- package/dist/author/main.d.ts +0 -34
- package/dist/author/main.js +0 -287
- package/dist/author/utils.d.ts +0 -9
- package/dist/author/utils.js +0 -7
- package/dist/browser/Radio-DZ5Wx5Zu.js +0 -9579
- package/dist/browser/Radio-DZ5Wx5Zu.js.map +0 -1
- package/dist/browser/author/index.js +0 -45648
- package/dist/browser/author/index.js.map +0 -1
- package/dist/browser/controller/index.js +0 -199
- package/dist/browser/controller/index.js.map +0 -1
- package/dist/browser/delivery/index.js +0 -251
- package/dist/browser/delivery/index.js.map +0 -1
- package/dist/browser/dist-BcIm7NXG.js +0 -111
- package/dist/browser/dist-BcIm7NXG.js.map +0 -1
- package/dist/browser/main-BE0cajBs.js +0 -2440
- package/dist/browser/main-BE0cajBs.js.map +0 -1
- package/dist/browser/multiple-choice.css +0 -2
- package/dist/browser/print/index.js +0 -43
- package/dist/browser/print/index.js.map +0 -1
- package/dist/controller/defaults.d.ts +0 -35
- package/dist/controller/defaults.js +0 -29
- package/dist/controller/index.d.ts +0 -65
- package/dist/controller/index.js +0 -124
- package/dist/controller/utils.d.ts +0 -10
- package/dist/controller/utils.js +0 -8
- package/dist/delivery/choice-input.d.ts +0 -44
- package/dist/delivery/choice-input.js +0 -272
- package/dist/delivery/choice.d.ts +0 -20
- package/dist/delivery/choice.js +0 -105
- package/dist/delivery/feedback-tick.d.ts +0 -20
- package/dist/delivery/feedback-tick.js +0 -104
- package/dist/delivery/index.d.ts +0 -37
- package/dist/delivery/index.js +0 -214
- package/dist/delivery/main.d.ts +0 -31
- package/dist/delivery/main.js +0 -51
- package/dist/delivery/multiple-choice.d.ts +0 -61
- package/dist/delivery/multiple-choice.js +0 -244
- package/dist/delivery/session-updater.d.ts +0 -10
- package/dist/delivery/session-updater.js +0 -9
- package/dist/index.d.ts +0 -1
- package/dist/index.iife.d.ts +0 -8
- package/dist/index.iife.js +0 -148
- package/dist/index.js +0 -2
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +0 -16
- package/dist/print/index.d.ts +0 -15
- package/dist/print/index.js +0 -43
- package/dist/runtime-support.d.ts +0 -12
- package/dist/runtime-support.js +0 -12
|
@@ -1,205 +0,0 @@
|
|
|
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;
|
package/dist/author/defaults.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
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 };
|
package/dist/author/index.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
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
|
-
}
|
package/dist/author/index.js
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import 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");
|
|
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 };
|
package/dist/author/main.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
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;
|