@neural-ui/core 1.7.1 → 1.7.3

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 (129) hide show
  1. package/bottom-sheet/package.json +4 -0
  2. package/confirm-popup/package.json +4 -0
  3. package/data-view/package.json +4 -0
  4. package/fesm2022/neural-ui-core-alert.mjs +48 -21
  5. package/fesm2022/neural-ui-core-alert.mjs.map +1 -1
  6. package/fesm2022/neural-ui-core-autocomplete.mjs +153 -71
  7. package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -1
  8. package/fesm2022/neural-ui-core-block-ui.mjs +2 -2
  9. package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -1
  10. package/fesm2022/neural-ui-core-bottom-sheet.mjs +121 -0
  11. package/fesm2022/neural-ui-core-bottom-sheet.mjs.map +1 -0
  12. package/fesm2022/neural-ui-core-breadcrumb.mjs +2 -2
  13. package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/neural-ui-core-button.mjs +2 -2
  15. package/fesm2022/neural-ui-core-button.mjs.map +1 -1
  16. package/fesm2022/neural-ui-core-calendar.mjs +2 -2
  17. package/fesm2022/neural-ui-core-calendar.mjs.map +1 -1
  18. package/fesm2022/neural-ui-core-checkbox.mjs +69 -39
  19. package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -1
  20. package/fesm2022/neural-ui-core-chip.mjs +2 -2
  21. package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
  22. package/fesm2022/neural-ui-core-code-block.mjs +2 -2
  23. package/fesm2022/neural-ui-core-code-block.mjs.map +1 -1
  24. package/fesm2022/neural-ui-core-confirm-popup.mjs +105 -0
  25. package/fesm2022/neural-ui-core-confirm-popup.mjs.map +1 -0
  26. package/fesm2022/neural-ui-core-dashboard-grid.mjs +9 -3
  27. package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
  28. package/fesm2022/neural-ui-core-data-view.mjs +386 -0
  29. package/fesm2022/neural-ui-core-data-view.mjs.map +1 -0
  30. package/fesm2022/neural-ui-core-date-input.mjs +185 -10
  31. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
  32. package/fesm2022/neural-ui-core-empty-state.mjs +19 -5
  33. package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -1
  34. package/fesm2022/neural-ui-core-form-field.mjs +81 -0
  35. package/fesm2022/neural-ui-core-form-field.mjs.map +1 -0
  36. package/fesm2022/neural-ui-core-inline-editor.mjs +428 -0
  37. package/fesm2022/neural-ui-core-inline-editor.mjs.map +1 -0
  38. package/fesm2022/neural-ui-core-input-mask.mjs +110 -0
  39. package/fesm2022/neural-ui-core-input-mask.mjs.map +1 -0
  40. package/fesm2022/neural-ui-core-input.mjs +2 -2
  41. package/fesm2022/neural-ui-core-input.mjs.map +1 -1
  42. package/fesm2022/neural-ui-core-listbox.mjs +219 -0
  43. package/fesm2022/neural-ui-core-listbox.mjs.map +1 -0
  44. package/fesm2022/neural-ui-core-menu.mjs +229 -0
  45. package/fesm2022/neural-ui-core-menu.mjs.map +1 -0
  46. package/fesm2022/neural-ui-core-modal.mjs +34 -10
  47. package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
  48. package/fesm2022/neural-ui-core-multiselect.mjs +170 -179
  49. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
  50. package/fesm2022/neural-ui-core-number-input.mjs +2 -2
  51. package/fesm2022/neural-ui-core-number-input.mjs.map +1 -1
  52. package/fesm2022/neural-ui-core-panel.mjs +92 -0
  53. package/fesm2022/neural-ui-core-panel.mjs.map +1 -0
  54. package/fesm2022/neural-ui-core-password.mjs +106 -0
  55. package/fesm2022/neural-ui-core-password.mjs.map +1 -0
  56. package/fesm2022/neural-ui-core-pick-list.mjs +133 -0
  57. package/fesm2022/neural-ui-core-pick-list.mjs.map +1 -0
  58. package/fesm2022/neural-ui-core-select.mjs +128 -166
  59. package/fesm2022/neural-ui-core-select.mjs.map +1 -1
  60. package/fesm2022/neural-ui-core-sidebar.mjs +14 -3
  61. package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
  62. package/fesm2022/neural-ui-core-slider.mjs +2 -2
  63. package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
  64. package/fesm2022/neural-ui-core-spinner.mjs +19 -9
  65. package/fesm2022/neural-ui-core-spinner.mjs.map +1 -1
  66. package/fesm2022/neural-ui-core-split-button.mjs +2 -2
  67. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
  68. package/fesm2022/neural-ui-core-table.mjs +503 -62
  69. package/fesm2022/neural-ui-core-table.mjs.map +1 -1
  70. package/fesm2022/neural-ui-core-tabs.mjs +11 -4
  71. package/fesm2022/neural-ui-core-tabs.mjs.map +1 -1
  72. package/fesm2022/neural-ui-core-tags.mjs +134 -0
  73. package/fesm2022/neural-ui-core-tags.mjs.map +1 -0
  74. package/fesm2022/neural-ui-core-textarea.mjs +2 -2
  75. package/fesm2022/neural-ui-core-textarea.mjs.map +1 -1
  76. package/fesm2022/neural-ui-core-toggle-button-group.mjs +2 -2
  77. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
  78. package/fesm2022/neural-ui-core-toolbar.mjs +16 -4
  79. package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
  80. package/fesm2022/neural-ui-core-tree-select.mjs +259 -0
  81. package/fesm2022/neural-ui-core-tree-select.mjs.map +1 -0
  82. package/fesm2022/neural-ui-core-tree-table.mjs +267 -8
  83. package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -1
  84. package/fesm2022/neural-ui-core-tree.mjs +15 -14
  85. package/fesm2022/neural-ui-core-tree.mjs.map +1 -1
  86. package/fesm2022/neural-ui-core-uploader.mjs +103 -12
  87. package/fesm2022/neural-ui-core-uploader.mjs.map +1 -1
  88. package/form-field/package.json +4 -0
  89. package/inline-editor/package.json +4 -0
  90. package/input-mask/package.json +4 -0
  91. package/listbox/package.json +4 -0
  92. package/menu/package.json +4 -0
  93. package/package.json +53 -1
  94. package/panel/package.json +4 -0
  95. package/password/package.json +4 -0
  96. package/pick-list/package.json +4 -0
  97. package/styles/_tokens.scss +33 -17
  98. package/tags/package.json +4 -0
  99. package/tree-select/package.json +4 -0
  100. package/types/neural-ui-core-alert.d.ts +2 -1
  101. package/types/neural-ui-core-autocomplete.d.ts +22 -2
  102. package/types/neural-ui-core-bottom-sheet.d.ts +20 -0
  103. package/types/neural-ui-core-checkbox.d.ts +6 -1
  104. package/types/neural-ui-core-confirm-popup.d.ts +38 -0
  105. package/types/neural-ui-core-dashboard-grid.d.ts +1 -0
  106. package/types/neural-ui-core-data-view.d.ts +95 -0
  107. package/types/neural-ui-core-date-input.d.ts +35 -5
  108. package/types/neural-ui-core-empty-state.d.ts +11 -1
  109. package/types/neural-ui-core-form-field.d.ts +33 -0
  110. package/types/neural-ui-core-inline-editor.d.ts +66 -0
  111. package/types/neural-ui-core-input-mask.d.ts +26 -0
  112. package/types/neural-ui-core-listbox.d.ts +54 -0
  113. package/types/neural-ui-core-menu.d.ts +49 -0
  114. package/types/neural-ui-core-modal.d.ts +10 -2
  115. package/types/neural-ui-core-multiselect.d.ts +10 -1
  116. package/types/neural-ui-core-panel.d.ts +25 -0
  117. package/types/neural-ui-core-password.d.ts +29 -0
  118. package/types/neural-ui-core-pick-list.d.ts +40 -0
  119. package/types/neural-ui-core-select.d.ts +7 -1
  120. package/types/neural-ui-core-sidebar.d.ts +5 -1
  121. package/types/neural-ui-core-spinner.d.ts +4 -2
  122. package/types/neural-ui-core-table.d.ts +89 -5
  123. package/types/neural-ui-core-tabs.d.ts +2 -0
  124. package/types/neural-ui-core-tags.d.ts +32 -0
  125. package/types/neural-ui-core-toolbar.d.ts +8 -2
  126. package/types/neural-ui-core-tree-select.d.ts +57 -0
  127. package/types/neural-ui-core-tree-table.d.ts +111 -4
  128. package/types/neural-ui-core-tree.d.ts +1 -1
  129. package/types/neural-ui-core-uploader.d.ts +26 -3
