@json-layout/core 1.3.0 → 1.4.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 +2 -2
- package/src/state/index.js +13 -2
- package/types/state/index.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@json-layout/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
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": "~1.
|
|
62
|
+
"@json-layout/vocabulary": "~1.4.1",
|
|
63
63
|
"ajv": "^8.12.0",
|
|
64
64
|
"ajv-errors": "^3.0.0",
|
|
65
65
|
"ajv-formats": "^2.1.1",
|
package/src/state/index.js
CHANGED
|
@@ -52,6 +52,9 @@ export const isItemsNode = (node, components) => !!node && isItemsLayout(node.la
|
|
|
52
52
|
|
|
53
53
|
const logDataBinding = debug('jl:data-binding')
|
|
54
54
|
const logSelectItems = debug('jl:select-items')
|
|
55
|
+
const logActivatedItems = debug('jl:activated-items')
|
|
56
|
+
|
|
57
|
+
const pathURL = (/** @type {string} */url) => new URL(url.startsWith('/') ? window.location.origin + url : url)
|
|
55
58
|
|
|
56
59
|
export class StatefulLayout {
|
|
57
60
|
/**
|
|
@@ -311,6 +314,7 @@ export class StatefulLayout {
|
|
|
311
314
|
}
|
|
312
315
|
this.files = shallowProduceArray(this.files, createStateTreeContext.files)
|
|
313
316
|
for (const activatedKey in createStateTreeContext.autoActivatedItems) {
|
|
317
|
+
logActivatedItems('auto-activated item', activatedKey, createStateTreeContext.autoActivatedItems[activatedKey])
|
|
314
318
|
this.activatedItems = produce(this.activatedItems, draft => { draft[activatedKey] = createStateTreeContext.autoActivatedItems[activatedKey] })
|
|
315
319
|
}
|
|
316
320
|
}
|
|
@@ -405,6 +409,7 @@ export class StatefulLayout {
|
|
|
405
409
|
}
|
|
406
410
|
|
|
407
411
|
if (activateKey !== undefined) {
|
|
412
|
+
logActivatedItems('activated item on input', node.fullKey, activateKey)
|
|
408
413
|
this.activatedItems = produce(this.activatedItems, draft => { draft[node.fullKey] = activateKey })
|
|
409
414
|
this._autofocusTarget = node.fullKey + '/' + activateKey
|
|
410
415
|
}
|
|
@@ -543,7 +548,7 @@ export class StatefulLayout {
|
|
|
543
548
|
}
|
|
544
549
|
if (node.layout.getItems && isGetItemsFetch(node.layout.getItems)) {
|
|
545
550
|
logSelectItems(`${node.fullKey} - will fetch raw items from URL`, node.itemsCacheKey)
|
|
546
|
-
const url =
|
|
551
|
+
const url = pathURL(node.itemsCacheKey)
|
|
547
552
|
let qSearchParam = node.layout.getItems.qSearchParam
|
|
548
553
|
if (!qSearchParam) {
|
|
549
554
|
for (const searchParam of url.searchParams.entries()) {
|
|
@@ -643,6 +648,7 @@ export class StatefulLayout {
|
|
|
643
648
|
* @param {number} key
|
|
644
649
|
*/
|
|
645
650
|
activateItem (node, key) {
|
|
651
|
+
logActivatedItems('activate item explicitly', node.fullKey, key)
|
|
646
652
|
this.activatedItems = produce(this.activatedItems, draft => { draft[node.fullKey] = key })
|
|
647
653
|
this._autofocusTarget = node.fullKey + '/' + key
|
|
648
654
|
if (node.key === '$oneOf') {
|
|
@@ -652,6 +658,7 @@ export class StatefulLayout {
|
|
|
652
658
|
if (!parentNode.data || typeof parentNode.data !== 'object') throw new Error(`parent with key "${node.parentFullKey}" is missing data object`)
|
|
653
659
|
/** @type Record<string, any> */
|
|
654
660
|
const newParentData = { ...parentNode.data }
|
|
661
|
+
logActivatedItems('remove properties of previous oneOf activated item', node.fullKey, node.children?.[0].fullKey)
|
|
655
662
|
for (const propertyKey of node.children?.[0].skeleton.propertyKeys) {
|
|
656
663
|
delete newParentData[propertyKey]
|
|
657
664
|
}
|
|
@@ -669,10 +676,14 @@ export class StatefulLayout {
|
|
|
669
676
|
* @param {StateNode} node
|
|
670
677
|
*/
|
|
671
678
|
deactivateItem (node) {
|
|
679
|
+
logActivatedItems('deactivate item explicitly', node.fullKey)
|
|
672
680
|
// also deactivate children oneOf for example
|
|
673
681
|
this.activatedItems = produce(this.activatedItems, draft => {
|
|
674
682
|
for (const key in draft) {
|
|
675
|
-
if (key.startsWith(node.fullKey))
|
|
683
|
+
if (key.startsWith(node.fullKey)) {
|
|
684
|
+
logActivatedItems('item deactivation deletes a key', key)
|
|
685
|
+
delete draft[key]
|
|
686
|
+
}
|
|
676
687
|
}
|
|
677
688
|
})
|
|
678
689
|
this.updateState()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.js"],"names":[],"mappings":";;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,mEAAmE;AACnE,+BADkB,SAAS,GAAG,SAAS,8CACoC;AAE3E,iLAAiL;AACjL,iCADkB,SAAS,GAAG,SAAS,cAAc,OAAO,MAAM,EAAE,OAAO,yBAAyB,EAAE,aAAa,CAAC,yHACnB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.js"],"names":[],"mappings":";;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,mEAAmE;AACnE,+BADkB,SAAS,GAAG,SAAS,8CACoC;AAE3E,iLAAiL;AACjL,iCADkB,SAAS,GAAG,SAAS,cAAc,OAAO,MAAM,EAAE,OAAO,yBAAyB,EAAE,aAAa,CAAC,yHACnB;AAQjG;IAiIE;;;;;OAKG;IACH,4BALW,OAAO,aAAa,EAAE,cAAc,gBACpC,OAAO,aAAa,EAAE,YAAY,WAClC,QAAQ,qBAAqB,CAAC,SAC9B,OAAO,EAejB;IAnJD;;;;OAIG;IACH,iCAAe;IACf,mEAAqD;IAErD;;;OAGG;IAEH,mBAAU;IACV,gDAA2C;IAE3C;;;OAGG;IACH,uBAFU,OAAO,aAAa,EAAE,YAAY,CAEhC;IAEZ;;;OAGG;IAEH,iBAAQ;IACR,uBAAuC;IAEvC;;;OAGG;IAEH,yBAAgB;IAQhB;;;OAGG;IACH,+DAOC;IAlBD;;OAEG;IACH,4DAEC;IAeD;;;OAGG;IAEH,iBAAQ;IAKR;;OAEG;IACH,6DAIC;IAXD;;OAEG;IACH,0DAAuC;IAUvC;;;OAGG;IACH,cAAK;IAEL,uBAIC;IALD,oBAAiC;IAOjC;;;OAGG;IACH,sBAAa;IAEb;;;OAGG;IACH,4BAA2B;IAE3B;;;OAGG;IACH,sBAAoB;IAEpB;;;OAGG;IAEH,oCAA2B;IAE3B;;;OAGG;IACH,yBAAgB;IAChB;;;OAGG;IACH,iCAAwB;IAExB;;OAEG;IACH,OAFU,OAAO,EAAE,CAET;IAucV;;OAEG;IACH,gBAFU,OAAO,MAAM,EAAE,MAAM,CAAC,CAElB;IAnbd;;;OAGG;IACH,uBAGC;IAED;;OAEG;IACH,4BAOC;IAED;;OAEG;IACH,oBA2BC;IAED;;OAEG;IACH,iBAOC;IAED;;;OAGG;IACH,wBA0CC;IAED,iBAEC;IAED,wBAGC;IAED;;OAEG;IACH,qBAEC;IAED;;OAEG;IACH,uBAEC;IAED;;OAEG;IACH,8BAEC;IAED;;;;OAIG;IACH,mCAOC;IAED;;;;;OAKG;IACH,yBALW,SAAS,cACT,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,GACD,GAAG,CAIf;IAED;;;;;;OAMG;IACH,mBAkDC;IAED;;;OAGG;IACH,uBAAqB;IAErB,4BAMC;IAED;;;;OAIG;IACH,YAJW,SAAS,QACT,OAAO,0CA4BjB;IAED;;OAEG;IACH,WAFW,SAAS,QA4BnB;IAED;;OAEG;IACH,0BAFW,SAAS,QASnB;IAED;;;OAGG;IACH,oBAAgB;IAEhB;;;;;OAKG;IACH,6BAiDC;IAED;;;;OAIG;IACH,eAJW,SAAS,MACT,MAAM,GACJ,QAAQ,OAAO,yBAAyB,EAAE,WAAW,CAAC,CAoBlE;IAED;;;;OAIG;IACH,wBAJW,SAAS,WACT,GAAG,GACD,OAAO,yBAAyB,EAAE,UAAU,CAwBxD;IAOD;;;OAGG;IACH,mBAHW,SAAS,OACT,MAAM,QAyBhB;IAED;;OAEG;IACH,qBAFW,SAAS,QAcnB;IAED,wBASC;CACF;wBA/qBY,OAAO,YAAY,EAAE,SAAS;wBAC9B,OAAO,YAAY,EAAE,SAAS;oCAC9B,OAAO,YAAY,EAAE,qBAAqB;qCAC1C,OAAO,YAAY,EAAE,sBAAsB;4BAC3C,OAAO,YAAY,EAAE,aAAa;2BAClC,OAAO,YAAY,EAAE,YAAY;8BACjC,OAAO,YAAY,EAAE,eAAe;yBACpC,OAAO,YAAY,EAAE,UAAU;0BAC/B,OAAO,YAAY,EAAE,WAAW;yBAChC,OAAO,YAAY,EAAE,UAAU;+BAC/B,OAAO,YAAY,EAAE,gBAAgB;6BACrC,OAAO,YAAY,EAAE,cAAc;gCACnC,OAAO,YAAY,EAAE,iBAAiB;8BACtC,OAAO,YAAY,EAAE,eAAe;2BACpC,OAAO,YAAY,EAAE,YAAY;2BACjC,OAAO,YAAY,EAAE,YAAY;yBACjC,OAAO,YAAY,EAAE,UAAU;8BAC/B,OAAO,YAAY,EAAE,eAAe;6BACpC,OAAO,YAAY,EAAE,cAAc;iCACnC,OAAO,YAAY,EAAE,kBAAkB;6BACvC,OAAO,YAAY,EAAE,cAAc;kCACnC,OAAO,YAAY,EAAE,mBAAmB;uBACxC,OAAO,YAAY,EAAE,QAAQ;+BAC7B,OAAO,YAAY,EAAE,gBAAgB;0BACrC,OAAO,YAAY,EAAE,WAAW;8BAChC,OAAO,YAAY,EAAE,eAAe;uBACpC,OAAO,YAAY,EAAE,QAAQ;4BAC7B,OAAO,YAAY,EAAE,aAAa;uBAClC,OAAO,YAAY,EAAE,QAAQ;sBAC7B,OAAO,YAAY,EAAE,OAAO;wBAtCjB,oBAAoB"}
|