@pie-players/pie-section-player 0.2.12 → 0.2.14

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 (64) hide show
  1. package/README.md +28 -568
  2. package/dist/component-definitions.d.ts +0 -3
  3. package/dist/component-definitions.d.ts.map +1 -1
  4. package/dist/components/section-player-vertical-element.d.ts +2 -0
  5. package/dist/components/section-player-vertical-element.d.ts.map +1 -0
  6. package/dist/components/shared/composition.d.ts +9 -0
  7. package/dist/components/shared/composition.d.ts.map +1 -0
  8. package/dist/components/shared/player-action.d.ts +18 -0
  9. package/dist/components/shared/player-action.d.ts.map +1 -0
  10. package/dist/components/shared/player-preload.d.ts +37 -0
  11. package/dist/components/shared/player-preload.d.ts.map +1 -0
  12. package/dist/components/shared/section-player-runtime.d.ts +104 -0
  13. package/dist/components/shared/section-player-runtime.d.ts.map +1 -0
  14. package/dist/components/shared/section-player-view-state.d.ts +24 -0
  15. package/dist/components/shared/section-player-view-state.d.ts.map +1 -0
  16. package/dist/controllers/SectionContentService.d.ts +3 -0
  17. package/dist/controllers/SectionContentService.d.ts.map +1 -1
  18. package/dist/controllers/SectionController.d.ts +55 -1
  19. package/dist/controllers/SectionController.d.ts.map +1 -1
  20. package/dist/controllers/SectionSessionService.d.ts +0 -1
  21. package/dist/controllers/SectionSessionService.d.ts.map +1 -1
  22. package/dist/controllers/toolkit-section-contracts.d.ts +2 -28
  23. package/dist/controllers/toolkit-section-contracts.d.ts.map +1 -1
  24. package/dist/controllers/types.d.ts +97 -6
  25. package/dist/controllers/types.d.ts.map +1 -1
  26. package/dist/pie-item-player-q4jcP2lZ.js +6196 -0
  27. package/dist/pie-section-player.d.ts +0 -8
  28. package/dist/pie-section-player.d.ts.map +1 -1
  29. package/dist/pie-section-player.js +61631 -11
  30. package/dist/player-preload-CQVG0Bih.js +705 -0
  31. package/dist/utils/player-preload.d.ts +2 -0
  32. package/dist/utils/player-preload.d.ts.map +1 -0
  33. package/dist/utils/player-preload.js +8 -0
  34. package/package.json +24 -32
  35. package/src/components/ItemShellElement.svelte +119 -3
  36. package/src/components/PassageShellElement.svelte +49 -0
  37. package/src/components/PieSectionPlayerBaseElement.svelte +65 -78
  38. package/src/components/PieSectionPlayerSplitPaneElement.svelte +337 -296
  39. package/src/components/PieSectionPlayerVerticalElement.svelte +446 -0
  40. package/src/components/shared/SectionItemCard.svelte +92 -0
  41. package/src/components/shared/SectionPassageCard.svelte +88 -0
  42. package/dist/ItemRenderer-MsjF_Beu.js +0 -467
  43. package/dist/PieItemModeLayoutElement-D7oTzA9T.js +0 -316
  44. package/dist/PieSplitPanelLayoutElement-GUtJ_NlF.js +0 -246
  45. package/dist/PieVerticalLayoutElement-BoA3FO5g.js +0 -194
  46. package/dist/controllers/SectionToolkitService.d.ts +0 -24
  47. package/dist/controllers/SectionToolkitService.d.ts.map +0 -1
  48. package/dist/controllers/SessionPersistenceStrategy.d.ts +0 -15
  49. package/dist/controllers/SessionPersistenceStrategy.d.ts.map +0 -1
  50. package/dist/index.d.ts +0 -2
  51. package/dist/pie-section-player-DJ5NcwdT.js +0 -17078
  52. package/dist/runtime/runtime-event-guards.d.ts +0 -4
  53. package/dist/runtime/runtime-event-guards.d.ts.map +0 -1
  54. package/src/PieSectionPlayer.svelte +0 -826
  55. package/src/components/ItemModeLayout.svelte +0 -172
  56. package/src/components/ItemNavigation.svelte +0 -96
  57. package/src/components/ItemPlayerBridge.svelte +0 -110
  58. package/src/components/ItemRenderer.svelte +0 -248
  59. package/src/components/ItemShell.svelte +0 -86
  60. package/src/components/layout-elements/PieItemModeLayoutElement.svelte +0 -47
  61. package/src/components/layout-elements/PieSplitPanelLayoutElement.svelte +0 -62
  62. package/src/components/layout-elements/PieVerticalLayoutElement.svelte +0 -41
  63. package/src/components/layouts/SplitPanelLayout.svelte +0 -385
  64. package/src/components/layouts/VerticalLayout.svelte +0 -193
