@theseam/ui-common 1.0.0-beta.6 → 1.0.0-beta.7

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 (149) hide show
  1. package/breadcrumbs/index.d.ts +1 -2
  2. package/buttons/index.d.ts +20 -13
  3. package/datatable/index.d.ts +8 -8
  4. package/dynamic/index.d.ts +5 -5
  5. package/fesm2022/theseam-ui-common-asset-reader.mjs +28 -29
  6. package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
  7. package/fesm2022/theseam-ui-common-breadcrumbs.mjs +25 -31
  8. package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  9. package/fesm2022/theseam-ui-common-buttons.mjs +108 -66
  10. package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
  11. package/fesm2022/theseam-ui-common-card.mjs +21 -21
  12. package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
  13. package/fesm2022/theseam-ui-common-carousel.mjs +28 -30
  14. package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
  15. package/fesm2022/theseam-ui-common-checkbox.mjs +27 -27
  16. package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
  17. package/fesm2022/theseam-ui-common-confirm-dialog.mjs +23 -27
  18. package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  19. package/fesm2022/theseam-ui-common-core.mjs +31 -11
  20. package/fesm2022/theseam-ui-common-core.mjs.map +1 -1
  21. package/fesm2022/theseam-ui-common-data-exporter.mjs +18 -19
  22. package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
  23. package/fesm2022/theseam-ui-common-data-filters.mjs +80 -64
  24. package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
  25. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +51 -49
  26. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
  27. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +145 -112
  28. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  29. package/fesm2022/theseam-ui-common-datatable.mjs +581 -385
  30. package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
  31. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +12 -14
  32. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  33. package/fesm2022/theseam-ui-common-dynamic.mjs +60 -48
  34. package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
  35. package/fesm2022/theseam-ui-common-footer-bar.mjs +9 -15
  36. package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
  37. package/fesm2022/theseam-ui-common-form-field-error.mjs +60 -43
  38. package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
  39. package/fesm2022/theseam-ui-common-form-field.mjs +120 -74
  40. package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
  41. package/fesm2022/theseam-ui-common-framework.mjs +669 -543
  42. package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
  43. package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
  44. package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
  45. package/fesm2022/theseam-ui-common-graphql.mjs +252 -195
  46. package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
  47. package/fesm2022/theseam-ui-common-icon.mjs +125 -89
  48. package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
  49. package/fesm2022/theseam-ui-common-layout.mjs +18 -26
  50. package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
  51. package/fesm2022/theseam-ui-common-loading.mjs +19 -28
  52. package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
  53. package/fesm2022/theseam-ui-common-menu.mjs +124 -95
  54. package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
  55. package/fesm2022/theseam-ui-common-modal.mjs +177 -129
  56. package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
  57. package/fesm2022/theseam-ui-common-models.mjs +3 -3
  58. package/fesm2022/theseam-ui-common-models.mjs.map +1 -1
  59. package/fesm2022/theseam-ui-common-navigation-reload.mjs +13 -11
  60. package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
  61. package/fesm2022/theseam-ui-common-popover.mjs +81 -88
  62. package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
  63. package/fesm2022/theseam-ui-common-progress.mjs +15 -19
  64. package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
  65. package/fesm2022/theseam-ui-common-rich-text.mjs +65 -52
  66. package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
  67. package/fesm2022/theseam-ui-common-scrollbar.mjs +12 -9
  68. package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
  69. package/fesm2022/theseam-ui-common-services.mjs +41 -26
  70. package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
  71. package/fesm2022/theseam-ui-common-shared.mjs +123 -67
  72. package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
  73. package/fesm2022/theseam-ui-common-storage.mjs +9 -6
  74. package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
  75. package/fesm2022/theseam-ui-common-story-helpers.mjs +148 -86
  76. package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
  77. package/fesm2022/theseam-ui-common-tabbed.mjs +43 -39
  78. package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
  79. package/fesm2022/theseam-ui-common-table-cell-type.mjs +34 -38
  80. package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
  81. package/fesm2022/theseam-ui-common-table-cell-types.mjs +182 -144
  82. package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
  83. package/fesm2022/theseam-ui-common-table.mjs +50 -39
  84. package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
  85. package/fesm2022/theseam-ui-common-tel-input.mjs +98 -63
  86. package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
  87. package/fesm2022/theseam-ui-common-testing.mjs +13 -10
  88. package/fesm2022/theseam-ui-common-testing.mjs.map +1 -1
  89. package/fesm2022/theseam-ui-common-tiled-select.mjs +54 -50
  90. package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
  91. package/fesm2022/theseam-ui-common-toggle-edit.mjs +41 -37
  92. package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
  93. package/fesm2022/theseam-ui-common-toggle-group.mjs +30 -31
  94. package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
  95. package/fesm2022/theseam-ui-common-tooltip.mjs +225 -66
  96. package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
  97. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +14 -12
  98. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  99. package/fesm2022/theseam-ui-common-utils.mjs +113 -77
  100. package/fesm2022/theseam-ui-common-utils.mjs.map +1 -1
  101. package/fesm2022/theseam-ui-common-validators.mjs +10 -9
  102. package/fesm2022/theseam-ui-common-validators.mjs.map +1 -1
  103. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +39 -17
  104. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  105. package/fesm2022/theseam-ui-common-viewers.mjs +79 -56
  106. package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
  107. package/fesm2022/theseam-ui-common-widget.mjs +288 -314
  108. package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
  109. package/framework/base-layout/base-layout.component.scss +9 -4
  110. package/framework/base-layout/styles/_variables.scss +4 -9
  111. package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
  112. package/framework/index.d.ts +6 -6
  113. package/framework/nav/nav-item/nav-item.component.scss +7 -6
  114. package/framework/nav/styles/_themes/light/_variables.scss +21 -5
  115. package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
  116. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
  117. package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
  118. package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
  119. package/graphql/index.d.ts +5 -5
  120. package/modal/README.md +5 -5
  121. package/modal/index.d.ts +1 -1
  122. package/models/index.d.ts +1 -1
  123. package/package.json +59 -59
  124. package/popover/index.d.ts +0 -2
  125. package/progress/progress-circle/styles/_variables.scss +15 -3
  126. package/story-helpers/index.d.ts +11 -1
  127. package/styles/bootstrap/_bootstrap.scss +34 -34
  128. package/styles/bootstrap/_bs-styles.scss +4 -8
  129. package/styles/bootstrap/_bs-utilities.scss +4 -4
  130. package/styles/bootstrap/_bs-variables.scss +65 -70
  131. package/styles/common/_forms.scss +9 -10
  132. package/styles/common/_global.scss +0 -1
  133. package/styles/common/_hacks.scss +1 -1
  134. package/styles/common/_table.scss +0 -1
  135. package/styles/common/_text.scss +3 -1
  136. package/styles/theme.scss +1 -1
  137. package/styles/vendor/ng-select/_ng-select-bs4.scss +292 -294
  138. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +63 -32
  139. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +37 -10
  140. package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +3 -1
  141. package/styles/vendor/quill/_quill.scss +15 -9
  142. package/tel-input/README.md +27 -27
  143. package/utils/index.d.ts +3 -3
  144. package/viewers/index.d.ts +9 -2
  145. package/widget/_widget-theme.scss +1 -1
  146. package/widget/styles/_variables.scss +2 -2
  147. package/widget/widget/widget.component.scss +0 -2
  148. package/widget/widget-content-components/widget-tile/widget-tile.component.scss +1 -3
  149. package/widget/widget-footer/widget-footer.component.scss +0 -1
