@eui/ecl 19.3.0-snapshot-1749485430584 → 19.3.0-snapshot-1749640907205

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 (176) hide show
  1. package/components/ecl-accordion/ecl-accordion-item.component.d.ts.map +1 -1
  2. package/components/ecl-banner/ecl-banner.component.d.ts.map +1 -1
  3. package/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts.map +1 -1
  4. package/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts.map +1 -1
  5. package/components/ecl-button/ecl-button.component.d.ts.map +1 -1
  6. package/components/ecl-card/ecl-card-picture.directive.d.ts.map +1 -1
  7. package/components/ecl-carousel/ecl-carousel-item.component.d.ts.map +1 -1
  8. package/components/ecl-carousel/ecl-carousel.component.d.ts.map +1 -1
  9. package/components/ecl-checkbox/ecl-checkbox-help.component.d.ts.map +1 -1
  10. package/components/ecl-checkbox/ecl-checkbox-label.component.d.ts.map +1 -1
  11. package/components/ecl-checkbox/ecl-checkbox.directive.d.ts.map +1 -1
  12. package/components/ecl-content-item/ecl-content-item-image.directive.d.ts.map +1 -1
  13. package/components/ecl-content-item/ecl-content-item.component.d.ts.map +1 -1
  14. package/components/ecl-expandable/ecl-expandable.component.d.ts.map +1 -1
  15. package/components/ecl-fact-figures/ecl-fact-figures.component.d.ts.map +1 -1
  16. package/components/ecl-file/ecl-file-item/ecl-file-item.component.d.ts.map +1 -1
  17. package/components/ecl-file/ecl-file-items/ecl-file-items.component.d.ts.map +1 -1
  18. package/components/ecl-file-upload/ecl-file-upload.directive.d.ts.map +1 -1
  19. package/components/ecl-form-label/ecl-form-label.component.d.ts.map +1 -1
  20. package/components/ecl-gallery/ecl-gallery-item.component.d.ts.map +1 -1
  21. package/components/ecl-gallery/ecl-gallery-media.directive.d.ts.map +1 -1
  22. package/components/ecl-gallery/ecl-gallery.component.d.ts.map +1 -1
  23. package/components/ecl-help-block/ecl-help-block.directive.d.ts.map +1 -1
  24. package/components/ecl-icon/ecl-icon.component.d.ts.map +1 -1
  25. package/components/ecl-inpage-navigation/ecl-inpage-navigation.component.d.ts.map +1 -1
  26. package/components/ecl-link/ecl-link.directive.d.ts.map +1 -1
  27. package/components/ecl-list/ecl-list.directive.d.ts.map +1 -1
  28. package/components/ecl-list-illustration/ecl-list-illustration-picture.directive.d.ts.map +1 -1
  29. package/components/ecl-list-illustration/ecl-list-illustration.component.d.ts.map +1 -1
  30. package/components/ecl-loading-indicator/ecl-loading-indicator.component.d.ts.map +1 -1
  31. package/components/ecl-media-container/ecl-media-container.component.d.ts.map +1 -1
  32. package/components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.d.ts.map +1 -1
  33. package/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts.map +1 -1
  34. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts.map +1 -1
  35. package/components/ecl-modal/ecl-modal-body.component.d.ts.map +1 -1
  36. package/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts.map +1 -1
  37. package/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -1
  38. package/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts.map +1 -1
  39. package/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
  40. package/components/ecl-navigation-list/ecl-navigation-list.component.d.ts.map +1 -1
  41. package/components/ecl-news-ticker/ecl-news-ticker.component.d.ts.map +1 -1
  42. package/components/ecl-notification/ecl-notification.component.d.ts.map +1 -1
  43. package/components/ecl-page-header/ecl-page-header-title.directive.d.ts.map +1 -1
  44. package/components/ecl-pagination/ecl-pagination-item.component.d.ts.map +1 -1
  45. package/components/ecl-pagination/ecl-pagination.component.d.ts.map +1 -1
  46. package/components/ecl-radio/ecl-radio-help.component.d.ts.map +1 -1
  47. package/components/ecl-radio/ecl-radio-label.component.d.ts.map +1 -1
  48. package/components/ecl-radio/ecl-radio.directive.d.ts.map +1 -1
  49. package/components/ecl-range/ecl-range.directive.d.ts.map +1 -1
  50. package/components/ecl-rating-field/ecl-rating-field.component.d.ts.map +1 -1
  51. package/components/ecl-select/ecl-select-container.component.d.ts.map +1 -1
  52. package/components/ecl-select/ecl-select.directive.d.ts.map +1 -1
  53. package/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.d.ts.map +1 -1
  54. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.d.ts.map +1 -1
  55. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.d.ts.map +1 -1
  56. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.d.ts.map +1 -1
  57. package/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.d.ts.map +1 -1
  58. package/components/ecl-site-footer/ecl-site-footer.component.d.ts.map +1 -1
  59. package/components/ecl-site-header/login/ecl-site-header-login.component.d.ts.map +1 -1
  60. package/components/ecl-social-media-follow/ecl-social-media-follow.component.d.ts.map +1 -1
  61. package/components/ecl-social-media-share/ecl-social-media-share.component.d.ts.map +1 -1
  62. package/components/ecl-splash-page/ecl-splash-page-language-category/ecl-splash-page-language-category.component.d.ts +11 -0
  63. package/components/ecl-splash-page/ecl-splash-page-language-category/ecl-splash-page-language-category.component.d.ts.map +1 -1
  64. package/components/ecl-splash-page/ecl-splash-page-language-container/ecl-splash-page-language-container.component.d.ts +10 -0
  65. package/components/ecl-splash-page/ecl-splash-page-language-container/ecl-splash-page-language-container.component.d.ts.map +1 -1
  66. package/components/ecl-splash-page/ecl-splash-page-language-link/ecl-splash-page-language-link.component.d.ts +17 -0
  67. package/components/ecl-splash-page/ecl-splash-page-language-link/ecl-splash-page-language-link.component.d.ts.map +1 -1
  68. package/components/ecl-splash-page/ecl-splash-page-language-list.directive.d.ts +12 -0
  69. package/components/ecl-splash-page/ecl-splash-page-language-list.directive.d.ts.map +1 -1
  70. package/components/ecl-splash-page/ecl-splash-page-picture.directive.d.ts +18 -0
  71. package/components/ecl-splash-page/ecl-splash-page-picture.directive.d.ts.map +1 -1
  72. package/components/ecl-splash-page/ecl-splash-page.component.d.ts +11 -0
  73. package/components/ecl-splash-page/ecl-splash-page.component.d.ts.map +1 -1
  74. package/components/ecl-sticky-container/ecl-sticky-container.component.d.ts.map +1 -1
  75. package/components/ecl-table/ecl-table-sort-button.component.d.ts +17 -0
  76. package/components/ecl-table/ecl-table-sort-button.component.d.ts.map +1 -1
  77. package/components/ecl-table/ecl-table.directive.d.ts +138 -0
  78. package/components/ecl-table/ecl-table.directive.d.ts.map +1 -1
  79. package/components/ecl-table/events/ecl-sort-table.event.d.ts +22 -1
  80. package/components/ecl-table/events/ecl-sort-table.event.d.ts.map +1 -1
  81. package/components/ecl-tabs/ecl-tab-more.component.d.ts.map +1 -1
  82. package/components/ecl-tabs/ecl-tab.component.d.ts.map +1 -1
  83. package/components/ecl-tag/ecl-tag.component.d.ts.map +1 -1
  84. package/components/ecl-text-area/ecl-text-area.directive.d.ts.map +1 -1
  85. package/components/ecl-text-input/ecl-text-input.directive.d.ts.map +1 -1
  86. package/components/ecl-timeline/ecl-timeline-item.component.d.ts.map +1 -1
  87. package/core/ecl-base.directive.d.ts.map +1 -1
  88. package/docs/classes/EclSortTableEvent.html +21 -0
  89. package/docs/components/EclSplashPageComponent.html +27 -0
  90. package/docs/components/EclSplashPageLanguageCategoryComponent.html +32 -0
  91. package/docs/components/EclSplashPageLanguageContainerComponent.html +31 -0
  92. package/docs/components/EclSplashPageLanguageLinkComponent.html +38 -0
  93. package/docs/components/EclTableSortButtonComponent.html +44 -0
  94. package/docs/dependencies.html +19 -19
  95. package/docs/directives/EclSplashPageLanguageItemDirective.html +19 -0
  96. package/docs/directives/EclSplashPageLanguageListDirective.html +19 -0
  97. package/docs/directives/EclSplashPageLogoImageDirective.html +24 -0
  98. package/docs/directives/EclSplashPageLogoLinkDirective.html +24 -0
  99. package/docs/directives/EclSplashPagePictureDirective.html +24 -0
  100. package/docs/directives/EclTableBodyDirective.html +17 -0
  101. package/docs/directives/EclTableCaptionDirective.html +12 -0
  102. package/docs/directives/EclTableCellDirective.html +30 -0
  103. package/docs/directives/EclTableCellGroupDirective.html +23 -0
  104. package/docs/directives/EclTableDirective.html +56 -0
  105. package/docs/directives/EclTableHeadDirective.html +31 -0
  106. package/docs/directives/EclTableHeaderDirective.html +80 -0
  107. package/docs/directives/EclTableResponsiveDirective.html +17 -0
  108. package/docs/directives/EclTableRowDirective.html +17 -0
  109. package/docs/js/search/search_index.js +2 -2
  110. package/docs/miscellaneous/enumerations.html +6 -0
  111. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +10 -10
  112. package/fesm2022/eui-ecl-components-ecl-app.mjs +7 -7
  113. package/fesm2022/eui-ecl-components-ecl-banner.mjs +34 -34
  114. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +13 -13
  115. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +13 -13
  116. package/fesm2022/eui-ecl-components-ecl-button.mjs +16 -16
  117. package/fesm2022/eui-ecl-components-ecl-card.mjs +16 -16
  118. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +10 -10
  119. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +13 -13
  120. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +16 -16
  121. package/fesm2022/eui-ecl-components-ecl-content-block.mjs +58 -58
  122. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +13 -13
  123. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +7 -7
  124. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +7 -7
  125. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +7 -7
  126. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +22 -22
  127. package/fesm2022/eui-ecl-components-ecl-featured.mjs +25 -25
  128. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +7 -7
  129. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +7 -7
  130. package/fesm2022/eui-ecl-components-ecl-file.mjs +34 -34
  131. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +7 -7
  132. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +10 -10
  133. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +22 -22
  134. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +7 -7
  135. package/fesm2022/eui-ecl-components-ecl-icon.mjs +7 -7
  136. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +16 -16
  137. package/fesm2022/eui-ecl-components-ecl-label.mjs +7 -7
  138. package/fesm2022/eui-ecl-components-ecl-link.mjs +16 -16
  139. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -19
  140. package/fesm2022/eui-ecl-components-ecl-list.mjs +31 -31
  141. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -13
  142. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +19 -19
  143. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +49 -49
  144. package/fesm2022/eui-ecl-components-ecl-menu.mjs +16 -16
  145. package/fesm2022/eui-ecl-components-ecl-modal.mjs +25 -25
  146. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +25 -25
  147. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +16 -16
  148. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +13 -13
  149. package/fesm2022/eui-ecl-components-ecl-notification.mjs +10 -10
  150. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +37 -37
  151. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +13 -13
  152. package/fesm2022/eui-ecl-components-ecl-popover.mjs +13 -13
  153. package/fesm2022/eui-ecl-components-ecl-radio.mjs +16 -16
  154. package/fesm2022/eui-ecl-components-ecl-range.mjs +13 -13
  155. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +7 -7
  156. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +7 -7
  157. package/fesm2022/eui-ecl-components-ecl-select.mjs +10 -10
  158. package/fesm2022/eui-ecl-components-ecl-separator.mjs +7 -7
  159. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +61 -61
  160. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +64 -64
  161. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +13 -13
  162. package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs +13 -13
  163. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +97 -31
  164. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  165. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +7 -7
  166. package/fesm2022/eui-ecl-components-ecl-table.mjs +204 -37
  167. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  168. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +16 -16
  169. package/fesm2022/eui-ecl-components-ecl-tag.mjs +16 -16
  170. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +7 -7
  171. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +7 -7
  172. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +19 -19
  173. package/fesm2022/eui-ecl-core.mjs +25 -25
  174. package/fesm2022/eui-ecl-shared.mjs +3 -3
  175. package/fesm2022/eui-ecl.mjs +4 -4
  176. package/package.json +1 -1
