@json-layout/core 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@json-layout/core",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Compilation and state management utilities for JSON Layout.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -15,6 +15,12 @@
15
15
  "default": "./src/compile/serialize.js",
16
16
  "types": "./types/compile/serialize.d.ts"
17
17
  }
18
+ },
19
+ "./utils/build": {
20
+ "import": {
21
+ "default": "./src/utils/build.js",
22
+ "types": "./types/utils/build.d.ts"
23
+ }
18
24
  }
19
25
  },
20
26
  "files": [
@@ -47,7 +53,7 @@
47
53
  },
48
54
  "homepage": "https://github.com/json-layout/json-layout#readme",
49
55
  "dependencies": {
50
- "@json-layout/vocabulary": "^0.6.0",
56
+ "@json-layout/vocabulary": "^0.8.0",
51
57
  "@types/markdown-it": "^13.0.1",
52
58
  "ajv": "^8.12.0",
53
59
  "ajv-errors": "^3.0.0",
@@ -1,6 +1,6 @@
1
1
  // compileStatic is meant to produce a serializable result
2
2
 
3
- import ajvModule from 'ajv'
3
+ import ajvModule from 'ajv/dist/2019.js'
4
4
  // import { Parser as ExprEvalParser } from 'expr-eval'
5
5
  import addFormats from 'ajv-formats'
6
6
  import ajvErrors from 'ajv-errors'
@@ -37,13 +37,14 @@ const fillOptions = (partialOptions) => {
37
37
  let ajv = partialOptions.ajv
38
38
  if (!ajv) {
39
39
  /** @type {import('ajv').Options} */
40
- const ajvOpts = { strict: false, allErrors: true }
40
+ const ajvOpts = { allErrors: true, strict: false }
41
41
  if (partialOptions.code) ajvOpts.code = { source: true, esm: true, lines: true }
42
42
  const newAjv = new Ajv(ajvOpts)
43
43
  addFormats.default(newAjv)
44
44
  ajvErrors.default(newAjv)
45
45
  ajv = newAjv
46
46
  }
47
+ ajv.addKeyword('layout')
47
48
 
48
49
  let markdown = partialOptions.markdown
49
50
  if (!markdown) {
@@ -89,11 +89,12 @@ export function makeSkeletonNode (
89
89
  }
90
90
 
91
91
  /** @type {import('./types.js').SkeletonNode} */
92
- const node = { key: key ?? '', pointer, parentPointer, pure }
92
+ const node = { key: key ?? '', pointer, parentPointer, pure, propertyKeys: [] }
93
93
  if (schema.type === 'object') {
94
94
  if (schema.properties) {
95
95
  node.children = node.children ?? []
96
96
  for (const propertyKey of Object.keys(schema.properties)) {
97
+ node.propertyKeys.push(propertyKey)
97
98
  node.children.push(makeSkeletonNode(
98
99
  schema.properties[propertyKey],
99
100
  options,
@@ -115,7 +116,7 @@ export function makeSkeletonNode (
115
116
  if (schema.allOf) {
116
117
  node.children = node.children ?? []
117
118
  for (let i = 0; i < schema.allOf.length; i++) {
118
- node.children.push(makeSkeletonNode(
119
+ const allOfNode = makeSkeletonNode(
119
120
  schema.allOf[i],
120
121
  options,
121
122
  validates,
@@ -126,7 +127,9 @@ export function makeSkeletonNode (
126
127
  `${pointer}/allOf/${i}`,
127
128
  pointer,
128
129
  false
129
- ))
130
+ )
131
+ node.propertyKeys = node.propertyKeys.concat(allOfNode.propertyKeys)
132
+ node.children.push(allOfNode)
130
133
  }
131
134
  }
132
135
  if (schema.oneOf) {
@@ -140,6 +143,7 @@ export function makeSkeletonNode (
140
143
  }
141
144
  /** @type {import('./types.js').SkeletonTree[]} */
142
145
  const childrenTrees = []
146
+ /** @type {string[]} */
143
147
  for (let i = 0; i < schema.oneOf.length; i++) {
144
148
  if (!schema.oneOf[i].type) schema.oneOf[i].type = schema.type
145
149
  const title = schema.oneOf[i].title ?? `option ${i}`
@@ -156,7 +160,14 @@ export function makeSkeletonNode (
156
160
  ))
157
161
  }
158
162
  node.children = node.children ?? []
159
- node.children.push({ key: '$oneOf', pointer: `${pointer}/oneOf`, parentPointer: pointer, childrenTrees, pure: childrenTrees[0].root.pure })
163
+ node.children.push({
164
+ key: '$oneOf',
165
+ pointer: `${pointer}/oneOf`,
166
+ parentPointer: pointer,
167
+ childrenTrees,
168
+ pure: childrenTrees[0].root.pure,
169
+ propertyKeys: []
170
+ })
160
171
 
161
172
  schema.errorMessage.oneOf = options.messages.errorOneOf
162
173
  }
@@ -45,6 +45,7 @@ export interface SkeletonNode {
45
45
  pointer: string
46
46
  parentPointer: string | null
47
47
  pure: boolean
48
+ propertyKeys: string[]
48
49
  children?: SkeletonNode[] // optional children in the case of arrays and object nodes
49
50
  childrenTrees?: SkeletonTree[] // other trees that can be instantiated with separate validation (for example in the case of new array items of oneOfs, etc)
50
51
  }
@@ -36,6 +36,8 @@ export { Display } from './utils/display.js'
36
36
  * @typedef {import('./types.js').StepperNode} StepperNode
37
37
  * @typedef {import('./types.js').OneOfSelectNode} OneOfSelectNode
38
38
  * @typedef {import('./types.js').ListNode} ListNode
39
+ * @typedef {import('./types.js').FileInputNode} FileInputNode
40
+ * @typedef {import('./types.js').MarkdownNode} MarkdownNode
39
41
  * @typedef {import('./types.js').FileRef} FileRef
40
42
  */
41
43
 
@@ -68,6 +70,7 @@ function fillOptions (partialOptions, compiledLayout) {
68
70
  validateOn: 'input',
69
71
  initialValidation: 'withData',
70
72
  defaultOn: 'empty',
73
+ removeAdditional: 'error',
71
74
  autofocus: false,
72
75
  ...partialOptions,
73
76
  messages
@@ -237,12 +240,18 @@ export class StatefulLayout {
237
240
  */
238
241
  updateState () {
239
242
  this.createStateTree()
240
- if (this._data !== this._stateTree.root.data || this._autofocusTarget !== this._lastCreateStateTreeContext.autofocusTarget) {
243
+ let nbIter = 0
244
+ while (this._data !== this._stateTree.root.data || this._autofocusTarget !== this._lastCreateStateTreeContext.autofocusTarget) {
245
+ nbIter += 1
246
+ if (nbIter > 100) {
247
+ console.error('too many iterations in updateState, the data is probably not stable', this._data, this._stateTree.root.data)
248
+ throw new Error('too many iterations in updateState, the data is probably not stable')
249
+ }
241
250
  logDataBinding('hydrating state tree changed the data, do it again', this._data, this._stateTree.root.data)
242
251
  // this is necessary because a first hydration can add default values and change validity, etc
243
252
  this._data = this._stateTree.root.data
244
253
  this._autofocusTarget = this._lastCreateStateTreeContext.autofocusTarget
245
- this.createStateTree()
254
+ this.createStateTree(true)
246
255
  }
247
256
  logDataBinding('emit update event', this._data, this._stateTree)
248
257
  this.events.emit('update', this)
@@ -250,13 +259,15 @@ export class StatefulLayout {
250
259
 
251
260
  /**
252
261
  * @private
262
+ * @param {boolean} rehydrate
253
263
  */
254
- createStateTree () {
264
+ createStateTree (rehydrate = false) {
255
265
  /** @type {CreateStateTreeContext} */
256
266
  const createStateTreeContext = {
257
267
  activeItems: this.activeItems,
258
268
  autofocusTarget: this._autofocusTarget,
259
269
  initial: !this._lastCreateStateTreeContext,
270
+ rehydrate,
260
271
  cacheKeys: this._lastCreateStateTreeContext?.cacheKeys ?? {},
261
272
  rootData: this._data,
262
273
  files: [],
@@ -371,7 +382,7 @@ export class StatefulLayout {
371
382
  }
372
383
  const parentNode = this._lastCreateStateTreeContext.nodes.find(p => p.fullKey === node.parentFullKey)
373
384
  if (!parentNode) throw new Error(`parent with key "${node.parentFullKey}" not found`)
374
- const newParentValue = producePatchedData(parentNode.data ?? {}, node, data)
385
+ const newParentValue = producePatchedData(parentNode.data ?? (typeof node.key === 'number' ? [] : {}), node, data)
375
386
  this.input(parentNode, newParentValue)
376
387
 
377
388
  if (activateKey !== undefined) {
@@ -419,7 +430,6 @@ export class StatefulLayout {
419
430
  let appliedQ = false
420
431
  if (node.layout.getItems && isGetItemsExpression(node.layout.getItems)) {
421
432
  rawItems = this.evalNodeExpression(node, node.layout.getItems, null)
422
- if (!Array.isArray(rawItems)) throw new Error('getItems expression didn\'t return an array')
423
433
  }
424
434
  if (node.layout.getItems && isGetItemsFetch(node.layout.getItems)) {
425
435
  const url = new URL(this.evalNodeExpression(node, node.layout.getItems.url, null))
@@ -441,6 +451,9 @@ export class StatefulLayout {
441
451
  if (node.layout.getItems?.itemsResults) {
442
452
  rawItems = this.evalNodeExpression(node, node.layout.getItems.itemsResults, rawItems)
443
453
  }
454
+
455
+ if (!Array.isArray(rawItems)) throw new Error(`getItems didn't return an array for node ${node.fullKey}, you can define itemsResults to extract the array`)
456
+
444
457
  /** @type {import('@json-layout/vocabulary').SelectItems} */
445
458
  const items = rawItems.map((/** @type {any} */ rawItem) => {
446
459
  /** @type {Partial<import('@json-layout/vocabulary').SelectItem>} */
@@ -459,7 +472,7 @@ export class StatefulLayout {
459
472
  item.title = node.layout.getItems?.itemTitle ? this.evalNodeExpression(node, node.layout.getItems.itemTitle, rawItem) : item.value
460
473
  }
461
474
  if (node.layout.getItems?.itemIcon) item.icon = this.evalNodeExpression(node, node.layout.getItems?.itemIcon, rawItem)
462
- return item
475
+ return /** @type {import('@json-layout/vocabulary').SelectItem} */(item)
463
476
  })
464
477
  return [items, appliedQ]
465
478
  }
@@ -1,7 +1,7 @@
1
1
  import { isSwitchStruct, childIsCompObject, isCompositeLayout, isFocusableLayout } from '@json-layout/vocabulary'
2
2
  import { produce } from 'immer'
3
3
  import { getChildDisplay } from './utils/display.js'
4
- import { shallowEqualArray, shallowProduceArray } from './utils/immutable.js'
4
+ import { shallowEqualArray, shallowProduceArray, shallowProduceObject } from './utils/immutable.js'
5
5
 
6
6
  /**
7
7
  * @param {unknown} data
@@ -63,16 +63,42 @@ const produceStateNodeMessages = produce((draft, layoutMessages, options) => {
63
63
  Object.assign(draft, options.messages, layoutMessages)
64
64
  })
65
65
 
66
- /** @type {(draft: Record<string, unknown>, parentDataPath: string, children: import('../index.js').StateNode[]) => Record<string, unknown>} */
67
- const produceStateNodeData = produce((draft, parentDataPath, children) => {
68
- for (const child of children) {
69
- if (parentDataPath === child.dataPath) {
70
- if (child.data === undefined) continue
71
- Object.assign(draft, child.data)
72
- } else {
73
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
74
- if (child.data === undefined) delete draft[child.key]
75
- else draft[child.key] = child.data
66
+ /** @type {(draft: Record<string, unknown>, parentDataPath: string, children?: import('../index.js').StateNode[], additionalPropertiesErrors?: import('ajv').ErrorObject[], propertyKeys?: string[]) => Record<string, unknown>} */
67
+ const produceStateNodeData = produce((draft, parentDataPath, children, additionalPropertiesErrors, propertyKeys) => {
68
+ if (propertyKeys) {
69
+ for (const key of Object.keys(draft)) {
70
+ if (!propertyKeys.includes(key)) delete draft[key]
71
+ }
72
+ }
73
+ if (children) {
74
+ for (const child of children) {
75
+ if (parentDataPath === child.dataPath) {
76
+ if (child.data === undefined) continue
77
+ Object.assign(draft, child.data)
78
+ } else {
79
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
80
+ if (child.data === undefined) delete draft[child.key]
81
+ else draft[child.key] = child.data
82
+
83
+ if (Array.isArray(draft)) {
84
+ // remove trailing undefined values from tuples
85
+ while (draft.length && draft[draft.length - 1] === undefined) {
86
+ draft.pop()
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ if (additionalPropertiesErrors) {
94
+ for (const error of additionalPropertiesErrors) {
95
+ if (error.instancePath !== parentDataPath) continue
96
+ if (error.keyword === 'additionalProperties') {
97
+ delete draft[error.params.additionalProperty]
98
+ }
99
+ if (error.keyword === 'unevaluatedProperties') {
100
+ delete draft[error.params.unevaluatedProperty]
101
+ }
76
102
  }
77
103
  }
78
104
  })
@@ -123,9 +149,10 @@ const matchError = (error, skeleton, dataPath, parentDataPath) => {
123
149
  * @param {import('ajv').ErrorObject} error
124
150
  * @param {import('../index.js').SkeletonNode} skeleton
125
151
  * @param {string} dataPath
152
+ * @param {string | null} parentDataPath
126
153
  * @returns {boolean}
127
154
  */
128
- const matchChildError = (error, skeleton, dataPath) => {
155
+ const matchChildError = (error, skeleton, dataPath, parentDataPath) => {
129
156
  if (error.instancePath.startsWith(dataPath) && !(typeof skeleton.key === 'string' && skeleton.key.startsWith('$allOf'))) return true
130
157
  return false
131
158
  }
@@ -335,22 +362,44 @@ export function createStateNode (
335
362
  }
336
363
  }
337
364
 
338
- const error = context.errors?.find(error => matchError(error, skeleton, dataPath, parentDataPath)) ?? context.errors?.find(error => matchChildError(error, skeleton, dataPath))
365
+ const error = context.errors?.find(error => matchError(error, skeleton, dataPath, parentDataPath)) ?? context.errors?.find(error => matchChildError(error, skeleton, dataPath, parentDataPath))
366
+
339
367
  // capture errors so that they are not repeated in parent nodes
340
368
  if (layout.comp !== 'none') {
341
- if (error) context.errors = context.errors?.filter(error => !matchError(error, skeleton, dataPath, parentDataPath) && !matchChildError(error, skeleton, dataPath))
369
+ if (error) context.errors = context.errors?.filter(error => !matchError(error, skeleton, dataPath, parentDataPath) && !matchChildError(error, skeleton, dataPath, parentDataPath))
342
370
  }
343
371
  const validated = validationState.validatedForm ||
344
372
  validationState.validatedChildren.includes(fullKey) ||
345
373
  (validationState.initialized === false && options.initialValidation === 'always') ||
346
374
  (validationState.initialized === false && options.initialValidation === 'withData' && !isDataEmpty(data))
347
375
 
348
- let nodeData = children ? produceStateNodeData(/** @type {Record<string, unknown>} */(data ?? {}), dataPath, children) : data
376
+ let nodeData = children
377
+ ? produceStateNodeData(
378
+ /** @type {Record<string, unknown>} */(data ?? {}),
379
+ dataPath,
380
+ children,
381
+ context.additionalPropertiesErrors,
382
+ [true, 'unknown'].includes(options.removeAdditional) ? skeleton.propertyKeys : undefined
383
+ )
384
+ : data
385
+
386
+ // the producer is not perfect, sometimes data is considered mutated but it is actually the same
387
+ // we double check here to avoid unnecessary re-renders
388
+ if (nodeData !== data) {
389
+ if (Array.isArray(data) && Array.isArray(nodeData)) nodeData = shallowProduceArray(data, nodeData)
390
+ // @ts-ignore
391
+ else if (typeof data === 'object' && typeof nodeData === 'object') nodeData = shallowProduceObject(data, nodeData)
392
+ }
393
+
349
394
  if (layout.constData) {
350
- nodeData = evalExpression(compiledLayout.expressions, layout.constData, nodeData, options, display, context.rootData, parentData)
395
+ if (!context.rehydrate) {
396
+ nodeData = evalExpression(compiledLayout.expressions, layout.constData, nodeData, options, display, context.rootData, parentData)
397
+ }
351
398
  } else {
352
399
  if (layout.defaultData && useDefaultData(nodeData, layout, options)) {
353
- nodeData = evalExpression(compiledLayout.expressions, layout.defaultData, nodeData, options, display, context.rootData, parentData)
400
+ if (!context.rehydrate) {
401
+ nodeData = evalExpression(compiledLayout.expressions, layout.defaultData, nodeData, options, display, context.rootData, parentData)
402
+ }
354
403
  } else {
355
404
  if (isDataEmpty(nodeData)) {
356
405
  if (layout.nullable) {
@@ -52,6 +52,9 @@ export function createStateTree (
52
52
  if (error.keyword !== 'errorMessage') compiledLayout.localizeErrors([error])
53
53
  }
54
54
  context.errors = validate.errors
55
+ if ([true, 'error'].includes(options.removeAdditional)) {
56
+ context.additionalPropertiesErrors = validate.errors.filter(error => error.keyword === 'additionalProperties' || error.keyword === 'unevaluatedProperties')
57
+ }
55
58
  }
56
59
  const root = createStateNode(
57
60
  context,
@@ -23,6 +23,8 @@ import {
23
23
  type Stepper,
24
24
  type List,
25
25
  type Combobox,
26
+ type Markdown,
27
+ type FileInput,
26
28
  type Child
27
29
  } from '@json-layout/vocabulary'
28
30
  import { type SkeletonTree, type SkeletonNode, type StatefulLayout, type CompiledLayout } from '../index.js'
@@ -56,10 +58,12 @@ export interface StateTree {
56
58
 
57
59
  export interface CreateStateTreeContext {
58
60
  errors?: ErrorObject[]
61
+ additionalPropertiesErrors?: ErrorObject[]
59
62
  files: FileRef[]
60
63
  activeItems: Record<string, number>
61
64
  autofocusTarget: string | null
62
65
  initial: boolean
66
+ rehydrate: boolean
63
67
  cacheKeys: Record<string, StateNodeCacheKey>
64
68
  rootData: unknown
65
69
  nodes: StateNode[]
@@ -103,6 +107,8 @@ export type StateNodeOptions = Required<StateNodeOptionsBase & {
103
107
  validateOn: 'input' | 'blur' | 'submit'
104
108
  initialValidation: 'never' | 'always' | 'withData'
105
109
  defaultOn: 'missing' | 'empty' | 'never'
110
+ // true is the same as 'unknown', false is the same as 'none'
111
+ removeAdditional: true | 'unknown' | 'error' | 'none' | false
106
112
  messages: LocaleMessages
107
113
  autofocus: boolean
108
114
  }>
@@ -150,3 +156,7 @@ export type StepperNode = StateNode & { layout: Stepper, children: StateNode[] }
150
156
  export type ListNode = StateNode & { layout: List, data: any[], children: StateNode[], childrenTrees: SkeletonTree[] }
151
157
 
152
158
  export type ComboboxNode = Omit<StateNode, 'children'> & { layout: Combobox, data: any[] }
159
+
160
+ export type FileInputNode = Omit<StateNode, 'children'> & { layout: FileInput, data: object | undefined | null }
161
+
162
+ export type MarkdownNode = Omit<StateNode, 'children'> & { layout: Markdown, data: string | undefined | null }
@@ -10,6 +10,22 @@ export function shallowProduceArray (previousArray = [], newArray = []) {
10
10
  return previousArray
11
11
  }
12
12
 
13
+ /**
14
+ * @param {Record<string, any>} previousObj
15
+ * @param {Record<string, any>} newObj
16
+ * @returns {Record<string, any>}
17
+ */
18
+ export function shallowProduceObject (previousObj = {}, newObj = {}) {
19
+ if (!previousObj || !newObj) return newObj
20
+ const previousKeys = Object.keys(previousObj)
21
+ const newKeys = Object.keys(newObj)
22
+ if (previousKeys.length !== newKeys.length) return newObj
23
+ for (const key of previousKeys) {
24
+ if (previousObj[key] !== newObj[key]) return newObj
25
+ }
26
+ return previousObj
27
+ }
28
+
13
29
  /**
14
30
  * @template ItemType
15
31
  * @param {any[]} a1
@@ -0,0 +1,10 @@
1
+ // these dependencies are not pure ESM, users will probably need to inform their bundler to treat them as commonjs
2
+ export const commonjsDeps = [
3
+ 'ajv',
4
+ 'ajv-formats',
5
+ 'ajv-formats/dist/formats.js',
6
+ 'ajv-i18n',
7
+ 'ajv-errors',
8
+ 'markdown-it',
9
+ 'debug'
10
+ ]
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compile/index.js"],"names":[],"mappings":"AAmEA;;;;GAIG;AACH,iCAJW,MAAM,4EAEJ,cAAc,CA6E1B;;2BAnIY,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compile/index.js"],"names":[],"mappings":"AAoEA;;;;GAIG;AACH,iCAJW,MAAM,4EAEJ,cAAc,CA6E1B;;2BApIY,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"}
@@ -1 +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,CAyL7C"}
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,CAoM7C"}
@@ -37,6 +37,7 @@ export interface SkeletonNode {
37
37
  pointer: string;
38
38
  parentPointer: string | null;
39
39
  pure: boolean;
40
+ propertyKeys: string[];
40
41
  children?: SkeletonNode[];
41
42
  childrenTrees?: SkeletonTree[];
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compile/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,KAAK,CAAA;AAChC,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAoB,MAAM,KAAK,CAAA;AAChF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,GAAG,CAAA;AAE/J,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,SAAS,CAAC,OAAO,CAAA;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE,CAAA;AAEtH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC3C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACnD,WAAW,EAAE,kBAAkB,EAAE,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,IAAI,CAAA;CAC1D;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,YAAY,CAAA;CACnB;AAID,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;CAC/B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compile/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,KAAK,CAAA;AAChC,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAoB,MAAM,KAAK,CAAA;AAChF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,GAAG,CAAA;AAE/J,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,SAAS,CAAC,OAAO,CAAA;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE,CAAA;AAEtH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC3C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACnD,WAAW,EAAE,kBAAkB,EAAE,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,IAAI,CAAA;CAC1D;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,YAAY,CAAA;CACnB;AAID,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;CAC/B"}
@@ -25,6 +25,8 @@ export { Display } from "./utils/display.js";
25
25
  * @typedef {import('./types.js').StepperNode} StepperNode
26
26
  * @typedef {import('./types.js').OneOfSelectNode} OneOfSelectNode
27
27
  * @typedef {import('./types.js').ListNode} ListNode
28
+ * @typedef {import('./types.js').FileInputNode} FileInputNode
29
+ * @typedef {import('./types.js').MarkdownNode} MarkdownNode
28
30
  * @typedef {import('./types.js').FileRef} FileRef
29
31
  */
30
32
  /** @type {(node: StateNode | undefined) => node is SectionNode} */
@@ -140,6 +142,7 @@ export class StatefulLayout {
140
142
  private updateState;
141
143
  /**
142
144
  * @private
145
+ * @param {boolean} rehydrate
143
146
  */
144
147
  private createStateTree;
145
148
  validate(): void;
@@ -227,6 +230,8 @@ export type VerticalTabsNode = import('./types.js').VerticalTabsNode;
227
230
  export type StepperNode = import('./types.js').StepperNode;
228
231
  export type OneOfSelectNode = import('./types.js').OneOfSelectNode;
229
232
  export type ListNode = import('./types.js').ListNode;
233
+ export type FileInputNode = import('./types.js').FileInputNode;
234
+ export type MarkdownNode = import('./types.js').MarkdownNode;
230
235
  export type FileRef = import('./types.js').FileRef;
231
236
  import { Display } from './utils/display.js';
232
237
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AAoIA;;;;;;;;;GASG;AACH,4CATW,OAAO,aAAa,EAAE,kBAAkB,EAAE,cAC1C,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,WACH,OAAO,YAAY,EAAE,gBAAgB,WACrC,OAAO,oBAAoB,EAAE,OAAO,YACpC,OAAO,cACP,OAAO,GACL,GAAG,CAMf;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,cACP,OAAO,mBACP,OAAO,YAAY,EAAE,eAAe,4DAElC,OAAO,YAAY,EAAE,SAAS,CAsM1C;AAED,uFAAuF;AACvF,yCADmB,GAAG,QAAQ,OAAO,YAAY,EAAE,SAAS,QAAQ,OAAO,KAAK,GAAG,CAOjF"}
1
+ {"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AA+JA;;;;;;;;;GASG;AACH,4CATW,OAAO,aAAa,EAAE,kBAAkB,EAAE,cAC1C,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,WACH,OAAO,YAAY,EAAE,gBAAgB,WACrC,OAAO,oBAAoB,EAAE,OAAO,YACpC,OAAO,cACP,OAAO,GACL,GAAG,CAMf;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,cACP,OAAO,mBACP,OAAO,YAAY,EAAE,eAAe,4DAElC,OAAO,YAAY,EAAE,SAAS,CA4N1C;AAED,uFAAuF;AACvF,yCADmB,GAAG,QAAQ,OAAO,YAAY,EAAE,SAAS,QAAQ,OAAO,KAAK,GAAG,CAOjF"}
@@ -1 +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,CAgD1C"}
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"}
@@ -1,5 +1,5 @@
1
1
  import { type ErrorObject } from 'ajv';
2
- import { type CompObject, 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 Child } from '@json-layout/vocabulary';
2
+ import { type CompObject, 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 Markdown, type FileInput, type Child } from '@json-layout/vocabulary';
3
3
  import { type SkeletonTree, type SkeletonNode, type StatefulLayout, type CompiledLayout } from '../index.js';
4
4
  import { type LocaleMessages } from '../i18n/types.js';
5
5
  export interface StateNode {
@@ -28,10 +28,12 @@ export interface StateTree {
28
28
  }
29
29
  export interface CreateStateTreeContext {
30
30
  errors?: ErrorObject[];
31
+ additionalPropertiesErrors?: ErrorObject[];
31
32
  files: FileRef[];
32
33
  activeItems: Record<string, number>;
33
34
  autofocusTarget: string | null;
34
35
  initial: boolean;
36
+ rehydrate: boolean;
35
37
  cacheKeys: Record<string, StateNodeCacheKey>;
36
38
  rootData: unknown;
37
39
  nodes: StateNode[];
@@ -67,6 +69,7 @@ export type StateNodeOptions = Required<StateNodeOptionsBase & {
67
69
  validateOn: 'input' | 'blur' | 'submit';
68
70
  initialValidation: 'never' | 'always' | 'withData';
69
71
  defaultOn: 'missing' | 'empty' | 'never';
72
+ removeAdditional: true | 'unknown' | 'error' | 'none' | false;
70
73
  messages: LocaleMessages;
71
74
  autofocus: boolean;
72
75
  }>;
@@ -156,4 +159,12 @@ export type ComboboxNode = Omit<StateNode, 'children'> & {
156
159
  layout: Combobox;
157
160
  data: any[];
158
161
  };
162
+ export type FileInputNode = Omit<StateNode, 'children'> & {
163
+ layout: FileInput;
164
+ data: object | undefined | null;
165
+ };
166
+ export type MarkdownNode = Omit<StateNode, 'children'> & {
167
+ layout: Markdown;
168
+ data: string | undefined | null;
169
+ };
159
170
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AACtC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5G,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,YAAY,CAAA;IACtB,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,UAAU,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,gBAAgB,CAAA;IACzB,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC5C,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;CACjB;AAGD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB;IAChB,cAAc;IACd,MAAM;IACN,YAAY;IACZ,KAAK,GAAG,IAAI;IACZ,MAAM;IACN,eAAe;IACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO;IACP,OAAO;CACR,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;AAGD,MAAM,MAAM,oBAAoB,GAAG;IAEjC,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,oBAAoB,GAAG;IAC7D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;IACvC,iBAAiB,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAA;IAClD,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;IACxC,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG;IACrD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAEhH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAE9G,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAEpH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAE1G,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAE/G,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAE3G,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAElH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAE1H,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAElH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAEpH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,EAAE,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAAA;AAE/H,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAA;AAEpF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAA;AAEhG,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,SAAS,EAAE,CAAA;CAAE,CAAA;AAE1E,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,SAAS,EAAE,CAAA;CAAE,CAAA;AAE1F,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,SAAS,EAAE,CAAA;CAAE,CAAA;AAEhG,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,EAAE,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAAA;AAEtH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,12 @@
5
5
  * @returns {ItemType[]}
6
6
  */
7
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>;
8
14
  /**
9
15
  * @template ItemType
10
16
  * @param {any[]} a1
@@ -1 +1 @@
1
- {"version":3,"file":"immutable.d.ts","sourceRoot":"","sources":["../../../src/state/utils/immutable.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,6GAIC;AAED;;;;;GAKG;AACH,iDAJW,GAAG,EAAE,OACL,GAAG,EAAE,GACH,OAAO,CAMnB"}
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,2 @@
1
+ export const commonjsDeps: string[];
2
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/utils/build.js"],"names":[],"mappings":"AACA,oCAQC"}