@@ -1,34 +1,105 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, output, viewChild, signal, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
- import { NeuTableComponent } from '@neural-ui/core/table';
2
+ import { input, output, contentChild, viewChild, signal, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
+ import { NgTemplateOutlet } from '@angular/common';
4
+ import { NeuTableExpandDirective, NeuTableComponent } from '@neural-ui/core/table';
4
5
 
5
6
  class NeuTreeTableComponent {
6
7
  nodes = input([], ...(ngDevMode ? [{ debugName: "nodes" }] : /* istanbul ignore next */ []));
7
8
  columns = input([], ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
8
9
  title = input('', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
10
+ toolbarExtraRef = input(null, ...(ngDevMode ? [{ debugName: "toolbarExtraRef" }] : /* istanbul ignore next */ []));
9
11
  treeColumnKey = input('label', ...(ngDevMode ? [{ debugName: "treeColumnKey" }] : /* istanbul ignore next */ []));
10
12
  rowKey = input('id', ...(ngDevMode ? [{ debugName: "rowKey" }] : /* istanbul ignore next */ []));
11
13
  tableAriaLabel = input('Tree table', ...(ngDevMode ? [{ debugName: "tableAriaLabel" }] : /* istanbul ignore next */ []));
12
14
  searchPlaceholder = input('Search rows', ...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
15
+ exactMatchLabel = input('Exact match', ...(ngDevMode ? [{ debugName: "exactMatchLabel" }] : /* istanbul ignore next */ []));
16
+ searchAriaLabel = input('Search tree table', ...(ngDevMode ? [{ debugName: "searchAriaLabel" }] : /* istanbul ignore next */ []));
17
+ clearSearchAriaLabel = input('Clear search', ...(ngDevMode ? [{ debugName: "clearSearchAriaLabel" }] : /* istanbul ignore next */ []));
18
+ clearFilterLabel = input('Clear filter', ...(ngDevMode ? [{ debugName: "clearFilterLabel" }] : /* istanbul ignore next */ []));
19
+ previousPageAriaLabel = input('Previous page', ...(ngDevMode ? [{ debugName: "previousPageAriaLabel" }] : /* istanbul ignore next */ []));
20
+ nextPageAriaLabel = input('Next page', ...(ngDevMode ? [{ debugName: "nextPageAriaLabel" }] : /* istanbul ignore next */ []));
21
+ pageSizeLabel = input('Rows:', ...(ngDevMode ? [{ debugName: "pageSizeLabel" }] : /* istanbul ignore next */ []));
22
+ pageSizeAriaLabel = input('Rows per page', ...(ngDevMode ? [{ debugName: "pageSizeAriaLabel" }] : /* istanbul ignore next */ []));
23
+ paginationAriaLabel = input('Tree table pagination', ...(ngDevMode ? [{ debugName: "paginationAriaLabel" }] : /* istanbul ignore next */ []));
24
+ exportCsvTitle = input('Export CSV', ...(ngDevMode ? [{ debugName: "exportCsvTitle" }] : /* istanbul ignore next */ []));
25
+ exportJsonTitle = input('Export JSON', ...(ngDevMode ? [{ debugName: "exportJsonTitle" }] : /* istanbul ignore next */ []));
26
+ exportXlsxTitle = input('Export XLSX', ...(ngDevMode ? [{ debugName: "exportXlsxTitle" }] : /* istanbul ignore next */ []));
27
+ clearSelectionLabel = input('Clear selection', ...(ngDevMode ? [{ debugName: "clearSelectionLabel" }] : /* istanbul ignore next */ []));
28
+ selectionSummaryLabel = input('selected', ...(ngDevMode ? [{ debugName: "selectionSummaryLabel" }] : /* istanbul ignore next */ []));
29
+ selectAllAriaLabel = input('Select all visible tree rows', ...(ngDevMode ? [{ debugName: "selectAllAriaLabel" }] : /* istanbul ignore next */ []));
30
+ selectRowAriaLabel = input('Select tree row', ...(ngDevMode ? [{ debugName: "selectRowAriaLabel" }] : /* istanbul ignore next */ []));
31
+ expandRowAriaLabel = input('Expand detail row', ...(ngDevMode ? [{ debugName: "expandRowAriaLabel" }] : /* istanbul ignore next */ []));
32
+ filterPlaceholder = input('Filter...', ...(ngDevMode ? [{ debugName: "filterPlaceholder" }] : /* istanbul ignore next */ []));
33
+ filterAriaPrefix = input('Filter by', ...(ngDevMode ? [{ debugName: "filterAriaPrefix" }] : /* istanbul ignore next */ []));
34
+ allFilterOptionLabel = input('All', ...(ngDevMode ? [{ debugName: "allFilterOptionLabel" }] : /* istanbul ignore next */ []));
35
+ ofLabel = input('of', ...(ngDevMode ? [{ debugName: "ofLabel" }] : /* istanbul ignore next */ []));
36
+ resultLabelSingular = input('result', ...(ngDevMode ? [{ debugName: "resultLabelSingular" }] : /* istanbul ignore next */ []));
37
+ resultLabelPlural = input('results', ...(ngDevMode ? [{ debugName: "resultLabelPlural" }] : /* istanbul ignore next */ []));
13
38
  emptyMessage = input('No rows found', ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
14
39
  expandLabel = input('Expand row', ...(ngDevMode ? [{ debugName: "expandLabel" }] : /* istanbul ignore next */ []));
15
40
  collapseLabel = input('Collapse row', ...(ngDevMode ? [{ debugName: "collapseLabel" }] : /* istanbul ignore next */ []));
16
41
  indentSize = input(18, ...(ngDevMode ? [{ debugName: "indentSize" }] : /* istanbul ignore next */ []));
42
+ loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
43
+ skeletonRows = input([1, 2, 3, 4, 5], ...(ngDevMode ? [{ debugName: "skeletonRows" }] : /* istanbul ignore next */ []));
17
44
  searchable = input(true, ...(ngDevMode ? [{ debugName: "searchable" }] : /* istanbul ignore next */ []));
45
+ exactMatchable = input(false, ...(ngDevMode ? [{ debugName: "exactMatchable" }] : /* istanbul ignore next */ []));
18
46
  pagination = input(true, ...(ngDevMode ? [{ debugName: "pagination" }] : /* istanbul ignore next */ []));
47
+ pageSize = input(10, ...(ngDevMode ? [{ debugName: "pageSize" }] : /* istanbul ignore next */ []));
19
48
  selectable = input(false, ...(ngDevMode ? [{ debugName: "selectable" }] : /* istanbul ignore next */ []));
49
+ selectionActions = input([], ...(ngDevMode ? [{ debugName: "selectionActions" }] : /* istanbul ignore next */ []));
20
50
  stickyHeader = input(false, ...(ngDevMode ? [{ debugName: "stickyHeader" }] : /* istanbul ignore next */ []));
21
51
  stripedRows = input(false, ...(ngDevMode ? [{ debugName: "stripedRows" }] : /* istanbul ignore next */ []));
22
52
  bordered = input(true, ...(ngDevMode ? [{ debugName: "bordered" }] : /* istanbul ignore next */ []));
23
53
  roundedBorders = input(true, ...(ngDevMode ? [{ debugName: "roundedBorders" }] : /* istanbul ignore next */ []));
24
54
  sortable = input(false, ...(ngDevMode ? [{ debugName: "sortable" }] : /* istanbul ignore next */ []));
55
+ multiSort = input(false, ...(ngDevMode ? [{ debugName: "multiSort" }] : /* istanbul ignore next */ []));
56
+ expandable = input(false, ...(ngDevMode ? [{ debugName: "expandable" }] : /* istanbul ignore next */ []));
57
+ expandMode = input('multiple', ...(ngDevMode ? [{ debugName: "expandMode" }] : /* istanbul ignore next */ []));
58
+ exportable = input(false, ...(ngDevMode ? [{ debugName: "exportable" }] : /* istanbul ignore next */ []));
59
+ exportFileName = input('tree-table-export', ...(ngDevMode ? [{ debugName: "exportFileName" }] : /* istanbul ignore next */ []));
60
+ exportFormats = input(['csv'], ...(ngDevMode ? [{ debugName: "exportFormats" }] : /* istanbul ignore next */ []));
61
+ exportColumns = input([], ...(ngDevMode ? [{ debugName: "exportColumns" }] : /* istanbul ignore next */ []));
62
+ exportScope = input('auto', ...(ngDevMode ? [{ debugName: "exportScope" }] : /* istanbul ignore next */ []));
63
+ virtualScroll = input(false, ...(ngDevMode ? [{ debugName: "virtualScroll" }] : /* istanbul ignore next */ []));
64
+ virtualScrollVisibleItems = input(8, ...(ngDevMode ? [{ debugName: "virtualScrollVisibleItems" }] : /* istanbul ignore next */ []));
65
+ resizableColumns = input(false, ...(ngDevMode ? [{ debugName: "resizableColumns" }] : /* istanbul ignore next */ []));
66
+ reorderableColumns = input(false, ...(ngDevMode ? [{ debugName: "reorderableColumns" }] : /* istanbul ignore next */ []));
67
+ columnChooser = input(false, ...(ngDevMode ? [{ debugName: "columnChooser" }] : /* istanbul ignore next */ []));
68
+ columnChooserLabel = input('Columns', ...(ngDevMode ? [{ debugName: "columnChooserLabel" }] : /* istanbul ignore next */ []));
69
+ groupBy = input('', ...(ngDevMode ? [{ debugName: "groupBy" }] : /* istanbul ignore next */ []));
70
+ groupHeaderLabel = input('Group:', ...(ngDevMode ? [{ debugName: "groupHeaderLabel" }] : /* istanbul ignore next */ []));
71
+ inlineEdit = input(false, ...(ngDevMode ? [{ debugName: "inlineEdit" }] : /* istanbul ignore next */ []));
72
+ inlineEditLabel = input('Edit cell', ...(ngDevMode ? [{ debugName: "inlineEditLabel" }] : /* istanbul ignore next */ []));
73
+ saveInlineEditLabel = input('Save cell', ...(ngDevMode ? [{ debugName: "saveInlineEditLabel" }] : /* istanbul ignore next */ []));
74
+ cancelInlineEditLabel = input('Cancel cell edit', ...(ngDevMode ? [{ debugName: "cancelInlineEditLabel" }] : /* istanbul ignore next */ []));
75
+ initialLayout = input(null, ...(ngDevMode ? [{ debugName: "initialLayout" }] : /* istanbul ignore next */ []));
25
76
  showRowNumbers = input(false, ...(ngDevMode ? [{ debugName: "showRowNumbers" }] : /* istanbul ignore next */ []));
26
77
  useUrlState = input(false, ...(ngDevMode ? [{ debugName: "useUrlState" }] : /* istanbul ignore next */ []));
27
78
  density = input('normal', ...(ngDevMode ? [{ debugName: "density" }] : /* istanbul ignore next */ []));
28
79
  pageSizeOptions = input([5, 10, 20], ...(ngDevMode ? [{ debugName: "pageSizeOptions" }] : /* istanbul ignore next */ []));
80
+ rowClass = input(undefined, ...(ngDevMode ? [{ debugName: "rowClass" }] : /* istanbul ignore next */ []));
81
+ footerRow = input(undefined, ...(ngDevMode ? [{ debugName: "footerRow" }] : /* istanbul ignore next */ []));
82
+ emptyStateTemplate = input(undefined, ...(ngDevMode ? [{ debugName: "emptyStateTemplate" }] : /* istanbul ignore next */ []));
83
+ serverSide = input(false, ...(ngDevMode ? [{ debugName: "serverSide" }] : /* istanbul ignore next */ []));
84
+ totalItems = input(undefined, ...(ngDevMode ? [{ debugName: "totalItems" }] : /* istanbul ignore next */ []));
85
+ pageParam = input('page', ...(ngDevMode ? [{ debugName: "pageParam" }] : /* istanbul ignore next */ []));
86
+ searchParam = input('q', ...(ngDevMode ? [{ debugName: "searchParam" }] : /* istanbul ignore next */ []));
87
+ sortParam = input('sort', ...(ngDevMode ? [{ debugName: "sortParam" }] : /* istanbul ignore next */ []));
88
+ sortDirParam = input('sortDir', ...(ngDevMode ? [{ debugName: "sortDirParam" }] : /* istanbul ignore next */ []));
89
+ multiSortParam = input('msort', ...(ngDevMode ? [{ debugName: "multiSortParam" }] : /* istanbul ignore next */ []));
29
90
  selectionChange = output();
30
91
  nodeClick = output();
92
+ nodeDblClick = output();
31
93
  expansionChange = output();
94
+ actionClick = output();
95
+ selectionActionClick = output();
96
+ serverStateChange = output();
97
+ searchChange = output();
98
+ columnResize = output();
99
+ columnReorder = output();
100
+ layoutChange = output();
101
+ cellEditCommit = output();
102
+ expandTemplate = contentChild(NeuTableExpandDirective, ...(ngDevMode ? [{ debugName: "expandTemplate" }] : /* istanbul ignore next */ []));
32
103
  treeCellTpl = viewChild('treeCellTpl', ...(ngDevMode ? [{ debugName: "treeCellTpl" }] : /* istanbul ignore next */ []));
33
104
  expandedKeys = signal(new Set(), ...(ngDevMode ? [{ debugName: "expandedKeys" }] : /* istanbul ignore next */ []));
34
105
  flatRows = computed(() => this.flattenNodes(this.nodes(), 0), ...(ngDevMode ? [{ debugName: "flatRows" }] : /* istanbul ignore next */ []));
@@ -75,6 +146,38 @@ class NeuTreeTableComponent {
75
146
  onTableRowClick(row) {
76
147
  this.nodeClick.emit(this.asFlatRow(row).__treeNode);
77
148
  }
149
+ onTableRowDblClick(row) {
150
+ this.nodeDblClick.emit(this.asFlatRow(row).__treeNode);
151
+ }
152
+ onTableActionClick(event) {
153
+ const row = this.asFlatRow(event.row);
154
+ this.actionClick.emit({ action: event.action, node: row.__treeNode, row });
155
+ }
156
+ onTableSelectionActionClick(event) {
157
+ const rows = event.rows.map((row) => this.asFlatRow(row));
158
+ this.selectionActionClick.emit({
159
+ action: event.action,
160
+ nodes: rows.map((row) => row.__treeNode),
161
+ rows,
162
+ });
163
+ }
164
+ onTableCellEditCommit(event) {
165
+ const row = this.asFlatRow(event.row);
166
+ this.cellEditCommit.emit({
167
+ node: row.__treeNode,
168
+ row,
169
+ column: event.column,
170
+ value: event.value,
171
+ previousValue: event.previousValue,
172
+ });
173
+ }
174
+ expandTemplateContext(row) {
175
+ const treeRow = this.asFlatRow(row);
176
+ return { $implicit: treeRow.__treeNode, node: treeRow.__treeNode, row: treeRow };
177
+ }
178
+ expandTemplateRef(directive) {
179
+ return directive.templateRef;
180
+ }
78
181
  treeIndent(row) {
79
182
  return row.__treeLevel * this.indentSize();
80
183
  }
@@ -125,31 +228,109 @@ class NeuTreeTableComponent {
125
228
  return row;
126
229
  }
127
230
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuTreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
128
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: NeuTreeTableComponent, isStandalone: true, selector: "neu-tree-table", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, treeColumnKey: { classPropertyName: "treeColumnKey", publicName: "treeColumnKey", isSignal: true, isRequired: false, transformFunction: null }, rowKey: { classPropertyName: "rowKey", publicName: "rowKey", isSignal: true, isRequired: false, transformFunction: null }, tableAriaLabel: { classPropertyName: "tableAriaLabel", publicName: "tableAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, expandLabel: { classPropertyName: "expandLabel", publicName: "expandLabel", isSignal: true, isRequired: false, transformFunction: null }, collapseLabel: { classPropertyName: "collapseLabel", publicName: "collapseLabel", isSignal: true, isRequired: false, transformFunction: null }, indentSize: { classPropertyName: "indentSize", publicName: "indentSize", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, stripedRows: { classPropertyName: "stripedRows", publicName: "stripedRows", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, roundedBorders: { classPropertyName: "roundedBorders", publicName: "roundedBorders", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, showRowNumbers: { classPropertyName: "showRowNumbers", publicName: "showRowNumbers", isSignal: true, isRequired: false, transformFunction: null }, useUrlState: { classPropertyName: "useUrlState", publicName: "useUrlState", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange", nodeClick: "nodeClick", expansionChange: "expansionChange" }, viewQueries: [{ propertyName: "treeCellTpl", first: true, predicate: ["treeCellTpl"], descendants: true, isSignal: true }], ngImport: i0, template: `
231
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: NeuTreeTableComponent, isStandalone: true, selector: "neu-tree-table", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, toolbarExtraRef: { classPropertyName: "toolbarExtraRef", publicName: "toolbarExtraRef", isSignal: true, isRequired: false, transformFunction: null }, treeColumnKey: { classPropertyName: "treeColumnKey", publicName: "treeColumnKey", isSignal: true, isRequired: false, transformFunction: null }, rowKey: { classPropertyName: "rowKey", publicName: "rowKey", isSignal: true, isRequired: false, transformFunction: null }, tableAriaLabel: { classPropertyName: "tableAriaLabel", publicName: "tableAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, exactMatchLabel: { classPropertyName: "exactMatchLabel", publicName: "exactMatchLabel", isSignal: true, isRequired: false, transformFunction: null }, searchAriaLabel: { classPropertyName: "searchAriaLabel", publicName: "searchAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, clearSearchAriaLabel: { classPropertyName: "clearSearchAriaLabel", publicName: "clearSearchAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, clearFilterLabel: { classPropertyName: "clearFilterLabel", publicName: "clearFilterLabel", isSignal: true, isRequired: false, transformFunction: null }, previousPageAriaLabel: { classPropertyName: "previousPageAriaLabel", publicName: "previousPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, nextPageAriaLabel: { classPropertyName: "nextPageAriaLabel", publicName: "nextPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, pageSizeLabel: { classPropertyName: "pageSizeLabel", publicName: "pageSizeLabel", isSignal: true, isRequired: false, transformFunction: null }, pageSizeAriaLabel: { classPropertyName: "pageSizeAriaLabel", publicName: "pageSizeAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, paginationAriaLabel: { classPropertyName: "paginationAriaLabel", publicName: "paginationAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, exportCsvTitle: { classPropertyName: "exportCsvTitle", publicName: "exportCsvTitle", isSignal: true, isRequired: false, transformFunction: null }, exportJsonTitle: { classPropertyName: "exportJsonTitle", publicName: "exportJsonTitle", isSignal: true, isRequired: false, transformFunction: null }, exportXlsxTitle: { classPropertyName: "exportXlsxTitle", publicName: "exportXlsxTitle", isSignal: true, isRequired: false, transformFunction: null }, clearSelectionLabel: { classPropertyName: "clearSelectionLabel", publicName: "clearSelectionLabel", isSignal: true, isRequired: false, transformFunction: null }, selectionSummaryLabel: { classPropertyName: "selectionSummaryLabel", publicName: "selectionSummaryLabel", isSignal: true, isRequired: false, transformFunction: null }, selectAllAriaLabel: { classPropertyName: "selectAllAriaLabel", publicName: "selectAllAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, selectRowAriaLabel: { classPropertyName: "selectRowAriaLabel", publicName: "selectRowAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, expandRowAriaLabel: { classPropertyName: "expandRowAriaLabel", publicName: "expandRowAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, filterAriaPrefix: { classPropertyName: "filterAriaPrefix", publicName: "filterAriaPrefix", isSignal: true, isRequired: false, transformFunction: null }, allFilterOptionLabel: { classPropertyName: "allFilterOptionLabel", publicName: "allFilterOptionLabel", isSignal: true, isRequired: false, transformFunction: null }, ofLabel: { classPropertyName: "ofLabel", publicName: "ofLabel", isSignal: true, isRequired: false, transformFunction: null }, resultLabelSingular: { classPropertyName: "resultLabelSingular", publicName: "resultLabelSingular", isSignal: true, isRequired: false, transformFunction: null }, resultLabelPlural: { classPropertyName: "resultLabelPlural", publicName: "resultLabelPlural", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, expandLabel: { classPropertyName: "expandLabel", publicName: "expandLabel", isSignal: true, isRequired: false, transformFunction: null }, collapseLabel: { classPropertyName: "collapseLabel", publicName: "collapseLabel", isSignal: true, isRequired: false, transformFunction: null }, indentSize: { classPropertyName: "indentSize", publicName: "indentSize", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, skeletonRows: { classPropertyName: "skeletonRows", publicName: "skeletonRows", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, exactMatchable: { classPropertyName: "exactMatchable", publicName: "exactMatchable", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selectionActions: { classPropertyName: "selectionActions", publicName: "selectionActions", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, stripedRows: { classPropertyName: "stripedRows", publicName: "stripedRows", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, roundedBorders: { classPropertyName: "roundedBorders", publicName: "roundedBorders", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, multiSort: { classPropertyName: "multiSort", publicName: "multiSort", isSignal: true, isRequired: false, transformFunction: null }, expandable: { classPropertyName: "expandable", publicName: "expandable", isSignal: true, isRequired: false, transformFunction: null }, expandMode: { classPropertyName: "expandMode", publicName: "expandMode", isSignal: true, isRequired: false, transformFunction: null }, exportable: { classPropertyName: "exportable", publicName: "exportable", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, exportFormats: { classPropertyName: "exportFormats", publicName: "exportFormats", isSignal: true, isRequired: false, transformFunction: null }, exportColumns: { classPropertyName: "exportColumns", publicName: "exportColumns", isSignal: true, isRequired: false, transformFunction: null }, exportScope: { classPropertyName: "exportScope", publicName: "exportScope", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollVisibleItems: { classPropertyName: "virtualScrollVisibleItems", publicName: "virtualScrollVisibleItems", isSignal: true, isRequired: false, transformFunction: null }, resizableColumns: { classPropertyName: "resizableColumns", publicName: "resizableColumns", isSignal: true, isRequired: false, transformFunction: null }, reorderableColumns: { classPropertyName: "reorderableColumns", publicName: "reorderableColumns", isSignal: true, isRequired: false, transformFunction: null }, columnChooser: { classPropertyName: "columnChooser", publicName: "columnChooser", isSignal: true, isRequired: false, transformFunction: null }, columnChooserLabel: { classPropertyName: "columnChooserLabel", publicName: "columnChooserLabel", isSignal: true, isRequired: false, transformFunction: null }, groupBy: { classPropertyName: "groupBy", publicName: "groupBy", isSignal: true, isRequired: false, transformFunction: null }, groupHeaderLabel: { classPropertyName: "groupHeaderLabel", publicName: "groupHeaderLabel", isSignal: true, isRequired: false, transformFunction: null }, inlineEdit: { classPropertyName: "inlineEdit", publicName: "inlineEdit", isSignal: true, isRequired: false, transformFunction: null }, inlineEditLabel: { classPropertyName: "inlineEditLabel", publicName: "inlineEditLabel", isSignal: true, isRequired: false, transformFunction: null }, saveInlineEditLabel: { classPropertyName: "saveInlineEditLabel", publicName: "saveInlineEditLabel", isSignal: true, isRequired: false, transformFunction: null }, cancelInlineEditLabel: { classPropertyName: "cancelInlineEditLabel", publicName: "cancelInlineEditLabel", isSignal: true, isRequired: false, transformFunction: null }, initialLayout: { classPropertyName: "initialLayout", publicName: "initialLayout", isSignal: true, isRequired: false, transformFunction: null }, showRowNumbers: { classPropertyName: "showRowNumbers", publicName: "showRowNumbers", isSignal: true, isRequired: false, transformFunction: null }, useUrlState: { classPropertyName: "useUrlState", publicName: "useUrlState", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, footerRow: { classPropertyName: "footerRow", publicName: "footerRow", isSignal: true, isRequired: false, transformFunction: null }, emptyStateTemplate: { classPropertyName: "emptyStateTemplate", publicName: "emptyStateTemplate", isSignal: true, isRequired: false, transformFunction: null }, serverSide: { classPropertyName: "serverSide", publicName: "serverSide", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, pageParam: { classPropertyName: "pageParam", publicName: "pageParam", isSignal: true, isRequired: false, transformFunction: null }, searchParam: { classPropertyName: "searchParam", publicName: "searchParam", isSignal: true, isRequired: false, transformFunction: null }, sortParam: { classPropertyName: "sortParam", publicName: "sortParam", isSignal: true, isRequired: false, transformFunction: null }, sortDirParam: { classPropertyName: "sortDirParam", publicName: "sortDirParam", isSignal: true, isRequired: false, transformFunction: null }, multiSortParam: { classPropertyName: "multiSortParam", publicName: "multiSortParam", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange", nodeClick: "nodeClick", nodeDblClick: "nodeDblClick", expansionChange: "expansionChange", actionClick: "actionClick", selectionActionClick: "selectionActionClick", serverStateChange: "serverStateChange", searchChange: "searchChange", columnResize: "columnResize", columnReorder: "columnReorder", layoutChange: "layoutChange", cellEditCommit: "cellEditCommit" }, queries: [{ propertyName: "expandTemplate", first: true, predicate: NeuTableExpandDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "treeCellTpl", first: true, predicate: ["treeCellTpl"], descendants: true, isSignal: true }], ngImport: i0, template: `
129
232
  <neu-table
130
233
  class="neu-tree-table"
131
234
  [columns]="resolvedColumns()"
132
235
  [data]="flatRows()"
133
236
  [title]="title()"
237
+ [toolbarExtraRef]="toolbarExtraRef()"
134
238
  [rowKey]="rowKey()"
135
239
  [tableAriaLabel]="tableAriaLabel()"
136
240
  [searchable]="searchable()"
137
241
  [searchPlaceholder]="searchPlaceholder()"
242
+ [exactMatchable]="exactMatchable()"
243
+ [exactMatchLabel]="exactMatchLabel()"
244
+ [searchAriaLabel]="searchAriaLabel()"
245
+ [clearSearchAriaLabel]="clearSearchAriaLabel()"
246
+ [clearFilterLabel]="clearFilterLabel()"
247
+ [previousPageAriaLabel]="previousPageAriaLabel()"
248
+ [nextPageAriaLabel]="nextPageAriaLabel()"
249
+ [pageSizeLabel]="pageSizeLabel()"
250
+ [pageSizeAriaLabel]="pageSizeAriaLabel()"
251
+ [paginationAriaLabel]="paginationAriaLabel()"
252
+ [exportCsvTitle]="exportCsvTitle()"
253
+ [exportJsonTitle]="exportJsonTitle()"
254
+ [exportXlsxTitle]="exportXlsxTitle()"
255
+ [clearSelectionLabel]="clearSelectionLabel()"
256
+ [selectionSummaryLabel]="selectionSummaryLabel()"
257
+ [selectAllAriaLabel]="selectAllAriaLabel()"
258
+ [selectRowAriaLabel]="selectRowAriaLabel()"
259
+ [expandRowAriaLabel]="expandRowAriaLabel()"
260
+ [filterPlaceholder]="filterPlaceholder()"
261
+ [filterAriaPrefix]="filterAriaPrefix()"
262
+ [allFilterOptionLabel]="allFilterOptionLabel()"
263
+ [ofLabel]="ofLabel()"
264
+ [resultLabelSingular]="resultLabelSingular()"
265
+ [resultLabelPlural]="resultLabelPlural()"
266
+ [loading]="loading()"
267
+ [skeletonRows]="skeletonRows()"
138
268
  [pagination]="pagination()"
269
+ [pageSize]="pageSize()"
139
270
  [pageSizeOptions]="pageSizeOptions()"
140
271
  [selectable]="selectable()"
272
+ [selectionActions]="selectionActions()"
141
273
  [stickyHeader]="stickyHeader()"
142
274
  [stripedRows]="stripedRows()"
143
275
  [bordered]="bordered()"
144
276
  [roundedBorders]="roundedBorders()"
145
277
  [sortable]="sortable()"
278
+ [multiSort]="multiSort()"
279
+ [expandable]="expandable()"
280
+ [expandMode]="expandMode()"
281
+ [exportable]="exportable()"
282
+ [exportFileName]="exportFileName()"
283
+ [exportFormats]="exportFormats()"
284
+ [exportColumns]="exportColumns()"
285
+ [exportScope]="exportScope()"
286
+ [virtualScroll]="virtualScroll()"
287
+ [virtualScrollVisibleItems]="virtualScrollVisibleItems()"
288
+ [resizableColumns]="resizableColumns()"
289
+ [reorderableColumns]="reorderableColumns()"
290
+ [columnChooser]="columnChooser()"
291
+ [columnChooserLabel]="columnChooserLabel()"
292
+ [groupBy]="groupBy()"
293
+ [groupHeaderLabel]="groupHeaderLabel()"
294
+ [inlineEdit]="inlineEdit()"
295
+ [inlineEditLabel]="inlineEditLabel()"
296
+ [saveInlineEditLabel]="saveInlineEditLabel()"
297
+ [cancelInlineEditLabel]="cancelInlineEditLabel()"
298
+ [initialLayout]="initialLayout()"
146
299
  [showRowNumbers]="showRowNumbers()"
147
300
  [density]="density()"
301
+ [rowClass]="rowClass()"
302
+ [footerRow]="footerRow()"
303
+ [emptyStateTemplate]="emptyStateTemplate()"
304
+ [serverSide]="serverSide()"
305
+ [totalItems]="totalItems()"
306
+ [pageParam]="pageParam()"
307
+ [searchParam]="searchParam()"
308
+ [sortParam]="sortParam()"
309
+ [sortDirParam]="sortDirParam()"
310
+ [multiSortParam]="multiSortParam()"
148
311
  [useUrlState]="useUrlState()"
149
312
  [emptyMessage]="emptyMessage()"
150
313
  (selectionChange)="onTableSelectionChange($event)"
151
314
  (rowClick)="onTableRowClick($event)"
152
- />
315
+ (rowDblClick)="onTableRowDblClick($event)"
316
+ (actionClick)="onTableActionClick($event)"
317
+ (selectionActionClick)="onTableSelectionActionClick($event)"
318
+ (serverStateChange)="serverStateChange.emit($event)"
319
+ (searchChange)="searchChange.emit($event)"
320
+ (columnResize)="columnResize.emit($event)"
321
+ (columnReorder)="columnReorder.emit($event)"
322
+ (layoutChange)="layoutChange.emit($event)"
323
+ (cellEditCommit)="onTableCellEditCommit($event)"
324
+ >
325
+ @if (expandTemplate(); as tpl) {
326
+ <ng-template neuTableExpand let-row>
327
+ <ng-container
328
+ [ngTemplateOutlet]="expandTemplateRef(tpl)"
329
+ [ngTemplateOutletContext]="expandTemplateContext(row)"
330
+ />
331
+ </ng-template>
332
+ }
333
+ </neu-table>
153
334
 
154
335
  <ng-template #treeCellTpl let-row>
155
336
  <div
@@ -186,35 +367,113 @@ class NeuTreeTableComponent {
186
367
  </div>
187
368
  </div>
188
369
  </ng-template>
189
- `, isInline: true, styles: [".neu-tree-table__cell{display:flex;align-items:flex-start;gap:.5rem;min-width:0}.neu-tree-table__cell--disabled{opacity:.56}.neu-tree-table__toggle{width:1.5rem;height:1.5rem;margin-top:.1rem;border:0;border-radius:999px;background:transparent;color:var(--neu-text-muted);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer;transition:background-color .16s ease,color .16s ease}.neu-tree-table__toggle svg{width:.9rem;height:.9rem;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}.neu-tree-table__toggle:hover{background:color-mix(in srgb,var(--neu-primary) 10%,transparent);color:var(--neu-primary)}.neu-tree-table__toggle--open svg{transform:rotate(90deg)}.neu-tree-table__toggle--placeholder{cursor:default}.neu-tree-table__content{min-width:0;display:flex;flex-direction:column;gap:.125rem}.neu-tree-table__main{display:flex;align-items:center;gap:.5rem;min-width:0}.neu-tree-table__label{color:var(--neu-text);font-weight:600}.neu-tree-table__description{color:var(--neu-text-muted);font-size:.8125rem;line-height:1.4}.neu-tree-table__badge{display:inline-flex;align-items:center;padding:0 .45rem;min-height:1.2rem;border-radius:999px;background:color-mix(in srgb,var(--neu-primary) 12%,transparent);color:var(--neu-primary-dark, var(--neu-primary));font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}\n"], dependencies: [{ kind: "component", type: NeuTableComponent, selector: "neu-table", inputs: ["columns", "data", "pageSize", "pagination", "loading", "title", "toolbarExtraRef", "emptyMessage", "skeletonRows", "searchable", "searchPlaceholder", "exactMatchable", "exactMatchLabel", "searchAriaLabel", "clearSearchAriaLabel", "clearFilterLabel", "previousPageAriaLabel", "nextPageAriaLabel", "pageSizeLabel", "pageSizeAriaLabel", "paginationAriaLabel", "exportCsvTitle", "exportJsonTitle", "clearSelectionLabel", "selectionSummaryLabel", "tableAriaLabel", "selectAllAriaLabel", "selectRowAriaLabel", "expandRowAriaLabel", "filterPlaceholder", "filterAriaPrefix", "allFilterOptionLabel", "ofLabel", "resultLabelSingular", "resultLabelPlural", "sortable", "selectable", "expandable", "expandMode", "exportable", "exportFileName", "pageSizeOptions", "stickyHeader", "virtualScroll", "virtualScrollVisibleItems", "resizableColumns", "rowKey", "bordered", "roundedBorders", "stripedRows", "density", "showRowNumbers", "rowClass", "footerRow", "emptyStateTemplate", "serverSide", "totalItems", "multiSort", "exportFormats", "exportColumns", "exportScope", "selectionActions", "pageParam", "searchParam", "sortParam", "sortDirParam", "multiSortParam", "useUrlState"], outputs: ["selectionChange", "rowClick", "rowDblClick", "actionClick", "selectionActionClick", "serverStateChange", "searchChange", "columnResize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
370
+ `, isInline: true, styles: [".neu-tree-table__cell{display:flex;align-items:flex-start;gap:.5rem;min-width:0}.neu-tree-table__cell--disabled{opacity:.56}.neu-tree-table__toggle{width:1.5rem;height:1.5rem;margin-top:.1rem;border:0;border-radius:999px;background:transparent;color:var(--neu-text-muted);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer;transition:background-color .16s ease,color .16s ease}.neu-tree-table__toggle svg{width:.9rem;height:.9rem;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}.neu-tree-table__toggle:hover{background:color-mix(in srgb,var(--neu-primary) 10%,transparent);color:var(--neu-primary)}.neu-tree-table__toggle--open svg{transform:rotate(90deg)}.neu-tree-table__toggle--placeholder{cursor:default}.neu-tree-table__content{min-width:0;display:flex;flex-direction:column;gap:.125rem}.neu-tree-table__main{display:flex;align-items:center;gap:.5rem;min-width:0}.neu-tree-table__label{color:var(--neu-text);font-weight:600}.neu-tree-table__description{color:var(--neu-text-muted);font-size:.8125rem;line-height:1.4}.neu-tree-table__badge{display:inline-flex;align-items:center;padding:0 .45rem;min-height:1.2rem;border-radius:999px;background:color-mix(in srgb,var(--neu-primary) 12%,transparent);color:var(--neu-primary-dark, var(--neu-primary));font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NeuTableComponent, selector: "neu-table", inputs: ["columns", "data", "pageSize", "pagination", "loading", "title", "toolbarExtraRef", "emptyMessage", "skeletonRows", "searchable", "searchPlaceholder", "exactMatchable", "exactMatchLabel", "searchAriaLabel", "clearSearchAriaLabel", "clearFilterLabel", "previousPageAriaLabel", "nextPageAriaLabel", "pageSizeLabel", "pageSizeAriaLabel", "paginationAriaLabel", "exportCsvTitle", "exportJsonTitle", "exportXlsxTitle", "clearSelectionLabel", "selectionSummaryLabel", "tableAriaLabel", "selectAllAriaLabel", "selectRowAriaLabel", "expandRowAriaLabel", "filterPlaceholder", "filterAriaPrefix", "allFilterOptionLabel", "ofLabel", "resultLabelSingular", "resultLabelPlural", "sortable", "selectable", "expandable", "expandMode", "exportable", "exportFileName", "pageSizeOptions", "stickyHeader", "virtualScroll", "virtualScrollVisibleItems", "resizableColumns", "reorderableColumns", "columnChooser", "columnChooserLabel", "groupBy", "groupHeaderLabel", "inlineEdit", "inlineEditLabel", "saveInlineEditLabel", "cancelInlineEditLabel", "initialLayout", "rowKey", "bordered", "roundedBorders", "stripedRows", "density", "showRowNumbers", "rowClass", "footerRow", "emptyStateTemplate", "serverSide", "totalItems", "multiSort", "exportFormats", "exportColumns", "exportScope", "selectionActions", "pageParam", "searchParam", "sortParam", "sortDirParam", "multiSortParam", "useUrlState"], outputs: ["selectionChange", "rowClick", "rowDblClick", "actionClick", "selectionActionClick", "serverStateChange", "searchChange", "columnResize", "columnReorder", "layoutChange", "cellEditCommit"] }, { kind: "directive", type: NeuTableExpandDirective, selector: "ng-template[neuTableExpand]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
190
371
  }
191
372
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuTreeTableComponent, decorators: [{
192
373
  type: Component,
193
- args: [{ selector: 'neu-tree-table', standalone: true, imports: [NeuTableComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: `
374
+ args: [{ selector: 'neu-tree-table', standalone: true, imports: [NgTemplateOutlet, NeuTableComponent, NeuTableExpandDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: `
194
375
  <neu-table
195
376
  class="neu-tree-table"
196
377
  [columns]="resolvedColumns()"
197
378
  [data]="flatRows()"
198
379
  [title]="title()"
380
+ [toolbarExtraRef]="toolbarExtraRef()"
199
381
  [rowKey]="rowKey()"
200
382
  [tableAriaLabel]="tableAriaLabel()"
201
383
  [searchable]="searchable()"
202
384
  [searchPlaceholder]="searchPlaceholder()"
385
+ [exactMatchable]="exactMatchable()"
386
+ [exactMatchLabel]="exactMatchLabel()"
387
+ [searchAriaLabel]="searchAriaLabel()"
388
+ [clearSearchAriaLabel]="clearSearchAriaLabel()"
389
+ [clearFilterLabel]="clearFilterLabel()"
390
+ [previousPageAriaLabel]="previousPageAriaLabel()"
391
+ [nextPageAriaLabel]="nextPageAriaLabel()"
392
+ [pageSizeLabel]="pageSizeLabel()"
393
+ [pageSizeAriaLabel]="pageSizeAriaLabel()"
394
+ [paginationAriaLabel]="paginationAriaLabel()"
395
+ [exportCsvTitle]="exportCsvTitle()"
396
+ [exportJsonTitle]="exportJsonTitle()"
397
+ [exportXlsxTitle]="exportXlsxTitle()"
398
+ [clearSelectionLabel]="clearSelectionLabel()"
399
+ [selectionSummaryLabel]="selectionSummaryLabel()"
400
+ [selectAllAriaLabel]="selectAllAriaLabel()"
401
+ [selectRowAriaLabel]="selectRowAriaLabel()"
402
+ [expandRowAriaLabel]="expandRowAriaLabel()"
403
+ [filterPlaceholder]="filterPlaceholder()"
404
+ [filterAriaPrefix]="filterAriaPrefix()"
405
+ [allFilterOptionLabel]="allFilterOptionLabel()"
406
+ [ofLabel]="ofLabel()"
407
+ [resultLabelSingular]="resultLabelSingular()"
408
+ [resultLabelPlural]="resultLabelPlural()"
409
+ [loading]="loading()"
410
+ [skeletonRows]="skeletonRows()"
203
411
  [pagination]="pagination()"
412
+ [pageSize]="pageSize()"
204
413
  [pageSizeOptions]="pageSizeOptions()"
205
414
  [selectable]="selectable()"
415
+ [selectionActions]="selectionActions()"
206
416
  [stickyHeader]="stickyHeader()"
207
417
  [stripedRows]="stripedRows()"
208
418
  [bordered]="bordered()"
209
419
  [roundedBorders]="roundedBorders()"
210
420
  [sortable]="sortable()"
421
+ [multiSort]="multiSort()"
422
+ [expandable]="expandable()"
423
+ [expandMode]="expandMode()"
424
+ [exportable]="exportable()"
425
+ [exportFileName]="exportFileName()"
426
+ [exportFormats]="exportFormats()"
427
+ [exportColumns]="exportColumns()"
428
+ [exportScope]="exportScope()"
429
+ [virtualScroll]="virtualScroll()"
430
+ [virtualScrollVisibleItems]="virtualScrollVisibleItems()"
431
+ [resizableColumns]="resizableColumns()"
432
+ [reorderableColumns]="reorderableColumns()"
433
+ [columnChooser]="columnChooser()"
434
+ [columnChooserLabel]="columnChooserLabel()"
435
+ [groupBy]="groupBy()"
436
+ [groupHeaderLabel]="groupHeaderLabel()"
437
+ [inlineEdit]="inlineEdit()"
438
+ [inlineEditLabel]="inlineEditLabel()"
439
+ [saveInlineEditLabel]="saveInlineEditLabel()"
440
+ [cancelInlineEditLabel]="cancelInlineEditLabel()"
441
+ [initialLayout]="initialLayout()"
211
442
  [showRowNumbers]="showRowNumbers()"
212
443
  [density]="density()"
444
+ [rowClass]="rowClass()"
445
+ [footerRow]="footerRow()"
446
+ [emptyStateTemplate]="emptyStateTemplate()"
447
+ [serverSide]="serverSide()"
448
+ [totalItems]="totalItems()"
449
+ [pageParam]="pageParam()"
450
+ [searchParam]="searchParam()"
451
+ [sortParam]="sortParam()"
452
+ [sortDirParam]="sortDirParam()"
453
+ [multiSortParam]="multiSortParam()"
213
454
  [useUrlState]="useUrlState()"
214
455
  [emptyMessage]="emptyMessage()"
215
456
  (selectionChange)="onTableSelectionChange($event)"
216
457
  (rowClick)="onTableRowClick($event)"
217
- />
458
+ (rowDblClick)="onTableRowDblClick($event)"
459
+ (actionClick)="onTableActionClick($event)"
460
+ (selectionActionClick)="onTableSelectionActionClick($event)"
461
+ (serverStateChange)="serverStateChange.emit($event)"
462
+ (searchChange)="searchChange.emit($event)"
463
+ (columnResize)="columnResize.emit($event)"
464
+ (columnReorder)="columnReorder.emit($event)"
465
+ (layoutChange)="layoutChange.emit($event)"
466
+ (cellEditCommit)="onTableCellEditCommit($event)"
467
+ >
468
+ @if (expandTemplate(); as tpl) {
469
+ <ng-template neuTableExpand let-row>
470
+ <ng-container
471
+ [ngTemplateOutlet]="expandTemplateRef(tpl)"
472
+ [ngTemplateOutletContext]="expandTemplateContext(row)"
473
+ />
474
+ </ng-template>
475
+ }
476
+ </neu-table>
218
477
 
219
478
  <ng-template #treeCellTpl let-row>
220
479
  <div
@@ -252,7 +511,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
252
511
  </div>
253
512
  </ng-template>
254
513
  `, styles: [".neu-tree-table__cell{display:flex;align-items:flex-start;gap:.5rem;min-width:0}.neu-tree-table__cell--disabled{opacity:.56}.neu-tree-table__toggle{width:1.5rem;height:1.5rem;margin-top:.1rem;border:0;border-radius:999px;background:transparent;color:var(--neu-text-muted);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer;transition:background-color .16s ease,color .16s ease}.neu-tree-table__toggle svg{width:.9rem;height:.9rem;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}.neu-tree-table__toggle:hover{background:color-mix(in srgb,var(--neu-primary) 10%,transparent);color:var(--neu-primary)}.neu-tree-table__toggle--open svg{transform:rotate(90deg)}.neu-tree-table__toggle--placeholder{cursor:default}.neu-tree-table__content{min-width:0;display:flex;flex-direction:column;gap:.125rem}.neu-tree-table__main{display:flex;align-items:center;gap:.5rem;min-width:0}.neu-tree-table__label{color:var(--neu-text);font-weight:600}.neu-tree-table__description{color:var(--neu-text-muted);font-size:.8125rem;line-height:1.4}.neu-tree-table__badge{display:inline-flex;align-items:center;padding:0 .45rem;min-height:1.2rem;border-radius:999px;background:color-mix(in srgb,var(--neu-primary) 12%,transparent);color:var(--neu-primary-dark, var(--neu-primary));font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}\n"] }]
255
- }], ctorParameters: () => [], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], treeColumnKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeColumnKey", required: false }] }], rowKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowKey", required: false }] }], tableAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableAriaLabel", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], expandLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandLabel", required: false }] }], collapseLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseLabel", required: false }] }], indentSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "indentSize", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], pagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], stickyHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyHeader", required: false }] }], stripedRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "stripedRows", required: false }] }], bordered: [{ type: i0.Input, args: [{ isSignal: true, alias: "bordered", required: false }] }], roundedBorders: [{ type: i0.Input, args: [{ isSignal: true, alias: "roundedBorders", required: false }] }], sortable: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortable", required: false }] }], showRowNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRowNumbers", required: false }] }], useUrlState: [{ type: i0.Input, args: [{ isSignal: true, alias: "useUrlState", required: false }] }], density: [{ type: i0.Input, args: [{ isSignal: true, alias: "density", required: false }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], nodeClick: [{ type: i0.Output, args: ["nodeClick"] }], expansionChange: [{ type: i0.Output, args: ["expansionChange"] }], treeCellTpl: [{ type: i0.ViewChild, args: ['treeCellTpl', { isSignal: true }] }] } });
514
+ }], ctorParameters: () => [], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], toolbarExtraRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolbarExtraRef", required: false }] }], treeColumnKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeColumnKey", required: false }] }], rowKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowKey", required: false }] }], tableAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableAriaLabel", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], exactMatchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "exactMatchLabel", required: false }] }], searchAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchAriaLabel", required: false }] }], clearSearchAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearSearchAriaLabel", required: false }] }], clearFilterLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearFilterLabel", required: false }] }], previousPageAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousPageAriaLabel", required: false }] }], nextPageAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextPageAriaLabel", required: false }] }], pageSizeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeLabel", required: false }] }], pageSizeAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeAriaLabel", required: false }] }], paginationAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginationAriaLabel", required: false }] }], exportCsvTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportCsvTitle", required: false }] }], exportJsonTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportJsonTitle", required: false }] }], exportXlsxTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportXlsxTitle", required: false }] }], clearSelectionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearSelectionLabel", required: false }] }], selectionSummaryLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionSummaryLabel", required: false }] }], selectAllAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectAllAriaLabel", required: false }] }], selectRowAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectRowAriaLabel", required: false }] }], expandRowAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandRowAriaLabel", required: false }] }], filterPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterPlaceholder", required: false }] }], filterAriaPrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterAriaPrefix", required: false }] }], allFilterOptionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "allFilterOptionLabel", required: false }] }], ofLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ofLabel", required: false }] }], resultLabelSingular: [{ type: i0.Input, args: [{ isSignal: true, alias: "resultLabelSingular", required: false }] }], resultLabelPlural: [{ type: i0.Input, args: [{ isSignal: true, alias: "resultLabelPlural", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], expandLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandLabel", required: false }] }], collapseLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseLabel", required: false }] }], indentSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "indentSize", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], skeletonRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "skeletonRows", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], exactMatchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "exactMatchable", required: false }] }], pagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], selectionActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionActions", required: false }] }], stickyHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyHeader", required: false }] }], stripedRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "stripedRows", required: false }] }], bordered: [{ type: i0.Input, args: [{ isSignal: true, alias: "bordered", required: false }] }], roundedBorders: [{ type: i0.Input, args: [{ isSignal: true, alias: "roundedBorders", required: false }] }], sortable: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortable", required: false }] }], multiSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSort", required: false }] }], expandable: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandable", required: false }] }], expandMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandMode", required: false }] }], exportable: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportable", required: false }] }], exportFileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportFileName", required: false }] }], exportFormats: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportFormats", required: false }] }], exportColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportColumns", required: false }] }], exportScope: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportScope", required: false }] }], virtualScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScroll", required: false }] }], virtualScrollVisibleItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScrollVisibleItems", required: false }] }], resizableColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizableColumns", required: false }] }], reorderableColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderableColumns", required: false }] }], columnChooser: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnChooser", required: false }] }], columnChooserLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnChooserLabel", required: false }] }], groupBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupBy", required: false }] }], groupHeaderLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupHeaderLabel", required: false }] }], inlineEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "inlineEdit", required: false }] }], inlineEditLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "inlineEditLabel", required: false }] }], saveInlineEditLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "saveInlineEditLabel", required: false }] }], cancelInlineEditLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelInlineEditLabel", required: false }] }], initialLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialLayout", required: false }] }], showRowNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRowNumbers", required: false }] }], useUrlState: [{ type: i0.Input, args: [{ isSignal: true, alias: "useUrlState", required: false }] }], density: [{ type: i0.Input, args: [{ isSignal: true, alias: "density", required: false }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], footerRow: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerRow", required: false }] }], emptyStateTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateTemplate", required: false }] }], serverSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "serverSide", required: false }] }], totalItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalItems", required: false }] }], pageParam: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageParam", required: false }] }], searchParam: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchParam", required: false }] }], sortParam: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortParam", required: false }] }], sortDirParam: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirParam", required: false }] }], multiSortParam: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSortParam", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], nodeClick: [{ type: i0.Output, args: ["nodeClick"] }], nodeDblClick: [{ type: i0.Output, args: ["nodeDblClick"] }], expansionChange: [{ type: i0.Output, args: ["expansionChange"] }], actionClick: [{ type: i0.Output, args: ["actionClick"] }], selectionActionClick: [{ type: i0.Output, args: ["selectionActionClick"] }], serverStateChange: [{ type: i0.Output, args: ["serverStateChange"] }], searchChange: [{ type: i0.Output, args: ["searchChange"] }], columnResize: [{ type: i0.Output, args: ["columnResize"] }], columnReorder: [{ type: i0.Output, args: ["columnReorder"] }], layoutChange: [{ type: i0.Output, args: ["layoutChange"] }], cellEditCommit: [{ type: i0.Output, args: ["cellEditCommit"] }], expandTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => NeuTableExpandDirective), { isSignal: true }] }], treeCellTpl: [{ type: i0.ViewChild, args: ['treeCellTpl', { isSignal: true }] }] } });
256
515
 
257
516
  /**
258
517
  * Generated bundle index. Do not edit.