@ng-forge/dynamic-forms 1.2.0-next.1 → 1.2.0-next.3

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 (18) hide show
  1. package/fesm2022/{ng-forge-dynamic-forms-array-field.component-BVnXnaNw.mjs → ng-forge-dynamic-forms-array-field.component-B9OfjKPI.mjs} +2 -2
  2. package/fesm2022/{ng-forge-dynamic-forms-array-field.component-BVnXnaNw.mjs.map → ng-forge-dynamic-forms-array-field.component-B9OfjKPI.mjs.map} +1 -1
  3. package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-CkqvXXs_.mjs → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-VJBOH393.mjs} +2 -2
  4. package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-CkqvXXs_.mjs.map → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-VJBOH393.mjs.map} +1 -1
  5. package/fesm2022/{ng-forge-dynamic-forms-container-field.component-CM1pY9v5.mjs → ng-forge-dynamic-forms-container-field.component-o49q6akV.mjs} +2 -2
  6. package/fesm2022/{ng-forge-dynamic-forms-container-field.component-CM1pY9v5.mjs.map → ng-forge-dynamic-forms-container-field.component-o49q6akV.mjs.map} +1 -1
  7. package/fesm2022/{ng-forge-dynamic-forms-group-field.component-D4JhDffB.mjs → ng-forge-dynamic-forms-group-field.component-DA-FW30T.mjs} +2 -2
  8. package/fesm2022/{ng-forge-dynamic-forms-group-field.component-D4JhDffB.mjs.map → ng-forge-dynamic-forms-group-field.component-DA-FW30T.mjs.map} +1 -1
  9. package/fesm2022/ng-forge-dynamic-forms-integration.mjs.map +1 -1
  10. package/fesm2022/ng-forge-dynamic-forms-internal.mjs +23 -10
  11. package/fesm2022/ng-forge-dynamic-forms-internal.mjs.map +1 -1
  12. package/fesm2022/{ng-forge-dynamic-forms-ng-forge-dynamic-forms-ZiNaCWHl.mjs → ng-forge-dynamic-forms-ng-forge-dynamic-forms-CUihkwGC.mjs} +18 -17
  13. package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-CUihkwGC.mjs.map +1 -0
  14. package/fesm2022/{ng-forge-dynamic-forms-page-field.component-Wbz6S8iH.mjs → ng-forge-dynamic-forms-page-field.component-P9O4eNvS.mjs} +2 -2
  15. package/fesm2022/{ng-forge-dynamic-forms-page-field.component-Wbz6S8iH.mjs.map → ng-forge-dynamic-forms-page-field.component-P9O4eNvS.mjs.map} +1 -1
  16. package/fesm2022/ng-forge-dynamic-forms.mjs +1 -1
  17. package/package.json +2 -2
  18. package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-ZiNaCWHl.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { reflectComponentType, Injector, inject, EnvironmentInjector, DestroyRef, computed, signal, input, ViewContainerRef, Directive, InjectionToken, linkedSignal, ChangeDetectionStrategy, Component, Injectable, isSignal, runInInjectionContext, afterNextRender, untracked, PendingTasks, ElementRef, PLATFORM_ID, isDevMode, TemplateRef, model, contentChildren, makeEnvironmentProviders } from '@angular/core';
3
3
  import { explicitEffect } from 'ngxtension/explicit-effect';
