@ng-forge/dynamic-forms 1.1.0-next.2 → 1.1.0-next.4

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.
Files changed (26) hide show
  1. package/README.md +4 -1
  2. package/fesm2022/{ng-forge-dynamic-forms-array-field.component-CftX-bCB.mjs → ng-forge-dynamic-forms-array-field.component-DCHrAcfd.mjs} +2 -2
  3. package/fesm2022/{ng-forge-dynamic-forms-array-field.component-CftX-bCB.mjs.map → ng-forge-dynamic-forms-array-field.component-DCHrAcfd.mjs.map} +1 -1
  4. package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-CFSJLZPZ.mjs → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-DWIWQjjZ.mjs} +2 -2
  5. package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-CFSJLZPZ.mjs.map → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-DWIWQjjZ.mjs.map} +1 -1
  6. package/fesm2022/{ng-forge-dynamic-forms-container-field.component-B_bQ-f2g.mjs → ng-forge-dynamic-forms-container-field.component-CSYhRBe6.mjs} +2 -2
  7. package/fesm2022/{ng-forge-dynamic-forms-container-field.component-B_bQ-f2g.mjs.map → ng-forge-dynamic-forms-container-field.component-CSYhRBe6.mjs.map} +1 -1
  8. package/fesm2022/{ng-forge-dynamic-forms-group-field.component-Bl9WRPvF.mjs → ng-forge-dynamic-forms-group-field.component-DqhHzVsN.mjs} +2 -2
  9. package/fesm2022/{ng-forge-dynamic-forms-group-field.component-Bl9WRPvF.mjs.map → ng-forge-dynamic-forms-group-field.component-DqhHzVsN.mjs.map} +1 -1
  10. package/fesm2022/ng-forge-dynamic-forms-integration.mjs +17 -67
  11. package/fesm2022/ng-forge-dynamic-forms-integration.mjs.map +1 -1
  12. package/fesm2022/ng-forge-dynamic-forms-internal.mjs +65 -45
  13. package/fesm2022/ng-forge-dynamic-forms-internal.mjs.map +1 -1
  14. package/fesm2022/{ng-forge-dynamic-forms-ng-forge-dynamic-forms-fMB33l2f.mjs → ng-forge-dynamic-forms-ng-forge-dynamic-forms-BYyZ_cuA.mjs} +49 -135
  15. package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-BYyZ_cuA.mjs.map +1 -0
  16. package/fesm2022/{ng-forge-dynamic-forms-page-field.component-C9bQkVjQ.mjs → ng-forge-dynamic-forms-page-field.component-Vvk3fYZp.mjs} +2 -2
  17. package/fesm2022/{ng-forge-dynamic-forms-page-field.component-C9bQkVjQ.mjs.map → ng-forge-dynamic-forms-page-field.component-Vvk3fYZp.mjs.map} +1 -1
  18. package/fesm2022/ng-forge-dynamic-forms-testing.mjs +84 -0
  19. package/fesm2022/ng-forge-dynamic-forms-testing.mjs.map +1 -0
  20. package/fesm2022/ng-forge-dynamic-forms.mjs +1 -1
  21. package/package.json +5 -1
  22. package/types/ng-forge-dynamic-forms-integration.d.ts +6 -54
  23. package/types/ng-forge-dynamic-forms-internal.d.ts +53 -13
  24. package/types/ng-forge-dynamic-forms-testing.d.ts +58 -0
  25. package/types/ng-forge-dynamic-forms.d.ts +1 -1
  26. package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-fMB33l2f.mjs.map +0 -1
@@ -392,6 +392,15 @@ function hasCrossFieldWhenCondition(config, context) {
392
392
  }
393
393
  return isCrossFieldExpression(config.when, context);
394
394
  }
395
+ function requiresTreeValidation(config) {
396
+ if (isResourceBasedValidator(config)) {
397
+ return false;
398
+ }
399
+ if (config.type === 'custom') {
400
+ return isCrossFieldValidator(config);
401
+ }
402
+ return isCrossFieldBuiltInValidator(config);
403
+ }
395
404
  function isCrossFieldStateLogic(config, context) {
396
405
  return isCrossFieldExpression(config.condition, context);
397
406
  }
