@json-layout/core 0.16.4 → 0.18.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.
Files changed (46) hide show
  1. package/package.json +2 -2
  2. package/src/compile/index.js +1 -1
  3. package/src/compile/types.ts +6 -1
  4. package/src/state/index.js +19 -5
  5. package/src/state/state-node.js +19 -17
  6. package/src/state/types.ts +8 -0
  7. package/types/compile/index.d.ts +16 -0
  8. package/types/compile/index.d.ts.map +1 -0
  9. package/types/compile/serialize.d.ts +6 -0
  10. package/types/compile/serialize.d.ts.map +1 -0
  11. package/types/compile/skeleton-node.d.ts +15 -0
  12. package/types/compile/skeleton-node.d.ts.map +1 -0
  13. package/types/compile/skeleton-tree.d.ts +13 -0
  14. package/types/compile/skeleton-tree.d.ts.map +1 -0
  15. package/types/compile/types.d.ts +54 -0
  16. package/types/compile/types.d.ts.map +1 -0
  17. package/types/compile/utils/resolve-refs.d.ts +9 -0
  18. package/types/compile/utils/resolve-refs.d.ts.map +1 -0
  19. package/types/i18n/en.d.ts +3 -0
  20. package/types/i18n/en.d.ts.map +1 -0
  21. package/types/i18n/fr.d.ts +3 -0
  22. package/types/i18n/fr.d.ts.map +1 -0
  23. package/types/i18n/index.d.ts +3 -0
  24. package/types/i18n/index.d.ts.map +1 -0
  25. package/types/i18n/types.d.ts +35 -0
  26. package/types/i18n/types.d.ts.map +1 -0
  27. package/types/index.d.ts +5 -0
  28. package/types/index.d.ts.map +1 -0
  29. package/types/state/index.d.ts +275 -0
  30. package/types/state/index.d.ts.map +1 -0
  31. package/types/state/state-node.d.ts +35 -0
  32. package/types/state/state-node.d.ts.map +1 -0
  33. package/types/state/state-tree.d.ts +13 -0
  34. package/types/state/state-tree.d.ts.map +1 -0
  35. package/types/state/types.d.ts +174 -0
  36. package/types/state/types.d.ts.map +1 -0
  37. package/types/state/utils/display.d.ts +51 -0
  38. package/types/state/utils/display.d.ts.map +1 -0
  39. package/types/state/utils/immutable.d.ts +21 -0
  40. package/types/state/utils/immutable.d.ts.map +1 -0
  41. package/types/utils/build.d.ts +5 -0
  42. package/types/utils/build.d.ts.map +1 -0
  43. package/types/utils/clone.d.ts +3 -0
  44. package/types/utils/clone.d.ts.map +1 -0
  45. package/types/utils/doc-options.d.ts +14 -0
  46. package/types/utils/doc-options.d.ts.map +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@json-layout/core",
3
- "version": "0.16.4",
3
+ "version": "0.18.0",
4
4
  "description": "Compilation and state management utilities for JSON Layout.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -59,7 +59,7 @@
59
59
  },
60
60
  "homepage": "https://github.com/json-layout/json-layout#readme",
