@pie-players/pie-assessment-toolkit 0.2.7 → 0.2.9

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 (220) hide show
  1. package/README.md +200 -67
  2. package/dist/attempt/TestSession.d.ts +23 -21
  3. package/dist/attempt/TestSession.d.ts.map +1 -1
  4. package/dist/attempt/TestSession.js +17 -15
  5. package/dist/attempt/TestSession.js.map +1 -1
  6. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +50 -0
  7. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts.map +1 -0
  8. package/dist/attempt/adapters/activity-to-test-attempt-session.js +135 -0
  9. package/dist/attempt/adapters/activity-to-test-attempt-session.js.map +1 -0
  10. package/dist/components/ItemToolBar.custom-element.js +628 -0
  11. package/dist/components/PieAssessmentToolkit.custom-element.js +670 -0
  12. package/dist/components/item-toolbar-element.d.ts +3 -0
  13. package/dist/components/item-toolbar-element.d.ts.map +1 -0
  14. package/dist/components/item-toolbar-element.js +2 -0
  15. package/dist/components/item-toolbar-element.js.map +1 -0
  16. package/dist/components/pie-assessment-toolkit-element.d.ts +3 -0
  17. package/dist/components/pie-assessment-toolkit-element.d.ts.map +1 -0
  18. package/dist/components/pie-assessment-toolkit-element.js +2 -0
  19. package/dist/components/pie-assessment-toolkit-element.js.map +1 -0
  20. package/dist/context/assessment-toolkit-context.d.ts +52 -0
  21. package/dist/context/assessment-toolkit-context.d.ts.map +1 -0
  22. package/dist/context/assessment-toolkit-context.js +6 -0
  23. package/dist/context/assessment-toolkit-context.js.map +1 -0
  24. package/dist/context/runtime-context-consumer.d.ts +14 -0
  25. package/dist/context/runtime-context-consumer.d.ts.map +1 -0
  26. package/dist/context/runtime-context-consumer.js +52 -0
  27. package/dist/context/runtime-context-consumer.js.map +1 -0
  28. package/dist/index.d.ts +16 -5
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +13 -11
  31. package/dist/index.js.map +1 -1
  32. package/dist/runtime/RuntimeRegistry.d.ts +13 -0
  33. package/dist/runtime/RuntimeRegistry.d.ts.map +1 -0
  34. package/dist/runtime/RuntimeRegistry.js +50 -0
  35. package/dist/runtime/RuntimeRegistry.js.map +1 -0
  36. package/dist/runtime/SectionRuntimeEngine.d.ts +45 -0
  37. package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -0
  38. package/dist/runtime/SectionRuntimeEngine.js +81 -0
  39. package/dist/runtime/SectionRuntimeEngine.js.map +1 -0
  40. package/dist/runtime/registration-events.d.ts +19 -0
  41. package/dist/runtime/registration-events.d.ts.map +1 -0
  42. package/dist/runtime/registration-events.js +4 -0
  43. package/dist/runtime/registration-events.js.map +1 -0
  44. package/dist/runtime/runtime-event-guards.d.ts +3 -0
  45. package/dist/runtime/runtime-event-guards.d.ts.map +1 -0
  46. package/dist/runtime/runtime-event-guards.js +9 -0
  47. package/dist/runtime/runtime-event-guards.js.map +1 -0
  48. package/dist/runtime/tool-host-contract.d.ts +30 -0
  49. package/dist/runtime/tool-host-contract.d.ts.map +1 -0
  50. package/dist/runtime/tool-host-contract.js +48 -0
  51. package/dist/runtime/tool-host-contract.js.map +1 -0
  52. package/dist/services/TTSService.d.ts +3 -1
  53. package/dist/services/TTSService.d.ts.map +1 -1
  54. package/dist/services/TTSService.js +13 -12
  55. package/dist/services/TTSService.js.map +1 -1
  56. package/dist/services/ThemeProvider.d.ts +1 -0
  57. package/dist/services/ThemeProvider.d.ts.map +1 -1
  58. package/dist/services/ThemeProvider.js +82 -46
  59. package/dist/services/ThemeProvider.js.map +1 -1
  60. package/dist/services/ToolConfigResolver.d.ts +1 -1
  61. package/dist/services/ToolConfigResolver.js +1 -1
  62. package/dist/services/ToolCoordinator.d.ts +1 -1
  63. package/dist/services/ToolCoordinator.d.ts.map +1 -1
  64. package/dist/services/ToolRegistry.d.ts +64 -67
  65. package/dist/services/ToolRegistry.d.ts.map +1 -1
  66. package/dist/services/ToolRegistry.js +72 -22
  67. package/dist/services/ToolRegistry.js.map +1 -1
  68. package/dist/services/ToolkitCoordinator.d.ts +106 -8
  69. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  70. package/dist/services/ToolkitCoordinator.js +502 -71
  71. package/dist/services/ToolkitCoordinator.js.map +1 -1
  72. package/dist/services/createDefaultToolRegistry.d.ts +12 -7
  73. package/dist/services/createDefaultToolRegistry.d.ts.map +1 -1
  74. package/dist/services/createDefaultToolRegistry.js +6 -10
  75. package/dist/services/createDefaultToolRegistry.js.map +1 -1
  76. package/dist/services/defaultPersonalNeedsProfile.d.ts +4 -0
  77. package/dist/services/defaultPersonalNeedsProfile.d.ts.map +1 -0
  78. package/dist/services/defaultPersonalNeedsProfile.js +25 -0
  79. package/dist/services/defaultPersonalNeedsProfile.js.map +1 -0
  80. package/dist/services/interfaces.d.ts +61 -1
  81. package/dist/services/interfaces.d.ts.map +1 -1
  82. package/dist/services/interfaces.js.map +1 -1
  83. package/dist/services/pnp-standard-features.d.ts +3 -4
  84. package/dist/services/pnp-standard-features.d.ts.map +1 -1
  85. package/dist/services/pnp-standard-features.js +0 -3
  86. package/dist/services/pnp-standard-features.js.map +1 -1
  87. package/dist/services/section-controller-types.d.ts +32 -0
  88. package/dist/services/section-controller-types.d.ts.map +1 -0
  89. package/dist/services/section-controller-types.js +2 -0
  90. package/dist/services/section-controller-types.js.map +1 -0
  91. package/dist/services/tool-context.d.ts +4 -4
  92. package/dist/services/tool-context.d.ts.map +1 -1
  93. package/dist/services/tool-context.js +106 -17
  94. package/dist/services/tool-context.js.map +1 -1
  95. package/dist/services/tool-instance-id.d.ts +17 -0
  96. package/dist/services/tool-instance-id.d.ts.map +1 -0
  97. package/dist/services/tool-instance-id.js +61 -0
  98. package/dist/services/tool-instance-id.js.map +1 -0
  99. package/dist/services/tool-providers/IToolProvider.d.ts +2 -3
  100. package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -1
  101. package/dist/services/tool-providers/IToolProvider.js +1 -2
  102. package/dist/services/tool-providers/IToolProvider.js.map +1 -1
  103. package/dist/services/tool-providers/MathJsToolProvider.d.ts +25 -0
  104. package/dist/services/tool-providers/MathJsToolProvider.d.ts.map +1 -0
  105. package/dist/services/tool-providers/MathJsToolProvider.js +53 -0
  106. package/dist/services/tool-providers/MathJsToolProvider.js.map +1 -0
  107. package/dist/services/tool-providers/index.d.ts +2 -0
  108. package/dist/services/tool-providers/index.d.ts.map +1 -1
  109. package/dist/services/tool-providers/index.js +1 -0
  110. package/dist/services/tool-providers/index.js.map +1 -1
  111. package/dist/services/tools-config-normalizer.d.ts +26 -0
  112. package/dist/services/tools-config-normalizer.d.ts.map +1 -0
  113. package/dist/services/tools-config-normalizer.js +63 -0
  114. package/dist/services/tools-config-normalizer.js.map +1 -0
  115. package/dist/tools/calculators/ti-provider.d.ts.map +1 -1
  116. package/dist/tools/calculators/ti-provider.js +127 -4
  117. package/dist/tools/calculators/ti-provider.js.map +1 -1
  118. package/dist/tools/client.d.ts +2 -1
  119. package/dist/tools/client.d.ts.map +1 -1
  120. package/dist/tools/client.js +2 -1
  121. package/dist/tools/client.js.map +1 -1
  122. package/dist/tools/default-tool-module-loaders.d.ts +9 -0
  123. package/dist/tools/default-tool-module-loaders.d.ts.map +1 -0
  124. package/dist/tools/default-tool-module-loaders.js +17 -0
  125. package/dist/tools/default-tool-module-loaders.js.map +1 -0
  126. package/dist/tools/index.d.ts +2 -1
  127. package/dist/tools/index.d.ts.map +1 -1
  128. package/dist/tools/index.js +2 -1
  129. package/dist/tools/index.js.map +1 -1
  130. package/dist/tools/library-loader.d.ts +1 -1
  131. package/dist/tools/library-loader.d.ts.map +1 -1
  132. package/dist/tools/library-loader.js +7 -2
  133. package/dist/tools/library-loader.js.map +1 -1
  134. package/dist/tools/registrations/accessibility-tools.d.ts +1 -9
  135. package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
  136. package/dist/tools/registrations/accessibility-tools.js +95 -113
  137. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  138. package/dist/tools/registrations/calculator.d.ts +2 -2
  139. package/dist/tools/registrations/calculator.d.ts.map +1 -1
  140. package/dist/tools/registrations/calculator.js +34 -55
  141. package/dist/tools/registrations/calculator.js.map +1 -1
  142. package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
  143. package/dist/tools/registrations/interaction-tools.js +77 -52
  144. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  145. package/dist/tools/registrations/measurement-tools.d.ts.map +1 -1
  146. package/dist/tools/registrations/measurement-tools.js +63 -38
  147. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  148. package/dist/tools/registrations/subject-specific-tools.d.ts.map +1 -1
  149. package/dist/tools/registrations/subject-specific-tools.js +63 -38
  150. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  151. package/dist/tools/registrations/tts.d.ts +1 -1
  152. package/dist/tools/registrations/tts.d.ts.map +1 -1
  153. package/dist/tools/registrations/tts.js +27 -41
  154. package/dist/tools/registrations/tts.js.map +1 -1
  155. package/dist/tools/response-discovery.d.ts +12 -14
  156. package/dist/tools/response-discovery.d.ts.map +1 -1
  157. package/dist/tools/response-discovery.js +23 -80
  158. package/dist/tools/response-discovery.js.map +1 -1
  159. package/dist/tools/tool-tag-map.d.ts +3 -3
  160. package/dist/tools/tool-tag-map.d.ts.map +1 -1
  161. package/dist/tools/tool-tag-map.js +2 -3
  162. package/dist/tools/tool-tag-map.js.map +1 -1
  163. package/dist/tools/types.d.ts +3 -1
  164. package/dist/tools/types.d.ts.map +1 -1
  165. package/package.json +25 -28
  166. package/src/README.md +16 -32
  167. package/src/components/ItemToolBar.svelte +489 -0
  168. package/src/components/PNPProvenanceViewer.svelte +14 -4
  169. package/src/components/PieAssessmentToolkit.svelte +517 -0
  170. package/src/components/ToolButton.svelte +11 -11
  171. package/src/components/ToolButtonGroup.svelte +27 -11
  172. package/src/tools/README.md +6 -5
  173. package/src/tools/calculators/README.md +4 -4
  174. package/dist/player/AssessmentPlayer.d.ts +0 -397
  175. package/dist/player/AssessmentPlayer.d.ts.map +0 -1
  176. package/dist/player/AssessmentPlayer.js +0 -974
  177. package/dist/player/AssessmentPlayer.js.map +0 -1
  178. package/dist/player/index.d.ts +0 -17
  179. package/dist/player/index.d.ts.map +0 -1
  180. package/dist/player/index.js +0 -15
  181. package/dist/player/index.js.map +0 -1
  182. package/dist/player/navigation-types.d.ts +0 -63
  183. package/dist/player/navigation-types.d.ts.map +0 -1
  184. package/dist/player/navigation-types.js +0 -7
  185. package/dist/player/navigation-types.js.map +0 -1
  186. package/dist/player/qti-navigation.d.ts +0 -29
  187. package/dist/player/qti-navigation.d.ts.map +0 -1
  188. package/dist/player/qti-navigation.js +0 -160
  189. package/dist/player/qti-navigation.js.map +0 -1
  190. package/dist/reference-layout/index.d.ts +0 -19
  191. package/dist/reference-layout/index.d.ts.map +0 -1
  192. package/dist/reference-layout/index.js +0 -20
  193. package/dist/reference-layout/index.js.map +0 -1
  194. package/dist/services/AnnotationToolbarConfig.d.ts +0 -134
  195. package/dist/services/AnnotationToolbarConfig.d.ts.map +0 -1
  196. package/dist/services/AnnotationToolbarConfig.js +0 -100
  197. package/dist/services/AnnotationToolbarConfig.js.map +0 -1
  198. package/dist/services/AssessmentAuthoringService.d.ts +0 -60
  199. package/dist/services/AssessmentAuthoringService.d.ts.map +0 -1
  200. package/dist/services/AssessmentAuthoringService.js +0 -183
  201. package/dist/services/AssessmentAuthoringService.js.map +0 -1
  202. package/dist/services/PNPMapper.d.ts +0 -81
  203. package/dist/services/PNPMapper.d.ts.map +0 -1
  204. package/dist/services/PNPMapper.js +0 -108
  205. package/dist/services/PNPMapper.js.map +0 -1
  206. package/src/components/PNPProfileTester.example.svelte +0 -188
  207. package/src/components/PNPProfileTester.svelte +0 -397
  208. package/src/components/QuestionToolBar.svelte +0 -483
  209. package/src/player/AssessmentLayout.svelte +0 -68
  210. package/src/player/README.md +0 -154
  211. package/src/reference-layout/README.md +0 -135
  212. package/src/reference-layout/ReferenceLayout.svelte +0 -201
  213. package/src/reference-layout/components/AssessmentContent.svelte +0 -259
  214. package/src/reference-layout/components/AssessmentFooter.svelte +0 -89
  215. package/src/reference-layout/components/AssessmentHeader.svelte +0 -250
  216. package/src/reference-layout/components/AssessmentNavigation.svelte +0 -134
  217. package/src/reference-layout/components/AssessmentToolsBar.svelte +0 -176
  218. package/src/reference-layout/components/ItemPanel.svelte +0 -200
  219. package/src/reference-layout/components/NotesPanel.svelte +0 -179
  220. package/src/reference-layout/components/PassagePanel.svelte +0 -76
