@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.
@@ -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"; }, never, never, true, never>;
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 };