61
61
  "dependencies": {
62
- "@json-layout/vocabulary": "^0.16.0",
62
+ "@json-layout/vocabulary": "^0.17.0",
63
63
  "@types/markdown-it": "^13.0.1",
64
64
  "ajv": "^8.12.0",
65
65
  "ajv-errors": "^3.0.0",
@@ -143,7 +143,7 @@ export function compile (_schema, partialOptions = {}) {
143
143
  for (const expression of expressionsDefinitions) {
144
144
  const expressionsParams = expression.pure
145
145
  ? ['data', 'options', 'context', 'display', 'layout']
146
- : ['data', 'options', 'context', 'display', 'layout', 'parentData', 'rootData']
146
+ : ['data', 'options', 'context', 'display', 'layout', 'rootData', 'parent']
147
147
  /* if (expression.type === 'expr-eval') {
148
148
  expressions.push(exprEvalParser.parse(expression.expr).toJSFunction(expressionsParams.join(',')))
149
149
  } */
@@ -5,6 +5,11 @@ import { type ValidateFunction, type SchemaObject, type ErrorObject } from 'ajv/
5
5
  import { type Display } from '../state/utils/display.js'
6
6
  import { type LocaleMessages } from '../i18n/types.js'
7
7
 
8
+ export interface ParentContextExpression {
9
+ data: unknown
10
+ parent: ParentContextExpression | undefined | null
11
+ }
12
+
8
13
  export type CompiledExpression = (
9
14
  data: any,
10
15
  options: StateNodeOptionsBase,
@@ -12,7 +17,7 @@ export type CompiledExpression = (
12
17
  display: Display,
13
18
  layout: BaseCompObject,
14
19
  rootData?: unknown,
15
- parentData?: unknown
20
+ parent?: ParentContextExpression | null
16
21
  ) => any
17
22
 
18
23
  export interface CompileOptions {
@@ -23,6 +23,9 @@ export { Display } from './utils/display.js'
23
23
  * @typedef {import('./types.js').SectionNode} SectionNode
24
24
  * @typedef {import('./types.js').SelectNode} SelectNode
25
25
  * @typedef {import('./types.js').AutocompleteNode} AutocompleteNode
26
+ * @typedef {import('./types.js').RadioGroupNode} RadioGroupNode
27
+ * @typedef {import('./types.js').CheckboxGroupNode} CheckboxGroupNode
28
+ * @typedef {import('./types.js').SwitchGroupNode} SwitchGroupNode
26
29
  * @typedef {import('./types.js').ComboboxNode} ComboboxNode
27
30
  * @typedef {import('./types.js').CheckboxNode} CheckboxNode
28
31
  * @typedef {import('./types.js').SwitchNode} SwitchNode
@@ -353,6 +356,20 @@ export class StatefulLayout {
353
356
  return this._lastCreateStateTreeContext.nodes.findIndex(node => node.error && !node.validated) !== -1
354
357
  }
355
358
 
359
+ /**
360
+ * @private
361
+ * @param {StateNode} node
362
+ * @returns {import('../compile/types.js').ParentContextExpression | null}
363
+ */
364
+ getParentContextExpression (node) {
365
+ const parentNode = this._lastCreateStateTreeContext.nodes.find(n => n.fullKey === node.parentFullKey)
366
+ if (!parentNode) return null
367
+ return {
368
+ parent: this.getParentContextExpression(parentNode),
369
+ data: parentNode.data
370
+ }
371
+ }
372
+
356
373
  /**
357
374
  * @private
358
375
  * @param {StateNode} node
@@ -360,11 +377,8 @@ export class StatefulLayout {
360
377
  * @param {any} data
361
378
  * @returns {any}
362
379
  */
363
- evalNodeExpression = (node, expression, data) => {
364
- // const parentNode = this._stateTree.traverseNode(this._stateTree.root).find(n => n.fullKey === node.parentFullKey)
365
- const parentNode = this._lastCreateStateTreeContext.nodes.find(n => n.fullKey === node.parentFullKey)
366
- const parentData = parentNode ? parentNode.data : null
367
- return evalExpression(this.compiledLayout.expressions, expression, data, node.options, new Display(node.width), node.layout, parentData, this._data)
380
+ evalNodeExpression (node, expression, data) {
381
+ return evalExpression(this.compiledLayout.expressions, expression, data, node.options, new Display(node.width), node.layout, this._data, this.getParentContextExpression(node))
368
382
  }
369
383
 
370
384
  /**
@@ -171,13 +171,15 @@ const matchChildError = (error, skeleton, dataPath, parentDataPath) => {
171
171
  * @param {import('./utils/display.js').Display} display
172
172
  * @param {import('@json-layout/vocabulary').BaseCompObject} layout
173
173
  * @param {unknown} rootData
174
- * @param {unknown} parentData
174
+ * @param {import('../compile/types.js').ParentContextExpression | null} parentContext
175
175
  * @returns {any}
176
176
  */
177
- export function evalExpression (expressions, expression, data, options, display, layout, rootData, parentData) {
177
+ export function evalExpression (expressions, expression, data, options, display, layout, rootData, parentContext) {
178
178
  if (expression.ref === undefined) throw new Error('expression was not compiled : ' + JSON.stringify(expression))
179
179
  const compiledExpression = expressions[expression.ref]
180
- return expression.pure ? compiledExpression(data, options, options.context, display, layout) : compiledExpression(data, options, options.context, display, layout, rootData, parentData)
180
+ return expression.pure
181
+ ? compiledExpression(data, options, options.context, display, layout)
182
+ : compiledExpression(data, options, options.context, display, layout, rootData, parentContext)
181
183
  }
182
184
 
183
185
  /**
@@ -187,19 +189,19 @@ export function evalExpression (expressions, expression, data, options, display,
187
189
  * @param {import('./utils/display.js').Display} display
188
190
  * @param {unknown} data
189
191
  * @param {unknown} rootData
190
- * @param {unknown} parentData
192
+ * @param {import('../compile/types.js').ParentContextExpression | null} parentContext
191
193
  * @returns {import('@json-layout/vocabulary').BaseCompObject}
192
194
  */
193
- const getCompObject = (normalizedLayout, options, compiledLayout, display, data, rootData, parentData) => {
195
+ const getCompObject = (normalizedLayout, options, compiledLayout, display, data, rootData, parentContext) => {
194
196
  if (isSwitchStruct(normalizedLayout)) {
195
197
  for (const compObject of normalizedLayout.switch) {
196
- if (!compObject.if || !!evalExpression(compiledLayout.expressions, compObject.if, data, options, display, compObject, parentData, rootData)) {
198
+ if (!compObject.if || !!evalExpression(compiledLayout.expressions, compObject.if, data, options, display, compObject, rootData, parentContext)) {
197
199
  return compObject
198
200
  }
199
201
  }
200
202
  } else {
201
203
  if (normalizedLayout.if) {
202
- if (evalExpression(compiledLayout.expressions, normalizedLayout.if, data, options, display, normalizedLayout, parentData, rootData)) {
204
+ if (evalExpression(compiledLayout.expressions, normalizedLayout.if, data, options, display, normalizedLayout, rootData, parentContext)) {
203
205
  return normalizedLayout
204
206
  }
205
207
  } else {
@@ -223,7 +225,7 @@ const getCompObject = (normalizedLayout, options, compiledLayout, display, data,
223
225
  * @param {import('@json-layout/vocabulary').Child | null} childDefinition
224
226
  * @param {import('./utils/display.js').Display} parentDisplay
225
227
  * @param {unknown} data
226
- * @param {unknown} parentData
228
+ * @param {import('../compile/types.js').ParentContextExpression | null} parentContext
227
229
  * @param {import('./types.js').ValidationState} validationState
228
230
  * @param {import('./types.js').StateNode} [reusedNode]
229
231
  * @returns {import('./types.js').StateNode}
@@ -241,7 +243,7 @@ export function createStateNode (
241
243
  childDefinition,
242
244
  parentDisplay,
243
245
  data,
244
- parentData,
246
+ parentContext,
245
247
  validationState,
246
248
  reusedNode
247
249
  ) {
@@ -260,14 +262,14 @@ export function createStateNode (
260
262
  const normalizedLayout = childDefinition && childIsCompObject(childDefinition)
261
263
  ? childDefinition
262
264
  : compiledLayout.normalizedLayouts[skeleton.pointer]
263
- const layout = getCompObject(normalizedLayout, parentOptions, compiledLayout, parentDisplay, data, context.rootData, parentData)
265
+ const layout = getCompObject(normalizedLayout, parentOptions, compiledLayout, parentDisplay, data, context.rootData, parentContext)
264
266
  const [display, cols] = getChildDisplay(parentDisplay, childDefinition?.cols ?? layout.cols)
265
267
 
266
268
  const options = layout.getOptions
267
269
  ? produceNodeOptions(
268
270
  reusedNode?.options ?? /** @type {import('./types.js').StateNodeOptions} */({}),
269
271
  parentOptions,
270
- evalExpression(compiledLayout.expressions, layout.getOptions, data, parentOptions, display, layout, context.rootData, parentData)
272
+ evalExpression(compiledLayout.expressions, layout.getOptions, data, parentOptions, display, layout, context.rootData, parentContext)
271
273
  )
272
274
  : parentOptions
273
275
 
@@ -306,7 +308,7 @@ export function createStateNode (
306
308
  childLayout,
307
309
  display,
308
310
  isSameData ? objectData : objectData[childLayout.key],
309
- objectData,
311
+ { parent: parentContext, data: objectData },
310
312
  validationState,
311
313
  reusedNode?.children?.[i]
312
314
  )
@@ -346,7 +348,7 @@ export function createStateNode (
346
348
  null,
347
349
  display,
348
350
  data,
349
- data,
351
+ { parent: parentContext, data },
350
352
  validationState,
351
353
  reusedNode?.children?.[0]
352
354
  )
@@ -377,7 +379,7 @@ export function createStateNode (
377
379
  null,
378
380
  display,
379
381
  itemData,
380
- arrayData,
382
+ { parent: parentContext, data: arrayData },
381
383
  validationState,
382
384
  reusedNode?.children?.[i]
383
385
  )
@@ -425,12 +427,12 @@ export function createStateNode (
425
427
 
426
428
  if (layout.getConstData) {
427
429
  if (!context.rehydrate) {
428
- nodeData = evalExpression(compiledLayout.expressions, layout.getConstData, nodeData, options, display, layout, context.rootData, parentData)
430
+ nodeData = evalExpression(compiledLayout.expressions, layout.getConstData, nodeData, options, display, layout, context.rootData, parentContext)
429
431
  }
430
432
  } else {
431
433
  if (layout.getDefaultData && useDefaultData(nodeData, layout, options)) {
432
434
  if (!context.rehydrate) {
433
- nodeData = evalExpression(compiledLayout.expressions, layout.getDefaultData, nodeData, options, display, layout, context.rootData, parentData)
435
+ nodeData = evalExpression(compiledLayout.expressions, layout.getDefaultData, nodeData, options, display, layout, context.rootData, parentContext)
434
436
  }
435
437
  } else {
436
438
  if (isDataEmpty(nodeData)) {
@@ -450,7 +452,7 @@ export function createStateNode (
450
452
 
451
453
  let props
452
454
  if (layout.getProps) {
453
- props = evalExpression(compiledLayout.expressions, layout.getProps, nodeData, options, display, layout, context.rootData, parentData)
455
+ props = evalExpression(compiledLayout.expressions, layout.getProps, nodeData, options, display, layout, context.rootData, parentContext)
454
456
  }
455
457
 
456
458
  const autofocus = isFocusableLayout(layout, compiledLayout.components) && !options.readOnly && !options.summary && context.autofocusTarget === fullKey
@@ -112,6 +112,8 @@ export type StatefulLayoutOptions = StateNodeOptions & {
112
112
  width: number
113
113
  }
114
114
 
115
+ // TODO: compose types based on component attributes (composite, itemsBased, etc.) ?
116
+
115
117
  export type TextFieldNode = Omit<StateNode, 'children'> & { layout: TextField, data: string | undefined | null }
116
118
 
117
119
  export type TextareaNode = Omit<StateNode, 'children'> & { layout: Textarea, data: string | undefined | null }
@@ -140,6 +142,12 @@ export type SelectNode = Omit<StateNode, 'children'> & { layout: Select, data: a
140
142
 
141
143
  export type AutocompleteNode = Omit<StateNode, 'children'> & { layout: Autocomplete, data: any }
142
144
 
145
+ export type RadioGroupNode = Omit<StateNode, 'children'> & { layout: Select, data: any }
146
+
147
+ export type CheckboxGroupNode = Omit<StateNode, 'children'> & { layout: Select, data: any }
148
+
149
+ export type SwitchGroupNode = Omit<StateNode, 'children'> & { layout: Select, data: any }
150
+
143
151
  export type TabsNode = StateNode & { layout: Tabs, children: StateNode[] }
144
152
 
145
153
  export type VerticalTabsNode = StateNode & { layout: VerticalTabs, children: StateNode[] }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @param {object} _schema
3
+ * @param {PartialCompileOptions} [partialOptions]
4
+ * @returns {CompiledLayout}
5
+ */
6
+ export function compile(_schema: object, partialOptions?: import("./types.js").PartialCompileOptions | undefined): CompiledLayout;
7
+ export { resolveRefs } from "./utils/resolve-refs.js";
8
+ /** @type {(draft: PartialCompileOptions, newOptions: PartialCompileOptions) => PartialCompileOptions} */
9
+ export const produceCompileOptions: (draft: PartialCompileOptions, newOptions: PartialCompileOptions) => PartialCompileOptions;
10
+ export type SkeletonTree = import('./types.js').SkeletonTree;
11
+ export type SkeletonNode = import('./types.js').SkeletonNode;
12
+ export type CompiledLayout = import('./types.js').CompiledLayout;
13
+ export type CompileOptions = import('./types.js').CompileOptions;
14
+ export type PartialCompileOptions = import('./types.js').PartialCompileOptions;
15
+ export type CompiledExpression = import('./types.js').CompiledExpression;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compile/index.js"],"names":[],"mappings":"AAgGA;;;;GAIG;AACH,iCAJW,MAAM,4EAEJ,cAAc,CAkF1B;;AAnJD,yGAAyG;AACzG,4CADmB,qBAAqB,cAAc,qBAAqB,KAAK,qBAAqB,CAQnG;2BAxBW,OAAO,YAAY,EAAE,YAAY;2BACjC,OAAO,YAAY,EAAE,YAAY;6BACjC,OAAO,YAAY,EAAE,cAAc;6BACnC,OAAO,YAAY,EAAE,cAAc;oCACnC,OAAO,YAAY,EAAE,qBAAqB;iCAC1C,OAAO,YAAY,EAAE,kBAAkB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {import('./index.js').CompiledLayout} compiledLayout
3
+ * @returns {string}
4
+ */
5
+ export function serialize(compiledLayout: import('./index.js').CompiledLayout): string;
6
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/compile/serialize.js"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,0CAHW,OAAO,YAAY,EAAE,cAAc,GACjC,MAAM,CA+ElB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @param {any} schema
3
+ * @param {import('./index.js').CompileOptions} options
4
+ * @param {string[]} validates
5
+ * @param {Record<string, string[]>} validationErrors
6
+ * @param {Record<string, import('@json-layout/vocabulary').NormalizedLayout>} normalizedLayouts
7
+ * @param {import('@json-layout/vocabulary').Expression[]} expressions
8
+ * @param {string | number} key
9
+ * @param {string} pointer
10
+ * @param {string | null} parentPointer
11
+ * @param {boolean} required
12
+ * @returns {import('./types.js').SkeletonNode}
13
+ */
14
+ export function makeSkeletonNode(schema: any, options: import('./index.js').CompileOptions, validates: string[], validationErrors: Record<string, string[]>, normalizedLayouts: Record<string, import('@json-layout/vocabulary').NormalizedLayout>, expressions: import('@json-layout/vocabulary').Expression[], key: string | number, pointer: string, parentPointer: string | null, required: boolean): import('./types.js').SkeletonNode;
15
+ //# sourceMappingURL=skeleton-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton-node.d.ts","sourceRoot":"","sources":["../../src/compile/skeleton-node.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,yCAZW,GAAG,WACH,OAAO,YAAY,EAAE,cAAc,aACnC,MAAM,EAAE,oBACR,OAAO,MAAM,EAAE,MAAM,EAAE,CAAC,qBACxB,OAAO,MAAM,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,eAClE,OAAO,yBAAyB,EAAE,UAAU,EAAE,OAC9C,MAAM,GAAG,MAAM,WACf,MAAM,iBACN,MAAM,GAAG,IAAI,YACb,OAAO,GACL,OAAO,YAAY,EAAE,YAAY,CA4N7C"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @param {any} schema
3
+ * @param {import('./index.js').CompileOptions} options
4
+ * @param {string[]} validates
5
+ * @param {Record<string, string[]>} validationErrors
6
+ * @param {Record<string, import('@json-layout/vocabulary').NormalizedLayout>} normalizedLayouts
7
+ * @param {import('@json-layout/vocabulary').Expression[]} expressions
8
+ * @param {string} pointer
9
+ * @param {string} title
10
+ * @returns {import('./types.js').SkeletonTree}
11
+ */
12
+ export function makeSkeletonTree(schema: any, options: import('./index.js').CompileOptions, validates: string[], validationErrors: Record<string, string[]>, normalizedLayouts: Record<string, import('@json-layout/vocabulary').NormalizedLayout>, expressions: import('@json-layout/vocabulary').Expression[], pointer: string, title: string): import('./types.js').SkeletonTree;
13
+ //# sourceMappingURL=skeleton-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton-tree.d.ts","sourceRoot":"","sources":["../../src/compile/skeleton-tree.js"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,yCAVW,GAAG,WACH,OAAO,YAAY,EAAE,cAAc,aACnC,MAAM,EAAE,oBACR,OAAO,MAAM,EAAE,MAAM,EAAE,CAAC,qBACxB,OAAO,MAAM,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,eAClE,OAAO,yBAAyB,EAAE,UAAU,EAAE,WAC9C,MAAM,SACN,MAAM,GACJ,OAAO,YAAY,EAAE,YAAY,CAe7C"}
@@ -0,0 +1,54 @@
1
+ import type ajvModule from 'ajv/dist/2019.js';
2
+ import type MarkdownIt from 'markdown-it';
3
+ import { type ComponentInfo, type BaseCompObject, type NormalizedLayout, type StateNodeOptionsBase } from '@json-layout/vocabulary';
4
+ import { type ValidateFunction, type SchemaObject } from 'ajv/dist/2019.js';
5
+ import { type Display } from '../state/utils/display.js';
6
+ import { type LocaleMessages } from '../i18n/types.js';
7
+ export interface ParentContextExpression {
8
+ data: unknown;
9
+ parent: ParentContextExpression | undefined | null;
10
+ }
11
+ export type CompiledExpression = (data: any, options: StateNodeOptionsBase, context: object, display: Display, layout: BaseCompObject, rootData?: unknown, parent?: ParentContextExpression | null) => any;
12
+ export interface CompileOptions {
13
+ ajv: ajvModule.default;
14
+ ajvOptions?: ajvModule.Options;
15
+ code: boolean;
16
+ markdown: (text: string) => string;
17
+ markdownItOptions?: MarkdownIt.Options;
18
+ locale: string;
19
+ messages: LocaleMessages;
20
+ optionsKeys: string[];
21
+ components: Record<string, ComponentInfo>;
22
+ }
23
+ export type PartialCompileOptions = Partial<Omit<CompileOptions, 'messages'>> & {
24
+ messages?: Partial<LocaleMessages>;
25
+ components?: Record<string, Omit<ComponentInfo, 'name'>>;
26
+ };
27
+ export interface CompiledLayout {
28
+ options?: CompileOptions;
29
+ schema?: SchemaObject;
30
+ skeletonTree: SkeletonTree;
31
+ validates: Record<string, ValidateFunction>;
32
+ validationErrors: Record<string, string[]>;
33
+ normalizedLayouts: Record<string, NormalizedLayout>;
34
+ expressions: CompiledExpression[];
35
+ locale: string;
36
+ messages: LocaleMessages;
37
+ components: Record<string, Omit<ComponentInfo, 'schema'>>;
38
+ localizeErrors: (errors: ajvModule.ErrorObject[]) => void;
39
+ }
40
+ export interface SkeletonTree {
41
+ title: string;
42
+ root: SkeletonNode;
43
+ }
44
+ export interface SkeletonNode {
45
+ key: string | number;
46
+ pointer: string;
47
+ parentPointer: string | null;
48
+ pure: boolean;
49
+ propertyKeys: string[];
50
+ roPropertyKeys: string[];
51
+ children?: SkeletonNode[];
52
+ childrenTrees?: SkeletonTree[];
53
+ }
54
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compile/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @param {import('ajv').SchemaObject} schema
3
+ * @param {ajvModule.default} ajv
4
+ * @param {string} locale
5
+ * @returns {import('ajv').SchemaObject}
6
+ */
7
+ export function resolveRefs(schema: import('ajv').SchemaObject, ajv: ajvModule.default, locale?: string): import('ajv').SchemaObject;
8
+ import ajvModule from 'ajv/dist/2019.js';
9
+ //# sourceMappingURL=resolve-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-refs.d.ts","sourceRoot":"","sources":["../../../src/compile/utils/resolve-refs.js"],"names":[],"mappings":"AA2DA;;;;;GAKG;AACH,oCALW,OAAO,KAAK,EAAE,YAAY,OAC1B,UAAU,OAAO,WACjB,MAAM,GACJ,OAAO,KAAK,EAAE,YAAY,CAKtC;sBApEqB,kBAAkB"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import('./types.js').LocaleMessages;
2
+ export default _default;
3
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.js"],"names":[],"mappings":"wBAAW,OAAO,YAAY,EAAE,cAAc"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import('./types.js').LocaleMessages;
2
+ export default _default;
3
+ //# sourceMappingURL=fr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/i18n/fr.js"],"names":[],"mappings":"wBAAW,OAAO,YAAY,EAAE,cAAc"}
@@ -0,0 +1,3 @@
1
+ declare const _default: Record<string, import('./types.js').LocaleMessages>;
2
+ export default _default;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.js"],"names":[],"mappings":"wBAGW,OAAO,MAAM,EAAE,OAAO,YAAY,EAAE,cAAc,CAAC"}
@@ -0,0 +1,35 @@
1
+ export interface CompileOptionsMessages {
2
+ errorOneOf: string;
3
+ errorRequired: string;
4
+ }
5
+ export interface StateOptionsMessages {
6
+ addItem: string;
7
+ delete: string;
8
+ edit: string;
9
+ duplicate: string;
10
+ sort: string;
11
+ up: string;
12
+ down: string;
13
+ showHelp: string;
14
+ mdeLink1: string;
15
+ mdeLink2: string;
16
+ mdeImg1: string;
17
+ mdeImg2: string;
18
+ mdeTable1: string;
19
+ mdeTable2: string;
20
+ bold: string;
21
+ italic: string;
22
+ heading: string;
23
+ quote: string;
24
+ unorderedList: string;
25
+ orderedList: string;
26
+ createLink: string;
27
+ insertImage: string;
28
+ createTable: string;
29
+ preview: string;
30
+ mdeGuide: string;
31
+ undo: string;
32
+ redo: string;
33
+ }
34
+ export type LocaleMessages = CompileOptionsMessages & StateOptionsMessages;
35
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,oBAAoB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from "./compile/index.js";
2
+ export * from "./state/index.js";
3
+ export { default as i18n } from "./i18n/index.js";
4
+ export { default as clone } from "./utils/clone.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,275 @@
1
+ export { Display } from "./utils/display.js";
2
+ /**
3
+ * @typedef {import('./types.js').StateNode} StateNode
4
+ * @typedef {import('./types.js').StateTree} StateTree
5
+ * @typedef {import('./types.js').StatefulLayoutOptions} StatefulLayoutOptions
6
+ * @typedef {import('./types.js').StatefulLayoutEvents} StatefulLayoutEvents
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').FileRef} FileRef
33
+ */
34
+ /** @type {(node: StateNode | undefined) => node is SectionNode} */
35
+ export const isSection: (node: StateNode | undefined) => node is import("./types.js").SectionNode;
36
+ /** @type {(node: StateNode | undefined, components: Record<string, import('@json-layout/vocabulary').ComponentInfo>) => node is SelectNode | ComboboxNode | AutocompleteNode} */
37
+ export const isItemsNode: (node: StateNode | undefined, components: Record<string, import('@json-layout/vocabulary').ComponentInfo>) => node is import("./types.js").SelectNode | import("./types.js").AutocompleteNode | import("./types.js").ComboboxNode;
38
+ export class StatefulLayout {
39
+ /**
40
+ * @param {import("../index.js").CompiledLayout} compiledLayout
41
+ * @param {import("../index.js").SkeletonTree} skeletonTree
42
+ * @param {Partial<StatefulLayoutOptions>} options
43
+ * @param {unknown} [data]
44
+ */
45
+ constructor(compiledLayout: import("../index.js").CompiledLayout, skeletonTree: import("../index.js").SkeletonTree, options: Partial<StatefulLayoutOptions>, data?: unknown);
46
+ /**
47
+ * @readonly
48
+ * @type {import('mitt').Emitter<StatefulLayoutEvents>}
49
+ */
50
+ readonly events: import('mitt').Emitter<StatefulLayoutEvents>;
51
+ /**
52
+ * @private
53
+ * @readonly
54
+ * @type {import('../index.js').CompiledLayout}
55
+ */
56
+ private readonly _compiledLayout;
57
+ get compiledLayout(): import("../compile/types.js").CompiledLayout;
58
+ /**
59
+ * @private
60
+ * @type {StateTree}
61
+ */
62
+ private _stateTree;
63
+ get stateTree(): import("./types.js").StateTree;
64
+ /**
65
+ * @readonly
66
+ * @type {import('../index.js').SkeletonTree}
67
+ */
68
+ readonly skeletonTree: import('../index.js').SkeletonTree;
69
+ /**
70
+ * @private
71
+ * @type {Display}
72
+ */
73
+ private _display;
74
+ get display(): Display;
75
+ /**
76
+ * @private
77
+ * @type {import('./types.js').ValidationState}
78
+ */
79
+ private _validationState;
80
+ /**
81
+ * @private
82
+ * @param {Partial<import('./types.js').ValidationState>} validationState
83
+ */
84
+ set validationState(arg: import("./types.js").ValidationState);
85
+ /**
86
+ * @returns {import('./types.js').ValidationState}
87
+ */
88
+ get validationState(): import("./types.js").ValidationState;
89
+ /**
90
+ * @private
91
+ * @type {StatefulLayoutOptions}
92
+ */
93
+ private _options;
94
+ /**
95
+ * @param {Partial<StatefulLayoutOptions>} options
96
+ */
97
+ set options(arg: import("./types.js").StatefulLayoutOptions);
98
+ /**
99
+ * @returns {StatefulLayoutOptions}
100
+ */
101
+ get options(): import("./types.js").StatefulLayoutOptions;
102
+ /**
103
+ * @private
104
+ * @type {unknown}
105
+ */
106
+ private _data;
107
+ set data(arg: unknown);
108
+ get data(): unknown;
109
+ /**
110
+ * @private
111
+ * @type {unknown}
112
+ */
113
+ private _previousData;
114
+ /**
115
+ * @private
116
+ * @type {boolean}
117
+ */
118
+ private _dataWaitingForBlur;
119
+ /**
120
+ * @private
121
+ * @type {CreateStateTreeContext}
122
+ */
123
+ private _lastCreateStateTreeContext;
124
+ /**
125
+ * @private
126
+ * @type {string | null}
127
+ */
128
+ private _autofocusTarget;
129
+ /**
130
+ * @private
131
+ * @type {string | null}
132
+ */
133
+ private _previousAutofocusTarget;
134
+ /**
135
+ * @type {FileRef[]}
136
+ */
137
+ files: FileRef[];
138
+ /**
139
+ * @type {Record<string, number>}
140
+ */
141
+ activeItems: Record<string, number>;
142
+ /**
143
+ * @private
144
+ * @param {Partial<StatefulLayoutOptions>} options
145
+ */
146
+ private prepareOptions;
147
+ /**
148
+ * @private
149
+ */
150
+ private initValidationState;
151
+ /**
152
+ * @private
153
+ */
154
+ private updateState;
155
+ /**
156
+ * @private
157
+ */
158
+ private emitData;
159
+ /**
160
+ * @private
161
+ * @param {boolean} rehydrate
162
+ */
163
+ private createStateTree;
164
+ validate(): void;
165
+ resetValidation(): void;
166
+ /**
167
+ * @returns {boolean}
168
+ */
169
+ get valid(): boolean;
170
+ /**
171
+ * @returns {string[]}
172
+ */
173
+ get errors(): string[];
174
+ /**
175
+ * @returns {boolean}
176
+ */
177
+ get hasHiddenError(): boolean;
178
+ /**
179
+ * @private
180
+ * @param {StateNode} node
181
+ * @returns {import('../compile/types.js').ParentContextExpression | null}
182
+ */
183
+ private getParentContextExpression;
184
+ /**
185
+ * @private
186
+ * @param {StateNode} node
187
+ * @param {import('@json-layout/vocabulary').Expression} expression
188
+ * @param {any} data
189
+ * @returns {any}
190
+ */
191
+ private evalNodeExpression;
192
+ /**
193
+ * @private
194
+ * @param {StateNode} node
195
+ * @param {unknown} data
196
+ * @param {boolean} [validated]
197
+ * @param {number} [activateKey]
198
+ */
199
+ private applyInput;
200
+ /**
201
+ * @private
202
+ * @type {null | [StateNode, unknown, boolean, number | undefined, ReturnType<typeof setTimeout>]}
203
+ */
204
+ private debouncedInput;
205
+ applyDebouncedInput(): void;
206
+ /**
207
+ * @param {StateNode} node
208
+ * @param {unknown} data
209
+ * @param {number} [activateKey]
210
+ */
211
+ input(node: StateNode, data: unknown, activateKey?: number | undefined): void;
212
+ /**
213
+ * @param {StateNode} node
214
+ */
215
+ blur(node: StateNode): void;
216
+ /**
217
+ * @param {StateNode} node
218
+ */
219
+ validateNodeRecurse(node: StateNode): void;
220
+ /**
221
+ * @private
222
+ * @param {StateNode} node
223
+ * @param {string} q
224
+ * @returns {Promise<[import('@json-layout/vocabulary').SelectItems, boolean]>}
225
+ */
226
+ private getSourceItems;
227
+ /**
228
+ * @param {StateNode} node
229
+ * @param {string} q
230
+ * @returns {Promise<import('@json-layout/vocabulary').SelectItems>}
231
+ */
232
+ getItems(node: StateNode, q?: string): Promise<import('@json-layout/vocabulary').SelectItems>;
233
+ /**
234
+ * @param {StateNode} node
235
+ * @param {number} key
236
+ */
237
+ activateItem(node: StateNode, key: number): void;
238
+ /**
239
+ * @param {StateNode} node
240
+ */
241
+ deactivateItem(node: StateNode): void;
242
+ handleAutofocus(): void;
243
+ }
244
+ export type StateNode = import('./types.js').StateNode;
245
+ export type StateTree = import('./types.js').StateTree;
246
+ export type StatefulLayoutOptions = import('./types.js').StatefulLayoutOptions;
247
+ export type StatefulLayoutEvents = import('./types.js').StatefulLayoutEvents;
248
+ export type CreateStateTreeContext = import('./types.js').CreateStateTreeContext;
249
+ export type TextFieldNode = import('./types.js').TextFieldNode;
250
+ export type TextareaNode = import('./types.js').TextareaNode;
251
+ export type NumberFieldNode = import('./types.js').NumberFieldNode;
252
+ export type SliderNode = import('./types.js').SliderNode;
253
+ export type SectionNode = import('./types.js').SectionNode;
254
+ export type SelectNode = import('./types.js').SelectNode;
255
+ export type AutocompleteNode = import('./types.js').AutocompleteNode;
256
+ export type RadioGroupNode = import('./types.js').RadioGroupNode;
257
+ export type CheckboxGroupNode = import('./types.js').CheckboxGroupNode;
258
+ export type SwitchGroupNode = import('./types.js').SwitchGroupNode;
259
+ export type ComboboxNode = import('./types.js').ComboboxNode;
260
+ export type CheckboxNode = import('./types.js').CheckboxNode;
261
+ export type SwitchNode = import('./types.js').SwitchNode;
262
+ export type ColorPickerNode = import('./types.js').ColorPickerNode;
263
+ export type DatePickerNode = import('./types.js').DatePickerNode;
264
+ export type DateTimePickerNode = import('./types.js').DateTimePickerNode;
265
+ export type TimePickerNode = import('./types.js').TimePickerNode;
266
+ export type ExpansionPanelsNode = import('./types.js').ExpansionPanelsNode;
267
+ export type TabsNode = import('./types.js').TabsNode;
268
+ export type VerticalTabsNode = import('./types.js').VerticalTabsNode;
269
+ export type StepperNode = import('./types.js').StepperNode;
270
+ export type OneOfSelectNode = import('./types.js').OneOfSelectNode;
271
+ export type ListNode = import('./types.js').ListNode;
272
+ export type FileInputNode = import('./types.js').FileInputNode;
273
+ export type FileRef = import('./types.js').FileRef;
274
+ import { Display } from './utils/display.js';
275
+ //# 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,35 @@
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 {unknown} rootData
9
+ * @param {import('../compile/types.js').ParentContextExpression | null} parentContext
10
+ * @returns {any}
11
+ */
12
+ 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, rootData: unknown, parentContext: import('../compile/types.js').ParentContextExpression | null): any;
13
+ /**
14
+ *
15
+ * @param {import('./types.js').CreateStateTreeContext} context
16
+ * @param {import('./types.js').StateNodeOptions} parentOptions
17
+ * @param {import('../index.js').CompiledLayout} compiledLayout
18
+ * @param {string | number} key
19
+ * @param {string} fullKey
20
+ * @param {string | null} parentFullKey
21
+ * @param {string} dataPath
22
+ * @param {string | null} parentDataPath
23
+ * @param {import('../index.js').SkeletonNode} skeleton
24
+ * @param {import('@json-layout/vocabulary').Child | null} childDefinition
25
+ * @param {import('./utils/display.js').Display} parentDisplay
26
+ * @param {unknown} data
27
+ * @param {import('../compile/types.js').ParentContextExpression | null} parentContext
28
+ * @param {import('./types.js').ValidationState} validationState
29
+ * @param {import('./types.js').StateNode} [reusedNode]
30
+ * @returns {import('./types.js').StateNode}
31
+ */
32
+ 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: unknown, parentContext: import('../compile/types.js').ParentContextExpression | null, validationState: import('./types.js').ValidationState, reusedNode?: import("./types.js").StateNode | undefined): import('./types.js').StateNode;
33
+ /** @type {(draft: any, node: import('./types.js').StateNode, data: unknown) => any} */
34
+ export const producePatchedData: (draft: any, node: import('./types.js').StateNode, data: unknown) => any;
35
+ //# 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":"AAqKA;;;;;;;;;;GAUG;AACH,4CAVW,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,YAChD,OAAO,iBACP,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,GAC1D,GAAG,CAQf;AA+BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,yCAjBW,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,OAAO,iBACP,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,mBAC5D,OAAO,YAAY,EAAE,eAAe,4DAElC,OAAO,YAAY,EAAE,SAAS,CA2P1C;AAED,uFAAuF;AACvF,yCADmB,GAAG,QAAQ,OAAO,YAAY,EAAE,SAAS,QAAQ,OAAO,KAAK,GAAG,CAOjF"}
@@ -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 | undefined): 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":"AA0BA;;;;;;;;;;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,iEAElC,OAAO,YAAY,EAAE,SAAS,CAmD1C"}
@@ -0,0 +1,174 @@
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 Child, type StateNodePropsLib } 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
+ validated: boolean;
18
+ width: number;
19
+ options: StateNodeOptions;
20
+ messages: LocaleMessages;
21
+ autofocus?: boolean;
22
+ autofocusChild?: string | number;
23
+ props?: StateNodePropsLib;
24
+ children?: StateNode[];
25
+ }
26
+ export interface StateTree {
27
+ root: StateNode;
28
+ valid: boolean;
29
+ }
30
+ export interface CreateStateTreeContext {
31
+ errors?: ErrorObject[];
32
+ additionalPropertiesErrors?: ErrorObject[];
33
+ files: FileRef[];
34
+ activeItems: Record<string, number>;
35
+ autofocusTarget: string | null;
36
+ initial: boolean;
37
+ rehydrate: boolean;
38
+ cacheKeys: Record<string, StateNodeCacheKey>;
39
+ rootData: unknown;
40
+ nodes: StateNode[];
41
+ }
42
+ export interface FileRef {
43
+ file: File;
44
+ dataPath: string;
45
+ }
46
+ export type StateNodeCacheKey = [
47
+ StateNodeOptions,
48
+ CompiledLayout,
49
+ string,
50
+ SkeletonNode,
51
+ Child | null,
52
+ number,
53
+ ValidationState,
54
+ Record<string, number>,
55
+ boolean,
56
+ unknown
57
+ ];
58
+ export interface ValidationState {
59
+ initialized: boolean;
60
+ validatedForm: boolean;
61
+ validatedChildren: string[];
62
+ }
63
+ export type StatefulLayoutEvents = {
64
+ data: any;
65
+ update: StatefulLayout;
66
+ autofocus: string;
67
+ };
68
+ export type StateNodeOptions = Required<StateNodeOptionsBase & {
69
+ context: Record<string, any>;
70
+ messages: LocaleMessages;
71
+ }>;
72
+ export type StatefulLayoutOptions = StateNodeOptions & {
73
+ width: number;
74
+ };
75
+ export type TextFieldNode = Omit<StateNode, 'children'> & {
76
+ layout: TextField;
77
+ data: string | undefined | null;
78
+ };
79
+ export type TextareaNode = Omit<StateNode, 'children'> & {
80
+ layout: Textarea;
81
+ data: string | undefined | null;
82
+ };
83
+ export type NumberFieldNode = Omit<StateNode, 'children'> & {
84
+ layout: NumberField;
85
+ data: number | undefined | null;
86
+ };
87
+ export type SliderNode = Omit<StateNode, 'children'> & {
88
+ layout: Slider;
89
+ data: number | undefined | null;
90
+ };
91
+ export type CheckboxNode = Omit<StateNode, 'children'> & {
92
+ layout: Checkbox;
93
+ data: boolean | undefined | null;
94
+ };
95
+ export type SwitchNode = Omit<StateNode, 'children'> & {
96
+ layout: Switch;
97
+ data: boolean | undefined | null;
98
+ };
99
+ export type DatePickerNode = Omit<StateNode, 'children'> & {
100
+ layout: DatePicker;
101
+ data: string | undefined | null;
102
+ };
103
+ export type DateTimePickerNode = Omit<StateNode, 'children'> & {
104
+ layout: DateTimePicker;
105
+ data: string | undefined | null;
106
+ };
107
+ export type TimePickerNode = Omit<StateNode, 'children'> & {
108
+ layout: TimePicker;
109
+ data: string | undefined | null;
110
+ };
111
+ export type ColorPickerNode = Omit<StateNode, 'children'> & {
112
+ layout: ColorPicker;
113
+ data: string | undefined | null;
114
+ };
115
+ export type SectionNode = StateNode & {
116
+ layout: Section;
117
+ children: StateNode[];
118
+ };
119
+ export type OneOfSelectNode = StateNode & {
120
+ layout: OneOfSelect;
121
+ data: Record<string, unknown>;
122
+ childrenTrees: SkeletonTree[];
123
+ };
124
+ export type SelectNode = Omit<StateNode, 'children'> & {
125
+ layout: Select;
126
+ data: any;
127
+ };
128
+ export type AutocompleteNode = Omit<StateNode, 'children'> & {
129
+ layout: Autocomplete;
130
+ data: any;
131
+ };
132
+ export type RadioGroupNode = Omit<StateNode, 'children'> & {
133
+ layout: Select;
134
+ data: any;
135
+ };
136
+ export type CheckboxGroupNode = Omit<StateNode, 'children'> & {
137
+ layout: Select;
138
+ data: any;
139
+ };
140
+ export type SwitchGroupNode = Omit<StateNode, 'children'> & {
141
+ layout: Select;
142
+ data: any;
143
+ };
144
+ export type TabsNode = StateNode & {
145
+ layout: Tabs;
146
+ children: StateNode[];
147
+ };
148
+ export type VerticalTabsNode = StateNode & {
149
+ layout: VerticalTabs;
150
+ children: StateNode[];
151
+ };
152
+ export type ExpansionPanelsNode = StateNode & {
153
+ layout: ExpansionPanels;
154
+ children: StateNode[];
155
+ };
156
+ export type StepperNode = StateNode & {
157
+ layout: Stepper;
158
+ children: StateNode[];
159
+ };
160
+ export type ListNode = StateNode & {
161
+ layout: List;
162
+ data: any[];
163
+ children: StateNode[];
164
+ childrenTrees: SkeletonTree[];
165
+ };
166
+ export type ComboboxNode = Omit<StateNode, 'children'> & {
167
+ layout: Combobox;
168
+ data: any[];
169
+ };
170
+ export type FileInputNode = Omit<StateNode, 'children'> & {
171
+ layout: FileInput;
172
+ data: object | undefined | null;
173
+ };
174
+ //# 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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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @param {Display} parentDisplay
3
+ * @param {import("@json-layout/vocabulary").ColsObj | undefined} colsObj
4
+ * @returns {[Display, import("@json-layout/vocabulary").Cols]}
5
+ */
6
+ export function getChildDisplay(parentDisplay: Display, colsObj: import("@json-layout/vocabulary").ColsObj | undefined): [Display, import("@json-layout/vocabulary").Cols];
7
+ export class Display {
8
+ /**
9
+ * @param {number} width
10
+ */
11
+ constructor(width: number);
12
+ /**
13
+ * @readonly
14
+ * @type {number}
15
+ */
16
+ readonly width: number;
17
+ /** @returns {BreakPointName} */
18
+ get name(): BreakPointName;
19
+ /** @returns {boolean} */
20
+ get xs(): boolean;
21
+ /** @returns {boolean} */
22
+ get sm(): boolean;
23
+ /** @returns {boolean} */
24
+ get smAndDown(): boolean;
25
+ /** @returns {boolean} */
26
+ get smAndUp(): boolean;
27
+ /** @returns {boolean} */
28
+ get md(): boolean;
29
+ /** @returns {boolean} */
30
+ get mdAndDown(): boolean;
31
+ /** @returns {boolean} */
32
+ get mobile(): boolean;
33
+ /** @returns {boolean} */
34
+ get mdAndUp(): boolean;
35
+ /** @returns {boolean} */
36
+ get lg(): boolean;
37
+ /** @returns {boolean} */
38
+ get lgAndDown(): boolean;
39
+ /** @returns {boolean} */
40
+ get lgAndUp(): boolean;
41
+ /** @returns {boolean} */
42
+ get xl(): boolean;
43
+ /** @returns {boolean} */
44
+ get xlAndDown(): boolean;
45
+ /** @returns {boolean} */
46
+ get xlAndUp(): boolean;
47
+ /** @returns {boolean} */
48
+ get xxl(): boolean;
49
+ }
50
+ export type BreakPointName = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
51
+ //# sourceMappingURL=display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../../src/state/utils/display.js"],"names":[],"mappings":"AAoHA;;;;GAIG;AACH,+CAJW,OAAO,WACP,OAAO,yBAAyB,EAAE,OAAO,GAAG,SAAS,GACnD,CAAC,OAAO,EAAE,OAAO,yBAAyB,EAAE,IAAI,CAAC,CAY7D;AAjHD;IAOE;;OAEG;IACH,mBAFW,MAAM,EAIhB;IAXD;;;OAGG;IACH,gBAFU,MAAM,CAEX;IASL,gCAAgC;IAChC,2BAKC;IAED,yBAAyB;IACzB,kBAEC;IAED,yBAAyB;IACzB,kBAEC;IAED,yBAAyB;IACzB,yBAEC;IAED,yBAAyB;IACzB,uBAEC;IAED,yBAAyB;IACzB,kBAEC;IAED,yBAAyB;IACzB,yBAEC;IAED,yBAAyB;IACzB,sBAEC;IAED,yBAAyB;IACzB,uBAEC;IAED,yBAAyB;IACzB,kBAEC;IAED,yBAAyB;IACzB,yBAEC;IAED,yBAAyB;IACzB,uBAEC;IAED,yBAAyB;IACzB,kBAEC;IAED,yBAAyB;IACzB,yBAEC;IAED,yBAAyB;IACzB,uBAEC;IAED,yBAAyB;IACzB,mBAEC;CACF;6BAhHa,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @template ItemType
3
+ * @param {ItemType[]} previousArray
4
+ * @param {ItemType[]} newArray
5
+ * @returns {ItemType[]}
6
+ */
7
+ export function shallowProduceArray<ItemType>(previousArray?: ItemType[], newArray?: ItemType[]): ItemType[];
8
+ /**
9
+ * @param {Record<string, any>} previousObj
10
+ * @param {Record<string, any>} newObj
11
+ * @returns {Record<string, any>}
12
+ */
13
+ export function shallowProduceObject(previousObj?: Record<string, any>, newObj?: Record<string, any>): Record<string, any>;
14
+ /**
15
+ * @template ItemType
16
+ * @param {any[]} a1
17
+ * @param {any[]} a2
18
+ * @returns {boolean}
19
+ */
20
+ export function shallowEqualArray<ItemType>(a1?: any[], a2?: any[]): boolean;
21
+ //# sourceMappingURL=immutable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"immutable.d.ts","sourceRoot":"","sources":["../../../src/state/utils/immutable.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,6GAIC;AAED;;;;GAIG;AACH,mDAJW,OAAO,MAAM,EAAE,GAAG,CAAC,WACnB,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,MAAM,EAAE,GAAG,CAAC,CAW/B;AAED;;;;;GAKG;AACH,iDAJW,GAAG,EAAE,OACL,GAAG,EAAE,GACH,OAAO,CAMnB"}
@@ -0,0 +1,5 @@
1
+ /** @type {string[]} */
2
+ export const commonjsDeps: string[];
3
+ /** @type {string[][]} */
4
+ export const commonjsDepsPaths: string[][];
5
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/utils/build.js"],"names":[],"mappings":"AAEA,uBAAuB;AACvB,2BADW,MAAM,EAAE,CAUlB;AAED,yBAAyB;AACzB,gCADW,MAAM,EAAE,EAAE,CAUpB"}
@@ -0,0 +1,3 @@
1
+ declare function _default(o: any): any;
2
+ export default _default;
3
+ //# sourceMappingURL=clone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../src/utils/clone.js"],"names":[],"mappings":"AAoCE,uCAyBC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @typedef {{key: string, description: string, default?: any, values?: Record<string, any>}[]} DocOptions
3
+ */
4
+ /** @type {DocOptions} */
5
+ export const compileOptions: DocOptions;
6
+ /** @type {DocOptions} */
7
+ export const runtimeOptions: DocOptions;
8
+ export type DocOptions = {
9
+ key: string;
10
+ description: string;
11
+ default?: any;
12
+ values?: Record<string, any>;
13
+ }[];
14
+ //# sourceMappingURL=doc-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-options.d.ts","sourceRoot":"","sources":["../../src/utils/doc-options.js"],"names":[],"mappings":"AAEA;;GAEG;AAEH,yBAAyB;AACzB,wCA8BC;AAED,yBAAyB;AACzB,wCAoGC;yBAzIY;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,GAAG,CAAC,CAAA;CAAC,EAAE"}