palistor 0.0.24 → 0.0.26
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/README.md +574 -542
- package/README.ru.md +979 -0
- package/dist/index.d.ts +19 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -28
- package/dist/index.js.map +1 -1
- package/dist/react/createTrackingProxy.d.ts +27 -27
- package/dist/react/createTrackingProxy.d.ts.map +1 -1
- package/dist/react/createTrackingProxy.js +92 -42
- package/dist/react/createTrackingProxy.js.map +1 -1
- package/dist/react/useForm.d.ts +42 -43
- package/dist/react/useForm.d.ts.map +1 -1
- package/dist/react/useForm.js +38 -38
- package/dist/react/useForm.js.map +1 -1
- package/dist/react/usePersist.d.ts +14 -14
- package/dist/react/usePersist.js +18 -18
- package/dist/react/usePersist.js.map +1 -1
- package/dist/react/useStoreContext.d.ts +11 -11
- package/dist/react/useStoreContext.js +11 -11
- package/dist/react/useTranslator.d.ts +12 -12
- package/dist/react/useTranslator.js +12 -12
- package/dist/store/applyPatch/applyPatch.d.ts +8 -8
- package/dist/store/applyPatch/applyPatch.js +12 -12
- package/dist/store/applyPatch/applyPatch.js.map +1 -1
- package/dist/store/buildProxy/buildEntityProjectionProxy.js +6 -6
- package/dist/store/buildProxy/buildEntityProjectionProxy.js.map +1 -1
- package/dist/store/buildProxy/buildListProxy.d.ts +8 -8
- package/dist/store/buildProxy/buildListProxy.js +30 -30
- package/dist/store/buildProxy/buildListProxy.js.map +1 -1
- package/dist/store/buildProxy/buildProxy.d.ts +8 -8
- package/dist/store/buildProxy/buildProxy.d.ts.map +1 -1
- package/dist/store/buildProxy/buildProxy.js +84 -33
- package/dist/store/buildProxy/buildProxy.js.map +1 -1
- package/dist/store/buildProxy/computeProxyKeys.d.ts +8 -8
- package/dist/store/buildProxy/computeProxyKeys.d.ts.map +1 -1
- package/dist/store/buildProxy/computeProxyKeys.js +18 -13
- package/dist/store/buildProxy/computeProxyKeys.js.map +1 -1
- package/dist/store/buildProxy/handleLazyResolve.d.ts +3 -3
- package/dist/store/buildProxy/handleLazyResolve.js +3 -3
- package/dist/store/buildProxy/initProxyCaches.d.ts +5 -5
- package/dist/store/buildProxy/initProxyCaches.js +5 -5
- package/dist/store/compute/computeFieldState.d.ts +3 -3
- package/dist/store/compute/computeFieldState.js +8 -8
- package/dist/store/compute/computeFieldState.js.map +1 -1
- package/dist/store/compute/fieldStateChanged.d.ts +1 -1
- package/dist/store/compute/fieldStateChanged.js +1 -1
- package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts +4 -4
- package/dist/store/compute/recompute/collectGroupComputeNodes.js +7 -7
- package/dist/store/compute/recompute/collectGroupComputeNodes.js.map +1 -1
- package/dist/store/compute/recompute/recomputeAndNotify.d.ts +3 -3
- package/dist/store/compute/recompute/recomputeAndNotify.js +3 -3
- package/dist/store/compute/recompute/recomputeLeaves.d.ts +11 -10
- package/dist/store/compute/recompute/recomputeLeaves.d.ts.map +1 -1
- package/dist/store/compute/recompute/recomputeLeaves.js +26 -27
- package/dist/store/compute/recompute/recomputeLeaves.js.map +1 -1
- package/dist/store/compute/recompute/recomputeTargeted.d.ts +7 -7
- package/dist/store/compute/recompute/recomputeTargeted.js +12 -12
- package/dist/store/compute/recompute/recomputeTargeted.js.map +1 -1
- package/dist/store/compute/recompute/topologicalSortComputed.d.ts +4 -4
- package/dist/store/compute/recompute/topologicalSortComputed.d.ts.map +1 -1
- package/dist/store/compute/recompute/topologicalSortComputed.js +11 -13
- package/dist/store/compute/recompute/topologicalSortComputed.js.map +1 -1
- package/dist/store/compute/recompute/types.d.ts +4 -4
- package/dist/store/compute/resolveFlag.d.ts +2 -2
- package/dist/store/compute/resolveFlag.js +2 -2
- package/dist/store/compute/resolveString.d.ts +5 -5
- package/dist/store/compute/resolveString.js +6 -6
- package/dist/store/compute/resolveString.js.map +1 -1
- package/dist/store/compute/types.d.ts +3 -3
- package/dist/store/constants.d.ts +57 -38
- package/dist/store/constants.d.ts.map +1 -1
- package/dist/store/constants.js +70 -35
- package/dist/store/constants.js.map +1 -1
- package/dist/store/defineFieldMapping.d.ts +21 -19
- package/dist/store/defineFieldMapping.d.ts.map +1 -1
- package/dist/store/defineFieldMapping.js +21 -19
- package/dist/store/defineFieldMapping.js.map +1 -1
- package/dist/store/dirtyTracking/collectInitialSnapshot.js +1 -1
- package/dist/store/dirtyTracking/collectInitialSnapshot.js.map +1 -1
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts +3 -3
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.js +11 -11
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.js.map +1 -1
- package/dist/store/dirtyTracking/setGroupRevalidate.d.ts +6 -6
- package/dist/store/dirtyTracking/setGroupRevalidate.js +7 -7
- package/dist/store/dirtyTracking/setGroupRevalidate.js.map +1 -1
- package/dist/store/entityRegistry/entityRegistry.d.ts +72 -72
- package/dist/store/entityRegistry/entityRegistry.d.ts.map +1 -1
- package/dist/store/entityRegistry/entityRegistry.js +91 -91
- package/dist/store/entityRegistry/entityRegistry.js.map +1 -1
- package/dist/store/entityRegistry/generateId.d.ts +3 -3
- package/dist/store/entityRegistry/generateId.js +3 -3
- package/dist/store/entityRegistry/types.d.ts +17 -17
- package/dist/store/entityRegistry/types.d.ts.map +1 -1
- package/dist/store/flow/buildFlowStepsProxy.d.ts +17 -0
- package/dist/store/flow/buildFlowStepsProxy.d.ts.map +1 -0
- package/dist/store/flow/buildFlowStepsProxy.js +72 -0
- package/dist/store/flow/buildFlowStepsProxy.js.map +1 -0
- package/dist/store/flow/defineFlow.d.ts +92 -0
- package/dist/store/flow/defineFlow.d.ts.map +1 -0
- package/dist/store/flow/defineFlow.js +99 -0
- package/dist/store/flow/defineFlow.js.map +1 -0
- package/dist/store/flow/flowApi.d.ts +18 -0
- package/dist/store/flow/flowApi.d.ts.map +1 -0
- package/dist/store/flow/flowApi.js +18 -0
- package/dist/store/flow/flowApi.js.map +1 -0
- package/dist/store/flow/flowNavigation.d.ts +137 -0
- package/dist/store/flow/flowNavigation.d.ts.map +1 -0
- package/dist/store/flow/flowNavigation.js +384 -0
- package/dist/store/flow/flowNavigation.js.map +1 -0
- package/dist/store/flow/flowState.d.ts +41 -0
- package/dist/store/flow/flowState.d.ts.map +1 -0
- package/dist/store/flow/flowState.js +51 -0
- package/dist/store/flow/flowState.js.map +1 -0
- package/dist/store/flow/index.d.ts +10 -0
- package/dist/store/flow/index.d.ts.map +1 -0
- package/dist/store/flow/index.js +6 -0
- package/dist/store/flow/index.js.map +1 -0
- package/dist/store/groupDeps/createGroupDeps.d.ts +3 -3
- package/dist/store/groupDeps/createGroupDeps.js +6 -6
- package/dist/store/groupDeps/createGroupDeps.js.map +1 -1
- package/dist/store/groupDeps/createTrackingValues.d.ts +9 -9
- package/dist/store/groupDeps/createTrackingValues.js +11 -11
- package/dist/store/groupDeps/createTrackingValues.js.map +1 -1
- package/dist/store/groupDeps/getNodeGroupPath.d.ts +3 -3
- package/dist/store/groupDeps/getNodeGroupPath.js +5 -5
- package/dist/store/groupDeps/getNodeGroupPath.js.map +1 -1
- package/dist/store/groupDeps/getRecipientGroups.d.ts +1 -1
- package/dist/store/groupDeps/getRecipientGroups.js +1 -1
- package/dist/store/groupDeps/groupDeps.d.ts +7 -7
- package/dist/store/groupDeps/groupDeps.js +7 -7
- package/dist/store/groupDeps/pairKey.d.ts +3 -3
- package/dist/store/groupDeps/pairKey.d.ts.map +1 -1
- package/dist/store/groupDeps/pairKey.js +4 -4
- package/dist/store/groupDeps/pairKey.js.map +1 -1
- package/dist/store/groupDeps/resolveGroupByPath.d.ts +3 -3
- package/dist/store/groupDeps/resolveGroupByPath.js +3 -3
- package/dist/store/init/createNotificationHub.d.ts +31 -31
- package/dist/store/init/createNotificationHub.d.ts.map +1 -1
- package/dist/store/init/createNotificationHub.js +36 -37
- package/dist/store/init/createNotificationHub.js.map +1 -1
- package/dist/store/init/createResolveManager.d.ts +72 -69
- package/dist/store/init/createResolveManager.d.ts.map +1 -1
- package/dist/store/init/createResolveManager.js +101 -98
- package/dist/store/init/createResolveManager.js.map +1 -1
- package/dist/store/init/initGroupSubmitting.d.ts +2 -2
- package/dist/store/init/initGroupSubmitting.js +4 -4
- package/dist/store/init/initGroupSubmitting.js.map +1 -1
- package/dist/store/normalizeConfig.d.ts +20 -18
- package/dist/store/normalizeConfig.d.ts.map +1 -1
- package/dist/store/normalizeConfig.js +31 -29
- package/dist/store/normalizeConfig.js.map +1 -1
- package/dist/store/onChangePipeline/computeFieldKey.d.ts +2 -2
- package/dist/store/onChangePipeline/computeFieldKey.js +2 -2
- package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts +2 -2
- package/dist/store/onChangePipeline/findOnChangeAncestors.js +4 -4
- package/dist/store/onChangePipeline/findOnChangeAncestors.js.map +1 -1
- package/dist/store/onChangePipeline/onChangePipeline.d.ts +13 -12
- package/dist/store/onChangePipeline/onChangePipeline.d.ts.map +1 -1
- package/dist/store/onChangePipeline/onChangePipeline.js +14 -13
- package/dist/store/onChangePipeline/onChangePipeline.js.map +1 -1
- package/dist/store/persist/drivers.d.ts +7 -7
- package/dist/store/persist/drivers.js +8 -8
- package/dist/store/persist/drivers.js.map +1 -1
- package/dist/store/persist/index.d.ts +1 -1
- package/dist/store/persist/persistManager.d.ts +23 -23
- package/dist/store/persist/persistManager.d.ts.map +1 -1
- package/dist/store/persist/persistManager.js +73 -42
- package/dist/store/persist/persistManager.js.map +1 -1
- package/dist/store/persist/types.d.ts +23 -23
- package/dist/store/persist/types.d.ts.map +1 -1
- package/dist/store/persist/types.js +4 -4
- package/dist/store/resetPipeline/buildResetPatch.d.ts +5 -5
- package/dist/store/resetPipeline/buildResetPatch.js +5 -5
- package/dist/store/resetPipeline/collectDefaults.d.ts +5 -5
- package/dist/store/resetPipeline/collectDefaults.js +6 -6
- package/dist/store/resetPipeline/collectDefaults.js.map +1 -1
- package/dist/store/resetPipeline/resetPipeline.d.ts +7 -7
- package/dist/store/resetPipeline/resetPipeline.d.ts.map +1 -1
- package/dist/store/resetPipeline/resetPipeline.js +17 -12
- package/dist/store/resetPipeline/resetPipeline.js.map +1 -1
- package/dist/store/resolvePipeline/applyPendingWrites.d.ts +10 -10
- package/dist/store/resolvePipeline/applyPendingWrites.d.ts.map +1 -1
- package/dist/store/resolvePipeline/applyPendingWrites.js +35 -38
- package/dist/store/resolvePipeline/applyPendingWrites.js.map +1 -1
- package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts +8 -7
- package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts.map +1 -1
- package/dist/store/resolvePipeline/createContextTrackingProxy.js +6 -5
- package/dist/store/resolvePipeline/createContextTrackingProxy.js.map +1 -1
- package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts +43 -43
- package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts.map +1 -1
- package/dist/store/resolvePipeline/createValuesTrackingProxy.js +70 -70
- package/dist/store/resolvePipeline/createValuesTrackingProxy.js.map +1 -1
- package/dist/store/resolvePipeline/executeListResolve.d.ts +14 -14
- package/dist/store/resolvePipeline/executeListResolve.js +27 -27
- package/dist/store/resolvePipeline/executeListResolve.js.map +1 -1
- package/dist/store/resolvePipeline/executeResolve.d.ts +15 -15
- package/dist/store/resolvePipeline/executeResolve.js +46 -46
- package/dist/store/resolvePipeline/executeResolve.js.map +1 -1
- package/dist/store/store/NodeRegistry/nodeRegistry.d.ts +69 -56
- package/dist/store/store/NodeRegistry/nodeRegistry.d.ts.map +1 -1
- package/dist/store/store/NodeRegistry/nodeRegistry.js +94 -78
- package/dist/store/store/NodeRegistry/nodeRegistry.js.map +1 -1
- package/dist/store/store/NodeRegistry/nodeUtils.d.ts +5 -5
- package/dist/store/store/NodeRegistry/nodeUtils.d.ts.map +1 -1
- package/dist/store/store/NodeRegistry/nodeUtils.js +5 -5
- package/dist/store/store/NodeRegistry/nodeUtils.js.map +1 -1
- package/dist/store/store/groupDepsMap.d.ts +23 -23
- package/dist/store/store/groupDepsMap.d.ts.map +1 -1
- package/dist/store/store/groupDepsMap.js +40 -34
- package/dist/store/store/groupDepsMap.js.map +1 -1
- package/dist/store/store/hasComputedProps.d.ts +2 -2
- package/dist/store/store/hasComputedProps.js +2 -2
- package/dist/store/store/nodeMap.d.ts +5 -5
- package/dist/store/store/nodeMap.js +7 -7
- package/dist/store/store/nodeMap.js.map +1 -1
- package/dist/store/store/palistor.d.ts +80 -80
- package/dist/store/store/palistor.d.ts.map +1 -1
- package/dist/store/store/palistor.js +151 -165
- package/dist/store/store/palistor.js.map +1 -1
- package/dist/store/store/registerNodes.d.ts +10 -10
- package/dist/store/store/registerNodes.d.ts.map +1 -1
- package/dist/store/store/registerNodes.js +33 -18
- package/dist/store/store/registerNodes.js.map +1 -1
- package/dist/store/store/serviceRegistry.d.ts +8 -8
- package/dist/store/store/serviceRegistry.d.ts.map +1 -1
- package/dist/store/store/serviceRegistry.js +8 -8
- package/dist/store/store/serviceRegistry.js.map +1 -1
- package/dist/store/store/types.d.ts +277 -223
- package/dist/store/store/types.d.ts.map +1 -1
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts +2 -2
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.js +2 -2
- package/dist/store/submitPipeline/collectLeafStates.d.ts +2 -2
- package/dist/store/submitPipeline/collectLeafStates.js +2 -2
- package/dist/store/submitPipeline/submitPipeline.d.ts +8 -8
- package/dist/store/submitPipeline/submitPipeline.d.ts.map +1 -1
- package/dist/store/submitPipeline/submitPipeline.js +15 -11
- package/dist/store/submitPipeline/submitPipeline.js.map +1 -1
- package/dist/store/submitPipeline/types.d.ts +1 -1
- package/dist/store/submitPipeline/types.d.ts.map +1 -1
- package/dist/store/traversal/nodeClassifier.d.ts +9 -9
- package/dist/store/traversal/nodeClassifier.d.ts.map +1 -1
- package/dist/store/traversal/nodeClassifier.js +11 -11
- package/dist/store/traversal/nodeClassifier.js.map +1 -1
- package/dist/store/traversal/walkFull.d.ts +14 -14
- package/dist/store/traversal/walkFull.js +2 -2
- package/dist/store/valuesCache/valuesCache.d.ts +9 -9
- package/dist/store/valuesCache/valuesCache.d.ts.map +1 -1
- package/dist/store/valuesCache/valuesCache.js +6 -6
- package/dist/store/writePipeline/formatPatch.d.ts +5 -5
- package/dist/store/writePipeline/formatPatch.js +7 -7
- package/dist/store/writePipeline/formatPatch.js.map +1 -1
- package/dist/store/writePipeline/formatValue.d.ts +5 -5
- package/dist/store/writePipeline/formatValue.js +5 -5
- package/dist/store/writePipeline/mergeChanged.d.ts +4 -4
- package/dist/store/writePipeline/mergeChanged.js +4 -4
- package/dist/store/writePipeline/runSetter.d.ts +6 -6
- package/dist/store/writePipeline/runSetter.js +8 -8
- package/dist/store/writePipeline/storeValue.d.ts +3 -3
- package/dist/store/writePipeline/storeValue.js +3 -3
- package/dist/store/writePipeline/types.d.ts +4 -4
- package/dist/store/writePipeline/types.d.ts.map +1 -1
- package/dist/store/writePipeline/writePipeline.d.ts +7 -7
- package/dist/store/writePipeline/writePipeline.d.ts.map +1 -1
- package/dist/store/writePipeline/writePipeline.js +15 -15
- package/dist/store/writePipeline/writePipeline.js.map +1 -1
- package/package.json +11 -4
- package/dist/store/compute/recompute/collectGroupLeafNodes.d.ts +0 -11
- package/dist/store/compute/recompute/collectGroupLeafNodes.d.ts.map +0 -1
- package/dist/store/compute/recompute/collectGroupLeafNodes.js +0 -26
- package/dist/store/compute/recompute/collectGroupLeafNodes.js.map +0 -1
- package/dist/store/fieldMapping.typecheck.d.ts +0 -2
- package/dist/store/fieldMapping.typecheck.d.ts.map +0 -1
- package/dist/store/fieldMapping.typecheck.js +0 -71
- package/dist/store/fieldMapping.typecheck.js.map +0 -1
- package/dist/store/submitPipeline/getSubValues.d.ts +0 -9
- package/dist/store/submitPipeline/getSubValues.d.ts.map +0 -1
- package/dist/store/submitPipeline/getSubValues.js +0 -26
- package/dist/store/submitPipeline/getSubValues.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* useTranslator —
|
|
2
|
+
* useTranslator — registers a translation function with a ProxyStore.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Call it once in a layout/provider. Once registered, every component using
|
|
5
|
+
* useForm automatically receives translated label / placeholder / description
|
|
6
|
+
* (when the config defines them as functions).
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
9
|
* ```tsx
|
|
@@ -18,19 +18,19 @@
|
|
|
18
18
|
* }
|
|
19
19
|
* ```
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
* (fallback,
|
|
21
|
+
* Without a translator — label/placeholder return the translation keys as-is
|
|
22
|
+
* (a fallback, convenient for tests and SSR without i18n).
|
|
23
23
|
*/
|
|
24
24
|
import { useEffect } from "react";
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* Registers a translation function with a ProxyStore.
|
|
27
27
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
28
|
+
* When `translator` changes (e.g. on a locale switch) —
|
|
29
|
+
* all components subscribed via useForm re-render with
|
|
30
|
+
* up-to-date translations.
|
|
31
31
|
*
|
|
32
|
-
* @param store — ProxyStore
|
|
33
|
-
* @param translator —
|
|
32
|
+
* @param store — a ProxyStore created via new Palistor()
|
|
33
|
+
* @param translator — translation function (next-intl `t`, i18next `t`, …)
|
|
34
34
|
*/
|
|
35
35
|
export function useTranslator(store, translator) {
|
|
36
36
|
useEffect(() => {
|
|
@@ -2,16 +2,16 @@ import type { AnyConfigNode } from "../store/types";
|
|
|
2
2
|
import type { FieldState } from "../compute/index";
|
|
3
3
|
import { type ValuesCache } from "../valuesCache/valuesCache";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Apply a patch (setter result) to nodeState.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* -
|
|
10
|
-
*
|
|
11
|
-
* -
|
|
7
|
+
* Recursively walks the config tree in parallel with the patch tree.
|
|
8
|
+
* For every patch key:
|
|
9
|
+
* - Leaf node (has "value") → updates the value in nodeState,
|
|
10
|
+
* if it actually changed (strict !==).
|
|
11
|
+
* - Group node → recurses deeper.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* Returns the Set of nodes whose values actually changed,
|
|
14
|
+
* so the caller knows exactly who to notify.
|
|
15
15
|
*/
|
|
16
16
|
export declare function applyPatch(configNode: AnyConfigNode, nodeState: WeakMap<object, FieldState>, patch: Record<string, unknown>, changed: Set<object>, valuesCache?: ValuesCache): Set<object>;
|
|
17
17
|
//# sourceMappingURL=applyPatch.d.ts.map
|
|
@@ -2,30 +2,30 @@ import { CONFIG_PROPS } from "../constants";
|
|
|
2
2
|
import { isLeafNode, isListNode } from "../traversal";
|
|
3
3
|
import { updateValuesCacheEntry } from "../valuesCache/valuesCache";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Apply a patch (setter result) to nodeState.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* -
|
|
10
|
-
*
|
|
11
|
-
* -
|
|
7
|
+
* Recursively walks the config tree in parallel with the patch tree.
|
|
8
|
+
* For every patch key:
|
|
9
|
+
* - Leaf node (has "value") → updates the value in nodeState,
|
|
10
|
+
* if it actually changed (strict !==).
|
|
11
|
+
* - Group node → recurses deeper.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* Returns the Set of nodes whose values actually changed,
|
|
14
|
+
* so the caller knows exactly who to notify.
|
|
15
15
|
*/
|
|
16
16
|
export function applyPatch(configNode, nodeState, patch, changed, valuesCache) {
|
|
17
17
|
for (const key of Object.keys(patch)) {
|
|
18
|
-
//
|
|
18
|
+
// Skip service config keys (value, label, validate, …)
|
|
19
19
|
if (CONFIG_PROPS.has(key))
|
|
20
20
|
continue;
|
|
21
21
|
const child = configNode[key];
|
|
22
22
|
if (!child || typeof child !== "object")
|
|
23
23
|
continue;
|
|
24
24
|
if (isListNode(child))
|
|
25
|
-
continue; // ListNode —
|
|
25
|
+
continue; // ListNode — skipped, updated via store.set()
|
|
26
26
|
const patchValue = patch[key];
|
|
27
27
|
if (isLeafNode(child)) {
|
|
28
|
-
//
|
|
28
|
+
// Leaf node — update the value only when it actually changed
|
|
29
29
|
const state = nodeState.get(child);
|
|
30
30
|
if (state && state.value !== patchValue) {
|
|
31
31
|
nodeState.set(child, { ...state, value: patchValue });
|
|
@@ -35,7 +35,7 @@ export function applyPatch(configNode, nodeState, patch, changed, valuesCache) {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
else if (patchValue && typeof patchValue === "object" && !Array.isArray(patchValue)) {
|
|
38
|
-
//
|
|
38
|
+
// Group node — recurse
|
|
39
39
|
applyPatch(child, nodeState, patchValue, changed, valuesCache);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyPatch.js","sourceRoot":"","sources":["../../../store/applyPatch/applyPatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,sBAAsB,EAAoB,MAAM,4BAA4B,CAAC;AAEtF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CACxB,UAAyB,EACzB,SAAsC,EACtC,KAA8B,EAC9B,OAAoB,EACpB,WAAyB;IAEzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,
|
|
1
|
+
{"version":3,"file":"applyPatch.js","sourceRoot":"","sources":["../../../store/applyPatch/applyPatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,sBAAsB,EAAoB,MAAM,4BAA4B,CAAC;AAEtF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CACxB,UAAyB,EACzB,SAAsC,EACtC,KAA8B,EAC9B,OAAoB,EACpB,WAAyB;IAEzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,uDAAuD;QACvD,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAEpC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAA8B,CAAC;QAE3D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,SAAS,CAAC,8CAA8C;QAE/E,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,6DAA6D;YAC7D,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACxC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;gBACtD,IAAI,WAAW;oBAAE,sBAAsB,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtF,uBAAuB;YACvB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,UAAqC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CONFIG_NODE, CONFIG_PROPS, ENTITY_ID, ENTITY_ID_LEAF, STORE_REF } from "../constants";
|
|
2
2
|
import { isLeafNode, isGroupNode } from "../traversal";
|
|
3
3
|
import { buildListProxy } from "./buildListProxy";
|
|
4
|
-
/**
|
|
4
|
+
/** Element-wise comparison of two string arrays (for list-membership dirty). */
|
|
5
5
|
function arraysEqual(a, b) {
|
|
6
6
|
if (a.length !== b.length)
|
|
7
7
|
return false;
|
|
@@ -70,9 +70,9 @@ function materializeListsInto(valuesSubtree, templateSubtree, lists, kernel) {
|
|
|
70
70
|
continue;
|
|
71
71
|
const templateField = templateSubtree[key];
|
|
72
72
|
if (Array.isArray(templateField)) {
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
//
|
|
73
|
+
// Include the list field only when the entity has state for it (the list
|
|
74
|
+
// was loaded/mutated). An untouched list adds no key — symmetric with
|
|
75
|
+
// the projectionObj materialization (store.getValues()).
|
|
76
76
|
const els = lists.get(templateField);
|
|
77
77
|
if (!els)
|
|
78
78
|
continue;
|
|
@@ -196,8 +196,8 @@ export function buildEntityProjectionProxy(entityNode, templateNode, kernel, ent
|
|
|
196
196
|
return kernel;
|
|
197
197
|
if (typeof key === "symbol")
|
|
198
198
|
return undefined;
|
|
199
|
-
//
|
|
200
|
-
// (mappable
|
|
199
|
+
// Reverse mapping on input: external → internal. Affects `loading`/`dirty`
|
|
200
|
+
// (mappable keys). Navigation to template fields keeps the original `key`.
|
|
201
201
|
const ikey = kernel.externalToInternal[key] ?? key;
|
|
202
202
|
// id is always exposed directly as value (not as a leaf proxy)
|
|
203
203
|
if (key === "id" && "id" in entityNode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildEntityProjectionProxy.js","sourceRoot":"","sources":["../../../store/buildProxy/buildEntityProjectionProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM/F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,gFAAgF;AAChF,SAAS,WAAW,CAAC,CAAW,EAAE,CAAW;IAC3C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAwC,EACxC,SAA8C;IAE9C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAI,UAAsC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,UAAU,CAAC,KAAe,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,GAAI,SAAS,CAAC,GAAG,CAAC,KAAe,CAAoC,EAAE,KAAK;uBACjF,KAAwB,CAAC,KAAK,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAwB,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAAwC,EACxC,YAA2B,EAC3B,MAA0B;IAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAgD,CAAC;IAChF,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAExD,MAAM,KAAK,GAAI,UAAyB,CAAC,KAAK,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAE1B,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,oEAAoE;IACpE,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,aAAsC,EACtC,eAA8B,EAC9B,KAAuC,EACvC,MAA0B;IAE1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/C,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACpC,MAAM,aAAa,GAAI,eAA2C,CAAC,GAAG,CAAC,CAAC;QAExE,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,
|
|
1
|
+
{"version":3,"file":"buildEntityProjectionProxy.js","sourceRoot":"","sources":["../../../store/buildProxy/buildEntityProjectionProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { ListState } from "../store/types";
|
|
2
2
|
import type { Palistor } from "../store/palistor";
|
|
3
3
|
/**
|
|
4
|
-
* Build a ListProxyNode for a list —
|
|
4
|
+
* Build a ListProxyNode for a list — a SINGLE builder (root + per-entity).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - `null` → root
|
|
9
|
-
* - entity → per-entity nested list (
|
|
6
|
+
* A list is identified by its {@link ListState} object. `listState.ownerEntity`
|
|
7
|
+
* distinguishes the two cases:
|
|
8
|
+
* - `null` → root list (state in `kernel.nodes.listStates`);
|
|
9
|
+
* - entity → per-entity nested list (state in `owner.lists`).
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
* (sync
|
|
13
|
-
*
|
|
11
|
+
* The skeleton, mutations, proxy and cache are shared. The spots where root
|
|
12
|
+
* and entity still diverge (valuesCache sync, resolve/loading, add/setItems
|
|
13
|
+
* semantics) dispatch on `owner` for now.
|
|
14
14
|
*
|
|
15
15
|
* The proxy exposes:
|
|
16
16
|
* items — ReadonlyArray<EntityProjectionProxy>, one per itemId
|
|
@@ -12,9 +12,9 @@ function arraysEqual(a, b) {
|
|
|
12
12
|
return true;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* {@link LIST_SPREAD_KEYS},
|
|
17
|
-
*
|
|
15
|
+
* Keys of the per-entity list proxy. Same member set as
|
|
16
|
+
* {@link LIST_SPREAD_KEYS}, but in the per-entity list's historical order —
|
|
17
|
+
* kept until root and entity are aligned on keys.
|
|
18
18
|
*/
|
|
19
19
|
const ENTITY_LIST_SPREAD_KEYS = [
|
|
20
20
|
"items",
|
|
@@ -30,16 +30,16 @@ const ENTITY_LIST_SPREAD_KEYS = [
|
|
|
30
30
|
];
|
|
31
31
|
// ─── buildListProxy ──────────────────────────────────────────────────────────
|
|
32
32
|
/**
|
|
33
|
-
* Build a ListProxyNode for a list —
|
|
33
|
+
* Build a ListProxyNode for a list — a SINGLE builder (root + per-entity).
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* - `null` → root
|
|
38
|
-
* - entity → per-entity nested list (
|
|
35
|
+
* A list is identified by its {@link ListState} object. `listState.ownerEntity`
|
|
36
|
+
* distinguishes the two cases:
|
|
37
|
+
* - `null` → root list (state in `kernel.nodes.listStates`);
|
|
38
|
+
* - entity → per-entity nested list (state in `owner.lists`).
|
|
39
39
|
*
|
|
40
|
-
*
|
|
41
|
-
* (sync
|
|
42
|
-
*
|
|
40
|
+
* The skeleton, mutations, proxy and cache are shared. The spots where root
|
|
41
|
+
* and entity still diverge (valuesCache sync, resolve/loading, add/setItems
|
|
42
|
+
* semantics) dispatch on `owner` for now.
|
|
43
43
|
*
|
|
44
44
|
* The proxy exposes:
|
|
45
45
|
* items — ReadonlyArray<EntityProjectionProxy>, one per itemId
|
|
@@ -59,16 +59,16 @@ const ENTITY_LIST_SPREAD_KEYS = [
|
|
|
59
59
|
* the list proxy itself is cached per `ListState` in `kernel.nodes.listProxyCache`.
|
|
60
60
|
*/
|
|
61
61
|
export function buildListProxy(listState, kernel) {
|
|
62
|
-
//
|
|
62
|
+
// Stable proxy cache per ListState (single cache for root and per-entity).
|
|
63
63
|
const cached = kernel.nodes.listProxyCache.get(listState);
|
|
64
64
|
if (cached)
|
|
65
65
|
return cached;
|
|
66
66
|
const listConfigNode = listState.listConfigNode;
|
|
67
67
|
const template = listState.template;
|
|
68
68
|
const listConfig = listState.listConfig;
|
|
69
|
-
/**
|
|
69
|
+
/** List owner: `null` = root, EntityNode = per-entity. */
|
|
70
70
|
const owner = listState.ownerEntity;
|
|
71
|
-
// Per-list
|
|
71
|
+
// Per-list stable cache of entity projections (stable references for React).
|
|
72
72
|
const entityProxyCache = new WeakMap();
|
|
73
73
|
/** Build EntityProjectionProxy for a given entityId. */
|
|
74
74
|
function buildItemProxy(id) {
|
|
@@ -77,7 +77,7 @@ export function buildListProxy(listState, kernel) {
|
|
|
77
77
|
return undefined;
|
|
78
78
|
return buildEntityProjectionProxy(entityNode, template, kernel, entityProxyCache);
|
|
79
79
|
}
|
|
80
|
-
/**
|
|
80
|
+
/** Current owner id (accounts for rekey via nodeState). Per-entity only. */
|
|
81
81
|
const getOwnerId = () => {
|
|
82
82
|
const idLeaf = owner.id;
|
|
83
83
|
return (kernel.nodes.nodeState.get(idLeaf)?.value ??
|
|
@@ -87,8 +87,8 @@ export function buildListProxy(listState, kernel) {
|
|
|
87
87
|
const notifyListChanged = () => {
|
|
88
88
|
kernel.syncListValuesCache(listState);
|
|
89
89
|
if (owner) {
|
|
90
|
-
// Per-entity:
|
|
91
|
-
//
|
|
90
|
+
// Per-entity: the isolated identity is the listState object itself; the
|
|
91
|
+
// owner also goes into changed so `entity.values`/`entity.dirty` observers update.
|
|
92
92
|
const changed = new Set();
|
|
93
93
|
changed.add(listState);
|
|
94
94
|
changed.add(owner);
|
|
@@ -98,24 +98,24 @@ export function buildListProxy(listState, kernel) {
|
|
|
98
98
|
kernel.notifyChanged(recomputed);
|
|
99
99
|
}
|
|
100
100
|
else {
|
|
101
|
-
// Root:
|
|
101
|
+
// Root: full recompute (valuesCache.users → all computed props).
|
|
102
102
|
const recomputed = kernel.recompute();
|
|
103
|
-
//
|
|
103
|
+
// Root-list tracking is keyed by the ListState object.
|
|
104
104
|
recomputed.add(listState);
|
|
105
|
-
//
|
|
105
|
+
// Backward-compat bridge: older tests read getNodeVersion(listNode).
|
|
106
106
|
recomputed.add(listConfigNode);
|
|
107
107
|
kernel.notifyChanged(recomputed);
|
|
108
108
|
}
|
|
109
109
|
};
|
|
110
|
-
/** Trigger lazy list resolve on first access (root + per-entity,
|
|
110
|
+
/** Trigger lazy list resolve on first access (root + per-entity, single path). */
|
|
111
111
|
const triggerLazyResolveIfNeeded = () => {
|
|
112
112
|
if (!listConfig?.resolve)
|
|
113
113
|
return;
|
|
114
114
|
const st = kernel.resolveManager.getListResolveState(listState);
|
|
115
|
-
// Root: state
|
|
115
|
+
// Root: the state exists (idle from initResolveStates). Entity: may be absent.
|
|
116
116
|
if (!st || st.status === "idle") {
|
|
117
|
-
// Defer: GET
|
|
118
|
-
//
|
|
117
|
+
// Defer: the GET trap fires during a React render; a synchronous
|
|
118
|
+
// resolve→notify would yield "Cannot update a component while rendering another".
|
|
119
119
|
queueMicrotask(() => kernel.resolveManager.triggerListResolve(listState));
|
|
120
120
|
}
|
|
121
121
|
};
|
|
@@ -137,7 +137,7 @@ export function buildListProxy(listState, kernel) {
|
|
|
137
137
|
const rawId = idOrValues.id;
|
|
138
138
|
entityId =
|
|
139
139
|
typeof rawId === "string" && rawId.trim() !== "" ? rawId : generateTmpId();
|
|
140
|
-
// set()
|
|
140
|
+
// set() registers leaf nodes + projectionObj (with its own recompute/notify).
|
|
141
141
|
kernel.set({ ...idOrValues, id: entityId });
|
|
142
142
|
}
|
|
143
143
|
const childNode = kernel.entityRegistry.get(entityId);
|
|
@@ -223,15 +223,15 @@ export function buildListProxy(listState, kernel) {
|
|
|
223
223
|
})
|
|
224
224
|
.filter((v) => v !== undefined);
|
|
225
225
|
// ─── Proxy object ──────────────────────────────────────────────────────────
|
|
226
|
-
// internal → external
|
|
226
|
+
// internal → external projection of spread keys (mappable: loading, dirty).
|
|
227
227
|
const fwd = kernel.fieldMapping;
|
|
228
228
|
const spreadKeys = (owner ? ENTITY_LIST_SPREAD_KEYS : LIST_SPREAD_KEYS).map((k) => fwd[k] ?? k);
|
|
229
229
|
const proxy = new Proxy(listConfigNode, {
|
|
230
230
|
get(_target, key) {
|
|
231
|
-
//
|
|
231
|
+
// Transparent config node (for debugging/useForm). NOT the tracking key.
|
|
232
232
|
if (key === CONFIG_NODE)
|
|
233
233
|
return listConfigNode;
|
|
234
|
-
//
|
|
234
|
+
// The list identity brand — the tracking key (uniform for root and per-entity).
|
|
235
235
|
if (key === LIST_STATE)
|
|
236
236
|
return listState;
|
|
237
237
|
if (typeof key === "symbol") {
|
|
@@ -246,7 +246,7 @@ export function buildListProxy(listState, kernel) {
|
|
|
246
246
|
}
|
|
247
247
|
return undefined;
|
|
248
248
|
}
|
|
249
|
-
//
|
|
249
|
+
// Reverse mapping on input: external → internal (affects loading/dirty).
|
|
250
250
|
const ikey = kernel.externalToInternal[key] ?? key;
|
|
251
251
|
switch (ikey) {
|
|
252
252
|
case "items":
|
|
@@ -258,7 +258,7 @@ export function buildListProxy(listState, kernel) {
|
|
|
258
258
|
triggerLazyResolveIfNeeded();
|
|
259
259
|
return listState.itemIds.length;
|
|
260
260
|
case "loading":
|
|
261
|
-
//
|
|
261
|
+
// Single source for root and per-entity: the resolve-state status.
|
|
262
262
|
return (kernel.resolveManager.getListResolveState(listState)?.status === "pending");
|
|
263
263
|
case "dirty":
|
|
264
264
|
// dirty by composition: current itemIds differ from initial snapshot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildListProxy.js","sourceRoot":"","sources":["../../../store/buildProxy/buildListProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKzE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAEtC,gFAAgF;AAEhF,SAAS,WAAW,CAAC,CAAW,EAAE,CAAW;IAC3C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,uBAAuB,GAAa;IACxC,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,UAAU;IACV,WAAW;CACZ,CAAC;AAEF,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,cAAc,CAAC,SAAoB,EAAE,MAA0B;IAC7E,
|
|
1
|
+
{"version":3,"file":"buildListProxy.js","sourceRoot":"","sources":["../../../store/buildProxy/buildListProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { type AnyConfigNode } from "../store/types";
|
|
2
2
|
import type { Palistor } from "../store/palistor";
|
|
3
3
|
/**
|
|
4
|
-
* ProxyBuilder —
|
|
4
|
+
* ProxyBuilder — builds the reactive Proxy for config nodes.
|
|
5
5
|
*
|
|
6
|
-
* Proxy
|
|
6
|
+
* The Proxy intercepts:
|
|
7
7
|
*
|
|
8
8
|
* GET:
|
|
9
|
-
* - FIELD_STATE_PROPS →
|
|
10
|
-
* -
|
|
9
|
+
* - FIELD_STATE_PROPS → from the computed FieldState (value, isVisible, error…)
|
|
10
|
+
* - any other key → recursive proxy of the child node
|
|
11
11
|
*
|
|
12
12
|
* SET:
|
|
13
13
|
* - "value" → write pipeline → recomputeAll → notify
|
|
14
|
-
* -
|
|
14
|
+
* - everything else → forbidden
|
|
15
15
|
*
|
|
16
16
|
* OWNKEYS / GETOWNPROPERTYDESCRIPTOR:
|
|
17
|
-
* -
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* - Control which keys are visible in spread ({...proxy}), Object.keys()
|
|
18
|
+
* and for...in. They hide internal config keys (validate, formatter,
|
|
19
|
+
* setter, …) that must not leak as props.
|
|
20
20
|
*/
|
|
21
21
|
export declare class ProxyBuilder {
|
|
22
22
|
private readonly kernel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildProxy.d.ts","sourceRoot":"","sources":["../../../store/buildProxy/buildProxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"buildProxy.d.ts","sourceRoot":"","sources":["../../../store/buildProxy/buildProxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA4BlD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IAKX,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA8C;gBAEvD,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAEvD,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,aAAa,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,GAAG;IAmO3F;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;CAuM9B"}
|