@json-layout/core 2.8.0 → 2.8.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.
Files changed (82) hide show
  1. package/package.json +2 -2
  2. package/src/i18n/de.js +1 -0
  3. package/src/i18n/en.js +1 -0
  4. package/src/i18n/fr.js +1 -0
  5. package/src/i18n/nl.js +1 -0
  6. package/src/i18n/types.ts +1 -0
  7. package/types/compile/index.d.ts +16 -0
  8. package/types/compile/index.d.ts.map +1 -0
  9. package/types/compile/options.d.ts +6 -0
  10. package/types/compile/options.d.ts.map +1 -0
  11. package/types/compile/serialize.d.ts +6 -0
  12. package/types/compile/serialize.d.ts.map +1 -0
  13. package/types/compile/skeleton-node.d.ts +21 -0
  14. package/types/compile/skeleton-node.d.ts.map +1 -0
  15. package/types/compile/skeleton-tree.d.ts +19 -0
  16. package/types/compile/skeleton-tree.d.ts.map +1 -0
  17. package/types/compile/types.d.ts +61 -0
  18. package/types/compile/types.d.ts.map +1 -0
  19. package/types/compile/utils/resolve-refs.d.ts +17 -0
  20. package/types/compile/utils/resolve-refs.d.ts.map +1 -0
  21. package/types/compile/utils/x-i18n.d.ts +2 -0
  22. package/types/compile/utils/x-i18n.d.ts.map +1 -0
  23. package/types/i18n/de.d.ts +25 -0
  24. package/types/i18n/de.d.ts.map +1 -0
  25. package/types/i18n/en.d.ts +25 -0
  26. package/types/i18n/en.d.ts.map +1 -0
  27. package/types/i18n/fr.d.ts +25 -0
  28. package/types/i18n/fr.d.ts.map +1 -0
  29. package/types/i18n/index.d.ts +8 -0
  30. package/types/i18n/index.d.ts.map +1 -0
  31. package/types/i18n/nl.d.ts +25 -0
  32. package/types/i18n/nl.d.ts.map +1 -0
  33. package/types/i18n/types.d.ts +24 -0
  34. package/types/i18n/types.d.ts.map +1 -0
  35. package/types/index.d.ts +5 -0
  36. package/types/index.d.ts.map +1 -0
  37. package/types/state/index.d.ts +303 -0
  38. package/types/state/index.d.ts.map +1 -0
  39. package/types/state/options.d.ts +11 -0
  40. package/types/state/options.d.ts.map +1 -0
  41. package/types/state/state-node.d.ts +63 -0
  42. package/types/state/state-node.d.ts.map +1 -0
  43. package/types/state/state-tree.d.ts +13 -0
  44. package/types/state/state-tree.d.ts.map +1 -0
  45. package/types/state/types.d.ts +198 -0
  46. package/types/state/types.d.ts.map +1 -0
  47. package/types/state/utils/display.d.ts +51 -0
  48. package/types/state/utils/display.d.ts.map +1 -0
  49. package/types/state/utils/immutable.d.ts +21 -0
  50. package/types/state/utils/immutable.d.ts.map +1 -0
  51. package/types/state/utils/modified.d.ts +17 -0
  52. package/types/state/utils/modified.d.ts.map +1 -0
  53. package/types/state/utils/regexps.d.ts +6 -0
  54. package/types/state/utils/regexps.d.ts.map +1 -0
  55. package/types/state/utils/urls.d.ts +2 -0
  56. package/types/state/utils/urls.d.ts.map +1 -0
  57. package/types/utils/build.d.ts +5 -0
  58. package/types/utils/build.d.ts.map +1 -0
  59. package/types/utils/clone.d.ts +2 -0
  60. package/types/utils/clone.d.ts.map +1 -0
  61. package/types/utils/doc-options.d.ts +14 -0
  62. package/types/utils/doc-options.d.ts.map +1 -0
  63. package/types/webmcp/index.d.ts +90 -0
  64. package/types/webmcp/index.d.ts.map +1 -0
  65. package/types/webmcp/project.d.ts +111 -0
  66. package/types/webmcp/project.d.ts.map +1 -0
  67. package/types/webmcp/resolve.d.ts +11 -0
  68. package/types/webmcp/resolve.d.ts.map +1 -0
  69. package/types/webmcp/tools/describe-state.d.ts +79 -0
  70. package/types/webmcp/tools/describe-state.d.ts.map +1 -0
  71. package/types/webmcp/tools/edit-array.d.ts +88 -0
  72. package/types/webmcp/tools/edit-array.d.ts.map +1 -0
  73. package/types/webmcp/tools/fill-form-skill.d.ts +24 -0
  74. package/types/webmcp/tools/fill-form-skill.d.ts.map +1 -0
  75. package/types/webmcp/tools/get-data.d.ts +31 -0
  76. package/types/webmcp/tools/get-data.d.ts.map +1 -0
  77. package/types/webmcp/tools/get-field-suggestions.d.ts +66 -0
  78. package/types/webmcp/tools/get-field-suggestions.d.ts.map +1 -0
  79. package/types/webmcp/tools/set-data.d.ts +60 -0
  80. package/types/webmcp/tools/set-data.d.ts.map +1 -0
  81. package/types/webmcp/tools/set-field-value.d.ts +91 -0
  82. package/types/webmcp/tools/set-field-value.d.ts.map +1 -0