4
- import { DynamicFormLogger, WRAPPER_COMPONENT_CACHE, WRAPPER_REGISTRY, toReadonlyFieldTreeCached, writeToFieldValue, WRAPPER_AUTO_ASSOCIATIONS, DEFAULT_WRAPPERS, READONLY_FIELD_TREE_CACHE, getGridClassString, EventBus, FieldContextRegistryService, FunctionRegistryService, FORM_OPTIONS, evaluateCondition, FIELD_SIGNAL_CONTEXT, isRowField, isContainerField, isArrayField, hasChildFields, isSimplifiedArrayField, DynamicFormError, isStateLogicConfig, isDerivationLogicConfig, isFormStateCondition, createFormStateLogicFunction, createDebouncedLogicFunction, createLogicFunction, ExpressionParser, applyValidator, isPageField, isGenericContainerField, isGroupField, getFieldValueHandling, normalizeFieldsArray, keyBy, mapValues, isEqual, hasTargetProperty, ARRAY_CONTEXT, GROUP_CONTEXT, FORM_ID_PREFIX, baseFieldMapper, detectFormMode, validatePageNesting, FIELD_REGISTRY, assertNever, ADDON_TYPE_REGISTRY, deepMergeDefaults, derivedFromDeferred, createWarningTracker, RootFormRegistryService, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, EXTERNAL_DATA, DEPRECATION_WARNING_TRACKER, createAddonActionRegistry, ADDON_ACTION_REGISTRY, HttpConditionCache, HTTP_CONDITION_CACHE, HttpConditionFunctionCacheService, AsyncConditionFunctionCacheService, DynamicValueFunctionCacheService, LogicFunctionCacheService, setupInitializationTracking, ComponentInitializedEvent, DF_FIELD_TEMPLATES, rowFieldMapper, groupFieldMapper, arrayFieldMapper, pageFieldMapper, textFieldMapper, containerFieldMapper, isWrapperTypeDefinition, ADDON_TYPE_COMPONENT_CACHE, ADDON_TYPE_DEFINITIONS, createDefaultDerivationLogConfig, NoopLogger, EMIT_FORM_VALUE_ON_EVENTS, DynamicTextPipe, ADDON_ACTION_HANDLERS } from '@ng-forge/dynamic-forms/internal';
4
+ import { DynamicFormLogger, WRAPPER_COMPONENT_CACHE, WRAPPER_REGISTRY, toReadonlyFieldTreeCached, writeToFieldValue, WRAPPER_AUTO_ASSOCIATIONS, DEFAULT_WRAPPERS, READONLY_FIELD_TREE_CACHE, getGridClassString, EventBus, FieldContextRegistryService, FunctionRegistryService, FORM_OPTIONS, evaluateCondition, FIELD_SIGNAL_CONTEXT, isRowField, isGenericContainerField, isContainerField, isArrayField, hasChildFields, isSimplifiedArrayField, DynamicFormError, isStateLogicConfig, isDerivationLogicConfig, isFormStateCondition, createFormStateLogicFunction, createDebouncedLogicFunction, createLogicFunction, ExpressionParser, applyValidator, isPageField, isGroupField, getFieldValueHandling, normalizeFieldsArray, keyBy, mapValues, isEqual, hasTargetProperty, ARRAY_CONTEXT, GROUP_CONTEXT, FORM_ID_PREFIX, baseFieldMapper, detectFormMode, validatePageNesting, FIELD_REGISTRY, assertNever, ADDON_TYPE_REGISTRY, deepMergeDefaults, derivedFromDeferred, createWarningTracker, RootFormRegistryService, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, EXTERNAL_DATA, DEPRECATION_WARNING_TRACKER, createAddonActionRegistry, ADDON_ACTION_REGISTRY, HttpConditionCache, HTTP_CONDITION_CACHE, HttpConditionFunctionCacheService, AsyncConditionFunctionCacheService, DynamicValueFunctionCacheService, LogicFunctionCacheService, setupInitializationTracking, ComponentInitializedEvent, DF_FIELD_TEMPLATES, rowFieldMapper, groupFieldMapper, arrayFieldMapper, pageFieldMapper, textFieldMapper, containerFieldMapper, isWrapperTypeDefinition, ADDON_TYPE_COMPONENT_CACHE, ADDON_TYPE_DEFINITIONS, createDefaultDerivationLogConfig, NoopLogger, EMIT_FORM_VALUE_ON_EVENTS, DynamicTextPipe, ADDON_ACTION_HANDLERS } from '@ng-forge/dynamic-forms/internal';
5
5
  import { takeUntilDestroyed, toObservable, toSignal, outputFromObservable } from '@angular/core/rxjs-interop';
6
6
  import { of, forkJoin, from, catchError, map, switchMap, isObservable, firstValueFrom, exhaustMap, EMPTY, debounceTime, distinctUntilChanged, tap, pipe, scan, Observable, Subject, concatMap, filter, take } from 'rxjs';
7
7
  import { submit, required, disabled, readonly, hidden, applyEach, applyWhenValue, applyWhen, apply, email, minLength, maxLength, pattern, min, max, schema, validateStandardSchema, form, provideSignalFormsConfig } from '@angular/forms/signals';
