@longsightgroup/qti3-core 0.7.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +41 -10
  2. package/dist/content-text.d.ts +14 -0
  3. package/dist/content-text.d.ts.map +1 -0
  4. package/dist/content-text.js +58 -0
  5. package/dist/content-text.js.map +1 -0
  6. package/dist/index.d.ts +7 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +6 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/package-xml.d.ts +12 -0
  11. package/dist/package-xml.d.ts.map +1 -0
  12. package/dist/package-xml.js +17 -0
  13. package/dist/package-xml.js.map +1 -0
  14. package/dist/parser-custom-interactions.d.ts +8 -0
  15. package/dist/parser-custom-interactions.d.ts.map +1 -0
  16. package/dist/parser-custom-interactions.js +178 -0
  17. package/dist/parser-custom-interactions.js.map +1 -0
  18. package/dist/parser-declarations.d.ts +6 -0
  19. package/dist/parser-declarations.d.ts.map +1 -0
  20. package/dist/parser-declarations.js +136 -0
  21. package/dist/parser-declarations.js.map +1 -0
  22. package/dist/parser-item-metadata.d.ts +9 -0
  23. package/dist/parser-item-metadata.d.ts.map +1 -0
  24. package/dist/parser-item-metadata.js +158 -0
  25. package/dist/parser-item-metadata.js.map +1 -0
  26. package/dist/parser-processing.d.ts +5 -0
  27. package/dist/parser-processing.d.ts.map +1 -0
  28. package/dist/parser-processing.js +642 -0
  29. package/dist/parser-processing.js.map +1 -0
  30. package/dist/parser-values.d.ts +8 -0
  31. package/dist/parser-values.d.ts.map +1 -0
  32. package/dist/parser-values.js +49 -0
  33. package/dist/parser-values.js.map +1 -0
  34. package/dist/parser.d.ts.map +1 -1
  35. package/dist/parser.js +32 -1086
  36. package/dist/parser.js.map +1 -1
  37. package/dist/processing-expression-tags.d.ts +56 -0
  38. package/dist/processing-expression-tags.d.ts.map +1 -0
  39. package/dist/processing-expression-tags.js +52 -0
  40. package/dist/processing-expression-tags.js.map +1 -0
  41. package/dist/processing-rules.d.ts +3 -0
  42. package/dist/processing-rules.d.ts.map +1 -0
  43. package/dist/processing-rules.js +10 -0
  44. package/dist/processing-rules.js.map +1 -0
  45. package/dist/serializer-processing-expressions.d.ts +8 -0
  46. package/dist/serializer-processing-expressions.d.ts.map +1 -0
  47. package/dist/serializer-processing-expressions.js +198 -0
  48. package/dist/serializer-processing-expressions.js.map +1 -0
  49. package/dist/serializer-processing-xml.d.ts +15 -0
  50. package/dist/serializer-processing-xml.d.ts.map +1 -0
  51. package/dist/serializer-processing-xml.js +46 -0
  52. package/dist/serializer-processing-xml.js.map +1 -0
  53. package/dist/serializer-processing.d.ts +8 -0
  54. package/dist/serializer-processing.d.ts.map +1 -0
  55. package/dist/serializer-processing.js +106 -0
  56. package/dist/serializer-processing.js.map +1 -0
  57. package/dist/shared-vocabulary-authoring.d.ts +50 -0
  58. package/dist/shared-vocabulary-authoring.d.ts.map +1 -0
  59. package/dist/shared-vocabulary-authoring.js +302 -0
  60. package/dist/shared-vocabulary-authoring.js.map +1 -0
  61. package/dist/shared-vocabulary-interaction-sets.d.ts +6 -0
  62. package/dist/shared-vocabulary-interaction-sets.d.ts.map +1 -0
  63. package/dist/shared-vocabulary-interaction-sets.js +23 -0
  64. package/dist/shared-vocabulary-interaction-sets.js.map +1 -0
  65. package/dist/shared-vocabulary-interaction-validation.d.ts +3 -0
  66. package/dist/shared-vocabulary-interaction-validation.d.ts.map +1 -0
  67. package/dist/shared-vocabulary-interaction-validation.js +99 -0
  68. package/dist/shared-vocabulary-interaction-validation.js.map +1 -0
  69. package/dist/shared-vocabulary-registry-validation.d.ts +5 -0
  70. package/dist/shared-vocabulary-registry-validation.d.ts.map +1 -0
  71. package/dist/shared-vocabulary-registry-validation.js +147 -0
  72. package/dist/shared-vocabulary-registry-validation.js.map +1 -0
  73. package/dist/shared-vocabulary-support.d.ts.map +1 -1
  74. package/dist/shared-vocabulary-support.js +96 -56
  75. package/dist/shared-vocabulary-support.js.map +1 -1
  76. package/dist/shared-vocabulary.d.ts +6 -0
  77. package/dist/shared-vocabulary.d.ts.map +1 -1
  78. package/dist/shared-vocabulary.js +12 -0
  79. package/dist/shared-vocabulary.js.map +1 -1
  80. package/dist/support.d.ts +4 -1
  81. package/dist/support.d.ts.map +1 -1
  82. package/dist/support.js +159 -10
  83. package/dist/support.js.map +1 -1
  84. package/dist/types.d.ts +38 -7
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/validation.d.ts.map +1 -1
  87. package/dist/validation.js +29 -250
  88. package/dist/validation.js.map +1 -1
  89. package/dist/xml.d.ts +10 -0
  90. package/dist/xml.d.ts.map +1 -1
  91. package/dist/xml.js +321 -249
  92. package/dist/xml.js.map +1 -1
  93. package/package.json +1 -4
  94. package/src/content-text.ts +80 -0
  95. package/src/index.ts +67 -0
  96. package/src/interaction-test-fixtures.ts +44 -0
  97. package/src/package-xml.ts +30 -0
  98. package/src/parser-custom-interactions.ts +309 -0
  99. package/src/parser-declarations.ts +174 -0
  100. package/src/parser-item-metadata.ts +194 -0
  101. package/src/parser-processing.ts +701 -0
  102. package/src/parser-values.ts +61 -0
  103. package/src/parser.ts +59 -1230
  104. package/src/processing-expression-tags.ts +65 -0
  105. package/src/processing-rules.ts +11 -0
  106. package/src/serializer-processing-expressions.ts +456 -0
  107. package/src/serializer-processing-xml.ts +67 -0
  108. package/src/serializer-processing.fixtures.ts +469 -0
  109. package/src/serializer-processing.ts +196 -0
  110. package/src/shared-vocabulary-authoring.ts +409 -0
  111. package/src/shared-vocabulary-interaction-sets.ts +28 -0
  112. package/src/shared-vocabulary-interaction-validation.ts +143 -0
  113. package/src/shared-vocabulary-registry-validation.ts +207 -0
  114. package/src/shared-vocabulary-support.ts +127 -101
  115. package/src/shared-vocabulary.ts +18 -0
  116. package/src/support.ts +174 -14
  117. package/src/types.ts +48 -7
  118. package/src/validation.ts +33 -341
  119. package/src/xml.ts +378 -255
