@citolab/qti-components 8.0.1 → 8.0.2
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 +103 -103
- package/dist/base.d.ts +3 -3
- package/dist/base.js +1 -1
- package/dist/chunk-4DB4SC5K.js +100 -0
- package/dist/chunk-4DB4SC5K.js.map +1 -0
- package/dist/{chunk-WVVMNF74.js → chunk-7AVWRQIS.js} +188 -160
- package/dist/{chunk-WVVMNF74.js.map → chunk-7AVWRQIS.js.map} +1 -1
- package/dist/{chunk-CAO4JRLY.js → chunk-BQFWCZFH.js} +2 -2
- package/dist/{chunk-LVBIQDPM.js → chunk-CK7AV2UJ.js} +147 -101
- package/dist/chunk-CK7AV2UJ.js.map +1 -0
- package/dist/{chunk-7HC5SMCU.js → chunk-G6GFQDVN.js} +1 -96
- package/dist/chunk-G6GFQDVN.js.map +1 -0
- package/dist/{chunk-RXGDQDOV.js → chunk-HBSWJC3B.js} +478 -392
- package/dist/chunk-HBSWJC3B.js.map +1 -0
- package/dist/chunk-HQESINXH.js +834 -0
- package/dist/chunk-HQESINXH.js.map +1 -0
- package/dist/{chunk-XU7HNT4F.js → chunk-J5SQLKNP.js} +145 -119
- package/dist/{chunk-XU7HNT4F.js.map → chunk-J5SQLKNP.js.map} +1 -1
- package/dist/{chunk-V5G7X53Y.js → chunk-NJQHUUTN.js} +2 -2
- package/dist/{chunk-QECOPVPO.js → chunk-RSVRS5AK.js} +59 -58
- package/dist/chunk-RSVRS5AK.js.map +1 -0
- package/dist/{chunk-F4BNJWYN.js → chunk-TWPXES3S.js} +642 -673
- package/dist/chunk-TWPXES3S.js.map +1 -0
- package/dist/{chunk-NA2N2WSG.js → chunk-VAE6HBKR.js} +176 -152
- package/dist/{chunk-NA2N2WSG.js.map → chunk-VAE6HBKR.js.map} +1 -1
- package/dist/{chunk-3AJOQCDU.js → chunk-ZII6M3SN.js} +2 -2
- 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 +8 -9
- package/dist/elements.d.ts +86 -86
- package/dist/elements.js +4 -5
- package/dist/index.d.ts +6 -37
- package/dist/index.js +13 -14
- 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.d.ts +3 -3
- package/dist/item.js +5 -5
- package/dist/processing.js +2 -2
- package/dist/qti-components-jsx.d.ts +759 -739
- 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 +6 -7
- package/package.json +8 -7
- package/dist/chunk-64XSIBGO.js +0 -241
- package/dist/chunk-64XSIBGO.js.map +0 -1
- 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-QECOPVPO.js.map +0 -1
- package/dist/chunk-RXGDQDOV.js.map +0 -1
- package/dist/chunk-X3E5HXG2.js +0 -20
- package/dist/chunk-X3E5HXG2.js.map +0 -1
- /package/dist/{chunk-CAO4JRLY.js.map → chunk-BQFWCZFH.js.map} +0 -0
- /package/dist/{chunk-V5G7X53Y.js.map → chunk-NJQHUUTN.js.map} +0 -0
- /package/dist/{chunk-3AJOQCDU.js.map → chunk-ZII6M3SN.js.map} +0 -0
|
@@ -29,8 +29,8 @@ import type { QtiTemplateDeclaration } from "./elements.js";
|
|
|
29
29
|
import type { QtiItem } from "./item.js";
|
|
30
30
|
import type { QtiAssessmentItemRef } from "./test.js";
|
|
31
31
|
import type { QtiAssessmentSection } from "./test.js";
|
|
32
|
-
import type { QtiAssessmentTest } from "./test.js";
|
|
33
32
|
import type { QtiTestPart } from "./test.js";
|
|
33
|
+
import type { QtiAssessmentTest } from "./test.js";
|
|
34
34
|
import type { TestNavigation } from "./test.js";
|
|
35
35
|
import type { TestContainer } from "./test.js";
|
|
36
36
|
import type {
|
|
@@ -68,8 +68,6 @@ import type {
|
|
|
68
68
|
} from "./test.js";
|
|
69
69
|
import type { QtiSimpleAssociableChoice } from "./interactions.js";
|
|
70
70
|
import type { QtiAssociateInteraction } from "./interactions.js";
|
|
71
|
-
import type { QtiSimpleChoice } from "./interactions.js";
|
|
72
|
-
import type { QtiChoiceInteraction } from "./interactions.js";
|
|
73
71
|
import type { QtiAssociableHotspot } from "./interactions.js";
|
|
74
72
|
import type { QtiGap } from "./interactions.js";
|
|
75
73
|
import type { QtiGapImg } from "./interactions.js";
|
|
@@ -78,6 +76,8 @@ import type { QtiHotspotChoice } from "./interactions.js";
|
|
|
78
76
|
import type { QtiHottext } from "./interactions.js";
|
|
79
77
|
import type { QtiInlineChoice } from "./interactions.js";
|
|
80
78
|
import type { QtiPrompt } from "./interactions.js";
|
|
79
|
+
import type { QtiSimpleChoice } from "./interactions.js";
|
|
80
|
+
import type { QtiChoiceInteraction } from "./interactions.js";
|
|
81
81
|
import type { QtiCustomInteraction } from "./interactions.js";
|
|
82
82
|
import type { QtiEndAttemptInteraction } from "./interactions.js";
|
|
83
83
|
import type { QtiExtendedTextInteraction } from "./interactions.js";
|
|
@@ -234,7 +234,7 @@ type BaseProps<T extends HTMLElement> = {
|
|
|
234
234
|
/** Contains a space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the ::part pseudo-element. */
|
|
235
235
|
part?: string;
|
|
236
236
|
/** Use the ref attribute with a variable to assign a DOM element to the variable once the element is rendered. */
|
|
237
|
-
ref?: T | ((e: T) => void);
|
|
237
|
+
ref?: T | ((e: T) => void) | { current: T | null } | null;
|
|
238
238
|
/** Adds a reference for a custom element slot */
|
|
239
239
|
slot?: string;
|
|
240
240
|
/** Prop for setting inline styles */
|
|
@@ -855,6 +855,14 @@ export type QtiAssessmentSectionProps = {
|
|
|
855
855
|
/** */
|
|
856
856
|
keepTogether?: QtiAssessmentSection["keepTogether"];
|
|
857
857
|
/** */
|
|
858
|
+
"navigation-mode"?: QtiAssessmentSection["navigationMode"];
|
|
859
|
+
/** */
|
|
860
|
+
navigationMode?: QtiAssessmentSection["navigationMode"];
|
|
861
|
+
/** */
|
|
862
|
+
"submission-mode"?: QtiAssessmentSection["submissionMode"];
|
|
863
|
+
/** */
|
|
864
|
+
submissionMode?: QtiAssessmentSection["submissionMode"];
|
|
865
|
+
/** */
|
|
858
866
|
title?: QtiAssessmentSection["title"];
|
|
859
867
|
/** */
|
|
860
868
|
_testContext?: QtiAssessmentSection["_testContext"];
|
|
@@ -877,39 +885,19 @@ export type QtiAssessmentSectionSolidJsProps = {
|
|
|
877
885
|
/** */
|
|
878
886
|
"prop:keepTogether"?: QtiAssessmentSection["keepTogether"];
|
|
879
887
|
/** */
|
|
880
|
-
"
|
|
881
|
-
/** */
|
|
882
|
-
"prop:_testContext"?: QtiAssessmentSection["_testContext"];
|
|
883
|
-
/** */
|
|
884
|
-
"on:qti-assessment-section-connected"?: (e: Event) => void;
|
|
885
|
-
|
|
886
|
-
/** Set the innerHTML of the element */
|
|
887
|
-
innerHTML?: string;
|
|
888
|
-
/** Set the textContent of the element */
|
|
889
|
-
textContent?: string | number;
|
|
890
|
-
};
|
|
891
|
-
|
|
892
|
-
export type QtiAssessmentTestProps = {
|
|
893
|
-
/** */
|
|
894
|
-
identifier?: QtiAssessmentTest["identifier"];
|
|
895
|
-
/** */
|
|
896
|
-
title?: QtiAssessmentTest["title"];
|
|
888
|
+
"attr:navigation-mode"?: QtiAssessmentSection["navigationMode"];
|
|
897
889
|
/** */
|
|
898
|
-
|
|
899
|
-
|
|
890
|
+
"prop:navigationMode"?: QtiAssessmentSection["navigationMode"];
|
|
900
891
|
/** */
|
|
901
|
-
"
|
|
902
|
-
};
|
|
903
|
-
|
|
904
|
-
export type QtiAssessmentTestSolidJsProps = {
|
|
892
|
+
"attr:submission-mode"?: QtiAssessmentSection["submissionMode"];
|
|
905
893
|
/** */
|
|
906
|
-
"prop:
|
|
894
|
+
"prop:submissionMode"?: QtiAssessmentSection["submissionMode"];
|
|
907
895
|
/** */
|
|
908
|
-
"prop:title"?:
|
|
896
|
+
"prop:title"?: QtiAssessmentSection["title"];
|
|
909
897
|
/** */
|
|
910
|
-
"prop:_testContext"?:
|
|
898
|
+
"prop:_testContext"?: QtiAssessmentSection["_testContext"];
|
|
911
899
|
/** */
|
|
912
|
-
"on:qti-assessment-
|
|
900
|
+
"on:qti-assessment-section-connected"?: (e: Event) => void;
|
|
913
901
|
|
|
914
902
|
/** Set the innerHTML of the element */
|
|
915
903
|
innerHTML?: string;
|
|
@@ -961,6 +949,34 @@ export type QtiTestPartSolidJsProps = {
|
|
|
961
949
|
textContent?: string | number;
|
|
962
950
|
};
|
|
963
951
|
|
|
952
|
+
export type QtiAssessmentTestProps = {
|
|
953
|
+
/** */
|
|
954
|
+
identifier?: QtiAssessmentTest["identifier"];
|
|
955
|
+
/** */
|
|
956
|
+
title?: QtiAssessmentTest["title"];
|
|
957
|
+
/** */
|
|
958
|
+
_testContext?: QtiAssessmentTest["_testContext"];
|
|
959
|
+
|
|
960
|
+
/** */
|
|
961
|
+
"onqti-assessment-test-connected"?: (e: CustomEvent) => void;
|
|
962
|
+
};
|
|
963
|
+
|
|
964
|
+
export type QtiAssessmentTestSolidJsProps = {
|
|
965
|
+
/** */
|
|
966
|
+
"prop:identifier"?: QtiAssessmentTest["identifier"];
|
|
967
|
+
/** */
|
|
968
|
+
"prop:title"?: QtiAssessmentTest["title"];
|
|
969
|
+
/** */
|
|
970
|
+
"prop:_testContext"?: QtiAssessmentTest["_testContext"];
|
|
971
|
+
/** */
|
|
972
|
+
"on:qti-assessment-test-connected"?: (e: CustomEvent) => void;
|
|
973
|
+
|
|
974
|
+
/** Set the innerHTML of the element */
|
|
975
|
+
innerHTML?: string;
|
|
976
|
+
/** Set the textContent of the element */
|
|
977
|
+
textContent?: string | number;
|
|
978
|
+
};
|
|
979
|
+
|
|
964
980
|
export type TestNavigationProps = {
|
|
965
981
|
/** */
|
|
966
982
|
identifier?: TestNavigation["identifier"];
|
|
@@ -1614,359 +1630,166 @@ export type QtiAssociateInteractionSolidJsProps = {
|
|
|
1614
1630
|
textContent?: string | number;
|
|
1615
1631
|
};
|
|
1616
1632
|
|
|
1617
|
-
export type
|
|
1618
|
-
/** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
|
|
1619
|
-
identifier?: QtiSimpleChoice["identifier"];
|
|
1620
|
-
/** Pins this choice in place when the enclosing interaction is shuffled. */
|
|
1621
|
-
fixed?: QtiSimpleChoice["fixed"];
|
|
1622
|
-
/** Identifier of a template variable controlling this choice's visibility. */
|
|
1623
|
-
"template-identifier"?: QtiSimpleChoice["templateIdentifier"];
|
|
1624
|
-
/** Identifier of a template variable controlling this choice's visibility. */
|
|
1625
|
-
templateIdentifier?: QtiSimpleChoice["templateIdentifier"];
|
|
1626
|
-
/** How `template-identifier` controls visibility. */
|
|
1627
|
-
"show-hide"?: QtiSimpleChoice["showHide"];
|
|
1628
|
-
/** How `template-identifier` controls visibility. */
|
|
1629
|
-
showHide?: QtiSimpleChoice["showHide"];
|
|
1633
|
+
export type QtiAssociableHotspotProps = {
|
|
1630
1634
|
/** */
|
|
1631
|
-
|
|
1635
|
+
identifier?: QtiAssociableHotspot["identifier"];
|
|
1636
|
+
/** Carries `:state(filled)` while the hotspot holds a chip. */
|
|
1637
|
+
internals?: QtiAssociableHotspot["internals"];
|
|
1638
|
+
|
|
1632
1639
|
/** */
|
|
1633
|
-
|
|
1640
|
+
"onqti-register-hotspot"?: (e: CustomEvent) => void;
|
|
1641
|
+
};
|
|
1642
|
+
|
|
1643
|
+
export type QtiAssociableHotspotSolidJsProps = {
|
|
1634
1644
|
/** */
|
|
1635
|
-
"
|
|
1645
|
+
"prop:identifier"?: QtiAssociableHotspot["identifier"];
|
|
1646
|
+
/** Carries `:state(filled)` while the hotspot holds a chip. */
|
|
1647
|
+
"prop:internals"?: QtiAssociableHotspot["internals"];
|
|
1636
1648
|
/** */
|
|
1637
|
-
|
|
1649
|
+
"on:qti-register-hotspot"?: (e: CustomEvent) => void;
|
|
1650
|
+
|
|
1651
|
+
/** Set the innerHTML of the element */
|
|
1652
|
+
innerHTML?: string;
|
|
1653
|
+
/** Set the textContent of the element */
|
|
1654
|
+
textContent?: string | number;
|
|
1655
|
+
};
|
|
1656
|
+
|
|
1657
|
+
export type QtiGapProps = {
|
|
1658
|
+
/** Required. Value recorded as the gap side of the response pair. */
|
|
1659
|
+
identifier?: QtiGap["identifier"];
|
|
1660
|
+
/** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1661
|
+
"match-max"?: unknown;
|
|
1662
|
+
/** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1663
|
+
undefined?: unknown;
|
|
1664
|
+
/** Minimum tokens this gap must hold. */
|
|
1665
|
+
"match-min"?: unknown;
|
|
1666
|
+
/** Not implemented. Whether this gap must be filled for the response to be valid. */
|
|
1667
|
+
required?: unknown;
|
|
1668
|
+
/** Not implemented. Identifier of a template variable controlling this gap's visibility. */
|
|
1669
|
+
"template-identifier"?: unknown;
|
|
1670
|
+
/** Not implemented. How `template-identifier` controls visibility. */
|
|
1671
|
+
"show-hide"?: unknown;
|
|
1638
1672
|
/** */
|
|
1639
|
-
|
|
1673
|
+
tabindex?: QtiGap["tabindex"];
|
|
1674
|
+
/** Carries `:state(filled)` while the gap holds a chip. */
|
|
1675
|
+
internals?: QtiGap["internals"];
|
|
1676
|
+
};
|
|
1677
|
+
|
|
1678
|
+
export type QtiGapSolidJsProps = {
|
|
1679
|
+
/** Required. Value recorded as the gap side of the response pair. */
|
|
1680
|
+
"prop:identifier"?: QtiGap["identifier"];
|
|
1681
|
+
/** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1682
|
+
"attr:match-max"?: unknown;
|
|
1683
|
+
/** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1684
|
+
"prop:undefined"?: unknown;
|
|
1685
|
+
/** Minimum tokens this gap must hold. */
|
|
1686
|
+
"attr:match-min"?: unknown;
|
|
1687
|
+
/** Not implemented. Whether this gap must be filled for the response to be valid. */
|
|
1688
|
+
"bool:required"?: unknown;
|
|
1689
|
+
/** Not implemented. Identifier of a template variable controlling this gap's visibility. */
|
|
1690
|
+
"attr:template-identifier"?: unknown;
|
|
1691
|
+
/** Not implemented. How `template-identifier` controls visibility. */
|
|
1692
|
+
"attr:show-hide"?: unknown;
|
|
1640
1693
|
/** */
|
|
1641
|
-
|
|
1694
|
+
"prop:tabindex"?: QtiGap["tabindex"];
|
|
1695
|
+
/** Carries `:state(filled)` while the gap holds a chip. */
|
|
1696
|
+
"prop:internals"?: QtiGap["internals"];
|
|
1697
|
+
|
|
1698
|
+
/** Set the innerHTML of the element */
|
|
1699
|
+
innerHTML?: string;
|
|
1700
|
+
/** Set the textContent of the element */
|
|
1701
|
+
textContent?: string | number;
|
|
1702
|
+
};
|
|
1703
|
+
|
|
1704
|
+
export type QtiGapImgProps = {
|
|
1642
1705
|
/** */
|
|
1643
|
-
|
|
1706
|
+
tabindex?: QtiGapImg["tabindex"];
|
|
1707
|
+
/** `qti-gap-img` is a draggable chip, so it needs ElementInternals to carry the drag states
|
|
1708
|
+
(`dragging`, `placeholder`). It works without a shadow root.
|
|
1709
|
+
|
|
1710
|
+
NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
|
|
1711
|
+
and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
|
|
1712
|
+
adding a `<slot>` to a `render()` first, otherwise the authored `<img>` child disappears. */
|
|
1713
|
+
internals?: QtiGapImg["internals"];
|
|
1714
|
+
};
|
|
1715
|
+
|
|
1716
|
+
export type QtiGapImgSolidJsProps = {
|
|
1644
1717
|
/** */
|
|
1645
|
-
|
|
1718
|
+
"prop:tabindex"?: QtiGapImg["tabindex"];
|
|
1719
|
+
/** `qti-gap-img` is a draggable chip, so it needs ElementInternals to carry the drag states
|
|
1720
|
+
(`dragging`, `placeholder`). It works without a shadow root.
|
|
1721
|
+
|
|
1722
|
+
NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
|
|
1723
|
+
and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
|
|
1724
|
+
adding a `<slot>` to a `render()` first, otherwise the authored `<img>` child disappears. */
|
|
1725
|
+
"prop:internals"?: QtiGapImg["internals"];
|
|
1726
|
+
|
|
1727
|
+
/** Set the innerHTML of the element */
|
|
1728
|
+
innerHTML?: string;
|
|
1729
|
+
/** Set the textContent of the element */
|
|
1730
|
+
textContent?: string | number;
|
|
1646
1731
|
};
|
|
1647
1732
|
|
|
1648
|
-
export type
|
|
1649
|
-
/** Required. Value recorded in the response when this
|
|
1650
|
-
|
|
1651
|
-
/**
|
|
1652
|
-
"
|
|
1653
|
-
/**
|
|
1654
|
-
|
|
1655
|
-
/**
|
|
1656
|
-
"
|
|
1657
|
-
/**
|
|
1658
|
-
|
|
1659
|
-
/**
|
|
1660
|
-
"
|
|
1733
|
+
export type QtiGapTextProps = {
|
|
1734
|
+
/** Required. Value recorded in the response pair when this token is placed into a gap. */
|
|
1735
|
+
identifier?: QtiGapText["identifier"];
|
|
1736
|
+
/** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1737
|
+
"match-max"?: unknown;
|
|
1738
|
+
/** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1739
|
+
undefined?: unknown;
|
|
1740
|
+
/** Minimum gaps this token must fill. */
|
|
1741
|
+
"match-min"?: unknown;
|
|
1742
|
+
/** Pins this token in place when the interaction is shuffled. */
|
|
1743
|
+
fixed?: unknown;
|
|
1744
|
+
/** Not implemented. Identifier of a template variable controlling this token's visibility. */
|
|
1745
|
+
"template-identifier"?: unknown;
|
|
1746
|
+
/** Not implemented. How `template-identifier` controls visibility. */
|
|
1747
|
+
"show-hide"?: unknown;
|
|
1661
1748
|
/** */
|
|
1662
|
-
|
|
1749
|
+
tabindex?: QtiGapText["tabindex"];
|
|
1663
1750
|
/** */
|
|
1664
|
-
"
|
|
1751
|
+
"aria-disabled"?: QtiGapText["disabled"];
|
|
1665
1752
|
/** */
|
|
1666
|
-
|
|
1753
|
+
disabled?: QtiGapText["disabled"];
|
|
1667
1754
|
/** */
|
|
1668
|
-
"
|
|
1755
|
+
"aria-readonly"?: QtiGapText["readonly"];
|
|
1669
1756
|
/** */
|
|
1670
|
-
|
|
1757
|
+
readonly?: QtiGapText["readonly"];
|
|
1671
1758
|
/** */
|
|
1672
|
-
|
|
1759
|
+
tabIndex?: QtiGapText["tabIndex"];
|
|
1673
1760
|
/** */
|
|
1674
|
-
|
|
1761
|
+
internals?: QtiGapText["internals"];
|
|
1762
|
+
};
|
|
1763
|
+
|
|
1764
|
+
export type QtiGapTextSolidJsProps = {
|
|
1765
|
+
/** Required. Value recorded in the response pair when this token is placed into a gap. */
|
|
1766
|
+
"prop:identifier"?: QtiGapText["identifier"];
|
|
1767
|
+
/** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1768
|
+
"attr:match-max"?: unknown;
|
|
1769
|
+
/** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1770
|
+
"prop:undefined"?: unknown;
|
|
1771
|
+
/** Minimum gaps this token must fill. */
|
|
1772
|
+
"attr:match-min"?: unknown;
|
|
1773
|
+
/** Pins this token in place when the interaction is shuffled. */
|
|
1774
|
+
"bool:fixed"?: unknown;
|
|
1775
|
+
/** Not implemented. Identifier of a template variable controlling this token's visibility. */
|
|
1776
|
+
"attr:template-identifier"?: unknown;
|
|
1777
|
+
/** Not implemented. How `template-identifier` controls visibility. */
|
|
1778
|
+
"attr:show-hide"?: unknown;
|
|
1675
1779
|
/** */
|
|
1676
|
-
"prop:
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
/**
|
|
1686
|
-
"
|
|
1687
|
-
/**
|
|
1688
|
-
|
|
1689
|
-
/** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
|
|
1690
|
-
"max-choices"?: QtiChoiceInteraction["maxChoices"];
|
|
1691
|
-
/** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
|
|
1692
|
-
maxChoices?: QtiChoiceInteraction["maxChoices"];
|
|
1693
|
-
/** Minimum selectable choices for a valid response. */
|
|
1694
|
-
"min-choices"?: QtiChoiceInteraction["minChoices"];
|
|
1695
|
-
/** Minimum selectable choices for a valid response. */
|
|
1696
|
-
minChoices?: QtiChoiceInteraction["minChoices"];
|
|
1697
|
-
/** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
|
|
1698
|
-
orientation?: QtiChoiceInteraction["orientation"];
|
|
1699
|
-
/** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
|
|
1700
|
-
shuffle?: unknown;
|
|
1701
|
-
/** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
|
|
1702
|
-
undefined?: unknown;
|
|
1703
|
-
/** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
|
|
1704
|
-
class?: QtiChoiceInteraction["class"];
|
|
1705
|
-
/** */
|
|
1706
|
-
response?: QtiChoiceInteraction["response"];
|
|
1707
|
-
/** */
|
|
1708
|
-
disabled?: QtiChoiceInteraction["disabled"];
|
|
1709
|
-
/** */
|
|
1710
|
-
readonly?: QtiChoiceInteraction["readonly"];
|
|
1711
|
-
/** */
|
|
1712
|
-
name?: QtiChoiceInteraction["name"];
|
|
1713
|
-
/** */
|
|
1714
|
-
value?: QtiChoiceInteraction["value"];
|
|
1715
|
-
/** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
|
|
1716
|
-
|
|
1717
|
-
**Public so it can be assigned directly, which is the development-time route.** An interaction
|
|
1718
|
-
has to work standalone, and in a story or a spec there is usually no provider above it — so
|
|
1719
|
-
setting the field is all that is needed:
|
|
1720
|
-
|
|
1721
|
-
orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
|
|
1722
|
-
|
|
1723
|
-
With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
|
|
1724
|
-
provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
|
|
1725
|
-
field. There is no merging — set the value on the provider in that case.
|
|
1726
|
-
|
|
1727
|
-
In a lit-html template, bind it as a property rather than assigning after the fact:
|
|
1728
|
-
|
|
1729
|
-
html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
|
|
1730
|
-
|
|
1731
|
-
The binding is committed on the detached template clone, before the fragment is inserted, so it
|
|
1732
|
-
is in place by `connectedCallback` — which matters for anything that reads config on connect.
|
|
1733
|
-
|
|
1734
|
-
It was `protected`, which fooled nobody: every caller reached it anyway through an
|
|
1735
|
-
`as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
|
|
1736
|
-
casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
|
|
1737
|
-
configContext?: QtiChoiceInteraction["configContext"];
|
|
1738
|
-
|
|
1739
|
-
/** */
|
|
1740
|
-
"onqti-register-interaction"?: (e: CustomEvent) => void;
|
|
1741
|
-
/** */
|
|
1742
|
-
"onqti-interaction-response"?: (e: CustomEvent) => void;
|
|
1743
|
-
};
|
|
1744
|
-
|
|
1745
|
-
export type QtiChoiceInteractionSolidJsProps = {
|
|
1746
|
-
/** Required. Identifier of the bound response variable. */
|
|
1747
|
-
"attr:response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
|
|
1748
|
-
/** Required. Identifier of the bound response variable. */
|
|
1749
|
-
"prop:responseIdentifier"?: QtiChoiceInteraction["responseIdentifier"];
|
|
1750
|
-
/** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
|
|
1751
|
-
"attr:max-choices"?: QtiChoiceInteraction["maxChoices"];
|
|
1752
|
-
/** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
|
|
1753
|
-
"prop:maxChoices"?: QtiChoiceInteraction["maxChoices"];
|
|
1754
|
-
/** Minimum selectable choices for a valid response. */
|
|
1755
|
-
"attr:min-choices"?: QtiChoiceInteraction["minChoices"];
|
|
1756
|
-
/** Minimum selectable choices for a valid response. */
|
|
1757
|
-
"prop:minChoices"?: QtiChoiceInteraction["minChoices"];
|
|
1758
|
-
/** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
|
|
1759
|
-
"prop:orientation"?: QtiChoiceInteraction["orientation"];
|
|
1760
|
-
/** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
|
|
1761
|
-
"bool:shuffle"?: unknown;
|
|
1762
|
-
/** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
|
|
1763
|
-
"prop:undefined"?: unknown;
|
|
1764
|
-
/** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
|
|
1765
|
-
"prop:class"?: QtiChoiceInteraction["class"];
|
|
1766
|
-
/** */
|
|
1767
|
-
"prop:response"?: QtiChoiceInteraction["response"];
|
|
1768
|
-
/** */
|
|
1769
|
-
"prop:disabled"?: QtiChoiceInteraction["disabled"];
|
|
1770
|
-
/** */
|
|
1771
|
-
"prop:readonly"?: QtiChoiceInteraction["readonly"];
|
|
1772
|
-
/** */
|
|
1773
|
-
"prop:name"?: QtiChoiceInteraction["name"];
|
|
1774
|
-
/** */
|
|
1775
|
-
"prop:value"?: QtiChoiceInteraction["value"];
|
|
1776
|
-
/** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
|
|
1777
|
-
|
|
1778
|
-
**Public so it can be assigned directly, which is the development-time route.** An interaction
|
|
1779
|
-
has to work standalone, and in a story or a spec there is usually no provider above it — so
|
|
1780
|
-
setting the field is all that is needed:
|
|
1781
|
-
|
|
1782
|
-
orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
|
|
1783
|
-
|
|
1784
|
-
With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
|
|
1785
|
-
provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
|
|
1786
|
-
field. There is no merging — set the value on the provider in that case.
|
|
1787
|
-
|
|
1788
|
-
In a lit-html template, bind it as a property rather than assigning after the fact:
|
|
1789
|
-
|
|
1790
|
-
html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
|
|
1791
|
-
|
|
1792
|
-
The binding is committed on the detached template clone, before the fragment is inserted, so it
|
|
1793
|
-
is in place by `connectedCallback` — which matters for anything that reads config on connect.
|
|
1794
|
-
|
|
1795
|
-
It was `protected`, which fooled nobody: every caller reached it anyway through an
|
|
1796
|
-
`as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
|
|
1797
|
-
casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
|
|
1798
|
-
"prop:configContext"?: QtiChoiceInteraction["configContext"];
|
|
1799
|
-
/** */
|
|
1800
|
-
"on:qti-register-interaction"?: (e: CustomEvent) => void;
|
|
1801
|
-
/** */
|
|
1802
|
-
"on:qti-interaction-response"?: (e: CustomEvent) => void;
|
|
1803
|
-
|
|
1804
|
-
/** Set the innerHTML of the element */
|
|
1805
|
-
innerHTML?: string;
|
|
1806
|
-
/** Set the textContent of the element */
|
|
1807
|
-
textContent?: string | number;
|
|
1808
|
-
};
|
|
1809
|
-
|
|
1810
|
-
export type QtiAssociableHotspotProps = {
|
|
1811
|
-
/** */
|
|
1812
|
-
identifier?: QtiAssociableHotspot["identifier"];
|
|
1813
|
-
/** Carries `:state(filled)` while the hotspot holds a chip. */
|
|
1814
|
-
internals?: QtiAssociableHotspot["internals"];
|
|
1815
|
-
|
|
1816
|
-
/** */
|
|
1817
|
-
"onqti-register-hotspot"?: (e: CustomEvent) => void;
|
|
1818
|
-
};
|
|
1819
|
-
|
|
1820
|
-
export type QtiAssociableHotspotSolidJsProps = {
|
|
1821
|
-
/** */
|
|
1822
|
-
"prop:identifier"?: QtiAssociableHotspot["identifier"];
|
|
1823
|
-
/** Carries `:state(filled)` while the hotspot holds a chip. */
|
|
1824
|
-
"prop:internals"?: QtiAssociableHotspot["internals"];
|
|
1825
|
-
/** */
|
|
1826
|
-
"on:qti-register-hotspot"?: (e: CustomEvent) => void;
|
|
1827
|
-
|
|
1828
|
-
/** Set the innerHTML of the element */
|
|
1829
|
-
innerHTML?: string;
|
|
1830
|
-
/** Set the textContent of the element */
|
|
1831
|
-
textContent?: string | number;
|
|
1832
|
-
};
|
|
1833
|
-
|
|
1834
|
-
export type QtiGapProps = {
|
|
1835
|
-
/** Required. Value recorded as the gap side of the response pair. */
|
|
1836
|
-
identifier?: QtiGap["identifier"];
|
|
1837
|
-
/** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1838
|
-
"match-max"?: unknown;
|
|
1839
|
-
/** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1840
|
-
undefined?: unknown;
|
|
1841
|
-
/** Minimum tokens this gap must hold. */
|
|
1842
|
-
"match-min"?: unknown;
|
|
1843
|
-
/** Not implemented. Whether this gap must be filled for the response to be valid. */
|
|
1844
|
-
required?: unknown;
|
|
1845
|
-
/** Not implemented. Identifier of a template variable controlling this gap's visibility. */
|
|
1846
|
-
"template-identifier"?: unknown;
|
|
1847
|
-
/** Not implemented. How `template-identifier` controls visibility. */
|
|
1848
|
-
"show-hide"?: unknown;
|
|
1849
|
-
/** */
|
|
1850
|
-
tabindex?: QtiGap["tabindex"];
|
|
1851
|
-
/** Carries `:state(filled)` while the gap holds a chip. */
|
|
1852
|
-
internals?: QtiGap["internals"];
|
|
1853
|
-
};
|
|
1854
|
-
|
|
1855
|
-
export type QtiGapSolidJsProps = {
|
|
1856
|
-
/** Required. Value recorded as the gap side of the response pair. */
|
|
1857
|
-
"prop:identifier"?: QtiGap["identifier"];
|
|
1858
|
-
/** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1859
|
-
"attr:match-max"?: unknown;
|
|
1860
|
-
/** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1861
|
-
"prop:undefined"?: unknown;
|
|
1862
|
-
/** Minimum tokens this gap must hold. */
|
|
1863
|
-
"attr:match-min"?: unknown;
|
|
1864
|
-
/** Not implemented. Whether this gap must be filled for the response to be valid. */
|
|
1865
|
-
"bool:required"?: unknown;
|
|
1866
|
-
/** Not implemented. Identifier of a template variable controlling this gap's visibility. */
|
|
1867
|
-
"attr:template-identifier"?: unknown;
|
|
1868
|
-
/** Not implemented. How `template-identifier` controls visibility. */
|
|
1869
|
-
"attr:show-hide"?: unknown;
|
|
1870
|
-
/** */
|
|
1871
|
-
"prop:tabindex"?: QtiGap["tabindex"];
|
|
1872
|
-
/** Carries `:state(filled)` while the gap holds a chip. */
|
|
1873
|
-
"prop:internals"?: QtiGap["internals"];
|
|
1874
|
-
|
|
1875
|
-
/** Set the innerHTML of the element */
|
|
1876
|
-
innerHTML?: string;
|
|
1877
|
-
/** Set the textContent of the element */
|
|
1878
|
-
textContent?: string | number;
|
|
1879
|
-
};
|
|
1880
|
-
|
|
1881
|
-
export type QtiGapImgProps = {
|
|
1882
|
-
/** */
|
|
1883
|
-
tabindex?: QtiGapImg["tabindex"];
|
|
1884
|
-
/** `qti-gap-img` is a draggable chip, so it needs ElementInternals to carry the drag states
|
|
1885
|
-
(`dragging`, `placeholder`). It works without a shadow root.
|
|
1886
|
-
|
|
1887
|
-
NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
|
|
1888
|
-
and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
|
|
1889
|
-
adding a `<slot>` to a `render()` first, otherwise the authored `<img>` child disappears. */
|
|
1890
|
-
internals?: QtiGapImg["internals"];
|
|
1891
|
-
};
|
|
1892
|
-
|
|
1893
|
-
export type QtiGapImgSolidJsProps = {
|
|
1894
|
-
/** */
|
|
1895
|
-
"prop:tabindex"?: QtiGapImg["tabindex"];
|
|
1896
|
-
/** `qti-gap-img` is a draggable chip, so it needs ElementInternals to carry the drag states
|
|
1897
|
-
(`dragging`, `placeholder`). It works without a shadow root.
|
|
1898
|
-
|
|
1899
|
-
NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
|
|
1900
|
-
and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
|
|
1901
|
-
adding a `<slot>` to a `render()` first, otherwise the authored `<img>` child disappears. */
|
|
1902
|
-
"prop:internals"?: QtiGapImg["internals"];
|
|
1903
|
-
|
|
1904
|
-
/** Set the innerHTML of the element */
|
|
1905
|
-
innerHTML?: string;
|
|
1906
|
-
/** Set the textContent of the element */
|
|
1907
|
-
textContent?: string | number;
|
|
1908
|
-
};
|
|
1909
|
-
|
|
1910
|
-
export type QtiGapTextProps = {
|
|
1911
|
-
/** Required. Value recorded in the response pair when this token is placed into a gap. */
|
|
1912
|
-
identifier?: QtiGapText["identifier"];
|
|
1913
|
-
/** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1914
|
-
"match-max"?: unknown;
|
|
1915
|
-
/** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1916
|
-
undefined?: unknown;
|
|
1917
|
-
/** Minimum gaps this token must fill. */
|
|
1918
|
-
"match-min"?: unknown;
|
|
1919
|
-
/** Pins this token in place when the interaction is shuffled. */
|
|
1920
|
-
fixed?: unknown;
|
|
1921
|
-
/** Not implemented. Identifier of a template variable controlling this token's visibility. */
|
|
1922
|
-
"template-identifier"?: unknown;
|
|
1923
|
-
/** Not implemented. How `template-identifier` controls visibility. */
|
|
1924
|
-
"show-hide"?: unknown;
|
|
1925
|
-
/** */
|
|
1926
|
-
tabindex?: QtiGapText["tabindex"];
|
|
1927
|
-
/** */
|
|
1928
|
-
"aria-disabled"?: QtiGapText["disabled"];
|
|
1929
|
-
/** */
|
|
1930
|
-
disabled?: QtiGapText["disabled"];
|
|
1931
|
-
/** */
|
|
1932
|
-
"aria-readonly"?: QtiGapText["readonly"];
|
|
1933
|
-
/** */
|
|
1934
|
-
readonly?: QtiGapText["readonly"];
|
|
1935
|
-
/** */
|
|
1936
|
-
tabIndex?: QtiGapText["tabIndex"];
|
|
1937
|
-
/** */
|
|
1938
|
-
internals?: QtiGapText["internals"];
|
|
1939
|
-
};
|
|
1940
|
-
|
|
1941
|
-
export type QtiGapTextSolidJsProps = {
|
|
1942
|
-
/** Required. Value recorded in the response pair when this token is placed into a gap. */
|
|
1943
|
-
"prop:identifier"?: QtiGapText["identifier"];
|
|
1944
|
-
/** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1945
|
-
"attr:match-max"?: unknown;
|
|
1946
|
-
/** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
|
|
1947
|
-
"prop:undefined"?: unknown;
|
|
1948
|
-
/** Minimum gaps this token must fill. */
|
|
1949
|
-
"attr:match-min"?: unknown;
|
|
1950
|
-
/** Pins this token in place when the interaction is shuffled. */
|
|
1951
|
-
"bool:fixed"?: unknown;
|
|
1952
|
-
/** Not implemented. Identifier of a template variable controlling this token's visibility. */
|
|
1953
|
-
"attr:template-identifier"?: unknown;
|
|
1954
|
-
/** Not implemented. How `template-identifier` controls visibility. */
|
|
1955
|
-
"attr:show-hide"?: unknown;
|
|
1956
|
-
/** */
|
|
1957
|
-
"prop:tabindex"?: QtiGapText["tabindex"];
|
|
1958
|
-
/** */
|
|
1959
|
-
"bool:aria-disabled"?: QtiGapText["disabled"];
|
|
1960
|
-
/** */
|
|
1961
|
-
"prop:disabled"?: QtiGapText["disabled"];
|
|
1962
|
-
/** */
|
|
1963
|
-
"bool:aria-readonly"?: QtiGapText["readonly"];
|
|
1964
|
-
/** */
|
|
1965
|
-
"prop:readonly"?: QtiGapText["readonly"];
|
|
1966
|
-
/** */
|
|
1967
|
-
"prop:tabIndex"?: QtiGapText["tabIndex"];
|
|
1968
|
-
/** */
|
|
1969
|
-
"prop:internals"?: QtiGapText["internals"];
|
|
1780
|
+
"prop:tabindex"?: QtiGapText["tabindex"];
|
|
1781
|
+
/** */
|
|
1782
|
+
"bool:aria-disabled"?: QtiGapText["disabled"];
|
|
1783
|
+
/** */
|
|
1784
|
+
"prop:disabled"?: QtiGapText["disabled"];
|
|
1785
|
+
/** */
|
|
1786
|
+
"bool:aria-readonly"?: QtiGapText["readonly"];
|
|
1787
|
+
/** */
|
|
1788
|
+
"prop:readonly"?: QtiGapText["readonly"];
|
|
1789
|
+
/** */
|
|
1790
|
+
"prop:tabIndex"?: QtiGapText["tabIndex"];
|
|
1791
|
+
/** */
|
|
1792
|
+
"prop:internals"?: QtiGapText["internals"];
|
|
1970
1793
|
|
|
1971
1794
|
/** Set the innerHTML of the element */
|
|
1972
1795
|
innerHTML?: string;
|
|
@@ -2132,25 +1955,218 @@ export type QtiInlineChoiceSolidJsProps = {
|
|
|
2132
1955
|
/** */
|
|
2133
1956
|
"prop:disabled"?: QtiInlineChoice["disabled"];
|
|
2134
1957
|
/** */
|
|
2135
|
-
"bool:aria-readonly"?: QtiInlineChoice["readonly"];
|
|
1958
|
+
"bool:aria-readonly"?: QtiInlineChoice["readonly"];
|
|
1959
|
+
/** */
|
|
1960
|
+
"prop:readonly"?: QtiInlineChoice["readonly"];
|
|
1961
|
+
/** */
|
|
1962
|
+
"prop:internals"?: QtiInlineChoice["internals"];
|
|
1963
|
+
/** */
|
|
1964
|
+
"on:qti-inline-choice-register"?: (e: CustomEvent) => void;
|
|
1965
|
+
/** */
|
|
1966
|
+
"on:qti-inline-choice-select"?: (e: CustomEvent) => void;
|
|
1967
|
+
|
|
1968
|
+
/** Set the innerHTML of the element */
|
|
1969
|
+
innerHTML?: string;
|
|
1970
|
+
/** Set the textContent of the element */
|
|
1971
|
+
textContent?: string | number;
|
|
1972
|
+
};
|
|
1973
|
+
|
|
1974
|
+
export type QtiPromptProps = {};
|
|
1975
|
+
|
|
1976
|
+
export type QtiPromptSolidJsProps = {
|
|
1977
|
+
/** Set the innerHTML of the element */
|
|
1978
|
+
innerHTML?: string;
|
|
1979
|
+
/** Set the textContent of the element */
|
|
1980
|
+
textContent?: string | number;
|
|
1981
|
+
};
|
|
1982
|
+
|
|
1983
|
+
export type QtiSimpleChoiceProps = {
|
|
1984
|
+
/** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
|
|
1985
|
+
identifier?: QtiSimpleChoice["identifier"];
|
|
1986
|
+
/** Pins this choice in place when the enclosing interaction is shuffled. */
|
|
1987
|
+
fixed?: QtiSimpleChoice["fixed"];
|
|
1988
|
+
/** Identifier of a template variable controlling this choice's visibility. */
|
|
1989
|
+
"template-identifier"?: QtiSimpleChoice["templateIdentifier"];
|
|
1990
|
+
/** Identifier of a template variable controlling this choice's visibility. */
|
|
1991
|
+
templateIdentifier?: QtiSimpleChoice["templateIdentifier"];
|
|
1992
|
+
/** How `template-identifier` controls visibility. */
|
|
1993
|
+
"show-hide"?: QtiSimpleChoice["showHide"];
|
|
1994
|
+
/** How `template-identifier` controls visibility. */
|
|
1995
|
+
showHide?: QtiSimpleChoice["showHide"];
|
|
1996
|
+
/** */
|
|
1997
|
+
tabindex?: QtiSimpleChoice["tabIndex"];
|
|
1998
|
+
/** */
|
|
1999
|
+
tabIndex?: QtiSimpleChoice["tabIndex"];
|
|
2000
|
+
/** */
|
|
2001
|
+
"aria-disabled"?: QtiSimpleChoice["disabled"];
|
|
2002
|
+
/** */
|
|
2003
|
+
disabled?: QtiSimpleChoice["disabled"];
|
|
2004
|
+
/** */
|
|
2005
|
+
"aria-readonly"?: QtiSimpleChoice["readonly"];
|
|
2006
|
+
/** */
|
|
2007
|
+
readonly?: QtiSimpleChoice["readonly"];
|
|
2008
|
+
/** */
|
|
2009
|
+
marker?: QtiSimpleChoice["marker"];
|
|
2010
|
+
/** */
|
|
2011
|
+
internals?: QtiSimpleChoice["internals"];
|
|
2012
|
+
};
|
|
2013
|
+
|
|
2014
|
+
export type QtiSimpleChoiceSolidJsProps = {
|
|
2015
|
+
/** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
|
|
2016
|
+
"prop:identifier"?: QtiSimpleChoice["identifier"];
|
|
2017
|
+
/** Pins this choice in place when the enclosing interaction is shuffled. */
|
|
2018
|
+
"prop:fixed"?: QtiSimpleChoice["fixed"];
|
|
2019
|
+
/** Identifier of a template variable controlling this choice's visibility. */
|
|
2020
|
+
"attr:template-identifier"?: QtiSimpleChoice["templateIdentifier"];
|
|
2021
|
+
/** Identifier of a template variable controlling this choice's visibility. */
|
|
2022
|
+
"prop:templateIdentifier"?: QtiSimpleChoice["templateIdentifier"];
|
|
2023
|
+
/** How `template-identifier` controls visibility. */
|
|
2024
|
+
"attr:show-hide"?: QtiSimpleChoice["showHide"];
|
|
2025
|
+
/** How `template-identifier` controls visibility. */
|
|
2026
|
+
"prop:showHide"?: QtiSimpleChoice["showHide"];
|
|
2027
|
+
/** */
|
|
2028
|
+
"attr:tabindex"?: QtiSimpleChoice["tabIndex"];
|
|
2029
|
+
/** */
|
|
2030
|
+
"prop:tabIndex"?: QtiSimpleChoice["tabIndex"];
|
|
2031
|
+
/** */
|
|
2032
|
+
"bool:aria-disabled"?: QtiSimpleChoice["disabled"];
|
|
2033
|
+
/** */
|
|
2034
|
+
"prop:disabled"?: QtiSimpleChoice["disabled"];
|
|
2035
|
+
/** */
|
|
2036
|
+
"bool:aria-readonly"?: QtiSimpleChoice["readonly"];
|
|
2037
|
+
/** */
|
|
2038
|
+
"prop:readonly"?: QtiSimpleChoice["readonly"];
|
|
2039
|
+
/** */
|
|
2040
|
+
"prop:marker"?: QtiSimpleChoice["marker"];
|
|
2041
|
+
/** */
|
|
2042
|
+
"prop:internals"?: QtiSimpleChoice["internals"];
|
|
2043
|
+
|
|
2044
|
+
/** Set the innerHTML of the element */
|
|
2045
|
+
innerHTML?: string;
|
|
2046
|
+
/** Set the textContent of the element */
|
|
2047
|
+
textContent?: string | number;
|
|
2048
|
+
};
|
|
2049
|
+
|
|
2050
|
+
export type QtiChoiceInteractionProps = {
|
|
2051
|
+
/** Required. Identifier of the bound response variable. */
|
|
2052
|
+
"response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
|
|
2053
|
+
/** Required. Identifier of the bound response variable. */
|
|
2054
|
+
responseIdentifier?: QtiChoiceInteraction["responseIdentifier"];
|
|
2055
|
+
/** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
|
|
2056
|
+
"max-choices"?: QtiChoiceInteraction["maxChoices"];
|
|
2057
|
+
/** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
|
|
2058
|
+
maxChoices?: QtiChoiceInteraction["maxChoices"];
|
|
2059
|
+
/** Minimum selectable choices for a valid response. */
|
|
2060
|
+
"min-choices"?: QtiChoiceInteraction["minChoices"];
|
|
2061
|
+
/** Minimum selectable choices for a valid response. */
|
|
2062
|
+
minChoices?: QtiChoiceInteraction["minChoices"];
|
|
2063
|
+
/** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
|
|
2064
|
+
orientation?: QtiChoiceInteraction["orientation"];
|
|
2065
|
+
/** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
|
|
2066
|
+
shuffle?: unknown;
|
|
2067
|
+
/** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
|
|
2068
|
+
undefined?: unknown;
|
|
2069
|
+
/** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
|
|
2070
|
+
class?: QtiChoiceInteraction["class"];
|
|
2071
|
+
/** */
|
|
2072
|
+
response?: QtiChoiceInteraction["response"];
|
|
2073
|
+
/** */
|
|
2074
|
+
disabled?: QtiChoiceInteraction["disabled"];
|
|
2075
|
+
/** */
|
|
2076
|
+
readonly?: QtiChoiceInteraction["readonly"];
|
|
2077
|
+
/** */
|
|
2078
|
+
name?: QtiChoiceInteraction["name"];
|
|
2079
|
+
/** */
|
|
2080
|
+
value?: QtiChoiceInteraction["value"];
|
|
2081
|
+
/** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
|
|
2082
|
+
|
|
2083
|
+
**Public so it can be assigned directly, which is the development-time route.** An interaction
|
|
2084
|
+
has to work standalone, and in a story or a spec there is usually no provider above it — so
|
|
2085
|
+
setting the field is all that is needed:
|
|
2086
|
+
|
|
2087
|
+
orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
|
|
2088
|
+
|
|
2089
|
+
With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
|
|
2090
|
+
provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
|
|
2091
|
+
field. There is no merging — set the value on the provider in that case.
|
|
2092
|
+
|
|
2093
|
+
In a lit-html template, bind it as a property rather than assigning after the fact:
|
|
2094
|
+
|
|
2095
|
+
html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
|
|
2096
|
+
|
|
2097
|
+
The binding is committed on the detached template clone, before the fragment is inserted, so it
|
|
2098
|
+
is in place by `connectedCallback` — which matters for anything that reads config on connect.
|
|
2099
|
+
|
|
2100
|
+
It was `protected`, which fooled nobody: every caller reached it anyway through an
|
|
2101
|
+
`as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
|
|
2102
|
+
casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
|
|
2103
|
+
configContext?: QtiChoiceInteraction["configContext"];
|
|
2104
|
+
|
|
2105
|
+
/** */
|
|
2106
|
+
"onqti-register-interaction"?: (e: CustomEvent) => void;
|
|
2107
|
+
/** */
|
|
2108
|
+
"onqti-interaction-response"?: (e: CustomEvent) => void;
|
|
2109
|
+
};
|
|
2110
|
+
|
|
2111
|
+
export type QtiChoiceInteractionSolidJsProps = {
|
|
2112
|
+
/** Required. Identifier of the bound response variable. */
|
|
2113
|
+
"attr:response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
|
|
2114
|
+
/** Required. Identifier of the bound response variable. */
|
|
2115
|
+
"prop:responseIdentifier"?: QtiChoiceInteraction["responseIdentifier"];
|
|
2116
|
+
/** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
|
|
2117
|
+
"attr:max-choices"?: QtiChoiceInteraction["maxChoices"];
|
|
2118
|
+
/** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
|
|
2119
|
+
"prop:maxChoices"?: QtiChoiceInteraction["maxChoices"];
|
|
2120
|
+
/** Minimum selectable choices for a valid response. */
|
|
2121
|
+
"attr:min-choices"?: QtiChoiceInteraction["minChoices"];
|
|
2122
|
+
/** Minimum selectable choices for a valid response. */
|
|
2123
|
+
"prop:minChoices"?: QtiChoiceInteraction["minChoices"];
|
|
2124
|
+
/** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
|
|
2125
|
+
"prop:orientation"?: QtiChoiceInteraction["orientation"];
|
|
2126
|
+
/** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
|
|
2127
|
+
"bool:shuffle"?: unknown;
|
|
2128
|
+
/** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
|
|
2129
|
+
"prop:undefined"?: unknown;
|
|
2130
|
+
/** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
|
|
2131
|
+
"prop:class"?: QtiChoiceInteraction["class"];
|
|
2132
|
+
/** */
|
|
2133
|
+
"prop:response"?: QtiChoiceInteraction["response"];
|
|
2136
2134
|
/** */
|
|
2137
|
-
"prop:
|
|
2135
|
+
"prop:disabled"?: QtiChoiceInteraction["disabled"];
|
|
2138
2136
|
/** */
|
|
2139
|
-
"prop:
|
|
2137
|
+
"prop:readonly"?: QtiChoiceInteraction["readonly"];
|
|
2140
2138
|
/** */
|
|
2141
|
-
"
|
|
2139
|
+
"prop:name"?: QtiChoiceInteraction["name"];
|
|
2142
2140
|
/** */
|
|
2143
|
-
"
|
|
2141
|
+
"prop:value"?: QtiChoiceInteraction["value"];
|
|
2142
|
+
/** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
|
|
2144
2143
|
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
textContent?: string | number;
|
|
2149
|
-
};
|
|
2144
|
+
**Public so it can be assigned directly, which is the development-time route.** An interaction
|
|
2145
|
+
has to work standalone, and in a story or a spec there is usually no provider above it — so
|
|
2146
|
+
setting the field is all that is needed:
|
|
2150
2147
|
|
|
2151
|
-
|
|
2148
|
+
orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
|
|
2149
|
+
|
|
2150
|
+
With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
|
|
2151
|
+
provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
|
|
2152
|
+
field. There is no merging — set the value on the provider in that case.
|
|
2153
|
+
|
|
2154
|
+
In a lit-html template, bind it as a property rather than assigning after the fact:
|
|
2155
|
+
|
|
2156
|
+
html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
|
|
2157
|
+
|
|
2158
|
+
The binding is committed on the detached template clone, before the fragment is inserted, so it
|
|
2159
|
+
is in place by `connectedCallback` — which matters for anything that reads config on connect.
|
|
2160
|
+
|
|
2161
|
+
It was `protected`, which fooled nobody: every caller reached it anyway through an
|
|
2162
|
+
`as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
|
|
2163
|
+
casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
|
|
2164
|
+
"prop:configContext"?: QtiChoiceInteraction["configContext"];
|
|
2165
|
+
/** */
|
|
2166
|
+
"on:qti-register-interaction"?: (e: CustomEvent) => void;
|
|
2167
|
+
/** */
|
|
2168
|
+
"on:qti-interaction-response"?: (e: CustomEvent) => void;
|
|
2152
2169
|
|
|
2153
|
-
export type QtiPromptSolidJsProps = {
|
|
2154
2170
|
/** Set the innerHTML of the element */
|
|
2155
2171
|
innerHTML?: string;
|
|
2156
2172
|
/** Set the textContent of the element */
|
|
@@ -6314,6 +6330,8 @@ export type CustomElements = {
|
|
|
6314
6330
|
* - `fixed`: undefined
|
|
6315
6331
|
* - `visible`: undefined
|
|
6316
6332
|
* - `keep-together`/`keepTogether`: undefined
|
|
6333
|
+
* - `navigation-mode`/`navigationMode`: undefined
|
|
6334
|
+
* - `submission-mode`/`submissionMode`: undefined
|
|
6317
6335
|
* - `title`: undefined (property only)
|
|
6318
6336
|
* - `_testContext`: undefined (property only)
|
|
6319
6337
|
*
|
|
@@ -6335,17 +6353,19 @@ export type CustomElements = {
|
|
|
6335
6353
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
6336
6354
|
*
|
|
6337
6355
|
* - `identifier`: undefined
|
|
6338
|
-
* - `
|
|
6339
|
-
* - `
|
|
6356
|
+
* - `class`: undefined
|
|
6357
|
+
* - `navigation-mode`/`navigationMode`: undefined
|
|
6358
|
+
* - `submission-mode`/`submissionMode`: undefined
|
|
6359
|
+
* - `title`: undefined (property only)
|
|
6340
6360
|
*
|
|
6341
6361
|
* ## Events
|
|
6342
6362
|
*
|
|
6343
6363
|
* Events that will be emitted by the component.
|
|
6344
6364
|
*
|
|
6345
|
-
* - `qti-
|
|
6365
|
+
* - `qti-test-part-connected`: undefined
|
|
6346
6366
|
*/
|
|
6347
|
-
"qti-
|
|
6348
|
-
|
|
6367
|
+
"qti-test-part": Partial<
|
|
6368
|
+
QtiTestPartProps & BaseProps<QtiTestPart> & BaseEvents
|
|
6349
6369
|
>;
|
|
6350
6370
|
|
|
6351
6371
|
/**
|
|
@@ -6356,19 +6376,17 @@ export type CustomElements = {
|
|
|
6356
6376
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
6357
6377
|
*
|
|
6358
6378
|
* - `identifier`: undefined
|
|
6359
|
-
* - `
|
|
6360
|
-
* - `
|
|
6361
|
-
* - `submission-mode`/`submissionMode`: undefined
|
|
6362
|
-
* - `title`: undefined (property only)
|
|
6379
|
+
* - `title`: undefined
|
|
6380
|
+
* - `_testContext`: undefined (property only)
|
|
6363
6381
|
*
|
|
6364
6382
|
* ## Events
|
|
6365
6383
|
*
|
|
6366
6384
|
* Events that will be emitted by the component.
|
|
6367
6385
|
*
|
|
6368
|
-
* - `qti-test-
|
|
6386
|
+
* - `qti-assessment-test-connected`: undefined
|
|
6369
6387
|
*/
|
|
6370
|
-
"qti-test
|
|
6371
|
-
|
|
6388
|
+
"qti-assessment-test": Partial<
|
|
6389
|
+
QtiAssessmentTestProps & BaseProps<QtiAssessmentTest> & BaseEvents
|
|
6372
6390
|
>;
|
|
6373
6391
|
|
|
6374
6392
|
/**
|
|
@@ -7044,134 +7062,6 @@ export type CustomElements = {
|
|
|
7044
7062
|
BaseEvents
|
|
7045
7063
|
>;
|
|
7046
7064
|
|
|
7047
|
-
/**
|
|
7048
|
-
* A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
|
|
7049
|
-
*
|
|
7050
|
-
* The `control` part is one box whose *role* is carried by state, not by its name: a radio
|
|
7051
|
-
* circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
|
|
7052
|
-
* when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
|
|
7053
|
-
*
|
|
7054
|
-
* ## Attributes & Properties
|
|
7055
|
-
*
|
|
7056
|
-
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
7057
|
-
*
|
|
7058
|
-
* - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
|
|
7059
|
-
* - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
|
|
7060
|
-
* - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
|
|
7061
|
-
* - `show-hide`/`showHide`: How `template-identifier` controls visibility.
|
|
7062
|
-
* - `tabindex`/`tabIndex`: undefined
|
|
7063
|
-
* - `aria-disabled`/`disabled`: undefined
|
|
7064
|
-
* - `aria-readonly`/`readonly`: undefined
|
|
7065
|
-
* - `marker`: undefined (property only)
|
|
7066
|
-
* - `checked`: undefined (property only) (readonly)
|
|
7067
|
-
* - `internals`: undefined (property only)
|
|
7068
|
-
*
|
|
7069
|
-
* ## Events
|
|
7070
|
-
*
|
|
7071
|
-
* Events that will be emitted by the component.
|
|
7072
|
-
*
|
|
7073
|
-
* - `undefined`: undefined
|
|
7074
|
-
*
|
|
7075
|
-
* ## Methods
|
|
7076
|
-
*
|
|
7077
|
-
* Methods that can be called to access component functionality.
|
|
7078
|
-
*
|
|
7079
|
-
* - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
|
|
7080
|
-
* - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
|
|
7081
|
-
*
|
|
7082
|
-
* ## CSS Parts
|
|
7083
|
-
*
|
|
7084
|
-
* Custom selectors for styling elements within the component.
|
|
7085
|
-
*
|
|
7086
|
-
* - `control`: The box before the label (radio / checkbox / drag grip).
|
|
7087
|
-
* - `control-mark`: The mark inside the box (inner dot / checkmark).
|
|
7088
|
-
* - `label`: The default slot holding the choice content.
|
|
7089
|
-
* - `marker`: The order-number badge, when `marker` is set.
|
|
7090
|
-
*/
|
|
7091
|
-
"qti-simple-choice": Partial<
|
|
7092
|
-
QtiSimpleChoiceProps & BaseProps<QtiSimpleChoice> & BaseEvents
|
|
7093
|
-
>;
|
|
7094
|
-
|
|
7095
|
-
/**
|
|
7096
|
-
* A single-response or multiple-response choice interaction.
|
|
7097
|
-
*
|
|
7098
|
-
* ## Attributes & Properties
|
|
7099
|
-
*
|
|
7100
|
-
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
7101
|
-
*
|
|
7102
|
-
* - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
|
|
7103
|
-
* - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
|
|
7104
|
-
* - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
|
|
7105
|
-
* - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
|
|
7106
|
-
* - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
|
|
7107
|
-
* - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
|
|
7108
|
-
* - `response`: undefined
|
|
7109
|
-
* - `disabled`: undefined
|
|
7110
|
-
* - `readonly`: undefined
|
|
7111
|
-
* - `name`: undefined
|
|
7112
|
-
* - `value`: undefined (property only)
|
|
7113
|
-
* - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
|
|
7114
|
-
*
|
|
7115
|
-
* **Public so it can be assigned directly, which is the development-time route.** An interaction
|
|
7116
|
-
* has to work standalone, and in a story or a spec there is usually no provider above it — so
|
|
7117
|
-
* setting the field is all that is needed:
|
|
7118
|
-
*
|
|
7119
|
-
* orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
|
|
7120
|
-
*
|
|
7121
|
-
* With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
|
|
7122
|
-
* provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
|
|
7123
|
-
* field. There is no merging — set the value on the provider in that case.
|
|
7124
|
-
*
|
|
7125
|
-
* In a lit-html template, bind it as a property rather than assigning after the fact:
|
|
7126
|
-
*
|
|
7127
|
-
* html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
|
|
7128
|
-
*
|
|
7129
|
-
* The binding is committed on the detached template clone, before the fragment is inserted, so it
|
|
7130
|
-
* is in place by `connectedCallback` — which matters for anything that reads config on connect.
|
|
7131
|
-
*
|
|
7132
|
-
* It was `protected`, which fooled nobody: every caller reached it anyway through an
|
|
7133
|
-
* `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
|
|
7134
|
-
* casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
|
|
7135
|
-
* - `internals`: undefined (property only) (readonly)
|
|
7136
|
-
* - `isInline`: undefined (property only) (readonly)
|
|
7137
|
-
* - `responseVariable`: undefined (property only) (readonly)
|
|
7138
|
-
*
|
|
7139
|
-
* ## Events
|
|
7140
|
-
*
|
|
7141
|
-
* Events that will be emitted by the component.
|
|
7142
|
-
*
|
|
7143
|
-
* - `qti-register-interaction`: undefined
|
|
7144
|
-
* - `qti-interaction-response`: undefined
|
|
7145
|
-
*
|
|
7146
|
-
* ## Slots
|
|
7147
|
-
*
|
|
7148
|
-
* Areas where markup can be added to the component.
|
|
7149
|
-
*
|
|
7150
|
-
* - `prompt`: The prompt shown above the choices.
|
|
7151
|
-
* - `(default)`: Default slot for `qti-simple-choice` elements.
|
|
7152
|
-
*
|
|
7153
|
-
* ## Methods
|
|
7154
|
-
*
|
|
7155
|
-
* Methods that can be called to access component functionality.
|
|
7156
|
-
*
|
|
7157
|
-
* - `validate() => boolean`: undefined
|
|
7158
|
-
* - `reportValidity() => boolean`: undefined
|
|
7159
|
-
* - `reset() => void`: undefined
|
|
7160
|
-
* - `formResetCallback() => void`: undefined
|
|
7161
|
-
* - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
|
|
7162
|
-
*
|
|
7163
|
-
* ## CSS Parts
|
|
7164
|
-
*
|
|
7165
|
-
* Custom selectors for styling elements within the component.
|
|
7166
|
-
*
|
|
7167
|
-
* - `prompt`: Wrapper around the prompt slot.
|
|
7168
|
-
* - `slot`: Wrapper around the default slot containing the choices.
|
|
7169
|
-
* - `message`: Live validation message region (role="alert").
|
|
7170
|
-
*/
|
|
7171
|
-
"qti-choice-interaction": Partial<
|
|
7172
|
-
QtiChoiceInteractionProps & BaseProps<QtiChoiceInteraction> & BaseEvents
|
|
7173
|
-
>;
|
|
7174
|
-
|
|
7175
7065
|
/**
|
|
7176
7066
|
* A drop target positioned over an image. Like `qti-gap`, it renders the chips it holds from
|
|
7177
7067
|
* `dragDropContext` rather than having them appended into it.
|
|
@@ -7315,23 +7205,100 @@ export type CustomElements = {
|
|
|
7315
7205
|
* - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
|
|
7316
7206
|
* - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
|
|
7317
7207
|
*/
|
|
7318
|
-
"qti-hotspot-choice": Partial<
|
|
7319
|
-
QtiHotspotChoiceProps & BaseProps<QtiHotspotChoice> & BaseEvents
|
|
7208
|
+
"qti-hotspot-choice": Partial<
|
|
7209
|
+
QtiHotspotChoiceProps & BaseProps<QtiHotspotChoice> & BaseEvents
|
|
7210
|
+
>;
|
|
7211
|
+
|
|
7212
|
+
/**
|
|
7213
|
+
* A selectable span of text inside `qti-hottext-interaction`.
|
|
7214
|
+
*
|
|
7215
|
+
* ## Attributes & Properties
|
|
7216
|
+
*
|
|
7217
|
+
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
7218
|
+
*
|
|
7219
|
+
* - `identifier`: Required. Value recorded in the response when this span is selected.
|
|
7220
|
+
* - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this span's visibility.
|
|
7221
|
+
* - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
|
|
7222
|
+
* - `tabindex`/`tabIndex`: undefined
|
|
7223
|
+
* - `aria-disabled`/`disabled`: undefined
|
|
7224
|
+
* - `aria-readonly`/`readonly`: undefined
|
|
7225
|
+
* - `internals`: undefined (property only)
|
|
7226
|
+
*
|
|
7227
|
+
* ## Events
|
|
7228
|
+
*
|
|
7229
|
+
* Events that will be emitted by the component.
|
|
7230
|
+
*
|
|
7231
|
+
* - `undefined`: undefined
|
|
7232
|
+
*
|
|
7233
|
+
* ## Methods
|
|
7234
|
+
*
|
|
7235
|
+
* Methods that can be called to access component functionality.
|
|
7236
|
+
*
|
|
7237
|
+
* - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
|
|
7238
|
+
* - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
|
|
7239
|
+
*/
|
|
7240
|
+
"qti-hottext": Partial<QtiHottextProps & BaseProps<QtiHottext> & BaseEvents>;
|
|
7241
|
+
|
|
7242
|
+
/**
|
|
7243
|
+
* An option in the dropdown of `qti-inline-choice-interaction`.
|
|
7244
|
+
*
|
|
7245
|
+
* ## Attributes & Properties
|
|
7246
|
+
*
|
|
7247
|
+
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
7248
|
+
*
|
|
7249
|
+
* - `identifier`: Required. Value recorded in the response when this option is selected.
|
|
7250
|
+
* - `fixed`/`undefined`: Pins this option in place when the interaction is shuffled.
|
|
7251
|
+
* - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this option's visibility.
|
|
7252
|
+
* - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
|
|
7253
|
+
* - `tabindex`/`tabIndex`: undefined
|
|
7254
|
+
* - `aria-disabled`/`disabled`: undefined
|
|
7255
|
+
* - `aria-readonly`/`readonly`: undefined
|
|
7256
|
+
* - `internals`: undefined (property only)
|
|
7257
|
+
*
|
|
7258
|
+
* ## Events
|
|
7259
|
+
*
|
|
7260
|
+
* Events that will be emitted by the component.
|
|
7261
|
+
*
|
|
7262
|
+
* - `qti-inline-choice-register`: undefined
|
|
7263
|
+
* - `qti-inline-choice-select`: undefined
|
|
7264
|
+
* - `undefined`: undefined
|
|
7265
|
+
*
|
|
7266
|
+
* ## Methods
|
|
7267
|
+
*
|
|
7268
|
+
* Methods that can be called to access component functionality.
|
|
7269
|
+
*
|
|
7270
|
+
* - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
|
|
7271
|
+
* - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
|
|
7272
|
+
*/
|
|
7273
|
+
"qti-inline-choice": Partial<
|
|
7274
|
+
QtiInlineChoiceProps & BaseProps<QtiInlineChoice> & BaseEvents
|
|
7320
7275
|
>;
|
|
7321
7276
|
|
|
7322
7277
|
/**
|
|
7323
|
-
*
|
|
7278
|
+
*
|
|
7279
|
+
*/
|
|
7280
|
+
"qti-prompt": Partial<QtiPromptProps & BaseProps<QtiPrompt> & BaseEvents>;
|
|
7281
|
+
|
|
7282
|
+
/**
|
|
7283
|
+
* A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
|
|
7284
|
+
*
|
|
7285
|
+
* The `control` part is one box whose *role* is carried by state, not by its name: a radio
|
|
7286
|
+
* circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
|
|
7287
|
+
* when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
|
|
7324
7288
|
*
|
|
7325
7289
|
* ## Attributes & Properties
|
|
7326
7290
|
*
|
|
7327
7291
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
7328
7292
|
*
|
|
7329
|
-
* - `identifier`: Required. Value recorded in the response when this
|
|
7330
|
-
* - `
|
|
7331
|
-
* - `
|
|
7293
|
+
* - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
|
|
7294
|
+
* - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
|
|
7295
|
+
* - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
|
|
7296
|
+
* - `show-hide`/`showHide`: How `template-identifier` controls visibility.
|
|
7332
7297
|
* - `tabindex`/`tabIndex`: undefined
|
|
7333
7298
|
* - `aria-disabled`/`disabled`: undefined
|
|
7334
7299
|
* - `aria-readonly`/`readonly`: undefined
|
|
7300
|
+
* - `marker`: undefined (property only)
|
|
7301
|
+
* - `checked`: undefined (property only) (readonly)
|
|
7335
7302
|
* - `internals`: undefined (property only)
|
|
7336
7303
|
*
|
|
7337
7304
|
* ## Events
|
|
@@ -7346,48 +7313,99 @@ export type CustomElements = {
|
|
|
7346
7313
|
*
|
|
7347
7314
|
* - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
|
|
7348
7315
|
* - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
|
|
7316
|
+
*
|
|
7317
|
+
* ## CSS Parts
|
|
7318
|
+
*
|
|
7319
|
+
* Custom selectors for styling elements within the component.
|
|
7320
|
+
*
|
|
7321
|
+
* - `control`: The box before the label (radio / checkbox / drag grip).
|
|
7322
|
+
* - `control-mark`: The mark inside the box (inner dot / checkmark).
|
|
7323
|
+
* - `label`: The default slot holding the choice content.
|
|
7324
|
+
* - `marker`: The order-number badge, when `marker` is set.
|
|
7349
7325
|
*/
|
|
7350
|
-
"qti-
|
|
7326
|
+
"qti-simple-choice": Partial<
|
|
7327
|
+
QtiSimpleChoiceProps & BaseProps<QtiSimpleChoice> & BaseEvents
|
|
7328
|
+
>;
|
|
7351
7329
|
|
|
7352
7330
|
/**
|
|
7353
|
-
*
|
|
7331
|
+
* A single-response or multiple-response choice interaction.
|
|
7354
7332
|
*
|
|
7355
7333
|
* ## Attributes & Properties
|
|
7356
7334
|
*
|
|
7357
7335
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
7358
7336
|
*
|
|
7359
|
-
* - `identifier`: Required.
|
|
7360
|
-
* - `
|
|
7361
|
-
* - `
|
|
7362
|
-
* - `
|
|
7363
|
-
* - `
|
|
7364
|
-
* - `
|
|
7365
|
-
* - `
|
|
7366
|
-
* - `
|
|
7337
|
+
* - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
|
|
7338
|
+
* - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
|
|
7339
|
+
* - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
|
|
7340
|
+
* - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
|
|
7341
|
+
* - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
|
|
7342
|
+
* - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
|
|
7343
|
+
* - `response`: undefined
|
|
7344
|
+
* - `disabled`: undefined
|
|
7345
|
+
* - `readonly`: undefined
|
|
7346
|
+
* - `name`: undefined
|
|
7347
|
+
* - `value`: undefined (property only)
|
|
7348
|
+
* - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
|
|
7349
|
+
*
|
|
7350
|
+
* **Public so it can be assigned directly, which is the development-time route.** An interaction
|
|
7351
|
+
* has to work standalone, and in a story or a spec there is usually no provider above it — so
|
|
7352
|
+
* setting the field is all that is needed:
|
|
7353
|
+
*
|
|
7354
|
+
* orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
|
|
7355
|
+
*
|
|
7356
|
+
* With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
|
|
7357
|
+
* provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
|
|
7358
|
+
* field. There is no merging — set the value on the provider in that case.
|
|
7359
|
+
*
|
|
7360
|
+
* In a lit-html template, bind it as a property rather than assigning after the fact:
|
|
7361
|
+
*
|
|
7362
|
+
* html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
|
|
7363
|
+
*
|
|
7364
|
+
* The binding is committed on the detached template clone, before the fragment is inserted, so it
|
|
7365
|
+
* is in place by `connectedCallback` — which matters for anything that reads config on connect.
|
|
7366
|
+
*
|
|
7367
|
+
* It was `protected`, which fooled nobody: every caller reached it anyway through an
|
|
7368
|
+
* `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
|
|
7369
|
+
* casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
|
|
7370
|
+
* - `internals`: undefined (property only) (readonly)
|
|
7371
|
+
* - `isInline`: undefined (property only) (readonly)
|
|
7372
|
+
* - `responseVariable`: undefined (property only) (readonly)
|
|
7367
7373
|
*
|
|
7368
7374
|
* ## Events
|
|
7369
7375
|
*
|
|
7370
7376
|
* Events that will be emitted by the component.
|
|
7371
7377
|
*
|
|
7372
|
-
* - `qti-
|
|
7373
|
-
* - `qti-
|
|
7374
|
-
*
|
|
7378
|
+
* - `qti-register-interaction`: undefined
|
|
7379
|
+
* - `qti-interaction-response`: undefined
|
|
7380
|
+
*
|
|
7381
|
+
* ## Slots
|
|
7382
|
+
*
|
|
7383
|
+
* Areas where markup can be added to the component.
|
|
7384
|
+
*
|
|
7385
|
+
* - `prompt`: The prompt shown above the choices.
|
|
7386
|
+
* - `(default)`: Default slot for `qti-simple-choice` elements.
|
|
7375
7387
|
*
|
|
7376
7388
|
* ## Methods
|
|
7377
7389
|
*
|
|
7378
7390
|
* Methods that can be called to access component functionality.
|
|
7379
7391
|
*
|
|
7380
|
-
* - `
|
|
7381
|
-
* - `
|
|
7382
|
-
|
|
7383
|
-
|
|
7384
|
-
|
|
7385
|
-
|
|
7386
|
-
|
|
7387
|
-
|
|
7392
|
+
* - `validate() => boolean`: undefined
|
|
7393
|
+
* - `reportValidity() => boolean`: undefined
|
|
7394
|
+
* - `reset() => void`: undefined
|
|
7395
|
+
* - `formResetCallback() => void`: undefined
|
|
7396
|
+
* - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
|
|
7397
|
+
*
|
|
7398
|
+
* ## CSS Parts
|
|
7399
|
+
*
|
|
7400
|
+
* Custom selectors for styling elements within the component.
|
|
7388
7401
|
*
|
|
7402
|
+
* - `prompt`: Wrapper around the prompt slot.
|
|
7403
|
+
* - `slot`: Wrapper around the default slot containing the choices.
|
|
7404
|
+
* - `message`: Live validation message region (role="alert").
|
|
7389
7405
|
*/
|
|
7390
|
-
"qti-
|
|
7406
|
+
"qti-choice-interaction": Partial<
|
|
7407
|
+
QtiChoiceInteractionProps & BaseProps<QtiChoiceInteraction> & BaseEvents
|
|
7408
|
+
>;
|
|
7391
7409
|
|
|
7392
7410
|
/**
|
|
7393
7411
|
* QTI Custom Interaction component for legacy CES-based interactions.
|
|
@@ -10885,6 +10903,8 @@ export type CustomElementsSolidJs = {
|
|
|
10885
10903
|
* - `fixed`: undefined
|
|
10886
10904
|
* - `visible`: undefined
|
|
10887
10905
|
* - `keep-together`/`keepTogether`: undefined
|
|
10906
|
+
* - `navigation-mode`/`navigationMode`: undefined
|
|
10907
|
+
* - `submission-mode`/`submissionMode`: undefined
|
|
10888
10908
|
* - `title`: undefined (property only)
|
|
10889
10909
|
* - `_testContext`: undefined (property only)
|
|
10890
10910
|
*
|
|
@@ -10909,19 +10929,21 @@ export type CustomElementsSolidJs = {
|
|
|
10909
10929
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
10910
10930
|
*
|
|
10911
10931
|
* - `identifier`: undefined
|
|
10912
|
-
* - `
|
|
10913
|
-
* - `
|
|
10932
|
+
* - `class`: undefined
|
|
10933
|
+
* - `navigation-mode`/`navigationMode`: undefined
|
|
10934
|
+
* - `submission-mode`/`submissionMode`: undefined
|
|
10935
|
+
* - `title`: undefined (property only)
|
|
10914
10936
|
*
|
|
10915
10937
|
* ## Events
|
|
10916
10938
|
*
|
|
10917
10939
|
* Events that will be emitted by the component.
|
|
10918
10940
|
*
|
|
10919
|
-
* - `qti-
|
|
10941
|
+
* - `qti-test-part-connected`: undefined
|
|
10920
10942
|
*/
|
|
10921
|
-
"qti-
|
|
10922
|
-
|
|
10923
|
-
|
|
10924
|
-
BaseProps<
|
|
10943
|
+
"qti-test-part": Partial<
|
|
10944
|
+
QtiTestPartProps &
|
|
10945
|
+
QtiTestPartSolidJsProps &
|
|
10946
|
+
BaseProps<QtiTestPart> &
|
|
10925
10947
|
BaseEvents
|
|
10926
10948
|
>;
|
|
10927
10949
|
|
|
@@ -10933,21 +10955,19 @@ export type CustomElementsSolidJs = {
|
|
|
10933
10955
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
10934
10956
|
*
|
|
10935
10957
|
* - `identifier`: undefined
|
|
10936
|
-
* - `
|
|
10937
|
-
* - `
|
|
10938
|
-
* - `submission-mode`/`submissionMode`: undefined
|
|
10939
|
-
* - `title`: undefined (property only)
|
|
10958
|
+
* - `title`: undefined
|
|
10959
|
+
* - `_testContext`: undefined (property only)
|
|
10940
10960
|
*
|
|
10941
10961
|
* ## Events
|
|
10942
10962
|
*
|
|
10943
10963
|
* Events that will be emitted by the component.
|
|
10944
10964
|
*
|
|
10945
|
-
* - `qti-test-
|
|
10965
|
+
* - `qti-assessment-test-connected`: undefined
|
|
10946
10966
|
*/
|
|
10947
|
-
"qti-test
|
|
10948
|
-
|
|
10949
|
-
|
|
10950
|
-
BaseProps<
|
|
10967
|
+
"qti-assessment-test": Partial<
|
|
10968
|
+
QtiAssessmentTestProps &
|
|
10969
|
+
QtiAssessmentTestSolidJsProps &
|
|
10970
|
+
BaseProps<QtiAssessmentTest> &
|
|
10951
10971
|
BaseEvents
|
|
10952
10972
|
>;
|
|
10953
10973
|
|
|
@@ -11606,123 +11626,24 @@ export type CustomElementsSolidJs = {
|
|
|
11606
11626
|
>;
|
|
11607
11627
|
|
|
11608
11628
|
/**
|
|
11609
|
-
* A choice in one of the two match sets of `qti-match-interaction`, or in
|
|
11610
|
-
* `qti-associate-interaction`.
|
|
11611
|
-
*
|
|
11612
|
-
* ## Attributes & Properties
|
|
11613
|
-
*
|
|
11614
|
-
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
11615
|
-
*
|
|
11616
|
-
* - `identifier`: Required. Value recorded in the response pair when this choice participates in an association.
|
|
11617
|
-
* - `match-max`/`matchMax`: the maximum number of selections a candidate must make, the other options will be disabled when max options is checked
|
|
11618
|
-
* - `match-min`/`matchMin`: the minimal number of selections a candidate must make
|
|
11619
|
-
* - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
|
|
11620
|
-
* - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this choice's visibility.
|
|
11621
|
-
* - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
|
|
11622
|
-
* - `tabindex`/`tabIndex`: undefined
|
|
11623
|
-
* - `aria-disabled`/`disabled`: undefined
|
|
11624
|
-
* - `aria-readonly`/`readonly`: undefined
|
|
11625
|
-
* - `acceptsDeclarativeDrops`: Opt-in marker read by `DragDropSlottedMixin`; see qti-gap. (property only) (readonly)
|
|
11626
|
-
* - `drags`: The chips this choice holds when it acts as a drop target (match-interaction's second set). (property only) (readonly)
|
|
11627
|
-
* - `internals`: undefined (property only)
|
|
11628
|
-
*
|
|
11629
|
-
* ## Events
|
|
11630
|
-
*
|
|
11631
|
-
* Events that will be emitted by the component.
|
|
11632
|
-
*
|
|
11633
|
-
* - `undefined`: undefined
|
|
11634
|
-
*
|
|
11635
|
-
* ## Methods
|
|
11636
|
-
*
|
|
11637
|
-
* Methods that can be called to access component functionality.
|
|
11638
|
-
*
|
|
11639
|
-
* - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
|
|
11640
|
-
* - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
|
|
11641
|
-
*/
|
|
11642
|
-
"qti-simple-associable-choice": Partial<
|
|
11643
|
-
QtiSimpleAssociableChoiceProps &
|
|
11644
|
-
QtiSimpleAssociableChoiceSolidJsProps &
|
|
11645
|
-
BaseProps<QtiSimpleAssociableChoice> &
|
|
11646
|
-
BaseEvents
|
|
11647
|
-
>;
|
|
11648
|
-
|
|
11649
|
-
/**
|
|
11650
|
-
* Drag-and-drop associate interaction: candidates pair associable choices.
|
|
11651
|
-
*
|
|
11652
|
-
* ## Attributes & Properties
|
|
11653
|
-
*
|
|
11654
|
-
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
11655
|
-
*
|
|
11656
|
-
* - `allowReorder`: undefined (property only)
|
|
11657
|
-
* - `sortablePlaceholderConfig`: undefined (property only)
|
|
11658
|
-
* - `sortableAnimationConfig`: undefined (property only)
|
|
11659
|
-
* - `isDraggingFromSlot`: undefined (property only) (readonly)
|
|
11660
|
-
*
|
|
11661
|
-
* ## Slots
|
|
11662
|
-
*
|
|
11663
|
-
* Areas where markup can be added to the component.
|
|
11664
|
-
*
|
|
11665
|
-
* - `prompt`: The prompt shown above the choices.
|
|
11666
|
-
* - `qti-simple-associable-choice`: The associable choice sources.
|
|
11667
|
-
*
|
|
11668
|
-
* ## Methods
|
|
11669
|
-
*
|
|
11670
|
-
* Methods that can be called to access component functionality.
|
|
11671
|
-
*
|
|
11672
|
-
* - `totalAssociationsFromState() => number`: How many associations the candidate has made.
|
|
11673
|
-
*
|
|
11674
|
-
* The mixin counts placed chips, which is right for gap-match — one chip in one gap is one
|
|
11675
|
-
* association — and wrong here. An association is a *pair*, so three associations are six chips,
|
|
11676
|
-
* and `max-associations="3"` compared 6 against 3 and declared the item invalid the moment it was
|
|
11677
|
-
* correctly filled in.
|
|
11678
|
-
*
|
|
11679
|
-
* A half-filled row is not an association yet, and `getResponse()` already knows that: it emits a
|
|
11680
|
-
* pair only when both sides hold a chip. Counting its entries counts associations by definition,
|
|
11681
|
-
* and keeps the number validation sees equal to the number the response reports.
|
|
11682
|
-
* - `getValue(val: string[]) => void`: undefined
|
|
11683
|
-
* - `initiateDrag(dragElement: HTMLElement, startX: number, startY: number, inputType: 'mouse' | 'touch', rest: [eventSource?: 'pointer' | 'mouse' | 'touch']) => void`: undefined
|
|
11684
|
-
* - `onSortableDragMove(clientX: number, clientY: number) => void`: undefined
|
|
11685
|
-
* - `allowDrop(draggable: HTMLElement, droppable: HTMLElement) => boolean`: undefined
|
|
11686
|
-
* - `handleDrop(draggable: HTMLElement, droppable: HTMLElement) => void`: undefined
|
|
11687
|
-
* - `handleInvalidDrop(dragSource: HTMLElement | null) => void`: undefined
|
|
11688
|
-
*
|
|
11689
|
-
* ## CSS Parts
|
|
11690
|
-
*
|
|
11691
|
-
* Custom selectors for styling elements within the component.
|
|
11692
|
-
*
|
|
11693
|
-
* - `drags`: Wrapper around the associable choice slot.
|
|
11694
|
-
* - `drops`: The container holding all drop targets.
|
|
11695
|
-
* - `drop-row`: Container for one left/right drop pair.
|
|
11696
|
-
* - `drop`: Each individual drop target.
|
|
11697
|
-
* - `message`: Live validation message region (role="alert").
|
|
11698
|
-
*/
|
|
11699
|
-
"qti-associate-interaction": Partial<
|
|
11700
|
-
QtiAssociateInteractionProps &
|
|
11701
|
-
QtiAssociateInteractionSolidJsProps &
|
|
11702
|
-
BaseProps<QtiAssociateInteraction> &
|
|
11703
|
-
BaseEvents
|
|
11704
|
-
>;
|
|
11705
|
-
|
|
11706
|
-
/**
|
|
11707
|
-
* A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
|
|
11708
|
-
*
|
|
11709
|
-
* The `control` part is one box whose *role* is carried by state, not by its name: a radio
|
|
11710
|
-
* circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
|
|
11711
|
-
* when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
|
|
11629
|
+
* A choice in one of the two match sets of `qti-match-interaction`, or in
|
|
11630
|
+
* `qti-associate-interaction`.
|
|
11712
11631
|
*
|
|
11713
11632
|
* ## Attributes & Properties
|
|
11714
11633
|
*
|
|
11715
11634
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
11716
11635
|
*
|
|
11717
|
-
* - `identifier`: Required. Value recorded in the response when this choice
|
|
11636
|
+
* - `identifier`: Required. Value recorded in the response pair when this choice participates in an association.
|
|
11637
|
+
* - `match-max`/`matchMax`: the maximum number of selections a candidate must make, the other options will be disabled when max options is checked
|
|
11638
|
+
* - `match-min`/`matchMin`: the minimal number of selections a candidate must make
|
|
11718
11639
|
* - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
|
|
11719
|
-
* - `template-identifier`/`
|
|
11720
|
-
* - `show-hide`/`
|
|
11640
|
+
* - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this choice's visibility.
|
|
11641
|
+
* - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
|
|
11721
11642
|
* - `tabindex`/`tabIndex`: undefined
|
|
11722
11643
|
* - `aria-disabled`/`disabled`: undefined
|
|
11723
11644
|
* - `aria-readonly`/`readonly`: undefined
|
|
11724
|
-
* - `
|
|
11725
|
-
* - `
|
|
11645
|
+
* - `acceptsDeclarativeDrops`: Opt-in marker read by `DragDropSlottedMixin`; see qti-gap. (property only) (readonly)
|
|
11646
|
+
* - `drags`: The chips this choice holds when it acts as a drop target (match-interaction's second set). (property only) (readonly)
|
|
11726
11647
|
* - `internals`: undefined (property only)
|
|
11727
11648
|
*
|
|
11728
11649
|
* ## Events
|
|
@@ -11737,103 +11658,68 @@ export type CustomElementsSolidJs = {
|
|
|
11737
11658
|
*
|
|
11738
11659
|
* - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
|
|
11739
11660
|
* - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
|
|
11740
|
-
*
|
|
11741
|
-
* ## CSS Parts
|
|
11742
|
-
*
|
|
11743
|
-
* Custom selectors for styling elements within the component.
|
|
11744
|
-
*
|
|
11745
|
-
* - `control`: The box before the label (radio / checkbox / drag grip).
|
|
11746
|
-
* - `control-mark`: The mark inside the box (inner dot / checkmark).
|
|
11747
|
-
* - `label`: The default slot holding the choice content.
|
|
11748
|
-
* - `marker`: The order-number badge, when `marker` is set.
|
|
11749
11661
|
*/
|
|
11750
|
-
"qti-simple-choice": Partial<
|
|
11751
|
-
|
|
11752
|
-
|
|
11753
|
-
BaseProps<
|
|
11662
|
+
"qti-simple-associable-choice": Partial<
|
|
11663
|
+
QtiSimpleAssociableChoiceProps &
|
|
11664
|
+
QtiSimpleAssociableChoiceSolidJsProps &
|
|
11665
|
+
BaseProps<QtiSimpleAssociableChoice> &
|
|
11754
11666
|
BaseEvents
|
|
11755
11667
|
>;
|
|
11756
11668
|
|
|
11757
11669
|
/**
|
|
11758
|
-
*
|
|
11670
|
+
* Drag-and-drop associate interaction: candidates pair associable choices.
|
|
11759
11671
|
*
|
|
11760
11672
|
* ## Attributes & Properties
|
|
11761
11673
|
*
|
|
11762
11674
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
11763
11675
|
*
|
|
11764
|
-
* - `
|
|
11765
|
-
* - `
|
|
11766
|
-
* - `
|
|
11767
|
-
* - `
|
|
11768
|
-
* - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
|
|
11769
|
-
* - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
|
|
11770
|
-
* - `response`: undefined
|
|
11771
|
-
* - `disabled`: undefined
|
|
11772
|
-
* - `readonly`: undefined
|
|
11773
|
-
* - `name`: undefined
|
|
11774
|
-
* - `value`: undefined (property only)
|
|
11775
|
-
* - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
|
|
11776
|
-
*
|
|
11777
|
-
* **Public so it can be assigned directly, which is the development-time route.** An interaction
|
|
11778
|
-
* has to work standalone, and in a story or a spec there is usually no provider above it — so
|
|
11779
|
-
* setting the field is all that is needed:
|
|
11780
|
-
*
|
|
11781
|
-
* orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
|
|
11782
|
-
*
|
|
11783
|
-
* With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
|
|
11784
|
-
* provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
|
|
11785
|
-
* field. There is no merging — set the value on the provider in that case.
|
|
11786
|
-
*
|
|
11787
|
-
* In a lit-html template, bind it as a property rather than assigning after the fact:
|
|
11788
|
-
*
|
|
11789
|
-
* html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
|
|
11790
|
-
*
|
|
11791
|
-
* The binding is committed on the detached template clone, before the fragment is inserted, so it
|
|
11792
|
-
* is in place by `connectedCallback` — which matters for anything that reads config on connect.
|
|
11793
|
-
*
|
|
11794
|
-
* It was `protected`, which fooled nobody: every caller reached it anyway through an
|
|
11795
|
-
* `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
|
|
11796
|
-
* casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
|
|
11797
|
-
* - `internals`: undefined (property only) (readonly)
|
|
11798
|
-
* - `isInline`: undefined (property only) (readonly)
|
|
11799
|
-
* - `responseVariable`: undefined (property only) (readonly)
|
|
11800
|
-
*
|
|
11801
|
-
* ## Events
|
|
11802
|
-
*
|
|
11803
|
-
* Events that will be emitted by the component.
|
|
11804
|
-
*
|
|
11805
|
-
* - `qti-register-interaction`: undefined
|
|
11806
|
-
* - `qti-interaction-response`: undefined
|
|
11676
|
+
* - `allowReorder`: undefined (property only)
|
|
11677
|
+
* - `sortablePlaceholderConfig`: undefined (property only)
|
|
11678
|
+
* - `sortableAnimationConfig`: undefined (property only)
|
|
11679
|
+
* - `isDraggingFromSlot`: undefined (property only) (readonly)
|
|
11807
11680
|
*
|
|
11808
11681
|
* ## Slots
|
|
11809
11682
|
*
|
|
11810
11683
|
* Areas where markup can be added to the component.
|
|
11811
11684
|
*
|
|
11812
11685
|
* - `prompt`: The prompt shown above the choices.
|
|
11813
|
-
* - `
|
|
11686
|
+
* - `qti-simple-associable-choice`: The associable choice sources.
|
|
11814
11687
|
*
|
|
11815
11688
|
* ## Methods
|
|
11816
11689
|
*
|
|
11817
11690
|
* Methods that can be called to access component functionality.
|
|
11818
11691
|
*
|
|
11819
|
-
* - `
|
|
11820
|
-
*
|
|
11821
|
-
* -
|
|
11822
|
-
*
|
|
11823
|
-
*
|
|
11692
|
+
* - `totalAssociationsFromState() => number`: How many associations the candidate has made.
|
|
11693
|
+
*
|
|
11694
|
+
* The mixin counts placed chips, which is right for gap-match — one chip in one gap is one
|
|
11695
|
+
* association — and wrong here. An association is a *pair*, so three associations are six chips,
|
|
11696
|
+
* and `max-associations="3"` compared 6 against 3 and declared the item invalid the moment it was
|
|
11697
|
+
* correctly filled in.
|
|
11698
|
+
*
|
|
11699
|
+
* A half-filled row is not an association yet, and `getResponse()` already knows that: it emits a
|
|
11700
|
+
* pair only when both sides hold a chip. Counting its entries counts associations by definition,
|
|
11701
|
+
* and keeps the number validation sees equal to the number the response reports.
|
|
11702
|
+
* - `getValue(val: string[]) => void`: undefined
|
|
11703
|
+
* - `initiateDrag(dragElement: HTMLElement, startX: number, startY: number, inputType: 'mouse' | 'touch', rest: [eventSource?: 'pointer' | 'mouse' | 'touch']) => void`: undefined
|
|
11704
|
+
* - `onSortableDragMove(clientX: number, clientY: number) => void`: undefined
|
|
11705
|
+
* - `allowDrop(draggable: HTMLElement, droppable: HTMLElement) => boolean`: undefined
|
|
11706
|
+
* - `handleDrop(draggable: HTMLElement, droppable: HTMLElement) => void`: undefined
|
|
11707
|
+
* - `handleInvalidDrop(dragSource: HTMLElement | null) => void`: undefined
|
|
11824
11708
|
*
|
|
11825
11709
|
* ## CSS Parts
|
|
11826
11710
|
*
|
|
11827
11711
|
* Custom selectors for styling elements within the component.
|
|
11828
11712
|
*
|
|
11829
|
-
* - `
|
|
11830
|
-
* - `
|
|
11713
|
+
* - `drags`: Wrapper around the associable choice slot.
|
|
11714
|
+
* - `drops`: The container holding all drop targets.
|
|
11715
|
+
* - `drop-row`: Container for one left/right drop pair.
|
|
11716
|
+
* - `drop`: Each individual drop target.
|
|
11831
11717
|
* - `message`: Live validation message region (role="alert").
|
|
11832
11718
|
*/
|
|
11833
|
-
"qti-
|
|
11834
|
-
|
|
11835
|
-
|
|
11836
|
-
BaseProps<
|
|
11719
|
+
"qti-associate-interaction": Partial<
|
|
11720
|
+
QtiAssociateInteractionProps &
|
|
11721
|
+
QtiAssociateInteractionSolidJsProps &
|
|
11722
|
+
BaseProps<QtiAssociateInteraction> &
|
|
11837
11723
|
BaseEvents
|
|
11838
11724
|
>;
|
|
11839
11725
|
|
|
@@ -12079,6 +11965,140 @@ export type CustomElementsSolidJs = {
|
|
|
12079
11965
|
QtiPromptProps & QtiPromptSolidJsProps & BaseProps<QtiPrompt> & BaseEvents
|
|
12080
11966
|
>;
|
|
12081
11967
|
|
|
11968
|
+
/**
|
|
11969
|
+
* A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
|
|
11970
|
+
*
|
|
11971
|
+
* The `control` part is one box whose *role* is carried by state, not by its name: a radio
|
|
11972
|
+
* circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
|
|
11973
|
+
* when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
|
|
11974
|
+
*
|
|
11975
|
+
* ## Attributes & Properties
|
|
11976
|
+
*
|
|
11977
|
+
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
11978
|
+
*
|
|
11979
|
+
* - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
|
|
11980
|
+
* - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
|
|
11981
|
+
* - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
|
|
11982
|
+
* - `show-hide`/`showHide`: How `template-identifier` controls visibility.
|
|
11983
|
+
* - `tabindex`/`tabIndex`: undefined
|
|
11984
|
+
* - `aria-disabled`/`disabled`: undefined
|
|
11985
|
+
* - `aria-readonly`/`readonly`: undefined
|
|
11986
|
+
* - `marker`: undefined (property only)
|
|
11987
|
+
* - `checked`: undefined (property only) (readonly)
|
|
11988
|
+
* - `internals`: undefined (property only)
|
|
11989
|
+
*
|
|
11990
|
+
* ## Events
|
|
11991
|
+
*
|
|
11992
|
+
* Events that will be emitted by the component.
|
|
11993
|
+
*
|
|
11994
|
+
* - `undefined`: undefined
|
|
11995
|
+
*
|
|
11996
|
+
* ## Methods
|
|
11997
|
+
*
|
|
11998
|
+
* Methods that can be called to access component functionality.
|
|
11999
|
+
*
|
|
12000
|
+
* - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
|
|
12001
|
+
* - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
|
|
12002
|
+
*
|
|
12003
|
+
* ## CSS Parts
|
|
12004
|
+
*
|
|
12005
|
+
* Custom selectors for styling elements within the component.
|
|
12006
|
+
*
|
|
12007
|
+
* - `control`: The box before the label (radio / checkbox / drag grip).
|
|
12008
|
+
* - `control-mark`: The mark inside the box (inner dot / checkmark).
|
|
12009
|
+
* - `label`: The default slot holding the choice content.
|
|
12010
|
+
* - `marker`: The order-number badge, when `marker` is set.
|
|
12011
|
+
*/
|
|
12012
|
+
"qti-simple-choice": Partial<
|
|
12013
|
+
QtiSimpleChoiceProps &
|
|
12014
|
+
QtiSimpleChoiceSolidJsProps &
|
|
12015
|
+
BaseProps<QtiSimpleChoice> &
|
|
12016
|
+
BaseEvents
|
|
12017
|
+
>;
|
|
12018
|
+
|
|
12019
|
+
/**
|
|
12020
|
+
* A single-response or multiple-response choice interaction.
|
|
12021
|
+
*
|
|
12022
|
+
* ## Attributes & Properties
|
|
12023
|
+
*
|
|
12024
|
+
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
12025
|
+
*
|
|
12026
|
+
* - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
|
|
12027
|
+
* - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
|
|
12028
|
+
* - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
|
|
12029
|
+
* - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
|
|
12030
|
+
* - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
|
|
12031
|
+
* - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
|
|
12032
|
+
* - `response`: undefined
|
|
12033
|
+
* - `disabled`: undefined
|
|
12034
|
+
* - `readonly`: undefined
|
|
12035
|
+
* - `name`: undefined
|
|
12036
|
+
* - `value`: undefined (property only)
|
|
12037
|
+
* - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
|
|
12038
|
+
*
|
|
12039
|
+
* **Public so it can be assigned directly, which is the development-time route.** An interaction
|
|
12040
|
+
* has to work standalone, and in a story or a spec there is usually no provider above it — so
|
|
12041
|
+
* setting the field is all that is needed:
|
|
12042
|
+
*
|
|
12043
|
+
* orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
|
|
12044
|
+
*
|
|
12045
|
+
* With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
|
|
12046
|
+
* provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
|
|
12047
|
+
* field. There is no merging — set the value on the provider in that case.
|
|
12048
|
+
*
|
|
12049
|
+
* In a lit-html template, bind it as a property rather than assigning after the fact:
|
|
12050
|
+
*
|
|
12051
|
+
* html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
|
|
12052
|
+
*
|
|
12053
|
+
* The binding is committed on the detached template clone, before the fragment is inserted, so it
|
|
12054
|
+
* is in place by `connectedCallback` — which matters for anything that reads config on connect.
|
|
12055
|
+
*
|
|
12056
|
+
* It was `protected`, which fooled nobody: every caller reached it anyway through an
|
|
12057
|
+
* `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
|
|
12058
|
+
* casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
|
|
12059
|
+
* - `internals`: undefined (property only) (readonly)
|
|
12060
|
+
* - `isInline`: undefined (property only) (readonly)
|
|
12061
|
+
* - `responseVariable`: undefined (property only) (readonly)
|
|
12062
|
+
*
|
|
12063
|
+
* ## Events
|
|
12064
|
+
*
|
|
12065
|
+
* Events that will be emitted by the component.
|
|
12066
|
+
*
|
|
12067
|
+
* - `qti-register-interaction`: undefined
|
|
12068
|
+
* - `qti-interaction-response`: undefined
|
|
12069
|
+
*
|
|
12070
|
+
* ## Slots
|
|
12071
|
+
*
|
|
12072
|
+
* Areas where markup can be added to the component.
|
|
12073
|
+
*
|
|
12074
|
+
* - `prompt`: The prompt shown above the choices.
|
|
12075
|
+
* - `(default)`: Default slot for `qti-simple-choice` elements.
|
|
12076
|
+
*
|
|
12077
|
+
* ## Methods
|
|
12078
|
+
*
|
|
12079
|
+
* Methods that can be called to access component functionality.
|
|
12080
|
+
*
|
|
12081
|
+
* - `validate() => boolean`: undefined
|
|
12082
|
+
* - `reportValidity() => boolean`: undefined
|
|
12083
|
+
* - `reset() => void`: undefined
|
|
12084
|
+
* - `formResetCallback() => void`: undefined
|
|
12085
|
+
* - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
|
|
12086
|
+
*
|
|
12087
|
+
* ## CSS Parts
|
|
12088
|
+
*
|
|
12089
|
+
* Custom selectors for styling elements within the component.
|
|
12090
|
+
*
|
|
12091
|
+
* - `prompt`: Wrapper around the prompt slot.
|
|
12092
|
+
* - `slot`: Wrapper around the default slot containing the choices.
|
|
12093
|
+
* - `message`: Live validation message region (role="alert").
|
|
12094
|
+
*/
|
|
12095
|
+
"qti-choice-interaction": Partial<
|
|
12096
|
+
QtiChoiceInteractionProps &
|
|
12097
|
+
QtiChoiceInteractionSolidJsProps &
|
|
12098
|
+
BaseProps<QtiChoiceInteraction> &
|
|
12099
|
+
BaseEvents
|
|
12100
|
+
>;
|
|
12101
|
+
|
|
12082
12102
|
/**
|
|
12083
12103
|
* QTI Custom Interaction component for legacy CES-based interactions.
|
|
12084
12104
|
*
|