@@ -0,0 +1,37 @@
1
+ import { ItemEntity } from '@pie-players/pie-players-shared';
2
+ export declare const PRELOAD_TIMEOUT_MS = 15000;
3
+ export declare function getRenderablesSignature(renderables: unknown[]): string;
4
+ export declare function getLoaderView(env: Record<string, unknown>): "author" | "delivery";
5
+ export declare function buildPreloadSignature(args: {
6
+ strategy: string;
7
+ loaderView: string;
8
+ esmCdnUrl: string;
9
+ bundleHost: string;
10
+ renderablesSignature: string;
11
+ }): string;
12
+ export declare function preloadPlayerElements(args: {
13
+ strategy: string;
14
+ renderables: ItemEntity[];
15
+ loaderView: "author" | "delivery";
16
+ esmCdnUrl: string;
17
+ bundleHost: string;
18
+ onTimeout: () => void;
19
+ timeoutMs?: number;
20
+ }): Promise<void>;
21
+ export type PlayerPreloadState = {
22
+ lastPreloadSignature: string;
23
+ preloadRunToken: number;
24
+ elementsLoaded: boolean;
25
+ };
26
+ export declare function orchestratePlayerElementPreload(args: {
27
+ componentTag: string;
28
+ strategy: string;
29
+ renderables: ItemEntity[];
30
+ renderablesSignature: string;
31
+ resolvedPlayerProps: Record<string, unknown>;
32
+ resolvedPlayerEnv: Record<string, unknown>;
33
+ iifeBundleHost?: string | null;
34
+ getState: () => PlayerPreloadState;
35
+ setState: (next: Partial<PlayerPreloadState>) => void;
36
+ }): void;
37
+ //# sourceMappingURL=player-preload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player-preload.d.ts","sourceRoot":"","sources":["../../../src/components/shared/player-preload.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,UAAU,EACf,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,CAmBtE;AAED,wBAAgB,aAAa,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,QAAQ,GAAG,UAAU,CAEvB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC7B,UAOA;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;CACtD,QAsEA"}
@@ -0,0 +1,104 @@
1
+ import { ItemEntity } from '@pie-players/pie-players-shared';
2
+ export declare const DEFAULT_ASSESSMENT_ID = "section-demo-direct";
3
+ export declare const DEFAULT_PLAYER_TYPE = "iife";
4
+ export declare const DEFAULT_LAZY_INIT = true;
5
+ export declare const DEFAULT_ISOLATION = "inherit";
6
+ export declare const DEFAULT_ENV: Record<string, unknown>;
7
+ export type RuntimeConfig = {
8
+ assessmentId?: string;
9
+ playerType?: string;
10
+ player?: Record<string, unknown> | null;
11
+ lazyInit?: boolean;
12
+ tools?: Record<string, unknown> | null;
13
+ accessibility?: Record<string, unknown> | null;
14
+ coordinator?: unknown;
15
+ createSectionController?: unknown;
16
+ isolation?: string;
17
+ env?: Record<string, unknown>;
18
+ };
19
+ export type RuntimeInputs = {
20
+ assessmentId?: string;
21
+ playerType?: string;
22
+ player?: Record<string, unknown> | null;
23
+ lazyInit?: boolean;
24
+ tools?: Record<string, unknown> | null;
25
+ accessibility?: Record<string, unknown> | null;
26
+ coordinator?: unknown;
27
+ createSectionController?: unknown;
28
+ isolation?: string;
29
+ env?: Record<string, unknown> | null;
30
+ runtime: RuntimeConfig | null;
31
+ enabledTools: string;
32
+ itemToolbarTools: string;
33
+ passageToolbarTools: string;
34
+ };
35
+ export declare function resolveToolsConfig(args: {
36
+ runtime: RuntimeConfig | null;
37
+ tools: Record<string, unknown> | null;
38
+ enabledTools: string;
39
+ itemToolbarTools: string;
40
+ passageToolbarTools: string;
41
+ }): import('@pie-players/pie-assessment-toolkit').CanonicalToolsConfig;
42
+ export declare function resolveRuntime(args: {
43
+ assessmentId: string;
44
+ playerType: string;
45
+ player: Record<string, unknown> | null;
46
+ lazyInit: boolean;
47
+ accessibility: Record<string, unknown> | null;
48
+ coordinator: unknown;
49
+ createSectionController: unknown;
50
+ isolation: string;
51
+ env: Record<string, unknown> | null;
52
+ runtime: RuntimeConfig | null;
53
+ effectiveToolsConfig: unknown;
54
+ }): {
55
+ env: Record<string, unknown>;
56
+ tools: unknown;
57
+ assessmentId: string;
58
+ playerType: string;
59
+ player: Record<string, unknown> | null;
60
+ lazyInit: boolean;
61
+ accessibility: Record<string, unknown> | null;
62
+ coordinator: unknown;
63
+ createSectionController: unknown;
64
+ isolation: string;
65
+ };
66
+ export declare function resolvePlayerRuntime(args: {
67
+ effectiveRuntime: Record<string, unknown>;
68
+ playerType: string;
69
+ env: Record<string, unknown> | null;
70
+ }): {
71
+ effectivePlayerType: string;
72
+ resolvedPlayerDefinition: import('../../component-definitions.js').ComponentDefinition;
73
+ resolvedPlayerTag: string;
74
+ resolvedPlayerAttributes: Record<string, string>;
75
+ resolvedPlayerProps: Record<string, unknown>;
76
+ resolvedPlayerEnv: Record<string, unknown>;
77
+ strategy: import('@pie-players/pie-players-shared').ItemPlayerStrategy;
78
+ };
79
+ export declare function mapRenderablesToItems(renderables: unknown[]): ItemEntity[];
80
+ export declare function resolveSectionPlayerRuntimeState(args: RuntimeInputs): {
81
+ effectiveToolsConfig: import('@pie-players/pie-assessment-toolkit').CanonicalToolsConfig;
82
+ effectiveRuntime: {
83
+ env: Record<string, unknown>;
84
+ tools: unknown;
85
+ assessmentId: string;
86
+ playerType: string;
87
+ player: Record<string, unknown> | null;
88
+ lazyInit: boolean;
89
+ accessibility: Record<string, unknown> | null;
90
+ coordinator: unknown;
91
+ createSectionController: unknown;
92
+ isolation: string;
93
+ };
94
+ playerRuntime: {
95
+ effectivePlayerType: string;
96
+ resolvedPlayerDefinition: import('../../component-definitions.js').ComponentDefinition;
97
+ resolvedPlayerTag: string;
98
+ resolvedPlayerAttributes: Record<string, string>;
99
+ resolvedPlayerProps: Record<string, unknown>;
100
+ resolvedPlayerEnv: Record<string, unknown>;
101
+ strategy: import('@pie-players/pie-players-shared').ItemPlayerStrategy;
102
+ };
103
+ };
104
+ //# sourceMappingURL=section-player-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-player-runtime.d.ts","sourceRoot":"","sources":["../../../src/components/shared/section-player-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { ItemEntity } from '../../../../players-shared/dist/types/index.d.ts';
2
+ import { SectionCompositionModel } from '../../controllers/types.js';
3
+ import { PlayerElementParams } from './player-action.js';
4
+ export declare function getCompositionFromEvent(event: Event): SectionCompositionModel;
5
+ export declare function getPassagePlayerParams(args: {
6
+ passage: any;
7
+ resolvedPlayerEnv: Record<string, unknown>;
8
+ resolvedPlayerAttributes: Record<string, string>;
9
+ resolvedPlayerProps: Record<string, unknown>;
10
+ playerStrategy: string;
11
+ }): PlayerElementParams;
12
+ export declare function getItemPlayerParams(args: {
13
+ item: ItemEntity;
14
+ compositionModel: SectionCompositionModel;
15
+ resolvedPlayerEnv: Record<string, unknown>;
16
+ resolvedPlayerAttributes: Record<string, string>;
17
+ resolvedPlayerProps: Record<string, unknown>;
18
+ playerStrategy: string;
19
+ }): PlayerElementParams;
20
+ export declare function getCanonicalItemId(args: {
21
+ compositionModel: SectionCompositionModel;
22
+ item: ItemEntity;
23
+ }): string;
24
+ //# sourceMappingURL=section-player-view-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-player-view-state.d.ts","sourceRoot":"","sources":["../../../src/components/shared/section-player-view-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAM1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,uBAAuB,CAI7E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,GAAG,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;CACvB,GAAG,mBAAmB,CAUtB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;CACvB,GAAG,mBAAmB,CAStB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACxC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,IAAI,EAAE,UAAU,CAAC;CACjB,GAAG,MAAM,CAET"}
@@ -1,6 +1,9 @@
1
1
  import { AssessmentSection } from '@pie-players/pie-players-shared';
