palistor 0.0.24
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/LICENSE +21 -0
- package/README.md +947 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/react/createTrackingProxy.d.ts +55 -0
- package/dist/react/createTrackingProxy.d.ts.map +1 -0
- package/dist/react/createTrackingProxy.js +149 -0
- package/dist/react/createTrackingProxy.js.map +1 -0
- package/dist/react/useForm.d.ts +108 -0
- package/dist/react/useForm.d.ts.map +1 -0
- package/dist/react/useForm.js +180 -0
- package/dist/react/useForm.js.map +1 -0
- package/dist/react/useNotifier.d.ts +35 -0
- package/dist/react/useNotifier.d.ts.map +1 -0
- package/dist/react/useNotifier.js +41 -0
- package/dist/react/useNotifier.js.map +1 -0
- package/dist/react/usePersist.d.ts +45 -0
- package/dist/react/usePersist.d.ts.map +1 -0
- package/dist/react/usePersist.js +60 -0
- package/dist/react/usePersist.js.map +1 -0
- package/dist/react/useStoreContext.d.ts +42 -0
- package/dist/react/useStoreContext.d.ts.map +1 -0
- package/dist/react/useStoreContext.js +46 -0
- package/dist/react/useStoreContext.js.map +1 -0
- package/dist/react/useTranslator.d.ts +37 -0
- package/dist/react/useTranslator.d.ts.map +1 -0
- package/dist/react/useTranslator.js +43 -0
- package/dist/react/useTranslator.js.map +1 -0
- package/dist/store/applyPatch/applyPatch.d.ts +17 -0
- package/dist/store/applyPatch/applyPatch.d.ts.map +1 -0
- package/dist/store/applyPatch/applyPatch.js +44 -0
- package/dist/store/applyPatch/applyPatch.js.map +1 -0
- package/dist/store/buildProxy/buildEntityProjectionProxy.d.ts +52 -0
- package/dist/store/buildProxy/buildEntityProjectionProxy.d.ts.map +1 -0
- package/dist/store/buildProxy/buildEntityProjectionProxy.js +321 -0
- package/dist/store/buildProxy/buildEntityProjectionProxy.js.map +1 -0
- package/dist/store/buildProxy/buildListProxy.d.ts +33 -0
- package/dist/store/buildProxy/buildListProxy.d.ts.map +1 -0
- package/dist/store/buildProxy/buildListProxy.js +306 -0
- package/dist/store/buildProxy/buildListProxy.js.map +1 -0
- package/dist/store/buildProxy/buildProxy.d.ts +41 -0
- package/dist/store/buildProxy/buildProxy.d.ts.map +1 -0
- package/dist/store/buildProxy/buildProxy.js +380 -0
- package/dist/store/buildProxy/buildProxy.js.map +1 -0
- package/dist/store/buildProxy/computeProxyKeys.d.ts +15 -0
- package/dist/store/buildProxy/computeProxyKeys.d.ts.map +1 -0
- package/dist/store/buildProxy/computeProxyKeys.js +28 -0
- package/dist/store/buildProxy/computeProxyKeys.js.map +1 -0
- package/dist/store/buildProxy/handleLazyResolve.d.ts +10 -0
- package/dist/store/buildProxy/handleLazyResolve.d.ts.map +1 -0
- package/dist/store/buildProxy/handleLazyResolve.js +26 -0
- package/dist/store/buildProxy/handleLazyResolve.js.map +1 -0
- package/dist/store/buildProxy/initProxyCaches.d.ts +16 -0
- package/dist/store/buildProxy/initProxyCaches.d.ts.map +1 -0
- package/dist/store/buildProxy/initProxyCaches.js +17 -0
- package/dist/store/buildProxy/initProxyCaches.js.map +1 -0
- package/dist/store/compute/computeFieldState.d.ts +10 -0
- package/dist/store/compute/computeFieldState.d.ts.map +1 -0
- package/dist/store/compute/computeFieldState.js +53 -0
- package/dist/store/compute/computeFieldState.js.map +1 -0
- package/dist/store/compute/fieldStateChanged.d.ts +6 -0
- package/dist/store/compute/fieldStateChanged.d.ts.map +1 -0
- package/dist/store/compute/fieldStateChanged.js +20 -0
- package/dist/store/compute/fieldStateChanged.js.map +1 -0
- package/dist/store/compute/index.d.ts +7 -0
- package/dist/store/compute/index.d.ts.map +1 -0
- package/dist/store/compute/index.js +6 -0
- package/dist/store/compute/index.js.map +1 -0
- package/dist/store/compute/isEmpty.d.ts +6 -0
- package/dist/store/compute/isEmpty.d.ts.map +1 -0
- package/dist/store/compute/isEmpty.js +14 -0
- package/dist/store/compute/isEmpty.js.map +1 -0
- package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts +11 -0
- package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts.map +1 -0
- package/dist/store/compute/recompute/collectGroupComputeNodes.js +26 -0
- package/dist/store/compute/recompute/collectGroupComputeNodes.js.map +1 -0
- package/dist/store/compute/recompute/collectGroupLeafNodes.d.ts +11 -0
- package/dist/store/compute/recompute/collectGroupLeafNodes.d.ts.map +1 -0
- package/dist/store/compute/recompute/collectGroupLeafNodes.js +26 -0
- package/dist/store/compute/recompute/collectGroupLeafNodes.js.map +1 -0
- package/dist/store/compute/recompute/index.d.ts +7 -0
- package/dist/store/compute/recompute/index.d.ts.map +1 -0
- package/dist/store/compute/recompute/index.js +6 -0
- package/dist/store/compute/recompute/index.js.map +1 -0
- package/dist/store/compute/recompute/recomputeAndNotify.d.ts +8 -0
- package/dist/store/compute/recompute/recomputeAndNotify.d.ts.map +1 -0
- package/dist/store/compute/recompute/recomputeAndNotify.js +13 -0
- package/dist/store/compute/recompute/recomputeAndNotify.js.map +1 -0
- package/dist/store/compute/recompute/recomputeLeaves.d.ts +23 -0
- package/dist/store/compute/recompute/recomputeLeaves.d.ts.map +1 -0
- package/dist/store/compute/recompute/recomputeLeaves.js +77 -0
- package/dist/store/compute/recompute/recomputeLeaves.js.map +1 -0
- package/dist/store/compute/recompute/recomputeTargeted.d.ts +14 -0
- package/dist/store/compute/recompute/recomputeTargeted.d.ts.map +1 -0
- package/dist/store/compute/recompute/recomputeTargeted.js +50 -0
- package/dist/store/compute/recompute/recomputeTargeted.js.map +1 -0
- package/dist/store/compute/recompute/topologicalSortComputed.d.ts +16 -0
- package/dist/store/compute/recompute/topologicalSortComputed.d.ts.map +1 -0
- package/dist/store/compute/recompute/topologicalSortComputed.js +60 -0
- package/dist/store/compute/recompute/topologicalSortComputed.js.map +1 -0
- package/dist/store/compute/recompute/types.d.ts +24 -0
- package/dist/store/compute/recompute/types.d.ts.map +1 -0
- package/dist/store/compute/recompute/types.js +2 -0
- package/dist/store/compute/recompute/types.js.map +1 -0
- package/dist/store/compute/resolveFlag.d.ts +7 -0
- package/dist/store/compute/resolveFlag.d.ts.map +1 -0
- package/dist/store/compute/resolveFlag.js +12 -0
- package/dist/store/compute/resolveFlag.js.map +1 -0
- package/dist/store/compute/resolveString.d.ts +11 -0
- package/dist/store/compute/resolveString.d.ts.map +1 -0
- package/dist/store/compute/resolveString.js +18 -0
- package/dist/store/compute/resolveString.js.map +1 -0
- package/dist/store/compute/types.d.ts +37 -0
- package/dist/store/compute/types.d.ts.map +1 -0
- package/dist/store/compute/types.js +2 -0
- package/dist/store/compute/types.js.map +1 -0
- package/dist/store/constants.d.ts +83 -0
- package/dist/store/constants.d.ts.map +1 -0
- package/dist/store/constants.js +145 -0
- package/dist/store/constants.js.map +1 -0
- package/dist/store/defineFieldMapping.d.ts +41 -0
- package/dist/store/defineFieldMapping.d.ts.map +1 -0
- package/dist/store/defineFieldMapping.js +42 -0
- package/dist/store/defineFieldMapping.js.map +1 -0
- package/dist/store/defineList.d.ts +14 -0
- package/dist/store/defineList.d.ts.map +1 -0
- package/dist/store/defineList.js +7 -0
- package/dist/store/defineList.js.map +1 -0
- package/dist/store/dirtyTracking/captureInitialValues.d.ts +8 -0
- package/dist/store/dirtyTracking/captureInitialValues.d.ts.map +1 -0
- package/dist/store/dirtyTracking/captureInitialValues.js +16 -0
- package/dist/store/dirtyTracking/captureInitialValues.js.map +1 -0
- package/dist/store/dirtyTracking/collectInitialSnapshot.d.ts +10 -0
- package/dist/store/dirtyTracking/collectInitialSnapshot.d.ts.map +1 -0
- package/dist/store/dirtyTracking/collectInitialSnapshot.js +35 -0
- package/dist/store/dirtyTracking/collectInitialSnapshot.js.map +1 -0
- package/dist/store/dirtyTracking/index.d.ts +7 -0
- package/dist/store/dirtyTracking/index.d.ts.map +1 -0
- package/dist/store/dirtyTracking/index.js +6 -0
- package/dist/store/dirtyTracking/index.js.map +1 -0
- package/dist/store/dirtyTracking/isDirtyValue.d.ts +7 -0
- package/dist/store/dirtyTracking/isDirtyValue.d.ts.map +1 -0
- package/dist/store/dirtyTracking/isDirtyValue.js +25 -0
- package/dist/store/dirtyTracking/isDirtyValue.js.map +1 -0
- package/dist/store/dirtyTracking/mergeInitialValues.d.ts +11 -0
- package/dist/store/dirtyTracking/mergeInitialValues.d.ts.map +1 -0
- package/dist/store/dirtyTracking/mergeInitialValues.js +29 -0
- package/dist/store/dirtyTracking/mergeInitialValues.js.map +1 -0
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts +17 -0
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts.map +1 -0
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.js +90 -0
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.js.map +1 -0
- package/dist/store/dirtyTracking/setGroupRevalidate.d.ts +13 -0
- package/dist/store/dirtyTracking/setGroupRevalidate.d.ts.map +1 -0
- package/dist/store/dirtyTracking/setGroupRevalidate.js +32 -0
- package/dist/store/dirtyTracking/setGroupRevalidate.js.map +1 -0
- package/dist/store/entityRegistry/entityRegistry.d.ts +166 -0
- package/dist/store/entityRegistry/entityRegistry.d.ts.map +1 -0
- package/dist/store/entityRegistry/entityRegistry.js +402 -0
- package/dist/store/entityRegistry/entityRegistry.js.map +1 -0
- package/dist/store/entityRegistry/generateId.d.ts +7 -0
- package/dist/store/entityRegistry/generateId.d.ts.map +1 -0
- package/dist/store/entityRegistry/generateId.js +18 -0
- package/dist/store/entityRegistry/generateId.js.map +1 -0
- package/dist/store/entityRegistry/index.d.ts +4 -0
- package/dist/store/entityRegistry/index.d.ts.map +1 -0
- package/dist/store/entityRegistry/index.js +3 -0
- package/dist/store/entityRegistry/index.js.map +1 -0
- package/dist/store/entityRegistry/types.d.ts +50 -0
- package/dist/store/entityRegistry/types.d.ts.map +1 -0
- package/dist/store/entityRegistry/types.js +2 -0
- package/dist/store/entityRegistry/types.js.map +1 -0
- package/dist/store/fieldMapping.typecheck.d.ts +2 -0
- package/dist/store/fieldMapping.typecheck.d.ts.map +1 -0
- package/dist/store/fieldMapping.typecheck.js +71 -0
- package/dist/store/fieldMapping.typecheck.js.map +1 -0
- package/dist/store/groupDeps/createGroupDeps.d.ts +9 -0
- package/dist/store/groupDeps/createGroupDeps.d.ts.map +1 -0
- package/dist/store/groupDeps/createGroupDeps.js +29 -0
- package/dist/store/groupDeps/createGroupDeps.js.map +1 -0
- package/dist/store/groupDeps/createTrackingValues.d.ts +15 -0
- package/dist/store/groupDeps/createTrackingValues.d.ts.map +1 -0
- package/dist/store/groupDeps/createTrackingValues.js +39 -0
- package/dist/store/groupDeps/createTrackingValues.js.map +1 -0
- package/dist/store/groupDeps/getNodeGroupPath.d.ts +9 -0
- package/dist/store/groupDeps/getNodeGroupPath.d.ts.map +1 -0
- package/dist/store/groupDeps/getNodeGroupPath.js +20 -0
- package/dist/store/groupDeps/getNodeGroupPath.js.map +1 -0
- package/dist/store/groupDeps/getRecipientGroups.d.ts +5 -0
- package/dist/store/groupDeps/getRecipientGroups.d.ts.map +1 -0
- package/dist/store/groupDeps/getRecipientGroups.js +15 -0
- package/dist/store/groupDeps/getRecipientGroups.js.map +1 -0
- package/dist/store/groupDeps/groupDeps.d.ts +19 -0
- package/dist/store/groupDeps/groupDeps.d.ts.map +1 -0
- package/dist/store/groupDeps/groupDeps.js +19 -0
- package/dist/store/groupDeps/groupDeps.js.map +1 -0
- package/dist/store/groupDeps/index.d.ts +7 -0
- package/dist/store/groupDeps/index.d.ts.map +1 -0
- package/dist/store/groupDeps/index.js +7 -0
- package/dist/store/groupDeps/index.js.map +1 -0
- package/dist/store/groupDeps/pairKey.d.ts +7 -0
- package/dist/store/groupDeps/pairKey.d.ts.map +1 -0
- package/dist/store/groupDeps/pairKey.js +12 -0
- package/dist/store/groupDeps/pairKey.js.map +1 -0
- package/dist/store/groupDeps/resolveGroupByPath.d.ts +8 -0
- package/dist/store/groupDeps/resolveGroupByPath.d.ts.map +1 -0
- package/dist/store/groupDeps/resolveGroupByPath.js +19 -0
- package/dist/store/groupDeps/resolveGroupByPath.js.map +1 -0
- package/dist/store/init/createNotificationHub.d.ts +81 -0
- package/dist/store/init/createNotificationHub.d.ts.map +1 -0
- package/dist/store/init/createNotificationHub.js +149 -0
- package/dist/store/init/createNotificationHub.js.map +1 -0
- package/dist/store/init/createResolveManager.d.ts +166 -0
- package/dist/store/init/createResolveManager.d.ts.map +1 -0
- package/dist/store/init/createResolveManager.js +502 -0
- package/dist/store/init/createResolveManager.js.map +1 -0
- package/dist/store/init/initGroupSubmitting.d.ts +8 -0
- package/dist/store/init/initGroupSubmitting.d.ts.map +1 -0
- package/dist/store/init/initGroupSubmitting.js +39 -0
- package/dist/store/init/initGroupSubmitting.js.map +1 -0
- package/dist/store/normalizeConfig.d.ts +28 -0
- package/dist/store/normalizeConfig.d.ts.map +1 -0
- package/dist/store/normalizeConfig.js +76 -0
- package/dist/store/normalizeConfig.js.map +1 -0
- package/dist/store/onChangePipeline/computeFieldKey.d.ts +11 -0
- package/dist/store/onChangePipeline/computeFieldKey.d.ts.map +1 -0
- package/dist/store/onChangePipeline/computeFieldKey.js +18 -0
- package/dist/store/onChangePipeline/computeFieldKey.js.map +1 -0
- package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts +8 -0
- package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts.map +1 -0
- package/dist/store/onChangePipeline/findOnChangeAncestors.js +22 -0
- package/dist/store/onChangePipeline/findOnChangeAncestors.js.map +1 -0
- package/dist/store/onChangePipeline/onChangePipeline.d.ts +29 -0
- package/dist/store/onChangePipeline/onChangePipeline.d.ts.map +1 -0
- package/dist/store/onChangePipeline/onChangePipeline.js +99 -0
- package/dist/store/onChangePipeline/onChangePipeline.js.map +1 -0
- package/dist/store/persist/drivers.d.ts +34 -0
- package/dist/store/persist/drivers.d.ts.map +1 -0
- package/dist/store/persist/drivers.js +89 -0
- package/dist/store/persist/drivers.js.map +1 -0
- package/dist/store/persist/index.d.ts +7 -0
- package/dist/store/persist/index.d.ts.map +1 -0
- package/dist/store/persist/index.js +3 -0
- package/dist/store/persist/index.js.map +1 -0
- package/dist/store/persist/persistManager.d.ts +67 -0
- package/dist/store/persist/persistManager.d.ts.map +1 -0
- package/dist/store/persist/persistManager.js +198 -0
- package/dist/store/persist/persistManager.js.map +1 -0
- package/dist/store/persist/types.d.ts +66 -0
- package/dist/store/persist/types.d.ts.map +1 -0
- package/dist/store/persist/types.js +9 -0
- package/dist/store/persist/types.js.map +1 -0
- package/dist/store/resetPipeline/buildResetPatch.d.ts +11 -0
- package/dist/store/resetPipeline/buildResetPatch.d.ts.map +1 -0
- package/dist/store/resetPipeline/buildResetPatch.js +22 -0
- package/dist/store/resetPipeline/buildResetPatch.js.map +1 -0
- package/dist/store/resetPipeline/collectDefaults.d.ts +12 -0
- package/dist/store/resetPipeline/collectDefaults.d.ts.map +1 -0
- package/dist/store/resetPipeline/collectDefaults.js +31 -0
- package/dist/store/resetPipeline/collectDefaults.js.map +1 -0
- package/dist/store/resetPipeline/resetPipeline.d.ts +19 -0
- package/dist/store/resetPipeline/resetPipeline.d.ts.map +1 -0
- package/dist/store/resetPipeline/resetPipeline.js +49 -0
- package/dist/store/resetPipeline/resetPipeline.js.map +1 -0
- package/dist/store/resolvePipeline/applyPendingWrites.d.ts +26 -0
- package/dist/store/resolvePipeline/applyPendingWrites.d.ts.map +1 -0
- package/dist/store/resolvePipeline/applyPendingWrites.js +68 -0
- package/dist/store/resolvePipeline/applyPendingWrites.js.map +1 -0
- package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts +16 -0
- package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts.map +1 -0
- package/dist/store/resolvePipeline/createContextTrackingProxy.js +29 -0
- package/dist/store/resolvePipeline/createContextTrackingProxy.js.map +1 -0
- package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts +75 -0
- package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts.map +1 -0
- package/dist/store/resolvePipeline/createValuesTrackingProxy.js +128 -0
- package/dist/store/resolvePipeline/createValuesTrackingProxy.js.map +1 -0
- package/dist/store/resolvePipeline/executeEntityFieldResolve.d.ts +29 -0
- package/dist/store/resolvePipeline/executeEntityFieldResolve.d.ts.map +1 -0
- package/dist/store/resolvePipeline/executeEntityFieldResolve.js +218 -0
- package/dist/store/resolvePipeline/executeEntityFieldResolve.js.map +1 -0
- package/dist/store/resolvePipeline/executeListResolve.d.ts +32 -0
- package/dist/store/resolvePipeline/executeListResolve.d.ts.map +1 -0
- package/dist/store/resolvePipeline/executeListResolve.js +157 -0
- package/dist/store/resolvePipeline/executeListResolve.js.map +1 -0
- package/dist/store/resolvePipeline/executeResolve.d.ts +26 -0
- package/dist/store/resolvePipeline/executeResolve.d.ts.map +1 -0
- package/dist/store/resolvePipeline/executeResolve.js +201 -0
- package/dist/store/resolvePipeline/executeResolve.js.map +1 -0
- package/dist/store/resolvePipeline/findResolvesToRetrigger.d.ts +10 -0
- package/dist/store/resolvePipeline/findResolvesToRetrigger.d.ts.map +1 -0
- package/dist/store/resolvePipeline/findResolvesToRetrigger.js +29 -0
- package/dist/store/resolvePipeline/findResolvesToRetrigger.js.map +1 -0
- package/dist/store/resolvePipeline/index.d.ts +22 -0
- package/dist/store/resolvePipeline/index.d.ts.map +1 -0
- package/dist/store/resolvePipeline/index.js +18 -0
- package/dist/store/resolvePipeline/index.js.map +1 -0
- package/dist/store/resolvePipeline/initResolveStates.d.ts +41 -0
- package/dist/store/resolvePipeline/initResolveStates.d.ts.map +1 -0
- package/dist/store/resolvePipeline/initResolveStates.js +95 -0
- package/dist/store/resolvePipeline/initResolveStates.js.map +1 -0
- package/dist/store/resolvePipeline/resetResolveState.d.ts +8 -0
- package/dist/store/resolvePipeline/resetResolveState.d.ts.map +1 -0
- package/dist/store/resolvePipeline/resetResolveState.js +18 -0
- package/dist/store/resolvePipeline/resetResolveState.js.map +1 -0
- package/dist/store/resolvePipeline/types.d.ts +134 -0
- package/dist/store/resolvePipeline/types.d.ts.map +1 -0
- package/dist/store/resolvePipeline/types.js +54 -0
- package/dist/store/resolvePipeline/types.js.map +1 -0
- package/dist/store/store/NodeRegistry/index.d.ts +3 -0
- package/dist/store/store/NodeRegistry/index.d.ts.map +1 -0
- package/dist/store/store/NodeRegistry/index.js +2 -0
- package/dist/store/store/NodeRegistry/index.js.map +1 -0
- package/dist/store/store/NodeRegistry/nodeRegistry.d.ts +139 -0
- package/dist/store/store/NodeRegistry/nodeRegistry.d.ts.map +1 -0
- package/dist/store/store/NodeRegistry/nodeRegistry.js +255 -0
- package/dist/store/store/NodeRegistry/nodeRegistry.js.map +1 -0
- package/dist/store/store/NodeRegistry/nodeUtils.d.ts +17 -0
- package/dist/store/store/NodeRegistry/nodeUtils.d.ts.map +1 -0
- package/dist/store/store/NodeRegistry/nodeUtils.js +21 -0
- package/dist/store/store/NodeRegistry/nodeUtils.js.map +1 -0
- package/dist/store/store/NodeRegistry/nodeView.d.ts +28 -0
- package/dist/store/store/NodeRegistry/nodeView.d.ts.map +1 -0
- package/dist/store/store/NodeRegistry/nodeView.js +16 -0
- package/dist/store/store/NodeRegistry/nodeView.js.map +1 -0
- package/dist/store/store/dirtyTracker.d.ts +27 -0
- package/dist/store/store/dirtyTracker.d.ts.map +1 -0
- package/dist/store/store/dirtyTracker.js +38 -0
- package/dist/store/store/dirtyTracker.js.map +1 -0
- package/dist/store/store/groupDepsMap.d.ts +52 -0
- package/dist/store/store/groupDepsMap.d.ts.map +1 -0
- package/dist/store/store/groupDepsMap.js +84 -0
- package/dist/store/store/groupDepsMap.js.map +1 -0
- package/dist/store/store/hasComputedProps.d.ts +7 -0
- package/dist/store/store/hasComputedProps.d.ts.map +1 -0
- package/dist/store/store/hasComputedProps.js +15 -0
- package/dist/store/store/hasComputedProps.js.map +1 -0
- package/dist/store/store/index.d.ts +6 -0
- package/dist/store/store/index.d.ts.map +1 -0
- package/dist/store/store/index.js +3 -0
- package/dist/store/store/index.js.map +1 -0
- package/dist/store/store/nodeMap.d.ts +12 -0
- package/dist/store/store/nodeMap.d.ts.map +1 -0
- package/dist/store/store/nodeMap.js +30 -0
- package/dist/store/store/nodeMap.js.map +1 -0
- package/dist/store/store/palistor.d.ts +256 -0
- package/dist/store/store/palistor.d.ts.map +1 -0
- package/dist/store/store/palistor.js +772 -0
- package/dist/store/store/palistor.js.map +1 -0
- package/dist/store/store/registerNodes.d.ts +33 -0
- package/dist/store/store/registerNodes.d.ts.map +1 -0
- package/dist/store/store/registerNodes.js +88 -0
- package/dist/store/store/registerNodes.js.map +1 -0
- package/dist/store/store/serviceRegistry.d.ts +24 -0
- package/dist/store/store/serviceRegistry.d.ts.map +1 -0
- package/dist/store/store/serviceRegistry.js +32 -0
- package/dist/store/store/serviceRegistry.js.map +1 -0
- package/dist/store/store/types.d.ts +622 -0
- package/dist/store/store/types.d.ts.map +1 -0
- package/dist/store/store/types.js +2 -0
- package/dist/store/store/types.js.map +1 -0
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts +7 -0
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts.map +1 -0
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.js +26 -0
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.js.map +1 -0
- package/dist/store/submitPipeline/collectLeafStates.d.ts +11 -0
- package/dist/store/submitPipeline/collectLeafStates.d.ts.map +1 -0
- package/dist/store/submitPipeline/collectLeafStates.js +17 -0
- package/dist/store/submitPipeline/collectLeafStates.js.map +1 -0
- package/dist/store/submitPipeline/getSubValues.d.ts +9 -0
- package/dist/store/submitPipeline/getSubValues.d.ts.map +1 -0
- package/dist/store/submitPipeline/getSubValues.js +26 -0
- package/dist/store/submitPipeline/getSubValues.js.map +1 -0
- package/dist/store/submitPipeline/submitPipeline.d.ts +32 -0
- package/dist/store/submitPipeline/submitPipeline.d.ts.map +1 -0
- package/dist/store/submitPipeline/submitPipeline.js +119 -0
- package/dist/store/submitPipeline/submitPipeline.js.map +1 -0
- package/dist/store/submitPipeline/types.d.ts +12 -0
- package/dist/store/submitPipeline/types.d.ts.map +1 -0
- package/dist/store/submitPipeline/types.js +2 -0
- package/dist/store/submitPipeline/types.js.map +1 -0
- package/dist/store/traversal/index.d.ts +4 -0
- package/dist/store/traversal/index.d.ts.map +1 -0
- package/dist/store/traversal/index.js +3 -0
- package/dist/store/traversal/index.js.map +1 -0
- package/dist/store/traversal/nodeClassifier.d.ts +23 -0
- package/dist/store/traversal/nodeClassifier.d.ts.map +1 -0
- package/dist/store/traversal/nodeClassifier.js +46 -0
- package/dist/store/traversal/nodeClassifier.js.map +1 -0
- package/dist/store/traversal/walkFull.d.ts +33 -0
- package/dist/store/traversal/walkFull.d.ts.map +1 -0
- package/dist/store/traversal/walkFull.js +28 -0
- package/dist/store/traversal/walkFull.js.map +1 -0
- package/dist/store/valuesCache/valuesCache.d.ts +27 -0
- package/dist/store/valuesCache/valuesCache.d.ts.map +1 -0
- package/dist/store/valuesCache/valuesCache.js +58 -0
- package/dist/store/valuesCache/valuesCache.js.map +1 -0
- package/dist/store/writePipeline/formatPatch.d.ts +14 -0
- package/dist/store/writePipeline/formatPatch.d.ts.map +1 -0
- package/dist/store/writePipeline/formatPatch.js +35 -0
- package/dist/store/writePipeline/formatPatch.js.map +1 -0
- package/dist/store/writePipeline/formatValue.d.ts +12 -0
- package/dist/store/writePipeline/formatValue.d.ts.map +1 -0
- package/dist/store/writePipeline/formatValue.js +15 -0
- package/dist/store/writePipeline/formatValue.js.map +1 -0
- package/dist/store/writePipeline/index.d.ts +8 -0
- package/dist/store/writePipeline/index.d.ts.map +1 -0
- package/dist/store/writePipeline/index.js +7 -0
- package/dist/store/writePipeline/index.js.map +1 -0
- package/dist/store/writePipeline/mergeChanged.d.ts +9 -0
- package/dist/store/writePipeline/mergeChanged.d.ts.map +1 -0
- package/dist/store/writePipeline/mergeChanged.js +15 -0
- package/dist/store/writePipeline/mergeChanged.js.map +1 -0
- package/dist/store/writePipeline/runSetter.d.ts +16 -0
- package/dist/store/writePipeline/runSetter.d.ts.map +1 -0
- package/dist/store/writePipeline/runSetter.js +35 -0
- package/dist/store/writePipeline/runSetter.js.map +1 -0
- package/dist/store/writePipeline/storeValue.d.ts +11 -0
- package/dist/store/writePipeline/storeValue.d.ts.map +1 -0
- package/dist/store/writePipeline/storeValue.js +17 -0
- package/dist/store/writePipeline/storeValue.js.map +1 -0
- package/dist/store/writePipeline/types.d.ts +10 -0
- package/dist/store/writePipeline/types.d.ts.map +1 -0
- package/dist/store/writePipeline/types.js +2 -0
- package/dist/store/writePipeline/types.js.map +1 -0
- package/dist/store/writePipeline/writePipeline.d.ts +31 -0
- package/dist/store/writePipeline/writePipeline.d.ts.map +1 -0
- package/dist/store/writePipeline/writePipeline.js +97 -0
- package/dist/store/writePipeline/writePipeline.js.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { CONFIG_PROPS, MAPPABLE_CONFIG_KEYS, MAPPABLE_KEYS } from "./constants";
|
|
2
|
+
const MAPPABLE_KEYS_SET = new Set(MAPPABLE_KEYS);
|
|
3
|
+
/**
|
|
4
|
+
* Приводит конфиг, написанный во ВНЕШНИХ (замапленных) именах, к внутренним —
|
|
5
|
+
* один раз, на границе конструктора `Palistor`, ДО того как дерево попадёт в
|
|
6
|
+
* init/compute/traversal.
|
|
7
|
+
*
|
|
8
|
+
* Зачем: `fieldMapping` задаёт единый публичный словарь имён полей. Автор пишет
|
|
9
|
+
* конфиг в этом словаре (`required`, `helpText`, …), а всё внутреннее ядро
|
|
10
|
+
* (computeFieldState, registerNodes, обходы по `CONFIG_PROPS` / `"value" in node`)
|
|
11
|
+
* оперирует internal-именами (`isRequired`, `description`, …). Нормализуя дерево
|
|
12
|
+
* в одной точке, мы не трогаем ни одно из ~десятка мест ниже по стеку —
|
|
13
|
+
* все они продолжают работать с internal-именами без изменений.
|
|
14
|
+
*
|
|
15
|
+
* Переводятся только ключи из {@link MAPPABLE_CONFIG_KEYS} (пересечение
|
|
16
|
+
* mappable-ключей и входных ключей конфига). Идентичность дочерних полей
|
|
17
|
+
* (`email`, `passport`, …) не ремапится никогда.
|
|
18
|
+
*
|
|
19
|
+
* Инвариант карты (см. RFC): external-имя не должно совпадать с именем соседнего
|
|
20
|
+
* дочернего поля.
|
|
21
|
+
*
|
|
22
|
+
* @param config корневой конфиг (как написал автор)
|
|
23
|
+
* @param externalToInternal обратная карта external→internal (sparse)
|
|
24
|
+
* @param fieldMapping прямая карта internal→external (для strict-проверок)
|
|
25
|
+
* @returns новое нормализованное дерево (оригинал не мутируется). Если карта
|
|
26
|
+
* пуста — возвращается исходный `config` без копий (нулевой оверхед).
|
|
27
|
+
*/
|
|
28
|
+
export function normalizeConfig(config, externalToInternal, fieldMapping) {
|
|
29
|
+
if (Object.keys(externalToInternal).length === 0)
|
|
30
|
+
return config;
|
|
31
|
+
return normalizeNode(config, externalToInternal, fieldMapping);
|
|
32
|
+
}
|
|
33
|
+
function normalizeNode(node, e2i, fwd) {
|
|
34
|
+
// ListNode — массив [template, listConfig?]: нормализуем каждый элемент.
|
|
35
|
+
if (Array.isArray(node)) {
|
|
36
|
+
return node.map((el) => normalizeNode(el, e2i, fwd));
|
|
37
|
+
}
|
|
38
|
+
if (node === null || typeof node !== "object")
|
|
39
|
+
return node;
|
|
40
|
+
const src = node;
|
|
41
|
+
const out = {};
|
|
42
|
+
for (const key of Object.keys(src)) {
|
|
43
|
+
const value = src[key];
|
|
44
|
+
// (1) strict: автор написал INTERNAL-имя config-ключа, который активно
|
|
45
|
+
// ремапится (напр. `isRequired` при isRequired→required).
|
|
46
|
+
if (MAPPABLE_CONFIG_KEYS.has(key) && key in fwd) {
|
|
47
|
+
throw new Error(`[palistor] fieldMapping is active: write "${String(fwd[key])}" instead of internal "${key}" in config.`);
|
|
48
|
+
}
|
|
49
|
+
const internal = e2i[key];
|
|
50
|
+
// (2) key — внешнее имя из карты.
|
|
51
|
+
if (internal !== undefined) {
|
|
52
|
+
if (MAPPABLE_CONFIG_KEYS.has(internal)) {
|
|
53
|
+
// ремап во ВХОДНОЙ config-ключ → переименовываем, внутрь не рекурсируем.
|
|
54
|
+
out[internal] = value;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (MAPPABLE_KEYS_SET.has(internal)) {
|
|
58
|
+
// ремап в ВЫЧИСЛЯЕМЫЙ/выходной ключ (isInvalid/errorMessage/dirty/
|
|
59
|
+
// loading/onValueChange) — в конфиге его писать нельзя.
|
|
60
|
+
throw new Error(`[palistor] "${internal}" (mapped as "${key}") is computed and cannot be set in config — remove it.`);
|
|
61
|
+
}
|
|
62
|
+
// internal не mappable — карта странная; трактуем key как обычно (ниже).
|
|
63
|
+
}
|
|
64
|
+
// (3) key — не внешнее имя карты: служебный ключ конфига или дочернее поле.
|
|
65
|
+
if (CONFIG_PROPS.has(key)) {
|
|
66
|
+
// служебный (validate, componentProps, resolve, value, label, …) — как есть.
|
|
67
|
+
out[key] = value;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// дочернее поле (идентичность не ремапится) → рекурсия.
|
|
71
|
+
out[key] = normalizeNode(value, e2i, fwd);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=normalizeConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeConfig.js","sourceRoot":"","sources":["../../store/normalizeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGhF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,aAAa,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAS,EACT,kBAA0C,EAC1C,YAA0B;IAE1B,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAChE,OAAO,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,YAAY,CAAM,CAAC;AACtE,CAAC;AAED,SAAS,aAAa,CACpB,IAAa,EACb,GAA2B,EAC3B,GAAiB;IAEjB,yEAAyE;IACzE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3D,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,MAAM,GAAG,GAA4B,EAAE,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,uEAAuE;QACvE,8DAA8D;QAC9D,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,6CAA6C,MAAM,CACjD,GAAG,CAAC,GAAyB,CAAC,CAC/B,0BAA0B,GAAG,cAAc,CAC7C,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAE1B,kCAAkC;QAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,yEAAyE;gBACzE,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,mEAAmE;gBACnE,wDAAwD;gBACxD,MAAM,IAAI,KAAK,CACb,eAAe,QAAQ,iBAAiB,GAAG,yDAAyD,CACrG,CAAC;YACJ,CAAC;YACD,yEAAyE;QAC3E,CAAC;QAED,4EAA4E;QAC5E,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,6EAA6E;YAC7E,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,wDAAwD;YACxD,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Вычисляет путь изменённого поля относительно узла-обработчика.
|
|
3
|
+
*
|
|
4
|
+
* Примеры:
|
|
5
|
+
* nodePath="form.address.city", handlerPath="form" → "address.city"
|
|
6
|
+
* nodePath="name", handlerPath="" → "name"
|
|
7
|
+
* nodePath="form.country", handlerPath="form.country" → "country" (self)
|
|
8
|
+
* nodePath="name", handlerPath="name" → "name" (self)
|
|
9
|
+
*/
|
|
10
|
+
export declare function computeFieldKey(nodePath: string, handlerPath: string): string;
|
|
11
|
+
//# sourceMappingURL=computeFieldKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeFieldKey.d.ts","sourceRoot":"","sources":["../../../store/onChangePipeline/computeFieldKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAM7E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Вычисляет путь изменённого поля относительно узла-обработчика.
|
|
3
|
+
*
|
|
4
|
+
* Примеры:
|
|
5
|
+
* nodePath="form.address.city", handlerPath="form" → "address.city"
|
|
6
|
+
* nodePath="name", handlerPath="" → "name"
|
|
7
|
+
* nodePath="form.country", handlerPath="form.country" → "country" (self)
|
|
8
|
+
* nodePath="name", handlerPath="name" → "name" (self)
|
|
9
|
+
*/
|
|
10
|
+
export function computeFieldKey(nodePath, handlerPath) {
|
|
11
|
+
if (nodePath === handlerPath) {
|
|
12
|
+
return nodePath.includes(".") ? nodePath.slice(nodePath.lastIndexOf(".") + 1) : nodePath;
|
|
13
|
+
}
|
|
14
|
+
if (!handlerPath)
|
|
15
|
+
return nodePath;
|
|
16
|
+
return nodePath.slice(handlerPath.length + 1);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=computeFieldKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeFieldKey.js","sourceRoot":"","sources":["../../../store/onChangePipeline/computeFieldKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,WAAmB;IACnE,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC;IAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AnyConfigNode } from "../store/types";
|
|
2
|
+
/**
|
|
3
|
+
* Собирает все узлы с `onChange` от самого узла вверх до корня.
|
|
4
|
+
*
|
|
5
|
+
* Порядок: сам узел (если есть onChange) первым, затем ближайший предок и т.д.
|
|
6
|
+
*/
|
|
7
|
+
export declare function findOnChangeNodes(node: object, nodeParents: WeakMap<object, object>): AnyConfigNode[];
|
|
8
|
+
//# sourceMappingURL=findOnChangeAncestors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findOnChangeAncestors.d.ts","sourceRoot":"","sources":["../../../store/onChangePipeline/findOnChangeAncestors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa,EAAE,CAkBjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Собирает все узлы с `onChange` от самого узла вверх до корня.
|
|
3
|
+
*
|
|
4
|
+
* Порядок: сам узел (если есть onChange) первым, затем ближайший предок и т.д.
|
|
5
|
+
*/
|
|
6
|
+
export function findOnChangeNodes(node, nodeParents) {
|
|
7
|
+
const result = [];
|
|
8
|
+
// Сам узел
|
|
9
|
+
if (typeof node.onChange === "function") {
|
|
10
|
+
result.push(node);
|
|
11
|
+
}
|
|
12
|
+
// Предки
|
|
13
|
+
let current = nodeParents.get(node);
|
|
14
|
+
while (current) {
|
|
15
|
+
if (typeof current.onChange === "function") {
|
|
16
|
+
result.push(current);
|
|
17
|
+
}
|
|
18
|
+
current = nodeParents.get(current);
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=findOnChangeAncestors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findOnChangeAncestors.js","sourceRoot":"","sources":["../../../store/onChangePipeline/findOnChangeAncestors.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,WAAoC;IAEpC,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,WAAW;IACX,IAAI,OAAQ,IAAsB,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,IAAqB,CAAC,CAAC;IACrC,CAAC;IAED,SAAS;IACT,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,OAAQ,OAAyB,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,OAAwB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type AnyConfigNode } from "../store/types";
|
|
2
|
+
import type { Palistor } from "../store/palistor";
|
|
3
|
+
export interface OnChangeOptions {
|
|
4
|
+
/** templateField — при entity-mode: onChange ищется в template-дереве, патч применяется к entity-сиблингам. */
|
|
5
|
+
via?: AnyConfigNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* OnChangePipeline — fire-and-forget вызов onChange хендлеров
|
|
9
|
+
* при изменении поля: сначала на самом узле (если есть onChange),
|
|
10
|
+
* затем на всех группах-предках с onChange.
|
|
11
|
+
*
|
|
12
|
+
* Для каждого узла с `onChange`:
|
|
13
|
+
* - вычисляется `fieldKey` — имя поля (для самого узла) или путь относительно предка
|
|
14
|
+
* - onChange вызывается асинхронно, не блокируя pipeline записи
|
|
15
|
+
* - если onChange вернул объект-патч — он применяется к store
|
|
16
|
+
*
|
|
17
|
+
* При opts.via — entity-mode: обход onChange через template-иерархию (не entity),
|
|
18
|
+
* allValues — entity-значения из view.parent.getValues().
|
|
19
|
+
*/
|
|
20
|
+
export declare class OnChangePipeline {
|
|
21
|
+
private readonly kernel;
|
|
22
|
+
constructor(kernel: Palistor<any, any>);
|
|
23
|
+
fire(node: AnyConfigNode, newValue: unknown, previousValue: unknown, opts?: OnChangeOptions): void;
|
|
24
|
+
/** Применить патч onChange к entity-сиблингам (entity-mode). */
|
|
25
|
+
private _applyEntityOnChangeResult;
|
|
26
|
+
/** Применить патч onChange к config-узлам (config-mode). */
|
|
27
|
+
private _applyOnChangeResult;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=onChangePipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onChangePipeline.d.ts","sourceRoot":"","sources":["../../../store/onChangePipeline/onChangePipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASlD,MAAM,WAAW,eAAe;IAC9B,+GAA+G;IAC/G,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAEvD,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI;IA0ClG,gEAAgE;IAChE,OAAO,CAAC,0BAA0B;IAsClC,4DAA4D;IAC5D,OAAO,CAAC,oBAAoB;CAsB7B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { applyPatch } from "../applyPatch/applyPatch";
|
|
2
|
+
import { recomputeAndNotify } from "../compute/recompute";
|
|
3
|
+
import { findOnChangeNodes } from "./findOnChangeAncestors";
|
|
4
|
+
import { computeFieldKey } from "./computeFieldKey";
|
|
5
|
+
import { isLeafNode } from "../traversal";
|
|
6
|
+
import { storeValue } from "../writePipeline/storeValue";
|
|
7
|
+
/**
|
|
8
|
+
* OnChangePipeline — fire-and-forget вызов onChange хендлеров
|
|
9
|
+
* при изменении поля: сначала на самом узле (если есть onChange),
|
|
10
|
+
* затем на всех группах-предках с onChange.
|
|
11
|
+
*
|
|
12
|
+
* Для каждого узла с `onChange`:
|
|
13
|
+
* - вычисляется `fieldKey` — имя поля (для самого узла) или путь относительно предка
|
|
14
|
+
* - onChange вызывается асинхронно, не блокируя pipeline записи
|
|
15
|
+
* - если onChange вернул объект-патч — он применяется к store
|
|
16
|
+
*
|
|
17
|
+
* При opts.via — entity-mode: обход onChange через template-иерархию (не entity),
|
|
18
|
+
* allValues — entity-значения из view.parent.getValues().
|
|
19
|
+
*/
|
|
20
|
+
export class OnChangePipeline {
|
|
21
|
+
constructor(kernel) {
|
|
22
|
+
this.kernel = kernel;
|
|
23
|
+
}
|
|
24
|
+
fire(node, newValue, previousValue, opts) {
|
|
25
|
+
const { nodePaths, nodeParents } = this.kernel.nodes;
|
|
26
|
+
if (opts?.via !== undefined) {
|
|
27
|
+
// ── Entity mode: onChange-обход по template-дереву ──
|
|
28
|
+
const view = this.kernel.nodes.getView(node, opts.via);
|
|
29
|
+
const onChangeNodes = findOnChangeNodes(view.rules, nodeParents);
|
|
30
|
+
if (onChangeNodes.length === 0)
|
|
31
|
+
return;
|
|
32
|
+
const nodePath = nodePaths.get(view.rules) ?? "";
|
|
33
|
+
const allValues = view.parent.getValues();
|
|
34
|
+
for (const target of onChangeNodes) {
|
|
35
|
+
const targetPath = nodePaths.get(target) ?? "";
|
|
36
|
+
const fieldKey = computeFieldKey(nodePath, targetPath);
|
|
37
|
+
Promise.resolve()
|
|
38
|
+
.then(() => target.onChange({ fieldKey, newValue, previousValue, allValues }))
|
|
39
|
+
.then((patch) => this._applyEntityOnChangeResult(patch, view))
|
|
40
|
+
.catch(() => { });
|
|
41
|
+
}
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// ── Config mode (существующая логика) ──
|
|
45
|
+
const valuesCache = this.kernel.values;
|
|
46
|
+
const onChangeNodes = findOnChangeNodes(node, nodeParents);
|
|
47
|
+
if (onChangeNodes.length === 0)
|
|
48
|
+
return;
|
|
49
|
+
const nodePath = nodePaths.get(node) ?? "";
|
|
50
|
+
for (const target of onChangeNodes) {
|
|
51
|
+
const targetPath = nodePaths.get(target) ?? "";
|
|
52
|
+
const fieldKey = computeFieldKey(nodePath, targetPath);
|
|
53
|
+
const allValues = valuesCache.values;
|
|
54
|
+
Promise.resolve()
|
|
55
|
+
.then(() => target.onChange({ fieldKey, newValue, previousValue, allValues }))
|
|
56
|
+
.then((patch) => this._applyOnChangeResult(patch, target))
|
|
57
|
+
.catch(() => { });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Применить патч onChange к entity-сиблингам (entity-mode). */
|
|
61
|
+
_applyEntityOnChangeResult(patch, view) {
|
|
62
|
+
if (!patch || typeof patch !== "object" || Object.keys(patch).length === 0)
|
|
63
|
+
return;
|
|
64
|
+
const entityParent = this.kernel.nodes.nodeParents.get(view.storage);
|
|
65
|
+
if (!entityParent)
|
|
66
|
+
return;
|
|
67
|
+
const nodeState = this.kernel.nodes.nodeState;
|
|
68
|
+
const patchedNodes = new Set();
|
|
69
|
+
for (const k of Object.keys(patch)) {
|
|
70
|
+
if (k === "id")
|
|
71
|
+
continue;
|
|
72
|
+
const entityField = entityParent[k];
|
|
73
|
+
if (entityField && typeof entityField === "object" && isLeafNode(entityField)) {
|
|
74
|
+
const patchValue = patch[k];
|
|
75
|
+
const stored = storeValue(entityField, patchValue, nodeState, this.kernel.values);
|
|
76
|
+
if (stored) {
|
|
77
|
+
entityField.value = patchValue;
|
|
78
|
+
patchedNodes.add(entityField);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (patchedNodes.size > 0) {
|
|
83
|
+
recomputeAndNotify(patchedNodes, () => this.kernel.recompute(patchedNodes), (c) => this.kernel.notifyChanged(c));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** Применить патч onChange к config-узлам (config-mode). */
|
|
87
|
+
_applyOnChangeResult(patch, sourceNode) {
|
|
88
|
+
if (!patch || typeof patch !== "object" || Object.keys(patch).length === 0)
|
|
89
|
+
return;
|
|
90
|
+
const targetNode = isLeafNode(sourceNode)
|
|
91
|
+
? (this.kernel.nodes.nodeParents.get(sourceNode) ?? this.kernel.rootConfig)
|
|
92
|
+
: sourceNode;
|
|
93
|
+
const patchChanged = applyPatch(targetNode, this.kernel.nodes.nodeState, patch, new Set(), this.kernel.values);
|
|
94
|
+
if (patchChanged.size > 0) {
|
|
95
|
+
recomputeAndNotify(patchChanged, () => this.kernel.recompute(), (c) => this.kernel.notifyChanged(c));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=onChangePipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onChangePipeline.js","sourceRoot":"","sources":["../../../store/onChangePipeline/onChangePipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Встроенные драйверы хранения для persist.
|
|
3
|
+
*
|
|
4
|
+
* Каждый драйвер реализует интерфейс PersistDriver.
|
|
5
|
+
* Все драйверы проверяют доступность API (SSR-совместимо).
|
|
6
|
+
*/
|
|
7
|
+
import type { PersistDriver } from "./types";
|
|
8
|
+
/**
|
|
9
|
+
* Драйвер на основе `window.localStorage`.
|
|
10
|
+
*
|
|
11
|
+
* Безопасен для SSR: при отсутствии `localStorage` — no-op.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { localStorageDriver } from "@palistor/store/persist";
|
|
16
|
+
*
|
|
17
|
+
* store.setPersist({ key: "myForm", driver: localStorageDriver });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const localStorageDriver: PersistDriver;
|
|
21
|
+
/**
|
|
22
|
+
* Драйвер на основе `window.sessionStorage`.
|
|
23
|
+
*
|
|
24
|
+
* Данные сохраняются до закрытия вкладки/окна.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { sessionStorageDriver } from "@palistor/store/persist";
|
|
29
|
+
*
|
|
30
|
+
* store.setPersist({ key: "checkout", driver: sessionStorageDriver });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const sessionStorageDriver: PersistDriver;
|
|
34
|
+
//# sourceMappingURL=drivers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drivers.d.ts","sourceRoot":"","sources":["../../../store/persist/drivers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAwBhC,CAAC;AAIF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAwBlC,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Встроенные драйверы хранения для persist.
|
|
3
|
+
*
|
|
4
|
+
* Каждый драйвер реализует интерфейс PersistDriver.
|
|
5
|
+
* Все драйверы проверяют доступность API (SSR-совместимо).
|
|
6
|
+
*/
|
|
7
|
+
// ─── localStorage ────────────────────────────────────────────────────────────
|
|
8
|
+
/**
|
|
9
|
+
* Драйвер на основе `window.localStorage`.
|
|
10
|
+
*
|
|
11
|
+
* Безопасен для SSR: при отсутствии `localStorage` — no-op.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { localStorageDriver } from "@palistor/store/persist";
|
|
16
|
+
*
|
|
17
|
+
* store.setPersist({ key: "myForm", driver: localStorageDriver });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export const localStorageDriver = {
|
|
21
|
+
getItem(key) {
|
|
22
|
+
try {
|
|
23
|
+
return typeof localStorage !== "undefined" ? localStorage.getItem(key) : null;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
setItem(key, value) {
|
|
30
|
+
try {
|
|
31
|
+
if (typeof localStorage !== "undefined")
|
|
32
|
+
localStorage.setItem(key, value);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Quota exceeded или private mode — молчим
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
removeItem(key) {
|
|
39
|
+
try {
|
|
40
|
+
if (typeof localStorage !== "undefined")
|
|
41
|
+
localStorage.removeItem(key);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// noop
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
// ─── sessionStorage ──────────────────────────────────────────────────────────
|
|
49
|
+
/**
|
|
50
|
+
* Драйвер на основе `window.sessionStorage`.
|
|
51
|
+
*
|
|
52
|
+
* Данные сохраняются до закрытия вкладки/окна.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* import { sessionStorageDriver } from "@palistor/store/persist";
|
|
57
|
+
*
|
|
58
|
+
* store.setPersist({ key: "checkout", driver: sessionStorageDriver });
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export const sessionStorageDriver = {
|
|
62
|
+
getItem(key) {
|
|
63
|
+
try {
|
|
64
|
+
return typeof sessionStorage !== "undefined" ? sessionStorage.getItem(key) : null;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
setItem(key, value) {
|
|
71
|
+
try {
|
|
72
|
+
if (typeof sessionStorage !== "undefined")
|
|
73
|
+
sessionStorage.setItem(key, value);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// noop
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
removeItem(key) {
|
|
80
|
+
try {
|
|
81
|
+
if (typeof sessionStorage !== "undefined")
|
|
82
|
+
sessionStorage.removeItem(key);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// noop
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=drivers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drivers.js","sourceRoot":"","sources":["../../../store/persist/drivers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,OAAO,CAAC,GAAW;QACjB,IAAI,CAAC;YACH,OAAO,OAAO,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,KAAa;QAChC,IAAI,CAAC;YACH,IAAI,OAAO,YAAY,KAAK,WAAW;gBAAE,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC;YACH,IAAI,OAAO,YAAY,KAAK,WAAW;gBAAE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;CACF,CAAC;AAEF,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,OAAO,CAAC,GAAW;QACjB,IAAI,CAAC;YACH,OAAO,OAAO,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,KAAa;QAChC,IAAI,CAAC;YACH,IAAI,OAAO,cAAc,KAAK,WAAW;gBAAE,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC;YACH,IAAI,OAAO,cAAc,KAAK,WAAW;gBAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persist module — публичный barrel-экспорт.
|
|
3
|
+
*/
|
|
4
|
+
export type { PersistDriver, PersistOptions } from "./types";
|
|
5
|
+
export { PersistManager } from "./persistManager";
|
|
6
|
+
export { localStorageDriver, sessionStorageDriver } from "./drivers";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../store/persist/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../store/persist/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PersistManager — управляет гидратацией и автосохранением состояния формы.
|
|
3
|
+
*
|
|
4
|
+
* Инстанцируется внутри Palistor.
|
|
5
|
+
* Не зависит от React — может быть подключён из любого окружения.
|
|
6
|
+
*
|
|
7
|
+
* Жизненный цикл:
|
|
8
|
+
* 1. Создаётся при new Palistor(...) (неактивен).
|
|
9
|
+
* 2. Активируется через enable(options) — гидратация + auto-save.
|
|
10
|
+
* 3. Деактивируется через disable() — отписка от store, отмена таймеров.
|
|
11
|
+
*/
|
|
12
|
+
import type { PersistOptions } from "./types";
|
|
13
|
+
import type { Palistor } from "../store/palistor";
|
|
14
|
+
/**
|
|
15
|
+
* Менеджер персистенции формы.
|
|
16
|
+
*
|
|
17
|
+
* Получает доступ ко всем данным формы через `kernel` (Palistor instance).
|
|
18
|
+
*/
|
|
19
|
+
export declare class PersistManager {
|
|
20
|
+
private readonly kernel;
|
|
21
|
+
private active;
|
|
22
|
+
private currentKey;
|
|
23
|
+
private currentDriver;
|
|
24
|
+
private serialize;
|
|
25
|
+
private deserialize;
|
|
26
|
+
private debounceMs;
|
|
27
|
+
private pickFields;
|
|
28
|
+
private omitFields;
|
|
29
|
+
/** Отписка от subscribeGlobal. */
|
|
30
|
+
private unsubscribe;
|
|
31
|
+
/** ID таймера debounce. */
|
|
32
|
+
private debounceTimer;
|
|
33
|
+
/** Флаг, предотвращающий сохранение во время гидратации. */
|
|
34
|
+
private isHydrating;
|
|
35
|
+
constructor(kernel: Palistor<any, any>);
|
|
36
|
+
private cancelDebounce;
|
|
37
|
+
/**
|
|
38
|
+
* Сохранить текущие значения в storage (без debounce).
|
|
39
|
+
*/
|
|
40
|
+
private saveToStorage;
|
|
41
|
+
/**
|
|
42
|
+
* Запланировать сохранение с debounce.
|
|
43
|
+
*/
|
|
44
|
+
private scheduleSave;
|
|
45
|
+
/**
|
|
46
|
+
* Прочитать из storage и применить значения к nodeState.
|
|
47
|
+
*/
|
|
48
|
+
private hydrateFromStorage;
|
|
49
|
+
/**
|
|
50
|
+
* Активировать персистенцию: гидратация из storage + auto-save при изменениях.
|
|
51
|
+
*
|
|
52
|
+
* Если persist уже активен — предыдущий отключается.
|
|
53
|
+
* Возвращает Promise, который резолвится после успешной гидратации.
|
|
54
|
+
*/
|
|
55
|
+
enable(options: PersistOptions): Promise<void>;
|
|
56
|
+
/** Деактивировать: отписка от store, отмена таймеров, очистка состояния. */
|
|
57
|
+
disable(): void;
|
|
58
|
+
/** Принудительно сохранить текущие значения в storage (без debounce). */
|
|
59
|
+
flush(): Promise<void>;
|
|
60
|
+
/** Принудительно гидратировать из storage. */
|
|
61
|
+
hydrate(): Promise<void>;
|
|
62
|
+
/** Удалить данные из storage по текущему ключу. */
|
|
63
|
+
clear(): Promise<void>;
|
|
64
|
+
/** Активна ли персистенция в данный момент. */
|
|
65
|
+
isEnabled(): boolean;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=persistManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistManager.d.ts","sourceRoot":"","sources":["../../../store/persist/persistManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,SAAS,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAmClD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAI5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,SAAS,CAA0D;IAC3E,OAAO,CAAC,WAAW,CAAwD;IAC3E,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAuB;IAEzC,kCAAkC;IAClC,OAAO,CAAC,WAAW,CAA6B;IAEhD,2BAA2B;IAC3B,OAAO,CAAC,aAAa,CAA8C;IAEnE,4DAA4D;IAC5D,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAMtC,OAAO,CAAC,cAAc;IAOtB;;OAEG;YACW,aAAa;IAc3B;;OAEG;IACH,OAAO,CAAC,YAAY,CAclB;IAEF;;OAEG;YACW,kBAAkB;IA+ChC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB9C,4EAA4E;IAC5E,OAAO,IAAI,IAAI;IAaf,yEAAyE;IACnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,8CAA8C;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,mDAAmD;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B,+CAA+C;IAC/C,SAAS,IAAI,OAAO;CAGrB"}
|