@pie-players/pie-players-shared 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/dist/config/profile.d.ts +15 -0
- package/dist/config/profile.d.ts.map +1 -0
- package/dist/config/profile.js +27 -0
- package/dist/config/profile.js.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +12 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/loader.d.ts +36 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/loader.js +133 -0
- package/dist/i18n/loader.js.map +1 -0
- package/dist/i18n/scripts/check-coverage.d.ts +16 -0
- package/dist/i18n/scripts/check-coverage.d.ts.map +1 -0
- package/dist/i18n/scripts/check-coverage.js +262 -0
- package/dist/i18n/scripts/check-coverage.js.map +1 -0
- package/dist/i18n/scripts/scan-hardcoded.d.ts +16 -0
- package/dist/i18n/scripts/scan-hardcoded.d.ts.map +1 -0
- package/dist/i18n/scripts/scan-hardcoded.js +266 -0
- package/dist/i18n/scripts/scan-hardcoded.js.map +1 -0
- package/dist/i18n/simple-i18n.d.ts +69 -0
- package/dist/i18n/simple-i18n.d.ts.map +1 -0
- package/dist/i18n/simple-i18n.js +199 -0
- package/dist/i18n/simple-i18n.js.map +1 -0
- package/dist/i18n/translations/ar/common.json +36 -0
- package/dist/i18n/translations/ar/toolkit.json +48 -0
- package/dist/i18n/translations/ar/tools.json +109 -0
- package/dist/i18n/translations/en/common.json +36 -0
- package/dist/i18n/translations/en/toolkit.json +48 -0
- package/dist/i18n/translations/en/tools.json +109 -0
- package/dist/i18n/translations/es/common.json +36 -0
- package/dist/i18n/translations/es/toolkit.json +48 -0
- package/dist/i18n/translations/es/tools.json +109 -0
- package/dist/i18n/translations/zh/common.json +36 -0
- package/dist/i18n/translations/zh/toolkit.json +48 -0
- package/dist/i18n/translations/zh/tools.json +109 -0
- package/dist/i18n/types.d.ts +58 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +8 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/i18n/use-i18n-standalone.svelte.d.ts +87 -0
- package/dist/i18n/use-i18n-standalone.svelte.d.ts.map +1 -0
- package/dist/i18n/use-i18n-standalone.svelte.js +151 -0
- package/dist/i18n/use-i18n-standalone.svelte.js.map +1 -0
- package/dist/i18n/use-i18n.svelte.d.ts +67 -0
- package/dist/i18n/use-i18n.svelte.d.ts.map +1 -0
- package/dist/i18n/use-i18n.svelte.js +144 -0
- package/dist/i18n/use-i18n.svelte.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation/index.d.ts +53 -0
- package/dist/instrumentation/index.d.ts.map +1 -0
- package/dist/instrumentation/index.js +53 -0
- package/dist/instrumentation/index.js.map +1 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts +197 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.js +267 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts +106 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js +182 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts +170 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.js +183 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts +86 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js +135 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/index.d.ts +12 -0
- package/dist/instrumentation/providers/index.d.ts.map +1 -0
- package/dist/instrumentation/providers/index.js +12 -0
- package/dist/instrumentation/providers/index.js.map +1 -0
- package/dist/instrumentation/types.d.ts +348 -0
- package/dist/instrumentation/types.d.ts.map +1 -0
- package/dist/instrumentation/types.js +9 -0
- package/dist/instrumentation/types.js.map +1 -0
- package/dist/loader-config.d.ts +76 -0
- package/dist/loader-config.d.ts.map +1 -0
- package/dist/loader-config.js +12 -0
- package/dist/loader-config.js.map +1 -0
- package/dist/loaders/ElementLoader.d.ts +72 -0
- package/dist/loaders/ElementLoader.d.ts.map +1 -0
- package/dist/loaders/ElementLoader.js +52 -0
- package/dist/loaders/ElementLoader.js.map +1 -0
- package/dist/loaders/EsmElementLoader.d.ts +67 -0
- package/dist/loaders/EsmElementLoader.d.ts.map +1 -0
- package/dist/loaders/EsmElementLoader.js +71 -0
- package/dist/loaders/EsmElementLoader.js.map +1 -0
- package/dist/loaders/IifeElementLoader.d.ts +61 -0
- package/dist/loaders/IifeElementLoader.d.ts.map +1 -0
- package/dist/loaders/IifeElementLoader.js +63 -0
- package/dist/loaders/IifeElementLoader.js.map +1 -0
- package/dist/loaders/index.d.ts +28 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +25 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/object/index.d.ts +12 -0
- package/dist/object/index.d.ts.map +1 -0
- package/dist/object/index.js +40 -0
- package/dist/object/index.js.map +1 -0
- package/dist/pie/asset-handler.d.ts +64 -0
- package/dist/pie/asset-handler.d.ts.map +1 -0
- package/dist/pie/asset-handler.js +238 -0
- package/dist/pie/asset-handler.js.map +1 -0
- package/dist/pie/component-context.d.ts +22 -0
- package/dist/pie/component-context.d.ts.map +1 -0
- package/dist/pie/component-context.js +30 -0
- package/dist/pie/component-context.js.map +1 -0
- package/dist/pie/config.d.ts +39 -0
- package/dist/pie/config.d.ts.map +1 -0
- package/dist/pie/config.js +174 -0
- package/dist/pie/config.js.map +1 -0
- package/dist/pie/configure-initialization.d.ts +35 -0
- package/dist/pie/configure-initialization.d.ts.map +1 -0
- package/dist/pie/configure-initialization.js +141 -0
- package/dist/pie/configure-initialization.js.map +1 -0
- package/dist/pie/esm-loader.d.ts +93 -0
- package/dist/pie/esm-loader.d.ts.map +1 -0
- package/dist/pie/esm-loader.js +308 -0
- package/dist/pie/esm-loader.js.map +1 -0
- package/dist/pie/iife-loader.d.ts +76 -0
- package/dist/pie/iife-loader.d.ts.map +1 -0
- package/dist/pie/iife-loader.js +303 -0
- package/dist/pie/iife-loader.js.map +1 -0
- package/dist/pie/index.d.ts +31 -0
- package/dist/pie/index.d.ts.map +1 -0
- package/dist/pie/index.js +34 -0
- package/dist/pie/index.js.map +1 -0
- package/dist/pie/initialization.d.ts +40 -0
- package/dist/pie/initialization.d.ts.map +1 -0
- package/dist/pie/initialization.js +349 -0
- package/dist/pie/initialization.js.map +1 -0
- package/dist/pie/logger.d.ts +64 -0
- package/dist/pie/logger.d.ts.map +1 -0
- package/dist/pie/logger.js +45 -0
- package/dist/pie/logger.js.map +1 -0
- package/dist/pie/math-rendering.d.ts +69 -0
- package/dist/pie/math-rendering.d.ts.map +1 -0
- package/dist/pie/math-rendering.js +98 -0
- package/dist/pie/math-rendering.js.map +1 -0
- package/dist/pie/overrides.d.ts +43 -0
- package/dist/pie/overrides.d.ts.map +1 -0
- package/dist/pie/overrides.js +146 -0
- package/dist/pie/overrides.js.map +1 -0
- package/dist/pie/player-initializer.d.ts +55 -0
- package/dist/pie/player-initializer.d.ts.map +1 -0
- package/dist/pie/player-initializer.js +123 -0
- package/dist/pie/player-initializer.js.map +1 -0
- package/dist/pie/registry.d.ts +11 -0
- package/dist/pie/registry.d.ts.map +1 -0
- package/dist/pie/registry.js +21 -0
- package/dist/pie/registry.js.map +1 -0
- package/dist/pie/resource-monitor.d.ts +208 -0
- package/dist/pie/resource-monitor.d.ts.map +1 -0
- package/dist/pie/resource-monitor.js +969 -0
- package/dist/pie/resource-monitor.js.map +1 -0
- package/dist/pie/scoring.d.ts +17 -0
- package/dist/pie/scoring.d.ts.map +1 -0
- package/dist/pie/scoring.js +84 -0
- package/dist/pie/scoring.js.map +1 -0
- package/dist/pie/types.d.ts +136 -0
- package/dist/pie/types.d.ts.map +1 -0
- package/dist/pie/types.js +52 -0
- package/dist/pie/types.js.map +1 -0
- package/dist/pie/updates.d.ts +20 -0
- package/dist/pie/updates.d.ts.map +1 -0
- package/dist/pie/updates.js +175 -0
- package/dist/pie/updates.js.map +1 -0
- package/dist/pie/use-resource-monitor.svelte.d.ts +56 -0
- package/dist/pie/use-resource-monitor.svelte.d.ts.map +1 -0
- package/dist/pie/use-resource-monitor.svelte.js +117 -0
- package/dist/pie/use-resource-monitor.svelte.js.map +1 -0
- package/dist/pie/utils.d.ts +44 -0
- package/dist/pie/utils.d.ts.map +1 -0
- package/dist/pie/utils.js +74 -0
- package/dist/pie/utils.js.map +1 -0
- package/dist/types/custom-elements.d.ts +183 -0
- package/dist/types/custom-elements.d.ts.map +1 -0
- package/dist/types/custom-elements.js +8 -0
- package/dist/types/custom-elements.js.map +1 -0
- package/dist/types/index.d.ts +761 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +120 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/search.d.ts +105 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +12 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/transform.d.ts +48 -0
- package/dist/types/transform.d.ts.map +1 -0
- package/dist/types/transform.js +21 -0
- package/dist/types/transform.js.map +1 -0
- package/dist/ui/focus-trap.d.ts +10 -0
- package/dist/ui/focus-trap.d.ts.map +1 -0
- package/dist/ui/focus-trap.js +30 -0
- package/dist/ui/focus-trap.js.map +1 -0
- package/dist/ui/safe-storage.d.ts +3 -0
- package/dist/ui/safe-storage.d.ts.map +1 -0
- package/dist/ui/safe-storage.js +21 -0
- package/dist/ui/safe-storage.js.map +1 -0
- package/package.json +118 -0
- package/src/components/PieItemPlayer.svelte +604 -0
- package/src/components/PiePreviewLayout.svelte +144 -0
- package/src/components/PiePreviewToggle.svelte +110 -0
- package/src/components/PieSpinner.svelte +85 -0
- package/src/components/ToolSettingsButton.svelte +31 -0
- package/src/components/ToolSettingsPanel.svelte +90 -0
- package/src/components/index.ts +6 -0
- package/src/i18n/README.md +223 -0
- package/src/i18n/index.ts +26 -0
- package/src/i18n/loader.ts +156 -0
- package/src/i18n/scripts/check-coverage.ts +345 -0
- package/src/i18n/scripts/scan-hardcoded.ts +342 -0
- package/src/i18n/simple-i18n.ts +236 -0
- package/src/i18n/translations/ar/common.json +36 -0
- package/src/i18n/translations/ar/toolkit.json +48 -0
- package/src/i18n/translations/ar/tools.json +109 -0
- package/src/i18n/translations/en/common.json +36 -0
- package/src/i18n/translations/en/toolkit.json +48 -0
- package/src/i18n/translations/en/tools.json +109 -0
- package/src/i18n/translations/es/common.json +36 -0
- package/src/i18n/translations/es/toolkit.json +48 -0
- package/src/i18n/translations/es/tools.json +109 -0
- package/src/i18n/translations/zh/common.json +36 -0
- package/src/i18n/translations/zh/toolkit.json +48 -0
- package/src/i18n/translations/zh/tools.json +109 -0
- package/src/i18n/types.ts +66 -0
- package/src/i18n/use-i18n-standalone.svelte.ts +184 -0
- package/src/i18n/use-i18n.svelte.ts +163 -0
|
@@ -0,0 +1,761 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This contains copies of the data types we use in PIEOneer. These types, unlike
|
|
3
|
+
* the ones in the datastore package, should not have any dependencies, and might in some
|
|
4
|
+
* cases be more shallow than their originals. The main reason for these is that they should
|
|
5
|
+
* be able to be used in front-end code (as well as the PIEOneer backend code).
|
|
6
|
+
*
|
|
7
|
+
* INCLUDING REFERENCES TO THE DATASTORE PACKAGE INSTEAD WILL MAKE PIEONEER THROW 500
|
|
8
|
+
* EVERYWHERE WITHOUT ANY FURTHER EXPLANATION
|
|
9
|
+
*/
|
|
10
|
+
export interface BaseEntity {
|
|
11
|
+
id?: string;
|
|
12
|
+
createdAt?: Date;
|
|
13
|
+
updatedAt?: Date;
|
|
14
|
+
}
|
|
15
|
+
export interface CollectionEntity extends BaseEntity {
|
|
16
|
+
name: string;
|
|
17
|
+
organization: string | OrganizationEntity;
|
|
18
|
+
}
|
|
19
|
+
export interface OrganizationEntity extends BaseEntity {
|
|
20
|
+
name: string;
|
|
21
|
+
defaultCollection?: string | CollectionEntity;
|
|
22
|
+
}
|
|
23
|
+
export interface UserEntity extends BaseEntity {
|
|
24
|
+
email: string;
|
|
25
|
+
name?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ClientEntity extends BaseEntity {
|
|
28
|
+
name: string;
|
|
29
|
+
secret: string;
|
|
30
|
+
user: string | UserEntity;
|
|
31
|
+
organization: string | OrganizationEntity;
|
|
32
|
+
}
|
|
33
|
+
export interface AssignmentEntity extends BaseEntity {
|
|
34
|
+
organization: string | OrganizationEntity;
|
|
35
|
+
}
|
|
36
|
+
export interface SessionEntity extends BaseEntity {
|
|
37
|
+
item: ItemEntity;
|
|
38
|
+
assignment?: string | AssignmentEntity;
|
|
39
|
+
organization?: string | OrganizationEntity;
|
|
40
|
+
}
|
|
41
|
+
export declare enum SessionEventType {
|
|
42
|
+
SAVE = "save",
|
|
43
|
+
MODEL = "model",
|
|
44
|
+
SCORE = "score",
|
|
45
|
+
MANUAL_SCORE = "manual-score"
|
|
46
|
+
}
|
|
47
|
+
export declare enum ScoreType {
|
|
48
|
+
AUTO = "auto",
|
|
49
|
+
MANUAL = "manual"
|
|
50
|
+
}
|
|
51
|
+
export interface SessionScore {
|
|
52
|
+
points?: number;
|
|
53
|
+
max?: number;
|
|
54
|
+
type?: ScoreType;
|
|
55
|
+
partialScoring?: boolean;
|
|
56
|
+
message?: string;
|
|
57
|
+
errors?: string[];
|
|
58
|
+
}
|
|
59
|
+
export interface SessionAutoScore extends SessionScore {
|
|
60
|
+
elements?: any[];
|
|
61
|
+
extraProps?: any;
|
|
62
|
+
}
|
|
63
|
+
export interface SessionManualScore extends SessionScore {
|
|
64
|
+
}
|
|
65
|
+
export interface SessionEventEntity extends BaseEntity {
|
|
66
|
+
session: string | SessionEntity;
|
|
67
|
+
type?: SessionEventType;
|
|
68
|
+
saveEventId?: string;
|
|
69
|
+
score?: number;
|
|
70
|
+
}
|
|
71
|
+
export declare enum ModeType {
|
|
72
|
+
GATHER = "gather",
|
|
73
|
+
VIEW = "view",
|
|
74
|
+
EVALUATE = "evaluate"
|
|
75
|
+
}
|
|
76
|
+
export interface FlatSession {
|
|
77
|
+
id: string;
|
|
78
|
+
assignment: AssignmentEntity;
|
|
79
|
+
item: string;
|
|
80
|
+
data: any[];
|
|
81
|
+
createdAt: Date;
|
|
82
|
+
updatedAt: Date;
|
|
83
|
+
mode: ModeType;
|
|
84
|
+
autoScore: SessionAutoScore;
|
|
85
|
+
manualScore: SessionManualScore;
|
|
86
|
+
events: SessionEventEntity[];
|
|
87
|
+
}
|
|
88
|
+
export interface SemVerPrerelease {
|
|
89
|
+
tag: string;
|
|
90
|
+
version: number;
|
|
91
|
+
}
|
|
92
|
+
export interface SemVer {
|
|
93
|
+
major: number;
|
|
94
|
+
minor: number;
|
|
95
|
+
patch: number;
|
|
96
|
+
prerelease?: SemVerPrerelease;
|
|
97
|
+
}
|
|
98
|
+
export interface VersionEntity extends BaseEntity {
|
|
99
|
+
baseId: string;
|
|
100
|
+
signature?: string;
|
|
101
|
+
version: SemVer;
|
|
102
|
+
}
|
|
103
|
+
export interface SearchMetaData {
|
|
104
|
+
[key: string]: any;
|
|
105
|
+
}
|
|
106
|
+
export interface SearchMetaDataEntity extends BaseEntity {
|
|
107
|
+
searchMetaData?: SearchMetaData;
|
|
108
|
+
}
|
|
109
|
+
export interface ConfigElements {
|
|
110
|
+
[key: string]: string;
|
|
111
|
+
}
|
|
112
|
+
export interface PieModel {
|
|
113
|
+
id: string;
|
|
114
|
+
element: string;
|
|
115
|
+
[key: string]: any;
|
|
116
|
+
}
|
|
117
|
+
export interface ConfigEntity {
|
|
118
|
+
id?: string;
|
|
119
|
+
markup: string;
|
|
120
|
+
elements: ConfigElements;
|
|
121
|
+
models: PieModel[];
|
|
122
|
+
configuration?: Record<string, any>;
|
|
123
|
+
/**
|
|
124
|
+
* QTI 3.0: Extracted accessibility catalogs from embedded SSML.
|
|
125
|
+
* Automatically generated by SSMLExtractor when <speak> tags are found in content.
|
|
126
|
+
*/
|
|
127
|
+
extractedCatalogs?: AccessibilityCatalog[];
|
|
128
|
+
[key: string]: any;
|
|
129
|
+
}
|
|
130
|
+
export interface ConfigContainerEntity extends BaseEntity {
|
|
131
|
+
config: ConfigEntity;
|
|
132
|
+
}
|
|
133
|
+
export interface PassageEntity extends VersionEntity, ConfigContainerEntity, SearchMetaDataEntity {
|
|
134
|
+
name: string;
|
|
135
|
+
retired?: boolean;
|
|
136
|
+
published?: boolean;
|
|
137
|
+
highlights?: Record<string, string[]>;
|
|
138
|
+
}
|
|
139
|
+
export interface ItemEntity extends VersionEntity, ConfigContainerEntity, SearchMetaDataEntity {
|
|
140
|
+
name?: string;
|
|
141
|
+
passage?: string | PassageEntity;
|
|
142
|
+
retired?: boolean;
|
|
143
|
+
published?: boolean;
|
|
144
|
+
configuration?: any;
|
|
145
|
+
highlights?: Record<string, string[]>;
|
|
146
|
+
}
|
|
147
|
+
export interface AssignmentSessionData {
|
|
148
|
+
assignment: AssignmentEntity;
|
|
149
|
+
sessions: FlatSession[];
|
|
150
|
+
items: ItemEntity[];
|
|
151
|
+
error?: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Metadata specifically for interpretation by clients, typically containing
|
|
155
|
+
* options that are relevant for the user interface. This is not indexed for search.
|
|
156
|
+
*/
|
|
157
|
+
export interface SettingsMetaData {
|
|
158
|
+
[key: string]: any;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Objects that contain metadata in the settings property, which is NOT indexed for search
|
|
162
|
+
* but typically only relevant for particular client cases.
|
|
163
|
+
*/
|
|
164
|
+
export interface SettingsMetaDataEntity {
|
|
165
|
+
settings?: SettingsMetaData;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* A reference to an item with optionally a title, settings and metadata.
|
|
169
|
+
*/
|
|
170
|
+
export interface QuestionEntity extends SearchMetaDataEntity, SettingsMetaDataEntity {
|
|
171
|
+
id?: string;
|
|
172
|
+
title?: string;
|
|
173
|
+
itemVId: string;
|
|
174
|
+
item?: ItemEntity;
|
|
175
|
+
}
|
|
176
|
+
export interface RubricBlock {
|
|
177
|
+
identifier?: string;
|
|
178
|
+
view: "author" | "candidate" | "proctor" | "scorer" | "testConstructor" | "tutor";
|
|
179
|
+
class?: "stimulus" | "instructions" | "rubric";
|
|
180
|
+
/**
|
|
181
|
+
* Versioned ID reference to the passage (when class="stimulus").
|
|
182
|
+
*/
|
|
183
|
+
passageVId?: string;
|
|
184
|
+
/**
|
|
185
|
+
* Embedded passage entity (PIE-native approach).
|
|
186
|
+
* The passage is rendered using the same ItemPlayer infrastructure as items.
|
|
187
|
+
* Contains a PIE config with markup, elements, and models.
|
|
188
|
+
*/
|
|
189
|
+
passage?: PassageEntity;
|
|
190
|
+
/**
|
|
191
|
+
* Simple HTML content string (for basic use cases).
|
|
192
|
+
* Alternative to the passage entity approach.
|
|
193
|
+
*/
|
|
194
|
+
content?: string;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* QTI-aligned assessment item reference (maps to qti-assessment-item-ref).
|
|
198
|
+
* References an item within a section. The item property contains the resolved
|
|
199
|
+
* ItemEntity with its PIE config.
|
|
200
|
+
*/
|
|
201
|
+
export interface AssessmentItemRef extends SearchMetaDataEntity {
|
|
202
|
+
id?: string;
|
|
203
|
+
identifier: string;
|
|
204
|
+
title?: string;
|
|
205
|
+
required?: boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Item virtual ID - stable identifier for the item across versions
|
|
208
|
+
*/
|
|
209
|
+
itemVId?: string;
|
|
210
|
+
/**
|
|
211
|
+
* Resolved item entity with PIE config.
|
|
212
|
+
* This is populated by the client before passing to the player.
|
|
213
|
+
*/
|
|
214
|
+
item?: ItemEntity;
|
|
215
|
+
/** Item-level settings for tool requirements and customization */
|
|
216
|
+
settings?: ItemSettings;
|
|
217
|
+
}
|
|
218
|
+
export interface QtiAssessmentSection extends SearchMetaDataEntity, SettingsMetaDataEntity {
|
|
219
|
+
id?: string;
|
|
220
|
+
identifier: string;
|
|
221
|
+
title?: string;
|
|
222
|
+
visible?: boolean;
|
|
223
|
+
required?: boolean;
|
|
224
|
+
keepTogether?: boolean;
|
|
225
|
+
sections?: QtiAssessmentSection[];
|
|
226
|
+
/**
|
|
227
|
+
* QTI 3.0: Assessment item references (items in this section).
|
|
228
|
+
* Maps to qti-assessment-item-ref in QTI 3.0 XML.
|
|
229
|
+
*/
|
|
230
|
+
assessmentItemRefs?: AssessmentItemRef[];
|
|
231
|
+
rubricBlocks?: RubricBlock[];
|
|
232
|
+
sort?: string;
|
|
233
|
+
}
|
|
234
|
+
export interface TestPart {
|
|
235
|
+
id?: string;
|
|
236
|
+
identifier: string;
|
|
237
|
+
navigationMode: "linear" | "nonlinear";
|
|
238
|
+
submissionMode: "individual" | "simultaneous";
|
|
239
|
+
sections: QtiAssessmentSection[];
|
|
240
|
+
}
|
|
241
|
+
export interface ContextDeclaration {
|
|
242
|
+
identifier: string;
|
|
243
|
+
baseType: "boolean" | "integer" | "float" | "string" | "identifier" | "point" | "pair" | "directedPair" | "duration" | "file" | "uri";
|
|
244
|
+
cardinality: "single" | "multiple" | "ordered" | "record";
|
|
245
|
+
defaultValue?: any;
|
|
246
|
+
}
|
|
247
|
+
export interface CatalogCard {
|
|
248
|
+
catalog: string;
|
|
249
|
+
language?: string;
|
|
250
|
+
content: string;
|
|
251
|
+
}
|
|
252
|
+
export interface AccessibilityCatalog {
|
|
253
|
+
identifier: string;
|
|
254
|
+
cards: CatalogCard[];
|
|
255
|
+
}
|
|
256
|
+
export interface PersonalNeedsProfile {
|
|
257
|
+
supports: string[];
|
|
258
|
+
prohibitedSupports?: string[];
|
|
259
|
+
activateAtInit?: string[];
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* QTI 3.0: Reference to a shared stimulus (passage).
|
|
263
|
+
* Maps to qti-assessment-stimulus-ref element.
|
|
264
|
+
*
|
|
265
|
+
* NOTE: Not currently used. We embed PassageEntity directly in RubricBlock instead.
|
|
266
|
+
* Kept for potential future use if we need to support external stimulus references.
|
|
267
|
+
*/
|
|
268
|
+
/**
|
|
269
|
+
* Reference to question and sorting info within a section.
|
|
270
|
+
*/
|
|
271
|
+
export interface SectionQuestionRef {
|
|
272
|
+
questionId: string;
|
|
273
|
+
sort?: string;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Questions can optionally be grouped in sections (legacy).
|
|
277
|
+
*/
|
|
278
|
+
export interface AssessmentSection extends SearchMetaDataEntity, SettingsMetaDataEntity {
|
|
279
|
+
id?: string;
|
|
280
|
+
title?: string;
|
|
281
|
+
sort?: string;
|
|
282
|
+
questions: SectionQuestionRef[];
|
|
283
|
+
}
|
|
284
|
+
export interface AssessmentEntity extends BaseEntity, SearchMetaDataEntity {
|
|
285
|
+
name?: string;
|
|
286
|
+
title?: string;
|
|
287
|
+
identifier?: string;
|
|
288
|
+
description?: string;
|
|
289
|
+
/** Enhanced structured settings for assessment configuration */
|
|
290
|
+
settings?: AssessmentSettings;
|
|
291
|
+
/** QTI version - '3.0' for QTI 3.0 format */
|
|
292
|
+
qtiVersion?: "3.0";
|
|
293
|
+
/** QTI 3.0: Context declarations (global shared variables) */
|
|
294
|
+
contextDeclarations?: ContextDeclaration[];
|
|
295
|
+
/** QTI 3.0: Integrated APIP accessibility catalogs */
|
|
296
|
+
accessibilityCatalogs?: AccessibilityCatalog[];
|
|
297
|
+
/** QTI 3.0: Personal Needs Profile (PNP 3.0) */
|
|
298
|
+
personalNeedsProfile?: PersonalNeedsProfile;
|
|
299
|
+
/** Legacy: Flat questions array */
|
|
300
|
+
questions?: QuestionEntity[];
|
|
301
|
+
/** Legacy: Simple sections */
|
|
302
|
+
sections?: AssessmentSection[];
|
|
303
|
+
/**
|
|
304
|
+
* QTI 3.0: testParts structure (authoritative for QTI format).
|
|
305
|
+
*/
|
|
306
|
+
testParts?: TestPart[];
|
|
307
|
+
/** QTI 3.0: Stimulus material references (Phase 3 - placeholder) */
|
|
308
|
+
stimulusRefs?: any[];
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Enhanced settings structure for assessment configuration.
|
|
312
|
+
* Provides structured fields for district policies, test administration,
|
|
313
|
+
* tool configurations, and theme settings while remaining extensible.
|
|
314
|
+
*/
|
|
315
|
+
export interface AssessmentSettings {
|
|
316
|
+
/** District/organization policies */
|
|
317
|
+
districtPolicy?: {
|
|
318
|
+
blockedTools?: string[];
|
|
319
|
+
requiredTools?: string[];
|
|
320
|
+
policies?: Record<string, any>;
|
|
321
|
+
};
|
|
322
|
+
/** Test administration configuration */
|
|
323
|
+
testAdministration?: {
|
|
324
|
+
mode?: "practice" | "test" | "benchmark";
|
|
325
|
+
toolOverrides?: Record<string, boolean>;
|
|
326
|
+
startDate?: string;
|
|
327
|
+
endDate?: string;
|
|
328
|
+
};
|
|
329
|
+
/** Tool-specific provider configurations */
|
|
330
|
+
toolConfigs?: {
|
|
331
|
+
calculator?: {
|
|
332
|
+
provider?: "desmos" | "ti" | "mathjs";
|
|
333
|
+
type?: "basic" | "scientific" | "graphing" | "ti-84" | "ti-108";
|
|
334
|
+
settings?: Record<string, any>;
|
|
335
|
+
};
|
|
336
|
+
/**
|
|
337
|
+
* Text-to-speech configuration.
|
|
338
|
+
*
|
|
339
|
+
* Standard parameters (voice, rate, pitch) are portable across providers
|
|
340
|
+
* and follow W3C Web Speech API specifications.
|
|
341
|
+
*
|
|
342
|
+
* Provider-specific extensions should be placed in providerOptions.
|
|
343
|
+
*
|
|
344
|
+
* @see https://w3c.github.io/speech-api/
|
|
345
|
+
*/
|
|
346
|
+
textToSpeech?: {
|
|
347
|
+
/**
|
|
348
|
+
* TTS provider
|
|
349
|
+
*
|
|
350
|
+
* @standard "browser" uses W3C Web Speech API
|
|
351
|
+
* @extension "polly" and "custom" are provider-specific
|
|
352
|
+
*/
|
|
353
|
+
provider?: "browser" | "polly" | "custom";
|
|
354
|
+
/**
|
|
355
|
+
* Voice identifier (provider-specific names)
|
|
356
|
+
*
|
|
357
|
+
* @standard W3C Web Speech API (concept)
|
|
358
|
+
* @example "Joanna" (Polly), "en-US-Standard-A" (Google), browser voices
|
|
359
|
+
*/
|
|
360
|
+
voice?: string;
|
|
361
|
+
/**
|
|
362
|
+
* Speech rate (speed multiplier)
|
|
363
|
+
*
|
|
364
|
+
* @standard W3C Web Speech API
|
|
365
|
+
* @range 0.25 to 4.0
|
|
366
|
+
* @default 1.0
|
|
367
|
+
*/
|
|
368
|
+
rate?: number;
|
|
369
|
+
/**
|
|
370
|
+
* Pitch adjustment
|
|
371
|
+
*
|
|
372
|
+
* @standard W3C Web Speech API
|
|
373
|
+
* @range 0 to 2 (as multiplier)
|
|
374
|
+
* @default 1.0
|
|
375
|
+
*/
|
|
376
|
+
pitch?: number;
|
|
377
|
+
/**
|
|
378
|
+
* Provider-specific options (extensions)
|
|
379
|
+
*
|
|
380
|
+
* @extension Not portable across providers
|
|
381
|
+
* @example For AWS Polly: { engine: "neural", region: "us-east-1" }
|
|
382
|
+
* @example For Google Cloud: { audioEncoding: "MP3", effectsProfileId: ["headphone-class-device"] }
|
|
383
|
+
*/
|
|
384
|
+
providerOptions?: Record<string, any>;
|
|
385
|
+
};
|
|
386
|
+
[toolId: string]: any;
|
|
387
|
+
};
|
|
388
|
+
/** Theme configuration (not in PNP) */
|
|
389
|
+
themeConfig?: {
|
|
390
|
+
colorScheme?: "default" | "high-contrast" | "dark";
|
|
391
|
+
fontSize?: number;
|
|
392
|
+
fontFamily?: string;
|
|
393
|
+
lineHeight?: number;
|
|
394
|
+
reducedMotion?: boolean;
|
|
395
|
+
};
|
|
396
|
+
/** Product-specific extensions */
|
|
397
|
+
[key: string]: any;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Item-level settings for tool requirements.
|
|
401
|
+
* Used in AssessmentItemRef.settings to specify item-specific tool needs.
|
|
402
|
+
*/
|
|
403
|
+
export interface ItemSettings {
|
|
404
|
+
requiredTools?: string[];
|
|
405
|
+
restrictedTools?: string[];
|
|
406
|
+
toolParameters?: Record<string, any>;
|
|
407
|
+
[key: string]: any;
|
|
408
|
+
}
|
|
409
|
+
export interface SanctionedVersionEntity extends BaseEntity {
|
|
410
|
+
organization?: string | OrganizationEntity;
|
|
411
|
+
match: string;
|
|
412
|
+
pie: string;
|
|
413
|
+
version: string;
|
|
414
|
+
}
|
|
415
|
+
export declare enum SanctionedVersionChangeStatus {
|
|
416
|
+
PENDING = "pending",
|
|
417
|
+
IN_PROGRESS = "in_progress",
|
|
418
|
+
COMPLETED = "completed",
|
|
419
|
+
FAILED = "failed"
|
|
420
|
+
}
|
|
421
|
+
export interface SanctionedVersionChangeRequest {
|
|
422
|
+
pie: string;
|
|
423
|
+
match: string;
|
|
424
|
+
version: string;
|
|
425
|
+
}
|
|
426
|
+
export interface SanctionedVersionChangeEntity extends BaseEntity {
|
|
427
|
+
organization?: string | OrganizationEntity;
|
|
428
|
+
createdBy: string | UserEntity;
|
|
429
|
+
status: SanctionedVersionChangeStatus;
|
|
430
|
+
requestedChanges: SanctionedVersionChangeRequest[];
|
|
431
|
+
beforeState: SanctionedVersionEntity[];
|
|
432
|
+
summary?: string;
|
|
433
|
+
jobId: string;
|
|
434
|
+
}
|
|
435
|
+
export type PlayerMode = "gather" | "view" | "evaluate" | "browse" | "author";
|
|
436
|
+
export type PlayerRole = "student" | "instructor";
|
|
437
|
+
export interface Env {
|
|
438
|
+
mode: PlayerMode;
|
|
439
|
+
role: PlayerRole;
|
|
440
|
+
partialScoring?: boolean;
|
|
441
|
+
}
|
|
442
|
+
export interface OutcomeResponse {
|
|
443
|
+
id: string;
|
|
444
|
+
element: string;
|
|
445
|
+
score?: number;
|
|
446
|
+
empty?: boolean;
|
|
447
|
+
completed?: boolean;
|
|
448
|
+
[key: string]: any;
|
|
449
|
+
}
|
|
450
|
+
export interface PieController {
|
|
451
|
+
model(model: PieModel, sessionData: any[], env?: any): Promise<PieModel>;
|
|
452
|
+
outcome(sessionData: any[], env?: any): Promise<OutcomeResponse>;
|
|
453
|
+
score: (config: object, session: object, env: object) => Promise<object>;
|
|
454
|
+
createCorrectResponseSession: (config: object, env: object) => Promise<object>;
|
|
455
|
+
validate: (model: object, config: object) => any;
|
|
456
|
+
}
|
|
457
|
+
export interface PieItemElement {
|
|
458
|
+
[elementName: string]: string;
|
|
459
|
+
}
|
|
460
|
+
export type BundleInfo = {
|
|
461
|
+
url: string;
|
|
462
|
+
hash: string;
|
|
463
|
+
};
|
|
464
|
+
interface PieDefaultModel {
|
|
465
|
+
[x: string]: any;
|
|
466
|
+
}
|
|
467
|
+
interface PieContent {
|
|
468
|
+
id: string;
|
|
469
|
+
/**
|
|
470
|
+
* Set of elements to include in the pie, provided in the format `{'element-name': 'mpm-package-name'}`
|
|
471
|
+
*/
|
|
472
|
+
elements: PieItemElement;
|
|
473
|
+
/** Models for each PIE included in the item */
|
|
474
|
+
models: PieModel[];
|
|
475
|
+
markup: string;
|
|
476
|
+
bundle?: BundleInfo;
|
|
477
|
+
defaultExtraModels?: {
|
|
478
|
+
[key: string]: PieDefaultModel;
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
interface AdvancedItemConfig {
|
|
482
|
+
id: string;
|
|
483
|
+
pie: PieContent;
|
|
484
|
+
passage?: PieContent;
|
|
485
|
+
instructorResources?: [PieContent];
|
|
486
|
+
defaultExtraModels?: {
|
|
487
|
+
[key: string]: PieDefaultModel;
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
export type ItemConfig = PieContent | AdvancedItemConfig;
|
|
491
|
+
/**
|
|
492
|
+
* During the loading of elements from PIE bundles, we do a trick where we make
|
|
493
|
+
* editor components available as web components by appending this to the element name.
|
|
494
|
+
*/
|
|
495
|
+
export declare const editorPostFix = "-pie-editor--";
|
|
496
|
+
export type ModelUpdatedDetail = {
|
|
497
|
+
update: any;
|
|
498
|
+
reset: boolean;
|
|
499
|
+
};
|
|
500
|
+
export declare class ModelUpdatedEvent extends CustomEvent<ModelUpdatedDetail> {
|
|
501
|
+
readonly update: any;
|
|
502
|
+
readonly reset: boolean;
|
|
503
|
+
static TYPE: string;
|
|
504
|
+
constructor(update: any, reset?: boolean);
|
|
505
|
+
}
|
|
506
|
+
export type DeleteDone = (e?: Error) => void;
|
|
507
|
+
export type DeleteImageDetail = {
|
|
508
|
+
src: string;
|
|
509
|
+
done: DeleteDone;
|
|
510
|
+
};
|
|
511
|
+
export declare class DeleteImageEvent extends CustomEvent<DeleteImageDetail> {
|
|
512
|
+
readonly src: string;
|
|
513
|
+
readonly done: DeleteDone;
|
|
514
|
+
static TYPE: string;
|
|
515
|
+
constructor(src: string, done: DeleteDone);
|
|
516
|
+
}
|
|
517
|
+
export interface ImageHandler {
|
|
518
|
+
isPasted?: boolean;
|
|
519
|
+
cancel: () => void;
|
|
520
|
+
done: (err?: Error, src?: string) => void;
|
|
521
|
+
fileChosen: (file: File) => void;
|
|
522
|
+
progress: (percent: number, bytes: number, total: number) => void;
|
|
523
|
+
}
|
|
524
|
+
export declare class InsertImageEvent extends CustomEvent<ImageHandler> {
|
|
525
|
+
readonly handler: ImageHandler;
|
|
526
|
+
static TYPE: string;
|
|
527
|
+
constructor(handler: ImageHandler);
|
|
528
|
+
}
|
|
529
|
+
export type DeleteSoundDetail = {
|
|
530
|
+
src: string;
|
|
531
|
+
done: DeleteDone;
|
|
532
|
+
};
|
|
533
|
+
export declare class DeleteSoundEvent extends CustomEvent<DeleteSoundDetail> {
|
|
534
|
+
readonly src: string;
|
|
535
|
+
readonly done: DeleteDone;
|
|
536
|
+
static TYPE: string;
|
|
537
|
+
constructor(src: string, done: DeleteDone);
|
|
538
|
+
}
|
|
539
|
+
export interface SoundHandler {
|
|
540
|
+
cancel: () => void;
|
|
541
|
+
done: (err?: Error, src?: string) => void;
|
|
542
|
+
fileChosen: File;
|
|
543
|
+
progress: (percent: number, bytes: number, total: number) => void;
|
|
544
|
+
}
|
|
545
|
+
export declare class InsertSoundEvent extends CustomEvent<SoundHandler> {
|
|
546
|
+
readonly handler: SoundHandler;
|
|
547
|
+
static TYPE: string;
|
|
548
|
+
constructor(handler: SoundHandler);
|
|
549
|
+
}
|
|
550
|
+
export declare const isPassageEntity: (passage: string | PassageEntity | undefined) => passage is PassageEntity;
|
|
551
|
+
export declare function isPrerelease(version: any): version is SemVer;
|
|
552
|
+
export declare function formatVersion(semVer: SemVer): string;
|
|
553
|
+
export interface PieElement extends HTMLElement {
|
|
554
|
+
model: PieModel;
|
|
555
|
+
configuration: any;
|
|
556
|
+
session: any[];
|
|
557
|
+
}
|
|
558
|
+
export type SessionChangedDetail = {
|
|
559
|
+
complete: boolean;
|
|
560
|
+
component: any;
|
|
561
|
+
};
|
|
562
|
+
export declare class SessionChangedEvent extends CustomEvent<SessionChangedDetail> {
|
|
563
|
+
readonly component: string;
|
|
564
|
+
readonly complete: boolean;
|
|
565
|
+
static TYPE: string;
|
|
566
|
+
constructor(component: string, complete: boolean);
|
|
567
|
+
}
|
|
568
|
+
interface ItemCfg extends ConfigEntity {
|
|
569
|
+
}
|
|
570
|
+
interface ItemWPassageCfg {
|
|
571
|
+
pie: ItemCfg;
|
|
572
|
+
passage: ConfigEntity;
|
|
573
|
+
}
|
|
574
|
+
export interface LoadResponse {
|
|
575
|
+
js: {
|
|
576
|
+
view: string[];
|
|
577
|
+
};
|
|
578
|
+
item: ItemCfg | ItemWPassageCfg;
|
|
579
|
+
session: {
|
|
580
|
+
id: string;
|
|
581
|
+
data: any[];
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
export interface Tracker {
|
|
585
|
+
track(message: string, ...args: any[]): void;
|
|
586
|
+
start(label: string): void;
|
|
587
|
+
end(label: string, metadata?: {
|
|
588
|
+
[key: string]: any;
|
|
589
|
+
}): void;
|
|
590
|
+
}
|
|
591
|
+
/**
|
|
592
|
+
* Interface for storing tracker messages with timestamps
|
|
593
|
+
*/
|
|
594
|
+
/**
|
|
595
|
+
* Interface for storing tracker messages with timestamps
|
|
596
|
+
*/
|
|
597
|
+
export interface TrackerMessage {
|
|
598
|
+
timestamp: Date;
|
|
599
|
+
message: string;
|
|
600
|
+
args: any[];
|
|
601
|
+
formattedMessage: string;
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Enhanced tracker that stores messages with timestamps
|
|
605
|
+
*/
|
|
606
|
+
export interface EnhancedTracker extends Tracker {
|
|
607
|
+
/**
|
|
608
|
+
* Get all raw tracker messages ordered by timestamp (ascending)
|
|
609
|
+
*/
|
|
610
|
+
getMessages(): TrackerMessage[];
|
|
611
|
+
/**
|
|
612
|
+
* Get a formatted multi-line representation of all tracker messages
|
|
613
|
+
*/
|
|
614
|
+
getFormattedMessages(): string;
|
|
615
|
+
}
|
|
616
|
+
export interface ScoreResponse {
|
|
617
|
+
session: FlatSession;
|
|
618
|
+
score: SessionScore;
|
|
619
|
+
empty?: boolean;
|
|
620
|
+
[key: string]: any;
|
|
621
|
+
}
|
|
622
|
+
export interface VersionDiff {
|
|
623
|
+
version: SemVer;
|
|
624
|
+
previousVersion: SemVer | null;
|
|
625
|
+
createdAt: Date;
|
|
626
|
+
changes: {
|
|
627
|
+
added: Record<string, any>;
|
|
628
|
+
removed: Record<string, any>;
|
|
629
|
+
modified: Record<string, {
|
|
630
|
+
previous: any;
|
|
631
|
+
current: any;
|
|
632
|
+
}>;
|
|
633
|
+
};
|
|
634
|
+
changeCount: number;
|
|
635
|
+
}
|
|
636
|
+
export interface RoleToOrganizationsMapping {
|
|
637
|
+
id?: string;
|
|
638
|
+
role: string;
|
|
639
|
+
organizations: OrganizationEntity[] | string[];
|
|
640
|
+
createdAt?: Date;
|
|
641
|
+
updatedAt?: Date;
|
|
642
|
+
}
|
|
643
|
+
export declare enum StandardType {
|
|
644
|
+
ROOT = 0,
|
|
645
|
+
SUBJECT = 1,
|
|
646
|
+
LEVEL = 2,
|
|
647
|
+
STANDARD = 3
|
|
648
|
+
}
|
|
649
|
+
export interface HierarchyInfo {
|
|
650
|
+
root?: {
|
|
651
|
+
id: string;
|
|
652
|
+
guid: string;
|
|
653
|
+
title: string;
|
|
654
|
+
};
|
|
655
|
+
subject?: {
|
|
656
|
+
id: string;
|
|
657
|
+
guid: string;
|
|
658
|
+
title: string;
|
|
659
|
+
};
|
|
660
|
+
level?: {
|
|
661
|
+
id: string;
|
|
662
|
+
guid: string;
|
|
663
|
+
title: string;
|
|
664
|
+
grades: number[];
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
export interface CmsLearningStandardEntity extends BaseEntity {
|
|
668
|
+
guid: string;
|
|
669
|
+
abbr?: string;
|
|
670
|
+
type: StandardType;
|
|
671
|
+
parentId?: string;
|
|
672
|
+
parentGuid?: string;
|
|
673
|
+
path?: string;
|
|
674
|
+
depth: number;
|
|
675
|
+
ancestors: string[];
|
|
676
|
+
hierarchy?: HierarchyInfo;
|
|
677
|
+
title?: string;
|
|
678
|
+
description?: string;
|
|
679
|
+
sequence?: string;
|
|
680
|
+
orderIndex?: number;
|
|
681
|
+
subjectArea?: string;
|
|
682
|
+
subjectName?: string;
|
|
683
|
+
category?: string;
|
|
684
|
+
abType?: string;
|
|
685
|
+
abLabel?: string;
|
|
686
|
+
setName?: string;
|
|
687
|
+
publication?: string;
|
|
688
|
+
adopted?: string;
|
|
689
|
+
grades: number[];
|
|
690
|
+
gradeNames?: string[];
|
|
691
|
+
properties: Record<string, string>;
|
|
692
|
+
status?: "active" | "retired" | "deprecated";
|
|
693
|
+
lastModifiedAt?: Date;
|
|
694
|
+
replacesGuid?: string;
|
|
695
|
+
replacedByGuid?: string;
|
|
696
|
+
descriptionHtml?: string;
|
|
697
|
+
lastSyncedAt?: Date;
|
|
698
|
+
}
|
|
699
|
+
export interface ItemBankConfig {
|
|
700
|
+
collectionId: string;
|
|
701
|
+
subject?: string;
|
|
702
|
+
gradeLevels?: number[];
|
|
703
|
+
orderIndex: number;
|
|
704
|
+
}
|
|
705
|
+
export interface DOKDistribution {
|
|
706
|
+
dok1?: number;
|
|
707
|
+
dok2?: number;
|
|
708
|
+
dok3?: number;
|
|
709
|
+
dok4?: number;
|
|
710
|
+
}
|
|
711
|
+
export interface AssessmentGoal {
|
|
712
|
+
dokDistribution?: DOKDistribution;
|
|
713
|
+
constructedResponseCount?: number;
|
|
714
|
+
passageGoals?: string;
|
|
715
|
+
totalItemCount?: {
|
|
716
|
+
target?: number;
|
|
717
|
+
min?: number;
|
|
718
|
+
max?: number;
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
export interface StudioImportMetadata {
|
|
722
|
+
studioAssessmentProgramId?: string;
|
|
723
|
+
studioPublicId?: string;
|
|
724
|
+
importedAt?: Date;
|
|
725
|
+
}
|
|
726
|
+
export interface CmsBlueprintEntity extends BaseEntity {
|
|
727
|
+
name: string;
|
|
728
|
+
description?: string;
|
|
729
|
+
subject?: string;
|
|
730
|
+
standardSet?: string;
|
|
731
|
+
gradeLevels: number[];
|
|
732
|
+
states?: string[];
|
|
733
|
+
itemBankConfigs: ItemBankConfig[];
|
|
734
|
+
assessmentGoal?: AssessmentGoal;
|
|
735
|
+
claimFramework?: "SBAC" | "PARCC" | "STATE" | "CUSTOM";
|
|
736
|
+
claimTargets?: string[];
|
|
737
|
+
useSBACClusterTarget?: boolean;
|
|
738
|
+
clusters?: string[];
|
|
739
|
+
studioImportMetadata?: StudioImportMetadata;
|
|
740
|
+
originalPrompt?: string;
|
|
741
|
+
}
|
|
742
|
+
export interface CmsBlueprintItemEntity extends BaseEntity {
|
|
743
|
+
blueprintId: string;
|
|
744
|
+
standardGuid: string;
|
|
745
|
+
count: number;
|
|
746
|
+
details?: string;
|
|
747
|
+
assessmentId?: string;
|
|
748
|
+
}
|
|
749
|
+
export type AssessmentMode = "view" | "author";
|
|
750
|
+
export interface AssessmentAuthoringCallbacks {
|
|
751
|
+
onItemAdded?: (item: QuestionEntity, index: number) => void;
|
|
752
|
+
onItemRemoved?: (itemId: string, index: number) => void;
|
|
753
|
+
onItemMoved?: (fromIndex: number, toIndex: number) => void;
|
|
754
|
+
onItemUpdated?: (itemId: string, updates: Partial<QuestionEntity>) => void;
|
|
755
|
+
onAssessmentUpdated?: (assessment: AssessmentEntity) => void;
|
|
756
|
+
onSectionAdded?: (section: AssessmentSection, index: number) => void;
|
|
757
|
+
onSectionRemoved?: (sectionId: string, index: number) => void;
|
|
758
|
+
onSectionUpdated?: (sectionId: string, updates: Partial<AssessmentSection>) => void;
|
|
759
|
+
}
|
|
760
|
+
export {};
|
|
761
|
+
//# sourceMappingURL=index.d.ts.map
|