@@ -0,0 +1,99 @@
1
+ import { validateChoicesContainerWidthSharedVocabulary, validateMatchInteractionSharedVocabulary, validateRegistrySharedVocabularyClasses, } from "./shared-vocabulary-registry-validation.js";
2
+ import { validateSharedVocabularyExtendedText, validateSharedVocabularyInputWidth, validateSharedVocabularyMediaPlayerControls, } from "./shared-vocabulary-validation.js";
3
+ const SHARED_VOCABULARY_INTERACTION_TYPES = new Set([
4
+ "choice",
5
+ "match",
6
+ "gapMatch",
7
+ "graphicGapMatch",
8
+ "inlineChoice",
9
+ "textEntry",
10
+ "extendedText",
11
+ "media",
12
+ "order",
13
+ ]);
14
+ export function validateInteractionSharedVocabulary(interaction, diagnostics) {
15
+ if (!SHARED_VOCABULARY_INTERACTION_TYPES.has(interaction.type))
16
+ return;
17
+ const classNames = sharedClassNames(interaction.attributes);
18
+ if (interaction.type === "media") {
19
+ validateMediaInteractionSharedVocabulary(interaction, diagnostics);
20
+ return;
21
+ }
22
+ if (interaction.type === "inlineChoice" || interaction.type === "textEntry") {
23
+ validateInteractionInputWidthSharedVocabulary(interaction, classNames, diagnostics);
24
+ return;
25
+ }
26
+ if (interaction.type === "extendedText") {
27
+ diagnostics.push(...validateSharedVocabularyExtendedText({
28
+ classNames,
29
+ subjectQtiName: interaction.qtiName,
30
+ expectedLength: interaction.attributes["expected-length"],
31
+ path: interaction.source?.path,
32
+ source: interaction.source,
33
+ }));
34
+ return;
35
+ }
36
+ if (interaction.type === "match" ||
37
+ interaction.type === "gapMatch" ||
38
+ interaction.type === "graphicGapMatch") {
39
+ if (interaction.type === "match") {
40
+ validateMatchInteractionSharedVocabulary(interaction, classNames, diagnostics);
41
+ }
42
+ validateRegistrySharedVocabularyClasses(interaction, classNames, diagnostics);
43
+ validateChoicesContainerWidthSharedVocabulary(interaction, diagnostics);
44
+ if (interaction.type === "gapMatch") {
45
+ validateGapInputWidthSharedVocabulary(interaction, diagnostics);
46
+ }
47
+ return;
48
+ }
49
+ if (interaction.type === "order") {
50
+ validateRegistrySharedVocabularyClasses(interaction, classNames, diagnostics);
51
+ validateChoicesContainerWidthSharedVocabulary(interaction, diagnostics);
52
+ return;
53
+ }
54
+ if (interaction.type === "choice") {
55
+ validateRegistrySharedVocabularyClasses(interaction, classNames, diagnostics);
56
+ }
57
+ }
58
+ function validateGapInputWidthSharedVocabulary(interaction, diagnostics) {
59
+ for (const gap of interaction.choices.filter((choice) => choice.qtiName === "qti-gap")) {
60
+ diagnostics.push(...validateSharedVocabularyInputWidth({
61
+ classNames: sharedClassNames(gap.attributes),
62
+ subjectQtiName: "qti-gap",
63
+ path: gap.source?.path ?? interaction.source?.path,
64
+ source: gap.source ?? interaction.source,
65
+ conflictCode: "interaction.sharedVocabulary.gapInputWidthConflict",
66
+ invalidCode: "interaction.sharedVocabulary.gapInputWidthInvalid",
67
+ }));
68
+ }
69
+ }
70
+ function validateInteractionInputWidthSharedVocabulary(interaction, classNames, diagnostics) {
71
+ diagnostics.push(...validateSharedVocabularyInputWidth({
72
+ classNames,
73
+ subjectQtiName: interaction.qtiName,
74
+ path: interaction.source?.path,
75
+ source: interaction.source,
76
+ conflictCode: "interaction.sharedVocabulary.inputWidthConflict",
77
+ invalidCode: "interaction.sharedVocabulary.inputWidthInvalid",
78
+ }));
79
+ }
80
+ function validateMediaInteractionSharedVocabulary(interaction, diagnostics) {
81
+ diagnostics.push(...validateSharedVocabularyMediaPlayerControls({
82
+ value: interaction.attributes["data-qti-media-player-controls"],
83
+ subjectQtiName: interaction.qtiName,
84
+ path: interaction.source?.path,
85
+ source: interaction.source,
86
+ }));
87
+ if (!interaction.object)
88
+ return;
89
+ diagnostics.push(...validateSharedVocabularyMediaPlayerControls({
90
+ value: interaction.object.attributes["data-qti-media-player-controls"],
91
+ subjectQtiName: `${interaction.qtiName} media object`,
92
+ path: interaction.object.source?.path ?? interaction.source?.path,
93
+ source: interaction.object.source ?? interaction.source,
94
+ }));
95
+ }
96
+ function sharedClassNames(attributes) {
97
+ return (attributes.class ?? "").split(/\s+/).filter(Boolean);
98
+ }
99
+ //# sourceMappingURL=shared-vocabulary-interaction-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-vocabulary-interaction-validation.js","sourceRoot":"","sources":["../src/shared-vocabulary-interaction-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { QtiDiagnostic, QtiInteraction } from "./types.js";
2
+ export declare function validateRegistrySharedVocabularyClasses(interaction: QtiInteraction, classNames: string[], diagnostics: QtiDiagnostic[]): void;
3
+ export declare function validateChoicesContainerWidthSharedVocabulary(interaction: QtiInteraction, diagnostics: QtiDiagnostic[]): void;
4
+ export declare function validateMatchInteractionSharedVocabulary(interaction: QtiInteraction, classNames: string[], diagnostics: QtiDiagnostic[]): void;
5
+ //# sourceMappingURL=shared-vocabulary-registry-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-vocabulary-registry-validation.d.ts","sourceRoot":"","sources":["../src/shared-vocabulary-registry-validation.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAchE,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,aAAa,EAAE,GAC3B,IAAI,CAMN;AA4FD,wBAAgB,6CAA6C,CAC3D,WAAW,EAAE,cAAc,EAC3B,WAAW,EAAE,aAAa,EAAE,GAC3B,IAAI,CAaN;AAED,wBAAgB,wCAAwC,CACtD,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,aAAa,EAAE,GAC3B,IAAI,CA0DN"}
@@ -0,0 +1,147 @@
1
+ import { describeSharedVocabularyPrecedence, formatSharedVocabularyClassValueRange, matchedSharedVocabularyClassNames, parseClassValue, sharedVocabularyFieldById, sharedVocabularyFieldsForInteraction, sharedVocabularyFixedClassName, } from "./shared-vocabulary-authoring.js";
2
+ const LEGACY_CLASS_VALUE_CONFLICT_CODES = {
3
+ "labels-style": "interaction.sharedVocabulary.labelsConflict",
4
+ "labels-suffix": "interaction.sharedVocabulary.labelSuffixConflict",
5
+ orientation: "interaction.sharedVocabulary.orientationConflict",
6
+ "choices-stacking": "interaction.sharedVocabulary.stackingConflict",
7
+ "choices-position": "interaction.sharedVocabulary.orderChoicesPositionConflict",
8
+ };
9
+ const LEGACY_CLASS_VALUE_INVALID_CODES = {
10
+ "choices-stacking": "interaction.sharedVocabulary.stackingInvalid",
11
+ };
12
+ export function validateRegistrySharedVocabularyClasses(interaction, classNames, diagnostics) {
13
+ for (const field of sharedVocabularyFieldsForInteraction(interaction.type)) {
14
+ if (field.kind !== "class-value")
15
+ continue;
16
+ validateClassValueFieldConflicts(interaction, field, classNames, diagnostics);
17
+ validateUnsupportedClassValueClasses(interaction, field, classNames, diagnostics);
18
+ }
19
+ }
20
+ function validateClassValueFieldConflicts(interaction, field, classNames, diagnostics) {
21
+ const matched = matchedSharedVocabularyClassNames(field, classNames);
22
+ if (new Set(matched).size <= 1)
23
+ return;
24
+ diagnostics.push({
25
+ code: classValueConflictCode(field.id),
26
+ severity: "warning",
27
+ message: conflictMessage(interaction, field, matched),
28
+ path: interaction.source?.path,
29
+ source: interaction.source,
30
+ });
31
+ }
32
+ function classValueConflictCode(fieldId) {
33
+ return (LEGACY_CLASS_VALUE_CONFLICT_CODES[fieldId] ??
34
+ `interaction.sharedVocabulary.${fieldIdToDiagnosticSuffix(fieldId)}Conflict`);
35
+ }
36
+ function classValueInvalidCode(fieldId) {
37
+ return (LEGACY_CLASS_VALUE_INVALID_CODES[fieldId] ??
38
+ `interaction.sharedVocabulary.${fieldIdToDiagnosticSuffix(fieldId)}Invalid`);
39
+ }
40
+ function fieldIdToDiagnosticSuffix(fieldId) {
41
+ return fieldId.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
42
+ }
43
+ function conflictMessage(interaction, field, matchedClassNames) {
44
+ const uniqueMatched = [...new Set(matchedClassNames)];
45
+ const precedence = describeSharedVocabularyPrecedence(field, uniqueMatched);
46
+ switch (field.id) {
47
+ case "labels-style":
48
+ return `${interaction.qtiName} should not include multiple qti-labels-* style classes: ${uniqueMatched.join(", ")}. ${precedence} at runtime.`;
49
+ case "labels-suffix":
50
+ return `${interaction.qtiName} should not include multiple qti-labels-suffix-* classes: ${uniqueMatched.join(", ")}. ${precedence} at runtime.`;
51
+ case "orientation":
52
+ return `${interaction.qtiName} should not include both qti-orientation-horizontal and qti-orientation-vertical; ${precedence} at runtime.`;
53
+ case "choices-stacking":
54
+ return `qti-choice-interaction should not include multiple qti-choices-stacking-* classes: ${uniqueMatched.join(", ")}. The first valid stacking class in class attribute order takes precedence at runtime.`;
55
+ case "choices-position":
56
+ return `${interaction.qtiName} should not include multiple qti-choices-* position classes: ${uniqueMatched.join(", ")}. The first position class in class attribute order takes precedence at runtime.`;
57
+ default:
58
+ return `${interaction.qtiName} should not include multiple ${field.classPrefix}* classes: ${uniqueMatched.join(", ")}. ${precedence} at runtime.`;
59
+ }
60
+ }
61
+ function validateUnsupportedClassValueClasses(interaction, field, classNames, diagnostics) {
62
+ for (const className of classNames) {
63
+ if (!className.startsWith(field.classPrefix))
64
+ continue;
65
+ if (parseClassValue(field, className) !== undefined)
66
+ continue;
67
+ diagnostics.push({
68
+ code: classValueInvalidCode(field.id),
69
+ severity: "warning",
70
+ message: unsupportedClassValueMessage(interaction, field, className),
71
+ path: interaction.source?.path,
72
+ source: interaction.source,
73
+ });
74
+ }
75
+ }
76
+ function unsupportedClassValueMessage(interaction, field, className) {
77
+ if (field.id === "choices-stacking") {
78
+ return `qti-choice-interaction shared vocabulary class ${className} is not supported; expected ${formatSharedVocabularyClassValueRange(field)}.`;
79
+ }
80
+ return `${interaction.qtiName} shared vocabulary class ${className} is not supported; expected ${formatSharedVocabularyClassValueRange(field)}.`;
81
+ }
82
+ export function validateChoicesContainerWidthSharedVocabulary(interaction, diagnostics) {
83
+ const width = interaction.attributes["data-choices-container-width"];
84
+ if (width === undefined)
85
+ return;
86
+ const parsed = Number(width);
87
+ if (!Number.isFinite(parsed) || parsed <= 0) {
88
+ diagnostics.push({
89
+ code: "interaction.sharedVocabulary.orderChoicesContainerWidth",
90
+ severity: "warning",
91
+ message: `${interaction.qtiName} data-choices-container-width must be a positive pixel value; the invalid value is ignored at runtime.`,
92
+ path: interaction.source?.path,
93
+ source: interaction.source,
94
+ });
95
+ }
96
+ }
97
+ export function validateMatchInteractionSharedVocabulary(interaction, classNames, diagnostics) {
98
+ const matchTabularClass = sharedVocabularyFixedClassName("match-tabular");
99
+ const headerHiddenClass = sharedVocabularyFixedClassName("header-hidden");
100
+ const hasTabular = matchTabularClass === undefined ? false : classNames.includes(matchTabularClass);
101
+ const hasHeaderHidden = headerHiddenClass === undefined ? false : classNames.includes(headerHiddenClass);
102
+ const firstColumnHeader = interaction.attributes["data-first-column-header"];
103
+ if (!hasTabular && (hasHeaderHidden || firstColumnHeader !== undefined)) {
104
+ diagnostics.push({
105
+ code: "interaction.sharedVocabulary.matchTabularContext",
106
+ severity: "warning",
107
+ message: "qti-match-interaction shared vocabulary class qti-header-hidden and data-first-column-header are only relevant when qti-match-tabular is specified; they are ignored at runtime.",
108
+ path: interaction.source?.path,
109
+ source: interaction.source,
110
+ });
111
+ }
112
+ if (hasTabular && hasHeaderHidden && firstColumnHeader !== undefined) {
113
+ diagnostics.push({
114
+ code: "interaction.sharedVocabulary.matchTabularHeaderHidden",
115
+ severity: "warning",
116
+ message: "qti-match-interaction data-first-column-header is ignored when qti-header-hidden suppresses the tabular header row.",
117
+ path: interaction.source?.path,
118
+ source: interaction.source,
119
+ });
120
+ }
121
+ if (!hasTabular)
122
+ return;
123
+ const choicesPositionField = sharedVocabularyFieldById("choices-position");
124
+ const choicesPositionClasses = choicesPositionField?.kind === "class-value"
125
+ ? matchedSharedVocabularyClassNames(choicesPositionField, classNames)
126
+ : [];
127
+ if (choicesPositionClasses.length > 0 ||
128
+ interaction.attributes["data-choices-container-width"] !== undefined) {
129
+ diagnostics.push({
130
+ code: "interaction.sharedVocabulary.matchTabularChoicesConflict",
131
+ severity: "warning",
132
+ message: "qti-match-interaction qti-match-tabular uses a matrix layout; qti-choices-* position classes and data-choices-container-width are ignored at runtime.",
133
+ path: interaction.source?.path,
134
+ source: interaction.source,
135
+ });
136
+ }
137
+ if (!hasHeaderHidden && (firstColumnHeader === undefined || firstColumnHeader === "")) {
138
+ diagnostics.push({
139
+ code: "interaction.sharedVocabulary.matchTabularFirstColumnHeader",
140
+ severity: "warning",
141
+ message: "qti-match-interaction with qti-match-tabular should specify data-first-column-header for the top-left table header when the tabular header row is shown.",
142
+ path: interaction.source?.path,
143
+ source: interaction.source,
144
+ });
145
+ }
146
+ }
147
+ //# sourceMappingURL=shared-vocabulary-registry-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-vocabulary-registry-validation.js","sourceRoot":"","sources":["../src/shared-vocabulary-registry-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-vocabulary-support.d.ts","sourceRoot":"","sources":["../src/shared-vocabulary-support.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAsB,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAoHnF,eAAO,MAAM,4BAA4B,EAAE,4BAA4B,EAkNtE,CAAC"}
1
+ {"version":3,"file":"shared-vocabulary-support.d.ts","sourceRoot":"","sources":["../src/shared-vocabulary-support.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAsB,4BAA4B,EAAE,MAAM,YAAY,CAAC;AA+MnF,eAAO,MAAM,4BAA4B,EAAE,4BAA4B,EA4ItE,CAAC"}
@@ -1,5 +1,7 @@
1
- import { SHARED_VOCABULARY_CHOICE_WRITING_ORIENTATIONS, SHARED_VOCABULARY_CONTENT_ALIGNMENTS, SHARED_VOCABULARY_CONTENT_FLOAT_SUFFIXES, SHARED_VOCABULARY_CONTENT_LIST_STYLE_TYPES, SHARED_VOCABULARY_CONTENT_TEXT_INDENT_SUFFIXES, SHARED_VOCABULARY_CONTENT_VALIGNS, SHARED_VOCABULARY_CONTENT_WRITING_MODES, SHARED_VOCABULARY_LAYOUT_COLUMN_SPAN_COUNT, SHARED_VOCABULARY_LAYOUT_OFFSET_COUNT, } from "./shared-vocabulary-generated-families.js";
1
+ import { SHARED_VOCABULARY_CONTENT_ALIGNMENTS, SHARED_VOCABULARY_CONTENT_FLOAT_SUFFIXES, SHARED_VOCABULARY_CONTENT_LIST_STYLE_TYPES, SHARED_VOCABULARY_CONTENT_TEXT_INDENT_SUFFIXES, SHARED_VOCABULARY_CONTENT_VALIGNS, SHARED_VOCABULARY_CONTENT_WRITING_MODES, SHARED_VOCABULARY_LAYOUT_COLUMN_SPAN_COUNT, SHARED_VOCABULARY_LAYOUT_OFFSET_COUNT, } from "./shared-vocabulary-generated-families.js";
2
+ import { sharedVocabularyFixedClassName, sharedVocabularyInteractionFields, } from "./shared-vocabulary-authoring.js";
2
3
  import { SHARED_VOCABULARY_EXTENDED_TEXT_COUNTER_CLASSES, SHARED_VOCABULARY_EXTENDED_TEXT_HEIGHT_LINES, SHARED_VOCABULARY_INPUT_WIDTHS, } from "./shared-vocabulary.js";
4
+ import { SHARED_VOCABULARY_CHOICE_AND_ORDER_INTERACTIONS } from "./shared-vocabulary-interaction-sets.js";
3
5
  const sharedVocabularyFixture = [
4
6
  "packages/fixtures/packages/basic-item-player/valid-item-only/items/shared-vocabulary.xml",
5
7
  ];
@@ -18,7 +20,10 @@ const sharedVocabularyUnitTests = [
18
20
  const sharedVocabularyValidationTests = [
19
21
  "packages/core/src/core.test.ts",
20
22
  "packages/core/src/shared-vocabulary-validation.test.ts",
23
+ "packages/core/src/shared-vocabulary-registry-validation.test.ts",
24
+ "packages/core/src/shared-vocabulary-interaction-validation.test.ts",
21
25
  ];
26
+ const choiceLayoutTests = ["packages/player/src/interactions/choice-layout.test.ts"];
22
27
  const browserBehaviorTests = [
23
28
  "tests/browser/player-dom-behavior.spec.ts",
24
29
  ...sharedVocabularyMatrixTests,
@@ -34,19 +39,91 @@ const interactionInputWidthFixtures = [
34
39
  "packages/fixtures/packages/sv-matrix/items/interaction-input-width-embedded.xml",
35
40
  ];
36
41
  const orderMinMaxMessagesFixture = "packages/fixtures/packages/sv-matrix/items/order-min-max-messages.xml";
37
- const choiceAndOrder = ["choice", "order"];
38
- const choicesLayoutInteractions = [
39
- "match",
40
- "gapMatch",
41
- "graphicGapMatch",
42
- "order",
43
- ];
44
- const selectionPresentationInteractions = [
45
- "choice",
46
- "hottext",
47
- "hotspot",
48
- "graphicGapMatch",
42
+ const choiceAndOrder = SHARED_VOCABULARY_CHOICE_AND_ORDER_INTERACTIONS;
43
+ function registryClassValueSupportProfile(fieldId) {
44
+ switch (fieldId) {
45
+ case "labels-style":
46
+ case "labels-suffix":
47
+ return { level: "full", tests: [...sharedVocabularyUnitTests, ...browserBehaviorTests] };
48
+ case "orientation":
49
+ return {
50
+ level: "full",
51
+ tests: [...choiceLayoutTests, ...sharedVocabularyUnitTests, ...browserBehaviorTests],
52
+ };
53
+ case "choices-stacking":
54
+ return {
55
+ level: "full",
56
+ tests: [...choiceLayoutTests, "packages/core/src/core.test.ts", ...browserBehaviorTests],
57
+ };
58
+ case "choices-position":
59
+ return {
60
+ level: "full",
61
+ tests: [...sharedVocabularyUnitTests, ...browserBehaviorTests, ...graphicBrowserTests],
62
+ };
63
+ case "selections-tone":
64
+ return { level: "stylesheet", tests: [...browserBehaviorTests, ...graphicBrowserTests] };
65
+ case "writing-orientation":
66
+ return { level: "stylesheet", tests: [...browserBehaviorTests] };
67
+ default:
68
+ return { level: "full", tests: [...sharedVocabularyUnitTests, ...browserBehaviorTests] };
69
+ }
70
+ }
71
+ function registryClassValueSupportEntries() {
72
+ return sharedVocabularyInteractionFields.flatMap((field) => {
73
+ if (field.kind !== "class-value")
74
+ return [];
75
+ const profile = registryClassValueSupportProfile(field.id);
76
+ const createEntry = profile.level === "stylesheet" ? interactionStylesheetEntry : interactionFullEntry;
77
+ return field.values.map((value) => createEntry(`${field.classPrefix}${String(value)}`, field.interactions, profile.tests));
78
+ });
79
+ }
80
+ function registryClassFixedSupportProfile(fieldId) {
81
+ switch (fieldId) {
82
+ case "input-control-hidden":
83
+ return {
84
+ level: "stylesheet",
85
+ tests: [...browserBehaviorTests, "tests/browser/player-keyboard-a11y.spec.ts"],
86
+ };
87
+ case "unselected-hidden":
88
+ return { level: "stylesheet", tests: [...browserBehaviorTests, ...graphicBrowserTests] };
89
+ case "match-tabular":
90
+ return {
91
+ level: "full",
92
+ tests: [
93
+ "packages/core/src/core.test.ts",
94
+ ...browserBehaviorTests,
95
+ "tests/browser/player-keyboard-a11y.spec.ts",
96
+ ],
97
+ };
98
+ case "gap-placement":
99
+ return {
100
+ level: "full",
101
+ tests: [
102
+ ...sharedVocabularyUnitTests,
103
+ "packages/core/src/core.test.ts",
104
+ ...browserBehaviorTests,
105
+ ],
106
+ };
107
+ default:
108
+ return { level: "full", tests: [...browserBehaviorTests] };
109
+ }
110
+ }
111
+ const registryClassFixedSupportIds = [
112
+ "input-control-hidden",
113
+ "unselected-hidden",
114
+ "match-tabular",
115
+ "gap-placement",
49
116
  ];
117
+ function registryClassFixedSupportEntries() {
118
+ return registryClassFixedSupportIds.flatMap((fieldId) => {
119
+ const field = sharedVocabularyInteractionFields.find((candidate) => candidate.kind === "class-fixed" && candidate.id === fieldId);
120
+ if (field === undefined)
121
+ return [];
122
+ const profile = registryClassFixedSupportProfile(field.id);
123
+ const createEntry = profile.level === "stylesheet" ? interactionStylesheetEntry : interactionFullEntry;
124
+ return [createEntry(field.className, field.interactions, profile.tests)];
125
+ });
126
+ }
50
127
  function svEntry(className, scope, level, options = {}) {
51
128
  return {
52
129
  className,
@@ -64,7 +141,7 @@ function contentStylesheetEntry(className, notes) {
64
141
  }
65
142
  function interactionFullEntry(className, interactions, tests, notes) {
66
143
  return svEntry(className, "interaction", "full", {
67
- interactions,
144
+ interactions: [...interactions],
68
145
  fixtures: sharedVocabularyFixture,
69
146
  tests,
70
147
  notes,
@@ -72,7 +149,7 @@ function interactionFullEntry(className, interactions, tests, notes) {
72
149
  }
73
150
  function interactionStylesheetEntry(className, interactions, tests, notes) {
74
151
  return svEntry(className, "interaction", "stylesheet", {
75
- interactions,
152
+ interactions: [...interactions],
76
153
  fixtures: sharedVocabularyFixture,
77
154
  tests,
78
155
  notes,
@@ -118,39 +195,8 @@ export const sharedVocabularyClassSupport = [
118
195
  contentStylesheetEntry("qti-underline"),
119
196
  contentStylesheetEntry("qti-italic"),
120
197
  contentStylesheetEntry("qti-display-inline-block"),
121
- ...["none", "decimal", "cjk-ideographic", "lower-alpha", "upper-alpha"].map((labelStyle) => interactionFullEntry(`qti-labels-${labelStyle}`, choiceAndOrder, [
122
- ...sharedVocabularyUnitTests,
123
- ...browserBehaviorTests,
124
- ])),
125
- ...["none", "period", "parenthesis"].map((suffix) => interactionFullEntry(`qti-labels-suffix-${suffix}`, choiceAndOrder, [
126
- ...sharedVocabularyUnitTests,
127
- ...browserBehaviorTests,
128
- ])),
129
- ...["horizontal", "vertical"].map((orientation) => interactionFullEntry(`qti-orientation-${orientation}`, ["choice", "order"], [
130
- "packages/player/src/interactions/choice-layout.test.ts",
131
- ...sharedVocabularyUnitTests,
132
- ...browserBehaviorTests,
133
- ])),
134
- ...Array.from({ length: 5 }, (_, index) => index + 1).map((stacking) => interactionFullEntry(`qti-choices-stacking-${stacking}`, ["choice"], [
135
- "packages/player/src/interactions/choice-layout.test.ts",
136
- "packages/core/src/core.test.ts",
137
- ...browserBehaviorTests,
138
- ])),
139
- interactionStylesheetEntry("qti-input-control-hidden", ["choice", "hottext"], [...browserBehaviorTests, "tests/browser/player-keyboard-a11y.spec.ts"]),
140
- ...SHARED_VOCABULARY_CHOICE_WRITING_ORIENTATIONS.map((orientation) => interactionStylesheetEntry(`qti-writing-orientation-${orientation}`, ["choice", "inlineChoice"], [...browserBehaviorTests])),
141
- ...["light", "dark"].map((tone) => interactionStylesheetEntry(`qti-selections-${tone}`, selectionPresentationInteractions, [
142
- ...browserBehaviorTests,
143
- ...graphicBrowserTests,
144
- ])),
145
- interactionStylesheetEntry("qti-unselected-hidden", selectionPresentationInteractions, [
146
- ...browserBehaviorTests,
147
- ...graphicBrowserTests,
148
- ]),
149
- ...["top", "bottom", "left", "right"].map((position) => interactionFullEntry(`qti-choices-${position}`, choicesLayoutInteractions, [
150
- ...sharedVocabularyUnitTests,
151
- ...browserBehaviorTests,
152
- ...graphicBrowserTests,
153
- ])),
198
+ ...registryClassValueSupportEntries(),
199
+ ...registryClassFixedSupportEntries(),
154
200
  svEntry("data-min-selections-message", "interaction", "full", {
155
201
  interactions: ["order"],
156
202
  fixtures: [orderMinMaxMessagesFixture],
@@ -158,23 +204,17 @@ export const sharedVocabularyClassSupport = [
158
204
  notes: "Overrides minimum response validation text for order interactions.",
159
205
  }),
160
206
  svEntry("data-max-selections-message", "interaction", "full", {
161
- interactions: ["choice", "order"],
207
+ interactions: [...choiceAndOrder],
162
208
  fixtures: [orderMinMaxMessagesFixture],
163
209
  tests: ["tests/browser/player-validation.spec.ts", ...sharedVocabularyMatrixTests],
164
210
  notes: "Overrides maximum response validation text for choice and order interactions.",
165
211
  }),
166
- interactionFullEntry("qti-match-tabular", ["match"], [
167
- "packages/core/src/core.test.ts",
168
- ...browserBehaviorTests,
169
- "tests/browser/player-keyboard-a11y.spec.ts",
170
- ]),
171
- svEntry("qti-header-hidden", "interaction", "conditional", {
212
+ svEntry(sharedVocabularyFixedClassName("header-hidden") ?? "qti-header-hidden", "interaction", "conditional", {
172
213
  interactions: ["match"],
173
214
  fixtures: sharedVocabularyFixture,
174
215
  tests: ["packages/core/src/core.test.ts", ...browserBehaviorTests],
175
216
  notes: "Applied when qti-match-tabular selects the tabular match renderer.",
176
217
  }),
177
- interactionFullEntry("qti-gap-placement", ["gapMatch"], [...sharedVocabularyUnitTests, "packages/core/src/core.test.ts", ...browserBehaviorTests]),
178
218
  ...SHARED_VOCABULARY_INPUT_WIDTHS.map((width) => svEntry(`qti-input-width-${width}`, "interaction", "full", {
179
219
  interactions: ["textEntry", "inlineChoice"],
180
220
  fixtures: interactionInputWidthFixtures,
@@ -1 +1 @@
1
- {"version":3,"file":"shared-vocabulary-support.js","sourceRoot":"","sources":["../src/shared-vocabulary-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-vocabulary-support.js","sourceRoot":"","sources":["../src/shared-vocabulary-support.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,wCAAwC,EACxC,0CAA0C,EAC1C,8CAA8C,EAC9C,iCAAiC,EACjC,uCAAuC,EACvC,0CAA0C,EAC1C,qCAAqC,GACtC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,GAElC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,+CAA+C,EAC/C,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,+CAA+C,EAAE,MAAM,yCAAyC,CAAC;AAG1G,MAAM,uBAAuB,GAAG;IAC9B,0FAA0F;CAC3F,CAAC;AACF,MAAM,YAAY,GAAG,CAAC,wCAAwC,EAAE,gCAAgC,CAAC,CAAC;AAClG,MAAM,2BAA2B,GAAG,CAAC,gDAAgD,CAAC,CAAC;AACvF,MAAM,YAAY,GAAG;IACnB,GAAG,YAAY;IACf,gCAAgC;IAChC,2CAA2C;IAC3C,GAAG,2BAA2B;CAC/B,CAAC;AACF,MAAM,yBAAyB,GAAG;IAChC,6CAA6C;IAC7C,4DAA4D;CAC7D,CAAC;AACF,MAAM,+BAA+B,GAAG;IACtC,gCAAgC;IAChC,wDAAwD;IACxD,iEAAiE;IACjE,oEAAoE;CACrE,CAAC;AACF,MAAM,iBAAiB,GAAG,CAAC,wDAAwD,CAAC,CAAC;AACrF,MAAM,oBAAoB,GAAG;IAC3B,2CAA2C;IAC3C,GAAG,2BAA2B;CAC/B,CAAC;AACF,MAAM,mBAAmB,GAAG;IAC1B,sCAAsC;IACtC,gDAAgD;CACjD,CAAC;AACF,MAAM,iBAAiB,GAAG,CAAC,8BAA8B,EAAE,GAAG,2BAA2B,CAAC,CAAC;AAC3F,MAAM,kBAAkB,GACtB,yEAAyE,CAAC;AAC5E,MAAM,6BAA6B,GAAG;IACpC,mFAAmF;IACnF,iFAAiF;CAClF,CAAC;AACF,MAAM,0BAA0B,GAC9B,uEAAuE,CAAC;AAE1E,MAAM,cAAc,GAAG,+CAA+C,CAAC;AAEvE,SAAS,gCAAgC,CAAC,OAAe;IAIvD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe;YAClB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,yBAAyB,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC;QAC3F,KAAK,aAAa;YAChB,OAAO;gBACL,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,CAAC,GAAG,iBAAiB,EAAE,GAAG,yBAAyB,EAAE,GAAG,oBAAoB,CAAC;aACrF,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO;gBACL,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,CAAC,GAAG,iBAAiB,EAAE,gCAAgC,EAAE,GAAG,oBAAoB,CAAC;aACzF,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO;gBACL,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,CAAC,GAAG,yBAAyB,EAAE,GAAG,oBAAoB,EAAE,GAAG,mBAAmB,CAAC;aACvF,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,oBAAoB,EAAE,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAC3F,KAAK,qBAAqB;YACxB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC;QACnE;YACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,yBAAyB,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC;IACvC,OAAO,iCAAiC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;YAAE,OAAO,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,gCAAgC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,WAAW,GACf,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACrF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAChC,WAAW,CAAC,GAAG,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CACvF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gCAAgC,CAAC,OAAe;IAIvD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,sBAAsB;YACzB,OAAO;gBACL,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,CAAC,GAAG,oBAAoB,EAAE,4CAA4C,CAAC;aAC/E,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,oBAAoB,EAAE,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAC3F,KAAK,eAAe;YAClB,OAAO;gBACL,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE;oBACL,gCAAgC;oBAChC,GAAG,oBAAoB;oBACvB,4CAA4C;iBAC7C;aACF,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO;gBACL,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE;oBACL,GAAG,yBAAyB;oBAC5B,gCAAgC;oBAChC,GAAG,oBAAoB;iBACxB;aACF,CAAC;QACJ;YACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,4BAA4B,GAAG;IACnC,sBAAsB;IACtB,mBAAmB;IACnB,eAAe;IACf,eAAe;CACP,CAAC;AAEX,SAAS,gCAAgC;IACvC,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACtD,MAAM,KAAK,GAAG,iCAAiC,CAAC,IAAI,CAClD,CAAC,SAAS,EAA2E,EAAE,CACrF,SAAS,CAAC,IAAI,KAAK,aAAa,IAAI,SAAS,CAAC,EAAE,KAAK,OAAO,CAC/D,CAAC;QACF,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,gCAAgC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,WAAW,GACf,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACrF,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CACd,SAAiB,EACjB,KAA4C,EAC5C,KAA4C,EAC5C,UAA+E,EAAE;IAEjF,OAAO;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB,EAAE,KAAc;IAC/D,OAAO,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE;QACjD,QAAQ,EAAE,uBAAuB;QACjC,KAAK,EAAE,YAAY;QACnB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,YAA2C,EAC3C,KAAe,EACf,KAAc;IAEd,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE;QAC/C,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;QAC/B,QAAQ,EAAE,uBAAuB;QACjC,KAAK;QACL,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CACjC,SAAiB,EACjB,YAA2C,EAC3C,KAAe,EACf,KAAc;IAEd,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE;QACrD,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;QAC/B,QAAQ,EAAE,uBAAuB;QACjC,KAAK;QACL,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CACzB,SAAiB,EACjB,KAAa,EACb,QAAkB,iBAAiB;IAEnC,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE;QAC/C,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,QAAQ,EAAE,CAAC,kBAAkB,CAAC;QAC9B,KAAK;QACL,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAmC;IAC1E,sBAAsB,CACpB,gBAAgB,EAChB,2FAA2F,CAC5F;IACD,GAAG,KAAK,CAAC,IAAI,CACX,EAAE,MAAM,EAAE,0CAA0C,EAAE,EACtD,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CACxB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,sBAAsB,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC/C,sBAAsB,CAAC,kBAAkB,IAAI,EAAE,CAAC;KACjD,CAAC;IACF,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,qCAAqC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAC/F,CAAC,MAAM,EAAE,EAAE,CAAC;QACV,sBAAsB,CAAC,oBAAoB,MAAM,EAAE,CAAC;QACpD,sBAAsB,CAAC,qBAAqB,MAAM,EAAE,CAAC;KACtD,CACF;IACD,GAAG,oCAAoC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACxD,sBAAsB,CAAC,aAAa,SAAS,EAAE,CAAC,CACjD;IACD,GAAG,iCAAiC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACrD,sBAAsB,CAAC,cAAc,SAAS,EAAE,CAAC,CAClD;IACD,sBAAsB,CAAC,eAAe,CAAC;IACvC,sBAAsB,CAAC,gBAAgB,CAAC;IACxC,sBAAsB,CAAC,YAAY,EAAE,iDAAiD,CAAC;IACvF,sBAAsB,CACpB,qBAAqB,EACrB,qFAAqF,CACtF;IACD,OAAO,CAAC,sBAAsB,EAAE,SAAS,EAAE,aAAa,EAAE;QACxD,QAAQ,EAAE,CAAC,yEAAyE,CAAC;QACrF,KAAK,EAAE,2BAA2B;QAClC,KAAK,EACH,4GAA4G;KAC/G,CAAC;IACF,GAAG,8CAA8C,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/D,sBAAsB,CAAC,mBAAmB,MAAM,EAAE,CAAC,CACpD;IACD,GAAG,uCAAuC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtD,sBAAsB,CAAC,oBAAoB,IAAI,EAAE,CAAC,CACnD;IACD,sBAAsB,CAAC,8BAA8B,CAAC;IACtD,sBAAsB,CAAC,8BAA8B,CAAC;IACtD,GAAG,wCAAwC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC7D,sBAAsB,CAAC,aAAa,UAAU,EAAE,CAAC,CAClD;IACD,sBAAsB,CAAC,cAAc,CAAC;IACtC,sBAAsB,CAAC,UAAU,CAAC;IAClC,GAAG,0CAA0C,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9D,sBAAsB,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAC3D;IACD,sBAAsB,CAAC,eAAe,CAAC;IACvC,sBAAsB,CAAC,YAAY,CAAC;IACpC,sBAAsB,CAAC,0BAA0B,CAAC;IAElD,GAAG,gCAAgC,EAAE;IACrC,GAAG,gCAAgC,EAAE;IACrC,OAAO,CAAC,6BAA6B,EAAE,aAAa,EAAE,MAAM,EAAE;QAC5D,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,QAAQ,EAAE,CAAC,0BAA0B,CAAC;QACtC,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,oEAAoE;KAC5E,CAAC;IACF,OAAO,CAAC,6BAA6B,EAAE,aAAa,EAAE,MAAM,EAAE;QAC5D,YAAY,EAAE,CAAC,GAAG,cAAc,CAAC;QACjC,QAAQ,EAAE,CAAC,0BAA0B,CAAC;QACtC,KAAK,EAAE,CAAC,yCAAyC,EAAE,GAAG,2BAA2B,CAAC;QAClF,KAAK,EAAE,+EAA+E;KACvF,CAAC;IACF,OAAO,CACL,8BAA8B,CAAC,eAAe,CAAC,IAAI,mBAAmB,EACtE,aAAa,EACb,aAAa,EACb;QACE,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,QAAQ,EAAE,uBAAuB;QACjC,KAAK,EAAE,CAAC,gCAAgC,EAAE,GAAG,oBAAoB,CAAC;QAClE,KAAK,EAAE,oEAAoE;KAC5E,CACF;IACD,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,OAAO,CAAC,mBAAmB,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;QACzD,YAAY,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC;QAC3C,QAAQ,EAAE,6BAA6B;QACvC,KAAK,EAAE;YACL,6CAA6C;YAC7C,gCAAgC;YAChC,GAAG,2BAA2B;SAC/B;KACF,CAAC,CACH;IACD,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,OAAO,CAAC,mBAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACjD,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,QAAQ,EAAE,uBAAuB;QACjC,KAAK,EAAE;YACL,6CAA6C;YAC7C,gCAAgC;YAChC,GAAG,oBAAoB;SACxB;QACD,KAAK,EAAE,8DAA8D;KACtE,CAAC,CACH;IACD,GAAG,4CAA4C,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5D,oBAAoB,CAClB,oBAAoB,KAAK,EAAE,EAC3B,CAAC,cAAc,CAAC,EAChB;QACE,GAAG,+BAA+B;QAClC,6CAA6C;QAC7C,GAAG,oBAAoB;KACxB,CACF,CACF;IACD,GAAG,+CAA+C,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACnE,oBAAoB,CAClB,SAAS,EACT,CAAC,cAAc,CAAC,EAChB;QACE,GAAG,+BAA+B;QAClC,6CAA6C;QAC7C,GAAG,oBAAoB;KACxB,CACF,CACF;IACD,kBAAkB,CAChB,gCAAgC,EAChC,8HAA8H,EAC9H,CAAC,GAAG,iBAAiB,EAAE,wDAAwD,CAAC,CACjF;IACD,kBAAkB,CAChB,mCAAmC,EACnC,iIAAiI,CAClI;IACD,kBAAkB,CAChB,sCAAsC,EACtC,oIAAoI,CACrI;CACF,CAAC"}
@@ -2,6 +2,12 @@ import type { QtiInteraction } from "./types.js";
2
2
  /** Normative QTI 3 shared vocabulary input-width token values (1EdTech vocab). */
3
3
  export declare const SHARED_VOCABULARY_INPUT_WIDTHS: readonly [1, 2, 3, 4, 6, 10, 15, 20, 25, 30, 35, 40, 45, 50, 72];
4
4
  export declare const SHARED_VOCABULARY_GAP_INPUT_WIDTHS: readonly [1, 2, 3, 4, 6, 10, 15, 20, 25, 30, 35, 40, 45, 50, 72];
5
+ export declare const SHARED_VOCABULARY_LABEL_STYLES: readonly ["none", "decimal", "cjk-ideographic", "lower-alpha", "upper-alpha"];
6
+ export declare const SHARED_VOCABULARY_LABEL_SUFFIXES: readonly ["none", "period", "parenthesis"];
7
+ export declare const SHARED_VOCABULARY_ORIENTATIONS: readonly ["horizontal", "vertical"];
8
+ export declare const SHARED_VOCABULARY_CHOICES_STACKING: readonly [1, 2, 3, 4, 5];
9
+ export declare const SHARED_VOCABULARY_CHOICES_POSITIONS: readonly ["top", "bottom", "left", "right"];
10
+ export declare const SHARED_VOCABULARY_SELECTION_TONES: readonly ["light", "dark"];
5
11
  /** Normative QTI 3 shared vocabulary extended text height token values (1EdTech vocab). */
6
12
  export declare const SHARED_VOCABULARY_EXTENDED_TEXT_HEIGHT_LINES: readonly [3, 6, 15];
7
13
  export declare const SHARED_VOCABULARY_EXTENDED_TEXT_COUNTER_CLASSES: readonly ["qti-counter-up", "qti-counter-down"];
@@ -1 +1 @@
1
- {"version":3,"file":"shared-vocabulary.d.ts","sourceRoot":"","sources":["../src/shared-vocabulary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-vocabulary.d.ts","sourceRoot":"","sources":["../src/shared-vocabulary.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,18 @@ export const SHARED_VOCABULARY_INPUT_WIDTHS = [
3
3
  1, 2, 3, 4, 6, 10, 15, 20, 25, 30, 35, 40, 45, 50, 72,
4
4
  ];
5
5
  export const SHARED_VOCABULARY_GAP_INPUT_WIDTHS = SHARED_VOCABULARY_INPUT_WIDTHS;
6
+ export const SHARED_VOCABULARY_LABEL_STYLES = [
7
+ "none",
8
+ "decimal",
9
+ "cjk-ideographic",
10
+ "lower-alpha",
11
+ "upper-alpha",
12
+ ];
13
+ export const SHARED_VOCABULARY_LABEL_SUFFIXES = ["none", "period", "parenthesis"];
14
+ export const SHARED_VOCABULARY_ORIENTATIONS = ["horizontal", "vertical"];
15
+ export const SHARED_VOCABULARY_CHOICES_STACKING = [1, 2, 3, 4, 5];
16
+ export const SHARED_VOCABULARY_CHOICES_POSITIONS = ["top", "bottom", "left", "right"];
17
+ export const SHARED_VOCABULARY_SELECTION_TONES = ["light", "dark"];
6
18
  /** Normative QTI 3 shared vocabulary extended text height token values (1EdTech vocab). */
7
19
  export const SHARED_VOCABULARY_EXTENDED_TEXT_HEIGHT_LINES = [3, 6, 15];
8
20
  export const SHARED_VOCABULARY_EXTENDED_TEXT_COUNTER_CLASSES = [
@@ -1 +1 @@
1
- {"version":3,"file":"shared-vocabulary.js","sourceRoot":"","sources":["../src/shared-vocabulary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-vocabulary.js","sourceRoot":"","sources":["../src/shared-vocabulary.ts"],"names":[],"mappings":"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"}
package/dist/support.d.ts CHANGED
@@ -1,8 +1,11 @@
1
- import type { QtiElementSupport, QtiInteractionElementSupport, QtiInteractionType, QtiProcessingElementSupport } from "./types.js";
1
+ import type { QtiDiagnostic, QtiElementSupport, QtiInteractionElementSupport, QtiInteractionRegistryStatus, QtiInteractionType, QtiItemMetadataElementSupport, QtiProcessingElementSupport, QtiSourceLocation } from "./types.js";
2
2
  export declare const interactionSupport: QtiInteractionElementSupport[];
3
3
  export declare const deprecatedInteractionSupport: QtiInteractionElementSupport[];
4
4
  export declare const processingSupport: QtiProcessingElementSupport[];
5
+ export declare const itemMetadataSupport: QtiItemMetadataElementSupport[];
5
6
  export declare const elementSupport: QtiElementSupport[];
6
7
  export declare const interactionNameToType: Map<string, QtiInteractionType>;
7
8
  export declare function getInteractionSupport(qtiName: string): QtiElementSupport | undefined;
9
+ export declare function interactionRegistryStatus(qtiName: string): QtiInteractionRegistryStatus;
10
+ export declare function interactionRegistryDiagnostics(qtiName: string, source: QtiSourceLocation): QtiDiagnostic[];
8
11
  //# sourceMappingURL=support.d.ts.map