@case-framework/survey-core 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -52,15 +52,18 @@ import {
52
52
  ValueRefTypeLookup,
53
53
  ValueType,
54
54
  ItemTypeRegistry,
55
- } from '@case-framework/survey-core';
55
+ } from "@case-framework/survey-core";
56
56
 
57
57
  type SingleChoiceConfig = {
58
58
  id: string;
59
59
  options: Array<{ id: string; key: string; type: string }>;
60
60
  };
61
61
 
62
- class SingleChoiceQuestionItemCore extends SurveyItemCore<'singleChoiceQuestion', SingleChoiceConfig> {
63
- readonly type = 'singleChoiceQuestion';
62
+ class SingleChoiceQuestionItemCore extends SurveyItemCore<
63
+ "singleChoiceQuestion",
64
+ SingleChoiceConfig
65
+ > {
66
+ readonly type = "singleChoiceQuestion";
64
67
 
65
68
  parseConfig(rawConfig: unknown): SingleChoiceConfig {
66
69
  const cfg = (rawConfig ?? {}) as Partial<SingleChoiceConfig>;
@@ -96,45 +99,42 @@ import {
96
99
  ResponseItem,
97
100
  ValueType,
98
101
  ReservedSurveyItemTypes,
99
- } from '@case-framework/survey-core';
102
+ } from "@case-framework/survey-core";
100
103
 
101
104
  const survey = Survey.fromJson(
102
105
  {
103
106
  $schema:
104
- 'https://github.com/case-framework/case-survey-toolkit/packages/survey-core/schemas/survey-schema.json',
107
+ "https://github.com/case-framework/case-survey-toolkit/packages/survey-core/schemas/survey-schema.json",
105
108
  surveyItems: [
106
109
  {
107
- id: 'root',
108
- key: 'root',
110
+ id: "root",
111
+ key: "root",
109
112
  itemType: ReservedSurveyItemTypes.Group,
110
- config: { isRoot: true, items: ['q1'] },
113
+ config: { isRoot: true, items: ["q1"] },
111
114
  },
112
115
  {
113
- id: 'q1',
114
- key: 'q1',
115
- itemType: 'singleChoiceQuestion',
116
+ id: "q1",
117
+ key: "q1",
118
+ itemType: "singleChoiceQuestion",
116
119
  config: {
117
- id: 'q1',
120
+ id: "q1",
118
121
  options: [
119
- { id: 'yes', key: 'yes', type: 'option' },
120
- { id: 'no', key: 'no', type: 'option' },
122
+ { id: "yes", key: "yes", type: "option" },
123
+ { id: "no", key: "no", type: "option" },
121
124
  ],
122
125
  },
123
126
  },
124
127
  ],
125
128
  },
126
- pluginRegistry
129
+ pluginRegistry,
127
130
  );
128
131
 
129
- const engine = new SurveyEngineCore(survey, { locale: 'en' });
132
+ const engine = new SurveyEngineCore(survey, { locale: "en" });
130
133
 
131
134
  // Set one item response (slot id == config.id in this example).
132
- engine.setResponse(
133
- 'q1',
134
- new ResponseItem([['q1', { type: ValueType.reference, value: 'yes' }]])
135
- );
135
+ engine.setResponse("q1", new ResponseItem([["q1", { type: ValueType.reference, value: "yes" }]]));
136
136
 
137
- const pages = engine.getSurveyPages('large');
137
+ const pages = engine.getSurveyPages("large");
138
138
  const responses = engine.getResponses();
139
139
  const events = engine.getEvents();
140
140
  ```
@@ -142,19 +142,16 @@ const events = engine.getEvents();
142
142
  ### 3. Export responses to CSV
143
143
 
144
144
  ```ts
145
- import {
146
- SurveyResponse,
147
- SurveyResponseExporter,
148
- } from '@case-framework/survey-core';
145
+ import { SurveyResponse, SurveyResponseExporter } from "@case-framework/survey-core";
149
146
 
150
- const response = new SurveyResponse('response-1', 'v1');
147
+ const response = new SurveyResponse("response-1", "v1");
151
148
  response.responses = new Map(responses.map((r) => [r.itemId, r]));
152
149
  response.submittedAt = Math.floor(Date.now() / 1000);
153
150
 
154
151
  const exporter = new SurveyResponseExporter([
155
152
  {
156
- versionId: 'v1',
157
- surveyKey: survey.surveyKey ?? 'survey',
153
+ versionId: "v1",
154
+ surveyKey: survey.surveyKey ?? "survey",
158
155
  survey,
159
156
  },
160
157
  ]);
@@ -165,17 +162,17 @@ const csv = exporter.exportResponsesToCsv([response]);
165
162
  ### 4. Edit surveys with the editor entrypoint
166
163
 
167
164
  ```ts
168
- import { SurveyEditor, CommitSource } from '@case-framework/survey-core/editor';
165
+ import { SurveyEditor, CommitSource } from "@case-framework/survey-core/editor";
169
166
 
170
167
  const editor = new SurveyEditor(survey, { pluginRegistry });
171
168
 
172
169
  const newItem = survey.createItemFromRaw({
173
- id: 'q2',
174
- key: 'q2',
175
- itemType: 'singleChoiceQuestion',
176
- config: { id: 'q2', options: [] },
170
+ id: "q2",
171
+ key: "q2",
172
+ itemType: "singleChoiceQuestion",
173
+ config: { id: "q2", options: [] },
177
174
  });
178
175
 
179
176
  editor.addItem({ parentId: survey.rootItem!.id }, newItem);
180
- editor.commit({ label: 'Add q2', source: CommitSource.USER });
177
+ editor.commit({ label: "Add q2", source: CommitSource.USER });
181
178
  ```
@@ -1,4 +1,4 @@
1
- import { D as SurveyCardContent, E as NavigationContent, Gt as SurveyItemCore, Jt as RawSurveyItem, M as Content, S as RawSurveyAsset, k as SurveyItemTranslations, m as ItemTypeRegistry, t as Survey, vt as TemplateValueDefinition, w as JsonComponentContent, x as RawSurvey } from "./survey-DShEOjyz.mjs";
1
+ import { D as SurveyCardContent, E as NavigationContent, Gt as SurveyItemCore, Jt as RawSurveyItem, M as Content, S as RawSurveyAsset, k as SurveyItemTranslations, m as ItemTypeRegistry, t as Survey, vt as TemplateValueDefinition, w as JsonComponentContent, x as RawSurvey } from "./survey-BV8YHc3J.mjs";
2
2
 
3
3
  //#region src/editor/ai-context.d.ts
4
4
  type SurveyAIContextScope = "tiny" | "focused" | "full";
@@ -89,7 +89,7 @@ type SerializedTranslations = {
89
89
  [locale: string]: JsonComponentContent;
90
90
  };
91
91
  interface SurveyItemClipboardData {
92
- type: 'survey-item';
92
+ type: "survey-item";
93
93
  version: string;
94
94
  items: Array<{
95
95
  itemId: string;
@@ -145,12 +145,12 @@ declare class ItemCopyPaste {
145
145
  */
146
146
  private updateExpressionReferences;
147
147
  /**
148
- * Update translation keys for the pasted item
149
- */
148
+ * Update translation keys for the pasted item
149
+ */
150
150
  private updateTranslations;
151
151
  /**
152
- * Validate clipboard data format
153
- */
152
+ * Validate clipboard data format
153
+ */
154
154
  static isValidClipboardData(data: unknown): data is SurveyItemClipboardData;
155
155
  }
156
156
  //#endregion
@@ -164,7 +164,7 @@ declare const CommitSource: {
164
164
  readonly USER: "user";
165
165
  readonly SYSTEM: "system";
166
166
  };
167
- type CommitSource = typeof CommitSource[keyof typeof CommitSource];
167
+ type CommitSource = (typeof CommitSource)[keyof typeof CommitSource];
168
168
  interface CommitMeta {
169
169
  label: string;
170
170
  source?: CommitSource;
@@ -180,14 +180,22 @@ interface BaseHistoryEntry {
180
180
  memorySize: number;
181
181
  }
182
182
  interface SurveySnapshotHistoryEntry extends BaseHistoryEntry {
183
- kind: 'survey-snapshot';
183
+ kind: "survey-snapshot";
184
184
  survey: RawSurvey;
185
185
  }
186
186
  interface AssetChangeHistoryEntry extends BaseHistoryEntry {
187
- kind: 'asset-change';
187
+ kind: "asset-change";
188
188
  changes: AssetPatch[];
189
189
  }
190
190
  type HistoryEntry = SurveySnapshotHistoryEntry | AssetChangeHistoryEntry;
191
+ interface SurveyEditorHistoryCommit {
192
+ index: number;
193
+ kind: HistoryEntry["kind"];
194
+ meta: CommitMeta;
195
+ timestamp: number;
196
+ memorySize: number;
197
+ isCurrent: boolean;
198
+ }
191
199
  type SerializedHistoryEntry = SurveySnapshotHistoryEntry | AssetChangeHistoryEntry | (BaseHistoryEntry & {
192
200
  survey: RawSurvey;
193
201
  });
@@ -226,12 +234,19 @@ declare class SurveyEditorUndoRedo {
226
234
  */
227
235
  getHistory(): Array<{
228
236
  index: number;
229
- kind: HistoryEntry['kind'];
237
+ kind: HistoryEntry["kind"];
230
238
  meta: CommitMeta;
231
239
  timestamp: number;
232
240
  memorySize: number;
233
241
  isCurrent: boolean;
234
242
  }>;
243
+ /**
244
+ * Get committed history entries after the initial state up to the current index.
245
+ *
246
+ * Redo-only future entries are intentionally omitted so the returned list describes the active
247
+ * change chain from the initial state to the current editor state.
248
+ */
249
+ getCommitsSinceInitial(): SurveyEditorHistoryCommit[];
235
250
  /**
236
251
  * Get the current index in the history
237
252
  */
@@ -277,7 +292,7 @@ declare class SurveyEditorUndoRedo {
277
292
  interface SerializedSurveyEditor {
278
293
  version: string;
279
294
  survey: RawSurvey;
280
- undoRedo: ReturnType<SurveyEditorUndoRedo['serialize']>;
295
+ undoRedo: ReturnType<SurveyEditorUndoRedo["serialize"]>;
281
296
  hasUncommittedChanges: boolean;
282
297
  }
283
298
  interface SurveyEditorConfig extends Partial<UndoRedoConfig> {
@@ -312,6 +327,10 @@ declare class SurveyEditor {
312
327
  entries: number;
313
328
  };
314
329
  getUndoRedoConfig(): UndoRedoConfig;
330
+ /**
331
+ * Get committed changes after the initial editor state up to the current undo/redo position.
332
+ */
333
+ getCommitsSinceInitial(): SurveyEditorHistoryCommit[];
315
334
  /**
316
335
  * Serialize the SurveyEditor state to JSON
317
336
  * @returns A JSON-serializable object containing the complete editor state
@@ -445,5 +464,5 @@ declare class SurveyEditor {
445
464
  pasteItem(clipboardData: SurveyItemClipboardData, target: Target): string;
446
465
  }
447
466
  //#endregion
448
- export { AssetPatch, BuildSurveyAIContextPackOptions, CommitMeta, CommitSource, ItemCopyPaste, SerializedSurveyEditor, SerializedTranslations, SurveyAIContextIndexes, SurveyAIContextPack, SurveyAIContextPurpose, SurveyAIContextScope, SurveyAIFocus, SurveyAIItemContextNode, SurveyAIKeyIndexEntry, SurveyAIOutlineNode, SurveyAITranslationSnippet, SurveyEditor, SurveyEditorConfig, SurveyEditorUndoRedo, SurveyItemClipboardData, Target, UndoRedoConfig, buildSurveyAIContextPack };
467
+ export { AssetPatch, BuildSurveyAIContextPackOptions, CommitMeta, CommitSource, ItemCopyPaste, SerializedSurveyEditor, SerializedTranslations, SurveyAIContextIndexes, SurveyAIContextPack, SurveyAIContextPurpose, SurveyAIContextScope, SurveyAIFocus, SurveyAIItemContextNode, SurveyAIKeyIndexEntry, SurveyAIOutlineNode, SurveyAITranslationSnippet, SurveyEditor, SurveyEditorConfig, SurveyEditorHistoryCommit, SurveyEditorUndoRedo, SurveyItemClipboardData, Target, UndoRedoConfig, buildSurveyAIContextPack };
449
468
  //# sourceMappingURL=editor.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.mts","names":[],"sources":["../src/editor/ai-context.ts","../src/editor/types.ts","../src/editor/item-copy-paste.ts","../src/editor/undo-redo.ts","../src/editor/survey-editor.ts"],"mappings":"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"}
1
+ {"version":3,"file":"editor.d.mts","names":[],"sources":["../src/editor/ai-context.ts","../src/editor/types.ts","../src/editor/item-copy-paste.ts","../src/editor/undo-redo.ts","../src/editor/survey-editor.ts"],"mappings":"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"}
package/build/editor.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as generateId, a as getContentPlainText, nt as structuredCloneMethod, t as Survey, u as SurveyItemTranslations, v as GroupItemCore } from "./survey-yXdl8xkf.mjs";
1
+ import { $ as generateId, a as getContentPlainText, nt as structuredCloneMethod, t as Survey, u as SurveyItemTranslations, v as GroupItemCore } from "./survey-DnLtf19j.mjs";
2
2
  //#region src/editor/ai-context.ts
3
3
  const DEFAULT_SCOPE_LIMITS = {
4
4
  tiny: 40,
@@ -724,6 +724,25 @@ var SurveyEditorUndoRedo = class SurveyEditorUndoRedo {
724
724
  }));
725
725
  }
726
726
  /**
727
+ * Get committed history entries after the initial state up to the current index.
728
+ *
729
+ * Redo-only future entries are intentionally omitted so the returned list describes the active
730
+ * change chain from the initial state to the current editor state.
731
+ */
732
+ getCommitsSinceInitial() {
733
+ return this.history.slice(1, this.currentIndex + 1).map((entry, offset) => {
734
+ const index = offset + 1;
735
+ return {
736
+ index,
737
+ kind: entry.kind,
738
+ meta: entry.meta,
739
+ timestamp: entry.timestamp,
740
+ memorySize: entry.memorySize,
741
+ isCurrent: index === this.currentIndex
742
+ };
743
+ });
744
+ }
745
+ /**
727
746
  * Get the current index in the history
728
747
  */
729
748
  getCurrentIndex() {
@@ -911,6 +930,12 @@ var SurveyEditor = class SurveyEditor {
911
930
  return this._undoRedo.getConfig();
912
931
  }
913
932
  /**
933
+ * Get committed changes after the initial editor state up to the current undo/redo position.
934
+ */
935
+ getCommitsSinceInitial() {
936
+ return this._undoRedo.getCommitsSinceInitial();
937
+ }
938
+ /**
914
939
  * Serialize the SurveyEditor state to JSON
915
940
  * @returns A JSON-serializable object containing the complete editor state
916
941
  */