@pie-players/pie-assessment-toolkit 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +520 -0
- package/dist/attempt/TestSession.d.ts +90 -0
- package/dist/attempt/TestSession.d.ts.map +1 -0
- package/dist/attempt/TestSession.js +174 -0
- package/dist/attempt/TestSession.js.map +1 -0
- package/dist/core/TypedEventBus.d.ts +48 -0
- package/dist/core/TypedEventBus.d.ts.map +1 -0
- package/dist/core/TypedEventBus.js +63 -0
- package/dist/core/TypedEventBus.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/item-loader.d.ts +45 -0
- package/dist/item-loader.d.ts.map +1 -0
- package/dist/item-loader.js +62 -0
- package/dist/item-loader.js.map +1 -0
- package/dist/player/AssessmentPlayer.d.ts +388 -0
- package/dist/player/AssessmentPlayer.d.ts.map +1 -0
- package/dist/player/AssessmentPlayer.js +965 -0
- package/dist/player/AssessmentPlayer.js.map +1 -0
- package/dist/player/index.d.ts +17 -0
- package/dist/player/index.d.ts.map +1 -0
- package/dist/player/index.js +15 -0
- package/dist/player/index.js.map +1 -0
- package/dist/player/navigation-types.d.ts +63 -0
- package/dist/player/navigation-types.d.ts.map +1 -0
- package/dist/player/navigation-types.js +7 -0
- package/dist/player/navigation-types.js.map +1 -0
- package/dist/player/qti-navigation.d.ts +29 -0
- package/dist/player/qti-navigation.d.ts.map +1 -0
- package/dist/player/qti-navigation.js +160 -0
- package/dist/player/qti-navigation.js.map +1 -0
- package/dist/reference-layout/index.d.ts +19 -0
- package/dist/reference-layout/index.d.ts.map +1 -0
- package/dist/reference-layout/index.js +20 -0
- package/dist/reference-layout/index.js.map +1 -0
- package/dist/services/AccessibilityCatalogResolver.d.ts +141 -0
- package/dist/services/AccessibilityCatalogResolver.d.ts.map +1 -0
- package/dist/services/AccessibilityCatalogResolver.js +249 -0
- package/dist/services/AccessibilityCatalogResolver.js.map +1 -0
- package/dist/services/AssessmentAuthoringService.d.ts +60 -0
- package/dist/services/AssessmentAuthoringService.d.ts.map +1 -0
- package/dist/services/AssessmentAuthoringService.js +183 -0
- package/dist/services/AssessmentAuthoringService.js.map +1 -0
- package/dist/services/ContextVariableStore.d.ts +114 -0
- package/dist/services/ContextVariableStore.d.ts.map +1 -0
- package/dist/services/ContextVariableStore.js +207 -0
- package/dist/services/ContextVariableStore.js.map +1 -0
- package/dist/services/ElementToolStateStore.d.ts +125 -0
- package/dist/services/ElementToolStateStore.d.ts.map +1 -0
- package/dist/services/ElementToolStateStore.js +200 -0
- package/dist/services/ElementToolStateStore.js.map +1 -0
- package/dist/services/HighlightCoordinator.d.ts +179 -0
- package/dist/services/HighlightCoordinator.d.ts.map +1 -0
- package/dist/services/HighlightCoordinator.js +446 -0
- package/dist/services/HighlightCoordinator.js.map +1 -0
- package/dist/services/I18nService.d.ts +121 -0
- package/dist/services/I18nService.d.ts.map +1 -0
- package/dist/services/I18nService.js +276 -0
- package/dist/services/I18nService.js.map +1 -0
- package/dist/services/PNPMapper.d.ts +71 -0
- package/dist/services/PNPMapper.d.ts.map +1 -0
- package/dist/services/PNPMapper.js +98 -0
- package/dist/services/PNPMapper.js.map +1 -0
- package/dist/services/PNPToolResolver.d.ts +127 -0
- package/dist/services/PNPToolResolver.d.ts.map +1 -0
- package/dist/services/PNPToolResolver.js +222 -0
- package/dist/services/PNPToolResolver.js.map +1 -0
- package/dist/services/SSMLExtractor.d.ts +61 -0
- package/dist/services/SSMLExtractor.d.ts.map +1 -0
- package/dist/services/SSMLExtractor.js +181 -0
- package/dist/services/SSMLExtractor.js.map +1 -0
- package/dist/services/TTSService.d.ts +162 -0
- package/dist/services/TTSService.d.ts.map +1 -0
- package/dist/services/TTSService.js +465 -0
- package/dist/services/TTSService.js.map +1 -0
- package/dist/services/ThemeProvider.d.ts +95 -0
- package/dist/services/ThemeProvider.d.ts.map +1 -0
- package/dist/services/ThemeProvider.js +299 -0
- package/dist/services/ThemeProvider.js.map +1 -0
- package/dist/services/ToolConfigResolver.d.ts +162 -0
- package/dist/services/ToolConfigResolver.d.ts.map +1 -0
- package/dist/services/ToolConfigResolver.js +230 -0
- package/dist/services/ToolConfigResolver.js.map +1 -0
- package/dist/services/ToolCoordinator.d.ts +137 -0
- package/dist/services/ToolCoordinator.d.ts.map +1 -0
- package/dist/services/ToolCoordinator.js +318 -0
- package/dist/services/ToolCoordinator.js.map +1 -0
- package/dist/services/ToolkitCoordinator.d.ts +188 -0
- package/dist/services/ToolkitCoordinator.d.ts.map +1 -0
- package/dist/services/ToolkitCoordinator.js +252 -0
- package/dist/services/ToolkitCoordinator.js.map +1 -0
- package/dist/services/interfaces.d.ts +391 -0
- package/dist/services/interfaces.d.ts.map +1 -0
- package/dist/services/interfaces.js +12 -0
- package/dist/services/interfaces.js.map +1 -0
- package/dist/services/tool-providers/DesmosToolProvider.d.ts +103 -0
- package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/DesmosToolProvider.js +127 -0
- package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -0
- package/dist/services/tool-providers/IToolProvider.d.ts +137 -0
- package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/IToolProvider.js +13 -0
- package/dist/services/tool-providers/IToolProvider.js.map +1 -0
- package/dist/services/tool-providers/TIToolProvider.d.ts +107 -0
- package/dist/services/tool-providers/TIToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/TIToolProvider.js +123 -0
- package/dist/services/tool-providers/TIToolProvider.js.map +1 -0
- package/dist/services/tool-providers/TTSToolProvider.d.ts +143 -0
- package/dist/services/tool-providers/TTSToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/TTSToolProvider.js +168 -0
- package/dist/services/tool-providers/TTSToolProvider.js.map +1 -0
- package/dist/services/tool-providers/ToolProviderRegistry.d.ts +165 -0
- package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +1 -0
- package/dist/services/tool-providers/ToolProviderRegistry.js +240 -0
- package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -0
- package/dist/services/tool-providers/index.d.ts +18 -0
- package/dist/services/tool-providers/index.d.ts.map +1 -0
- package/dist/services/tool-providers/index.js +15 -0
- package/dist/services/tool-providers/index.js.map +1 -0
- package/dist/services/tts/browser-provider.d.ts +24 -0
- package/dist/services/tts/browser-provider.d.ts.map +1 -0
- package/dist/services/tts/browser-provider.js +177 -0
- package/dist/services/tts/browser-provider.js.map +1 -0
- package/dist/services/tts/provider-interface.d.ts +131 -0
- package/dist/services/tts/provider-interface.d.ts.map +1 -0
- package/dist/services/tts/provider-interface.js +10 -0
- package/dist/services/tts/provider-interface.js.map +1 -0
- package/dist/tools/calculators/desmos-provider.d.ts +54 -0
- package/dist/tools/calculators/desmos-provider.d.ts.map +1 -0
- package/dist/tools/calculators/desmos-provider.js +384 -0
- package/dist/tools/calculators/desmos-provider.js.map +1 -0
- package/dist/tools/calculators/mathjs-provider.d.ts +50 -0
- package/dist/tools/calculators/mathjs-provider.d.ts.map +1 -0
- package/dist/tools/calculators/mathjs-provider.js +660 -0
- package/dist/tools/calculators/mathjs-provider.js.map +1 -0
- package/dist/tools/calculators/ti-provider.d.ts +122 -0
- package/dist/tools/calculators/ti-provider.d.ts.map +1 -0
- package/dist/tools/calculators/ti-provider.js +587 -0
- package/dist/tools/calculators/ti-provider.js.map +1 -0
- package/dist/tools/client.d.ts +17 -0
- package/dist/tools/client.d.ts.map +1 -0
- package/dist/tools/client.js +26 -0
- package/dist/tools/client.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +10 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/library-loader.d.ts +63 -0
- package/dist/tools/library-loader.d.ts.map +1 -0
- package/dist/tools/library-loader.js +292 -0
- package/dist/tools/library-loader.js.map +1 -0
- package/dist/tools/response-discovery.d.ts +72 -0
- package/dist/tools/response-discovery.d.ts.map +1 -0
- package/dist/tools/response-discovery.js +183 -0
- package/dist/tools/response-discovery.js.map +1 -0
- package/dist/tools/tool-coordinator.d.ts +76 -0
- package/dist/tools/tool-coordinator.d.ts.map +1 -0
- package/dist/tools/tool-coordinator.js +197 -0
- package/dist/tools/tool-coordinator.js.map +1 -0
- package/dist/tools/types.d.ts +427 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +13 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/variant-resolver.d.ts +48 -0
- package/dist/tools/variant-resolver.d.ts.map +1 -0
- package/dist/tools/variant-resolver.js +214 -0
- package/dist/tools/variant-resolver.js.map +1 -0
- package/dist/types/events.d.ts +157 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +11 -0
- package/dist/types/events.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +11 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +71 -0
- package/src/README.md +626 -0
- package/src/components/QuestionToolBar.svelte +406 -0
- package/src/player/AssessmentLayout.svelte +68 -0
- package/src/player/README.md +154 -0
- package/src/reference-layout/README.md +135 -0
- package/src/reference-layout/ReferenceLayout.svelte +209 -0
- package/src/reference-layout/components/AssessmentContent.svelte +259 -0
- package/src/reference-layout/components/AssessmentFooter.svelte +89 -0
- package/src/reference-layout/components/AssessmentHeader.svelte +250 -0
- package/src/reference-layout/components/AssessmentNavigation.svelte +134 -0
- package/src/reference-layout/components/AssessmentToolsBar.svelte +176 -0
- package/src/reference-layout/components/ItemPanel.svelte +200 -0
- package/src/reference-layout/components/NotesPanel.svelte +179 -0
- package/src/reference-layout/components/PassagePanel.svelte +76 -0
- package/src/tools/README.md +616 -0
- package/src/tools/calculators/README.md +395 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accessibility Catalog Resolver Service
|
|
3
|
+
*
|
|
4
|
+
* Manages QTI 3.0 accessibility catalogs at both assessment and item levels.
|
|
5
|
+
* Provides lookup and resolution services for alternative content representations.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // Initialize with assessment-level catalogs
|
|
10
|
+
* const resolver = new AccessibilityCatalogResolver(assessment.accessibilityCatalogs);
|
|
11
|
+
*
|
|
12
|
+
* // Add item-level catalogs when rendering item
|
|
13
|
+
* resolver.addItemCatalogs(item.accessibilityCatalogs);
|
|
14
|
+
*
|
|
15
|
+
* // Resolve catalog by identifier
|
|
16
|
+
* const spokenContent = resolver.getAlternative('intro-passage', {
|
|
17
|
+
* type: 'spoken',
|
|
18
|
+
* language: 'en-US'
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Check if catalog exists
|
|
22
|
+
* if (resolver.hasCatalog('math-problem-1')) {
|
|
23
|
+
* const braille = resolver.getAlternative('math-problem-1', { type: 'braille' });
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class AccessibilityCatalogResolver {
|
|
28
|
+
assessmentCatalogs = new Map();
|
|
29
|
+
itemCatalogs = new Map();
|
|
30
|
+
defaultLanguage = "en";
|
|
31
|
+
constructor(assessmentCatalogs, defaultLanguage = "en") {
|
|
32
|
+
this.defaultLanguage = defaultLanguage;
|
|
33
|
+
this.indexCatalogs(assessmentCatalogs ?? [], "assessment");
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Set the default language for fallback resolution
|
|
37
|
+
*/
|
|
38
|
+
setDefaultLanguage(language) {
|
|
39
|
+
this.defaultLanguage = language;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get the default language
|
|
43
|
+
*/
|
|
44
|
+
getDefaultLanguage() {
|
|
45
|
+
return this.defaultLanguage;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Index catalogs into the appropriate map
|
|
49
|
+
*/
|
|
50
|
+
indexCatalogs(catalogs, source) {
|
|
51
|
+
const targetMap = source === "assessment" ? this.assessmentCatalogs : this.itemCatalogs;
|
|
52
|
+
for (const catalog of catalogs) {
|
|
53
|
+
targetMap.set(catalog.identifier, catalog);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Add item-level catalogs (called when rendering a new item)
|
|
58
|
+
*/
|
|
59
|
+
addItemCatalogs(catalogs) {
|
|
60
|
+
if (!catalogs || catalogs.length === 0)
|
|
61
|
+
return;
|
|
62
|
+
this.indexCatalogs(catalogs, "item");
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Clear item-level catalogs (called when leaving an item)
|
|
66
|
+
*/
|
|
67
|
+
clearItemCatalogs() {
|
|
68
|
+
this.itemCatalogs.clear();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check if a catalog exists (checks both assessment and item levels)
|
|
72
|
+
*/
|
|
73
|
+
hasCatalog(catalogId) {
|
|
74
|
+
return (this.itemCatalogs.has(catalogId) || this.assessmentCatalogs.has(catalogId));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get alternative content for a catalog identifier
|
|
78
|
+
*
|
|
79
|
+
* Priority: Item-level catalogs take precedence over assessment-level
|
|
80
|
+
*/
|
|
81
|
+
getAlternative(catalogId, options) {
|
|
82
|
+
// Check item-level first (higher precedence)
|
|
83
|
+
const itemCatalog = this.itemCatalogs.get(catalogId);
|
|
84
|
+
if (itemCatalog) {
|
|
85
|
+
const card = this.findMatchingCard(itemCatalog, options);
|
|
86
|
+
if (card) {
|
|
87
|
+
return {
|
|
88
|
+
catalogId,
|
|
89
|
+
type: card.catalog,
|
|
90
|
+
language: card.language,
|
|
91
|
+
content: card.content,
|
|
92
|
+
source: "item",
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Fallback to assessment-level
|
|
97
|
+
const assessmentCatalog = this.assessmentCatalogs.get(catalogId);
|
|
98
|
+
if (assessmentCatalog) {
|
|
99
|
+
const card = this.findMatchingCard(assessmentCatalog, options);
|
|
100
|
+
if (card) {
|
|
101
|
+
return {
|
|
102
|
+
catalogId,
|
|
103
|
+
type: card.catalog,
|
|
104
|
+
language: card.language,
|
|
105
|
+
content: card.content,
|
|
106
|
+
source: "assessment",
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Find a matching catalog card based on lookup options
|
|
114
|
+
*/
|
|
115
|
+
findMatchingCard(catalog, options) {
|
|
116
|
+
const { type, language, useFallback = true } = options;
|
|
117
|
+
// Try exact match (type + language)
|
|
118
|
+
if (language) {
|
|
119
|
+
const exactMatch = catalog.cards.find((card) => card.catalog === type && card.language === language);
|
|
120
|
+
if (exactMatch)
|
|
121
|
+
return exactMatch;
|
|
122
|
+
}
|
|
123
|
+
// Try type match with default language (if fallback enabled)
|
|
124
|
+
if (useFallback) {
|
|
125
|
+
const defaultMatch = catalog.cards.find((card) => card.catalog === type && card.language === this.defaultLanguage);
|
|
126
|
+
if (defaultMatch)
|
|
127
|
+
return defaultMatch;
|
|
128
|
+
// Try type match without language constraint
|
|
129
|
+
const typeMatch = catalog.cards.find((card) => card.catalog === type);
|
|
130
|
+
if (typeMatch)
|
|
131
|
+
return typeMatch;
|
|
132
|
+
}
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get all available alternatives for a catalog identifier
|
|
137
|
+
*/
|
|
138
|
+
getAllAlternatives(catalogId) {
|
|
139
|
+
const results = [];
|
|
140
|
+
// Add item-level alternatives
|
|
141
|
+
const itemCatalog = this.itemCatalogs.get(catalogId);
|
|
142
|
+
if (itemCatalog) {
|
|
143
|
+
for (const card of itemCatalog.cards) {
|
|
144
|
+
results.push({
|
|
145
|
+
catalogId,
|
|
146
|
+
type: card.catalog,
|
|
147
|
+
language: card.language,
|
|
148
|
+
content: card.content,
|
|
149
|
+
source: "item",
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Add assessment-level alternatives (if not already provided by item)
|
|
154
|
+
const assessmentCatalog = this.assessmentCatalogs.get(catalogId);
|
|
155
|
+
if (assessmentCatalog) {
|
|
156
|
+
for (const card of assessmentCatalog.cards) {
|
|
157
|
+
// Only add if not already provided by item catalog
|
|
158
|
+
const exists = results.some((r) => r.type === card.catalog && r.language === card.language);
|
|
159
|
+
if (!exists) {
|
|
160
|
+
results.push({
|
|
161
|
+
catalogId,
|
|
162
|
+
type: card.catalog,
|
|
163
|
+
language: card.language,
|
|
164
|
+
content: card.content,
|
|
165
|
+
source: "assessment",
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return results;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get all catalog identifiers available (both assessment and item)
|
|
174
|
+
*/
|
|
175
|
+
getAllCatalogIds() {
|
|
176
|
+
const itemIds = Array.from(this.itemCatalogs.keys());
|
|
177
|
+
const assessmentIds = Array.from(this.assessmentCatalogs.keys());
|
|
178
|
+
// Combine and deduplicate
|
|
179
|
+
return Array.from(new Set([...itemIds, ...assessmentIds]));
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get statistics about available catalogs
|
|
183
|
+
*/
|
|
184
|
+
getStatistics() {
|
|
185
|
+
const allTypes = new Set();
|
|
186
|
+
const allLanguages = new Set();
|
|
187
|
+
// Collect from assessment catalogs
|
|
188
|
+
for (const catalog of this.assessmentCatalogs.values()) {
|
|
189
|
+
for (const card of catalog.cards) {
|
|
190
|
+
allTypes.add(card.catalog);
|
|
191
|
+
if (card.language)
|
|
192
|
+
allLanguages.add(card.language);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Collect from item catalogs
|
|
196
|
+
for (const catalog of this.itemCatalogs.values()) {
|
|
197
|
+
for (const card of catalog.cards) {
|
|
198
|
+
allTypes.add(card.catalog);
|
|
199
|
+
if (card.language)
|
|
200
|
+
allLanguages.add(card.language);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
totalCatalogs: this.assessmentCatalogs.size + this.itemCatalogs.size,
|
|
205
|
+
assessmentCatalogs: this.assessmentCatalogs.size,
|
|
206
|
+
itemCatalogs: this.itemCatalogs.size,
|
|
207
|
+
availableTypes: allTypes,
|
|
208
|
+
availableLanguages: allLanguages,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Check if a specific catalog type is available for a given catalog ID
|
|
213
|
+
*/
|
|
214
|
+
hasAlternativeType(catalogId, type) {
|
|
215
|
+
const alternatives = this.getAllAlternatives(catalogId);
|
|
216
|
+
return alternatives.some((alt) => alt.type === type);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get all catalog IDs that have a specific type of alternative
|
|
220
|
+
*/
|
|
221
|
+
getCatalogsByType(type) {
|
|
222
|
+
const catalogIds = new Set();
|
|
223
|
+
for (const [id, catalog] of this.assessmentCatalogs.entries()) {
|
|
224
|
+
if (catalog.cards.some((card) => card.catalog === type)) {
|
|
225
|
+
catalogIds.add(id);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
for (const [id, catalog] of this.itemCatalogs.entries()) {
|
|
229
|
+
if (catalog.cards.some((card) => card.catalog === type)) {
|
|
230
|
+
catalogIds.add(id);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return Array.from(catalogIds);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Reset all catalogs (both assessment and item)
|
|
237
|
+
*/
|
|
238
|
+
reset() {
|
|
239
|
+
this.assessmentCatalogs.clear();
|
|
240
|
+
this.itemCatalogs.clear();
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Destroy and cleanup
|
|
244
|
+
*/
|
|
245
|
+
destroy() {
|
|
246
|
+
this.reset();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=AccessibilityCatalogResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccessibilityCatalogResolver.js","sourceRoot":"","sources":["../../src/services/AccessibilityCatalogResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { AssessmentAuthoringCallbacks, AssessmentEntity, AssessmentSection, QuestionEntity } from "@pie-players/pie-players-shared";
|
|
2
|
+
export declare class AssessmentAuthoringService {
|
|
3
|
+
private assessment;
|
|
4
|
+
private eventBus;
|
|
5
|
+
private callbacks;
|
|
6
|
+
constructor(assessment: AssessmentEntity, callbacks?: AssessmentAuthoringCallbacks);
|
|
7
|
+
/**
|
|
8
|
+
* Get the current assessment structure
|
|
9
|
+
*/
|
|
10
|
+
getAssessment(): AssessmentEntity;
|
|
11
|
+
/**
|
|
12
|
+
* Subscribe to assessment updates
|
|
13
|
+
*/
|
|
14
|
+
subscribe(listener: (assessment: AssessmentEntity) => void): () => void;
|
|
15
|
+
/**
|
|
16
|
+
* Add a question/item to the assessment
|
|
17
|
+
*/
|
|
18
|
+
addItem(item: QuestionEntity, index?: number): void;
|
|
19
|
+
/**
|
|
20
|
+
* Remove an item from the assessment
|
|
21
|
+
*/
|
|
22
|
+
removeItem(itemId: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Move an item from one position to another
|
|
25
|
+
*/
|
|
26
|
+
moveItem(fromIndex: number, toIndex: number): void;
|
|
27
|
+
/**
|
|
28
|
+
* Update an item's properties
|
|
29
|
+
*/
|
|
30
|
+
updateItem(itemId: string, updates: Partial<QuestionEntity>): void;
|
|
31
|
+
/**
|
|
32
|
+
* Reorder items to match the provided question IDs
|
|
33
|
+
*/
|
|
34
|
+
reorderItems(newOrder: string[]): void;
|
|
35
|
+
/**
|
|
36
|
+
* Add a section to the assessment
|
|
37
|
+
*/
|
|
38
|
+
addSection(section: AssessmentSection, index?: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Remove a section from the assessment
|
|
41
|
+
*/
|
|
42
|
+
removeSection(sectionId: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* Update a section's properties
|
|
45
|
+
*/
|
|
46
|
+
updateSection(sectionId: string, updates: Partial<AssessmentSection>): void;
|
|
47
|
+
/**
|
|
48
|
+
* Add a question to a section
|
|
49
|
+
*/
|
|
50
|
+
addQuestionToSection(sectionId: string, questionId: string, sort?: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Remove a question from a section
|
|
53
|
+
*/
|
|
54
|
+
removeQuestionFromSection(sectionId: string, questionId: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* Emit assessment update event
|
|
57
|
+
*/
|
|
58
|
+
private emitUpdate;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=AssessmentAuthoringService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssessmentAuthoringService.d.ts","sourceRoot":"","sources":["../../src/services/AssessmentAuthoringService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,4BAA4B,EAC5B,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EAEd,MAAM,iCAAiC,CAAC;AAWzC,qBAAa,0BAA0B;IACtC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,SAAS,CAA+B;gBAG/C,UAAU,EAAE,gBAAgB,EAC5B,SAAS,GAAE,4BAAiC;IAe7C;;OAEG;IACH,aAAa,IAAI,gBAAgB;IAIjC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI;IAUvE;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAWnD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAuBhC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAoBlD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAelE;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAYtC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAW5D;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAetC;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAe3E;;OAEG;IACH,oBAAoB,CACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACX,IAAI;IAcP;;OAEG;IACH,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAetE;;OAEG;IACH,OAAO,CAAC,UAAU;CAIlB"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { TypedEventBus } from "../core/TypedEventBus";
|
|
2
|
+
export class AssessmentAuthoringService {
|
|
3
|
+
assessment;
|
|
4
|
+
eventBus;
|
|
5
|
+
callbacks;
|
|
6
|
+
constructor(assessment, callbacks = {}) {
|
|
7
|
+
this.assessment = { ...assessment };
|
|
8
|
+
this.callbacks = callbacks;
|
|
9
|
+
this.eventBus = new TypedEventBus();
|
|
10
|
+
// Initialize structure if missing
|
|
11
|
+
if (!this.assessment.questions) {
|
|
12
|
+
this.assessment.questions = [];
|
|
13
|
+
}
|
|
14
|
+
if (!this.assessment.sections) {
|
|
15
|
+
this.assessment.sections = [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the current assessment structure
|
|
20
|
+
*/
|
|
21
|
+
getAssessment() {
|
|
22
|
+
return { ...this.assessment };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Subscribe to assessment updates
|
|
26
|
+
*/
|
|
27
|
+
subscribe(listener) {
|
|
28
|
+
const wrappedListener = (event) => {
|
|
29
|
+
listener(event.detail);
|
|
30
|
+
};
|
|
31
|
+
this.eventBus.on("assessment-updated", wrappedListener);
|
|
32
|
+
return () => {
|
|
33
|
+
this.eventBus.off("assessment-updated", wrappedListener);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Add a question/item to the assessment
|
|
38
|
+
*/
|
|
39
|
+
addItem(item, index) {
|
|
40
|
+
const questions = this.assessment.questions || [];
|
|
41
|
+
const targetIndex = index !== undefined ? index : questions.length;
|
|
42
|
+
questions.splice(targetIndex, 0, item);
|
|
43
|
+
this.assessment.questions = questions;
|
|
44
|
+
this.callbacks.onItemAdded?.(item, targetIndex);
|
|
45
|
+
this.emitUpdate();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Remove an item from the assessment
|
|
49
|
+
*/
|
|
50
|
+
removeItem(itemId) {
|
|
51
|
+
const questions = this.assessment.questions || [];
|
|
52
|
+
const index = questions.findIndex((q) => q.id === itemId);
|
|
53
|
+
if (index === -1) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
questions.splice(index, 1);
|
|
57
|
+
this.assessment.questions = questions;
|
|
58
|
+
// Also remove from sections
|
|
59
|
+
if (this.assessment.sections) {
|
|
60
|
+
this.assessment.sections = this.assessment.sections.map((section) => ({
|
|
61
|
+
...section,
|
|
62
|
+
questions: section.questions.filter((ref) => ref.questionId !== itemId),
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
this.callbacks.onItemRemoved?.(itemId, index);
|
|
66
|
+
this.emitUpdate();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Move an item from one position to another
|
|
70
|
+
*/
|
|
71
|
+
moveItem(fromIndex, toIndex) {
|
|
72
|
+
const questions = this.assessment.questions || [];
|
|
73
|
+
if (fromIndex < 0 ||
|
|
74
|
+
fromIndex >= questions.length ||
|
|
75
|
+
toIndex < 0 ||
|
|
76
|
+
toIndex >= questions.length) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const [item] = questions.splice(fromIndex, 1);
|
|
80
|
+
questions.splice(toIndex, 0, item);
|
|
81
|
+
this.assessment.questions = questions;
|
|
82
|
+
this.callbacks.onItemMoved?.(fromIndex, toIndex);
|
|
83
|
+
this.emitUpdate();
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Update an item's properties
|
|
87
|
+
*/
|
|
88
|
+
updateItem(itemId, updates) {
|
|
89
|
+
const questions = this.assessment.questions || [];
|
|
90
|
+
const index = questions.findIndex((q) => q.id === itemId);
|
|
91
|
+
if (index === -1) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
questions[index] = { ...questions[index], ...updates };
|
|
95
|
+
this.assessment.questions = questions;
|
|
96
|
+
this.callbacks.onItemUpdated?.(itemId, updates);
|
|
97
|
+
this.emitUpdate();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Reorder items to match the provided question IDs
|
|
101
|
+
*/
|
|
102
|
+
reorderItems(newOrder) {
|
|
103
|
+
const questions = this.assessment.questions || [];
|
|
104
|
+
const questionMap = new Map(questions.map((q) => [q.id, q]));
|
|
105
|
+
const reordered = newOrder
|
|
106
|
+
.map((id) => questionMap.get(id))
|
|
107
|
+
.filter((q) => q !== undefined);
|
|
108
|
+
this.assessment.questions = reordered;
|
|
109
|
+
this.emitUpdate();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Add a section to the assessment
|
|
113
|
+
*/
|
|
114
|
+
addSection(section, index) {
|
|
115
|
+
const sections = this.assessment.sections || [];
|
|
116
|
+
const targetIndex = index !== undefined ? index : sections.length;
|
|
117
|
+
sections.splice(targetIndex, 0, section);
|
|
118
|
+
this.assessment.sections = sections;
|
|
119
|
+
this.callbacks.onSectionAdded?.(section, targetIndex);
|
|
120
|
+
this.emitUpdate();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Remove a section from the assessment
|
|
124
|
+
*/
|
|
125
|
+
removeSection(sectionId) {
|
|
126
|
+
const sections = this.assessment.sections || [];
|
|
127
|
+
const index = sections.findIndex((s) => s.id === sectionId);
|
|
128
|
+
if (index === -1) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
sections.splice(index, 1);
|
|
132
|
+
this.assessment.sections = sections;
|
|
133
|
+
this.callbacks.onSectionRemoved?.(sectionId, index);
|
|
134
|
+
this.emitUpdate();
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Update a section's properties
|
|
138
|
+
*/
|
|
139
|
+
updateSection(sectionId, updates) {
|
|
140
|
+
const sections = this.assessment.sections || [];
|
|
141
|
+
const index = sections.findIndex((s) => s.id === sectionId);
|
|
142
|
+
if (index === -1) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
sections[index] = { ...sections[index], ...updates };
|
|
146
|
+
this.assessment.sections = sections;
|
|
147
|
+
this.callbacks.onSectionUpdated?.(sectionId, updates);
|
|
148
|
+
this.emitUpdate();
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Add a question to a section
|
|
152
|
+
*/
|
|
153
|
+
addQuestionToSection(sectionId, questionId, sort) {
|
|
154
|
+
const sections = this.assessment.sections || [];
|
|
155
|
+
const section = sections.find((s) => s.id === sectionId);
|
|
156
|
+
if (!section) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const ref = { questionId, sort };
|
|
160
|
+
section.questions = [...(section.questions || []), ref];
|
|
161
|
+
this.emitUpdate();
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Remove a question from a section
|
|
165
|
+
*/
|
|
166
|
+
removeQuestionFromSection(sectionId, questionId) {
|
|
167
|
+
const sections = this.assessment.sections || [];
|
|
168
|
+
const section = sections.find((s) => s.id === sectionId);
|
|
169
|
+
if (!section) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
section.questions = section.questions.filter((ref) => ref.questionId !== questionId);
|
|
173
|
+
this.emitUpdate();
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Emit assessment update event
|
|
177
|
+
*/
|
|
178
|
+
emitUpdate() {
|
|
179
|
+
this.callbacks.onAssessmentUpdated?.(this.assessment);
|
|
180
|
+
this.eventBus.emit("assessment-updated", this.assessment);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=AssessmentAuthoringService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssessmentAuthoringService.js","sourceRoot":"","sources":["../../src/services/AssessmentAuthoringService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Variable Store
|
|
3
|
+
*
|
|
4
|
+
* Standalone service for managing QTI 3.0 context variables.
|
|
5
|
+
* Context variables are global assessment-level variables that can be
|
|
6
|
+
* shared across items.
|
|
7
|
+
*
|
|
8
|
+
* Can be used independently by any assessment player without requiring
|
|
9
|
+
* the full AssessmentPlayer.
|
|
10
|
+
*
|
|
11
|
+
* Part of PIE Assessment Toolkit.
|
|
12
|
+
*/
|
|
13
|
+
import type { ContextDeclaration } from "@pie-players/pie-players-shared/types";
|
|
14
|
+
/**
|
|
15
|
+
* Standalone service for managing QTI 3.0 context variables.
|
|
16
|
+
*
|
|
17
|
+
* Context variables are global assessment-level variables that can be
|
|
18
|
+
* shared across items. Can be used independently by any assessment player.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* // Initialize with declarations
|
|
23
|
+
* const store = new ContextVariableStore(declarations);
|
|
24
|
+
*
|
|
25
|
+
* // Get/set variables
|
|
26
|
+
* const seed = store.get('RANDOM_SEED');
|
|
27
|
+
* store.set('DIFFICULTY_LEVEL', 'hard');
|
|
28
|
+
*
|
|
29
|
+
* // Pass to items
|
|
30
|
+
* const context = store.toObject();
|
|
31
|
+
* await renderItem(item, session, context);
|
|
32
|
+
*
|
|
33
|
+
* // Persist in session
|
|
34
|
+
* session.contextVariables = store.toObject();
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare class ContextVariableStore {
|
|
38
|
+
private variables;
|
|
39
|
+
private declarations;
|
|
40
|
+
/**
|
|
41
|
+
* Initialize store with context declarations from assessment
|
|
42
|
+
*
|
|
43
|
+
* @param declarations QTI 3.0 context declarations
|
|
44
|
+
*/
|
|
45
|
+
constructor(declarations?: ContextDeclaration[]);
|
|
46
|
+
/**
|
|
47
|
+
* Initialize context variables from declarations
|
|
48
|
+
*
|
|
49
|
+
* Sets each variable to its defaultValue or type-appropriate default.
|
|
50
|
+
*/
|
|
51
|
+
initialize(declarations: ContextDeclaration[]): void;
|
|
52
|
+
/**
|
|
53
|
+
* Get context variable value
|
|
54
|
+
*
|
|
55
|
+
* @param identifier Variable identifier
|
|
56
|
+
* @returns Variable value or undefined if not found
|
|
57
|
+
*/
|
|
58
|
+
get(identifier: string): any;
|
|
59
|
+
/**
|
|
60
|
+
* Set context variable value
|
|
61
|
+
*
|
|
62
|
+
* @param identifier Variable identifier
|
|
63
|
+
* @param value New value
|
|
64
|
+
*/
|
|
65
|
+
set(identifier: string, value: any): void;
|
|
66
|
+
/**
|
|
67
|
+
* Check if variable exists
|
|
68
|
+
*/
|
|
69
|
+
has(identifier: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get all variable names
|
|
72
|
+
*/
|
|
73
|
+
getIdentifiers(): string[];
|
|
74
|
+
/**
|
|
75
|
+
* Get all variables as object (for passing to PIE elements)
|
|
76
|
+
*
|
|
77
|
+
* @returns Plain object with all context variables
|
|
78
|
+
*/
|
|
79
|
+
toObject(): Record<string, any>;
|
|
80
|
+
/**
|
|
81
|
+
* Load state from serialized object (for session restore)
|
|
82
|
+
*
|
|
83
|
+
* @param state Object containing context variable values
|
|
84
|
+
*/
|
|
85
|
+
fromObject(state: Record<string, any>): void;
|
|
86
|
+
/**
|
|
87
|
+
* Clear all variables (reset to defaults)
|
|
88
|
+
*/
|
|
89
|
+
reset(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Get declaration for variable
|
|
92
|
+
*
|
|
93
|
+
* @param identifier Variable identifier
|
|
94
|
+
* @returns Declaration or undefined if not found
|
|
95
|
+
*/
|
|
96
|
+
getDeclaration(identifier: string): ContextDeclaration | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Get all declarations
|
|
99
|
+
*/
|
|
100
|
+
getDeclarations(): ContextDeclaration[];
|
|
101
|
+
/**
|
|
102
|
+
* Get default value for QTI base type
|
|
103
|
+
*
|
|
104
|
+
* @private
|
|
105
|
+
*/
|
|
106
|
+
private getDefaultValueForType;
|
|
107
|
+
/**
|
|
108
|
+
* Validate value matches declared type (basic validation)
|
|
109
|
+
*
|
|
110
|
+
* @private
|
|
111
|
+
*/
|
|
112
|
+
private validateValue;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=ContextVariableStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextVariableStore.d.ts","sourceRoot":"","sources":["../../src/services/ContextVariableStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,YAAY,CAA8C;IAElE;;;;OAIG;gBACS,YAAY,CAAC,EAAE,kBAAkB,EAAE;IAM/C;;;;OAIG;IACH,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAoBpD;;;;;OAKG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG;IAI5B;;;;;OAKG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAiBzC;;OAEG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;;;OAIG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI/B;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAM5C;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIlE;;OAEG;IACH,eAAe,IAAI,kBAAkB,EAAE;IAIvC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAiCrB"}
|