@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.
Files changed (77) hide show
  1. package/README.md +2 -1
  2. package/calendar/package.json +4 -0
  3. package/fesm2022/neural-ui-core-autocomplete.mjs +2 -2
  4. package/fesm2022/neural-ui-core-block-ui.mjs +2 -2
  5. package/fesm2022/neural-ui-core-button.mjs +2 -2
  6. package/fesm2022/neural-ui-core-button.mjs.map +1 -1
  7. package/fesm2022/neural-ui-core-calendar.mjs +551 -0
  8. package/fesm2022/neural-ui-core-calendar.mjs.map +1 -0
  9. package/fesm2022/neural-ui-core-chip.mjs +2 -2
  10. package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
  11. package/fesm2022/neural-ui-core-confirm-dialog.mjs +2 -2
  12. package/fesm2022/neural-ui-core-confirm-dialog.mjs.map +1 -1
  13. package/fesm2022/neural-ui-core-dashboard-grid.mjs +2 -2
  14. package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
  15. package/fesm2022/neural-ui-core-date-input.mjs +2 -2
  16. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
  17. package/fesm2022/neural-ui-core-image-gallery.mjs +224 -0
  18. package/fesm2022/neural-ui-core-image-gallery.mjs.map +1 -0
  19. package/fesm2022/neural-ui-core-input.mjs +2 -2
  20. package/fesm2022/neural-ui-core-kanban.mjs +270 -0
  21. package/fesm2022/neural-ui-core-kanban.mjs.map +1 -0
  22. package/fesm2022/neural-ui-core-meter-group.mjs +2 -2
  23. package/fesm2022/neural-ui-core-multiselect.mjs +13 -2
  24. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
  25. package/fesm2022/neural-ui-core-nav.mjs +2 -2
  26. package/fesm2022/neural-ui-core-nav.mjs.map +1 -1
  27. package/fesm2022/neural-ui-core-number-input.mjs +2 -2
  28. package/fesm2022/neural-ui-core-pagination.mjs +2 -2
  29. package/fesm2022/neural-ui-core-pagination.mjs.map +1 -1
  30. package/fesm2022/neural-ui-core-progress-bar.mjs +2 -2
  31. package/fesm2022/neural-ui-core-scheduler-gantt.mjs +289 -0
  32. package/fesm2022/neural-ui-core-scheduler-gantt.mjs.map +1 -0
  33. package/fesm2022/neural-ui-core-select.mjs +31 -9
  34. package/fesm2022/neural-ui-core-select.mjs.map +1 -1
  35. package/fesm2022/neural-ui-core-slider.mjs +2 -2
  36. package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
  37. package/fesm2022/neural-ui-core-split-button.mjs +2 -2
  38. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
  39. package/fesm2022/neural-ui-core-stepper.mjs +2 -2
  40. package/fesm2022/neural-ui-core-stepper.mjs.map +1 -1
  41. package/fesm2022/neural-ui-core-table.mjs +273 -19
  42. package/fesm2022/neural-ui-core-table.mjs.map +1 -1
  43. package/fesm2022/neural-ui-core-textarea.mjs +2 -2
  44. package/fesm2022/neural-ui-core-timeline-grid.mjs +215 -0
  45. package/fesm2022/neural-ui-core-timeline-grid.mjs.map +1 -0
  46. package/fesm2022/neural-ui-core-toggle-button-group.mjs +2 -2
  47. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
  48. package/fesm2022/neural-ui-core-tree-table.mjs +262 -0
  49. package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -0
  50. package/fesm2022/neural-ui-core-tree.mjs +413 -0
  51. package/fesm2022/neural-ui-core-tree.mjs.map +1 -0
  52. package/fesm2022/neural-ui-core-uploader.mjs +624 -0
  53. package/fesm2022/neural-ui-core-uploader.mjs.map +1 -0
  54. package/fesm2022/neural-ui-core-virtual-list.mjs +2 -2
  55. package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -1
  56. package/fesm2022/neural-ui-core.mjs +3 -1
  57. package/fesm2022/neural-ui-core.mjs.map +1 -1
  58. package/image-gallery/package.json +4 -0
  59. package/kanban/package.json +4 -0
  60. package/package.json +34 -2
  61. package/scheduler-gantt/package.json +4 -0
  62. package/styles/_tokens.scss +13 -4
  63. package/timeline-grid/package.json +4 -0
  64. package/tree/package.json +4 -0
  65. package/tree-table/package.json +4 -0
  66. package/types/neural-ui-core-calendar.d.ts +79 -0
  67. package/types/neural-ui-core-image-gallery.d.ts +26 -0
  68. package/types/neural-ui-core-kanban.d.ts +52 -0
  69. package/types/neural-ui-core-multiselect.d.ts +1 -0
  70. package/types/neural-ui-core-scheduler-gantt.d.ts +68 -0
  71. package/types/neural-ui-core-select.d.ts +2 -0
  72. package/types/neural-ui-core-table.d.ts +44 -2
  73. package/types/neural-ui-core-timeline-grid.d.ts +55 -0
  74. package/types/neural-ui-core-tree-table.d.ts +72 -0
  75. package/types/neural-ui-core-tree.d.ts +52 -0
  76. package/types/neural-ui-core-uploader.d.ts +98 -0
  77. 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 };
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-uploader.mjs",
3
+ "typings": "../types/neural-ui-core-uploader.d.ts"
4
+ }