@@ -277,10 +277,10 @@ calculator.clearHistory();
277
277
  {#if visible}
278
278
  <div
279
279
  bind:this={containerEl}
280
- class="calculator-tool"
280
+ class="pie-tool-calculator"
281
281
  on:mousedown={() => toolCoordinator.bringToFront(toolId)}
282
282
  >
283
- <div class="tool-header">
283
+ <div class="pie-tool-calculator__header">
284
284
  <span>Calculator</span>
285
285
  <button on:click={handleClose}>×</button>
286
286
  </div>
@@ -290,14 +290,14 @@ calculator.clearHistory();
290
290
  {/if}
291
291
 
292
292
  <style>
293
- .calculator-tool {
293
+ .pie-tool-calculator {
294
294
  position: fixed;
295
295
  top: 100px;
296
296
  right: 50px;
297
297
  z-index: 1000;
298
298
  }
299
299
 
300
- .tool-header {
300
+ .pie-tool-calculator__header {
301
301
  padding: 10px;
302
302
  background: #34495e;
303
303
  color: white;
@@ -1,397 +0,0 @@
1
- /**
2
- * AssessmentPlayer
3
- *
4
- * Reference implementation showing how to wire PIE Assessment Toolkit services
5
- * together for a complete assessment player.
6
- *
7
- * This implementation provides:
8
- * - Navigation through assessment items (linear or nonlinear)
9
- * - QTI navigation model (testParts/sections/questionRefs)
10
- * - Section awareness and rubric block support
11
- * - Event-driven architecture using TypedEventBus
12
- * - Session state management
13
- * - TTS integration via TTSService
14
- * - Theme support via ThemeProvider
15
- * - Tool coordination (optional)
16
- *
17
- * Products can use this as-is, extend it, or use it as a pattern for their own implementation.
18
- */
19
- import type { AssessmentAuthoringCallbacks, AssessmentEntity, ItemConfig, ItemEntity, RubricBlock } from "@pie-players/pie-players-shared/types";
20
- import { type StorageLike, type TestSession } from "../attempt/TestSession.js";
21
- import { type AssessmentToolkitEvents, HighlightCoordinator, I18nService, type ThemeConfig, ThemeProvider, ToolCoordinator, TTSService, TypedEventBus } from "../index.js";
22
- import type { LoadItem } from "../item-loader.js";
23
- import { AssessmentAuthoringService } from "../services/AssessmentAuthoringService.js";
24
- import { type ResolvedToolConfig } from "../services/PNPToolResolver.js";
25
- import type { DefaultToolRegistryOptions } from "../services/createDefaultToolRegistry.js";
26
- import { DesmosCalculatorProvider, TICalculatorProvider } from "../tools/client.js";
27
- export interface ReferencePlayerConfig {
28
- assessment: AssessmentEntity;
29
- organizationId?: string | null;
30
- bundleHost?: string;
31
- /**
32
- * Item loader. Must be client-resolvable (can be backed by an API or local itemBank).
33
- */
34
- loadItem: LoadItem;
35
- /**
36
- * Player mode (defaults to 'gather' for student assessment mode)
37
- */
38
- mode?: "gather" | "view" | "evaluate" | "author";
39
- /**
40
- * Optional context to generate a deterministic TestSession identifier.
41
- * If omitted, a stable anonymous device id is used.
42
- */
43
- userId?: string | null;
44
- assignmentId?: string | null;
45
- /**
46
- * Optional storage injection for tests / custom persistence.
47
- * Defaults to browser localStorage when available.
48
- */
49
- attemptStorage?: StorageLike;
50
- navigationMode?: "linear" | "nonlinear";
51
- showSections?: boolean;
52
- allowSectionNavigation?: boolean;
53
- onSessionChanged?: (session: any) => void | Promise<void>;
54
- onItemChanged?: (itemId: string, index: number) => void | Promise<void>;
55
- onNavigationRequested?: (direction: "next" | "previous" | "index", targetIndex?: number) => void | Promise<void>;
56
- authoringCallbacks?: AssessmentAuthoringCallbacks;
57
- services?: {
58
- eventBus?: TypedEventBus<AssessmentToolkitEvents>;
59
- ttsService?: TTSService;
60
- toolCoordinator?: ToolCoordinator;
61
- themeProvider?: ThemeProvider;
62
- highlightCoordinator?: HighlightCoordinator;
63
- i18nService?: I18nService;
64
- desmosProvider?: DesmosCalculatorProvider;
65
- tiProvider?: TICalculatorProvider;
66
- };
67
- /**
68
- * Optional overrides for default tool-component mapping/factories.
69
- */
70
- toolRegistryOptions?: DefaultToolRegistryOptions;
71
- }
72
- export interface NavigationState {
73
- currentIndex: number;
74
- totalItems: number;
75
- canNext: boolean;
76
- canPrevious: boolean;
77
- isLoading: boolean;
78
- currentSection?: {
79
- id: string;
80
- title?: string;
81
- index: number;
82
- };
83
- totalSections?: number;
84
- }
85
- export declare class AssessmentPlayer {
86
- private eventBus;
87
- private ttsService;
88
- private themeProvider;
89
- private toolCoordinator;
90
- private highlightCoordinator;
91
- private i18nService;
92
- private desmosProvider;
93
- private tiProvider;
94
- private authoringService;
95
- private config;
96
- private pnpResolver;
97
- private currentTools;
98
- private contextStore;
99
- private assessmentFormat;
100
- private questionRefs;
101
- private navigationStructure;
102
- private navigationMode;
103
- private currentItemIndex;
104
- private currentItem;
105
- private isLoadingItem;
106
- private sessionState;
107
- private attemptStorage;
108
- private testSession;
109
- private ttsInitialized;
110
- private ttsSpeaking;
111
- private ttsPaused;
112
- private ttsRootElement;
113
- private navigationListeners;
114
- private itemListeners;
115
- private loadingListeners;
116
- private sessionListeners;
117
- private ttsStateListeners;
118
- constructor(config: ReferencePlayerConfig);
119
- private initializeOrLoadTestSession;
120
- /**
121
- * Set up internal event listeners
122
- */
123
- private setupEventListeners;
124
- /**
125
- * Initialize TTS service
126
- */
127
- private initializeTTS;
128
- /**
129
- * Get event bus for external listeners
130
- */
131
- getEventBus(): TypedEventBus<AssessmentToolkitEvents>;
132
- /**
133
- * Get current navigation state
134
- */
135
- getNavigationState(): NavigationState;
136
- /**
137
- * Flatten navigation structure to get all sections
138
- */
139
- private flattenSections;
140
- /**
141
- * Check if a section contains a specific question
142
- */
143
- private sectionContainsQuestion;
144
- /**
145
- * Get current item
146
- */
147
- getCurrentItem(): ItemEntity | null;
148
- /**
149
- * Get current item config
150
- */
151
- getCurrentItemConfig(): ItemConfig | null;
152
- /**
153
- * Get session state
154
- */
155
- getSessionState(): {
156
- id: string;
157
- data: any[];
158
- };
159
- /**
160
- * Get the client-side QTI-like TestSession (attempt) state.
161
- */
162
- getTestSession(): TestSession | null;
163
- /**
164
- * Get player environment
165
- */
166
- getEnv(): {
167
- mode: "view" | "gather" | "evaluate" | "author";
168
- };
169
- /**
170
- * Get ToolCoordinator for tool management
171
- */
172
- getToolCoordinator(): ToolCoordinator;
173
- /**
174
- * Get HighlightCoordinator for annotation/TTS highlighting
175
- */
176
- getHighlightCoordinator(): HighlightCoordinator | null;
177
- /**
178
- * Get TTSService for text-to-speech functionality
179
- */
180
- getTTSService(): TTSService;
181
- /**
182
- * Get ThemeProvider for accessibility theming
183
- */
184
- getThemeProvider(): ThemeProvider | null;
185
- /**
186
- * Get I18nService for internationalization
187
- */
188
- getI18nService(): I18nService;
189
- /**
190
- * Get Desmos calculator provider
191
- */
192
- getDesmosProvider(): DesmosCalculatorProvider;
193
- /**
194
- * Get TI calculator provider
195
- */
196
- getTIProvider(): TICalculatorProvider;
197
- /**
198
- * Navigate to specific item index
199
- */
200
- navigate(index: number): Promise<void>;
201
- /**
202
- * Navigate to next item
203
- */
204
- navigateNext(): Promise<void>;
205
- /**
206
- * Navigate to previous item
207
- */
208
- navigatePrevious(): Promise<void>;
209
- /**
210
- * Start assessment (navigate to first item)
211
- */
212
- start(): Promise<void>;
213
- /**
214
- * TTS: Read current question
215
- */
216
- readQuestion(rootElement: HTMLElement): Promise<void>;
217
- /**
218
- * TTS: Toggle play/pause
219
- */
220
- toggleTTS(rootElement?: HTMLElement): void;
221
- /**
222
- * TTS: Stop reading
223
- */
224
- stopTTS(): void;
225
- /**
226
- * TTS: Get state
227
- */
228
- getTTSState(): {
229
- initialized: boolean;
230
- speaking: boolean;
231
- paused: boolean;
232
- };
233
- /**
234
- * Apply theme
235
- */
236
- applyTheme(theme: ThemeConfig): void;
237
- /**
238
- * Handle PIE player session-changed event
239
- * Call this from your component when you receive session-changed from pie-iife-player
240
- */
241
- handlePieSessionChanged(detail: any): void;
242
- private persistAttemptNavigation;
243
- private findSectionIdentifierForQuestion;
244
- /**
245
- * Subscribe to navigation state changes
246
- */
247
- onNavigationChange(listener: (state: NavigationState) => void): () => void;
248
- /**
249
- * Subscribe to item changes
250
- */
251
- onItemChange(listener: (item: ItemEntity | null) => void): () => void;
252
- /**
253
- * Subscribe to loading state changes
254
- */
255
- onLoadingChange(listener: (isLoading: boolean) => void): () => void;
256
- /**
257
- * Subscribe to session changes
258
- */
259
- onSessionChange(listener: (session: any) => void): () => void;
260
- /**
261
- * Subscribe to TTS state changes
262
- */
263
- onTTSStateChange(listener: (speaking: boolean, paused: boolean) => void): () => void;
264
- /**
265
- * Notify listeners
266
- */
267
- private notifyNavigationListeners;
268
- private notifyItemListeners;
269
- private notifyLoadingListeners;
270
- private notifySessionListeners;
271
- private notifyTTSStateListeners;
272
- /**
273
- * Extract text from element (simplified)
274
- * Production would use extractTextFromElement from tts/utils
275
- */
276
- private extractText;
277
- /**
278
- * Get current section's rubric blocks (passages, instructions)
279
- */
280
- getCurrentSectionRubricBlocks(): RubricBlock[];
281
- /**
282
- * Extract rubric blocks for a specific section identifier
283
- */
284
- private extractRubricBlocksForSection;
285
- /**
286
- * Recursively search for rubric blocks in sections
287
- */
288
- private findRubricBlocksInSections;
289
- /**
290
- * Navigate to a specific section (goes to first item in section)
291
- */
292
- navigateToSection(sectionIndex: number): Promise<void>;
293
- /**
294
- * Find the index of the first question in a section
295
- */
296
- private findFirstQuestionInSection;
297
- /**
298
- * Get navigation mode (linear or nonlinear)
299
- */
300
- getNavigationMode(): "linear" | "nonlinear";
301
- /**
302
- * Get all sections for display (e.g., in a section menu)
303
- */
304
- getAllSections(): Array<{
305
- id: string;
306
- title?: string;
307
- index: number;
308
- }>;
309
- /**
310
- * Get the authoring service (only available in author mode)
311
- */
312
- getAuthoringService(): AssessmentAuthoringService | null;
313
- /**
314
- * Enable or disable authoring mode
315
- */
316
- setAuthoringMode(enabled: boolean): void;
317
- /**
318
- * Apply an assessment context profile
319
- */
320
- /**
321
- * Initialize tools from assessment PNP
322
- */
323
- private initializeTools;
324
- /**
325
- * Apply theme from assessment settings
326
- */
327
- private applyAssessmentTheme;
328
- /**
329
- * Auto-activate tools marked in PNP
330
- */
331
- private autoActivateTools;
332
- /**
333
- * Configure calculator with settings
334
- */
335
- private configureCalculator;
336
- /**
337
- * Convert tool ID to human-readable name
338
- */
339
- private humanizeName;
340
- /**
341
- * Get available tools (resolved from PNP)
342
- */
343
- getAvailableTools(): ResolvedToolConfig[];
344
- /**
345
- * Check if a specific tool is enabled
346
- */
347
- isToolEnabled(toolId: string): boolean;
348
- /**
349
- * Check if a specific tool is required
350
- */
351
- isToolRequired(toolId: string): boolean;
352
- /**
353
- * Get configuration for a specific tool
354
- */
355
- getToolConfig(toolId: string): any | undefined;
356
- /**
357
- * Get layout preferences from settings
358
- */
359
- getLayoutPreferences(): any;
360
- /**
361
- * Get context variable value
362
- *
363
- * @param identifier Variable identifier
364
- * @returns Variable value or undefined
365
- */
366
- getContextVariable(identifier: string): any;
367
- /**
368
- * Set context variable value
369
- *
370
- * @param identifier Variable identifier
371
- * @param value New value
372
- */
373
- setContextVariable(identifier: string, value: any): void;
374
- /**
375
- * Get all context variables as object
376
- *
377
- * @returns Object containing all context variables
378
- */
379
- getContextVariables(): Record<string, any>;
380
- /**
381
- * Reset context variables to default values
382
- */
383
- resetContextVariables(): void;
384
- /**
385
- * Restore context variables from session storage
386
- */
387
- private restoreContextVariables;
388
- /**
389
- * Persist context variables to session storage
390
- */
391
- private persistContextVariables;
392
- /**
393
- * Cleanup
394
- */
395
- destroy(): void;
396
- }
397
- //# sourceMappingURL=AssessmentPlayer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssessmentPlayer.d.ts","sourceRoot":"","sources":["../../src/player/AssessmentPlayer.ts"],"names":[],"mappings":"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"}