@@ -14,10 +14,10 @@ import { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type';
14
14
 
15
15
  class TheSeamTableCellTplDirective {
16
16
  template = inject((TemplateRef));
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableCellTplDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: TheSeamTableCellTplDirective, isStandalone: true, selector: "[seamTableCellTpl]", ngImport: i0 });
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableCellTplDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: TheSeamTableCellTplDirective, isStandalone: true, selector: "[seamTableCellTpl]", ngImport: i0 });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableCellTplDirective, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableCellTplDirective, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[seamTableCellTpl]',
@@ -27,10 +27,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
27
27
 
28
28
  class TheSeamTableColumnHeaderTplDirective {
29
29
  template = inject((TemplateRef));
30
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableColumnHeaderTplDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
31
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: TheSeamTableColumnHeaderTplDirective, isStandalone: true, selector: "[seamTableColumnHeaderTpl]", ngImport: i0 });
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableColumnHeaderTplDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
31
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: TheSeamTableColumnHeaderTplDirective, isStandalone: true, selector: "[seamTableColumnHeaderTpl]", ngImport: i0 });
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableColumnHeaderTplDirective, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableColumnHeaderTplDirective, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  selector: '[seamTableColumnHeaderTpl]',
@@ -79,10 +79,10 @@ class TheSeamTableColumnComponent {
79
79
  this._columnChange.next();
80
80
  }
81
81
  }
