@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
@@ -1,100 +0,0 @@
1
- /**
2
- * Annotation Toolbar Configuration
3
- *
4
- * Configures backend API endpoints for dictionary, picture dictionary, and translation features.
5
- * These can be pointed to different backends in different environments:
6
- * - Development: Local stub routes in section-demos
7
- * - Production: pie-api-aws endpoints with authentication
8
- *
9
- * Part of PIE Assessment Toolkit.
10
- */
11
- /**
12
- * Annotation Toolbar API Client
13
- *
14
- * Handles API calls to backend services for dictionary, picture dictionary, and translation.
15
- * Automatically adds authentication and custom headers based on configuration.
16
- */
17
- export class AnnotationToolbarAPIClient {
18
- config;
19
- constructor(config) {
20
- this.config = config;
21
- }
22
- /**
23
- * Look up a word in the dictionary
24
- */
25
- async lookupDictionary(keyword, language) {
26
- if (!this.config.dictionaryEndpoint) {
27
- throw new Error("Dictionary endpoint not configured. Set dictionaryEndpoint in AnnotationToolbarConfig.");
28
- }
29
- const body = {
30
- keyword,
31
- language: language || this.config.defaultLanguage || "en-us",
32
- };
33
- const response = await this.fetch(this.config.dictionaryEndpoint, body);
34
- return response.json();
35
- }
36
- /**
37
- * Look up images in the picture dictionary
38
- */
39
- async lookupPictureDictionary(keyword, language, max) {
40
- if (!this.config.pictureDictionaryEndpoint) {
41
- throw new Error("Picture dictionary endpoint not configured. Set pictureDictionaryEndpoint in AnnotationToolbarConfig.");
42
- }
43
- const body = {
44
- keyword,
45
- language: language || this.config.defaultLanguage || "en-us",
46
- max,
47
- };
48
- const response = await this.fetch(this.config.pictureDictionaryEndpoint, body);
49
- return response.json();
50
- }
51
- /**
52
- * Translate text
53
- */
54
- async translate(text, targetLanguage, sourceLanguage) {
55
- if (!this.config.translationEndpoint) {
56
- throw new Error("Translation endpoint not configured. Set translationEndpoint in AnnotationToolbarConfig.");
57
- }
58
- const body = {
59
- text,
60
- targetLanguage,
61
- sourceLanguage: sourceLanguage || "auto",
62
- };
63
- const response = await this.fetch(this.config.translationEndpoint, body);
64
- return response.json();
65
- }
66
- /**
67
- * Internal fetch helper with auth and custom headers
68
- */
69
- async fetch(endpoint, body) {
70
- const headers = {
71
- "Content-Type": "application/json",
72
- ...(this.config.headers || {}),
73
- };
74
- // Add auth token if configured
75
- if (this.config.authToken) {
76
- headers["Authorization"] = `Bearer ${this.config.authToken}`;
77
- }
78
- // Add organization ID if configured
79
- if (this.config.organizationId) {
80
- headers["X-Organization-ID"] = this.config.organizationId;
81
- }
82
- const response = await window.fetch(endpoint, {
83
- method: "POST",
84
- headers,
85
- body: JSON.stringify(body),
86
- });
87
- if (!response.ok) {
88
- const errorText = await response.text();
89
- throw new Error(`API request failed (${response.status}): ${errorText}`);
90
- }
91
- return response;
92
- }
93
- /**
94
- * Update configuration (useful for refreshing auth tokens)
95
- */
96
- updateConfig(config) {
97
- this.config = { ...this.config, ...config };
98
- }
99
- }
100
- //# sourceMappingURL=AnnotationToolbarConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnnotationToolbarConfig.js","sourceRoot":"","sources":["../../src/services/AnnotationToolbarConfig.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,183 +0,0 @@
1
- import { TypedEventBus } from "../core/TypedEventBus.js";
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssessmentAuthoringService.js","sourceRoot":"","sources":["../../src/services/AssessmentAuthoringService.ts"],"names":[],"mappings":"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"}
@@ -1,81 +0,0 @@
1
- /**
2
- * PNP Mapper - Maps QTI 3.0 PNP support IDs to PIE tool identifiers
3
- *
4
- * @deprecated This module will be removed in a future version.
5
- * Use ToolRegistry instead for PNP support mapping. Tools declare their
6
- * pnpSupportIds in their ToolRegistration, and PNPToolResolver uses the
7
- * registry to look up tool IDs by PNP support ID.
8
- *
9
- * Migration path:
10
- * 1. Register tools with ToolRegistry including pnpSupportIds
11
- * 2. Pass ToolRegistry to PNPToolResolver constructor
12
- * 3. PNPToolResolver.getToolsByPNPSupport() replaces this mapper
13
- *
14
- * This module is kept temporarily for backwards compatibility and will be
15
- * removed in Phase 5 of the tool registry refactoring.
16
- *
17
- * Part of PIE Assessment Toolkit.
18
- */
19
- /**
20
- * Standard QTI 3.0 PNP support → PIE tool ID mapping
21
- *
22
- * Maps industry-standard PNP support identifiers to corresponding PIE tools.
23
- * Based on IMS Global QTI 3.0 specification.
24
- */
25
- export declare const PNP_TO_PIE_TOOL_MAP: Record<string, string>;
26
- /**
27
- * Reverse mapping for debugging/export (PIE tool ID → PNP support ID)
28
- */
29
- export declare const PIE_TOOL_TO_PNP_MAP: Record<string, string>;
30
- /**
31
- * Map PNP support ID to PIE tool ID
32
- *
33
- * @param supportId QTI 3.0 PNP support identifier
34
- * @returns PIE tool ID or null if no mapping exists
35
- *
36
- * @example
37
- * mapPNPSupportToToolId('textToSpeech') // Returns: 'pie-tool-text-to-speech'
38
- * mapPNPSupportToToolId('calculator') // Returns: 'pie-tool-calculator'
39
- * mapPNPSupportToToolId('unknown') // Returns: null
40
- */
41
- export declare function mapPNPSupportToToolId(supportId: string): string | null;
42
- /**
43
- * Map PIE tool ID back to PNP support ID
44
- *
45
- * Useful for exporting or debugging tool configurations.
46
- *
47
- * @param toolId PIE tool identifier
48
- * @returns QTI 3.0 PNP support ID or null if no mapping exists
49
- *
50
- * @example
51
- * mapToolIdToPNPSupport('pie-tool-text-to-speech') // Returns: 'textToSpeech'
52
- */
53
- export declare function mapToolIdToPNPSupport(toolId: string): string | null;
54
- /**
55
- * Register custom PNP support mapping
56
- *
57
- * Allows products to extend the standard PNP vocabulary with custom tools.
58
- * Custom supports should use 'x-' prefix per IMS convention.
59
- *
60
- * @param supportId PNP support identifier (e.g., 'x-pie-periodic-table')
61
- * @param toolId PIE tool identifier (e.g., 'pie-tool-periodic-table')
62
- *
63
- * @example
64
- * registerCustomPNPMapping('x-pie-periodic-table', 'pie-tool-periodic-table');
65
- * registerCustomPNPMapping('x-pie-graph', 'pie-tool-graphing');
66
- */
67
- export declare function registerCustomPNPMapping(supportId: string, toolId: string): void;
68
- /**
69
- * Get all registered PNP support IDs
70
- *
71
- * @returns Array of all PNP support identifiers (standard + custom)
72
- */
73
- export declare function getAllPNPSupports(): string[];
74
- /**
75
- * Check if a PNP support is registered
76
- *
77
- * @param supportId PNP support identifier to check
78
- * @returns true if mapping exists
79
- */
80
- export declare function isPNPSupportRegistered(supportId: string): boolean;
81
- //# sourceMappingURL=PNPMapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PNPMapper.d.ts","sourceRoot":"","sources":["../../src/services/PNPMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiBtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEtD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACZ,IAAI,CAGN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEjE"}
@@ -1,108 +0,0 @@
1
- /**
2
- * PNP Mapper - Maps QTI 3.0 PNP support IDs to PIE tool identifiers
3
- *
4
- * @deprecated This module will be removed in a future version.
5
- * Use ToolRegistry instead for PNP support mapping. Tools declare their
6
- * pnpSupportIds in their ToolRegistration, and PNPToolResolver uses the
7
- * registry to look up tool IDs by PNP support ID.
8
- *
9
- * Migration path:
10
- * 1. Register tools with ToolRegistry including pnpSupportIds
11
- * 2. Pass ToolRegistry to PNPToolResolver constructor
12
- * 3. PNPToolResolver.getToolsByPNPSupport() replaces this mapper
13
- *
14
- * This module is kept temporarily for backwards compatibility and will be
15
- * removed in Phase 5 of the tool registry refactoring.
16
- *
17
- * Part of PIE Assessment Toolkit.
18
- */
19
- /**
20
- * Standard QTI 3.0 PNP support → PIE tool ID mapping
21
- *
22
- * Maps industry-standard PNP support identifiers to corresponding PIE tools.
23
- * Based on IMS Global QTI 3.0 specification.
24
- */
25
- export const PNP_TO_PIE_TOOL_MAP = {
26
- // Standard QTI 3.0 PNP supports
27
- textToSpeech: "pie-tool-text-to-speech",
28
- calculator: "pie-tool-calculator",
29
- ruler: "pie-tool-ruler",
30
- protractor: "pie-tool-protractor",
31
- highlighter: "pie-tool-annotation-toolbar",
32
- lineReader: "pie-tool-line-reader",
33
- magnifier: "pie-tool-magnifier",
34
- colorContrast: "pie-theme-contrast",
35
- answerMasking: "pie-tool-answer-eliminator",
36
- dictionaryLookup: "pie-tool-dictionary",
37
- // Common extensions (not in QTI standard but widely used)
38
- graphingCalculator: "pie-tool-calculator",
39
- scientificCalculator: "pie-tool-calculator",
40
- basicCalculator: "pie-tool-calculator",
41
- };
42
- /**
43
- * Reverse mapping for debugging/export (PIE tool ID → PNP support ID)
44
- */
45
- export const PIE_TOOL_TO_PNP_MAP = Object.fromEntries(Object.entries(PNP_TO_PIE_TOOL_MAP).map(([pnp, tool]) => [tool, pnp]));
46
- /**
47
- * Map PNP support ID to PIE tool ID
48
- *
49
- * @param supportId QTI 3.0 PNP support identifier
50
- * @returns PIE tool ID or null if no mapping exists
51
- *
52
- * @example
53
- * mapPNPSupportToToolId('textToSpeech') // Returns: 'pie-tool-text-to-speech'
54
- * mapPNPSupportToToolId('calculator') // Returns: 'pie-tool-calculator'
55
- * mapPNPSupportToToolId('unknown') // Returns: null
56
- */
57
- export function mapPNPSupportToToolId(supportId) {
58
- return PNP_TO_PIE_TOOL_MAP[supportId] || null;
59
- }
60
- /**
61
- * Map PIE tool ID back to PNP support ID
62
- *
63
- * Useful for exporting or debugging tool configurations.
64
- *
65
- * @param toolId PIE tool identifier
66
- * @returns QTI 3.0 PNP support ID or null if no mapping exists
67
- *
68
- * @example
69
- * mapToolIdToPNPSupport('pie-tool-text-to-speech') // Returns: 'textToSpeech'
70
- */
71
- export function mapToolIdToPNPSupport(toolId) {
72
- return PIE_TOOL_TO_PNP_MAP[toolId] || null;
73
- }
74
- /**
75
- * Register custom PNP support mapping
76
- *
77
- * Allows products to extend the standard PNP vocabulary with custom tools.
78
- * Custom supports should use 'x-' prefix per IMS convention.
79
- *
80
- * @param supportId PNP support identifier (e.g., 'x-pie-periodic-table')
81
- * @param toolId PIE tool identifier (e.g., 'pie-tool-periodic-table')
82
- *
83
- * @example
84
- * registerCustomPNPMapping('x-pie-periodic-table', 'pie-tool-periodic-table');
85
- * registerCustomPNPMapping('x-pie-graph', 'pie-tool-graphing');
86
- */
87
- export function registerCustomPNPMapping(supportId, toolId) {
88
- PNP_TO_PIE_TOOL_MAP[supportId] = toolId;
89
- PIE_TOOL_TO_PNP_MAP[toolId] = supportId;
90
- }
91
- /**
92
- * Get all registered PNP support IDs
93
- *
94
- * @returns Array of all PNP support identifiers (standard + custom)
95
- */
96
- export function getAllPNPSupports() {
97
- return Object.keys(PNP_TO_PIE_TOOL_MAP);
98
- }
99
- /**
100
- * Check if a PNP support is registered
101
- *
102
- * @param supportId PNP support identifier to check
103
- * @returns true if mapping exists
104
- */
105
- export function isPNPSupportRegistered(supportId) {
106
- return supportId in PNP_TO_PIE_TOOL_MAP;
107
- }
108
- //# sourceMappingURL=PNPMapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PNPMapper.js","sourceRoot":"","sources":["../../src/services/PNPMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IAC1D,gCAAgC;IAChC,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,qBAAqB;IACjC,KAAK,EAAE,gBAAgB;IACvB,UAAU,EAAE,qBAAqB;IACjC,WAAW,EAAE,6BAA6B;IAC1C,UAAU,EAAE,sBAAsB;IAClC,SAAS,EAAE,oBAAoB;IAC/B,aAAa,EAAE,oBAAoB;IACnC,aAAa,EAAE,4BAA4B;IAC3C,gBAAgB,EAAE,qBAAqB;IAEvC,0DAA0D;IAC1D,kBAAkB,EAAE,qBAAqB;IACzC,oBAAoB,EAAE,qBAAqB;IAC3C,eAAe,EAAE,qBAAqB;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2B,MAAM,CAAC,WAAW,CAC5E,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACrE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACtD,OAAO,mBAAmB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IACnD,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CACvC,SAAiB,EACjB,MAAc;IAEd,mBAAmB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IACxC,mBAAmB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACvD,OAAO,SAAS,IAAI,mBAAmB,CAAC;AACzC,CAAC"}