2
2
  import { SectionContentModel, SectionView } from './types.js';
3
3
  export declare class SectionContentService {
4
+ private createUniqueId;
5
+ private resolvePassageBaseId;
6
+ private normalizePassageEntity;
4
7
  build(section: AssessmentSection | null, view: SectionView): SectionContentModel;
5
8
  }
6
9
  //# sourceMappingURL=SectionContentService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionContentService.d.ts","sourceRoot":"","sources":["../../src/controllers/SectionContentService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,qBAAqB;IAC1B,KAAK,CACX,OAAO,EAAE,iBAAiB,GAAG,IAAI,EACjC,IAAI,EAAE,WAAW,GACf,mBAAmB;CAqDtB"}
1
+ {"version":3,"file":"SectionContentService.d.ts","sourceRoot":"","sources":["../../src/controllers/SectionContentService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EACX,mBAAmB,EAEnB,WAAW,EACX,MAAM,YAAY,CAAC;AAIpB,qBAAa,qBAAqB;IACjC,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,sBAAsB;IAavB,KAAK,CACX,OAAO,EAAE,iBAAiB,GAAG,IAAI,EACjC,IAAI,EAAE,WAAW,GACf,mBAAmB;CA+HtB"}
@@ -1,7 +1,7 @@
1
1
  import { TestAttemptSession } from '@pie-players/pie-assessment-toolkit';
2
2
  import { SectionControllerContext, SectionControllerHandle, SectionControllerPersistenceStrategy } from './toolkit-section-contracts.js';
3
3
  import { ItemEntity } from '@pie-players/pie-players-shared';
4
- import { NavigationResult, SectionControllerChangeListener, SectionCompositionModel, SectionAttemptSessionSlice, SectionNavigationState, SectionSessionState, SectionViewModel, SessionChangedResult } from './types.js';
4
+ import { NavigationResult, SectionCanonicalItemViewModel, SectionCanonicalSectionViewModel, SectionCanonicalSessionViewModel, SectionControllerChangeListener, SectionCompositionModel, SectionAttemptSessionSlice, SectionNavigationState, SectionSessionState, SectionViewModel, SessionChangedResult } from './types.js';
5
5
  export declare class SectionController implements SectionControllerHandle {
6
6
  private readonly contentService;
7
7
  private readonly sessionService;
@@ -10,6 +10,14 @@ export declare class SectionController implements SectionControllerHandle {
10
10
  private persistenceContext;
11
11
  private state;
12
12
  private readonly listeners;
13
+ private readonly trackedRenderables;
14
+ private readonly loadedRenderableKeys;
15
+ private readonly itemCompletionByCanonicalId;
16
+ private sectionLoadingComplete;
17
+ private sectionLoadingSnapshot;
18
+ private sectionItemsCompleteSnapshot;
19
+ private lastItemSelectionSnapshot;
20
+ private lastSectionErrorSnapshot;
13
21
  private emitChange;
14
22
  subscribe(listener: SectionControllerChangeListener): () => void;
15
23
  initialize(input?: unknown): Promise<void>;
@@ -22,6 +30,9 @@ export declare class SectionController implements SectionControllerHandle {
22
30
  getSnapshot(): unknown;
23
31
  getViewModel(): SectionViewModel;
24
32
  getCompositionModel(): SectionCompositionModel;
33
+ getCanonicalItemViewModel(itemId: string): SectionCanonicalItemViewModel | null;
34
+ getCanonicalSectionViewModel(): SectionCanonicalSectionViewModel;
35
+ getCanonicalSessionViewModel(): SectionCanonicalSessionViewModel;
25
36
  getInstructions(): import('@pie-players/pie-players-shared').RubricBlock[];
26
37
  getSectionLoadedEventDetail(): {
27
38
  sectionId: string;
@@ -32,6 +43,7 @@ export declare class SectionController implements SectionControllerHandle {
32
43
  getResolvedItemSessions(): Record<string, any>;
33
44
  getResolvedTestAttemptSession(): TestAttemptSession | null;
34
45
  getCanonicalItemId(itemId: string): string;
46
+ private getItemViewModels;
35
47
  getItemSessionsByItemId(): Record<string, any>;
36
48
  /**
37
49
  * Host-facing persistence shape.
@@ -55,5 +67,47 @@ export declare class SectionController implements SectionControllerHandle {
55
67
  * Cross-section navigation belongs to the higher-level assessment player.
56
68
  */
57
69
  navigateToItem(index: number): NavigationResult | null;
70
+ handleContentRegistered(args: {
71
+ itemId: string;
72
+ canonicalItemId?: string;
73
+ contentKind?: string;
74
+ }): void;
75
+ handleContentUnregistered(args: {
76
+ itemId: string;
77
+ canonicalItemId?: string;
78
+ contentKind?: string;
79
+ }): void;
80
+ handleContentLoaded(args: {
81
+ itemId: string;
82
+ canonicalItemId?: string;
83
+ contentKind?: string;
84
+ detail?: unknown;
85
+ timestamp?: number;
86
+ }): void;
87
+ handleItemPlayerError(args: {
88
+ itemId: string;
89
+ canonicalItemId?: string;
90
+ contentKind?: string;
91
+ error: unknown;
92
+ timestamp?: number;
93
+ }): void;
94
+ reportSectionError(args: {
95
+ source: "item-player" | "section-runtime" | "toolkit" | "controller";
96
+ error: unknown;
97
+ itemId?: string;
98
+ canonicalItemId?: string;
99
+ contentKind?: string;
100
+ timestamp?: number;
101
+ }): void;
102
+ private resetLifecycleTracking;
103
+ private toSectionContentKind;
104
+ private getRenderableKey;
105
+ private readCompleteFromSession;
106
+ private bootstrapCompletionFromSessions;
107
+ private updateItemCompleteState;
108
+ private emitSectionItemsCompleteIfChanged;
109
+ private evaluateSectionLoadingState;
110
+ private captureReplaySnapshot;
111
+ private buildReplayEvents;
58
112
  }
59
113
  //# 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,wBAAwB,EACxB,uBAAuB,EACvB,oCAAoC,EACpC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAIlE,OAAO,KAAK,EACX,gBAAgB,EAEhB,+BAA+B,EAC/B,uBAAuB,EACvB,0BAA0B,EAE1B,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,YAAY,CAAC;AAQpB,qBAAa,iBAAkB,YAAW,uBAAuB;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsC;IAC5E,OAAO,CAAC,mBAAmB,CAAqD;IAChF,OAAO,CAAC,kBAAkB,CAAyC;IACnE,OAAO,CAAC,KAAK,CAYX;IACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IAExE,OAAO,CAAC,UAAU;IAmBX,SAAS,CAAC,QAAQ,EAAE,+BAA+B,GAAG,MAAM,IAAI;IAO1D,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1C,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,sBAAsB,CAClC,QAAQ,EAAE,oCAAoC,GAC5C,OAAO,CAAC,IAAI,CAAC;IAIT,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAIxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,OAAO,IAAI,IAAI;IAIf,WAAW,IAAI,OAAO;IAOtB,YAAY,IAAI,gBAAgB;IAIhC,mBAAmB,IAAI,uBAAuB;IAgB9C,eAAe;IAIf,2BAA2B,IAAI;QACrC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACpB;IASM,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAK9C,6BAA6B,IAAI,kBAAkB,GAAG,IAAI;IAI1D,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQ1C,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA0BrD;;;;OAIG;IACI,eAAe,IAAI,mBAAmB,GAAG,IAAI;IAKpD,OAAO,CAAC,yBAAyB;IAUjC;;;;OAIG;IACI,6BAA6B,IAAI,0BAA0B,GAAG,IAAI;IA6BlE,cAAc,IAAI,UAAU,GAAG,IAAI;IAKnC,qBAAqB,IAAI,OAAO;IAMhC,kBAAkB,CAAC,SAAS,UAAQ,GAAG,sBAAsB;IAa7D,wBAAwB,CAC9B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,GAAG,GAChB,oBAAoB,GAAG,IAAI;IA+B9B;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;CAqB7D"}
1
+ {"version":3,"file":"SectionController.d.ts","sourceRoot":"","sources":["../../src/controllers/SectionController.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export declare class SectionSessionService {
7
7
  visitedItemIdentifiers: string[];
8
8
  itemSessions: Record<string, unknown>;
9
9
  };
10
- private normalizeToItemSession;
11
10
  resolve(input: SectionControllerInput & {
12
11
  adapterItemRefs: any[];
13
12
  }): {
@@ -1 +1 @@
1
- {"version":3,"file":"SectionSessionService.d.ts","sourceRoot":"","sources":["../../src/controllers/SectionSessionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,kBAAkB,EACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE/E,qBAAa,qBAAqB;IACjC,OAAO,CAAC,2BAA2B;IAc5B,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,GAAG;QAC9D,gBAAgB,EAAE,MAAM,CAAC;QACzB,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC;IAUD,OAAO,CAAC,sBAAsB;IA6DvB,OAAO,CAAC,KAAK,EAAE,sBAAsB,GAAG;QAAE,eAAe,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG;QAC3E,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;IASM,uBAAuB,CAAC,IAAI,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,GAAG,CAAC;QACnB,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC,GAAG,oBAAoB;CA4ExB"}
1
+ {"version":3,"file":"SectionSessionService.d.ts","sourceRoot":"","sources":["../../src/controllers/SectionSessionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,kBAAkB,EACvB,MAAM,qCAAqC,CAAC;AAK7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE/E,qBAAa,qBAAqB;IACjC,OAAO,CAAC,2BAA2B;IAc5B,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,GAAG;QAC9D,gBAAgB,EAAE,MAAM,CAAC;QACzB,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC;IAUM,OAAO,CAAC,KAAK,EAAE,sBAAsB,GAAG;QAAE,eAAe,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG;QAC3E,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;IASM,uBAAuB,CAAC,IAAI,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,GAAG,CAAC;QACnB,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC,GAAG,oBAAoB;CAkDxB"}
@@ -1,31 +1,5 @@
1
- import { ToolkitCoordinator } from '@pie-players/pie-assessment-toolkit';
2
- export interface SectionControllerKey {
3
- assessmentId: string;
4
- sectionId: string;
5
- attemptId?: string;
6
- }
7
- export interface SectionControllerContext {
8
- key: SectionControllerKey;
9
- coordinator: unknown;
10
- input?: unknown;
11
- }
12
- export interface SectionControllerPersistenceStrategy {
13
- load(context: SectionControllerContext): unknown | Promise<unknown>;
14
- save(context: SectionControllerContext, snapshot: unknown): void | Promise<void>;
15
- clear?(context: SectionControllerContext): void | Promise<void>;
16
- }
17
- export interface SectionControllerHandle {
18
- initialize?(input?: unknown): void | Promise<void>;
19
- updateInput?(input?: unknown): void | Promise<void>;
20
- hydrate?(): void | Promise<void>;
21
- persist?(): void | Promise<void>;
22
- dispose?(): void | Promise<void>;
23
- subscribe?(listener: (event: unknown) => void): () => void;
24
- getSnapshot?(): unknown;
25
- getCurrentSectionAttemptSlice?(): unknown;
26
- setPersistenceContext?(context: SectionControllerContext): void | Promise<void>;
27
- setPersistenceStrategy?(strategy: SectionControllerPersistenceStrategy): void | Promise<void>;
28
- }
1
+ import { ToolkitCoordinator, SectionControllerHandle } from '@pie-players/pie-assessment-toolkit';
2
+ export type { SectionControllerContext, SectionControllerHandle, SectionControllerKey, SectionControllerPersistenceStrategy, } from '@pie-players/pie-assessment-toolkit';
29
3
  export type CoordinatorWithSectionControllers = ToolkitCoordinator & {
30
4
  getOrCreateSectionController(args: {
31
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;AAE9E,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACxC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oCAAoC;IACpD,IAAI,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,KAAK,CAAC,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,uBAAuB;IACvC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC3D,WAAW,CAAC,IAAI,OAAO,CAAC;IAExB,6BAA6B,CAAC,IAAI,OAAO,CAAC;IAC1C,qBAAqB,CAAC,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,sBAAsB,CAAC,CACtB,QAAQ,EAAE,oCAAoC,GAC5C,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,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"}
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,oCAAoC,GACpC,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"}
@@ -1,11 +1,13 @@
1
1
  import { TestAttemptSession } from '@pie-players/pie-assessment-toolkit';
2
- import { AssessmentItemRef, AssessmentSection, ItemEntity, PassageEntity, RubricBlock } from '@pie-players/pie-players-shared';
2
+ import { ItemSessionUpdateIntent, AssessmentItemRef, AssessmentSection, ItemEntity, PassageEntity, RubricBlock } from '@pie-players/pie-players-shared';
3
+ import { ConfigContainerEntity } from '../../../players-shared/dist/types/index.d.ts';
3
4
  export type SectionView = "candidate" | "scorer" | "author" | "proctor" | "testConstructor" | "tutor";
4
5
  export interface SectionContentModel {
5
6
  passages: PassageEntity[];
6
7
  items: ItemEntity[];
7
8
  rubricBlocks: RubricBlock[];
8
9
  instructions: RubricBlock[];
10
+ renderables: SectionRenderable[];
9
11
  adapterItemRefs: Array<{
10
12
  identifier: string;
11
13
  item: {
@@ -14,6 +16,11 @@ export interface SectionContentModel {
14
16
  };
15
17
  }>;
16
18
  }
19
+ export type SectionRenderableFlavor = "item" | "passage" | "rubric";
20
+ export interface SectionRenderable {
21
+ flavor: SectionRenderableFlavor;
22
+ entity: ConfigContainerEntity;
23
+ }
17
24
  export interface SectionControllerInput {
18
25
  section: AssessmentSection | null;
19
26
  view: SectionView;
@@ -36,11 +43,30 @@ export interface SectionCompositionModel {
36
43
  items: ItemEntity[];
37
44
  rubricBlocks: RubricBlock[];
38
45
  instructions: RubricBlock[];
46
+ renderables: SectionRenderable[];
39
47
  currentItemIndex: number;
40
48
  currentItem: ItemEntity | null;
41
49
  isPageMode: boolean;
42
50
  itemSessionsByItemId: Record<string, unknown>;
43
51
  testAttemptSession: TestAttemptSession | null;
52
+ itemViewModels: SectionCanonicalItemViewModel[];
53
+ }
54
+ export interface SectionCanonicalItemViewModel {
55
+ item: ItemEntity;
56
+ itemId: string;
57
+ canonicalItemId: string;
58
+ index: number;
59
+ isCurrent: boolean;
60
+ session: unknown;
61
+ }
62
+ export interface SectionCanonicalSectionViewModel {
63
+ sectionId: string;
64
+ currentItemIndex: number;
65
+ items: SectionCanonicalItemViewModel[];
66
+ }
67
+ export interface SectionCanonicalSessionViewModel {
68
+ currentItemIndex: number;
69
+ itemSessionsByCanonicalId: Record<string, unknown>;
44
70
  }
45
71
  export interface SectionAttemptSessionSlice {
46
72
  sectionId: string;
@@ -58,8 +84,7 @@ export interface SessionChangedResult {
58
84
  eventDetail: {
59
85
  itemId: string;
60
86
  session: unknown;
61
- sessionState: SectionSessionState;
62
- itemSessions: Record<string, unknown>;
87
+ intent?: ItemSessionUpdateIntent;
63
88
  complete?: boolean;
64
89
  component?: string;
65
90
  timestamp: number;
@@ -83,11 +108,77 @@ export interface SectionNavigationState {
83
108
  canPrevious: boolean;
84
109
  isLoading: boolean;
85
110
  }
86
- export interface SectionControllerChangeEvent {
87
- reason: "initialize" | "hydrate" | "session-change" | "navigation-change";
88
- itemId?: string;
111
+ export type SectionContentKind = "item" | "passage" | "rubric" | "unknown";
112
+ interface SectionControllerEventBase {
113
+ type: "item-session-data-changed" | "item-session-meta-changed" | "item-selected" | "content-loaded" | "item-player-error" | "item-complete-changed" | "section-loading-complete" | "section-items-complete-changed" | "section-error";
89
114
  currentItemIndex: number;
90
115
  timestamp: number;
116
+ replayed?: boolean;
117
+ }
118
+ export interface ItemSessionDataChangedEvent extends SectionControllerEventBase {
119
+ type: "item-session-data-changed";
120
+ itemId: string;
121
+ canonicalItemId: string;
122
+ session: unknown;
123
+ intent?: ItemSessionUpdateIntent;
124
+ complete?: boolean;
125
+ component?: string;
126
+ }
127
+ export interface ItemSessionMetaChangedEvent extends SectionControllerEventBase {
128
+ type: "item-session-meta-changed";
129
+ itemId: string;
130
+ canonicalItemId: string;
131
+ complete?: boolean;
132
+ component?: string;
133
+ }
134
+ export interface ItemSelectedEvent extends SectionControllerEventBase {
135
+ type: "item-selected";
136
+ previousItemId: string;
137
+ currentItemId: string;
138
+ itemIndex: number;
139
+ totalItems: number;
140
+ }
141
+ export interface ContentLoadedEvent extends SectionControllerEventBase {
142
+ type: "content-loaded";
143
+ contentKind: SectionContentKind;
144
+ itemId: string;
145
+ canonicalItemId: string;
146
+ detail?: unknown;
147
+ }
148
+ export interface ItemPlayerErrorEvent extends SectionControllerEventBase {
149
+ type: "item-player-error";
150
+ contentKind: SectionContentKind;
151
+ itemId: string;
152
+ canonicalItemId: string;
153
+ error: unknown;
154
+ }
155
+ export interface ItemCompleteChangedEvent extends SectionControllerEventBase {
156
+ type: "item-complete-changed";
157
+ itemId: string;
158
+ canonicalItemId: string;
159
+ complete: boolean;
160
+ previousComplete: boolean;
161
+ }
162
+ export interface SectionLoadingCompleteEvent extends SectionControllerEventBase {
163
+ type: "section-loading-complete";
164
+ totalRegistered: number;
165
+ totalLoaded: number;
166
+ }
167
+ export interface SectionItemsCompleteChangedEvent extends SectionControllerEventBase {
168
+ type: "section-items-complete-changed";
169
+ complete: boolean;
170
+ completedCount: number;
171
+ totalItems: number;
172
+ }
173
+ export interface SectionErrorEvent extends SectionControllerEventBase {
174
+ type: "section-error";
175
+ source: "item-player" | "section-runtime" | "toolkit" | "controller";
176
+ error: unknown;
177
+ itemId?: string;
178
+ canonicalItemId?: string;
179
+ contentKind?: SectionContentKind;
91
180
  }
181
+ export type SectionControllerChangeEvent = ItemSessionDataChangedEvent | ItemSessionMetaChangedEvent | ItemSelectedEvent | ContentLoadedEvent | ItemPlayerErrorEvent | ItemCompleteChangedEvent | SectionLoadingCompleteEvent | SectionItemsCompleteChangedEvent | SectionErrorEvent;
92
182
  export type SectionControllerChangeListener = (event: SectionControllerChangeEvent) => void;
183
+ export {};
93
184
  //# sourceMappingURL=types.d.ts.map
@@ -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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"}