@ngstarter-ui/components 21.0.39 → 21.0.41
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 +153 -2
- package/fesm2022/ngstarter-ui-components-form-builder.mjs +1916 -0
- package/fesm2022/ngstarter-ui-components-form-builder.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs +2 -1
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tabs.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-tabs.mjs.map +1 -1
- 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 +151 -17
- package/fesm2022/ngstarter-ui-components-tree.mjs.map +1 -1
- package/package.json +5 -1
- package/types/ngstarter-ui-components-form-builder.d.ts +388 -0
- package/types/ngstarter-ui-components-tree.d.ts +41 -5
|
@@ -0,0 +1,388 @@
|
|
|
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 { TreeNodeDropPosition, Tree, TreeNodeDrop } from '@ngstarter-ui/components/tree';
|
|
6
|
+
import * as _ngstarter_ui_components_form_builder from '@ngstarter-ui/components/form-builder';
|
|
7
|
+
|
|
8
|
+
type FormBuilderFieldWidth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
9
|
+
type FormBuilderItemKind = 'field' | 'layout' | 'static';
|
|
10
|
+
interface FormBuilderOption {
|
|
11
|
+
label: string;
|
|
12
|
+
value: any;
|
|
13
|
+
}
|
|
14
|
+
interface FormBuilderValidationRule {
|
|
15
|
+
type: 'required' | 'email' | 'minLength' | 'maxLength' | 'min' | 'max' | string;
|
|
16
|
+
value?: any;
|
|
17
|
+
message?: string;
|
|
18
|
+
}
|
|
19
|
+
interface FormBuilderVisibility {
|
|
20
|
+
form?: boolean;
|
|
21
|
+
email?: boolean;
|
|
22
|
+
pdf?: boolean;
|
|
23
|
+
condition?: string;
|
|
24
|
+
}
|
|
25
|
+
interface FormBuilderField {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
type: string;
|
|
29
|
+
kind?: FormBuilderItemKind;
|
|
30
|
+
label: string;
|
|
31
|
+
placeholder?: string;
|
|
32
|
+
hint?: string;
|
|
33
|
+
defaultValue?: any;
|
|
34
|
+
required?: boolean;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
readonly?: boolean;
|
|
37
|
+
width?: FormBuilderFieldWidth;
|
|
38
|
+
options?: FormBuilderOption[];
|
|
39
|
+
validation?: FormBuilderValidationRule[];
|
|
40
|
+
visibility?: FormBuilderVisibility;
|
|
41
|
+
settings?: Record<string, any>;
|
|
42
|
+
children?: FormBuilderField[];
|
|
43
|
+
}
|
|
44
|
+
interface FormBuilderSection {
|
|
45
|
+
id: string;
|
|
46
|
+
title: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
collapsed?: boolean;
|
|
49
|
+
fields: FormBuilderField[];
|
|
50
|
+
}
|
|
51
|
+
interface FormBuilderLayoutItem {
|
|
52
|
+
kind: 'field' | 'section';
|
|
53
|
+
id: string;
|
|
54
|
+
}
|
|
55
|
+
interface FormBuilderSchema {
|
|
56
|
+
title?: string;
|
|
57
|
+
fields?: FormBuilderField[];
|
|
58
|
+
layout?: FormBuilderLayoutItem[];
|
|
59
|
+
sections: FormBuilderSection[];
|
|
60
|
+
}
|
|
61
|
+
interface FormBuilderFieldRenderContext {
|
|
62
|
+
field: FormBuilderField;
|
|
63
|
+
control: FormControl;
|
|
64
|
+
readonly: boolean;
|
|
65
|
+
}
|
|
66
|
+
interface FormBuilderSettingsContext {
|
|
67
|
+
field: FormBuilderField;
|
|
68
|
+
schema: FormBuilderSchema;
|
|
69
|
+
update: (changes: Partial<FormBuilderField>) => void;
|
|
70
|
+
}
|
|
71
|
+
type FormBuilderComponentImporter<T = any> = () => Promise<Type<T>>;
|
|
72
|
+
interface FormBuilderFieldSettingsContext {
|
|
73
|
+
item: FormBuilderField;
|
|
74
|
+
field: FormBuilderField;
|
|
75
|
+
schema: FormBuilderSchema;
|
|
76
|
+
definition?: FormBuilderFieldDefinition;
|
|
77
|
+
update: (changes: Partial<FormBuilderField>) => void;
|
|
78
|
+
updateField: (changes: Partial<FormBuilderField>) => void;
|
|
79
|
+
}
|
|
80
|
+
interface FormBuilderSectionSettingsContext {
|
|
81
|
+
item: FormBuilderSection;
|
|
82
|
+
section: FormBuilderSection;
|
|
83
|
+
schema: FormBuilderSchema;
|
|
84
|
+
definition?: FormBuilderItemDefinition;
|
|
85
|
+
update: (changes: Partial<FormBuilderSection>) => void;
|
|
86
|
+
updateSection: (changes: Partial<FormBuilderSection>) => void;
|
|
87
|
+
}
|
|
88
|
+
interface FormBuilderItemDefinition {
|
|
89
|
+
type: string;
|
|
90
|
+
label: string;
|
|
91
|
+
kind?: FormBuilderItemKind;
|
|
92
|
+
group?: string;
|
|
93
|
+
icon?: string;
|
|
94
|
+
description?: string;
|
|
95
|
+
defaults?: Partial<FormBuilderField>;
|
|
96
|
+
renderer?: FormBuilderComponentImporter;
|
|
97
|
+
settings?: FormBuilderComponentImporter;
|
|
98
|
+
acceptsChildren?: boolean;
|
|
99
|
+
}
|
|
100
|
+
interface FormBuilderFieldDefinition extends FormBuilderItemDefinition {
|
|
101
|
+
kind?: FormBuilderItemKind;
|
|
102
|
+
validators?: (field: FormBuilderField) => ValidatorFn[];
|
|
103
|
+
}
|
|
104
|
+
interface FormBuilderSettingsDefinition {
|
|
105
|
+
fieldType?: string;
|
|
106
|
+
itemType?: string;
|
|
107
|
+
type?: string;
|
|
108
|
+
kind?: FormBuilderItemKind;
|
|
109
|
+
component: FormBuilderComponentImporter;
|
|
110
|
+
}
|
|
111
|
+
interface FormBuilderFieldChange {
|
|
112
|
+
field: FormBuilderField;
|
|
113
|
+
section?: FormBuilderSection;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
declare const FORM_BUILDER_ITEMS: InjectionToken<FormBuilderItemDefinition[]>;
|
|
117
|
+
declare const FORM_BUILDER_FIELDS: InjectionToken<FormBuilderFieldDefinition[]>;
|
|
118
|
+
declare const FORM_BUILDER_SETTINGS: InjectionToken<FormBuilderSettingsDefinition[]>;
|
|
119
|
+
declare function formBuilderField(definition: FormBuilderFieldDefinition): FormBuilderFieldDefinition;
|
|
120
|
+
declare function formBuilderItem(definition: FormBuilderItemDefinition): FormBuilderItemDefinition;
|
|
121
|
+
declare function formBuilderSettings(definition: FormBuilderSettingsDefinition): FormBuilderSettingsDefinition;
|
|
122
|
+
declare function provideFormBuilder(config?: {
|
|
123
|
+
items?: FormBuilderItemDefinition[];
|
|
124
|
+
fields?: FormBuilderFieldDefinition[];
|
|
125
|
+
settings?: FormBuilderSettingsDefinition[];
|
|
126
|
+
}): EnvironmentProviders;
|
|
127
|
+
declare const DEFAULT_FORM_BUILDER_FIELDS: FormBuilderFieldDefinition[];
|
|
128
|
+
declare const DEFAULT_FORM_BUILDER_ITEMS: FormBuilderItemDefinition[];
|
|
129
|
+
declare function validatorsFromRules(rules?: FormBuilderValidationRule[], field?: FormBuilderField): _angular_forms.ValidatorFn[];
|
|
130
|
+
|
|
131
|
+
interface FormBuilderPaletteGroup {
|
|
132
|
+
name: string;
|
|
133
|
+
fields: FormBuilderFieldDefinition[];
|
|
134
|
+
}
|
|
135
|
+
interface FormBuilderFieldTreeNode {
|
|
136
|
+
id: string;
|
|
137
|
+
label: string;
|
|
138
|
+
name?: string;
|
|
139
|
+
type: string;
|
|
140
|
+
icon: string;
|
|
141
|
+
kind: 'section' | 'field';
|
|
142
|
+
field?: FormBuilderField;
|
|
143
|
+
section?: FormBuilderSection;
|
|
144
|
+
children?: FormBuilderFieldTreeNode[];
|
|
145
|
+
}
|
|
146
|
+
interface FormBuilderCanvasItem extends FormBuilderLayoutItem {
|
|
147
|
+
field?: FormBuilderField;
|
|
148
|
+
section?: FormBuilderSection;
|
|
149
|
+
}
|
|
150
|
+
type FormBuilderNativeDragItem = {
|
|
151
|
+
kind: 'field';
|
|
152
|
+
definition: FormBuilderFieldDefinition;
|
|
153
|
+
} | {
|
|
154
|
+
kind: 'section';
|
|
155
|
+
};
|
|
156
|
+
declare class FormBuilder {
|
|
157
|
+
private readonly dialog;
|
|
158
|
+
private readonly confirmManager;
|
|
159
|
+
private readonly elementRef;
|
|
160
|
+
private readonly providedItems;
|
|
161
|
+
private readonly providedFields;
|
|
162
|
+
private readonly providedSettings;
|
|
163
|
+
private readonly previewControls;
|
|
164
|
+
private readonly fieldTreeNodeCache;
|
|
165
|
+
private readonly canvasAnimationTimers;
|
|
166
|
+
private readonly actualFieldsTree;
|
|
167
|
+
private fieldTreeRootNodes;
|
|
168
|
+
private fieldTreeStructureKey;
|
|
169
|
+
private suppressPaletteClick;
|
|
170
|
+
readonly schema: _angular_core.ModelSignal<FormBuilderSchema>;
|
|
171
|
+
readonly paletteTitle: _angular_core.InputSignal<string>;
|
|
172
|
+
readonly inspectorTitle: _angular_core.InputSignal<string>;
|
|
173
|
+
readonly fieldSelected: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
|
|
174
|
+
readonly fieldAdded: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
|
|
175
|
+
readonly fieldRemoved: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
|
|
176
|
+
protected readonly search: _angular_core.WritableSignal<string>;
|
|
177
|
+
protected readonly fieldsTabIndex: _angular_core.WritableSignal<number>;
|
|
178
|
+
protected readonly selectedFieldId: _angular_core.WritableSignal<string | null>;
|
|
179
|
+
protected readonly nativeDragItem: _angular_core.WritableSignal<FormBuilderNativeDragItem | null>;
|
|
180
|
+
protected readonly nativeDragFieldDefinition: _angular_core.Signal<FormBuilderFieldDefinition | null>;
|
|
181
|
+
protected readonly nativeDragSection: _angular_core.Signal<boolean>;
|
|
182
|
+
protected readonly nativeDropTarget: _angular_core.WritableSignal<{
|
|
183
|
+
containerId: string;
|
|
184
|
+
index: number;
|
|
185
|
+
} | null>;
|
|
186
|
+
protected readonly expandedFieldTreeNodeIds: _angular_core.WritableSignal<ReadonlySet<string>>;
|
|
187
|
+
protected readonly definitions: _angular_core.Signal<FormBuilderFieldDefinition[]>;
|
|
188
|
+
protected readonly settingsDefinitions: _angular_core.Signal<FormBuilderSettingsDefinition[]>;
|
|
189
|
+
protected readonly canvasItems: _angular_core.Signal<FormBuilderCanvasItem[]>;
|
|
190
|
+
protected readonly layoutDefinitions: _angular_core.Signal<FormBuilderFieldDefinition[]>;
|
|
191
|
+
protected readonly paletteGroups: _angular_core.Signal<FormBuilderPaletteGroup[]>;
|
|
192
|
+
protected readonly selectedField: _angular_core.Signal<FormBuilderField | null>;
|
|
193
|
+
protected readonly selectedSection: _angular_core.Signal<FormBuilderSection | null>;
|
|
194
|
+
protected readonly fieldTree: _angular_core.Signal<FormBuilderFieldTreeNode[]>;
|
|
195
|
+
protected readonly fieldTreeChildrenAccessor: (node: FormBuilderFieldTreeNode) => FormBuilderFieldTreeNode[];
|
|
196
|
+
protected readonly hasFieldTreeChildren: (_: number, node: FormBuilderFieldTreeNode) => boolean;
|
|
197
|
+
protected readonly trackFieldTreeNode: (_: number, node: FormBuilderFieldTreeNode) => string;
|
|
198
|
+
protected readonly fieldTreeDraggablePredicate: (_node: FormBuilderFieldTreeNode) => boolean;
|
|
199
|
+
protected readonly fieldTreeDropPredicate: (source: FormBuilderFieldTreeNode, target: FormBuilderFieldTreeNode, position: TreeNodeDropPosition) => boolean;
|
|
200
|
+
protected readonly updateSelectedField: (changes: Partial<FormBuilderField>) => void;
|
|
201
|
+
protected readonly updateSelectedSection: (changes: Partial<FormBuilderSection>) => void;
|
|
202
|
+
protected paletteDragStarted(event: DragEvent, definition: FormBuilderFieldDefinition): void;
|
|
203
|
+
protected sectionPaletteDragStarted(event: DragEvent): void;
|
|
204
|
+
protected paletteDragEnded(): void;
|
|
205
|
+
protected paletteClicked(definition: FormBuilderFieldDefinition): void;
|
|
206
|
+
protected nativeCanvasDragOver(event: DragEvent): void;
|
|
207
|
+
protected nativeFieldDragOver(event: DragEvent, containerId: string): void;
|
|
208
|
+
protected nativeSectionDragOver(event: DragEvent, section: FormBuilderSection): void;
|
|
209
|
+
protected nativeSectionDrop(event: DragEvent, section: FormBuilderSection): void;
|
|
210
|
+
protected nativeContainerFieldDragOver(event: DragEvent, field: FormBuilderField): void;
|
|
211
|
+
protected nativeContainerFieldDragLeave(event: DragEvent, field: FormBuilderField): void;
|
|
212
|
+
protected nativeContainerFieldDrop(event: DragEvent, field: FormBuilderField): void;
|
|
213
|
+
protected nativeDragLeave(event: DragEvent, containerId: string): void;
|
|
214
|
+
protected nativeFieldDrop(event: DragEvent, containerId: string): void;
|
|
215
|
+
protected isNativeDropTarget(containerId: string, index: number): boolean;
|
|
216
|
+
protected addField(definition: FormBuilderFieldDefinition, sectionId?: string): void;
|
|
217
|
+
protected addSection(): void;
|
|
218
|
+
protected openPreview(template: TemplateRef<unknown>): void;
|
|
219
|
+
protected removeSection(section: FormBuilderSection): void;
|
|
220
|
+
protected updateSection(section: FormBuilderSection, changes: Partial<FormBuilderSection>): void;
|
|
221
|
+
protected isSectionCollapsed(section: FormBuilderSection): boolean;
|
|
222
|
+
protected selectField(field: FormBuilderField, section?: FormBuilderSection): void;
|
|
223
|
+
protected selectSection(section: FormBuilderSection): void;
|
|
224
|
+
protected selectCanvasField(field: FormBuilderField, section?: FormBuilderSection): void;
|
|
225
|
+
protected selectFieldTreeNode(node: FormBuilderFieldTreeNode): void;
|
|
226
|
+
protected toggleFieldTreeNode(tree: Tree<FormBuilderFieldTreeNode>, node: FormBuilderFieldTreeNode, event: MouseEvent): void;
|
|
227
|
+
protected isFieldTreeNodeExpanded(tree: Tree<FormBuilderFieldTreeNode>, node: FormBuilderFieldTreeNode): boolean;
|
|
228
|
+
protected fieldTreePlaceholderIcon(source: FormBuilderFieldTreeNode): string;
|
|
229
|
+
protected fieldTreeNodeDropped(event: TreeNodeDrop<FormBuilderFieldTreeNode>): void;
|
|
230
|
+
protected confirmRemoveField(field: FormBuilderField): void;
|
|
231
|
+
private removeField;
|
|
232
|
+
protected sectionDropListId(section: FormBuilderSection): string;
|
|
233
|
+
protected fieldDropListId(field: FormBuilderField): string;
|
|
234
|
+
protected rootDropListId(): string;
|
|
235
|
+
protected previewControl(field: FormBuilderField): FormControl;
|
|
236
|
+
protected patchSelectedField(changes: Partial<FormBuilderField>): void;
|
|
237
|
+
protected isContainerField(field: FormBuilderField): boolean;
|
|
238
|
+
protected fieldIcon(field: FormBuilderField): string;
|
|
239
|
+
protected definitionWidth(definition: FormBuilderFieldDefinition): FormBuilderFieldWidth;
|
|
240
|
+
private matchesPaletteQuery;
|
|
241
|
+
private nativeDragOver;
|
|
242
|
+
private nativeDragOverAtIndex;
|
|
243
|
+
private setNativeDropTarget;
|
|
244
|
+
private captureCanvasItemRects;
|
|
245
|
+
private animateCanvasItemMoves;
|
|
246
|
+
private getCanvasAnimatedItems;
|
|
247
|
+
private getCanvasAnimatedItemKey;
|
|
248
|
+
private insertNativeField;
|
|
249
|
+
private insertNativeSection;
|
|
250
|
+
private resolveNativeDragItem;
|
|
251
|
+
private resolveNativeDropIndex;
|
|
252
|
+
private setPaletteDragImage;
|
|
253
|
+
private createField;
|
|
254
|
+
private defaultWidth;
|
|
255
|
+
private resolveCanvasItems;
|
|
256
|
+
private normalizedLayout;
|
|
257
|
+
private detachFieldFromLocation;
|
|
258
|
+
private insertFieldIntoTreeSection;
|
|
259
|
+
private insertFieldAroundTreeSection;
|
|
260
|
+
private resolveTreeFieldInsertTarget;
|
|
261
|
+
private insertRootFieldIntoLayout;
|
|
262
|
+
private resetFieldTreeAfterRejectedDrop;
|
|
263
|
+
private canDropFieldTreeNode;
|
|
264
|
+
private dropFieldTreeSection;
|
|
265
|
+
private isRootFieldTreeNode;
|
|
266
|
+
private restoreFieldTreeExpansion;
|
|
267
|
+
private flattenFieldTree;
|
|
268
|
+
private openActualFieldsTreeForField;
|
|
269
|
+
private findFieldTreeNodePath;
|
|
270
|
+
private scrollFieldTreeNodeIntoView;
|
|
271
|
+
private findFieldTreeNodeElement;
|
|
272
|
+
private scrollCanvasFieldIntoView;
|
|
273
|
+
private scrollCanvasSectionIntoView;
|
|
274
|
+
private scrollCanvasItemIntoView;
|
|
275
|
+
private findCanvasFieldElement;
|
|
276
|
+
private findCanvasSectionElement;
|
|
277
|
+
private syncPreviewControl;
|
|
278
|
+
private scrollElementFullyIntoView;
|
|
279
|
+
private afterNextPaint;
|
|
280
|
+
private upsertSectionTreeNode;
|
|
281
|
+
private upsertFieldTreeNode;
|
|
282
|
+
private getCachedFieldTreeNode;
|
|
283
|
+
private resolveFieldTreeStructureKey;
|
|
284
|
+
private findContainerLocation;
|
|
285
|
+
private findFieldContainerLocation;
|
|
286
|
+
private findFieldLocation;
|
|
287
|
+
private deletePreviewControls;
|
|
288
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilder, never>;
|
|
289
|
+
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>;
|
|
290
|
+
}
|
|
291
|
+
declare function createDefaultFormBuilderSchema(): FormBuilderSchema;
|
|
292
|
+
|
|
293
|
+
interface FormBuilderRendererCanvasItem extends FormBuilderLayoutItem {
|
|
294
|
+
field?: FormBuilderField;
|
|
295
|
+
section?: FormBuilderSection;
|
|
296
|
+
}
|
|
297
|
+
declare class FormBuilderRenderer {
|
|
298
|
+
private readonly providedItems;
|
|
299
|
+
private readonly providedFields;
|
|
300
|
+
private readonly orphanControls;
|
|
301
|
+
readonly schema: _angular_core.InputSignal<FormBuilderSchema>;
|
|
302
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
303
|
+
readonly showSubmit: _angular_core.InputSignal<boolean>;
|
|
304
|
+
readonly submitLabel: _angular_core.InputSignal<string>;
|
|
305
|
+
readonly value: _angular_core.ModelSignal<Record<string, any>>;
|
|
306
|
+
readonly formSubmit: _angular_core.OutputEmitterRef<Record<string, any>>;
|
|
307
|
+
readonly formReady: _angular_core.OutputEmitterRef<FormGroup<any>>;
|
|
308
|
+
protected readonly definitions: _angular_core.Signal<FormBuilderFieldDefinition[]>;
|
|
309
|
+
protected readonly visibleCanvasItems: _angular_core.Signal<FormBuilderRendererCanvasItem[]>;
|
|
310
|
+
protected readonly formGroup: _angular_core.Signal<FormGroup<any>>;
|
|
311
|
+
constructor();
|
|
312
|
+
protected getControl(field: FormBuilderField): FormControl;
|
|
313
|
+
protected isContainerField(field: FormBuilderField): boolean;
|
|
314
|
+
protected visibleChildren(field: FormBuilderField): FormBuilderField[];
|
|
315
|
+
protected submit(): void;
|
|
316
|
+
private createFormGroup;
|
|
317
|
+
private visibleFields;
|
|
318
|
+
private resolveCanvasItems;
|
|
319
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderRenderer, never>;
|
|
320
|
+
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>;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
declare class FormBuilderFieldHost {
|
|
324
|
+
readonly field: _angular_core.InputSignal<FormBuilderField>;
|
|
325
|
+
readonly control: _angular_core.InputSignal<FormControl<any>>;
|
|
326
|
+
readonly definitions: _angular_core.InputSignal<FormBuilderFieldDefinition[]>;
|
|
327
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
328
|
+
readonly editableCanvas: _angular_core.InputSignal<boolean>;
|
|
329
|
+
protected readonly customLoaded: _angular_core.WritableSignal<boolean>;
|
|
330
|
+
protected readonly textInputType: _angular_core.Signal<"email" | "text" | "number">;
|
|
331
|
+
private readonly anchor;
|
|
332
|
+
constructor();
|
|
333
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderFieldHost, never>;
|
|
334
|
+
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>;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
declare class FormBuilderSettingsHost {
|
|
338
|
+
readonly field: _angular_core.InputSignal<FormBuilderField | null>;
|
|
339
|
+
readonly section: _angular_core.InputSignal<FormBuilderSection | null>;
|
|
340
|
+
readonly schema: _angular_core.InputSignal<FormBuilderSchema>;
|
|
341
|
+
readonly definitions: _angular_core.InputSignal<FormBuilderFieldDefinition[]>;
|
|
342
|
+
readonly settingsDefinitions: _angular_core.InputSignal<FormBuilderSettingsDefinition[]>;
|
|
343
|
+
readonly update: _angular_core.InputSignal<((changes: Partial<FormBuilderField>) => void) | undefined>;
|
|
344
|
+
readonly updateSection: _angular_core.InputSignal<((changes: Partial<FormBuilderSection>) => void) | undefined>;
|
|
345
|
+
protected readonly itemDefinition: _angular_core.Signal<FormBuilderFieldDefinition | undefined>;
|
|
346
|
+
protected readonly fieldDefinition: _angular_core.Signal<FormBuilderFieldDefinition | undefined>;
|
|
347
|
+
protected readonly fieldKind: _angular_core.Signal<_ngstarter_ui_components_form_builder.FormBuilderItemKind>;
|
|
348
|
+
protected readonly isLayoutField: _angular_core.Signal<boolean>;
|
|
349
|
+
protected readonly customLoaded: _angular_core.WritableSignal<boolean>;
|
|
350
|
+
private readonly anchor;
|
|
351
|
+
constructor();
|
|
352
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderSettingsHost, never>;
|
|
353
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderSettingsHost, "ngs-form-builder-settings-host", ["ngsFormBuilderSettingsHost"], { "field": { "alias": "field"; "required": false; "isSignal": true; }; "section": { "alias": "section"; "required": false; "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": false; "isSignal": true; }; "updateSection": { "alias": "updateSection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
declare class BasicFormBuilderFieldSettings {
|
|
357
|
+
readonly field: _angular_core.InputSignal<FormBuilderField>;
|
|
358
|
+
readonly update: _angular_core.InputSignal<(changes: Partial<FormBuilderField>) => void>;
|
|
359
|
+
protected readonly fieldWidthOptions: FormBuilderFieldWidth[];
|
|
360
|
+
protected readonly hasCheckedState: _angular_core.Signal<boolean>;
|
|
361
|
+
protected readonly hasPlaceholder: _angular_core.Signal<boolean>;
|
|
362
|
+
protected readonly hasOptions: _angular_core.Signal<boolean>;
|
|
363
|
+
protected readonly optionsText: _angular_core.Signal<string>;
|
|
364
|
+
protected patch(changes: Partial<FormBuilderField>): void;
|
|
365
|
+
protected patchOptions(value: string): void;
|
|
366
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BasicFormBuilderFieldSettings, never>;
|
|
367
|
+
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>;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
declare class BasicFormBuilderLayoutSettings {
|
|
371
|
+
readonly field: _angular_core.InputSignal<FormBuilderField>;
|
|
372
|
+
readonly update: _angular_core.InputSignal<(changes: Partial<FormBuilderField>) => void>;
|
|
373
|
+
protected readonly fieldWidthOptions: FormBuilderFieldWidth[];
|
|
374
|
+
protected patch(changes: Partial<FormBuilderField>): void;
|
|
375
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BasicFormBuilderLayoutSettings, never>;
|
|
376
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BasicFormBuilderLayoutSettings, "ngs-basic-form-builder-layout-settings", ["ngsBasicFormBuilderLayoutSettings"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "update": { "alias": "update"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
declare class BasicFormBuilderSectionSettings {
|
|
380
|
+
readonly section: _angular_core.InputSignal<FormBuilderSection>;
|
|
381
|
+
readonly update: _angular_core.InputSignal<(changes: Partial<FormBuilderSection>) => void>;
|
|
382
|
+
protected patch(changes: Partial<FormBuilderSection>): void;
|
|
383
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BasicFormBuilderSectionSettings, never>;
|
|
384
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BasicFormBuilderSectionSettings, "ngs-basic-form-builder-section-settings", ["ngsBasicFormBuilderSectionSettings"], { "section": { "alias": "section"; "required": true; "isSignal": true; }; "update": { "alias": "update"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export { BasicFormBuilderFieldSettings, BasicFormBuilderLayoutSettings, BasicFormBuilderSectionSettings, DEFAULT_FORM_BUILDER_FIELDS, DEFAULT_FORM_BUILDER_ITEMS, FORM_BUILDER_FIELDS, FORM_BUILDER_ITEMS, FORM_BUILDER_SETTINGS, FormBuilder, FormBuilderFieldHost, FormBuilderRenderer, FormBuilderSettingsHost, FormBuilderRenderer as FormRenderer, createDefaultFormBuilderSchema, formBuilderField, formBuilderItem, formBuilderSettings, provideFormBuilder, validatorsFromRules };
|
|
388
|
+
export type { FormBuilderComponentImporter, FormBuilderField, FormBuilderFieldChange, FormBuilderFieldDefinition, FormBuilderFieldRenderContext, FormBuilderFieldSettingsContext, FormBuilderFieldWidth, FormBuilderItemDefinition, FormBuilderItemKind, FormBuilderLayoutItem, FormBuilderOption, FormBuilderSchema, FormBuilderSection, FormBuilderSectionSettingsContext, 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,40 @@ 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>;
|
|
54
|
+
nodePaddingIndent: _angular_core.InputSignal<string | number>;
|
|
30
55
|
childrenKey: _angular_core.InputSignal<string>;
|
|
31
56
|
filterValue: _angular_core.InputSignalWithTransform<string, unknown>;
|
|
32
57
|
filterPredicate: _angular_core.InputSignal<TreeFilterPredicate<T>>;
|
|
@@ -38,6 +63,7 @@ declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
|
38
63
|
readonly _selectedKey: _angular_core.WritableSignal<unknown>;
|
|
39
64
|
readonly _dropTargetKey: _angular_core.WritableSignal<unknown>;
|
|
40
65
|
readonly _dropTargetPosition: _angular_core.WritableSignal<TreeNodeDropPosition | undefined>;
|
|
66
|
+
readonly _draggedNodeKey: _angular_core.WritableSignal<unknown>;
|
|
41
67
|
private _checkedKeys;
|
|
42
68
|
private _nodeValueByDataKey;
|
|
43
69
|
private _disabledDataKeys;
|
|
@@ -45,6 +71,7 @@ declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
|
45
71
|
private _draggedNode?;
|
|
46
72
|
private _sourceDataSource?;
|
|
47
73
|
private _filteredNodeOriginals;
|
|
74
|
+
private _dragPlaceholder?;
|
|
48
75
|
_nodeOutlet: TreeNodeOutlet;
|
|
49
76
|
constructor();
|
|
50
77
|
_toggleNodeChecked(node: T, checked: boolean): void;
|
|
@@ -55,11 +82,15 @@ declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
|
55
82
|
_canDragNode(node: T): boolean;
|
|
56
83
|
_isNodeDropTarget(node: T): boolean;
|
|
57
84
|
_isNodeDropTargetPosition(node: T, position: TreeNodeDropPosition): boolean;
|
|
85
|
+
_isNodeDraggingSource(node: T): boolean;
|
|
58
86
|
_startNodeDrag(node: T, event: DragEvent): void;
|
|
59
87
|
_dragNodeOver(node: T, event: DragEvent): void;
|
|
60
88
|
_dragNodeLeave(node: T, event: DragEvent): void;
|
|
61
89
|
_dropNodeInto(node: T, event: DragEvent): void;
|
|
62
90
|
_endNodeDrag(): void;
|
|
91
|
+
_getDragPreview(): TreeDragPreview;
|
|
92
|
+
_hasDragPlaceholder(): boolean;
|
|
93
|
+
_setDragPlaceholderImage(node: T, event: DragEvent, host: HTMLElement): boolean;
|
|
63
94
|
_registerNodeValue(node: T, value: unknown): void;
|
|
64
95
|
_unregisterNodeValueByDataKey(key: unknown): void;
|
|
65
96
|
_registerNodeDisabled(node: T, disabled: boolean): void;
|
|
@@ -95,7 +126,7 @@ declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
|
95
126
|
private _getTreeNodeKey;
|
|
96
127
|
private _getOriginalFilterNode;
|
|
97
128
|
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"; },
|
|
129
|
+
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; }; "nodePaddingIndent": { "alias": "nodePaddingIndent"; "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
130
|
}
|
|
100
131
|
|
|
101
132
|
declare class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {
|
|
@@ -121,6 +152,7 @@ declare class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, On
|
|
|
121
152
|
_isDraggable(): boolean;
|
|
122
153
|
_isDropTarget(): boolean;
|
|
123
154
|
_isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean;
|
|
155
|
+
_isDraggingSource(): boolean;
|
|
124
156
|
_getDraggableAttribute(): true | null;
|
|
125
157
|
_getAriaGrabbed(): boolean | null;
|
|
126
158
|
_handleDragStart(event: DragEvent): void;
|
|
@@ -128,6 +160,7 @@ declare class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, On
|
|
|
128
160
|
_handleDragLeave(event: DragEvent): void;
|
|
129
161
|
_handleDrop(event: DragEvent): void;
|
|
130
162
|
_handleDragEnd(): void;
|
|
163
|
+
private _setDragImage;
|
|
131
164
|
private _selectNodeFromEvent;
|
|
132
165
|
private _isTreeControlClick;
|
|
133
166
|
private _syncNodeState;
|
|
@@ -161,6 +194,7 @@ declare class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implement
|
|
|
161
194
|
_isDraggable(): boolean;
|
|
162
195
|
_isDropTarget(): boolean;
|
|
163
196
|
_isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean;
|
|
197
|
+
_isDraggingSource(): boolean;
|
|
164
198
|
_getDraggableAttribute(): true | null;
|
|
165
199
|
_getAriaGrabbed(): boolean | null;
|
|
166
200
|
_handleDragStart(event: DragEvent): void;
|
|
@@ -168,6 +202,7 @@ declare class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implement
|
|
|
168
202
|
_handleDragLeave(event: DragEvent): void;
|
|
169
203
|
_handleDrop(event: DragEvent): void;
|
|
170
204
|
_handleDragEnd(): void;
|
|
205
|
+
private _setDragImage;
|
|
171
206
|
private _selectNodeFromEvent;
|
|
172
207
|
private _isTreeControlClick;
|
|
173
208
|
private _syncNodeState;
|
|
@@ -181,8 +216,9 @@ declare class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implement
|
|
|
181
216
|
}
|
|
182
217
|
|
|
183
218
|
declare class TreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {
|
|
219
|
+
private readonly tree;
|
|
184
220
|
levelInput: _angular_core.InputSignalWithTransform<number, any>;
|
|
185
|
-
indentInput: _angular_core.InputSignal<string | number>;
|
|
221
|
+
indentInput: _angular_core.InputSignal<string | number | undefined>;
|
|
186
222
|
constructor();
|
|
187
223
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNodePadding<any, any>, never>;
|
|
188
224
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeNodePadding<any, any>, "[ngsTreeNodePadding]", never, { "levelInput": { "alias": "ngsTreeNodePadding"; "required": false; "isSignal": true; }; "indentInput": { "alias": "ngsTreeNodePaddingIndent"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -199,5 +235,5 @@ declare class TreeNodeDef<T> extends CdkTreeNodeDef<T> {
|
|
|
199
235
|
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
236
|
}
|
|
201
237
|
|
|
202
|
-
export { NestedTreeNode, Tree, TreeNode, TreeNodeDef, TreeNodeOutlet, TreeNodePadding, TreeNodeToggle };
|
|
203
|
-
export type { TreeFilterMode, TreeFilterPredicate, TreeNodeDrop, TreeNodeDropPosition };
|
|
238
|
+
export { NestedTreeNode, Tree, TreeDragPlaceholder, TreeNode, TreeNodeDef, TreeNodeOutlet, TreeNodePadding, TreeNodeToggle };
|
|
239
|
+
export type { TreeDragPreview, TreeFilterMode, TreeFilterPredicate, TreeNodeDragPlaceholderContext, TreeNodeDragPredicate, TreeNodeDrop, TreeNodeDropContext, TreeNodeDropPosition, TreeNodeDropPredicate };
|