@pie-players/pie-section-player 0.3.4 → 0.3.7
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 +58 -1
- package/dist/contracts/layout-contract.d.ts +1 -1
- package/dist/contracts/layout-contract.d.ts.map +1 -1
- package/dist/contracts/layout-parity-metadata.d.ts.map +1 -1
- package/dist/controllers/SectionController.d.ts +16 -21
- package/dist/controllers/SectionController.d.ts.map +1 -1
- package/dist/controllers/toolkit-section-contracts.d.ts +1 -1
- package/dist/controllers/toolkit-section-contracts.d.ts.map +1 -1
- package/dist/controllers/types.d.ts +6 -1
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/pie-section-player.js +3409 -3312
- package/dist/{player-preload-Dj2ELq_u.js → player-preload-Boa1VXUc.js} +2472 -2472
- package/dist/utils/player-preload.js +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -40,6 +40,7 @@ Both layout elements support:
|
|
|
40
40
|
- `section` (object): assessment section payload
|
|
41
41
|
- `env` (object): optional top-level override for `{ mode, role }`
|
|
42
42
|
- `toolbar-position` (string): `top|right|bottom|left|none`
|
|
43
|
+
- `narrow-layout-breakpoint` (number, optional): viewport width in px below which the layout collapses (split pane: single column; vertical: toolbar moves to top). Clamped to 400–2000; default 1100.
|
|
43
44
|
- `show-toolbar` (boolean-like): accepts `true/false` and common string forms (`"true"`, `"false"`, `"1"`, `"0"`, `"yes"`, `"no"`)
|
|
44
45
|
|
|
45
46
|
### API direction: CE defaults first, JS customization for advanced cases
|
|
@@ -48,7 +49,7 @@ The intended usage model is:
|
|
|
48
49
|
|
|
49
50
|
- **CE props for default/standard flows (roughly 90% use cases)**:
|
|
50
51
|
- `assessment-id`, `section`, `section-id`, `attempt-id`
|
|
51
|
-
- `show-toolbar`, `toolbar-position`, `enabled-tools`, `item-toolbar-tools`, `passage-toolbar-tools`
|
|
52
|
+
- `show-toolbar`, `toolbar-position`, `narrow-layout-breakpoint`, `enabled-tools`, `item-toolbar-tools`, `passage-toolbar-tools`
|
|
52
53
|
- **JS API for advanced customization**:
|
|
53
54
|
- Get the controller handle via `getSectionController()` or `waitForSectionController()`
|
|
54
55
|
- Listen to `section-controller-ready`
|
|
@@ -147,6 +148,62 @@ function canAdvance() {
|
|
|
147
148
|
}
|
|
148
149
|
```
|
|
149
150
|
|
|
151
|
+
If you already have a `ToolkitCoordinator` from `toolkit-ready`, prefer helper subscriptions for host logic:
|
|
152
|
+
|
|
153
|
+
```ts
|
|
154
|
+
const unsubscribeItem = coordinator.subscribeItemEvents({
|
|
155
|
+
sectionId,
|
|
156
|
+
attemptId,
|
|
157
|
+
listener: (event: any) => {
|
|
158
|
+
// item-scoped stream
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
const unsubscribeSection = coordinator.subscribeSectionLifecycleEvents({
|
|
163
|
+
sectionId,
|
|
164
|
+
attemptId,
|
|
165
|
+
listener: (event: any) => {
|
|
166
|
+
// section-loading-complete / section-items-complete-changed / section-error / section-navigation-change
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Use `subscribeSectionEvents(...)` only for advanced mixed filtering requirements.
|
|
172
|
+
|
|
173
|
+
### Item session management
|
|
174
|
+
|
|
175
|
+
Section session data can be managed either through persistence hooks or directly through the controller API.
|
|
176
|
+
|
|
177
|
+
```ts
|
|
178
|
+
const host = document.querySelector("pie-section-player-splitpane") as any;
|
|
179
|
+
const controller = await host.waitForSectionController?.(5000);
|
|
180
|
+
|
|
181
|
+
// Read current section session snapshot.
|
|
182
|
+
const currentSession = controller?.getSession?.();
|
|
183
|
+
|
|
184
|
+
// Replace section session state (resume from backend snapshot).
|
|
185
|
+
await controller?.applySession?.({
|
|
186
|
+
currentItemIndex: 0,
|
|
187
|
+
visitedItemIdentifiers: ["q1"],
|
|
188
|
+
itemSessions: {
|
|
189
|
+
q1: {
|
|
190
|
+
itemIdentifier: "q1",
|
|
191
|
+
pieSessionId: "q1-session",
|
|
192
|
+
session: { id: "q1-session", data: [{ id: "choice", value: "a" }] }
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}, { mode: "replace" });
|
|
196
|
+
|
|
197
|
+
// Update a single item session directly.
|
|
198
|
+
await controller?.updateItemSession?.("q1", {
|
|
199
|
+
session: { id: "q1-session", data: [{ id: "choice", value: "b" }] },
|
|
200
|
+
complete: true,
|
|
201
|
+
});
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
The same controller snapshot is what the persistence strategy saves/loads.
|
|
205
|
+
When a controller is reused for the same `sectionId`/`attemptId`, `updateInput()` refreshes composition input while preserving in-memory section session data.
|
|
206
|
+
|
|
150
207
|
## Exports
|
|
151
208
|
|
|
152
209
|
Published exports are intentionally minimal:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SectionPlayerPublicEventName } from './public-events.js';
|
|
2
2
|
export type SectionPlayerLayoutName = "splitpane" | "vertical";
|
|
3
3
|
export type SectionPlayerLayoutCapability = "items-pane" | "passages-pane" | "section-toolbar" | "item-toolbar" | "passage-toolbar" | "readiness-events" | "navigation-events";
|
|
4
|
-
export type SectionPlayerBasicPropName = "assessmentId" | "section" | "sectionId" | "attemptId" | "showToolbar" | "toolbarPosition" | "enabledTools" | "itemToolbarTools" | "passageToolbarTools";
|
|
4
|
+
export type SectionPlayerBasicPropName = "assessmentId" | "section" | "sectionId" | "attemptId" | "showToolbar" | "toolbarPosition" | "narrowLayoutBreakpoint" | "enabledTools" | "itemToolbarTools" | "passageToolbarTools";
|
|
5
5
|
export type SectionPlayerAdvancedPropName = "runtime" | "playerType" | "player" | "lazyInit" | "tools" | "accessibility" | "coordinator" | "createSectionController" | "isolation" | "env" | "iifeBundleHost";
|
|
6
6
|
export type SectionPlayerLayoutPropName = SectionPlayerBasicPropName | SectionPlayerAdvancedPropName;
|
|
7
7
|
export type SectionPlayerLayoutCommandName = "getSnapshot" | "selectComposition" | "selectNavigation" | "selectReadiness" | "navigateTo" | "navigateNext" | "navigatePrevious" | "getSectionController" | "waitForSectionController";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/layout-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,6BAA6B,GACtC,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,CAAC;AAEvB,MAAM,MAAM,0BAA0B,GACnC,cAAc,GACd,SAAS,GACT,WAAW,GACX,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,qBAAqB,CAAC;AAEzB,MAAM,MAAM,6BAA6B,GACtC,SAAS,GACT,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,OAAO,GACP,eAAe,GACf,aAAa,GACb,yBAAyB,GACzB,WAAW,GACX,KAAK,GACL,gBAAgB,CAAC;AAEpB,MAAM,MAAM,2BAA2B,GACpC,0BAA0B,GAC1B,6BAA6B,CAAC;AAEjC,MAAM,MAAM,8BAA8B,GACvC,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,sBAAsB,GACtB,0BAA0B,CAAC;AAE9B,MAAM,MAAM,2BAA2B,GAAG;IACzC,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC9C,qBAAqB,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC7D,wBAAwB,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACnE,MAAM,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAChD,QAAQ,EAAE,SAAS,8BAA8B,EAAE,CAAC;IACpD,YAAY,EAAE,SAAS,6BAA6B,EAAE,CAAC;CACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"layout-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/layout-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,6BAA6B,GACtC,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,CAAC;AAEvB,MAAM,MAAM,0BAA0B,GACnC,cAAc,GACd,SAAS,GACT,WAAW,GACX,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,wBAAwB,GACxB,cAAc,GACd,kBAAkB,GAClB,qBAAqB,CAAC;AAEzB,MAAM,MAAM,6BAA6B,GACtC,SAAS,GACT,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,OAAO,GACP,eAAe,GACf,aAAa,GACb,yBAAyB,GACzB,WAAW,GACX,KAAK,GACL,gBAAgB,CAAC;AAEpB,MAAM,MAAM,2BAA2B,GACpC,0BAA0B,GAC1B,6BAA6B,CAAC;AAEjC,MAAM,MAAM,8BAA8B,GACvC,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,sBAAsB,GACtB,0BAA0B,CAAC;AAE9B,MAAM,MAAM,2BAA2B,GAAG;IACzC,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC9C,qBAAqB,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC7D,wBAAwB,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACnE,MAAM,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAChD,QAAQ,EAAE,SAAS,8BAA8B,EAAE,CAAC;IACpD,YAAY,EAAE,SAAS,6BAA6B,EAAE,CAAC;CACvD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-parity-metadata.d.ts","sourceRoot":"","sources":["../../src/contracts/layout-parity-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"layout-parity-metadata.d.ts","sourceRoot":"","sources":["../../src/contracts/layout-parity-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAqExE,eAAO,MAAM,yBAAyB,EAAE,2BASvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,2BAStC,CAAC"}
|
|
@@ -1,39 +1,33 @@
|
|
|
1
1
|
import { TestAttemptSession } from '@pie-players/pie-assessment-toolkit';
|
|
2
|
-
import {
|
|
2
|
+
import { SectionControllerHandle, SectionSessionPersistenceConfig, SectionControllerRuntimeState, SectionControllerSessionState } from './toolkit-section-contracts.js';
|
|
3
3
|
import { ItemEntity } from '@pie-players/pie-players-shared';
|
|
4
|
-
import { NavigationResult,
|
|
4
|
+
import { NavigationResult, SectionControllerChangeListener, SectionCompositionModel, SectionNavigationState, SectionViewModel, SessionChangedResult } from './types.js';
|
|
5
5
|
export declare class SectionController implements SectionControllerHandle {
|
|
6
6
|
private readonly contentService;
|
|
7
7
|
private readonly sessionService;
|
|
8
8
|
private readonly itemNavigationService;
|
|
9
|
-
private
|
|
10
|
-
private persistenceContext;
|
|
9
|
+
private sessionPersistence;
|
|
11
10
|
private state;
|
|
12
11
|
private readonly listeners;
|
|
13
12
|
private readonly trackedRenderables;
|
|
14
13
|
private readonly loadedRenderableKeys;
|
|
15
14
|
private readonly itemCompletionByCanonicalId;
|
|
16
15
|
private sectionLoadingComplete;
|
|
17
|
-
private
|
|
18
|
-
private
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
private
|
|
16
|
+
private totalRegistered;
|
|
17
|
+
private totalLoaded;
|
|
18
|
+
private sectionItemsComplete;
|
|
19
|
+
private completedCount;
|
|
20
|
+
private totalItems;
|
|
22
21
|
private emitChange;
|
|
23
22
|
subscribe(listener: SectionControllerChangeListener): () => void;
|
|
24
23
|
initialize(input?: unknown): Promise<void>;
|
|
25
24
|
updateInput(input?: unknown): Promise<void>;
|
|
26
|
-
|
|
27
|
-
setPersistenceContext(context: SectionControllerContext): void;
|
|
25
|
+
configureSessionPersistence(config: SectionSessionPersistenceConfig): void;
|
|
28
26
|
hydrate(): Promise<void>;
|
|
29
27
|
persist(): Promise<void>;
|
|
30
28
|
dispose(): void;
|
|
31
|
-
getSnapshot(): unknown;
|
|
32
29
|
getViewModel(): SectionViewModel;
|
|
33
30
|
getCompositionModel(): SectionCompositionModel;
|
|
34
|
-
getCanonicalItemViewModel(itemId: string): SectionCanonicalItemViewModel | null;
|
|
35
|
-
getCanonicalSectionViewModel(): SectionCanonicalSectionViewModel;
|
|
36
|
-
getCanonicalSessionViewModel(): SectionCanonicalSessionViewModel;
|
|
37
31
|
getInstructions(): import('@pie-players/pie-players-shared').RubricBlock[];
|
|
38
32
|
getSectionLoadedEventDetail(): {
|
|
39
33
|
sectionId: string;
|
|
@@ -51,18 +45,21 @@ export declare class SectionController implements SectionControllerHandle {
|
|
|
51
45
|
* Use this for serializing/restoring section session state across reloads.
|
|
52
46
|
* This is intentionally compact and not a full runtime diagnostics view.
|
|
53
47
|
*/
|
|
54
|
-
|
|
48
|
+
getSession(): SectionControllerSessionState | null;
|
|
55
49
|
private getSectionItemIdentifiers;
|
|
56
50
|
/**
|
|
57
51
|
* Runtime/debugger shape scoped to the current section.
|
|
58
52
|
* Use this for widgets that need a section-scoped live snapshot (debug panels, diagnostics).
|
|
59
|
-
* Unlike
|
|
53
|
+
* Unlike getSession(), this is optimized for runtime introspection, not host persistence.
|
|
60
54
|
*/
|
|
61
|
-
|
|
55
|
+
getRuntimeState(): SectionControllerRuntimeState | null;
|
|
62
56
|
getCurrentItem(): ItemEntity | null;
|
|
63
57
|
getCurrentItemSession(): unknown;
|
|
64
58
|
getNavigationState(isLoading?: boolean): SectionNavigationState;
|
|
65
|
-
|
|
59
|
+
updateItemSession(itemId: string, sessionDetail: any): SessionChangedResult | null;
|
|
60
|
+
applySession(session: SectionControllerSessionState | null, options?: {
|
|
61
|
+
mode?: "replace" | "merge";
|
|
62
|
+
}): Promise<void>;
|
|
66
63
|
/**
|
|
67
64
|
* Move between items inside the current section only.
|
|
68
65
|
* Cross-section navigation belongs to the higher-level assessment player.
|
|
@@ -108,8 +105,6 @@ export declare class SectionController implements SectionControllerHandle {
|
|
|
108
105
|
private updateItemCompleteState;
|
|
109
106
|
private emitSectionItemsCompleteIfChanged;
|
|
110
107
|
private evaluateSectionLoadingState;
|
|
111
|
-
private captureReplaySnapshot;
|
|
112
|
-
private buildReplayEvents;
|
|
113
108
|
private cloneForRead;
|
|
114
109
|
}
|
|
115
110
|
//# sourceMappingURL=SectionController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionController.d.ts","sourceRoot":"","sources":["../../src/controllers/SectionController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,KAAK,EACX,
|
|
1
|
+
{"version":3,"file":"SectionController.d.ts","sourceRoot":"","sources":["../../src/controllers/SectionController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ToolkitCoordinator, SectionControllerHandle } from '@pie-players/pie-assessment-toolkit';
|
|
2
|
-
export type { SectionControllerContext, SectionControllerHandle, SectionControllerKey,
|
|
2
|
+
export type { SectionControllerContext, SectionControllerEvent, SectionControllerEventType, SectionControllerHandle, SectionControllerKey, SectionSessionPersistenceConfig, SectionSessionPersistenceStrategy, SectionControllerRuntimeState, SectionControllerSessionState, } from '@pie-players/pie-assessment-toolkit';
|
|
3
3
|
export type CoordinatorWithSectionControllers = ToolkitCoordinator & {
|
|
4
4
|
getOrCreateSectionController(args: {
|
|
5
5
|
sectionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolkit-section-contracts.d.ts","sourceRoot":"","sources":["../../src/controllers/toolkit-section-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,YAAY,EACX,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"toolkit-section-contracts.d.ts","sourceRoot":"","sources":["../../src/controllers/toolkit-section-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,YAAY,EACX,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,+BAA+B,EAC/B,iCAAiC,EACjC,6BAA6B,EAC7B,6BAA6B,GAC7B,MAAM,qCAAqC,CAAC;AAE7C,MAAM,MAAM,iCAAiC,GAAG,kBAAkB,GAAG;IACpE,4BAA4B,CAAC,IAAI,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,uBAAuB,EAAE,MACtB,uBAAuB,GACvB,OAAO,CAAC,uBAAuB,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrC,wBAAwB,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB,CAAC"}
|
|
@@ -76,6 +76,12 @@ export interface SectionAttemptSessionSlice {
|
|
|
76
76
|
itemIdentifiers: string[];
|
|
77
77
|
visitedItemIdentifiers: string[];
|
|
78
78
|
itemSessions: Record<string, unknown>;
|
|
79
|
+
loadingComplete: boolean;
|
|
80
|
+
totalRegistered: number;
|
|
81
|
+
totalLoaded: number;
|
|
82
|
+
itemsComplete: boolean;
|
|
83
|
+
completedCount: number;
|
|
84
|
+
totalItems: number;
|
|
79
85
|
}
|
|
80
86
|
export interface SessionChangedResult {
|
|
81
87
|
testAttemptSession: TestAttemptSession;
|
|
@@ -112,7 +118,6 @@ export type SectionContentKind = "item" | "passage" | "rubric" | "unknown";
|
|
|
112
118
|
interface SectionControllerEventBase {
|
|
113
119
|
type: "item-session-data-changed" | "item-session-meta-changed" | "item-selected" | "section-navigation-change" | "content-loaded" | "item-player-error" | "item-complete-changed" | "section-loading-complete" | "section-items-complete-changed" | "section-error";
|
|
114
120
|
timestamp: number;
|
|
115
|
-
replayed?: boolean;
|
|
116
121
|
}
|
|
117
122
|
interface ItemScopedControllerEventBase extends SectionControllerEventBase {
|
|
118
123
|
currentItemIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/controllers/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/controllers/types.ts"],"names":[],"mappings":"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"}
|