@neural-ui/core 1.4.0 → 1.5.0
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 +2 -1
- package/calendar/package.json +4 -0
- package/fesm2022/neural-ui-core-autocomplete.mjs +2 -2
- package/fesm2022/neural-ui-core-block-ui.mjs +2 -2
- package/fesm2022/neural-ui-core-button.mjs +2 -2
- package/fesm2022/neural-ui-core-button.mjs.map +1 -1
- package/fesm2022/neural-ui-core-calendar.mjs +551 -0
- package/fesm2022/neural-ui-core-calendar.mjs.map +1 -0
- package/fesm2022/neural-ui-core-chip.mjs +2 -2
- package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
- package/fesm2022/neural-ui-core-confirm-dialog.mjs +2 -2
- package/fesm2022/neural-ui-core-confirm-dialog.mjs.map +1 -1
- package/fesm2022/neural-ui-core-dashboard-grid.mjs +2 -2
- package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
- package/fesm2022/neural-ui-core-date-input.mjs +2 -2
- package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
- package/fesm2022/neural-ui-core-image-gallery.mjs +224 -0
- package/fesm2022/neural-ui-core-image-gallery.mjs.map +1 -0
- package/fesm2022/neural-ui-core-input.mjs +2 -2
- package/fesm2022/neural-ui-core-kanban.mjs +270 -0
- package/fesm2022/neural-ui-core-kanban.mjs.map +1 -0
- package/fesm2022/neural-ui-core-meter-group.mjs +2 -2
- package/fesm2022/neural-ui-core-multiselect.mjs +13 -2
- package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
- package/fesm2022/neural-ui-core-nav.mjs +2 -2
- package/fesm2022/neural-ui-core-nav.mjs.map +1 -1
- package/fesm2022/neural-ui-core-number-input.mjs +2 -2
- package/fesm2022/neural-ui-core-pagination.mjs +2 -2
- package/fesm2022/neural-ui-core-pagination.mjs.map +1 -1
- package/fesm2022/neural-ui-core-progress-bar.mjs +2 -2
- package/fesm2022/neural-ui-core-scheduler-gantt.mjs +289 -0
- package/fesm2022/neural-ui-core-scheduler-gantt.mjs.map +1 -0
- package/fesm2022/neural-ui-core-select.mjs +31 -9
- package/fesm2022/neural-ui-core-select.mjs.map +1 -1
- package/fesm2022/neural-ui-core-slider.mjs +2 -2
- package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
- package/fesm2022/neural-ui-core-split-button.mjs +2 -2
- package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
- package/fesm2022/neural-ui-core-stepper.mjs +2 -2
- package/fesm2022/neural-ui-core-stepper.mjs.map +1 -1
- package/fesm2022/neural-ui-core-table.mjs +273 -19
- package/fesm2022/neural-ui-core-table.mjs.map +1 -1
- package/fesm2022/neural-ui-core-textarea.mjs +2 -2
- package/fesm2022/neural-ui-core-timeline-grid.mjs +215 -0
- package/fesm2022/neural-ui-core-timeline-grid.mjs.map +1 -0
- package/fesm2022/neural-ui-core-toggle-button-group.mjs +2 -2
- package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
- package/fesm2022/neural-ui-core-tree-table.mjs +262 -0
- package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -0
- package/fesm2022/neural-ui-core-tree.mjs +413 -0
- package/fesm2022/neural-ui-core-tree.mjs.map +1 -0
- package/fesm2022/neural-ui-core-uploader.mjs +624 -0
- package/fesm2022/neural-ui-core-uploader.mjs.map +1 -0
- package/fesm2022/neural-ui-core-virtual-list.mjs +2 -2
- package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -1
- package/fesm2022/neural-ui-core.mjs +3 -1
- package/fesm2022/neural-ui-core.mjs.map +1 -1
- package/image-gallery/package.json +4 -0
- package/kanban/package.json +4 -0
- package/package.json +34 -2
- package/scheduler-gantt/package.json +4 -0
- package/styles/_tokens.scss +13 -4
- package/timeline-grid/package.json +4 -0
- package/tree/package.json +4 -0
- package/tree-table/package.json +4 -0
- package/types/neural-ui-core-calendar.d.ts +79 -0
- package/types/neural-ui-core-image-gallery.d.ts +26 -0
- package/types/neural-ui-core-kanban.d.ts +52 -0
- package/types/neural-ui-core-multiselect.d.ts +1 -0
- package/types/neural-ui-core-scheduler-gantt.d.ts +68 -0
- package/types/neural-ui-core-select.d.ts +2 -0
- package/types/neural-ui-core-table.d.ts +44 -2
- package/types/neural-ui-core-timeline-grid.d.ts +55 -0
- package/types/neural-ui-core-tree-table.d.ts +72 -0
- package/types/neural-ui-core-tree.d.ts +52 -0
- package/types/neural-ui-core-uploader.d.ts +98 -0
- package/uploader/package.json +4 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { NeuTimelineGridItemVariant, NeuTimelineGridColumn, NeuTimelineGridRow, NeuTimelineGridSlotSelection, NeuTimelineGridItem } from '@neural-ui/core/timeline-grid';
|
|
3
|
+
|
|
4
|
+
type NeuSchedulerGanttScale = 'day' | 'week';
|
|
5
|
+
interface NeuSchedulerGanttTask {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
start: string | Date;
|
|
9
|
+
end?: string | Date;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
meta?: string;
|
|
12
|
+
variant?: NeuTimelineGridItemVariant;
|
|
13
|
+
progress?: number;
|
|
14
|
+
}
|
|
15
|
+
interface NeuSchedulerGanttRow {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
tasks: NeuSchedulerGanttTask[];
|
|
20
|
+
}
|
|
21
|
+
interface NeuSchedulerGanttTaskClick {
|
|
22
|
+
rowId: string;
|
|
23
|
+
rowLabel: string;
|
|
24
|
+
task: NeuSchedulerGanttTask;
|
|
25
|
+
}
|
|
26
|
+
interface NeuSchedulerGanttSlotClick {
|
|
27
|
+
rowId: string;
|
|
28
|
+
columnId: string;
|
|
29
|
+
date: string;
|
|
30
|
+
scale: NeuSchedulerGanttScale;
|
|
31
|
+
}
|
|
32
|
+
interface NeuSchedulerGanttSelectedSlot {
|
|
33
|
+
rowId: string;
|
|
34
|
+
date: string | Date;
|
|
35
|
+
}
|
|
36
|
+
declare class NeuSchedulerGanttComponent {
|
|
37
|
+
readonly rows: _angular_core.InputSignal<NeuSchedulerGanttRow[]>;
|
|
38
|
+
readonly startDate: _angular_core.InputSignal<string | Date | null>;
|
|
39
|
+
readonly endDate: _angular_core.InputSignal<string | Date | null>;
|
|
40
|
+
readonly locale: _angular_core.InputSignal<string | undefined>;
|
|
41
|
+
readonly scale: _angular_core.InputSignal<NeuSchedulerGanttScale>;
|
|
42
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
43
|
+
readonly compact: _angular_core.InputSignal<boolean>;
|
|
44
|
+
readonly stickyLabels: _angular_core.InputSignal<boolean>;
|
|
45
|
+
readonly minColumnWidth: _angular_core.InputSignal<string>;
|
|
46
|
+
readonly showSummary: _angular_core.InputSignal<boolean>;
|
|
47
|
+
readonly selectedTaskId: _angular_core.InputSignal<string | null>;
|
|
48
|
+
readonly selectedSlot: _angular_core.InputSignal<NeuSchedulerGanttSelectedSlot | null>;
|
|
49
|
+
readonly taskClick: _angular_core.OutputEmitterRef<NeuSchedulerGanttTaskClick>;
|
|
50
|
+
readonly slotClick: _angular_core.OutputEmitterRef<NeuSchedulerGanttSlotClick>;
|
|
51
|
+
readonly _bounds: _angular_core.Signal<{
|
|
52
|
+
start: Date;
|
|
53
|
+
end: Date;
|
|
54
|
+
}>;
|
|
55
|
+
readonly gridColumns: _angular_core.Signal<NeuTimelineGridColumn[]>;
|
|
56
|
+
readonly gridRows: _angular_core.Signal<NeuTimelineGridRow[]>;
|
|
57
|
+
readonly taskCount: _angular_core.Signal<number>;
|
|
58
|
+
readonly rangeLabel: _angular_core.Signal<string>;
|
|
59
|
+
readonly gridSelectedSlot: _angular_core.Signal<NeuTimelineGridSlotSelection | null>;
|
|
60
|
+
private readonly _taskIndex;
|
|
61
|
+
onTaskClick(item: NeuTimelineGridItem): void;
|
|
62
|
+
onSlotClick(selection: NeuTimelineGridSlotSelection): void;
|
|
63
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSchedulerGanttComponent, never>;
|
|
64
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSchedulerGanttComponent, "neu-scheduler-gantt", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "startDate": { "alias": "startDate"; "required": false; "isSignal": true; }; "endDate": { "alias": "endDate"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "stickyLabels": { "alias": "stickyLabels"; "required": false; "isSignal": true; }; "minColumnWidth": { "alias": "minColumnWidth"; "required": false; "isSignal": true; }; "showSummary": { "alias": "showSummary"; "required": false; "isSignal": true; }; "selectedTaskId": { "alias": "selectedTaskId"; "required": false; "isSignal": true; }; "selectedSlot": { "alias": "selectedSlot"; "required": false; "isSignal": true; }; }, { "taskClick": "taskClick"; "slotClick": "slotClick"; }, never, never, true, never>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { NeuSchedulerGanttComponent };
|
|
68
|
+
export type { NeuSchedulerGanttRow, NeuSchedulerGanttScale, NeuSchedulerGanttSelectedSlot, NeuSchedulerGanttSlotClick, NeuSchedulerGanttTask, NeuSchedulerGanttTaskClick };
|
|
@@ -135,10 +135,12 @@ declare class NeuSelectComponent implements ControlValueAccessor {
|
|
|
135
135
|
readonly panelPosition: _angular_core.WritableSignal<{
|
|
136
136
|
position: string | null;
|
|
137
137
|
top: string | null;
|
|
138
|
+
bottom: string | null;
|
|
138
139
|
left: string | null;
|
|
139
140
|
width: string | null;
|
|
140
141
|
maxHeight: string | null;
|
|
141
142
|
}>;
|
|
143
|
+
readonly isPanelAbove: _angular_core.WritableSignal<boolean>;
|
|
142
144
|
readonly hasError: Signal<boolean>;
|
|
143
145
|
readonly describedBy: Signal<string | null>;
|
|
144
146
|
readonly filteredOptions: Signal<NeuSelectOption[]>;
|
|
@@ -43,6 +43,19 @@ interface NeuTableActionEvent<T = Record<string, unknown>> {
|
|
|
43
43
|
action: NeuTableAction<T>;
|
|
44
44
|
row: T;
|
|
45
45
|
}
|
|
46
|
+
interface NeuTableSelectionAction<T = Record<string, unknown>> {
|
|
47
|
+
key: string;
|
|
48
|
+
label: string;
|
|
49
|
+
icon: string;
|
|
50
|
+
variant?: 'ghost' | 'primary' | 'danger';
|
|
51
|
+
show?: (rows: T[]) => boolean;
|
|
52
|
+
disabled?: (rows: T[]) => boolean;
|
|
53
|
+
confirm?: string;
|
|
54
|
+
}
|
|
55
|
+
interface NeuTableSelectionActionEvent<T = Record<string, unknown>> {
|
|
56
|
+
action: NeuTableSelectionAction<T>;
|
|
57
|
+
rows: T[];
|
|
58
|
+
}
|
|
46
59
|
interface NeuTableSortEntry {
|
|
47
60
|
key: string;
|
|
48
61
|
dir: 'asc' | 'desc';
|
|
@@ -61,6 +74,8 @@ interface NeuTableColumn<T = Record<string, unknown>> {
|
|
|
61
74
|
key: string;
|
|
62
75
|
header: string;
|
|
63
76
|
width?: string;
|
|
77
|
+
minWidth?: number;
|
|
78
|
+
maxWidth?: number;
|
|
64
79
|
align?: 'left' | 'center' | 'right';
|
|
65
80
|
cell?: (row: T) => string;
|
|
66
81
|
cellTemplate?: TemplateRef<{
|
|
@@ -70,6 +85,7 @@ interface NeuTableColumn<T = Record<string, unknown>> {
|
|
|
70
85
|
}>;
|
|
71
86
|
cellClass?: string;
|
|
72
87
|
sortable?: boolean;
|
|
88
|
+
resizable?: boolean;
|
|
73
89
|
type?: NeuTableCellType;
|
|
74
90
|
badgeMap?: Record<string, NeuTableBadgeConfig>;
|
|
75
91
|
dateFormat?: Intl.DateTimeFormatOptions;
|
|
@@ -151,12 +167,14 @@ declare class NeuTableComponent {
|
|
|
151
167
|
readonly sortable: _angular_core.InputSignal<boolean>;
|
|
152
168
|
readonly selectable: _angular_core.InputSignal<boolean>;
|
|
153
169
|
readonly expandable: _angular_core.InputSignal<boolean>;
|
|
170
|
+
readonly expandMode: _angular_core.InputSignal<"multiple" | "single">;
|
|
154
171
|
readonly exportable: _angular_core.InputSignal<boolean>;
|
|
155
172
|
readonly exportFileName: _angular_core.InputSignal<string>;
|
|
156
173
|
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
157
174
|
readonly stickyHeader: _angular_core.InputSignal<boolean>;
|
|
158
175
|
readonly virtualScroll: _angular_core.InputSignal<boolean>;
|
|
159
176
|
readonly virtualScrollVisibleItems: _angular_core.InputSignal<number>;
|
|
177
|
+
readonly resizableColumns: _angular_core.InputSignal<boolean>;
|
|
160
178
|
readonly rowKey: _angular_core.InputSignal<string>;
|
|
161
179
|
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
162
180
|
readonly roundedBorders: _angular_core.InputSignal<boolean>;
|
|
@@ -171,6 +189,8 @@ declare class NeuTableComponent {
|
|
|
171
189
|
readonly multiSort: _angular_core.InputSignal<boolean>;
|
|
172
190
|
readonly exportFormats: _angular_core.InputSignal<("csv" | "json")[]>;
|
|
173
191
|
readonly exportColumns: _angular_core.InputSignal<string[]>;
|
|
192
|
+
readonly exportScope: _angular_core.InputSignal<"selected" | "filtered" | "auto">;
|
|
193
|
+
readonly selectionActions: _angular_core.InputSignal<NeuTableSelectionAction<Row>[]>;
|
|
174
194
|
readonly pageParam: _angular_core.InputSignal<string>;
|
|
175
195
|
readonly searchParam: _angular_core.InputSignal<string>;
|
|
176
196
|
readonly sortParam: _angular_core.InputSignal<string>;
|
|
@@ -191,13 +211,20 @@ declare class NeuTableComponent {
|
|
|
191
211
|
readonly rowClick: _angular_core.OutputEmitterRef<Row>;
|
|
192
212
|
readonly rowDblClick: _angular_core.OutputEmitterRef<Row>;
|
|
193
213
|
readonly actionClick: _angular_core.OutputEmitterRef<NeuTableActionEvent<Row>>;
|
|
214
|
+
readonly selectionActionClick: _angular_core.OutputEmitterRef<NeuTableSelectionActionEvent<Row>>;
|
|
194
215
|
readonly serverStateChange: _angular_core.OutputEmitterRef<NeuTableServerState>;
|
|
195
216
|
readonly searchChange: _angular_core.OutputEmitterRef<string>;
|
|
217
|
+
readonly columnResize: _angular_core.OutputEmitterRef<{
|
|
218
|
+
key: string;
|
|
219
|
+
width: number;
|
|
220
|
+
}>;
|
|
196
221
|
private readonly _internalPage;
|
|
197
222
|
private readonly _internalSearch;
|
|
198
223
|
private readonly _internalSortKey;
|
|
199
224
|
private readonly _internalSortDir;
|
|
200
225
|
private readonly _internalMultiSort;
|
|
226
|
+
private readonly _columnWidths;
|
|
227
|
+
private _resizeCleanup;
|
|
201
228
|
private readonly _urlParamSignals;
|
|
202
229
|
private _getUrlParamSignal;
|
|
203
230
|
private _readUrlParam;
|
|
@@ -249,11 +276,19 @@ declare class NeuTableComponent {
|
|
|
249
276
|
readonly _firstFrozenRightKey: Signal<string>;
|
|
250
277
|
isLastFrozenLeftColumn(key: string): boolean;
|
|
251
278
|
isFirstFrozenRightColumn(key: string): boolean;
|
|
279
|
+
isColumnResizable(col: NeuTableColumn): boolean;
|
|
280
|
+
columnWidth(col: NeuTableColumn): string | null;
|
|
281
|
+
startColumnResize(col: NeuTableColumn, event: MouseEvent): void;
|
|
282
|
+
resetColumnWidth(key: string, event?: Event): void;
|
|
252
283
|
private readonly _expandedKeys;
|
|
253
284
|
isRowExpanded(row: Row): boolean;
|
|
285
|
+
expandRow(row: Row): void;
|
|
286
|
+
collapseRow(row: Row): void;
|
|
254
287
|
toggleExpand(row: Row): void;
|
|
255
288
|
private readonly _selectedKeys;
|
|
289
|
+
private readonly _selectionConfirmPending;
|
|
256
290
|
readonly selectedCount: Signal<number>;
|
|
291
|
+
readonly selectedRows: Signal<Row[]>;
|
|
257
292
|
readonly selectedRowsInfo: Signal<string>;
|
|
258
293
|
/**
|
|
259
294
|
* TRUE cuando TODOS los registros que pasan el filtro activo están seleccionados.
|
|
@@ -283,23 +318,30 @@ declare class NeuTableComponent {
|
|
|
283
318
|
isConfirmPending(row: Row, action: NeuTableAction<Row>): boolean;
|
|
284
319
|
handleAction(row: Row, action: NeuTableAction<Row>): void;
|
|
285
320
|
cancelConfirm(): void;
|
|
321
|
+
isSelectionConfirmPending(action: NeuTableSelectionAction<Row>): boolean;
|
|
322
|
+
handleSelectionAction(action: NeuTableSelectionAction<Row>): void;
|
|
323
|
+
cancelSelectionConfirm(): void;
|
|
286
324
|
exportCsv(): void;
|
|
287
325
|
exportJson(): void;
|
|
288
326
|
private _getExportColumns;
|
|
327
|
+
private _getExportRows;
|
|
289
328
|
private _downloadBlob;
|
|
290
329
|
onTableScroll(event: Event): void;
|
|
291
330
|
getRowKey(row: Row): unknown;
|
|
292
331
|
visibleRowNumber(rowIdx: number): number;
|
|
293
332
|
private resetVirtualScrollPosition;
|
|
294
333
|
getRowClass(row: Row): string;
|
|
334
|
+
private _columnWidthPx;
|
|
335
|
+
private _setColumnWidth;
|
|
336
|
+
private _stopColumnResize;
|
|
295
337
|
getCellValue(row: Row, col: NeuTableColumn): string;
|
|
296
338
|
getSortPriority(key: string): number;
|
|
297
339
|
columnFilterControl(key: string): FormControl<string>;
|
|
298
340
|
getColumnFilterValue(key: string): unknown;
|
|
299
341
|
private _emitServerState;
|
|
300
342
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTableComponent, never>;
|
|
301
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTableComponent, "neu-table", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "exactMatchable": { "alias": "exactMatchable"; "required": false; "isSignal": true; }; "exactMatchLabel": { "alias": "exactMatchLabel"; "required": false; "isSignal": true; }; "searchAriaLabel": { "alias": "searchAriaLabel"; "required": false; "isSignal": true; }; "clearSearchAriaLabel": { "alias": "clearSearchAriaLabel"; "required": false; "isSignal": true; }; "clearFilterLabel": { "alias": "clearFilterLabel"; "required": false; "isSignal": true; }; "previousPageAriaLabel": { "alias": "previousPageAriaLabel"; "required": false; "isSignal": true; }; "nextPageAriaLabel": { "alias": "nextPageAriaLabel"; "required": false; "isSignal": true; }; "pageSizeLabel": { "alias": "pageSizeLabel"; "required": false; "isSignal": true; }; "pageSizeAriaLabel": { "alias": "pageSizeAriaLabel"; "required": false; "isSignal": true; }; "paginationAriaLabel": { "alias": "paginationAriaLabel"; "required": false; "isSignal": true; }; "exportCsvTitle": { "alias": "exportCsvTitle"; "required": false; "isSignal": true; }; "exportJsonTitle": { "alias": "exportJsonTitle"; "required": false; "isSignal": true; }; "clearSelectionLabel": { "alias": "clearSelectionLabel"; "required": false; "isSignal": true; }; "selectionSummaryLabel": { "alias": "selectionSummaryLabel"; "required": false; "isSignal": true; }; "tableAriaLabel": { "alias": "tableAriaLabel"; "required": false; "isSignal": true; }; "selectAllAriaLabel": { "alias": "selectAllAriaLabel"; "required": false; "isSignal": true; }; "selectRowAriaLabel": { "alias": "selectRowAriaLabel"; "required": false; "isSignal": true; }; "expandRowAriaLabel": { "alias": "expandRowAriaLabel"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "filterAriaPrefix": { "alias": "filterAriaPrefix"; "required": false; "isSignal": true; }; "allFilterOptionLabel": { "alias": "allFilterOptionLabel"; "required": false; "isSignal": true; }; "ofLabel": { "alias": "ofLabel"; "required": false; "isSignal": true; }; "resultLabelSingular": { "alias": "resultLabelSingular"; "required": false; "isSignal": true; }; "resultLabelPlural": { "alias": "resultLabelPlural"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "exportable": { "alias": "exportable"; "required": false; "isSignal": true; }; "exportFileName": { "alias": "exportFileName"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "roundedBorders": { "alias": "roundedBorders"; "required": false; "isSignal": true; }; "stripedRows": { "alias": "stripedRows"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "showRowNumbers": { "alias": "showRowNumbers"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "footerRow": { "alias": "footerRow"; "required": false; "isSignal": true; }; "emptyStateTemplate": { "alias": "emptyStateTemplate"; "required": false; "isSignal": true; }; "serverSide": { "alias": "serverSide"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "multiSort": { "alias": "multiSort"; "required": false; "isSignal": true; }; "exportFormats": { "alias": "exportFormats"; "required": false; "isSignal": true; }; "exportColumns": { "alias": "exportColumns"; "required": false; "isSignal": true; }; "pageParam": { "alias": "pageParam"; "required": false; "isSignal": true; }; "searchParam": { "alias": "searchParam"; "required": false; "isSignal": true; }; "sortParam": { "alias": "sortParam"; "required": false; "isSignal": true; }; "sortDirParam": { "alias": "sortDirParam"; "required": false; "isSignal": true; }; "multiSortParam": { "alias": "multiSortParam"; "required": false; "isSignal": true; }; "useUrlState": { "alias": "useUrlState"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "rowClick": "rowClick"; "rowDblClick": "rowDblClick"; "actionClick": "actionClick"; "serverStateChange": "serverStateChange"; "searchChange": "searchChange"; }, ["expandTemplate"], never, true, never>;
|
|
343
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTableComponent, "neu-table", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "exactMatchable": { "alias": "exactMatchable"; "required": false; "isSignal": true; }; "exactMatchLabel": { "alias": "exactMatchLabel"; "required": false; "isSignal": true; }; "searchAriaLabel": { "alias": "searchAriaLabel"; "required": false; "isSignal": true; }; "clearSearchAriaLabel": { "alias": "clearSearchAriaLabel"; "required": false; "isSignal": true; }; "clearFilterLabel": { "alias": "clearFilterLabel"; "required": false; "isSignal": true; }; "previousPageAriaLabel": { "alias": "previousPageAriaLabel"; "required": false; "isSignal": true; }; "nextPageAriaLabel": { "alias": "nextPageAriaLabel"; "required": false; "isSignal": true; }; "pageSizeLabel": { "alias": "pageSizeLabel"; "required": false; "isSignal": true; }; "pageSizeAriaLabel": { "alias": "pageSizeAriaLabel"; "required": false; "isSignal": true; }; "paginationAriaLabel": { "alias": "paginationAriaLabel"; "required": false; "isSignal": true; }; "exportCsvTitle": { "alias": "exportCsvTitle"; "required": false; "isSignal": true; }; "exportJsonTitle": { "alias": "exportJsonTitle"; "required": false; "isSignal": true; }; "clearSelectionLabel": { "alias": "clearSelectionLabel"; "required": false; "isSignal": true; }; "selectionSummaryLabel": { "alias": "selectionSummaryLabel"; "required": false; "isSignal": true; }; "tableAriaLabel": { "alias": "tableAriaLabel"; "required": false; "isSignal": true; }; "selectAllAriaLabel": { "alias": "selectAllAriaLabel"; "required": false; "isSignal": true; }; "selectRowAriaLabel": { "alias": "selectRowAriaLabel"; "required": false; "isSignal": true; }; "expandRowAriaLabel": { "alias": "expandRowAriaLabel"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "filterAriaPrefix": { "alias": "filterAriaPrefix"; "required": false; "isSignal": true; }; "allFilterOptionLabel": { "alias": "allFilterOptionLabel"; "required": false; "isSignal": true; }; "ofLabel": { "alias": "ofLabel"; "required": false; "isSignal": true; }; "resultLabelSingular": { "alias": "resultLabelSingular"; "required": false; "isSignal": true; }; "resultLabelPlural": { "alias": "resultLabelPlural"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "expandMode": { "alias": "expandMode"; "required": false; "isSignal": true; }; "exportable": { "alias": "exportable"; "required": false; "isSignal": true; }; "exportFileName": { "alias": "exportFileName"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; "resizableColumns": { "alias": "resizableColumns"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "roundedBorders": { "alias": "roundedBorders"; "required": false; "isSignal": true; }; "stripedRows": { "alias": "stripedRows"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "showRowNumbers": { "alias": "showRowNumbers"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "footerRow": { "alias": "footerRow"; "required": false; "isSignal": true; }; "emptyStateTemplate": { "alias": "emptyStateTemplate"; "required": false; "isSignal": true; }; "serverSide": { "alias": "serverSide"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "multiSort": { "alias": "multiSort"; "required": false; "isSignal": true; }; "exportFormats": { "alias": "exportFormats"; "required": false; "isSignal": true; }; "exportColumns": { "alias": "exportColumns"; "required": false; "isSignal": true; }; "exportScope": { "alias": "exportScope"; "required": false; "isSignal": true; }; "selectionActions": { "alias": "selectionActions"; "required": false; "isSignal": true; }; "pageParam": { "alias": "pageParam"; "required": false; "isSignal": true; }; "searchParam": { "alias": "searchParam"; "required": false; "isSignal": true; }; "sortParam": { "alias": "sortParam"; "required": false; "isSignal": true; }; "sortDirParam": { "alias": "sortDirParam"; "required": false; "isSignal": true; }; "multiSortParam": { "alias": "multiSortParam"; "required": false; "isSignal": true; }; "useUrlState": { "alias": "useUrlState"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "rowClick": "rowClick"; "rowDblClick": "rowDblClick"; "actionClick": "actionClick"; "selectionActionClick": "selectionActionClick"; "serverStateChange": "serverStateChange"; "searchChange": "searchChange"; "columnResize": "columnResize"; }, ["expandTemplate"], never, true, never>;
|
|
302
344
|
}
|
|
303
345
|
|
|
304
346
|
export { NeuTableComponent, NeuTableExpandDirective };
|
|
305
|
-
export type { NeuTableAction, NeuTableActionEvent, NeuTableBadgeConfig, NeuTableBadgeVariant, NeuTableCellType, NeuTableColumn, NeuTableServerState, NeuTableSortEntry };
|
|
347
|
+
export type { NeuTableAction, NeuTableActionEvent, NeuTableBadgeConfig, NeuTableBadgeVariant, NeuTableCellType, NeuTableColumn, NeuTableSelectionAction, NeuTableSelectionActionEvent, NeuTableServerState, NeuTableSortEntry };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
type NeuTimelineGridItemVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';
|
|
4
|
+
interface NeuTimelineGridColumn {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
}
|
|
9
|
+
interface NeuTimelineGridItem {
|
|
10
|
+
id: string;
|
|
11
|
+
title: string;
|
|
12
|
+
start: string;
|
|
13
|
+
span?: number;
|
|
14
|
+
subtitle?: string;
|
|
15
|
+
meta?: string;
|
|
16
|
+
variant?: NeuTimelineGridItemVariant;
|
|
17
|
+
}
|
|
18
|
+
interface NeuTimelineGridRow {
|
|
19
|
+
id: string;
|
|
20
|
+
label: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
items: NeuTimelineGridItem[];
|
|
23
|
+
}
|
|
24
|
+
interface NeuTimelineGridSlotSelection {
|
|
25
|
+
rowId: string;
|
|
26
|
+
columnId: string;
|
|
27
|
+
}
|
|
28
|
+
declare class NeuTimelineGridComponent {
|
|
29
|
+
readonly columns: _angular_core.InputSignal<NeuTimelineGridColumn[]>;
|
|
30
|
+
readonly rows: _angular_core.InputSignal<NeuTimelineGridRow[]>;
|
|
31
|
+
readonly compact: _angular_core.InputSignal<boolean>;
|
|
32
|
+
readonly stickyLabels: _angular_core.InputSignal<boolean>;
|
|
33
|
+
readonly minColumnWidth: _angular_core.InputSignal<string>;
|
|
34
|
+
readonly selectedItemId: _angular_core.InputSignal<string | null>;
|
|
35
|
+
readonly selectedSlot: _angular_core.InputSignal<NeuTimelineGridSlotSelection | null>;
|
|
36
|
+
readonly itemClick: _angular_core.OutputEmitterRef<NeuTimelineGridItem>;
|
|
37
|
+
readonly slotClick: _angular_core.OutputEmitterRef<NeuTimelineGridSlotSelection>;
|
|
38
|
+
readonly _columnIndexMap: _angular_core.Signal<Map<string, number>>;
|
|
39
|
+
readonly gridTemplateColumns: _angular_core.Signal<string>;
|
|
40
|
+
validItems(row: NeuTimelineGridRow): NeuTimelineGridItem[];
|
|
41
|
+
itemGridColumn(item: NeuTimelineGridItem): string;
|
|
42
|
+
slotGridColumn(columnId: string): string;
|
|
43
|
+
itemClass(item: NeuTimelineGridItem): string;
|
|
44
|
+
itemAriaLabel(row: NeuTimelineGridRow, item: NeuTimelineGridItem): string;
|
|
45
|
+
slotAriaLabel(row: NeuTimelineGridRow, column: NeuTimelineGridColumn): string;
|
|
46
|
+
slotKey(rowId: string, columnId: string): string;
|
|
47
|
+
isItemSelected(itemId: string): boolean;
|
|
48
|
+
isSlotSelected(rowId: string, columnId: string): boolean;
|
|
49
|
+
onSlotClick(rowId: string, columnId: string): void;
|
|
50
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTimelineGridComponent, never>;
|
|
51
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTimelineGridComponent, "neu-timeline-grid", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "stickyLabels": { "alias": "stickyLabels"; "required": false; "isSignal": true; }; "minColumnWidth": { "alias": "minColumnWidth"; "required": false; "isSignal": true; }; "selectedItemId": { "alias": "selectedItemId"; "required": false; "isSignal": true; }; "selectedSlot": { "alias": "selectedSlot"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "slotClick": "slotClick"; }, never, never, true, never>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { NeuTimelineGridComponent };
|
|
55
|
+
export type { NeuTimelineGridColumn, NeuTimelineGridItem, NeuTimelineGridItemVariant, NeuTimelineGridRow, NeuTimelineGridSlotSelection };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { NeuTableColumn } from '@neural-ui/core/table';
|
|
3
|
+
|
|
4
|
+
interface NeuTreeTableNode<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
badge?: string;
|
|
9
|
+
children?: NeuTreeTableNode<T>[];
|
|
10
|
+
expanded?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
data?: T;
|
|
13
|
+
}
|
|
14
|
+
interface NeuTreeTableRow<T extends Record<string, unknown> = Record<string, unknown>> extends Record<string, unknown> {
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
badge?: string;
|
|
19
|
+
__treeLevel: number;
|
|
20
|
+
__treeHasChildren: boolean;
|
|
21
|
+
__treeExpanded: boolean;
|
|
22
|
+
__treeDisabled: boolean;
|
|
23
|
+
__treeParentId?: string;
|
|
24
|
+
__treeNode: NeuTreeTableNode<T>;
|
|
25
|
+
}
|
|
26
|
+
declare class NeuTreeTableComponent {
|
|
27
|
+
readonly nodes: _angular_core.InputSignal<NeuTreeTableNode<Record<string, unknown>>[]>;
|
|
28
|
+
readonly columns: _angular_core.InputSignal<NeuTableColumn<Record<string, unknown>>[]>;
|
|
29
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
30
|
+
readonly treeColumnKey: _angular_core.InputSignal<string>;
|
|
31
|
+
readonly rowKey: _angular_core.InputSignal<string>;
|
|
32
|
+
readonly tableAriaLabel: _angular_core.InputSignal<string>;
|
|
33
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string>;
|
|
34
|
+
readonly emptyMessage: _angular_core.InputSignal<string>;
|
|
35
|
+
readonly expandLabel: _angular_core.InputSignal<string>;
|
|
36
|
+
readonly collapseLabel: _angular_core.InputSignal<string>;
|
|
37
|
+
readonly indentSize: _angular_core.InputSignal<number>;
|
|
38
|
+
readonly searchable: _angular_core.InputSignal<boolean>;
|
|
39
|
+
readonly pagination: _angular_core.InputSignal<boolean>;
|
|
40
|
+
readonly selectable: _angular_core.InputSignal<boolean>;
|
|
41
|
+
readonly stickyHeader: _angular_core.InputSignal<boolean>;
|
|
42
|
+
readonly stripedRows: _angular_core.InputSignal<boolean>;
|
|
43
|
+
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
44
|
+
readonly roundedBorders: _angular_core.InputSignal<boolean>;
|
|
45
|
+
readonly sortable: _angular_core.InputSignal<boolean>;
|
|
46
|
+
readonly showRowNumbers: _angular_core.InputSignal<boolean>;
|
|
47
|
+
readonly useUrlState: _angular_core.InputSignal<boolean>;
|
|
48
|
+
readonly density: _angular_core.InputSignal<"compact" | "normal" | "relaxed">;
|
|
49
|
+
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
50
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<NeuTreeTableNode<Record<string, unknown>>[]>;
|
|
51
|
+
readonly nodeClick: _angular_core.OutputEmitterRef<NeuTreeTableNode<Record<string, unknown>>>;
|
|
52
|
+
readonly expansionChange: _angular_core.OutputEmitterRef<string[]>;
|
|
53
|
+
private readonly treeCellTpl;
|
|
54
|
+
private readonly expandedKeys;
|
|
55
|
+
readonly flatRows: _angular_core.Signal<Record<string, unknown>[]>;
|
|
56
|
+
readonly resolvedColumns: _angular_core.Signal<NeuTableColumn<Record<string, unknown>>[]>;
|
|
57
|
+
constructor();
|
|
58
|
+
toggleNode(node: NeuTreeTableNode, event?: Event): void;
|
|
59
|
+
onTableSelectionChange(rows: Record<string, unknown>[]): void;
|
|
60
|
+
onTableRowClick(row: Record<string, unknown>): void;
|
|
61
|
+
treeIndent(row: NeuTreeTableRow): number;
|
|
62
|
+
isTreeRowDisabled(row: NeuTreeTableRow): boolean;
|
|
63
|
+
treeToggleAriaLabel(row: NeuTreeTableRow): string;
|
|
64
|
+
private flattenNodes;
|
|
65
|
+
private collectExpandedKeys;
|
|
66
|
+
private asFlatRow;
|
|
67
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTreeTableComponent, never>;
|
|
68
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTreeTableComponent, "neu-tree-table", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "treeColumnKey": { "alias": "treeColumnKey"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "tableAriaLabel": { "alias": "tableAriaLabel"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "indentSize": { "alias": "indentSize"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "stripedRows": { "alias": "stripedRows"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "roundedBorders": { "alias": "roundedBorders"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "showRowNumbers": { "alias": "showRowNumbers"; "required": false; "isSignal": true; }; "useUrlState": { "alias": "useUrlState"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "nodeClick": "nodeClick"; "expansionChange": "expansionChange"; }, never, never, true, never>;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { NeuTreeTableComponent };
|
|
72
|
+
export type { NeuTreeTableNode, NeuTreeTableRow };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
interface NeuTreeNode<T = unknown> {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
badge?: string;
|
|
8
|
+
children?: NeuTreeNode<T>[];
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
expanded?: boolean;
|
|
11
|
+
selectable?: boolean;
|
|
12
|
+
data?: T;
|
|
13
|
+
}
|
|
14
|
+
type NeuTreeSelectionMode = 'single' | 'multiple';
|
|
15
|
+
declare class NeuTreeComponent {
|
|
16
|
+
nodes: _angular_core.InputSignal<NeuTreeNode<unknown>[]>;
|
|
17
|
+
selectable: _angular_core.InputSignal<boolean>;
|
|
18
|
+
searchable: _angular_core.InputSignal<boolean>;
|
|
19
|
+
selectionMode: _angular_core.InputSignal<NeuTreeSelectionMode>;
|
|
20
|
+
indentSize: _angular_core.InputSignal<number>;
|
|
21
|
+
ariaLabel: _angular_core.InputSignal<string>;
|
|
22
|
+
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
23
|
+
emptyLabel: _angular_core.InputSignal<string>;
|
|
24
|
+
expandLabel: _angular_core.InputSignal<string>;
|
|
25
|
+
collapseLabel: _angular_core.InputSignal<string>;
|
|
26
|
+
selectionChange: _angular_core.OutputEmitterRef<NeuTreeNode<unknown>[]>;
|
|
27
|
+
expansionChange: _angular_core.OutputEmitterRef<string[]>;
|
|
28
|
+
nodeClick: _angular_core.OutputEmitterRef<NeuTreeNode<unknown>>;
|
|
29
|
+
readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
30
|
+
private readonly expandedKeys;
|
|
31
|
+
private readonly selectedKeys;
|
|
32
|
+
readonly visibleNodes: _angular_core.Signal<NeuTreeNode<unknown>[]>;
|
|
33
|
+
constructor();
|
|
34
|
+
hasChildren(node: NeuTreeNode): boolean;
|
|
35
|
+
canSelect(node: NeuTreeNode): boolean;
|
|
36
|
+
isExpanded(nodeId: string): boolean;
|
|
37
|
+
isRenderedExpanded(node: NeuTreeNode): boolean;
|
|
38
|
+
isSelected(nodeId: string): boolean;
|
|
39
|
+
onSearch(event: Event): void;
|
|
40
|
+
toggleNode(node: NeuTreeNode, event?: Event): void;
|
|
41
|
+
activateNode(node: NeuTreeNode): void;
|
|
42
|
+
onCheckboxChange(node: NeuTreeNode, event: Event): void;
|
|
43
|
+
private updateSelection;
|
|
44
|
+
private collectExpandedKeys;
|
|
45
|
+
private collectSelectedNodes;
|
|
46
|
+
private filterNodes;
|
|
47
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTreeComponent, never>;
|
|
48
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTreeComponent, "neu-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "indentSize": { "alias": "indentSize"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "expansionChange": "expansionChange"; "nodeClick": "nodeClick"; }, never, never, true, never>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { NeuTreeComponent };
|
|
52
|
+
export type { NeuTreeNode, NeuTreeSelectionMode };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { ElementRef } from '@angular/core';
|
|
3
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
4
|
+
|
|
5
|
+
type NeuUploaderSize = 'sm' | 'md' | 'lg';
|
|
6
|
+
type NeuUploaderErrorCode = 'accept' | 'max-file-size' | 'max-files' | 'duplicate' | 'empty-selection';
|
|
7
|
+
interface NeuUploaderError {
|
|
8
|
+
code: NeuUploaderErrorCode;
|
|
9
|
+
message: string;
|
|
10
|
+
file?: File;
|
|
11
|
+
}
|
|
12
|
+
interface NeuUploaderFileItem {
|
|
13
|
+
id: string;
|
|
14
|
+
file: File;
|
|
15
|
+
name: string;
|
|
16
|
+
size: number;
|
|
17
|
+
type: string;
|
|
18
|
+
progress: number | null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare class NeuUploaderComponent implements ControlValueAccessor {
|
|
22
|
+
readonly fileInput: _angular_core.Signal<ElementRef<HTMLInputElement>>;
|
|
23
|
+
label: _angular_core.InputSignal<string>;
|
|
24
|
+
hint: _angular_core.InputSignal<string>;
|
|
25
|
+
errorMessage: _angular_core.InputSignal<string>;
|
|
26
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
27
|
+
pickerDescription: _angular_core.InputSignal<string>;
|
|
28
|
+
dropzoneLabel: _angular_core.InputSignal<string>;
|
|
29
|
+
chooseLabel: _angular_core.InputSignal<string>;
|
|
30
|
+
clearLabel: _angular_core.InputSignal<string>;
|
|
31
|
+
progressLabel: _angular_core.InputSignal<string>;
|
|
32
|
+
showPickerText: _angular_core.InputSignal<boolean>;
|
|
33
|
+
showProgress: _angular_core.InputSignal<boolean>;
|
|
34
|
+
listAriaLabel: _angular_core.InputSignal<string>;
|
|
35
|
+
removeAriaLabel: _angular_core.InputSignal<string>;
|
|
36
|
+
acceptedTypesLabel: _angular_core.InputSignal<string>;
|
|
37
|
+
maxFileSizeTextLabel: _angular_core.InputSignal<string>;
|
|
38
|
+
fileCountSingularLabel: _angular_core.InputSignal<string>;
|
|
39
|
+
fileCountPluralLabel: _angular_core.InputSignal<string>;
|
|
40
|
+
emptySelectionMessage: _angular_core.InputSignal<string>;
|
|
41
|
+
invalidTypeMessage: _angular_core.InputSignal<string>;
|
|
42
|
+
maxFileSizeMessage: _angular_core.InputSignal<string>;
|
|
43
|
+
duplicateFileMessage: _angular_core.InputSignal<string>;
|
|
44
|
+
maxFilesMessage: _angular_core.InputSignal<string>;
|
|
45
|
+
accept: _angular_core.InputSignal<string>;
|
|
46
|
+
multiple: _angular_core.InputSignal<boolean>;
|
|
47
|
+
dropzone: _angular_core.InputSignal<boolean>;
|
|
48
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
49
|
+
size: _angular_core.InputSignal<NeuUploaderSize>;
|
|
50
|
+
maxFiles: _angular_core.InputSignal<number | null>;
|
|
51
|
+
maxFileSize: _angular_core.InputSignal<number | null>;
|
|
52
|
+
progress: _angular_core.InputSignal<number | null>;
|
|
53
|
+
readonly filesSelected: _angular_core.OutputEmitterRef<File[]>;
|
|
54
|
+
readonly fileRemoved: _angular_core.OutputEmitterRef<File>;
|
|
55
|
+
readonly filesRejected: _angular_core.OutputEmitterRef<NeuUploaderError[]>;
|
|
56
|
+
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
57
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
58
|
+
protected readonly isDragOver: _angular_core.WritableSignal<boolean>;
|
|
59
|
+
protected readonly internalErrors: _angular_core.WritableSignal<NeuUploaderError[]>;
|
|
60
|
+
protected readonly fileItems: _angular_core.WritableSignal<NeuUploaderFileItem[]>;
|
|
61
|
+
private readonly cvaDisabled;
|
|
62
|
+
private onChange;
|
|
63
|
+
private onTouched;
|
|
64
|
+
readonly isDisabledFinal: _angular_core.Signal<boolean>;
|
|
65
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
66
|
+
readonly shouldShowProgress: _angular_core.Signal<boolean>;
|
|
67
|
+
readonly pickerButtonAriaLabel: _angular_core.Signal<string | null>;
|
|
68
|
+
readonly describedBy: _angular_core.Signal<string | null>;
|
|
69
|
+
readonly headlineText: _angular_core.Signal<string>;
|
|
70
|
+
readonly descriptionText: _angular_core.Signal<string>;
|
|
71
|
+
readonly summaryText: _angular_core.Signal<string>;
|
|
72
|
+
readonly displayErrorMessage: _angular_core.Signal<string>;
|
|
73
|
+
writeValue(value: File[] | File | null | undefined): void;
|
|
74
|
+
registerOnChange(fn: (value: File[]) => void): void;
|
|
75
|
+
registerOnTouched(fn: () => void): void;
|
|
76
|
+
setDisabledState(isDisabled: boolean): void;
|
|
77
|
+
openFilePicker(): void;
|
|
78
|
+
onDropzoneKey(event: KeyboardEvent): void;
|
|
79
|
+
onNativeInputChange(event: Event): void;
|
|
80
|
+
onDragOver(event: DragEvent): void;
|
|
81
|
+
onDragLeave(event: DragEvent): void;
|
|
82
|
+
onDrop(event: DragEvent): void;
|
|
83
|
+
removeFile(id: string, event?: Event): void;
|
|
84
|
+
clearFiles(event?: Event): void;
|
|
85
|
+
formatBytes(bytes: number): string;
|
|
86
|
+
private consumeFiles;
|
|
87
|
+
private emitValue;
|
|
88
|
+
private toItem;
|
|
89
|
+
private fileSignature;
|
|
90
|
+
private reportErrors;
|
|
91
|
+
private interpolate;
|
|
92
|
+
private isAcceptedType;
|
|
93
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuUploaderComponent, never>;
|
|
94
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuUploaderComponent, "neu-uploader", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "pickerDescription": { "alias": "pickerDescription"; "required": false; "isSignal": true; }; "dropzoneLabel": { "alias": "dropzoneLabel"; "required": false; "isSignal": true; }; "chooseLabel": { "alias": "chooseLabel"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "progressLabel": { "alias": "progressLabel"; "required": false; "isSignal": true; }; "showPickerText": { "alias": "showPickerText"; "required": false; "isSignal": true; }; "showProgress": { "alias": "showProgress"; "required": false; "isSignal": true; }; "listAriaLabel": { "alias": "listAriaLabel"; "required": false; "isSignal": true; }; "removeAriaLabel": { "alias": "removeAriaLabel"; "required": false; "isSignal": true; }; "acceptedTypesLabel": { "alias": "acceptedTypesLabel"; "required": false; "isSignal": true; }; "maxFileSizeTextLabel": { "alias": "maxFileSizeTextLabel"; "required": false; "isSignal": true; }; "fileCountSingularLabel": { "alias": "fileCountSingularLabel"; "required": false; "isSignal": true; }; "fileCountPluralLabel": { "alias": "fileCountPluralLabel"; "required": false; "isSignal": true; }; "emptySelectionMessage": { "alias": "emptySelectionMessage"; "required": false; "isSignal": true; }; "invalidTypeMessage": { "alias": "invalidTypeMessage"; "required": false; "isSignal": true; }; "maxFileSizeMessage": { "alias": "maxFileSizeMessage"; "required": false; "isSignal": true; }; "duplicateFileMessage": { "alias": "duplicateFileMessage"; "required": false; "isSignal": true; }; "maxFilesMessage": { "alias": "maxFilesMessage"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "dropzone": { "alias": "dropzone"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, { "filesSelected": "filesSelected"; "fileRemoved": "fileRemoved"; "filesRejected": "filesRejected"; "cleared": "cleared"; }, never, never, true, never>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { NeuUploaderComponent };
|
|
98
|
+
export type { NeuUploaderError, NeuUploaderErrorCode, NeuUploaderFileItem, NeuUploaderSize };
|