@ng-forge/dynamic-forms 1.2.0-next.9 → 1.3.0-next.1
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-6yyDriVB.mjs → ng-forge-dynamic-forms-array-field.component-CSCKq_1K.mjs} +5 -5
- package/fesm2022/{ng-forge-dynamic-forms-array-field.component-6yyDriVB.mjs.map → ng-forge-dynamic-forms-array-field.component-CSCKq_1K.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-BB8jAcY4.mjs → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-CTOTwzzw.mjs} +2 -2
- package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-BB8jAcY4.mjs.map → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-CTOTwzzw.mjs.map} +1 -1
- package/fesm2022/ng-forge-dynamic-forms-bootstrap-web-mcp-BtjqeJOj.mjs +1054 -0
- package/fesm2022/ng-forge-dynamic-forms-bootstrap-web-mcp-BtjqeJOj.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-container-field.component-DfQ0y-77.mjs → ng-forge-dynamic-forms-container-field.component-Dc3ROhHL.mjs} +7 -7
- package/fesm2022/ng-forge-dynamic-forms-container-field.component-Dc3ROhHL.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-css-wrapper.component-D_yRuLpu.mjs → ng-forge-dynamic-forms-css-wrapper.component-BzgX8lAD.mjs} +5 -5
- package/fesm2022/ng-forge-dynamic-forms-css-wrapper.component-BzgX8lAD.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-field-errors-wrapper.component-ZdaC4Bit.mjs → ng-forge-dynamic-forms-field-errors-wrapper.component-CIKbWqYA.mjs} +4 -4
- package/fesm2022/{ng-forge-dynamic-forms-field-errors-wrapper.component-ZdaC4Bit.mjs.map → ng-forge-dynamic-forms-field-errors-wrapper.component-CIKbWqYA.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-form-schema.service-BzbBv-r0.mjs → ng-forge-dynamic-forms-form-schema.service-Dx5Dlb15.mjs} +5 -5
- package/fesm2022/{ng-forge-dynamic-forms-form-schema.service-BzbBv-r0.mjs.map → ng-forge-dynamic-forms-form-schema.service-Dx5Dlb15.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-group-field.component-DxHD5I8E.mjs → ng-forge-dynamic-forms-group-field.component-DAC3P9DC.mjs} +6 -6
- package/fesm2022/{ng-forge-dynamic-forms-group-field.component-DxHD5I8E.mjs.map → ng-forge-dynamic-forms-group-field.component-DAC3P9DC.mjs.map} +1 -1
- package/fesm2022/ng-forge-dynamic-forms-integration.mjs +33 -33
- package/fesm2022/ng-forge-dynamic-forms-internal.mjs +19 -19
- package/fesm2022/ng-forge-dynamic-forms-internal.mjs.map +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-ng-forge-dynamic-forms-tA8ZkP8i.mjs → ng-forge-dynamic-forms-ng-forge-dynamic-forms-CXQe_5td.mjs} +154 -68
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-CXQe_5td.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-page-field.component-DCdBvJ-h.mjs → ng-forge-dynamic-forms-page-field.component-DPKJcwUO.mjs} +5 -5
- package/fesm2022/{ng-forge-dynamic-forms-page-field.component-DCdBvJ-h.mjs.map → ng-forge-dynamic-forms-page-field.component-DPKJcwUO.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-row-wrapper.component-BBWmqQA_.mjs → ng-forge-dynamic-forms-row-wrapper.component-DMEeKZny.mjs} +5 -5
- package/fesm2022/ng-forge-dynamic-forms-row-wrapper.component-DMEeKZny.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-schema-builder-IsjNBo0h.mjs → ng-forge-dynamic-forms-schema-builder-BvDTzfdM.mjs} +2 -2
- package/fesm2022/{ng-forge-dynamic-forms-schema-builder-IsjNBo0h.mjs.map → ng-forge-dynamic-forms-schema-builder-BvDTzfdM.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-text-field.component-C-f80sbk.mjs → ng-forge-dynamic-forms-text-field.component-BB-jutBq.mjs} +4 -4
- package/fesm2022/{ng-forge-dynamic-forms-text-field.component-C-f80sbk.mjs.map → ng-forge-dynamic-forms-text-field.component-BB-jutBq.mjs.map} +1 -1
- package/fesm2022/ng-forge-dynamic-forms.mjs +1 -1
- package/package.json +2 -2
- package/types/ng-forge-dynamic-forms-internal.d.ts +114 -3
- package/types/ng-forge-dynamic-forms.d.ts +157 -4
- package/fesm2022/ng-forge-dynamic-forms-container-field.component-DfQ0y-77.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-css-wrapper.component-D_yRuLpu.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-tA8ZkP8i.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-row-wrapper.component-BBWmqQA_.mjs.map +0 -1
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { InjectionToken, inject, PLATFORM_ID, DestroyRef, Injectable, reflectComponentType, Injector, EnvironmentInjector, computed, signal, afterNextRender, input, ViewContainerRef, Directive, isSignal, runInInjectionContext, untracked, linkedSignal, injectAsync, resource, ChangeDetectionStrategy, Component, PendingTasks, ElementRef, isDevMode, TemplateRef, model, contentChildren, makeEnvironmentProviders } from '@angular/core';
|
|
3
3
|
import { explicitEffect } from 'ngxtension/explicit-effect';
|
|
4
4
|
import { derivedFrom } from 'ngxtension/derived-from';
|
|
5
|
-
import { of, Observable, distinctUntilChanged, forkJoin, from, catchError, map, switchMap, pipe, isObservable, firstValueFrom, exhaustMap, EMPTY, scan, Subject, concatMap, filter, take, shareReplay } from 'rxjs';
|
|
5
|
+
import { of, Observable, distinctUntilChanged, forkJoin, from, catchError, map, switchMap, pipe, isObservable, firstValueFrom, exhaustMap, EMPTY, defer, tap, scan, Subject, concatMap, filter, take, shareReplay } from 'rxjs';
|
|
6
6
|
import { DynamicFormLogger, WRAPPER_COMPONENT_LOAD_CACHE, WRAPPER_COMPONENT_CACHE, WRAPPER_REGISTRY, toReadonlyFieldTreeCached, writeToFieldValue, ComponentInitializedEvent, isPageField, isGroupField, isArrayField, isRowField, isGenericContainerField, hasChildFields, normalizeFieldsArray, WRAPPER_AUTO_ASSOCIATIONS, DEFAULT_WRAPPERS, READONLY_FIELD_TREE_CACHE, EventBus, getGridClassString, FORM_OPTIONS, GROUP_CONTEXT, FIELD_REGISTRY, DynamicFormError, isContainerField, isSimplifiedArrayField, getFieldValueHandling, keyBy, mapValues, isEqual, isDerivationLogicConfig, hasTargetProperty, ARRAY_CONTEXT, FORM_ID_PREFIX, baseFieldMapper, detectFormMode, validatePageNesting, assertNever, FunctionRegistryService, ADDON_TYPE_REGISTRY, deepMergeDefaults, FIELD_SIGNAL_CONTEXT, derivedFromDeferred, FieldContextRegistryService, evaluateCondition, createWarningTracker, RootFormRegistryService, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, EXTERNAL_DATA, DEPRECATION_WARNING_TRACKER, createAddonActionRegistry, ADDON_ACTION_REGISTRY, HttpConditionCache, HTTP_CONDITION_CACHE, HttpConditionFunctionCacheService, AsyncConditionFunctionCacheService, DynamicValueFunctionCacheService, LogicFunctionCacheService, 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';
|
|
7
7
|
import { isPlatformBrowser, AsyncPipe, NgTemplateOutlet, NgComponentOutlet } from '@angular/common';
|
|
8
8
|
import { takeUntilDestroyed, toObservable, outputFromObservable } from '@angular/core/rxjs-interop';
|
|
@@ -120,10 +120,10 @@ class FieldViewportObserver {
|
|
|
120
120
|
this.observers.set(rootMargin, entry);
|
|
121
121
|
return entry;
|
|
122
122
|
}
|
|
123
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
124
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
123
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FieldViewportObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
124
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FieldViewportObserver });
|
|
125
125
|
}
|
|
126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FieldViewportObserver, decorators: [{
|
|
127
127
|
type: Injectable
|
|
128
128
|
}], ctorParameters: () => [] });
|
|
129
129
|
|
|
@@ -747,16 +747,19 @@ class DfFieldOutlet {
|
|
|
747
747
|
return false;
|
|
748
748
|
return (domState?.errors.length ?? 0) === 0;
|
|
749
749
|
}
|
|
750
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
751
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.
|
|
750
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DfFieldOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
751
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.5", type: DfFieldOutlet, isStandalone: true, selector: "[dfFieldOutlet]", inputs: { dfFieldOutlet: { classPropertyName: "dfFieldOutlet", publicName: "dfFieldOutlet", isSignal: true, isRequired: true, transformFunction: null }, dfFieldOutletEnvironmentInjector: { classPropertyName: "dfFieldOutletEnvironmentInjector", publicName: "dfFieldOutletEnvironmentInjector", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
752
752
|
}
|
|
753
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
753
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DfFieldOutlet, decorators: [{
|
|
754
754
|
type: Directive,
|
|
755
755
|
args: [{
|
|
756
756
|
selector: '[dfFieldOutlet]',
|
|
757
757
|
}]
|
|
758
758
|
}], ctorParameters: () => [], propDecorators: { dfFieldOutlet: [{ type: i0.Input, args: [{ isSignal: true, alias: "dfFieldOutlet", required: true }] }], dfFieldOutletEnvironmentInjector: [{ type: i0.Input, args: [{ isSignal: true, alias: "dfFieldOutletEnvironmentInjector", required: false }] }] } });
|
|
759
759
|
|
|
760
|
+
function isPending(formSignal) {
|
|
761
|
+
return formSignal()().pending();
|
|
762
|
+
}
|
|
760
763
|
function isTreeValidationErrors(result) {
|
|
761
764
|
const isError = (v) => typeof v === 'object' && v !== null && 'kind' in v;
|
|
762
765
|
return Array.isArray(result) ? result.every(isError) && result.length > 0 : isError(result);
|
|
@@ -770,25 +773,40 @@ function wrapSubmissionAction(action) {
|
|
|
770
773
|
}
|
|
771
774
|
function createSubmissionHandler(options) {
|
|
772
775
|
const { eventBus, configSignal, formSignal, validSignal, logger } = options;
|
|
773
|
-
return eventBus.on('submit').pipe(exhaustMap(() => {
|
|
776
|
+
return eventBus.on('submit').pipe(exhaustMap((event) => {
|
|
777
|
+
const reply = event.reply;
|
|
778
|
+
reply?.accept();
|
|
774
779
|
const submissionConfig = configSignal().submission;
|
|
775
780
|
if (!submissionConfig?.action) {
|
|
781
|
+
reply?.settle(validSignal() ? { status: 'dispatched' } : { status: 'validation-failed' });
|
|
776
782
|
return EMPTY;
|
|
777
783
|
}
|
|
778
784
|
if (!validSignal()) {
|
|
779
785
|
logger.debug('Submission action skipped: form is not valid (invalid or pending async validators)');
|
|
786
|
+
reply?.settle(isPending(formSignal) ? { status: 'pending-validation' } : { status: 'validation-failed' });
|
|
780
787
|
return EMPTY;
|
|
781
788
|
}
|
|
782
789
|
const wrappedAction = wrapSubmissionAction(submissionConfig.action);
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
return
|
|
786
|
-
|
|
790
|
+
return defer(() => {
|
|
791
|
+
const formTree = formSignal();
|
|
792
|
+
return from(submit(formTree, wrappedAction)).pipe(
|
|
793
|
+
tap(() => {
|
|
794
|
+
reply?.settle(formTree().errorSummary().length ? { status: 'server-errors' } : { status: 'success' });
|
|
795
|
+
}), catchError((error) => {
|
|
796
|
+
logger.error('Submission action failed:', error);
|
|
797
|
+
reply?.settle({ status: 'action-failed', error });
|
|
798
|
+
return EMPTY;
|
|
799
|
+
}));
|
|
800
|
+
});
|
|
787
801
|
}));
|
|
788
802
|
}
|
|
789
803
|
|
|
790
804
|
class FormSubmitEvent {
|
|
805
|
+
reply;
|
|
791
806
|
type = 'submit';
|
|
807
|
+
constructor(reply) {
|
|
808
|
+
this.reply = reply;
|
|
809
|
+
}
|
|
792
810
|
}
|
|
793
811
|
|
|
794
812
|
const COMPONENT_CACHE = new InjectionToken('COMPONENT_CACHE', {
|
|
@@ -1194,10 +1212,10 @@ class ArrayItemRegistryService {
|
|
|
1194
1212
|
slot.clear();
|
|
1195
1213
|
this.slots.clear();
|
|
1196
1214
|
}
|
|
1197
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
1198
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
1215
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ArrayItemRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1216
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ArrayItemRegistryService });
|
|
1199
1217
|
}
|
|
1200
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ArrayItemRegistryService, decorators: [{
|
|
1201
1219
|
type: Injectable
|
|
1202
1220
|
}] });
|
|
1203
1221
|
|
|
@@ -1221,10 +1239,10 @@ class SchemaRegistryService {
|
|
|
1221
1239
|
}
|
|
1222
1240
|
return schema;
|
|
1223
1241
|
}
|
|
1224
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
1225
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
1242
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: SchemaRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1243
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: SchemaRegistryService });
|
|
1226
1244
|
}
|
|
1227
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: SchemaRegistryService, decorators: [{
|
|
1228
1246
|
type: Injectable
|
|
1229
1247
|
}] });
|
|
1230
1248
|
|
|
@@ -2935,7 +2953,7 @@ class FormStateManager {
|
|
|
2935
2953
|
debugName: 'FormStateManager.entity',
|
|
2936
2954
|
equal: isEqual,
|
|
2937
2955
|
});
|
|
2938
|
-
loadFormSchemaService = injectAsync(() => import('./ng-forge-dynamic-forms-form-schema.service-
|
|
2956
|
+
loadFormSchemaService = injectAsync(() => import('./ng-forge-dynamic-forms-form-schema.service-Dx5Dlb15.mjs'));
|
|
2939
2957
|
formSchemaRequest = computed(() => {
|
|
2940
2958
|
const setup = this.formSetup();
|
|
2941
2959
|
const config = this.activeConfig();
|
|
@@ -3261,7 +3279,7 @@ class FormStateManager {
|
|
|
3261
3279
|
setupEffects() {
|
|
3262
3280
|
explicitEffect([this.formSchemaResource.error], ([error]) => {
|
|
3263
3281
|
if (error) {
|
|
3264
|
-
this.logger.error('
|
|
3282
|
+
this.logger.error('Failed to compile the form schema; rendering without validation and blocking submission.', error);
|
|
3265
3283
|
}
|
|
3266
3284
|
});
|
|
3267
3285
|
explicitEffect([this.deps.config], ([config]) => {
|
|
@@ -3414,10 +3432,10 @@ class FormStateManager {
|
|
|
3414
3432
|
ngOnDestroy() {
|
|
3415
3433
|
this.machine.dispatch({ type: Action.Destroy });
|
|
3416
3434
|
}
|
|
3417
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
3418
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
3435
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FormStateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3436
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FormStateManager });
|
|
3419
3437
|
}
|
|
3420
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
3438
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FormStateManager, decorators: [{
|
|
3421
3439
|
type: Injectable
|
|
3422
3440
|
}], ctorParameters: () => [] });
|
|
3423
3441
|
|
|
@@ -3748,8 +3766,8 @@ class PageOrchestratorComponent {
|
|
|
3748
3766
|
}
|
|
3749
3767
|
return false;
|
|
3750
3768
|
}
|
|
3751
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
3752
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
3769
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: PageOrchestratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3770
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: PageOrchestratorComponent, isStandalone: true, selector: "div[page-orchestrator]", inputs: { pageFields: { classPropertyName: "pageFields", publicName: "pageFields", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, fieldSignalContext: { classPropertyName: "fieldSignalContext", publicName: "fieldSignalContext", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.data-current-page": "state().currentPageIndex", "attr.data-total-pages": "state().totalPages" }, classAttribute: "df-page-orchestrator" }, providers: [
|
|
3753
3771
|
{
|
|
3754
3772
|
provide: FIELD_SIGNAL_CONTEXT,
|
|
3755
3773
|
useFactory: (orchestrator) => orchestrator.extendedFieldSignalContext(),
|
|
@@ -3783,10 +3801,10 @@ class PageOrchestratorComponent {
|
|
|
3783
3801
|
}
|
|
3784
3802
|
}
|
|
3785
3803
|
`, isInline: true, styles: [":host{display:block;position:relative;width:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [/* @ts-ignore */
|
|
3786
|
-
import('./ng-forge-dynamic-forms-page-field.component-
|
|
3804
|
+
import('./ng-forge-dynamic-forms-page-field.component-DPKJcwUO.mjs').then(m => m.default)]] });
|
|
3787
3805
|
}
|
|
3788
|
-
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.
|
|
3789
|
-
import('./ng-forge-dynamic-forms-page-field.component-
|
|
3806
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.1.5", ngImport: i0, type: PageOrchestratorComponent, resolveDeferredDeps: () => [/* @ts-ignore */
|
|
3807
|
+
import('./ng-forge-dynamic-forms-page-field.component-DPKJcwUO.mjs').then(m => m.default)], resolveMetadata: PageFieldComponent => ({ decorators: [{
|
|
3790
3808
|
type: Component,
|
|
3791
3809
|
args: [{ selector: 'div[page-orchestrator]', imports: [PageFieldComponent], template: `
|
|
3792
3810
|
@for (page of pageRenderStates(); track page.field.key) {
|
|
@@ -3905,14 +3923,14 @@ function createDerivationRenderGate() {
|
|
|
3905
3923
|
if (!has || engine() !== 'idle')
|
|
3906
3924
|
return;
|
|
3907
3925
|
engine.set('loading');
|
|
3908
|
-
pendingTasks.run(() => import('./ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-
|
|
3926
|
+
pendingTasks.run(() => import('./ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-CTOTwzzw.mjs')
|
|
3909
3927
|
.then(({ bootstrapDerivationOrchestrator }) => {
|
|
3910
3928
|
runInInjectionContext(injector, () => bootstrapDerivationOrchestrator());
|
|
3911
3929
|
engine.set('wired');
|
|
3912
3930
|
})
|
|
3913
3931
|
.catch((error) => {
|
|
3914
3932
|
engine.set('failed');
|
|
3915
|
-
logger.error('
|
|
3933
|
+
logger.error('Failed to load the derivation engine; derivations will not apply.', error);
|
|
3916
3934
|
}));
|
|
3917
3935
|
});
|
|
3918
3936
|
return computed(() => {
|
|
@@ -3923,6 +3941,68 @@ function createDerivationRenderGate() {
|
|
|
3923
3941
|
});
|
|
3924
3942
|
}
|
|
3925
3943
|
|
|
3944
|
+
const WEB_MCP_ENABLED = new InjectionToken('WEB_MCP_ENABLED', {
|
|
3945
|
+
providedIn: 'root',
|
|
3946
|
+
factory: () => false,
|
|
3947
|
+
});
|
|
3948
|
+
|
|
3949
|
+
const WEB_MCP_GATE = new InjectionToken('WEB_MCP_GATE');
|
|
3950
|
+
function createWebMcpGate() {
|
|
3951
|
+
const enabled = inject(WEB_MCP_ENABLED);
|
|
3952
|
+
const isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
|
|
3953
|
+
const stateManager = inject(FormStateManager);
|
|
3954
|
+
const injector = inject(Injector);
|
|
3955
|
+
const destroyRef = inject(DestroyRef);
|
|
3956
|
+
const logger = inject(DynamicFormLogger);
|
|
3957
|
+
if (!enabled || !isBrowser)
|
|
3958
|
+
return computed(() => 'disabled');
|
|
3959
|
+
const registration = computed(() => {
|
|
3960
|
+
const options = stateManager.effectiveFormOptions().webMcp;
|
|
3961
|
+
return options ? { options: options, setup: stateManager.formSetup() } : undefined;
|
|
3962
|
+
}, /* @ts-ignore */
|
|
3963
|
+
...(ngDevMode ? [{ debugName: "registration" }] : /* istanbul ignore next */ []));
|
|
3964
|
+
const status = signal('idle', /* @ts-ignore */
|
|
3965
|
+
...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
3966
|
+
let epoch;
|
|
3967
|
+
let epochId = 0;
|
|
3968
|
+
const closeEpoch = () => {
|
|
3969
|
+
epoch?.abort();
|
|
3970
|
+
epoch = undefined;
|
|
3971
|
+
};
|
|
3972
|
+
destroyRef.onDestroy(closeEpoch);
|
|
3973
|
+
explicitEffect([registration], ([input]) => {
|
|
3974
|
+
closeEpoch();
|
|
3975
|
+
epochId += 1;
|
|
3976
|
+
const thisEpoch = epochId;
|
|
3977
|
+
if (!input) {
|
|
3978
|
+
status.set('idle');
|
|
3979
|
+
return;
|
|
3980
|
+
}
|
|
3981
|
+
const controller = new AbortController();
|
|
3982
|
+
epoch = controller;
|
|
3983
|
+
status.set('registering');
|
|
3984
|
+
void import('./ng-forge-dynamic-forms-bootstrap-web-mcp-BtjqeJOj.mjs')
|
|
3985
|
+
.then(({ bootstrapWebMcp }) => {
|
|
3986
|
+
if (thisEpoch !== epochId || controller.signal.aborted)
|
|
3987
|
+
return;
|
|
3988
|
+
return runInInjectionContext(injector, () => bootstrapWebMcp(input.options, controller.signal));
|
|
3989
|
+
})
|
|
3990
|
+
.then((result) => {
|
|
3991
|
+
if (thisEpoch !== epochId || controller.signal.aborted)
|
|
3992
|
+
return;
|
|
3993
|
+
if (result)
|
|
3994
|
+
status.set(result);
|
|
3995
|
+
})
|
|
3996
|
+
.catch((error) => {
|
|
3997
|
+
if (thisEpoch !== epochId)
|
|
3998
|
+
return;
|
|
3999
|
+
status.set('failed');
|
|
4000
|
+
logger.error('Failed to load the WebMCP registrar; this form will not be exposed to agents.', error);
|
|
4001
|
+
});
|
|
4002
|
+
});
|
|
4003
|
+
return status.asReadonly();
|
|
4004
|
+
}
|
|
4005
|
+
|
|
3926
4006
|
const FORM_INITIALIZER = new InjectionToken('FORM_INITIALIZER');
|
|
3927
4007
|
|
|
3928
4008
|
const AUTO_ID_PREFIX = 'df-';
|
|
@@ -3955,10 +4035,10 @@ class DynamicFormInstanceRegistry {
|
|
|
3955
4035
|
this.slots.delete(Number(id.slice(AUTO_ID_PREFIX.length)));
|
|
3956
4036
|
this._membership.update((m) => m + 1);
|
|
3957
4037
|
}
|
|
3958
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
3959
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
4038
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DynamicFormInstanceRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4039
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DynamicFormInstanceRegistry, providedIn: 'root' });
|
|
3960
4040
|
}
|
|
3961
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4041
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DynamicFormInstanceRegistry, decorators: [{
|
|
3962
4042
|
type: Injectable,
|
|
3963
4043
|
args: [{ providedIn: 'root' }]
|
|
3964
4044
|
}] });
|
|
@@ -4009,10 +4089,10 @@ class FormIdPrefixService {
|
|
|
4009
4089
|
});
|
|
4010
4090
|
}
|
|
4011
4091
|
}
|
|
4012
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
4013
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
4092
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FormIdPrefixService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4093
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FormIdPrefixService });
|
|
4014
4094
|
}
|
|
4015
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4095
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: FormIdPrefixService, decorators: [{
|
|
4016
4096
|
type: Injectable
|
|
4017
4097
|
}], ctorParameters: () => [] });
|
|
4018
4098
|
|
|
@@ -4105,6 +4185,7 @@ function provideDynamicFormDI() {
|
|
|
4105
4185
|
...asyncExpressionProviders(),
|
|
4106
4186
|
...propertyDerivationProviders(),
|
|
4107
4187
|
...derivationProviders(),
|
|
4188
|
+
{ provide: WEB_MCP_GATE, useFactory: createWebMcpGate },
|
|
4108
4189
|
];
|
|
4109
4190
|
}
|
|
4110
4191
|
|
|
@@ -4119,10 +4200,10 @@ class EventDispatcher {
|
|
|
4119
4200
|
disconnect() {
|
|
4120
4201
|
this.bus = undefined;
|
|
4121
4202
|
}
|
|
4122
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
4123
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
4203
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: EventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4204
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: EventDispatcher });
|
|
4124
4205
|
}
|
|
4125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: EventDispatcher, decorators: [{
|
|
4126
4207
|
type: Injectable
|
|
4127
4208
|
}] });
|
|
4128
4209
|
|
|
@@ -4130,10 +4211,10 @@ class DfTemplate {
|
|
|
4130
4211
|
dfTemplate = input.required(/* @ts-ignore */
|
|
4131
4212
|
...(ngDevMode ? [{ debugName: "dfTemplate" }] : /* istanbul ignore next */ []));
|
|
4132
4213
|
templateRef = inject(TemplateRef);
|
|
4133
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
4134
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.
|
|
4214
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DfTemplate, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4215
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.5", type: DfTemplate, isStandalone: true, selector: "ng-template[dfTemplate]", inputs: { dfTemplate: { classPropertyName: "dfTemplate", publicName: "dfTemplate", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["dfTemplate"], ngImport: i0 });
|
|
4135
4216
|
}
|
|
4136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DfTemplate, decorators: [{
|
|
4137
4218
|
type: Directive,
|
|
4138
4219
|
args: [{
|
|
4139
4220
|
selector: 'ng-template[dfTemplate]',
|
|
@@ -4147,10 +4228,10 @@ class DfFieldTemplateRegistry {
|
|
|
4147
4228
|
set(value) {
|
|
4148
4229
|
this._map.set(value);
|
|
4149
4230
|
}
|
|
4150
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
4151
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
4231
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DfFieldTemplateRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4232
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DfFieldTemplateRegistry });
|
|
4152
4233
|
}
|
|
4153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DfFieldTemplateRegistry, decorators: [{
|
|
4154
4235
|
type: Injectable
|
|
4155
4236
|
}] });
|
|
4156
4237
|
|
|
@@ -4196,6 +4277,7 @@ class DynamicForm {
|
|
|
4196
4277
|
derivationReady = inject(DERIVATION_RENDER_GATE);
|
|
4197
4278
|
shouldRender = computed(() => this.stateManager.shouldRender() && this.stateManager.formSchemaReady() && this.derivationReady(), /* @ts-ignore */
|
|
4198
4279
|
...(ngDevMode ? [{ debugName: "shouldRender" }] : /* istanbul ignore next */ []));
|
|
4280
|
+
webMcpStatus = inject(WEB_MCP_GATE);
|
|
4199
4281
|
resolvedFields = this.stateManager.resolvedFields;
|
|
4200
4282
|
fieldWindowing = computed(() => resolveFieldWindowing(this.globalFieldWindowing, this.effectiveFormOptions()?.fieldWindowing), /* @ts-ignore */
|
|
4201
4283
|
...(ngDevMode ? [{ debugName: "fieldWindowing" }] : /* istanbul ignore next */ []));
|
|
@@ -4308,8 +4390,8 @@ class DynamicForm {
|
|
|
4308
4390
|
error: (err) => this.logger.error('Submission handler error', err),
|
|
4309
4391
|
});
|
|
4310
4392
|
}
|
|
4311
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
4312
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
4393
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DynamicForm, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4394
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", 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", activePageInitialized: "activePageInitialized", 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: [
|
|
4313
4395
|
provideDynamicFormDI(),
|
|
4314
4396
|
DfFieldTemplateRegistry,
|
|
4315
4397
|
{ provide: DF_FIELD_TEMPLATES, useFactory: () => inject(DfFieldTemplateRegistry).map },
|
|
@@ -4348,7 +4430,7 @@ class DynamicForm {
|
|
|
4348
4430
|
}
|
|
4349
4431
|
`, isInline: true, 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}.df-field-placeholder{display:block}\n"], dependencies: [{ kind: "directive", type: DfFieldOutlet, selector: "[dfFieldOutlet]", inputs: ["dfFieldOutlet", "dfFieldOutletEnvironmentInjector"] }, { kind: "component", type: PageOrchestratorComponent, selector: "div[page-orchestrator]", inputs: ["pageFields", "form", "fieldSignalContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [DfFieldOutlet]] });
|
|
4350
4432
|
}
|
|
4351
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: DynamicForm, decorators: [{
|
|
4352
4434
|
type: Component,
|
|
4353
4435
|
args: [{ selector: 'form[dynamic-form]', imports: [DfFieldOutlet, PageOrchestratorComponent], template: `
|
|
4354
4436
|
@if (shouldRender()) {
|
|
@@ -4444,35 +4526,35 @@ const DISPLAY_FIELD_TYPES_BASE = {
|
|
|
4444
4526
|
const BUILT_IN_FIELDS = [
|
|
4445
4527
|
{
|
|
4446
4528
|
name: 'row',
|
|
4447
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-
|
|
4529
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-Dc3ROhHL.mjs'),
|
|
4448
4530
|
mapper: rowFieldMapper,
|
|
4449
4531
|
valueHandling: 'flatten',
|
|
4450
4532
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
4451
4533
|
},
|
|
4452
4534
|
{
|
|
4453
4535
|
name: 'group',
|
|
4454
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-group-field.component-
|
|
4536
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-group-field.component-DAC3P9DC.mjs'),
|
|
4455
4537
|
mapper: groupFieldMapper,
|
|
4456
4538
|
valueHandling: 'include',
|
|
4457
4539
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
4458
4540
|
},
|
|
4459
4541
|
{
|
|
4460
4542
|
name: 'array',
|
|
4461
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-array-field.component-
|
|
4543
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-array-field.component-CSCKq_1K.mjs'),
|
|
4462
4544
|
mapper: arrayFieldMapper,
|
|
4463
4545
|
valueHandling: 'include',
|
|
4464
4546
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
4465
4547
|
},
|
|
4466
4548
|
{
|
|
4467
4549
|
name: 'page',
|
|
4468
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-page-field.component-
|
|
4550
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-page-field.component-DPKJcwUO.mjs'),
|
|
4469
4551
|
mapper: pageFieldMapper,
|
|
4470
4552
|
valueHandling: 'flatten',
|
|
4471
4553
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
4472
4554
|
},
|
|
4473
4555
|
{
|
|
4474
4556
|
name: 'text',
|
|
4475
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-text-field.component-
|
|
4557
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-text-field.component-BB-jutBq.mjs'),
|
|
4476
4558
|
mapper: textFieldMapper,
|
|
4477
4559
|
valueHandling: 'exclude',
|
|
4478
4560
|
...DISPLAY_FIELD_TYPES_BASE,
|
|
@@ -4483,7 +4565,7 @@ const BUILT_IN_FIELDS = [
|
|
|
4483
4565
|
},
|
|
4484
4566
|
{
|
|
4485
4567
|
name: 'container',
|
|
4486
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-
|
|
4568
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-container-field.component-Dc3ROhHL.mjs'),
|
|
4487
4569
|
mapper: containerFieldMapper,
|
|
4488
4570
|
valueHandling: 'flatten',
|
|
4489
4571
|
...CONTAINER_FIELD_TYPES_BASE,
|
|
@@ -4492,15 +4574,15 @@ const BUILT_IN_FIELDS = [
|
|
|
4492
4574
|
const BUILT_IN_WRAPPERS = [
|
|
4493
4575
|
{
|
|
4494
4576
|
wrapperName: 'css',
|
|
4495
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-css-wrapper.component-
|
|
4577
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-css-wrapper.component-BzgX8lAD.mjs'),
|
|
4496
4578
|
},
|
|
4497
4579
|
{
|
|
4498
4580
|
wrapperName: 'row',
|
|
4499
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-row-wrapper.component-
|
|
4581
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-row-wrapper.component-DMEeKZny.mjs'),
|
|
4500
4582
|
},
|
|
4501
4583
|
{
|
|
4502
4584
|
wrapperName: 'field-errors',
|
|
4503
|
-
loadComponent: () => import('./ng-forge-dynamic-forms-field-errors-wrapper.component-
|
|
4585
|
+
loadComponent: () => import('./ng-forge-dynamic-forms-field-errors-wrapper.component-CIKbWqYA.mjs'),
|
|
4504
4586
|
rendersFieldErrors: true,
|
|
4505
4587
|
},
|
|
4506
4588
|
];
|
|
@@ -4709,6 +4791,10 @@ function withFieldWindowing(config) {
|
|
|
4709
4791
|
return createFeature('field-windowing', [{ provide: FIELD_WINDOWING, useValue: resolved }]);
|
|
4710
4792
|
}
|
|
4711
4793
|
|
|
4794
|
+
function withExperimentalWebMcp() {
|
|
4795
|
+
return createFeature('web-mcp', [{ provide: WEB_MCP_ENABLED, useValue: true }]);
|
|
4796
|
+
}
|
|
4797
|
+
|
|
4712
4798
|
const VALIDATION_EXECUTION_DEFAULTS = new InjectionToken('VALIDATION_EXECUTION_DEFAULTS', {
|
|
4713
4799
|
providedIn: 'root',
|
|
4714
4800
|
factory: () => ({
|
|
@@ -4736,10 +4822,10 @@ class TextAddonComponent {
|
|
|
4736
4822
|
...(ngDevMode ? [{ debugName: "addon" }] : /* istanbul ignore next */ []));
|
|
4737
4823
|
fieldInputs = input(/* @ts-ignore */
|
|
4738
4824
|
...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
|
|
4739
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
4740
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.
|
|
4825
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: TextAddonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4826
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.5", type: TextAddonComponent, isStandalone: true, selector: "df-text-addon", inputs: { addon: { classPropertyName: "addon", publicName: "addon", isSignal: true, isRequired: true, transformFunction: null }, fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-hidden": "\"true\"" } }, ngImport: i0, template: `<span>{{ addon().text | dynamicText | async }}</span>`, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4741
4827
|
}
|
|
4742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4828
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: TextAddonComponent, decorators: [{
|
|
4743
4829
|
type: Component,
|
|
4744
4830
|
args: [{
|
|
4745
4831
|
selector: 'df-text-addon',
|
|
@@ -4779,14 +4865,14 @@ class TemplateAddonComponent {
|
|
|
4779
4865
|
}
|
|
4780
4866
|
});
|
|
4781
4867
|
}
|
|
4782
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
4783
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
4868
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: TemplateAddonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4869
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: TemplateAddonComponent, isStandalone: true, selector: "df-template-addon", inputs: { addon: { classPropertyName: "addon", publicName: "addon", isSignal: true, isRequired: true, transformFunction: null }, fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
4784
4870
|
@if (template(); as tpl) {
|
|
4785
4871
|
<ng-container *ngTemplateOutlet="tpl; context: outletContext()" />
|
|
4786
4872
|
}
|
|
4787
4873
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4788
4874
|
}
|
|
4789
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4875
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: TemplateAddonComponent, decorators: [{
|
|
4790
4876
|
type: Component,
|
|
4791
4877
|
args: [{
|
|
4792
4878
|
selector: 'df-template-addon',
|
|
@@ -4834,14 +4920,14 @@ class ComponentAddonComponent {
|
|
|
4834
4920
|
});
|
|
4835
4921
|
});
|
|
4836
4922
|
}
|
|
4837
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
4838
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
4923
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ComponentAddonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4924
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: ComponentAddonComponent, isStandalone: true, selector: "df-component-addon", inputs: { addon: { classPropertyName: "addon", publicName: "addon", isSignal: true, isRequired: true, transformFunction: null }, fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
4839
4925
|
@if (resolvedComponent(); as cmp) {
|
|
4840
4926
|
<ng-container *ngComponentOutlet="cmp; inputs: inputs()" />
|
|
4841
4927
|
}
|
|
4842
4928
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4843
4929
|
}
|
|
4844
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
4930
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ComponentAddonComponent, decorators: [{
|
|
4845
4931
|
type: Component,
|
|
4846
4932
|
args: [{
|
|
4847
4933
|
selector: 'df-component-addon',
|
|
@@ -5043,5 +5129,5 @@ function arrayEvent(arrayKey) {
|
|
|
5043
5129
|
|
|
5044
5130
|
|
|
5045
5131
|
|
|
5046
|
-
export { arrayEvent as $, ArrayItemRegistryService as A, BUILT_IN_FIELDS as B, CONTAINER_FIELD_PROCESSORS as C, DfFieldOutlet as D,
|
|
5047
|
-
//# sourceMappingURL=ng-forge-dynamic-forms-ng-forge-dynamic-forms-
|
|
5132
|
+
export { arrayEvent as $, ArrayItemRegistryService as A, BUILT_IN_FIELDS as B, CONTAINER_FIELD_PROCESSORS as C, DfFieldOutlet as D, ConsoleLogger as E, FIELD_WINDOWING as F, DfTemplate as G, DynamicForm as H, EventDispatcher as I, FormClearEvent as J, FormResetEvent as K, GoToPageEvent as L, InsertArrayItemEvent as M, MoveArrayItemEvent as N, NextPageEvent as O, PROPERTY_OVERRIDE_STORE as P, PageChangeEvent as Q, PagerStateEvent as R, SchemaRegistryService as S, PopArrayItemEvent as T, PrependArrayItemEvent as U, VALIDATION_EXECUTION_DEFAULTS as V, PreviousPageEvent as W, RemoveAtIndexEvent as X, ShiftArrayItemEvent as Y, TemplateAddonComponent as Z, TextAddonComponent as _, createFieldResolutionPipe as a, createWrappers as a0, isWrappersBundle as a1, provideDynamicForm as a2, sanitizeFormConfig as a3, withAddonActions as a4, withCustomAddon as a5, withEventFormValue as a6, withExperimentalWebMcp as a7, withFieldWindowing as a8, withLegacyStatusClasses as a9, withLoggerConfig as aa, withPagePreload as ab, withValidationExecutionDefaults as ac, withValueExclusionDefaults as ad, wrapperProps as ae, isSameWrapperChain as b, computeContainerHostClasses as c, initializationComponentPath as d, createWrapperChainController as e, createHiddenSignal as f, createRenderReadySignal as g, getNormalizedArrayMetadata as h, injectFieldRegistry as i, emitComponentInitialized as j, getFieldDefaultValue as k, resolveFieldWindowing as l, mapFieldToInputs as m, collectInitializingContainerKeys as n, ActivePageInitializedEvent as o, initializationComponentKey as p, DEV_MODE as q, resolveWrappers as r, setupContainerInitEffect as s, traverseFieldsWithContext as t, DERIVATION_WARNING_TRACKER as u, FormStateManager as v, DERIVATION_LOG_CONFIG as w, FormSubmitEvent as x, AppendArrayItemEvent as y, ComponentAddonComponent as z };
|
|
5133
|
+
//# sourceMappingURL=ng-forge-dynamic-forms-ng-forge-dynamic-forms-CXQe_5td.mjs.map
|