@@ -1601,14 +1610,17 @@ class FieldContextRegistryService {
1601
1610
  return this.buildArrayScopedContext(rootFormValue, arrayScope, fieldValue, customFunctions, false, fieldContext);
1602
1611
  }
1603
1612
  const rootFormSignal = this.rootFormRegistry.rootForm;
1613
+ const resolveExternalData = () => this.resolveExternalData();
1604
1614
  return {
1605
1615
  fieldValue,
1606
1616
  formValue: rootFormValue,
1607
1617
  fieldPath: localKey,
1608
1618
  customFunctions: customFunctions || {},
1609
- externalData: this.resolveExternalData(false),
1610
1619
  logger: this.logger,
1611
1620
  deprecationTracker: this.deprecationTracker ?? undefined,
1621
+ get externalData() {
1622
+ return resolveExternalData();
1623
+ },
1612
1624
  get fieldState() {
1613
1625
  return readFieldStateInfo(extractFieldState(fieldContext), false);
1614
1626
  },
@@ -1639,6 +1651,7 @@ class FieldContextRegistryService {
1639
1651
  }
1640
1652
  }
1641
1653
  const rootFormSignal = this.rootFormRegistry.rootForm;
1654
+ const resolveExternalData = () => this.resolveExternalData();
1642
1655
  const fieldStateGetter = fieldContext ? () => readFieldStateInfo(extractFieldState(fieldContext), reactive) : () => undefined;
1643
1656
  const formFieldStateGetter = () => createFormFieldStateMap((reactive ? rootFormSignal() : untracked(rootFormSignal)), reactive);
