@ngstarter-ui/components 21.0.38 → 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.
@@ -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 };
@@ -86,9 +86,9 @@ declare class SidebarFooter {
86
86
  static ɵcmp: i0.ɵɵComponentDeclaration<SidebarFooter, "ngs-sidebar-footer", ["ngsSidebarFooter"], { "block": { "alias": "block"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
87
87
  }
88
88
 
89
- declare class SidebarNavHeading {
90
- static ɵfac: i0.ɵɵFactoryDeclaration<SidebarNavHeading, never>;
91
- static ɵcmp: i0.ɵɵComponentDeclaration<SidebarNavHeading, "ngs-sidebar-nav-heading", ["ngsSidebarNavHeading"], {}, {}, never, ["*"], true, never>;
89
+ declare class SidebarHeading {
90
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidebarHeading, never>;
91
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidebarHeading, "ngs-sidebar-heading", ["ngsSidebarHeading"], {}, {}, never, ["*"], true, never>;
92
92
  }
93
93
 
94
94
  declare class SidebarNavGroupToggle {
@@ -120,9 +120,14 @@ declare class SidebarNavGroupMenu implements AfterContentInit, OnInit {
120
120
  static ɵcmp: i0.ɵɵComponentDeclaration<SidebarNavGroupMenu, "ngs-sidebar-nav-group-menu", ["ngsSidebarNavGroupMenu"], { "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "itemTypeProperty": { "alias": "itemTypeProperty"; "required": false; "isSignal": true; }; }, {}, ["_items", "_defs"], ["*"], true, never>;
121
121
  }
122
122
 
123
+ declare class SidebarSpacer {
124
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidebarSpacer, never>;
125
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidebarSpacer, "ngs-sidebar-spacer", ["ngsSidebarSpacer"], {}, {}, never, never, true, never>;
126
+ }
127
+
123
128
  declare class SidebarDivider {
124
129
  static ɵfac: i0.ɵɵFactoryDeclaration<SidebarDivider, never>;
125
- static ɵcmp: i0.ɵɵComponentDeclaration<SidebarDivider, "ngs-sidebar-divider", never, {}, {}, never, never, true, never>;
130
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidebarDivider, "ngs-sidebar-divider", ["ngsSidebarDivider"], {}, {}, never, never, true, never>;
126
131
  }
127
132
 
128
133
  declare class SidebarNavItemIconDirective {
@@ -145,4 +150,4 @@ declare class SidebarNavGroupToggleIconDirective {
145
150
  declare const SIDEBAR_NAVIGATION: InjectionToken<unknown>;
146
151
  declare const SIDEBAR_NAVIGATION_GROUP: InjectionToken<unknown>;
147
152
 
148
- export { SIDEBAR_NAVIGATION, SIDEBAR_NAVIGATION_GROUP, Sidebar, SidebarBody, SidebarDivider, SidebarFooter, SidebarHeader, SidebarNav, SidebarNavGroup, SidebarNavGroupMenu, SidebarNavGroupToggle, SidebarNavGroupToggleIconDirective, SidebarNavHeading, SidebarNavItem, SidebarNavItemBadgeDirective, SidebarNavItemDefDirective, SidebarNavItemIconDirective, SidebarNavItemInterface };
153
+ export { SIDEBAR_NAVIGATION, SIDEBAR_NAVIGATION_GROUP, Sidebar, SidebarBody, SidebarDivider, SidebarFooter, SidebarHeader, SidebarHeading, SidebarNav, SidebarNavGroup, SidebarNavGroupMenu, SidebarNavGroupToggle, SidebarNavGroupToggleIconDirective, SidebarNavItem, SidebarNavItemBadgeDirective, SidebarNavItemDefDirective, SidebarNavItemIconDirective, SidebarNavItemInterface, SidebarSpacer };
@@ -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"; }, never, never, true, never>;
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 };