@json-layout/core 2.6.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@json-layout/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.1",
|
|
4
4
|
"description": "Compilation and state management utilities for JSON Layout.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
},
|
|
83
83
|
"homepage": "https://github.com/json-layout/json-layout#readme",
|
|
84
84
|
"peerDependencies": {
|
|
85
|
-
"@json-layout/vocabulary": "^2.
|
|
85
|
+
"@json-layout/vocabulary": "^2.13.0"
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
88
|
"ajv": "^8.17.1",
|
|
@@ -324,6 +324,14 @@ export function makeSkeletonNode (
|
|
|
324
324
|
if (compObject.defaultData === undefined) compObject.defaultData = defaultData
|
|
325
325
|
if (compObject.defaultData !== undefined && !compObject.getDefaultData) compObject.getDefaultData = { type: 'js-eval', expr: 'layout.defaultData', pure: true, dataAlias: 'value' }
|
|
326
326
|
if (compObject.getDefaultData) pushExpression(expressions, compObject.getDefaultData)
|
|
327
|
+
|
|
328
|
+
if (compObject.options !== undefined && !compObject.getOptions) compObject.getOptions = { type: 'js-eval', expr: 'layout.options', pure: true, dataAlias: 'value' }
|
|
329
|
+
if (compObject.getOptions) pushExpression(expressions, compObject.getOptions)
|
|
330
|
+
|
|
331
|
+
if (compObject.props !== undefined && !compObject.getProps) compObject.getProps = { type: 'js-eval', expr: 'layout.props', pure: true, dataAlias: 'value' }
|
|
332
|
+
if (compObject.getProps) pushExpression(expressions, compObject.getProps)
|
|
333
|
+
|
|
334
|
+
if (compObject.transformData) pushExpression(expressions, compObject.transformData)
|
|
327
335
|
}
|
|
328
336
|
|
|
329
337
|
normalizedLayouts[oneOfPointer] = normalizationResult.layout
|
package/src/state/state-node.js
CHANGED
|
@@ -571,12 +571,28 @@ export function createStateNode (
|
|
|
571
571
|
// or the one matching the specified discriminator
|
|
572
572
|
// or the one that is valid with current data
|
|
573
573
|
let activeChildTreeIndex = /** @type {number} */(context.activatedItems[fullKey])
|
|
574
|
-
|
|
575
|
-
if (activeChildTreeIndex
|
|
576
|
-
|
|
577
|
-
|
|
574
|
+
let validChildTreeIndex = -1
|
|
575
|
+
if (activeChildTreeIndex !== undefined) {
|
|
576
|
+
// already explicitly activated, just check if data validates against the active variant
|
|
577
|
+
const activeTree = skeleton.childrenTrees[activeChildTreeIndex]
|
|
578
|
+
if (activeTree !== undefined && compiledLayout.validates[compiledLayout.skeletonTrees[activeTree].refPointer](data)) {
|
|
579
|
+
validChildTreeIndex = activeChildTreeIndex
|
|
580
|
+
}
|
|
581
|
+
} else {
|
|
582
|
+
// try discriminator-based resolution first (cheap string comparison)
|
|
583
|
+
if (skeleton.discriminator !== undefined && data?.[skeleton.discriminator] !== undefined) {
|
|
584
|
+
activeChildTreeIndex = skeleton.childrenTrees?.findIndex((childTree) => data[/** @type {string} */(skeleton.discriminator)] === compiledLayout.skeletonTrees[childTree].discriminatorValue)
|
|
585
|
+
}
|
|
586
|
+
// fall back to full schema validation if discriminator didn't match
|
|
587
|
+
if (activeChildTreeIndex === undefined || activeChildTreeIndex === -1) {
|
|
588
|
+
activeChildTreeIndex = skeleton.childrenTrees?.findIndex((childTree) => compiledLayout.validates[compiledLayout.skeletonTrees[childTree].refPointer](data))
|
|
589
|
+
validChildTreeIndex = activeChildTreeIndex
|
|
578
590
|
} else {
|
|
579
|
-
|
|
591
|
+
// discriminator matched, validate just that variant
|
|
592
|
+
const matchedTree = skeleton.childrenTrees[activeChildTreeIndex]
|
|
593
|
+
if (compiledLayout.validates[compiledLayout.skeletonTrees[matchedTree].refPointer](data)) {
|
|
594
|
+
validChildTreeIndex = activeChildTreeIndex
|
|
595
|
+
}
|
|
580
596
|
}
|
|
581
597
|
}
|
|
582
598
|
|
package/src/utils/build.js
CHANGED
|
@@ -8,7 +8,8 @@ export const commonjsDeps = [
|
|
|
8
8
|
'ajv-formats/dist/formats.js',
|
|
9
9
|
'ajv-i18n',
|
|
10
10
|
'ajv-errors',
|
|
11
|
-
'debug'
|
|
11
|
+
'debug',
|
|
12
|
+
'fast-deep-equal'
|
|
12
13
|
]
|
|
13
14
|
|
|
14
15
|
/** @type {string[][]} */
|
|
@@ -19,5 +20,6 @@ export const commonjsDepsPaths = [
|
|
|
19
20
|
['@json-layout/core', 'ajv-formats/dist/formats.js'],
|
|
20
21
|
['@json-layout/core', 'ajv-i18n'],
|
|
21
22
|
['@json-layout/core', 'ajv-errors'],
|
|
22
|
-
['@json-layout/core', 'debug']
|
|
23
|
+
['@json-layout/core', 'debug'],
|
|
24
|
+
['@json-layout/core', 'fast-deep-equal']
|
|
23
25
|
]
|
|
@@ -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,CA4jB7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AAkRA;;;;;;;;;;;GAWG;AACH,4CAXW,OAAO,aAAa,EAAE,kBAAkB,EAAE,cAC1C,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,WACH,OAAO,YAAY,EAAE,gBAAgB,WACrC,OAAO,oBAAoB,EAAE,OAAO,UACpC,OAAO,yBAAyB,EAAE,cAAc,aAChD,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,gBAAgB,CAAC,YAC9C,OAAO,iBACP,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,GAC1D,GAAG,CAsBf;AAiCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,yCAlBW,OAAO,YAAY,EAAE,sBAAsB,iBAC3C,OAAO,YAAY,EAAE,gBAAgB,kBACrC,OAAO,aAAa,EAAE,cAAc,OACpC,MAAM,GAAG,MAAM,WACf,MAAM,iBACN,MAAM,GAAG,IAAI,YACb,MAAM,kBACN,MAAM,GAAG,IAAI,YACb,OAAO,aAAa,EAAE,YAAY,mBAClC,OAAO,yBAAyB,EAAE,KAAK,GAAG,IAAI,iBAC9C,OAAO,oBAAoB,EAAE,OAAO,QACpC,GAAG,iBACH,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,mBAC5D,OAAO,YAAY,EAAE,eAAe,cACpC,MAAM,eACN,OAAO,YAAY,EAAE,SAAS,GAC5B,OAAO,YAAY,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AAkRA;;;;;;;;;;;GAWG;AACH,4CAXW,OAAO,aAAa,EAAE,kBAAkB,EAAE,cAC1C,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,WACH,OAAO,YAAY,EAAE,gBAAgB,WACrC,OAAO,oBAAoB,EAAE,OAAO,UACpC,OAAO,yBAAyB,EAAE,cAAc,aAChD,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,gBAAgB,CAAC,YAC9C,OAAO,iBACP,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,GAC1D,GAAG,CAsBf;AAiCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,yCAlBW,OAAO,YAAY,EAAE,sBAAsB,iBAC3C,OAAO,YAAY,EAAE,gBAAgB,kBACrC,OAAO,aAAa,EAAE,cAAc,OACpC,MAAM,GAAG,MAAM,WACf,MAAM,iBACN,MAAM,GAAG,IAAI,YACb,MAAM,kBACN,MAAM,GAAG,IAAI,YACb,OAAO,aAAa,EAAE,YAAY,mBAClC,OAAO,yBAAyB,EAAE,KAAK,GAAG,IAAI,iBAC9C,OAAO,oBAAoB,EAAE,OAAO,QACpC,GAAG,iBACH,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,mBAC5D,OAAO,YAAY,EAAE,eAAe,cACpC,MAAM,eACN,OAAO,YAAY,EAAE,SAAS,GAC5B,OAAO,YAAY,EAAE,SAAS,CA2nB1C;AAl8BM,qCALI,OAAO,UACP,OAAO,yBAAyB,EAAE,cAAc,WAChD,OAAO,YAAY,EAAE,gBAAgB,GACnC,OAAO,CAMnB;AAg8BD,uFAAuF;AACvF,iCADW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,CAgBjF;AAEF,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/utils/build.js"],"names":[],"mappings":"AAEA,uBAAuB;AACvB,2BADW,MAAM,EAAE,
|
|
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"}
|