@sebgroup/green-angular 6.8.0 → 7.0.0-rc.20251125130141487

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 (516) hide show
  1. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +13 -13
  2. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
  3. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +9 -8
  4. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
  5. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +9 -8
  6. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
  7. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +17 -15
  8. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
  9. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +9 -9
  10. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
  11. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +9 -9
  12. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
  13. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +17 -15
  14. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
  15. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +9 -9
  16. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
  17. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +30 -28
  18. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
  19. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +9 -9
  20. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
  21. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +9 -9
  22. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
  23. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +9 -9
  24. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
  25. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +43 -38
  26. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  27. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +9 -9
  28. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
  29. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +9 -9
  30. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
  31. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +7 -7
  32. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -1
  33. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +9 -9
  34. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -1
  35. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +13 -10
  36. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  37. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +9 -9
  38. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  39. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +9 -9
  40. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  41. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +8 -8
  42. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  43. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +9 -8
  44. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  45. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +9 -9
  46. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  47. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +3 -3
  48. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  49. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +52 -43
  50. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -1
  51. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +19 -16
  52. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -1
  53. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +32 -32
  54. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  55. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +9 -8
  56. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  57. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +19 -16
  58. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  59. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +9 -9
  60. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  61. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +13 -11
  62. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  63. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +9 -9
  64. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  65. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +22 -21
  66. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  67. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +9 -9
  68. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -1
  69. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +16 -16
  70. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  71. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +8 -7
  72. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  73. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +28 -24
  74. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -1
  75. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +13 -12
  76. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -1
  77. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +9 -9
  78. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  79. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +12 -12
  80. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -1
  81. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +9 -8
  82. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  83. package/fesm2022/sebgroup-green-angular-v-angular.mjs +347 -317
  84. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  85. package/fesm2022/sebgroup-green-angular.mjs +201 -188
  86. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  87. package/package.json +8 -94
  88. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +1 -1
  89. package/src/v-angular/drag-drop/drag-drop.component.d.ts +3 -3
  90. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +1 -1
  91. package/v-angular/drag-drop/drag-drop.component.d.ts +3 -3
  92. package/esm2022/index.mjs +0 -18
  93. package/esm2022/lib/accordion/accordion-list-item.component.mjs +0 -50
  94. package/esm2022/lib/accordion/accordion.component.mjs +0 -77
  95. package/esm2022/lib/accordion/accordion.module.mjs +0 -24
  96. package/esm2022/lib/accordion/index.mjs +0 -4
  97. package/esm2022/lib/badge/badge.component.mjs +0 -85
  98. package/esm2022/lib/badge/badge.module.mjs +0 -23
  99. package/esm2022/lib/badge/index.mjs +0 -3
  100. package/esm2022/lib/button/button.component.mjs +0 -28
  101. package/esm2022/lib/button/button.module.mjs +0 -18
  102. package/esm2022/lib/button/index.mjs +0 -3
  103. package/esm2022/lib/cell-table/cell-table-item.component.mjs +0 -91
  104. package/esm2022/lib/cell-table/cell-table.component.mjs +0 -97
  105. package/esm2022/lib/cell-table/cell-table.module.mjs +0 -26
  106. package/esm2022/lib/cell-table/cell-table.types.mjs +0 -7
  107. package/esm2022/lib/cell-table/cell-underline.directive.mjs +0 -55
  108. package/esm2022/lib/cell-table/index.mjs +0 -4
  109. package/esm2022/lib/context-menu/context-menu.component.mjs +0 -79
  110. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -37
  111. package/esm2022/lib/context-menu/index.mjs +0 -3
  112. package/esm2022/lib/datepicker/datepicker.component.mjs +0 -144
  113. package/esm2022/lib/datepicker/datepicker.module.mjs +0 -37
  114. package/esm2022/lib/datepicker/index.mjs +0 -3
  115. package/esm2022/lib/dropdown/dropdown-button.directive.mjs +0 -16
  116. package/esm2022/lib/dropdown/dropdown-option.directive.mjs +0 -16
  117. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -248
  118. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -51
  119. package/esm2022/lib/dropdown/index.mjs +0 -5
  120. package/esm2022/lib/green-angular.module.mjs +0 -72
  121. package/esm2022/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +0 -61
  122. package/esm2022/lib/in-page-wizard/in-page-wizard.module.mjs +0 -18
  123. package/esm2022/lib/in-page-wizard/index.mjs +0 -3
  124. package/esm2022/lib/modal/index.mjs +0 -5
  125. package/esm2022/lib/modal/modal-footer.directive.mjs +0 -16
  126. package/esm2022/lib/modal/modal-header.directive.mjs +0 -16
  127. package/esm2022/lib/modal/modal.component.mjs +0 -317
  128. package/esm2022/lib/modal/modal.module.mjs +0 -44
  129. package/esm2022/lib/pagination/index.mjs +0 -3
  130. package/esm2022/lib/pagination/pagination.component.mjs +0 -175
  131. package/esm2022/lib/pagination/pagination.module.mjs +0 -18
  132. package/esm2022/lib/progress-circle/index.mjs +0 -3
  133. package/esm2022/lib/progress-circle/progress-circle.component.mjs +0 -41
  134. package/esm2022/lib/progress-circle/progress-circle.module.mjs +0 -18
  135. package/esm2022/lib/segmented-control/index.mjs +0 -3
  136. package/esm2022/lib/segmented-control/segmented-control.component.mjs +0 -38
  137. package/esm2022/lib/segmented-control/segmented-control.module.mjs +0 -22
  138. package/esm2022/lib/shared/core-control/core-checkbox.directive.mjs +0 -39
  139. package/esm2022/lib/shared/core-control/core-control.directive.mjs +0 -94
  140. package/esm2022/lib/shared/core-control/core-control.module.mjs +0 -20
  141. package/esm2022/lib/shared/core-control/index.mjs +0 -4
  142. package/esm2022/lib/shared/core-element/core-element.directive.mjs +0 -34
  143. package/esm2022/lib/shared/core-element/core-element.module.mjs +0 -18
  144. package/esm2022/lib/shared/core-element/index.mjs +0 -3
  145. package/esm2022/lib/shared/core-renderer/core-renderer.mjs +0 -152
  146. package/esm2022/lib/shared/core-renderer/index.mjs +0 -2
  147. package/esm2022/lib/shared/core-router-link/core-router-link.directive.mjs +0 -53
  148. package/esm2022/lib/shared/core-router-link/core-router-link.module.mjs +0 -16
  149. package/esm2022/lib/shared/core-router-link/index.mjs +0 -3
  150. package/esm2022/lib/shared/index.mjs +0 -7
  151. package/esm2022/lib/shared/on-scroll.directive.mjs +0 -47
  152. package/esm2022/lib/shared/scope-resolver.mjs +0 -9
  153. package/esm2022/lib/shared/shared.module.mjs +0 -19
  154. package/esm2022/lib/slider/index.mjs +0 -3
  155. package/esm2022/lib/slider/slider.component.mjs +0 -116
  156. package/esm2022/lib/slider/slider.module.mjs +0 -19
  157. package/esm2022/lib/sortable-list/index.mjs +0 -3
  158. package/esm2022/lib/sortable-list/sortable-list.component.mjs +0 -181
  159. package/esm2022/lib/sortable-list/sortable-list.module.mjs +0 -20
  160. package/esm2022/sebgroup-green-angular.mjs +0 -5
  161. package/esm2022/src/lib/accordion/accordion-list-item.component.mjs +0 -50
  162. package/esm2022/src/lib/accordion/accordion.component.mjs +0 -77
  163. package/esm2022/src/lib/accordion/accordion.module.mjs +0 -24
  164. package/esm2022/src/lib/accordion/index.mjs +0 -4
  165. package/esm2022/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +0 -5
  166. package/esm2022/src/lib/badge/badge.component.mjs +0 -85
  167. package/esm2022/src/lib/badge/badge.module.mjs +0 -23
  168. package/esm2022/src/lib/badge/index.mjs +0 -3
  169. package/esm2022/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +0 -5
  170. package/esm2022/src/lib/button/button.component.mjs +0 -28
  171. package/esm2022/src/lib/button/button.module.mjs +0 -18
  172. package/esm2022/src/lib/button/index.mjs +0 -3
  173. package/esm2022/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +0 -5
  174. package/esm2022/src/lib/cell-table/cell-table-item.component.mjs +0 -91
  175. package/esm2022/src/lib/cell-table/cell-table.component.mjs +0 -97
  176. package/esm2022/src/lib/cell-table/cell-table.module.mjs +0 -26
  177. package/esm2022/src/lib/cell-table/cell-table.types.mjs +0 -7
  178. package/esm2022/src/lib/cell-table/cell-underline.directive.mjs +0 -55
  179. package/esm2022/src/lib/cell-table/index.mjs +0 -4
  180. package/esm2022/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +0 -5
  181. package/esm2022/src/lib/context-menu/context-menu.component.mjs +0 -79
  182. package/esm2022/src/lib/context-menu/context-menu.module.mjs +0 -37
  183. package/esm2022/src/lib/context-menu/index.mjs +0 -3
  184. package/esm2022/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +0 -5
  185. package/esm2022/src/lib/datepicker/datepicker.component.mjs +0 -144
  186. package/esm2022/src/lib/datepicker/datepicker.module.mjs +0 -37
  187. package/esm2022/src/lib/datepicker/index.mjs +0 -3
  188. package/esm2022/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +0 -5
  189. package/esm2022/src/lib/dropdown/dropdown-button.directive.mjs +0 -16
  190. package/esm2022/src/lib/dropdown/dropdown-option.directive.mjs +0 -16
  191. package/esm2022/src/lib/dropdown/dropdown.component.mjs +0 -248
  192. package/esm2022/src/lib/dropdown/dropdown.module.mjs +0 -51
  193. package/esm2022/src/lib/dropdown/index.mjs +0 -5
  194. package/esm2022/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +0 -5
  195. package/esm2022/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +0 -61
  196. package/esm2022/src/lib/in-page-wizard/in-page-wizard.module.mjs +0 -18
  197. package/esm2022/src/lib/in-page-wizard/index.mjs +0 -3
  198. package/esm2022/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +0 -5
  199. package/esm2022/src/lib/modal/index.mjs +0 -5
  200. package/esm2022/src/lib/modal/modal-footer.directive.mjs +0 -16
  201. package/esm2022/src/lib/modal/modal-header.directive.mjs +0 -16
  202. package/esm2022/src/lib/modal/modal.component.mjs +0 -317
  203. package/esm2022/src/lib/modal/modal.module.mjs +0 -44
  204. package/esm2022/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +0 -5
  205. package/esm2022/src/lib/pagination/index.mjs +0 -3
  206. package/esm2022/src/lib/pagination/pagination.component.mjs +0 -175
  207. package/esm2022/src/lib/pagination/pagination.module.mjs +0 -18
  208. package/esm2022/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +0 -5
  209. package/esm2022/src/lib/progress-circle/index.mjs +0 -3
  210. package/esm2022/src/lib/progress-circle/progress-circle.component.mjs +0 -41
  211. package/esm2022/src/lib/progress-circle/progress-circle.module.mjs +0 -18
  212. package/esm2022/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +0 -5
  213. package/esm2022/src/lib/segmented-control/index.mjs +0 -3
  214. package/esm2022/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +0 -5
  215. package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +0 -38
  216. package/esm2022/src/lib/segmented-control/segmented-control.module.mjs +0 -22
  217. package/esm2022/src/lib/shared/core-control/core-checkbox.directive.mjs +0 -39
  218. package/esm2022/src/lib/shared/core-control/core-control.directive.mjs +0 -94
  219. package/esm2022/src/lib/shared/core-control/core-control.module.mjs +0 -20
  220. package/esm2022/src/lib/shared/core-control/index.mjs +0 -4
  221. package/esm2022/src/lib/shared/core-element/core-element.directive.mjs +0 -34
  222. package/esm2022/src/lib/shared/core-element/core-element.module.mjs +0 -18
  223. package/esm2022/src/lib/shared/core-element/index.mjs +0 -3
  224. package/esm2022/src/lib/shared/core-renderer/core-renderer.mjs +0 -152
  225. package/esm2022/src/lib/shared/core-renderer/index.mjs +0 -2
  226. package/esm2022/src/lib/shared/core-router-link/core-router-link.directive.mjs +0 -53
  227. package/esm2022/src/lib/shared/core-router-link/core-router-link.module.mjs +0 -16
  228. package/esm2022/src/lib/shared/core-router-link/index.mjs +0 -3
  229. package/esm2022/src/lib/shared/index.mjs +0 -7
  230. package/esm2022/src/lib/shared/on-scroll.directive.mjs +0 -47
  231. package/esm2022/src/lib/shared/scope-resolver.mjs +0 -9
  232. package/esm2022/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +0 -5
  233. package/esm2022/src/lib/shared/shared.module.mjs +0 -19
  234. package/esm2022/src/lib/slider/index.mjs +0 -3
  235. package/esm2022/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +0 -5
  236. package/esm2022/src/lib/slider/slider.component.mjs +0 -116
  237. package/esm2022/src/lib/slider/slider.module.mjs +0 -19
  238. package/esm2022/src/lib/sortable-list/index.mjs +0 -3
  239. package/esm2022/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +0 -5
  240. package/esm2022/src/lib/sortable-list/sortable-list.component.mjs +0 -181
  241. package/esm2022/src/lib/sortable-list/sortable-list.module.mjs +0 -20
  242. package/esm2022/src/v-angular/account-number/account-number.module.mjs +0 -18
  243. package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +0 -55
  244. package/esm2022/src/v-angular/account-number/index.mjs +0 -3
  245. package/esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs +0 -5
  246. package/esm2022/src/v-angular/alert/alert.component.mjs +0 -49
  247. package/esm2022/src/v-angular/alert/alert.models.mjs +0 -8
  248. package/esm2022/src/v-angular/alert/alert.module.mjs +0 -18
  249. package/esm2022/src/v-angular/alert/index.mjs +0 -4
  250. package/esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs +0 -5
  251. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +0 -300
  252. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +0 -17
  253. package/esm2022/src/v-angular/base-control-value-accessor/index.mjs +0 -3
  254. package/esm2022/src/v-angular/base-control-value-accessor/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +0 -5
  255. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +0 -25
  256. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +0 -20
  257. package/esm2022/src/v-angular/breadcrumbs/index.mjs +0 -3
  258. package/esm2022/src/v-angular/breadcrumbs/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +0 -5
  259. package/esm2022/src/v-angular/button/button.component.mjs +0 -108
  260. package/esm2022/src/v-angular/button/button.module.mjs +0 -20
  261. package/esm2022/src/v-angular/button/index.mjs +0 -3
  262. package/esm2022/src/v-angular/button/sebgroup-green-angular-src-v-angular-button.mjs +0 -5
  263. package/esm2022/src/v-angular/card/card.component.mjs +0 -11
  264. package/esm2022/src/v-angular/card/card.module.mjs +0 -18
  265. package/esm2022/src/v-angular/card/index.mjs +0 -3
  266. package/esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs +0 -5
  267. package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +0 -51
  268. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +0 -18
  269. package/esm2022/src/v-angular/character-countdown/index.mjs +0 -3
  270. package/esm2022/src/v-angular/character-countdown/sebgroup-green-angular-src-v-angular-character-countdown.mjs +0 -5
  271. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +0 -94
  272. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +0 -21
  273. package/esm2022/src/v-angular/checkbox/index.mjs +0 -3
  274. package/esm2022/src/v-angular/checkbox/sebgroup-green-angular-src-v-angular-checkbox.mjs +0 -5
  275. package/esm2022/src/v-angular/core/core.globals.mjs +0 -20
  276. package/esm2022/src/v-angular/core/core.utils.mjs +0 -62
  277. package/esm2022/src/v-angular/core/index.mjs +0 -3
  278. package/esm2022/src/v-angular/core/sebgroup-green-angular-src-v-angular-core.mjs +0 -5
  279. package/esm2022/src/v-angular/datepicker/components/calendar/calendar.component.mjs +0 -200
  280. package/esm2022/src/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +0 -115
  281. package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +0 -238
  282. package/esm2022/src/v-angular/datepicker/components/datepicker/datepicker.component.mjs +0 -192
  283. package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +0 -411
  284. package/esm2022/src/v-angular/datepicker/datepicker.globals.mjs +0 -20
  285. package/esm2022/src/v-angular/datepicker/datepicker.models.mjs +0 -56
  286. package/esm2022/src/v-angular/datepicker/datepicker.module.mjs +0 -63
  287. package/esm2022/src/v-angular/datepicker/datepicker.utils.mjs +0 -196
  288. package/esm2022/src/v-angular/datepicker/directives/calendar-date.directive.mjs +0 -47
  289. package/esm2022/src/v-angular/datepicker/index.mjs +0 -17
  290. package/esm2022/src/v-angular/datepicker/models/dates.mjs +0 -291
  291. package/esm2022/src/v-angular/datepicker/pipes/date-thook.pipe.mjs +0 -30
  292. package/esm2022/src/v-angular/datepicker/pipes/is-disabled.pipe.mjs +0 -37
  293. package/esm2022/src/v-angular/datepicker/pipes/matches.pipe.mjs +0 -17
  294. package/esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs +0 -5
  295. package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +0 -497
  296. package/esm2022/src/v-angular/drag-drop/drag-drop.models.mjs +0 -2
  297. package/esm2022/src/v-angular/drag-drop/drag-drop.module.mjs +0 -49
  298. package/esm2022/src/v-angular/drag-drop/drag-drop.pipes.mjs +0 -70
  299. package/esm2022/src/v-angular/drag-drop/drag-drop.utils.mjs +0 -76
  300. package/esm2022/src/v-angular/drag-drop/index.mjs +0 -5
  301. package/esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs +0 -5
  302. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +0 -380
  303. package/esm2022/src/v-angular/dropdown/dropdown-list/index.mjs +0 -2
  304. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +0 -303
  305. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +0 -38
  306. package/esm2022/src/v-angular/dropdown/index.mjs +0 -6
  307. package/esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs +0 -5
  308. package/esm2022/src/v-angular/dropdown/typeahead/index.mjs +0 -6
  309. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +0 -110
  310. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +0 -85
  311. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +0 -138
  312. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +0 -186
  313. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +0 -33
  314. package/esm2022/src/v-angular/external-link/external-link.directive.mjs +0 -37
  315. package/esm2022/src/v-angular/external-link/external-link.module.mjs +0 -18
  316. package/esm2022/src/v-angular/external-link/index.mjs +0 -3
  317. package/esm2022/src/v-angular/external-link/sebgroup-green-angular-src-v-angular-external-link.mjs +0 -5
  318. package/esm2022/src/v-angular/i18n/i18n.json +0 -13
  319. package/esm2022/src/v-angular/i18n/i18n.module.mjs +0 -89
  320. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +0 -89
  321. package/esm2022/src/v-angular/i18n/index.mjs +0 -3
  322. package/esm2022/src/v-angular/i18n/sebgroup-green-angular-src-v-angular-i18n.mjs +0 -5
  323. package/esm2022/src/v-angular/info-circle/index.mjs +0 -3
  324. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +0 -28
  325. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +0 -21
  326. package/esm2022/src/v-angular/info-circle/sebgroup-green-angular-src-v-angular-info-circle.mjs +0 -5
  327. package/esm2022/src/v-angular/input/index.mjs +0 -3
  328. package/esm2022/src/v-angular/input/input.component.mjs +0 -248
  329. package/esm2022/src/v-angular/input/input.module.mjs +0 -41
  330. package/esm2022/src/v-angular/input/sebgroup-green-angular-src-v-angular-input.mjs +0 -5
  331. package/esm2022/src/v-angular/input-mask/config.mjs +0 -9
  332. package/esm2022/src/v-angular/input-mask/constants.mjs +0 -2
  333. package/esm2022/src/v-angular/input-mask/index.mjs +0 -6
  334. package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +0 -21
  335. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +0 -165
  336. package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +0 -35
  337. package/esm2022/src/v-angular/input-mask/input-mask.types.mjs +0 -2
  338. package/esm2022/src/v-angular/input-mask/sebgroup-green-angular-src-v-angular-input-mask.mjs +0 -5
  339. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +0 -242
  340. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +0 -167
  341. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +0 -19
  342. package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +0 -10
  343. package/esm2022/src/v-angular/modal/index.mjs +0 -6
  344. package/esm2022/src/v-angular/modal/modal.globals.mjs +0 -20
  345. package/esm2022/src/v-angular/modal/modal.module.mjs +0 -53
  346. package/esm2022/src/v-angular/modal/modal.types.mjs +0 -2
  347. package/esm2022/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.mjs +0 -5
  348. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +0 -253
  349. package/esm2022/src/v-angular/pagination/index.mjs +0 -3
  350. package/esm2022/src/v-angular/pagination/pagination.component.mjs +0 -144
  351. package/esm2022/src/v-angular/pagination/pagination.module.mjs +0 -37
  352. package/esm2022/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.mjs +0 -5
  353. package/esm2022/src/v-angular/radio/index.mjs +0 -4
  354. package/esm2022/src/v-angular/radio/radio-group/radio-group.component.mjs +0 -86
  355. package/esm2022/src/v-angular/radio/radio.component.mjs +0 -153
  356. package/esm2022/src/v-angular/radio/radio.module.mjs +0 -22
  357. package/esm2022/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.mjs +0 -5
  358. package/esm2022/src/v-angular/slug/index.mjs +0 -3
  359. package/esm2022/src/v-angular/slug/sebgroup-green-angular-src-v-angular-slug.mjs +0 -5
  360. package/esm2022/src/v-angular/slug/slug.module.mjs +0 -18
  361. package/esm2022/src/v-angular/slug/slug.pipe.mjs +0 -27
  362. package/esm2022/src/v-angular/table/index.mjs +0 -9
  363. package/esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.mjs +0 -5
  364. package/esm2022/src/v-angular/table/table.component.mjs +0 -426
  365. package/esm2022/src/v-angular/table/table.directive.mjs +0 -110
  366. package/esm2022/src/v-angular/table/table.models.mjs +0 -2
  367. package/esm2022/src/v-angular/table/table.module.mjs +0 -40
  368. package/esm2022/src/v-angular/table/table.tools.mjs +0 -29
  369. package/esm2022/src/v-angular/table/tr-thook.pipe.mjs +0 -22
  370. package/esm2022/src/v-angular/tabs/index.mjs +0 -8
  371. package/esm2022/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.mjs +0 -5
  372. package/esm2022/src/v-angular/tabs/tab.directive.mjs +0 -81
  373. package/esm2022/src/v-angular/tabs/tabs.component.mjs +0 -262
  374. package/esm2022/src/v-angular/tabs/tabs.models.mjs +0 -2
  375. package/esm2022/src/v-angular/tabs/tabs.module.mjs +0 -21
  376. package/esm2022/src/v-angular/textarea/index.mjs +0 -3
  377. package/esm2022/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.mjs +0 -5
  378. package/esm2022/src/v-angular/textarea/textarea.component.mjs +0 -129
  379. package/esm2022/src/v-angular/textarea/textarea.module.mjs +0 -34
  380. package/esm2022/src/v-angular/toast/index.mjs +0 -8
  381. package/esm2022/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.mjs +0 -5
  382. package/esm2022/src/v-angular/toast/toast-message.service.mjs +0 -82
  383. package/esm2022/src/v-angular/toast/toast.component.mjs +0 -66
  384. package/esm2022/src/v-angular/toast/toast.models.mjs +0 -8
  385. package/esm2022/src/v-angular/toast/toast.module.mjs +0 -21
  386. package/esm2022/src/v-angular/tooltip/index.mjs +0 -3
  387. package/esm2022/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.mjs +0 -5
  388. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +0 -293
  389. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +0 -18
  390. package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +0 -60
  391. package/esm2022/v-angular/account-number/account-number.module.mjs +0 -18
  392. package/esm2022/v-angular/account-number/account-number.pipe.mjs +0 -55
  393. package/esm2022/v-angular/account-number/index.mjs +0 -3
  394. package/esm2022/v-angular/alert/alert.component.mjs +0 -49
  395. package/esm2022/v-angular/alert/alert.models.mjs +0 -8
  396. package/esm2022/v-angular/alert/alert.module.mjs +0 -18
  397. package/esm2022/v-angular/alert/index.mjs +0 -4
  398. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +0 -300
  399. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +0 -17
  400. package/esm2022/v-angular/base-control-value-accessor/index.mjs +0 -3
  401. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +0 -25
  402. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +0 -20
  403. package/esm2022/v-angular/breadcrumbs/index.mjs +0 -3
  404. package/esm2022/v-angular/button/button.component.mjs +0 -108
  405. package/esm2022/v-angular/button/button.module.mjs +0 -20
  406. package/esm2022/v-angular/button/index.mjs +0 -3
  407. package/esm2022/v-angular/card/card.component.mjs +0 -11
  408. package/esm2022/v-angular/card/card.module.mjs +0 -18
  409. package/esm2022/v-angular/card/index.mjs +0 -3
  410. package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +0 -51
  411. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +0 -18
  412. package/esm2022/v-angular/character-countdown/index.mjs +0 -3
  413. package/esm2022/v-angular/checkbox/checkbox.component.mjs +0 -94
  414. package/esm2022/v-angular/checkbox/checkbox.module.mjs +0 -21
  415. package/esm2022/v-angular/checkbox/index.mjs +0 -3
  416. package/esm2022/v-angular/core/core.globals.mjs +0 -20
  417. package/esm2022/v-angular/core/core.utils.mjs +0 -62
  418. package/esm2022/v-angular/core/index.mjs +0 -3
  419. package/esm2022/v-angular/datepicker/components/calendar/calendar.component.mjs +0 -200
  420. package/esm2022/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +0 -115
  421. package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +0 -238
  422. package/esm2022/v-angular/datepicker/components/datepicker/datepicker.component.mjs +0 -192
  423. package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +0 -411
  424. package/esm2022/v-angular/datepicker/datepicker.globals.mjs +0 -20
  425. package/esm2022/v-angular/datepicker/datepicker.models.mjs +0 -56
  426. package/esm2022/v-angular/datepicker/datepicker.module.mjs +0 -63
  427. package/esm2022/v-angular/datepicker/datepicker.utils.mjs +0 -196
  428. package/esm2022/v-angular/datepicker/directives/calendar-date.directive.mjs +0 -47
  429. package/esm2022/v-angular/datepicker/index.mjs +0 -17
  430. package/esm2022/v-angular/datepicker/models/dates.mjs +0 -291
  431. package/esm2022/v-angular/datepicker/pipes/date-thook.pipe.mjs +0 -30
  432. package/esm2022/v-angular/datepicker/pipes/is-disabled.pipe.mjs +0 -37
  433. package/esm2022/v-angular/datepicker/pipes/matches.pipe.mjs +0 -17
  434. package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +0 -497
  435. package/esm2022/v-angular/drag-drop/drag-drop.models.mjs +0 -2
  436. package/esm2022/v-angular/drag-drop/drag-drop.module.mjs +0 -49
  437. package/esm2022/v-angular/drag-drop/drag-drop.pipes.mjs +0 -70
  438. package/esm2022/v-angular/drag-drop/drag-drop.utils.mjs +0 -76
  439. package/esm2022/v-angular/drag-drop/index.mjs +0 -5
  440. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +0 -380
  441. package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +0 -2
  442. package/esm2022/v-angular/dropdown/dropdown.component.mjs +0 -303
  443. package/esm2022/v-angular/dropdown/dropdown.module.mjs +0 -38
  444. package/esm2022/v-angular/dropdown/index.mjs +0 -6
  445. package/esm2022/v-angular/dropdown/typeahead/index.mjs +0 -6
  446. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +0 -110
  447. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +0 -85
  448. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +0 -138
  449. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +0 -186
  450. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +0 -33
  451. package/esm2022/v-angular/external-link/external-link.directive.mjs +0 -37
  452. package/esm2022/v-angular/external-link/external-link.module.mjs +0 -18
  453. package/esm2022/v-angular/external-link/index.mjs +0 -3
  454. package/esm2022/v-angular/i18n/i18n.json +0 -13
  455. package/esm2022/v-angular/i18n/i18n.module.mjs +0 -89
  456. package/esm2022/v-angular/i18n/i18n.test.module.mjs +0 -89
  457. package/esm2022/v-angular/i18n/index.mjs +0 -3
  458. package/esm2022/v-angular/index.mjs +0 -29
  459. package/esm2022/v-angular/info-circle/index.mjs +0 -3
  460. package/esm2022/v-angular/info-circle/info-circle.component.mjs +0 -28
  461. package/esm2022/v-angular/info-circle/info-circle.module.mjs +0 -21
  462. package/esm2022/v-angular/input/index.mjs +0 -3
  463. package/esm2022/v-angular/input/input.component.mjs +0 -248
  464. package/esm2022/v-angular/input/input.module.mjs +0 -41
  465. package/esm2022/v-angular/input-mask/config.mjs +0 -9
  466. package/esm2022/v-angular/input-mask/constants.mjs +0 -2
  467. package/esm2022/v-angular/input-mask/index.mjs +0 -6
  468. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +0 -21
  469. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +0 -165
  470. package/esm2022/v-angular/input-mask/input-mask.module.mjs +0 -35
  471. package/esm2022/v-angular/input-mask/input-mask.types.mjs +0 -2
  472. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +0 -242
  473. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +0 -167
  474. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +0 -19
  475. package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +0 -10
  476. package/esm2022/v-angular/modal/index.mjs +0 -6
  477. package/esm2022/v-angular/modal/modal.globals.mjs +0 -20
  478. package/esm2022/v-angular/modal/modal.module.mjs +0 -53
  479. package/esm2022/v-angular/modal/modal.types.mjs +0 -2
  480. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +0 -253
  481. package/esm2022/v-angular/pagination/index.mjs +0 -3
  482. package/esm2022/v-angular/pagination/pagination.component.mjs +0 -144
  483. package/esm2022/v-angular/pagination/pagination.module.mjs +0 -37
  484. package/esm2022/v-angular/radio/index.mjs +0 -4
  485. package/esm2022/v-angular/radio/radio-group/radio-group.component.mjs +0 -86
  486. package/esm2022/v-angular/radio/radio.component.mjs +0 -153
  487. package/esm2022/v-angular/radio/radio.module.mjs +0 -22
  488. package/esm2022/v-angular/sebgroup-green-angular-v-angular.mjs +0 -5
  489. package/esm2022/v-angular/slug/index.mjs +0 -3
  490. package/esm2022/v-angular/slug/slug.module.mjs +0 -18
  491. package/esm2022/v-angular/slug/slug.pipe.mjs +0 -27
  492. package/esm2022/v-angular/table/index.mjs +0 -9
  493. package/esm2022/v-angular/table/table.component.mjs +0 -426
  494. package/esm2022/v-angular/table/table.directive.mjs +0 -110
  495. package/esm2022/v-angular/table/table.models.mjs +0 -2
  496. package/esm2022/v-angular/table/table.module.mjs +0 -40
  497. package/esm2022/v-angular/table/table.tools.mjs +0 -29
  498. package/esm2022/v-angular/table/tr-thook.pipe.mjs +0 -22
  499. package/esm2022/v-angular/tabs/index.mjs +0 -8
  500. package/esm2022/v-angular/tabs/tab.directive.mjs +0 -81
  501. package/esm2022/v-angular/tabs/tabs.component.mjs +0 -262
  502. package/esm2022/v-angular/tabs/tabs.models.mjs +0 -2
  503. package/esm2022/v-angular/tabs/tabs.module.mjs +0 -21
  504. package/esm2022/v-angular/textarea/index.mjs +0 -3
  505. package/esm2022/v-angular/textarea/textarea.component.mjs +0 -129
  506. package/esm2022/v-angular/textarea/textarea.module.mjs +0 -34
  507. package/esm2022/v-angular/toast/index.mjs +0 -8
  508. package/esm2022/v-angular/toast/toast-message.service.mjs +0 -82
  509. package/esm2022/v-angular/toast/toast.component.mjs +0 -66
  510. package/esm2022/v-angular/toast/toast.models.mjs +0 -8
  511. package/esm2022/v-angular/toast/toast.module.mjs +0 -21
  512. package/esm2022/v-angular/tooltip/index.mjs +0 -3
  513. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +0 -293
  514. package/esm2022/v-angular/tooltip/tooltip.module.mjs +0 -18
  515. package/esm2022/v-angular/tooltip/tooltip.styles.mjs +0 -60
  516. package/esm2022/v-angular/v-angular.module.mjs +0 -132
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-table.mjs","sources":["../../../../libs/angular/src/v-angular/table/table.directive.ts","../../../../libs/angular/src/v-angular/table/table.tools.ts","../../../../libs/angular/src/v-angular/table/tr-thook.pipe.ts","../../../../libs/angular/src/v-angular/table/table.component.ts","../../../../libs/angular/src/v-angular/table/table.component.html","../../../../libs/angular/src/v-angular/table/table.module.ts","../../../../libs/angular/src/v-angular/table/index.ts","../../../../libs/angular/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.ts"],"sourcesContent":["import { Directive, HostBinding, Input, TemplateRef } from '@angular/core'\n\nconst enum ColumnCSSClass {\n Primary = 'gds-table__primary-col',\n Sortable = 'gds-table__sortable-col',\n Numeric = 'gds-table__numeric-col',\n Negative = 'gds-table__negative-col',\n Ascending = 'gds-table__sortable-col--asc',\n Descending = 'gds-table__sortable-col--desc',\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[columnType]',\n})\nexport class TableDirective {\n @Input() columnType: 'numeric' | 'text' | undefined = 'text'\n @Input() sortable?: boolean\n @Input() sortOrder?: 'desc' | 'asc'\n @Input() value: any\n\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'table'\n\n @HostBinding('class.' + ColumnCSSClass.Numeric) get numericColumn(): boolean {\n return this.columnType === 'numeric'\n }\n\n @HostBinding('class.' + ColumnCSSClass.Sortable) get isSortable(): boolean {\n return !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Ascending)\n get orderAscending(): boolean {\n return this.sortOrder === 'asc' && !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Descending)\n get orderDescending(): boolean {\n return this.sortOrder === 'desc' && !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Negative)\n get negativeValue(): boolean {\n if (!isNaN(this.value)) return +this.value < 0\n return false\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableColumn]',\n})\nexport class TableTemplateDirective<K = string> {\n @Input() tableColumn!: K\n @Input() tableColumnTarget?: 'th' | 'td' | 'both' = 'both'\n\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableFooter]',\n})\nexport class TableFooterTemplateDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableAppendableRows]',\n})\nexport class TableAppendableRowsTemplateDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","const getKeyValue = <T, K extends keyof T>(obj: T, key: K): T[K] => obj[key]\n\nexport const pick = (\n propertyArray: Array<string>,\n object: { [key: string]: unknown },\n): object => {\n if (object instanceof Object) {\n return propertyArray.reduce(\n (acc: object, curr: string) => ({\n ...acc,\n [curr]: getKeyValue(object, curr),\n }),\n {},\n )\n }\n throw Error('The value for argument \"object\" must be an object')\n}\n\nexport const orderByDescending = <T>(\n property: keyof T | string,\n): ((a: any, b: any) => number) => {\n return (a: any, b: any) => {\n if (a[property] > b[property]) return -1\n if (a[property] < b[property]) return 1\n return 0\n }\n}\n\nexport const orderByAscending = <T>(\n property: keyof T | string,\n): ((a: any, b: any) => number) => {\n return (a: any, b: any) => {\n if (a[property] < b[property]) return -1\n if (a[property] > b[property]) return 1\n return 0\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n name: 'trThook',\n standalone: true,\n})\nexport class TrThookPipe implements PipeTransform {\n transform<V>(\n value: V,\n index: number,\n thookFn?: (rowData: V) => string,\n ): string {\n // call thook fn to set thook for active row\n if (thookFn != null) {\n return thookFn(value)\n }\n\n // default thook\n return `table-row-${index}`\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core'\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms'\nimport { Subscription } from 'rxjs'\nimport { debounceTime, map } from 'rxjs/operators'\n\nimport {\n TableAppendableRowsTemplateDirective,\n TableFooterTemplateDirective,\n TableTemplateDirective,\n} from './table.directive'\nimport {\n ariaLabelsOrderBy,\n OrderBy,\n TableColumn,\n TableRow,\n} from './table.models'\nimport { orderByAscending, orderByDescending, pick } from './table.tools'\n\nlet staticInitId = 0\n\nfunction objectFromEntries(entryMap: Map<any, any>): { [key: string]: any } {\n const fromEntries: { [key: string]: any } = {}\n for (const [key, value] of entryMap) {\n fromEntries[key] = value\n }\n return fromEntries\n}\n\n/**\n * A table component with built-in sorting and selecting functionality.\n * By default, table cells (i.e. `<td>` elements) and table headers (i.e. `<th>` elements) are populated with text only values.\n *\n * To customize the contents of either the `<td>` or `<th>` elements (like adding color, icons, form fields, extra padding etc.), provide\n * the customized content within a `<ng-template>`-tag, and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableColumn`-attribute to the `<ng-template>`-element, and set the value to the specific column property.\n * Set `tableColumnTarget` to either `th`, `td` or `both` (default) depending on target element type.\n * The entire row from the `@Input() tableData` is available from the context `$implicit` variable.\n *\n * @example\n * <!-- for table cells i.e. td-elements -->\n * <ng-template tableColumn=\"status\" tableColumnTarget=\"td\" let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <!-- my custom status element -->\n * </ng-template>\n *\n * @example\n * <!-- for table headers i.e. th-elements -->\n * <ng-template tableColumn=\"status\" tableColumnTarget=\"th\" let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <!-- my custom status element -->\n * </ng-template>\n *\n * It is possible to add custom rows that are appended below data row. Use `<ng-template>`-tag and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableAppendableRows`-attribute to the `<ng-template>`-element. Any `tr` elements that exist within `<ng-template tableAppendableRows>` and `</ng-template>` tags will be put below data row's `tr` element in the table.\n *\n * @example\n * <!-- custom appended rows -->\n * <ng-template tableAppendableRows let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <tr>\n * <!-- first row's columns -->\n * </tr>\n * <!-- more rows if needed -->\n * </ng-template>\n *\n * If custom styling is needed for data row that has appended rows, you can use data attribute `data-hasrowspan` to distinguish it from data row without appended rows.\n * You can pass your own custom method with conditional logic to define what value will be passed to data-hasrowspan.\n * In addition, hasRowSpan function accepts item from `@Input() tableData` as argument which is of the same type as value passed to context `$implicit` variable.\n * IMPORTANT: use arrow function style for defining function inside component, i.e. `hasRowSpan = (value) => output;`. If regular function will be defined, i.e. `hasRowSpan(value) { return output; }`, binding will not work.\n *\n * @example\n * <!-- inside component\n * class CustomComponent {\n * customHasRowSpanFunction = (item: CustomDataType) => item.appendedRowsData.length > 0 ? true : false;\n * }\n * -->\n * <!-- inside stylesheets\n * [data-hasrowspan=\"true\"] {\n * color: blue;\n * }\n * .appended-row {\n * color: blue;\n * }\n * -->\n * <nggv-table [hasRowSpan]=\"customHasRowSpanFunction\">\n * <!-- custom appended rows -->\n * <ng-template tableAppendableRows let-appendedRowsData=\"$implicit.appendedRowsData\">\n * <tr *ngFor=\"let appendedRowItem of appendedRowsData\" class=\"appended-row\">\n * <td>{{ appendedRowItem }}</td>\n * <!-- other row's columns -->\n * </tr>\n * </ng-template>\n * </nggv-table>\n *\n * In addition, it is possible to add footer for the table. Similarly to adding custom columns, use `<ng-template>`-tag and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableFooter`-attribute to the `<ng-template>`-element. Any elements that exist within `<ng-template tableFooter>` and `</ng-template>` tags will be put to tfoot element inside the table.\n *\n * @example\n * <!-- for table footer i.e. tfoot-element -->\n * <ng-template tableFooter>\n * <tr>\n * <!-- first row's columns -->\n * </tr>\n * <!-- more rows if needed -->\n * </ng-template>\n *\n */\n@Component({\n selector: 'nggv-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n})\nexport class TableComponent<T extends TableRow>\n implements OnInit, OnChanges, AfterContentInit, OnDestroy {\n /**\n * @internal\n * Custom templates defined in the html.\n */\n @ContentChildren(TableTemplateDirective, { descendants: true })\n customTemplates!: QueryList<TableTemplateDirective<keyof T>>\n\n /**\n * @internal\n * Custom appended rows template defined in the html.\n */\n @ContentChild(TableAppendableRowsTemplateDirective)\n appendedRowsTemplate!: TableAppendableRowsTemplateDirective\n\n /**\n * @internal\n * Custom footer template defined in the html.\n */\n @ContentChild(TableFooterTemplateDirective)\n customFooterTemplate!: TableFooterTemplateDirective\n\n /** Emits the table row that was clicked. Works on all columns if not preventDefaultEmit is set for that column. */\n @Output() ngvRowClick = new EventEmitter<T | any>()\n\n /**\n * Emits currently selected and deselected items in the table as key-value pairs.\n * Uses each item`s itemId as key, and a boolean value to describe selected status.\n */\n @Output() ngvRowSelect = new EventEmitter<string[]>()\n\n /**\n * Emits event to signal that the table should be reordered.\n */\n @Output() ngvOrderBy = new EventEmitter<OrderBy<T>>()\n\n /**\n * An array of items describing how the table header should be rendered,\n * together with instructions for how each row should be displayed in that column.\n */\n @Input() tableColumns!: TableColumn<T>[]\n\n /** Data array to display data in the table. Each item <T> in the array represents a row in the table. */\n @Input() tableData!: T[]\n\n /**\n * Property name used to uniquely describe each item (i.e. row) in the data table.\n * Defaults to \\'id\\'.\n * Is required if selectable is true.\n */\n @Input() rowId = 'id'\n\n /**\n * Function's return value is used for data attribute \\'data-hasrowspan\\'.\n * If custom hasRowSpan function is not passed to the table,\n * then this function returns undefined value by default which results in \\'data-hasrowspan\\' attribute being omitted in html\n * (angular omits attributes that contain null or undefined value).\n * IMPORTANT: use arrow function style for defining function inside component, i.e. `hasRowSpan = (value) => output;`. If regular function will be defined, i.e. `hasRowSpan(value) { return output; }`, binding will not work.\n */\n @Input() hasRowSpan: (item: T) => any = (_) => undefined\n\n /**\n * Used to enable/disable the left-side checkbox column.\n * Defaults to true.\n */\n @Input() selectable = true\n\n /**\n * Array of row id's (as defined by rowId property) that should not have a checkbox even if selectable is true.\n */\n @Input() hiddenCheckboxRowIds: string[] = []\n\n /**\n * Used to enable/disable expandable rows.\n * Defaults to false.\n */\n @Input() expandable = false\n\n /**\n * Used to enable/disable the right-side expand icon column.\n * Defaults to true.\n */\n @Input() expandedByDefault = true\n\n /**\n * Property name used to describe the subItems in the data table.\n */\n @Input() subItemsProp = 'subItems'\n\n /**\n * Allow nggv-table to attempt sorting the data in the table. Not recommended if only a subset is loaded or if the dataset is very large.\n * Disabled by default.\n */\n @Input() allowLocalSort = false\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'table-select-all'\n\n /** Function to overwrite generated thook for each row. */\n @Input() trThookFn?: (item: T) => string\n\n /** Aria label for the checkbox in the table header */\n @Input() ariaLabelCheckboxTh?: string\n\n /** Aria label for the checkbox in the table header */\n @Input() ariaLabelCheckboxTr?: string\n\n /** Aria labels for sorting in the table header */\n @Input() ariaLabelsOrderBy?: ariaLabelsOrderBy\n\n /**\n * @internal\n * Internal data structure used to keep track of added content templates used in td elements.\n */\n customRowTemplates = new Map<keyof T, TemplateRef<any>>()\n\n /**\n * @internal\n * Internal data structure used to keep track of added content templates used in th elements.\n */\n customHeaderTemplates = new Map<keyof T, TemplateRef<any>>()\n\n /**\n * @internal\n * Internal data structure used to hold custom appended rows i.e. tr elements (rows).\n */\n appendedRowsTemplateRef!: TemplateRef<any>\n\n /**\n * @internal\n * Internal data structure used to hold tfoot element children i.e. tr elements (rows).\n */\n customFooterTemplateRef!: TemplateRef<any>\n\n /**\n * @internal\n * Incremental id.\n */\n initId!: number\n\n /**\n * @internal\n * FormGroup containing all row id\\'s as controls, and whether these are selected or not as values.\n */\n rowSelectors: UntypedFormGroup = new UntypedFormGroup({})\n\n /**\n * @internal\n * Master selector for selecting or deselecting all row selectors.\n */\n groupSelector: UntypedFormControl = new UntypedFormControl(false)\n\n private selected: string[] = []\n private subs: Subscription[] = []\n\n ngOnChanges(changes: SimpleChanges) {\n // Update selectable or expandable rows if table data or settings change\n if (\n (this.selectable || this.expandable) && changes.tableData?.currentValue ||\n (changes.selectable?.currentValue || changes.expandable?.currentValue) && this.tableData\n ) {\n const wasChanged = this.registerSelectableRows(\n changes.tableData.currentValue,\n )\n if (wasChanged && !this.subs.length) {\n // first time this is run\n const groupSelectorSub = this.groupValueSubscription\n const rowSelectorSub = this.rowValueSubscription\n this.subs.push(groupSelectorSub, rowSelectorSub)\n } else if (wasChanged) {\n this.rowSelectors.updateValueAndValidity()\n }\n }\n\n // sort any incoming data\n if (\n this.allowLocalSort &&\n (changes.tableData?.currentValue || changes.tableColumns?.currentValue)\n ) {\n const orderedByColumn: TableColumn<T> | undefined =\n this.tableColumns?.find((el) => el.order !== undefined)\n if (orderedByColumn) this.sortItemsBy(orderedByColumn)\n }\n }\n\n ngOnInit(): void {\n this.initId = staticInitId++\n }\n\n ngAfterContentInit() {\n // if any custom templates were defined in the template\n if (this.customTemplates.length) {\n // for each template found\n this.customTemplates.map((tableTemplate) => {\n // if target is either 'td' or 'both'\n if (\n ['td', 'both'].includes(tableTemplate.tableColumnTarget as string)\n ) {\n // add to custom row templates\n this.customRowTemplates.set(\n tableTemplate.tableColumn,\n tableTemplate.templateRef,\n )\n }\n // if target is either 'th' or 'both'\n if (\n ['th', 'both'].includes(tableTemplate.tableColumnTarget as string)\n ) {\n // add to custom header templates\n this.customHeaderTemplates.set(\n tableTemplate.tableColumn,\n tableTemplate.templateRef,\n )\n }\n })\n }\n\n // if appended rows' template is defined in the template\n if (this.appendedRowsTemplate) {\n // set templateRef of appended rows' template to variable\n this.appendedRowsTemplateRef = this.appendedRowsTemplate.templateRef\n }\n\n // if custom footer template is defined in the template\n if (this.customFooterTemplate) {\n // set templateRef of table footer to variable\n this.customFooterTemplateRef = this.customFooterTemplate.templateRef\n }\n\n // if expandedByDefault is true, then expand all rows\n if (this.expandedByDefault && this.expandable && this.tableData) {\n this.tableData.forEach((item) => {\n this.toggleRowToExpand(item[this.rowId])\n })\n }\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n /**\n * @internal\n * Returns a subscription to the master selector control that either selects or deselects all row controls.\n */\n get groupValueSubscription(): Subscription {\n return this.groupSelector.valueChanges.subscribe({\n next: (value: boolean) => {\n const selectMap = new Map(Object.entries(this.rowSelectorsValue))\n selectMap.forEach((_, key) => selectMap.set(key, value))\n const patchValue = objectFromEntries(selectMap)\n this.rowSelectors.patchValue(patchValue)\n },\n })\n }\n\n /**\n * @internal\n * Returns a subscription to all individual row selectors and update the master selector if all are selected.\n */\n get rowValueSubscription(): Subscription {\n return this.rowSelectors.valueChanges\n .pipe(\n debounceTime(0), // to limit the number of events and to wait for all sub controls to update\n map((val: { [key: string]: boolean }) => {\n // get a filtered array of keys for all rows that are selected\n const selected = Object.keys(val).filter((key) => {\n return val[key] === true && this.rowSelectors.get(key)?.enabled\n })\n // returns an object containing only the filtered keys\n return pick(selected, val)\n }),\n )\n .subscribe({\n next: (value: object) => {\n // the number of selected keys compared to the total number of keys available\n const numberOfSelected = Object.keys(value).length\n const allSelected: boolean =\n numberOfSelected > 0\n ? numberOfSelected === Object.keys(this.rowSelectorsValue).length\n : false\n // update the master selector control\n this.groupSelector.setValue(allSelected, { emitEvent: false })\n // update the array of currently selected id's\n this.selected = Object.keys(value)\n // and emit the updated value\n this.ngvRowSelect.emit(this.selected)\n },\n })\n }\n\n /**\n * @internal\n * Registers or disables row controls for new or removed rows.\n */\n registerSelectableRows(tableData: any[]): boolean {\n if (!tableData) return false\n // Array containing only the id's for each row\n const dataRowIds: string[] = tableData.map((data: any) => data[this.rowId])\n\n // Array containing the id's that have registered controls\n const currentIds: string[] = Object.keys(this.rowSelectorsValue)\n\n // Array containing all ids that lacks a corresponding control (i.e. new rows)\n const newIds: string[] = dataRowIds.filter(\n (id) => currentIds.indexOf(id) === -1,\n )\n\n // Array containing all ids that has a control but is no longer in the data set (i.e. removed rows)\n const removedIds: string[] = currentIds.filter(\n (id) => dataRowIds.indexOf(id) === -1,\n )\n\n // Register new controls for added rows\n if (newIds.length) {\n newIds.forEach((id) => {\n const ctrl = this.rowSelectors.registerControl(\n id,\n new UntypedFormControl(false),\n )\n if (ctrl.disabled) ctrl.enable()\n })\n }\n\n // Set already registered controls to disabled for removed rows\n if (removedIds.length)\n removedIds.forEach((id) => this.rowSelectors.get(id)?.disable())\n\n return newIds.length > 0 || removedIds.length > 0\n }\n\n /**\n * @internal\n * Returns all enabled values unless all rows are disabled.\n */\n get rowSelectorsValue(): any {\n return this.rowSelectors.enabled ? this.rowSelectors.value : {}\n }\n\n toggleSortOrderWithSpace(event: any, column: TableColumn<T>) {\n if (column.sortable) {\n event.preventDefault()\n this.toggleSortOrder(column)\n }\n }\n\n /**\n * @internal\n * Switches sorting order between ascending and descending order for a column.\n * @param column the column to sort rows after.\n */\n toggleSortOrder(column: TableColumn<T>) {\n // check if the table is already sorted by another column than the one provided\n const currentlyOrderedBy = this.tableColumns?.find(\n (el) => el !== column && el.order !== undefined,\n )\n if (currentlyOrderedBy) delete currentlyOrderedBy.order\n column.order = column.order === 'desc' ? 'asc' : 'desc'\n this.sortItemsBy(column)\n }\n\n /** If sortable, reorders the table data using the specified column as ordering attribute. */\n sortItemsBy(column: TableColumn<T>): TableRow[] | undefined {\n if (!column.sortable) return\n // emit re-order event\n this.ngvOrderBy.emit({ property: column.property, order: column.order })\n // if local sort is allowed, reorder data\n if (!this.allowLocalSort || !this.tableData) return\n return this.tableData.sort(\n column.order === 'desc'\n ? orderByDescending(column.property)\n : orderByAscending(column.property),\n )\n }\n\n /**\n * @internal\n * Emits row data for what row was clicked if defaultEmit is allowed.\n */\n propagateItemClick(item: any, preventDefaultEmit?: boolean) {\n if (!preventDefaultEmit) this.ngvRowClick.emit(item)\n\n if (this.expandable && item[this.subItemsProp]) {\n this.toggleRowToExpand(item[this.rowId])\n }\n }\n\n getAriaLabel(column: TableColumn<T>): string | undefined {\n const sortOrder =\n column.order === 'asc'\n ? this.ariaLabelsOrderBy?.desc\n : this.ariaLabelsOrderBy?.asc\n if (!sortOrder) return // no aria labels defined\n return column.ariaLabelSortable?.replace('{{sortOrder}}', sortOrder)\n }\n\n private toggleRowToExpand(id: string): void {\n const row = this.rowSelectors.get(id)\n row?.setValue(!row.value)\n }\n}\n","<ng-template #sortableThTemplate let-column>\n <button class=\"sg-table-sort\" *transloco=\"let t\">\n <ng-template #thButtonTemplate>\n {{ t(column.label ?? '') }}\n </ng-template>\n <ng-container\n *ngIf=\"\n customHeaderTemplates.get(column.property) as thTemplate;\n else thButtonTemplate\n \"\n >\n <ng-template\n *ngTemplateOutlet=\"thTemplate || null; context: { $implicit: column }\"\n >\n </ng-template>\n </ng-container>\n </button>\n</ng-template>\n\n<ng-template #notSortableThTemplate let-column>\n <ng-template #defaultThTemplate>\n <ng-container *transloco=\"let t\">\n {{ t(column.label ?? '') }}\n </ng-container>\n </ng-template>\n <ng-container\n *ngIf=\"\n customHeaderTemplates.get(column.property) as thTemplate;\n else defaultThTemplate\n \"\n >\n <ng-template\n *ngTemplateOutlet=\"thTemplate || null; context: { $implicit: column }\"\n >\n </ng-template>\n </ng-container>\n</ng-template>\n<table class=\"gds-table\" *transloco=\"let t\">\n <!-- Table header -->\n <thead>\n <tr>\n <!-- Checkbox column for header -->\n <th *ngIf=\"selectable\" class=\"column__check\">\n <div class=\"gds-field-checkbox-wrap\">\n <label\n [attr.for]=\"'cb_header__' + initId\"\n class=\"form-control\"\n id=\"thead-checkbox\"\n >\n <input\n type=\"checkbox\"\n [formControl]=\"groupSelector\"\n [attr.aria-label]=\"ariaLabelCheckboxTh\"\n [attr.id]=\"'cb_header__' + initId\"\n [attr.data-thook]=\"thook\"\n />\n <i></i>\n </label>\n </div>\n </th>\n\n <!-- Other columns -->\n <th\n *ngFor=\"let column of tableColumns\"\n [columnType]=\"column.valueType\"\n [sortable]=\"column.sortable\"\n [sortOrder]=\"column.order\"\n [thook]=\"'column-header-' + !!column.property\"\n (click)=\"toggleSortOrder(column)\"\n (keydown.space)=\"toggleSortOrderWithSpace($event, column)\"\n [attr.aria-label]=\"getAriaLabel(column)\"\n [attr.aria-sort]=\"column.order + 'ending'\"\n >\n <ng-container *ngIf=\"column.sortable\">\n <ng-container\n *ngTemplateOutlet=\"\n sortableThTemplate;\n context: { $implicit: column, column: column }\n \"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <ng-container\n *ngTemplateOutlet=\"\n notSortableThTemplate;\n context: { $implicit: column, column: column }\n \"\n >\n </ng-container>\n </ng-container>\n </th>\n </tr>\n </thead>\n\n <!-- Table body -->\n <tbody [formGroup]=\"rowSelectors\">\n <ng-container *ngFor=\"let item of tableData; let i = index\">\n <tr\n [class.row__expand]=\"expandable\"\n [attr.data-thook]=\"item | trThook: i : trThookFn\"\n [attr.data-hasrowspan]=\"hasRowSpan(item)\"\n >\n <!-- Checkbox column for row -->\n <td *ngIf=\"selectable\" class=\"column__check\">\n <div\n *ngIf=\"!hiddenCheckboxRowIds.includes(item[rowId])\"\n class=\"gds-field-checkbox-wrap\"\n >\n <label\n [attr.for]=\"'cb_row__' + initId + '_' + i\"\n class=\"form-control\"\n >\n <input\n *ngIf=\"rowSelectors.get(item[rowId])\"\n type=\"checkbox\"\n [formControlName]=\"item[rowId]\"\n [attr.aria-label]=\"ariaLabelCheckboxTr\"\n [attr.id]=\"'cb_row__' + initId + '_' + i\"\n [attr.data-thook]=\"'row-select-' + i\"\n />\n <i></i>\n </label>\n </div>\n </td>\n\n <!-- Other columns -->\n <td\n *ngFor=\"let column of tableColumns; let i = index\"\n [columnType]=\"column.valueType\"\n [value]=\"item[column.property]\"\n (click)=\"propagateItemClick(item, column.preventDefaultClickEvent)\"\n >\n <ng-container *ngIf=\"expandable && i === 0; else nonExpandableTemplate\">\n <div\n class=\"gds-item-field-wrap\"\n [ngClass]=\"{ 'no-sub-items': item.subItems.length === 0 }\"\n >\n <span\n *ngIf=\"item.subItems.length > 0\"\n role=\"button\"\n tabindex=\"0\"\n class=\"chevron-field\"\n [attr.aria-expanded]=\"rowSelectors.get(item[rowId])?.value\"\n >\n <svg\n width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20 9L12 17L4 9\"\n stroke=\"currentColor\"\n stroke-width=\"1.6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"gds-item-field-text\">\n {{ item[column.property] }} ({{ item.subItems.length }})\n <div *ngIf=\"column.columnLabel\" class=\"gds-item-field-extra-label\">\n {{ item[column.columnLabel] }}\n </div>\n </span>\n </div>\n </ng-container>\n\n <ng-template #nonExpandableTemplate>\n <ng-container *ngIf=\"customRowTemplates.get(column.property) as tdTemplate; else defaultTdTemplate\">\n <ng-template *ngTemplateOutlet=\"tdTemplate; context: { $implicit: item }\">\n </ng-template>\n </ng-container>\n <ng-template #defaultTdTemplate>\n {{ item[column.property] }}\n </ng-template>\n </ng-template>\n </td>\n </tr>\n\n <!-- Expanded Sub Items -->\n <ng-container *ngIf=\"expandable && rowSelectors.get(item[rowId])?.value\">\n <tr *ngFor=\"let subItem of item[subItemsProp]\">\n <td\n *ngFor=\"let column of tableColumns\"\n class=\"web-view\"\n [columnType]=\"column.valueType\"\n [value]=\"subItem[column.property]\"\n (click)=\"propagateItemClick(subItem, column.preventDefaultClickEvent)\"\n >\n <ng-container *ngIf=\"customRowTemplates.get(column.property) as tdTemplate; else defaultTdTemplate\">\n <ng-template *ngTemplateOutlet=\"tdTemplate; context: { $implicit: subItem }\">\n </ng-template>\n </ng-container>\n <ng-template #defaultTdTemplate>\n {{ subItem[column.property] }}\n </ng-template>\n </td>\n\n <td\n class=\"mobile-view\"\n [attr.colspan]=\"tableColumns.length\"\n (click)=\"propagateItemClick(subItem)\"\n >\n <dl class=\"mobile-view-field-wrap\">\n <ng-container *ngFor=\"let column of tableColumns\">\n <div\n *ngIf=\"!column.hidePropertyOnMobile\"\n class=\"mobile-view-field\"\n [columnType]=\"column.valueType\"\n [value]=\"subItem[column.property]\"\n >\n <dt *ngIf=\"!column.hideLabelOnMobile\">\n <ng-container *transloco=\"let t\">\n {{ t(column.label ?? '') }}\n </ng-container>\n </dt>\n <dd [ngStyle]=\"column.boldTextOnMobile ? { 'font-weight': '500' } : {'font-weight': '400'}\">\n <ng-container *ngIf=\"customRowTemplates.get(column.property) as tdTemplate; else defaultTdTemplate\">\n <ng-template *ngTemplateOutlet=\"tdTemplate; context: { $implicit: subItem }\"></ng-template>\n </ng-container>\n <ng-template #defaultTdTemplate>\n {{ subItem[column.property] }}\n </ng-template>\n </dd>\n <ng-content></ng-content>\n </div>\n </ng-container>\n </dl>\n <span\n role=\"button\"\n tabindex=\"0\"\n class=\"nav-chevron-field\"\n [attr.aria-expanded]=\"rowSelectors.get(item[rowId])?.value\"\n >\n <svg\n width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20 9L12 17L4 9\"\n stroke=\"currentColor\"\n stroke-width=\"1.6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n </td>\n </tr>\n </ng-container>\n\n <!-- Custom appended rows -->\n <ng-container *ngIf=\"appendedRowsTemplateRef as trTemplate\">\n <!-- Cannot infer trTemplate as TemplateRef therefore null -->\n <ng-container\n *ngTemplateOutlet=\"trTemplate || null; context: { $implicit: item }\"\n >\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n\n <!-- Table footer -->\n <tfoot *ngIf=\"customFooterTemplateRef as trTemplate\">\n <!-- Cannot infer trTemplate as TemplateRef therefore null -->\n <ng-container *ngTemplateOutlet=\"trTemplate || null\"> </ng-container>\n </tfoot>\n</table>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { TableComponent } from './table.component'\nimport {\n TableAppendableRowsTemplateDirective,\n TableDirective,\n TableFooterTemplateDirective,\n TableTemplateDirective,\n} from './table.directive'\nimport { TrThookPipe } from './tr-thook.pipe'\n\n@NgModule({\n declarations: [\n TableComponent,\n TableDirective,\n TableTemplateDirective,\n TableFooterTemplateDirective,\n TableAppendableRowsTemplateDirective,\n ],\n imports: [CommonModule, ReactiveFormsModule, TranslocoModule, TrThookPipe],\n exports: [\n TableComponent,\n TableTemplateDirective,\n TableFooterTemplateDirective,\n TableAppendableRowsTemplateDirective,\n ],\n})\nexport class NggvTableModule {}\n","/*\n * Public API Surface of table\n */\n\nexport * from './table.component'\nexport * from './table.directive'\nexport * from './tr-thook.pipe'\nexport * from './table.models'\nexport * from './table.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.TableDirective","i5.TrThookPipe"],"mappings":";;;;;;;;;;MAea,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;QAKW,IAAU,CAAA,UAAA,GAAmC,MAAM,CAAA;QAKnB,IAAK,CAAA,KAAA,GAC5C,OAAO,CAAA;AAyBV,KAAA;AAvBC,IAAA,IAAoD,aAAa,GAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAA;KACrC;AAED,IAAA,IAAqD,UAAU,GAAA;AAC7D,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;KACvB;AAED,IAAA,IACI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;KACnD;AAED,IAAA,IACI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;KACpD;AAED,IAAA,IACI,aAAa,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;AAC9C,QAAA,OAAO,KAAK,CAAA;KACb;+GA/BU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,iBAAA,EAAA,oCAAA,EAAA,qBAAA,EAAA,qCAAA,EAAA,sBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;8BAEU,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEmC,KAAK,EAAA,CAAA;sBAA7C,WAAW;uBAAC,iBAAiB,CAAA;;sBAAG,KAAK;gBAGc,aAAa,EAAA,CAAA;sBAAhE,WAAW;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,GAAyB,wBAAA,8BAAA;gBAIO,UAAU,EAAA,CAAA;sBAA9D,WAAW;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,GAA0B,yBAAA,+BAAA;gBAK3C,cAAc,EAAA,CAAA;sBADjB,WAAW;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,GAA2B,8BAAA,gCAAA;gBAM5C,eAAe,EAAA,CAAA;sBADlB,WAAW;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,GAA4B,+BAAA,iCAAA;gBAM7C,aAAa,EAAA,CAAA;sBADhB,WAAW;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,GAA0B,yBAAA,+BAAA;;MAWpC,sBAAsB,CAAA;AAIjC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAFvC,IAAiB,CAAA,iBAAA,GAA0B,MAAM,CAAA;KAEN;+GAJzC,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;gFAEU,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;;MASK,4BAA4B,CAAA;AACvC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAAI;+GADzC,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA5B,4BAA4B,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;;MASY,oCAAoC,CAAA;AAC/C,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAAI;+GADzC,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApC,oCAAoC,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,uBAAuB;AAClC,iBAAA,CAAA;;;ACvED,MAAM,WAAW,GAAG,CAAuB,GAAM,EAAE,GAAM,KAAW,GAAG,CAAC,GAAG,CAAC,CAAA;AAErE,MAAM,IAAI,GAAG,CAClB,aAA4B,EAC5B,MAAkC,KACxB;AACV,IAAA,IAAI,MAAM,YAAY,MAAM,EAAE;QAC5B,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,GAAW,EAAE,IAAY,MAAM;AAC9B,YAAA,GAAG,GAAG;YACN,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;SAClC,CAAC,EACF,EAAE,CACH,CAAA;KACF;AACD,IAAA,MAAM,KAAK,CAAC,mDAAmD,CAAC,CAAA;AAClE,CAAC,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAC/B,QAA0B,KACM;AAChC,IAAA,OAAO,CAAC,CAAM,EAAE,CAAM,KAAI;QACxB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,CAAC,CAAA;QACxC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,CAAC,CAAA;AACvC,QAAA,OAAO,CAAC,CAAA;AACV,KAAC,CAAA;AACH,CAAC,CAAA;AAEM,MAAM,gBAAgB,GAAG,CAC9B,QAA0B,KACM;AAChC,IAAA,OAAO,CAAC,CAAM,EAAE,CAAM,KAAI;QACxB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,CAAC,CAAA;QACxC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,CAAC,CAAA;AACvC,QAAA,OAAO,CAAC,CAAA;AACV,KAAC,CAAA;AACH,CAAC;;MC9BY,WAAW,CAAA;AACtB,IAAA,SAAS,CACP,KAAQ,EACR,KAAa,EACb,OAAgC,EAAA;;AAGhC,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,YAAA,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;SACtB;;QAGD,OAAO,CAAA,UAAA,EAAa,KAAK,CAAA,CAAE,CAAA;KAC5B;+GAbU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;AC2BD,IAAI,YAAY,GAAG,CAAC,CAAA;AAEpB,SAAS,iBAAiB,CAAC,QAAuB,EAAA;IAChD,MAAM,WAAW,GAA2B,EAAE,CAAA;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE;AACnC,QAAA,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;KACzB;AACD,IAAA,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EG;MAMU,cAAc,CAAA;AAL3B,IAAA,WAAA,GAAA;;AA6BY,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAW,CAAA;AAEnD;;;AAGG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAY,CAAA;AAErD;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAc,CAAA;AAWrD;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,IAAI,CAAA;AAErB;;;;;;AAMG;AACM,QAAA,IAAA,CAAA,UAAU,GAAqB,CAAC,CAAC,KAAK,SAAS,CAAA;AAExD;;;AAGG;QACM,IAAU,CAAA,UAAA,GAAG,IAAI,CAAA;AAE1B;;AAEG;QACM,IAAoB,CAAA,oBAAA,GAAa,EAAE,CAAA;AAE5C;;;AAGG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;AAE3B;;;AAGG;QACM,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAA;AAEjC;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,UAAU,CAAA;AAElC;;;AAGG;QACM,IAAc,CAAA,cAAA,GAAG,KAAK,CAAA;;QAGtB,IAAK,CAAA,KAAA,GAAG,kBAAkB,CAAA;AAcnC;;;AAGG;AACH,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,GAAG,EAA6B,CAAA;AAEzD;;;AAGG;AACH,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,GAAG,EAA6B,CAAA;AAoB5D;;;AAGG;AACH,QAAA,IAAA,CAAA,YAAY,GAAqB,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAA;AAEzD;;;AAGG;AACH,QAAA,IAAA,CAAA,aAAa,GAAuB,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAEzD,IAAQ,CAAA,QAAA,GAAa,EAAE,CAAA;QACvB,IAAI,CAAA,IAAA,GAAmB,EAAE,CAAA;AAuPlC,KAAA;AArPC,IAAA,WAAW,CAAC,OAAsB,EAAA;;AAEhC,QAAA,IACE,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,EAAE,YAAY;AACvE,YAAA,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,YAAY,KAAK,IAAI,CAAC,SAAS,EACxF;AACA,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAC5C,OAAO,CAAC,SAAS,CAAC,YAAY,CAC/B,CAAA;YACD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;;AAEnC,gBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAA;AACpD,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAA;gBAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;aACjD;iBAAM,IAAI,UAAU,EAAE;AACrB,gBAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAA;aAC3C;SACF;;QAGD,IACE,IAAI,CAAC,cAAc;AACnB,aAAC,OAAO,CAAC,SAAS,EAAE,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,EACvE;AACA,YAAA,MAAM,eAAe,GACnB,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;AACzD,YAAA,IAAI,eAAe;AAAE,gBAAA,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;SACvD;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,CAAA;KAC7B;IAED,kBAAkB,GAAA;;AAEhB,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;;YAE/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,aAAa,KAAI;;AAEzC,gBAAA,IACE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAA2B,CAAC,EAClE;;AAEA,oBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,aAAa,CAAC,WAAW,EACzB,aAAa,CAAC,WAAW,CAC1B,CAAA;iBACF;;AAED,gBAAA,IACE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAA2B,CAAC,EAClE;;AAEA,oBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAC5B,aAAa,CAAC,WAAW,EACzB,aAAa,CAAC,WAAW,CAC1B,CAAA;iBACF;AACH,aAAC,CAAC,CAAA;SACH;;AAGD,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;;YAE7B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAA;SACrE;;AAGD,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;;YAE7B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAA;SACrE;;AAGD,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;YAC/D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AAC1C,aAAC,CAAC,CAAA;SACH;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;KAC9C;AAED;;;AAGG;AACH,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC;AAC/C,YAAA,IAAI,EAAE,CAAC,KAAc,KAAI;AACvB,gBAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;AACjE,gBAAA,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AACxD,gBAAA,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;AAC/C,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;aACzC;AACF,SAAA,CAAC,CAAA;KACH;AAED;;;AAGG;AACH,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY;AAClC,aAAA,IAAI,CACH,YAAY,CAAC,CAAC,CAAC;AACf,QAAA,GAAG,CAAC,CAAC,GAA+B,KAAI;;AAEtC,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;AAC/C,gBAAA,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;AACjE,aAAC,CAAC,CAAA;;AAEF,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAC5B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,KAAa,KAAI;;gBAEtB,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;AAClD,gBAAA,MAAM,WAAW,GACf,gBAAgB,GAAG,CAAC;AAClB,sBAAE,gBAAgB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM;sBAC/D,KAAK,CAAA;;AAEX,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;;gBAE9D,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;gBAElC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;aACtC;AACF,SAAA,CAAC,CAAA;KACL;AAED;;;AAGG;AACH,IAAA,sBAAsB,CAAC,SAAgB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,KAAK,CAAA;;AAE5B,QAAA,MAAM,UAAU,GAAa,SAAS,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;;QAG3E,MAAM,UAAU,GAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;;QAGhE,MAAM,MAAM,GAAa,UAAU,CAAC,MAAM,CACxC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CACtC,CAAA;;QAGD,MAAM,UAAU,GAAa,UAAU,CAAC,MAAM,CAC5C,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CACtC,CAAA;;AAGD,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,YAAA,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AACpB,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAC5C,EAAE,EACF,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAC9B,CAAA;gBACD,IAAI,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,MAAM,EAAE,CAAA;AAClC,aAAC,CAAC,CAAA;SACH;;QAGD,IAAI,UAAU,CAAC,MAAM;YACnB,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAElE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;KAClD;AAED;;;AAGG;AACH,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAA;KAChE;IAED,wBAAwB,CAAC,KAAU,EAAE,MAAsB,EAAA;AACzD,QAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,KAAK,CAAC,cAAc,EAAE,CAAA;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;SAC7B;KACF;AAED;;;;AAIG;AACH,IAAA,eAAe,CAAC,MAAsB,EAAA;;QAEpC,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAChD,CAAC,EAAE,KAAK,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,CAChD,CAAA;AACD,QAAA,IAAI,kBAAkB;YAAE,OAAO,kBAAkB,CAAC,KAAK,CAAA;AACvD,QAAA,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AACvD,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;KACzB;;AAGD,IAAA,WAAW,CAAC,MAAsB,EAAA;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAM;;AAE5B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;;QAExE,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAM;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACxB,MAAM,CAAC,KAAK,KAAK,MAAM;AACrB,cAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;cAClC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CACtC,CAAA;KACF;AAED;;;AAGG;IACH,kBAAkB,CAAC,IAAS,EAAE,kBAA4B,EAAA;AACxD,QAAA,IAAI,CAAC,kBAAkB;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC9C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;SACzC;KACF;AAED,IAAA,YAAY,CAAC,MAAsB,EAAA;AACjC,QAAA,MAAM,SAAS,GACb,MAAM,CAAC,KAAK,KAAK,KAAK;AACpB,cAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI;AAC9B,cAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAA;AACjC,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAM;QACtB,OAAO,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;KACrE;AAEO,IAAA,iBAAiB,CAAC,EAAU,EAAA;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrC,GAAG,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KAC1B;+GAhZU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,mqBAaX,oCAAoC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOpC,4BAA4B,EAdzB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,sBAAsB,qECjIzC,moTA4QA,EAAA,MAAA,EAAA,CAAA,g+eAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjJa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,moTAAA,EAAA,MAAA,EAAA,CAAA,g+eAAA,CAAA,EAAA,CAAA;8BAWtB,eAAe,EAAA,CAAA;sBADd,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAQ9D,oBAAoB,EAAA,CAAA;sBADnB,YAAY;uBAAC,oCAAoC,CAAA;gBAQlD,oBAAoB,EAAA,CAAA;sBADnB,YAAY;uBAAC,4BAA4B,CAAA;gBAIhC,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAMG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAKG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAME,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAMG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAKG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAMG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAMG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAKG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAMG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAGG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAGG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;;;ME1MK,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAdxB,cAAc;YACd,cAAc;YACd,sBAAsB;YACtB,4BAA4B;YAC5B,oCAAoC,CAAA,EAAA,OAAA,EAAA,CAE5B,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CAEvE,cAAc;YACd,sBAAsB;YACtB,4BAA4B;YAC5B,oCAAoC,CAAA,EAAA,CAAA,CAAA,EAAA;AAG3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EARhB,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAQjD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;wBACd,cAAc;wBACd,sBAAsB;wBACtB,4BAA4B;wBAC5B,oCAAoC;AACrC,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,CAAC;AAC1E,oBAAA,OAAO,EAAE;wBACP,cAAc;wBACd,sBAAsB;wBACtB,4BAA4B;wBAC5B,oCAAoC;AACrC,qBAAA;AACF,iBAAA,CAAA;;;AC7BD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-table.mjs","sources":["../../../../libs/angular/src/v-angular/table/table.directive.ts","../../../../libs/angular/src/v-angular/table/table.tools.ts","../../../../libs/angular/src/v-angular/table/tr-thook.pipe.ts","../../../../libs/angular/src/v-angular/table/table.component.ts","../../../../libs/angular/src/v-angular/table/table.component.html","../../../../libs/angular/src/v-angular/table/table.module.ts","../../../../libs/angular/src/v-angular/table/index.ts","../../../../libs/angular/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.ts"],"sourcesContent":["import { Directive, HostBinding, Input, TemplateRef } from '@angular/core'\n\nconst enum ColumnCSSClass {\n Primary = 'gds-table__primary-col',\n Sortable = 'gds-table__sortable-col',\n Numeric = 'gds-table__numeric-col',\n Negative = 'gds-table__negative-col',\n Ascending = 'gds-table__sortable-col--asc',\n Descending = 'gds-table__sortable-col--desc',\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[columnType]',\n standalone: false\n})\nexport class TableDirective {\n @Input() columnType: 'numeric' | 'text' | undefined = 'text'\n @Input() sortable?: boolean\n @Input() sortOrder?: 'desc' | 'asc'\n @Input() value: any\n\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'table'\n\n @HostBinding('class.' + ColumnCSSClass.Numeric) get numericColumn(): boolean {\n return this.columnType === 'numeric'\n }\n\n @HostBinding('class.' + ColumnCSSClass.Sortable) get isSortable(): boolean {\n return !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Ascending)\n get orderAscending(): boolean {\n return this.sortOrder === 'asc' && !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Descending)\n get orderDescending(): boolean {\n return this.sortOrder === 'desc' && !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Negative)\n get negativeValue(): boolean {\n if (!isNaN(this.value)) return +this.value < 0\n return false\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableColumn]',\n standalone: false\n})\nexport class TableTemplateDirective<K = string> {\n @Input() tableColumn!: K\n @Input() tableColumnTarget?: 'th' | 'td' | 'both' = 'both'\n\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableFooter]',\n standalone: false\n})\nexport class TableFooterTemplateDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableAppendableRows]',\n standalone: false\n})\nexport class TableAppendableRowsTemplateDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","const getKeyValue = <T, K extends keyof T>(obj: T, key: K): T[K] => obj[key]\n\nexport const pick = (\n propertyArray: Array<string>,\n object: { [key: string]: unknown },\n): object => {\n if (object instanceof Object) {\n return propertyArray.reduce(\n (acc: object, curr: string) => ({\n ...acc,\n [curr]: getKeyValue(object, curr),\n }),\n {},\n )\n }\n throw Error('The value for argument \"object\" must be an object')\n}\n\nexport const orderByDescending = <T>(\n property: keyof T | string,\n): ((a: any, b: any) => number) => {\n return (a: any, b: any) => {\n if (a[property] > b[property]) return -1\n if (a[property] < b[property]) return 1\n return 0\n }\n}\n\nexport const orderByAscending = <T>(\n property: keyof T | string,\n): ((a: any, b: any) => number) => {\n return (a: any, b: any) => {\n if (a[property] < b[property]) return -1\n if (a[property] > b[property]) return 1\n return 0\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n name: 'trThook',\n standalone: true,\n})\nexport class TrThookPipe implements PipeTransform {\n transform<V>(\n value: V,\n index: number,\n thookFn?: (rowData: V) => string,\n ): string {\n // call thook fn to set thook for active row\n if (thookFn != null) {\n return thookFn(value)\n }\n\n // default thook\n return `table-row-${index}`\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core'\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms'\nimport { Subscription } from 'rxjs'\nimport { debounceTime, map } from 'rxjs/operators'\n\nimport {\n TableAppendableRowsTemplateDirective,\n TableFooterTemplateDirective,\n TableTemplateDirective,\n} from './table.directive'\nimport {\n ariaLabelsOrderBy,\n OrderBy,\n TableColumn,\n TableRow,\n} from './table.models'\nimport { orderByAscending, orderByDescending, pick } from './table.tools'\n\nlet staticInitId = 0\n\nfunction objectFromEntries(entryMap: Map<any, any>): { [key: string]: any } {\n const fromEntries: { [key: string]: any } = {}\n for (const [key, value] of entryMap) {\n fromEntries[key] = value\n }\n return fromEntries\n}\n\n/**\n * A table component with built-in sorting and selecting functionality.\n * By default, table cells (i.e. `<td>` elements) and table headers (i.e. `<th>` elements) are populated with text only values.\n *\n * To customize the contents of either the `<td>` or `<th>` elements (like adding color, icons, form fields, extra padding etc.), provide\n * the customized content within a `<ng-template>`-tag, and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableColumn`-attribute to the `<ng-template>`-element, and set the value to the specific column property.\n * Set `tableColumnTarget` to either `th`, `td` or `both` (default) depending on target element type.\n * The entire row from the `@Input() tableData` is available from the context `$implicit` variable.\n *\n * @example\n * <!-- for table cells i.e. td-elements -->\n * <ng-template tableColumn=\"status\" tableColumnTarget=\"td\" let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <!-- my custom status element -->\n * </ng-template>\n *\n * @example\n * <!-- for table headers i.e. th-elements -->\n * <ng-template tableColumn=\"status\" tableColumnTarget=\"th\" let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <!-- my custom status element -->\n * </ng-template>\n *\n * It is possible to add custom rows that are appended below data row. Use `<ng-template>`-tag and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableAppendableRows`-attribute to the `<ng-template>`-element. Any `tr` elements that exist within `<ng-template tableAppendableRows>` and `</ng-template>` tags will be put below data row's `tr` element in the table.\n *\n * @example\n * <!-- custom appended rows -->\n * <ng-template tableAppendableRows let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <tr>\n * <!-- first row's columns -->\n * </tr>\n * <!-- more rows if needed -->\n * </ng-template>\n *\n * If custom styling is needed for data row that has appended rows, you can use data attribute `data-hasrowspan` to distinguish it from data row without appended rows.\n * You can pass your own custom method with conditional logic to define what value will be passed to data-hasrowspan.\n * In addition, hasRowSpan function accepts item from `@Input() tableData` as argument which is of the same type as value passed to context `$implicit` variable.\n * IMPORTANT: use arrow function style for defining function inside component, i.e. `hasRowSpan = (value) => output;`. If regular function will be defined, i.e. `hasRowSpan(value) { return output; }`, binding will not work.\n *\n * @example\n * <!-- inside component\n * class CustomComponent {\n * customHasRowSpanFunction = (item: CustomDataType) => item.appendedRowsData.length > 0 ? true : false;\n * }\n * -->\n * <!-- inside stylesheets\n * [data-hasrowspan=\"true\"] {\n * color: blue;\n * }\n * .appended-row {\n * color: blue;\n * }\n * -->\n * <nggv-table [hasRowSpan]=\"customHasRowSpanFunction\">\n * <!-- custom appended rows -->\n * <ng-template tableAppendableRows let-appendedRowsData=\"$implicit.appendedRowsData\">\n * <tr *ngFor=\"let appendedRowItem of appendedRowsData\" class=\"appended-row\">\n * <td>{{ appendedRowItem }}</td>\n * <!-- other row's columns -->\n * </tr>\n * </ng-template>\n * </nggv-table>\n *\n * In addition, it is possible to add footer for the table. Similarly to adding custom columns, use `<ng-template>`-tag and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableFooter`-attribute to the `<ng-template>`-element. Any elements that exist within `<ng-template tableFooter>` and `</ng-template>` tags will be put to tfoot element inside the table.\n *\n * @example\n * <!-- for table footer i.e. tfoot-element -->\n * <ng-template tableFooter>\n * <tr>\n * <!-- first row's columns -->\n * </tr>\n * <!-- more rows if needed -->\n * </ng-template>\n *\n */\n@Component({\n selector: 'nggv-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n standalone: false\n})\nexport class TableComponent<T extends TableRow>\n implements OnInit, OnChanges, AfterContentInit, OnDestroy {\n /**\n * @internal\n * Custom templates defined in the html.\n */\n @ContentChildren(TableTemplateDirective, { descendants: true })\n customTemplates!: QueryList<TableTemplateDirective<keyof T>>\n\n /**\n * @internal\n * Custom appended rows template defined in the html.\n */\n @ContentChild(TableAppendableRowsTemplateDirective)\n appendedRowsTemplate!: TableAppendableRowsTemplateDirective\n\n /**\n * @internal\n * Custom footer template defined in the html.\n */\n @ContentChild(TableFooterTemplateDirective)\n customFooterTemplate!: TableFooterTemplateDirective\n\n /** Emits the table row that was clicked. Works on all columns if not preventDefaultEmit is set for that column. */\n @Output() ngvRowClick = new EventEmitter<T | any>()\n\n /**\n * Emits currently selected and deselected items in the table as key-value pairs.\n * Uses each item`s itemId as key, and a boolean value to describe selected status.\n */\n @Output() ngvRowSelect = new EventEmitter<string[]>()\n\n /**\n * Emits event to signal that the table should be reordered.\n */\n @Output() ngvOrderBy = new EventEmitter<OrderBy<T>>()\n\n /**\n * An array of items describing how the table header should be rendered,\n * together with instructions for how each row should be displayed in that column.\n */\n @Input() tableColumns!: TableColumn<T>[]\n\n /** Data array to display data in the table. Each item <T> in the array represents a row in the table. */\n @Input() tableData!: T[]\n\n /**\n * Property name used to uniquely describe each item (i.e. row) in the data table.\n * Defaults to \\'id\\'.\n * Is required if selectable is true.\n */\n @Input() rowId = 'id'\n\n /**\n * Function's return value is used for data attribute \\'data-hasrowspan\\'.\n * If custom hasRowSpan function is not passed to the table,\n * then this function returns undefined value by default which results in \\'data-hasrowspan\\' attribute being omitted in html\n * (angular omits attributes that contain null or undefined value).\n * IMPORTANT: use arrow function style for defining function inside component, i.e. `hasRowSpan = (value) => output;`. If regular function will be defined, i.e. `hasRowSpan(value) { return output; }`, binding will not work.\n */\n @Input() hasRowSpan: (item: T) => any = (_) => undefined\n\n /**\n * Used to enable/disable the left-side checkbox column.\n * Defaults to true.\n */\n @Input() selectable = true\n\n /**\n * Array of row id's (as defined by rowId property) that should not have a checkbox even if selectable is true.\n */\n @Input() hiddenCheckboxRowIds: string[] = []\n\n /**\n * Used to enable/disable expandable rows.\n * Defaults to false.\n */\n @Input() expandable = false\n\n /**\n * Used to enable/disable the right-side expand icon column.\n * Defaults to true.\n */\n @Input() expandedByDefault = true\n\n /**\n * Property name used to describe the subItems in the data table.\n */\n @Input() subItemsProp = 'subItems'\n\n /**\n * Allow nggv-table to attempt sorting the data in the table. Not recommended if only a subset is loaded or if the dataset is very large.\n * Disabled by default.\n */\n @Input() allowLocalSort = false\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'table-select-all'\n\n /** Function to overwrite generated thook for each row. */\n @Input() trThookFn?: (item: T) => string\n\n /** Aria label for the checkbox in the table header */\n @Input() ariaLabelCheckboxTh?: string\n\n /** Aria label for the checkbox in the table header */\n @Input() ariaLabelCheckboxTr?: string\n\n /** Aria labels for sorting in the table header */\n @Input() ariaLabelsOrderBy?: ariaLabelsOrderBy\n\n /**\n * @internal\n * Internal data structure used to keep track of added content templates used in td elements.\n */\n customRowTemplates = new Map<keyof T, TemplateRef<any>>()\n\n /**\n * @internal\n * Internal data structure used to keep track of added content templates used in th elements.\n */\n customHeaderTemplates = new Map<keyof T, TemplateRef<any>>()\n\n /**\n * @internal\n * Internal data structure used to hold custom appended rows i.e. tr elements (rows).\n */\n appendedRowsTemplateRef!: TemplateRef<any>\n\n /**\n * @internal\n * Internal data structure used to hold tfoot element children i.e. tr elements (rows).\n */\n customFooterTemplateRef!: TemplateRef<any>\n\n /**\n * @internal\n * Incremental id.\n */\n initId!: number\n\n /**\n * @internal\n * FormGroup containing all row id\\'s as controls, and whether these are selected or not as values.\n */\n rowSelectors: UntypedFormGroup = new UntypedFormGroup({})\n\n /**\n * @internal\n * Master selector for selecting or deselecting all row selectors.\n */\n groupSelector: UntypedFormControl = new UntypedFormControl(false)\n\n private selected: string[] = []\n private subs: Subscription[] = []\n\n ngOnChanges(changes: SimpleChanges) {\n // Update selectable or expandable rows if table data or settings change\n if (\n (this.selectable || this.expandable) && changes.tableData?.currentValue ||\n (changes.selectable?.currentValue || changes.expandable?.currentValue) && this.tableData\n ) {\n const wasChanged = this.registerSelectableRows(\n changes.tableData.currentValue,\n )\n if (wasChanged && !this.subs.length) {\n // first time this is run\n const groupSelectorSub = this.groupValueSubscription\n const rowSelectorSub = this.rowValueSubscription\n this.subs.push(groupSelectorSub, rowSelectorSub)\n } else if (wasChanged) {\n this.rowSelectors.updateValueAndValidity()\n }\n }\n\n // sort any incoming data\n if (\n this.allowLocalSort &&\n (changes.tableData?.currentValue || changes.tableColumns?.currentValue)\n ) {\n const orderedByColumn: TableColumn<T> | undefined =\n this.tableColumns?.find((el) => el.order !== undefined)\n if (orderedByColumn) this.sortItemsBy(orderedByColumn)\n }\n }\n\n ngOnInit(): void {\n this.initId = staticInitId++\n }\n\n ngAfterContentInit() {\n // if any custom templates were defined in the template\n if (this.customTemplates.length) {\n // for each template found\n this.customTemplates.map((tableTemplate) => {\n // if target is either 'td' or 'both'\n if (\n ['td', 'both'].includes(tableTemplate.tableColumnTarget as string)\n ) {\n // add to custom row templates\n this.customRowTemplates.set(\n tableTemplate.tableColumn,\n tableTemplate.templateRef,\n )\n }\n // if target is either 'th' or 'both'\n if (\n ['th', 'both'].includes(tableTemplate.tableColumnTarget as string)\n ) {\n // add to custom header templates\n this.customHeaderTemplates.set(\n tableTemplate.tableColumn,\n tableTemplate.templateRef,\n )\n }\n })\n }\n\n // if appended rows' template is defined in the template\n if (this.appendedRowsTemplate) {\n // set templateRef of appended rows' template to variable\n this.appendedRowsTemplateRef = this.appendedRowsTemplate.templateRef\n }\n\n // if custom footer template is defined in the template\n if (this.customFooterTemplate) {\n // set templateRef of table footer to variable\n this.customFooterTemplateRef = this.customFooterTemplate.templateRef\n }\n\n // if expandedByDefault is true, then expand all rows\n if (this.expandedByDefault && this.expandable && this.tableData) {\n this.tableData.forEach((item) => {\n this.toggleRowToExpand(item[this.rowId])\n })\n }\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n /**\n * @internal\n * Returns a subscription to the master selector control that either selects or deselects all row controls.\n */\n get groupValueSubscription(): Subscription {\n return this.groupSelector.valueChanges.subscribe({\n next: (value: boolean) => {\n const selectMap = new Map(Object.entries(this.rowSelectorsValue))\n selectMap.forEach((_, key) => selectMap.set(key, value))\n const patchValue = objectFromEntries(selectMap)\n this.rowSelectors.patchValue(patchValue)\n },\n })\n }\n\n /**\n * @internal\n * Returns a subscription to all individual row selectors and update the master selector if all are selected.\n */\n get rowValueSubscription(): Subscription {\n return this.rowSelectors.valueChanges\n .pipe(\n debounceTime(0), // to limit the number of events and to wait for all sub controls to update\n map((val: { [key: string]: boolean }) => {\n // get a filtered array of keys for all rows that are selected\n const selected = Object.keys(val).filter((key) => {\n return val[key] === true && this.rowSelectors.get(key)?.enabled\n })\n // returns an object containing only the filtered keys\n return pick(selected, val)\n }),\n )\n .subscribe({\n next: (value: object) => {\n // the number of selected keys compared to the total number of keys available\n const numberOfSelected = Object.keys(value).length\n const allSelected: boolean =\n numberOfSelected > 0\n ? numberOfSelected === Object.keys(this.rowSelectorsValue).length\n : false\n // update the master selector control\n this.groupSelector.setValue(allSelected, { emitEvent: false })\n // update the array of currently selected id's\n this.selected = Object.keys(value)\n // and emit the updated value\n this.ngvRowSelect.emit(this.selected)\n },\n })\n }\n\n /**\n * @internal\n * Registers or disables row controls for new or removed rows.\n */\n registerSelectableRows(tableData: any[]): boolean {\n if (!tableData) return false\n // Array containing only the id's for each row\n const dataRowIds: string[] = tableData.map((data: any) => data[this.rowId])\n\n // Array containing the id's that have registered controls\n const currentIds: string[] = Object.keys(this.rowSelectorsValue)\n\n // Array containing all ids that lacks a corresponding control (i.e. new rows)\n const newIds: string[] = dataRowIds.filter(\n (id) => currentIds.indexOf(id) === -1,\n )\n\n // Array containing all ids that has a control but is no longer in the data set (i.e. removed rows)\n const removedIds: string[] = currentIds.filter(\n (id) => dataRowIds.indexOf(id) === -1,\n )\n\n // Register new controls for added rows\n if (newIds.length) {\n newIds.forEach((id) => {\n const ctrl = this.rowSelectors.registerControl(\n id,\n new UntypedFormControl(false),\n )\n if (ctrl.disabled) ctrl.enable()\n })\n }\n\n // Set already registered controls to disabled for removed rows\n if (removedIds.length)\n removedIds.forEach((id) => this.rowSelectors.get(id)?.disable())\n\n return newIds.length > 0 || removedIds.length > 0\n }\n\n /**\n * @internal\n * Returns all enabled values unless all rows are disabled.\n */\n get rowSelectorsValue(): any {\n return this.rowSelectors.enabled ? this.rowSelectors.value : {}\n }\n\n toggleSortOrderWithSpace(event: any, column: TableColumn<T>) {\n if (column.sortable) {\n event.preventDefault()\n this.toggleSortOrder(column)\n }\n }\n\n /**\n * @internal\n * Switches sorting order between ascending and descending order for a column.\n * @param column the column to sort rows after.\n */\n toggleSortOrder(column: TableColumn<T>) {\n // check if the table is already sorted by another column than the one provided\n const currentlyOrderedBy = this.tableColumns?.find(\n (el) => el !== column && el.order !== undefined,\n )\n if (currentlyOrderedBy) delete currentlyOrderedBy.order\n column.order = column.order === 'desc' ? 'asc' : 'desc'\n this.sortItemsBy(column)\n }\n\n /** If sortable, reorders the table data using the specified column as ordering attribute. */\n sortItemsBy(column: TableColumn<T>): TableRow[] | undefined {\n if (!column.sortable) return\n // emit re-order event\n this.ngvOrderBy.emit({ property: column.property, order: column.order })\n // if local sort is allowed, reorder data\n if (!this.allowLocalSort || !this.tableData) return\n return this.tableData.sort(\n column.order === 'desc'\n ? orderByDescending(column.property)\n : orderByAscending(column.property),\n )\n }\n\n /**\n * @internal\n * Emits row data for what row was clicked if defaultEmit is allowed.\n */\n propagateItemClick(item: any, preventDefaultEmit?: boolean) {\n if (!preventDefaultEmit) this.ngvRowClick.emit(item)\n\n if (this.expandable && item[this.subItemsProp]) {\n this.toggleRowToExpand(item[this.rowId])\n }\n }\n\n getAriaLabel(column: TableColumn<T>): string | undefined {\n const sortOrder =\n column.order === 'asc'\n ? this.ariaLabelsOrderBy?.desc\n : this.ariaLabelsOrderBy?.asc\n if (!sortOrder) return // no aria labels defined\n return column.ariaLabelSortable?.replace('{{sortOrder}}', sortOrder)\n }\n\n private toggleRowToExpand(id: string): void {\n const row = this.rowSelectors.get(id)\n row?.setValue(!row.value)\n }\n}\n","<ng-template #sortableThTemplate let-column>\n <button class=\"sg-table-sort\" *transloco=\"let t\">\n <ng-template #thButtonTemplate>\n {{ t(column.label ?? '') }}\n </ng-template>\n <ng-container\n *ngIf=\"\n customHeaderTemplates.get(column.property) as thTemplate;\n else thButtonTemplate\n \"\n >\n <ng-template\n *ngTemplateOutlet=\"thTemplate || null; context: { $implicit: column }\"\n >\n </ng-template>\n </ng-container>\n </button>\n</ng-template>\n\n<ng-template #notSortableThTemplate let-column>\n <ng-template #defaultThTemplate>\n <ng-container *transloco=\"let t\">\n {{ t(column.label ?? '') }}\n </ng-container>\n </ng-template>\n <ng-container\n *ngIf=\"\n customHeaderTemplates.get(column.property) as thTemplate;\n else defaultThTemplate\n \"\n >\n <ng-template\n *ngTemplateOutlet=\"thTemplate || null; context: { $implicit: column }\"\n >\n </ng-template>\n </ng-container>\n</ng-template>\n<table class=\"gds-table\" *transloco=\"let t\">\n <!-- Table header -->\n <thead>\n <tr>\n <!-- Checkbox column for header -->\n <th *ngIf=\"selectable\" class=\"column__check\">\n <div class=\"gds-field-checkbox-wrap\">\n <label\n [attr.for]=\"'cb_header__' + initId\"\n class=\"form-control\"\n id=\"thead-checkbox\"\n >\n <input\n type=\"checkbox\"\n [formControl]=\"groupSelector\"\n [attr.aria-label]=\"ariaLabelCheckboxTh\"\n [attr.id]=\"'cb_header__' + initId\"\n [attr.data-thook]=\"thook\"\n />\n <i></i>\n </label>\n </div>\n </th>\n\n <!-- Other columns -->\n <th\n *ngFor=\"let column of tableColumns\"\n [columnType]=\"column.valueType\"\n [sortable]=\"column.sortable\"\n [sortOrder]=\"column.order\"\n [thook]=\"'column-header-' + !!column.property\"\n (click)=\"toggleSortOrder(column)\"\n (keydown.space)=\"toggleSortOrderWithSpace($event, column)\"\n [attr.aria-label]=\"getAriaLabel(column)\"\n [attr.aria-sort]=\"column.order + 'ending'\"\n >\n <ng-container *ngIf=\"column.sortable\">\n <ng-container\n *ngTemplateOutlet=\"\n sortableThTemplate;\n context: { $implicit: column, column: column }\n \"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <ng-container\n *ngTemplateOutlet=\"\n notSortableThTemplate;\n context: { $implicit: column, column: column }\n \"\n >\n </ng-container>\n </ng-container>\n </th>\n </tr>\n </thead>\n\n <!-- Table body -->\n <tbody [formGroup]=\"rowSelectors\">\n <ng-container *ngFor=\"let item of tableData; let i = index\">\n <tr\n [class.row__expand]=\"expandable\"\n [attr.data-thook]=\"item | trThook: i : trThookFn\"\n [attr.data-hasrowspan]=\"hasRowSpan(item)\"\n >\n <!-- Checkbox column for row -->\n <td *ngIf=\"selectable\" class=\"column__check\">\n <div\n *ngIf=\"!hiddenCheckboxRowIds.includes(item[rowId])\"\n class=\"gds-field-checkbox-wrap\"\n >\n <label\n [attr.for]=\"'cb_row__' + initId + '_' + i\"\n class=\"form-control\"\n >\n <input\n *ngIf=\"rowSelectors.get(item[rowId])\"\n type=\"checkbox\"\n [formControlName]=\"item[rowId]\"\n [attr.aria-label]=\"ariaLabelCheckboxTr\"\n [attr.id]=\"'cb_row__' + initId + '_' + i\"\n [attr.data-thook]=\"'row-select-' + i\"\n />\n <i></i>\n </label>\n </div>\n </td>\n\n <!-- Other columns -->\n <td\n *ngFor=\"let column of tableColumns; let i = index\"\n [columnType]=\"column.valueType\"\n [value]=\"item[column.property]\"\n (click)=\"propagateItemClick(item, column.preventDefaultClickEvent)\"\n >\n <ng-container *ngIf=\"expandable && i === 0; else nonExpandableTemplate\">\n <div\n class=\"gds-item-field-wrap\"\n [ngClass]=\"{ 'no-sub-items': item.subItems.length === 0 }\"\n >\n <span\n *ngIf=\"item.subItems.length > 0\"\n role=\"button\"\n tabindex=\"0\"\n class=\"chevron-field\"\n [attr.aria-expanded]=\"rowSelectors.get(item[rowId])?.value\"\n >\n <svg\n width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20 9L12 17L4 9\"\n stroke=\"currentColor\"\n stroke-width=\"1.6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"gds-item-field-text\">\n {{ item[column.property] }} ({{ item.subItems.length }})\n <div *ngIf=\"column.columnLabel\" class=\"gds-item-field-extra-label\">\n {{ item[column.columnLabel] }}\n </div>\n </span>\n </div>\n </ng-container>\n\n <ng-template #nonExpandableTemplate>\n <ng-container *ngIf=\"customRowTemplates.get(column.property) as tdTemplate; else defaultTdTemplate\">\n <ng-template *ngTemplateOutlet=\"tdTemplate; context: { $implicit: item }\">\n </ng-template>\n </ng-container>\n <ng-template #defaultTdTemplate>\n {{ item[column.property] }}\n </ng-template>\n </ng-template>\n </td>\n </tr>\n\n <!-- Expanded Sub Items -->\n <ng-container *ngIf=\"expandable && rowSelectors.get(item[rowId])?.value\">\n <tr *ngFor=\"let subItem of item[subItemsProp]\">\n <td\n *ngFor=\"let column of tableColumns\"\n class=\"web-view\"\n [columnType]=\"column.valueType\"\n [value]=\"subItem[column.property]\"\n (click)=\"propagateItemClick(subItem, column.preventDefaultClickEvent)\"\n >\n <ng-container *ngIf=\"customRowTemplates.get(column.property) as tdTemplate; else defaultTdTemplate\">\n <ng-template *ngTemplateOutlet=\"tdTemplate; context: { $implicit: subItem }\">\n </ng-template>\n </ng-container>\n <ng-template #defaultTdTemplate>\n {{ subItem[column.property] }}\n </ng-template>\n </td>\n\n <td\n class=\"mobile-view\"\n [attr.colspan]=\"tableColumns.length\"\n (click)=\"propagateItemClick(subItem)\"\n >\n <dl class=\"mobile-view-field-wrap\">\n <ng-container *ngFor=\"let column of tableColumns\">\n <div\n *ngIf=\"!column.hidePropertyOnMobile\"\n class=\"mobile-view-field\"\n [columnType]=\"column.valueType\"\n [value]=\"subItem[column.property]\"\n >\n <dt *ngIf=\"!column.hideLabelOnMobile\">\n <ng-container *transloco=\"let t\">\n {{ t(column.label ?? '') }}\n </ng-container>\n </dt>\n <dd [ngStyle]=\"column.boldTextOnMobile ? { 'font-weight': '500' } : {'font-weight': '400'}\">\n <ng-container *ngIf=\"customRowTemplates.get(column.property) as tdTemplate; else defaultTdTemplate\">\n <ng-template *ngTemplateOutlet=\"tdTemplate; context: { $implicit: subItem }\"></ng-template>\n </ng-container>\n <ng-template #defaultTdTemplate>\n {{ subItem[column.property] }}\n </ng-template>\n </dd>\n <ng-content></ng-content>\n </div>\n </ng-container>\n </dl>\n <span\n role=\"button\"\n tabindex=\"0\"\n class=\"nav-chevron-field\"\n [attr.aria-expanded]=\"rowSelectors.get(item[rowId])?.value\"\n >\n <svg\n width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20 9L12 17L4 9\"\n stroke=\"currentColor\"\n stroke-width=\"1.6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n </td>\n </tr>\n </ng-container>\n\n <!-- Custom appended rows -->\n <ng-container *ngIf=\"appendedRowsTemplateRef as trTemplate\">\n <!-- Cannot infer trTemplate as TemplateRef therefore null -->\n <ng-container\n *ngTemplateOutlet=\"trTemplate || null; context: { $implicit: item }\"\n >\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n\n <!-- Table footer -->\n <tfoot *ngIf=\"customFooterTemplateRef as trTemplate\">\n <!-- Cannot infer trTemplate as TemplateRef therefore null -->\n <ng-container *ngTemplateOutlet=\"trTemplate || null\"> </ng-container>\n </tfoot>\n</table>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { TableComponent } from './table.component'\nimport {\n TableAppendableRowsTemplateDirective,\n TableDirective,\n TableFooterTemplateDirective,\n TableTemplateDirective,\n} from './table.directive'\nimport { TrThookPipe } from './tr-thook.pipe'\n\n@NgModule({\n declarations: [\n TableComponent,\n TableDirective,\n TableTemplateDirective,\n TableFooterTemplateDirective,\n TableAppendableRowsTemplateDirective,\n ],\n imports: [CommonModule, ReactiveFormsModule, TranslocoModule, TrThookPipe],\n exports: [\n TableComponent,\n TableTemplateDirective,\n TableFooterTemplateDirective,\n TableAppendableRowsTemplateDirective,\n ],\n})\nexport class NggvTableModule {}\n","/*\n * Public API Surface of table\n */\n\nexport * from './table.component'\nexport * from './table.directive'\nexport * from './tr-thook.pipe'\nexport * from './table.models'\nexport * from './table.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.TableDirective","i5.TrThookPipe"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, HostBinding, Input, QueryList, EventEmitter, Component, ContentChildren, Output, NgModule } from '@angular/core';
2
+ import { HostBinding, Input, Directive, QueryList, EventEmitter, Output, ContentChildren, Component, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/router';
4
4
  import { NavigationEnd, RouterModule } from '@angular/router';
5
5
  import { filter } from 'rxjs/operators';
@@ -45,14 +45,15 @@ class TabDirective {
45
45
  get ariaLabelledby() {
46
46
  return `tab-${this.id}`;
47
47
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TabDirective, selector: "[tab]", inputs: { thook: "thook", active: "active", tab: "tab", disabled: "disabled", id: "id" }, host: { properties: { "class.gds-tabs__panel": "this.baseClass", "attr.role": "this.role", "attr.data-thook": "this.thook", "class.-active": "this.active", "attr.hidden": "this.hidden", "attr.id": "this.attrId", "attr.aria-labelledby": "this.ariaLabelledby" } }, ngImport: i0 }); }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.9", type: TabDirective, isStandalone: false, selector: "[tab]", inputs: { thook: "thook", active: "active", tab: "tab", disabled: "disabled", id: "id" }, host: { properties: { "class.gds-tabs__panel": "this.baseClass", "attr.role": "this.role", "attr.data-thook": "this.thook", "class.-active": "this.active", "attr.hidden": "this.hidden", "attr.id": "this.attrId", "attr.aria-labelledby": "this.ariaLabelledby" } }, ngImport: i0 }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabDirective, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TabDirective, decorators: [{
52
52
  type: Directive,
53
53
  args: [{
54
54
  // eslint-disable-next-line @angular-eslint/directive-selector
55
55
  selector: '[tab]',
56
+ standalone: false
56
57
  }]
57
58
  }], propDecorators: { baseClass: [{
58
59
  type: HostBinding,
@@ -318,12 +319,12 @@ class TabsComponent {
318
319
  tabElement.focus();
319
320
  this.onSelect(tabElement.id.slice(4));
320
321
  }
321
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TabsComponent, selector: "nggv-tabs", inputs: { thook: "thook", tabs: "tabs" }, outputs: { ngvTabSwitch: "ngvTabSwitch" }, host: { properties: { "class.gds-tabs": "this.baseClass", "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "tabRefs", predicate: TabDirective }], usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n", styles: [":host{--sg-border-width: 1px;--sg-border-color: #868686;--gds-ref-pallet-base600: #868686;--text-primary-color: #333}:host .gds-tabs__tablist{display:flex;overflow-x:auto;padding:.25rem;margin:-.25rem;--sg-border-color: var(--gds-sys-color-base-600)}:host .gds-tabs__tablist::-webkit-scrollbar{display:none}:host .gds-tabs__tablist:not(.gds-tabs--fluid):after{border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);content:\"\";display:block;flex-grow:1}:host .gds-tabs__tab{background-color:transparent;border:0;cursor:pointer;padding:0;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);padding:.75rem 1rem;font-weight:500;transition:border .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;display:flex;justify-content:center;color:var(--text-primary-color);text-align:center;text-decoration:none;white-space:nowrap;border-radius:.25rem .25rem 0 0;border-left:var(--sg-border-width) solid transparent;border-top:var(--sg-border-width) solid transparent;border-right:var(--sg-border-width) solid transparent;gap:.25rem;transition:none;font-size:1rem;font-family:inherit}:host .gds-tabs__tab:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host .gds-tabs__tab:focus:not(:focus-visible){box-shadow:none;outline:0}:host .gds-tabs__tab:focus,:host .gds-tabs__tab:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}.gds-tabs--fluid :host .gds-tabs__tab{flex:1}:host .gds-tabs__tab svg>*{fill:currentColor}:host .gds-tabs__tab.-selected{box-sizing:border-box;border-top:solid var(--sg-border-width) var(--sg-border-color);border-right:solid var(--sg-border-width) var(--sg-border-color);border-left:solid var(--sg-border-width) var(--sg-border-color);transition:border .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-bottom:var(--sg-border-width) transparent;color:var(--text-primary-color);transition:none;padding:11px 15px 12px}:host .gds-tabs__tab.-selected:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#333;color:#fff;--background: rgb(51, 51, 51);--color: rgb(255, 255, 255);border-color:#333}:host .gds-tabs__tab[disabled]{color:#adadad;cursor:not-allowed}\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: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
322
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TabsComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
323
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TabsComponent, isStandalone: false, selector: "nggv-tabs", inputs: { thook: "thook", tabs: "tabs" }, outputs: { ngvTabSwitch: "ngvTabSwitch" }, host: { properties: { "class.gds-tabs": "this.baseClass", "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "tabRefs", predicate: TabDirective }], usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n", styles: [":host{--sg-border-width: 1px;--sg-border-color: #868686;--gds-ref-pallet-base600: #868686;--text-primary-color: #333}:host .gds-tabs__tablist{display:flex;overflow-x:auto;padding:.25rem;margin:-.25rem;--sg-border-color: var(--gds-sys-color-base-600)}:host .gds-tabs__tablist::-webkit-scrollbar{display:none}:host .gds-tabs__tablist:not(.gds-tabs--fluid):after{border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);content:\"\";display:block;flex-grow:1}:host .gds-tabs__tab{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);padding:.75rem 1rem;font-weight:500;transition:border .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s}:host .gds-tabs__tab:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host .gds-tabs__tab:focus:not(:focus-visible){box-shadow:none;outline:0}:host .gds-tabs__tab:focus,:host .gds-tabs__tab:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .gds-tabs__tab{display:flex;justify-content:center;color:var(--text-primary-color);text-align:center;text-decoration:none;white-space:nowrap;border-radius:.25rem .25rem 0 0;border-left:var(--sg-border-width) solid transparent;border-top:var(--sg-border-width) solid transparent;border-right:var(--sg-border-width) solid transparent}.gds-tabs--fluid :host .gds-tabs__tab{flex:1}:host .gds-tabs__tab svg>*{fill:currentColor}:host .gds-tabs__tab{gap:.25rem;transition:none;font-size:1rem;font-family:inherit}:host .gds-tabs__tab.-selected{box-sizing:border-box;border-top:solid var(--sg-border-width) var(--sg-border-color);border-right:solid var(--sg-border-width) var(--sg-border-color);border-left:solid var(--sg-border-width) var(--sg-border-color);transition:border .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s}:host .gds-tabs__tab.-selected:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#333;color:#fff;--background: rgb(51, 51, 51);--color: rgb(255, 255, 255);border-color:#333}:host .gds-tabs__tab.-selected{border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-bottom:var(--sg-border-width) transparent;color:var(--text-primary-color);transition:none;padding:11px 15px 12px}:host .gds-tabs__tab[disabled]{color:#adadad;cursor:not-allowed}\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: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
323
324
  }
324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsComponent, decorators: [{
325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TabsComponent, decorators: [{
325
326
  type: Component,
326
- args: [{ selector: 'nggv-tabs', template: "<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n", styles: [":host{--sg-border-width: 1px;--sg-border-color: #868686;--gds-ref-pallet-base600: #868686;--text-primary-color: #333}:host .gds-tabs__tablist{display:flex;overflow-x:auto;padding:.25rem;margin:-.25rem;--sg-border-color: var(--gds-sys-color-base-600)}:host .gds-tabs__tablist::-webkit-scrollbar{display:none}:host .gds-tabs__tablist:not(.gds-tabs--fluid):after{border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);content:\"\";display:block;flex-grow:1}:host .gds-tabs__tab{background-color:transparent;border:0;cursor:pointer;padding:0;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);padding:.75rem 1rem;font-weight:500;transition:border .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;display:flex;justify-content:center;color:var(--text-primary-color);text-align:center;text-decoration:none;white-space:nowrap;border-radius:.25rem .25rem 0 0;border-left:var(--sg-border-width) solid transparent;border-top:var(--sg-border-width) solid transparent;border-right:var(--sg-border-width) solid transparent;gap:.25rem;transition:none;font-size:1rem;font-family:inherit}:host .gds-tabs__tab:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host .gds-tabs__tab:focus:not(:focus-visible){box-shadow:none;outline:0}:host .gds-tabs__tab:focus,:host .gds-tabs__tab:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}.gds-tabs--fluid :host .gds-tabs__tab{flex:1}:host .gds-tabs__tab svg>*{fill:currentColor}:host .gds-tabs__tab.-selected{box-sizing:border-box;border-top:solid var(--sg-border-width) var(--sg-border-color);border-right:solid var(--sg-border-width) var(--sg-border-color);border-left:solid var(--sg-border-width) var(--sg-border-color);transition:border .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-bottom:var(--sg-border-width) transparent;color:var(--text-primary-color);transition:none;padding:11px 15px 12px}:host .gds-tabs__tab.-selected:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#333;color:#fff;--background: rgb(51, 51, 51);--color: rgb(255, 255, 255);border-color:#333}:host .gds-tabs__tab[disabled]{color:#adadad;cursor:not-allowed}\n"] }]
327
+ args: [{ selector: 'nggv-tabs', standalone: false, template: "<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n", styles: [":host{--sg-border-width: 1px;--sg-border-color: #868686;--gds-ref-pallet-base600: #868686;--text-primary-color: #333}:host .gds-tabs__tablist{display:flex;overflow-x:auto;padding:.25rem;margin:-.25rem;--sg-border-color: var(--gds-sys-color-base-600)}:host .gds-tabs__tablist::-webkit-scrollbar{display:none}:host .gds-tabs__tablist:not(.gds-tabs--fluid):after{border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);content:\"\";display:block;flex-grow:1}:host .gds-tabs__tab{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);padding:.75rem 1rem;font-weight:500;transition:border .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s}:host .gds-tabs__tab:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host .gds-tabs__tab:focus:not(:focus-visible){box-shadow:none;outline:0}:host .gds-tabs__tab:focus,:host .gds-tabs__tab:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .gds-tabs__tab{display:flex;justify-content:center;color:var(--text-primary-color);text-align:center;text-decoration:none;white-space:nowrap;border-radius:.25rem .25rem 0 0;border-left:var(--sg-border-width) solid transparent;border-top:var(--sg-border-width) solid transparent;border-right:var(--sg-border-width) solid transparent}.gds-tabs--fluid :host .gds-tabs__tab{flex:1}:host .gds-tabs__tab svg>*{fill:currentColor}:host .gds-tabs__tab{gap:.25rem;transition:none;font-size:1rem;font-family:inherit}:host .gds-tabs__tab.-selected{box-sizing:border-box;border-top:solid var(--sg-border-width) var(--sg-border-color);border-right:solid var(--sg-border-width) var(--sg-border-color);border-left:solid var(--sg-border-width) var(--sg-border-color);transition:border .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s}:host .gds-tabs__tab.-selected:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#333;color:#fff;--background: rgb(51, 51, 51);--color: rgb(255, 255, 255);border-color:#333}:host .gds-tabs__tab.-selected{border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-bottom:var(--sg-border-width) transparent;color:var(--text-primary-color);transition:none;padding:11px 15px 12px}:host .gds-tabs__tab[disabled]{color:#adadad;cursor:not-allowed}\n"] }]
327
328
  }], ctorParameters: () => [{ type: i1.Router }], propDecorators: { baseClass: [{
328
329
  type: HostBinding,
329
330
  args: ['class.gds-tabs']
@@ -342,11 +343,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
342
343
  }] } });
343
344
 
344
345
  class NggvTabsModule {
345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NggvTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
346
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NggvTabsModule, declarations: [TabDirective, TabsComponent], imports: [CommonModule, TranslocoModule, RouterModule], exports: [TabDirective, TabsComponent] }); }
347
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NggvTabsModule, imports: [CommonModule, TranslocoModule, RouterModule] }); }
346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: NggvTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
347
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.9", ngImport: i0, type: NggvTabsModule, declarations: [TabDirective, TabsComponent], imports: [CommonModule, TranslocoModule, RouterModule], exports: [TabDirective, TabsComponent] }); }
348
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: NggvTabsModule, imports: [CommonModule, TranslocoModule, RouterModule] }); }
348
349
  }
