@theseam/ui-common 0.4.28-beta.4 → 0.4.28

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 (230) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +9 -61
  3. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
  4. package/datatable/datatable.module.d.ts +20 -29
  5. package/datatable/models/table-column.d.ts +1 -22
  6. package/datatable/public-api.d.ts +0 -14
  7. package/datatable/services/columns-manager.service.d.ts +0 -7
  8. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  9. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
  10. package/esm2020/datatable/datatable/datatable.component.mjs +31 -240
  11. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
  12. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
  13. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
  14. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +1 -1
  15. package/esm2020/datatable/datatable.module.mjs +7 -49
  16. package/esm2020/datatable/models/table-column.mjs +1 -1
  17. package/esm2020/datatable/public-api.mjs +1 -15
  18. package/esm2020/datatable/services/columns-manager.service.mjs +2 -27
  19. package/esm2020/datatable/utils/create-action-menu-column.mjs +3 -4
  20. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
  21. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
  22. package/esm2020/framework/base-layout/base-layout.component.mjs +4 -14
  23. package/esm2020/framework/base-layout/base-layout.module.mjs +1 -6
  24. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +5 -21
  25. package/esm2020/framework/base-layout/index.mjs +1 -2
  26. package/esm2020/framework/public-api.mjs +1 -2
  27. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +2 -2
  28. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +78 -28
  29. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -12
  30. package/esm2020/framework/side-nav/side-nav-tokens.mjs +5 -1
  31. package/esm2020/framework/side-nav/side-nav-utils.mjs +13 -3
  32. package/esm2020/framework/side-nav/side-nav.component.mjs +52 -119
  33. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  34. package/esm2020/framework/side-nav/side-nav.module.mjs +39 -9
  35. package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
  36. package/esm2020/framework/top-bar/index.mjs +1 -3
  37. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +4 -10
  38. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +4 -6
  39. package/esm2020/framework/top-bar/top-bar.component.mjs +11 -55
  40. package/esm2020/framework/top-bar/top-bar.module.mjs +5 -15
  41. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +3 -3
  42. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +1 -1
  43. package/esm2020/graphql/datatable/index.mjs +1 -4
  44. package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
  45. package/esm2020/layout/layout.service.mjs +2 -12
  46. package/esm2020/menu/menu-toggle.directive.mjs +2 -7
  47. package/esm2020/navigation-reload/navigation-reload.config.mjs +2 -0
  48. package/esm2020/navigation-reload/navigation-reload.provider.mjs +14 -0
  49. package/esm2020/navigation-reload/navigation-reload.service.mjs +54 -0
  50. package/esm2020/navigation-reload/public-api.mjs +4 -0
  51. package/esm2020/navigation-reload/theseam-ui-common-navigation-reload.mjs +5 -0
  52. package/esm2020/popover/popover/popover.component.mjs +3 -7
  53. package/esm2020/popover/popover.directive.mjs +2 -6
  54. package/esm2020/table/public-api.mjs +1 -4
  55. package/esm2020/table/table/table.component.mjs +5 -90
  56. package/esm2020/table/table.module.mjs +5 -21
  57. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +3 -5
  58. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  59. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  60. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  61. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  62. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  63. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  64. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +1 -1
  65. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
  66. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  67. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
  68. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  69. package/fesm2015/theseam-ui-common-datatable.mjs +62 -1035
  70. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  71. package/fesm2015/theseam-ui-common-framework.mjs +193 -910
  72. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  73. package/fesm2015/theseam-ui-common-google-maps.mjs +2 -2
  74. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  75. package/fesm2015/theseam-ui-common-graphql.mjs +1 -254
  76. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  77. package/fesm2015/theseam-ui-common-layout.mjs +2 -11
  78. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  79. package/fesm2015/theseam-ui-common-menu.mjs +1 -6
  80. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  81. package/fesm2015/theseam-ui-common-navigation-reload.mjs +75 -0
  82. package/fesm2015/theseam-ui-common-navigation-reload.mjs.map +1 -0
  83. package/fesm2015/theseam-ui-common-popover.mjs +3 -11
  84. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  85. package/fesm2015/theseam-ui-common-table-cell-types.mjs +2 -4
  86. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  87. package/fesm2015/theseam-ui-common-table.mjs +9 -201
  88. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  89. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  90. package/fesm2015/theseam-ui-common-widget.mjs +1 -1
  91. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  92. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
  93. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  94. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
  95. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  96. package/fesm2020/theseam-ui-common-datatable.mjs +62 -1019
  97. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  98. package/fesm2020/theseam-ui-common-framework.mjs +196 -912
  99. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  100. package/fesm2020/theseam-ui-common-google-maps.mjs +2 -2
  101. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  102. package/fesm2020/theseam-ui-common-graphql.mjs +1 -254
  103. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  104. package/fesm2020/theseam-ui-common-layout.mjs +2 -11
  105. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  106. package/fesm2020/theseam-ui-common-menu.mjs +1 -6
  107. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  108. package/fesm2020/theseam-ui-common-navigation-reload.mjs +74 -0
  109. package/fesm2020/theseam-ui-common-navigation-reload.mjs.map +1 -0
  110. package/fesm2020/theseam-ui-common-popover.mjs +3 -11
  111. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  112. package/fesm2020/theseam-ui-common-table-cell-types.mjs +2 -4
  113. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  114. package/fesm2020/theseam-ui-common-table.mjs +9 -199
  115. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  116. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  117. package/fesm2020/theseam-ui-common-widget.mjs +1 -1
  118. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  119. package/framework/base-layout/base-layout.component.d.ts +2 -4
  120. package/framework/base-layout/base-layout.component.scss +10 -18
  121. package/framework/base-layout/base-layout.module.d.ts +10 -11
  122. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +3 -8
  123. package/framework/base-layout/index.d.ts +0 -1
  124. package/framework/base-layout/styles/_variables.scss +0 -21
  125. package/framework/public-api.d.ts +0 -1
  126. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +20 -7
  127. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +16 -8
  128. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +3 -5
  129. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +6 -3
  130. package/framework/side-nav/side-nav-tokens.d.ts +8 -0
  131. package/framework/side-nav/side-nav-utils.d.ts +12 -6
  132. package/framework/side-nav/side-nav.component.d.ts +6 -16
  133. package/framework/side-nav/side-nav.component.scss +1 -0
  134. package/framework/side-nav/side-nav.models.d.ts +14 -9
  135. package/framework/side-nav/side-nav.module.d.ts +9 -1
  136. package/framework/side-nav/styles/_themes/light/_variables.scss +14 -24
  137. package/framework/side-nav/styles/_themes/primary/_variables.scss +0 -8
  138. package/framework/top-bar/index.d.ts +0 -2
  139. package/framework/top-bar/top-bar-item.directive.d.ts +1 -4
  140. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +2 -5
  141. package/framework/top-bar/top-bar.component.d.ts +3 -25
  142. package/framework/top-bar/top-bar.component.scss +2 -7
  143. package/framework/top-bar/top-bar.module.d.ts +8 -10
  144. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  145. package/graphql/datatable/index.d.ts +0 -3
  146. package/graphql/datatable/map-filter-states.d.ts +2 -2
  147. package/layout/layout.service.d.ts +1 -9
  148. package/menu/menu-toggle.directive.d.ts +1 -2
  149. package/navigation-reload/index.d.ts +5 -0
  150. package/navigation-reload/navigation-reload.config.d.ts +5 -0
  151. package/navigation-reload/navigation-reload.provider.d.ts +3 -0
  152. package/navigation-reload/navigation-reload.service.d.ts +13 -0
  153. package/navigation-reload/public-api.d.ts +3 -0
  154. package/package.json +11 -3
  155. package/popover/popover/popover.component.d.ts +1 -4
  156. package/popover/popover.directive.d.ts +1 -2
  157. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +14 -83
  158. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +3 -38
  159. package/table/public-api.d.ts +0 -3
  160. package/table/table/table.component.d.ts +3 -21
  161. package/table/table.module.d.ts +1 -4
  162. package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +0 -25
  163. package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +0 -18
  164. package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +0 -16
  165. package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +0 -15
  166. package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +0 -8
  167. package/datatable/directives/datatable-column-filter.directive.d.ts +0 -10
  168. package/datatable/models/action-item-column-position.d.ts +0 -13
  169. package/datatable/models/columns-data-filter.d.ts +0 -57
  170. package/datatable/models/columns-data-filters/models.d.ts +0 -65
  171. package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +0 -23
  172. package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +0 -22
  173. package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +0 -21
  174. package/datatable/models/columns-data-filters/utils.d.ts +0 -15
  175. package/datatable/models/datatable-config.d.ts +0 -97
  176. package/datatable/services/columns-filters.service.d.ts +0 -29
  177. package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +0 -55
  178. package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +0 -54
  179. package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +0 -48
  180. package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +0 -44
  181. package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +0 -16
  182. package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +0 -26
  183. package/esm2020/datatable/models/action-item-column-position.mjs +0 -5
  184. package/esm2020/datatable/models/columns-data-filter.mjs +0 -10
  185. package/esm2020/datatable/models/columns-data-filters/models.mjs +0 -74
  186. package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +0 -113
  187. package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +0 -104
  188. package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +0 -86
  189. package/esm2020/datatable/models/columns-data-filters/utils.mjs +0 -28
  190. package/esm2020/datatable/models/datatable-config.mjs +0 -3
  191. package/esm2020/datatable/services/columns-filters.service.mjs +0 -109
  192. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +0 -16
  193. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +0 -55
  194. package/esm2020/framework/nav/index.mjs +0 -6
  195. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +0 -227
  196. package/esm2020/framework/nav/nav-utils.mjs +0 -107
  197. package/esm2020/framework/nav/nav.models.mjs +0 -2
  198. package/esm2020/framework/nav/nav.module.mjs +0 -67
  199. package/esm2020/framework/nav/nav.service.mjs +0 -204
  200. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +0 -16
  201. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +0 -16
  202. package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +0 -139
  203. package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +0 -75
  204. package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +0 -44
  205. package/esm2020/table/table-cell-tpl.directive.mjs +0 -17
  206. package/esm2020/table/table-column-header-tpl.directive.mjs +0 -17
  207. package/esm2020/table/table-column.component.mjs +0 -68
  208. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +0 -9
  209. package/framework/nav/_nav-theme.scss +0 -4
  210. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +0 -25
  211. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +0 -50
  212. package/framework/nav/index.d.ts +0 -5
  213. package/framework/nav/nav-item/nav-item.component.d.ts +0 -74
  214. package/framework/nav/nav-item/nav-item.component.scss +0 -203
  215. package/framework/nav/nav-utils.d.ts +0 -20
  216. package/framework/nav/nav.models.d.ts +0 -77
  217. package/framework/nav/nav.module.d.ts +0 -17
  218. package/framework/nav/nav.service.d.ts +0 -27
  219. package/framework/nav/styles/_themes/light/_variables.scss +0 -56
  220. package/framework/nav/styles/_themes/primary/_variables.scss +0 -56
  221. package/framework/nav/styles/_utilities.scss +0 -3
  222. package/framework/nav/styles/_variables.scss +0 -2
  223. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +0 -8
  224. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +0 -8
  225. package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +0 -4
  226. package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +0 -4
  227. package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +0 -4
  228. package/table/table-cell-tpl.directive.d.ts +0 -7
  229. package/table/table-column-header-tpl.directive.d.ts +0 -7
  230. package/table/table-column.component.d.ts +0 -24