82
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
83
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: TheSeamTableColumnComponent, isStandalone: true, selector: "seam-table-column", inputs: { name: "name", prop: "prop", flexGrow: "flexGrow", headerClass: "headerClass", cellClass: "cellClass", _cellTemplateInput: ["cellTemplate", "_cellTemplateInput"], _headerTemplateInput: ["headerTemplate", "_headerTemplateInput"] }, queries: [{ propertyName: "cellTplDirective", first: true, predicate: TheSeamTableCellTplDirective, descendants: true, static: true }, { propertyName: "_cellTemplateQuery", first: true, predicate: TheSeamTableCellTplDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_headerTemplateQuery", first: true, predicate: TheSeamTableColumnHeaderTplDirective, descendants: true, read: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
82
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
83
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: TheSeamTableColumnComponent, isStandalone: true, selector: "seam-table-column", inputs: { name: "name", prop: "prop", flexGrow: "flexGrow", headerClass: "headerClass", cellClass: "cellClass", _cellTemplateInput: ["cellTemplate", "_cellTemplateInput"], _headerTemplateInput: ["headerTemplate", "_headerTemplateInput"] }, queries: [{ propertyName: "cellTplDirective", first: true, predicate: TheSeamTableCellTplDirective, descendants: true, static: true }, { propertyName: "_cellTemplateQuery", first: true, predicate: TheSeamTableCellTplDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_headerTemplateQuery", first: true, predicate: TheSeamTableColumnHeaderTplDirective, descendants: true, read: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
84
84
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableColumnComponent, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableColumnComponent, decorators: [{
86
86
  type: Component,
87
87
  args: [{
88
88
  selector: 'seam-table-column',
@@ -107,25 +107,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
107
107
  args: ['cellTemplate']
108
108
  }], _cellTemplateQuery: [{
109
109
  type: ContentChild,
110
- args: [TheSeamTableCellTplDirective, { read: TemplateRef, static: true }]
110
+ args: [TheSeamTableCellTplDirective, {
111
+ read: TemplateRef,
112
+ static: true,
113
+ }]
111
114
  }], _headerTemplateInput: [{
112
115
  type: Input,
113
116
  args: ['headerTemplate']
114
117
  }], _headerTemplateQuery: [{
115
118
  type: ContentChild,
116
- args: [TheSeamTableColumnHeaderTplDirective, { read: TemplateRef, static: true }]
119
+ args: [TheSeamTableColumnHeaderTplDirective, {
120
+ read: TemplateRef,
121
+ static: true,
122
+ }]
117
123
  }] } });
118
124
 
119
125
  function mergeColumnsAndTplColumns(columns, tplColumns) {
120
126
  const newCols = [];
121
127
  for (const col of columns) {
122
128
  const newCol = {
123
- ...((typeof col === 'string') ? {
124
- prop: col,
125
- name: col,
126
- } : col),
129
+ ...(typeof col === 'string'
130
+ ? {
131
+ prop: col,
132
+ name: col,
133
+ }
134
+ : col),
127
135
  };
128
- const tplCol = tplColumns.find(c => c.prop === newCol.prop);
136
+ const tplCol = tplColumns.find((c) => c.prop === newCol.prop);
129
137
  // newCol.cellTypeConfig = tplCol?.cellTypeConfig
130
138
  if (tplCol) {
131
139
  if (tplCol.name !== undefined && tplCol.name !== null) {
@@ -134,7 +142,8 @@ function mergeColumnsAndTplColumns(columns, tplColumns) {
134
142
  if (tplCol.cellTemplate !== undefined && tplCol.cellTemplate !== null) {
135
143
  newCol.cellTemplate = tplCol.cellTemplate ?? undefined;
136
144
  }
137
- if (tplCol.headerTemplate !== undefined && tplCol.headerTemplate !== null) {
145
+ if (tplCol.headerTemplate !== undefined &&
146
+ tplCol.headerTemplate !== null) {
138
147
  newCol.headerTemplate = tplCol.headerTemplate ?? undefined;
139
148
  }
140
149
  if (tplCol.cellClass !== undefined && tplCol.cellClass !== null) {
@@ -152,7 +161,9 @@ class TableComponent {
152
161
  _sanitizer;
153
162
  static ngAcceptInputType_hasHeader;
154
163
  _ngUnsubscribe = new Subject();
155
- get columns() { return this._columns; }
164
+ get columns() {
165
+ return this._columns;
166
+ }
156
167
  set columns(value) {
157
168
  this._columns = value;
158
169
  // this._setColumns(value || [])
@@ -161,20 +172,22 @@ class TableComponent {
161
172
  this._pendingColumns = cols;
162
173
  }
163
174
  _columns;
164
- get rows() { return this._rows; }
175
+ get rows() {
176
+ return this._rows;
177
+ }
165
178
  set rows(value) {
166
179
  this._rows = value ? coerceArray(value) : [];
167
180
  if (this._rows.length < 1) {
168
- this._displayedRows = [
169
- { _emptyDisplay: true }
170
- ];
181
+ this._displayedRows = [{ _emptyDisplay: true }];
171
182
  }
172
183
  else {
173
184
  this._displayedRows = this._rows;
174
185
  }
175
186
  }
176
187
  _rows = [];
177
- get displayedRows() { return this._displayedRows; }
188
+ get displayedRows() {
189
+ return this._displayedRows;
190
+ }
178
191
  _displayedRows = [];
179
192
  trackBy;
180
193
  size;
@@ -194,7 +207,7 @@ class TableComponent {
194
207
  this._pendingColumns = cols;
195
208
  if (this._columnComponentChange)
196
209
  this._columnComponentChange.unsubscribe();
197
- const obsArr = value?.toArray().map(c => c.columnChange$);
210
+ const obsArr = value?.toArray().map((c) => c.columnChange$);
198
211
  if (obsArr && obsArr.length > 0) {
199
212
  this._columnComponentChange = merge(obsArr).subscribe(() => {
200
213
  const _cols = mergeColumnsAndTplColumns(this._columns || [], value?.toArray() ?? []);
@@ -234,7 +247,7 @@ class TableComponent {
234
247
  if (typeof col === 'string') {
235
248
  const newCol = {
236
249
  prop: col,
237
- name: col
250
+ name: col,
238
251
  };
239
252
  newCols.push(newCol);
240
253
  }
@@ -246,7 +259,7 @@ class TableComponent {
246
259
  const newCol = {
247
260
  ...col,
248
261
  prop: col.prop,
249
- name
262
+ name,
250
263
  };
251
264
  newCols.push(newCol);
252
265
  }
@@ -258,7 +271,7 @@ class TableComponent {
258
271
  }
259
272
  }
260
273
  this.displayedRecords = newCols;
261
- this.displayedColumns = newCols.map(c => c.prop);
274
+ this.displayedColumns = newCols.map((c) => c.prop);
262
275
  this.columnsChange.emit({ previous: prev, current: newCols });
263
276
  }
264
277
  triggerActionRefreshRequest() {
@@ -267,15 +280,15 @@ class TableComponent {
267
280
  _trackByRecords(r) {
268
281
  return r.prop + r.name;
269
282
  }
270
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TableComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
271
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: TableComponent, isStandalone: false, selector: "seam-table", inputs: { columns: "columns", rows: "rows", trackBy: "trackBy", size: "size", hasHeader: "hasHeader" }, outputs: { columnsChange: "columnsChange", actionRefreshRequest: "actionRefreshRequest" }, queries: [{ propertyName: "columnComponents", predicate: TheSeamTableColumnComponent }], usesOnChanges: true, ngImport: i0, template: "<table cdk-table [dataSource]=\"displayedRows\" class=\"table table-header-divider-indented mb-0\"\n [class.table-striped]=\"rows && rows.length > 0\"\n [class.table-sm]=\"size === 'sm'\"\n [class.table-no-header]=\"!hasHeader\">\n <ng-container *ngFor=\"let r of displayedRecords; first as isFirst; trackBy:_trackByRecords\">\n <ng-container [cdkColumnDef]=\"r.prop\">\n <th cdk-header-cell *cdkHeaderCellDef [class]=\"r.headerClass\">\n <ng-container *ngIf=\"hasHeader\">\n <ng-container *ngIf=\"$any(r)?.headerTemplate; else noHeaderTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: r.name, prop: r.prop, column: r }\">\n </ng-template>\n </ng-container>\n <ng-template #noHeaderTpl>\n {{ r.name }}\n </ng-template>\n </ng-container>\n </th>\n <td cdk-cell *cdkCellDef=\"let element; index as rowIndex\"\n [attr.colspan]=\"element?._emptyDisplay && isFirst ? 2 : undefined\"\n [class]=\"element?._emptyDisplay ? undefined : r.cellClass\"\n [class.border-top-0]=\"element?._emptyDisplay && isFirst\"\n [class.d-none]=\"element?._emptyDisplay && !isFirst\"\n [style]=\"$any(r)?.cellTypeConfig?.styles\">\n\n <span [style]=\"$any(r)?.cellTypeConfig?.styles\"></span>\n\n <ng-container *ngIf=\"element?._emptyDisplay && isFirst; else hasDataTpl\">\n No records found\n </ng-container>\n\n <ng-template #hasDataTpl>\n <seam-table-cell-type-selector *ngIf=\"$any(r)?.cellType; else noCellType\"\n [type]=\"$any(r)?.cellType\"\n [value]=\"element[r.prop]\"\n [rowIndex]=\"rowIndex\"\n [row]=\"element\"\n [colData]=\"r\">\n </seam-table-cell-type-selector>\n <ng-template #noCellType>\n <ng-container *ngIf=\"$any(r)?.cellTemplate; else noCellTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element[r.prop], row: element, rowIndex: rowIndex, column: r }\">\n </ng-template>\n </ng-container>\n </ng-template>\n <ng-template #noCellTpl>\n <div class=\"td-text-truncate\" [title]=\"element[r.prop]\">\n {{ element[r.prop] }}\n </div>\n </ng-template>\n </ng-template>\n\n </td>\n </ng-container>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColumns\"></tr>\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n", styles: [":host{display:block}:host .table-no-header ::ng-deep thead{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i3.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i3.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i3.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i3.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: i3.CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "component", type: i3.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: i3.CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "component", type: i3.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i3.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "component", type: i4.TableCellTypeSelectorComponent, selector: "seam-table-cell-type-selector", inputs: ["type", "value", "rowIndex", "row", "colData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
283
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TableComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
284
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: TableComponent, isStandalone: false, selector: "seam-table", inputs: { columns: "columns", rows: "rows", trackBy: "trackBy", size: "size", hasHeader: "hasHeader" }, outputs: { columnsChange: "columnsChange", actionRefreshRequest: "actionRefreshRequest" }, queries: [{ propertyName: "columnComponents", predicate: TheSeamTableColumnComponent }], usesOnChanges: true, ngImport: i0, template: "<table\n cdk-table\n [dataSource]=\"displayedRows\"\n class=\"table table-header-divider-indented mb-0\"\n [class.table-striped]=\"rows && rows.length > 0\"\n [class.table-sm]=\"size === 'sm'\"\n [class.table-no-header]=\"!hasHeader\"\n>\n <ng-container\n *ngFor=\"\n let r of displayedRecords;\n first as isFirst;\n trackBy: _trackByRecords\n \"\n >\n <ng-container [cdkColumnDef]=\"r.prop\">\n <th cdk-header-cell *cdkHeaderCellDef [class]=\"r.headerClass\">\n <ng-container *ngIf=\"hasHeader\">\n <ng-container *ngIf=\"$any(r)?.headerTemplate; else noHeaderTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.headerTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: r.name,\n prop: r.prop,\n column: r,\n }\"\n >\n </ng-template>\n </ng-container>\n <ng-template #noHeaderTpl>\n {{ r.name }}\n </ng-template>\n </ng-container>\n </th>\n <td\n cdk-cell\n *cdkCellDef=\"let element; index as rowIndex\"\n [attr.colspan]=\"element?._emptyDisplay && isFirst ? 2 : undefined\"\n [class]=\"element?._emptyDisplay ? undefined : r.cellClass\"\n [class.border-top-0]=\"element?._emptyDisplay && isFirst\"\n [class.d-none]=\"element?._emptyDisplay && !isFirst\"\n [style]=\"$any(r)?.cellTypeConfig?.styles\"\n >\n <span [style]=\"$any(r)?.cellTypeConfig?.styles\"></span>\n\n <ng-container\n *ngIf=\"element?._emptyDisplay && isFirst; else hasDataTpl\"\n >\n No records found\n </ng-container>\n\n <ng-template #hasDataTpl>\n <seam-table-cell-type-selector\n *ngIf=\"$any(r)?.cellType; else noCellType\"\n [type]=\"$any(r)?.cellType\"\n [value]=\"element[r.prop]\"\n [rowIndex]=\"rowIndex\"\n [row]=\"element\"\n [colData]=\"r\"\n >\n </seam-table-cell-type-selector>\n <ng-template #noCellType>\n <ng-container *ngIf=\"$any(r)?.cellTemplate; else noCellTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.cellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: element[r.prop],\n row: element,\n rowIndex: rowIndex,\n column: r,\n }\"\n >\n </ng-template>\n </ng-container>\n </ng-template>\n <ng-template #noCellTpl>\n <div class=\"td-text-truncate\" [title]=\"element[r.prop]\">\n {{ element[r.prop] }}\n </div>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColumns\"></tr>\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n", styles: [":host{display:block}:host .table-no-header ::ng-deep thead{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i3.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i3.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i3.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i3.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: i3.CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "component", type: i3.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: i3.CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "component", type: i3.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i3.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "component", type: i4.TableCellTypeSelectorComponent, selector: "seam-table-cell-type-selector", inputs: ["type", "value", "rowIndex", "row", "colData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
272
285
  }
273
286
  __decorate([
274
287
  InputBoolean()
275
288
  ], TableComponent.prototype, "hasHeader", void 0);
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TableComponent, decorators: [{
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TableComponent, decorators: [{
277
290
  type: Component,
278
- args: [{ selector: 'seam-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<table cdk-table [dataSource]=\"displayedRows\" class=\"table table-header-divider-indented mb-0\"\n [class.table-striped]=\"rows && rows.length > 0\"\n [class.table-sm]=\"size === 'sm'\"\n [class.table-no-header]=\"!hasHeader\">\n <ng-container *ngFor=\"let r of displayedRecords; first as isFirst; trackBy:_trackByRecords\">\n <ng-container [cdkColumnDef]=\"r.prop\">\n <th cdk-header-cell *cdkHeaderCellDef [class]=\"r.headerClass\">\n <ng-container *ngIf=\"hasHeader\">\n <ng-container *ngIf=\"$any(r)?.headerTemplate; else noHeaderTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: r.name, prop: r.prop, column: r }\">\n </ng-template>\n </ng-container>\n <ng-template #noHeaderTpl>\n {{ r.name }}\n </ng-template>\n </ng-container>\n </th>\n <td cdk-cell *cdkCellDef=\"let element; index as rowIndex\"\n [attr.colspan]=\"element?._emptyDisplay && isFirst ? 2 : undefined\"\n [class]=\"element?._emptyDisplay ? undefined : r.cellClass\"\n [class.border-top-0]=\"element?._emptyDisplay && isFirst\"\n [class.d-none]=\"element?._emptyDisplay && !isFirst\"\n [style]=\"$any(r)?.cellTypeConfig?.styles\">\n\n <span [style]=\"$any(r)?.cellTypeConfig?.styles\"></span>\n\n <ng-container *ngIf=\"element?._emptyDisplay && isFirst; else hasDataTpl\">\n No records found\n </ng-container>\n\n <ng-template #hasDataTpl>\n <seam-table-cell-type-selector *ngIf=\"$any(r)?.cellType; else noCellType\"\n [type]=\"$any(r)?.cellType\"\n [value]=\"element[r.prop]\"\n [rowIndex]=\"rowIndex\"\n [row]=\"element\"\n [colData]=\"r\">\n </seam-table-cell-type-selector>\n <ng-template #noCellType>\n <ng-container *ngIf=\"$any(r)?.cellTemplate; else noCellTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element[r.prop], row: element, rowIndex: rowIndex, column: r }\">\n </ng-template>\n </ng-container>\n </ng-template>\n <ng-template #noCellTpl>\n <div class=\"td-text-truncate\" [title]=\"element[r.prop]\">\n {{ element[r.prop] }}\n </div>\n </ng-template>\n </ng-template>\n\n </td>\n </ng-container>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColumns\"></tr>\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n", styles: [":host{display:block}:host .table-no-header ::ng-deep thead{display:none}\n"] }]
291
+ args: [{ selector: 'seam-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<table\n cdk-table\n [dataSource]=\"displayedRows\"\n class=\"table table-header-divider-indented mb-0\"\n [class.table-striped]=\"rows && rows.length > 0\"\n [class.table-sm]=\"size === 'sm'\"\n [class.table-no-header]=\"!hasHeader\"\n>\n <ng-container\n *ngFor=\"\n let r of displayedRecords;\n first as isFirst;\n trackBy: _trackByRecords\n \"\n >\n <ng-container [cdkColumnDef]=\"r.prop\">\n <th cdk-header-cell *cdkHeaderCellDef [class]=\"r.headerClass\">\n <ng-container *ngIf=\"hasHeader\">\n <ng-container *ngIf=\"$any(r)?.headerTemplate; else noHeaderTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.headerTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: r.name,\n prop: r.prop,\n column: r,\n }\"\n >\n </ng-template>\n </ng-container>\n <ng-template #noHeaderTpl>\n {{ r.name }}\n </ng-template>\n </ng-container>\n </th>\n <td\n cdk-cell\n *cdkCellDef=\"let element; index as rowIndex\"\n [attr.colspan]=\"element?._emptyDisplay && isFirst ? 2 : undefined\"\n [class]=\"element?._emptyDisplay ? undefined : r.cellClass\"\n [class.border-top-0]=\"element?._emptyDisplay && isFirst\"\n [class.d-none]=\"element?._emptyDisplay && !isFirst\"\n [style]=\"$any(r)?.cellTypeConfig?.styles\"\n >\n <span [style]=\"$any(r)?.cellTypeConfig?.styles\"></span>\n\n <ng-container\n *ngIf=\"element?._emptyDisplay && isFirst; else hasDataTpl\"\n >\n No records found\n </ng-container>\n\n <ng-template #hasDataTpl>\n <seam-table-cell-type-selector\n *ngIf=\"$any(r)?.cellType; else noCellType\"\n [type]=\"$any(r)?.cellType\"\n [value]=\"element[r.prop]\"\n [rowIndex]=\"rowIndex\"\n [row]=\"element\"\n [colData]=\"r\"\n >\n </seam-table-cell-type-selector>\n <ng-template #noCellType>\n <ng-container *ngIf=\"$any(r)?.cellTemplate; else noCellTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.cellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: element[r.prop],\n row: element,\n rowIndex: rowIndex,\n column: r,\n }\"\n >\n </ng-template>\n </ng-container>\n </ng-template>\n <ng-template #noCellTpl>\n <div class=\"td-text-truncate\" [title]=\"element[r.prop]\">\n {{ element[r.prop] }}\n </div>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColumns\"></tr>\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n", styles: [":host{display:block}:host .table-no-header ::ng-deep thead{display:none}\n"] }]
279
292
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { columns: [{
280
293
  type: Input
281
294
  }], rows: [{
@@ -296,8 +309,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
296
309
  }] } });
297
310
 
298
311
  class TheSeamTableModule {
299
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
300
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableModule, declarations: [TableComponent], imports: [CommonModule,
312
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
313
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableModule, declarations: [TableComponent], imports: [CommonModule,
301
314
  CdkTableModule,
302
315
  TheSeamTableCellTypeModule,
303
316
  TheSeamTableColumnComponent,
@@ -306,16 +319,14 @@ class TheSeamTableModule {
306
319
  TheSeamTableColumnComponent,
307
320
  TheSeamTableCellTplDirective,
308
321
  TheSeamTableColumnHeaderTplDirective] });
309
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableModule, imports: [CommonModule,
322
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableModule, imports: [CommonModule,
310
323
  CdkTableModule,
311
324
  TheSeamTableCellTypeModule] });
312
325
  }
313
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamTableModule, decorators: [{
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamTableModule, decorators: [{
314
327
  type: NgModule,
315
328
  args: [{
316
- declarations: [
317
- TableComponent
318
- ],
329
+ declarations: [TableComponent],
319
330
  imports: [
320
331
  CommonModule,
321
332
  CdkTableModule,
@@ -329,7 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
329
340
  TheSeamTableColumnComponent,
330
341
  TheSeamTableCellTplDirective,
331
342
  TheSeamTableColumnHeaderTplDirective,
332
- ]
343
+ ],
333
344
  }]
334
345
  }] });
335
346
 
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-table.mjs","sources":["../../../projects/ui-common/table/table-cell-tpl.directive.ts","../../../projects/ui-common/table/table-column-header-tpl.directive.ts","../../../projects/ui-common/table/table-column.component.ts","../../../projects/ui-common/table/table/table.component.ts","../../../projects/ui-common/table/table/table.component.html","../../../projects/ui-common/table/table.module.ts","../../../projects/ui-common/table/theseam-ui-common-table.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTableCellTpl]',\n standalone: true,\n})\nexport class TheSeamTableCellTplDirective {\n template = inject(TemplateRef<any>)\n}\n","import { Directive, inject, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTableColumnHeaderTpl]',\n standalone: true,\n})\nexport class TheSeamTableColumnHeaderTplDirective {\n template = inject(TemplateRef<any>)\n}\n","import { Component, ContentChild, Input, OnChanges, SimpleChanges, TemplateRef } from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { ColumnChangesService, TableColumnProp } from '@marklb/ngx-datatable'\n\nimport { TheSeamTableCellTplDirective } from './table-cell-tpl.directive'\nimport { TheSeamTableColumnHeaderTplDirective } from './table-column-header-tpl.directive'\n\n// TODO: The column component should implement `ITableColumn`, since\n// providing some properties by input and some by template could be confusing.\n\n@Component({\n selector: 'seam-table-column',\n standalone: true,\n template: ``,\n})\nexport class TheSeamTableColumnComponent implements OnChanges {\n\n @Input() name?: string | null\n @Input() prop?: TableColumnProp | null\n\n @Input() flexGrow?: number | null\n // @Input() minWidth?: number | null\n // @Input() maxWidth?: number | null\n // @Input() width?: number | null\n\n // @Input() headerClass?: string | ((data: any) => string|any) | null\n @Input() headerClass?: string | null\n // @Input() cellClass?: string | ((data: any) => string|any) | null\n @Input() cellClass?: string | null\n\n private _isFirstChange = true\n\n @ContentChild(TheSeamTableCellTplDirective, { static: true }) cellTplDirective?: TheSeamTableCellTplDirective\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('cellTemplate')\n _cellTemplateInput?: TemplateRef<any> | null\n\n @ContentChild(TheSeamTableCellTplDirective, { read: TemplateRef, static: true })\n _cellTemplateQuery?: TemplateRef<any>\n\n get cellTemplate(): TemplateRef<any> | undefined | null {\n return this._cellTemplateInput || this._cellTemplateQuery\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('headerTemplate')\n _headerTemplateInput?: TemplateRef<any> | null\n\n @ContentChild(TheSeamTableColumnHeaderTplDirective, { read: TemplateRef, static: true })\n _headerTemplateQuery?: TemplateRef<any>\n\n get headerTemplate(): TemplateRef<any> | undefined | null {\n return this._headerTemplateInput || this._headerTemplateQuery\n }\n\n private readonly _columnChange = new Subject<void>()\n public columnChange$ = this._columnChange.asObservable()\n\n // constructor(\n // private _columnChangesService: DatatableColumnChangesService\n // ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (this._isFirstChange) {\n this._isFirstChange = false\n } else {\n // this._columnChangesService.onInputChange()\n this._columnChange.next()\n }\n }\n\n}\n","import { BooleanInput, coerceArray } from '@angular/cdk/coercion'\nimport { AfterContentChecked, ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, OnChanges, OnInit, Output, QueryList, SimpleChanges, TemplateRef } from '@angular/core'\nimport { DomSanitizer } from '@angular/platform-browser'\nimport { merge, Subject, Subscription } from 'rxjs'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { TheSeamTableColumnComponent } from '../table-column.component'\n\n/**\n * An optional function passed into the `NgForOf` directive that defines how to track\n * changes for items in an iterable.\n * The function takes the iteration index and item ID.\n * When supplied, Angular tracks changes by the return value of the function.\n *\n * NOTE: Can't import the type from'@angular/core', because of a bug in angular-cli's\n * build that can't find exported types that only exist at compile time if there\n * are exports that exist at runtime in the same file.\n */\nexport type TrackByFunction<T> = (index: number, item: T) => any\n\nexport interface ITableColumn {\n prop: string\n name?: string\n cellTemplate?: TemplateRef<any>\n headerTemplate?: TemplateRef<any>\n cellClass?: string // | ((data: any) => string | any)\n headerClass?: string // | ((data: any) => string | any)\n}\n\nfunction mergeColumnsAndTplColumns(columns: (string | ITableColumn)[], tplColumns: TheSeamTableColumnComponent[]): ITableColumn[] {\n const newCols: ITableColumn[] = []\n\n for (const col of columns) {\n const newCol: ITableColumn = {\n ...((typeof col === 'string') ? {\n prop: col,\n name: col,\n } : col),\n }\n const tplCol = tplColumns.find(c => c.prop === newCol.prop)\n // newCol.cellTypeConfig = tplCol?.cellTypeConfig\n if (tplCol) {\n if (tplCol.name !== undefined && tplCol.name !== null) {\n newCol.name = tplCol.name ?? undefined\n }\n if (tplCol.cellTemplate !== undefined && tplCol.cellTemplate !== null) {\n newCol.cellTemplate = tplCol.cellTemplate ?? undefined\n }\n if (tplCol.headerTemplate !== undefined && tplCol.headerTemplate !== null) {\n newCol.headerTemplate = tplCol.headerTemplate ?? undefined\n }\n if (tplCol.cellClass !== undefined && tplCol.cellClass !== null) {\n newCol.cellClass = tplCol.cellClass ?? undefined\n }\n if (tplCol.headerClass !== undefined && tplCol.headerClass !== null) {\n newCol.headerClass = tplCol.headerClass ?? undefined\n }\n }\n\n newCols.push(newCol)\n }\n\n return newCols\n}\n\n@Component({\n selector: 'seam-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TableComponent<T = any> implements OnInit, OnChanges, AfterContentChecked {\n static ngAcceptInputType_hasHeader: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n @Input()\n get columns() { return this._columns }\n set columns(value: (string | ITableColumn)[] | undefined | null) {\n this._columns = value\n // this._setColumns(value || [])\n const cols = mergeColumnsAndTplColumns(value || [], this._columnComponents?.toArray() ?? [])\n // this._setColumns(cols)\n this._pendingColumns = cols\n }\n private _columns: (string | ITableColumn)[] | undefined | null\n\n @Input()\n get rows(): T[] | undefined | null { return this._rows }\n set rows(value: T[] | undefined | null) {\n this._rows = value ? coerceArray(value) : []\n\n if (this._rows.length < 1) {\n this._displayedRows = [\n { _emptyDisplay: true } as any\n ]\n } else {\n this._displayedRows = this._rows\n }\n }\n private _rows: T[] | undefined | null = []\n\n get displayedRows() { return this._displayedRows }\n private _displayedRows: T[] & { _colSpan?: number } = []\n\n @Input() trackBy: TrackByFunction<T> | undefined | null\n\n @Input() size: 'sm' | 'md' | undefined | null\n\n @Input() @InputBoolean() hasHeader = true\n\n private _pendingColumns?: ITableColumn[]\n\n public displayedRecords?: ITableColumn[]\n public displayedColumns?: string[]\n\n @Output() readonly columnsChange = new EventEmitter<{ previous: ITableColumn[] | undefined, current: ITableColumn[] }>()\n @Output() readonly actionRefreshRequest = new EventEmitter<void>()\n\n @ContentChildren(TheSeamTableColumnComponent)\n set columnComponents(value: QueryList<TheSeamTableColumnComponent> | undefined) {\n // this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []))\n this._columnComponents = value\n if (value?.toArray().length === 0) return\n const cols = mergeColumnsAndTplColumns(this._columns || [], value?.toArray() ?? [])\n // this._setColumns(cols)\n this._pendingColumns = cols\n\n if (this._columnComponentChange) this._columnComponentChange.unsubscribe()\n const obsArr = value?.toArray().map(c => c.columnChange$)\n if (obsArr && obsArr.length > 0) {\n this._columnComponentChange = merge(obsArr).subscribe(() => {\n const _cols = mergeColumnsAndTplColumns(this._columns || [], value?.toArray() ?? [])\n // this._setColumns(_cols)\n this._pendingColumns = _cols\n })\n }\n }\n private _columnComponents: QueryList<TheSeamTableColumnComponent> | undefined\n private _columnComponentChange = Subscription.EMPTY\n\n constructor(\n private readonly _sanitizer: DomSanitizer\n ) { }\n\n ngOnInit() {\n this._updateColumns()\n }\n\n ngAfterContentChecked() {\n this._updateColumns()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.columns) {\n this._updateColumns()\n }\n }\n\n private _updateColumns() {\n const pending = this._pendingColumns\n this._pendingColumns = undefined\n if (pending) {\n this._setColumns(pending)\n }\n }\n\n // TODO: Improve column handling, like datatable, to avoid excessive updates.\n private _setColumns(cols: (string | ITableColumn)[]) {\n const prev = this.displayedRecords\n const newCols: ITableColumn[] = []\n\n for (const col of cols) {\n if (typeof col === 'string') {\n const newCol: ITableColumn = {\n prop: col,\n name: col\n }\n newCols.push(newCol)\n } else {\n let name = col.name\n if (name === undefined || name === null) {\n name = col.prop\n }\n const newCol: ITableColumn = {\n ...col,\n prop: col.prop,\n name\n }\n newCols.push(newCol)\n }\n }\n\n for (const col of newCols) {\n const _col = col as any\n if (_col && _col.cellTypeConfig && _col.cellTypeConfig.styles) {\n _col.cellTypeConfig.styles = this._sanitizer.bypassSecurityTrustStyle(_col.cellTypeConfig.styles)\n }\n }\n\n this.displayedRecords = newCols\n this.displayedColumns = newCols.map(c => c.prop)\n this.columnsChange.emit({ previous: prev, current: newCols })\n }\n\n public triggerActionRefreshRequest() {\n this.actionRefreshRequest.emit(undefined)\n }\n\n _trackByRecords(r: any) {\n return r.prop + r.name\n }\n\n}\n","<table cdk-table [dataSource]=\"displayedRows\" class=\"table table-header-divider-indented mb-0\"\n [class.table-striped]=\"rows && rows.length > 0\"\n [class.table-sm]=\"size === 'sm'\"\n [class.table-no-header]=\"!hasHeader\">\n <ng-container *ngFor=\"let r of displayedRecords; first as isFirst; trackBy:_trackByRecords\">\n <ng-container [cdkColumnDef]=\"r.prop\">\n <th cdk-header-cell *cdkHeaderCellDef [class]=\"r.headerClass\">\n <ng-container *ngIf=\"hasHeader\">\n <ng-container *ngIf=\"$any(r)?.headerTemplate; else noHeaderTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: r.name, prop: r.prop, column: r }\">\n </ng-template>\n </ng-container>\n <ng-template #noHeaderTpl>\n {{ r.name }}\n </ng-template>\n </ng-container>\n </th>\n <td cdk-cell *cdkCellDef=\"let element; index as rowIndex\"\n [attr.colspan]=\"element?._emptyDisplay && isFirst ? 2 : undefined\"\n [class]=\"element?._emptyDisplay ? undefined : r.cellClass\"\n [class.border-top-0]=\"element?._emptyDisplay && isFirst\"\n [class.d-none]=\"element?._emptyDisplay && !isFirst\"\n [style]=\"$any(r)?.cellTypeConfig?.styles\">\n\n <span [style]=\"$any(r)?.cellTypeConfig?.styles\"></span>\n\n <ng-container *ngIf=\"element?._emptyDisplay && isFirst; else hasDataTpl\">\n No records found\n </ng-container>\n\n <ng-template #hasDataTpl>\n <seam-table-cell-type-selector *ngIf=\"$any(r)?.cellType; else noCellType\"\n [type]=\"$any(r)?.cellType\"\n [value]=\"element[r.prop]\"\n [rowIndex]=\"rowIndex\"\n [row]=\"element\"\n [colData]=\"r\">\n </seam-table-cell-type-selector>\n <ng-template #noCellType>\n <ng-container *ngIf=\"$any(r)?.cellTemplate; else noCellTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element[r.prop], row: element, rowIndex: rowIndex, column: r }\">\n </ng-template>\n </ng-container>\n </ng-template>\n <ng-template #noCellTpl>\n <div class=\"td-text-truncate\" [title]=\"element[r.prop]\">\n {{ element[r.prop] }}\n </div>\n </ng-template>\n </ng-template>\n\n </td>\n </ng-container>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColumns\"></tr>\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n","import { CdkTableModule } from '@angular/cdk/table'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type'\n\nimport { TableComponent } from './table/table.component'\nimport { TheSeamTableColumnComponent } from './table-column.component'\nimport { TheSeamTableCellTplDirective } from './table-cell-tpl.directive'\nimport { TheSeamTableColumnHeaderTplDirective } from './table-column-header-tpl.directive'\n\n@NgModule({\n declarations: [\n TableComponent\n ],\n imports: [\n CommonModule,\n CdkTableModule,\n TheSeamTableCellTypeModule,\n TheSeamTableColumnComponent,\n TheSeamTableCellTplDirective,\n TheSeamTableColumnHeaderTplDirective,\n ],\n exports: [\n TableComponent,\n TheSeamTableColumnComponent,\n TheSeamTableCellTplDirective,\n TheSeamTableColumnHeaderTplDirective,\n ]\n})\nexport class TheSeamTableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-table.mjs","sources":["../../../projects/ui-common/table/table-cell-tpl.directive.ts","../../../projects/ui-common/table/table-column-header-tpl.directive.ts","../../../projects/ui-common/table/table-column.component.ts","../../../projects/ui-common/table/table/table.component.ts","../../../projects/ui-common/table/table/table.component.html","../../../projects/ui-common/table/table.module.ts","../../../projects/ui-common/table/theseam-ui-common-table.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTableCellTpl]',\n standalone: true,\n})\nexport class TheSeamTableCellTplDirective {\n template = inject(TemplateRef<any>)\n}\n","import { Directive, inject, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTableColumnHeaderTpl]',\n standalone: true,\n})\nexport class TheSeamTableColumnHeaderTplDirective {\n template = inject(TemplateRef<any>)\n}\n","import {\n Component,\n ContentChild,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { ColumnChangesService, TableColumnProp } from '@marklb/ngx-datatable'\n\nimport { TheSeamTableCellTplDirective } from './table-cell-tpl.directive'\nimport { TheSeamTableColumnHeaderTplDirective } from './table-column-header-tpl.directive'\n\n// TODO: The column component should implement `ITableColumn`, since\n// providing some properties by input and some by template could be confusing.\n\n@Component({\n selector: 'seam-table-column',\n standalone: true,\n template: ``,\n})\nexport class TheSeamTableColumnComponent implements OnChanges {\n @Input() name?: string | null\n @Input() prop?: TableColumnProp | null\n\n @Input() flexGrow?: number | null\n // @Input() minWidth?: number | null\n // @Input() maxWidth?: number | null\n // @Input() width?: number | null\n\n // @Input() headerClass?: string | ((data: any) => string|any) | null\n @Input() headerClass?: string | null\n // @Input() cellClass?: string | ((data: any) => string|any) | null\n @Input() cellClass?: string | null\n\n private _isFirstChange = true\n\n @ContentChild(TheSeamTableCellTplDirective, { static: true })\n cellTplDirective?: TheSeamTableCellTplDirective\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('cellTemplate')\n _cellTemplateInput?: TemplateRef<any> | null\n\n @ContentChild(TheSeamTableCellTplDirective, {\n read: TemplateRef,\n static: true,\n })\n _cellTemplateQuery?: TemplateRef<any>\n\n get cellTemplate(): TemplateRef<any> | undefined | null {\n return this._cellTemplateInput || this._cellTemplateQuery\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('headerTemplate')\n _headerTemplateInput?: TemplateRef<any> | null\n\n @ContentChild(TheSeamTableColumnHeaderTplDirective, {\n read: TemplateRef,\n static: true,\n })\n _headerTemplateQuery?: TemplateRef<any>\n\n get headerTemplate(): TemplateRef<any> | undefined | null {\n return this._headerTemplateInput || this._headerTemplateQuery\n }\n\n private readonly _columnChange = new Subject<void>()\n public columnChange$ = this._columnChange.asObservable()\n\n // constructor(\n // private _columnChangesService: DatatableColumnChangesService\n // ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (this._isFirstChange) {\n this._isFirstChange = false\n } else {\n // this._columnChangesService.onInputChange()\n this._columnChange.next()\n }\n }\n}\n","import { BooleanInput, coerceArray } from '@angular/cdk/coercion'\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core'\nimport { DomSanitizer } from '@angular/platform-browser'\nimport { merge, Subject, Subscription } from 'rxjs'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { TheSeamTableColumnComponent } from '../table-column.component'\n\n/**\n * An optional function passed into the `NgForOf` directive that defines how to track\n * changes for items in an iterable.\n * The function takes the iteration index and item ID.\n * When supplied, Angular tracks changes by the return value of the function.\n *\n * NOTE: Can't import the type from'@angular/core', because of a bug in angular-cli's\n * build that can't find exported types that only exist at compile time if there\n * are exports that exist at runtime in the same file.\n */\nexport type TrackByFunction<T> = (index: number, item: T) => any\n\nexport interface ITableColumn {\n prop: string\n name?: string\n cellTemplate?: TemplateRef<any>\n headerTemplate?: TemplateRef<any>\n cellClass?: string // | ((data: any) => string | any)\n headerClass?: string // | ((data: any) => string | any)\n}\n\nfunction mergeColumnsAndTplColumns(\n columns: (string | ITableColumn)[],\n tplColumns: TheSeamTableColumnComponent[],\n): ITableColumn[] {\n const newCols: ITableColumn[] = []\n\n for (const col of columns) {\n const newCol: ITableColumn = {\n ...(typeof col === 'string'\n ? {\n prop: col,\n name: col,\n }\n : col),\n }\n const tplCol = tplColumns.find((c) => c.prop === newCol.prop)\n // newCol.cellTypeConfig = tplCol?.cellTypeConfig\n if (tplCol) {\n if (tplCol.name !== undefined && tplCol.name !== null) {\n newCol.name = tplCol.name ?? undefined\n }\n if (tplCol.cellTemplate !== undefined && tplCol.cellTemplate !== null) {\n newCol.cellTemplate = tplCol.cellTemplate ?? undefined\n }\n if (\n tplCol.headerTemplate !== undefined &&\n tplCol.headerTemplate !== null\n ) {\n newCol.headerTemplate = tplCol.headerTemplate ?? undefined\n }\n if (tplCol.cellClass !== undefined && tplCol.cellClass !== null) {\n newCol.cellClass = tplCol.cellClass ?? undefined\n }\n if (tplCol.headerClass !== undefined && tplCol.headerClass !== null) {\n newCol.headerClass = tplCol.headerClass ?? undefined\n }\n }\n\n newCols.push(newCol)\n }\n\n return newCols\n}\n\n@Component({\n selector: 'seam-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableComponent<T = any>\n implements OnInit, OnChanges, AfterContentChecked\n{\n static ngAcceptInputType_hasHeader: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n @Input()\n get columns() {\n return this._columns\n }\n set columns(value: (string | ITableColumn)[] | undefined | null) {\n this._columns = value\n // this._setColumns(value || [])\n const cols = mergeColumnsAndTplColumns(\n value || [],\n this._columnComponents?.toArray() ?? [],\n )\n // this._setColumns(cols)\n this._pendingColumns = cols\n }\n private _columns: (string | ITableColumn)[] | undefined | null\n\n @Input()\n get rows(): T[] | undefined | null {\n return this._rows\n }\n set rows(value: T[] | undefined | null) {\n this._rows = value ? coerceArray(value) : []\n\n if (this._rows.length < 1) {\n this._displayedRows = [{ _emptyDisplay: true } as any]\n } else {\n this._displayedRows = this._rows\n }\n }\n private _rows: T[] | undefined | null = []\n\n get displayedRows() {\n return this._displayedRows\n }\n private _displayedRows: T[] & { _colSpan?: number } = []\n\n @Input() trackBy: TrackByFunction<T> | undefined | null\n\n @Input() size: 'sm' | 'md' | undefined | null\n\n @Input() @InputBoolean() hasHeader = true\n\n private _pendingColumns?: ITableColumn[]\n\n public displayedRecords?: ITableColumn[]\n public displayedColumns?: string[]\n\n @Output() readonly columnsChange = new EventEmitter<{\n previous: ITableColumn[] | undefined\n current: ITableColumn[]\n }>()\n @Output() readonly actionRefreshRequest = new EventEmitter<void>()\n\n @ContentChildren(TheSeamTableColumnComponent)\n set columnComponents(\n value: QueryList<TheSeamTableColumnComponent> | undefined,\n ) {\n // this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []))\n this._columnComponents = value\n if (value?.toArray().length === 0) return\n const cols = mergeColumnsAndTplColumns(\n this._columns || [],\n value?.toArray() ?? [],\n )\n // this._setColumns(cols)\n this._pendingColumns = cols\n\n if (this._columnComponentChange) this._columnComponentChange.unsubscribe()\n const obsArr = value?.toArray().map((c) => c.columnChange$)\n if (obsArr && obsArr.length > 0) {\n this._columnComponentChange = merge(obsArr).subscribe(() => {\n const _cols = mergeColumnsAndTplColumns(\n this._columns || [],\n value?.toArray() ?? [],\n )\n // this._setColumns(_cols)\n this._pendingColumns = _cols\n })\n }\n }\n private _columnComponents: QueryList<TheSeamTableColumnComponent> | undefined\n private _columnComponentChange = Subscription.EMPTY\n\n constructor(private readonly _sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n this._updateColumns()\n }\n\n ngAfterContentChecked() {\n this._updateColumns()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.columns) {\n this._updateColumns()\n }\n }\n\n private _updateColumns() {\n const pending = this._pendingColumns\n this._pendingColumns = undefined\n if (pending) {\n this._setColumns(pending)\n }\n }\n\n // TODO: Improve column handling, like datatable, to avoid excessive updates.\n private _setColumns(cols: (string | ITableColumn)[]) {\n const prev = this.displayedRecords\n const newCols: ITableColumn[] = []\n\n for (const col of cols) {\n if (typeof col === 'string') {\n const newCol: ITableColumn = {\n prop: col,\n name: col,\n }\n newCols.push(newCol)\n } else {\n let name = col.name\n if (name === undefined || name === null) {\n name = col.prop\n }\n const newCol: ITableColumn = {\n ...col,\n prop: col.prop,\n name,\n }\n newCols.push(newCol)\n }\n }\n\n for (const col of newCols) {\n const _col = col as any\n if (_col && _col.cellTypeConfig && _col.cellTypeConfig.styles) {\n _col.cellTypeConfig.styles = this._sanitizer.bypassSecurityTrustStyle(\n _col.cellTypeConfig.styles,\n )\n }\n }\n\n this.displayedRecords = newCols\n this.displayedColumns = newCols.map((c) => c.prop)\n this.columnsChange.emit({ previous: prev, current: newCols })\n }\n\n public triggerActionRefreshRequest() {\n this.actionRefreshRequest.emit(undefined)\n }\n\n _trackByRecords(r: any) {\n return r.prop + r.name\n }\n}\n","<table\n cdk-table\n [dataSource]=\"displayedRows\"\n class=\"table table-header-divider-indented mb-0\"\n [class.table-striped]=\"rows && rows.length > 0\"\n [class.table-sm]=\"size === 'sm'\"\n [class.table-no-header]=\"!hasHeader\"\n>\n <ng-container\n *ngFor=\"\n let r of displayedRecords;\n first as isFirst;\n trackBy: _trackByRecords\n \"\n >\n <ng-container [cdkColumnDef]=\"r.prop\">\n <th cdk-header-cell *cdkHeaderCellDef [class]=\"r.headerClass\">\n <ng-container *ngIf=\"hasHeader\">\n <ng-container *ngIf=\"$any(r)?.headerTemplate; else noHeaderTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.headerTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: r.name,\n prop: r.prop,\n column: r,\n }\"\n >\n </ng-template>\n </ng-container>\n <ng-template #noHeaderTpl>\n {{ r.name }}\n </ng-template>\n </ng-container>\n </th>\n <td\n cdk-cell\n *cdkCellDef=\"let element; index as rowIndex\"\n [attr.colspan]=\"element?._emptyDisplay && isFirst ? 2 : undefined\"\n [class]=\"element?._emptyDisplay ? undefined : r.cellClass\"\n [class.border-top-0]=\"element?._emptyDisplay && isFirst\"\n [class.d-none]=\"element?._emptyDisplay && !isFirst\"\n [style]=\"$any(r)?.cellTypeConfig?.styles\"\n >\n <span [style]=\"$any(r)?.cellTypeConfig?.styles\"></span>\n\n <ng-container\n *ngIf=\"element?._emptyDisplay && isFirst; else hasDataTpl\"\n >\n No records found\n </ng-container>\n\n <ng-template #hasDataTpl>\n <seam-table-cell-type-selector\n *ngIf=\"$any(r)?.cellType; else noCellType\"\n [type]=\"$any(r)?.cellType\"\n [value]=\"element[r.prop]\"\n [rowIndex]=\"rowIndex\"\n [row]=\"element\"\n [colData]=\"r\"\n >\n </seam-table-cell-type-selector>\n <ng-template #noCellType>\n <ng-container *ngIf=\"$any(r)?.cellTemplate; else noCellTpl\">\n <ng-template\n [ngTemplateOutlet]=\"$any(r)?.cellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: element[r.prop],\n row: element,\n rowIndex: rowIndex,\n column: r,\n }\"\n >\n </ng-template>\n </ng-container>\n </ng-template>\n <ng-template #noCellTpl>\n <div class=\"td-text-truncate\" [title]=\"element[r.prop]\">\n {{ element[r.prop] }}\n </div>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColumns\"></tr>\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n","import { CdkTableModule } from '@angular/cdk/table'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type'\n\nimport { TableComponent } from './table/table.component'\nimport { TheSeamTableColumnComponent } from './table-column.component'\nimport { TheSeamTableCellTplDirective } from './table-cell-tpl.directive'\nimport { TheSeamTableColumnHeaderTplDirective } from './table-column-header-tpl.directive'\n\n@NgModule({\n declarations: [TableComponent],\n imports: [\n CommonModule,\n CdkTableModule,\n TheSeamTableCellTypeModule,\n TheSeamTableColumnComponent,\n TheSeamTableCellTplDirective,\n TheSeamTableColumnHeaderTplDirective,\n ],\n exports: [\n TableComponent,\n TheSeamTableColumnComponent,\n TheSeamTableCellTplDirective,\n TheSeamTableColumnHeaderTplDirective,\n ],\n})\nexport class TheSeamTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}