@fabio.buscaroli/scm-utils 22.0.1
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/README.md +10 -0
- package/fesm2022/abv-scm-utils-core.mjs +3293 -0
- package/fesm2022/abv-scm-utils-core.mjs.map +1 -0
- package/fesm2022/abv-scm-utils-tinymce.mjs +230 -0
- package/fesm2022/abv-scm-utils-tinymce.mjs.map +1 -0
- package/fesm2022/abv-scm-utils-ui.application.mjs +3396 -0
- package/fesm2022/abv-scm-utils-ui.application.mjs.map +1 -0
- package/fesm2022/abv-scm-utils-ui.mjs +3060 -0
- package/fesm2022/abv-scm-utils-ui.mjs.map +1 -0
- package/fesm2022/abv-scm-utils-ui.oauth.mjs +278 -0
- package/fesm2022/abv-scm-utils-ui.oauth.mjs.map +1 -0
- package/fesm2022/abv-scm-utils.mjs +13 -0
- package/fesm2022/abv-scm-utils.mjs.map +1 -0
- package/fesm2022/fabio.buscaroli-scm-utils-core.mjs +3293 -0
- package/fesm2022/fabio.buscaroli-scm-utils-core.mjs.map +1 -0
- package/fesm2022/fabio.buscaroli-scm-utils-tinymce.mjs +230 -0
- package/fesm2022/fabio.buscaroli-scm-utils-tinymce.mjs.map +1 -0
- package/fesm2022/fabio.buscaroli-scm-utils-ui.application.mjs +3396 -0
- package/fesm2022/fabio.buscaroli-scm-utils-ui.application.mjs.map +1 -0
- package/fesm2022/fabio.buscaroli-scm-utils-ui.mjs +3060 -0
- package/fesm2022/fabio.buscaroli-scm-utils-ui.mjs.map +1 -0
- package/fesm2022/fabio.buscaroli-scm-utils-ui.oauth.mjs +278 -0
- package/fesm2022/fabio.buscaroli-scm-utils-ui.oauth.mjs.map +1 -0
- package/fesm2022/fabio.buscaroli-scm-utils.mjs +13 -0
- package/fesm2022/fabio.buscaroli-scm-utils.mjs.map +1 -0
- package/package.json +58 -0
- package/styles/ui.colors.scss +77 -0
- package/styles/ui.scss +350 -0
- package/tinymce/README.md +12 -0
- package/tinymce/langs/it.js +466 -0
- package/types/abv-scm-utils-core.d.ts +1536 -0
- package/types/abv-scm-utils-tinymce.d.ts +59 -0
- package/types/abv-scm-utils-ui.application.d.ts +1504 -0
- package/types/abv-scm-utils-ui.d.ts +1393 -0
- package/types/abv-scm-utils-ui.oauth.d.ts +68 -0
- package/types/abv-scm-utils.d.ts +4 -0
- package/types/fabio.buscaroli-scm-utils-core.d.ts +1536 -0
- package/types/fabio.buscaroli-scm-utils-tinymce.d.ts +59 -0
- package/types/fabio.buscaroli-scm-utils-ui.application.d.ts +1504 -0
- package/types/fabio.buscaroli-scm-utils-ui.d.ts +1393 -0
- package/types/fabio.buscaroli-scm-utils-ui.oauth.d.ts +68 -0
- package/types/fabio.buscaroli-scm-utils.d.ts +4 -0
|
@@ -0,0 +1,1504 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { EnvironmentProviders, OnDestroy, AfterViewInit, DoCheck, ElementRef } from '@angular/core';
|
|
3
|
+
import { INode, Searchable, SearchBag, NameValueItem, DateInterval, SearchFilterMetadata, FileInfo } from '@abv/scm-utils/core';
|
|
4
|
+
import { MatFormFieldAppearance, MatFormFieldControl } from '@angular/material/form-field';
|
|
5
|
+
import { MatDialogRef } from '@angular/material/dialog';
|
|
6
|
+
import { DialogService } from '@abv/scm-utils/ui';
|
|
7
|
+
import * as rxjs from 'rxjs';
|
|
8
|
+
import { Subject } from 'rxjs';
|
|
9
|
+
import { MatTree } from '@angular/material/tree';
|
|
10
|
+
import { NgForm, ControlValueAccessor, NgControl } from '@angular/forms';
|
|
11
|
+
import { MatCheckboxChange } from '@angular/material/checkbox';
|
|
12
|
+
import { MatSelectionList, MatSelectionListChange } from '@angular/material/list';
|
|
13
|
+
import { MatPaginator, PageEvent } from '@angular/material/paginator';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Standalone providers for the scm-utils "application" UI layer.
|
|
17
|
+
*
|
|
18
|
+
* Single source of truth for the environment-level configuration of this entry point.
|
|
19
|
+
* Use it in a standalone bootstrap instead of importing ArsUIApplicationModule:
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* bootstrapApplication(AppComponent, {
|
|
23
|
+
* providers: [provideArsUIApplication()]
|
|
24
|
+
* });
|
|
25
|
+
*/
|
|
26
|
+
declare function provideArsUIApplication(): EnvironmentProviders;
|
|
27
|
+
|
|
28
|
+
interface SendToDialogData {
|
|
29
|
+
count: number;
|
|
30
|
+
canPopulate?: boolean;
|
|
31
|
+
title?: string;
|
|
32
|
+
text?: string;
|
|
33
|
+
subject?: string;
|
|
34
|
+
info?: string;
|
|
35
|
+
appearance?: MatFormFieldAppearance;
|
|
36
|
+
options?: any;
|
|
37
|
+
}
|
|
38
|
+
declare class SendToDialogComponent {
|
|
39
|
+
/** Emitted when the user confirms and sends the message. */
|
|
40
|
+
readonly done: _angular_core.OutputEmitterRef<SendToDialogResult>;
|
|
41
|
+
/** Emitted when the user requests to populate the recipient list. */
|
|
42
|
+
readonly populate: _angular_core.OutputEmitterRef<SendToPopulateData>;
|
|
43
|
+
private readonly cdr;
|
|
44
|
+
/** Dialog configuration, injected and exposed as a signal. */
|
|
45
|
+
protected readonly dialogData: _angular_core.WritableSignal<SendToDialogData>;
|
|
46
|
+
/** Form model for the send-to form fields. */
|
|
47
|
+
protected item: SendToDialogResult;
|
|
48
|
+
/**
|
|
49
|
+
* Confirm the form and emit the result.
|
|
50
|
+
*/
|
|
51
|
+
protected ok(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Request the host to populate the recipient list.
|
|
54
|
+
* Only emits if `canPopulate` is enabled in the dialog data.
|
|
55
|
+
*/
|
|
56
|
+
protected populateRecipients(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Update the recipient list from an external caller.
|
|
59
|
+
* @param recipients - The new recipients string (semicolon-separated).
|
|
60
|
+
*/
|
|
61
|
+
updateRecipients(recipients: string): void;
|
|
62
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SendToDialogComponent, never>;
|
|
63
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SendToDialogComponent, "ng-component", never, {}, { "done": "done"; "populate": "populate"; }, never, never, true, never>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
interface SelectDialogResult {
|
|
67
|
+
selectedItems: SelectableItem[];
|
|
68
|
+
}
|
|
69
|
+
interface SelectTreeDialogResult {
|
|
70
|
+
selectedItems: ItemNode[];
|
|
71
|
+
}
|
|
72
|
+
interface SelectDialogLookup {
|
|
73
|
+
items: SelectableItem[];
|
|
74
|
+
filter?: string;
|
|
75
|
+
params?: any;
|
|
76
|
+
owner?: any;
|
|
77
|
+
}
|
|
78
|
+
interface SelectDialogFilter {
|
|
79
|
+
items?: SelectableItem[];
|
|
80
|
+
filter?: string;
|
|
81
|
+
filterOption?: SelectableFilter;
|
|
82
|
+
owner?: any;
|
|
83
|
+
}
|
|
84
|
+
interface SelectDialogAppend {
|
|
85
|
+
items: SelectableItem[];
|
|
86
|
+
owner?: any;
|
|
87
|
+
}
|
|
88
|
+
interface SelectDialogEdit extends SelectDialogAppend {
|
|
89
|
+
item: SelectableItem;
|
|
90
|
+
}
|
|
91
|
+
interface SelectDialogDelete {
|
|
92
|
+
items: SelectableItem[];
|
|
93
|
+
selectedItems: SelectableItem[];
|
|
94
|
+
owner?: any;
|
|
95
|
+
}
|
|
96
|
+
interface SelectFileOption {
|
|
97
|
+
description: string;
|
|
98
|
+
value: boolean;
|
|
99
|
+
}
|
|
100
|
+
interface SelectFile {
|
|
101
|
+
file: File;
|
|
102
|
+
options?: SelectFileOption[];
|
|
103
|
+
}
|
|
104
|
+
interface SelectableFilter {
|
|
105
|
+
divider?: boolean;
|
|
106
|
+
description?: string;
|
|
107
|
+
group?: number;
|
|
108
|
+
groupName?: string;
|
|
109
|
+
radio?: boolean;
|
|
110
|
+
checked?: boolean;
|
|
111
|
+
value?: any;
|
|
112
|
+
icon?: string;
|
|
113
|
+
title?: string;
|
|
114
|
+
}
|
|
115
|
+
interface SelectDialogData {
|
|
116
|
+
title: string;
|
|
117
|
+
description?: string;
|
|
118
|
+
okCaption?: string;
|
|
119
|
+
maxItems?: number;
|
|
120
|
+
multipleSelection?: boolean;
|
|
121
|
+
mustSelect?: boolean;
|
|
122
|
+
width?: number;
|
|
123
|
+
filter?: string;
|
|
124
|
+
filters?: SelectableFilter[];
|
|
125
|
+
items?: SelectableItem[];
|
|
126
|
+
lookupFields?: NameValueItem<string>[];
|
|
127
|
+
lookupOnInit?: boolean;
|
|
128
|
+
emptyMessage?: string;
|
|
129
|
+
canLookupWithOptions?: boolean;
|
|
130
|
+
canLookupWithInlineOptions?: boolean;
|
|
131
|
+
canLookup?: boolean;
|
|
132
|
+
canDelete?: boolean;
|
|
133
|
+
canAppend?: boolean;
|
|
134
|
+
canEdit?: boolean;
|
|
135
|
+
canView?: boolean;
|
|
136
|
+
canFilter?: boolean;
|
|
137
|
+
canPaginate?: boolean;
|
|
138
|
+
pageSize?: number;
|
|
139
|
+
appearance?: MatFormFieldAppearance;
|
|
140
|
+
header?: string;
|
|
141
|
+
searchLabel?: string;
|
|
142
|
+
searchButtonLabel?: string;
|
|
143
|
+
}
|
|
144
|
+
interface SelectTreeDialogData {
|
|
145
|
+
title: string;
|
|
146
|
+
description?: string;
|
|
147
|
+
okCaption?: string;
|
|
148
|
+
nodes?: ItemNode[];
|
|
149
|
+
initialFilter?: string;
|
|
150
|
+
appearance?: MatFormFieldAppearance;
|
|
151
|
+
owner?: any;
|
|
152
|
+
canAppend?: boolean;
|
|
153
|
+
}
|
|
154
|
+
interface SelectFileDialogData {
|
|
155
|
+
title: string;
|
|
156
|
+
description?: string;
|
|
157
|
+
okCaption?: string;
|
|
158
|
+
helpLink?: string;
|
|
159
|
+
helpCaption?: string;
|
|
160
|
+
maxSize?: number;
|
|
161
|
+
options?: any;
|
|
162
|
+
owner?: any;
|
|
163
|
+
accept?: string;
|
|
164
|
+
appearance?: MatFormFieldAppearance;
|
|
165
|
+
}
|
|
166
|
+
interface SelectPictureFileDialogData extends SelectFileDialogData {
|
|
167
|
+
maxWidth?: number;
|
|
168
|
+
maxHeight?: number;
|
|
169
|
+
}
|
|
170
|
+
interface ISelectableItem extends Searchable {
|
|
171
|
+
bag: any;
|
|
172
|
+
template: string;
|
|
173
|
+
}
|
|
174
|
+
declare class SelectableItem implements ISelectableItem {
|
|
175
|
+
bag: any;
|
|
176
|
+
template: string;
|
|
177
|
+
/** Searchable index bag. */
|
|
178
|
+
searchBag: SearchBag;
|
|
179
|
+
}
|
|
180
|
+
declare class ItemNode implements INode {
|
|
181
|
+
id: string;
|
|
182
|
+
name: string;
|
|
183
|
+
count?: number;
|
|
184
|
+
parent?: INode;
|
|
185
|
+
children?: INode[];
|
|
186
|
+
bag?: any;
|
|
187
|
+
}
|
|
188
|
+
declare class SelectableNode extends ItemNode implements Searchable {
|
|
189
|
+
expandable: boolean;
|
|
190
|
+
level: number;
|
|
191
|
+
/** Searchable index bag. */
|
|
192
|
+
searchBag: SearchBag;
|
|
193
|
+
/**
|
|
194
|
+
* Create a flattened tree node from a source ItemNode.
|
|
195
|
+
* @param item - The source tree node.
|
|
196
|
+
* @param level - The depth level of this node in the tree.
|
|
197
|
+
*/
|
|
198
|
+
constructor(item: ItemNode, level: number);
|
|
199
|
+
}
|
|
200
|
+
interface SendToPopulateData {
|
|
201
|
+
item: SendToDialogResult;
|
|
202
|
+
source: SendToDialogComponent;
|
|
203
|
+
}
|
|
204
|
+
interface SendToDialogResult {
|
|
205
|
+
recipients?: string;
|
|
206
|
+
subject?: string;
|
|
207
|
+
text?: string;
|
|
208
|
+
options?: any;
|
|
209
|
+
}
|
|
210
|
+
interface PromptDialogResult {
|
|
211
|
+
value?: string;
|
|
212
|
+
type?: PromptDialogType;
|
|
213
|
+
options?: any;
|
|
214
|
+
}
|
|
215
|
+
interface PromptDateDialogResult {
|
|
216
|
+
value?: Date | DateInterval;
|
|
217
|
+
type?: PromptDialogType;
|
|
218
|
+
options?: any;
|
|
219
|
+
}
|
|
220
|
+
interface PromptOtpDialogResult {
|
|
221
|
+
value?: string;
|
|
222
|
+
}
|
|
223
|
+
declare enum PromptDialogType {
|
|
224
|
+
Default = 0,
|
|
225
|
+
Date = 1,
|
|
226
|
+
Number = 2,
|
|
227
|
+
Text = 3,
|
|
228
|
+
DateInterval = 4,
|
|
229
|
+
List = 5,
|
|
230
|
+
Time = 6
|
|
231
|
+
}
|
|
232
|
+
interface PromptDialogData {
|
|
233
|
+
title: string;
|
|
234
|
+
type: PromptDialogType;
|
|
235
|
+
description?: string;
|
|
236
|
+
okCaption?: string;
|
|
237
|
+
cancelCaption?: string;
|
|
238
|
+
initialValue?: any;
|
|
239
|
+
minValue?: number;
|
|
240
|
+
maxValue?: number;
|
|
241
|
+
required?: boolean;
|
|
242
|
+
appearance?: MatFormFieldAppearance;
|
|
243
|
+
options?: any;
|
|
244
|
+
}
|
|
245
|
+
interface PromptTimeDialogData extends PromptDialogData {
|
|
246
|
+
slots?: string;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/** Constants identifying each filter group slot and text filter channels. */
|
|
250
|
+
declare const Filters: {
|
|
251
|
+
FLT_1: number;
|
|
252
|
+
FLT_2: number;
|
|
253
|
+
FLT_3: number;
|
|
254
|
+
FLT_4: number;
|
|
255
|
+
FLT_5: number;
|
|
256
|
+
FLT_TEXT: number;
|
|
257
|
+
FLT_TEXT_1: number;
|
|
258
|
+
FLT_TEXT_2: number;
|
|
259
|
+
FLT_TEXT_3: number;
|
|
260
|
+
};
|
|
261
|
+
/** Describes a top-level filter group with optional items or a custom action. */
|
|
262
|
+
interface FilterGroup {
|
|
263
|
+
group?: number;
|
|
264
|
+
title?: string;
|
|
265
|
+
tooltip?: string;
|
|
266
|
+
items?: FilterItem[];
|
|
267
|
+
action?: any;
|
|
268
|
+
}
|
|
269
|
+
/** A single selectable entry within a FilterGroup. */
|
|
270
|
+
interface FilterItem {
|
|
271
|
+
group?: number;
|
|
272
|
+
title?: string;
|
|
273
|
+
titleSelected?: string;
|
|
274
|
+
description?: string;
|
|
275
|
+
divider?: boolean;
|
|
276
|
+
value?: any;
|
|
277
|
+
}
|
|
278
|
+
/** Event payload emitted when an active filter changes. */
|
|
279
|
+
declare class CurrentFilterChanged {
|
|
280
|
+
/** The updated filter state. */
|
|
281
|
+
filter: CurrentFilter;
|
|
282
|
+
/** The group slot that changed (see Filters constants). */
|
|
283
|
+
group: number;
|
|
284
|
+
}
|
|
285
|
+
/** Holds the current state of all active filters for a filter-bar component. */
|
|
286
|
+
declare class CurrentFilter {
|
|
287
|
+
flt1?: any;
|
|
288
|
+
flt1Name?: string;
|
|
289
|
+
flt2?: any;
|
|
290
|
+
flt2Name?: string;
|
|
291
|
+
flt3?: any;
|
|
292
|
+
flt3Name?: string;
|
|
293
|
+
flt4?: any;
|
|
294
|
+
flt4Name?: string;
|
|
295
|
+
flt5?: any;
|
|
296
|
+
flt5Name?: string;
|
|
297
|
+
text?: string;
|
|
298
|
+
text2?: string;
|
|
299
|
+
text3?: string;
|
|
300
|
+
/**
|
|
301
|
+
* Returns true if any filter slot or text field is currently active.
|
|
302
|
+
* @returns Whether at least one filter is applied.
|
|
303
|
+
*/
|
|
304
|
+
filtered(): boolean;
|
|
305
|
+
}
|
|
306
|
+
/** Holds the selected value and display state for a single typed filter slot. */
|
|
307
|
+
declare class CurrentFilterItem<T> {
|
|
308
|
+
items?: any[];
|
|
309
|
+
value?: T;
|
|
310
|
+
enabled?: boolean;
|
|
311
|
+
title?: string;
|
|
312
|
+
selectedTitle?: string;
|
|
313
|
+
/**
|
|
314
|
+
* Reset the filter to its empty state.
|
|
315
|
+
*/
|
|
316
|
+
clear(): void;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
declare class TreeDataSource implements OnDestroy {
|
|
320
|
+
private readonly _dataChange;
|
|
321
|
+
readonly dataChange$: rxjs.Observable<ItemNode[]>;
|
|
322
|
+
get data(): ItemNode[];
|
|
323
|
+
ngOnDestroy(): void;
|
|
324
|
+
initialize(data: ItemNode[]): void;
|
|
325
|
+
/**
|
|
326
|
+
* Find a node by id recursively.
|
|
327
|
+
* @param node - The source node to search from, or null to search from root.
|
|
328
|
+
* @param id - The id to search for.
|
|
329
|
+
* @returns The matching node, or undefined if not found.
|
|
330
|
+
*/
|
|
331
|
+
findNode(node: ItemNode | null, id: string): ItemNode | undefined;
|
|
332
|
+
/**
|
|
333
|
+
* Remove a node from the tree.
|
|
334
|
+
* @param id - The id of the node to remove.
|
|
335
|
+
*/
|
|
336
|
+
removeNode(id: string): void;
|
|
337
|
+
/**
|
|
338
|
+
* Insert a new node at the top of its parent (or root).
|
|
339
|
+
* @param node - The new node to insert.
|
|
340
|
+
*/
|
|
341
|
+
insertNode(node: ItemNode): void;
|
|
342
|
+
/**
|
|
343
|
+
* Rename a node in the tree.
|
|
344
|
+
* @param id - The id of the node to rename.
|
|
345
|
+
* @param name - The new name for the node.
|
|
346
|
+
* @returns The renamed node, or undefined if not found.
|
|
347
|
+
*/
|
|
348
|
+
renameNode(id: string, name: string): ItemNode | undefined;
|
|
349
|
+
/**
|
|
350
|
+
* Notify all subscribers of the current data state.
|
|
351
|
+
*/
|
|
352
|
+
update(): void;
|
|
353
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeDataSource, never>;
|
|
354
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<TreeDataSource>;
|
|
355
|
+
}
|
|
356
|
+
interface SelectTreeDialogAppend {
|
|
357
|
+
parent?: ItemNode;
|
|
358
|
+
owner?: any;
|
|
359
|
+
}
|
|
360
|
+
declare class SelectTreeDialogComponent {
|
|
361
|
+
/** Emitted when the user confirms a selection. */
|
|
362
|
+
readonly done: _angular_core.OutputEmitterRef<SelectTreeDialogResult>;
|
|
363
|
+
/** Emitted when the user requests to append a new node. */
|
|
364
|
+
readonly append: _angular_core.OutputEmitterRef<SelectTreeDialogAppend>;
|
|
365
|
+
private readonly destroyRef;
|
|
366
|
+
private readonly dialogRef;
|
|
367
|
+
/** Dialog configuration, injected and exposed as a signal. */
|
|
368
|
+
protected readonly dialogData: _angular_core.WritableSignal<SelectTreeDialogData>;
|
|
369
|
+
private readonly tree;
|
|
370
|
+
private readonly _elRef;
|
|
371
|
+
/** Reference to the Material tree component. */
|
|
372
|
+
protected readonly matTree: _angular_core.Signal<MatTree<ItemNode, ItemNode>>;
|
|
373
|
+
/** Provides children of a tree node to the tree component. */
|
|
374
|
+
protected readonly childrenAccessor: (node: ItemNode) => ItemNode[];
|
|
375
|
+
/** Root nodes used as the tree data source. */
|
|
376
|
+
protected readonly treeNodes: _angular_core.WritableSignal<ItemNode[]>;
|
|
377
|
+
/** Currently selected tree node. */
|
|
378
|
+
protected readonly currentNode: _angular_core.WritableSignal<ItemNode>;
|
|
379
|
+
/** Current filter text. */
|
|
380
|
+
protected readonly filterText: _angular_core.WritableSignal<string>;
|
|
381
|
+
/** Nodes matching the current filter text. */
|
|
382
|
+
protected readonly filteredItems: _angular_core.WritableSignal<ItemNode[]>;
|
|
383
|
+
/** Index of the currently highlighted filtered node (-1 = none). */
|
|
384
|
+
protected readonly filterIndex: _angular_core.WritableSignal<number>;
|
|
385
|
+
/** The currently highlighted filtered node, or null. */
|
|
386
|
+
protected readonly filteredNode: _angular_core.Signal<ItemNode>;
|
|
387
|
+
protected readonly canAppend: _angular_core.WritableSignal<boolean>;
|
|
388
|
+
/** Flat node map rebuilt whenever treeNodes changes. */
|
|
389
|
+
private readonly _nodeMap;
|
|
390
|
+
protected hasChild: (_: number, node: ItemNode) => boolean;
|
|
391
|
+
constructor();
|
|
392
|
+
/**
|
|
393
|
+
* Confirm the current selection and close the dialog.
|
|
394
|
+
*/
|
|
395
|
+
protected ok(): void;
|
|
396
|
+
/**
|
|
397
|
+
* Toggle selection of a tree node. Clicking the already-selected node deselects it.
|
|
398
|
+
* @param e - The mouse event (propagation is stopped).
|
|
399
|
+
* @param node - The node that was clicked.
|
|
400
|
+
*/
|
|
401
|
+
protected select(e: MouseEvent, node: ItemNode): void;
|
|
402
|
+
/**
|
|
403
|
+
* Clear the active filter text.
|
|
404
|
+
*/
|
|
405
|
+
protected clearFilter(): void;
|
|
406
|
+
/**
|
|
407
|
+
* Filter the tree nodes by name (minimum 3 characters).
|
|
408
|
+
*/
|
|
409
|
+
protected doFilter(): void;
|
|
410
|
+
/**
|
|
411
|
+
* Advance to the next matching filtered node and scroll it into view.
|
|
412
|
+
*/
|
|
413
|
+
protected nextFiltered(): void;
|
|
414
|
+
/**
|
|
415
|
+
* Returns true when the node is the currently highlighted filter match.
|
|
416
|
+
* @param node - tree node to check.
|
|
417
|
+
*/
|
|
418
|
+
protected isFilteredNode(node: ItemNode): boolean;
|
|
419
|
+
/**
|
|
420
|
+
* Expands ancestors of the target node and scrolls it into view.
|
|
421
|
+
* @param index - index within `items` to scroll to.
|
|
422
|
+
* @param items - current filtered items array.
|
|
423
|
+
*/
|
|
424
|
+
private _scrollToFiltered;
|
|
425
|
+
/**
|
|
426
|
+
* Expand a node and all of its parent nodes.
|
|
427
|
+
* @param node - The node to expand.
|
|
428
|
+
* @returns Always false.
|
|
429
|
+
*/
|
|
430
|
+
expand(node: ItemNode): boolean;
|
|
431
|
+
/**
|
|
432
|
+
* Recursively find a node by id.
|
|
433
|
+
* @param nodes - Nodes to search.
|
|
434
|
+
* @param id - The id to find.
|
|
435
|
+
*/
|
|
436
|
+
private findInTree;
|
|
437
|
+
/**
|
|
438
|
+
* Append a new node to the tree.
|
|
439
|
+
* @param node - The node to insert.
|
|
440
|
+
*/
|
|
441
|
+
appendNode(node: ItemNode): void;
|
|
442
|
+
/**
|
|
443
|
+
* Collapse all tree nodes and reset the current selection.
|
|
444
|
+
*/
|
|
445
|
+
protected collapseAll(): void;
|
|
446
|
+
/**
|
|
447
|
+
* Expand all tree nodes and scroll to the selected node, if any.
|
|
448
|
+
*/
|
|
449
|
+
protected expandAll(): void;
|
|
450
|
+
/**
|
|
451
|
+
* Emit an append request with the currently selected node as the parent.
|
|
452
|
+
*/
|
|
453
|
+
protected doAppend(): void;
|
|
454
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectTreeDialogComponent, never>;
|
|
455
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectTreeDialogComponent, "ng-component", never, {}, { "done": "done"; "append": "append"; }, never, never, true, never>;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
declare class SelectPictureDialogComponent {
|
|
459
|
+
readonly done: _angular_core.OutputEmitterRef<SelectFile>;
|
|
460
|
+
private readonly dialogService;
|
|
461
|
+
private readonly dialogRef;
|
|
462
|
+
protected readonly dialogData: _angular_core.WritableSignal<SelectPictureFileDialogData>;
|
|
463
|
+
protected readonly file: _angular_core.WritableSignal<File>;
|
|
464
|
+
protected fileClass: _angular_core.WritableSignal<"selectpicture-file" | "selectpicture-file-drop">;
|
|
465
|
+
protected pictureWidth: _angular_core.WritableSignal<number>;
|
|
466
|
+
protected pictureHeight: _angular_core.WritableSignal<number>;
|
|
467
|
+
protected picturePreview: _angular_core.WritableSignal<any>;
|
|
468
|
+
/**
|
|
469
|
+
* Handles the native file input change event and delegates to `selectFile`.
|
|
470
|
+
* @param e - The DOM change event from the file input.
|
|
471
|
+
*/
|
|
472
|
+
protected update(e: Event): void;
|
|
473
|
+
/**
|
|
474
|
+
* Validates the file size and type, then reads it as a data URL to generate a preview.
|
|
475
|
+
* @param file - The `File` object to validate and preview.
|
|
476
|
+
*/
|
|
477
|
+
private selectFile;
|
|
478
|
+
/**
|
|
479
|
+
* Formats a byte count into a human-readable size string.
|
|
480
|
+
* @param size - File size in bytes.
|
|
481
|
+
* @returns A formatted size string (e.g. "1.2 MB").
|
|
482
|
+
*/
|
|
483
|
+
protected size(size: number): string;
|
|
484
|
+
/** Emits the selected file and options, then closes the dialog. */
|
|
485
|
+
protected ok(): void;
|
|
486
|
+
/** Highlights the drop zone when a dragged item is over it.
|
|
487
|
+
* @param e - The drag event.
|
|
488
|
+
*/
|
|
489
|
+
protected onDragOver(e: DragEvent): void;
|
|
490
|
+
/** Highlights the drop zone when a dragged item enters.
|
|
491
|
+
* @param e - The drag event.
|
|
492
|
+
*/
|
|
493
|
+
protected onDragEnter(e: DragEvent): void;
|
|
494
|
+
/** Resets the drop zone style when dragging ends.
|
|
495
|
+
* @param e - The drag event.
|
|
496
|
+
*/
|
|
497
|
+
protected onDragEnd(e: DragEvent): void;
|
|
498
|
+
/** Resets the drop zone style when a dragged item leaves.
|
|
499
|
+
* @param e - The drag event.
|
|
500
|
+
*/
|
|
501
|
+
protected onDragLeave(e: DragEvent): void;
|
|
502
|
+
/**
|
|
503
|
+
* Handles a file drop event, extracting and processing the dropped image.
|
|
504
|
+
* @param e - The drop event.
|
|
505
|
+
*/
|
|
506
|
+
protected onDrop(e: DragEvent): void;
|
|
507
|
+
/**
|
|
508
|
+
* Picks the first file from the list and passes it to `selectFile`.
|
|
509
|
+
* @param files - The `FileList` from the drag-and-drop event.
|
|
510
|
+
*/
|
|
511
|
+
private addFiles;
|
|
512
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectPictureDialogComponent, never>;
|
|
513
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectPictureDialogComponent, "ng-component", never, {}, { "done": "done"; }, never, never, true, never>;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
declare class SelectFileDialogComponent {
|
|
517
|
+
readonly done: _angular_core.OutputEmitterRef<SelectFile>;
|
|
518
|
+
private readonly dialogService;
|
|
519
|
+
private readonly dialogRef;
|
|
520
|
+
protected readonly dialogData: _angular_core.WritableSignal<SelectFileDialogData>;
|
|
521
|
+
protected readonly file: _angular_core.WritableSignal<File>;
|
|
522
|
+
protected fileClass: _angular_core.WritableSignal<"selectfile-file" | "selectfile-file-drop">;
|
|
523
|
+
/**
|
|
524
|
+
* Handles the native file input change event and delegates to `selectFile`.
|
|
525
|
+
* @param e - The DOM change event from the file input.
|
|
526
|
+
*/
|
|
527
|
+
protected update(e: Event): void;
|
|
528
|
+
/**
|
|
529
|
+
* Validates and sets the selected file, showing an error if size or type constraints are violated.
|
|
530
|
+
* @param file - The `File` object to validate and store.
|
|
531
|
+
*/
|
|
532
|
+
private selectFile;
|
|
533
|
+
/**
|
|
534
|
+
* Formats a byte count into a human-readable size string.
|
|
535
|
+
* @param size - File size in bytes.
|
|
536
|
+
* @returns A formatted size string (e.g. "1.2 MB").
|
|
537
|
+
*/
|
|
538
|
+
protected size(size: number): string;
|
|
539
|
+
/** Emits the selected file and options, then closes the dialog. */
|
|
540
|
+
protected ok(): void;
|
|
541
|
+
/** Highlights the drop zone when a drag enters the area.
|
|
542
|
+
* @param e - The drag event.
|
|
543
|
+
*/
|
|
544
|
+
protected onDragOver(e: DragEvent): void;
|
|
545
|
+
/** Highlights the drop zone when a dragged item enters.
|
|
546
|
+
* @param e - The drag event.
|
|
547
|
+
*/
|
|
548
|
+
protected onDragEnter(e: DragEvent): void;
|
|
549
|
+
/** Resets the drop zone style when dragging ends.
|
|
550
|
+
* @param e - The drag event.
|
|
551
|
+
*/
|
|
552
|
+
protected onDragEnd(e: DragEvent): void;
|
|
553
|
+
/** Resets the drop zone style when a dragged item leaves the area.
|
|
554
|
+
* @param e - The drag event.
|
|
555
|
+
*/
|
|
556
|
+
protected onDragLeave(e: DragEvent): void;
|
|
557
|
+
/**
|
|
558
|
+
* Handles a file drop event, extracting and processing the dropped files.
|
|
559
|
+
* @param e - The drop event.
|
|
560
|
+
*/
|
|
561
|
+
protected onDrop(e: DragEvent): void;
|
|
562
|
+
/**
|
|
563
|
+
* Picks the first file from the list and passes it to `selectFile`.
|
|
564
|
+
* @param files - The `FileList` from the drag-and-drop event.
|
|
565
|
+
*/
|
|
566
|
+
private addFiles;
|
|
567
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectFileDialogComponent, never>;
|
|
568
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectFileDialogComponent, "ng-component", never, {}, { "done": "done"; }, never, never, true, never>;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
declare class PromptDialogComponent {
|
|
572
|
+
readonly f: _angular_core.Signal<NgForm>;
|
|
573
|
+
readonly done: _angular_core.OutputEmitterRef<PromptDialogResult>;
|
|
574
|
+
private readonly dialogService;
|
|
575
|
+
protected readonly dialogData: _angular_core.WritableSignal<PromptDialogData>;
|
|
576
|
+
protected value: any;
|
|
577
|
+
/**
|
|
578
|
+
* Validates the form and emits the result, or shows an error if validation fails.
|
|
579
|
+
*/
|
|
580
|
+
protected ok(): void;
|
|
581
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PromptDialogComponent, never>;
|
|
582
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PromptDialogComponent, "ng-component", never, {}, { "done": "done"; }, never, never, true, never>;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
declare class PromptDateDialogComponent {
|
|
586
|
+
readonly f: _angular_core.Signal<NgForm>;
|
|
587
|
+
readonly done: _angular_core.OutputEmitterRef<PromptDateDialogResult>;
|
|
588
|
+
private readonly dialogService;
|
|
589
|
+
protected readonly dialogData: _angular_core.WritableSignal<PromptDialogData>;
|
|
590
|
+
protected value: any;
|
|
591
|
+
/**
|
|
592
|
+
* Validates the form and emits the result, or shows an error if validation fails.
|
|
593
|
+
*/
|
|
594
|
+
protected ok(): void;
|
|
595
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PromptDateDialogComponent, never>;
|
|
596
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PromptDateDialogComponent, "ng-component", never, {}, { "done": "done"; }, never, never, true, never>;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
declare class PromptOtpDialogComponent {
|
|
600
|
+
readonly f: _angular_core.Signal<NgForm>;
|
|
601
|
+
readonly done: _angular_core.OutputEmitterRef<PromptOtpDialogResult>;
|
|
602
|
+
private readonly dialogService;
|
|
603
|
+
protected readonly dialogData: _angular_core.WritableSignal<PromptDialogData>;
|
|
604
|
+
protected value: any;
|
|
605
|
+
/**
|
|
606
|
+
* Validates the form and emits the OTP result, or shows an error if validation fails.
|
|
607
|
+
*/
|
|
608
|
+
protected ok(): void;
|
|
609
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PromptOtpDialogComponent, never>;
|
|
610
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PromptOtpDialogComponent, "ng-component", never, {}, { "done": "done"; }, never, never, true, never>;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
declare class PromptTimeDialogComponent {
|
|
614
|
+
readonly f: _angular_core.Signal<NgForm>;
|
|
615
|
+
readonly done: _angular_core.OutputEmitterRef<PromptDialogResult>;
|
|
616
|
+
private readonly dialogService;
|
|
617
|
+
protected readonly dialogData: _angular_core.WritableSignal<PromptTimeDialogData>;
|
|
618
|
+
protected value: any;
|
|
619
|
+
/**
|
|
620
|
+
* Validates the form and emits the result, or shows an error if validation fails.
|
|
621
|
+
*/
|
|
622
|
+
protected ok(): void;
|
|
623
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PromptTimeDialogComponent, never>;
|
|
624
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PromptTimeDialogComponent, "ng-component", never, {}, { "done": "done"; }, never, never, true, never>;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
declare class SelectDialogComponent implements AfterViewInit {
|
|
628
|
+
readonly paginator: _angular_core.Signal<MatPaginator>;
|
|
629
|
+
readonly selection: _angular_core.Signal<MatSelectionList>;
|
|
630
|
+
private isViewReady;
|
|
631
|
+
private readonly dialogRef;
|
|
632
|
+
private readonly cdr;
|
|
633
|
+
protected readonly dialogData: _angular_core.WritableSignal<SelectDialogData>;
|
|
634
|
+
readonly done: _angular_core.OutputEmitterRef<SelectDialogResult>;
|
|
635
|
+
readonly edit: _angular_core.OutputEmitterRef<SelectDialogEdit>;
|
|
636
|
+
readonly view: _angular_core.OutputEmitterRef<SelectableItem>;
|
|
637
|
+
readonly append: _angular_core.OutputEmitterRef<SelectDialogAppend>;
|
|
638
|
+
readonly delete: _angular_core.OutputEmitterRef<SelectDialogDelete>;
|
|
639
|
+
readonly lookup: _angular_core.OutputEmitterRef<SelectDialogLookup>;
|
|
640
|
+
readonly lookupOptions: _angular_core.OutputEmitterRef<void>;
|
|
641
|
+
readonly filter: _angular_core.OutputEmitterRef<SelectDialogFilter>;
|
|
642
|
+
protected canEdit: _angular_core.WritableSignal<boolean>;
|
|
643
|
+
protected canView: _angular_core.WritableSignal<boolean>;
|
|
644
|
+
protected canAppend: _angular_core.WritableSignal<boolean>;
|
|
645
|
+
protected canDelete: _angular_core.WritableSignal<boolean>;
|
|
646
|
+
protected canPaginate: _angular_core.WritableSignal<boolean>;
|
|
647
|
+
protected okDisabled: _angular_core.WritableSignal<boolean>;
|
|
648
|
+
protected filterMetadata: SearchFilterMetadata;
|
|
649
|
+
protected filterText: string;
|
|
650
|
+
protected readonly filterOptions: _angular_core.WritableSignal<SelectableFilter[]>;
|
|
651
|
+
protected filterOptionsInfo: _angular_core.WritableSignal<string>;
|
|
652
|
+
protected lookupField: string;
|
|
653
|
+
private lookupParams?;
|
|
654
|
+
protected selectionInfo: _angular_core.WritableSignal<string>;
|
|
655
|
+
protected selectionMasterIndeterminate: _angular_core.WritableSignal<boolean>;
|
|
656
|
+
protected selectionMasterChecked: _angular_core.WritableSignal<boolean>;
|
|
657
|
+
protected total: _angular_core.WritableSignal<number>;
|
|
658
|
+
constructor();
|
|
659
|
+
ngAfterViewInit(): void;
|
|
660
|
+
/**
|
|
661
|
+
* Updates the total item count signal, triggering UI refresh.
|
|
662
|
+
* @param newTotal - The new total count; defaults to 0 if omitted.
|
|
663
|
+
*/
|
|
664
|
+
notifyChanges(newTotal?: number): void;
|
|
665
|
+
/** Returns `true` when every list item is currently selected. */
|
|
666
|
+
private isAllSelected;
|
|
667
|
+
/** Returns `true` when at least one list item is selected. */
|
|
668
|
+
private hasSelection;
|
|
669
|
+
/**
|
|
670
|
+
* Selects or deselects all items based on the master checkbox state.
|
|
671
|
+
* @param e - The checkbox change event.
|
|
672
|
+
*/
|
|
673
|
+
protected masterSelectionToggle(e: MatCheckboxChange): void;
|
|
674
|
+
/**
|
|
675
|
+
* Handles selection or deselection of a list item.
|
|
676
|
+
* @param e - The selection list change event.
|
|
677
|
+
*/
|
|
678
|
+
protected select(e: MatSelectionListChange): void;
|
|
679
|
+
/** Refreshes the selection info label shown in the dialog footer. */
|
|
680
|
+
private updateSelectionInfo;
|
|
681
|
+
/** Deselects all items and resets the master checkbox state. */
|
|
682
|
+
clearSelection(): void;
|
|
683
|
+
/** Emits the current selection and closes the dialog. */
|
|
684
|
+
protected ok(): void;
|
|
685
|
+
/** Clears the current filter text input. */
|
|
686
|
+
protected clearFilter(): void;
|
|
687
|
+
/**
|
|
688
|
+
* Sets the filter text programmatically.
|
|
689
|
+
* @param text - The new filter string to apply.
|
|
690
|
+
*/
|
|
691
|
+
setFilter(text: string): void;
|
|
692
|
+
/**
|
|
693
|
+
* Returns the current filter text.
|
|
694
|
+
* @returns The active filter string.
|
|
695
|
+
*/
|
|
696
|
+
getFilter(): string;
|
|
697
|
+
/** Emits the `lookupOptions` output event to open the filter options panel. */
|
|
698
|
+
protected showFilterOptions(): void;
|
|
699
|
+
/**
|
|
700
|
+
* Applies the given text filter, emitting a lookup when enabled.
|
|
701
|
+
* @param text - Optional filter string; populates `filterText` when provided.
|
|
702
|
+
* @param e - Optional keyboard event; lookup only fires on Enter.
|
|
703
|
+
*/
|
|
704
|
+
protected doFilter(text?: string, e?: KeyboardEvent): void;
|
|
705
|
+
/**
|
|
706
|
+
* Applies a structured filter option, emitting the filter output event.
|
|
707
|
+
* @param filterOption - The selected filter option object.
|
|
708
|
+
*/
|
|
709
|
+
protected doFilterByOptions(filterOption: any): void;
|
|
710
|
+
/**
|
|
711
|
+
* Triggers a server-side lookup with the given parameters (public API).
|
|
712
|
+
* @param params - An object containing the lookup query parameters.
|
|
713
|
+
*/
|
|
714
|
+
doLookup(params: any): void;
|
|
715
|
+
/**
|
|
716
|
+
* Updates the paginator length and resets it to the first page.
|
|
717
|
+
* @param total - The new total number of items.
|
|
718
|
+
*/
|
|
719
|
+
protected updateLookupPaginator(total: number): void;
|
|
720
|
+
/**
|
|
721
|
+
* Handles a paginator page change and triggers a new lookup.
|
|
722
|
+
* @param e - The paginator page change event.
|
|
723
|
+
*/
|
|
724
|
+
protected doLookupPage(e: PageEvent): void;
|
|
725
|
+
/** Emits the `append` output event to open the add-item flow. */
|
|
726
|
+
protected doAppend(): void;
|
|
727
|
+
/** Emits the `edit` output event for the currently selected item. */
|
|
728
|
+
protected doEdit(): void;
|
|
729
|
+
/** Emits the `view` output event for the currently selected item. */
|
|
730
|
+
protected doView(): void;
|
|
731
|
+
/** Emits the `delete` output event with all currently selected items. */
|
|
732
|
+
protected doDelete(): void;
|
|
733
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectDialogComponent, never>;
|
|
734
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectDialogComponent, "ng-component", never, {}, { "done": "done"; "edit": "edit"; "view": "view"; "append": "append"; "delete": "delete"; "lookup": "lookup"; "lookupOptions": "lookupOptions"; "filter": "filter"; }, never, never, true, never>;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
declare class ApplicationDialogService extends DialogService {
|
|
738
|
+
/**
|
|
739
|
+
* Open a send-to-email dialog.
|
|
740
|
+
* @param title - Dialog title.
|
|
741
|
+
* @param text - Pre-filled message body.
|
|
742
|
+
* @param subject - Pre-filled subject line.
|
|
743
|
+
* @param canPopulate - Whether the populate-recipients action is available.
|
|
744
|
+
* @param count - Number of documents being sent.
|
|
745
|
+
* @param options - Checkable option list.
|
|
746
|
+
* @param width - Maximum dialog width in pixels.
|
|
747
|
+
* @returns The opened dialog reference.
|
|
748
|
+
*/
|
|
749
|
+
sendTo(title?: string, text?: string, subject?: string, canPopulate?: boolean, count?: number, options?: any, width?: number): Promise<MatDialogRef<SendToDialogComponent, any> | null>;
|
|
750
|
+
/**
|
|
751
|
+
* Open a tree-node selection dialog.
|
|
752
|
+
* @param nodes - The tree nodes to display.
|
|
753
|
+
* @param title - Dialog title.
|
|
754
|
+
* @param description - Optional description shown below the title.
|
|
755
|
+
* @param initialFilter - Pre-applied filter text.
|
|
756
|
+
* @param width - Maximum dialog width in pixels.
|
|
757
|
+
* @param okCaption - Label for the confirm button.
|
|
758
|
+
* @param canAppend - Whether the append-node action is available.
|
|
759
|
+
* @returns The opened dialog reference.
|
|
760
|
+
*/
|
|
761
|
+
selectTree(nodes: any, title?: string, description?: string, initialFilter?: string, width?: number, okCaption?: string, canAppend?: boolean): Promise<MatDialogRef<SelectTreeDialogComponent, any> | null>;
|
|
762
|
+
/**
|
|
763
|
+
* Open a picture-selection dialog.
|
|
764
|
+
* @param title - Dialog title.
|
|
765
|
+
* @param description - Brief description shown in the dialog.
|
|
766
|
+
* @param okCaption - Label for the confirm button.
|
|
767
|
+
* @param options - Checkable option list.
|
|
768
|
+
* @param width - Maximum dialog width in pixels.
|
|
769
|
+
* @param maxSize - Maximum accepted file size in MB.
|
|
770
|
+
* @param maxPictureWidth - Maximum accepted picture width in pixels.
|
|
771
|
+
* @param maxPictureHeight - Maximum accepted picture height in pixels.
|
|
772
|
+
* @returns The opened dialog reference.
|
|
773
|
+
*/
|
|
774
|
+
selectPicture(title?: string, description?: string, okCaption?: string, options?: any, width?: number, maxSize?: number, maxPictureWidth?: number, maxPictureHeight?: number): Promise<MatDialogRef<SelectPictureDialogComponent, any> | null>;
|
|
775
|
+
/**
|
|
776
|
+
* Open a file-selection dialog.
|
|
777
|
+
* @param title - Dialog title.
|
|
778
|
+
* @param description - Brief description shown in the dialog.
|
|
779
|
+
* @param okCaption - Label for the confirm button.
|
|
780
|
+
* @param helpLink - URL for the help link.
|
|
781
|
+
* @param helpCaption - Display text for the help link.
|
|
782
|
+
* @param options - Checkable option list.
|
|
783
|
+
* @param width - Maximum dialog width in pixels.
|
|
784
|
+
* @param maxSize - Maximum accepted file size in MB.
|
|
785
|
+
* @param accept - Accepted file extensions (e.g. `.pdf,.docx`).
|
|
786
|
+
* @returns The opened dialog reference.
|
|
787
|
+
*/
|
|
788
|
+
selectFile(title?: string, description?: string, okCaption?: string, helpLink?: string, helpCaption?: string, options?: any, width?: number, maxSize?: number, accept?: string): Promise<MatDialogRef<SelectFileDialogComponent, any> | null>;
|
|
789
|
+
/**
|
|
790
|
+
* Open a multipurpose selection and CRUD dialog.
|
|
791
|
+
* @param data - The dialog configuration model.
|
|
792
|
+
* @param disableClose - Whether the dialog can be closed by clicking outside.
|
|
793
|
+
* @param closeOnNavigation - Whether the dialog closes on route navigation.
|
|
794
|
+
* @returns The opened dialog reference.
|
|
795
|
+
*/
|
|
796
|
+
select(data: SelectDialogData, disableClose?: boolean, closeOnNavigation?: boolean): Promise<MatDialogRef<SelectDialogComponent, any> | null>;
|
|
797
|
+
/**
|
|
798
|
+
* Prompt the user to enter a value.
|
|
799
|
+
* @param title - Dialog title.
|
|
800
|
+
* @param type - The input type (default, text, number, etc.).
|
|
801
|
+
* @param description - Placeholder or description text.
|
|
802
|
+
* @param initialValue - Pre-filled value.
|
|
803
|
+
* @param okCaption - Label for the confirm button.
|
|
804
|
+
* @param cancelCaption - Label for the cancel button.
|
|
805
|
+
* @param options - Checkable option list.
|
|
806
|
+
* @param width - Maximum dialog width in pixels.
|
|
807
|
+
* @param required - Whether the input is required.
|
|
808
|
+
* @returns The opened dialog reference.
|
|
809
|
+
*/
|
|
810
|
+
prompt(title: string, type?: PromptDialogType, description?: string, initialValue?: any, okCaption?: string, cancelCaption?: string, options?: any, width?: number, required?: boolean): Promise<MatDialogRef<PromptDialogComponent> | null>;
|
|
811
|
+
/**
|
|
812
|
+
* Prompt the user to enter a date or date interval.
|
|
813
|
+
* @param title - Dialog title.
|
|
814
|
+
* @param type - Date or DateInterval.
|
|
815
|
+
* @param description - Placeholder or description text.
|
|
816
|
+
* @param initialValue - Pre-filled value.
|
|
817
|
+
* @param okCaption - Label for the confirm button.
|
|
818
|
+
* @param cancelCaption - Label for the cancel button.
|
|
819
|
+
* @param options - Checkable option list.
|
|
820
|
+
* @param width - Maximum dialog width in pixels.
|
|
821
|
+
* @param required - Whether the input is required.
|
|
822
|
+
* @returns The opened dialog reference.
|
|
823
|
+
*/
|
|
824
|
+
promptDate(title: string, type?: PromptDialogType.Date | PromptDialogType.DateInterval, description?: string, initialValue?: any, okCaption?: string, cancelCaption?: string, options?: any, width?: number, required?: boolean): Promise<MatDialogRef<PromptDateDialogComponent> | null>;
|
|
825
|
+
/**
|
|
826
|
+
* Prompt the user to enter a time value.
|
|
827
|
+
* @param title - Dialog title.
|
|
828
|
+
* @param description - Placeholder or description text.
|
|
829
|
+
* @param slots - Optional time slots string.
|
|
830
|
+
* @param initialValue - Pre-filled value.
|
|
831
|
+
* @param okCaption - Label for the confirm button.
|
|
832
|
+
* @param cancelCaption - Label for the cancel button.
|
|
833
|
+
* @param options - Checkable option list.
|
|
834
|
+
* @param width - Maximum dialog width in pixels.
|
|
835
|
+
* @param required - Whether the input is required.
|
|
836
|
+
* @returns The opened dialog reference.
|
|
837
|
+
*/
|
|
838
|
+
promptTime(title: string, description?: string, slots?: string, initialValue?: any, okCaption?: string, cancelCaption?: string, options?: any, width?: number, required?: boolean): Promise<MatDialogRef<PromptTimeDialogComponent> | null>;
|
|
839
|
+
/**
|
|
840
|
+
* Prompt the user to enter an OTP code.
|
|
841
|
+
* @param title - Dialog title.
|
|
842
|
+
* @param description - Description text shown in the dialog.
|
|
843
|
+
* @param okCaption - Label for the confirm button.
|
|
844
|
+
* @param cancelCaption - Label for the cancel button.
|
|
845
|
+
* @param width - Maximum dialog width in pixels.
|
|
846
|
+
* @returns The opened dialog reference.
|
|
847
|
+
*/
|
|
848
|
+
promptOtp(title?: string, description?: string, okCaption?: string, cancelCaption?: string, width?: number): Promise<MatDialogRef<PromptOtpDialogComponent> | null>;
|
|
849
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ApplicationDialogService, never>;
|
|
850
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ApplicationDialogService>;
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
declare class ButtonSelectorComponent implements OnDestroy, ControlValueAccessor {
|
|
854
|
+
ngControl: NgControl;
|
|
855
|
+
/** Emitted whenever the selected value changes (including programmatic resets). */
|
|
856
|
+
readonly changed: _angular_core.OutputEmitterRef<NameValueItem<any>>;
|
|
857
|
+
/** Emitted when the user explicitly picks an item from the menu. */
|
|
858
|
+
readonly selected: _angular_core.OutputEmitterRef<NameValueItem<any>>;
|
|
859
|
+
private readonly stateChanges;
|
|
860
|
+
private focused;
|
|
861
|
+
private _value;
|
|
862
|
+
set value(value: NameValueItem<any> | undefined);
|
|
863
|
+
/** The current value as the selected item. */
|
|
864
|
+
get value(): NameValueItem<any> | undefined;
|
|
865
|
+
private _disabled;
|
|
866
|
+
get disabled(): boolean;
|
|
867
|
+
set disabled(value: boolean);
|
|
868
|
+
private propagateChange;
|
|
869
|
+
private propagateTouched;
|
|
870
|
+
id: string;
|
|
871
|
+
describedBy: string;
|
|
872
|
+
private readonly renderer;
|
|
873
|
+
/** Currently selected item, kept in sync with the form control value. */
|
|
874
|
+
protected readonly current: _angular_core.WritableSignal<NameValueItem<any>>;
|
|
875
|
+
/** Width of the trigger button in pixels. Use `-1` for 100 %, `0` for `auto`. */
|
|
876
|
+
readonly width: _angular_core.InputSignal<number>;
|
|
877
|
+
/** Border thickness override. Use `-1` to inherit. */
|
|
878
|
+
readonly border: _angular_core.InputSignal<number>;
|
|
879
|
+
/** CSS border-radius of the trigger button. Defaults to a pill shape. */
|
|
880
|
+
readonly borderRadius: _angular_core.InputSignal<string>;
|
|
881
|
+
/** Placeholder label shown when nothing is selected. */
|
|
882
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
883
|
+
/** Label shown above the selected value (replaces `label` when an item is selected). */
|
|
884
|
+
readonly labelSelected: _angular_core.InputSignal<string>;
|
|
885
|
+
/** List of selectable options. */
|
|
886
|
+
readonly options: _angular_core.InputSignal<NameValueItem<any>[]>;
|
|
887
|
+
/** When `true`, the first available option is pre-selected on init. */
|
|
888
|
+
readonly autoSelect: _angular_core.InputSignal<boolean>;
|
|
889
|
+
constructor(ngControl: NgControl);
|
|
890
|
+
ngOnDestroy(): void;
|
|
891
|
+
/**
|
|
892
|
+
* Writes a new value to the component (called by the form layer).
|
|
893
|
+
* @param value - The new value to display.
|
|
894
|
+
*/
|
|
895
|
+
writeValue(value: any): void;
|
|
896
|
+
/**
|
|
897
|
+
* Registers the on-change callback (called by the form layer).
|
|
898
|
+
* @param fn - Callback to invoke whenever the value changes.
|
|
899
|
+
*/
|
|
900
|
+
registerOnChange(fn: (_: any) => void): void;
|
|
901
|
+
/**
|
|
902
|
+
* Registers the on-touched callback (called by the form layer).
|
|
903
|
+
* @param fn - Callback to invoke when the control is touched.
|
|
904
|
+
*/
|
|
905
|
+
registerOnTouched(fn: () => void): void;
|
|
906
|
+
/**
|
|
907
|
+
* Sets the ARIA described-by IDs for accessibility.
|
|
908
|
+
* @param ids - The list of element IDs to associate with this control.
|
|
909
|
+
*/
|
|
910
|
+
setDescribedByIds(ids: string[]): void;
|
|
911
|
+
/**
|
|
912
|
+
* Updates the disabled state when the Angular form layer changes it.
|
|
913
|
+
* @param isDisabled - Whether the control should be disabled.
|
|
914
|
+
*/
|
|
915
|
+
setDisabledState(isDisabled: boolean): void;
|
|
916
|
+
/**
|
|
917
|
+
* Handles a click on the container element, focusing it and marking it as touched.
|
|
918
|
+
*/
|
|
919
|
+
onContainerClick(): void;
|
|
920
|
+
/**
|
|
921
|
+
* Selects an option and optionally emits the `selected` output event.
|
|
922
|
+
* @param item - The item to select.
|
|
923
|
+
* @param notify - When `true` (default), emits the `selected` event.
|
|
924
|
+
*/
|
|
925
|
+
select(item: NameValueItem<any>, notify?: boolean): void;
|
|
926
|
+
/** Clears the current selection and resets the control to an empty state. */
|
|
927
|
+
reset(): void;
|
|
928
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonSelectorComponent, [{ optional: true; self: true; }]>;
|
|
929
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonSelectorComponent, "button-selector", never, { "disabled": { "alias": "disabled"; "required": false; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelSelected": { "alias": "labelSelected"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "autoSelect": { "alias": "autoSelect"; "required": false; "isSignal": true; }; }, { "changed": "changed"; "selected": "selected"; }, never, never, true, never>;
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
interface ButtonToggleInfo {
|
|
933
|
+
value: boolean;
|
|
934
|
+
toggled: boolean;
|
|
935
|
+
}
|
|
936
|
+
declare class ButtonToggleComponent {
|
|
937
|
+
/** Emitted each time the button is clicked. Carries the current `value` and the new `toggled` state. */
|
|
938
|
+
readonly changed: _angular_core.OutputEmitterRef<ButtonToggleInfo>;
|
|
939
|
+
/** Current value bound from the parent. Drives label and icon selection. */
|
|
940
|
+
readonly value: _angular_core.InputSignal<boolean>;
|
|
941
|
+
/** Width of the button in pixels. Use `-1` for automatic sizing. */
|
|
942
|
+
readonly width: _angular_core.InputSignal<number>;
|
|
943
|
+
/** Border thickness override in pixels. Use `-1` to inherit. */
|
|
944
|
+
readonly border: _angular_core.InputSignal<number>;
|
|
945
|
+
/** Label shown when `value` is `true`. */
|
|
946
|
+
readonly labelOn: _angular_core.InputSignal<string>;
|
|
947
|
+
/** Label shown when `value` is `false`. */
|
|
948
|
+
readonly labelOff: _angular_core.InputSignal<string>;
|
|
949
|
+
/** Material icon name shown when `value` is `true`. */
|
|
950
|
+
readonly iconOn: _angular_core.InputSignal<string>;
|
|
951
|
+
/** Material icon name shown when `value` is `false`. */
|
|
952
|
+
readonly iconOff: _angular_core.InputSignal<string>;
|
|
953
|
+
/** CSS class applied to the button at all breakpoints. */
|
|
954
|
+
readonly cssClass: _angular_core.InputSignal<string>;
|
|
955
|
+
/** CSS class applied to the button on `xs` screens. */
|
|
956
|
+
readonly cssClassSmall: _angular_core.InputSignal<string>;
|
|
957
|
+
/** Resolves the appropriate label for the current value state. */
|
|
958
|
+
protected readonly label: _angular_core.Signal<string>;
|
|
959
|
+
/** Resolves the appropriate icon name for the current value state. */
|
|
960
|
+
protected readonly icon: _angular_core.Signal<string>;
|
|
961
|
+
/**
|
|
962
|
+
* Toggles the button state and emits the `changed` event.
|
|
963
|
+
* The emitted `toggled` value is the logical inverse of the current `value`.
|
|
964
|
+
*/
|
|
965
|
+
toggle(): void;
|
|
966
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonToggleComponent, never>;
|
|
967
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonToggleComponent, "button-toggle", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "labelOn": { "alias": "labelOn"; "required": false; "isSignal": true; }; "labelOff": { "alias": "labelOff"; "required": false; "isSignal": true; }; "iconOn": { "alias": "iconOn"; "required": false; "isSignal": true; }; "iconOff": { "alias": "iconOff"; "required": false; "isSignal": true; }; "cssClass": { "alias": "cssClass"; "required": false; "isSignal": true; }; "cssClassSmall": { "alias": "cssClassSmall"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
/**
|
|
971
|
+
* A blank calendar header that hides the month/year navigation controls.
|
|
972
|
+
* Used when an inline calendar should render without any navigation UI.
|
|
973
|
+
*/
|
|
974
|
+
declare class CalendarEmptyHeader<D> {
|
|
975
|
+
private readonly destroyRef;
|
|
976
|
+
private readonly calendar;
|
|
977
|
+
private readonly changeDetector;
|
|
978
|
+
constructor();
|
|
979
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarEmptyHeader<any>, never>;
|
|
980
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarEmptyHeader<any>, "ng-component", never, {}, {}, never, never, true, never>;
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
declare class ChipsSelectorComponent implements OnDestroy, ControlValueAccessor {
|
|
984
|
+
ngControl: NgControl;
|
|
985
|
+
/** Emitted when the selection changes. Carries the new array of selected items, or `undefined` when cleared. */
|
|
986
|
+
readonly changed: _angular_core.OutputEmitterRef<NameValueItem<any>[]>;
|
|
987
|
+
protected readonly containerId: string;
|
|
988
|
+
protected readonly containerWidth: _angular_core.WritableSignal<number>;
|
|
989
|
+
private focused;
|
|
990
|
+
private readonly stateChanges;
|
|
991
|
+
private readonly destroyRef;
|
|
992
|
+
private changesEnabled;
|
|
993
|
+
/** Observer that tracks size changes of the container element. */
|
|
994
|
+
private resizeObserver?;
|
|
995
|
+
/** Debounce bridge for `ResizeObserver` notifications. */
|
|
996
|
+
private readonly resize$;
|
|
997
|
+
/** List of available options to display as chips. */
|
|
998
|
+
readonly options: _angular_core.InputSignal<NameValueItem<any>[]>;
|
|
999
|
+
/** Minimum width in pixels when collapsed. Use `-1` for automatic. */
|
|
1000
|
+
readonly collapsedWidth: _angular_core.InputSignal<number>;
|
|
1001
|
+
/** Display mode used when the selector is in collapsed state. */
|
|
1002
|
+
readonly collapsedDisplayMode: _angular_core.InputSignal<"dropdown" | "button">;
|
|
1003
|
+
/** Pixel threshold below which the selector collapses. Use `-1` to disable. */
|
|
1004
|
+
readonly collapseAt: _angular_core.InputSignal<number>;
|
|
1005
|
+
/** When `true`, `collapseAt` is compared against the container width rather than the window width. */
|
|
1006
|
+
readonly collapseAtContainer: _angular_core.InputSignal<boolean>;
|
|
1007
|
+
protected readonly collapsed: _angular_core.Signal<boolean>;
|
|
1008
|
+
/** Label shown in the dropdown / above the chip list. */
|
|
1009
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1010
|
+
/** When `true`, multiple chips can be selected simultaneously. */
|
|
1011
|
+
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
1012
|
+
/** When `true`, at least one item must remain selected. */
|
|
1013
|
+
readonly mustSelect: _angular_core.InputSignal<boolean>;
|
|
1014
|
+
/** Layout mode: `'collapsed'` forces dropdown mode, `'dynamic'` collapses based on `collapseAt`. */
|
|
1015
|
+
readonly mode: _angular_core.InputSignal<"collapsed" | "dynamic">;
|
|
1016
|
+
/** When `true`, chips are stacked vertically instead of wrapping horizontally. */
|
|
1017
|
+
readonly stacked: _angular_core.InputSignal<boolean>;
|
|
1018
|
+
/** Chips below this index receive extra padding to align with other UI elements. */
|
|
1019
|
+
readonly padAt: _angular_core.InputSignal<number>;
|
|
1020
|
+
/** When `true`, the control is required. */
|
|
1021
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1022
|
+
/** Placeholder text shown when no value is selected. */
|
|
1023
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1024
|
+
private _disabled;
|
|
1025
|
+
get disabled(): boolean;
|
|
1026
|
+
set disabled(value: boolean);
|
|
1027
|
+
id: string;
|
|
1028
|
+
describedBy: string;
|
|
1029
|
+
/** True when the label should float above the field (focused or has a value). */
|
|
1030
|
+
get shouldLabelFloat(): boolean;
|
|
1031
|
+
private _value?;
|
|
1032
|
+
set value(value: NameValueItem<any>[] | undefined);
|
|
1033
|
+
/** The current value as an array of selected items. */
|
|
1034
|
+
get value(): NameValueItem<any>[] | undefined;
|
|
1035
|
+
/** True when no item is selected. */
|
|
1036
|
+
get empty(): boolean;
|
|
1037
|
+
/** True when the control has validation errors and has been touched. */
|
|
1038
|
+
get errorState(): boolean;
|
|
1039
|
+
private propagateChange;
|
|
1040
|
+
private propagateTouched;
|
|
1041
|
+
private readonly renderer;
|
|
1042
|
+
private readonly cdr;
|
|
1043
|
+
/** Currently selected items (may contain multiple entries when `multiple` is `true`). */
|
|
1044
|
+
protected selection: NameValueItem<any>[];
|
|
1045
|
+
/** The single selected item — used in `button` collapsed-display mode. */
|
|
1046
|
+
protected singleSelection?: NameValueItem<any>;
|
|
1047
|
+
constructor(ngControl: NgControl);
|
|
1048
|
+
ngOnDestroy(): void;
|
|
1049
|
+
/**
|
|
1050
|
+
* Measures the container (or window) width and updates the `containerWidth` signal,
|
|
1051
|
+
* retrying after 100 ms if the element is not yet laid out.
|
|
1052
|
+
*/
|
|
1053
|
+
private updateContainerWidth;
|
|
1054
|
+
/**
|
|
1055
|
+
* Resolves the effective selection array for the current display mode.
|
|
1056
|
+
* In single-select collapsed button mode the `singleSelection` item is wrapped in an array.
|
|
1057
|
+
* @returns The array of currently selected items.
|
|
1058
|
+
*/
|
|
1059
|
+
private getSelection;
|
|
1060
|
+
/**
|
|
1061
|
+
* Schedules a value update after a short delay, giving the template time to sync `ngModel`.
|
|
1062
|
+
*/
|
|
1063
|
+
updateValue(): void;
|
|
1064
|
+
/**
|
|
1065
|
+
* Returns `true` when the given item can be selected in the current mode.
|
|
1066
|
+
* In single-select mode an already-selected item is not re-selectable.
|
|
1067
|
+
* @param item - The item to check.
|
|
1068
|
+
* @returns True when the item is selectable.
|
|
1069
|
+
*/
|
|
1070
|
+
isSelectable(item: NameValueItem<any>): boolean;
|
|
1071
|
+
/**
|
|
1072
|
+
* Writes a new value to the component (called by the form layer).
|
|
1073
|
+
* @param value - The new selection to display.
|
|
1074
|
+
*/
|
|
1075
|
+
writeValue(value: any): void;
|
|
1076
|
+
/**
|
|
1077
|
+
* Registers the on-change callback (called by the form layer).
|
|
1078
|
+
* @param fn - Callback to invoke whenever the value changes.
|
|
1079
|
+
*/
|
|
1080
|
+
registerOnChange(fn: (_: any) => void): void;
|
|
1081
|
+
/**
|
|
1082
|
+
* Registers the on-touched callback (called by the form layer).
|
|
1083
|
+
* @param fn - Callback to invoke when the control is touched.
|
|
1084
|
+
*/
|
|
1085
|
+
registerOnTouched(fn: () => void): void;
|
|
1086
|
+
/**
|
|
1087
|
+
* Sets the ARIA described-by IDs for accessibility.
|
|
1088
|
+
* @param ids - The list of element IDs to associate with this control.
|
|
1089
|
+
*/
|
|
1090
|
+
setDescribedByIds(ids: string[]): void;
|
|
1091
|
+
/**
|
|
1092
|
+
* Updates the disabled state when the Angular form layer changes it.
|
|
1093
|
+
* @param isDisabled - Whether the control should be disabled.
|
|
1094
|
+
*/
|
|
1095
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1096
|
+
/**
|
|
1097
|
+
* Handles a click on the container element, focusing it and marking it as touched.
|
|
1098
|
+
*/
|
|
1099
|
+
onContainerClick(): void;
|
|
1100
|
+
/**
|
|
1101
|
+
* Clears the current selection and stops the event from bubbling.
|
|
1102
|
+
* @param e - The originating click event.
|
|
1103
|
+
*/
|
|
1104
|
+
clear(e: Event): void;
|
|
1105
|
+
/**
|
|
1106
|
+
* Selects a single item, replacing any existing selection.
|
|
1107
|
+
* @param item - The item to select. Does nothing when `undefined`.
|
|
1108
|
+
*/
|
|
1109
|
+
select(item?: NameValueItem<any>): void;
|
|
1110
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChipsSelectorComponent, [{ optional: true; self: true; }]>;
|
|
1111
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChipsSelectorComponent, "chips-selector", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; "isSignal": true; }; "collapsedDisplayMode": { "alias": "collapsedDisplayMode"; "required": false; "isSignal": true; }; "collapseAt": { "alias": "collapseAt"; "required": false; "isSignal": true; }; "collapseAtContainer": { "alias": "collapseAtContainer"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "mustSelect": { "alias": "mustSelect"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "stacked": { "alias": "stacked"; "required": false; "isSignal": true; }; "padAt": { "alias": "padAt"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
declare class FileInputComponent implements OnDestroy, DoCheck, MatFormFieldControl<FileInfo>, ControlValueAccessor {
|
|
1115
|
+
ngControl: NgControl;
|
|
1116
|
+
/** Reference to the hidden native file input element. */
|
|
1117
|
+
protected readonly __file: _angular_core.Signal<ElementRef<any>>;
|
|
1118
|
+
private readonly renderer;
|
|
1119
|
+
private readonly uiService;
|
|
1120
|
+
static nextId: number;
|
|
1121
|
+
readonly stateChanges: Subject<void>;
|
|
1122
|
+
private previousNativeValue;
|
|
1123
|
+
controlType: string;
|
|
1124
|
+
focused: boolean;
|
|
1125
|
+
/** Whether the device supports camera capture. */
|
|
1126
|
+
protected readonly canCapture: _angular_core.WritableSignal<boolean>;
|
|
1127
|
+
/** Size in MB of the currently selected file. */
|
|
1128
|
+
protected readonly fileSize: _angular_core.WritableSignal<number>;
|
|
1129
|
+
private readonly _placeholder;
|
|
1130
|
+
private _value;
|
|
1131
|
+
set value(value: FileInfo);
|
|
1132
|
+
get value(): FileInfo;
|
|
1133
|
+
get size(): any;
|
|
1134
|
+
private _required;
|
|
1135
|
+
get required(): boolean;
|
|
1136
|
+
set required(value: boolean);
|
|
1137
|
+
private _disabled;
|
|
1138
|
+
get disabled(): boolean;
|
|
1139
|
+
set disabled(value: boolean);
|
|
1140
|
+
get placeholder(): string;
|
|
1141
|
+
set placeholder(value: string);
|
|
1142
|
+
/** The currently displayed file name. Can be bound two-way from outside or updated on file selection. */
|
|
1143
|
+
readonly fileName: _angular_core.ModelSignal<string>;
|
|
1144
|
+
readonly maxSizeMb: _angular_core.InputSignal<number>;
|
|
1145
|
+
readonly minSizeMb: _angular_core.InputSignal<number>;
|
|
1146
|
+
readonly isNew: _angular_core.InputSignal<boolean>;
|
|
1147
|
+
readonly canPreview: _angular_core.InputSignal<boolean>;
|
|
1148
|
+
readonly appearance: _angular_core.InputSignal<"fill" | "outline">;
|
|
1149
|
+
readonly accept: _angular_core.InputSignal<string>;
|
|
1150
|
+
get empty(): boolean;
|
|
1151
|
+
/** True when the control has validation errors and has been touched. */
|
|
1152
|
+
get errorState(): boolean;
|
|
1153
|
+
id: string;
|
|
1154
|
+
/** True when the label should float above the field. */
|
|
1155
|
+
get shouldLabelFloat(): boolean;
|
|
1156
|
+
describedBy: string;
|
|
1157
|
+
readonly changed: _angular_core.OutputEmitterRef<FileInfo>;
|
|
1158
|
+
readonly download: _angular_core.OutputEmitterRef<void>;
|
|
1159
|
+
readonly preview: _angular_core.OutputEmitterRef<void>;
|
|
1160
|
+
private propagateChange;
|
|
1161
|
+
private propagateTouched;
|
|
1162
|
+
constructor(ngControl: NgControl);
|
|
1163
|
+
/**
|
|
1164
|
+
* Detects camera availability and updates the placeholder accordingly.
|
|
1165
|
+
*/
|
|
1166
|
+
private setupDevices;
|
|
1167
|
+
ngOnDestroy(): void;
|
|
1168
|
+
ngDoCheck(): void;
|
|
1169
|
+
/**
|
|
1170
|
+
* Writes a new value to the component (called by the form layer).
|
|
1171
|
+
* @param value - The new file info to display.
|
|
1172
|
+
*/
|
|
1173
|
+
writeValue(value: any): void;
|
|
1174
|
+
/**
|
|
1175
|
+
* Registers the on-change callback (called by the form layer).
|
|
1176
|
+
* @param fn - Callback to invoke whenever the value changes.
|
|
1177
|
+
*/
|
|
1178
|
+
registerOnChange(fn: any): void;
|
|
1179
|
+
/**
|
|
1180
|
+
* Registers the on-touched callback (called by the form layer).
|
|
1181
|
+
* @param fn - Callback to invoke when the control is touched.
|
|
1182
|
+
*/
|
|
1183
|
+
registerOnTouched(fn: any): void;
|
|
1184
|
+
/**
|
|
1185
|
+
* Sets the ARIA describedby attribute from the given element IDs.
|
|
1186
|
+
* @param ids - Array of element IDs that describe this control.
|
|
1187
|
+
*/
|
|
1188
|
+
setDescribedByIds(ids: string[]): void;
|
|
1189
|
+
/**
|
|
1190
|
+
* Updates the disabled state of the underlying native element.
|
|
1191
|
+
* @param isDisabled - Whether the control should be disabled.
|
|
1192
|
+
*/
|
|
1193
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
1194
|
+
/** Focuses the native input element and marks the control as touched. */
|
|
1195
|
+
onContainerClick(): void;
|
|
1196
|
+
/**
|
|
1197
|
+
* Checks whether the value has changed since the last dirty check and emits `stateChanges` if needed.
|
|
1198
|
+
*/
|
|
1199
|
+
protected updateInputDirtyCheck(): void;
|
|
1200
|
+
/**
|
|
1201
|
+
* Handles file selection from the native input element.
|
|
1202
|
+
* @param e - The DOM change event from the file input.
|
|
1203
|
+
*/
|
|
1204
|
+
protected selectFile(e: Event): void;
|
|
1205
|
+
/**
|
|
1206
|
+
* Checks whether a file is currently selected.
|
|
1207
|
+
* @returns `true` if a file is attached to the current value.
|
|
1208
|
+
*/
|
|
1209
|
+
protected hasFile(): boolean;
|
|
1210
|
+
/**
|
|
1211
|
+
* Clears the currently selected file and resets the control.
|
|
1212
|
+
*/
|
|
1213
|
+
protected clearFile(): void;
|
|
1214
|
+
/**
|
|
1215
|
+
* Emits the `download` output event if the file is not newly added.
|
|
1216
|
+
*/
|
|
1217
|
+
protected downloadFile(): void;
|
|
1218
|
+
/**
|
|
1219
|
+
* Emits the `preview` output event if the file is not new and preview is enabled.
|
|
1220
|
+
*/
|
|
1221
|
+
protected previewFile(): void;
|
|
1222
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileInputComponent, [{ optional: true; self: true; }]>;
|
|
1223
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileInputComponent, "file-input", never, { "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "maxSizeMb": { "alias": "maxSizeMb"; "required": false; "isSignal": true; }; "minSizeMb": { "alias": "minSizeMb"; "required": false; "isSignal": true; }; "isNew": { "alias": "isNew"; "required": false; "isSignal": true; }; "canPreview": { "alias": "canPreview"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; }, { "fileName": "fileNameChange"; "changed": "changed"; "download": "download"; "preview": "preview"; }, never, never, true, never>;
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
interface FilePreviewDialogData {
|
|
1227
|
+
url?: string;
|
|
1228
|
+
embed?: boolean;
|
|
1229
|
+
authToken?: string;
|
|
1230
|
+
}
|
|
1231
|
+
declare class FilePreviewComponent {
|
|
1232
|
+
readonly iframe: _angular_core.Signal<ElementRef<any>>;
|
|
1233
|
+
private readonly httpClient;
|
|
1234
|
+
private readonly dialogService;
|
|
1235
|
+
protected readonly dialogData: FilePreviewDialogData;
|
|
1236
|
+
protected readonly url: _angular_core.WritableSignal<string>;
|
|
1237
|
+
constructor();
|
|
1238
|
+
/**
|
|
1239
|
+
* Handles the iframe load event: scrolls to the top and centers a single image when present.
|
|
1240
|
+
*/
|
|
1241
|
+
protected loaded(): void;
|
|
1242
|
+
/**
|
|
1243
|
+
* Opens the current file URL in a new browser tab for manual download.
|
|
1244
|
+
*/
|
|
1245
|
+
protected download(): void;
|
|
1246
|
+
/**
|
|
1247
|
+
* Displays a help dialog with browser-specific instructions for enabling PDF preview.
|
|
1248
|
+
*/
|
|
1249
|
+
protected troubles(): void;
|
|
1250
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilePreviewComponent, never>;
|
|
1251
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilePreviewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
declare class FilterBarComponent {
|
|
1255
|
+
/** Emitted whenever any filter value changes. */
|
|
1256
|
+
readonly changed: _angular_core.OutputEmitterRef<CurrentFilterChanged>;
|
|
1257
|
+
/** The list of filter groups to display. */
|
|
1258
|
+
readonly filters: _angular_core.InputSignal<FilterGroup[]>;
|
|
1259
|
+
readonly canFilterByText: _angular_core.InputSignal<boolean>;
|
|
1260
|
+
readonly canFilterByText2: _angular_core.InputSignal<boolean>;
|
|
1261
|
+
readonly canFilterByText3: _angular_core.InputSignal<boolean>;
|
|
1262
|
+
/** Initial text values for the search inputs — synced into the model signals on change. */
|
|
1263
|
+
readonly initialText: _angular_core.InputSignal<string>;
|
|
1264
|
+
readonly initialText2: _angular_core.InputSignal<string>;
|
|
1265
|
+
readonly initialText3: _angular_core.InputSignal<string>;
|
|
1266
|
+
readonly textName: _angular_core.InputSignal<string>;
|
|
1267
|
+
readonly text2Name: _angular_core.InputSignal<string>;
|
|
1268
|
+
readonly text3Name: _angular_core.InputSignal<string>;
|
|
1269
|
+
readonly textLength: _angular_core.InputSignal<string>;
|
|
1270
|
+
readonly text2Length: _angular_core.InputSignal<string>;
|
|
1271
|
+
readonly text3Length: _angular_core.InputSignal<string>;
|
|
1272
|
+
readonly showTextSearchButton: _angular_core.InputSignal<boolean>;
|
|
1273
|
+
readonly appearance: _angular_core.InputSignal<"fill" | "outline">;
|
|
1274
|
+
/** Two-way bindable text filter values. */
|
|
1275
|
+
protected readonly text: _angular_core.WritableSignal<string>;
|
|
1276
|
+
protected readonly text2: _angular_core.WritableSignal<string>;
|
|
1277
|
+
protected readonly text3: _angular_core.WritableSignal<string>;
|
|
1278
|
+
/** Filter group for slot 1, derived reactively from the `filters` input. */
|
|
1279
|
+
protected readonly flt1: _angular_core.Signal<FilterGroup>;
|
|
1280
|
+
/** Filter group for slot 2, derived reactively from the `filters` input. */
|
|
1281
|
+
protected readonly flt2: _angular_core.Signal<FilterGroup>;
|
|
1282
|
+
/** Filter group for slot 3, derived reactively from the `filters` input. */
|
|
1283
|
+
protected readonly flt3: _angular_core.Signal<FilterGroup>;
|
|
1284
|
+
/** Filter group for slot 4, derived reactively from the `filters` input. */
|
|
1285
|
+
protected readonly flt4: _angular_core.Signal<FilterGroup>;
|
|
1286
|
+
/** Filter group for slot 5, derived reactively from the `filters` input. */
|
|
1287
|
+
protected readonly flt5: _angular_core.Signal<FilterGroup>;
|
|
1288
|
+
/** True when filter slot 1 has an action or item list. */
|
|
1289
|
+
protected readonly canFilterByFlt1: _angular_core.Signal<boolean>;
|
|
1290
|
+
/** True when filter slot 2 has an action or item list. */
|
|
1291
|
+
protected readonly canFilterByFlt2: _angular_core.Signal<boolean>;
|
|
1292
|
+
/** True when filter slot 3 has an action or item list. */
|
|
1293
|
+
protected readonly canFilterByFlt3: _angular_core.Signal<boolean>;
|
|
1294
|
+
/** True when filter slot 4 has an action or item list. */
|
|
1295
|
+
protected readonly canFilterByFlt4: _angular_core.Signal<boolean>;
|
|
1296
|
+
/** True when filter slot 5 has an action or item list. */
|
|
1297
|
+
protected readonly canFilterByFlt5: _angular_core.Signal<boolean>;
|
|
1298
|
+
readonly currentFilter: CurrentFilter;
|
|
1299
|
+
private readonly cdr;
|
|
1300
|
+
constructor();
|
|
1301
|
+
/**
|
|
1302
|
+
* No-op kept for API compatibility.
|
|
1303
|
+
* Filter groups are now computed reactively from the `filters()` input.
|
|
1304
|
+
*/
|
|
1305
|
+
initializeFilters(): void;
|
|
1306
|
+
/**
|
|
1307
|
+
* Applies the selected filter item to the current filter state and emits the change.
|
|
1308
|
+
* @param filter - The filter item to apply.
|
|
1309
|
+
*/
|
|
1310
|
+
applyFilter(filter: FilterItem): void;
|
|
1311
|
+
/**
|
|
1312
|
+
* Executes the action associated with a filter group, or clears the filter.
|
|
1313
|
+
* @param group - The filter group number.
|
|
1314
|
+
* @param clear - When `true`, clears the filter instead of triggering its action.
|
|
1315
|
+
*/
|
|
1316
|
+
applyFilterAction(group: number, clear?: boolean): void;
|
|
1317
|
+
/** Commits the current text inputs to the filter state and emits the change. */
|
|
1318
|
+
applyTextFilter(): void;
|
|
1319
|
+
/**
|
|
1320
|
+
* Clears the active filter for the specified group and emits the change if it was set.
|
|
1321
|
+
* @param group - The filter group number to clear.
|
|
1322
|
+
*/
|
|
1323
|
+
clearFilter(group: number): void;
|
|
1324
|
+
/** Resets all active filters and text inputs, then emits the change. */
|
|
1325
|
+
clearAllFilters(): void;
|
|
1326
|
+
/**
|
|
1327
|
+
* Returns `true` when more than one filter type is active, showing the "clear all" button.
|
|
1328
|
+
* @returns True when the clear-all button should be visible.
|
|
1329
|
+
*/
|
|
1330
|
+
canClearAllFilters(): boolean;
|
|
1331
|
+
/**
|
|
1332
|
+
* Returns the filter group matching the given id, or `undefined` if not found.
|
|
1333
|
+
* @param id - The group id to look up.
|
|
1334
|
+
* @returns The matching `FilterGroup`, or `undefined`.
|
|
1335
|
+
*/
|
|
1336
|
+
private getFilterGroup;
|
|
1337
|
+
/** Synchronises the filter bar display with the values currently stored in `currentFilter`. */
|
|
1338
|
+
syncFilter(): void;
|
|
1339
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterBarComponent, never>;
|
|
1340
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterBarComponent, "filter-bar", never, { "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "canFilterByText": { "alias": "canFilterByText"; "required": false; "isSignal": true; }; "canFilterByText2": { "alias": "canFilterByText2"; "required": false; "isSignal": true; }; "canFilterByText3": { "alias": "canFilterByText3"; "required": false; "isSignal": true; }; "initialText": { "alias": "initialText"; "required": false; "isSignal": true; }; "initialText2": { "alias": "initialText2"; "required": false; "isSignal": true; }; "initialText3": { "alias": "initialText3"; "required": false; "isSignal": true; }; "textName": { "alias": "textName"; "required": false; "isSignal": true; }; "text2Name": { "alias": "text2Name"; "required": false; "isSignal": true; }; "text3Name": { "alias": "text3Name"; "required": false; "isSignal": true; }; "textLength": { "alias": "textLength"; "required": false; "isSignal": true; }; "text2Length": { "alias": "text2Length"; "required": false; "isSignal": true; }; "text3Length": { "alias": "text3Length"; "required": false; "isSignal": true; }; "showTextSearchButton": { "alias": "showTextSearchButton"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
declare class TreePickerComponent {
|
|
1344
|
+
/** Nested tree data to display. */
|
|
1345
|
+
readonly tree: _angular_core.InputSignal<INode[]>;
|
|
1346
|
+
/** Currently selected node ids. Supports two-way binding via [(selection)]. */
|
|
1347
|
+
readonly selection: _angular_core.ModelSignal<string[]>;
|
|
1348
|
+
/** When true, checkboxes and chip remove buttons are disabled (mirrors Material convention). */
|
|
1349
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1350
|
+
/** Description to display when no selection is made. */
|
|
1351
|
+
readonly descriptionEmpty: _angular_core.InputSignal<string>;
|
|
1352
|
+
/** Maximum number of tree levels to display (default: 3). */
|
|
1353
|
+
readonly maxDepth: _angular_core.InputSignal<number>;
|
|
1354
|
+
/**
|
|
1355
|
+
* List of node IDs at depth >= maxDepth that unlock selection for themselves
|
|
1356
|
+
* and all their descendants, regardless of depth.
|
|
1357
|
+
*/
|
|
1358
|
+
readonly maxDepthOverrides: _angular_core.InputSignal<string[]>;
|
|
1359
|
+
/**
|
|
1360
|
+
* Number of levels to auto-expand on load.
|
|
1361
|
+
* 0 or undefined = only top level visible (no expansion);
|
|
1362
|
+
* 1 = expand depth-0 nodes; 2 = expand depth-0 and depth-1 nodes; etc.
|
|
1363
|
+
* Must be less than maxDepth.
|
|
1364
|
+
*/
|
|
1365
|
+
readonly minDepth: _angular_core.InputSignal<number>;
|
|
1366
|
+
/**
|
|
1367
|
+
* Emits the count of visible selected nodes whenever the selection changes.
|
|
1368
|
+
* Emits 0 when nothing is selected (meaning all items are implicitly included).
|
|
1369
|
+
*/
|
|
1370
|
+
readonly selectionCount: _angular_core.OutputEmitterRef<number>;
|
|
1371
|
+
/** Emits void whenever the user changes the selection (toggle, remove, clear). */
|
|
1372
|
+
readonly changed: _angular_core.OutputEmitterRef<void>;
|
|
1373
|
+
private readonly _treeRef;
|
|
1374
|
+
private readonly _elRef;
|
|
1375
|
+
/**
|
|
1376
|
+
* Set of all node IDs selectable via overrides: each listed root and all its descendants.
|
|
1377
|
+
* Recomputed whenever the tree data or the override list changes.
|
|
1378
|
+
*/
|
|
1379
|
+
private readonly _overrideSubtreeSet;
|
|
1380
|
+
/** All three maps rebuilt lazily as a single computed whenever taxonomy changes. */
|
|
1381
|
+
private readonly _maps;
|
|
1382
|
+
/** O(1) set of selected ids, rebuilt only when selection changes. */
|
|
1383
|
+
private readonly _selectedSet;
|
|
1384
|
+
/** True when at least one node is explicitly selected. */
|
|
1385
|
+
protected readonly hasSelection: _angular_core.Signal<boolean>;
|
|
1386
|
+
/** Count of selected nodes within selectable levels (depth < maxDepth or in overrides), shown in the tab label. */
|
|
1387
|
+
protected readonly selectedVisibleCount: _angular_core.Signal<number>;
|
|
1388
|
+
readonly treeChildrenAccessor: (node: INode) => INode[];
|
|
1389
|
+
readonly hasChild: (_: number, node: INode) => boolean;
|
|
1390
|
+
/** Returns true when the node can be selected: depth < maxDepth or explicitly listed in maxDepthOverrides. */
|
|
1391
|
+
protected isSelectable(node: INode): boolean;
|
|
1392
|
+
private _isSelectableNode;
|
|
1393
|
+
/** Current filter text. */
|
|
1394
|
+
protected readonly filterText: _angular_core.WritableSignal<string>;
|
|
1395
|
+
/** Nodes matching the current filter text, in nodeMap iteration order. */
|
|
1396
|
+
protected readonly filteredItems: _angular_core.WritableSignal<INode[]>;
|
|
1397
|
+
/** Index of the currently highlighted filtered node (-1 = none). */
|
|
1398
|
+
protected readonly filterIndex: _angular_core.WritableSignal<number>;
|
|
1399
|
+
/** The currently highlighted filtered node, or null. */
|
|
1400
|
+
protected readonly filteredNode: _angular_core.Signal<INode>;
|
|
1401
|
+
constructor();
|
|
1402
|
+
/** Expands all visible nodes in the tree. */
|
|
1403
|
+
protected expandAll(): void;
|
|
1404
|
+
/** Collapses all nodes in the tree. */
|
|
1405
|
+
protected collapseAll(): void;
|
|
1406
|
+
/** Clears the entire selection. */
|
|
1407
|
+
protected clearAll(): void;
|
|
1408
|
+
/** Searches nodes by text and moves to the first match. */
|
|
1409
|
+
protected doFilter(): void;
|
|
1410
|
+
/** Clears the filter and restores the original tree state. */
|
|
1411
|
+
protected clearFilter(): void;
|
|
1412
|
+
/** Moves to the next matching node, cycling back to the first. */
|
|
1413
|
+
protected nextFiltered(): void;
|
|
1414
|
+
/** Returns true when the node is the currently highlighted filter match. */
|
|
1415
|
+
protected isFilteredNode(node: INode): boolean;
|
|
1416
|
+
/** Expands ancestors of the target node and scrolls it into view. */
|
|
1417
|
+
private _scrollToFiltered;
|
|
1418
|
+
/**
|
|
1419
|
+
* Returns true when the node is in the active selection.
|
|
1420
|
+
* @param node - tree node to check
|
|
1421
|
+
* @returns true if selected
|
|
1422
|
+
*/
|
|
1423
|
+
protected isSelected(node: INode): boolean;
|
|
1424
|
+
/**
|
|
1425
|
+
* Returns true when a subset (but not all) of the node's descendants are selected,
|
|
1426
|
+
* producing the indeterminate checkbox state.
|
|
1427
|
+
* @param node - tree node to evaluate
|
|
1428
|
+
* @returns true if the node is in a partial-selection (indeterminate) state
|
|
1429
|
+
*/
|
|
1430
|
+
protected isIndeterminate(node: INode): boolean;
|
|
1431
|
+
/**
|
|
1432
|
+
* Toggles the node and all its descendants; then syncs the ancestor chain.
|
|
1433
|
+
* @param node - the node that was clicked
|
|
1434
|
+
*/
|
|
1435
|
+
protected toggleNode(node: INode): void;
|
|
1436
|
+
/**
|
|
1437
|
+
* Deselects the node and all its descendants. Called by the chip remove button.
|
|
1438
|
+
* @param node - the node to remove from the selection
|
|
1439
|
+
*/
|
|
1440
|
+
protected removeNode(node: INode): void;
|
|
1441
|
+
/**
|
|
1442
|
+
* Returns the INode for the given id, or undefined if not found.
|
|
1443
|
+
* @param id - node id to look up
|
|
1444
|
+
* @returns the matching INode
|
|
1445
|
+
*/
|
|
1446
|
+
protected nodeById(id: string): INode | undefined;
|
|
1447
|
+
/**
|
|
1448
|
+
* Returns true when the node at the given id is within the visible depth range
|
|
1449
|
+
* and should appear in the chip list.
|
|
1450
|
+
* @param id - node id to check
|
|
1451
|
+
* @returns true if the node depth is less than maxDepth
|
|
1452
|
+
*/
|
|
1453
|
+
protected isChipVisible(id: string): boolean;
|
|
1454
|
+
/**
|
|
1455
|
+
* Returns only the selectable descendants of node (depth < maxDepth or in overrides),
|
|
1456
|
+
* used for indeterminate state and parent auto-selection logic.
|
|
1457
|
+
* @param node - root of the subtree to traverse
|
|
1458
|
+
* @returns flat array of selectable descendant INodes
|
|
1459
|
+
*/
|
|
1460
|
+
private _getSelectableDescendants;
|
|
1461
|
+
/**
|
|
1462
|
+
* Walks up the ancestor chain from node, selecting a parent only when all
|
|
1463
|
+
* its descendants are in the set, deselecting it otherwise.
|
|
1464
|
+
* @param node - starting node for the upward traversal
|
|
1465
|
+
* @param set - mutable selection set updated in place
|
|
1466
|
+
*/
|
|
1467
|
+
private _syncParentsInSet;
|
|
1468
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreePickerComponent, never>;
|
|
1469
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreePickerComponent, "tree-picker", never, { "tree": { "alias": "tree"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "descriptionEmpty": { "alias": "descriptionEmpty"; "required": false; "isSignal": true; }; "maxDepth": { "alias": "maxDepth"; "required": false; "isSignal": true; }; "maxDepthOverrides": { "alias": "maxDepthOverrides"; "required": false; "isSignal": true; }; "minDepth": { "alias": "minDepth"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "selectionCount": "selectionCount"; "changed": "changed"; }, never, never, true, never>;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
declare class ResizeTableColumnDirective {
|
|
1473
|
+
/** Whether this column is resizable. Bound via the `resizeColumn` attribute. */
|
|
1474
|
+
readonly resizable: _angular_core.InputSignal<boolean>;
|
|
1475
|
+
/** Zero-based index of this column in the table, used to resize body cells. */
|
|
1476
|
+
readonly index: _angular_core.InputSignal<number>;
|
|
1477
|
+
private readonly renderer;
|
|
1478
|
+
private readonly elementRef;
|
|
1479
|
+
private startX;
|
|
1480
|
+
private startWidth;
|
|
1481
|
+
private readonly column;
|
|
1482
|
+
private table;
|
|
1483
|
+
private pressed;
|
|
1484
|
+
constructor();
|
|
1485
|
+
/**
|
|
1486
|
+
* Record the drag start position and initial column width.
|
|
1487
|
+
* @param e - The mousedown event.
|
|
1488
|
+
*/
|
|
1489
|
+
onMouseDown: (e: MouseEvent) => void;
|
|
1490
|
+
/**
|
|
1491
|
+
* Resize the column header and all body cells while dragging.
|
|
1492
|
+
* @param e - The mousemove event.
|
|
1493
|
+
*/
|
|
1494
|
+
onMouseMove: (e: MouseEvent) => void;
|
|
1495
|
+
/**
|
|
1496
|
+
* End the drag and remove the resizing CSS class from the table.
|
|
1497
|
+
*/
|
|
1498
|
+
onMouseUp: () => void;
|
|
1499
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ResizeTableColumnDirective, never>;
|
|
1500
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ResizeTableColumnDirective, "[resizeColumn]", never, { "resizable": { "alias": "resizeColumn"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
export { ApplicationDialogService, ButtonSelectorComponent, ButtonToggleComponent, CalendarEmptyHeader, ChipsSelectorComponent, CurrentFilter, CurrentFilterChanged, CurrentFilterItem, FileInputComponent, FilePreviewComponent, FilterBarComponent, Filters, ItemNode, PromptDateDialogComponent, PromptDialogComponent, PromptDialogType, PromptOtpDialogComponent, PromptTimeDialogComponent, ResizeTableColumnDirective, SelectDialogComponent, SelectFileDialogComponent, SelectPictureDialogComponent, SelectTreeDialogComponent, SelectableItem, SelectableNode, SendToDialogComponent, TreeDataSource, TreePickerComponent, provideArsUIApplication };
|
|
1504
|
+
export type { ButtonToggleInfo, FilePreviewDialogData, FilterGroup, FilterItem, ISelectableItem, PromptDateDialogResult, PromptDialogData, PromptDialogResult, PromptOtpDialogResult, PromptTimeDialogData, SelectDialogAppend, SelectDialogData, SelectDialogDelete, SelectDialogEdit, SelectDialogFilter, SelectDialogLookup, SelectDialogResult, SelectFile, SelectFileDialogData, SelectFileOption, SelectPictureFileDialogData, SelectTreeDialogAppend, SelectTreeDialogData, SelectTreeDialogResult, SelectableFilter, SendToDialogData, SendToDialogResult, SendToPopulateData };
|