@@ -1,8 +1,7 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import { coerceArray } from '@angular/cdk/coercion';
3
3
  import * as i0 from '@angular/core';
4
- import { inject, TemplateRef, Directive, Component, Input, ContentChild, EventEmitter, ChangeDetectionStrategy, Output, ContentChildren, NgModule } from '@angular/core';
5
- import { Subject, merge, Subscription } from 'rxjs';
4
+ import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, NgModule } from '@angular/core';
6
5
  import { InputBoolean } from '@theseam/ui-common/core';
7
6
  import * as i1 from '@angular/platform-browser';
8
7
  import * as i2 from '@angular/common';
@@ -12,139 +11,11 @@ import { CdkTableModule } from '@angular/cdk/table';
12
11
  import * as i4 from '@theseam/ui-common/table-cell-type';
13
12
  import { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type';
14
13
 
15
- class TheSeamTableCellTplDirective {
16
- constructor() {
17
- this.template = inject((TemplateRef));
18
- }
19
- }
20
- TheSeamTableCellTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableCellTplDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
21
- TheSeamTableCellTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamTableCellTplDirective, isStandalone: true, selector: "[seamTableCellTpl]", ngImport: i0 });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableCellTplDirective, decorators: [{
23
- type: Directive,
24
- args: [{
25
- selector: '[seamTableCellTpl]',
26
- standalone: true,
27
- }]
28
- }] });
29
-
30
- class TheSeamTableColumnHeaderTplDirective {
31
- constructor() {
32
- this.template = inject((TemplateRef));
33
- }
34
- }
35
- TheSeamTableColumnHeaderTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableColumnHeaderTplDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
- TheSeamTableColumnHeaderTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamTableColumnHeaderTplDirective, isStandalone: true, selector: "[seamTableColumnHeaderTpl]", ngImport: i0 });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableColumnHeaderTplDirective, decorators: [{
38
- type: Directive,
39
- args: [{
40
- selector: '[seamTableColumnHeaderTpl]',
41
- standalone: true,
42
- }]
43
- }] });
44
-
45
- // TODO: The column component should implement `ITableColumn`, since
46
- // providing some properties by input and some by template could be confusing.
47
- class TheSeamTableColumnComponent {
48
- constructor() {
49
- this._isFirstChange = true;
50
- this._columnChange = new Subject();
51
- this.columnChange$ = this._columnChange.asObservable();
52
- }
53
- get cellTemplate() {
54
- return this._cellTemplateInput || this._cellTemplateQuery;
55
- }
56
- get headerTemplate() {
57
- return this._headerTemplateInput || this._headerTemplateQuery;
58
- }
59
- // constructor(
60
- // private _columnChangesService: DatatableColumnChangesService
61
- // ) {}
62
- ngOnChanges(changes) {
63
- if (this._isFirstChange) {
64
- this._isFirstChange = false;
65
- }
66
- else {
67
- // this._columnChangesService.onInputChange()
68
- this._columnChange.next();
69
- }
70
- }
71
- }
72
- TheSeamTableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- TheSeamTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", 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 });
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableColumnComponent, decorators: [{
75
- type: Component,
76
- args: [{
77
- selector: 'seam-table-column',
78
- standalone: true,
79
- template: ``,
80
- }]
81
- }], propDecorators: { name: [{
82
- type: Input
83
- }], prop: [{
84
- type: Input
85
- }], flexGrow: [{
86
- type: Input
87
- }], headerClass: [{
88
- type: Input
89
- }], cellClass: [{
90
- type: Input
91
- }], cellTplDirective: [{
92
- type: ContentChild,
93
- args: [TheSeamTableCellTplDirective, { static: true }]
94
- }], _cellTemplateInput: [{
95
- type: Input,
96
- args: ['cellTemplate']
97
- }], _cellTemplateQuery: [{
98
- type: ContentChild,
99
- args: [TheSeamTableCellTplDirective, { read: TemplateRef, static: true }]
100
- }], _headerTemplateInput: [{
101
- type: Input,
102
- args: ['headerTemplate']
103
- }], _headerTemplateQuery: [{
104
- type: ContentChild,
105
- args: [TheSeamTableColumnHeaderTplDirective, { read: TemplateRef, static: true }]
106
- }] } });
107
-
108
- function mergeColumnsAndTplColumns(columns, tplColumns) {
109
- var _a, _b, _c, _d, _e;
110
- const newCols = [];
111
- for (const col of columns) {
112
- const newCol = Object.assign({}, ((typeof col === 'string') ? {
113
- prop: col,
114
- name: col,
115
- } : col));
116
- const tplCol = tplColumns.find(c => c.prop === newCol.prop);
117
- // newCol.cellTypeConfig = tplCol?.cellTypeConfig
118
- if (tplCol) {
119
- if (tplCol.name !== undefined && tplCol.name !== null) {
120
- newCol.name = (_a = tplCol.name) !== null && _a !== void 0 ? _a : undefined;
121
- }
122
- if (tplCol.cellTemplate !== undefined && tplCol.cellTemplate !== null) {
123
- newCol.cellTemplate = (_b = tplCol.cellTemplate) !== null && _b !== void 0 ? _b : undefined;
124
- }
125
- if (tplCol.headerTemplate !== undefined && tplCol.headerTemplate !== null) {
126
- newCol.headerTemplate = (_c = tplCol.headerTemplate) !== null && _c !== void 0 ? _c : undefined;
127
- }
128
- if (tplCol.cellClass !== undefined && tplCol.cellClass !== null) {
129
- newCol.cellClass = (_d = tplCol.cellClass) !== null && _d !== void 0 ? _d : undefined;
130
- }
131
- if (tplCol.headerClass !== undefined && tplCol.headerClass !== null) {
132
- newCol.headerClass = (_e = tplCol.headerClass) !== null && _e !== void 0 ? _e : undefined;
133
- }
134
- }
135
- newCols.push(newCol);
136
- }
137
- return newCols;
138
- }
139
14
  class TableComponent {
140
15
  get columns() { return this._columns; }
141
16
  set columns(value) {
142
- var _a, _b;
143
17
  this._columns = value;
144
- // this._setColumns(value || [])
145
- const cols = mergeColumnsAndTplColumns(value || [], (_b = (_a = this._columnComponents) === null || _a === void 0 ? void 0 : _a.toArray()) !== null && _b !== void 0 ? _b : []);
146
- // this._setColumns(cols)
147
- this._pendingColumns = cols;
18
+ this._setColumns(value || []);
148
19
  }
149
20
  get rows() { return this._rows; }
150
21
  set rows(value) {
@@ -159,58 +30,14 @@ class TableComponent {
159
30
  }
160
31
  }
161
32
  get displayedRows() { return this._displayedRows; }
162
- set columnComponents(value) {
163
- var _a;
164
- // this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []))
165
- this._columnComponents = value;
166
- if ((value === null || value === void 0 ? void 0 : value.toArray().length) === 0)
167
- return;
168
- const cols = mergeColumnsAndTplColumns(this._columns || [], (_a = value === null || value === void 0 ? void 0 : value.toArray()) !== null && _a !== void 0 ? _a : []);
169
- // this._setColumns(cols)
170
- this._pendingColumns = cols;
171
- if (this._columnComponentChange)
172
- this._columnComponentChange.unsubscribe();
173
- const obsArr = value === null || value === void 0 ? void 0 : value.toArray().map(c => c.columnChange$);
174
- if (obsArr && obsArr.length > 0) {
175
- this._columnComponentChange = merge(obsArr).subscribe(() => {
176
- var _a;
177
- const _cols = mergeColumnsAndTplColumns(this._columns || [], (_a = value === null || value === void 0 ? void 0 : value.toArray()) !== null && _a !== void 0 ? _a : []);
178
- // this._setColumns(_cols)
179
- this._pendingColumns = _cols;
180
- });
181
- }
182
- }
183
33
  constructor(_sanitizer) {
184
34
  this._sanitizer = _sanitizer;
185
- this._ngUnsubscribe = new Subject();
186
35
  this._rows = [];
187
36
  this._displayedRows = [];
188
37
  this.hasHeader = true;
189
- this.columnsChange = new EventEmitter();
190
38
  this.actionRefreshRequest = new EventEmitter();
191
- this._columnComponentChange = Subscription.EMPTY;
192
- }
193
- ngOnInit() {
194
- this._updateColumns();
195
- }
196
- ngAfterContentChecked() {
197
- this._updateColumns();
198
39
  }
199
- ngOnChanges(changes) {
200
- if (changes.columns) {
201
- this._updateColumns();
202
- }
203
- }
204
- _updateColumns() {
205
- const pending = this._pendingColumns;
206
- this._pendingColumns = undefined;
207
- if (pending) {
208
- this._setColumns(pending);
209
- }
210
- }
211
- // TODO: Improve column handling, like datatable, to avoid excessive updates.
212
40
  _setColumns(cols) {
213
- const prev = this.displayedRecords;
214
41
  const newCols = [];
215
42
  for (const col of cols) {
216
43
  if (typeof col === 'string') {
@@ -237,7 +64,6 @@ class TableComponent {
237
64
  }
238
65
  this.displayedRecords = newCols;
239
66
  this.displayedColumns = newCols.map(c => c.prop);
240
- this.columnsChange.emit({ previous: prev, current: newCols });
241
67
  }
242
68
  triggerActionRefreshRequest() {
243
69
  this.actionRefreshRequest.emit(undefined);
@@ -247,13 +73,13 @@ class TableComponent {
247
73
  }
248
74
  }
249
75
  TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TableComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
250
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TableComponent, 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: ["sticky", "cdkColumnDef", "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 });
76
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TableComponent, selector: "seam-table", inputs: { columns: "columns", rows: "rows", trackBy: "trackBy", size: "size", hasHeader: "hasHeader" }, outputs: { actionRefreshRequest: "actionRefreshRequest" }, 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>\n <ng-container *ngIf=\"hasHeader\">\n {{ r.name }}\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.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 <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: "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: ["sticky", "cdkColumnDef", "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 });
251
77
  __decorate([
252
78
  InputBoolean()
253
79
  ], TableComponent.prototype, "hasHeader", void 0);
254
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TableComponent, decorators: [{
255
81
  type: Component,
256
- args: [{ selector: 'seam-table', changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
82
+ args: [{ selector: 'seam-table', changeDetection: ChangeDetectionStrategy.OnPush, 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>\n <ng-container *ngIf=\"hasHeader\">\n {{ r.name }}\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.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 <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"] }]
257
83
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { columns: [{
258
84
  type: Input
259
85
  }], rows: [{
@@ -264,13 +90,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
264
90
  type: Input
265
91
  }], hasHeader: [{
266
92
  type: Input
267
- }], columnsChange: [{
268
- type: Output
269
93
  }], actionRefreshRequest: [{
270
94
  type: Output
271
- }], columnComponents: [{
272
- type: ContentChildren,
273
- args: [TheSeamTableColumnComponent]
274
95
  }] } });
275
96
 
276
97
  class TheSeamTableModule {
@@ -278,17 +99,10 @@ class TheSeamTableModule {
278
99
  TheSeamTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
279
100
  TheSeamTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableModule, declarations: [TableComponent], imports: [CommonModule,
280
101
  CdkTableModule,
281
- TheSeamTableCellTypeModule,
282
- TheSeamTableColumnComponent,
283
- TheSeamTableCellTplDirective,
284
- TheSeamTableColumnHeaderTplDirective], exports: [TableComponent,
285
- TheSeamTableColumnComponent,
286
- TheSeamTableCellTplDirective,
287
- TheSeamTableColumnHeaderTplDirective] });
102
+ TheSeamTableCellTypeModule], exports: [TableComponent] });
288
103
  TheSeamTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableModule, imports: [CommonModule,
289
104
  CdkTableModule,
290
- TheSeamTableCellTypeModule,
291
- TheSeamTableColumnComponent] });
105
+ TheSeamTableCellTypeModule] });
292
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTableModule, decorators: [{
293
107
  type: NgModule,
294
108
  args: [{
@@ -298,16 +112,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
298
112
  imports: [
299
113
  CommonModule,
300
114
  CdkTableModule,
301
- TheSeamTableCellTypeModule,
302
- TheSeamTableColumnComponent,
303
- TheSeamTableCellTplDirective,
304
- TheSeamTableColumnHeaderTplDirective,
115
+ TheSeamTableCellTypeModule
305
116
  ],
306
117
  exports: [
307
- TableComponent,
308
- TheSeamTableColumnComponent,
309
- TheSeamTableCellTplDirective,
310
- TheSeamTableColumnHeaderTplDirective,
118
+ TableComponent
311
119
  ]
312
120
  }]
313
121
  }] });