349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NggvTabsModule, decorators: [{
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: NggvTabsModule, decorators: [{
350
351
  type: NgModule,
351
352
  args: [{
352
353
  declarations: [TabDirective, TabsComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-tabs.mjs","sources":["../../../../libs/angular/src/v-angular/tabs/tab.directive.ts","../../../../libs/angular/src/v-angular/tabs/tabs.component.ts","../../../../libs/angular/src/v-angular/tabs/tabs.component.html","../../../../libs/angular/src/v-angular/tabs/tabs.module.ts","../../../../libs/angular/src/v-angular/tabs/index.ts","../../../../libs/angular/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.ts"],"sourcesContent":["import { Directive, HostBinding, Input } from '@angular/core'\n\n/**\n * Directive that provides the tab container with data about its child tabs.\n * The directive sets its own active state and adds aria attributes.\n *\n * @example\n * <nggv-tabs>\n * <article tab=\"Tab title 1\"> <!-- Content --> </article>\n * <article tab=\"Tab title 2\" [active]=\"true\"> <!-- Content --> </article>\n * <article tab=\"Tab title 3\" disabled> <!-- Content --> </article>\n * <article tab=\"<strong>Tab title 4</strong>\"> <!-- Content --> </article>\n * </nggv-tabs>\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tab]',\n})\nexport class TabDirective {\n /** @internal */\n @HostBinding('class.gds-tabs__panel') baseClass = true\n /** @internal */\n @HostBinding('attr.role') role = 'tabpanel'\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'tabs-panel'\n /** Sets whether this tab should be the active tab on load. */\n @HostBinding('class.-active') @Input() active = false\n /** @internal */\n @HostBinding('attr.hidden') get hidden() {\n return !this.active\n }\n /** Sets the title displayed in the tab list for this child. */\n @Input() tab!: string\n /** Sets whether this tab should be able to be selected. */\n @Input() disabled = false\n /** Identifier used for aria attributes and selection. */\n @Input() id: string | number | undefined // todo: discuss if window.ngv.nextId() should be used\n\n /** @internal */\n @HostBinding('attr.id') get attrId() {\n return `panel-${this.id}`\n }\n\n /** @internal */\n @HostBinding('attr.aria-labelledby') get ariaLabelledby() {\n return `tab-${this.id}`\n }\n}\n","/* eslint-disable no-console */\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n} from '@angular/core'\nimport { NavigationEnd, Router } from '@angular/router'\nimport { Subscription } from 'rxjs'\nimport { filter } from 'rxjs/operators'\n\nimport { TabDirective } from './tab.directive'\nimport { EventTabChange, Tab } from './tabs.models'\n\n@Component({\n selector: 'nggv-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent\n implements OnChanges, OnInit, AfterContentInit, OnDestroy\n{\n /** @internal */\n @HostBinding('class.gds-tabs') baseClass = true\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'tabs'\n\n /** @internal List of children with a {@link TabDirective}. */\n @ContentChildren(TabDirective) tabRefs: QueryList<TabDirective> =\n new QueryList()\n\n /**\n * List of tabs to generate, this should not be used in conjunction with children that have a {@link TabDirective}.\n * It is useful for generating a list of tabs with links for navigation.\n * If any tab has the link property, a `<router-outlet>` is added below the tabs list.\n */\n @Input() tabs: Tab[] = []\n\n /**\n * Event triggered on initialization and every time the active tab changes.\n * The tab change can be cancelled if event type is set to `'before'` and `cancel()` is called.\n */\n @Output() public ngvTabSwitch = new EventEmitter<EventTabChange>()\n\n /** @internal Adds a `<router-outlet>` below the tabs list. */\n useRouting = false\n\n /** @internal The currently active tab. */\n selectedTab: Tab | undefined\n\n /** @internal If tab switching has started. */\n isSwitching = false\n\n /** @internal */\n protected subs: Subscription[] = []\n\n constructor(protected router: Router) {}\n\n /** @internal */\n static uniqueIds(tabs: Tab[]) {\n const uniqueIds = new Set()\n let offset = 0\n return tabs.map((tab, index) => {\n if (tab.id && !uniqueIds.has(tab.id)) {\n // Id is already unique\n uniqueIds.add(tab.id)\n return { ...tab }\n } else {\n // If no id is set for the tab, use the next available index\n while (uniqueIds.has(index + offset)) offset++\n const id = index + offset\n if (uniqueIds.has(tab.id)) {\n // eslint-disable-next-line no-console\n console.warn(\n `Duplicate tab id \"${tab.id}\" found for tab \"${tab.tab}\", de-duplicating using index + offset. New tab id will be ${id}`,\n )\n }\n uniqueIds.add(id)\n return { ...tab, id }\n }\n })\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.tabs.currentValue) {\n // Update tabs on property updates\n this.updateFromInput()\n }\n }\n\n ngOnInit() {\n // Update tabs on route change\n this.subs.push(\n this.router.events\n .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe((e: NavigationEnd) => {\n // Skip if already routing to tab\n if (this.isSwitching) return\n const tab = this.tabs.find(({ link }) => link && e.url.endsWith(link))\n if (tab) {\n this.onSelect(tab.id)\n if (tab.disabled) {\n // Fallback to previously selected tab or first tab not disabled\n const fallbackTab = this.selectedTab\n ? this.selectedTab\n : this.tabs.find(({ disabled }) => !disabled)\n if (fallbackTab && fallbackTab.link)\n this.router.navigateByUrl(fallbackTab.link)\n }\n }\n }),\n )\n }\n\n ngAfterContentInit() {\n // Update tabs on view init\n if (this.tabRefs.length) {\n this.updateFromReferences()\n }\n // Update tabs on view child change\n this.subs.push(this.tabRefs.changes.subscribe(this.updateFromReferences))\n }\n\n /** @internal */\n protected updateFromInput = () => {\n // Make sure each tab has a unique id\n this.tabs = TabsComponent.uniqueIds(this.tabs)\n // Determine if router outlet should be used\n this.useRouting = this.tabs.some(({ link }) => link)\n this.updateTabs()\n }\n\n /** @internal */\n protected updateFromReferences = () => {\n this.tabs = this.tabRefs.map((tabRef) => ({\n tab: tabRef.tab,\n id: tabRef.id,\n active: tabRef.active,\n disabled: tabRef.disabled,\n directive: tabRef,\n }))\n // Make sure each tab has a unique id\n this.tabs = TabsComponent.uniqueIds(this.tabs)\n this.tabs.forEach((tab) => {\n if (tab.directive) tab.directive.id = tab.id\n })\n this.updateTabs()\n }\n\n /** @internal */\n protected updateTabs() {\n const url = window.location.href\n // Select tab if its link matches active url\n let selectedTab = this.tabs.find(\n ({ link, disabled }) => link && !disabled && url.endsWith(link),\n )\n // Fallback to first active tab\n if (!selectedTab) selectedTab = this.tabs.find((tab) => tab.active)\n // Fallback to first tab\n if (!selectedTab) selectedTab = this.tabs[0]\n // Select or give up\n if (selectedTab && this.selectedTab !== selectedTab)\n this.onSelect(selectedTab.id)\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n /** @internal */\n protected activateTab(tab: Tab) {\n // Deactivate all tabs\n this.tabs.forEach((t) => {\n t.active = false\n if (t.directive) t.directive.active = false\n })\n // Activate selected tab\n tab.active = true\n if (tab.directive) tab.directive.active = true\n // Send end event\n this.ngvTabSwitch.emit({ type: 'end', prev: this.selectedTab, next: tab })\n this.selectedTab = tab\n this.isSwitching = false\n }\n\n /** @internal */\n onSelect(id: string | number | undefined) {\n const selectedTab = this.tabs.find((tab) => tab.id === id)\n if (\n selectedTab &&\n !selectedTab.disabled &&\n selectedTab !== this.selectedTab\n ) {\n let cancelled = false\n // Events are synchronous and allow for tab switch to be cancelled if desired\n this.isSwitching = true\n this.ngvTabSwitch.emit({\n type: 'start',\n prev: this.selectedTab,\n next: selectedTab,\n cancel: () => {\n cancelled = true\n },\n })\n if (cancelled) {\n this.ngvTabSwitch.emit({\n type: 'cancel',\n prev: this.selectedTab,\n next: selectedTab,\n })\n this.isSwitching = false\n return\n }\n if (selectedTab.link) {\n // Navigate and wait for guard accept route\n this.router\n .navigateByUrl(selectedTab.link, { replaceUrl: true })\n .then((changed) => {\n if (changed === false) {\n this.ngvTabSwitch.emit({\n type: 'cancel',\n prev: this.selectedTab,\n next: selectedTab,\n })\n this.isSwitching = false\n } else this.activateTab(selectedTab)\n })\n } else {\n this.activateTab(selectedTab)\n }\n }\n }\n\n /** @internal */\n onKeyDown(event: KeyboardEvent) {\n const tabElement = event.target as HTMLElement\n if (!tabElement) return false\n const parent = tabElement.parentElement\n switch (event.key) {\n case 'End': // End\n if (parent)\n this.tabFocusHelper(event, parent.lastElementChild as HTMLElement)\n break\n\n case 'Home': // Home\n if (parent)\n this.tabFocusHelper(event, parent.firstElementChild as HTMLElement)\n break\n\n case 'LeftArrow': // Left arrow\n case 'UpArrow': // Up arrow\n this.tabFocusHelper(\n event,\n tabElement.previousElementSibling as HTMLElement,\n )\n break\n\n case 'RightArrow': // Right arrow\n case 'DownArrow': // Down arrow\n this.tabFocusHelper(event, tabElement.nextElementSibling as HTMLElement)\n break\n }\n return true\n }\n\n /** @internal */\n protected tabFocusHelper(event: KeyboardEvent, tabElement: HTMLElement) {\n if (!tabElement || !(tabElement instanceof HTMLElement)) return\n event.preventDefault()\n event.stopPropagation()\n tabElement.focus()\n this.onSelect(tabElement.id.slice(4))\n }\n}\n","<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { TabDirective } from './tab.directive'\nimport { TabsComponent } from './tabs.component'\n\n@NgModule({\n declarations: [TabDirective, TabsComponent],\n imports: [CommonModule, TranslocoModule, RouterModule],\n exports: [TabDirective, TabsComponent],\n})\nexport class NggvTabsModule {}\n","/*\n * Public API Surface of tabs\n */\n\nexport * from './tab.directive'\nexport * from './tabs.component'\nexport * from './tabs.models'\nexport * from './tabs.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-tabs.mjs","sources":["../../../../libs/angular/src/v-angular/tabs/tab.directive.ts","../../../../libs/angular/src/v-angular/tabs/tabs.component.ts","../../../../libs/angular/src/v-angular/tabs/tabs.component.html","../../../../libs/angular/src/v-angular/tabs/tabs.module.ts","../../../../libs/angular/src/v-angular/tabs/index.ts","../../../../libs/angular/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.ts"],"sourcesContent":["import { Directive, HostBinding, Input } from '@angular/core'\n\n/**\n * Directive that provides the tab container with data about its child tabs.\n * The directive sets its own active state and adds aria attributes.\n *\n * @example\n * <nggv-tabs>\n * <article tab=\"Tab title 1\"> <!-- Content --> </article>\n * <article tab=\"Tab title 2\" [active]=\"true\"> <!-- Content --> </article>\n * <article tab=\"Tab title 3\" disabled> <!-- Content --> </article>\n * <article tab=\"<strong>Tab title 4</strong>\"> <!-- Content --> </article>\n * </nggv-tabs>\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tab]',\n standalone: false\n})\nexport class TabDirective {\n /** @internal */\n @HostBinding('class.gds-tabs__panel') baseClass = true\n /** @internal */\n @HostBinding('attr.role') role = 'tabpanel'\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'tabs-panel'\n /** Sets whether this tab should be the active tab on load. */\n @HostBinding('class.-active') @Input() active = false\n /** @internal */\n @HostBinding('attr.hidden') get hidden() {\n return !this.active\n }\n /** Sets the title displayed in the tab list for this child. */\n @Input() tab!: string\n /** Sets whether this tab should be able to be selected. */\n @Input() disabled = false\n /** Identifier used for aria attributes and selection. */\n @Input() id: string | number | undefined // todo: discuss if window.ngv.nextId() should be used\n\n /** @internal */\n @HostBinding('attr.id') get attrId() {\n return `panel-${this.id}`\n }\n\n /** @internal */\n @HostBinding('attr.aria-labelledby') get ariaLabelledby() {\n return `tab-${this.id}`\n }\n}\n","/* eslint-disable no-console */\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n} from '@angular/core'\nimport { NavigationEnd, Router } from '@angular/router'\nimport { Subscription } from 'rxjs'\nimport { filter } from 'rxjs/operators'\n\nimport { TabDirective } from './tab.directive'\nimport { EventTabChange, Tab } from './tabs.models'\n\n@Component({\n selector: 'nggv-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n standalone: false\n})\nexport class TabsComponent\n implements OnChanges, OnInit, AfterContentInit, OnDestroy\n{\n /** @internal */\n @HostBinding('class.gds-tabs') baseClass = true\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'tabs'\n\n /** @internal List of children with a {@link TabDirective}. */\n @ContentChildren(TabDirective) tabRefs: QueryList<TabDirective> =\n new QueryList()\n\n /**\n * List of tabs to generate, this should not be used in conjunction with children that have a {@link TabDirective}.\n * It is useful for generating a list of tabs with links for navigation.\n * If any tab has the link property, a `<router-outlet>` is added below the tabs list.\n */\n @Input() tabs: Tab[] = []\n\n /**\n * Event triggered on initialization and every time the active tab changes.\n * The tab change can be cancelled if event type is set to `'before'` and `cancel()` is called.\n */\n @Output() public ngvTabSwitch = new EventEmitter<EventTabChange>()\n\n /** @internal Adds a `<router-outlet>` below the tabs list. */\n useRouting = false\n\n /** @internal The currently active tab. */\n selectedTab: Tab | undefined\n\n /** @internal If tab switching has started. */\n isSwitching = false\n\n /** @internal */\n protected subs: Subscription[] = []\n\n constructor(protected router: Router) {}\n\n /** @internal */\n static uniqueIds(tabs: Tab[]) {\n const uniqueIds = new Set()\n let offset = 0\n return tabs.map((tab, index) => {\n if (tab.id && !uniqueIds.has(tab.id)) {\n // Id is already unique\n uniqueIds.add(tab.id)\n return { ...tab }\n } else {\n // If no id is set for the tab, use the next available index\n while (uniqueIds.has(index + offset)) offset++\n const id = index + offset\n if (uniqueIds.has(tab.id)) {\n // eslint-disable-next-line no-console\n console.warn(\n `Duplicate tab id \"${tab.id}\" found for tab \"${tab.tab}\", de-duplicating using index + offset. New tab id will be ${id}`,\n )\n }\n uniqueIds.add(id)\n return { ...tab, id }\n }\n })\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.tabs.currentValue) {\n // Update tabs on property updates\n this.updateFromInput()\n }\n }\n\n ngOnInit() {\n // Update tabs on route change\n this.subs.push(\n this.router.events\n .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe((e: NavigationEnd) => {\n // Skip if already routing to tab\n if (this.isSwitching) return\n const tab = this.tabs.find(({ link }) => link && e.url.endsWith(link))\n if (tab) {\n this.onSelect(tab.id)\n if (tab.disabled) {\n // Fallback to previously selected tab or first tab not disabled\n const fallbackTab = this.selectedTab\n ? this.selectedTab\n : this.tabs.find(({ disabled }) => !disabled)\n if (fallbackTab && fallbackTab.link)\n this.router.navigateByUrl(fallbackTab.link)\n }\n }\n }),\n )\n }\n\n ngAfterContentInit() {\n // Update tabs on view init\n if (this.tabRefs.length) {\n this.updateFromReferences()\n }\n // Update tabs on view child change\n this.subs.push(this.tabRefs.changes.subscribe(this.updateFromReferences))\n }\n\n /** @internal */\n protected updateFromInput = () => {\n // Make sure each tab has a unique id\n this.tabs = TabsComponent.uniqueIds(this.tabs)\n // Determine if router outlet should be used\n this.useRouting = this.tabs.some(({ link }) => link)\n this.updateTabs()\n }\n\n /** @internal */\n protected updateFromReferences = () => {\n this.tabs = this.tabRefs.map((tabRef) => ({\n tab: tabRef.tab,\n id: tabRef.id,\n active: tabRef.active,\n disabled: tabRef.disabled,\n directive: tabRef,\n }))\n // Make sure each tab has a unique id\n this.tabs = TabsComponent.uniqueIds(this.tabs)\n this.tabs.forEach((tab) => {\n if (tab.directive) tab.directive.id = tab.id\n })\n this.updateTabs()\n }\n\n /** @internal */\n protected updateTabs() {\n const url = window.location.href\n // Select tab if its link matches active url\n let selectedTab = this.tabs.find(\n ({ link, disabled }) => link && !disabled && url.endsWith(link),\n )\n // Fallback to first active tab\n if (!selectedTab) selectedTab = this.tabs.find((tab) => tab.active)\n // Fallback to first tab\n if (!selectedTab) selectedTab = this.tabs[0]\n // Select or give up\n if (selectedTab && this.selectedTab !== selectedTab)\n this.onSelect(selectedTab.id)\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n /** @internal */\n protected activateTab(tab: Tab) {\n // Deactivate all tabs\n this.tabs.forEach((t) => {\n t.active = false\n if (t.directive) t.directive.active = false\n })\n // Activate selected tab\n tab.active = true\n if (tab.directive) tab.directive.active = true\n // Send end event\n this.ngvTabSwitch.emit({ type: 'end', prev: this.selectedTab, next: tab })\n this.selectedTab = tab\n this.isSwitching = false\n }\n\n /** @internal */\n onSelect(id: string | number | undefined) {\n const selectedTab = this.tabs.find((tab) => tab.id === id)\n if (\n selectedTab &&\n !selectedTab.disabled &&\n selectedTab !== this.selectedTab\n ) {\n let cancelled = false\n // Events are synchronous and allow for tab switch to be cancelled if desired\n this.isSwitching = true\n this.ngvTabSwitch.emit({\n type: 'start',\n prev: this.selectedTab,\n next: selectedTab,\n cancel: () => {\n cancelled = true\n },\n })\n if (cancelled) {\n this.ngvTabSwitch.emit({\n type: 'cancel',\n prev: this.selectedTab,\n next: selectedTab,\n })\n this.isSwitching = false\n return\n }\n if (selectedTab.link) {\n // Navigate and wait for guard accept route\n this.router\n .navigateByUrl(selectedTab.link, { replaceUrl: true })\n .then((changed) => {\n if (changed === false) {\n this.ngvTabSwitch.emit({\n type: 'cancel',\n prev: this.selectedTab,\n next: selectedTab,\n })\n this.isSwitching = false\n } else this.activateTab(selectedTab)\n })\n } else {\n this.activateTab(selectedTab)\n }\n }\n }\n\n /** @internal */\n onKeyDown(event: KeyboardEvent) {\n const tabElement = event.target as HTMLElement\n if (!tabElement) return false\n const parent = tabElement.parentElement\n switch (event.key) {\n case 'End': // End\n if (parent)\n this.tabFocusHelper(event, parent.lastElementChild as HTMLElement)\n break\n\n case 'Home': // Home\n if (parent)\n this.tabFocusHelper(event, parent.firstElementChild as HTMLElement)\n break\n\n case 'LeftArrow': // Left arrow\n case 'UpArrow': // Up arrow\n this.tabFocusHelper(\n event,\n tabElement.previousElementSibling as HTMLElement,\n )\n break\n\n case 'RightArrow': // Right arrow\n case 'DownArrow': // Down arrow\n this.tabFocusHelper(event, tabElement.nextElementSibling as HTMLElement)\n break\n }\n return true\n }\n\n /** @internal */\n protected tabFocusHelper(event: KeyboardEvent, tabElement: HTMLElement) {\n if (!tabElement || !(tabElement instanceof HTMLElement)) return\n event.preventDefault()\n event.stopPropagation()\n tabElement.focus()\n this.onSelect(tabElement.id.slice(4))\n }\n}\n","<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { TabDirective } from './tab.directive'\nimport { TabsComponent } from './tabs.component'\n\n@NgModule({\n declarations: [TabDirective, TabsComponent],\n imports: [CommonModule, TranslocoModule, RouterModule],\n exports: [TabDirective, TabsComponent],\n})\nexport class NggvTabsModule {}\n","/*\n * Public API Surface of tabs\n */\n\nexport * from './tab.directive'\nexport * from './tabs.component'\nexport * from './tabs.models'\nexport * from './tabs.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}