@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
@@ -0,0 +1,135 @@
1
+ function nowIso() {
2
+ return new Date().toISOString();
3
+ }
4
+ function getItemIdentifier(itemRef) {
5
+ return (itemRef.identifier ||
6
+ itemRef.item?.identifier ||
7
+ itemRef.item?.id ||
8
+ null);
9
+ }
10
+ function resolveItemIdentifiers(args) {
11
+ const refs = args.itemRefs || args.activityDefinition?.assessmentItemRefs || [];
12
+ const identifiers = refs
13
+ .map((itemRef) => getItemIdentifier(itemRef))
14
+ .filter((itemIdentifier) => !!itemIdentifier);
15
+ return Array.from(new Set(identifiers));
16
+ }
17
+ function resolveAssessmentId(args) {
18
+ return (args.assessmentId ||
19
+ args.activityDefinition?.assessmentId ||
20
+ args.activityDefinition?.identifier ||
21
+ args.activityDefinition?.id ||
22
+ "unknown-assessment");
23
+ }
24
+ function resolveTestAttemptSessionIdentifier(args, assessmentId) {
25
+ return (args.testAttemptSessionIdentifier ||
26
+ args.activitySession?.activitySessionId ||
27
+ args.activitySession?.id ||
28
+ `tas_${assessmentId}`);
29
+ }
30
+ function resolveBackendItemSessions(args) {
31
+ return {
32
+ ...(args.activitySession?.itemSessions || {}),
33
+ ...(args.itemSessionsByItemIdentifier || {}),
34
+ };
35
+ }
36
+ function mapItemSessions(itemIdentifiers, backendItemSessions) {
37
+ return itemIdentifiers.reduce((acc, itemIdentifier) => {
38
+ const rawSession = backendItemSessions[itemIdentifier];
39
+ if (!rawSession)
40
+ return acc;
41
+ const pieSessionId = typeof rawSession.id === "string" ? rawSession.id : undefined;
42
+ const attemptCount = typeof rawSession.attemptCount === "number" && rawSession.attemptCount > 0
43
+ ? rawSession.attemptCount
44
+ : pieSessionId
45
+ ? 1
46
+ : 0;
47
+ const isCompleted = typeof rawSession.isCompleted === "boolean"
48
+ ? rawSession.isCompleted
49
+ : Boolean(rawSession.complete);
50
+ const startedAt = typeof rawSession.startedAt === "string" ? rawSession.startedAt : undefined;
51
+ const updatedAt = typeof rawSession.updatedAt === "string" ? rawSession.updatedAt : undefined;
52
+ const completedAt = typeof rawSession.completedAt === "string"
53
+ ? rawSession.completedAt
54
+ : undefined;
55
+ acc[itemIdentifier] = {
56
+ itemIdentifier,
57
+ pieSessionId,
58
+ attemptCount,
59
+ isCompleted,
60
+ startedAt,
61
+ updatedAt,
62
+ completedAt,
63
+ session: rawSession,
64
+ };
65
+ return acc;
66
+ }, {});
67
+ }
68
+ export function mapActivityToTestAttemptSession(args) {
69
+ const assessmentId = resolveAssessmentId(args);
70
+ const itemIdentifiers = resolveItemIdentifiers(args);
71
+ const testAttemptSessionIdentifier = resolveTestAttemptSessionIdentifier(args, assessmentId);
72
+ const backendItemSessions = resolveBackendItemSessions(args);
73
+ const now = nowIso();
74
+ const startedAt = args.activitySession?.startedAt || now;
75
+ const updatedAt = args.activitySession?.updatedAt || startedAt;
76
+ return {
77
+ version: 1,
78
+ testAttemptSessionIdentifier,
79
+ assessmentId,
80
+ startedAt,
81
+ updatedAt,
82
+ completedAt: args.activitySession?.completedAt,
83
+ navigationState: {
84
+ currentItemIndex: args.activitySession?.currentItemIndex ?? -1,
85
+ visitedItemIdentifiers: [
86
+ ...(args.activitySession?.visitedItemIdentifiers || []),
87
+ ],
88
+ currentSectionIdentifier: args.activitySession?.currentSectionIdentifier,
89
+ },
90
+ realization: {
91
+ seed: testAttemptSessionIdentifier,
92
+ itemIdentifiers,
93
+ },
94
+ itemSessions: mapItemSessions(itemIdentifiers, backendItemSessions),
95
+ };
96
+ }
97
+ export function toItemSessionsRecord(testAttemptSession) {
98
+ return Object.entries(testAttemptSession.itemSessions).reduce((acc, [itemIdentifier, itemSession]) => {
99
+ if (itemSession.session) {
100
+ acc[itemIdentifier] = itemSession.session;
101
+ }
102
+ return acc;
103
+ }, {});
104
+ }
105
+ export function buildActivitySessionPatchFromTestAttemptSession(testAttemptSession) {
106
+ return {
107
+ activitySession: {
108
+ id: testAttemptSession.testAttemptSessionIdentifier,
109
+ startedAt: testAttemptSession.startedAt,
110
+ updatedAt: testAttemptSession.updatedAt,
111
+ completedAt: testAttemptSession.completedAt,
112
+ currentItemIndex: testAttemptSession.navigationState.currentItemIndex,
113
+ currentSectionIdentifier: testAttemptSession.navigationState.currentSectionIdentifier,
114
+ visitedItemIdentifiers: [
115
+ ...testAttemptSession.navigationState.visitedItemIdentifiers,
116
+ ],
117
+ itemSessions: toItemSessionsRecord(testAttemptSession),
118
+ },
119
+ };
120
+ }
121
+ export function buildActivitySessionItemUpdate(testAttemptSession, itemIdentifier) {
122
+ const itemSession = testAttemptSession.itemSessions[itemIdentifier];
123
+ return {
124
+ activitySession: {
125
+ id: testAttemptSession.testAttemptSessionIdentifier,
126
+ currentItemIndex: testAttemptSession.navigationState.currentItemIndex,
127
+ currentSectionIdentifier: testAttemptSession.navigationState.currentSectionIdentifier,
128
+ visitedItemIdentifiers: [
129
+ ...testAttemptSession.navigationState.visitedItemIdentifiers,
130
+ ],
131
+ itemSessions: itemSession?.session ? { [itemIdentifier]: itemSession.session } : {},
132
+ },
133
+ };
134
+ }
135
+ //# sourceMappingURL=activity-to-test-attempt-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-to-test-attempt-session.js","sourceRoot":"","sources":["../../../src/attempt/adapters/activity-to-test-attempt-session.ts"],"names":[],"mappings":"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"}