@@ -0,0 +1,303 @@
1
+ export { Display } from "./utils/display.js";
2
+ export { getRegexp } from "./utils/regexps.js";
3
+ /**
4
+ * @typedef {import('./types.js').StateNode} StateNode
5
+ * @typedef {import('./types.js').StateTree} StateTree
6
+ * @typedef {import('./types.js').StatefulLayoutOptions} StatefulLayoutOptions
7
+ * @typedef {import('./types.js').CreateStateTreeContext} CreateStateTreeContext
8
+ * @typedef {import('./types.js').TextFieldNode} TextFieldNode
9
+ * @typedef {import('./types.js').TextareaNode} TextareaNode
10
+ * @typedef {import('./types.js').NumberFieldNode} NumberFieldNode
11
+ * @typedef {import('./types.js').SliderNode} SliderNode
12
+ * @typedef {import('./types.js').SectionNode} SectionNode
13
+ * @typedef {import('./types.js').SelectNode} SelectNode
14
+ * @typedef {import('./types.js').AutocompleteNode} AutocompleteNode
15
+ * @typedef {import('./types.js').RadioGroupNode} RadioGroupNode
16
+ * @typedef {import('./types.js').CheckboxGroupNode} CheckboxGroupNode
17
+ * @typedef {import('./types.js').SwitchGroupNode} SwitchGroupNode
18
+ * @typedef {import('./types.js').ComboboxNode} ComboboxNode
19
+ * @typedef {import('./types.js').CheckboxNode} CheckboxNode
20
+ * @typedef {import('./types.js').SwitchNode} SwitchNode
21
+ * @typedef {import('./types.js').ColorPickerNode} ColorPickerNode
22
+ * @typedef {import('./types.js').DatePickerNode} DatePickerNode
23
+ * @typedef {import('./types.js').DateTimePickerNode} DateTimePickerNode
24
+ * @typedef {import('./types.js').TimePickerNode} TimePickerNode
25
+ * @typedef {import('./types.js').ExpansionPanelsNode} ExpansionPanelsNode
26
+ * @typedef {import('./types.js').TabsNode} TabsNode
27
+ * @typedef {import('./types.js').VerticalTabsNode} VerticalTabsNode
28
+ * @typedef {import('./types.js').StepperNode} StepperNode
29
+ * @typedef {import('./types.js').OneOfSelectNode} OneOfSelectNode
30
+ * @typedef {import('./types.js').ListNode} ListNode
31
+ * @typedef {import('./types.js').FileInputNode} FileInputNode
32
+ * @typedef {import('./types.js').CardNode} CardNode
33
+ * @typedef {import('./types.js').FileRef} FileRef
34
+ */
35
+ /** @type {(node: StateNode | undefined) => node is SectionNode} */
36
+ export const isSection: (node: StateNode | undefined) => node is SectionNode;
37
+ /** @type {(node: StateNode | undefined, components: Record<string, import('@json-layout/vocabulary').ComponentInfo>) => node is SelectNode | ComboboxNode | AutocompleteNode} */
38
+ export const isItemsNode: (node: StateNode | undefined, components: Record<string, import("@json-layout/vocabulary").ComponentInfo>) => node is SelectNode | ComboboxNode | AutocompleteNode;
39
+ export class StatefulLayout {
40
+ /**
41
+ * @param {import("../index.js").CompiledLayout} compiledLayout
42
+ * @param {import("../index.js").SkeletonTree} skeletonTree
43
+ * @param {Partial<StatefulLayoutOptions>} options
44
+ * @param {unknown} [data]
45
+ * @param {unknown} [savedData]
46
+ */
47
+ constructor(compiledLayout: import("../index.js").CompiledLayout, skeletonTree: import("../index.js").SkeletonTree, options: Partial<StatefulLayoutOptions>, data?: unknown, savedData?: unknown);
48
+ /**
49
+ * @private
50
+ * @readonly
51
+ * @type {import('../index.js').CompiledLayout}
52
+ */
53
+ private readonly _compiledLayout;
54
+ get compiledLayout(): import("../compile/types.js").CompiledLayout;
55
+ /**
56
+ * @private
57
+ * @type {StateTree}
58
+ */
59
+ private _stateTree;
60
+ get stateTree(): import("./types.js").StateTree;
61
+ /**
62
+ * @readonly
63
+ * @type {import('../index.js').SkeletonTree}
64
+ */
65
+ readonly skeletonTree: import("../index.js").SkeletonTree;
66
+ /**
67
+ * @private
68
+ * @type {Display}
69
+ */
70
+ private _display;
71
+ get display(): Display;
72
+ /**
73
+ * @private
74
+ * @type {import('./types.js').ValidationState}
75
+ */
76
+ private _validationState;
77
+ /**
78
+ * @private
79
+ * @param {Partial<import('./types.js').ValidationState>} validationState
80
+ */
81
+ set validationState(validationState: Partial<import("./types.js").ValidationState>);
82
+ /**
83
+ * @returns {import('./types.js').ValidationState}
84
+ */
85
+ get validationState(): import("./types.js").ValidationState;
86
+ /**
87
+ * @private
88
+ * @type {StatefulLayoutOptions}
89
+ */
90
+ private _options;
91
+ /**
92
+ * @param {Partial<StatefulLayoutOptions>} options
93
+ */
94
+ set options(options: Partial<StatefulLayoutOptions>);
95
+ /**
96
+ * @returns {StatefulLayoutOptions}
97
+ */
98
+ get options(): StatefulLayoutOptions;
99
+ /**
100
+ * @private
101
+ * @type {unknown}
102
+ */
103
+ private _data;
104
+ set data(data: unknown);
105
+ get data(): unknown;
106
+ /**
107
+ * @private
108
+ * @type {unknown}
109
+ */
110
+ private _previousData;
111
+ /**
112
+ * @private
113
+ * @type {boolean}
114
+ */
115
+ private _dataWaitingForBlur;
116
+ /**
117
+ * @private
118
+ * @type {string | null}
119
+ */
120
+ private _currentInput;
121
+ /**
122
+ * @private
123
+ * @type {CreateStateTreeContext}
124
+ */
125
+ private _lastCreateStateTreeContext;
126
+ /**
127
+ * @private
128
+ * @type {string | null}
129
+ */
130
+ private _autofocusTarget;
131
+ /**
132
+ * @private
133
+ * @type {string | null}
134
+ */
135
+ private _previousAutofocusTarget;
136
+ /**
137
+ * @type {FileRef[]}
138
+ */
139
+ files: FileRef[];
140
+ /**
141
+ * @private
142
+ * @type {unknown}
143
+ */
144
+ private _savedData;
145
+ /**
146
+ * @type {Record<string, number | string>}
147
+ */
148
+ activatedItems: Record<string, number | string>;
149
+ /**
150
+ * @private
151
+ * @param {Partial<StatefulLayoutOptions>} options
152
+ */
153
+ private prepareOptions;
154
+ /**
155
+ * @private
156
+ */
157
+ private initValidationState;
158
+ /**
159
+ * @private
160
+ */
161
+ private updateState;
162
+ /**
163
+ * @private
164
+ */
165
+ private emitData;
166
+ /**
167
+ * @private
168
+ * @param {boolean} rehydrate
169
+ */
170
+ private createStateTree;
171
+ validate(): void;
172
+ resetValidation(): void;
173
+ /**
174
+ * @returns {boolean}
175
+ */
176
+ get valid(): boolean;
177
+ /**
178
+ * @returns {string[]}
179
+ */
180
+ get errors(): string[];
181
+ /**
182
+ * @returns {boolean}
183
+ */
184
+ get hasHiddenError(): boolean;
185
+ /**
186
+ * @returns {boolean}
187
+ */
188
+ get modified(): boolean;
189
+ /** @param {unknown} savedData */
190
+ set savedData(savedData: unknown);
191
+ get savedData(): unknown;
192
+ /**
193
+ * @private
194
+ * @param {StateNode} node
195
+ * @returns {import('../compile/types.js').ParentContextExpression | null}
196
+ */
197
+ private getParentContextExpression;
198
+ /**
199
+ * @param {StateNode} node
200
+ * @param {import('@json-layout/vocabulary').Expression} expression
201
+ * @param {any} data
202
+ * @returns {any}
203
+ */
204
+ evalNodeExpression(node: StateNode, expression: import("@json-layout/vocabulary").Expression, data: any): any;
205
+ /**
206
+ * @private
207
+ * @param {StateNode} node
208
+ * @param {unknown} data
209
+ * @param {boolean} [validated]
210
+ * @param {number} [activateKey]
211
+ */
212
+ private applyInput;
213
+ /**
214
+ * @private
215
+ * @type {null | [StateNode, unknown, boolean, number | undefined, ReturnType<typeof setTimeout>]}
216
+ */
217
+ private debouncedInput;
218
+ applyDebouncedInput(): void;
219
+ /**
220
+ * @param {StateNode} node
221
+ * @param {unknown} data
222
+ * @param {number} [activateKey]
223
+ */
224
+ input(node: StateNode, data: unknown, activateKey?: number): void;
225
+ /**
226
+ * @param {StateNode} node
227
+ */
228
+ blur(node: StateNode): void;
229
+ /**
230
+ * @param {StateNode} node
231
+ */
232
+ validateNodeRecurse(node: StateNode): void;
233
+ /**
234
+ * @private
235
+ * @type {Record<string, {key: any, appliedQ: boolean, items: import('@json-layout/vocabulary').SelectItems}>}
236
+ */
237
+ private _itemsCache;
238
+ /**
239
+ * @private
240
+ * @param {StateNode} node
241
+ * @param {string} q
242
+ * @returns {Promise<{appliedQ: boolean, items: import('@json-layout/vocabulary').SelectItems}>}
243
+ */
244
+ private getItemsWithoutCache;
245
+ /**
246
+ * @param {StateNode} node
247
+ * @param {string} q
248
+ * @returns {Promise<import('@json-layout/vocabulary').SelectItems>}
249
+ */
250
+ getItems(node: StateNode, q?: string): Promise<import("@json-layout/vocabulary").SelectItems>;
251
+ /**
252
+ * @param {StateNode} node
253
+ * @param {any} rawItem
254
+ * @returns {import('@json-layout/vocabulary').SelectItem}
255
+ */
256
+ prepareSelectItem(node: StateNode, rawItem: any): import("@json-layout/vocabulary").SelectItem;
257
+ /**
258
+ * @param {StateNode} node
259
+ * @param {number | string} key
260
+ */
261
+ activateItem(node: StateNode, key: number | string): void;
262
+ /**
263
+ * @param {string} fullKey
264
+ */
265
+ focusNode(fullKey: string): void;
266
+ /**
267
+ * @param {StateNode} node
268
+ * @param {boolean} skipUpdateState
269
+ */
270
+ deactivateItem(node: StateNode, skipUpdateState?: boolean): void;
271
+ handleAutofocus(): void;
272
+ }
273
+ export type StateNode = import("./types.js").StateNode;
274
+ export type StateTree = import("./types.js").StateTree;
275
+ export type StatefulLayoutOptions = import("./types.js").StatefulLayoutOptions;
276
+ export type CreateStateTreeContext = import("./types.js").CreateStateTreeContext;
277
+ export type TextFieldNode = import("./types.js").TextFieldNode;
278
+ export type TextareaNode = import("./types.js").TextareaNode;
279
+ export type NumberFieldNode = import("./types.js").NumberFieldNode;
280
+ export type SliderNode = import("./types.js").SliderNode;
281
+ export type SectionNode = import("./types.js").SectionNode;
282
+ export type SelectNode = import("./types.js").SelectNode;
283
+ export type AutocompleteNode = import("./types.js").AutocompleteNode;
284
+ export type RadioGroupNode = import("./types.js").RadioGroupNode;
285
+ export type CheckboxGroupNode = import("./types.js").CheckboxGroupNode;
286
+ export type SwitchGroupNode = import("./types.js").SwitchGroupNode;
287
+ export type ComboboxNode = import("./types.js").ComboboxNode;
288
+ export type CheckboxNode = import("./types.js").CheckboxNode;
289
+ export type SwitchNode = import("./types.js").SwitchNode;
290
+ export type ColorPickerNode = import("./types.js").ColorPickerNode;
291
+ export type DatePickerNode = import("./types.js").DatePickerNode;
292
+ export type DateTimePickerNode = import("./types.js").DateTimePickerNode;
293
+ export type TimePickerNode = import("./types.js").TimePickerNode;
294
+ export type ExpansionPanelsNode = import("./types.js").ExpansionPanelsNode;
295
+ export type TabsNode = import("./types.js").TabsNode;
296
+ export type VerticalTabsNode = import("./types.js").VerticalTabsNode;
297
+ export type StepperNode = import("./types.js").StepperNode;
298
+ export type OneOfSelectNode = import("./types.js").OneOfSelectNode;
299
+ export type ListNode = import("./types.js").ListNode;
300
+ export type FileInputNode = import("./types.js").FileInputNode;
301
+ export type CardNode = import("./types.js").CardNode;
302
+ export type FileRef = import("./types.js").FileRef;
303
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @typedef {import('./types.js').StatefulLayoutOptions} StatefulLayoutOptions
3
+ */
4
+ /**
5
+ * @param {Partial<StatefulLayoutOptions>} partialOptions
6
+ * @param {import('../index.js').CompiledLayout} compiledLayout
7
+ * @returns {StatefulLayoutOptions}
8
+ */
9
+ export function fillOptions(partialOptions: Partial<StatefulLayoutOptions>, compiledLayout: import("../index.js").CompiledLayout): StatefulLayoutOptions;
10
+ export type StatefulLayoutOptions = import("./types.js").StatefulLayoutOptions;
11
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/state/options.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,4CAJW,OAAO,CAAC,qBAAqB,CAAC,kBAC9B,OAAO,aAAa,EAAE,cAAc,GAClC,qBAAqB,CAiCjC;oCAvCY,OAAO,YAAY,EAAE,qBAAqB"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @param {import('../index.js').CompiledExpression[]} expressions
3
+ * @param {import('@json-layout/vocabulary').Expression} expression
4
+ * @param {any} data
5
+ * @param {import('./types.js').StateNodeOptions} options
6
+ * @param {import('./utils/display.js').Display} display
7
+ * @param {import('@json-layout/vocabulary').BaseCompObject} layout
8
+ * @param {Record<string, import('ajv').ValidateFunction>} validates
9
+ * @param {unknown} rootData
10
+ * @param {import('../compile/types.js').ParentContextExpression | null} parentContext
11
+ * @returns {any}
12
+ */
13
+ export function evalExpression(expressions: import("../index.js").CompiledExpression[], expression: import("@json-layout/vocabulary").Expression, data: any, options: import("./types.js").StateNodeOptions, display: import("./utils/display.js").Display, layout: import("@json-layout/vocabulary").BaseCompObject, validates: Record<string, import("ajv").ValidateFunction>, rootData: unknown, parentContext: import("../compile/types.js").ParentContextExpression | null): any;
14
+ /**
15
+ *
16
+ * @param {import('./types.js').CreateStateTreeContext} context
17
+ * @param {import('./types.js').StateNodeOptions} parentOptions
18
+ * @param {import('../index.js').CompiledLayout} compiledLayout
19
+ * @param {string | number} key
20
+ * @param {string} fullKey
21
+ * @param {string | null} parentFullKey
22
+ * @param {string} dataPath
23
+ * @param {string | null} parentDataPath
24
+ * @param {import('../index.js').SkeletonNode} skeleton
25
+ * @param {import('@json-layout/vocabulary').Child | null} childDefinition
26
+ * @param {import('./utils/display.js').Display} parentDisplay
27
+ * @param {any} data
28
+ * @param {import('../compile/types.js').ParentContextExpression | null} parentContext
29
+ * @param {import('./types.js').ValidationState} validationState
30
+ * @param {number} titleDepth
31
+ * @param {import('./types.js').StateNode} [reusedNode]
32
+ * @returns {import('./types.js').StateNode}
33
+ */
34
+ export function createStateNode(context: import("./types.js").CreateStateTreeContext, parentOptions: import("./types.js").StateNodeOptions, compiledLayout: import("../index.js").CompiledLayout, key: string | number, fullKey: string, parentFullKey: string | null, dataPath: string, parentDataPath: string | null, skeleton: import("../index.js").SkeletonNode, childDefinition: import("@json-layout/vocabulary").Child | null, parentDisplay: import("./utils/display.js").Display, data: any, parentContext: import("../compile/types.js").ParentContextExpression | null, validationState: import("./types.js").ValidationState, titleDepth: number, reusedNode?: import("./types.js").StateNode): import("./types.js").StateNode;
35
+ export function useDefaultData(data: unknown, layout: import("@json-layout/vocabulary").BaseCompObject, options: import("./types.js").StateNodeOptions): boolean;
36
+ /** @type {(draft: any, node: import('./types.js').StateNode, data: unknown) => any} */
37
+ export const producePatchedData: (draft: any, node: import("./types.js").StateNode, data: unknown) => any;
38
+ /**
39
+ * Merge a fresh getItems result into the list's current data.
40
+ *
41
+ * For every item in newItems, matched by key against existingItems:
42
+ * - matching key: the existing data entry is preserved (local edits win,
43
+ * the new item.value is discarded);
44
+ * - new key: the new item.value is used;
45
+ * - existing keys absent from newItems: dropped.
46
+ *
47
+ * When preserveOrder is true (used when listActions includes 'sort'):
48
+ * - the user's current order is kept for items that are still present;
49
+ * - items new in newItems are appended at the end, in newItems order;
50
+ * - items dropped from newItems are still removed.
51
+ *
52
+ * When preserveOrder is false (default), the order from newItems is used.
53
+ *
54
+ * When replaceData is true (used when items are not editable locally — i.e.
55
+ * listActions does not include 'edit' and listEditMode is not 'inline'):
56
+ * - on a matching key, the new item.value replaces the existing data
57
+ * entry (server is the source of truth for non-editable items).
58
+ *
59
+ * When replaceData is false (default), local data is preserved on match.
60
+ * @type {(existingData: any[], existingItems: import('@json-layout/vocabulary').SelectItems, newItems: import('@json-layout/vocabulary').SelectItems, preserveOrder?: boolean, replaceData?: boolean) => any}
61
+ */
62
+ export const produceListData: (existingData: any[], existingItems: import("@json-layout/vocabulary").SelectItems, newItems: import("@json-layout/vocabulary").SelectItems, preserveOrder?: boolean, replaceData?: boolean) => any;
63
+ //# sourceMappingURL=state-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AAkRA;;;;;;;;;;;GAWG;AACH,4CAXW,OAAO,aAAa,EAAE,kBAAkB,EAAE,cAC1C,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,WACH,OAAO,YAAY,EAAE,gBAAgB,WACrC,OAAO,oBAAoB,EAAE,OAAO,UACpC,OAAO,yBAAyB,EAAE,cAAc,aAChD,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,gBAAgB,CAAC,YAC9C,OAAO,iBACP,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,GAC1D,GAAG,CAsBf;AAiCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,yCAlBW,OAAO,YAAY,EAAE,sBAAsB,iBAC3C,OAAO,YAAY,EAAE,gBAAgB,kBACrC,OAAO,aAAa,EAAE,cAAc,OACpC,MAAM,GAAG,MAAM,WACf,MAAM,iBACN,MAAM,GAAG,IAAI,YACb,MAAM,kBACN,MAAM,GAAG,IAAI,YACb,OAAO,aAAa,EAAE,YAAY,mBAClC,OAAO,yBAAyB,EAAE,KAAK,GAAG,IAAI,iBAC9C,OAAO,oBAAoB,EAAE,OAAO,QACpC,GAAG,iBACH,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,mBAC5D,OAAO,YAAY,EAAE,eAAe,cACpC,MAAM,eACN,OAAO,YAAY,EAAE,SAAS,GAC5B,OAAO,YAAY,EAAE,SAAS,CA2nB1C;AAl8BM,qCALI,OAAO,UACP,OAAO,yBAAyB,EAAE,cAAc,WAChD,OAAO,YAAY,EAAE,gBAAgB,GACnC,OAAO,CAMnB;AAg8BD,uFAAuF;AACvF,iCADW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,CAgBjF;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8BAFU,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,yBAAyB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,yBAAyB,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,GAAG,CAkC5M"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @param {import('./types.js').CreateStateTreeContext} context
3
+ * @param {import('./types.js').StatefulLayoutOptions} options
4
+ * @param {import('../index.js').CompiledLayout} compiledLayout
5
+ * @param {import('../index.js').SkeletonTree} skeleton
6
+ * @param {import('./utils/display.js').Display} display
7
+ * @param {unknown} data
8
+ * @param {import('./types.js').ValidationState} validationState
9
+ * @param {import('./types.js').StateTree} [reusedStateTree]
10
+ * @returns {import('./types.js').StateTree}
11
+ */
12
+ export function createStateTree(context: import("./types.js").CreateStateTreeContext, options: import("./types.js").StatefulLayoutOptions, compiledLayout: import("../index.js").CompiledLayout, skeleton: import("../index.js").SkeletonTree, display: import("./utils/display.js").Display, data: unknown, validationState: import("./types.js").ValidationState, reusedStateTree?: import("./types.js").StateTree): import("./types.js").StateTree;
13
+ //# sourceMappingURL=state-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-tree.d.ts","sourceRoot":"","sources":["../../src/state/state-tree.js"],"names":[],"mappings":"AA8BA;;;;;;;;;;GAUG;AACH,yCAVW,OAAO,YAAY,EAAE,sBAAsB,WAC3C,OAAO,YAAY,EAAE,qBAAqB,kBAC1C,OAAO,aAAa,EAAE,cAAc,YACpC,OAAO,aAAa,EAAE,YAAY,WAClC,OAAO,oBAAoB,EAAE,OAAO,QACpC,OAAO,mBACP,OAAO,YAAY,EAAE,eAAe,oBACpC,OAAO,YAAY,EAAE,SAAS,GAC5B,OAAO,YAAY,EAAE,SAAS,CAoF1C"}
@@ -0,0 +1,198 @@
1
+ import { type ErrorObject } from 'ajv/dist/2019.js';
2
+ import { type BaseCompObject, type Cols, type StateNodeOptionsBase, type TextField, type Textarea, type NumberField, type Slider, type Checkbox, type Switch, type DatePicker, type DateTimePicker, type TimePicker, type ColorPicker, type Section, type OneOfSelect, type Select, type Autocomplete, type Tabs, type VerticalTabs, type ExpansionPanels, type Stepper, type List, type Combobox, type FileInput, type Card, type Child, type StateNodePropsLib, type Slots } from '@json-layout/vocabulary';
3
+ import { type SkeletonTree, type SkeletonNode, type StatefulLayout, type CompiledLayout } from '../index.js';
4
+ import { type LocaleMessages } from '../i18n/types.js';
5
+ export interface StateNode {
6
+ key: string | number;
7
+ fullKey: string;
8
+ parentFullKey: string | null;
9
+ dataPath: string;
10
+ parentDataPath: string | null;
11
+ skeleton: SkeletonNode;
12
+ layout: BaseCompObject;
13
+ cols: Cols;
14
+ data: unknown;
15
+ error: string | undefined;
16
+ childError: boolean | undefined;
17
+ modified: boolean | undefined;
18
+ childModified: boolean | undefined;
19
+ validated: boolean;
20
+ width: number;
21
+ options: StateNodeOptions;
22
+ titleDepth: number;
23
+ messages: LocaleMessages;
24
+ autofocus?: boolean;
25
+ loading?: boolean;
26
+ autofocusChild?: string | number;
27
+ props?: StateNodePropsLib;
28
+ slots?: Slots;
29
+ itemsCacheKey: any;
30
+ children?: StateNode[];
31
+ }
32
+ export interface StateTree {
33
+ root: StateNode;
34
+ valid: boolean;
35
+ }
36
+ export interface CreateStateTreeContext {
37
+ allErrors?: ErrorObject[];
38
+ errors?: ErrorObject[];
39
+ rehydrateErrors?: ErrorObject[];
40
+ additionalPropertiesErrors?: ErrorObject[];
41
+ files: FileRef[];
42
+ activatedItems: Record<string, number | string>;
43
+ autoActivatedItems: Record<string, number | number>;
44
+ autofocusTarget: string | null;
45
+ currentInput: string | null;
46
+ initial: boolean;
47
+ rehydrate: boolean;
48
+ cacheKeys: Record<string, StateNodeCacheKey>;
49
+ rootData: unknown;
50
+ savedData: unknown;
51
+ nodes: StateNode[];
52
+ nodesMap: Map<string, StateNode>;
53
+ getItemsDataRequests: StateNode[];
54
+ }
55
+ export interface FileRef {
56
+ file: File;
57
+ dataPath: string;
58
+ }
59
+ export type StateNodeCacheKey = [
60
+ StateNode | undefined,
61
+ StateNodeOptions,
62
+ CompiledLayout,
63
+ string,
64
+ boolean,
65
+ SkeletonNode,
66
+ Child | null,
67
+ number,
68
+ boolean,
69
+ Record<string, number | string>,
70
+ boolean,
71
+ number,
72
+ unknown,
73
+ number,
74
+ unknown
75
+ ];
76
+ export interface ValidationState {
77
+ initialized: boolean;
78
+ validatedForm: boolean;
79
+ validatedChildren: Set<string>;
80
+ }
81
+ export type StateNodeOptions = Required<StateNodeOptionsBase & {
82
+ context: Record<string, any>;
83
+ messages: LocaleMessages;
84
+ fetchBaseURL: string;
85
+ fetchOptions: Omit<RequestInit, 'body'> | ((url: URL) => Omit<RequestInit, 'body'>);
86
+ fetch: ((url: string, fetchOptions: RequestInit) => any);
87
+ onData: (data: any) => void;
88
+ onUpdate: (statefulLayout: StatefulLayout) => void;
89
+ onAutofocus: (key: string) => void;
90
+ noStateCache: boolean;
91
+ }>;
92
+ export type StatefulLayoutOptions = StateNodeOptions & {
93
+ width: number;
94
+ };
95
+ export type TextFieldNode = Omit<StateNode, 'children'> & {
96
+ layout: TextField;
97
+ data: string | undefined | null;
98
+ };
99
+ export type TextareaNode = Omit<StateNode, 'children'> & {
100
+ layout: Textarea;
101
+ data: string | undefined | null;
102
+ };
103
+ export type NumberFieldNode = Omit<StateNode, 'children'> & {
104
+ layout: NumberField;
105
+ data: number | undefined | null;
106
+ };
107
+ export type SliderNode = Omit<StateNode, 'children'> & {
108
+ layout: Slider;
109
+ data: number | undefined | null;
110
+ };
111
+ export type CheckboxNode = Omit<StateNode, 'children'> & {
112
+ layout: Checkbox;
113
+ data: boolean | undefined | null;
114
+ };
115
+ export type SwitchNode = Omit<StateNode, 'children'> & {
116
+ layout: Switch;
117
+ data: boolean | undefined | null;
118
+ };
119
+ export type DatePickerNode = Omit<StateNode, 'children'> & {
120
+ layout: DatePicker;
121
+ data: string | undefined | null;
122
+ };
123
+ export type DateTimePickerNode = Omit<StateNode, 'children'> & {
124
+ layout: DateTimePicker;
125
+ data: string | undefined | null;
126
+ };
127
+ export type TimePickerNode = Omit<StateNode, 'children'> & {
128
+ layout: TimePicker;
129
+ data: string | undefined | null;
130
+ };
131
+ export type ColorPickerNode = Omit<StateNode, 'children'> & {
132
+ layout: ColorPicker;
133
+ data: string | undefined | null;
134
+ };
135
+ export type SectionNode = StateNode & {
136
+ layout: Section;
137
+ children: StateNode[];
138
+ };
139
+ export type OneOfSelectNode = StateNode & {
140
+ layout: OneOfSelect;
141
+ data: Record<string, unknown>;
142
+ childrenTrees: SkeletonTree[];
143
+ };
144
+ export type SelectNode = Omit<StateNode, 'children'> & {
145
+ layout: Select;
146
+ data: any;
147
+ };
148
+ export type AutocompleteNode = Omit<StateNode, 'children'> & {
149
+ layout: Autocomplete;
150
+ data: any;
151
+ };
152
+ export type RadioGroupNode = Omit<StateNode, 'children'> & {
153
+ layout: Select;
154
+ data: any;
155
+ };
156
+ export type CheckboxGroupNode = Omit<StateNode, 'children'> & {
157
+ layout: Select;
158
+ data: any;
159
+ };
160
+ export type SwitchGroupNode = Omit<StateNode, 'children'> & {
161
+ layout: Select;
162
+ data: any;
163
+ };
164
+ export type TabsNode = StateNode & {
165
+ layout: Tabs;
166
+ children: StateNode[];
167
+ };
168
+ export type VerticalTabsNode = StateNode & {
169
+ layout: VerticalTabs;
170
+ children: StateNode[];
171
+ };
172
+ export type ExpansionPanelsNode = StateNode & {
173
+ layout: ExpansionPanels;
174
+ children: StateNode[];
175
+ };
176
+ export type StepperNode = StateNode & {
177
+ layout: Stepper;
178
+ children: StateNode[];
179
+ };
180
+ export type ListNode = StateNode & {
181
+ layout: List;
182
+ data: any[];
183
+ children: StateNode[];
184
+ childrenTrees: SkeletonTree[];
185
+ };
186
+ export type ComboboxNode = Omit<StateNode, 'children'> & {
187
+ layout: Combobox;
188
+ data: any[];
189
+ };
190
+ export type FileInputNode = Omit<StateNode, 'children'> & {
191
+ layout: FileInput;
192
+ data: object | undefined | null;
193
+ };
194
+ export type CardNode = StateNode & {
195
+ layout: Card;
196
+ children: StateNode[];
197
+ };
198
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"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"}