1644
1657
  if (!scopedFormValue) {
@@ -1647,9 +1660,11 @@ class FieldContextRegistryService {
1647
1660
  formValue: rootFormValue,
1648
1661
  fieldPath: localKey,
1649
1662
  customFunctions: customFunctions || {},
1650
- externalData: this.resolveExternalData(reactive),
1651
1663
  logger: this.logger,
1652
1664
  deprecationTracker: this.deprecationTracker ?? undefined,
1665
+ get externalData() {
1666
+ return resolveExternalData();
1667
+ },
1653
1668
  get fieldState() {
1654
1669
  return fieldStateGetter();
1655
1670
  },
@@ -1666,9 +1681,11 @@ class FieldContextRegistryService {
1666
1681
  arrayPath: arrayKey,
1667
1682
  fieldPath: `${arrayKey}.${index}.${localKey}`,
1668
1683
  customFunctions: customFunctions || {},
1669
- externalData: this.resolveExternalData(reactive),
1670
1684
  logger: this.logger,
1671
1685
  deprecationTracker: this.deprecationTracker ?? undefined,
1686
+ get externalData() {
1687
+ return resolveExternalData();
1688
+ },
1672
1689
  get fieldState() {
1673
1690
  return fieldStateGetter();
1674
1691
  },
@@ -1677,11 +1694,11 @@ class FieldContextRegistryService {
1677
1694
  },
1678
1695
  };
1679
1696
  }
1680
- resolveExternalData(reactive) {
1697
+ resolveExternalData() {
1681
1698
  const externalDataSignal = this.externalDataSignal;
1682
1699
  if (!externalDataSignal)
1683
1700
  return undefined;
1684
- const externalDataRecord = reactive ? externalDataSignal() : untracked(() => externalDataSignal());
1701
+ const externalDataRecord = externalDataSignal();
1685
1702
  if (!externalDataRecord) {
1686
1703
  return undefined;
1687
1704
  }
@@ -1690,7 +1707,7 @@ class FieldContextRegistryService {
1690
1707
  if (!isSignal(value)) {
1691
1708
  throw new DynamicFormError(`externalData["${key}"] must be a Signal. Got: ${typeof value}. Wrap it with signal(yourValue).`);
1692
1709
  }
1693
- resolved[key] = reactive ? value() : untracked(() => value());
1710
+ resolved[key] = value();
1694
1711
  }
1695
1712
  return resolved;
1696
1713
  }
@@ -1704,14 +1721,17 @@ class FieldContextRegistryService {
1704
1721
  }
1705
1722
  const localKey = this.extractFieldPath(fieldContext);
1706
1723
  const rootFormSignal = this.rootFormRegistry.rootForm;
1724
+ const resolveExternalData = () => this.resolveExternalData();
1707
1725
  return {
1708
1726
  fieldValue,
1709
1727
  formValue: rootFormValue,
1710
1728
  fieldPath: localKey,
1711
1729
  customFunctions: customFunctions || {},
1712
- externalData: this.resolveExternalData(true),
1713
1730
  logger: this.logger,
1714
1731
  deprecationTracker: this.deprecationTracker ?? undefined,
1732
+ get externalData() {
1733
+ return resolveExternalData();
1734
+ },
1715
1735
  get fieldState() {
1716
1736
  return readFieldStateInfo(extractFieldState(fieldContext), true);
1717
1737
  },
@@ -1726,14 +1746,17 @@ class FieldContextRegistryService {
1726
1746
  return this.buildArrayScopedContext(rootFormValue, arrayScope, undefined, customFunctions, true);
1727
1747
  }
1728
1748
  const rootFormSignal = this.rootFormRegistry.rootForm;
1749
+ const resolveExternalData = () => this.resolveExternalData();
1729
1750
  return {
1730
1751
  fieldValue: undefined,
1731
1752
  formValue: rootFormValue,
1732
1753
  fieldPath,
1733
1754
  customFunctions: customFunctions || {},
1734
- externalData: this.resolveExternalData(true),
1735
1755
  logger: this.logger,
1736
1756
  deprecationTracker: this.deprecationTracker ?? undefined,
1757
+ get externalData() {
1758
+ return resolveExternalData();
1759
+ },
1737
1760
  get formFieldState() {
1738
1761
  return createFormFieldStateMap(rootFormSignal(), true);
1739
1762
  },
@@ -2250,7 +2273,7 @@ function createDebouncedLogicFunction(expression, debounceMs) {
2250
2273
  }
2251
2274
  }
2252
2275
  const fn = (ctx) => {
2253
- const contextKey = safeReadPathKeys(ctx).join('.');
2276
+ const contextKey = safeReadPathKeys(ctx).join('.');
2254
2277
  let signalPair = cacheService.debouncedSignalStore.get(contextKey);
2255
2278
  if (!signalPair) {
2256
2279
  const immediateValue = signal(false, /* @ts-ignore */
@@ -2539,47 +2562,52 @@ function createDynamicValueFunction(expression) {
2539
2562
  return fn;
2540
2563
  }
2541
2564
 
2542
- function applyEmailValidator(path) {
2543
- email(path);
2565
+ function applyEmailValidator(path, when) {
2566
+ email(path, when ? { when: when } : undefined);
2544
2567
  }
2545
- function applyMinValidator(path, value, expression) {
2568
+ function applyMinValidator(path, value, expression, when) {
2569
+ const opts = when ? { when: when } : undefined;
2546
2570
  if (expression) {
2547
- min(path, createDynamicValueFunction(expression));
2571
+ min(path, createDynamicValueFunction(expression), opts);
2548
2572
  }
2549
2573
  else {
2550
- min(path, value);
2574
+ min(path, value, opts);
2551
2575
  }
2552
2576
  }
2553
- function applyMaxValidator(path, value, expression) {
2577
+ function applyMaxValidator(path, value, expression, when) {
2578
+ const opts = when ? { when: when } : undefined;
2554
2579
  if (expression) {
2555
- max(path, createDynamicValueFunction(expression));
2580
+ max(path, createDynamicValueFunction(expression), opts);
2556
2581
  }
2557
2582
  else {
2558
- max(path, value);
2583
+ max(path, value, opts);
2559
2584
  }
2560
2585
  }
2561
- function applyMinLengthValidator(path, value, expression) {
2586
+ function applyMinLengthValidator(path, value, expression, when) {
2587
+ const opts = when ? { when: when } : undefined;
2562
2588
  if (expression) {
2563
- minLength(path, createDynamicValueFunction(expression));
2589
+ minLength(path, createDynamicValueFunction(expression), opts);
2564
2590
  }
2565
2591
  else {
2566
- minLength(path, value);
2592
+ minLength(path, value, opts);
2567
2593
  }
2568
2594
  }
2569
- function applyMaxLengthValidator(path, value, expression) {
2595
+ function applyMaxLengthValidator(path, value, expression, when) {
2596
+ const opts = when ? { when: when } : undefined;
2570
2597
  if (expression) {
2571
- maxLength(path, createDynamicValueFunction(expression));
2598
+ maxLength(path, createDynamicValueFunction(expression), opts);
2572
2599
  }
2573
2600
  else {
2574
- maxLength(path, value);
2601
+ maxLength(path, value, opts);
2575
2602
  }
2576
2603
  }
2577
- function applyPatternValidator(path, value, expression) {
2604
+ function applyPatternValidator(path, value, expression, when) {
2605
+ const opts = when ? { when: when } : undefined;
2578
2606
  if (expression) {
2579
- pattern(path, createDynamicValueFunction(expression));
2607
+ pattern(path, createDynamicValueFunction(expression), opts);
2580
2608
  }
2581
2609
  else {
2582
- pattern(path, value);
2610
+ pattern(path, value, opts);
2583
2611
  }
2584
2612
  }
2585
2613
  function createConditionalLogic(when) {
@@ -2587,39 +2615,34 @@ function createConditionalLogic(when) {
2587
2615
  }
2588
2616
  function applyValidator(config, fieldPath) {
2589
2617
  const path = fieldPath;
2590
- if (!isResourceBasedValidator(config) && (isCrossFieldBuiltInValidator(config) || hasCrossFieldWhenCondition(config))) {
2618
+ if (requiresTreeValidation(config)) {
2591
2619
  return;
2592
2620
  }
2593
2621
  switch (config.type) {
2594
2622
  case 'required':
2595
- if (config.when) {
2596
- required(path, { when: createLogicFunction(config.when) });
2597
- }
2598
- else {
2599
- required(path);
2600
- }
2623
+ required(path, config.when ? { when: createConditionalLogic(config.when) } : undefined);
2601
2624
  break;
2602
2625
  case 'email':
2603
- applyEmailValidator(fieldPath);
2626
+ applyEmailValidator(fieldPath, createConditionalLogic(config.when));
2604
2627
  break;
2605
2628
  case 'min':
2606
2629
  if (typeof config.value === 'number') {
2607
- applyMinValidator(fieldPath, config.value, config.expression);
2630
+ applyMinValidator(fieldPath, config.value, config.expression, createConditionalLogic(config.when));
2608
2631
  }
2609
2632
  break;
2610
2633
  case 'max':
2611
2634
  if (typeof config.value === 'number') {
2612
- applyMaxValidator(fieldPath, config.value, config.expression);
2635
+ applyMaxValidator(fieldPath, config.value, config.expression, createConditionalLogic(config.when));
2613
2636
  }
2614
2637
  break;
2615
2638
  case 'minLength':
2616
2639
  if (typeof config.value === 'number') {
2617
- applyMinLengthValidator(fieldPath, config.value, config.expression);
2640
+ applyMinLengthValidator(fieldPath, config.value, config.expression, createConditionalLogic(config.when));
2618
2641
  }
2619
2642
  break;
2620
2643
  case 'maxLength':
2621
2644
  if (typeof config.value === 'number') {
2622
- applyMaxLengthValidator(fieldPath, config.value, config.expression);
2645
+ applyMaxLengthValidator(fieldPath, config.value, config.expression, createConditionalLogic(config.when));
2623
2646
  }
2624
2647
  break;
2625
2648
  case 'pattern':
@@ -2636,7 +2659,7 @@ function applyValidator(config, fieldPath) {
2636
2659
  else {
2637
2660
  regexPattern = config.value;
2638
2661
  }
2639
- applyPatternValidator(fieldPath, regexPattern, config.expression);
2662
+ applyPatternValidator(fieldPath, regexPattern, config.expression, createConditionalLogic(config.when));
2640
2663
  }
2641
2664
  break;
2642
2665
  case 'custom':
@@ -2651,9 +2674,6 @@ function applyValidator(config, fieldPath) {
2651
2674
  }
2652
2675
  }
2653
2676
  function applyCustomValidator(config, fieldPath) {
2654
- if (isCrossFieldValidator(config)) {
2655
- return;
2656
- }
2657
2677
  let validatorFn;
2658
2678
  if (config.expression) {
2659
2679
  validatorFn = createExpressionValidator(config);
@@ -3522,8 +3542,8 @@ function isEqualInternal(a, b, seenA, seenB) {
3522
3542
  }
3523
3543
  const recordA = a;
3524
3544
  const recordB = b;
3525
- const keysA = [...Object.keys(recordA), ...Object.getOwnPropertySymbols(recordA)];
3526
- const keysB = [...Object.keys(recordB), ...Object.getOwnPropertySymbols(recordB)];
3545
+ const keysA = Object.keys(recordA);
3546
+ const keysB = Object.keys(recordB);
3527
3547
  if (keysA.length !== keysB.length)
3528
3548
  return false;
3529
3549
  const keySetB = new Set(keysB);
@@ -3647,5 +3667,5 @@ function createWarningTracker() {
3647
3667
 
3648
3668
 
3649
3669
 
3650
- export { ADDON_ACTION_HANDLERS, ADDON_ACTION_REGISTRY, ADDON_TYPE_COMPONENT_CACHE, ADDON_TYPE_DEFINITIONS, ADDON_TYPE_REGISTRY, ARRAY_CONTEXT, AsyncConditionFunctionCacheService, ComponentInitializedEvent, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, DEFAULT_WRAPPERS, DEPRECATION_WARNING_TRACKER, DF_FIELD_TEMPLATES, DfAddonSlot, DynamicFormError, DynamicFormLogger, DynamicTextPipe, DynamicValueFunctionCacheService, EMIT_FORM_VALUE_ON_EVENTS, EXTERNAL_DATA, EventBus, ExpressionParser, ExpressionParserError, FIELD_REGISTRY, FIELD_SIGNAL_CONTEXT, FORM_ID_PREFIX, FORM_OPTIONS, FieldContextRegistryService, FunctionRegistryService, GROUP_CONTEXT, HTTP_CONDITION_CACHE, HttpConditionCache, HttpConditionFunctionCacheService, INITIALIZATION_TIMEOUT_MS, LogicFunctionCacheService, NoopLogger, READONLY_FIELD_TREE_CACHE, RootFormRegistryService, TokenType, WRAPPER_AUTO_ASSOCIATIONS, WRAPPER_COMPONENT_CACHE, WRAPPER_REGISTRY, applyMetaToElement, applyValidator, applyValidators, arrayFieldMapper, assertNever, baseFieldMapper, buildBaseInputs, compareValues, containerFieldMapper, createAddonActionRegistry, createDebouncedLogicFunction, createDefaultDerivationLogConfig, createDynamicValueFunction, createFormFieldStateMap, createInitializationTracker, createLogicFunction, createWarningTracker, deepMergeDefaults, derivedFromDeferred, detectFormMode, dynamicTextToObservable, evaluateCondition, evaluateNonFieldDisabled, evaluateNonFieldHidden, extractExpressionDependencies, extractStringDependencies, getArrayLength, getChangedKeys, getFieldValueHandling, getNestedValue, groupFieldMapper, hasChildFields, hasCrossFieldWhenCondition, hasFormValue, hasNestedProperty, hasTargetProperty, injectAddonTypeRegistry, injectFieldSignalContext, injectFieldsSupportingAddons, injectNonFieldEvaluationContext, interpolateParams, isArrayField, isCheckedField, isContainerField, isCrossFieldBuiltInValidator, isCrossFieldExpression, isCrossFieldSchema, isCrossFieldStateLogic, isCrossFieldValidator, isDerivationLogicConfig, isDisplayOnlyField, isEqual, isFieldBoundContext, isFormStateCondition, isFunctionHttpValidator, isGenericContainerField, isGroupField, isHiddenField, isLeafField, isNonPagedForm, isPageField, isPagedForm, isResourceBasedValidator, isRowField, isSimplifiedArrayField, isStateLogicConfig, isValidNonPagedForm, isValidPagedForm, isValueBearingField, isValueField, isWrapperTypeDefinition, keyBy, mapValues, memoize, normalizeFieldsArray, omit, pageFieldMapper, readFieldStateInfo, resolveDynamicValue, resolveHttpRequest, resolveNextButtonDisabled, resolveNonFieldDisabled, resolveNonFieldHidden, resolveSubmitButtonDisabled, resolveTokens, rowFieldMapper, runPresetAction, setupInitializationTracking, shouldLog, textFieldMapper, toReadonlyFieldTree, toReadonlyFieldTreeCached, validatePageNesting, withPreviousValue, writeToFieldValue };
3670
+ export { ADDON_ACTION_HANDLERS, ADDON_ACTION_REGISTRY, ADDON_TYPE_COMPONENT_CACHE, ADDON_TYPE_DEFINITIONS, ADDON_TYPE_REGISTRY, ARRAY_CONTEXT, AsyncConditionFunctionCacheService, ComponentInitializedEvent, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, DEFAULT_WRAPPERS, DEPRECATION_WARNING_TRACKER, DF_FIELD_TEMPLATES, DfAddonSlot, DynamicFormError, DynamicFormLogger, DynamicTextPipe, DynamicValueFunctionCacheService, EMIT_FORM_VALUE_ON_EVENTS, EXTERNAL_DATA, EventBus, ExpressionParser, ExpressionParserError, FIELD_REGISTRY, FIELD_SIGNAL_CONTEXT, FORM_ID_PREFIX, FORM_OPTIONS, FieldContextRegistryService, FunctionRegistryService, GROUP_CONTEXT, HTTP_CONDITION_CACHE, HttpConditionCache, HttpConditionFunctionCacheService, INITIALIZATION_TIMEOUT_MS, LogicFunctionCacheService, NoopLogger, READONLY_FIELD_TREE_CACHE, RootFormRegistryService, TokenType, WRAPPER_AUTO_ASSOCIATIONS, WRAPPER_COMPONENT_CACHE, WRAPPER_REGISTRY, applyMetaToElement, applyValidator, applyValidators, arrayFieldMapper, assertNever, baseFieldMapper, buildBaseInputs, buildClassName, compareValues, containerFieldMapper, createAddonActionRegistry, createDebouncedLogicFunction, createDefaultDerivationLogConfig, createDynamicValueFunction, createFormFieldStateMap, createInitializationTracker, createLogicFunction, createWarningTracker, deepMergeDefaults, derivedFromDeferred, detectFormMode, dynamicTextToObservable, evaluateCondition, evaluateNonFieldDisabled, evaluateNonFieldHidden, extractExpressionDependencies, extractStringDependencies, getArrayLength, getChangedKeys, getFieldValueHandling, getGridClassString, getNestedValue, groupFieldMapper, hasChildFields, hasCrossFieldWhenCondition, hasFormValue, hasNestedProperty, hasTargetProperty, injectAddonTypeRegistry, injectFieldSignalContext, injectFieldsSupportingAddons, injectNonFieldEvaluationContext, interpolateParams, isArrayField, isCheckedField, isContainerField, isCrossFieldBuiltInValidator, isCrossFieldExpression, isCrossFieldSchema, isCrossFieldStateLogic, isCrossFieldValidator, isDerivationLogicConfig, isDisplayOnlyField, isEqual, isFieldBoundContext, isFormStateCondition, isFunctionHttpValidator, isGenericContainerField, isGroupField, isHiddenField, isLeafField, isNonPagedForm, isPageField, isPagedForm, isResourceBasedValidator, isRowField, isSimplifiedArrayField, isStateLogicConfig, isValidNonPagedForm, isValidPagedForm, isValueBearingField, isValueField, isWrapperTypeDefinition, keyBy, mapValues, memoize, normalizeFieldsArray, omit, pageFieldMapper, readFieldStateInfo, requiresTreeValidation, resolveDynamicValue, resolveHttpRequest, resolveNextButtonDisabled, resolveNonFieldDisabled, resolveNonFieldHidden, resolveSubmitButtonDisabled, resolveTokens, rowFieldMapper, runPresetAction, setupInitializationTracking, shouldLog, textFieldMapper, toReadonlyFieldTree, toReadonlyFieldTreeCached, validatePageNesting, withPreviousValue, writeToFieldValue };
3651
3671
  //# sourceMappingURL=ng-forge-dynamic-forms-internal.mjs.map