@@ -9,19 +9,36 @@ import { takeUntil } from 'rxjs/operators';
9
9
  import * as i1 from '@eui/ecl/core';
10
10
  import { ECLBaseDirective, EclBaseEvent } from '@eui/ecl/core';
11
11
 
12
+ /**
13
+ * Sort button component used inside sortable table headers.
14
+ *
15
+ * Applies ECL styling for table sort arrows and provides
16
+ * accessibility label for screen readers.
17
+ */
12
18
  class EclTableSortButtonComponent extends ECLBaseDirective {
19
+ /**
20
+ * ECL theme service instance used internally for theming logic.
21
+ */
13
22
  constructor(eclThemeService) {
14
23
  super();
15
24
  this.eclThemeService = eclThemeService;
25
+ /**
26
+ * Accessibility label describing the button's function.
27
+ * This value is bound to the `aria-label` attribute.
28
+ */
16
29
  this.ariaLabel = 'Sort table';
17
30
  }
31
+ /**
32
+ * CSS classes applied to the host element.
33
+ * Includes ECL base table sort arrow styling.
34
+ */
18
35
  get cssClasses() {
19
36
  return [super.getCssClasses('ecl-table__arrow')].join(' ').trim();
20
37
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableSortButtonComponent, deps: [{ token: i1.EclThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.12", type: EclTableSortButtonComponent, isStandalone: false, selector: "button[eclTableSortButton]", host: { properties: { "attr.aria-label": "this.ariaLabel", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-up\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-down\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n", dependencies: [{ kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableSortButtonComponent, deps: [{ token: i1.EclThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: EclTableSortButtonComponent, isStandalone: false, selector: "button[eclTableSortButton]", host: { properties: { "attr.aria-label": "this.ariaLabel", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-up\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-down\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n", dependencies: [{ kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
23
40
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableSortButtonComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableSortButtonComponent, decorators: [{
25
42
  type: Component,
26
43
  args: [{ selector: 'button[eclTableSortButton]', standalone: false, template: "<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-up\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-down\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n" }]
27
44
  }], ctorParameters: () => [{ type: i1.EclThemeService }], propDecorators: { ariaLabel: [{
@@ -32,40 +49,86 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
32
49
  args: ['class']
33
50
  }] } });
34
51
 
52
+ /**
53
+ * Event emitted when the table sort order changes.
54
+ *
55
+ * Extends the base ECL event to provide sorting-specific information.
56
+ */
35
57
  class EclSortTableEvent extends EclBaseEvent {
36
- constructor(sortOrder, columnId) {
58
+ constructor(
59
+ /**
60
+ * The order in which the table is currently sorted.
61
+ * Can be 'ascending', 'descending', or null (unsorted).
62
+ */
63
+ sortOrder,
64
+ /**
65
+ * The identifier of the column that triggered the sort event.
66
+ */
67
+ columnId) {
37
68
  super();
38
69
  this.sortOrder = sortOrder;
39
70
  this.columnId = columnId;
40
71
  }
41
72
  }
42
73
 
74
+ /**
75
+ * Enum representing the sort order of a column.
76
+ */
43
77
  var SortOrder;
44
78
  (function (SortOrder) {
45
79
  SortOrder["DESCENDING"] = "descending";
46
80
  SortOrder["ASCENDING"] = "ascending";
47
81
  })(SortOrder || (SortOrder = {}));
82
+ /**
83
+ * Directive for styling and managing behavior of ECL tables.
84
+ *
85
+ * Applies ECL-specific table classes and emits sort events when columns are sorted.
86
+ */
48
87
  class EclTableDirective extends ECLBaseDirective {
88
+ /**
89
+ * Computed list of CSS classes for the host element.
90
+ */
49
91
  get cssClasses() {
50
92
  return [super.getCssClasses('ecl-table'), this.isZebra ? 'ecl-table--zebra' : '', this.isSimple ? 'ecl-table--simple' : ''].join(' ').trim();
51
93
  }
52
94
  constructor(differs) {
53
95
  super();
54
96
  this.differs = differs;
97
+ /**
98
+ * Applies zebra striping to the table rows by adding the `ecl-table--zebra` class if true.
99
+ */
55
100
  this.isZebra = false;
101
+ /**
102
+ * Applies the "simple" table variant if true.
103
+ * Automatically enabled if no header is detected.
104
+ */
56
105
  this.isSimple = false;
106
+ /**
107
+ * Emits an event when a column sort is triggered.
108
+ */
57
109
  this.sort = new EventEmitter();
58
110
  this.destroy$ = new Subject();
59
111
  this.differ = this.differs.find([]).create();
60
112
  }
113
+ /**
114
+ * Lifecycle hook that runs on component initialization.
115
+ * Generates a unique ID if none is provided.
116
+ */
61
117
  ngOnInit() {
62
118
  if (!this.id) {
63
119
  this.id = crypto.randomUUID();
64
120
  }
65
121
  }
122
+ /**
123
+ * Lifecycle hook that runs after content is fully initialized.
124
+ * Determines if the table should be rendered in "simple" mode.
125
+ */
66
126
  ngAfterContentInit() {
67
127
  this.convertToSimpleVariant();
68
128
  }
129
+ /**
130
+ * Custom change detection for dynamically added header directives.
131
+ */
69
132
  ngDoCheck() {
70
133
  const diff = this.differ.diff(this.eclTableHeaders);
71
134
  if (diff) {
@@ -76,19 +139,25 @@ class EclTableDirective extends ECLBaseDirective {
76
139
  });
77
140
  }
78
141
  }
142
+ /**
143
+ * Cleans up subscriptions on destroy to prevent memory leaks.
144
+ */
79
145
  ngOnDestroy() {
80
146
  this.destroy$.next(true);
81
147
  this.destroy$.unsubscribe();
82
148
  }
149
+ /**
150
+ * Sets the table to "simple" variant if no header directives are found.
151
+ */
83
152
  convertToSimpleVariant() {
84
153
  if (this.eclTableHeaders.length === 0) {
85
154
  this.isSimple = true;
86
155
  }
87
156
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableDirective, deps: [{ token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
89
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.12", type: EclTableDirective, isStandalone: false, selector: "[eclTable]", inputs: { isZebra: ["isZebra", "isZebra", booleanAttribute], isSimple: ["isSimple", "isSimple", booleanAttribute], id: "id" }, outputs: { sort: "sort" }, host: { properties: { "attr.id": "this.id", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclTableHeaders", predicate: i0.forwardRef(() => EclTableHeaderDirective), descendants: true }], usesInheritance: true, ngImport: i0 }); }
157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableDirective, deps: [{ token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
158
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.14", type: EclTableDirective, isStandalone: false, selector: "[eclTable]", inputs: { isZebra: ["isZebra", "isZebra", booleanAttribute], isSimple: ["isSimple", "isSimple", booleanAttribute], id: "id" }, outputs: { sort: "sort" }, host: { properties: { "attr.id": "this.id", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclTableHeaders", predicate: i0.forwardRef(() => EclTableHeaderDirective), descendants: true }], usesInheritance: true, ngImport: i0 }); }
90
159
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableDirective, decorators: [{
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableDirective, decorators: [{
92
161
  type: Directive,
93
162
  args: [{
94
163
  selector: '[eclTable]',
@@ -114,7 +183,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
114
183
  type: ContentChildren,
115
184
  args: [forwardRef(() => EclTableHeaderDirective), { descendants: true }]
116
185
  }] } });
186
+ /**
187
+ * Directive applied to `<thead>` elements inside a table.
188
+ * Detects header changes and manages ARIA attributes.
189
+ */
117
190
  class EclTableHeadDirective extends ECLBaseDirective {
191
+ /**
192
+ * Applies the ECL head class to the element.
193
+ */
118
194
  get cssClasses() {
119
195
  return [super.getCssClasses('ecl-table__head')].join(' ').trim();
120
196
  }
@@ -124,6 +200,9 @@ class EclTableHeadDirective extends ECLBaseDirective {
124
200
  this.destroy$ = new Subject();
125
201
  this.differ = this.differs.find([]).create();
126
202
  }
203
+ /**
204
+ * Detects dynamic addition of header directives and resets ARIA sorting attributes.
205
+ */
127
206
  ngDoCheck() {
128
207
  const diff = this.differ.diff(this.eclTableHeaders);
129
208
  if (diff) {
@@ -136,14 +215,17 @@ class EclTableHeadDirective extends ECLBaseDirective {
136
215
  });
137
216
  }
138
217
  }
218
+ /**
219
+ * Cleans up subscriptions on destroy to prevent memory leaks.
220
+ */
139
221
  ngOnDestroy() {
140
222
  this.destroy$.next(true);
141
223
  this.destroy$.unsubscribe();
142
224
  }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableHeadDirective, deps: [{ token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
144
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.12", type: EclTableHeadDirective, isStandalone: false, selector: "[eclTableHead]", host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclTableHeaders", predicate: i0.forwardRef(() => EclTableHeaderDirective), descendants: true }], usesInheritance: true, ngImport: i0 }); }
225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableHeadDirective, deps: [{ token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
226
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: EclTableHeadDirective, isStandalone: false, selector: "[eclTableHead]", host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclTableHeaders", predicate: i0.forwardRef(() => EclTableHeaderDirective), descendants: true }], usesInheritance: true, ngImport: i0 }); }
145
227
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableHeadDirective, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableHeadDirective, decorators: [{
147
229
  type: Directive,
148
230
  args: [{
149
231
  selector: '[eclTableHead]',
@@ -156,7 +238,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
156
238
  type: ContentChildren,
157
239
  args: [forwardRef(() => EclTableHeaderDirective), { descendants: true }]
158
240
  }] } });
241
+ /**
242
+ * Directive representing a single table header cell in an ECL table.
243
+ * Supports sorting functionality and accessibility attributes.
244
+ */
159
245
  class EclTableHeaderDirective extends ECLBaseDirective {
246
+ /**
247
+ * Computes the CSS classes applied to the header element.
248
+ */
160
249
  get cssClasses() {
161
250
  return [super.getCssClasses('ecl-table__header')].join(' ').trim();
162
251
  }
@@ -165,24 +254,56 @@ class EclTableHeaderDirective extends ECLBaseDirective {
165
254
  this.el = el;
166
255
  this.viewContainerRef = viewContainerRef;
167
256
  this.renderer = renderer;
257
+ /**
258
+ * Current sort order of the column (`ascending`, `descending`, or `null`).
259
+ * This sets the `aria-sort` attribute used for accessibility.
260
+ */
168
261
  this.sortOrder = null;
262
+ /**
263
+ * Enables sorting on the header. Also sets the `data-ecl-table-sort-toggle` attribute.
264
+ * Acts as the unique identifier for the column when sorting.
265
+ */
169
266
  this.eclSortable = null;
267
+ /**
268
+ * Scope of the table header. Default is `col`. Sets the `scope` attribute.
269
+ */
170
270
  this.scope = 'col';
271
+ /**
272
+ * Emits an `EclSortTableEvent` when the header is clicked and sorting is triggered.
273
+ */
171
274
  this.sort = new EventEmitter();
172
275
  }
276
+ /**
277
+ * Lifecycle hook that runs on component initialization.
278
+ * Generates a unique `id` if not already defined.
279
+ */
173
280
  ngOnInit() {
174
281
  if (!this.id) {
175
282
  this.id = crypto.randomUUID();
176
283
  }
177
284
  }
285
+ /**
286
+ * Lifecycle hook that runs after the view is initialized.
287
+ * Injects the sort button into the header cell if sorting is enabled.
288
+ */
178
289
  ngAfterContentInit() {
179
290
  this.initSortButtons();
180
291
  }
181
- // Remove the dark arrow for current sorting from prev sorted column
292
+ /**
293
+ * Clears the `aria-sort` attribute, used to visually and semantically reset previous sort state.
294
+ *
295
+ * Remove the dark arrow for current sorting from prev sorted column
296
+ */
182
297
  removeAriaSort() {
183
298
  this.renderer.removeAttribute(this.el.nativeElement, 'aria-sort');
184
299
  }
185
- // Click triggers 1 -> asc sorting, 2 -> desc sorting then 3 -> initial sorting
300
+ /**
301
+ * Handles click events on the header.
302
+ * Cycles through sort orders: `null` -> `ascending` -> `descending` -> `null`.
303
+ * Emits a `EclSortTableEvent` with the updated sort state and column identifier.
304
+ *
305
+ * Click triggers 1 -> asc sorting, 2 -> desc sorting then 3 -> initial sorting
306
+ */
186
307
  onClick(evt) {
187
308
  if (this.eclSortable) {
188
309
  switch (this.sortOrder) {
@@ -202,6 +323,10 @@ class EclTableHeaderDirective extends ECLBaseDirective {
202
323
  this.sort.emit(new EclSortTableEvent(this.sortOrder, this.eclSortable));
203
324
  }
204
325
  }
326
+ /**
327
+ * Dynamically creates and appends the sort button to the header cell.
328
+ * Optionally sets the button's `aria-label` if provided.
329
+ */
205
330
  initSortButtons() {
206
331
  if (this.eclSortable) {
207
332
  setTimeout(() => {
@@ -213,10 +338,10 @@ class EclTableHeaderDirective extends ECLBaseDirective {
213
338
  });
214
339
  }
215
340
  }
216
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableHeaderDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
217
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.12", type: EclTableHeaderDirective, isStandalone: false, selector: "[eclTableHeader]", inputs: { eclSortable: "eclSortable", scope: "scope", id: "id", sortButtonAriaLabel: "sortButtonAriaLabel" }, outputs: { sort: "sort" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.aria-sort": "this.sortOrder", "attr.data-ecl-table-sort-toggle": "this.eclSortable", "attr.scope": "this.scope", "attr.id": "this.id", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
341
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableHeaderDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
342
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: EclTableHeaderDirective, isStandalone: false, selector: "[eclTableHeader]", inputs: { eclSortable: "eclSortable", scope: "scope", id: "id", sortButtonAriaLabel: "sortButtonAriaLabel" }, outputs: { sort: "sort" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.aria-sort": "this.sortOrder", "attr.data-ecl-table-sort-toggle": "this.eclSortable", "attr.scope": "this.scope", "attr.id": "this.id", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
218
343
  }
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableHeaderDirective, decorators: [{
344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableHeaderDirective, decorators: [{
220
345
  type: Directive,
221
346
  args: [{
222
347
  selector: '[eclTableHeader]',
@@ -251,14 +376,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
251
376
  type: HostListener,
252
377
  args: ['click', ['$event']]
253
378
  }] } });
379
+ /**
380
+ * Directive for applying ECL row styling to a table row element.
381
+ */
254
382
  class EclTableRowDirective extends ECLBaseDirective {
383
+ /**
384
+ * Applies `ecl-table__row` class to the table row.
385
+ */
255
386
  get cssClasses() {
256
387
  return [super.getCssClasses('ecl-table__row')].join(' ').trim();
257
388
  }
258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableRowDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
259
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.12", type: EclTableRowDirective, isStandalone: false, selector: "[eclTableRow]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
389
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableRowDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
390
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: EclTableRowDirective, isStandalone: false, selector: "[eclTableRow]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
260
391
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableRowDirective, decorators: [{
392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableRowDirective, decorators: [{
262
393
  type: Directive,
263
394
  args: [{
264
395
  selector: '[eclTableRow]',
@@ -268,14 +399,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
268
399
  type: HostBinding,
269
400
  args: ['class']
270
401
  }] } });
402
+ /**
403
+ * Directive for applying ECL body styling to a table body element.
404
+ */
271
405
  class EclTableBodyDirective extends ECLBaseDirective {
406
+ /**
407
+ * Applies `ecl-table__body` class to the table body.
408
+ */
272
409
  get cssClasses() {
273
410
  return [super.getCssClasses('ecl-table__body')].join(' ').trim();
274
411
  }
275
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableBodyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
276
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.12", type: EclTableBodyDirective, isStandalone: false, selector: "[eclTableBody]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
412
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableBodyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
413
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: EclTableBodyDirective, isStandalone: false, selector: "[eclTableBody]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
277
414
  }
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableBodyDirective, decorators: [{
415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableBodyDirective, decorators: [{
279
416
  type: Directive,
280
417
  args: [{
281
418
  selector: '[eclTableBody]',
@@ -285,18 +422,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
285
422
  type: HostBinding,
286
423
  args: ['class']
287
424
  }] } });
425
+ /**
426
+ * Directive for styling individual table cells in the ECL table.
427
+ */
288
428
  class EclTableCellDirective extends ECLBaseDirective {
289
429
  constructor() {
290
430
  super(...arguments);
431
+ /**
432
+ * If `true`, applies additional group styling to the cell.
433
+ */
291
434
  this.isGroup = false;
292
435
  }
436
+ /**
437
+ * Computes and applies appropriate CSS classes for the table cell.
438
+ */
293
439
  get cssClasses() {
294
440
  return [super.getCssClasses('ecl-table__cell'), this.isGroup ? 'ecl-table__cell--group' : ''].join(' ').trim();
295
441
  }
296
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableCellDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
297
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.12", type: EclTableCellDirective, isStandalone: false, selector: "[eclTableCell]", inputs: { eclTableCellHeader: "eclTableCellHeader", isGroup: "isGroup" }, host: { properties: { "attr.data-ecl-table-header": "this.eclTableCellHeader", "class.ecl-table__cell--group": "this.isGroup", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
442
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableCellDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
443
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: EclTableCellDirective, isStandalone: false, selector: "[eclTableCell]", inputs: { eclTableCellHeader: "eclTableCellHeader", isGroup: "isGroup" }, host: { properties: { "attr.data-ecl-table-header": "this.eclTableCellHeader", "class.ecl-table__cell--group": "this.isGroup", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
298
444
  }
299
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableCellDirective, decorators: [{
445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableCellDirective, decorators: [{
300
446
  type: Directive,
301
447
  args: [{
302
448
  selector: '[eclTableCell]',
@@ -316,7 +462,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
316
462
  type: HostBinding,
317
463
  args: ['class']
318
464
  }] } });
465
+ /**
466
+ * Directive used to group multiple table cells under a shared header group.
467
+ */
319
468
  class EclTableCellGroupDirective extends ECLBaseDirective {
469
+ /**
470
+ * Applies the group-specific cell class.
471
+ */
320
472
  get cssClasses() {
321
473
  return [super.getCssClasses('ecl-table__cell--group')].join(' ').trim();
322
474
  }
@@ -324,14 +476,17 @@ class EclTableCellGroupDirective extends ECLBaseDirective {
324
476
  super();
325
477
  this.cd = cd;
326
478
  }
479
+ /**
480
+ * Ensures `data-ecl-table-header-group` is not empty and triggers change detection.
481
+ */
327
482
  ngAfterViewInit() {
328
483
  this.eclTableCellGroup = this.eclTableCellGroup !== '' ? this.eclTableCellGroup : null;
329
484
  this.cd.detectChanges();
330
485
  }
331
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableCellGroupDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
332
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.12", type: EclTableCellGroupDirective, isStandalone: false, selector: "[eclTableCellGroup]", inputs: { eclTableCellGroup: "eclTableCellGroup" }, host: { properties: { "attr.data-ecl-table-header-group": "this.eclTableCellGroup", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
486
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableCellGroupDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
487
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: EclTableCellGroupDirective, isStandalone: false, selector: "[eclTableCellGroup]", inputs: { eclTableCellGroup: "eclTableCellGroup" }, host: { properties: { "attr.data-ecl-table-header-group": "this.eclTableCellGroup", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
333
488
  }
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableCellGroupDirective, decorators: [{
489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableCellGroupDirective, decorators: [{
335
490
  type: Directive,
336
491
  args: [{
337
492
  selector: '[eclTableCellGroup]',
@@ -346,14 +501,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
346
501
  type: HostBinding,
347
502
  args: ['class']
348
503
  }] } });
504
+ /**
505
+ * Directive for applying ECL responsive wrapper to a table container.
506
+ */
349
507
  class EclTableResponsiveDirective extends ECLBaseDirective {
508
+ /**
509
+ * Applies the `ecl-table-responsive` class.
510
+ */
350
511
  get cssClasses() {
351
512
  return [super.getCssClasses('ecl-table-responsive')].join(' ').trim();
352
513
  }
353
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableResponsiveDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
354
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.12", type: EclTableResponsiveDirective, isStandalone: false, selector: "[eclTableResponsive]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
514
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableResponsiveDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
515
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: EclTableResponsiveDirective, isStandalone: false, selector: "[eclTableResponsive]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
355
516
  }
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableResponsiveDirective, decorators: [{
517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableResponsiveDirective, decorators: [{
357
518
  type: Directive,
358
519
  args: [{
359
520
  selector: '[eclTableResponsive]',
@@ -363,15 +524,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
363
524
  type: HostBinding,
364
525
  args: ['class']
365
526
  }] } });
527
+ /**
528
+ * Directive for applying styling to a table caption element.
529
+ */
366
530
  class EclTableCaptionDirective extends ECLBaseDirective {
367
531
  constructor() {
368
532
  super(...arguments);
533
+ /**
534
+ * Applies the `ecl-table__caption` class to the caption.
535
+ */
369
536
  this.hasClass = true;
370
537
  }
371
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableCaptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
372
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.12", type: EclTableCaptionDirective, isStandalone: false, selector: "caption[eclTableCaption]", host: { properties: { "class.ecl-table__caption": "this.hasClass" } }, usesInheritance: true, ngImport: i0 }); }
538
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableCaptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
539
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: EclTableCaptionDirective, isStandalone: false, selector: "caption[eclTableCaption]", host: { properties: { "class.ecl-table__caption": "this.hasClass" } }, usesInheritance: true, ngImport: i0 }); }
373
540
  }
374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableCaptionDirective, decorators: [{
541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableCaptionDirective, decorators: [{
375
542
  type: Directive,
376
543
  args: [{
377
544
  selector: 'caption[eclTableCaption]',
@@ -395,8 +562,8 @@ const COMPONENTS = [
395
562
  EclTableResponsiveDirective,
396
563
  ];
397
564
  class EclTableModule {
398
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
399
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.12", ngImport: i0, type: EclTableModule, declarations: [EclTableCaptionDirective,
565
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
566
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: EclTableModule, declarations: [EclTableCaptionDirective,
400
567
  EclTableDirective,
401
568
  EclTableHeadDirective,
402
569
  EclTableHeaderDirective,
@@ -415,9 +582,9 @@ class EclTableModule {
415
582
  EclTableCellGroupDirective,
416
583
  EclTableSortButtonComponent,
417
584
  EclTableResponsiveDirective] }); }
418
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableModule, imports: [CommonModule, EclIconModule] }); }
585
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableModule, imports: [CommonModule, EclIconModule] }); }
419
586
  }
420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclTableModule, decorators: [{
587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclTableModule, decorators: [{
421
588
  type: NgModule,
422
589
  args: [{
423
590
  imports: [CommonModule, EclIconModule],
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-table.mjs","sources":["../../components/ecl-table/ecl-table-sort-button.component.ts","../../components/ecl-table/ecl-table-sort-button.component.html","../../components/ecl-table/events/ecl-sort-table.event.ts","../../components/ecl-table/ecl-table.directive.ts","../../components/ecl-table/ecl-table.module.ts","../../components/ecl-table/eui-ecl-components-ecl-table.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[eclTableSortButton]',\n templateUrl: './ecl-table-sort-button.component.html',\n standalone: false,\n})\nexport class EclTableSortButtonComponent extends ECLBaseDirective {\n @HostBinding('attr.aria-label') ariaLabel = 'Sort table';\n\n constructor(public eclThemeService: EclThemeService) {\n super();\n }\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__arrow')].join(' ').trim();\n }\n}\n","<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-up\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-down\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n","import { EclBaseEvent } from '@eui/ecl/core';\nimport { SortOrder } from '../ecl-table.directive';\n\nexport class EclSortTableEvent extends EclBaseEvent {\n constructor(\n public sortOrder: SortOrder,\n public columnId: string,\n ) {\n super();\n }\n}","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n Output,\n QueryList,\n ViewContainerRef,\n booleanAttribute,\n Renderer2,\n AfterViewInit,\n ChangeDetectorRef,\n OnInit,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclTableSortButtonComponent } from './ecl-table-sort-button.component';\nimport { EclSortTableEvent } from './events/ecl-sort-table.event';\n\nexport enum SortOrder {\n DESCENDING = 'descending',\n ASCENDING = 'ascending',\n}\n\n@Directive({\n selector: '[eclTable]',\n standalone: false,\n})\nexport class EclTableDirective extends ECLBaseDirective implements DoCheck, OnDestroy, OnInit, AfterContentInit {\n @Input({ transform: booleanAttribute }) isZebra = false;\n @Input({ transform: booleanAttribute }) isSimple = false;\n @Input() @HostBinding ('attr.id') id: string;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table'), this.isZebra ? 'ecl-table--zebra' : '', this.isSimple ? 'ecl-table--simple' : ''].join(' ').trim();\n }\n\n @Output() sort = new EventEmitter<EclSortTableEvent>();\n\n @ContentChildren(forwardRef(() => EclTableHeaderDirective), { descendants: true })\n eclTableHeaders: QueryList<EclTableHeaderDirective>;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclTableHeaderDirective>;\n\n constructor(private differs: IterableDiffers) {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n ngOnInit(): void {\n if (!this.id) {\n this.id = crypto.randomUUID();\n }\n }\n\n ngAfterContentInit(): void {\n this.convertToSimpleVariant();\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclTableHeaders);\n if (diff) {\n diff.forEachAddedItem((change) => {\n change.item.sort.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.sort.emit(evt);\n });\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private convertToSimpleVariant(): void {\n if (this.eclTableHeaders.length === 0) {\n this.isSimple = true;\n }\n }\n}\n\n@Directive({\n selector: '[eclTableHead]',\n standalone: false,\n})\nexport class EclTableHeadDirective extends ECLBaseDirective implements OnDestroy, DoCheck {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__head')].join(' ').trim();\n }\n\n @ContentChildren(forwardRef(() => EclTableHeaderDirective), { descendants: true })\n eclTableHeaders: QueryList<EclTableHeaderDirective>;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclTableHeaderDirective>;\n\n constructor(private differs: IterableDiffers) {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclTableHeaders);\n if (diff) {\n diff.forEachAddedItem((change) => {\n change.item.sort.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclTableHeaders.forEach((th) => {\n th.removeAriaSort();\n });\n });\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n@Directive({\n selector: '[eclTableHeader]',\n standalone: false,\n})\nexport class EclTableHeaderDirective extends ECLBaseDirective implements AfterContentInit, OnInit {\n @HostBinding('attr.aria-sort') sortOrder: SortOrder = null;\n @Input() @HostBinding('attr.data-ecl-table-sort-toggle') eclSortable = null;\n @Input() @HostBinding('attr.scope') scope = 'col';\n @Input() @HostBinding('attr.id') id: string;\n @Input() sortButtonAriaLabel: string;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__header')].join(' ').trim();\n }\n\n @Output() sort = new EventEmitter<EclSortTableEvent>();\n\n constructor(\n private el: ElementRef,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2,\n ) {\n super();\n }\n\n ngOnInit(): void {\n if (!this.id) {\n this.id = crypto.randomUUID();\n }\n }\n\n ngAfterContentInit(): void {\n this.initSortButtons();\n }\n\n // Remove the dark arrow for current sorting from prev sorted column\n removeAriaSort(): void {\n this.renderer.removeAttribute(this.el.nativeElement, 'aria-sort');\n }\n\n // Click triggers 1 -> asc sorting, 2 -> desc sorting then 3 -> initial sorting\n @HostListener('click', ['$event'])\n onClick(evt: Event): void {\n if (this.eclSortable) {\n switch (this.sortOrder) {\n case null: {\n this.sortOrder = SortOrder.ASCENDING;\n break;\n }\n case SortOrder.ASCENDING: {\n this.sortOrder = SortOrder.DESCENDING;\n break;\n }\n case SortOrder.DESCENDING: {\n this.sortOrder = null;\n break;\n }\n }\n\n this.sort.emit(new EclSortTableEvent(this.sortOrder, this.eclSortable));\n }\n }\n\n private initSortButtons(): void {\n if (this.eclSortable) {\n setTimeout(() => {\n const containerComponentRef = this.viewContainerRef.createComponent(EclTableSortButtonComponent);\n this.renderer.appendChild(this.el.nativeElement, containerComponentRef.location.nativeElement);\n if (this.sortButtonAriaLabel) {\n containerComponentRef.instance.ariaLabel = this.sortButtonAriaLabel;\n }\n });\n }\n }\n}\n\n@Directive({\n selector: '[eclTableRow]',\n standalone: false,\n})\nexport class EclTableRowDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__row')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclTableBody]',\n standalone: false,\n})\nexport class EclTableBodyDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__body')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclTableCell]',\n standalone: false,\n})\nexport class EclTableCellDirective extends ECLBaseDirective {\n @Input() @HostBinding('attr.data-ecl-table-header') eclTableCellHeader: string;\n @Input() @HostBinding('class.ecl-table__cell--group') isGroup = false;\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__cell'), this.isGroup ? 'ecl-table__cell--group' : ''].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclTableCellGroup]',\n standalone: false,\n})\nexport class EclTableCellGroupDirective extends ECLBaseDirective implements AfterViewInit {\n @Input() @HostBinding('attr.data-ecl-table-header-group') eclTableCellGroup: string;\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__cell--group')].join(' ').trim();\n }\n\n constructor(private cd: ChangeDetectorRef) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.eclTableCellGroup = this.eclTableCellGroup !== '' ? this.eclTableCellGroup : null;\n this.cd.detectChanges();\n }\n}\n\n@Directive({\n selector: '[eclTableResponsive]',\n standalone: false,\n})\nexport class EclTableResponsiveDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table-responsive')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: 'caption[eclTableCaption]',\n standalone: false,\n})\nexport class EclTableCaptionDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-table__caption') hasClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport {\n EclTableDirective,\n EclTableHeadDirective,\n EclTableHeaderDirective,\n EclTableRowDirective,\n EclTableBodyDirective,\n EclTableCellDirective,\n EclTableCellGroupDirective,\n EclTableResponsiveDirective,\n EclTableCaptionDirective,\n} from './ecl-table.directive';\nimport { EclTableSortButtonComponent } from './ecl-table-sort-button.component';\n\nconst COMPONENTS = [\n EclTableCaptionDirective,\n EclTableDirective,\n EclTableHeadDirective,\n EclTableHeaderDirective,\n EclTableRowDirective,\n EclTableBodyDirective,\n EclTableCellDirective,\n EclTableCellGroupDirective,\n EclTableSortButtonComponent,\n EclTableResponsiveDirective,\n];\n@NgModule({\n imports: [CommonModule, EclIconModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-table.mjs","sources":["../../components/ecl-table/ecl-table-sort-button.component.ts","../../components/ecl-table/ecl-table-sort-button.component.html","../../components/ecl-table/events/ecl-sort-table.event.ts","../../components/ecl-table/ecl-table.directive.ts","../../components/ecl-table/ecl-table.module.ts","../../components/ecl-table/eui-ecl-components-ecl-table.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Sort button component used inside sortable table headers.\n * \n * Applies ECL styling for table sort arrows and provides\n * accessibility label for screen readers.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[eclTableSortButton]',\n templateUrl: './ecl-table-sort-button.component.html',\n standalone: false,\n})\nexport class EclTableSortButtonComponent extends ECLBaseDirective {\n /**\n * Accessibility label describing the button's function.\n * This value is bound to the `aria-label` attribute.\n */\n @HostBinding('attr.aria-label') ariaLabel = 'Sort table';\n\n /**\n * ECL theme service instance used internally for theming logic.\n */\n constructor(public eclThemeService: EclThemeService) {\n super();\n }\n\n /**\n * CSS classes applied to the host element.\n * Includes ECL base table sort arrow styling.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__arrow')].join(' ').trim();\n }\n}\n","<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-up\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n<ecl-icon icon=\"solid-arrow\" class=\"ecl-table__icon ecl-table__icon-down\" [size]=\"(eclThemeService.isEC$ | async) ? 'xs' : 'm'\"> </ecl-icon>\n","import { EclBaseEvent } from '@eui/ecl/core';\nimport { SortOrder } from '../ecl-table.directive';\n\n/**\n * Event emitted when the table sort order changes.\n *\n * Extends the base ECL event to provide sorting-specific information.\n */\nexport class EclSortTableEvent extends EclBaseEvent {\n constructor(\n /**\n * The order in which the table is currently sorted.\n * Can be 'ascending', 'descending', or null (unsorted).\n */\n public sortOrder: SortOrder,\n\n /**\n * The identifier of the column that triggered the sort event.\n */\n public columnId: string,\n ) {\n super();\n }\n}\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n Output,\n QueryList,\n ViewContainerRef,\n booleanAttribute,\n Renderer2,\n AfterViewInit,\n ChangeDetectorRef,\n OnInit,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclTableSortButtonComponent } from './ecl-table-sort-button.component';\nimport { EclSortTableEvent } from './events/ecl-sort-table.event';\n\n/**\n * Enum representing the sort order of a column.\n */\nexport enum SortOrder {\n DESCENDING = 'descending',\n ASCENDING = 'ascending',\n}\n\n/**\n * Directive for styling and managing behavior of ECL tables.\n *\n * Applies ECL-specific table classes and emits sort events when columns are sorted.\n */\n@Directive({\n selector: '[eclTable]',\n standalone: false,\n})\nexport class EclTableDirective extends ECLBaseDirective implements DoCheck, OnDestroy, OnInit, AfterContentInit {\n /**\n * Applies zebra striping to the table rows by adding the `ecl-table--zebra` class if true.\n */\n @Input({ transform: booleanAttribute }) isZebra = false;\n\n /**\n * Applies the \"simple\" table variant if true.\n * Automatically enabled if no header is detected.\n */\n @Input({ transform: booleanAttribute }) isSimple = false;\n\n /**\n * The HTML ID attribute of the table. If not provided, a UUID is generated.\n */\n @Input() @HostBinding ('attr.id') id: string;\n\n /**\n * Computed list of CSS classes for the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table'), this.isZebra ? 'ecl-table--zebra' : '', this.isSimple ? 'ecl-table--simple' : ''].join(' ').trim();\n }\n\n /**\n * Emits an event when a column sort is triggered.\n */\n @Output() sort = new EventEmitter<EclSortTableEvent>();\n\n /**\n * List of header directives detected in the content.\n */\n @ContentChildren(forwardRef(() => EclTableHeaderDirective), { descendants: true })\n eclTableHeaders: QueryList<EclTableHeaderDirective>;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclTableHeaderDirective>;\n\n constructor(private differs: IterableDiffers) {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n /**\n * Lifecycle hook that runs on component initialization.\n * Generates a unique ID if none is provided.\n */\n ngOnInit(): void {\n if (!this.id) {\n this.id = crypto.randomUUID();\n }\n }\n\n /**\n * Lifecycle hook that runs after content is fully initialized.\n * Determines if the table should be rendered in \"simple\" mode.\n */\n ngAfterContentInit(): void {\n this.convertToSimpleVariant();\n }\n\n /**\n * Custom change detection for dynamically added header directives.\n */\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclTableHeaders);\n if (diff) {\n diff.forEachAddedItem((change) => {\n change.item.sort.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.sort.emit(evt);\n });\n });\n }\n }\n\n /**\n * Cleans up subscriptions on destroy to prevent memory leaks.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Sets the table to \"simple\" variant if no header directives are found.\n */\n private convertToSimpleVariant(): void {\n if (this.eclTableHeaders.length === 0) {\n this.isSimple = true;\n }\n }\n}\n\n/**\n * Directive applied to `<thead>` elements inside a table.\n * Detects header changes and manages ARIA attributes.\n */\n@Directive({\n selector: '[eclTableHead]',\n standalone: false,\n})\nexport class EclTableHeadDirective extends ECLBaseDirective implements OnDestroy, DoCheck {\n /**\n * Applies the ECL head class to the element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__head')].join(' ').trim();\n }\n\n /**\n * List of header directives under this head element.\n */\n @ContentChildren(forwardRef(() => EclTableHeaderDirective), { descendants: true })\n eclTableHeaders: QueryList<EclTableHeaderDirective>;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclTableHeaderDirective>;\n\n constructor(private differs: IterableDiffers) {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n /**\n * Detects dynamic addition of header directives and resets ARIA sorting attributes.\n */\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclTableHeaders);\n if (diff) {\n diff.forEachAddedItem((change) => {\n change.item.sort.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclTableHeaders.forEach((th) => {\n th.removeAriaSort();\n });\n });\n });\n }\n }\n\n /**\n * Cleans up subscriptions on destroy to prevent memory leaks.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n@Directive({\n selector: '[eclTableHeader]',\n standalone: false,\n})\n/**\n * Directive representing a single table header cell in an ECL table.\n * Supports sorting functionality and accessibility attributes.\n */\nexport class EclTableHeaderDirective extends ECLBaseDirective implements AfterContentInit, OnInit {\n /**\n * Current sort order of the column (`ascending`, `descending`, or `null`).\n * This sets the `aria-sort` attribute used for accessibility.\n */\n @HostBinding('attr.aria-sort') sortOrder: SortOrder = null;\n\n /**\n * Enables sorting on the header. Also sets the `data-ecl-table-sort-toggle` attribute.\n * Acts as the unique identifier for the column when sorting.\n */\n @Input() @HostBinding('attr.data-ecl-table-sort-toggle') eclSortable = null;\n\n /**\n * Scope of the table header. Default is `col`. Sets the `scope` attribute.\n */\n @Input() @HostBinding('attr.scope') scope = 'col';\n\n /**\n * HTML `id` attribute of the table header cell. If not provided, a UUID will be generated.\n */\n @Input() @HostBinding('attr.id') id: string;\n\n /**\n * Aria-label for the sort button that will be injected into the header cell.\n */\n @Input() sortButtonAriaLabel: string;\n\n /**\n * Computes the CSS classes applied to the header element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__header')].join(' ').trim();\n }\n\n /**\n * Emits an `EclSortTableEvent` when the header is clicked and sorting is triggered.\n */\n @Output() sort = new EventEmitter<EclSortTableEvent>();\n\n constructor(\n private el: ElementRef,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2,\n ) {\n super();\n }\n\n /**\n * Lifecycle hook that runs on component initialization.\n * Generates a unique `id` if not already defined.\n */\n ngOnInit(): void {\n if (!this.id) {\n this.id = crypto.randomUUID();\n }\n }\n\n /**\n * Lifecycle hook that runs after the view is initialized.\n * Injects the sort button into the header cell if sorting is enabled.\n */\n ngAfterContentInit(): void {\n this.initSortButtons();\n }\n\n /**\n * Clears the `aria-sort` attribute, used to visually and semantically reset previous sort state.\n * \n * Remove the dark arrow for current sorting from prev sorted column\n */\n removeAriaSort(): void {\n this.renderer.removeAttribute(this.el.nativeElement, 'aria-sort');\n }\n\n /**\n * Handles click events on the header.\n * Cycles through sort orders: `null` -> `ascending` -> `descending` -> `null`.\n * Emits a `EclSortTableEvent` with the updated sort state and column identifier.\n * \n * Click triggers 1 -> asc sorting, 2 -> desc sorting then 3 -> initial sorting\n */\n @HostListener('click', ['$event'])\n onClick(evt: Event): void {\n if (this.eclSortable) {\n switch (this.sortOrder) {\n case null: {\n this.sortOrder = SortOrder.ASCENDING;\n break;\n }\n case SortOrder.ASCENDING: {\n this.sortOrder = SortOrder.DESCENDING;\n break;\n }\n case SortOrder.DESCENDING: {\n this.sortOrder = null;\n break;\n }\n }\n\n this.sort.emit(new EclSortTableEvent(this.sortOrder, this.eclSortable));\n }\n }\n\n /**\n * Dynamically creates and appends the sort button to the header cell.\n * Optionally sets the button's `aria-label` if provided.\n */\n private initSortButtons(): void {\n if (this.eclSortable) {\n setTimeout(() => {\n const containerComponentRef = this.viewContainerRef.createComponent(EclTableSortButtonComponent);\n this.renderer.appendChild(this.el.nativeElement, containerComponentRef.location.nativeElement);\n if (this.sortButtonAriaLabel) {\n containerComponentRef.instance.ariaLabel = this.sortButtonAriaLabel;\n }\n });\n }\n }\n}\n\n@Directive({\n selector: '[eclTableRow]',\n standalone: false,\n})\n/**\n * Directive for applying ECL row styling to a table row element.\n */\nexport class EclTableRowDirective extends ECLBaseDirective {\n /**\n * Applies `ecl-table__row` class to the table row.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__row')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclTableBody]',\n standalone: false,\n})\n/**\n * Directive for applying ECL body styling to a table body element.\n */\nexport class EclTableBodyDirective extends ECLBaseDirective {\n /**\n * Applies `ecl-table__body` class to the table body.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__body')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclTableCell]',\n standalone: false,\n})\n/**\n * Directive for styling individual table cells in the ECL table.\n */\nexport class EclTableCellDirective extends ECLBaseDirective {\n /**\n * Provides a reference to the related table header.\n * Sets the `data-ecl-table-header` attribute for accessibility or responsive behavior.\n */\n @Input() @HostBinding('attr.data-ecl-table-header') eclTableCellHeader: string;\n\n /**\n * If `true`, applies additional group styling to the cell.\n */\n @Input() @HostBinding('class.ecl-table__cell--group') isGroup = false;\n\n /**\n * Computes and applies appropriate CSS classes for the table cell.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__cell'), this.isGroup ? 'ecl-table__cell--group' : ''].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclTableCellGroup]',\n standalone: false,\n})\n/**\n * Directive used to group multiple table cells under a shared header group.\n */\nexport class EclTableCellGroupDirective extends ECLBaseDirective implements AfterViewInit {\n /**\n * Sets the `data-ecl-table-header-group` attribute to link to a header group.\n */\n @Input() @HostBinding('attr.data-ecl-table-header-group') eclTableCellGroup: string;\n\n /**\n * Applies the group-specific cell class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table__cell--group')].join(' ').trim();\n }\n\n constructor(private cd: ChangeDetectorRef) {\n super();\n }\n\n /**\n * Ensures `data-ecl-table-header-group` is not empty and triggers change detection.\n */\n ngAfterViewInit(): void {\n this.eclTableCellGroup = this.eclTableCellGroup !== '' ? this.eclTableCellGroup : null;\n this.cd.detectChanges();\n }\n}\n\n@Directive({\n selector: '[eclTableResponsive]',\n standalone: false,\n})\n/**\n * Directive for applying ECL responsive wrapper to a table container.\n */\nexport class EclTableResponsiveDirective extends ECLBaseDirective {\n /**\n * Applies the `ecl-table-responsive` class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-table-responsive')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: 'caption[eclTableCaption]',\n standalone: false,\n})\n/**\n * Directive for applying styling to a table caption element.\n */\nexport class EclTableCaptionDirective extends ECLBaseDirective {\n /**\n * Applies the `ecl-table__caption` class to the caption.\n */\n @HostBinding('class.ecl-table__caption') hasClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport {\n EclTableDirective,\n EclTableHeadDirective,\n EclTableHeaderDirective,\n EclTableRowDirective,\n EclTableBodyDirective,\n EclTableCellDirective,\n EclTableCellGroupDirective,\n EclTableResponsiveDirective,\n EclTableCaptionDirective,\n} from './ecl-table.directive';\nimport { EclTableSortButtonComponent } from './ecl-table-sort-button.component';\n\nconst COMPONENTS = [\n EclTableCaptionDirective,\n EclTableDirective,\n EclTableHeadDirective,\n EclTableHeaderDirective,\n EclTableRowDirective,\n EclTableBodyDirective,\n EclTableCellDirective,\n EclTableCellGroupDirective,\n EclTableSortButtonComponent,\n EclTableResponsiveDirective,\n];\n@NgModule({\n imports: [CommonModule, EclIconModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}