@json-layout/core 1.15.5 → 1.15.7
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
|
@@ -325,6 +325,10 @@ export function makeSkeletonNode (
|
|
|
325
325
|
}
|
|
326
326
|
/** @type {string[]} */
|
|
327
327
|
const childrenTrees = []
|
|
328
|
+
/** @type {string[]} */
|
|
329
|
+
let propertyKeys = []
|
|
330
|
+
/** @type {string[]} */
|
|
331
|
+
let roPropertyKeys = []
|
|
328
332
|
for (let i = 0; i < schema.oneOf.length; i++) {
|
|
329
333
|
if (!schema.oneOf[i].type) schema.oneOf[i].type = type
|
|
330
334
|
const childTreePointer = `${oneOfPointer}/${i}`
|
|
@@ -349,6 +353,12 @@ export function makeSkeletonNode (
|
|
|
349
353
|
)
|
|
350
354
|
}
|
|
351
355
|
childrenTrees.push(childTreePointer)
|
|
356
|
+
// @ts-ignore
|
|
357
|
+
if (skeletonTrees[childTreePointer] !== 'recursing') {
|
|
358
|
+
const rootSkeletonNode = skeletonNodes[skeletonTrees[childTreePointer].root]
|
|
359
|
+
propertyKeys = propertyKeys.concat(rootSkeletonNode.propertyKeys)
|
|
360
|
+
roPropertyKeys = roPropertyKeys.concat(rootSkeletonNode.roPropertyKeys)
|
|
361
|
+
}
|
|
352
362
|
}
|
|
353
363
|
if (!skeletonNodes[oneOfPointer]) {
|
|
354
364
|
skeletonNodes[oneOfPointer] = {
|
|
@@ -358,10 +368,12 @@ export function makeSkeletonNode (
|
|
|
358
368
|
childrenTrees,
|
|
359
369
|
discriminator,
|
|
360
370
|
pure: !childrenTrees.some(childTree => !skeletonNodes[skeletonTrees[childTree]?.root]?.pure),
|
|
361
|
-
propertyKeys
|
|
362
|
-
roPropertyKeys
|
|
371
|
+
propertyKeys,
|
|
372
|
+
roPropertyKeys
|
|
363
373
|
}
|
|
364
374
|
}
|
|
375
|
+
node.propertyKeys = node.propertyKeys.concat(skeletonNodes[oneOfPointer].propertyKeys)
|
|
376
|
+
node.roPropertyKeys = node.roPropertyKeys.concat(skeletonNodes[oneOfPointer].roPropertyKeys)
|
|
365
377
|
node.children = node.children ?? []
|
|
366
378
|
node.children.push(oneOfPointer)
|
|
367
379
|
}
|
|
@@ -455,6 +467,8 @@ export function makeSkeletonNode (
|
|
|
455
467
|
)
|
|
456
468
|
}
|
|
457
469
|
node.children = node.children ?? []
|
|
470
|
+
node.propertyKeys = node.propertyKeys.concat(skeletonNodes[childPointer].propertyKeys)
|
|
471
|
+
node.roPropertyKeys = node.roPropertyKeys.concat(skeletonNodes[childPointer].roPropertyKeys)
|
|
458
472
|
node.children.push(childPointer)
|
|
459
473
|
}
|
|
460
474
|
if (schema.else) {
|
|
@@ -482,6 +496,8 @@ export function makeSkeletonNode (
|
|
|
482
496
|
)
|
|
483
497
|
}
|
|
484
498
|
node.children = node.children ?? []
|
|
499
|
+
node.propertyKeys = node.propertyKeys.concat(skeletonNodes[childPointer].propertyKeys)
|
|
500
|
+
node.roPropertyKeys = node.roPropertyKeys.concat(skeletonNodes[childPointer].roPropertyKeys)
|
|
485
501
|
node.children.push(childPointer)
|
|
486
502
|
}
|
|
487
503
|
}
|
package/src/state/state-node.js
CHANGED
|
@@ -90,15 +90,16 @@ const produceStateNodeDataChildrenArray = produce((draft, children) => {
|
|
|
90
90
|
/** @type {(draft: Record<string, unknown>[], parentDataPath: string, additionalPropertiesErrors?: import('ajv').ErrorObject[], propertyKeys?: string[], removePropertyKeys?: string[]) => Record<string, unknown>[]} */
|
|
91
91
|
const produceStateNodeDataArray = produce((draft, parentDataPath, additionalPropertiesErrors, propertyKeys, removePropertyKeys) => {
|
|
92
92
|
for (let i = 0; i < draft.length; i++) {
|
|
93
|
-
if (!(draft[i] instanceof File)) {
|
|
94
|
-
draft[i] =
|
|
93
|
+
if (typeof draft[i] === 'object' && !(draft[i] instanceof File)) {
|
|
94
|
+
draft[i] = cleanNodeData(draft[i], parentDataPath + '/' + i, additionalPropertiesErrors, propertyKeys, removePropertyKeys)
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
})
|
|
98
98
|
|
|
99
|
-
/** @type {(draft: Record<string, unknown>, parentDataPath: string,
|
|
100
|
-
const
|
|
101
|
-
if (propertyKeys && (propertyKeys.length || children?.length)) {
|
|
99
|
+
/** @type {(draft: Record<string, unknown>, parentDataPath: string, additionalPropertiesErrors?: import('ajv').ErrorObject[], propertyKeys?: string[], removePropertyKeys?: string[]) => Record<string, unknown>} */
|
|
100
|
+
const cleanNodeData = produce((draft, parentDataPath, additionalPropertiesErrors, propertyKeys, removePropertyKeys) => {
|
|
101
|
+
// if (propertyKeys && (propertyKeys.length || children?.length)) {
|
|
102
|
+
if (propertyKeys) {
|
|
102
103
|
for (const key of Object.keys(draft)) {
|
|
103
104
|
if (!propertyKeys.includes(key)) delete draft[key]
|
|
104
105
|
}
|
|
@@ -109,26 +110,6 @@ const produceStateNodeData = produce((draft, parentDataPath, children, additiona
|
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
112
|
|
|
112
|
-
if (children) {
|
|
113
|
-
for (const child of children) {
|
|
114
|
-
if (parentDataPath === child.dataPath) {
|
|
115
|
-
if (child.data === undefined || child.data === null) continue
|
|
116
|
-
if (children.length > 1) {
|
|
117
|
-
for (const key of Object.keys(child.data)) {
|
|
118
|
-
if (children.some(c => c.key === key)) continue
|
|
119
|
-
if (!child.skeleton.propertyKeys.includes(key) && children.some(c => c.key !== child.key && c.skeleton.propertyKeys.includes(key))) continue
|
|
120
|
-
draft[key] = /** @type {any} */(child.data)[key]
|
|
121
|
-
}
|
|
122
|
-
} else {
|
|
123
|
-
Object.assign(draft, child.data)
|
|
124
|
-
}
|
|
125
|
-
} else {
|
|
126
|
-
if (child.data === undefined) delete draft[child.key]
|
|
127
|
-
else draft[child.key] = child.data
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
113
|
if (additionalPropertiesErrors?.length) {
|
|
133
114
|
for (const error of additionalPropertiesErrors) {
|
|
134
115
|
if (error.instancePath !== parentDataPath) continue
|
|
@@ -140,6 +121,34 @@ const produceStateNodeData = produce((draft, parentDataPath, children, additiona
|
|
|
140
121
|
}
|
|
141
122
|
}
|
|
142
123
|
}
|
|
124
|
+
|
|
125
|
+
for (const key of Object.keys(draft)) {
|
|
126
|
+
if (draft[key] === undefined) delete draft[key]
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
/** @type {(draft: Record<string, unknown>, parentDataPath: string, hydratedChild: import('../index.js').StateNode, childrenSkeletons: import('../index.js').SkeletonNode[] | undefined) => Record<string, unknown>} */
|
|
131
|
+
const produceHydratedStateNodeData = produce((draft, parentDataPath, hydratedChild, childrenSkeletons) => {
|
|
132
|
+
if (hydratedChild.dataPath === parentDataPath) {
|
|
133
|
+
if (hydratedChild.data === undefined || hydratedChild.data === null) return
|
|
134
|
+
if (childrenSkeletons && childrenSkeletons.length > 1) {
|
|
135
|
+
for (const key of Object.keys(hydratedChild.data)) {
|
|
136
|
+
if (!hydratedChild.skeleton.propertyKeys.includes(key)) continue
|
|
137
|
+
if (!hydratedChild.skeleton.propertyKeys.includes(key) && childrenSkeletons.some(s => s !== hydratedChild.skeleton && s.propertyKeys.includes(key))) continue
|
|
138
|
+
draft[key] = /** @type {any} */(hydratedChild.data)[key]
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
Object.assign(draft, hydratedChild.data)
|
|
142
|
+
}
|
|
143
|
+
for (const key of hydratedChild.skeleton.propertyKeys) {
|
|
144
|
+
if (/** @type {any} */(hydratedChild.data)[key] === undefined) {
|
|
145
|
+
delete draft[key]
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
} else {
|
|
149
|
+
if (hydratedChild.data === undefined) delete draft[hydratedChild.key]
|
|
150
|
+
else draft[hydratedChild.key] = hydratedChild.data
|
|
151
|
+
}
|
|
143
152
|
})
|
|
144
153
|
|
|
145
154
|
/** @type {(draft: Record<string, unknown>, parentData: Record<string, unknown>, propertyKeys: string[], patterns: string[]) => Record<string, unknown>} */
|
|
@@ -427,17 +436,19 @@ export function createStateNode (
|
|
|
427
436
|
context.autofocusTarget = fullKey
|
|
428
437
|
}
|
|
429
438
|
|
|
430
|
-
|
|
431
|
-
|
|
439
|
+
let nodeData = data
|
|
440
|
+
|
|
441
|
+
if (nodeData === null && !layout.nullable) nodeData = undefined
|
|
442
|
+
const shouldUseDefaultData = layout.getDefaultData && useDefaultData(nodeData, layout, options) && context.currentInput !== fullKey
|
|
432
443
|
if (layout.getConstData) {
|
|
433
444
|
if (!context.rehydrate) {
|
|
434
|
-
|
|
445
|
+
nodeData = evalExpression(compiledLayout.expressions, layout.getConstData, nodeData, options, display, layout, compiledLayout.validates, context.rootData, parentContext)
|
|
435
446
|
}
|
|
436
447
|
} else {
|
|
437
448
|
if (shouldUseDefaultData && layout.getDefaultData && !context.rehydrate) {
|
|
438
|
-
const defaultData = evalExpression(compiledLayout.expressions, layout.getDefaultData,
|
|
439
|
-
if (
|
|
440
|
-
|
|
449
|
+
const defaultData = evalExpression(compiledLayout.expressions, layout.getDefaultData, nodeData, options, display, layout, compiledLayout.validates, context.rootData, parentContext)
|
|
450
|
+
if (nodeData === undefined || !isDataEmpty(defaultData)) {
|
|
451
|
+
nodeData = defaultData
|
|
441
452
|
}
|
|
442
453
|
}
|
|
443
454
|
}
|
|
@@ -446,8 +457,10 @@ export function createStateNode (
|
|
|
446
457
|
let children
|
|
447
458
|
if (isCompositeLayout(layout, compiledLayout.components)) {
|
|
448
459
|
// TODO: make this type casting safe using prior validation
|
|
449
|
-
const objectData = /** @type {Record<string, unknown>} */(
|
|
460
|
+
const objectData = /** @type {Record<string, unknown>} */(nodeData ?? {})
|
|
450
461
|
const childrenOptions = produceCompositeChildrenOptions(options, layout)
|
|
462
|
+
let actualPropertyKeys = skeleton.propertyKeys
|
|
463
|
+
const removePropertyKeys = options.readOnlyPropertiesMode === 'remove' ? skeleton.roPropertyKeys : []
|
|
451
464
|
children = []
|
|
452
465
|
let focusChild = context.autofocusTarget === fullKey
|
|
453
466
|
for (let i = 0; i < layout.children.length; i++) {
|
|
@@ -461,13 +474,25 @@ export function createStateNode (
|
|
|
461
474
|
if (childSkeletonKey !== undefined) childSkeleton = compiledLayout.skeletonNodes[childSkeletonKey]
|
|
462
475
|
if (childSkeleton.condition) {
|
|
463
476
|
if (!evalExpression(compiledLayout.expressions, childSkeleton.condition, objectData, parentOptions, display, layout, compiledLayout.validates, context.rootData, parentContext)) {
|
|
477
|
+
if (childLayout.key === '$then' || childLayout.key === '$else') {
|
|
478
|
+
const reverseChildSkeletonKey = skeleton.children?.find(c => compiledLayout.skeletonNodes[c].key === (childLayout.key === '$then' ? '$else' : '$then'))
|
|
479
|
+
const reverseChildSkeleton = reverseChildSkeletonKey !== undefined && compiledLayout.skeletonNodes[reverseChildSkeletonKey]
|
|
480
|
+
if (reverseChildSkeleton) {
|
|
481
|
+
for (const key of childSkeleton.propertyKeys) {
|
|
482
|
+
if (!reverseChildSkeleton.propertyKeys.includes(key)) {
|
|
483
|
+
removePropertyKeys.push(key)
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
}
|
|
464
488
|
continue
|
|
465
489
|
}
|
|
466
490
|
}
|
|
467
491
|
const isSameDataPath = typeof childLayout.key === 'string' && childLayout.key.startsWith('$')
|
|
468
492
|
const childFullKey = `${fullKey}/${childLayout.key}`
|
|
469
493
|
if (focusChild) context.autofocusTarget = childFullKey
|
|
470
|
-
|
|
494
|
+
const ogChildData = isSameDataPath ? objectData : objectData[childLayout.key]
|
|
495
|
+
let childData = ogChildData
|
|
471
496
|
if (childLayout.key === '$patternProperties') {
|
|
472
497
|
const childNormalizedLayout = /** @type {import('@json-layout/vocabulary').List} */(compiledLayout.normalizedLayouts[childSkeleton.pointer])
|
|
473
498
|
childData = producePatternPropertiesData(
|
|
@@ -476,6 +501,7 @@ export function createStateNode (
|
|
|
476
501
|
skeleton.propertyKeys,
|
|
477
502
|
childNormalizedLayout.indexed ?? []
|
|
478
503
|
)
|
|
504
|
+
actualPropertyKeys = actualPropertyKeys.concat(Object.keys(/** @type {any} */(childData)))
|
|
479
505
|
}
|
|
480
506
|
const child = createStateNode(
|
|
481
507
|
context,
|
|
@@ -495,8 +521,29 @@ export function createStateNode (
|
|
|
495
521
|
reusedNode?.children?.find(c => c.fullKey === childFullKey)
|
|
496
522
|
)
|
|
497
523
|
if (child.autofocus || child.autofocusChild !== undefined) focusChild = false
|
|
524
|
+
// the child data was hydrated
|
|
525
|
+
if (child.data !== ogChildData) {
|
|
526
|
+
// WARN: this manner of creating empty object or array based on the type of the child key does not seem very safe
|
|
527
|
+
// can we find a better way to discriminate ? maybe store an extra info on the the skeleton, like "emptyData" ?
|
|
528
|
+
nodeData = produceHydratedStateNodeData(
|
|
529
|
+
nodeData ?? ((typeof child.key === 'number' && key !== '$oneOf') ? [] : {}),
|
|
530
|
+
dataPath,
|
|
531
|
+
child,
|
|
532
|
+
skeleton.children?.map(childSkeletonKey => compiledLayout.skeletonNodes[childSkeletonKey])
|
|
533
|
+
)
|
|
534
|
+
}
|
|
535
|
+
|
|
498
536
|
children.push(child)
|
|
499
537
|
}
|
|
538
|
+
|
|
539
|
+
const removeAdditional = [true, 'unknown'].includes(options.removeAdditional) || children?.some(c => c.key === '$patternProperties')
|
|
540
|
+
nodeData = cleanNodeData(
|
|
541
|
+
/** @type {Record<string, unknown>} */(nodeData ?? {}),
|
|
542
|
+
dataPath,
|
|
543
|
+
context.additionalPropertiesErrors,
|
|
544
|
+
removeAdditional ? actualPropertyKeys : undefined,
|
|
545
|
+
removePropertyKeys
|
|
546
|
+
)
|
|
500
547
|
}
|
|
501
548
|
|
|
502
549
|
if (skeleton.nullable && context.errors) {
|
|
@@ -558,31 +605,35 @@ export function createStateNode (
|
|
|
558
605
|
const activeChildKey = `${fullKey}/${activeChildTreeIndex}`
|
|
559
606
|
if (context.autofocusTarget === fullKey) context.autofocusTarget = activeChildKey
|
|
560
607
|
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
608
|
+
const child = createStateNode(
|
|
609
|
+
context,
|
|
610
|
+
options,
|
|
611
|
+
compiledLayout,
|
|
612
|
+
activeChildTreeIndex,
|
|
613
|
+
activeChildKey,
|
|
614
|
+
fullKey,
|
|
615
|
+
dataPath,
|
|
616
|
+
dataPath,
|
|
617
|
+
activeChildNode,
|
|
618
|
+
null,
|
|
619
|
+
display,
|
|
620
|
+
nodeData,
|
|
621
|
+
{ parent: parentContext, data: nodeData },
|
|
622
|
+
validationState,
|
|
623
|
+
reusedNode?.children?.[0]
|
|
624
|
+
)
|
|
625
|
+
// the oneOf was hydrated
|
|
626
|
+
if (child.data !== nodeData) {
|
|
627
|
+
// nodeData = produceHydratedStateNodeData(nodeData, dataPath, child, skeleton.children?.map(childSkeletonKey => compiledLayout.skeletonNodes[childSkeletonKey]))
|
|
628
|
+
nodeData = child.data
|
|
629
|
+
}
|
|
630
|
+
children = [child]
|
|
580
631
|
}
|
|
581
632
|
}
|
|
582
633
|
|
|
583
634
|
if (isListLayout(layout)) {
|
|
584
635
|
if (layout.indexed) {
|
|
585
|
-
const objectData = /** @type {Record<string, unknown>} */(
|
|
636
|
+
const objectData = /** @type {Record<string, unknown>} */(nodeData ?? [])
|
|
586
637
|
const listItemOptions = layout.listEditMode === 'inline' ? options : produceReadonlyArrayItemOptions(options)
|
|
587
638
|
children = []
|
|
588
639
|
let focusChild = context.autofocusTarget === fullKey
|
|
@@ -605,6 +656,7 @@ export function createStateNode (
|
|
|
605
656
|
if (valueChildSkeleton) {
|
|
606
657
|
const childFullKey = `${fullKey}/${childKey}`
|
|
607
658
|
if (focusChild) context.autofocusTarget = childFullKey
|
|
659
|
+
const valueChildData = objectData[childKey]
|
|
608
660
|
const valueChild = createStateNode(
|
|
609
661
|
context,
|
|
610
662
|
(layout.listEditMode === 'inline-single' && context.activatedItems[fullKey] === i) ? options : listItemOptions,
|
|
@@ -617,17 +669,28 @@ export function createStateNode (
|
|
|
617
669
|
valueChildSkeleton,
|
|
618
670
|
null,
|
|
619
671
|
display,
|
|
620
|
-
|
|
672
|
+
valueChildData,
|
|
621
673
|
{ parent: parentContext, data: objectData },
|
|
622
674
|
validationState,
|
|
623
675
|
reusedNode?.children?.find(c => c.key === childKey)
|
|
624
676
|
)
|
|
625
677
|
if (valueChild.autofocus || valueChild.autofocusChild !== undefined) focusChild = false
|
|
626
678
|
children.push(valueChild)
|
|
679
|
+
|
|
680
|
+
if (valueChild.data !== valueChildData) {
|
|
681
|
+
// WARN: this manner of creating empty object or array based on the type of the child key does not seem very safe
|
|
682
|
+
// can we find a better way to discriminate ? maybe store an extra info on the the skeleton, like "emptyData" ?
|
|
683
|
+
nodeData = produceHydratedStateNodeData(
|
|
684
|
+
nodeData ?? {},
|
|
685
|
+
dataPath,
|
|
686
|
+
valueChild,
|
|
687
|
+
skeleton.children?.map(childSkeletonKey => compiledLayout.skeletonNodes[childSkeletonKey])
|
|
688
|
+
)
|
|
689
|
+
}
|
|
627
690
|
}
|
|
628
691
|
}
|
|
629
692
|
} else {
|
|
630
|
-
const arrayData = /** @type {unknown[]} */(
|
|
693
|
+
const arrayData = /** @type {unknown[]} */(nodeData ?? [])
|
|
631
694
|
const childSkeleton = /** @type {import('../index.js').SkeletonNode} */(skeleton?.childrenTrees?.[0] && compiledLayout.skeletonNodes[compiledLayout.skeletonTrees[skeleton?.childrenTrees?.[0]]?.root])
|
|
632
695
|
const listItemOptions = layout.listEditMode === 'inline' ? options : produceReadonlyArrayItemOptions(options)
|
|
633
696
|
children = []
|
|
@@ -706,8 +769,6 @@ export function createStateNode (
|
|
|
706
769
|
}
|
|
707
770
|
}
|
|
708
771
|
|
|
709
|
-
let nodeData = data
|
|
710
|
-
|
|
711
772
|
if (!layout.getConstData) {
|
|
712
773
|
if (typeof children?.[0]?.key === 'number' && layout.comp !== 'one-of-select' && !layout.indexed) {
|
|
713
774
|
// case of an array of children nodes
|
|
@@ -715,7 +776,7 @@ export function createStateNode (
|
|
|
715
776
|
/** @type {unknown[]} */(nodeData ?? []),
|
|
716
777
|
children
|
|
717
778
|
)
|
|
718
|
-
} else if (Array.isArray(nodeData)) {
|
|
779
|
+
} else if (Array.isArray(nodeData) && !children) {
|
|
719
780
|
// case of an array without children nodes, so a select of objects for example
|
|
720
781
|
const itemsSkeletonTree = skeleton.childrenTrees?.[0] && compiledLayout.skeletonTrees[skeleton.childrenTrees?.[0]]
|
|
721
782
|
const itemsSkeletonNode = (itemsSkeletonTree && compiledLayout.skeletonNodes[itemsSkeletonTree.root]) || null
|
|
@@ -723,19 +784,17 @@ export function createStateNode (
|
|
|
723
784
|
/** @type {Record<string, unknown>[]} */(nodeData ?? []),
|
|
724
785
|
dataPath,
|
|
725
786
|
context.additionalPropertiesErrors,
|
|
726
|
-
|
|
787
|
+
itemsSkeletonNode?.propertyKeys.length ? itemsSkeletonNode?.propertyKeys : undefined,
|
|
727
788
|
options.readOnlyPropertiesMode === 'remove' ? itemsSkeletonNode?.roPropertyKeys : undefined
|
|
728
789
|
)
|
|
729
|
-
} else if (
|
|
730
|
-
// case of an object
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
/** @type {Record<string, unknown>} */(nodeData ?? {}),
|
|
790
|
+
} else if (typeof nodeData === 'object' && !(nodeData instanceof File) && !children) {
|
|
791
|
+
// case of an object outside of a composite component, probably a select
|
|
792
|
+
nodeData = cleanNodeData(
|
|
793
|
+
/** @type {Record<string, unknown>} */(nodeData ?? {}),
|
|
734
794
|
dataPath,
|
|
735
|
-
children,
|
|
736
795
|
context.additionalPropertiesErrors,
|
|
737
|
-
|
|
738
|
-
options.readOnlyPropertiesMode === 'remove' ? skeleton
|
|
796
|
+
skeleton?.propertyKeys.length ? skeleton?.propertyKeys : undefined,
|
|
797
|
+
options.readOnlyPropertiesMode === 'remove' ? skeleton?.roPropertyKeys : undefined
|
|
739
798
|
)
|
|
740
799
|
}
|
|
741
800
|
|
|
@@ -828,6 +887,7 @@ export function createStateNode (
|
|
|
828
887
|
} else if (layout.comp === 'list' && itemsCacheKey) {
|
|
829
888
|
logGetItems(fullKey, 'list component with unchanged getItems cache key, no fetch will be triggered', itemsCacheKey)
|
|
830
889
|
}
|
|
890
|
+
|
|
831
891
|
const node = produceStateNode(
|
|
832
892
|
reusedNode ?? /** @type {import('./types.js').StateNode} */({}),
|
|
833
893
|
key,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-node.d.ts","sourceRoot":"","sources":["../../src/compile/skeleton-node.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;GAkBG;AACH,4CAlBW,GAAG,kBACH,MAAM,WACN,OAAO,YAAY,EAAE,cAAc,cACnC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,iBACxD,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,iBACjD,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,oBACjD,MAAM,EAAE,oBACR,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,qBACxB,MAAM,CAAC,MAAM,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,eAClE,OAAO,yBAAyB,EAAE,UAAU,EAAE,OAC9C,MAAM,GAAG,MAAM,WACf,MAAM,YACN,OAAO,cACP,MAAM,cACN,OAAO,cACP,MAAM,GACJ,OAAO,YAAY,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"skeleton-node.d.ts","sourceRoot":"","sources":["../../src/compile/skeleton-node.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;GAkBG;AACH,4CAlBW,GAAG,kBACH,MAAM,WACN,OAAO,YAAY,EAAE,cAAc,cACnC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,iBACxD,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,iBACjD,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,oBACjD,MAAM,EAAE,oBACR,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,qBACxB,MAAM,CAAC,MAAM,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,eAClE,OAAO,yBAAyB,EAAE,UAAU,EAAE,OAC9C,MAAM,GAAG,MAAM,WACf,MAAM,YACN,OAAO,cACP,MAAM,cACN,OAAO,cACP,MAAM,GACJ,OAAO,YAAY,EAAE,YAAY,CAgjB7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AAmRA;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;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,GAAG,iBACH,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,mBAC5D,OAAO,YAAY,EAAE,eAAe,eACpC,OAAO,YAAY,EAAE,SAAS,GAC5B,OAAO,YAAY,EAAE,SAAS,CAojB1C;AA53BM,qCALI,OAAO,UACP,OAAO,yBAAyB,EAAE,cAAc,WAChD,OAAO,YAAY,EAAE,gBAAgB,GACnC,OAAO,CAMnB;AA03BD,uFAAuF;AACvF,iCADW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,CAgBjF;AAEF,kKAAkK;AAClK,8BADW,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,yBAAyB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,yBAAyB,EAAE,WAAW,KAAK,GAAG,CAY7J"}
|