@ng-forge/dynamic-forms 0.10.0-next.3 → 1.0.0-rc.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-D6GEsH72.mjs → ng-forge-dynamic-forms-array-field.component-By12r5Cj.mjs} +49 -27
- package/fesm2022/ng-forge-dynamic-forms-array-field.component-By12r5Cj.mjs.map +1 -0
- package/fesm2022/ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-QJzwEYSj.mjs +2347 -0
- package/fesm2022/ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-QJzwEYSj.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-container-field.component-BluTT44A.mjs → ng-forge-dynamic-forms-container-field.component-BGFguOa9.mjs} +23 -14
- package/fesm2022/ng-forge-dynamic-forms-container-field.component-BGFguOa9.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-container-utils-diYAWMa_.mjs → ng-forge-dynamic-forms-container-utils-BZFz6ztF.mjs} +4 -3
- package/fesm2022/ng-forge-dynamic-forms-container-utils-BZFz6ztF.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-css-wrapper.component-CgMQOaG7.mjs → ng-forge-dynamic-forms-css-wrapper.component-AScQAJTQ.mjs} +9 -7
- package/fesm2022/ng-forge-dynamic-forms-css-wrapper.component-AScQAJTQ.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-emit-initialization-CB86IMsQ.mjs → ng-forge-dynamic-forms-emit-initialization-DhHwU6FJ.mjs} +2 -2
- package/fesm2022/ng-forge-dynamic-forms-emit-initialization-DhHwU6FJ.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-group-field.component-2bWHql4u.mjs → ng-forge-dynamic-forms-group-field.component-Bz4GD8Hy.mjs} +43 -24
- package/fesm2022/ng-forge-dynamic-forms-group-field.component-Bz4GD8Hy.mjs.map +1 -0
- package/fesm2022/ng-forge-dynamic-forms-integration.mjs +130 -85
- package/fesm2022/ng-forge-dynamic-forms-integration.mjs.map +1 -1
- package/fesm2022/ng-forge-dynamic-forms-internal.mjs +3374 -0
- package/fesm2022/ng-forge-dynamic-forms-internal.mjs.map +1 -0
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-DTkMZcnb.mjs +5425 -0
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-DTkMZcnb.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-page-field.component-zF-vEv5V.mjs → ng-forge-dynamic-forms-page-field.component-CjCd5Byo.mjs} +27 -16
- package/fesm2022/ng-forge-dynamic-forms-page-field.component-CjCd5Byo.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-row-wrapper.component-CwkYn5yl.mjs → ng-forge-dynamic-forms-row-wrapper.component-BlVa801t.mjs} +6 -5
- package/fesm2022/ng-forge-dynamic-forms-row-wrapper.component-BlVa801t.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-text-field.component-_8_vVeH0.mjs → ng-forge-dynamic-forms-text-field.component-CNCpmf5_.mjs} +19 -12
- package/fesm2022/ng-forge-dynamic-forms-text-field.component-CNCpmf5_.mjs.map +1 -0
- package/fesm2022/ng-forge-dynamic-forms.mjs +2 -1
- package/fesm2022/ng-forge-dynamic-forms.mjs.map +1 -1
- package/package.json +17 -4
- package/schematics/collection.json +10 -0
- package/schematics/generators.json +12 -0
- package/schematics/ng-add/index.js +87 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/nx-wrapper.js +5 -0
- package/schematics/ng-add/nx-wrapper.js.map +1 -0
- package/schematics/ng-add/recipes.js +60 -0
- package/schematics/ng-add/recipes.js.map +1 -0
- package/schematics/ng-add/rules/add-packages.js +73 -0
- package/schematics/ng-add/rules/add-packages.js.map +1 -0
- package/schematics/ng-add/rules/add-providers.js +132 -0
- package/schematics/ng-add/rules/add-providers.js.map +1 -0
- package/schematics/ng-add/rules/add-styles.js +123 -0
- package/schematics/ng-add/rules/add-styles.js.map +1 -0
- package/schematics/ng-add/schema.json +48 -0
- package/schematics/package.json +1 -0
- package/schematics/versions.js +33 -0
- package/schematics/versions.js.map +1 -0
- package/types/ng-forge-dynamic-forms-integration.d.ts +4 -2
- package/types/ng-forge-dynamic-forms-internal.d.ts +3508 -0
- package/types/ng-forge-dynamic-forms.d.ts +16 -2734
- package/fesm2022/ng-forge-dynamic-forms-array-field.component-D6GEsH72.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-container-field.component-BluTT44A.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-container-utils-diYAWMa_.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-css-wrapper.component-CgMQOaG7.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-emit-initialization-CB86IMsQ.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-group-field.component-2bWHql4u.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-CPkVjU_N.mjs +0 -10876
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-CPkVjU_N.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-page-field.component-zF-vEv5V.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-row-wrapper.component-CwkYn5yl.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-text-field.component-_8_vVeH0.mjs.map +0 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, computed, signal, Injector, isDevMode, afterRenderEffect, input, Directive, untracked, InjectionToken, ElementRef, EnvironmentInjector, runInInjectionContext } from '@angular/core';
|
|
3
|
-
import { injectFieldSignalContext, omit, buildBaseInputs, DEFAULT_PROPS,
|
|
4
|
-
export {
|
|
3
|
+
import { injectFieldSignalContext, omit, buildBaseInputs, DEFAULT_PROPS, RootFormRegistryService, ARRAY_CONTEXT, FORM_OPTIONS, dynamicTextToObservable, interpolateParams, isEqual, applyMetaToElement, DEFAULT_VALIDATION_MESSAGES, EventBus, resolveTokens, resolveDynamicValue, writeToFieldValue } from '@ng-forge/dynamic-forms/internal';
|
|
4
|
+
export { ARRAY_CONTEXT, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, DEFAULT_WRAPPERS, DynamicTextPipe, EventBus, FIELD_REGISTRY, FIELD_SIGNAL_CONTEXT, FORM_OPTIONS, GROUP_CONTEXT, INITIALIZATION_TIMEOUT_MS, RootFormRegistryService, applyMetaToElement, applyValidator, applyValidators, arrayFieldMapper, baseFieldMapper, buildBaseInputs, containerFieldMapper, dynamicTextToObservable, getArrayLength, groupFieldMapper, injectFieldSignalContext, interpolateParams, isEqual, pageFieldMapper, resolveDynamicValue, resolveTokens, rowFieldMapper, textFieldMapper, toReadonlyFieldTree, withPreviousValue, writeToFieldValue } from '@ng-forge/dynamic-forms/internal';
|
|
5
|
+
import { resolveNonFieldHidden, resolveNonFieldDisabled, DynamicFormLogger, AppendArrayItemEvent, PrependArrayItemEvent, InsertArrayItemEvent, RemoveAtIndexEvent, PopArrayItemEvent, ShiftArrayItemEvent, resolveSubmitButtonDisabled, resolveNextButtonDisabled, NextPageEvent, PreviousPageEvent, ADDON_ACTION_REGISTRY } from '@ng-forge/dynamic-forms';
|
|
6
|
+
export { ADDON_ACTION_HANDLERS, ADDON_ACTION_REGISTRY, ADDON_KIND_COMPONENT_CACHE, ADDON_KIND_DEFINITIONS, ADDON_KIND_REGISTRY, BUILT_IN_FIELDS, createWrappers, injectAddonKindRegistry, injectFieldsSupportingAddons, isWrappersBundle, resolveNonFieldDisabled, resolveNonFieldHidden, runPresetAction, wrapperProps } from '@ng-forge/dynamic-forms';
|
|
5
7
|
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
6
8
|
import { combineLatest, of } from 'rxjs';
|
|
7
9
|
import { switchMap, map } from 'rxjs/operators';
|
|
@@ -196,7 +198,8 @@ function resolveArrayButtonContext(fieldKey, buttonType, explicitArrayKey) {
|
|
|
196
198
|
if (!arrayContext)
|
|
197
199
|
return -1;
|
|
198
200
|
return arrayContext.index();
|
|
199
|
-
},
|
|
201
|
+
}, /* @ts-ignore */
|
|
202
|
+
...(ngDevMode ? [{ debugName: "indexSignal" }] : /* istanbul ignore next */ []));
|
|
200
203
|
return {
|
|
201
204
|
targetArrayKey,
|
|
202
205
|
indexSignal,
|
|
@@ -320,12 +323,14 @@ function submitButtonFieldMapper(fieldDef) {
|
|
|
320
323
|
return computed(() => {
|
|
321
324
|
const baseInputs = buildBaseInputs(fieldDef, defaultProps());
|
|
322
325
|
const rootForm = rootFormRegistry.rootForm();
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
326
|
+
const disabled = rootForm
|
|
327
|
+
? resolveSubmitButtonDisabled({
|
|
328
|
+
form: rootForm,
|
|
329
|
+
formOptions: formOptions(),
|
|
330
|
+
fieldLogic: fieldWithLogic.logic,
|
|
331
|
+
explicitlyDisabled: fieldDef.disabled,
|
|
332
|
+
})()
|
|
333
|
+
: (fieldDef.disabled ?? false);
|
|
329
334
|
const inputs = {
|
|
330
335
|
...baseInputs,
|
|
331
336
|
props: { ...fieldDef.props, type: 'submit' },
|
|
@@ -391,12 +396,15 @@ function previousButtonFieldMapper(fieldDef) {
|
|
|
391
396
|
|
|
392
397
|
function createResolvedErrorsSignal(field, validationMessages, defaultValidationMessages = signal(undefined), injector = inject(Injector)) {
|
|
393
398
|
const logger = injector.get(DynamicFormLogger);
|
|
394
|
-
const messages = computed(() => validationMessages() ?? {},
|
|
395
|
-
|
|
399
|
+
const messages = computed(() => validationMessages() ?? {}, /* @ts-ignore */
|
|
400
|
+
...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
|
|
401
|
+
const defaultMessages = computed(() => defaultValidationMessages() ?? {}, /* @ts-ignore */
|
|
402
|
+
...(ngDevMode ? [{ debugName: "defaultMessages" }] : /* istanbul ignore next */ []));
|
|
396
403
|
const errors = computed(() => {
|
|
397
404
|
const control = field()();
|
|
398
405
|
return control.errors();
|
|
399
|
-
},
|
|
406
|
+
}, /* @ts-ignore */
|
|
407
|
+
...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
|
|
400
408
|
const errors$ = toObservable(errors, { injector });
|
|
401
409
|
const messages$ = toObservable(messages, { injector });
|
|
402
410
|
const defaultMessages$ = toObservable(defaultMessages, { injector });
|
|
@@ -450,8 +458,8 @@ function applyTrackedAttrsToTargets(elementRef, computeAttrs, options = {}) {
|
|
|
450
458
|
const attrs = computeAttrs();
|
|
451
459
|
const selector = (typeof options.selector === 'function' ? options.selector() : options.selector)?.trim() || undefined;
|
|
452
460
|
const selectorChanged = selector !== cachedSelector;
|
|
453
|
-
const
|
|
454
|
-
|
|
461
|
+
const prevDeps = previousDeps;
|
|
462
|
+
const depsChanged = !!currentDeps && (!prevDeps || currentDeps.length !== prevDeps.length || currentDeps.some((d, i) => d !== prevDeps[i]));
|
|
455
463
|
if (selectorChanged || depsChanged || cachedTargets.length === 0) {
|
|
456
464
|
cachedSelector = selector;
|
|
457
465
|
cachedTargets = selector ? Array.from(elementRef.nativeElement.querySelectorAll(selector)) : [elementRef.nativeElement];
|
|
@@ -506,12 +514,14 @@ function createAriaDescribedBySignal(errorsToDisplay, errorId, hintId, hasHint)
|
|
|
506
514
|
|
|
507
515
|
|
|
508
516
|
class NgForgeFieldShell {
|
|
509
|
-
key = input.required(
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
}
|
|
514
|
-
i0.ɵɵ
|
|
517
|
+
key = input.required(/* @ts-ignore */
|
|
518
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
519
|
+
className = input('', /* @ts-ignore */
|
|
520
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
521
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeFieldShell, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
522
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.0", type: NgForgeFieldShell, isStandalone: true, inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "key()", "attr.data-testid": "key()", "class": "className()" } }, ngImport: i0 });
|
|
523
|
+
}
|
|
524
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeFieldShell, decorators: [{
|
|
515
525
|
type: Directive,
|
|
516
526
|
args: [{
|
|
517
527
|
host: {
|
|
@@ -527,28 +537,41 @@ class NgForgeField {
|
|
|
527
537
|
shell = inject(NgForgeFieldShell);
|
|
528
538
|
key = this.shell.key;
|
|
529
539
|
className = this.shell.className;
|
|
530
|
-
field = input.required(
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
540
|
+
field = input.required(/* @ts-ignore */
|
|
541
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
542
|
+
label = input(/* @ts-ignore */
|
|
543
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
544
|
+
placeholder = input(/* @ts-ignore */
|
|
545
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
546
|
+
tabIndex = input(/* @ts-ignore */
|
|
547
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
548
|
+
props = input(/* @ts-ignore */
|
|
549
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
550
|
+
meta = input(/* @ts-ignore */
|
|
551
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
552
|
+
validationMessages = input(/* @ts-ignore */
|
|
553
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
537
554
|
defaultValidationMessages = inject(DEFAULT_VALIDATION_MESSAGES, { optional: true }) ?? signal(undefined);
|
|
538
555
|
errors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
539
556
|
showErrors = shouldShowErrors(this.field);
|
|
540
|
-
errorsToDisplay = computed(() => (this.showErrors() ? this.errors() : []),
|
|
541
|
-
|
|
542
|
-
|
|
557
|
+
errorsToDisplay = computed(() => (this.showErrors() ? this.errors() : []), /* @ts-ignore */
|
|
558
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplay" }] : /* istanbul ignore next */ []));
|
|
559
|
+
errorId = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
560
|
+
...(ngDevMode ? [{ debugName: "errorId" }] : /* istanbul ignore next */ []));
|
|
561
|
+
hintId = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
562
|
+
...(ngDevMode ? [{ debugName: "hintId" }] : /* istanbul ignore next */ []));
|
|
543
563
|
ariaInvalid = computed(() => {
|
|
544
564
|
const state = this.field()();
|
|
545
565
|
return state.invalid() && state.touched();
|
|
546
|
-
},
|
|
566
|
+
}, /* @ts-ignore */
|
|
567
|
+
...(ngDevMode ? [{ debugName: "ariaInvalid" }] : /* istanbul ignore next */ []));
|
|
547
568
|
ariaRequired = computed(() => {
|
|
548
569
|
return this.field()().required?.() === true ? true : null;
|
|
549
|
-
},
|
|
570
|
+
}, /* @ts-ignore */
|
|
571
|
+
...(ngDevMode ? [{ debugName: "ariaRequired" }] : /* istanbul ignore next */ []));
|
|
550
572
|
ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => Boolean(this.props()?.hint));
|
|
551
|
-
_claimed = signal(false,
|
|
573
|
+
_claimed = signal(false, /* @ts-ignore */
|
|
574
|
+
...(ngDevMode ? [{ debugName: "_claimed" }] : /* istanbul ignore next */ []));
|
|
552
575
|
markClaimed() {
|
|
553
576
|
this._claimed.set(true);
|
|
554
577
|
}
|
|
@@ -580,10 +603,10 @@ class NgForgeField {
|
|
|
580
603
|
});
|
|
581
604
|
}
|
|
582
605
|
}
|
|
583
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
584
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
606
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeField, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
607
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.0", type: NgForgeField, isStandalone: true, inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hidden": "field()().hidden() || null", "attr.aria-disabled": "field()().disabled() || null" } }, ngImport: i0 });
|
|
585
608
|
}
|
|
586
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeField, decorators: [{
|
|
587
610
|
type: Directive,
|
|
588
611
|
args: [{
|
|
589
612
|
host: {
|
|
@@ -603,14 +626,22 @@ class NgForgeAction {
|
|
|
603
626
|
shell = inject(NgForgeFieldShell);
|
|
604
627
|
key = this.shell.key;
|
|
605
628
|
className = this.shell.className;
|
|
606
|
-
label = input.required(
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
629
|
+
label = input.required(/* @ts-ignore */
|
|
630
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
631
|
+
disabled = input(false, /* @ts-ignore */
|
|
632
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
633
|
+
hidden = input(false, /* @ts-ignore */
|
|
634
|
+
...(ngDevMode ? [{ debugName: "hidden" }] : /* istanbul ignore next */ []));
|
|
635
|
+
tabIndex = input(/* @ts-ignore */
|
|
636
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
637
|
+
event = input(/* @ts-ignore */
|
|
638
|
+
...(ngDevMode ? [undefined, { debugName: "event" }] : /* istanbul ignore next */ []));
|
|
639
|
+
eventArgs = input(/* @ts-ignore */
|
|
640
|
+
...(ngDevMode ? [undefined, { debugName: "eventArgs" }] : /* istanbul ignore next */ []));
|
|
641
|
+
eventContext = input(/* @ts-ignore */
|
|
642
|
+
...(ngDevMode ? [undefined, { debugName: "eventContext" }] : /* istanbul ignore next */ []));
|
|
643
|
+
props = input(/* @ts-ignore */
|
|
644
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
614
645
|
eventBus = inject(EventBus);
|
|
615
646
|
arrayContext = inject(ARRAY_CONTEXT, { optional: true });
|
|
616
647
|
dispatch() {
|
|
@@ -632,10 +663,10 @@ class NgForgeAction {
|
|
|
632
663
|
: (this.eventContext() ?? { key: this.key() });
|
|
633
664
|
this.eventBus.dispatch(event, ...resolveTokens(args, context));
|
|
634
665
|
}
|
|
635
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
636
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
666
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
667
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.0", type: NgForgeAction, isStandalone: true, inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, event: { classPropertyName: "event", publicName: "event", isSignal: true, isRequired: false, transformFunction: null }, eventArgs: { classPropertyName: "eventArgs", publicName: "eventArgs", isSignal: true, isRequired: false, transformFunction: null }, eventContext: { classPropertyName: "eventContext", publicName: "eventContext", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hidden": "hidden() || null", "attr.aria-disabled": "disabled() || null" } }, ngImport: i0 });
|
|
637
668
|
}
|
|
638
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
669
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAction, decorators: [{
|
|
639
670
|
type: Directive,
|
|
640
671
|
args: [{
|
|
641
672
|
host: {
|
|
@@ -653,17 +684,23 @@ function injectNgForgeAction() {
|
|
|
653
684
|
|
|
654
685
|
class NgForgeAddonsBase {
|
|
655
686
|
hostInjector = inject(Injector);
|
|
656
|
-
addons = input(undefined,
|
|
657
|
-
|
|
687
|
+
addons = input(undefined, /* @ts-ignore */
|
|
688
|
+
...(ngDevMode ? [{ debugName: "addons" }] : /* istanbul ignore next */ []));
|
|
689
|
+
_hiddenSignalCache = signal(new Map(), /* @ts-ignore */
|
|
690
|
+
...(ngDevMode ? [{ debugName: "_hiddenSignalCache" }] : /* istanbul ignore next */ []));
|
|
658
691
|
hiddenSignalCache = this._hiddenSignalCache.asReadonly();
|
|
659
692
|
visibleAddons = computed(() => {
|
|
660
693
|
const list = this.addons() ?? [];
|
|
661
694
|
const cache = this.hiddenSignalCache();
|
|
662
695
|
return list.filter((a) => !(cache.get(a)?.() ?? false));
|
|
663
|
-
},
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
696
|
+
}, /* @ts-ignore */
|
|
697
|
+
...(ngDevMode ? [{ debugName: "visibleAddons" }] : /* istanbul ignore next */ []));
|
|
698
|
+
hasAddons = computed(() => this.visibleAddons().length > 0, /* @ts-ignore */
|
|
699
|
+
...(ngDevMode ? [{ debugName: "hasAddons" }] : /* istanbul ignore next */ []));
|
|
700
|
+
prefixAddons = computed(() => this.visibleAddons().filter((a) => a.slot === 'prefix'), /* @ts-ignore */
|
|
701
|
+
...(ngDevMode ? [{ debugName: "prefixAddons" }] : /* istanbul ignore next */ []));
|
|
702
|
+
suffixAddons = computed(() => this.visibleAddons().filter((a) => a.slot === 'suffix'), /* @ts-ignore */
|
|
703
|
+
...(ngDevMode ? [{ debugName: "suffixAddons" }] : /* istanbul ignore next */ []));
|
|
667
704
|
addonsBySlot = computed(() => {
|
|
668
705
|
const map = new Map();
|
|
669
706
|
for (const a of this.visibleAddons()) {
|
|
@@ -672,7 +709,8 @@ class NgForgeAddonsBase {
|
|
|
672
709
|
map.set(a.slot, bucket);
|
|
673
710
|
}
|
|
674
711
|
return map;
|
|
675
|
-
},
|
|
712
|
+
}, /* @ts-ignore */
|
|
713
|
+
...(ngDevMode ? [{ debugName: "addonsBySlot" }] : /* istanbul ignore next */ []));
|
|
676
714
|
_hiddenByValue = new WeakMap();
|
|
677
715
|
constructor() {
|
|
678
716
|
explicitEffect([this.addons], ([list]) => {
|
|
@@ -695,10 +733,10 @@ class NgForgeAddonsBase {
|
|
|
695
733
|
this._hiddenSignalCache.set(next);
|
|
696
734
|
});
|
|
697
735
|
}
|
|
698
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
699
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
736
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAddonsBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
737
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.0", type: NgForgeAddonsBase, isStandalone: true, inputs: { addons: { classPropertyName: "addons", publicName: "addons", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
700
738
|
}
|
|
701
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
739
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAddonsBase, decorators: [{
|
|
702
740
|
type: Directive,
|
|
703
741
|
args: [{}]
|
|
704
742
|
}], ctorParameters: () => [], propDecorators: { addons: [{ type: i0.Input, args: [{ isSignal: true, alias: "addons", required: false }] }] } });
|
|
@@ -706,10 +744,10 @@ const NG_FORGE_ADDONS_INPUTS = ['addons'];
|
|
|
706
744
|
const _NG_FORGE_ADDONS_INPUTS_LOCKSTEP = true;
|
|
707
745
|
void _NG_FORGE_ADDONS_INPUTS_LOCKSTEP;
|
|
708
746
|
class NgForgeAddons {
|
|
709
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
710
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
747
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAddons, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
748
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: NgForgeAddons, isStandalone: true, hostDirectives: [{ directive: NgForgeAddonsBase, inputs: ["addons", "addons"] }], ngImport: i0 });
|
|
711
749
|
}
|
|
712
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
750
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAddons, decorators: [{
|
|
713
751
|
type: Directive,
|
|
714
752
|
args: [{
|
|
715
753
|
hostDirectives: [{ directive: NgForgeAddonsBase, inputs: [...NG_FORGE_ADDONS_INPUTS] }],
|
|
@@ -726,14 +764,20 @@ class NgForgeAddonActionBase {
|
|
|
726
764
|
presetHandler = inject(ADDON_PRESET_HANDLER, { optional: true });
|
|
727
765
|
logger = inject(DynamicFormLogger);
|
|
728
766
|
hostInjector = inject(Injector);
|
|
729
|
-
addon = input.required(
|
|
730
|
-
|
|
767
|
+
addon = input.required(/* @ts-ignore */
|
|
768
|
+
...(ngDevMode ? [{ debugName: "addon" }] : /* istanbul ignore next */ []));
|
|
769
|
+
fieldInputs = input(undefined, /* @ts-ignore */
|
|
770
|
+
...(ngDevMode ? [{ debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
|
|
731
771
|
_disabledByValue = new WeakMap();
|
|
732
772
|
_loadingByValue = new WeakMap();
|
|
733
|
-
_resolvedDisabled = signal(undefined,
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
773
|
+
_resolvedDisabled = signal(undefined, /* @ts-ignore */
|
|
774
|
+
...(ngDevMode ? [{ debugName: "_resolvedDisabled" }] : /* istanbul ignore next */ []));
|
|
775
|
+
_resolvedLoading = signal(undefined, /* @ts-ignore */
|
|
776
|
+
...(ngDevMode ? [{ debugName: "_resolvedLoading" }] : /* istanbul ignore next */ []));
|
|
777
|
+
disabled = computed(() => this._resolvedDisabled()?.() ?? false, /* @ts-ignore */
|
|
778
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
779
|
+
loading = computed(() => this._resolvedLoading()?.() ?? false, /* @ts-ignore */
|
|
780
|
+
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
737
781
|
constructor() {
|
|
738
782
|
explicitEffect([this.addon], ([addon]) => {
|
|
739
783
|
this._resolvedDisabled.set(this._resolveAxis(addon.disabled, this._disabledByValue));
|
|
@@ -803,10 +847,10 @@ class NgForgeAddonActionBase {
|
|
|
803
847
|
value: undefined,
|
|
804
848
|
};
|
|
805
849
|
}
|
|
806
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
807
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
850
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAddonActionBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
851
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.0", type: NgForgeAddonActionBase, isStandalone: true, 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 });
|
|
808
852
|
}
|
|
809
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
853
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAddonActionBase, decorators: [{
|
|
810
854
|
type: Directive,
|
|
811
855
|
args: [{}]
|
|
812
856
|
}], ctorParameters: () => [], propDecorators: { addon: [{ type: i0.Input, args: [{ isSignal: true, alias: "addon", required: true }] }], fieldInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldInputs", required: false }] }] } });
|
|
@@ -814,10 +858,10 @@ const NG_FORGE_ADDON_ACTION_INPUTS = ['addon', 'fieldInputs'];
|
|
|
814
858
|
const _NG_FORGE_ADDON_ACTION_INPUTS_LOCKSTEP = true;
|
|
815
859
|
void _NG_FORGE_ADDON_ACTION_INPUTS_LOCKSTEP;
|
|
816
860
|
class NgForgeAddonAction {
|
|
817
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
818
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
861
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAddonAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
862
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: NgForgeAddonAction, isStandalone: true, hostDirectives: [{ directive: NgForgeAddonActionBase, inputs: ["addon", "addon", "fieldInputs", "fieldInputs"] }], ngImport: i0 });
|
|
819
863
|
}
|
|
820
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
864
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeAddonAction, decorators: [{
|
|
821
865
|
type: Directive,
|
|
822
866
|
args: [{
|
|
823
867
|
hostDirectives: [{ directive: NgForgeAddonActionBase, inputs: [...NG_FORGE_ADDON_ACTION_INPUTS] }],
|
|
@@ -834,10 +878,10 @@ class NgForgeControl {
|
|
|
834
878
|
setupMarkerAttrTracking(inject(ElementRef), parent, () => this.target());
|
|
835
879
|
parent.markClaimed();
|
|
836
880
|
}
|
|
837
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
838
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
881
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
882
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.0", type: NgForgeControl, isStandalone: true, selector: "[ngForgeControl]", inputs: { target: { classPropertyName: "target", publicName: "ngForgeControl", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
839
883
|
}
|
|
840
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
884
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeControl, decorators: [{
|
|
841
885
|
type: Directive,
|
|
842
886
|
args: [{ selector: '[ngForgeControl]' }]
|
|
843
887
|
}], ctorParameters: () => [], propDecorators: { target: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngForgeControl", required: false }] }] } });
|
|
@@ -847,19 +891,19 @@ class NgForgeHostControl {
|
|
|
847
891
|
setupMarkerAttrTracking(inject(ElementRef), parent, () => undefined);
|
|
848
892
|
parent.markClaimed();
|
|
849
893
|
}
|
|
850
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
851
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
894
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeHostControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
895
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: NgForgeHostControl, isStandalone: true, ngImport: i0 });
|
|
852
896
|
}
|
|
853
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
897
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeHostControl, decorators: [{
|
|
854
898
|
type: Directive,
|
|
855
899
|
args: [{}]
|
|
856
900
|
}], ctorParameters: () => [] });
|
|
857
901
|
|
|
858
902
|
class NgForgeFieldHost {
|
|
859
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
860
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
903
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeFieldHost, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
904
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: NgForgeFieldHost, isStandalone: true, hostDirectives: [{ directive: NgForgeFieldShell, inputs: ["key", "key", "className", "className"] }, { directive: NgForgeField, inputs: ["field", "field", "label", "label", "placeholder", "placeholder", "tabIndex", "tabIndex", "props", "props", "meta", "meta", "validationMessages", "validationMessages"] }], ngImport: i0 });
|
|
861
905
|
}
|
|
862
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
906
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeFieldHost, decorators: [{
|
|
863
907
|
type: Directive,
|
|
864
908
|
args: [{
|
|
865
909
|
hostDirectives: [
|
|
@@ -869,10 +913,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
869
913
|
}]
|
|
870
914
|
}] });
|
|
871
915
|
class NgForgeActionHost {
|
|
872
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
873
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
916
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeActionHost, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
917
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: NgForgeActionHost, isStandalone: true, hostDirectives: [{ directive: NgForgeFieldShell, inputs: ["key", "key", "className", "className"] }, { directive: NgForgeAction, inputs: ["label", "label", "disabled", "disabled", "hidden", "hidden", "tabIndex", "tabIndex", "event", "event", "eventArgs", "eventArgs", "eventContext", "eventContext", "props", "props"] }], ngImport: i0 });
|
|
874
918
|
}
|
|
875
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
919
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgForgeActionHost, decorators: [{
|
|
876
920
|
type: Directive,
|
|
877
921
|
args: [{
|
|
878
922
|
hostDirectives: [
|
|
@@ -885,7 +929,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
885
929
|
function createNgForgeFieldFixture(component, options) {
|
|
886
930
|
TestBed.configureTestingModule({ imports: [component], providers: [...(options.providers ?? [])] });
|
|
887
931
|
const key = options.key;
|
|
888
|
-
const rootValue = signal({ [key]: options.value },
|
|
932
|
+
const rootValue = signal({ [key]: options.value }, /* @ts-ignore */
|
|
933
|
+
...(ngDevMode ? [{ debugName: "rootValue" }] : /* istanbul ignore next */ []));
|
|
889
934
|
const injector = TestBed.inject(EnvironmentInjector);
|
|
890
935
|
const schemaCallback = options.schema;
|
|
891
936
|
const root = runInInjectionContext(injector, () => {
|