@@ -403,14 +403,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
403
403
  }]
404
404
  }], ctorParameters: () => [], propDecorators: { dfFieldOutlet: [{ type: i0.Input, args: [{ isSignal: true, alias: "dfFieldOutlet", required: true }] }], dfFieldOutletEnvironmentInjector: [{ type: i0.Input, args: [{ isSignal: true, alias: "dfFieldOutletEnvironmentInjector", required: false }] }] } });
405
405
 
406
+ function isTreeValidationErrors(result) {
407
+ const isError = (v) => typeof v === 'object' && v !== null && 'kind' in v;
408
+ return Array.isArray(result) ? result.every(isError) && result.length > 0 : isError(result);
409
+ }
406
410
  function wrapSubmissionAction(action) {
407
411
  return async (formTree) => {
408
412
  const result = action(formTree);
409
- if (isObservable(result)) {
410
- await firstValueFrom(result);
411
- return;
412
- }
413
- await Promise.resolve(result);
413
+ const resolved = isObservable(result) ? await firstValueFrom(result) : await Promise.resolve(result);
414
+ return isTreeValidationErrors(resolved) ? resolved : undefined;
414
415
  };
415
416
  }
416
417
  function createSubmissionHandler(options) {
@@ -862,10 +863,10 @@ class PageOrchestratorComponent {
862
863
  }
863
864
  }
864
865
  `, isInline: true, styles: [":host{display:block;position:relative;width:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [/* @ts-ignore */
865
- import('./ng-forge-dynamic-forms-page-field.component-Wbz6S8iH.mjs').then(m => m.default)]] });
866
+ import('./ng-forge-dynamic-forms-page-field.component-P9O4eNvS.mjs').then(m => m.default)]] });
866
867
  }
867
868
  i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.1", ngImport: i0, type: PageOrchestratorComponent, resolveDeferredDeps: () => [/* @ts-ignore */
868
- import('./ng-forge-dynamic-forms-page-field.component-Wbz6S8iH.mjs').then(m => m.default)], resolveMetadata: PageFieldComponent => ({ decorators: [{
869
+ import('./ng-forge-dynamic-forms-page-field.component-P9O4eNvS.mjs').then(m => m.default)], resolveMetadata: PageFieldComponent => ({ decorators: [{
869
870
  type: Component,
870
871
  args: [{ selector: 'div[page-orchestrator]', imports: [PageFieldComponent], template: `
