ui-core-abv 0.7.7 → 0.7.9
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/ui-core-abv.mjs +377 -67
- package/fesm2022/ui-core-abv.mjs.map +1 -1
- package/lib/components/dynamic-form/form/dynamic-form.component.d.ts +5 -1
- package/lib/components/dynamic-form/form-wrapper/form-wrapper.component.d.ts +15 -2
- package/lib/components/dynamic-form/form.models.d.ts +11 -0
- package/lib/components/inputs/multy-select/multy-select.component.d.ts +4 -0
- package/lib/components/inputs/select/select.component.d.ts +8 -0
- package/lib/components/user-formbuilder/block-editor/block-editor.component.d.ts +3 -1
- package/lib/components/user-formbuilder/block-editor/field-editor/field-editor.component.d.ts +6 -1
- package/lib/components/user-formbuilder/user-formbuilder.component.d.ts +9 -2
- package/lib/translate/dictionary.en.d.ts +5 -0
- package/lib/translate/dictionary.es.d.ts +5 -0
- package/package.json +1 -1
|
@@ -14,6 +14,7 @@ export declare class UicDynamicFormComponent implements OnDestroy {
|
|
|
14
14
|
private readonly fieldsSignal;
|
|
15
15
|
private readonly formSignal;
|
|
16
16
|
private readonly disabledSignal;
|
|
17
|
+
private readonly extValStatesSignal;
|
|
17
18
|
private readonly formState;
|
|
18
19
|
private readonly http;
|
|
19
20
|
private readonly alertS;
|
|
@@ -31,6 +32,8 @@ export declare class UicDynamicFormComponent implements OnDestroy {
|
|
|
31
32
|
get form(): FormGroup;
|
|
32
33
|
set disabled(value: boolean);
|
|
33
34
|
get disabled(): boolean;
|
|
35
|
+
set externalValidationStates(v: Record<string, 'loading' | 'valid' | 'invalid'> | undefined);
|
|
36
|
+
fieldBlur: import("@angular/core").OutputEmitterRef<string>;
|
|
34
37
|
voiceToTextSilenceMs: number;
|
|
35
38
|
cols: number;
|
|
36
39
|
fileUidResolverFn?: (fileUid: string, fileName: string, fieldLabel: string) => void;
|
|
@@ -45,6 +48,7 @@ export declare class UicDynamicFormComponent implements OnDestroy {
|
|
|
45
48
|
constructor(ngZone: NgZone);
|
|
46
49
|
ngOnDestroy(): void;
|
|
47
50
|
getGridColumn(field: FormField): string;
|
|
51
|
+
onFieldContainerFocusout(field: FormField, event: FocusEvent): void;
|
|
48
52
|
private getValueByFieldName;
|
|
49
53
|
private syncFieldEnabledState;
|
|
50
54
|
private getClearValue;
|
|
@@ -75,6 +79,6 @@ export declare class UicDynamicFormComponent implements OnDestroy {
|
|
|
75
79
|
private scheduleVoiceStop;
|
|
76
80
|
voiceToText(target: HTMLTextAreaElement, fieldName: string): void;
|
|
77
81
|
static ɵfac: i0.ɵɵFactoryDeclaration<UicDynamicFormComponent, never>;
|
|
78
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UicDynamicFormComponent, "ui-dynamic-form", never, { "fields": { "alias": "fields"; "required": false; }; "isSubForm": { "alias": "isSubForm"; "required": false; }; "form": { "alias": "form"; "required": true; }; "disabled": { "alias": "disabled"; "required": false; }; "voiceToTextSilenceMs": { "alias": "voiceToTextSilenceMs"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "fileUidResolverFn": { "alias": "fileUidResolverFn"; "required": false; }; "selectOptionsResolver": { "alias": "selectOptionsResolver"; "required": false; }; "parentFormValues": { "alias": "parentFormValues"; "required": false; }; }, {}, never, never, true, never>;
|
|
82
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UicDynamicFormComponent, "ui-dynamic-form", never, { "fields": { "alias": "fields"; "required": false; }; "isSubForm": { "alias": "isSubForm"; "required": false; }; "form": { "alias": "form"; "required": true; }; "disabled": { "alias": "disabled"; "required": false; }; "externalValidationStates": { "alias": "externalValidationStates"; "required": false; }; "voiceToTextSilenceMs": { "alias": "voiceToTextSilenceMs"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "fileUidResolverFn": { "alias": "fileUidResolverFn"; "required": false; }; "selectOptionsResolver": { "alias": "selectOptionsResolver"; "required": false; }; "parentFormValues": { "alias": "parentFormValues"; "required": false; }; }, { "fieldBlur": "fieldBlur"; }, never, never, true, never>;
|
|
79
83
|
}
|
|
80
84
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { FormGroup } from '@angular/forms';
|
|
3
3
|
import { AppSelectOption } from '../../inputs/select/select.component';
|
|
4
|
-
import { ComputedFieldResolver, FormField, FormResult, FormSchema, SelectOptionsResolver, SelectOptionsSource, uicFormValuesRecord } from '../form.models';
|
|
4
|
+
import { ComputedFieldResolver, ExternalValidatorResolver, FormField, FormResult, FormSchema, SelectOptionsResolver, SelectOptionsSource, uicFormValuesRecord } from '../form.models';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class UicFormWrapperComponent implements OnInit, OnChanges, OnDestroy {
|
|
7
7
|
private readonly fb;
|
|
@@ -18,6 +18,7 @@ export declare class UicFormWrapperComponent implements OnInit, OnChanges, OnDes
|
|
|
18
18
|
externalData: Record<string, AppSelectOption[]>;
|
|
19
19
|
selectOptionsResolver?: SelectOptionsResolver;
|
|
20
20
|
computedFieldResolver?: ComputedFieldResolver;
|
|
21
|
+
externalValidatorResolver?: ExternalValidatorResolver;
|
|
21
22
|
loading: boolean;
|
|
22
23
|
disabled: boolean;
|
|
23
24
|
showButtons: boolean;
|
|
@@ -33,6 +34,9 @@ export declare class UicFormWrapperComponent implements OnInit, OnChanges, OnDes
|
|
|
33
34
|
source: SelectOptionsSource;
|
|
34
35
|
error: unknown;
|
|
35
36
|
}>;
|
|
37
|
+
externalValidationStates: Record<string, 'loading' | 'valid' | 'invalid'>;
|
|
38
|
+
private readonly externalValidationSubs;
|
|
39
|
+
private readonly externalValidationLastValue;
|
|
36
40
|
private formValueSub;
|
|
37
41
|
private readonly optionSourceSubs;
|
|
38
42
|
private readonly optionSourceDependencyValueByField;
|
|
@@ -80,6 +84,15 @@ export declare class UicFormWrapperComponent implements OnInit, OnChanges, OnDes
|
|
|
80
84
|
private safeStringify;
|
|
81
85
|
private clearOptionSourceSubscriptions;
|
|
82
86
|
private clearComputedFieldSubs;
|
|
87
|
+
private clearExternalValidationSubs;
|
|
88
|
+
onFieldBlur(fieldName: string): void;
|
|
89
|
+
private cancelStaleExternalValidations;
|
|
90
|
+
private updateExternalValidationState;
|
|
91
|
+
private clearExternalValidationError;
|
|
92
|
+
private setExternalValidationError;
|
|
93
|
+
private enableFieldForCorrection;
|
|
94
|
+
private restoreFieldDisabledState;
|
|
95
|
+
private toValidationObservable;
|
|
83
96
|
/**
|
|
84
97
|
* Recalcula todos los campos autocalculados (computeFn o computedSource).
|
|
85
98
|
* Se llama en cada valueChanges y al inicializar el formulario.
|
|
@@ -111,5 +124,5 @@ export declare class UicFormWrapperComponent implements OnInit, OnChanges, OnDes
|
|
|
111
124
|
private setNestedValue;
|
|
112
125
|
private syncEffectiveSchema;
|
|
113
126
|
static ɵfac: i0.ɵɵFactoryDeclaration<UicFormWrapperComponent, never>;
|
|
114
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UicFormWrapperComponent, "ui-form-wrapper", never, { "schema": { "alias": "schema"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "externalData": { "alias": "externalData"; "required": false; }; "selectOptionsResolver": { "alias": "selectOptionsResolver"; "required": false; }; "computedFieldResolver": { "alias": "computedFieldResolver"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "showButtons": { "alias": "showButtons"; "required": false; }; "fillSelects": { "alias": "fillSelects"; "required": false; }; "initialValues": { "alias": "initialValues"; "required": false; }; "focusFieldName": { "alias": "focusFieldName"; "required": false; }; "focusFieldTrigger": { "alias": "focusFieldTrigger"; "required": false; }; "fileUidResolverFn": { "alias": "fileUidResolverFn"; "required": false; }; }, { "formSubmit": "formSubmit"; "formChange": "formChange"; "optionsSourceError": "optionsSourceError"; }, never, never, true, never>;
|
|
127
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UicFormWrapperComponent, "ui-form-wrapper", never, { "schema": { "alias": "schema"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "externalData": { "alias": "externalData"; "required": false; }; "selectOptionsResolver": { "alias": "selectOptionsResolver"; "required": false; }; "computedFieldResolver": { "alias": "computedFieldResolver"; "required": false; }; "externalValidatorResolver": { "alias": "externalValidatorResolver"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "showButtons": { "alias": "showButtons"; "required": false; }; "fillSelects": { "alias": "fillSelects"; "required": false; }; "initialValues": { "alias": "initialValues"; "required": false; }; "focusFieldName": { "alias": "focusFieldName"; "required": false; }; "focusFieldTrigger": { "alias": "focusFieldTrigger"; "required": false; }; "fileUidResolverFn": { "alias": "fileUidResolverFn"; "required": false; }; }, { "formSubmit": "formSubmit"; "formChange": "formChange"; "optionsSourceError": "optionsSourceError"; }, never, never, true, never>;
|
|
115
128
|
}
|
|
@@ -57,6 +57,14 @@ export interface ComputedFieldContext {
|
|
|
57
57
|
* Puede retornar el valor directamente, una Promise o un Observable.
|
|
58
58
|
*/
|
|
59
59
|
export type ComputedFieldResolver = (source: ComputedFieldSource, context: ComputedFieldContext) => any | Promise<any> | Observable<any>;
|
|
60
|
+
export interface ExternalValidationSource {
|
|
61
|
+
/** Clave del validador externo registrado por el consumidor */
|
|
62
|
+
key: string;
|
|
63
|
+
}
|
|
64
|
+
export type ExternalValidatorResolver = (source: ExternalValidationSource, ctx: {
|
|
65
|
+
value: any;
|
|
66
|
+
values: uicFormValuesRecord;
|
|
67
|
+
}) => boolean | string | null | Promise<boolean | string | null> | Observable<boolean | string | null>;
|
|
60
68
|
export interface FormField {
|
|
61
69
|
name: string;
|
|
62
70
|
type: FieldType;
|
|
@@ -76,6 +84,7 @@ export interface FormField {
|
|
|
76
84
|
internalColorScale?: number[];
|
|
77
85
|
internalColorScaleOrder?: 'asc' | 'desc';
|
|
78
86
|
selectSearchEnabled?: boolean;
|
|
87
|
+
showSubtitle?: boolean;
|
|
79
88
|
selectNullable?: boolean;
|
|
80
89
|
placeholder?: string;
|
|
81
90
|
minLength?: number;
|
|
@@ -117,6 +126,7 @@ export interface FormField {
|
|
|
117
126
|
* y retorna el valor calculado. No requiere `computedFieldResolver` en el wrapper.
|
|
118
127
|
*/
|
|
119
128
|
computeFn?: (values: uicFormValuesRecord) => any;
|
|
129
|
+
externalValidation?: ExternalValidationSource;
|
|
120
130
|
iaValidation?: boolean;
|
|
121
131
|
iaValidationPrompt?: string;
|
|
122
132
|
repeaterFields?: FormField[];
|
|
@@ -156,6 +166,7 @@ export interface FormResult {
|
|
|
156
166
|
form: uicFormValuesRecord | null;
|
|
157
167
|
}
|
|
158
168
|
export type uicFormValuesRecord = Record<string, any>;
|
|
169
|
+
export declare const EXTERNAL_VALIDATION_FORM_FIELDS: FormField[];
|
|
159
170
|
export declare const COMPUTED_FORM_FIELDS: FormField[];
|
|
160
171
|
export declare const BASE_FORM_FIELDS: FormField[];
|
|
161
172
|
export declare const LAYOUT_FORM_FIELDS: FormField[];
|
|
@@ -41,6 +41,10 @@ export declare class UicMultySelectComponent extends base {
|
|
|
41
41
|
get isAllSelected(): boolean;
|
|
42
42
|
get hasSelection(): boolean;
|
|
43
43
|
get selectedSummaryText(): string;
|
|
44
|
+
get groupedOptions(): {
|
|
45
|
+
label: string | null;
|
|
46
|
+
options: AppSelectOption[];
|
|
47
|
+
}[];
|
|
44
48
|
dropdownTemplate: TemplateRef<any>;
|
|
45
49
|
private overlayRef;
|
|
46
50
|
overlayPositions: ConnectedPosition[];
|
|
@@ -46,6 +46,13 @@ export declare class UicSelectComponent extends base {
|
|
|
46
46
|
get filteredOptions(): AppSelectOption[];
|
|
47
47
|
get showNullableOption(): boolean;
|
|
48
48
|
get keyboardOptions(): (AppSelectOption | null)[];
|
|
49
|
+
get groupedFilteredOptions(): {
|
|
50
|
+
label: string | null;
|
|
51
|
+
options: {
|
|
52
|
+
option: AppSelectOption;
|
|
53
|
+
flatIndex: number;
|
|
54
|
+
}[];
|
|
55
|
+
}[];
|
|
49
56
|
openList(): void;
|
|
50
57
|
selectOption(option: AppSelectOption | null): void;
|
|
51
58
|
closeList(): void;
|
|
@@ -76,5 +83,6 @@ export interface AppSelectOption {
|
|
|
76
83
|
icon?: string;
|
|
77
84
|
iconColor?: string;
|
|
78
85
|
disabled?: boolean;
|
|
86
|
+
group?: string;
|
|
79
87
|
}
|
|
80
88
|
export {};
|
|
@@ -14,6 +14,7 @@ export declare class BlockEditorComponent {
|
|
|
14
14
|
} | null>;
|
|
15
15
|
selectedFieldId: import("@angular/core").InputSignal<string | null>;
|
|
16
16
|
selectedSubFieldCode: import("@angular/core").InputSignal<string | null>;
|
|
17
|
+
selectedSubFieldParentCode: import("@angular/core").InputSignal<string | null>;
|
|
17
18
|
visibilityParentFieldCodes: Set<string>;
|
|
18
19
|
excludeSubFieldTypes: FieldType[];
|
|
19
20
|
private expandedRepeaters;
|
|
@@ -30,6 +31,7 @@ export declare class BlockEditorComponent {
|
|
|
30
31
|
private generateSubFieldCode;
|
|
31
32
|
changeTitle(newTitle: string): void;
|
|
32
33
|
changeSubtitle(newSubtitle: string): void;
|
|
34
|
+
changeMessage(newMessage: string): void;
|
|
33
35
|
addField(newFieldType: FieldConfig): void;
|
|
34
36
|
requestDeleteBlock(e: Event): void;
|
|
35
37
|
deleteField(fieldCode: string, e: Event): void;
|
|
@@ -37,5 +39,5 @@ export declare class BlockEditorComponent {
|
|
|
37
39
|
isBlockVisibilityParent(): boolean;
|
|
38
40
|
reorderFields(event: CdkDragDrop<EditableField[]>): void;
|
|
39
41
|
static ɵfac: i0.ɵɵFactoryDeclaration<BlockEditorComponent, never>;
|
|
40
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BlockEditorComponent, "lib-block-editor", never, { "block": { "alias": "block"; "required": false; "isSignal": true; }; "selectedFieldId": { "alias": "selectedFieldId"; "required": false; "isSignal": true; }; "selectedSubFieldCode": { "alias": "selectedSubFieldCode"; "required": false; "isSignal": true; }; "visibilityParentFieldCodes": { "alias": "visibilityParentFieldCodes"; "required": false; }; }, { "blockChange": "blockChange"; "addFieldRequest": "addFieldRequest"; "deleteBlock": "deleteBlock"; "notifySelectedField": "notifySelectedField"; "notifySelectedSubField": "notifySelectedSubField"; }, never, never, true, never>;
|
|
42
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BlockEditorComponent, "lib-block-editor", never, { "block": { "alias": "block"; "required": false; "isSignal": true; }; "selectedFieldId": { "alias": "selectedFieldId"; "required": false; "isSignal": true; }; "selectedSubFieldCode": { "alias": "selectedSubFieldCode"; "required": false; "isSignal": true; }; "selectedSubFieldParentCode": { "alias": "selectedSubFieldParentCode"; "required": false; "isSignal": true; }; "visibilityParentFieldCodes": { "alias": "visibilityParentFieldCodes"; "required": false; }; }, { "blockChange": "blockChange"; "addFieldRequest": "addFieldRequest"; "deleteBlock": "deleteBlock"; "notifySelectedField": "notifySelectedField"; "notifySelectedSubField": "notifySelectedSubField"; }, never, never, true, never>;
|
|
41
43
|
}
|
package/lib/components/user-formbuilder/block-editor/field-editor/field-editor.component.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare class FieldEditorComponent {
|
|
|
11
11
|
hasExternalOptionsSource: import("@angular/core").Signal<boolean>;
|
|
12
12
|
isRepeater: import("@angular/core").Signal<boolean>;
|
|
13
13
|
isComputed: import("@angular/core").Signal<boolean>;
|
|
14
|
+
hasExternalValidation: import("@angular/core").Signal<boolean>;
|
|
14
15
|
config: import("@angular/core").InputSignal<EditableField>;
|
|
15
16
|
focusRequiredField: import("@angular/core").InputSignal<boolean>;
|
|
16
17
|
isSubField: import("@angular/core").InputSignal<boolean>;
|
|
@@ -19,6 +20,7 @@ export declare class FieldEditorComponent {
|
|
|
19
20
|
editingRuleIndex: import("@angular/core").WritableSignal<number>;
|
|
20
21
|
isAddingNewRule: import("@angular/core").WritableSignal<boolean>;
|
|
21
22
|
fieldChange: import("@angular/core").OutputEmitterRef<FormField>;
|
|
23
|
+
nameManuallySet: import("@angular/core").OutputEmitterRef<void>;
|
|
22
24
|
localField: import("@angular/core").WritableSignal<FormField>;
|
|
23
25
|
requiredFields: FormField[];
|
|
24
26
|
optionsSourceFields: import("@angular/core").Signal<FormField[]>;
|
|
@@ -27,6 +29,7 @@ export declare class FieldEditorComponent {
|
|
|
27
29
|
styleFields: import("@angular/core").Signal<FormField[]>;
|
|
28
30
|
branchDraftValues: import("@angular/core").WritableSignal<uicFormValuesRecord>;
|
|
29
31
|
branchFields: import("@angular/core").Signal<FormField[]>;
|
|
32
|
+
externalValidationFields: import("@angular/core").Signal<FormField[]>;
|
|
30
33
|
initialValues: import("@angular/core").Signal<FormField>;
|
|
31
34
|
branchInitialValues: import("@angular/core").Signal<uicFormValuesRecord>;
|
|
32
35
|
fieldType: import("@angular/core").Signal<import("ui-core-abv").FieldConfig | undefined>;
|
|
@@ -39,6 +42,7 @@ export declare class FieldEditorComponent {
|
|
|
39
42
|
cancelEditingRule(): void;
|
|
40
43
|
removeRule(index: number): void;
|
|
41
44
|
private clearDraftRule;
|
|
45
|
+
private normalizeLabelToName;
|
|
42
46
|
updateFieldValues(fr: uicFormValuesRecord): void;
|
|
43
47
|
updateOptions(options: AppSelectOption[]): void;
|
|
44
48
|
private getDependencyFieldLabel;
|
|
@@ -56,6 +60,7 @@ export declare class FieldEditorComponent {
|
|
|
56
60
|
private ruleToBranchValues;
|
|
57
61
|
private isValueLessVisibilityOperator;
|
|
58
62
|
private buildComputedSourceFields;
|
|
63
|
+
private buildExternalValidationFields;
|
|
59
64
|
static ɵfac: i0.ɵɵFactoryDeclaration<FieldEditorComponent, never>;
|
|
60
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FieldEditorComponent, "lib-field-editor", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "focusRequiredField": { "alias": "focusRequiredField"; "required": false; "isSignal": true; }; "isSubField": { "alias": "isSubField"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "fieldChange": "fieldChange"; }, never, never, true, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FieldEditorComponent, "lib-field-editor", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "focusRequiredField": { "alias": "focusRequiredField"; "required": false; "isSignal": true; }; "isSubField": { "alias": "isSubField"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "fieldChange": "fieldChange"; "nameManuallySet": "nameManuallySet"; }, never, never, true, never>;
|
|
61
66
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FieldConfig, FormField, FormSchema, SelectOptionsResolver, ComputedFieldResolver } from '../dynamic-form/form.models';
|
|
1
|
+
import { FieldConfig, FormField, FormSchema, SelectOptionsResolver, ComputedFieldResolver, ExternalValidatorResolver } from '../dynamic-form/form.models';
|
|
2
2
|
import { AppSelectOption } from '../inputs/select/select.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export type EditableField = {
|
|
@@ -9,6 +9,7 @@ export type EditableField = {
|
|
|
9
9
|
field?: FieldConfig;
|
|
10
10
|
fieldData: FormField;
|
|
11
11
|
repeaterSubFields?: EditableField[];
|
|
12
|
+
nameManuallySet?: boolean;
|
|
12
13
|
};
|
|
13
14
|
export type EditableBlock = {
|
|
14
15
|
id?: number | null;
|
|
@@ -16,6 +17,7 @@ export type EditableBlock = {
|
|
|
16
17
|
order: number;
|
|
17
18
|
title?: string;
|
|
18
19
|
subtitle?: string;
|
|
20
|
+
message?: string;
|
|
19
21
|
fields: EditableField[];
|
|
20
22
|
};
|
|
21
23
|
export type EditableForm = {
|
|
@@ -34,8 +36,10 @@ export declare class UicUserFormbuilderComponent {
|
|
|
34
36
|
formTitle: string;
|
|
35
37
|
optionSources: AppSelectOption[];
|
|
36
38
|
computedSources: AppSelectOption[];
|
|
39
|
+
validationSources: AppSelectOption[];
|
|
37
40
|
selectOptionsResolver?: SelectOptionsResolver;
|
|
38
41
|
computedFieldResolver?: ComputedFieldResolver;
|
|
42
|
+
externalValidatorResolver?: ExternalValidatorResolver;
|
|
39
43
|
readOnly: import("@angular/core").InputSignal<boolean>;
|
|
40
44
|
editableFormInput: import("@angular/core").InputSignal<EditableForm>;
|
|
41
45
|
submitFormRequest: import("@angular/core").OutputEmitterRef<EditableForm>;
|
|
@@ -73,11 +77,14 @@ export declare class UicUserFormbuilderComponent {
|
|
|
73
77
|
parentCode: string;
|
|
74
78
|
subField: EditableField;
|
|
75
79
|
} | null): void;
|
|
80
|
+
onFieldNameManuallySet(): void;
|
|
81
|
+
onSubFieldNameManuallySet(): void;
|
|
76
82
|
onSubFieldChange(updatedFieldData: FormField): void;
|
|
77
83
|
startPropertiesResize(event: MouseEvent): void;
|
|
78
84
|
onPropertiesResize(event: MouseEvent): void;
|
|
79
85
|
stopPropertiesResize(): void;
|
|
80
86
|
printForm(): void;
|
|
87
|
+
copySchemaToClipboard(): void;
|
|
81
88
|
submitForm(): void;
|
|
82
89
|
private getDuplicatedFieldName;
|
|
83
90
|
enableEditMode(): void;
|
|
@@ -92,7 +99,7 @@ export declare class UicUserFormbuilderComponent {
|
|
|
92
99
|
private prepareFieldDataForSubmit;
|
|
93
100
|
private deepClone;
|
|
94
101
|
static ɵfac: i0.ɵɵFactoryDeclaration<UicUserFormbuilderComponent, never>;
|
|
95
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UicUserFormbuilderComponent, "ui-user-formbuilder", never, { "disabled": { "alias": "disabled"; "required": false; }; "formTitle": { "alias": "formTitle"; "required": false; }; "optionSources": { "alias": "optionSources"; "required": false; }; "computedSources": { "alias": "computedSources"; "required": false; }; "selectOptionsResolver": { "alias": "selectOptionsResolver"; "required": false; }; "computedFieldResolver": { "alias": "computedFieldResolver"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "editableFormInput": { "alias": "editableForm"; "required": false; "isSignal": true; }; }, { "submitFormRequest": "submitFormRequest"; }, never, never, true, never>;
|
|
102
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UicUserFormbuilderComponent, "ui-user-formbuilder", never, { "disabled": { "alias": "disabled"; "required": false; }; "formTitle": { "alias": "formTitle"; "required": false; }; "optionSources": { "alias": "optionSources"; "required": false; }; "computedSources": { "alias": "computedSources"; "required": false; }; "validationSources": { "alias": "validationSources"; "required": false; }; "selectOptionsResolver": { "alias": "selectOptionsResolver"; "required": false; }; "computedFieldResolver": { "alias": "computedFieldResolver"; "required": false; }; "externalValidatorResolver": { "alias": "externalValidatorResolver"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "editableFormInput": { "alias": "editableForm"; "required": false; "isSignal": true; }; }, { "submitFormRequest": "submitFormRequest"; }, never, never, true, never>;
|
|
96
103
|
}
|
|
97
104
|
export interface ComputedSourceOption {
|
|
98
105
|
id: string | number;
|
|
@@ -157,6 +157,7 @@ export declare const DICTIONARY_EN: {
|
|
|
157
157
|
readonly block_title: "Title";
|
|
158
158
|
readonly add_new_field: "Add new field";
|
|
159
159
|
readonly block_subtitle: "Subtitle";
|
|
160
|
+
readonly block_message: "Message";
|
|
160
161
|
readonly add_block: "Add block";
|
|
161
162
|
readonly delete_block: "Delete block";
|
|
162
163
|
readonly delete_block_dependency_blocked: "This block cannot be deleted because it contains fields that other fields depend on";
|
|
@@ -270,6 +271,8 @@ export declare const DICTIONARY_EN: {
|
|
|
270
271
|
readonly computedSourceKey_tip: "Identifier the consumer resolver will receive";
|
|
271
272
|
readonly computedSourceDependsOn: "Depends on";
|
|
272
273
|
readonly computedSourceDependsOn_tip: "Fields whose change triggers recalculation";
|
|
274
|
+
readonly externalValidationKey: "External validation";
|
|
275
|
+
readonly externalValidationKey_tip: "Key of the external validator to run on field blur";
|
|
273
276
|
};
|
|
274
277
|
readonly options_editor: {
|
|
275
278
|
readonly title: "Options";
|
|
@@ -298,6 +301,7 @@ export declare const DICTIONARY_EN: {
|
|
|
298
301
|
readonly show_advanced: "Show advanced";
|
|
299
302
|
readonly hide_advanced: "Hide advanced";
|
|
300
303
|
readonly subfields: "Sub-fields";
|
|
304
|
+
readonly external_validation_title: "External validation";
|
|
301
305
|
};
|
|
302
306
|
readonly visibility_operators: {
|
|
303
307
|
readonly equals: "Equals";
|
|
@@ -332,6 +336,7 @@ export declare const DICTIONARY_EN: {
|
|
|
332
336
|
readonly minlength: "{{field}} must have at least {{requiredLength}} characters.";
|
|
333
337
|
readonly maxlength: "{{field}} cannot exceed {{requiredLength}} characters.";
|
|
334
338
|
readonly pattern: "{{field}} has an invalid format.";
|
|
339
|
+
readonly external_invalid: "{{field}} is not valid.";
|
|
335
340
|
};
|
|
336
341
|
readonly clipboard: {
|
|
337
342
|
readonly copy_error: "Could not copy:";
|
|
@@ -157,6 +157,7 @@ export declare const DICTIONARY_ES: {
|
|
|
157
157
|
readonly block_title: "Título";
|
|
158
158
|
readonly add_new_field: "Agregar nuevo campo";
|
|
159
159
|
readonly block_subtitle: "Subtítulo";
|
|
160
|
+
readonly block_message: "Mensaje";
|
|
160
161
|
readonly add_block: "Agregar bloque";
|
|
161
162
|
readonly delete_block: "Eliminar bloque";
|
|
162
163
|
readonly delete_block_dependency_blocked: "Este bloque no se puede eliminar porque contiene campos de los que dependen otros campos";
|
|
@@ -270,6 +271,8 @@ export declare const DICTIONARY_ES: {
|
|
|
270
271
|
readonly computedSourceKey_tip: "Identificador que recibirá el resolver del consumidor";
|
|
271
272
|
readonly computedSourceDependsOn: "Depende de";
|
|
272
273
|
readonly computedSourceDependsOn_tip: "Campos cuyo cambio dispara el recálculo";
|
|
274
|
+
readonly externalValidationKey: "Validación externa";
|
|
275
|
+
readonly externalValidationKey_tip: "Clave del validador externo a ejecutar al salir del campo";
|
|
273
276
|
};
|
|
274
277
|
readonly options_editor: {
|
|
275
278
|
readonly title: "Opciones";
|
|
@@ -298,6 +301,7 @@ export declare const DICTIONARY_ES: {
|
|
|
298
301
|
readonly show_advanced: "Mostrar avanzado";
|
|
299
302
|
readonly hide_advanced: "Ocultar avanzado";
|
|
300
303
|
readonly subfields: "Sub-campos";
|
|
304
|
+
readonly external_validation_title: "Validación externa";
|
|
301
305
|
};
|
|
302
306
|
readonly visibility_operators: {
|
|
303
307
|
readonly equals: "Es igual a";
|
|
@@ -332,6 +336,7 @@ export declare const DICTIONARY_ES: {
|
|
|
332
336
|
readonly minlength: "{{field}} debe tener al menos {{requiredLength}} caracteres.";
|
|
333
337
|
readonly maxlength: "{{field}} no puede superar {{requiredLength}} caracteres.";
|
|
334
338
|
readonly pattern: "{{field}} no tiene el formato correcto.";
|
|
339
|
+
readonly external_invalid: "{{field}} no es válido.";
|
|
335
340
|
};
|
|
336
341
|
readonly clipboard: {
|
|
337
342
|
readonly copy_error: "No se pudo copiar:";
|