@ng-forge/dynamic-forms 0.10.0-next.2 → 0.10.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.
- package/fesm2022/{ng-forge-dynamic-forms-array-field.component-PPh_uVVh.mjs → ng-forge-dynamic-forms-array-field.component-D6GEsH72.mjs} +3 -3
- package/fesm2022/ng-forge-dynamic-forms-array-field.component-D6GEsH72.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-container-field.component-3dZDF3kh.mjs → ng-forge-dynamic-forms-container-field.component-BluTT44A.mjs} +3 -3
- package/fesm2022/ng-forge-dynamic-forms-container-field.component-BluTT44A.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-container-utils-B7kCznbc.mjs → ng-forge-dynamic-forms-container-utils-diYAWMa_.mjs} +2 -2
- package/fesm2022/ng-forge-dynamic-forms-container-utils-diYAWMa_.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-css-wrapper.component-DtWBauY3.mjs → ng-forge-dynamic-forms-css-wrapper.component-CgMQOaG7.mjs} +2 -2
- package/fesm2022/ng-forge-dynamic-forms-css-wrapper.component-CgMQOaG7.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-emit-initialization-CbY8WZZB.mjs → ng-forge-dynamic-forms-emit-initialization-CB86IMsQ.mjs} +2 -2
- package/fesm2022/ng-forge-dynamic-forms-emit-initialization-CB86IMsQ.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-group-field.component-Dr8Z628-.mjs → ng-forge-dynamic-forms-group-field.component-2bWHql4u.mjs} +3 -3
- package/fesm2022/ng-forge-dynamic-forms-group-field.component-2bWHql4u.mjs.map +1 -0
- package/fesm2022/ng-forge-dynamic-forms-integration.mjs.map +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-ng-forge-dynamic-forms-ww_BnAt_.mjs → ng-forge-dynamic-forms-ng-forge-dynamic-forms-CPkVjU_N.mjs} +127 -16
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-CPkVjU_N.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-page-field.component-DoGKs3LN.mjs → ng-forge-dynamic-forms-page-field.component-zF-vEv5V.mjs} +3 -3
- package/fesm2022/ng-forge-dynamic-forms-page-field.component-zF-vEv5V.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-row-wrapper.component-CFtnatYj.mjs → ng-forge-dynamic-forms-row-wrapper.component-CwkYn5yl.mjs} +1 -1
- package/fesm2022/ng-forge-dynamic-forms-row-wrapper.component-CwkYn5yl.mjs.map +1 -0
- package/fesm2022/ng-forge-dynamic-forms-schema.mjs.map +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-text-field.component-C3TPVvj_.mjs → ng-forge-dynamic-forms-text-field.component-_8_vVeH0.mjs} +2 -2
- package/fesm2022/{ng-forge-dynamic-forms-text-field.component-C3TPVvj_.mjs.map → ng-forge-dynamic-forms-text-field.component-_8_vVeH0.mjs.map} +1 -1
- package/fesm2022/ng-forge-dynamic-forms.mjs +1 -1
- package/package.json +1 -1
- package/types/ng-forge-dynamic-forms-integration.d.ts +27 -462
- package/types/ng-forge-dynamic-forms-schema.d.ts +2 -117
- package/types/ng-forge-dynamic-forms.d.ts +286 -4650
- package/fesm2022/ng-forge-dynamic-forms-array-field.component-PPh_uVVh.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-container-field.component-3dZDF3kh.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-container-utils-B7kCznbc.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-css-wrapper.component-DtWBauY3.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-emit-initialization-CbY8WZZB.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-group-field.component-Dr8Z628-.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-ww_BnAt_.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-page-field.component-DoGKs3LN.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-row-wrapper.component-CFtnatYj.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, reflectComponentType, Injector, EnvironmentInjector, DestroyRef, computed, signal, input, ViewContainerRef, Directive, Injectable, isSignal, untracked, linkedSignal, ChangeDetectionStrategy, Component, resourceFromSnapshots, runInInjectionContext, afterNextRender, isWritableSignal, TemplateRef, model, contentChildren, makeEnvironmentProviders, Pipe } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, reflectComponentType, Injector, EnvironmentInjector, DestroyRef, computed, signal, input, ViewContainerRef, Directive, Injectable, isSignal, untracked, linkedSignal, ChangeDetectionStrategy, Component, resourceFromSnapshots, runInInjectionContext, afterNextRender, ElementRef, PLATFORM_ID, isDevMode, isWritableSignal, TemplateRef, model, contentChildren, makeEnvironmentProviders, Pipe } from '@angular/core';
|
|
3
3
|
import { explicitEffect } from 'ngxtension/explicit-effect';
|
|
4
4
|
import { takeUntilDestroyed, toObservable, toSignal, rxResource, outputFromObservable } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { of, forkJoin, from, catchError, map, switchMap, isObservable, firstValueFrom, exhaustMap, EMPTY, Subject, filter, TimeoutError, throwError, defer, combineLatest, pipe, debounceTime, distinctUntilChanged, tap, startWith, scan as scan$1, Observable, concatMap, take as take$1, pairwise, merge, combineLatestWith, auditTime, scheduled, queueScheduler, timer } from 'rxjs';
|
|
@@ -7,8 +7,8 @@ import { submit, email, min, max, minLength, maxLength, pattern, required, valid
|
|
|
7
7
|
import { scan, map as map$1, filter as filter$1, take, switchMap as switchMap$1, timeout, catchError as catchError$1, shareReplay } from 'rxjs/operators';
|
|
8
8
|
import { HttpClient } from '@angular/common/http';
|
|
9
9
|
import { isStandardSchemaMarker } from '@ng-forge/dynamic-forms/schema';
|
|
10
|
+
import { isPlatformBrowser, NgComponentOutlet, AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
10
11
|
import { NG_STATUS_CLASSES } from '@angular/forms/signals/compat';
|
|
11
|
-
import { NgComponentOutlet, AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
12
12
|
|
|
13
13
|
function isWrapperTypeDefinition(value) {
|
|
14
14
|
return typeof value === 'object' && value !== null && 'wrapperName' in value;
|
|
@@ -49,6 +49,7 @@ const DEFAULT_PROPS = new InjectionToken('DEFAULT_PROPS');
|
|
|
49
49
|
const DEFAULT_VALIDATION_MESSAGES = new InjectionToken('DEFAULT_VALIDATION_MESSAGES');
|
|
50
50
|
const FORM_OPTIONS = new InjectionToken('FORM_OPTIONS');
|
|
51
51
|
const EXTERNAL_DATA = new InjectionToken('EXTERNAL_DATA');
|
|
52
|
+
const FORM_ID_PREFIX = new InjectionToken('FORM_ID_PREFIX');
|
|
52
53
|
|
|
53
54
|
const DynamicFormLogger = new InjectionToken('DynamicFormLogger');
|
|
54
55
|
|
|
@@ -2496,9 +2497,9 @@ class PageOrchestratorComponent {
|
|
|
2496
2497
|
}
|
|
2497
2498
|
}
|
|
2498
2499
|
}
|
|
2499
|
-
`, isInline: true, styles: [":host{display:block;position:relative;width:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [import('./ng-forge-dynamic-forms-page-field.component-
|
|
2500
|
+
`, isInline: true, styles: [":host{display:block;position:relative;width:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [import('./ng-forge-dynamic-forms-page-field.component-zF-vEv5V.mjs').then(m => m.default)], () => [import('./ng-forge-dynamic-forms-page-field.component-zF-vEv5V.mjs').then(m => m.default)]] });
|
|
2500
2501
|
}
|
|
2501
|
-
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "21.2.14", ngImport: i0, type: PageOrchestratorComponent, resolveDeferredDeps: () => [import('./ng-forge-dynamic-forms-page-field.component-
|
|
2502
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "21.2.14", ngImport: i0, type: PageOrchestratorComponent, resolveDeferredDeps: () => [import('./ng-forge-dynamic-forms-page-field.component-zF-vEv5V.mjs').then(m => m.default)], resolveMetadata: PageFieldComponent => ({ decorators: [{
|
|
2502
2503
|
type: Component,
|
|
2503
2504
|
args: [{ selector: 'div[page-orchestrator]', imports: [PageFieldComponent], template: `
|
|
2504
2505
|
@for (pageField of pageFields(); track pageField.key; let i = $index) {
|
|
@@ -5295,6 +5296,16 @@ function applyGroupPrefix(inputs, groupPath) {
|
|
|
5295
5296
|
key: `${groupPath.replace(/\./g, '_')}_${key}`,
|
|
5296
5297
|
};
|
|
5297
5298
|
}
|
|
5299
|
+
function applyFormPrefix(inputs, prefix) {
|
|
5300
|
+
const key = inputs['key'];
|
|
5301
|
+
if (typeof key !== 'string' || prefix.length === 0) {
|
|
5302
|
+
return inputs;
|
|
5303
|
+
}
|
|
5304
|
+
return {
|
|
5305
|
+
...inputs,
|
|
5306
|
+
key: `${prefix}_${key}`,
|
|
5307
|
+
};
|
|
5308
|
+
}
|
|
5298
5309
|
function mapFieldToInputs(fieldDef, fieldRegistry) {
|
|
5299
5310
|
const fieldType = fieldRegistry.get(fieldDef.type);
|
|
5300
5311
|
if (fieldType && !fieldType.loadComponent && !fieldType.mapper) {
|
|
@@ -5302,6 +5313,7 @@ function mapFieldToInputs(fieldDef, fieldRegistry) {
|
|
|
5302
5313
|
}
|
|
5303
5314
|
const arrayContext = inject(ARRAY_CONTEXT, { optional: true });
|
|
5304
5315
|
const groupContext = inject(GROUP_CONTEXT, { optional: true });
|
|
5316
|
+
const formPrefixSignal = inject(FORM_ID_PREFIX, { optional: true });
|
|
5305
5317
|
const store = inject(PROPERTY_OVERRIDE_STORE);
|
|
5306
5318
|
const mapperResult = fieldType?.mapper ? fieldType.mapper(fieldDef) : baseFieldMapper(fieldDef);
|
|
5307
5319
|
const propsToMeta = fieldType?.propsToMeta;
|
|
@@ -5309,8 +5321,9 @@ function mapFieldToInputs(fieldDef, fieldRegistry) {
|
|
|
5309
5321
|
const indexSignal = arrayContext?.index;
|
|
5310
5322
|
const hasArrayContext = indexSignal !== undefined && isSignal(indexSignal);
|
|
5311
5323
|
const hasGroupContext = groupContext != null;
|
|
5324
|
+
const hasFormPrefix = formPrefixSignal != null;
|
|
5312
5325
|
const hasOverrides = fieldHasPropertyDerivations(fieldDef);
|
|
5313
|
-
if (!hasPropsForwarding && !hasArrayContext && !hasGroupContext && !hasOverrides) {
|
|
5326
|
+
if (!hasPropsForwarding && !hasArrayContext && !hasGroupContext && !hasOverrides && !hasFormPrefix) {
|
|
5314
5327
|
return mapperResult;
|
|
5315
5328
|
}
|
|
5316
5329
|
return computed(() => {
|
|
@@ -5324,6 +5337,9 @@ function mapFieldToInputs(fieldDef, fieldRegistry) {
|
|
|
5324
5337
|
if (hasArrayContext) {
|
|
5325
5338
|
const index = indexSignal();
|
|
5326
5339
|
inputs = applyIndexSuffix(inputs, index);
|
|
5340
|
+
}
|
|
5341
|
+
if (hasFormPrefix) {
|
|
5342
|
+
inputs = applyFormPrefix(inputs, formPrefixSignal());
|
|
5327
5343
|
}
|
|
5328
5344
|
if (hasOverrides) {
|
|
5329
5345
|
const groupPath = hasGroupContext ? groupContext.groupPath() : undefined;
|
|
@@ -6908,6 +6924,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
6908
6924
|
type: Injectable
|
|
6909
6925
|
}], ctorParameters: () => [] });
|
|
6910
6926
|
|
|
6927
|
+
const AUTO_ID_PREFIX = 'df-';
|
|
6928
|
+
class DynamicFormInstanceRegistry {
|
|
6929
|
+
slots = new Map();
|
|
6930
|
+
_membership = signal(0, ...(ngDevMode ? [{ debugName: "_membership" }] : /* istanbul ignore next */ []));
|
|
6931
|
+
multiplePresent = computed(() => {
|
|
6932
|
+
this._membership();
|
|
6933
|
+
let visible = 0;
|
|
6934
|
+
for (const isVisible of this.slots.values()) {
|
|
6935
|
+
if (isVisible()) {
|
|
6936
|
+
visible += 1;
|
|
6937
|
+
if (visible > 1)
|
|
6938
|
+
return true;
|
|
6939
|
+
}
|
|
6940
|
+
}
|
|
6941
|
+
return false;
|
|
6942
|
+
}, ...(ngDevMode ? [{ debugName: "multiplePresent" }] : /* istanbul ignore next */ []));
|
|
6943
|
+
register(visible) {
|
|
6944
|
+
let slot = 1;
|
|
6945
|
+
while (this.slots.has(slot))
|
|
6946
|
+
slot++;
|
|
6947
|
+
this.slots.set(slot, visible);
|
|
6948
|
+
this._membership.update((m) => m + 1);
|
|
6949
|
+
return `${AUTO_ID_PREFIX}${slot}`;
|
|
6950
|
+
}
|
|
6951
|
+
unregister(id) {
|
|
6952
|
+
this.slots.delete(Number(id.slice(AUTO_ID_PREFIX.length)));
|
|
6953
|
+
this._membership.update((m) => m + 1);
|
|
6954
|
+
}
|
|
6955
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicFormInstanceRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6956
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicFormInstanceRegistry, providedIn: 'root' });
|
|
6957
|
+
}
|
|
6958
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicFormInstanceRegistry, decorators: [{
|
|
6959
|
+
type: Injectable,
|
|
6960
|
+
args: [{ providedIn: 'root' }]
|
|
6961
|
+
}] });
|
|
6962
|
+
|
|
6963
|
+
const INVALID_ID_CHARS = /[^\w-]+/g;
|
|
6964
|
+
function sanitizeIdPrefix(prefix) {
|
|
6965
|
+
return prefix.replace(INVALID_ID_CHARS, '_');
|
|
6966
|
+
}
|
|
6967
|
+
function isRendered(host) {
|
|
6968
|
+
if (!host.isConnected)
|
|
6969
|
+
return false;
|
|
6970
|
+
if (typeof host.checkVisibility === 'function')
|
|
6971
|
+
return host.checkVisibility();
|
|
6972
|
+
const rect = host.getBoundingClientRect();
|
|
6973
|
+
return rect.width > 0 || rect.height > 0;
|
|
6974
|
+
}
|
|
6975
|
+
class FormIdPrefixService {
|
|
6976
|
+
registry = inject(DynamicFormInstanceRegistry);
|
|
6977
|
+
options = inject(FORM_OPTIONS, { optional: true });
|
|
6978
|
+
logger = inject(DynamicFormLogger, { optional: true });
|
|
6979
|
+
host = inject((ElementRef)).nativeElement;
|
|
6980
|
+
visible = signal(true, ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
|
|
6981
|
+
autoId = this.registry.register(this.visible);
|
|
6982
|
+
rawPrefix = computed(() => this.options?.()?.idPrefix?.trim() || undefined, ...(ngDevMode ? [{ debugName: "rawPrefix" }] : /* istanbul ignore next */ []));
|
|
6983
|
+
prefix = computed(() => {
|
|
6984
|
+
const explicit = this.rawPrefix();
|
|
6985
|
+
if (explicit)
|
|
6986
|
+
return sanitizeIdPrefix(explicit);
|
|
6987
|
+
return this.registry.multiplePresent() ? this.autoId : '';
|
|
6988
|
+
}, ...(ngDevMode ? [{ debugName: "prefix" }] : /* istanbul ignore next */ []));
|
|
6989
|
+
constructor() {
|
|
6990
|
+
const destroyRef = inject(DestroyRef);
|
|
6991
|
+
destroyRef.onDestroy(() => this.registry.unregister(this.autoId));
|
|
6992
|
+
if (isPlatformBrowser(inject(PLATFORM_ID)) && typeof ResizeObserver !== 'undefined') {
|
|
6993
|
+
const ro = new ResizeObserver(() => this.visible.set(isRendered(this.host)));
|
|
6994
|
+
ro.observe(this.host);
|
|
6995
|
+
destroyRef.onDestroy(() => ro.disconnect());
|
|
6996
|
+
}
|
|
6997
|
+
if (isDevMode()) {
|
|
6998
|
+
explicitEffect([this.rawPrefix], ([raw]) => {
|
|
6999
|
+
const safe = raw ? sanitizeIdPrefix(raw) : raw;
|
|
7000
|
+
if (raw && safe !== raw) {
|
|
7001
|
+
this.logger?.warn(`idPrefix "${raw}" sanitized to "${safe}".`);
|
|
7002
|
+
}
|
|
7003
|
+
});
|
|
7004
|
+
}
|
|
7005
|
+
}
|
|
7006
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: FormIdPrefixService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7007
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: FormIdPrefixService });
|
|
7008
|
+
}
|
|
7009
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: FormIdPrefixService, decorators: [{
|
|
7010
|
+
type: Injectable
|
|
7011
|
+
}], ctorParameters: () => [] });
|
|
7012
|
+
|
|
6911
7013
|
function createWarningTracker() {
|
|
6912
7014
|
return { warnedKeys: new Set() };
|
|
6913
7015
|
}
|
|
@@ -9354,6 +9456,12 @@ function coreProviders() {
|
|
|
9354
9456
|
provide: EXTERNAL_DATA,
|
|
9355
9457
|
useFactory: (stateManager) => computed(() => stateManager.activeConfig()?.externalData),
|
|
9356
9458
|
deps: [FormStateManager],
|
|
9459
|
+
},
|
|
9460
|
+
FormIdPrefixService,
|
|
9461
|
+
{
|
|
9462
|
+
provide: FORM_ID_PREFIX,
|
|
9463
|
+
useFactory: (svc) => svc.prefix,
|
|
9464
|
+
deps: [FormIdPrefixService],
|
|
9357
9465
|
},
|
|
9358
9466
|
{ provide: DEPRECATION_WARNING_TRACKER, useFactory: createWarningTracker },
|
|
9359
9467
|
{ provide: ADDON_ACTION_REGISTRY, useFactory: createAddonActionRegistry },
|
|
@@ -9469,7 +9577,9 @@ class DynamicForm {
|
|
|
9469
9577
|
dispatcher = inject(EventDispatcher, { optional: true });
|
|
9470
9578
|
templateRegistry = inject(DfFieldTemplateRegistry);
|
|
9471
9579
|
_projectedTemplates = contentChildren(DfTemplate, ...(ngDevMode ? [{ debugName: "_projectedTemplates" }] : /* istanbul ignore next */ []));
|
|
9472
|
-
|
|
9580
|
+
stateManager = this.connectDeps();
|
|
9581
|
+
formIdPrefix = inject(FormIdPrefixService);
|
|
9582
|
+
idPrefix = this.formIdPrefix.prefix;
|
|
9473
9583
|
componentId = 'dynamic-form';
|
|
9474
9584
|
activeConfig = this.stateManager.activeConfig;
|
|
9475
9585
|
renderPhase = this.stateManager.renderPhase;
|
|
@@ -9563,7 +9673,7 @@ class DynamicForm {
|
|
|
9563
9673
|
});
|
|
9564
9674
|
}
|
|
9565
9675
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicForm, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9566
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicForm, isStandalone: true, selector: "form[dynamic-form]", inputs: { config: { classPropertyName: "config", publicName: "dynamic-form", isSignal: true, isRequired: true, transformFunction: null }, formOptions: { classPropertyName: "formOptions", publicName: "formOptions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", validityChange: "validityChange", dirtyChange: "dirtyChange", submitted: "submitted", reset: "reset", cleared: "cleared", events: "events", initialized: "initialized", onPageChange: "onPageChange", onPageNavigationStateChange: "onPageNavigationStateChange" }, host: { attributes: { "novalidate": "" }, listeners: { "submit": "onNativeSubmit($event)" }, properties: { "class.disabled": "disabled()", "class.df-form-paged": "formModeDetection().mode === \"paged\"", "class.df-form-non-paged": "formModeDetection().mode === \"non-paged\"", "attr.data-form-mode": "formModeDetection().mode" }, classAttribute: "df-dynamic-form df-form" }, providers: [
|
|
9676
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicForm, isStandalone: true, selector: "form[dynamic-form]", inputs: { config: { classPropertyName: "config", publicName: "dynamic-form", isSignal: true, isRequired: true, transformFunction: null }, formOptions: { classPropertyName: "formOptions", publicName: "formOptions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", validityChange: "validityChange", dirtyChange: "dirtyChange", submitted: "submitted", reset: "reset", cleared: "cleared", events: "events", initialized: "initialized", onPageChange: "onPageChange", onPageNavigationStateChange: "onPageNavigationStateChange" }, host: { attributes: { "novalidate": "" }, listeners: { "submit": "onNativeSubmit($event)" }, properties: { "class.disabled": "disabled()", "class.df-form-paged": "formModeDetection().mode === \"paged\"", "class.df-form-non-paged": "formModeDetection().mode === \"non-paged\"", "attr.data-form-mode": "formModeDetection().mode", "attr.id": "idPrefix() || null" }, classAttribute: "df-dynamic-form df-form" }, providers: [
|
|
9567
9677
|
provideDynamicFormDI(),
|
|
9568
9678
|
DfFieldTemplateRegistry,
|
|
9569
9679
|
{ provide: DF_FIELD_TEMPLATES, useFactory: () => inject(DfFieldTemplateRegistry).map },
|
|
@@ -9625,6 +9735,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
9625
9735
|
'[class.df-form-paged]': 'formModeDetection().mode === "paged"',
|
|
9626
9736
|
'[class.df-form-non-paged]': 'formModeDetection().mode === "non-paged"',
|
|
9627
9737
|
'[attr.data-form-mode]': 'formModeDetection().mode',
|
|
9738
|
+
'[attr.id]': 'idPrefix() || null',
|
|
9628
9739
|
'(submit)': 'onNativeSubmit($event)',
|
|
9629
9740
|
}, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".df-form{display:grid;grid-template-columns:1fr;gap:var(--df-grid-row-gap, .5rem);width:100%}.df-form>*{grid-column:1/-1}.df-row{display:grid;grid-template-columns:repeat(var(--df-grid-columns, 12),1fr);gap:var(--df-grid-gap, .5rem);align-items:start;width:100%}.df-row>*:not([class*=df-col-]){grid-column:1/-1}.df-col-1{grid-column:span 1}.df-col-2{grid-column:span 2}.df-col-3{grid-column:span 3}.df-col-4{grid-column:span 4}.df-col-5{grid-column:span 5}.df-col-6{grid-column:span 6}.df-col-7{grid-column:span 7}.df-col-8{grid-column:span 8}.df-col-9{grid-column:span 9}.df-col-10{grid-column:span 10}.df-col-11{grid-column:span 11}.df-col-12{grid-column:span 12}.df-col-auto{grid-column:span auto;width:auto}.df-col-full{grid-column:1/-1}.df-col-start-1{grid-column-start:1}.df-col-start-2{grid-column-start:2}.df-col-start-3{grid-column-start:3}.df-col-start-4{grid-column-start:4}.df-col-start-5{grid-column-start:5}.df-col-start-6{grid-column-start:6}.df-col-start-7{grid-column-start:7}.df-col-start-8{grid-column-start:8}.df-col-start-9{grid-column-start:9}.df-col-start-10{grid-column-start:10}.df-col-start-11{grid-column-start:11}.df-col-start-12{grid-column-start:12}.df-col-end-1{grid-column-end:1}.df-col-end-2{grid-column-end:2}.df-col-end-3{grid-column-end:3}.df-col-end-4{grid-column-end:4}.df-col-end-5{grid-column-end:5}.df-col-end-6{grid-column-end:6}.df-col-end-7{grid-column-end:7}.df-col-end-8{grid-column-end:8}.df-col-end-9{grid-column-end:9}.df-col-end-10{grid-column-end:10}.df-col-end-11{grid-column-end:11}.df-col-end-12{grid-column-end:12}.df-col-end-13{grid-column-end:13}@media(max-width:576px){.df-form{--df-grid-gap: var(--df-grid-gap-sm, .5rem);--df-grid-row-gap: var(--df-grid-row-gap-sm, .5rem)}.df-row{grid-template-columns:1fr}.df-row>*{grid-column:1/-1!important}.df-row.df-row-mobile-keep-cols{grid-template-columns:repeat(var(--df-grid-columns, 12),1fr)}.df-row.df-row-mobile-keep-cols>*{grid-column:revert!important}}@media(min-width:577px)and (max-width:768px){.df-form{--df-grid-gap: var(--df-grid-gap-md, .5rem);--df-grid-row-gap: var(--df-grid-row-gap-md, .5rem)}.df-row{--df-grid-columns: 6}.df-col-sm-1{grid-column:span 1}.df-col-sm-2{grid-column:span 2}.df-col-sm-3{grid-column:span 3}.df-col-sm-4{grid-column:span 4}.df-col-sm-5{grid-column:span 5}.df-col-sm-6{grid-column:span 6}.df-col-sm-full{grid-column:1/-1}}@media(min-width:769px)and (max-width:992px){.df-form{--df-grid-gap: var(--df-grid-gap-lg, .5rem);--df-grid-row-gap: var(--df-grid-row-gap-lg, .5rem)}.df-col-md-1{grid-column:span 1}.df-col-md-2{grid-column:span 2}.df-col-md-3{grid-column:span 3}.df-col-md-4{grid-column:span 4}.df-col-md-5{grid-column:span 5}.df-col-md-6{grid-column:span 6}.df-col-md-7{grid-column:span 7}.df-col-md-8{grid-column:span 8}.df-col-md-9{grid-column:span 9}.df-col-md-10{grid-column:span 10}.df-col-md-11{grid-column:span 11}.df-col-md-12{grid-column:span 12}.df-col-md-full{grid-column:1/-1}}@media(min-width:993px){.df-form{--df-grid-gap: var(--df-grid-gap-xl, .5rem);--df-grid-row-gap: var(--df-grid-row-gap-xl, .5rem)}.df-col-lg-1{grid-column:span 1}.df-col-lg-2{grid-column:span 2}.df-col-lg-3{grid-column:span 3}.df-col-lg-4{grid-column:span 4}.df-col-lg-5{grid-column:span 5}.df-col-lg-6{grid-column:span 6}.df-col-lg-7{grid-column:span 7}.df-col-lg-8{grid-column:span 8}.df-col-lg-9{grid-column:span 9}.df-col-lg-10{grid-column:span 10}.df-col-lg-11{grid-column:span 11}.df-col-lg-12{grid-column:span 12}.df-col-lg-full{grid-column:1/-1}}.df-gap-none{--df-grid-gap: 0}.df-gap-xs{--df-grid-gap: .25rem}.df-gap-sm{--df-grid-gap: .5rem}.df-gap-md{--df-grid-gap: 1rem}.df-gap-lg{--df-grid-gap: 1.5rem}.df-gap-xl{--df-grid-gap: 2rem}.df-row-gap-none{--df-grid-row-gap: 0}.df-row-gap-xs{--df-grid-row-gap: .25rem}.df-row-gap-sm{--df-grid-row-gap: .5rem}.df-row-gap-md{--df-grid-row-gap: 1rem}.df-row-gap-lg{--df-grid-row-gap: 1.5rem}.df-row-gap-xl{--df-grid-row-gap: 2rem}.df-field{display:block;width:100%;min-width:0;overflow:hidden;margin:0}.df-group,.df-page{display:block;width:100%}.df-form.disabled,.df-row.disabled,.df-field.disabled{opacity:.6;pointer-events:none}.df-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.df-sr-only-focusable:focus,.df-sr-only-focusable:active{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}.df-live-region{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.df-form :focus-visible{outline:2px solid var(--df-focus-color, #005fcc);outline-offset:2px}.df-group:focus-within{outline:1px dashed var(--df-focus-color, #005fcc);outline-offset:4px}:host{display:grid;grid-template-columns:1fr;gap:var(--df-grid-row-gap, .5rem);width:100%}:host>*{grid-column:1/-1}:host.df-form-spacing-custom{--df-grid-row-gap: var(--df-form-custom-spacing, 1.5rem)}:host.df-form-gap-none{--df-grid-row-gap: 0}:host.df-form-gap-xs{--df-grid-row-gap: .25rem}:host.df-form-gap-sm{--df-grid-row-gap: .5rem}:host.df-form-gap-md{--df-grid-row-gap: 1rem}:host.df-form-gap-lg{--df-grid-row-gap: 1.5rem}:host.df-form-gap-xl{--df-grid-row-gap: 2rem}:host.df-form-paged{gap:0}\n"] }]
|
|
9630
9741
|
}], ctorParameters: () => [], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "dynamic-form", required: true }] }], formOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "formOptions", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], source: [{ type: i0.Input, args: [{ isSignal: true, alias: "source", required: false }] }], _projectedTemplates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DfTemplate), { isSignal: true }] }], validityChange: [{ type: i0.Output, args: ["validityChange"] }], dirtyChange: [{ type: i0.Output, args: ["dirtyChange"] }], submitted: [{ type: i0.Output, args: ["submitted"] }], reset: [{ type: i0.Output, args: ["reset"] }], cleared: [{ type: i0.Output, args: ["cleared"] }], events: [{ type: i0.Output, args: ["events"] }], initialized: [{ type: i0.Output, args: ["initialized"] }], onPageChange: [{ type: i0.Output, args: ["onPageChange"] }], onPageNavigationStateChange: [{ type: i0.Output, args: ["onPageNavigationStateChange"] }] } });
|
|
@@ -9980,35 +10091,35 @@ const DISPLAY_FIELD_TYPES_BASE = {
|
|
|
9980
10091
|
const BUILT_IN_FIELDS = [
|
|
9981
10092
|
{
|
|
9982
10093
|
name: 'row',
|
|
9983
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-
|
|
10094
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-BluTT44A.mjs'),
|
|
9984
10095
|
mapper: rowFieldMapper,
|
|
9985
10096
|
valueHandling: 'flatten',
|
|
9986
10097
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
9987
10098
|
},
|
|
9988
10099
|
{
|
|
9989
10100
|
name: 'group',
|
|
9990
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-group-field.component-
|
|
10101
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-group-field.component-2bWHql4u.mjs'),
|
|
9991
10102
|
mapper: groupFieldMapper,
|
|
9992
10103
|
valueHandling: 'include',
|
|
9993
10104
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
9994
10105
|
},
|
|
9995
10106
|
{
|
|
9996
10107
|
name: 'array',
|
|
9997
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-array-field.component-
|
|
10108
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-array-field.component-D6GEsH72.mjs'),
|
|
9998
10109
|
mapper: arrayFieldMapper,
|
|
9999
10110
|
valueHandling: 'include',
|
|
10000
10111
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
10001
10112
|
},
|
|
10002
10113
|
{
|
|
10003
10114
|
name: 'page',
|
|
10004
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-page-field.component-
|
|
10115
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-page-field.component-zF-vEv5V.mjs'),
|
|
10005
10116
|
mapper: pageFieldMapper,
|
|
10006
10117
|
valueHandling: 'flatten',
|
|
10007
10118
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
10008
10119
|
},
|
|
10009
10120
|
{
|
|
10010
10121
|
name: 'text',
|
|
10011
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-text-field.component-
|
|
10122
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-text-field.component-_8_vVeH0.mjs'),
|
|
10012
10123
|
mapper: textFieldMapper,
|
|
10013
10124
|
valueHandling: 'exclude',
|
|
10014
10125
|
...DISPLAY_FIELD_TYPES_BASE,
|
|
@@ -10019,7 +10130,7 @@ const BUILT_IN_FIELDS = [
|
|
|
10019
10130
|
},
|
|
10020
10131
|
{
|
|
10021
10132
|
name: 'container',
|
|
10022
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-
|
|
10133
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-BluTT44A.mjs'),
|
|
10023
10134
|
mapper: containerFieldMapper,
|
|
10024
10135
|
valueHandling: 'flatten',
|
|
10025
10136
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
@@ -10028,11 +10139,11 @@ const BUILT_IN_FIELDS = [
|
|
|
10028
10139
|
const BUILT_IN_WRAPPERS = [
|
|
10029
10140
|
{
|
|
10030
10141
|
wrapperName: 'css',
|
|
10031
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-css-wrapper.component-
|
|
10142
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-css-wrapper.component-CgMQOaG7.mjs'),
|
|
10032
10143
|
},
|
|
10033
10144
|
{
|
|
10034
10145
|
wrapperName: 'row',
|
|
10035
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-row-wrapper.component-
|
|
10146
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-row-wrapper.component-CwkYn5yl.mjs'),
|
|
10036
10147
|
},
|
|
10037
10148
|
];
|
|
10038
10149
|
|
|
@@ -10762,4 +10873,4 @@ function extractErrorParams(error) {
|
|
|
10762
10873
|
|
|
10763
10874
|
|
|
10764
10875
|
export { arrayFieldMapper as $, ADDON_ACTION_HANDLERS as A, BUILT_IN_FIELDS as B, CONTAINER_FIELD_PROCESSORS as C, DEFAULT_PROPS as D, EventBus as E, FIELD_REGISTRY as F, GROUP_CONTEXT as G, NoopLogger as H, INITIALIZATION_TIMEOUT_MS as I, PopArrayItemEvent as J, PrependArrayItemEvent as K, PreviousPageEvent as L, MoveArrayItemEvent as M, NextPageEvent as N, RootFormRegistryService as O, PageChangeEvent as P, SubmitEvent as Q, RemoveAtIndexEvent as R, ShiftArrayItemEvent as S, TemplateAddonComponent as T, TextAddonComponent as U, WRAPPER_REGISTRY as V, WRAPPER_AUTO_ASSOCIATIONS as W, applyMetaToElement as X, applyValidator as Y, applyValidators as Z, arrayEvent as _, ADDON_ACTION_REGISTRY as a, textFieldMapper as a$, baseFieldMapper as a0, buildBaseInputs as a1, containerFieldMapper as a2, createField as a3, createFieldResolutionPipe as a4, createHiddenSignal as a5, createRenderReadySignal as a6, createSchemaFromFields as a7, createWrapperChainController as a8, createWrappers as a9, isGroupField as aA, isLeafField as aB, isPageField as aC, isRowField as aD, isSameWrapperChain as aE, isSimplifiedArrayField as aF, isValueBearingField as aG, isValueField as aH, isWrapperTypeDefinition as aI, isWrappersBundle as aJ, logAddonWarnings as aK, mapFieldToInputs as aL, omit as aM, pageFieldMapper as aN, provideAddonActions as aO, provideDynamicForm as aP, resolveDynamicValue as aQ, resolveNextButtonDisabled as aR, resolveNonFieldDisabled as aS, resolveNonFieldHidden as aT, resolveSubmitButtonDisabled as aU, resolveTokens as aV, resolveWrappers as aW, rowFieldMapper as aX, runPresetAction as aY, sanitizeFormConfig as aZ, sanitizeFormConfigPure as a_, derivedFromDeferred as aa, dynamicTextToObservable as ab, evaluateNonFieldDisabled as ac, evaluateNonFieldHidden as ad, field as ae, formConfig as af, formatAddonWarning as ag, getArrayLength as ah, getFieldDefaultValue as ai, getFieldValueHandling as aj, getNormalizedArrayMetadata as ak, groupFieldMapper as al, hasFormValue as am, injectAddonKindRegistry as an, injectFieldRegistry as ao, injectFieldSignalContext as ap, injectFieldsSupportingAddons as aq, interpolateParams as ar, isArrayField as as, isCheckedField as at, isContainerField as au, isContainerTypedField as av, isDisplayOnlyField as aw, isEqual as ax, isFieldBoundContext as ay, isFormStateCondition as az, ADDON_KIND_COMPONENT_CACHE as b, toReadonlyFieldTree as b0, validateFieldAddons as b1, validatePageNesting as b2, walkAndValidateAddons as b3, withCustomAddon as b4, withEventFormValue as b5, withLegacyStatusClasses as b6, withLoggerConfig as b7, withPreviousValue as b8, withValidationExecutionDefaults as b9, withValueExclusionDefaults as ba, wrapperProps as bb, writeToFieldValue as bc, ADDON_KIND_DEFINITIONS as c, ADDON_KIND_REGISTRY as d, ARRAY_CONTEXT as e, AppendArrayItemEvent as f, ArrayItemRegistryService as g, ComponentAddonComponent as h, ComponentInitializedEvent as i, ConsoleLogger as j, DEFAULT_VALIDATION_MESSAGES as k, DEFAULT_WRAPPERS as l, DF_FIELD_TEMPLATES as m, DfAddonSlot as n, DfFieldOutlet as o, DfTemplate as p, DynamicForm as q, DynamicFormError as r, DynamicFormLogger as s, DynamicTextPipe as t, EventDispatcher as u, FIELD_SIGNAL_CONTEXT as v, FORM_OPTIONS as w, FormClearEvent as x, FormResetEvent as y, InsertArrayItemEvent as z };
|
|
10765
|
-
//# sourceMappingURL=ng-forge-dynamic-forms-ng-forge-dynamic-forms-
|
|
10876
|
+
//# sourceMappingURL=ng-forge-dynamic-forms-ng-forge-dynamic-forms-CPkVjU_N.mjs.map
|