ui-core-abv 0.6.76 → 0.7.0
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 +774 -75
- package/fesm2022/ui-core-abv.mjs.map +1 -1
- package/lib/components/dynamic-form/form/dynamic-form.component.d.ts +11 -2
- package/lib/components/dynamic-form/form-wrapper/form-wrapper.component.d.ts +5 -0
- package/lib/components/dynamic-form/form.models.d.ts +17 -2
- package/lib/components/dynamic-form/repeater/repeater.component.d.ts +21 -0
- package/lib/components/user-formbuilder/block-editor/block-editor.component.d.ts +22 -2
- package/lib/components/user-formbuilder/block-editor/field-editor/field-editor.component.d.ts +12 -2
- package/lib/components/user-formbuilder/block-editor/field-type-selector/field-type-selector.component.d.ts +4 -3
- package/lib/components/user-formbuilder/user-formbuilder.component.d.ts +11 -0
- package/lib/translate/dictionary.en.d.ts +24 -0
- package/lib/translate/dictionary.es.d.ts +31 -7
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgZone, OnDestroy } from '@angular/core';
|
|
2
|
-
import { AbstractControl, FormGroup } from '@angular/forms';
|
|
2
|
+
import { AbstractControl, FormArray, FormGroup } from '@angular/forms';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { ButtonColor } from '../../button/button.component';
|
|
5
5
|
import { FormField, SelectOptionsResolver } from '../form.models';
|
|
@@ -26,6 +26,7 @@ export declare class UicDynamicFormComponent implements OnDestroy {
|
|
|
26
26
|
private voiceStopTimer;
|
|
27
27
|
set fields(value: FormField[]);
|
|
28
28
|
get fields(): FormField[];
|
|
29
|
+
isSubForm: boolean;
|
|
29
30
|
set form(value: FormGroup);
|
|
30
31
|
get form(): FormGroup;
|
|
31
32
|
set disabled(value: boolean);
|
|
@@ -37,6 +38,7 @@ export declare class UicDynamicFormComponent implements OnDestroy {
|
|
|
37
38
|
listeningField: string | null;
|
|
38
39
|
readonly fieldStates: import("@angular/core").Signal<DynamicFieldState[]>;
|
|
39
40
|
readonly visibleFieldStates: import("@angular/core").Signal<DynamicFieldState[]>;
|
|
41
|
+
private readonly formSyncEffect;
|
|
40
42
|
private readonly fieldStateSyncEffect;
|
|
41
43
|
readonly colorToIcon: Record<string, string>;
|
|
42
44
|
constructor(ngZone: NgZone);
|
|
@@ -46,8 +48,15 @@ export declare class UicDynamicFormComponent implements OnDestroy {
|
|
|
46
48
|
private syncFieldEnabledState;
|
|
47
49
|
private getClearValue;
|
|
48
50
|
private matchesVisibilityRule;
|
|
51
|
+
private findFieldByName;
|
|
52
|
+
private isEmptyValue;
|
|
53
|
+
private compareVisibilityValues;
|
|
54
|
+
private toComparableVisibilityValue;
|
|
55
|
+
private getPhoneComparableValue;
|
|
56
|
+
private arrayIncludesVisibilityValue;
|
|
49
57
|
private parseBooleanLike;
|
|
50
58
|
getControlErrorMessages(control: AbstractControl | null, field: FormField): string[];
|
|
59
|
+
asFormArray(control: AbstractControl | null): FormArray;
|
|
51
60
|
isListening(fieldName: string): boolean;
|
|
52
61
|
private readonly errorMessages;
|
|
53
62
|
getInputColor(field: FormField, value: string | number): ButtonColor;
|
|
@@ -65,6 +74,6 @@ export declare class UicDynamicFormComponent implements OnDestroy {
|
|
|
65
74
|
private scheduleVoiceStop;
|
|
66
75
|
voiceToText(target: HTMLTextAreaElement, fieldName: string): void;
|
|
67
76
|
static ɵfac: i0.ɵɵFactoryDeclaration<UicDynamicFormComponent, never>;
|
|
68
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UicDynamicFormComponent, "ui-dynamic-form", never, { "fields": { "alias": "fields"; "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; }; }, {}, never, never, true, never>;
|
|
77
|
+
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; }; }, {}, never, never, true, never>;
|
|
69
78
|
}
|
|
70
79
|
export {};
|
|
@@ -36,6 +36,8 @@ export declare class UicFormWrapperComponent implements OnInit, OnChanges, OnDes
|
|
|
36
36
|
ngOnChanges(changes: SimpleChanges): void;
|
|
37
37
|
ngOnDestroy(): void;
|
|
38
38
|
private buildForm;
|
|
39
|
+
private buildRepeaterGroup;
|
|
40
|
+
private repeaterArrayValidator;
|
|
39
41
|
private focusConfiguredField;
|
|
40
42
|
private findFocusableFieldElement;
|
|
41
43
|
private updateDisabledState;
|
|
@@ -45,6 +47,9 @@ export declare class UicFormWrapperComponent implements OnInit, OnChanges, OnDes
|
|
|
45
47
|
private handleFormChange;
|
|
46
48
|
private updateFieldOptions;
|
|
47
49
|
private updateOptionsSources;
|
|
50
|
+
private updateRepeaterSubFieldOptionsSources;
|
|
51
|
+
private resolveRepeaterSubFieldOptionsSource;
|
|
52
|
+
private updateRepeaterSubFieldOptionsState;
|
|
48
53
|
private updateDependentOptionsSources;
|
|
49
54
|
private resolveOptionsSourceField;
|
|
50
55
|
private handleOptionsSourceError;
|
|
@@ -85,6 +85,12 @@ export interface FormField {
|
|
|
85
85
|
visibilityRules?: FieldVisibilityRule[] | null;
|
|
86
86
|
iaValidation?: boolean;
|
|
87
87
|
iaValidationPrompt?: string;
|
|
88
|
+
repeaterFields?: FormField[];
|
|
89
|
+
repeaterMinItems?: number;
|
|
90
|
+
repeaterMaxItems?: number;
|
|
91
|
+
repeaterAddLabel?: string;
|
|
92
|
+
repeaterRemoveLabel?: string;
|
|
93
|
+
repeaterItemTitle?: string;
|
|
88
94
|
}
|
|
89
95
|
export interface FieldVisibilityRule {
|
|
90
96
|
fieldName: string;
|
|
@@ -92,16 +98,25 @@ export interface FieldVisibilityRule {
|
|
|
92
98
|
operator: VisibilityOperators;
|
|
93
99
|
value: any;
|
|
94
100
|
}
|
|
95
|
-
export type VisibilityOperators = 'equals' | 'notEquals' | 'greaterThan' | 'lessThan' | 'includes' | 'notIncludes';
|
|
101
|
+
export type VisibilityOperators = 'equals' | 'notEquals' | 'greaterThan' | 'lessThan' | 'includes' | 'notIncludes' | 'isEmpty' | 'isNotEmpty';
|
|
102
|
+
export interface FieldVisibilityConfig {
|
|
103
|
+
outputType: string;
|
|
104
|
+
operators: VisibilityOperators[];
|
|
105
|
+
}
|
|
96
106
|
export interface FieldConfig {
|
|
97
107
|
value: FieldType;
|
|
98
108
|
icon: string;
|
|
99
109
|
detail: string;
|
|
100
110
|
label: string;
|
|
101
111
|
properties: string[];
|
|
112
|
+
visibility: FieldVisibilityConfig;
|
|
102
113
|
}
|
|
114
|
+
export declare const VISIBILITY_OPERATOR_OPTIONS: {
|
|
115
|
+
id: VisibilityOperators;
|
|
116
|
+
text: string;
|
|
117
|
+
}[];
|
|
103
118
|
export declare const FIELDS_CONFIG: FieldConfig[];
|
|
104
|
-
export type FieldType = 'text' | 'number' | 'phone' | 'date' | 'time' | 'select' | 'radio' | 'checkbox' | 'switch' | 'textarea' | 'pool' | 'file' | 'multyselect' | 'searcher' | 'slider';
|
|
119
|
+
export type FieldType = 'text' | 'number' | 'phone' | 'date' | 'time' | 'select' | 'radio' | 'checkbox' | 'switch' | 'textarea' | 'pool' | 'file' | 'multyselect' | 'searcher' | 'slider' | 'repeater';
|
|
105
120
|
export interface FormResult {
|
|
106
121
|
result: boolean;
|
|
107
122
|
form: uicFormValuesRecord | null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { FormArray, FormGroup } from '@angular/forms';
|
|
3
|
+
import { FormField } from '../form.models';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class UicRepeaterComponent implements OnInit {
|
|
6
|
+
private readonly fb;
|
|
7
|
+
formArray: FormArray;
|
|
8
|
+
field: FormField;
|
|
9
|
+
cols: number;
|
|
10
|
+
error?: string;
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
getGroup(index: number): FormGroup;
|
|
13
|
+
addGroup(): void;
|
|
14
|
+
removeGroup(index: number): void;
|
|
15
|
+
get canAdd(): boolean;
|
|
16
|
+
get canRemove(): boolean;
|
|
17
|
+
private mapValidatorsFromField;
|
|
18
|
+
private getBlankValue;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UicRepeaterComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UicRepeaterComponent, "ui-repeater", never, { "formArray": { "alias": "formArray"; "required": true; }; "field": { "alias": "field"; "required": true; }; "cols": { "alias": "cols"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
2
2
|
import { EditableBlock, EditableField } from '../user-formbuilder.component';
|
|
3
|
-
import { FieldConfig } from '../../dynamic-form/form.models';
|
|
3
|
+
import { FieldConfig, FieldType } from '../../dynamic-form/form.models';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class BlockEditorComponent {
|
|
6
6
|
block: import("@angular/core").InputSignal<EditableBlock>;
|
|
@@ -8,13 +8,33 @@ export declare class BlockEditorComponent {
|
|
|
8
8
|
addFieldRequest: import("@angular/core").OutputEmitterRef<FieldConfig>;
|
|
9
9
|
deleteBlock: import("@angular/core").OutputEmitterRef<string>;
|
|
10
10
|
notifySelectedField: import("@angular/core").OutputEmitterRef<EditableField | null>;
|
|
11
|
+
notifySelectedSubField: import("@angular/core").OutputEmitterRef<{
|
|
12
|
+
parentCode: string;
|
|
13
|
+
subField: EditableField;
|
|
14
|
+
} | null>;
|
|
11
15
|
selectedFieldId: string | null;
|
|
16
|
+
selectedSubFieldCode: string | null;
|
|
17
|
+
visibilityParentFieldCodes: Set<string>;
|
|
18
|
+
excludeSubFieldTypes: FieldType[];
|
|
19
|
+
private expandedRepeaters;
|
|
20
|
+
isRepeaterExpanded(code: string): boolean;
|
|
21
|
+
toggleRepeater(code: string, event: Event): void;
|
|
22
|
+
isRepeaterParentSelected(field: EditableField): boolean;
|
|
12
23
|
selectField(field: EditableField): void;
|
|
24
|
+
onSelectSubField(parentCode: string, subField: EditableField, event: Event): void;
|
|
25
|
+
addSubField(parentCode: string, type: FieldConfig): void;
|
|
26
|
+
deleteSubField(parentCode: string, sfCode: string, event: Event): void;
|
|
27
|
+
reorderSubFields(parentCode: string, event: CdkDragDrop<EditableField[]>): void;
|
|
28
|
+
private updateSubFields;
|
|
29
|
+
private generateSubFieldCode;
|
|
13
30
|
changeTitle(newTitle: string): void;
|
|
14
31
|
changeSubtitle(newSubtitle: string): void;
|
|
15
32
|
addField(newFieldType: FieldConfig): void;
|
|
33
|
+
requestDeleteBlock(e: Event): void;
|
|
16
34
|
deleteField(fieldCode: string, e: Event): void;
|
|
35
|
+
isVisibilityParent(fieldCode: string): boolean;
|
|
36
|
+
isBlockVisibilityParent(): boolean;
|
|
17
37
|
reorderFields(event: CdkDragDrop<EditableField[]>): void;
|
|
18
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<BlockEditorComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BlockEditorComponent, "lib-block-editor", never, { "block": { "alias": "block"; "required": false; "isSignal": true; }; "selectedFieldId": { "alias": "selectedFieldId"; "required": false; }; }, { "blockChange": "blockChange"; "addFieldRequest": "addFieldRequest"; "deleteBlock": "deleteBlock"; "notifySelectedField": "notifySelectedField"; }, never, never, true, never>;
|
|
39
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BlockEditorComponent, "lib-block-editor", never, { "block": { "alias": "block"; "required": false; "isSignal": true; }; "selectedFieldId": { "alias": "selectedFieldId"; "required": false; }; "selectedSubFieldCode": { "alias": "selectedSubFieldCode"; "required": false; }; "visibilityParentFieldCodes": { "alias": "visibilityParentFieldCodes"; "required": false; }; }, { "blockChange": "blockChange"; "addFieldRequest": "addFieldRequest"; "deleteBlock": "deleteBlock"; "notifySelectedField": "notifySelectedField"; "notifySelectedSubField": "notifySelectedSubField"; }, never, never, true, never>;
|
|
20
40
|
}
|
package/lib/components/user-formbuilder/block-editor/field-editor/field-editor.component.d.ts
CHANGED
|
@@ -9,8 +9,10 @@ export declare class FieldEditorComponent {
|
|
|
9
9
|
hasOptions: import("@angular/core").Signal<boolean>;
|
|
10
10
|
hasOptionsSourceConfig: import("@angular/core").Signal<boolean>;
|
|
11
11
|
hasExternalOptionsSource: import("@angular/core").Signal<boolean>;
|
|
12
|
+
isRepeater: import("@angular/core").Signal<boolean>;
|
|
12
13
|
config: import("@angular/core").InputSignal<EditableField>;
|
|
13
14
|
focusRequiredField: import("@angular/core").InputSignal<boolean>;
|
|
15
|
+
isSubField: import("@angular/core").InputSignal<boolean>;
|
|
14
16
|
options: import("@angular/core").InputSignal<Record<string, AppSelectOption[]>>;
|
|
15
17
|
hiddenSections: import("@angular/core").WritableSignal<string[]>;
|
|
16
18
|
fieldChange: import("@angular/core").OutputEmitterRef<FormField>;
|
|
@@ -19,7 +21,8 @@ export declare class FieldEditorComponent {
|
|
|
19
21
|
optionsSourceFields: import("@angular/core").Signal<FormField[]>;
|
|
20
22
|
advancedFields: import("@angular/core").Signal<FormField[]>;
|
|
21
23
|
styleFields: import("@angular/core").Signal<FormField[]>;
|
|
22
|
-
|
|
24
|
+
branchDraftValues: import("@angular/core").WritableSignal<uicFormValuesRecord>;
|
|
25
|
+
branchFields: import("@angular/core").Signal<FormField[]>;
|
|
23
26
|
initialValues: import("@angular/core").Signal<FormField>;
|
|
24
27
|
branchInitialValues: import("@angular/core").Signal<uicFormValuesRecord>;
|
|
25
28
|
fieldType: import("@angular/core").Signal<import("ui-core-abv").FieldConfig | undefined>;
|
|
@@ -38,6 +41,13 @@ export declare class FieldEditorComponent {
|
|
|
38
41
|
private buildOptionsSourceFields;
|
|
39
42
|
private prepareOptionsSourceField;
|
|
40
43
|
private buildBranchFields;
|
|
44
|
+
private prepareBranchField;
|
|
45
|
+
private getAllowedVisibilityOperators;
|
|
46
|
+
private getDependencyFieldType;
|
|
47
|
+
private getBranchValueFieldType;
|
|
48
|
+
private ruleToBranchValues;
|
|
49
|
+
private clearCurrentVisibilityRule;
|
|
50
|
+
private isValueLessVisibilityOperator;
|
|
41
51
|
static ɵfac: i0.ɵɵFactoryDeclaration<FieldEditorComponent, never>;
|
|
42
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FieldEditorComponent, "lib-field-editor", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "focusRequiredField": { "alias": "focusRequiredField"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "fieldChange": "fieldChange"; }, never, never, true, never>;
|
|
52
|
+
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>;
|
|
43
53
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { FieldConfig } from '../../../dynamic-form/form.models';
|
|
1
|
+
import { FieldConfig, FieldType } from '../../../dynamic-form/form.models';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class FieldTypeSelectorComponent {
|
|
4
|
-
|
|
4
|
+
excludeTypes: import("@angular/core").InputSignal<FieldType[]>;
|
|
5
|
+
types: import("@angular/core").Signal<FieldConfig[]>;
|
|
5
6
|
selectType: import("@angular/core").OutputEmitterRef<FieldConfig>;
|
|
6
7
|
addField(type: FieldConfig): void;
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<FieldTypeSelectorComponent, never>;
|
|
8
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FieldTypeSelectorComponent, "lib-field-type-selector", never, {}, { "selectType": "selectType"; }, never, never, true, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FieldTypeSelectorComponent, "lib-field-type-selector", never, { "excludeTypes": { "alias": "excludeTypes"; "required": false; "isSignal": true; }; }, { "selectType": "selectType"; }, never, never, true, never>;
|
|
9
10
|
}
|
|
@@ -8,6 +8,7 @@ export type EditableField = {
|
|
|
8
8
|
type?: string;
|
|
9
9
|
field?: FieldConfig;
|
|
10
10
|
fieldData: FormField;
|
|
11
|
+
repeaterSubFields?: EditableField[];
|
|
11
12
|
};
|
|
12
13
|
export type EditableBlock = {
|
|
13
14
|
id?: number | null;
|
|
@@ -39,9 +40,14 @@ export declare class UicUserFormbuilderComponent {
|
|
|
39
40
|
editingSnapshot: import("@angular/core").WritableSignal<EditableForm | null>;
|
|
40
41
|
isReadOnly: import("@angular/core").WritableSignal<boolean>;
|
|
41
42
|
selectedField: import("@angular/core").WritableSignal<EditableField | null>;
|
|
43
|
+
editingSubField: import("@angular/core").WritableSignal<{
|
|
44
|
+
parentCode: string;
|
|
45
|
+
subField: EditableField;
|
|
46
|
+
} | null>;
|
|
42
47
|
focusNewFieldCode: import("@angular/core").WritableSignal<string | null>;
|
|
43
48
|
propertiesWidth: import("@angular/core").WritableSignal<number>;
|
|
44
49
|
previewSchema: import("@angular/core").Signal<FormSchema>;
|
|
50
|
+
visibilityParentFieldCodes: import("@angular/core").Signal<Set<string>>;
|
|
45
51
|
private isResizingProperties;
|
|
46
52
|
private resizeStartX;
|
|
47
53
|
private resizeStartWidth;
|
|
@@ -51,6 +57,11 @@ export declare class UicUserFormbuilderComponent {
|
|
|
51
57
|
deleteBlock(code: string): void;
|
|
52
58
|
addField(blockCode: string, newFieldType: FieldConfig): void;
|
|
53
59
|
selectField(field: EditableField | null): void;
|
|
60
|
+
onSelectSubField(event: {
|
|
61
|
+
parentCode: string;
|
|
62
|
+
subField: EditableField;
|
|
63
|
+
} | null): void;
|
|
64
|
+
onSubFieldChange(updatedFieldData: FormField): void;
|
|
54
65
|
startPropertiesResize(event: MouseEvent): void;
|
|
55
66
|
onPropertiesResize(event: MouseEvent): void;
|
|
56
67
|
stopPropertiesResize(): void;
|
|
@@ -158,6 +158,8 @@ export declare const DICTIONARY_EN: {
|
|
|
158
158
|
readonly block_subtitle: "Subtitle";
|
|
159
159
|
readonly add_block: "Add block";
|
|
160
160
|
readonly delete_block: "Delete block";
|
|
161
|
+
readonly delete_block_dependency_blocked: "This block cannot be deleted because it contains fields that other fields depend on";
|
|
162
|
+
readonly delete_field_dependency_blocked: "This field cannot be deleted because another field depends on its value";
|
|
161
163
|
readonly preview_form: "Preview";
|
|
162
164
|
readonly submit_form: "Submit";
|
|
163
165
|
readonly select_field_to_edit: "Select a field to edit its properties";
|
|
@@ -256,6 +258,13 @@ export declare const DICTIONARY_EN: {
|
|
|
256
258
|
readonly selectSearchEnabled_tip: "Enables search among options";
|
|
257
259
|
readonly selectNullable: "Allow empty option";
|
|
258
260
|
readonly selectSearchEnabled: "Enable search";
|
|
261
|
+
readonly repeaterMinItems: "Minimum items";
|
|
262
|
+
readonly repeaterMinItems_tip: "Minimum number of required items";
|
|
263
|
+
readonly repeaterMaxItems: "Maximum items";
|
|
264
|
+
readonly repeaterMaxItems_tip: "Maximum number of allowed items";
|
|
265
|
+
readonly repeaterAddLabel: "Add button label";
|
|
266
|
+
readonly repeaterRemoveLabel: "Remove button label";
|
|
267
|
+
readonly repeaterItemTitle: "Item title";
|
|
259
268
|
};
|
|
260
269
|
readonly options_editor: {
|
|
261
270
|
readonly title: "Options";
|
|
@@ -281,11 +290,26 @@ export declare const DICTIONARY_EN: {
|
|
|
281
290
|
readonly delete: "Delete";
|
|
282
291
|
readonly show_advanced: "Show advanced";
|
|
283
292
|
readonly hide_advanced: "Hide advanced";
|
|
293
|
+
readonly subfields: "Sub-fields";
|
|
294
|
+
};
|
|
295
|
+
readonly visibility_operators: {
|
|
296
|
+
readonly equals: "Equals";
|
|
297
|
+
readonly notEquals: "Does not equal";
|
|
298
|
+
readonly greaterThan: "Is greater than";
|
|
299
|
+
readonly lessThan: "Is less than";
|
|
300
|
+
readonly includes: "Includes";
|
|
301
|
+
readonly notIncludes: "Does not include";
|
|
302
|
+
readonly isEmpty: "Is empty";
|
|
303
|
+
readonly isNotEmpty: "Is not empty";
|
|
284
304
|
};
|
|
285
305
|
readonly validation: {
|
|
286
306
|
readonly duplicate_identifier: "The identifier \"{{identifier}}\" is used more than once.";
|
|
287
307
|
readonly duplicate_identifier_title: "Validation error";
|
|
288
308
|
};
|
|
309
|
+
readonly repeater: {
|
|
310
|
+
readonly no_subfields: "No sub-fields yet. Add one below.";
|
|
311
|
+
readonly add_subfield: "Add sub-field";
|
|
312
|
+
};
|
|
289
313
|
};
|
|
290
314
|
readonly validation: {
|
|
291
315
|
readonly invalid: "{{field}} is invalid.";
|
|
@@ -158,6 +158,8 @@ export declare const DICTIONARY_ES: {
|
|
|
158
158
|
readonly block_subtitle: "Subtítulo";
|
|
159
159
|
readonly add_block: "Agregar bloque";
|
|
160
160
|
readonly delete_block: "Eliminar bloque";
|
|
161
|
+
readonly delete_block_dependency_blocked: "Este bloque no se puede eliminar porque contiene campos de los que dependen otros campos";
|
|
162
|
+
readonly delete_field_dependency_blocked: "Este campo no se puede eliminar porque otro campo depende de su valor";
|
|
161
163
|
readonly preview_form: "Vista previa";
|
|
162
164
|
readonly submit_form: "Guardar";
|
|
163
165
|
readonly select_field_to_edit: "Selecciona un campo para editar sus propiedades";
|
|
@@ -240,22 +242,29 @@ export declare const DICTIONARY_ES: {
|
|
|
240
242
|
readonly iaValidation: "Validación IA";
|
|
241
243
|
readonly iaValidationPrompt: "Prompt de validación IA";
|
|
242
244
|
readonly searchApi_tip: "URL para obtener opciones de búsqueda";
|
|
243
|
-
readonly optionsSourceKey: "
|
|
244
|
-
readonly optionsSourceKey_tip: "
|
|
245
|
-
readonly optionsSourceIdField: "
|
|
246
|
-
readonly optionsSourceIdField_tip: "
|
|
247
|
-
readonly optionsSourceTextField: "
|
|
248
|
-
readonly optionsSourceTextField_tip: "
|
|
245
|
+
readonly optionsSourceKey: "Origen de opciones";
|
|
246
|
+
readonly optionsSourceKey_tip: "Opciones manuales o API externa";
|
|
247
|
+
readonly optionsSourceIdField: "Nombre de campo ID";
|
|
248
|
+
readonly optionsSourceIdField_tip: "Propiedad del objeto para usar como ID";
|
|
249
|
+
readonly optionsSourceTextField: "Nombre de campo de texto";
|
|
250
|
+
readonly optionsSourceTextField_tip: "Propiedad del objeto para mostrar";
|
|
249
251
|
readonly optionsSourceTextTemplate: "Plantilla de texto";
|
|
250
252
|
readonly optionsSourceTextTemplate_tip: "Ejemplo: {{name}} ({{id}})";
|
|
251
253
|
readonly optionsSourceDependsOn: "Depende de";
|
|
252
|
-
readonly optionsSourceDependsOn_tip: "
|
|
254
|
+
readonly optionsSourceDependsOn_tip: "Campo para filtrar opciones según valor";
|
|
253
255
|
readonly optionsSourceParamName: "Nombre del parámetro";
|
|
254
256
|
readonly optionsSourceParamName_tip: "Nombre con el que se envía el valor dependiente";
|
|
255
257
|
readonly selectNullable_tip: "Permite seleccionar una opción vacía";
|
|
256
258
|
readonly selectSearchEnabled_tip: "Habilita búsqueda entre opciones";
|
|
257
259
|
readonly selectNullable: "Permitir opción vacía";
|
|
258
260
|
readonly selectSearchEnabled: "Habilitar búsqueda";
|
|
261
|
+
readonly repeaterMinItems: "Mínimo de ítems";
|
|
262
|
+
readonly repeaterMinItems_tip: "Cantidad mínima de ítems requerida";
|
|
263
|
+
readonly repeaterMaxItems: "Máximo de ítems";
|
|
264
|
+
readonly repeaterMaxItems_tip: "Cantidad máxima de ítems permitida";
|
|
265
|
+
readonly repeaterAddLabel: "Etiqueta del botón agregar";
|
|
266
|
+
readonly repeaterRemoveLabel: "Etiqueta del botón eliminar";
|
|
267
|
+
readonly repeaterItemTitle: "Título de ítem";
|
|
259
268
|
};
|
|
260
269
|
readonly options_editor: {
|
|
261
270
|
readonly title: "Opciones";
|
|
@@ -281,11 +290,26 @@ export declare const DICTIONARY_ES: {
|
|
|
281
290
|
readonly delete: "Eliminar";
|
|
282
291
|
readonly show_advanced: "Mostrar avanzado";
|
|
283
292
|
readonly hide_advanced: "Ocultar avanzado";
|
|
293
|
+
readonly subfields: "Sub-campos";
|
|
294
|
+
};
|
|
295
|
+
readonly visibility_operators: {
|
|
296
|
+
readonly equals: "Es igual a";
|
|
297
|
+
readonly notEquals: "No es igual a";
|
|
298
|
+
readonly greaterThan: "Es mayor que";
|
|
299
|
+
readonly lessThan: "Es menor que";
|
|
300
|
+
readonly includes: "Incluye";
|
|
301
|
+
readonly notIncludes: "No incluye";
|
|
302
|
+
readonly isEmpty: "Está vacío";
|
|
303
|
+
readonly isNotEmpty: "No está vacío";
|
|
284
304
|
};
|
|
285
305
|
readonly validation: {
|
|
286
306
|
readonly duplicate_identifier: "El identificador \"{{identifier}}\" se está usando más de una vez.";
|
|
287
307
|
readonly duplicate_identifier_title: "Error de validación";
|
|
288
308
|
};
|
|
309
|
+
readonly repeater: {
|
|
310
|
+
readonly no_subfields: "Sin sub-campos. Añade uno abajo.";
|
|
311
|
+
readonly add_subfield: "Agregar sub-campo";
|
|
312
|
+
};
|
|
289
313
|
};
|
|
290
314
|
readonly validation: {
|
|
291
315
|
readonly invalid: "{{field}} es invalido.";
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ export * from './lib/components/tag-selector/tag-selector.component';
|
|
|
40
40
|
export * from './lib/components/progress-bar/progress-bar.component';
|
|
41
41
|
export * from './lib/animations/animatios.index';
|
|
42
42
|
export * from './lib/components/dynamic-form/form.models';
|
|
43
|
+
export * from './lib/components/dynamic-form/repeater/repeater.component';
|
|
43
44
|
export * from './lib/components/user-formbuilder/user-formbuilder.component';
|
|
44
45
|
export * from './lib/components/rule-builder/rule-builder.component';
|
|
45
46
|
export * from './lib/services/modal.service';
|