@ngstarter-ui/components 21.0.39 → 21.0.40
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/ai/component-registry.json +143 -1
- package/fesm2022/ngstarter-ui-components-form-builder.mjs +1695 -0
- package/fesm2022/ngstarter-ui-components-form-builder.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-toolbar.mjs +2 -4
- package/fesm2022/ngstarter-ui-components-toolbar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tree.mjs +146 -14
- package/fesm2022/ngstarter-ui-components-tree.mjs.map +1 -1
- package/package.json +5 -1
- package/types/ngstarter-ui-components-form-builder.d.ts +317 -0
- package/types/ngstarter-ui-components-tree.d.ts +38 -4
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import * as _angular_forms from '@angular/forms';
|
|
2
|
+
import { ValidatorFn, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import * as _angular_core from '@angular/core';
|
|
4
|
+
import { Type, InjectionToken, EnvironmentProviders, TemplateRef } from '@angular/core';
|
|
5
|
+
import { CdkDrag, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
6
|
+
import { TreeNodeDropPosition, Tree, TreeNodeDrop } from '@ngstarter-ui/components/tree';
|
|
7
|
+
|
|
8
|
+
type FormBuilderFieldWidth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
9
|
+
interface FormBuilderOption {
|
|
10
|
+
label: string;
|
|
11
|
+
value: any;
|
|
12
|
+
}
|
|
13
|
+
interface FormBuilderValidationRule {
|
|
14
|
+
type: 'required' | 'email' | 'minLength' | 'maxLength' | 'min' | 'max' | string;
|
|
15
|
+
value?: any;
|
|
16
|
+
message?: string;
|
|
17
|
+
}
|
|
18
|
+
interface FormBuilderVisibility {
|
|
19
|
+
form?: boolean;
|
|
20
|
+
email?: boolean;
|
|
21
|
+
pdf?: boolean;
|
|
22
|
+
condition?: string;
|
|
23
|
+
}
|
|
24
|
+
interface FormBuilderField {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
type: string;
|
|
28
|
+
label: string;
|
|
29
|
+
placeholder?: string;
|
|
30
|
+
hint?: string;
|
|
31
|
+
defaultValue?: any;
|
|
32
|
+
required?: boolean;
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
readonly?: boolean;
|
|
35
|
+
width?: FormBuilderFieldWidth;
|
|
36
|
+
options?: FormBuilderOption[];
|
|
37
|
+
validation?: FormBuilderValidationRule[];
|
|
38
|
+
visibility?: FormBuilderVisibility;
|
|
39
|
+
settings?: Record<string, any>;
|
|
40
|
+
children?: FormBuilderField[];
|
|
41
|
+
}
|
|
42
|
+
interface FormBuilderSection {
|
|
43
|
+
id: string;
|
|
44
|
+
title: string;
|
|
45
|
+
description?: string;
|
|
46
|
+
collapsed?: boolean;
|
|
47
|
+
fields: FormBuilderField[];
|
|
48
|
+
}
|
|
49
|
+
interface FormBuilderLayoutItem {
|
|
50
|
+
kind: 'field' | 'section';
|
|
51
|
+
id: string;
|
|
52
|
+
}
|
|
53
|
+
interface FormBuilderSchema {
|
|
54
|
+
title?: string;
|
|
55
|
+
fields?: FormBuilderField[];
|
|
56
|
+
layout?: FormBuilderLayoutItem[];
|
|
57
|
+
sections: FormBuilderSection[];
|
|
58
|
+
}
|
|
59
|
+
interface FormBuilderFieldRenderContext {
|
|
60
|
+
field: FormBuilderField;
|
|
61
|
+
control: FormControl;
|
|
62
|
+
readonly: boolean;
|
|
63
|
+
}
|
|
64
|
+
interface FormBuilderSettingsContext {
|
|
65
|
+
field: FormBuilderField;
|
|
66
|
+
schema: FormBuilderSchema;
|
|
67
|
+
update: (changes: Partial<FormBuilderField>) => void;
|
|
68
|
+
}
|
|
69
|
+
type FormBuilderComponentImporter<T = any> = () => Promise<Type<T>>;
|
|
70
|
+
interface FormBuilderFieldDefinition {
|
|
71
|
+
type: string;
|
|
72
|
+
label: string;
|
|
73
|
+
group?: string;
|
|
74
|
+
icon?: string;
|
|
75
|
+
description?: string;
|
|
76
|
+
defaults?: Partial<FormBuilderField>;
|
|
77
|
+
renderer?: FormBuilderComponentImporter;
|
|
78
|
+
settings?: FormBuilderComponentImporter;
|
|
79
|
+
validators?: (field: FormBuilderField) => ValidatorFn[];
|
|
80
|
+
}
|
|
81
|
+
interface FormBuilderSettingsDefinition {
|
|
82
|
+
fieldType: string;
|
|
83
|
+
component: FormBuilderComponentImporter;
|
|
84
|
+
}
|
|
85
|
+
interface FormBuilderFieldChange {
|
|
86
|
+
field: FormBuilderField;
|
|
87
|
+
section?: FormBuilderSection;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
declare const FORM_BUILDER_FIELDS: InjectionToken<FormBuilderFieldDefinition[]>;
|
|
91
|
+
declare const FORM_BUILDER_SETTINGS: InjectionToken<FormBuilderSettingsDefinition[]>;
|
|
92
|
+
declare function formBuilderField(definition: FormBuilderFieldDefinition): FormBuilderFieldDefinition;
|
|
93
|
+
declare function formBuilderSettings(definition: FormBuilderSettingsDefinition): FormBuilderSettingsDefinition;
|
|
94
|
+
declare function provideFormBuilder(config?: {
|
|
95
|
+
fields?: FormBuilderFieldDefinition[];
|
|
96
|
+
settings?: FormBuilderSettingsDefinition[];
|
|
97
|
+
}): EnvironmentProviders;
|
|
98
|
+
declare const DEFAULT_FORM_BUILDER_FIELDS: FormBuilderFieldDefinition[];
|
|
99
|
+
declare function validatorsFromRules(rules?: FormBuilderValidationRule[], field?: FormBuilderField): _angular_forms.ValidatorFn[];
|
|
100
|
+
|
|
101
|
+
interface FormBuilderPaletteGroup {
|
|
102
|
+
name: string;
|
|
103
|
+
fields: FormBuilderFieldDefinition[];
|
|
104
|
+
}
|
|
105
|
+
interface FormBuilderFieldTreeNode {
|
|
106
|
+
id: string;
|
|
107
|
+
label: string;
|
|
108
|
+
name?: string;
|
|
109
|
+
type: string;
|
|
110
|
+
icon: string;
|
|
111
|
+
kind: 'section' | 'field';
|
|
112
|
+
field?: FormBuilderField;
|
|
113
|
+
section?: FormBuilderSection;
|
|
114
|
+
children?: FormBuilderFieldTreeNode[];
|
|
115
|
+
}
|
|
116
|
+
interface FormBuilderCanvasItem extends FormBuilderLayoutItem {
|
|
117
|
+
field?: FormBuilderField;
|
|
118
|
+
section?: FormBuilderSection;
|
|
119
|
+
}
|
|
120
|
+
type FormBuilderNativeDragItem = {
|
|
121
|
+
kind: 'field';
|
|
122
|
+
definition: FormBuilderFieldDefinition;
|
|
123
|
+
} | {
|
|
124
|
+
kind: 'section';
|
|
125
|
+
};
|
|
126
|
+
declare class FormBuilder {
|
|
127
|
+
private readonly dialog;
|
|
128
|
+
private readonly confirmManager;
|
|
129
|
+
private readonly elementRef;
|
|
130
|
+
private readonly providedFields;
|
|
131
|
+
private readonly providedSettings;
|
|
132
|
+
private readonly previewControls;
|
|
133
|
+
private readonly actualFieldsTree;
|
|
134
|
+
private suppressPaletteClick;
|
|
135
|
+
readonly schema: _angular_core.ModelSignal<FormBuilderSchema>;
|
|
136
|
+
readonly paletteTitle: _angular_core.InputSignal<string>;
|
|
137
|
+
readonly inspectorTitle: _angular_core.InputSignal<string>;
|
|
138
|
+
readonly fieldSelected: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
|
|
139
|
+
readonly fieldAdded: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
|
|
140
|
+
readonly fieldRemoved: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
|
|
141
|
+
protected readonly search: _angular_core.WritableSignal<string>;
|
|
142
|
+
protected readonly selectedFieldId: _angular_core.WritableSignal<string | null>;
|
|
143
|
+
protected readonly nativeDragItem: _angular_core.WritableSignal<FormBuilderNativeDragItem | null>;
|
|
144
|
+
protected readonly nativeDragFieldDefinition: _angular_core.Signal<FormBuilderFieldDefinition | null>;
|
|
145
|
+
protected readonly nativeDragSection: _angular_core.Signal<boolean>;
|
|
146
|
+
protected readonly nativeDropTarget: _angular_core.WritableSignal<{
|
|
147
|
+
containerId: string;
|
|
148
|
+
index: number;
|
|
149
|
+
} | null>;
|
|
150
|
+
protected readonly dragCollapsedSectionIds: _angular_core.WritableSignal<ReadonlySet<string>>;
|
|
151
|
+
protected readonly expandedFieldTreeNodeIds: _angular_core.WritableSignal<ReadonlySet<string>>;
|
|
152
|
+
protected readonly definitions: _angular_core.Signal<FormBuilderFieldDefinition[]>;
|
|
153
|
+
protected readonly settingsDefinitions: _angular_core.Signal<FormBuilderSettingsDefinition[]>;
|
|
154
|
+
protected readonly fieldContainerDropListIds: _angular_core.Signal<string[]>;
|
|
155
|
+
protected readonly canvasItems: _angular_core.Signal<FormBuilderCanvasItem[]>;
|
|
156
|
+
protected readonly layoutDefinitions: _angular_core.Signal<FormBuilderFieldDefinition[]>;
|
|
157
|
+
protected readonly paletteGroups: _angular_core.Signal<FormBuilderPaletteGroup[]>;
|
|
158
|
+
protected readonly selectedField: _angular_core.Signal<FormBuilderField | null>;
|
|
159
|
+
protected readonly selectedSection: _angular_core.Signal<FormBuilderSection | null>;
|
|
160
|
+
protected readonly fieldTree: _angular_core.Signal<FormBuilderFieldTreeNode[]>;
|
|
161
|
+
protected readonly fieldTreeChildrenAccessor: (node: FormBuilderFieldTreeNode) => FormBuilderFieldTreeNode[];
|
|
162
|
+
protected readonly hasFieldTreeChildren: (_: number, node: FormBuilderFieldTreeNode) => boolean;
|
|
163
|
+
protected readonly trackFieldTreeNode: (_: number, node: FormBuilderFieldTreeNode) => string;
|
|
164
|
+
protected readonly fieldTreeDraggablePredicate: (_node: FormBuilderFieldTreeNode) => boolean;
|
|
165
|
+
protected readonly fieldTreeDropPredicate: (source: FormBuilderFieldTreeNode, target: FormBuilderFieldTreeNode, position: TreeNodeDropPosition) => boolean;
|
|
166
|
+
protected readonly updateSelectedField: (changes: Partial<FormBuilderField>) => void;
|
|
167
|
+
protected readonly fieldDropListEnterPredicate: (drag: CdkDrag<unknown>) => boolean;
|
|
168
|
+
protected paletteDragStarted(event: DragEvent, definition: FormBuilderFieldDefinition): void;
|
|
169
|
+
protected sectionPaletteDragStarted(event: DragEvent): void;
|
|
170
|
+
protected paletteDragEnded(): void;
|
|
171
|
+
protected paletteClicked(definition: FormBuilderFieldDefinition): void;
|
|
172
|
+
protected nativeCanvasDragOver(event: DragEvent): void;
|
|
173
|
+
protected nativeFieldDragOver(event: DragEvent, containerId: string): void;
|
|
174
|
+
protected nativeSectionDragOver(event: DragEvent, section: FormBuilderSection): void;
|
|
175
|
+
protected nativeSectionDrop(event: DragEvent, section: FormBuilderSection): void;
|
|
176
|
+
protected nativeContainerFieldDragOver(event: DragEvent, field: FormBuilderField): void;
|
|
177
|
+
protected nativeContainerFieldDragLeave(event: DragEvent, field: FormBuilderField): void;
|
|
178
|
+
protected nativeContainerFieldDrop(event: DragEvent, field: FormBuilderField): void;
|
|
179
|
+
protected nativeDragLeave(event: DragEvent, containerId: string): void;
|
|
180
|
+
protected nativeFieldDrop(event: DragEvent, containerId: string): void;
|
|
181
|
+
protected isNativeDropTarget(containerId: string, index: number): boolean;
|
|
182
|
+
protected addField(definition: FormBuilderFieldDefinition, sectionId?: string): void;
|
|
183
|
+
protected addSection(): void;
|
|
184
|
+
protected openPreview(template: TemplateRef<unknown>): void;
|
|
185
|
+
protected removeSection(section: FormBuilderSection): void;
|
|
186
|
+
protected updateSection(section: FormBuilderSection, changes: Partial<FormBuilderSection>): void;
|
|
187
|
+
protected sectionDragStarted(section: FormBuilderSection): void;
|
|
188
|
+
protected sectionDragEnded(section: FormBuilderSection): void;
|
|
189
|
+
protected isSectionCollapsed(section: FormBuilderSection): boolean;
|
|
190
|
+
protected dropField(event: CdkDragDrop<FormBuilderField[], any, any>): void;
|
|
191
|
+
protected dropCanvasItem(event: CdkDragDrop<FormBuilderCanvasItem[], any, any>): void;
|
|
192
|
+
protected selectField(field: FormBuilderField, section?: FormBuilderSection | null): void;
|
|
193
|
+
protected selectFieldTreeNode(node: FormBuilderFieldTreeNode): void;
|
|
194
|
+
protected toggleFieldTreeNode(tree: Tree<FormBuilderFieldTreeNode>, node: FormBuilderFieldTreeNode, event: MouseEvent): void;
|
|
195
|
+
protected isFieldTreeNodeExpanded(tree: Tree<FormBuilderFieldTreeNode>, node: FormBuilderFieldTreeNode): boolean;
|
|
196
|
+
protected fieldTreePlaceholderIcon(source: FormBuilderFieldTreeNode): string;
|
|
197
|
+
protected fieldTreeNodeDropped(event: TreeNodeDrop<FormBuilderFieldTreeNode>): void;
|
|
198
|
+
protected confirmRemoveField(field: FormBuilderField): void;
|
|
199
|
+
private removeField;
|
|
200
|
+
protected sectionDropListId(section: FormBuilderSection): string;
|
|
201
|
+
protected fieldDropListId(field: FormBuilderField): string;
|
|
202
|
+
protected rootDropListId(): string;
|
|
203
|
+
protected previewControl(field: FormBuilderField): FormControl;
|
|
204
|
+
protected patchSelectedField(changes: Partial<FormBuilderField>): void;
|
|
205
|
+
protected isContainerField(field: FormBuilderField): boolean;
|
|
206
|
+
protected fieldIcon(field: FormBuilderField): string;
|
|
207
|
+
protected definitionWidth(definition: FormBuilderFieldDefinition): FormBuilderFieldWidth;
|
|
208
|
+
private matchesPaletteQuery;
|
|
209
|
+
private nativeDragOver;
|
|
210
|
+
private nativeDragOverAtIndex;
|
|
211
|
+
private insertNativeField;
|
|
212
|
+
private insertNativeSection;
|
|
213
|
+
private resolveNativeDragItem;
|
|
214
|
+
private resolveNativeDropIndex;
|
|
215
|
+
private setPaletteDragImage;
|
|
216
|
+
private createField;
|
|
217
|
+
private defaultWidth;
|
|
218
|
+
private resolveCanvasItems;
|
|
219
|
+
private normalizedLayout;
|
|
220
|
+
private collectFieldContainerDropListIds;
|
|
221
|
+
private collectFieldDropListIds;
|
|
222
|
+
private resolveCanvasDragItem;
|
|
223
|
+
private detachFieldFromLocation;
|
|
224
|
+
private insertFieldIntoTreeSection;
|
|
225
|
+
private insertFieldAroundTreeSection;
|
|
226
|
+
private resolveTreeFieldInsertTarget;
|
|
227
|
+
private insertRootFieldIntoLayout;
|
|
228
|
+
private clearSectionDragCollapse;
|
|
229
|
+
private resetFieldTreeAfterRejectedDrop;
|
|
230
|
+
private canDropFieldTreeNode;
|
|
231
|
+
private dropFieldTreeSection;
|
|
232
|
+
private isRootFieldTreeNode;
|
|
233
|
+
private restoreFieldTreeExpansion;
|
|
234
|
+
private flattenFieldTree;
|
|
235
|
+
private scrollCanvasFieldIntoView;
|
|
236
|
+
private findCanvasFieldElement;
|
|
237
|
+
private scrollElementFullyIntoView;
|
|
238
|
+
private afterNextPaint;
|
|
239
|
+
private createFieldTreeNode;
|
|
240
|
+
private findContainerLocation;
|
|
241
|
+
private findFieldContainerLocation;
|
|
242
|
+
private findFieldLocation;
|
|
243
|
+
private deletePreviewControls;
|
|
244
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilder, never>;
|
|
245
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilder, "ngs-form-builder", ["ngsFormBuilder"], { "schema": { "alias": "schema"; "required": false; "isSignal": true; }; "paletteTitle": { "alias": "paletteTitle"; "required": false; "isSignal": true; }; "inspectorTitle": { "alias": "inspectorTitle"; "required": false; "isSignal": true; }; }, { "schema": "schemaChange"; "fieldSelected": "fieldSelected"; "fieldAdded": "fieldAdded"; "fieldRemoved": "fieldRemoved"; }, never, never, true, never>;
|
|
246
|
+
}
|
|
247
|
+
declare function createDefaultFormBuilderSchema(): FormBuilderSchema;
|
|
248
|
+
|
|
249
|
+
interface FormBuilderRendererCanvasItem extends FormBuilderLayoutItem {
|
|
250
|
+
field?: FormBuilderField;
|
|
251
|
+
section?: FormBuilderSection;
|
|
252
|
+
}
|
|
253
|
+
declare class FormBuilderRenderer {
|
|
254
|
+
private readonly providedFields;
|
|
255
|
+
readonly schema: _angular_core.InputSignal<FormBuilderSchema>;
|
|
256
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
257
|
+
readonly showSubmit: _angular_core.InputSignal<boolean>;
|
|
258
|
+
readonly submitLabel: _angular_core.InputSignal<string>;
|
|
259
|
+
readonly value: _angular_core.ModelSignal<Record<string, any>>;
|
|
260
|
+
readonly formSubmit: _angular_core.OutputEmitterRef<Record<string, any>>;
|
|
261
|
+
readonly formReady: _angular_core.OutputEmitterRef<FormGroup<any>>;
|
|
262
|
+
protected readonly definitions: _angular_core.Signal<FormBuilderFieldDefinition[]>;
|
|
263
|
+
protected readonly visibleCanvasItems: _angular_core.Signal<FormBuilderRendererCanvasItem[]>;
|
|
264
|
+
protected readonly formGroup: _angular_core.Signal<FormGroup<any>>;
|
|
265
|
+
constructor();
|
|
266
|
+
protected getControl(field: FormBuilderField): FormControl;
|
|
267
|
+
protected isContainerField(field: FormBuilderField): boolean;
|
|
268
|
+
protected visibleChildren(field: FormBuilderField): FormBuilderField[];
|
|
269
|
+
protected submit(): void;
|
|
270
|
+
private createFormGroup;
|
|
271
|
+
private visibleFields;
|
|
272
|
+
private resolveCanvasItems;
|
|
273
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderRenderer, never>;
|
|
274
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderRenderer, "ngs-form-builder-renderer", ["ngsFormBuilderRenderer"], { "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "showSubmit": { "alias": "showSubmit"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "formSubmit": "formSubmit"; "formReady": "formReady"; }, never, never, true, never>;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
declare class FormBuilderFieldHost {
|
|
278
|
+
readonly field: _angular_core.InputSignal<FormBuilderField>;
|
|
279
|
+
readonly control: _angular_core.InputSignal<FormControl<any>>;
|
|
280
|
+
readonly definitions: _angular_core.InputSignal<FormBuilderFieldDefinition[]>;
|
|
281
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
282
|
+
readonly editableCanvas: _angular_core.InputSignal<boolean>;
|
|
283
|
+
protected readonly customLoaded: _angular_core.WritableSignal<boolean>;
|
|
284
|
+
protected readonly textInputType: _angular_core.Signal<"email" | "text" | "number">;
|
|
285
|
+
private readonly anchor;
|
|
286
|
+
constructor();
|
|
287
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderFieldHost, never>;
|
|
288
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderFieldHost, "ngs-form-builder-field-host", ["ngsFormBuilderFieldHost"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "control": { "alias": "control"; "required": true; "isSignal": true; }; "definitions": { "alias": "definitions"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "editableCanvas": { "alias": "editableCanvas"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
declare class FormBuilderSettingsHost {
|
|
292
|
+
readonly field: _angular_core.InputSignal<FormBuilderField>;
|
|
293
|
+
readonly schema: _angular_core.InputSignal<FormBuilderSchema>;
|
|
294
|
+
readonly definitions: _angular_core.InputSignal<FormBuilderFieldDefinition[]>;
|
|
295
|
+
readonly settingsDefinitions: _angular_core.InputSignal<FormBuilderSettingsDefinition[]>;
|
|
296
|
+
readonly update: _angular_core.InputSignal<(changes: Partial<FormBuilderField>) => void>;
|
|
297
|
+
protected readonly customLoaded: _angular_core.WritableSignal<boolean>;
|
|
298
|
+
private readonly anchor;
|
|
299
|
+
constructor();
|
|
300
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderSettingsHost, never>;
|
|
301
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderSettingsHost, "ngs-form-builder-settings-host", ["ngsFormBuilderSettingsHost"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "definitions": { "alias": "definitions"; "required": false; "isSignal": true; }; "settingsDefinitions": { "alias": "settingsDefinitions"; "required": false; "isSignal": true; }; "update": { "alias": "update"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
declare class BasicFormBuilderFieldSettings {
|
|
305
|
+
readonly field: _angular_core.InputSignal<FormBuilderField>;
|
|
306
|
+
readonly update: _angular_core.InputSignal<(changes: Partial<FormBuilderField>) => void>;
|
|
307
|
+
protected readonly fieldWidthOptions: FormBuilderFieldWidth[];
|
|
308
|
+
protected readonly hasOptions: _angular_core.Signal<boolean>;
|
|
309
|
+
protected readonly optionsText: _angular_core.Signal<string>;
|
|
310
|
+
protected patch(changes: Partial<FormBuilderField>): void;
|
|
311
|
+
protected patchOptions(value: string): void;
|
|
312
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BasicFormBuilderFieldSettings, never>;
|
|
313
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BasicFormBuilderFieldSettings, "ngs-basic-form-builder-field-settings", ["ngsBasicFormBuilderFieldSettings"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "update": { "alias": "update"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export { BasicFormBuilderFieldSettings, DEFAULT_FORM_BUILDER_FIELDS, FORM_BUILDER_FIELDS, FORM_BUILDER_SETTINGS, FormBuilder, FormBuilderFieldHost, FormBuilderRenderer, FormBuilderSettingsHost, FormBuilderRenderer as FormRenderer, createDefaultFormBuilderSchema, formBuilderField, formBuilderSettings, provideFormBuilder, validatorsFromRules };
|
|
317
|
+
export type { FormBuilderComponentImporter, FormBuilderField, FormBuilderFieldChange, FormBuilderFieldDefinition, FormBuilderFieldRenderContext, FormBuilderFieldWidth, FormBuilderLayoutItem, FormBuilderOption, FormBuilderSchema, FormBuilderSection, FormBuilderSettingsContext, FormBuilderSettingsDefinition, FormBuilderValidationRule, FormBuilderVisibility };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { ViewContainerRef, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { ViewContainerRef, TemplateRef, OnInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import { DataSource } from '@angular/cdk/collections';
|
|
4
4
|
import { CdkTree, CdkTreeNodeOutlet, CdkNestedTreeNode, CdkTreeNode, CdkTreeNodePadding, CdkTreeNodeToggle, CdkTreeNodeDef } from '@angular/cdk/tree';
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
@@ -18,15 +18,39 @@ interface TreeNodeDrop<T> {
|
|
|
18
18
|
targetValue: unknown;
|
|
19
19
|
dataSource: T[];
|
|
20
20
|
}
|
|
21
|
+
interface TreeNodeDropContext<T> {
|
|
22
|
+
source: T;
|
|
23
|
+
target: T;
|
|
24
|
+
position: TreeNodeDropPosition;
|
|
25
|
+
}
|
|
26
|
+
interface TreeNodeDragPlaceholderContext<T> {
|
|
27
|
+
$implicit: T;
|
|
28
|
+
source: T;
|
|
29
|
+
target?: T;
|
|
30
|
+
position?: TreeNodeDropPosition;
|
|
31
|
+
}
|
|
21
32
|
type TreeNodeDropPosition = 'before' | 'inside' | 'after';
|
|
33
|
+
type TreeNodeDragPredicate<T> = (node: T) => boolean;
|
|
34
|
+
type TreeNodeDropPredicate<T> = (source: T, target: T, position: TreeNodeDropPosition) => boolean;
|
|
35
|
+
type TreeDragPreview = 'node' | 'none';
|
|
22
36
|
type TreeFilterMode = 'includeAncestors' | 'includeDescendants';
|
|
23
37
|
type TreeFilterPredicate<T> = (node: T, filterValue: string) => boolean;
|
|
38
|
+
declare class TreeDragPlaceholder<T> {
|
|
39
|
+
readonly templateRef: TemplateRef<TreeNodeDragPlaceholderContext<T>>;
|
|
40
|
+
static ngTemplateContextGuard<T>(_directive: TreeDragPlaceholder<T>, _context: unknown): _context is TreeNodeDragPlaceholderContext<T>;
|
|
41
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeDragPlaceholder<any>, never>;
|
|
42
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeDragPlaceholder<any>, "ng-template[ngsTreeDragPlaceholder]", never, {}, {}, never, never, true, never>;
|
|
43
|
+
}
|
|
24
44
|
declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
25
45
|
get dataSource(): DataSource<T> | Observable<T[]> | T[];
|
|
26
46
|
set dataSource(dataSource: DataSource<T> | Observable<T[]> | T[]);
|
|
27
47
|
checkable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
28
48
|
selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
29
49
|
draggable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
50
|
+
draggablePredicate: _angular_core.InputSignal<TreeNodeDragPredicate<T>>;
|
|
51
|
+
dropPredicate: _angular_core.InputSignal<TreeNodeDropPredicate<T>>;
|
|
52
|
+
reorderOnDrop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
53
|
+
dragPreview: _angular_core.InputSignal<TreeDragPreview>;
|
|
30
54
|
childrenKey: _angular_core.InputSignal<string>;
|
|
31
55
|
filterValue: _angular_core.InputSignalWithTransform<string, unknown>;
|
|
32
56
|
filterPredicate: _angular_core.InputSignal<TreeFilterPredicate<T>>;
|
|
@@ -38,6 +62,7 @@ declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
|
38
62
|
readonly _selectedKey: _angular_core.WritableSignal<unknown>;
|
|
39
63
|
readonly _dropTargetKey: _angular_core.WritableSignal<unknown>;
|
|
40
64
|
readonly _dropTargetPosition: _angular_core.WritableSignal<TreeNodeDropPosition | undefined>;
|
|
65
|
+
readonly _draggedNodeKey: _angular_core.WritableSignal<unknown>;
|
|
41
66
|
private _checkedKeys;
|
|
42
67
|
private _nodeValueByDataKey;
|
|
43
68
|
private _disabledDataKeys;
|
|
@@ -45,6 +70,7 @@ declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
|
45
70
|
private _draggedNode?;
|
|
46
71
|
private _sourceDataSource?;
|
|
47
72
|
private _filteredNodeOriginals;
|
|
73
|
+
private _dragPlaceholder?;
|
|
48
74
|
_nodeOutlet: TreeNodeOutlet;
|
|
49
75
|
constructor();
|
|
50
76
|
_toggleNodeChecked(node: T, checked: boolean): void;
|
|
@@ -55,11 +81,15 @@ declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
|
55
81
|
_canDragNode(node: T): boolean;
|
|
56
82
|
_isNodeDropTarget(node: T): boolean;
|
|
57
83
|
_isNodeDropTargetPosition(node: T, position: TreeNodeDropPosition): boolean;
|
|
84
|
+
_isNodeDraggingSource(node: T): boolean;
|
|
58
85
|
_startNodeDrag(node: T, event: DragEvent): void;
|
|
59
86
|
_dragNodeOver(node: T, event: DragEvent): void;
|
|
60
87
|
_dragNodeLeave(node: T, event: DragEvent): void;
|
|
61
88
|
_dropNodeInto(node: T, event: DragEvent): void;
|
|
62
89
|
_endNodeDrag(): void;
|
|
90
|
+
_getDragPreview(): TreeDragPreview;
|
|
91
|
+
_hasDragPlaceholder(): boolean;
|
|
92
|
+
_setDragPlaceholderImage(node: T, event: DragEvent, host: HTMLElement): boolean;
|
|
63
93
|
_registerNodeValue(node: T, value: unknown): void;
|
|
64
94
|
_unregisterNodeValueByDataKey(key: unknown): void;
|
|
65
95
|
_registerNodeDisabled(node: T, disabled: boolean): void;
|
|
@@ -95,7 +125,7 @@ declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
|
95
125
|
private _getTreeNodeKey;
|
|
96
126
|
private _getOriginalFilterNode;
|
|
97
127
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tree<any, any>, never>;
|
|
98
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tree<any, any>, "ngs-tree", ["ngsTree"], { "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "childrenKey": { "alias": "childrenKey"; "required": false; "isSignal": true; }; "filterValue": { "alias": "filterValue"; "required": false; "isSignal": true; }; "filterPredicate": { "alias": "filterPredicate"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; "selectedChange": "selectedChange"; "nodeDrop": "nodeDrop"; },
|
|
128
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tree<any, any>, "ngs-tree", ["ngsTree"], { "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "draggablePredicate": { "alias": "draggablePredicate"; "required": false; "isSignal": true; }; "dropPredicate": { "alias": "dropPredicate"; "required": false; "isSignal": true; }; "reorderOnDrop": { "alias": "reorderOnDrop"; "required": false; "isSignal": true; }; "dragPreview": { "alias": "dragPreview"; "required": false; "isSignal": true; }; "childrenKey": { "alias": "childrenKey"; "required": false; "isSignal": true; }; "filterValue": { "alias": "filterValue"; "required": false; "isSignal": true; }; "filterPredicate": { "alias": "filterPredicate"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; "selectedChange": "selectedChange"; "nodeDrop": "nodeDrop"; }, ["_dragPlaceholder"], never, true, never>;
|
|
99
129
|
}
|
|
100
130
|
|
|
101
131
|
declare class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {
|
|
@@ -121,6 +151,7 @@ declare class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, On
|
|
|
121
151
|
_isDraggable(): boolean;
|
|
122
152
|
_isDropTarget(): boolean;
|
|
123
153
|
_isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean;
|
|
154
|
+
_isDraggingSource(): boolean;
|
|
124
155
|
_getDraggableAttribute(): true | null;
|
|
125
156
|
_getAriaGrabbed(): boolean | null;
|
|
126
157
|
_handleDragStart(event: DragEvent): void;
|
|
@@ -128,6 +159,7 @@ declare class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, On
|
|
|
128
159
|
_handleDragLeave(event: DragEvent): void;
|
|
129
160
|
_handleDrop(event: DragEvent): void;
|
|
130
161
|
_handleDragEnd(): void;
|
|
162
|
+
private _setDragImage;
|
|
131
163
|
private _selectNodeFromEvent;
|
|
132
164
|
private _isTreeControlClick;
|
|
133
165
|
private _syncNodeState;
|
|
@@ -161,6 +193,7 @@ declare class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implement
|
|
|
161
193
|
_isDraggable(): boolean;
|
|
162
194
|
_isDropTarget(): boolean;
|
|
163
195
|
_isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean;
|
|
196
|
+
_isDraggingSource(): boolean;
|
|
164
197
|
_getDraggableAttribute(): true | null;
|
|
165
198
|
_getAriaGrabbed(): boolean | null;
|
|
166
199
|
_handleDragStart(event: DragEvent): void;
|
|
@@ -168,6 +201,7 @@ declare class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implement
|
|
|
168
201
|
_handleDragLeave(event: DragEvent): void;
|
|
169
202
|
_handleDrop(event: DragEvent): void;
|
|
170
203
|
_handleDragEnd(): void;
|
|
204
|
+
private _setDragImage;
|
|
171
205
|
private _selectNodeFromEvent;
|
|
172
206
|
private _isTreeControlClick;
|
|
173
207
|
private _syncNodeState;
|
|
@@ -199,5 +233,5 @@ declare class TreeNodeDef<T> extends CdkTreeNodeDef<T> {
|
|
|
199
233
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeNodeDef<any>, "[ngsTreeNodeDef]", never, { "when": { "alias": "ngsTreeNodeDefWhen"; "required": false; }; "data": { "alias": "ngsTreeNode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
200
234
|
}
|
|
201
235
|
|
|
202
|
-
export { NestedTreeNode, Tree, TreeNode, TreeNodeDef, TreeNodeOutlet, TreeNodePadding, TreeNodeToggle };
|
|
203
|
-
export type { TreeFilterMode, TreeFilterPredicate, TreeNodeDrop, TreeNodeDropPosition };
|
|
236
|
+
export { NestedTreeNode, Tree, TreeDragPlaceholder, TreeNode, TreeNodeDef, TreeNodeOutlet, TreeNodePadding, TreeNodeToggle };
|
|
237
|
+
export type { TreeDragPreview, TreeFilterMode, TreeFilterPredicate, TreeNodeDragPlaceholderContext, TreeNodeDragPredicate, TreeNodeDrop, TreeNodeDropContext, TreeNodeDropPosition, TreeNodeDropPredicate };
|