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

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 (62) 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.map +1 -1
  17. package/dist/controllers/SectionController.d.ts +5 -1
  18. package/dist/controllers/SectionController.d.ts.map +1 -1
  19. package/dist/controllers/SectionSessionService.d.ts +0 -1
  20. package/dist/controllers/SectionSessionService.d.ts.map +1 -1
  21. package/dist/controllers/toolkit-section-contracts.d.ts +2 -28
  22. package/dist/controllers/toolkit-section-contracts.d.ts.map +1 -1
  23. package/dist/controllers/types.d.ts +28 -1
  24. package/dist/controllers/types.d.ts.map +1 -1
  25. package/dist/pie-item-player-B1iGN63e.js +6189 -0
  26. package/dist/pie-section-player.d.ts +0 -8
  27. package/dist/pie-section-player.d.ts.map +1 -1
  28. package/dist/pie-section-player.js +56558 -11
  29. package/dist/player-preload-CQVG0Bih.js +705 -0
  30. package/dist/utils/player-preload.d.ts +2 -0
  31. package/dist/utils/player-preload.d.ts.map +1 -0
  32. package/dist/utils/player-preload.js +8 -0
  33. package/package.json +23 -32
  34. package/src/components/ItemShellElement.svelte +10 -1
  35. package/src/components/PieSectionPlayerBaseElement.svelte +21 -78
  36. package/src/components/PieSectionPlayerSplitPaneElement.svelte +236 -295
  37. package/src/components/PieSectionPlayerVerticalElement.svelte +424 -0
  38. package/src/components/shared/SectionItemCard.svelte +92 -0
  39. package/src/components/shared/SectionPassageCard.svelte +88 -0
  40. package/dist/ItemRenderer-MsjF_Beu.js +0 -467
  41. package/dist/PieItemModeLayoutElement-D7oTzA9T.js +0 -316
  42. package/dist/PieSplitPanelLayoutElement-GUtJ_NlF.js +0 -246
  43. package/dist/PieVerticalLayoutElement-BoA3FO5g.js +0 -194
  44. package/dist/controllers/SectionToolkitService.d.ts +0 -24
  45. package/dist/controllers/SectionToolkitService.d.ts.map +0 -1
  46. package/dist/controllers/SessionPersistenceStrategy.d.ts +0 -15
  47. package/dist/controllers/SessionPersistenceStrategy.d.ts.map +0 -1
  48. package/dist/index.d.ts +0 -2
  49. package/dist/pie-section-player-DJ5NcwdT.js +0 -17078
  50. package/dist/runtime/runtime-event-guards.d.ts +0 -4
  51. package/dist/runtime/runtime-event-guards.d.ts.map +0 -1
  52. package/src/PieSectionPlayer.svelte +0 -826
  53. package/src/components/ItemModeLayout.svelte +0 -172
  54. package/src/components/ItemNavigation.svelte +0 -96
  55. package/src/components/ItemPlayerBridge.svelte +0 -110
  56. package/src/components/ItemRenderer.svelte +0 -248
  57. package/src/components/ItemShell.svelte +0 -86
  58. package/src/components/layout-elements/PieItemModeLayoutElement.svelte +0 -47
  59. package/src/components/layout-elements/PieSplitPanelLayoutElement.svelte +0 -62
  60. package/src/components/layout-elements/PieVerticalLayoutElement.svelte +0 -41
  61. package/src/components/layouts/SplitPanelLayout.svelte +0 -385
  62. 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 +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;AAEpB,qBAAa,qBAAqB;IAC1B,KAAK,CACX,OAAO,EAAE,iBAAiB,GAAG,IAAI,EACjC,IAAI,EAAE,WAAW,GACf,mBAAmB;CA0EtB"}
