@hyperbook/markdown 0.41.0 → 0.42.1
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/dist/assets/directive-multievent/multievent.js +441 -2
- package/dist/assets/store.js +1 -0
- package/dist/helper.d.ts +1 -1
- package/dist/index.js +15 -11
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
|
@@ -33,6 +33,392 @@ var multievent = {
|
|
|
33
33
|
return MischObj;
|
|
34
34
|
},
|
|
35
35
|
orig: [],
|
|
36
|
+
saveState: async function (clNr) {
|
|
37
|
+
var SK = document.getElementsByClassName("multievent")[clNr];
|
|
38
|
+
if (!SK) return;
|
|
39
|
+
|
|
40
|
+
var state = {
|
|
41
|
+
vNr: multievent.vNr[clNr],
|
|
42
|
+
gesamtwertung: multievent.gesamtwertung[clNr],
|
|
43
|
+
gewertet: multievent.gewertet[clNr],
|
|
44
|
+
inputs: [],
|
|
45
|
+
buttons: [],
|
|
46
|
+
textareas: []
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Save input values and states
|
|
50
|
+
var inputs = SK.getElementsByTagName("input");
|
|
51
|
+
for (var i = 0; i < inputs.length; i++) {
|
|
52
|
+
state.inputs.push({
|
|
53
|
+
type: inputs[i].type,
|
|
54
|
+
value: inputs[i].value,
|
|
55
|
+
checked: inputs[i].checked,
|
|
56
|
+
disabled: inputs[i].disabled,
|
|
57
|
+
id: inputs[i].id,
|
|
58
|
+
name: inputs[i].getAttribute("name"),
|
|
59
|
+
dataAttributes: {
|
|
60
|
+
markiert: inputs[i].getAttribute("data-markiert"),
|
|
61
|
+
gemischt: inputs[i].getAttribute("data-gemischt"),
|
|
62
|
+
BuchstSind: inputs[i].getAttribute("data-BuchstSind"),
|
|
63
|
+
Nummer: inputs[i].getAttribute("data-Nummer"),
|
|
64
|
+
BegriffeSind: inputs[i].getAttribute("data-BegriffeSind"),
|
|
65
|
+
Fehler: inputs[i].getAttribute("data-Fehler")
|
|
66
|
+
},
|
|
67
|
+
style: {
|
|
68
|
+
backgroundColor: inputs[i].style.backgroundColor,
|
|
69
|
+
backgroundImage: inputs[i].style.backgroundImage,
|
|
70
|
+
backgroundSize: inputs[i].style.backgroundSize,
|
|
71
|
+
color: inputs[i].style.color
|
|
72
|
+
},
|
|
73
|
+
parentStyle: inputs[i].parentNode ? {
|
|
74
|
+
backgroundColor: inputs[i].parentNode.style.backgroundColor,
|
|
75
|
+
backgroundImage: inputs[i].parentNode.style.backgroundImage,
|
|
76
|
+
backgroundSize: inputs[i].parentNode.style.backgroundSize
|
|
77
|
+
} : null,
|
|
78
|
+
siblingHTML: {
|
|
79
|
+
prev: inputs[i].previousSibling ? inputs[i].previousSibling.innerHTML : null,
|
|
80
|
+
next: inputs[i].nextSibling ? inputs[i].nextSibling.innerHTML : null
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Save button states
|
|
86
|
+
var buttons = SK.getElementsByClassName("butAnAus");
|
|
87
|
+
for (var i = 0; i < buttons.length; i++) {
|
|
88
|
+
state.buttons.push({
|
|
89
|
+
id: buttons[i].id,
|
|
90
|
+
markiert: buttons[i].getAttribute("data-markiert"),
|
|
91
|
+
gewertet: buttons[i].getAttribute("data-gewertet"),
|
|
92
|
+
style: {
|
|
93
|
+
backgroundColor: buttons[i].style.backgroundColor,
|
|
94
|
+
backgroundImage: buttons[i].style.backgroundImage,
|
|
95
|
+
color: buttons[i].style.color,
|
|
96
|
+
border: buttons[i].style.border,
|
|
97
|
+
outline: buttons[i].style.outline,
|
|
98
|
+
outlineOffset: buttons[i].style.outlineOffset,
|
|
99
|
+
display: buttons[i].style.display
|
|
100
|
+
},
|
|
101
|
+
nextSiblingHTML: buttons[i].nextSibling ? buttons[i].nextSibling.innerHTML : null
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Save word search button states
|
|
106
|
+
var suchButtons = SK.getElementsByClassName("MuEvSuBut");
|
|
107
|
+
state.suchButtons = [];
|
|
108
|
+
for (var i = 0; i < suchButtons.length; i++) {
|
|
109
|
+
state.suchButtons.push({
|
|
110
|
+
id: suchButtons[i].id,
|
|
111
|
+
markiert: suchButtons[i].getAttribute("data-markiert"),
|
|
112
|
+
gewertet: suchButtons[i].getAttribute("data-gewertet"),
|
|
113
|
+
spielAus: suchButtons[i].getAttribute("data-spielAus"),
|
|
114
|
+
style: {
|
|
115
|
+
backgroundColor: suchButtons[i].style.backgroundColor,
|
|
116
|
+
fontWeight: suchButtons[i].style.fontWeight,
|
|
117
|
+
border: suchButtons[i].style.border,
|
|
118
|
+
outline: suchButtons[i].style.outline,
|
|
119
|
+
outlineOffset: suchButtons[i].style.outlineOffset,
|
|
120
|
+
borderRadius: suchButtons[i].style.borderRadius
|
|
121
|
+
},
|
|
122
|
+
parentStyle: suchButtons[i].parentNode ? {
|
|
123
|
+
backgroundColor: suchButtons[i].parentNode.style.backgroundColor
|
|
124
|
+
} : null
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Save HangMan (Hangman) display elements
|
|
129
|
+
var haManAusg = SK.getElementsByClassName("MulEvHaManAusg");
|
|
130
|
+
state.haManAusg = [];
|
|
131
|
+
for (var i = 0; i < haManAusg.length; i++) {
|
|
132
|
+
state.haManAusg.push({
|
|
133
|
+
id: haManAusg[i].id,
|
|
134
|
+
innerHTML: haManAusg[i].innerHTML
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
var haManFehl = SK.getElementsByClassName("MulEvHaManFehl");
|
|
139
|
+
state.haManFehl = [];
|
|
140
|
+
for (var i = 0; i < haManFehl.length; i++) {
|
|
141
|
+
state.haManFehl.push({
|
|
142
|
+
id: haManFehl[i].id,
|
|
143
|
+
innerHTML: haManFehl[i].innerHTML,
|
|
144
|
+
style: {
|
|
145
|
+
textDecoration: haManFehl[i].style.textDecoration
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Save evaluation button state
|
|
151
|
+
var evalButton = document.getElementById("MuEvAuswButB" + clNr);
|
|
152
|
+
if (evalButton) {
|
|
153
|
+
state.evalButton = {
|
|
154
|
+
borderStyle: evalButton.style.border,
|
|
155
|
+
borderRadius: evalButton.style.borderRadius
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
var versucheSpan = document.getElementById("MultieventVersuche" + clNr);
|
|
160
|
+
if (versucheSpan) {
|
|
161
|
+
state.versucheStyle = {
|
|
162
|
+
fontWeight: versucheSpan.style.fontWeight
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Save hint visibility
|
|
167
|
+
var hinweisRichtig = SK.getElementsByClassName("MultieventhinweisRichtig" + clNr);
|
|
168
|
+
state.hinweisRichtig = [];
|
|
169
|
+
for (var i = 0; i < hinweisRichtig.length; i++) {
|
|
170
|
+
state.hinweisRichtig.push({
|
|
171
|
+
display: hinweisRichtig[i].style.display
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
var hinweisFalsch = SK.getElementsByClassName("MultieventhinweisFalsch" + clNr);
|
|
176
|
+
state.hinweisFalsch = [];
|
|
177
|
+
for (var i = 0; i < hinweisFalsch.length; i++) {
|
|
178
|
+
state.hinweisFalsch.push({
|
|
179
|
+
display: hinweisFalsch[i].style.display
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Save textarea values
|
|
184
|
+
var textareas = SK.getElementsByTagName("textarea");
|
|
185
|
+
for (var i = 0; i < textareas.length; i++) {
|
|
186
|
+
state.textareas.push({
|
|
187
|
+
value: textareas[i].value
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Save select values
|
|
192
|
+
var selects = SK.getElementsByTagName("select");
|
|
193
|
+
state.selects = [];
|
|
194
|
+
for (var i = 0; i < selects.length; i++) {
|
|
195
|
+
state.selects.push({
|
|
196
|
+
selectedIndex: selects[i].selectedIndex,
|
|
197
|
+
disabled: selects[i].disabled,
|
|
198
|
+
style: {
|
|
199
|
+
backgroundColor: selects[i].style.backgroundColor,
|
|
200
|
+
backgroundImage: selects[i].style.backgroundImage,
|
|
201
|
+
backgroundSize: selects[i].style.backgroundSize,
|
|
202
|
+
color: selects[i].style.color
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
await store.multievent.put({
|
|
208
|
+
id: "multievent_" + clNr + "_" + window.location.pathname,
|
|
209
|
+
state: JSON.stringify(state)
|
|
210
|
+
});
|
|
211
|
+
},
|
|
212
|
+
loadState: async function (clNr) {
|
|
213
|
+
try {
|
|
214
|
+
var record = await store.multievent.get("multievent_" + clNr + "_" + window.location.pathname);
|
|
215
|
+
if (!record) return false;
|
|
216
|
+
|
|
217
|
+
var state = JSON.parse(record.state);
|
|
218
|
+
var SK = document.getElementsByClassName("multievent")[clNr];
|
|
219
|
+
if (!SK) return false;
|
|
220
|
+
|
|
221
|
+
// Restore version number and evaluation state
|
|
222
|
+
if (state.vNr !== undefined) multievent.vNr[clNr] = state.vNr;
|
|
223
|
+
if (state.gesamtwertung !== undefined) multievent.gesamtwertung[clNr] = state.gesamtwertung;
|
|
224
|
+
if (state.gewertet !== undefined) multievent.gewertet[clNr] = state.gewertet;
|
|
225
|
+
|
|
226
|
+
// Restore inputs
|
|
227
|
+
var inputs = SK.getElementsByTagName("input");
|
|
228
|
+
for (var i = 0; i < inputs.length && i < state.inputs.length; i++) {
|
|
229
|
+
if (state.inputs[i].type === inputs[i].type) {
|
|
230
|
+
inputs[i].value = state.inputs[i].value;
|
|
231
|
+
inputs[i].checked = state.inputs[i].checked;
|
|
232
|
+
inputs[i].disabled = state.inputs[i].disabled;
|
|
233
|
+
|
|
234
|
+
// Restore data attributes
|
|
235
|
+
if (state.inputs[i].dataAttributes) {
|
|
236
|
+
var attrs = state.inputs[i].dataAttributes;
|
|
237
|
+
if (attrs.markiert) inputs[i].setAttribute("data-markiert", attrs.markiert);
|
|
238
|
+
if (attrs.gemischt) inputs[i].setAttribute("data-gemischt", attrs.gemischt);
|
|
239
|
+
if (attrs.BuchstSind) inputs[i].setAttribute("data-BuchstSind", attrs.BuchstSind);
|
|
240
|
+
if (attrs.Nummer) inputs[i].setAttribute("data-Nummer", attrs.Nummer);
|
|
241
|
+
if (attrs.BegriffeSind) inputs[i].setAttribute("data-BegriffeSind", attrs.BegriffeSind);
|
|
242
|
+
if (attrs.Fehler) inputs[i].setAttribute("data-Fehler", attrs.Fehler);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// Restore input styles
|
|
246
|
+
if (state.inputs[i].style) {
|
|
247
|
+
if (state.inputs[i].style.backgroundColor) inputs[i].style.backgroundColor = state.inputs[i].style.backgroundColor;
|
|
248
|
+
if (state.inputs[i].style.backgroundImage) inputs[i].style.backgroundImage = state.inputs[i].style.backgroundImage;
|
|
249
|
+
if (state.inputs[i].style.backgroundSize) inputs[i].style.backgroundSize = state.inputs[i].style.backgroundSize;
|
|
250
|
+
if (state.inputs[i].style.color) inputs[i].style.color = state.inputs[i].style.color;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// Restore parent node styles (for radio/checkbox groups)
|
|
254
|
+
if (state.inputs[i].parentStyle && inputs[i].parentNode) {
|
|
255
|
+
if (state.inputs[i].parentStyle.backgroundColor)
|
|
256
|
+
inputs[i].parentNode.style.backgroundColor = state.inputs[i].parentStyle.backgroundColor;
|
|
257
|
+
if (state.inputs[i].parentStyle.backgroundImage)
|
|
258
|
+
inputs[i].parentNode.style.backgroundImage = state.inputs[i].parentStyle.backgroundImage;
|
|
259
|
+
if (state.inputs[i].parentStyle.backgroundSize)
|
|
260
|
+
inputs[i].parentNode.style.backgroundSize = state.inputs[i].parentStyle.backgroundSize;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Restore sibling HTML (for error indicators)
|
|
264
|
+
if (state.inputs[i].siblingHTML) {
|
|
265
|
+
if (state.inputs[i].siblingHTML.prev !== null && inputs[i].previousSibling) {
|
|
266
|
+
inputs[i].previousSibling.innerHTML = state.inputs[i].siblingHTML.prev;
|
|
267
|
+
}
|
|
268
|
+
if (state.inputs[i].siblingHTML.next !== null && inputs[i].nextSibling) {
|
|
269
|
+
inputs[i].nextSibling.innerHTML = state.inputs[i].siblingHTML.next;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Restore buttons
|
|
276
|
+
var buttons = SK.getElementsByClassName("butAnAus");
|
|
277
|
+
for (var i = 0; i < buttons.length && i < state.buttons.length; i++) {
|
|
278
|
+
if (state.buttons[i].id === buttons[i].id) {
|
|
279
|
+
buttons[i].setAttribute("data-markiert", state.buttons[i].markiert);
|
|
280
|
+
buttons[i].setAttribute("data-gewertet", state.buttons[i].gewertet);
|
|
281
|
+
|
|
282
|
+
// Restore button styles
|
|
283
|
+
if (state.buttons[i].style) {
|
|
284
|
+
if (state.buttons[i].style.backgroundColor) buttons[i].style.backgroundColor = state.buttons[i].style.backgroundColor;
|
|
285
|
+
if (state.buttons[i].style.backgroundImage) buttons[i].style.backgroundImage = state.buttons[i].style.backgroundImage;
|
|
286
|
+
if (state.buttons[i].style.color) buttons[i].style.color = state.buttons[i].style.color;
|
|
287
|
+
if (state.buttons[i].style.border) buttons[i].style.border = state.buttons[i].style.border;
|
|
288
|
+
if (state.buttons[i].style.outline) buttons[i].style.outline = state.buttons[i].style.outline;
|
|
289
|
+
if (state.buttons[i].style.outlineOffset) buttons[i].style.outlineOffset = state.buttons[i].style.outlineOffset;
|
|
290
|
+
if (state.buttons[i].style.display) buttons[i].style.display = state.buttons[i].style.display;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Restore next sibling HTML
|
|
294
|
+
if (state.buttons[i].nextSiblingHTML !== null && buttons[i].nextSibling) {
|
|
295
|
+
buttons[i].nextSibling.innerHTML = state.buttons[i].nextSiblingHTML;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// Restore textareas
|
|
301
|
+
var textareas = SK.getElementsByTagName("textarea");
|
|
302
|
+
for (var i = 0; i < textareas.length && i < state.textareas.length; i++) {
|
|
303
|
+
textareas[i].value = state.textareas[i].value;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// Restore selects
|
|
307
|
+
var selects = SK.getElementsByTagName("select");
|
|
308
|
+
if (state.selects) {
|
|
309
|
+
for (var i = 0; i < selects.length && i < state.selects.length; i++) {
|
|
310
|
+
selects[i].selectedIndex = state.selects[i].selectedIndex;
|
|
311
|
+
selects[i].disabled = state.selects[i].disabled;
|
|
312
|
+
|
|
313
|
+
// Restore select styles
|
|
314
|
+
if (state.selects[i].style) {
|
|
315
|
+
if (state.selects[i].style.backgroundColor) selects[i].style.backgroundColor = state.selects[i].style.backgroundColor;
|
|
316
|
+
if (state.selects[i].style.backgroundImage) selects[i].style.backgroundImage = state.selects[i].style.backgroundImage;
|
|
317
|
+
if (state.selects[i].style.backgroundSize) selects[i].style.backgroundSize = state.selects[i].style.backgroundSize;
|
|
318
|
+
if (state.selects[i].style.color) selects[i].style.color = state.selects[i].style.color;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// Restore word search buttons
|
|
324
|
+
if (state.suchButtons) {
|
|
325
|
+
var suchButtons = SK.getElementsByClassName("MuEvSuBut");
|
|
326
|
+
for (var i = 0; i < suchButtons.length && i < state.suchButtons.length; i++) {
|
|
327
|
+
if (state.suchButtons[i].id === suchButtons[i].id) {
|
|
328
|
+
suchButtons[i].setAttribute("data-markiert", state.suchButtons[i].markiert);
|
|
329
|
+
suchButtons[i].setAttribute("data-gewertet", state.suchButtons[i].gewertet);
|
|
330
|
+
suchButtons[i].setAttribute("data-spielAus", state.suchButtons[i].spielAus);
|
|
331
|
+
|
|
332
|
+
// Restore word search button styles
|
|
333
|
+
if (state.suchButtons[i].style) {
|
|
334
|
+
if (state.suchButtons[i].style.backgroundColor) suchButtons[i].style.backgroundColor = state.suchButtons[i].style.backgroundColor;
|
|
335
|
+
if (state.suchButtons[i].style.fontWeight) suchButtons[i].style.fontWeight = state.suchButtons[i].style.fontWeight;
|
|
336
|
+
if (state.suchButtons[i].style.border) suchButtons[i].style.border = state.suchButtons[i].style.border;
|
|
337
|
+
if (state.suchButtons[i].style.outline) suchButtons[i].style.outline = state.suchButtons[i].style.outline;
|
|
338
|
+
if (state.suchButtons[i].style.outlineOffset) suchButtons[i].style.outlineOffset = state.suchButtons[i].style.outlineOffset;
|
|
339
|
+
if (state.suchButtons[i].style.borderRadius) suchButtons[i].style.borderRadius = state.suchButtons[i].style.borderRadius;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// Restore parent styles
|
|
343
|
+
if (state.suchButtons[i].parentStyle && suchButtons[i].parentNode) {
|
|
344
|
+
if (state.suchButtons[i].parentStyle.backgroundColor)
|
|
345
|
+
suchButtons[i].parentNode.style.backgroundColor = state.suchButtons[i].parentStyle.backgroundColor;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// Restore HangMan display elements
|
|
352
|
+
if (state.haManAusg) {
|
|
353
|
+
var haManAusg = SK.getElementsByClassName("MulEvHaManAusg");
|
|
354
|
+
for (var i = 0; i < haManAusg.length && i < state.haManAusg.length; i++) {
|
|
355
|
+
if (state.haManAusg[i].id === haManAusg[i].id) {
|
|
356
|
+
haManAusg[i].innerHTML = state.haManAusg[i].innerHTML;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
if (state.haManFehl) {
|
|
362
|
+
var haManFehl = SK.getElementsByClassName("MulEvHaManFehl");
|
|
363
|
+
for (var i = 0; i < haManFehl.length && i < state.haManFehl.length; i++) {
|
|
364
|
+
if (state.haManFehl[i].id === haManFehl[i].id) {
|
|
365
|
+
haManFehl[i].innerHTML = state.haManFehl[i].innerHTML;
|
|
366
|
+
if (state.haManFehl[i].style && state.haManFehl[i].style.textDecoration) {
|
|
367
|
+
haManFehl[i].style.textDecoration = state.haManFehl[i].style.textDecoration;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// Restore evaluation button state
|
|
374
|
+
if (state.evalButton) {
|
|
375
|
+
var evalButton = document.getElementById("MuEvAuswButB" + clNr);
|
|
376
|
+
if (evalButton) {
|
|
377
|
+
if (state.evalButton.borderStyle) evalButton.style.border = state.evalButton.borderStyle;
|
|
378
|
+
if (state.evalButton.borderRadius) evalButton.style.borderRadius = state.evalButton.borderRadius;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
if (state.versucheStyle) {
|
|
383
|
+
var versucheSpan = document.getElementById("MultieventVersuche" + clNr);
|
|
384
|
+
if (versucheSpan && state.versucheStyle.fontWeight) {
|
|
385
|
+
versucheSpan.style.fontWeight = state.versucheStyle.fontWeight;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
// Restore hint visibility
|
|
390
|
+
if (state.hinweisRichtig) {
|
|
391
|
+
var hinweisRichtig = SK.getElementsByClassName("MultieventhinweisRichtig" + clNr);
|
|
392
|
+
for (var i = 0; i < hinweisRichtig.length && i < state.hinweisRichtig.length; i++) {
|
|
393
|
+
if (state.hinweisRichtig[i].display) {
|
|
394
|
+
hinweisRichtig[i].style.display = state.hinweisRichtig[i].display;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
if (state.hinweisFalsch) {
|
|
400
|
+
var hinweisFalsch = SK.getElementsByClassName("MultieventhinweisFalsch" + clNr);
|
|
401
|
+
for (var i = 0; i < hinweisFalsch.length && i < state.hinweisFalsch.length; i++) {
|
|
402
|
+
if (state.hinweisFalsch[i].display) {
|
|
403
|
+
hinweisFalsch[i].style.display = state.hinweisFalsch[i].display;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// Update attempt counter display
|
|
409
|
+
if (state.gesamtwertung !== undefined && state.gesamtwertung > 0) {
|
|
410
|
+
var versucheEl = document.getElementById("MultieventVersuche" + clNr);
|
|
411
|
+
if (versucheEl) {
|
|
412
|
+
versucheEl.innerHTML = state.gesamtwertung;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
return true;
|
|
417
|
+
} catch (e) {
|
|
418
|
+
console.error("Error loading multievent state:", e);
|
|
419
|
+
return false;
|
|
420
|
+
}
|
|
421
|
+
},
|
|
36
422
|
butAnAus: function (butID) {
|
|
37
423
|
var but = document.getElementById(butID);
|
|
38
424
|
var markiert = but.getAttribute("data-markiert");
|
|
@@ -47,6 +433,13 @@ var multievent = {
|
|
|
47
433
|
but.style.outline = "none";
|
|
48
434
|
but.setAttribute("data-markiert", "0");
|
|
49
435
|
}
|
|
436
|
+
|
|
437
|
+
// Save state after button toggle
|
|
438
|
+
var clIndex = but.closest(".multievent");
|
|
439
|
+
if (clIndex) {
|
|
440
|
+
var index = Array.from(document.getElementsByClassName("multievent")).indexOf(clIndex);
|
|
441
|
+
multievent.saveState(index);
|
|
442
|
+
}
|
|
50
443
|
}
|
|
51
444
|
},
|
|
52
445
|
vNr: [],
|
|
@@ -64,10 +457,12 @@ var multievent = {
|
|
|
64
457
|
multievent.orig[i] = SK[i].innerHTML;
|
|
65
458
|
var VersNr = multievent.zZahl(-1, 9);
|
|
66
459
|
multievent.vNr[i] = parseInt(VersNr);
|
|
67
|
-
multievent.los(i)
|
|
460
|
+
multievent.los(i).then(function(index) {
|
|
461
|
+
return multievent.loadState(index);
|
|
462
|
+
}.bind(null, i));
|
|
68
463
|
}
|
|
69
464
|
},
|
|
70
|
-
los: function (clNr) {
|
|
465
|
+
los: async function (clNr) {
|
|
71
466
|
multievent.gesamtwertung[clNr] = 0;
|
|
72
467
|
var SK = document.getElementsByClassName("multievent"); /*Suchklasse*/
|
|
73
468
|
multievent.vNr[clNr]++;
|
|
@@ -569,6 +964,40 @@ var multievent = {
|
|
|
569
964
|
}
|
|
570
965
|
|
|
571
966
|
SK[clNr].style.display = "block";
|
|
967
|
+
|
|
968
|
+
// Add event listeners to save state on changes
|
|
969
|
+
var allInputs = SK[clNr].getElementsByTagName("input");
|
|
970
|
+
for (var j = 0; j < allInputs.length; j++) {
|
|
971
|
+
allInputs[j].addEventListener("change", function() {
|
|
972
|
+
var clIndex = this.closest(".multievent");
|
|
973
|
+
if (clIndex) {
|
|
974
|
+
var index = Array.from(document.getElementsByClassName("multievent")).indexOf(clIndex);
|
|
975
|
+
multievent.saveState(index);
|
|
976
|
+
}
|
|
977
|
+
});
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
var allTextareas = SK[clNr].getElementsByTagName("textarea");
|
|
981
|
+
for (var j = 0; j < allTextareas.length; j++) {
|
|
982
|
+
allTextareas[j].addEventListener("input", function() {
|
|
983
|
+
var clIndex = this.closest(".multievent");
|
|
984
|
+
if (clIndex) {
|
|
985
|
+
var index = Array.from(document.getElementsByClassName("multievent")).indexOf(clIndex);
|
|
986
|
+
multievent.saveState(index);
|
|
987
|
+
}
|
|
988
|
+
});
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
var allSelects = SK[clNr].getElementsByTagName("select");
|
|
992
|
+
for (var j = 0; j < allSelects.length; j++) {
|
|
993
|
+
allSelects[j].addEventListener("change", function() {
|
|
994
|
+
var clIndex = this.closest(".multievent");
|
|
995
|
+
if (clIndex) {
|
|
996
|
+
var index = Array.from(document.getElementsByClassName("multievent")).indexOf(clIndex);
|
|
997
|
+
multievent.saveState(index);
|
|
998
|
+
}
|
|
999
|
+
});
|
|
1000
|
+
}
|
|
572
1001
|
},
|
|
573
1002
|
inpGemEing: function (WertIst, GemID) {
|
|
574
1003
|
var vIst = WertIst.replace(/\s/g, "");
|
|
@@ -1046,6 +1475,9 @@ var multievent = {
|
|
|
1046
1475
|
"<div style='font-size:large;'>" + GesWert + "</div>";
|
|
1047
1476
|
multievent.ErgAn();
|
|
1048
1477
|
}
|
|
1478
|
+
|
|
1479
|
+
// Save state after evaluation
|
|
1480
|
+
multievent.saveState(classNr);
|
|
1049
1481
|
},
|
|
1050
1482
|
ErgAus: function () {
|
|
1051
1483
|
document.getElementById("MultieventErgebnisse").style.display = "none";
|
|
@@ -1100,6 +1532,13 @@ var multievent = {
|
|
|
1100
1532
|
}
|
|
1101
1533
|
}
|
|
1102
1534
|
document.getElementById(SuID).setAttribute("data-move", "0");
|
|
1535
|
+
|
|
1536
|
+
// Save state after marking word search letters
|
|
1537
|
+
var clIndex = document.getElementById(SuID).closest(".multievent");
|
|
1538
|
+
if (clIndex) {
|
|
1539
|
+
var index = Array.from(document.getElementsByClassName("multievent")).indexOf(clIndex);
|
|
1540
|
+
multievent.saveState(index);
|
|
1541
|
+
}
|
|
1103
1542
|
}
|
|
1104
1543
|
},
|
|
1105
1544
|
tastensprung: function (Kennung, Wert) {
|
package/dist/assets/store.js
CHANGED
package/dist/helper.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { HyperbookContext } from "@hyperbook/types";
|
|
2
|
-
export declare const readFile: (src: string, ctx: HyperbookContext) => string;
|
|
2
|
+
export declare const readFile: (src: string, ctx: HyperbookContext) => string | null;
|
package/dist/index.js
CHANGED
|
@@ -70960,15 +70960,19 @@ var readFile = (src, ctx) => {
|
|
|
70960
70960
|
try {
|
|
70961
70961
|
srcFile = fs2.readFileSync(path4.join(ctx.root, "book", src), "utf-8");
|
|
70962
70962
|
} catch (e2) {
|
|
70963
|
-
|
|
70964
|
-
|
|
70965
|
-
|
|
70966
|
-
|
|
70967
|
-
|
|
70968
|
-
|
|
70969
|
-
|
|
70970
|
-
|
|
70971
|
-
|
|
70963
|
+
try {
|
|
70964
|
+
srcFile = fs2.readFileSync(
|
|
70965
|
+
path4.join(
|
|
70966
|
+
ctx.root,
|
|
70967
|
+
"book",
|
|
70968
|
+
ctx.navigation.current?.path?.directory || "",
|
|
70969
|
+
src
|
|
70970
|
+
),
|
|
70971
|
+
"utf-8"
|
|
70972
|
+
);
|
|
70973
|
+
} catch (e3) {
|
|
70974
|
+
return null;
|
|
70975
|
+
}
|
|
70972
70976
|
}
|
|
70973
70977
|
}
|
|
70974
70978
|
return srcFile;
|
|
@@ -71033,7 +71037,7 @@ ${(code4.scripts ? [cdnLibraryUrl, ...code4.scripts] : []).map((src) => `<script
|
|
|
71033
71037
|
requestJS(file, ["code-input", "indent.min.js"]);
|
|
71034
71038
|
let srcFile = "";
|
|
71035
71039
|
if (src) {
|
|
71036
|
-
srcFile = readFile(src, ctx);
|
|
71040
|
+
srcFile = readFile(src, ctx) || "";
|
|
71037
71041
|
} else if (node3.children?.length > 0) {
|
|
71038
71042
|
srcFile = toText2(node3.children);
|
|
71039
71043
|
}
|
|
@@ -71433,7 +71437,7 @@ var remarkDirectivePyide_default = (ctx) => () => {
|
|
|
71433
71437
|
let tests = [];
|
|
71434
71438
|
let input = "";
|
|
71435
71439
|
if (src) {
|
|
71436
|
-
srcFile = readFile(src, ctx);
|
|
71440
|
+
srcFile = readFile(src, ctx) || "";
|
|
71437
71441
|
} else if (node3.children?.length > 0) {
|
|
71438
71442
|
tests = node3.children.filter((c) => c.type === "code").filter((c) => c.meta?.includes("test")).map((c, i) => ({
|
|
71439
71443
|
code: c.value,
|