871
872
  @for (pageField of pageFields(); track pageField.key; let i = $index) {
@@ -925,8 +926,8 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.1", ng
925
926
  function collectLeafFieldKeys(fields) {
926
927
  const keys = [];
927
928
  for (const field of fields) {
928
- if (isRowField(field)) {
929
- keys.push(...collectLeafFieldKeys(field.fields));
929
+ if (isRowField(field) || isGenericContainerField(field)) {
930
+ keys.push(...collectLeafFieldKeys(field.fields));
930
931
  }
931
932
  else if (field.key) {
932
933
  keys.push(field.key);
@@ -3879,7 +3880,7 @@ function createDerivationRenderGate() {
3879
3880
  if (!has || engine() !== 'idle')
3880
3881
  return;
3881
3882
  engine.set('loading');
3882
- pendingTasks.run(() => import('./ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-CkqvXXs_.mjs')
3883
+ pendingTasks.run(() => import('./ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-VJBOH393.mjs')
3883
3884
  .then(({ bootstrapDerivationOrchestrator }) => {
3884
3885
  runInInjectionContext(injector, () => bootstrapDerivationOrchestrator());
3885
3886
  engine.set('wired');
@@ -4434,28 +4435,28 @@ const DISPLAY_FIELD_TYPES_BASE = {
4434
4435
  const BUILT_IN_FIELDS = [
4435
4436
  {
4436
4437
  name: 'row',
4437
- loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-CM1pY9v5.mjs'),
4438
+ loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-o49q6akV.mjs'),
4438
4439
  mapper: rowFieldMapper,
4439
4440
  valueHandling: 'flatten',
4440
4441
  ...CONTAINER_FIELD_TYPES_BASE,
4441
4442
  },
4442
4443
  {
4443
4444
  name: 'group',
4444
- loadComponent: () => import('./ng-forge-dynamic-forms-group-field.component-D4JhDffB.mjs'),
4445
+ loadComponent: () => import('./ng-forge-dynamic-forms-group-field.component-DA-FW30T.mjs'),
4445
4446
  mapper: groupFieldMapper,
4446
4447
  valueHandling: 'include',
4447
4448
  ...CONTAINER_FIELD_TYPES_BASE,
4448
4449
  },
4449
4450
  {
4450
4451
  name: 'array',
4451
- loadComponent: () => import('./ng-forge-dynamic-forms-array-field.component-BVnXnaNw.mjs'),
4452
+ loadComponent: () => import('./ng-forge-dynamic-forms-array-field.component-B9OfjKPI.mjs'),
4452
4453
  mapper: arrayFieldMapper,
4453
4454
  valueHandling: 'include',
4454
4455
  ...CONTAINER_FIELD_TYPES_BASE,
4455
4456
  },
4456
4457
  {
4457
4458
  name: 'page',
4458
- loadComponent: () => import('./ng-forge-dynamic-forms-page-field.component-Wbz6S8iH.mjs'),
4459
+ loadComponent: () => import('./ng-forge-dynamic-forms-page-field.component-P9O4eNvS.mjs'),
4459
4460
  mapper: pageFieldMapper,
4460
4461
  valueHandling: 'flatten',
4461
4462
  ...CONTAINER_FIELD_TYPES_BASE,
@@ -4473,7 +4474,7 @@ const BUILT_IN_FIELDS = [
4473
4474
  },
4474
4475
  {
4475
4476
  name: 'container',
4476
- loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-CM1pY9v5.mjs'),
4477
+ loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-o49q6akV.mjs'),
4477
4478
  mapper: containerFieldMapper,
4478
4479
  valueHandling: 'flatten',
4479
4480
  ...CONTAINER_FIELD_TYPES_BASE,
@@ -4891,4 +4892,4 @@ function arrayEvent(arrayKey) {
4891
4892
 
4892
4893
 
4893
4894
  export { withLegacyStatusClasses as $, ArrayItemRegistryService as A, BUILT_IN_FIELDS as B, CONTAINER_FIELD_PROCESSORS as C, DfFieldOutlet as D, EventDispatcher as E, FIELD_WINDOWING as F, PageChangeEvent as G, PopArrayItemEvent as H, InsertArrayItemEvent as I, PrependArrayItemEvent as J, PreviousPageEvent as K, TextAddonComponent as L, MoveArrayItemEvent as M, NextPageEvent as N, arrayEvent as O, PROPERTY_OVERRIDE_STORE as P, createWrappers as Q, RemoveAtIndexEvent as R, ShiftArrayItemEvent as S, TemplateAddonComponent as T, isWrappersBundle as U, provideDynamicForm as V, sanitizeFormConfig as W, withAddonActions as X, withCustomAddon as Y, withEventFormValue as Z, withFieldWindowing as _, isSameWrapperChain as a, withLoggerConfig as a0, withPagePreload as a1, withValidationExecutionDefaults as a2, withValueExclusionDefaults as a3, wrapperProps as a4, createWrapperChainController as b, createFieldResolutionPipe as c, createSchemaFromFields as d, createHiddenSignal as e, createRenderReadySignal as f, getNormalizedArrayMetadata as g, getFieldDefaultValue as h, injectFieldRegistry as i, resolveFieldWindowing as j, DEV_MODE as k, DEFAULT_DEBOUNCE_MS as l, mapFieldToInputs as m, DERIVATION_WARNING_TRACKER as n, FormStateManager as o, DERIVATION_LOG_CONFIG as p, AppendArrayItemEvent as q, resolveWrappers as r, ComponentAddonComponent as s, traverseFieldsWithContext as t, ConsoleLogger as u, DfTemplate as v, DynamicForm as w, FormClearEvent as x, FormResetEvent as y, FormSubmitEvent as z };
4894
- //# sourceMappingURL=ng-forge-dynamic-forms-ng-forge-dynamic-forms-ZiNaCWHl.mjs.map
4895
+ //# sourceMappingURL=ng-forge-dynamic-forms-ng-forge-dynamic-forms-CUihkwGC.mjs.map