@longsightgroup/qti3-player 0.1.2 → 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 +10 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +658 -73
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +737 -80
package/README.md
CHANGED
|
@@ -39,6 +39,16 @@ player?.addEventListener("qti-statechange", (event) => {
|
|
|
39
39
|
});
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
## Portable Custom Interactions
|
|
43
|
+
|
|
44
|
+
For `qti-portable-custom-interaction`, the player renders a
|
|
45
|
+
`qti3-portable-custom-host` element, passes small module/configuration metadata through
|
|
46
|
+
`dataset` attributes, and emits `qti-portable-custom-mount` with the full parsed
|
|
47
|
+
definition. Host code can attach a PCI runtime and send response/state updates back with
|
|
48
|
+
`qti3-portable-custom-response`.
|
|
49
|
+
Production sandboxing, CSP, origin policy, and audit logging belong to the host delivery
|
|
50
|
+
system.
|
|
51
|
+
|
|
42
52
|
## Styling
|
|
43
53
|
|
|
44
54
|
The player uses light DOM and is style-neutral by design. Host applications can style
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type QtiAssessmentItem, type QtiAttemptStatus, type QtiAttemptStateV1, type QtiDiagnostic, type QtiScoreResult, type QtiValue } from "@longsightgroup/qti3-core";
|
|
1
|
+
import { type QtiAssessmentItem, type QtiAttemptStatus, type QtiAttemptStateV1, type QtiDiagnostic, type QtiInteraction, type QtiPortableCustomDefinition, type QtiPortableCustomStateValue, type QtiScoreResult, type QtiCatalogSupportResolution, type QtiCatalogSupportResolutionOptions, type QtiTextToSpeechTraversal, type QtiValue } from "@longsightgroup/qti3-core";
|
|
2
2
|
export interface QtiPlayerSessionControl {
|
|
3
3
|
validateResponses?: boolean | undefined;
|
|
4
4
|
showFeedback?: boolean | undefined;
|
|
@@ -25,6 +25,14 @@ export interface QtiResponseChangeEventDetail {
|
|
|
25
25
|
responseIdentifier: string;
|
|
26
26
|
value: QtiValue;
|
|
27
27
|
}
|
|
28
|
+
export interface QtiPortableCustomMountEventDetail {
|
|
29
|
+
responseIdentifier: string;
|
|
30
|
+
interaction: QtiInteraction;
|
|
31
|
+
definition: QtiPortableCustomDefinition;
|
|
32
|
+
host: HTMLElement;
|
|
33
|
+
value: QtiValue;
|
|
34
|
+
state?: QtiPortableCustomStateValue | undefined;
|
|
35
|
+
}
|
|
28
36
|
export type QtiScoreEventDetail = QtiScoreResult;
|
|
29
37
|
export interface QtiValidationEventDetail {
|
|
30
38
|
validationMessages: QtiDiagnostic[];
|
|
@@ -40,6 +48,7 @@ export interface QtiAssessmentItemPlayerEventDetailMap {
|
|
|
40
48
|
"qti-ready": QtiReadyEventDetail;
|
|
41
49
|
"qti-statechange": QtiStateChangeEventDetail;
|
|
42
50
|
"qti-responsechange": QtiResponseChangeEventDetail;
|
|
51
|
+
"qti-portable-custom-mount": QtiPortableCustomMountEventDetail;
|
|
43
52
|
"qti-score": QtiScoreEventDetail;
|
|
44
53
|
"qti-validation": QtiValidationEventDetail;
|
|
45
54
|
"qti-suspend": QtiSuspendEventDetail;
|
|
@@ -65,10 +74,13 @@ export declare class QtiAssessmentItemPlayer extends HTMLElementBase {
|
|
|
65
74
|
suspend(): void;
|
|
66
75
|
endAttempt(options?: QtiScoreAttemptOptions): void;
|
|
67
76
|
serialize(): QtiAttemptStateV1 | undefined;
|
|
77
|
+
getTextToSpeechTraversal(): QtiTextToSpeechTraversal | undefined;
|
|
78
|
+
getCatalogSupportResolution(options?: QtiCatalogSupportResolutionOptions): QtiCatalogSupportResolution | undefined;
|
|
68
79
|
private emitStateChange;
|
|
69
80
|
private dispatchPlayerEvent;
|
|
70
81
|
private render;
|
|
71
82
|
private renderInteraction;
|
|
83
|
+
private renderPortableCustomResponse;
|
|
72
84
|
private renderEmbeddedInteraction;
|
|
73
85
|
private renderContentNodes;
|
|
74
86
|
private renderContentNode;
|
|
@@ -84,6 +96,8 @@ export declare class QtiAssessmentItemPlayer extends HTMLElementBase {
|
|
|
84
96
|
private currentTemplateValue;
|
|
85
97
|
private mathTemplateValue;
|
|
86
98
|
private currentResponseValue;
|
|
99
|
+
private currentInteractionState;
|
|
100
|
+
private setPortableCustomValidity;
|
|
87
101
|
private applyDefaultStyles;
|
|
88
102
|
private resolveRenderedAssets;
|
|
89
103
|
private validateResponses;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|