@@ -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;
@@ -22,6 +22,9 @@ export declare class SectionController implements SectionControllerHandle {
22
22
  getSnapshot(): unknown;
23
23
  getViewModel(): SectionViewModel;
24
24
  getCompositionModel(): SectionCompositionModel;
25
+ getCanonicalItemViewModel(itemId: string): SectionCanonicalItemViewModel | null;
26
+ getCanonicalSectionViewModel(): SectionCanonicalSectionViewModel;
27
+ getCanonicalSessionViewModel(): SectionCanonicalSessionViewModel;
25
28
  getInstructions(): import('@pie-players/pie-players-shared').RubricBlock[];
26
29
  getSectionLoadedEventDetail(): {
27
30
  sectionId: string;
@@ -32,6 +35,7 @@ export declare class SectionController implements SectionControllerHandle {
32
35
  getResolvedItemSessions(): Record<string, any>;
33
36
  getResolvedTestAttemptSession(): TestAttemptSession | null;
34
37
  getCanonicalItemId(itemId: string): string;
38
+ private getItemViewModels;
35
39
  getItemSessionsByItemId(): Record<string, any>;
36
40
  /**
37
41
  * Host-facing persistence shape.
@@ -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":"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,EAChB,6BAA6B,EAC7B,gCAAgC,EAChC,gCAAgC,EAEhC,+BAA+B,EAC/B,uBAAuB,EACvB,0BAA0B,EAE1B,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,YAAY,CAAC;AAQpB,qBAAa,iBAAkB,YAAW,uBAAuB;IAGhE,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,CACrB;IACN,OAAO,CAAC,kBAAkB,CAAyC;IACnE,OAAO,CAAC,KAAK,CAaX;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;IA8B1C,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;IAkBxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,OAAO,IAAI,IAAI;IAIf,WAAW,IAAI,OAAO;IAOtB,YAAY,IAAI,gBAAgB;IAIhC,mBAAmB,IAAI,uBAAuB;IAmB9C,yBAAyB,CAC/B,MAAM,EAAE,MAAM,GACZ,6BAA6B,GAAG,IAAI;IAQhC,4BAA4B,IAAI,gCAAgC;IAQhE,4BAA4B,IAAI,gCAAgC;IAqBhE,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;IAYM,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAQ9C,6BAA6B,IAAI,kBAAkB,GAAG,IAAI;IAI1D,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQjD,OAAO,CAAC,iBAAiB;IAiBlB,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;IAyClE,cAAc,IAAI,UAAU,GAAG,IAAI;IAOnC,qBAAqB,IAAI,OAAO;IAMhC,kBAAkB,CAAC,SAAS,UAAQ,GAAG,sBAAsB;IAa7D,wBAAwB,CAC9B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,GAAG,GAChB,oBAAoB,GAAG,IAAI;IAiB9B;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;CAqB7D"}
@@ -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;CAmDxB"}
@@ -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;
@@ -60,6 +86,7 @@ export interface SessionChangedResult {
60
86
  session: unknown;
61
87
  sessionState: SectionSessionState;
62
88
  itemSessions: Record<string, unknown>;
89
+ intent?: ItemSessionUpdateIntent;
63
90
  complete?: boolean;
64
91
  component?: string;
65
92
  timestamp: 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":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EACX,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,WAAW,EACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAEnF,MAAM,MAAM,WAAW,GACpB,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,iBAAiB,GACjB,OAAO,CAAC;AAEX,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,eAAe,EAAE,KAAK,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE;YACL,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,UAAU,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;KACF,CAAC,CAAC;CACH;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,cAAc,EAAE,6BAA6B,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,6BAA6B;IAC7C,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gCAAgC;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,6BAA6B,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,gCAAgC;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,0BAA0B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACpC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,mBAAmB,CAAC;QAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,uBAAuB,CAAC;QACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;CACF;AAED,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE;QACZ,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,kBAAkB,EAAE,kBAAkB,CAAC;CACvC;AAED,MAAM,WAAW,sBAAsB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC5C,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,+BAA+B,GAAG,CAC7C,KAAK,EAAE,4BAA4B,KAC/B,IAAI,CAAC"}