@@ -316,5 +124,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
316
124
  * Generated bundle index. Do not edit.
317
125
  */
318
126
 
319
- export { TableComponent, TheSeamTableCellTplDirective, TheSeamTableColumnComponent, TheSeamTableColumnHeaderTplDirective, TheSeamTableModule };
127
+ export { TableComponent, TheSeamTableModule };
320
128
  //# sourceMappingURL=theseam-ui-common-table.mjs.map
@@ -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})\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/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 { BooleanInput, coerceArray } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'\nimport { DomSanitizer } from '@angular/platform-browser'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\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}\n\n@Component({\n selector: 'seam-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableComponent<T = any> {\n static ngAcceptInputType_hasHeader: BooleanInput\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 }\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 public displayedRecords?: ITableColumn[]\n public displayedColumns?: string[]\n\n @Output() readonly actionRefreshRequest = new EventEmitter<void>()\n\n constructor(\n private readonly _sanitizer: DomSanitizer\n ) { }\n\n private _setColumns(cols: (string | ITableColumn)[]) {\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 }\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>\n <ng-container *ngIf=\"hasHeader\">\n {{ r.name }}\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.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 <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'\n\n@NgModule({\n declarations: [\n TableComponent\n ],\n imports: [\n CommonModule,\n CdkTableModule,\n TheSeamTableCellTypeModule\n ],\n exports: [\n TableComponent\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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"}