@citolab/qti-components 8.0.1 → 8.1.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/cdn/index.global.js +1 -1
- package/cdn/index.js +648 -816
- package/dist/base.d.ts +61 -4
- package/dist/base.js +7 -1
- package/dist/{chunk-V5G7X53Y.js → chunk-3IACYIU2.js} +2 -2
- package/dist/chunk-4DB4SC5K.js +100 -0
- package/dist/chunk-4DB4SC5K.js.map +1 -0
- package/dist/{chunk-F4BNJWYN.js → chunk-4XR2JHCP.js} +646 -677
- package/dist/chunk-4XR2JHCP.js.map +1 -0
- package/dist/{chunk-7V4HJFHW.js → chunk-6ITD55QE.js} +2 -2
- package/dist/{chunk-3AJOQCDU.js → chunk-6V3A7NQP.js} +2 -2
- package/dist/{chunk-WVVMNF74.js → chunk-6XJUP55A.js} +248 -234
- package/dist/chunk-6XJUP55A.js.map +1 -0
- package/dist/{chunk-XU7HNT4F.js → chunk-CF3DXJWM.js} +145 -119
- package/dist/{chunk-XU7HNT4F.js.map → chunk-CF3DXJWM.js.map} +1 -1
- package/dist/chunk-EKXZI26R.js +917 -0
- package/dist/chunk-EKXZI26R.js.map +1 -0
- package/dist/{chunk-IJD53WY6.js → chunk-HDEG6BAZ.js} +15 -15
- package/dist/{chunk-IJD53WY6.js.map → chunk-HDEG6BAZ.js.map} +1 -1
- package/dist/{chunk-LVBIQDPM.js → chunk-IXPDMYKH.js} +147 -101
- package/dist/chunk-IXPDMYKH.js.map +1 -0
- package/dist/chunk-IYC7LZV6.js +7 -0
- package/dist/chunk-IYC7LZV6.js.map +1 -0
- package/dist/{chunk-NA2N2WSG.js → chunk-MK2I3MQB.js} +244 -193
- package/dist/chunk-MK2I3MQB.js.map +1 -0
- package/dist/{chunk-CAO4JRLY.js → chunk-NZLW6EX7.js} +2 -2
- package/dist/{chunk-RXGDQDOV.js → chunk-Q52IJELT.js} +479 -393
- package/dist/chunk-Q52IJELT.js.map +1 -0
- package/dist/{chunk-QECOPVPO.js → chunk-TXIB3SKC.js} +60 -59
- package/dist/chunk-TXIB3SKC.js.map +1 -0
- package/dist/{computed.types.d-rKLSPvVG.d.ts → computed.types.d-DpKIYO6e.d.ts} +2 -0
- package/dist/corrections.d.ts +12 -29
- package/dist/corrections.js +9 -10
- package/dist/elements.d.ts +86 -87
- package/dist/elements.js +5 -6
- package/dist/index.d.ts +8 -39
- package/dist/index.js +29 -16
- package/dist/{interaction.d-D4MstYRz.d.ts → interaction.d-CJiMv8H7.d.ts} +13 -2
- package/dist/interactions.d.ts +11 -1299
- package/dist/interactions.js +4 -5
- package/dist/item.css +370 -532
- package/dist/item.d.ts +3 -3
- package/dist/item.js +6 -6
- package/dist/loader.js +2 -2
- package/dist/processing.d.ts +61 -11
- package/dist/processing.js +10 -2
- package/dist/qti-components-jsx.d.ts +293 -69
- package/dist/qti-test.d-_YAlhDbt.d.ts +702 -0
- package/dist/qti-text-entry-interaction.d-BGdfV9qG.d.ts +1567 -0
- package/dist/test.d.ts +11 -678
- package/dist/test.js +7 -8
- package/dist/transformers.d.ts +1 -1
- package/dist/transformers.js +1 -1
- package/package.json +11 -10
- package/dist/chunk-64XSIBGO.js +0 -241
- package/dist/chunk-64XSIBGO.js.map +0 -1
- package/dist/chunk-7HC5SMCU.js +0 -102
- package/dist/chunk-7HC5SMCU.js.map +0 -1
- package/dist/chunk-F4BNJWYN.js.map +0 -1
- package/dist/chunk-H3J7LFRO.js +0 -2243
- package/dist/chunk-H3J7LFRO.js.map +0 -1
- package/dist/chunk-LVBIQDPM.js.map +0 -1
- package/dist/chunk-NA2N2WSG.js.map +0 -1
- package/dist/chunk-QECOPVPO.js.map +0 -1
- package/dist/chunk-RXGDQDOV.js.map +0 -1
- package/dist/chunk-WVVMNF74.js.map +0 -1
- package/dist/chunk-X3E5HXG2.js +0 -20
- package/dist/chunk-X3E5HXG2.js.map +0 -1
- /package/dist/{chunk-V5G7X53Y.js.map → chunk-3IACYIU2.js.map} +0 -0
- /package/dist/{chunk-7V4HJFHW.js.map → chunk-6ITD55QE.js.map} +0 -0
- /package/dist/{chunk-3AJOQCDU.js.map → chunk-6V3A7NQP.js.map} +0 -0
- /package/dist/{chunk-CAO4JRLY.js.map → chunk-NZLW6EX7.js.map} +0 -0
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
QtiTest,
|
|
3
3
|
TestCheckItem,
|
|
4
4
|
TestNavigation
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-Q52IJELT.js";
|
|
6
6
|
import {
|
|
7
7
|
QtiAssessmentItem
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-6XJUP55A.js";
|
|
9
9
|
import {
|
|
10
10
|
QtiAssociateInteraction,
|
|
11
11
|
QtiChoiceInteraction,
|
|
@@ -27,38 +27,29 @@ import {
|
|
|
27
27
|
QtiSimpleAssociableChoice,
|
|
28
28
|
QtiSimpleChoice,
|
|
29
29
|
QtiSliderInteraction,
|
|
30
|
-
QtiTextEntryInteraction
|
|
31
|
-
|
|
32
|
-
o
|
|
33
|
-
} from "./chunk-F4BNJWYN.js";
|
|
30
|
+
QtiTextEntryInteraction
|
|
31
|
+
} from "./chunk-4XR2JHCP.js";
|
|
34
32
|
import {
|
|
35
33
|
QtiItem
|
|
36
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-TXIB3SKC.js";
|
|
37
35
|
import {
|
|
38
36
|
watch
|
|
39
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-4DB4SC5K.js";
|
|
40
38
|
import {
|
|
41
|
-
A,
|
|
42
39
|
ScoringHelper,
|
|
43
|
-
T,
|
|
44
|
-
b,
|
|
45
|
-
c,
|
|
46
40
|
computedContext,
|
|
47
41
|
computedItemContext,
|
|
48
42
|
configContext,
|
|
49
|
-
i,
|
|
50
|
-
i2,
|
|
51
|
-
n2 as n,
|
|
52
|
-
r,
|
|
53
43
|
responseAttributeConverter
|
|
54
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-EKXZI26R.js";
|
|
55
45
|
|
|
56
46
|
// ../qti-corrections/dist/mixins/correct-response.mixin.js
|
|
47
|
+
import { property, state } from "lit/decorators.js";
|
|
57
48
|
var __decorate = function(decorators, target, key, desc) {
|
|
58
|
-
var
|
|
59
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
60
|
-
else for (var
|
|
61
|
-
return
|
|
49
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
50
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
51
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
52
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
62
53
|
};
|
|
63
54
|
var Correctness;
|
|
64
55
|
(function(Correctness2) {
|
|
@@ -141,11 +132,11 @@ var CorrectResponseMixin = (superClass) => {
|
|
|
141
132
|
}
|
|
142
133
|
const correctArr = Array.isArray(correctResponse) ? correctResponse : [correctResponse];
|
|
143
134
|
const responseArr = Array.isArray(currentResponse) ? currentResponse : [currentResponse];
|
|
144
|
-
const filteredResponseArr = responseArr.filter((
|
|
135
|
+
const filteredResponseArr = responseArr.filter((r) => r !== "");
|
|
145
136
|
if (filteredResponseArr.length === 0)
|
|
146
137
|
return null;
|
|
147
|
-
const correctCount = filteredResponseArr.filter((
|
|
148
|
-
const incorrectCount = filteredResponseArr.filter((
|
|
138
|
+
const correctCount = filteredResponseArr.filter((r) => correctArr.includes(r)).length;
|
|
139
|
+
const incorrectCount = filteredResponseArr.filter((r) => !correctArr.includes(r)).length;
|
|
149
140
|
if (correctCount === correctArr.length && incorrectCount === 0 && filteredResponseArr.length === correctArr.length) {
|
|
150
141
|
return Correctness.Correct;
|
|
151
142
|
}
|
|
@@ -244,41 +235,42 @@ var CorrectResponseMixin = (superClass) => {
|
|
|
244
235
|
}
|
|
245
236
|
}
|
|
246
237
|
__decorate([
|
|
247
|
-
|
|
238
|
+
property({
|
|
248
239
|
attribute: "correct-response",
|
|
249
240
|
reflect: true,
|
|
250
241
|
converter: responseAttributeConverter({ emptyAs: null })
|
|
251
242
|
})
|
|
252
243
|
], CorrectResponseMixinClass.prototype, "correctResponseAttr", null);
|
|
253
244
|
__decorate([
|
|
254
|
-
|
|
245
|
+
property({ type: Boolean, attribute: "show-correct-response", reflect: true })
|
|
255
246
|
], CorrectResponseMixinClass.prototype, "showCorrectResponse", void 0);
|
|
256
247
|
__decorate([
|
|
257
248
|
watch("showCorrectResponse", { waitUntilFirstUpdate: true })
|
|
258
249
|
], CorrectResponseMixinClass.prototype, "_handleShowCorrectResponseChange", void 0);
|
|
259
250
|
__decorate([
|
|
260
|
-
|
|
251
|
+
property({ type: Boolean, attribute: "show-full-correct-response", reflect: true })
|
|
261
252
|
], CorrectResponseMixinClass.prototype, "showFullCorrectResponse", void 0);
|
|
262
253
|
__decorate([
|
|
263
254
|
watch("showFullCorrectResponse", { waitUntilFirstUpdate: true })
|
|
264
255
|
], CorrectResponseMixinClass.prototype, "_handleShowFullCorrectResponseChange", void 0);
|
|
265
256
|
__decorate([
|
|
266
|
-
|
|
257
|
+
property({ type: Boolean, attribute: "show-candidate-correction", reflect: true })
|
|
267
258
|
], CorrectResponseMixinClass.prototype, "showCandidateCorrection", void 0);
|
|
268
259
|
__decorate([
|
|
269
260
|
watch("showCandidateCorrection", { waitUntilFirstUpdate: true })
|
|
270
261
|
], CorrectResponseMixinClass.prototype, "_handleShowCandidateCorrectionChange", void 0);
|
|
271
262
|
__decorate([
|
|
272
|
-
|
|
263
|
+
state()
|
|
273
264
|
], CorrectResponseMixinClass.prototype, "_isFullCorrectResponse", void 0);
|
|
274
265
|
__decorate([
|
|
275
|
-
|
|
266
|
+
state()
|
|
276
267
|
], CorrectResponseMixinClass.prototype, "_correctResponse", void 0);
|
|
277
268
|
return CorrectResponseMixinClass;
|
|
278
269
|
};
|
|
279
270
|
|
|
280
271
|
// ../qti-corrections/dist/styles/correction.styles.js
|
|
281
|
-
|
|
272
|
+
import { css } from "lit";
|
|
273
|
+
var correctionPart = css`
|
|
282
274
|
/* Nothing at all until the item judges this element. */
|
|
283
275
|
[part~='correction'] {
|
|
284
276
|
display: none;
|
|
@@ -314,11 +306,12 @@ var correctionPart = i`
|
|
|
314
306
|
`;
|
|
315
307
|
|
|
316
308
|
// ../qti-corrections/dist/mixins/candidate-correction.mixin.js
|
|
309
|
+
import { state as state2 } from "lit/decorators.js";
|
|
317
310
|
var __decorate2 = function(decorators, target, key, desc) {
|
|
318
|
-
var
|
|
319
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
320
|
-
else for (var
|
|
321
|
-
return
|
|
311
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
312
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
313
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
314
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
322
315
|
};
|
|
323
316
|
var CandidateCorrectionMixin = (superClass) => {
|
|
324
317
|
class CandidateCorrectionMixinClass extends CorrectResponseMixin(superClass) {
|
|
@@ -370,7 +363,7 @@ var CandidateCorrectionMixin = (superClass) => {
|
|
|
370
363
|
}
|
|
371
364
|
}
|
|
372
365
|
__decorate2([
|
|
373
|
-
|
|
366
|
+
state2()
|
|
374
367
|
], CandidateCorrectionMixinClass.prototype, "_candidateCorrection", void 0);
|
|
375
368
|
return CandidateCorrectionMixinClass;
|
|
376
369
|
};
|
|
@@ -411,6 +404,9 @@ var ChoiceCorrectionMixin = (superClass) => {
|
|
|
411
404
|
return ChoiceCorrectionMixinClass;
|
|
412
405
|
};
|
|
413
406
|
|
|
407
|
+
// ../qti-corrections/dist/elements/qti-gap-text-correction.js
|
|
408
|
+
import { html } from "lit";
|
|
409
|
+
|
|
414
410
|
// ../qti-corrections/dist/mixins/active-element-correction.mixin.js
|
|
415
411
|
var ActiveElementCorrectionMixin = (superClass) => {
|
|
416
412
|
class ActiveElementCorrectionMixinClass extends superClass {
|
|
@@ -444,18 +440,19 @@ var QtiGapTextCorrection = class extends ActiveElementCorrectionMixin(QtiGapText
|
|
|
444
440
|
this.styles = [QtiGapText.styles, correctionPart];
|
|
445
441
|
}
|
|
446
442
|
render() {
|
|
447
|
-
return
|
|
443
|
+
return html`<div part="control"></div>
|
|
448
444
|
<slot part="label"></slot>
|
|
449
445
|
<span part=${this.correctionPart} aria-hidden="true"></span>`;
|
|
450
446
|
}
|
|
451
447
|
};
|
|
452
448
|
|
|
453
449
|
// ../qti-corrections/dist/elements/qti-hotspot-choice-correction.js
|
|
450
|
+
import { property as property2 } from "lit/decorators.js";
|
|
454
451
|
var __decorate3 = function(decorators, target, key, desc) {
|
|
455
|
-
var
|
|
456
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
457
|
-
else for (var
|
|
458
|
-
return
|
|
452
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
453
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
454
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
455
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
459
456
|
};
|
|
460
457
|
var QtiHotspotChoiceCorrection = class extends ActiveElementCorrectionMixin(QtiHotspotChoice) {
|
|
461
458
|
constructor() {
|
|
@@ -464,46 +461,50 @@ var QtiHotspotChoiceCorrection = class extends ActiveElementCorrectionMixin(QtiH
|
|
|
464
461
|
}
|
|
465
462
|
};
|
|
466
463
|
__decorate3([
|
|
467
|
-
|
|
464
|
+
property2({ attribute: "aria-ordercorrectvalue", type: Number, reflect: true })
|
|
468
465
|
], QtiHotspotChoiceCorrection.prototype, "orderCorrect", void 0);
|
|
469
466
|
|
|
470
467
|
// ../qti-corrections/dist/elements/qti-hottext-correction.js
|
|
468
|
+
import { html as html2 } from "lit";
|
|
471
469
|
var QtiHottextCorrection = class extends ActiveElementCorrectionMixin(QtiHottext) {
|
|
472
470
|
static {
|
|
473
471
|
this.styles = [QtiHottext.styles, correctionPart];
|
|
474
472
|
}
|
|
475
473
|
render() {
|
|
476
|
-
return
|
|
474
|
+
return html2`<div part="control"><div part="control-mark"></div></div>
|
|
477
475
|
<slot part="label"></slot>
|
|
478
476
|
<span part=${this.correctionPart} aria-hidden="true"></span>`;
|
|
479
477
|
}
|
|
480
478
|
};
|
|
481
479
|
|
|
482
480
|
// ../qti-corrections/dist/elements/qti-simple-associable-choice-correction.js
|
|
481
|
+
import { html as html3 } from "lit";
|
|
482
|
+
import { repeat } from "lit/directives/repeat.js";
|
|
483
483
|
var QtiSimpleAssociableChoiceCorrection = class extends ActiveElementCorrectionMixin(QtiSimpleAssociableChoice) {
|
|
484
484
|
static {
|
|
485
485
|
this.styles = [QtiSimpleAssociableChoice.styles, correctionPart];
|
|
486
486
|
}
|
|
487
487
|
render() {
|
|
488
|
-
return
|
|
488
|
+
return html3`
|
|
489
489
|
<div part="control"></div>
|
|
490
490
|
<slot part="label"></slot>
|
|
491
491
|
<span part=${this.correctionPart} aria-hidden="true"></span>
|
|
492
492
|
<div part="drop">
|
|
493
|
-
${
|
|
493
|
+
${repeat(this.drags, (node) => node.getAttribute("identifier"), (node) => node)}
|
|
494
494
|
</div>
|
|
495
495
|
`;
|
|
496
496
|
}
|
|
497
497
|
};
|
|
498
498
|
|
|
499
499
|
// ../qti-corrections/dist/elements/qti-simple-choice-correction.js
|
|
500
|
+
import { html as html4, nothing } from "lit";
|
|
500
501
|
var QtiSimpleChoiceCorrection = class extends ActiveElementCorrectionMixin(QtiSimpleChoice) {
|
|
501
502
|
static {
|
|
502
503
|
this.styles = [QtiSimpleChoice.styles, correctionPart];
|
|
503
504
|
}
|
|
504
505
|
render() {
|
|
505
|
-
return
|
|
506
|
-
${this.marker ?
|
|
506
|
+
return html4`<div part="control" tabindex="0"><div part="control-mark"></div></div>
|
|
507
|
+
${this.marker ? html4`<div id="label" part="marker">${this.marker}</div>` : nothing}
|
|
507
508
|
<slot part="label"></slot>
|
|
508
509
|
<span part=${this.correctionPart} aria-hidden="true"></span>`;
|
|
509
510
|
}
|
|
@@ -607,13 +608,16 @@ var TestCheckItemCorrection = class extends TestCheckItem {
|
|
|
607
608
|
};
|
|
608
609
|
|
|
609
610
|
// ../qti-corrections/dist/components/item-correct-response-mode/item-correct-response-mode.js
|
|
611
|
+
import { html as html5, LitElement } from "lit";
|
|
612
|
+
import { property as property3, state as state3 } from "lit/decorators.js";
|
|
613
|
+
import { consume } from "@lit/context";
|
|
610
614
|
var __decorate4 = function(decorators, target, key, desc) {
|
|
611
|
-
var
|
|
612
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
613
|
-
else for (var
|
|
614
|
-
return
|
|
615
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
616
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
617
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
618
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
615
619
|
};
|
|
616
|
-
var ItemCorrectResponseMode = class extends
|
|
620
|
+
var ItemCorrectResponseMode = class extends LitElement {
|
|
617
621
|
constructor() {
|
|
618
622
|
super(...arguments);
|
|
619
623
|
this.label = "Correct response mode";
|
|
@@ -629,7 +633,7 @@ var ItemCorrectResponseMode = class extends i2 {
|
|
|
629
633
|
}));
|
|
630
634
|
}
|
|
631
635
|
render() {
|
|
632
|
-
return
|
|
636
|
+
return html5`
|
|
633
637
|
<label part="label" for="modeSelect">${this.label}</label>
|
|
634
638
|
<select
|
|
635
639
|
part="select"
|
|
@@ -639,7 +643,7 @@ var ItemCorrectResponseMode = class extends i2 {
|
|
|
639
643
|
this.#switchMode(el.value);
|
|
640
644
|
}}
|
|
641
645
|
>
|
|
642
|
-
${Object.keys(this._options).map((value) =>
|
|
646
|
+
${Object.keys(this._options).map((value) => html5`<option value="${value}" ?selected=${value === this.itemContext?.correctResponseMode}>
|
|
643
647
|
${this._options[value]}
|
|
644
648
|
</option>`)}
|
|
645
649
|
</select>
|
|
@@ -647,17 +651,23 @@ var ItemCorrectResponseMode = class extends i2 {
|
|
|
647
651
|
}
|
|
648
652
|
};
|
|
649
653
|
__decorate4([
|
|
650
|
-
|
|
654
|
+
consume({ context: configContext, subscribe: true })
|
|
651
655
|
], ItemCorrectResponseMode.prototype, "itemContext", void 0);
|
|
652
656
|
__decorate4([
|
|
653
|
-
|
|
657
|
+
property3({ type: String })
|
|
654
658
|
], ItemCorrectResponseMode.prototype, "label", void 0);
|
|
655
659
|
__decorate4([
|
|
656
|
-
|
|
660
|
+
state3()
|
|
657
661
|
], ItemCorrectResponseMode.prototype, "_options", void 0);
|
|
658
662
|
|
|
663
|
+
// ../qti-corrections/dist/components/item-show-candidate-correction/item-show-candidate-correction.js
|
|
664
|
+
import { css as css3, html as html6, LitElement as LitElement2 } from "lit";
|
|
665
|
+
import { property as property4 } from "lit/decorators.js";
|
|
666
|
+
import { consume as consume2 } from "@lit/context";
|
|
667
|
+
|
|
659
668
|
// ../qti-corrections/dist/components/styles.js
|
|
660
|
-
|
|
669
|
+
import { css as css2 } from "lit";
|
|
670
|
+
var form = css2`
|
|
661
671
|
display: inline-flex;
|
|
662
672
|
align-items: center;
|
|
663
673
|
cursor: pointer;
|
|
@@ -665,29 +675,29 @@ var form = i`
|
|
|
665
675
|
border-radius: 0.25rem;
|
|
666
676
|
user-select: none;
|
|
667
677
|
`;
|
|
668
|
-
var btn =
|
|
678
|
+
var btn = css2`
|
|
669
679
|
background-color: lightgray;
|
|
670
680
|
${form};
|
|
671
681
|
`;
|
|
672
|
-
var dis =
|
|
682
|
+
var dis = css2`
|
|
673
683
|
cursor: not-allowed;
|
|
674
684
|
opacity: 0.8;
|
|
675
685
|
`;
|
|
676
|
-
var ind =
|
|
686
|
+
var ind = css2`
|
|
677
687
|
${form};
|
|
678
688
|
border: 1px solid gray;
|
|
679
689
|
`;
|
|
680
690
|
|
|
681
691
|
// ../qti-corrections/dist/components/item-show-candidate-correction/item-show-candidate-correction.js
|
|
682
692
|
var __decorate5 = function(decorators, target, key, desc) {
|
|
683
|
-
var
|
|
684
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
685
|
-
else for (var
|
|
686
|
-
return
|
|
693
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
694
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
695
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
696
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
687
697
|
};
|
|
688
|
-
var ItemShowCandidateCorrection = class extends
|
|
698
|
+
var ItemShowCandidateCorrection = class extends LitElement2 {
|
|
689
699
|
static {
|
|
690
|
-
this.styles =
|
|
700
|
+
this.styles = css3`
|
|
691
701
|
:host {
|
|
692
702
|
${btn};
|
|
693
703
|
}
|
|
@@ -733,36 +743,39 @@ var ItemShowCandidateCorrection = class extends i2 {
|
|
|
733
743
|
return this.disabled ? this.noCorrectResponseText : this.shown ? this.hideCandidateCorrectionText : this.showCandidateCorrectionText;
|
|
734
744
|
}
|
|
735
745
|
render() {
|
|
736
|
-
return
|
|
746
|
+
return html6` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
|
|
737
747
|
}
|
|
738
748
|
};
|
|
739
749
|
__decorate5([
|
|
740
|
-
|
|
750
|
+
consume2({ context: computedItemContext, subscribe: true })
|
|
741
751
|
], ItemShowCandidateCorrection.prototype, "computedContext", void 0);
|
|
742
752
|
__decorate5([
|
|
743
|
-
|
|
753
|
+
property4({ type: Boolean, reflect: true })
|
|
744
754
|
], ItemShowCandidateCorrection.prototype, "shown", void 0);
|
|
745
755
|
__decorate5([
|
|
746
|
-
|
|
756
|
+
property4({ type: Boolean, reflect: true })
|
|
747
757
|
], ItemShowCandidateCorrection.prototype, "disabled", void 0);
|
|
748
758
|
__decorate5([
|
|
749
|
-
|
|
759
|
+
property4({ type: String })
|
|
750
760
|
], ItemShowCandidateCorrection.prototype, "showCandidateCorrectionText", void 0);
|
|
751
761
|
__decorate5([
|
|
752
|
-
|
|
762
|
+
property4({ type: String })
|
|
753
763
|
], ItemShowCandidateCorrection.prototype, "hideCandidateCorrectionText", void 0);
|
|
754
764
|
__decorate5([
|
|
755
|
-
|
|
765
|
+
property4({ type: String })
|
|
756
766
|
], ItemShowCandidateCorrection.prototype, "noCorrectResponseText", void 0);
|
|
757
767
|
|
|
758
768
|
// ../qti-corrections/dist/components/item-show-correct-response/item-show-correct-response.js
|
|
769
|
+
import { css as css4, html as html7, LitElement as LitElement3 } from "lit";
|
|
770
|
+
import { property as property5 } from "lit/decorators.js";
|
|
771
|
+
import { consume as consume3 } from "@lit/context";
|
|
759
772
|
var __decorate6 = function(decorators, target, key, desc) {
|
|
760
|
-
var
|
|
761
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
762
|
-
else for (var
|
|
763
|
-
return
|
|
773
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
774
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
775
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
776
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
764
777
|
};
|
|
765
|
-
var ItemShowCorrectResponse = class extends
|
|
778
|
+
var ItemShowCorrectResponse = class extends LitElement3 {
|
|
766
779
|
constructor() {
|
|
767
780
|
super(...arguments);
|
|
768
781
|
this.shown = false;
|
|
@@ -774,7 +787,7 @@ var ItemShowCorrectResponse = class extends i2 {
|
|
|
774
787
|
this.#previousActiveItem = "";
|
|
775
788
|
}
|
|
776
789
|
static {
|
|
777
|
-
this.styles =
|
|
790
|
+
this.styles = css4`
|
|
778
791
|
:host {
|
|
779
792
|
${btn};
|
|
780
793
|
}
|
|
@@ -810,36 +823,39 @@ var ItemShowCorrectResponse = class extends i2 {
|
|
|
810
823
|
return this.disabled ? this.noCorrectResponseText : this.shown ? this.hideCorrectText : this.showCorrectText;
|
|
811
824
|
}
|
|
812
825
|
render() {
|
|
813
|
-
return
|
|
826
|
+
return html7` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
|
|
814
827
|
}
|
|
815
828
|
};
|
|
816
829
|
__decorate6([
|
|
817
|
-
|
|
830
|
+
consume3({ context: computedItemContext, subscribe: true })
|
|
818
831
|
], ItemShowCorrectResponse.prototype, "computedContext", void 0);
|
|
819
832
|
__decorate6([
|
|
820
|
-
|
|
833
|
+
property5({ type: Boolean, reflect: true })
|
|
821
834
|
], ItemShowCorrectResponse.prototype, "shown", void 0);
|
|
822
835
|
__decorate6([
|
|
823
|
-
|
|
836
|
+
property5({ type: Boolean, reflect: true })
|
|
824
837
|
], ItemShowCorrectResponse.prototype, "disabled", void 0);
|
|
825
838
|
__decorate6([
|
|
826
|
-
|
|
839
|
+
property5({ type: String })
|
|
827
840
|
], ItemShowCorrectResponse.prototype, "showCorrectText", void 0);
|
|
828
841
|
__decorate6([
|
|
829
|
-
|
|
842
|
+
property5({ type: String })
|
|
830
843
|
], ItemShowCorrectResponse.prototype, "hideCorrectText", void 0);
|
|
831
844
|
__decorate6([
|
|
832
|
-
|
|
845
|
+
property5({ type: String })
|
|
833
846
|
], ItemShowCorrectResponse.prototype, "noCorrectResponseText", void 0);
|
|
834
847
|
|
|
835
848
|
// ../qti-corrections/dist/components/test-show-correct-response/test-show-correct-response.js
|
|
849
|
+
import { css as css5, html as html8, LitElement as LitElement4 } from "lit";
|
|
850
|
+
import { property as property6 } from "lit/decorators.js";
|
|
851
|
+
import { consume as consume4 } from "@lit/context";
|
|
836
852
|
var __decorate7 = function(decorators, target, key, desc) {
|
|
837
|
-
var
|
|
838
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
839
|
-
else for (var
|
|
840
|
-
return
|
|
853
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
854
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
855
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
856
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
841
857
|
};
|
|
842
|
-
var TestShowCorrectResponse = class extends
|
|
858
|
+
var TestShowCorrectResponse = class extends LitElement4 {
|
|
843
859
|
constructor() {
|
|
844
860
|
super(...arguments);
|
|
845
861
|
this.shown = false;
|
|
@@ -849,7 +865,7 @@ var TestShowCorrectResponse = class extends i2 {
|
|
|
849
865
|
this.noCorrectResponseText = "No correct response specified";
|
|
850
866
|
}
|
|
851
867
|
static {
|
|
852
|
-
this.styles =
|
|
868
|
+
this.styles = css5`
|
|
853
869
|
:host {
|
|
854
870
|
${btn};
|
|
855
871
|
}
|
|
@@ -889,26 +905,26 @@ var TestShowCorrectResponse = class extends i2 {
|
|
|
889
905
|
return this.disabled ? this.noCorrectResponseText : this.shown ? this.hideCorrectText : this.showCorrectText;
|
|
890
906
|
}
|
|
891
907
|
render() {
|
|
892
|
-
return
|
|
908
|
+
return html8` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
|
|
893
909
|
}
|
|
894
910
|
};
|
|
895
911
|
__decorate7([
|
|
896
|
-
|
|
912
|
+
consume4({ context: computedContext, subscribe: true })
|
|
897
913
|
], TestShowCorrectResponse.prototype, "computedContext", void 0);
|
|
898
914
|
__decorate7([
|
|
899
|
-
|
|
915
|
+
property6({ type: Boolean, reflect: true })
|
|
900
916
|
], TestShowCorrectResponse.prototype, "shown", void 0);
|
|
901
917
|
__decorate7([
|
|
902
|
-
|
|
918
|
+
property6({ type: Boolean, reflect: true })
|
|
903
919
|
], TestShowCorrectResponse.prototype, "disabled", void 0);
|
|
904
920
|
__decorate7([
|
|
905
|
-
|
|
921
|
+
property6({ type: String })
|
|
906
922
|
], TestShowCorrectResponse.prototype, "showCorrectText", void 0);
|
|
907
923
|
__decorate7([
|
|
908
|
-
|
|
924
|
+
property6({ type: String })
|
|
909
925
|
], TestShowCorrectResponse.prototype, "hideCorrectText", void 0);
|
|
910
926
|
__decorate7([
|
|
911
|
-
|
|
927
|
+
property6({ type: String })
|
|
912
928
|
], TestShowCorrectResponse.prototype, "noCorrectResponseText", void 0);
|
|
913
929
|
|
|
914
930
|
// ../qti-corrections/dist/mixins/drag-drop-correction.mixin.js
|
|
@@ -941,18 +957,20 @@ var QtiChoiceInteractionCorrection = class extends ChoiceCorrectionMixin(QtiChoi
|
|
|
941
957
|
};
|
|
942
958
|
|
|
943
959
|
// ../qti-corrections/dist/interactions/qti-extended-text-interaction-correction.js
|
|
960
|
+
import { css as css6, html as html9 } from "lit";
|
|
961
|
+
import { property as property7 } from "lit/decorators.js";
|
|
944
962
|
var __decorate8 = function(decorators, target, key, desc) {
|
|
945
|
-
var
|
|
946
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
947
|
-
else for (var
|
|
948
|
-
return
|
|
963
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
964
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
965
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
966
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
949
967
|
};
|
|
950
968
|
var QtiExtendedTextInteractionCorrection = class extends ActiveElementCorrectionMixin(QtiExtendedTextInteraction) {
|
|
951
969
|
static {
|
|
952
970
|
this.styles = [
|
|
953
971
|
QtiExtendedTextInteraction.styles,
|
|
954
972
|
correctionPart,
|
|
955
|
-
|
|
973
|
+
css6`
|
|
956
974
|
/*
|
|
957
975
|
* Placement only — the glyph itself is the theme's, keyed on ::part(correction-*). That split
|
|
958
976
|
* is the contract in correction.styles.ts, which deliberately leaves the shared badge in flow
|
|
@@ -1018,13 +1036,13 @@ var QtiExtendedTextInteractionCorrection = class extends ActiveElementCorrection
|
|
|
1018
1036
|
}
|
|
1019
1037
|
/** The badge goes between the field and the validation message; everything else is the base's. */
|
|
1020
1038
|
render() {
|
|
1021
|
-
return
|
|
1039
|
+
return html9`${this.renderPrompt()}${this.renderTextarea()}
|
|
1022
1040
|
<span part=${this.correctionPart} aria-hidden="true"></span>
|
|
1023
1041
|
${this.renderValidationMessage()}`;
|
|
1024
1042
|
}
|
|
1025
1043
|
};
|
|
1026
1044
|
__decorate8([
|
|
1027
|
-
|
|
1045
|
+
property7({ attribute: "candidate-correction", reflect: true, noAccessor: true })
|
|
1028
1046
|
], QtiExtendedTextInteractionCorrection.prototype, "candidateCorrection", void 0);
|
|
1029
1047
|
|
|
1030
1048
|
// ../qti-corrections/dist/interactions/shared.js
|
|
@@ -1059,6 +1077,8 @@ var QtiGapMatchInteractionCorrection = class extends DragDropCorrectionMixin(Qti
|
|
|
1059
1077
|
};
|
|
1060
1078
|
|
|
1061
1079
|
// ../qti-corrections/dist/interactions/qti-graphic-associate-interaction-correction.js
|
|
1080
|
+
import { svg } from "lit";
|
|
1081
|
+
import { repeat as repeat2 } from "lit/directives/repeat.js";
|
|
1062
1082
|
var QtiGraphicAssociateInteractionCorrection = class extends CandidateCorrectionMixin(QtiGraphicAssociateInteraction) {
|
|
1063
1083
|
#correctLines = [];
|
|
1064
1084
|
toggleInternalCorrectResponse(show) {
|
|
@@ -1069,7 +1089,7 @@ var QtiGraphicAssociateInteractionCorrection = class extends CandidateCorrection
|
|
|
1069
1089
|
this.requestUpdate("correctLines", previous);
|
|
1070
1090
|
}
|
|
1071
1091
|
renderSupplementalLines() {
|
|
1072
|
-
return
|
|
1092
|
+
return repeat2(this.#correctLines, (line) => line, (line) => svg`
|
|
1073
1093
|
<line
|
|
1074
1094
|
part="correct-line"
|
|
1075
1095
|
x1=${parseInt(this.querySelector(`[identifier=${line.split(" ")[0]}]`).style.left)}
|
|
@@ -1133,12 +1153,13 @@ var QtiHottextInteractionCorrection = class extends ChoiceCorrectionMixin(QtiHot
|
|
|
1133
1153
|
};
|
|
1134
1154
|
|
|
1135
1155
|
// ../qti-corrections/dist/interactions/qti-inline-choice-interaction-correction.js
|
|
1156
|
+
import { css as css7, html as html10 } from "lit";
|
|
1136
1157
|
var QtiInlineChoiceInteractionCorrection = class extends CandidateCorrectionMixin(QtiInlineChoiceInteraction) {
|
|
1137
1158
|
static get styles() {
|
|
1138
1159
|
return [
|
|
1139
1160
|
QtiInlineChoiceInteraction.styles,
|
|
1140
1161
|
correctionPart,
|
|
1141
|
-
|
|
1162
|
+
css7`
|
|
1142
1163
|
/*
|
|
1143
1164
|
* Only the TRAILING inset — the leading gap is the shared --qti-glyph-gap, like every other
|
|
1144
1165
|
* badge. This used to set both margins to --qti-gap (1rem), twice everyone else's 0.5em, on
|
|
@@ -1192,7 +1213,7 @@ var QtiInlineChoiceInteractionCorrection = class extends CandidateCorrectionMixi
|
|
|
1192
1213
|
}
|
|
1193
1214
|
/** The badge trails the validation message; everything else is the base's. */
|
|
1194
1215
|
render() {
|
|
1195
|
-
return
|
|
1216
|
+
return html10`
|
|
1196
1217
|
${this.renderTrigger()} ${this.renderMenu()} ${this.renderValidationMessage()}
|
|
1197
1218
|
<span part=${this.correctionPart} aria-hidden="true"></span>
|
|
1198
1219
|
`;
|
|
@@ -1278,7 +1299,7 @@ var QtiOrderInteractionCorrection = class extends DragDropCorrectionMixin(QtiOrd
|
|
|
1278
1299
|
const [identifier, dropId] = entry.split(" ");
|
|
1279
1300
|
const parsed = dropId?.startsWith("droplist") ? parseInt(dropId.slice("droplist".length), 10) : index;
|
|
1280
1301
|
return { identifier, dropIndex: Number.isNaN(parsed) ? index : parsed };
|
|
1281
|
-
}).filter((entry) => entry.identifier).sort((a,
|
|
1302
|
+
}).filter((entry) => entry.identifier).sort((a, b) => a.dropIndex - b.dropIndex).map((entry) => entry.identifier);
|
|
1282
1303
|
if (correctOrder.length === 0)
|
|
1283
1304
|
return;
|
|
1284
1305
|
const placedEntries = placedChoices.map((choice) => ({ choice, identifier: choice.getAttribute("identifier") })).filter((entry) => Boolean(entry.identifier));
|
|
@@ -1353,13 +1374,16 @@ var QtiPortableCustomInteractionCorrection = class extends CandidateCorrectionMi
|
|
|
1353
1374
|
};
|
|
1354
1375
|
|
|
1355
1376
|
// ../qti-corrections/dist/interactions/qti-select-point-interaction-correction.js
|
|
1377
|
+
import { css as css8, html as html11 } from "lit";
|
|
1378
|
+
import { repeat as repeat3 } from "lit/directives/repeat.js";
|
|
1379
|
+
import { styleMap } from "lit/directives/style-map.js";
|
|
1356
1380
|
var QtiSelectPointInteractionCorrection = class extends CandidateCorrectionMixin(QtiSelectPointInteraction) {
|
|
1357
1381
|
#correctAreas = [];
|
|
1358
1382
|
#responseCorrection = [];
|
|
1359
1383
|
static {
|
|
1360
1384
|
this.styles = [
|
|
1361
1385
|
QtiSelectPointInteraction.styles,
|
|
1362
|
-
|
|
1386
|
+
css8`
|
|
1363
1387
|
[part~='correct'] {
|
|
1364
1388
|
--qti-select-point-marker-color: var(--qti-correct);
|
|
1365
1389
|
}
|
|
@@ -1425,8 +1449,8 @@ var QtiSelectPointInteractionCorrection = class extends CandidateCorrectionMixin
|
|
|
1425
1449
|
return verdict === void 0 ? "point" : `point ${verdict ? "correct" : "incorrect"}`;
|
|
1426
1450
|
}
|
|
1427
1451
|
renderSupplementalLayer() {
|
|
1428
|
-
return
|
|
1429
|
-
style=${
|
|
1452
|
+
return repeat3(this.#correctAreas, (area) => `${area.shape}:${area.coords}`, (area, index) => html11`<div
|
|
1453
|
+
style=${styleMap({
|
|
1430
1454
|
position: "absolute",
|
|
1431
1455
|
pointerEvents: "none",
|
|
1432
1456
|
backgroundColor: "var(--qti-correct)",
|
|
@@ -1447,12 +1471,13 @@ var QtiSelectPointInteractionCorrection = class extends CandidateCorrectionMixin
|
|
|
1447
1471
|
};
|
|
1448
1472
|
|
|
1449
1473
|
// ../qti-corrections/dist/interactions/qti-slider-interaction-correction.js
|
|
1474
|
+
import { css as css9, html as html12, nothing as nothing2 } from "lit";
|
|
1450
1475
|
var QtiSliderInteractionCorrection = class extends CandidateCorrectionMixin(QtiSliderInteraction) {
|
|
1451
1476
|
#correctResponseNumber = null;
|
|
1452
1477
|
static {
|
|
1453
1478
|
this.styles = [
|
|
1454
1479
|
QtiSliderInteraction.styles,
|
|
1455
|
-
|
|
1480
|
+
css9`
|
|
1456
1481
|
[part='knob-correct'] {
|
|
1457
1482
|
background-color: var(--qti-correct-light);
|
|
1458
1483
|
border: 2px solid var(--qti-correct);
|
|
@@ -1484,19 +1509,20 @@ var QtiSliderInteractionCorrection = class extends CandidateCorrectionMixin(QtiS
|
|
|
1484
1509
|
this.requestUpdate("correctResponseNumber", previous);
|
|
1485
1510
|
}
|
|
1486
1511
|
renderRailSupplement() {
|
|
1487
|
-
return this.#correctResponseNumber === null ?
|
|
1512
|
+
return this.#correctResponseNumber === null ? nothing2 : html12`<div id="knob-correct" part="knob-correct">
|
|
1488
1513
|
<div id="value" part="value">${this.#correctResponseNumber}</div>
|
|
1489
1514
|
</div>`;
|
|
1490
1515
|
}
|
|
1491
1516
|
};
|
|
1492
1517
|
|
|
1493
1518
|
// ../qti-corrections/dist/interactions/qti-text-entry-interaction-correction.js
|
|
1519
|
+
import { css as css10, html as html13 } from "lit";
|
|
1494
1520
|
var QtiTextEntryInteractionCorrection = class extends CandidateCorrectionMixin(QtiTextEntryInteraction) {
|
|
1495
1521
|
static {
|
|
1496
1522
|
this.styles = [
|
|
1497
1523
|
QtiTextEntryInteraction.styles,
|
|
1498
1524
|
correctionPart,
|
|
1499
|
-
|
|
1525
|
+
css10`
|
|
1500
1526
|
/*
|
|
1501
1527
|
* The trailing inset only — size and leading gap come from the shared sheet.
|
|
1502
1528
|
*
|
|
@@ -1560,7 +1586,7 @@ var QtiTextEntryInteractionCorrection = class extends CandidateCorrectionMixin(Q
|
|
|
1560
1586
|
}
|
|
1561
1587
|
/** The badge goes between the field and the validation message; everything else is the base's. */
|
|
1562
1588
|
render() {
|
|
1563
|
-
return
|
|
1589
|
+
return html13`
|
|
1564
1590
|
${this.renderAnswer()} ${this.renderInput()}
|
|
1565
1591
|
<span part=${this.correctionPart} aria-hidden="true"></span>
|
|
1566
1592
|
${this.renderValidationMessage()}
|
|
@@ -1605,4 +1631,4 @@ export {
|
|
|
1605
1631
|
QtiSliderInteractionCorrection,
|
|
1606
1632
|
QtiTextEntryInteractionCorrection
|
|
1607
1633
|
};
|
|
1608
|
-
//# sourceMappingURL=chunk-
|
|
1634
|
+
//# sourceMappingURL=chunk-CF3DXJWM.js.map
|