@sebgroup/green-angular 10.0.3 → 10.0.4

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 (469) hide show
  1. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +10 -10
  2. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
  3. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +7 -7
  4. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
  5. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +7 -7
  6. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
  7. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +23 -23
  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 +11 -11
  10. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
  11. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +11 -11
  12. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
  13. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +24 -27
  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 +7 -7
  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 +45 -46
  18. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
  19. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +7 -7
  20. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
  21. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +7 -7
  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 +7 -7
  24. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
  25. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +41 -41
  26. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  27. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +7 -7
  28. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
  29. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +7 -7
  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 +8 -8
  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 +8 -8
  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 +8 -8
  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 +8 -8
  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 +7 -7
  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 +8 -8
  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 +37 -37
  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 +13 -13
  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 +29 -29
  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 +7 -7
  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 +14 -14
  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 +7 -7
  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 +10 -10
  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 +8 -8
  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 +19 -19
  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 +7 -7
  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 +14 -14
  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 +7 -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 +23 -23
  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 +11 -11
  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 +8 -8
  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 +10 -10
  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 +7 -7
  82. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  83. package/fesm2022/sebgroup-green-angular-v-angular.mjs +300 -300
  84. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  85. package/fesm2022/sebgroup-green-angular.mjs +222 -226
  86. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  87. package/index.d.ts +1021 -17
  88. package/package.json +10 -10
  89. package/src/lib/accordion/index.d.ts +51 -3
  90. package/src/lib/badge/index.d.ts +46 -2
  91. package/src/lib/button/index.d.ts +20 -2
  92. package/src/lib/cell-table/index.d.ts +105 -3
  93. package/src/lib/context-menu/index.d.ts +63 -2
  94. package/src/lib/datepicker/index.d.ts +80 -2
  95. package/src/lib/dropdown/index.d.ts +114 -4
  96. package/src/lib/in-page-wizard/index.d.ts +30 -2
  97. package/src/lib/modal/index.d.ts +96 -4
  98. package/src/lib/pagination/index.d.ts +66 -2
  99. package/src/lib/progress-circle/index.d.ts +24 -2
  100. package/src/lib/segmented-control/index.d.ts +29 -2
  101. package/src/lib/shared/index.d.ts +223 -7
  102. package/src/lib/slider/index.d.ts +48 -2
  103. package/src/lib/sortable-list/index.d.ts +105 -2
  104. package/src/v-angular/account-number/index.d.ts +43 -2
  105. package/src/v-angular/alert/index.d.ts +44 -3
  106. package/src/v-angular/base-control-value-accessor/index.d.ts +143 -2
  107. package/src/v-angular/breadcrumbs/index.d.ts +29 -2
  108. package/src/v-angular/button/index.d.ts +75 -2
  109. package/src/v-angular/card/index.d.ts +15 -2
  110. package/src/v-angular/character-countdown/index.d.ts +27 -2
  111. package/src/v-angular/checkbox/index.d.ts +47 -2
  112. package/src/v-angular/core/index.d.ts +40 -2
  113. package/src/v-angular/datepicker/index.d.ts +577 -13
  114. package/src/v-angular/drag-drop/index.d.ts +233 -4
  115. package/src/v-angular/dropdown/index.d.ts +474 -5
  116. package/src/v-angular/external-link/index.d.ts +27 -2
  117. package/src/v-angular/i18n/index.d.ts +44 -2
  118. package/src/v-angular/info-circle/index.d.ts +27 -2
  119. package/src/v-angular/input/index.d.ts +127 -2
  120. package/src/v-angular/input-mask/index.d.ts +81 -5
  121. package/src/v-angular/modal/index.d.ts +243 -5
  122. package/src/v-angular/pagination/index.d.ts +75 -2
  123. package/src/v-angular/radio/index.d.ts +111 -3
  124. package/src/v-angular/slug/index.d.ts +22 -2
  125. package/src/v-angular/table/index.d.ts +379 -5
  126. package/src/v-angular/tabs/index.d.ts +138 -4
  127. package/src/v-angular/textarea/index.d.ts +69 -2
  128. package/src/v-angular/toast/index.d.ts +65 -4
  129. package/src/v-angular/tooltip/index.d.ts +118 -2
  130. package/v-angular/index.d.ts +3088 -28
  131. package/lib/accordion/accordion-list-item.component.d.ts +0 -16
  132. package/lib/accordion/accordion.component.d.ts +0 -21
  133. package/lib/accordion/accordion.module.d.ts +0 -14
  134. package/lib/accordion/index.d.ts +0 -3
  135. package/lib/badge/badge.component.d.ts +0 -30
  136. package/lib/badge/badge.module.d.ts +0 -13
  137. package/lib/badge/index.d.ts +0 -2
  138. package/lib/button/button.component.d.ts +0 -11
  139. package/lib/button/button.module.d.ts +0 -8
  140. package/lib/button/index.d.ts +0 -2
  141. package/lib/cell-table/cell-table-item.component.d.ts +0 -14
  142. package/lib/cell-table/cell-table.component.d.ts +0 -44
  143. package/lib/cell-table/cell-table.module.d.ts +0 -10
  144. package/lib/cell-table/cell-table.types.d.ts +0 -34
  145. package/lib/cell-table/cell-underline.directive.d.ts +0 -14
  146. package/lib/cell-table/index.d.ts +0 -3
  147. package/lib/context-menu/context-menu.component.d.ts +0 -48
  148. package/lib/context-menu/context-menu.module.d.ts +0 -14
  149. package/lib/context-menu/index.d.ts +0 -2
  150. package/lib/datepicker/datepicker.component.d.ts +0 -63
  151. package/lib/datepicker/datepicker.module.d.ts +0 -14
  152. package/lib/datepicker/index.d.ts +0 -2
  153. package/lib/dropdown/dropdown-button.directive.d.ts +0 -8
  154. package/lib/dropdown/dropdown-option.directive.d.ts +0 -8
  155. package/lib/dropdown/dropdown.component.d.ts +0 -87
  156. package/lib/dropdown/dropdown.module.d.ts +0 -16
  157. package/lib/dropdown/index.d.ts +0 -4
  158. package/lib/green-angular.module.d.ts +0 -21
  159. package/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +0 -19
  160. package/lib/in-page-wizard/in-page-wizard.module.d.ts +0 -9
  161. package/lib/in-page-wizard/index.d.ts +0 -2
  162. package/lib/modal/index.d.ts +0 -4
  163. package/lib/modal/modal-footer.directive.d.ts +0 -8
  164. package/lib/modal/modal-header.directive.d.ts +0 -8
  165. package/lib/modal/modal.component.d.ts +0 -74
  166. package/lib/modal/modal.module.d.ts +0 -14
  167. package/lib/pagination/index.d.ts +0 -2
  168. package/lib/pagination/pagination.component.d.ts +0 -56
  169. package/lib/pagination/pagination.module.d.ts +0 -8
  170. package/lib/progress-circle/index.d.ts +0 -2
  171. package/lib/progress-circle/progress-circle.component.d.ts +0 -15
  172. package/lib/progress-circle/progress-circle.module.d.ts +0 -8
  173. package/lib/segmented-control/index.d.ts +0 -2
  174. package/lib/segmented-control/segmented-control.component.d.ts +0 -14
  175. package/lib/segmented-control/segmented-control.module.d.ts +0 -12
  176. package/lib/shared/core-control/core-checkbox.directive.d.ts +0 -10
  177. package/lib/shared/core-control/core-control.directive.d.ts +0 -19
  178. package/lib/shared/core-control/core-control.module.d.ts +0 -10
  179. package/lib/shared/core-control/index.d.ts +0 -3
  180. package/lib/shared/core-element/core-element.directive.d.ts +0 -17
  181. package/lib/shared/core-element/core-element.module.d.ts +0 -11
  182. package/lib/shared/core-element/index.d.ts +0 -2
  183. package/lib/shared/core-renderer/core-renderer.d.ts +0 -111
  184. package/lib/shared/core-renderer/index.d.ts +0 -1
  185. package/lib/shared/core-router-link/core-router-link.directive.d.ts +0 -19
  186. package/lib/shared/core-router-link/core-router-link.module.d.ts +0 -10
  187. package/lib/shared/core-router-link/index.d.ts +0 -2
  188. package/lib/shared/id.d.ts +0 -1
  189. package/lib/shared/index.d.ts +0 -7
  190. package/lib/shared/on-scroll.directive.d.ts +0 -14
  191. package/lib/shared/scope-resolver.d.ts +0 -5
  192. package/lib/shared/shared.module.d.ts +0 -9
  193. package/lib/slider/index.d.ts +0 -2
  194. package/lib/slider/slider.component.d.ts +0 -38
  195. package/lib/slider/slider.module.d.ts +0 -9
  196. package/lib/sortable-list/index.d.ts +0 -2
  197. package/lib/sortable-list/sortable-list.component.d.ts +0 -92
  198. package/lib/sortable-list/sortable-list.module.d.ts +0 -11
  199. package/src/lib/accordion/accordion-list-item.component.d.ts +0 -16
  200. package/src/lib/accordion/accordion.component.d.ts +0 -21
  201. package/src/lib/accordion/accordion.module.d.ts +0 -14
  202. package/src/lib/badge/badge.component.d.ts +0 -30
  203. package/src/lib/badge/badge.module.d.ts +0 -13
  204. package/src/lib/button/button.component.d.ts +0 -11
  205. package/src/lib/button/button.module.d.ts +0 -8
  206. package/src/lib/cell-table/cell-table-item.component.d.ts +0 -14
  207. package/src/lib/cell-table/cell-table.component.d.ts +0 -44
  208. package/src/lib/cell-table/cell-table.module.d.ts +0 -10
  209. package/src/lib/cell-table/cell-table.types.d.ts +0 -34
  210. package/src/lib/cell-table/cell-underline.directive.d.ts +0 -14
  211. package/src/lib/context-menu/context-menu.component.d.ts +0 -48
  212. package/src/lib/context-menu/context-menu.module.d.ts +0 -14
  213. package/src/lib/datepicker/datepicker.component.d.ts +0 -63
  214. package/src/lib/datepicker/datepicker.module.d.ts +0 -14
  215. package/src/lib/dropdown/dropdown-button.directive.d.ts +0 -8
  216. package/src/lib/dropdown/dropdown-option.directive.d.ts +0 -8
  217. package/src/lib/dropdown/dropdown.component.d.ts +0 -87
  218. package/src/lib/dropdown/dropdown.module.d.ts +0 -16
  219. package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +0 -19
  220. package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +0 -9
  221. package/src/lib/modal/modal-footer.directive.d.ts +0 -8
  222. package/src/lib/modal/modal-header.directive.d.ts +0 -8
  223. package/src/lib/modal/modal.component.d.ts +0 -74
  224. package/src/lib/modal/modal.module.d.ts +0 -14
  225. package/src/lib/pagination/pagination.component.d.ts +0 -56
  226. package/src/lib/pagination/pagination.module.d.ts +0 -8
  227. package/src/lib/progress-circle/progress-circle.component.d.ts +0 -15
  228. package/src/lib/progress-circle/progress-circle.module.d.ts +0 -8
  229. package/src/lib/segmented-control/segmented-control.component.d.ts +0 -14
  230. package/src/lib/segmented-control/segmented-control.module.d.ts +0 -12
  231. package/src/lib/shared/core-control/core-checkbox.directive.d.ts +0 -10
  232. package/src/lib/shared/core-control/core-control.directive.d.ts +0 -19
  233. package/src/lib/shared/core-control/core-control.module.d.ts +0 -10
  234. package/src/lib/shared/core-control/index.d.ts +0 -3
  235. package/src/lib/shared/core-element/core-element.directive.d.ts +0 -17
  236. package/src/lib/shared/core-element/core-element.module.d.ts +0 -11
  237. package/src/lib/shared/core-element/index.d.ts +0 -2
  238. package/src/lib/shared/core-renderer/core-renderer.d.ts +0 -111
  239. package/src/lib/shared/core-renderer/index.d.ts +0 -1
  240. package/src/lib/shared/core-router-link/core-router-link.directive.d.ts +0 -19
  241. package/src/lib/shared/core-router-link/core-router-link.module.d.ts +0 -10
  242. package/src/lib/shared/core-router-link/index.d.ts +0 -2
  243. package/src/lib/shared/id.d.ts +0 -1
  244. package/src/lib/shared/on-scroll.directive.d.ts +0 -14
  245. package/src/lib/shared/scope-resolver.d.ts +0 -5
  246. package/src/lib/shared/shared.module.d.ts +0 -9
  247. package/src/lib/slider/slider.component.d.ts +0 -38
  248. package/src/lib/slider/slider.module.d.ts +0 -9
  249. package/src/lib/sortable-list/sortable-list.component.d.ts +0 -92
  250. package/src/lib/sortable-list/sortable-list.module.d.ts +0 -11
  251. package/src/v-angular/account-number/account-number.module.d.ts +0 -8
  252. package/src/v-angular/account-number/account-number.pipe.d.ts +0 -32
  253. package/src/v-angular/alert/alert.component.d.ts +0 -20
  254. package/src/v-angular/alert/alert.models.d.ts +0 -13
  255. package/src/v-angular/alert/alert.module.d.ts +0 -8
  256. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +0 -134
  257. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +0 -7
  258. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +0 -18
  259. package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +0 -10
  260. package/src/v-angular/button/button.component.d.ts +0 -62
  261. package/src/v-angular/button/button.module.d.ts +0 -10
  262. package/src/v-angular/card/card.component.d.ts +0 -5
  263. package/src/v-angular/card/card.module.d.ts +0 -8
  264. package/src/v-angular/character-countdown/character-countdown.directive.d.ts +0 -17
  265. package/src/v-angular/character-countdown/character-countdown.module.d.ts +0 -8
  266. package/src/v-angular/checkbox/checkbox.component.d.ts +0 -36
  267. package/src/v-angular/checkbox/checkbox.module.d.ts +0 -10
  268. package/src/v-angular/core/core.globals.d.ts +0 -13
  269. package/src/v-angular/core/core.utils.d.ts +0 -23
  270. package/src/v-angular/datepicker/components/calendar/calendar.component.d.ts +0 -36
  271. package/src/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +0 -30
  272. package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +0 -113
  273. package/src/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +0 -76
  274. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +0 -169
  275. package/src/v-angular/datepicker/datepicker.globals.d.ts +0 -13
  276. package/src/v-angular/datepicker/datepicker.models.d.ts +0 -50
  277. package/src/v-angular/datepicker/datepicker.module.d.ts +0 -19
  278. package/src/v-angular/datepicker/datepicker.utils.d.ts +0 -46
  279. package/src/v-angular/datepicker/directives/calendar-date.directive.d.ts +0 -21
  280. package/src/v-angular/datepicker/models/dates.d.ts +0 -15
  281. package/src/v-angular/datepicker/pipes/date-thook.pipe.d.ts +0 -8
  282. package/src/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +0 -8
  283. package/src/v-angular/datepicker/pipes/matches.pipe.d.ts +0 -7
  284. package/src/v-angular/drag-drop/drag-drop.component.d.ts +0 -131
  285. package/src/v-angular/drag-drop/drag-drop.models.d.ts +0 -49
  286. package/src/v-angular/drag-drop/drag-drop.module.d.ts +0 -13
  287. package/src/v-angular/drag-drop/drag-drop.pipes.d.ts +0 -40
  288. package/src/v-angular/drag-drop/drag-drop.utils.d.ts +0 -33
  289. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +0 -135
  290. package/src/v-angular/dropdown/dropdown-list/index.d.ts +0 -1
  291. package/src/v-angular/dropdown/dropdown.component.d.ts +0 -129
  292. package/src/v-angular/dropdown/dropdown.module.d.ts +0 -13
  293. package/src/v-angular/dropdown/typeahead/index.d.ts +0 -5
  294. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +0 -40
  295. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +0 -34
  296. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +0 -61
  297. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +0 -78
  298. package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +0 -11
  299. package/src/v-angular/external-link/external-link.directive.d.ts +0 -17
  300. package/src/v-angular/external-link/external-link.module.d.ts +0 -8
  301. package/src/v-angular/i18n/i18n.module.d.ts +0 -15
  302. package/src/v-angular/i18n/i18n.test.module.d.ts +0 -27
  303. package/src/v-angular/info-circle/info-circle.component.d.ts +0 -16
  304. package/src/v-angular/info-circle/info-circle.module.d.ts +0 -10
  305. package/src/v-angular/input/input.component.d.ts +0 -112
  306. package/src/v-angular/input/input.module.d.ts +0 -13
  307. package/src/v-angular/input-mask/config.d.ts +0 -6
  308. package/src/v-angular/input-mask/constants.d.ts +0 -2
  309. package/src/v-angular/input-mask/input-mask-format.pipe.d.ts +0 -8
  310. package/src/v-angular/input-mask/input-mask.directive.d.ts +0 -39
  311. package/src/v-angular/input-mask/input-mask.module.d.ts +0 -11
  312. package/src/v-angular/input-mask/input-mask.types.d.ts +0 -20
  313. package/src/v-angular/modal/dialog/dialog.component.d.ts +0 -72
  314. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +0 -51
  315. package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +0 -6
  316. package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +0 -8
  317. package/src/v-angular/modal/modal.globals.d.ts +0 -13
  318. package/src/v-angular/modal/modal.module.d.ts +0 -15
  319. package/src/v-angular/modal/modal.types.d.ts +0 -6
  320. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +0 -85
  321. package/src/v-angular/pagination/pagination.component.d.ts +0 -64
  322. package/src/v-angular/pagination/pagination.module.d.ts +0 -12
  323. package/src/v-angular/radio/radio-group/radio-group.component.d.ts +0 -42
  324. package/src/v-angular/radio/radio.component.d.ts +0 -63
  325. package/src/v-angular/radio/radio.module.d.ts +0 -11
  326. package/src/v-angular/slug/slug.module.d.ts +0 -8
  327. package/src/v-angular/slug/slug.pipe.d.ts +0 -12
  328. package/src/v-angular/table/table.component.d.ts +0 -248
  329. package/src/v-angular/table/table.directive.d.ts +0 -36
  330. package/src/v-angular/table/table.models.d.ts +0 -78
  331. package/src/v-angular/table/table.module.d.ts +0 -12
  332. package/src/v-angular/table/table.tools.d.ts +0 -5
  333. package/src/v-angular/table/tr-thook.pipe.d.ts +0 -7
  334. package/src/v-angular/tabs/tab.directive.d.ts +0 -37
  335. package/src/v-angular/tabs/tabs.component.d.ts +0 -65
  336. package/src/v-angular/tabs/tabs.models.d.ts +0 -25
  337. package/src/v-angular/tabs/tabs.module.d.ts +0 -11
  338. package/src/v-angular/textarea/textarea.component.d.ts +0 -57
  339. package/src/v-angular/textarea/textarea.module.d.ts +0 -12
  340. package/src/v-angular/toast/toast-message.service.d.ts +0 -19
  341. package/src/v-angular/toast/toast.component.d.ts +0 -20
  342. package/src/v-angular/toast/toast.models.d.ts +0 -18
  343. package/src/v-angular/toast/toast.module.d.ts +0 -10
  344. package/src/v-angular/tooltip/tooltip.directive.d.ts +0 -108
  345. package/src/v-angular/tooltip/tooltip.module.d.ts +0 -8
  346. package/src/v-angular/tooltip/tooltip.styles.d.ts +0 -11
  347. package/v-angular/account-number/account-number.module.d.ts +0 -8
  348. package/v-angular/account-number/account-number.pipe.d.ts +0 -32
  349. package/v-angular/account-number/index.d.ts +0 -2
  350. package/v-angular/alert/alert.component.d.ts +0 -20
  351. package/v-angular/alert/alert.models.d.ts +0 -13
  352. package/v-angular/alert/alert.module.d.ts +0 -8
  353. package/v-angular/alert/index.d.ts +0 -3
  354. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +0 -134
  355. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +0 -7
  356. package/v-angular/base-control-value-accessor/index.d.ts +0 -2
  357. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +0 -18
  358. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +0 -10
  359. package/v-angular/breadcrumbs/index.d.ts +0 -2
  360. package/v-angular/button/button.component.d.ts +0 -62
  361. package/v-angular/button/button.module.d.ts +0 -10
  362. package/v-angular/button/index.d.ts +0 -2
  363. package/v-angular/card/card.component.d.ts +0 -5
  364. package/v-angular/card/card.module.d.ts +0 -8
  365. package/v-angular/card/index.d.ts +0 -2
  366. package/v-angular/character-countdown/character-countdown.directive.d.ts +0 -17
  367. package/v-angular/character-countdown/character-countdown.module.d.ts +0 -8
  368. package/v-angular/character-countdown/index.d.ts +0 -2
  369. package/v-angular/checkbox/checkbox.component.d.ts +0 -36
  370. package/v-angular/checkbox/checkbox.module.d.ts +0 -10
  371. package/v-angular/checkbox/index.d.ts +0 -2
  372. package/v-angular/core/core.globals.d.ts +0 -13
  373. package/v-angular/core/core.utils.d.ts +0 -23
  374. package/v-angular/core/index.d.ts +0 -2
  375. package/v-angular/datepicker/components/calendar/calendar.component.d.ts +0 -36
  376. package/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +0 -30
  377. package/v-angular/datepicker/components/date-input/date-input.component.d.ts +0 -113
  378. package/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +0 -76
  379. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +0 -169
  380. package/v-angular/datepicker/datepicker.globals.d.ts +0 -13
  381. package/v-angular/datepicker/datepicker.models.d.ts +0 -50
  382. package/v-angular/datepicker/datepicker.module.d.ts +0 -19
  383. package/v-angular/datepicker/datepicker.utils.d.ts +0 -46
  384. package/v-angular/datepicker/directives/calendar-date.directive.d.ts +0 -21
  385. package/v-angular/datepicker/index.d.ts +0 -13
  386. package/v-angular/datepicker/models/dates.d.ts +0 -15
  387. package/v-angular/datepicker/pipes/date-thook.pipe.d.ts +0 -8
  388. package/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +0 -8
  389. package/v-angular/datepicker/pipes/matches.pipe.d.ts +0 -7
  390. package/v-angular/drag-drop/drag-drop.component.d.ts +0 -131
  391. package/v-angular/drag-drop/drag-drop.models.d.ts +0 -49
  392. package/v-angular/drag-drop/drag-drop.module.d.ts +0 -13
  393. package/v-angular/drag-drop/drag-drop.pipes.d.ts +0 -40
  394. package/v-angular/drag-drop/drag-drop.utils.d.ts +0 -33
  395. package/v-angular/drag-drop/index.d.ts +0 -4
  396. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +0 -135
  397. package/v-angular/dropdown/dropdown-list/index.d.ts +0 -1
  398. package/v-angular/dropdown/dropdown.component.d.ts +0 -129
  399. package/v-angular/dropdown/dropdown.module.d.ts +0 -13
  400. package/v-angular/dropdown/index.d.ts +0 -5
  401. package/v-angular/dropdown/typeahead/index.d.ts +0 -5
  402. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +0 -40
  403. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +0 -34
  404. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +0 -61
  405. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +0 -78
  406. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +0 -11
  407. package/v-angular/external-link/external-link.directive.d.ts +0 -17
  408. package/v-angular/external-link/external-link.module.d.ts +0 -8
  409. package/v-angular/external-link/index.d.ts +0 -2
  410. package/v-angular/i18n/i18n.module.d.ts +0 -15
  411. package/v-angular/i18n/i18n.test.module.d.ts +0 -27
  412. package/v-angular/i18n/index.d.ts +0 -2
  413. package/v-angular/info-circle/index.d.ts +0 -2
  414. package/v-angular/info-circle/info-circle.component.d.ts +0 -16
  415. package/v-angular/info-circle/info-circle.module.d.ts +0 -10
  416. package/v-angular/input/index.d.ts +0 -2
  417. package/v-angular/input/input.component.d.ts +0 -112
  418. package/v-angular/input/input.module.d.ts +0 -13
  419. package/v-angular/input-mask/config.d.ts +0 -6
  420. package/v-angular/input-mask/constants.d.ts +0 -2
  421. package/v-angular/input-mask/index.d.ts +0 -5
  422. package/v-angular/input-mask/input-mask-format.pipe.d.ts +0 -8
  423. package/v-angular/input-mask/input-mask.directive.d.ts +0 -39
  424. package/v-angular/input-mask/input-mask.module.d.ts +0 -11
  425. package/v-angular/input-mask/input-mask.types.d.ts +0 -20
  426. package/v-angular/modal/dialog/dialog.component.d.ts +0 -72
  427. package/v-angular/modal/fold-out/fold-out.component.d.ts +0 -51
  428. package/v-angular/modal/fold-out/fold-out.directive.d.ts +0 -6
  429. package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +0 -8
  430. package/v-angular/modal/index.d.ts +0 -5
  431. package/v-angular/modal/modal.globals.d.ts +0 -13
  432. package/v-angular/modal/modal.module.d.ts +0 -15
  433. package/v-angular/modal/modal.types.d.ts +0 -6
  434. package/v-angular/modal/slide-out/slide-out.component.d.ts +0 -85
  435. package/v-angular/pagination/index.d.ts +0 -2
  436. package/v-angular/pagination/pagination.component.d.ts +0 -64
  437. package/v-angular/pagination/pagination.module.d.ts +0 -12
  438. package/v-angular/radio/index.d.ts +0 -3
  439. package/v-angular/radio/radio-group/radio-group.component.d.ts +0 -42
  440. package/v-angular/radio/radio.component.d.ts +0 -63
  441. package/v-angular/radio/radio.module.d.ts +0 -11
  442. package/v-angular/slug/index.d.ts +0 -2
  443. package/v-angular/slug/slug.module.d.ts +0 -8
  444. package/v-angular/slug/slug.pipe.d.ts +0 -12
  445. package/v-angular/table/index.d.ts +0 -5
  446. package/v-angular/table/table.component.d.ts +0 -248
  447. package/v-angular/table/table.directive.d.ts +0 -36
  448. package/v-angular/table/table.models.d.ts +0 -78
  449. package/v-angular/table/table.module.d.ts +0 -12
  450. package/v-angular/table/table.tools.d.ts +0 -5
  451. package/v-angular/table/tr-thook.pipe.d.ts +0 -7
  452. package/v-angular/tabs/index.d.ts +0 -4
  453. package/v-angular/tabs/tab.directive.d.ts +0 -37
  454. package/v-angular/tabs/tabs.component.d.ts +0 -65
  455. package/v-angular/tabs/tabs.models.d.ts +0 -25
  456. package/v-angular/tabs/tabs.module.d.ts +0 -11
  457. package/v-angular/textarea/index.d.ts +0 -2
  458. package/v-angular/textarea/textarea.component.d.ts +0 -57
  459. package/v-angular/textarea/textarea.module.d.ts +0 -12
  460. package/v-angular/toast/index.d.ts +0 -4
  461. package/v-angular/toast/toast-message.service.d.ts +0 -19
  462. package/v-angular/toast/toast.component.d.ts +0 -20
  463. package/v-angular/toast/toast.models.d.ts +0 -18
  464. package/v-angular/toast/toast.module.d.ts +0 -10
  465. package/v-angular/tooltip/index.d.ts +0 -2
  466. package/v-angular/tooltip/tooltip.directive.d.ts +0 -108
  467. package/v-angular/tooltip/tooltip.module.d.ts +0 -8
  468. package/v-angular/tooltip/tooltip.styles.d.ts +0 -11
  469. package/v-angular/v-angular.module.d.ts +0 -33
@@ -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 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=\"gds-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=\"gds-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=\"gds-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\n *ngIf=\"expandable && i === 0; else nonExpandableTemplate\"\n >\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\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n 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\n *ngIf=\"column.columnLabel\"\n class=\"gds-item-field-extra-label\"\n >\n {{ item[column.columnLabel] }}\n </div>\n </span>\n </div>\n </ng-container>\n\n <ng-template #nonExpandableTemplate>\n <ng-container\n *ngIf=\"\n customRowTemplates.get(column.property) as tdTemplate;\n else defaultTdTemplate\n \"\n >\n <ng-template\n *ngTemplateOutlet=\"tdTemplate; context: { $implicit: item }\"\n >\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)=\"\n propagateItemClick(subItem, column.preventDefaultClickEvent)\n \"\n >\n <ng-container\n *ngIf=\"\n customRowTemplates.get(column.property) as tdTemplate;\n else defaultTdTemplate\n \"\n >\n <ng-template\n *ngTemplateOutlet=\"tdTemplate; context: { $implicit: subItem }\"\n >\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\n [ngStyle]=\"\n column.boldTextOnMobile\n ? { 'font-weight': '500' }\n : { 'font-weight': '400' }\n \"\n >\n <ng-container\n *ngIf=\"\n customRowTemplates.get(column.property) as tdTemplate;\n else defaultTdTemplate\n \"\n >\n <ng-template\n *ngTemplateOutlet=\"\n tdTemplate;\n context: { $implicit: subItem }\n \"\n ></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\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n 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
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-table.mjs","sources":["../tmp-esm2022/src/v-angular/table/table.directive.js","../tmp-esm2022/src/v-angular/table/table.tools.js","../tmp-esm2022/src/v-angular/table/tr-thook.pipe.js","../tmp-esm2022/src/v-angular/table/table.component.js","../tmp-esm2022/src/v-angular/table/table.module.js","../tmp-esm2022/src/v-angular/table/index.js","../tmp-esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.js"],"sourcesContent":["import { Directive, HostBinding, Input, TemplateRef } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TableDirective {\n constructor() {\n this.columnType = 'text';\n this.thook = 'table';\n }\n get numericColumn() {\n return this.columnType === 'numeric';\n }\n get isSortable() {\n return !!this.sortable;\n }\n get orderAscending() {\n return this.sortOrder === 'asc' && !!this.sortable;\n }\n get orderDescending() {\n return this.sortOrder === 'desc' && !!this.sortable;\n }\n get negativeValue() {\n if (!isNaN(this.value))\n return +this.value < 0;\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.9\", type: TableDirective, isStandalone: false, selector: \"[columnType]\", inputs: { columnType: \"columnType\", sortable: \"sortable\", sortOrder: \"sortOrder\", value: \"value\", thook: \"thook\" }, host: { properties: { \"attr.data-thook\": \"this.thook\", \"class.gds-table__numeric-col\": \"this.numericColumn\", \"class.gds-table__sortable-col\": \"this.isSortable\", \"class.gds-table__sortable-col--asc\": \"this.orderAscending\", \"class.gds-table__sortable-col--desc\": \"this.orderDescending\", \"class.gds-table__negative-col\": \"this.negativeValue\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[columnType]',\n standalone: false\n }]\n }], propDecorators: { columnType: [{\n type: Input\n }], sortable: [{\n type: Input\n }], sortOrder: [{\n type: Input\n }], value: [{\n type: Input\n }], thook: [{\n type: HostBinding,\n args: ['attr.data-thook']\n }, {\n type: Input\n }], numericColumn: [{\n type: HostBinding,\n args: ['class.' + \"gds-table__numeric-col\" /* ColumnCSSClass.Numeric */]\n }], isSortable: [{\n type: HostBinding,\n args: ['class.' + \"gds-table__sortable-col\" /* ColumnCSSClass.Sortable */]\n }], orderAscending: [{\n type: HostBinding,\n args: ['class.' + \"gds-table__sortable-col--asc\" /* ColumnCSSClass.Ascending */]\n }], orderDescending: [{\n type: HostBinding,\n args: ['class.' + \"gds-table__sortable-col--desc\" /* ColumnCSSClass.Descending */]\n }], negativeValue: [{\n type: HostBinding,\n args: ['class.' + \"gds-table__negative-col\" /* ColumnCSSClass.Negative */]\n }] } });\nexport class TableTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this.tableColumnTarget = 'both';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.9\", type: TableTemplateDirective, isStandalone: false, selector: \"[tableColumn]\", inputs: { tableColumn: \"tableColumn\", tableColumnTarget: \"tableColumnTarget\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableTemplateDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableColumn]',\n standalone: false\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { tableColumn: [{\n type: Input\n }], tableColumnTarget: [{\n type: Input\n }] } });\nexport class TableFooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableFooterTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.9\", type: TableFooterTemplateDirective, isStandalone: false, selector: \"[tableFooter]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableFooterTemplateDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableFooter]',\n standalone: false\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\nexport class TableAppendableRowsTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableAppendableRowsTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.9\", type: TableAppendableRowsTemplateDirective, isStandalone: false, selector: \"[tableAppendableRows]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableAppendableRowsTemplateDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableAppendableRows]',\n standalone: false\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGFibGUvdGFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBZ0IxRSxNQUFNLE9BQU8sY0FBYztJQUwzQjtRQU1XLGVBQVUsR0FBbUMsTUFBTSxDQUFBO1FBS25CLFVBQUssR0FDNUMsT0FBTyxDQUFBO0tBeUJWO0lBdkJDLElBQW9ELGFBQWE7UUFDL0QsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsSUFBcUQsVUFBVTtRQUM3RCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsSUFDSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDckQsQ0FBQztJQUVELElBQ0ksYUFBYTtRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUM5QyxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7OEdBL0JVLGNBQWM7a0dBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsS0FBSztpQkFDcEI7O3NCQUVFLEtBQUs7O3NCQUNMLEtBQUs7O3NCQUNMLEtBQUs7O3NCQUNMLEtBQUs7O3NCQUVMLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLOztzQkFHckMsV0FBVzt1QkFBQyxRQUFRLHdEQUF5Qjs7c0JBSTdDLFdBQVc7dUJBQUMsUUFBUSwwREFBMEI7O3NCQUk5QyxXQUFXO3VCQUFDLFFBQVEsZ0VBQTJCOztzQkFLL0MsV0FBVzt1QkFBQyxRQUFRLGtFQUE0Qjs7c0JBS2hELFdBQVc7dUJBQUMsUUFBUSwwREFBMEI7O0FBWWpELE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsWUFBbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBRnZDLHNCQUFpQixHQUEwQixNQUFNLENBQUE7SUFFUCxDQUFDOzhHQUp6QyxzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsS0FBSztpQkFDcEI7O3NCQUVFLEtBQUs7O3NCQUNMLEtBQUs7O0FBVVIsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFBRyxDQUFDOzhHQUR6Qyw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFMeEMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsS0FBSztpQkFDcEI7O0FBVUQsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxZQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFBRyxDQUFDOzhHQUR6QyxvQ0FBb0M7a0dBQXBDLG9DQUFvQzs7MkZBQXBDLG9DQUFvQztrQkFMaEQsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxLQUFLO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmNvbnN0IGVudW0gQ29sdW1uQ1NTQ2xhc3Mge1xuICBQcmltYXJ5ID0gJ2dkcy10YWJsZV9fcHJpbWFyeS1jb2wnLFxuICBTb3J0YWJsZSA9ICdnZHMtdGFibGVfX3NvcnRhYmxlLWNvbCcsXG4gIE51bWVyaWMgPSAnZ2RzLXRhYmxlX19udW1lcmljLWNvbCcsXG4gIE5lZ2F0aXZlID0gJ2dkcy10YWJsZV9fbmVnYXRpdmUtY29sJyxcbiAgQXNjZW5kaW5nID0gJ2dkcy10YWJsZV9fc29ydGFibGUtY29sLS1hc2MnLFxuICBEZXNjZW5kaW5nID0gJ2dkcy10YWJsZV9fc29ydGFibGUtY29sLS1kZXNjJyxcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tjb2x1bW5UeXBlXScsXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVEaXJlY3RpdmUge1xuICBASW5wdXQoKSBjb2x1bW5UeXBlOiAnbnVtZXJpYycgfCAndGV4dCcgfCB1bmRlZmluZWQgPSAndGV4dCdcbiAgQElucHV0KCkgc29ydGFibGU/OiBib29sZWFuXG4gIEBJbnB1dCgpIHNvcnRPcmRlcj86ICdkZXNjJyB8ICdhc2MnXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnlcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAndGFibGUnXG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy4nICsgQ29sdW1uQ1NTQ2xhc3MuTnVtZXJpYykgZ2V0IG51bWVyaWNDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVHlwZSA9PT0gJ251bWVyaWMnXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLicgKyBDb2x1bW5DU1NDbGFzcy5Tb3J0YWJsZSkgZ2V0IGlzU29ydGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zb3J0YWJsZVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy4nICsgQ29sdW1uQ1NTQ2xhc3MuQXNjZW5kaW5nKVxuICBnZXQgb3JkZXJBc2NlbmRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydE9yZGVyID09PSAnYXNjJyAmJiAhIXRoaXMuc29ydGFibGVcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuJyArIENvbHVtbkNTU0NsYXNzLkRlc2NlbmRpbmcpXG4gIGdldCBvcmRlckRlc2NlbmRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydE9yZGVyID09PSAnZGVzYycgJiYgISF0aGlzLnNvcnRhYmxlXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLicgKyBDb2x1bW5DU1NDbGFzcy5OZWdhdGl2ZSlcbiAgZ2V0IG5lZ2F0aXZlVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpc05hTih0aGlzLnZhbHVlKSkgcmV0dXJuICt0aGlzLnZhbHVlIDwgMFxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbdGFibGVDb2x1bW5dJyxcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVRlbXBsYXRlRGlyZWN0aXZlPEsgPSBzdHJpbmc+IHtcbiAgQElucHV0KCkgdGFibGVDb2x1bW4hOiBLXG4gIEBJbnB1dCgpIHRhYmxlQ29sdW1uVGFyZ2V0PzogJ3RoJyB8ICd0ZCcgfCAnYm90aCcgPSAnYm90aCdcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbdGFibGVGb290ZXJdJyxcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUZvb3RlclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW3RhYmxlQXBwZW5kYWJsZVJvd3NdJyxcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUFwcGVuZGFibGVSb3dzVGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG4iXX0=","const getKeyValue = (obj, key) => obj[key];\nexport const pick = (propertyArray, object) => {\n if (object instanceof Object) {\n return propertyArray.reduce((acc, curr) => ({\n ...acc,\n [curr]: getKeyValue(object, curr),\n }), {});\n }\n throw Error('The value for argument \"object\" must be an object');\n};\nexport const orderByDescending = (property) => {\n return (a, b) => {\n if (a[property] > b[property])\n return -1;\n if (a[property] < b[property])\n return 1;\n return 0;\n };\n};\nexport const orderByAscending = (property) => {\n return (a, b) => {\n if (a[property] < b[property])\n return -1;\n if (a[property] > b[property])\n return 1;\n return 0;\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUudG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90YWJsZS90YWJsZS50b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFdBQVcsR0FBRyxDQUF1QixHQUFNLEVBQUUsR0FBTSxFQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7QUFFNUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQ2xCLGFBQTRCLEVBQzVCLE1BQWtDLEVBQzFCLEVBQUU7SUFDVixJQUFJLE1BQU0sWUFBWSxNQUFNLEVBQUUsQ0FBQztRQUM3QixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQ3pCLENBQUMsR0FBVyxFQUFFLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5QixHQUFHLEdBQUc7WUFDTixDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1NBQ2xDLENBQUMsRUFDRixFQUFFLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFBO0FBQ2xFLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQy9CLFFBQTBCLEVBQ0ksRUFBRTtJQUNoQyxPQUFPLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ3hDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN2QyxPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzlCLFFBQTBCLEVBQ0ksRUFBRTtJQUNoQyxPQUFPLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ3hDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN2QyxPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldEtleVZhbHVlID0gPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPihvYmo6IFQsIGtleTogSyk6IFRbS10gPT4gb2JqW2tleV1cblxuZXhwb3J0IGNvbnN0IHBpY2sgPSAoXG4gIHByb3BlcnR5QXJyYXk6IEFycmF5PHN0cmluZz4sXG4gIG9iamVjdDogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0sXG4pOiBvYmplY3QgPT4ge1xuICBpZiAob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgcmV0dXJuIHByb3BlcnR5QXJyYXkucmVkdWNlKFxuICAgICAgKGFjYzogb2JqZWN0LCBjdXJyOiBzdHJpbmcpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2N1cnJdOiBnZXRLZXlWYWx1ZShvYmplY3QsIGN1cnIpLFxuICAgICAgfSksXG4gICAgICB7fSxcbiAgICApXG4gIH1cbiAgdGhyb3cgRXJyb3IoJ1RoZSB2YWx1ZSBmb3IgYXJndW1lbnQgXCJvYmplY3RcIiBtdXN0IGJlIGFuIG9iamVjdCcpXG59XG5cbmV4cG9ydCBjb25zdCBvcmRlckJ5RGVzY2VuZGluZyA9IDxUPihcbiAgcHJvcGVydHk6IGtleW9mIFQgfCBzdHJpbmcsXG4pOiAoKGE6IGFueSwgYjogYW55KSA9PiBudW1iZXIpID0+IHtcbiAgcmV0dXJuIChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgIGlmIChhW3Byb3BlcnR5XSA+IGJbcHJvcGVydHldKSByZXR1cm4gLTFcbiAgICBpZiAoYVtwcm9wZXJ0eV0gPCBiW3Byb3BlcnR5XSkgcmV0dXJuIDFcbiAgICByZXR1cm4gMFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBvcmRlckJ5QXNjZW5kaW5nID0gPFQ+KFxuICBwcm9wZXJ0eToga2V5b2YgVCB8IHN0cmluZyxcbik6ICgoYTogYW55LCBiOiBhbnkpID0+IG51bWJlcikgPT4ge1xuICByZXR1cm4gKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgaWYgKGFbcHJvcGVydHldIDwgYltwcm9wZXJ0eV0pIHJldHVybiAtMVxuICAgIGlmIChhW3Byb3BlcnR5XSA+IGJbcHJvcGVydHldKSByZXR1cm4gMVxuICAgIHJldHVybiAwXG4gIH1cbn1cbiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TrThookPipe {\n transform(value, index, thookFn) {\n // call thook fn to set thook for active row\n if (thookFn != null) {\n return thookFn(value);\n }\n // default thook\n return `table-row-${index}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TrThookPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.9\", ngImport: i0, type: TrThookPipe, isStandalone: true, name: \"trThook\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TrThookPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'trThook',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHItdGhvb2sucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL3RhYmxlL3RyLXRob29rLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUE7O0FBTW5ELE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFNBQVMsQ0FDUCxLQUFRLEVBQ1IsS0FBYSxFQUNiLE9BQWdDO1FBRWhDLDRDQUE0QztRQUM1QyxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QixDQUFDO1FBRUQsZ0JBQWdCO1FBQ2hCLE9BQU8sYUFBYSxLQUFLLEVBQUUsQ0FBQTtJQUM3QixDQUFDOzhHQWJVLFdBQVc7NEdBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFKdkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztvQkFDZixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQFBpcGUoe1xuICBuYW1lOiAndHJUaG9vaycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRyVGhvb2tQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxWPihcbiAgICB2YWx1ZTogVixcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIHRob29rRm4/OiAocm93RGF0YTogVikgPT4gc3RyaW5nLFxuICApOiBzdHJpbmcge1xuICAgIC8vIGNhbGwgdGhvb2sgZm4gdG8gc2V0IHRob29rIGZvciBhY3RpdmUgcm93XG4gICAgaWYgKHRob29rRm4gIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRob29rRm4odmFsdWUpXG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCB0aG9va1xuICAgIHJldHVybiBgdGFibGUtcm93LSR7aW5kZXh9YFxuICB9XG59XG4iXX0=","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { debounceTime, map } from 'rxjs/operators';\nimport { TableAppendableRowsTemplateDirective, TableFooterTemplateDirective, TableTemplateDirective, } from './table.directive';\nimport { orderByAscending, orderByDescending, pick } from './table.tools';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@jsverse/transloco\";\nimport * as i4 from \"./table.directive\";\nimport * as i5 from \"./tr-thook.pipe\";\nlet staticInitId = 0;\nfunction objectFromEntries(entryMap) {\n const fromEntries = {};\n for (const [key, value] of entryMap) {\n fromEntries[key] = value;\n }\n return fromEntries;\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 */\nexport class TableComponent {\n constructor() {\n /** Emits the table row that was clicked. Works on all columns if not preventDefaultEmit is set for that column. */\n this.ngvRowClick = new EventEmitter();\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 this.ngvRowSelect = new EventEmitter();\n /**\n * Emits event to signal that the table should be reordered.\n */\n this.ngvOrderBy = new EventEmitter();\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 this.rowId = 'id';\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 this.hasRowSpan = (_) => undefined;\n /**\n * Used to enable/disable the left-side checkbox column.\n * Defaults to true.\n */\n this.selectable = true;\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 this.hiddenCheckboxRowIds = [];\n /**\n * Used to enable/disable expandable rows.\n * Defaults to false.\n */\n this.expandable = false;\n /**\n * Used to enable/disable the right-side expand icon column.\n * Defaults to true.\n */\n this.expandedByDefault = true;\n /**\n * Property name used to describe the subItems in the data table.\n */\n this.subItemsProp = 'subItems';\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 this.allowLocalSort = false;\n /** Special property used for selecting DOM elements during automated UI testing. */\n this.thook = 'table-select-all';\n /**\n * @internal\n * Internal data structure used to keep track of added content templates used in td elements.\n */\n this.customRowTemplates = new Map();\n /**\n * @internal\n * Internal data structure used to keep track of added content templates used in th elements.\n */\n this.customHeaderTemplates = new Map();\n /**\n * @internal\n * FormGroup containing all row id\\'s as controls, and whether these are selected or not as values.\n */\n this.rowSelectors = new UntypedFormGroup({});\n /**\n * @internal\n * Master selector for selecting or deselecting all row selectors.\n */\n this.groupSelector = new UntypedFormControl(false);\n this.selected = [];\n this.subs = [];\n }\n ngOnChanges(changes) {\n // Update selectable or expandable rows if table data or settings change\n if ((this.selectable || this.expandable) && changes.tableData?.currentValue ||\n (changes.selectable?.currentValue || changes.expandable?.currentValue) && this.tableData) {\n const wasChanged = this.registerSelectableRows(changes.tableData.currentValue);\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 }\n else if (wasChanged) {\n this.rowSelectors.updateValueAndValidity();\n }\n }\n // sort any incoming data\n if (this.allowLocalSort &&\n (changes.tableData?.currentValue || changes.tableColumns?.currentValue)) {\n const orderedByColumn = this.tableColumns?.find((el) => el.order !== undefined);\n if (orderedByColumn)\n this.sortItemsBy(orderedByColumn);\n }\n }\n ngOnInit() {\n this.initId = staticInitId++;\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 (['td', 'both'].includes(tableTemplate.tableColumnTarget)) {\n // add to custom row templates\n this.customRowTemplates.set(tableTemplate.tableColumn, tableTemplate.templateRef);\n }\n // if target is either 'th' or 'both'\n if (['th', 'both'].includes(tableTemplate.tableColumnTarget)) {\n // add to custom header templates\n this.customHeaderTemplates.set(tableTemplate.tableColumn, tableTemplate.templateRef);\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 // 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 // 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 ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe());\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() {\n return this.groupSelector.valueChanges.subscribe({\n next: (value) => {\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 * @internal\n * Returns a subscription to all individual row selectors and update the master selector if all are selected.\n */\n get rowValueSubscription() {\n return this.rowSelectors.valueChanges\n .pipe(debounceTime(0), // to limit the number of events and to wait for all sub controls to update\n map((val) => {\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 .subscribe({\n next: (value) => {\n // the number of selected keys compared to the total number of keys available\n const numberOfSelected = Object.keys(value).length;\n const allSelected = 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 * @internal\n * Registers or disables row controls for new or removed rows.\n */\n registerSelectableRows(tableData) {\n if (!tableData)\n return false;\n // Array containing only the id's for each row\n const dataRowIds = tableData.map((data) => data[this.rowId]);\n // Array containing the id's that have registered controls\n const currentIds = Object.keys(this.rowSelectorsValue);\n // Array containing all ids that lacks a corresponding control (i.e. new rows)\n const newIds = dataRowIds.filter((id) => currentIds.indexOf(id) === -1);\n // Array containing all ids that has a control but is no longer in the data set (i.e. removed rows)\n const removedIds = currentIds.filter((id) => dataRowIds.indexOf(id) === -1);\n // Register new controls for added rows\n if (newIds.length) {\n newIds.forEach((id) => {\n const ctrl = this.rowSelectors.registerControl(id, new UntypedFormControl(false));\n if (ctrl.disabled)\n ctrl.enable();\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 return newIds.length > 0 || removedIds.length > 0;\n }\n /**\n * @internal\n * Returns all enabled values unless all rows are disabled.\n */\n get rowSelectorsValue() {\n return this.rowSelectors.enabled ? this.rowSelectors.value : {};\n }\n toggleSortOrderWithSpace(event, column) {\n if (column.sortable) {\n event.preventDefault();\n this.toggleSortOrder(column);\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) {\n // check if the table is already sorted by another column than the one provided\n const currentlyOrderedBy = this.tableColumns?.find((el) => el !== column && el.order !== undefined);\n if (currentlyOrderedBy)\n delete currentlyOrderedBy.order;\n column.order = column.order === 'desc' ? 'asc' : 'desc';\n this.sortItemsBy(column);\n }\n /** If sortable, reorders the table data using the specified column as ordering attribute. */\n sortItemsBy(column) {\n if (!column.sortable)\n 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)\n return;\n return this.tableData.sort(column.order === 'desc'\n ? orderByDescending(column.property)\n : orderByAscending(column.property));\n }\n /**\n * @internal\n * Emits row data for what row was clicked if defaultEmit is allowed.\n */\n propagateItemClick(item, preventDefaultEmit) {\n if (!preventDefaultEmit)\n this.ngvRowClick.emit(item);\n if (this.expandable && item[this.subItemsProp]) {\n this.toggleRowToExpand(item[this.rowId]);\n }\n }\n getAriaLabel(column) {\n const sortOrder = column.order === 'asc'\n ? this.ariaLabelsOrderBy?.desc\n : this.ariaLabelsOrderBy?.asc;\n if (!sortOrder)\n return; // no aria labels defined\n return column.ariaLabelSortable?.replace('{{sortOrder}}', sortOrder);\n }\n toggleRowToExpand(id) {\n const row = this.rowSelectors.get(id);\n row?.setValue(!row.value);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.9\", type: TableComponent, isStandalone: false, selector: \"nggv-table\", inputs: { tableColumns: \"tableColumns\", tableData: \"tableData\", rowId: \"rowId\", hasRowSpan: \"hasRowSpan\", selectable: \"selectable\", hiddenCheckboxRowIds: \"hiddenCheckboxRowIds\", expandable: \"expandable\", expandedByDefault: \"expandedByDefault\", subItemsProp: \"subItemsProp\", allowLocalSort: \"allowLocalSort\", thook: \"thook\", trThookFn: \"trThookFn\", ariaLabelCheckboxTh: \"ariaLabelCheckboxTh\", ariaLabelCheckboxTr: \"ariaLabelCheckboxTr\", ariaLabelsOrderBy: \"ariaLabelsOrderBy\" }, outputs: { ngvRowClick: \"ngvRowClick\", ngvRowSelect: \"ngvRowSelect\", ngvOrderBy: \"ngvOrderBy\" }, queries: [{ propertyName: \"appendedRowsTemplate\", first: true, predicate: TableAppendableRowsTemplateDirective, descendants: true }, { propertyName: \"customFooterTemplate\", first: true, predicate: TableFooterTemplateDirective, descendants: true }, { propertyName: \"customTemplates\", predicate: TableTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: \"<ng-template #sortableThTemplate let-column>\\n <button class=\\\"gds-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=\\\"gds-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=\\\"gds-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\\n *ngIf=\\\"expandable && i === 0; else nonExpandableTemplate\\\"\\n >\\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\\\"\\n height=\\\"20\\\"\\n viewBox=\\\"0 0 24 24\\\"\\n 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\\n *ngIf=\\\"column.columnLabel\\\"\\n class=\\\"gds-item-field-extra-label\\\"\\n >\\n {{ item[column.columnLabel] }}\\n </div>\\n </span>\\n </div>\\n </ng-container>\\n\\n <ng-template #nonExpandableTemplate>\\n <ng-container\\n *ngIf=\\\"\\n customRowTemplates.get(column.property) as tdTemplate;\\n else defaultTdTemplate\\n \\\"\\n >\\n <ng-template\\n *ngTemplateOutlet=\\\"tdTemplate; context: { $implicit: item }\\\"\\n >\\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)=\\\"\\n propagateItemClick(subItem, column.preventDefaultClickEvent)\\n \\\"\\n >\\n <ng-container\\n *ngIf=\\\"\\n customRowTemplates.get(column.property) as tdTemplate;\\n else defaultTdTemplate\\n \\\"\\n >\\n <ng-template\\n *ngTemplateOutlet=\\\"tdTemplate; context: { $implicit: subItem }\\\"\\n >\\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\\n [ngStyle]=\\\"\\n column.boldTextOnMobile\\n ? { 'font-weight': '500' }\\n : { 'font-weight': '400' }\\n \\\"\\n >\\n <ng-container\\n *ngIf=\\\"\\n customRowTemplates.get(column.property) as tdTemplate;\\n else defaultTdTemplate\\n \\\"\\n >\\n <ng-template\\n *ngTemplateOutlet=\\\"\\n tdTemplate;\\n context: { $implicit: subItem }\\n \\\"\\n ></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\\\"\\n height=\\\"20\\\"\\n viewBox=\\\"0 0 24 24\\\"\\n 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\", styles: [\":host{--gds-sys-color-blue: #41b0ee;--gds-sys-color-dark-blue-1: #0092e1;--gds-sys-color-dark-blue-2: #007ac7;--gds-sys-color-green: #60cd18;--gds-sys-color-dark-green-1: #45b400;--gds-sys-color-dark-green-2: #308800;--gds-sys-color-yellow: #ffc500;--gds-sys-color-dark-yellow-1: #ffb400;--gds-sys-color-dark-yellow-2: #f8a000;--gds-sys-color-text-primary: #333333;--gds-sys-color-text-secondary: #ababab;--gds-sys-color-text-white: #ffffff;--gds-sys-color-text-black: #333333;--gds-sys-color-text-inverted: #ffffff;--gds-sys-color-text-link: #0062bc;--gds-sys-color-text-error: #9f000a;--gds-sys-color-text-disabled: #adadad;--gds-sys-color-red: #f03529;--gds-sys-color-dark-red-1: #d81a1a;--gds-sys-color-dark-red-2: #bb000c;--gds-sys-color-purple: #673ab6;--gds-sys-color-dark-purple-1: #4f2C99;--gds-sys-color-dark-purple-2: #3f2587;--gds-sys-color-white: #ffffff;--gds-sys-color-black: #000000;--gds-sys-color-background-primary: #ffffff;--gds-sys-color-background-secondary: #eeeeee;--gds-sys-color-base-100: #f8f8f8;--gds-sys-color-base-200: #e9e9e9;--gds-sys-color-base-300: #dedede;--gds-sys-color-base-400: #cecece;--gds-sys-color-base-500: #adadad;--gds-sys-color-base-600: #868686;--gds-sys-color-base-700: #494949;--gds-sys-color-base-800: #333333;--gds-sys-color-base-900: #1a1a1a;--gds-sys-color-hover-10: rgba(255, 255, 255, .1);--gds-sys-color-hover-20: rgba(255, 255, 255, .2);--gds-sys-shape-corner-none: 0;--gds-sys-shape-corner-small: .125rem;--gds-sys-shape-corner-medium: .25rem;--gds-sys-shape-corner-round: 50%}::ng-deep .gds-table{border-collapse:collapse}::ng-deep .gds-table thead tr th{border-top:1px solid var(--gds-sys-color-base-600);background:var(--gds-sys-color-base-800);color:var(--gds-sys-color-background-primary);padding:.3rem .5rem;text-align:left;font-weight:500}::ng-deep .gds-table thead tr th.icon-invert.gds-sortable .gds-table-sort:after{margin-left:0;margin-right:.3rem;order:-1}::ng-deep .gds-table thead tr th .gds-table-sort{color:inherit;width:100%;text-align:left;display:flex;align-items:center}::ng-deep .gds-table thead tr th .gds-table-sort:focus:not(:focus-visible){box-shadow:none;outline:0}::ng-deep .gds-table thead tr th .gds-table-sort:focus,::ng-deep .gds-table thead tr th .gds-table-sort:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}::ng-deep .gds-table thead tr th .gds-table-sort{border-radius:.125rem;--gds-sys-color-focus-outline: var( --gds-sys-color-background-primary )}::ng-deep .gds-table thead tr th[aria-sort] .gds-table-sort:after,::ng-deep .gds-table thead tr th.gds-sortable .gds-table-sort:after{content:\\\"\\\";background:var(--gds-sys-color-base-500);-webkit-mask-image:url(\\\"data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%3E%3Cpath%20d='M11.107%205.86147L10.6429%205.39741C10.5328%205.28726%2010.3546%205.28726%2010.2445%205.39741L6.60933%209.03257V1.03101C6.60933%200.876318%206.48276%200.749756%206.32808%200.749756H5.67183C5.51714%200.749756%205.39058%200.876318%205.39058%201.03101V9.03257L1.75542%205.39741C1.64526%205.28726%201.46714%205.28726%201.35698%205.39741L0.89292%205.86147C0.782764%205.97163%200.782764%206.14976%200.89292%206.25991L5.80073%2011.1677C5.91089%2011.2779%206.08901%2011.2779%206.19917%2011.1677L11.107%206.25991C11.2171%206.14976%2011.2171%205.97163%2011.107%205.86147Z'%20fill='%23ADADAD'/%3E%3C/svg%3E\\\");mask-image:url(\\\"data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%3E%3Cpath%20d='M11.107%205.86147L10.6429%205.39741C10.5328%205.28726%2010.3546%205.28726%2010.2445%205.39741L6.60933%209.03257V1.03101C6.60933%200.876318%206.48276%200.749756%206.32808%200.749756H5.67183C5.51714%200.749756%205.39058%200.876318%205.39058%201.03101V9.03257L1.75542%205.39741C1.64526%205.28726%201.46714%205.28726%201.35698%205.39741L0.89292%205.86147C0.782764%205.97163%200.782764%206.14976%200.89292%206.25991L5.80073%2011.1677C5.91089%2011.2779%206.08901%2011.2779%206.19917%2011.1677L11.107%206.25991C11.2171%206.14976%2011.2171%205.97163%2011.107%205.86147Z'%20fill='%23ADADAD'/%3E%3C/svg%3E\\\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:right;mask-position:right;width:12px;height:12px;margin-left:.3rem}::ng-deep .gds-table thead tr th[aria-sort=ascending] .gds-table-sort:after{background:var(--gds-sys-color-text-inverted);transform:rotate(180deg)}::ng-deep .gds-table thead tr th[aria-sort=descending] .gds-table-sort:after{background:var(--gds-sys-color-text-inverted)}::ng-deep .gds-table tbody tr td,::ng-deep .gds-table tbody tr th{border-top:1px solid var(--gds-sys-color-base-600);padding:.6875rem .5rem;vertical-align:top}::ng-deep .gds-table tbody tr.collapsible~.sub-row{display:none}::ng-deep .gds-table tbody tr.collapsible.expanded~.sub-row.show{display:table-row}::ng-deep .gds-table tbody tr td.collapse-control,::ng-deep .gds-table tbody tr td.select-control{width:15px}::ng-deep .gds-table tbody tr td.collapse-control>.collapse-btn{min-height:unset;padding:0;background:transparent}::ng-deep .gds-table tbody tr td.collapse-control>.collapse-btn>.icon-holder{cursor:pointer;width:12px}::ng-deep .gds-table tbody tr td.collapse-control>.collapse-btn>.icon-holder svg{width:12px;fill:var(--gds-sys-color-text-primary)}::ng-deep .gds-table tbody tr td.collapse-control>.collapse-btn>.icon-holder svg[name=angle-right]{width:9px}::ng-deep .gds-table{border-bottom:1px solid var(--gds-sys-color-base-600)}@media(max-width:35.98em){::ng-deep .gds-table.table-mobile{width:100%;table-layout:fixed;border-bottom:none}::ng-deep .gds-table.table-mobile thead{position:sticky;top:0;display:block;background:var(--gds-sys-color-base-800)}}@media(max-width:35.98em)and (hover:none)and (pointer:coarse){::ng-deep .gds-table.table-mobile thead{display:table-header-group}}@media(max-width:35.98em){::ng-deep .gds-table.table-mobile thead tr{display:flex;overflow:auto}::ng-deep .gds-table.table-mobile thead tr::-webkit-scrollbar{display:none}::ng-deep .gds-table.table-mobile thead tr th{flex:auto;text-align:left!important;white-space:nowrap}::ng-deep .gds-table.table-mobile tbody tr{display:flex;flex-direction:column;border-bottom:1px solid var(--gds-sys-color-base-600)}::ng-deep .gds-table.table-mobile tbody tr td{display:flex;justify-content:space-between;align-items:center;border-top:none!important}::ng-deep .gds-table.table-mobile tbody tr td:before{content:attr(data-label);font-weight:700}}::ng-deep .gds-table{width:100%;border-bottom:none}::ng-deep .gds-table .web-view{display:table-cell}::ng-deep .gds-table .mobile-view{display:none}::ng-deep .gds-table tr:hover td{background-color:var(--gds-sys-color-base-100)}::ng-deep .gds-table .gds-table__numeric-col{text-align:right}::ng-deep .gds-table thead tr th.gds-table__numeric-col .gds-table-sort{justify-content:end}::ng-deep .gds-table th button{background-color:#0000;border:0;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0;cursor:pointer}::ng-deep .gds-table tbody{border-bottom:var(--sg-table-border-width) solid var(--sg-table-border-color)}::ng-deep .gds-table td{cursor:pointer}::ng-deep .gds-table tfoot{border-top:1px solid;border-bottom:none;font-weight:var(--sg-table-row-expand-font-weight, 500)}::ng-deep .gds-table tfoot ::ng-deep td{padding:.6875rem .5rem}::ng-deep .gds-table th.column__check{height:vanilla-px-to-rem(32px);width:vanilla-px-to-rem(40px)}::ng-deep .gds-table th.column__check div{min-height:100%}::ng-deep .gds-table th.column__check input:checked+label:after{top:.6rem;display:inline}::ng-deep .gds-table th.column__check label{display:inline;padding:0}::ng-deep .gds-table th.column__check label:before{top:.55rem}::ng-deep .gds-table td.column__check{width:vanilla-px-to-rem(40px)}::ng-deep .gds-table td.column__check div{min-height:unset}::ng-deep .gds-table td.column__check label{padding:0}::ng-deep .gds-table td.column__check label:before{margin:0}::ng-deep .gds-table tr.row__expand{background-color:var(--gds-sys-color-base-100)}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap{display:flex;flex-wrap:nowrap}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap.no-sub-items{padding-left:1.5rem}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .chevron-field{width:1.5rem}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .chevron-field svg{transition:transform .3s ease}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .chevron-field[aria-expanded=true] svg{transform:rotate(-180deg)}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .gds-item-field-text{padding-left:.2rem}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .gds-item-field-text .gds-item-field-extra-label{font-weight:var(--sg-table-row-expand-font-weight-light, 400)}::ng-deep .gds-table tr.row__expand td{font-weight:var(--sg-table-row-expand-font-weight, 500)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}::ng-deep .gds-table label.gds-form-control{align-items:flex-start}::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox]:focus-visible):focus,::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}::ng-deep .gds-table label.gds-form-control input[type=checkbox]~i{margin-right:.75rem \\\"\\\";margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-sys-color-text-primary);position:relative;border-radius:var(--gds-sys-shape-corner-small);background-color:transparent;flex:0 0 auto;height:1rem;width:1rem}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-sys-color-base-900)}::ng-deep .gds-table label.gds-form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{background-color:var(--gds-sys-color-base-200)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:checked~i{background-color:var(--gds-sys-color-base-900)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-sys-color-base-900)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-sys-color-background-primary);box-sizing:border-box;border-left:none;transform:scale(1) rotate(0);opacity:1}::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem \\\"\\\"}::ng-deep .gds-table .is-invalid label.gds-form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){::ng-deep .gds-table label.gds-form-control.is-invalid{border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem \\\"\\\"}::ng-deep .gds-table .is-invalid label.gds-form-control.is-invalid{border:none;margin:0}}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~i,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~i{background:var(--gds-sys-color-base-300)!important;border-color:var(--gds-sys-color-text-disabled)!important;cursor:not-allowed}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~i::placeholder,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~i::placeholder{color:var(--gds-sys-color-text-disabled)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~i,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~i{box-shadow:inset 0 0 0 1px var(--border-disabled-color)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled:checked~i,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled:checked~i{background:var(--gds-sys-color-base-300)!important;border-color:var(--gds-sys-color-text-disabled)!important;cursor:not-allowed}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled:checked~i::placeholder,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--gds-sys-color-text-disabled)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled:checked~i,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled:checked~i{box-shadow:inset 0 0 0 1px var(--border-disabled-color)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled:checked~i:after,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~span,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~span{color:var(--gds-sys-color-text-disabled)!important;cursor:not-allowed}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~span::placeholder,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~span::placeholder{color:var(--gds-sys-color-text-disabled)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]~i:after{box-sizing:border-box;content:\\\"\\\";opacity:0;position:absolute}::ng-deep .gds-table label.gds-form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-sys-color-text-inverted);border-left:3px solid var(--gds-sys-color-text-inverted);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:checked~i:after{opacity:1}::ng-deep .gds-table .gds-field-checkbox-wrap .gds-form-control:has(input[type=checkbox]){padding-bottom:.75rem \\\"\\\";padding-top:.75rem \\\"\\\";padding-left:1rem \\\"\\\";padding-right:1rem \\\"\\\";border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}::ng-deep .gds-table .gds-field-checkbox-wrap .gds-form-control:has(input[type=checkbox]):has(input:disabled){cursor:not-allowed}::ng-deep .gds-table .gds-field-checkbox-wrap .gds-form-control:has(input[type=checkbox]){line-height:1.125rem;padding:0}::ng-deep .gds-table #thead-checkbox input[type=checkbox]~i{box-shadow:inset 0 0 0 1px var(--gds-sys-color-text-inverted);background-color:transparent}::ng-deep .gds-table #thead-checkbox input[type=checkbox]~i:after{box-sizing:border-box}::ng-deep .gds-table #thead-checkbox:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-white)}::ng-deep .gds-table #thead-checkbox input[type=checkbox]:hover:not(:checked)~i{box-shadow:inset 0 0 0 1px #ababab}::ng-deep .gds-table #thead-checkbox input[type=checkbox]:hover:not(:checked)~i:after{border-color:#ababab}::ng-deep .gds-table #thead-checkbox input[type=checkbox]:hover:checked~i{box-shadow:inset 0 0 0 1px #ababab}::ng-deep .gds-table #thead-checkbox input[type=checkbox]:hover:checked~i:after{border-color:#ababab}@media screen and (max-width:600px){.gds-table thead{display:none}.gds-table .row__expand td:not(:first-child){display:none}.gds-table .row__expand td{display:table-cell}.gds-table .web-view{display:none}.gds-table .mobile-view{display:flex;align-items:center}.gds-table .mobile-view .mobile-view-field-wrap{display:grid;grid-template-columns:1fr 1fr;width:100%}.gds-table .mobile-view .mobile-view-field-wrap .mobile-view-field{display:flex;flex-direction:column;padding-bottom:.3rem}.gds-table .mobile-view .mobile-view-field-wrap .mobile-view-field:nth-child(odd){justify-self:start;align-items:start;text-align:start}.gds-table .mobile-view .mobile-view-field-wrap .mobile-view-field:nth-child(2n){align-items:end;justify-self:end;text-align:end}.gds-table .mobile-view .nav-chevron-field{width:1.5rem;padding-left:.5rem}.gds-table .mobile-view .nav-chevron-field svg{transition:transform .3s ease}.gds-table .mobile-view .nav-chevron-field[aria-expanded=true] svg{transform:rotate(-90deg)}.gds-table .mobile-view .settings-field{width:1.5rem;padding:0 1rem}.gds-table .mobile-view .settings-field svg{transition:all .3s ease}.gds-table .mobile-view .settings-field:hover svg{fill:var(--gds-sys-color-blue-dark-2)}}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: i2.CheckboxControlValueAccessor, selector: \"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"directive\", type: i3.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"directive\", type: i4.TableDirective, selector: \"[columnType]\", inputs: [\"columnType\", \"sortable\", \"sortOrder\", \"value\", \"thook\"] }, { kind: \"pipe\", type: i5.TrThookPipe, name: \"trThook\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: TableComponent, decorators: [{\n type: Component,\n args: [{ selector: 'nggv-table', standalone: false, template: \"<ng-template #sortableThTemplate let-column>\\n <button class=\\\"gds-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=\\\"gds-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=\\\"gds-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\\n *ngIf=\\\"expandable && i === 0; else nonExpandableTemplate\\\"\\n >\\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\\\"\\n height=\\\"20\\\"\\n viewBox=\\\"0 0 24 24\\\"\\n 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\\n *ngIf=\\\"column.columnLabel\\\"\\n class=\\\"gds-item-field-extra-label\\\"\\n >\\n {{ item[column.columnLabel] }}\\n </div>\\n </span>\\n </div>\\n </ng-container>\\n\\n <ng-template #nonExpandableTemplate>\\n <ng-container\\n *ngIf=\\\"\\n customRowTemplates.get(column.property) as tdTemplate;\\n else defaultTdTemplate\\n \\\"\\n >\\n <ng-template\\n *ngTemplateOutlet=\\\"tdTemplate; context: { $implicit: item }\\\"\\n >\\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)=\\\"\\n propagateItemClick(subItem, column.preventDefaultClickEvent)\\n \\\"\\n >\\n <ng-container\\n *ngIf=\\\"\\n customRowTemplates.get(column.property) as tdTemplate;\\n else defaultTdTemplate\\n \\\"\\n >\\n <ng-template\\n *ngTemplateOutlet=\\\"tdTemplate; context: { $implicit: subItem }\\\"\\n >\\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\\n [ngStyle]=\\\"\\n column.boldTextOnMobile\\n ? { 'font-weight': '500' }\\n : { 'font-weight': '400' }\\n \\\"\\n >\\n <ng-container\\n *ngIf=\\\"\\n customRowTemplates.get(column.property) as tdTemplate;\\n else defaultTdTemplate\\n \\\"\\n >\\n <ng-template\\n *ngTemplateOutlet=\\\"\\n tdTemplate;\\n context: { $implicit: subItem }\\n \\\"\\n ></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\\\"\\n height=\\\"20\\\"\\n viewBox=\\\"0 0 24 24\\\"\\n 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\", styles: [\":host{--gds-sys-color-blue: #41b0ee;--gds-sys-color-dark-blue-1: #0092e1;--gds-sys-color-dark-blue-2: #007ac7;--gds-sys-color-green: #60cd18;--gds-sys-color-dark-green-1: #45b400;--gds-sys-color-dark-green-2: #308800;--gds-sys-color-yellow: #ffc500;--gds-sys-color-dark-yellow-1: #ffb400;--gds-sys-color-dark-yellow-2: #f8a000;--gds-sys-color-text-primary: #333333;--gds-sys-color-text-secondary: #ababab;--gds-sys-color-text-white: #ffffff;--gds-sys-color-text-black: #333333;--gds-sys-color-text-inverted: #ffffff;--gds-sys-color-text-link: #0062bc;--gds-sys-color-text-error: #9f000a;--gds-sys-color-text-disabled: #adadad;--gds-sys-color-red: #f03529;--gds-sys-color-dark-red-1: #d81a1a;--gds-sys-color-dark-red-2: #bb000c;--gds-sys-color-purple: #673ab6;--gds-sys-color-dark-purple-1: #4f2C99;--gds-sys-color-dark-purple-2: #3f2587;--gds-sys-color-white: #ffffff;--gds-sys-color-black: #000000;--gds-sys-color-background-primary: #ffffff;--gds-sys-color-background-secondary: #eeeeee;--gds-sys-color-base-100: #f8f8f8;--gds-sys-color-base-200: #e9e9e9;--gds-sys-color-base-300: #dedede;--gds-sys-color-base-400: #cecece;--gds-sys-color-base-500: #adadad;--gds-sys-color-base-600: #868686;--gds-sys-color-base-700: #494949;--gds-sys-color-base-800: #333333;--gds-sys-color-base-900: #1a1a1a;--gds-sys-color-hover-10: rgba(255, 255, 255, .1);--gds-sys-color-hover-20: rgba(255, 255, 255, .2);--gds-sys-shape-corner-none: 0;--gds-sys-shape-corner-small: .125rem;--gds-sys-shape-corner-medium: .25rem;--gds-sys-shape-corner-round: 50%}::ng-deep .gds-table{border-collapse:collapse}::ng-deep .gds-table thead tr th{border-top:1px solid var(--gds-sys-color-base-600);background:var(--gds-sys-color-base-800);color:var(--gds-sys-color-background-primary);padding:.3rem .5rem;text-align:left;font-weight:500}::ng-deep .gds-table thead tr th.icon-invert.gds-sortable .gds-table-sort:after{margin-left:0;margin-right:.3rem;order:-1}::ng-deep .gds-table thead tr th .gds-table-sort{color:inherit;width:100%;text-align:left;display:flex;align-items:center}::ng-deep .gds-table thead tr th .gds-table-sort:focus:not(:focus-visible){box-shadow:none;outline:0}::ng-deep .gds-table thead tr th .gds-table-sort:focus,::ng-deep .gds-table thead tr th .gds-table-sort:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}::ng-deep .gds-table thead tr th .gds-table-sort{border-radius:.125rem;--gds-sys-color-focus-outline: var( --gds-sys-color-background-primary )}::ng-deep .gds-table thead tr th[aria-sort] .gds-table-sort:after,::ng-deep .gds-table thead tr th.gds-sortable .gds-table-sort:after{content:\\\"\\\";background:var(--gds-sys-color-base-500);-webkit-mask-image:url(\\\"data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%3E%3Cpath%20d='M11.107%205.86147L10.6429%205.39741C10.5328%205.28726%2010.3546%205.28726%2010.2445%205.39741L6.60933%209.03257V1.03101C6.60933%200.876318%206.48276%200.749756%206.32808%200.749756H5.67183C5.51714%200.749756%205.39058%200.876318%205.39058%201.03101V9.03257L1.75542%205.39741C1.64526%205.28726%201.46714%205.28726%201.35698%205.39741L0.89292%205.86147C0.782764%205.97163%200.782764%206.14976%200.89292%206.25991L5.80073%2011.1677C5.91089%2011.2779%206.08901%2011.2779%206.19917%2011.1677L11.107%206.25991C11.2171%206.14976%2011.2171%205.97163%2011.107%205.86147Z'%20fill='%23ADADAD'/%3E%3C/svg%3E\\\");mask-image:url(\\\"data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%3E%3Cpath%20d='M11.107%205.86147L10.6429%205.39741C10.5328%205.28726%2010.3546%205.28726%2010.2445%205.39741L6.60933%209.03257V1.03101C6.60933%200.876318%206.48276%200.749756%206.32808%200.749756H5.67183C5.51714%200.749756%205.39058%200.876318%205.39058%201.03101V9.03257L1.75542%205.39741C1.64526%205.28726%201.46714%205.28726%201.35698%205.39741L0.89292%205.86147C0.782764%205.97163%200.782764%206.14976%200.89292%206.25991L5.80073%2011.1677C5.91089%2011.2779%206.08901%2011.2779%206.19917%2011.1677L11.107%206.25991C11.2171%206.14976%2011.2171%205.97163%2011.107%205.86147Z'%20fill='%23ADADAD'/%3E%3C/svg%3E\\\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:right;mask-position:right;width:12px;height:12px;margin-left:.3rem}::ng-deep .gds-table thead tr th[aria-sort=ascending] .gds-table-sort:after{background:var(--gds-sys-color-text-inverted);transform:rotate(180deg)}::ng-deep .gds-table thead tr th[aria-sort=descending] .gds-table-sort:after{background:var(--gds-sys-color-text-inverted)}::ng-deep .gds-table tbody tr td,::ng-deep .gds-table tbody tr th{border-top:1px solid var(--gds-sys-color-base-600);padding:.6875rem .5rem;vertical-align:top}::ng-deep .gds-table tbody tr.collapsible~.sub-row{display:none}::ng-deep .gds-table tbody tr.collapsible.expanded~.sub-row.show{display:table-row}::ng-deep .gds-table tbody tr td.collapse-control,::ng-deep .gds-table tbody tr td.select-control{width:15px}::ng-deep .gds-table tbody tr td.collapse-control>.collapse-btn{min-height:unset;padding:0;background:transparent}::ng-deep .gds-table tbody tr td.collapse-control>.collapse-btn>.icon-holder{cursor:pointer;width:12px}::ng-deep .gds-table tbody tr td.collapse-control>.collapse-btn>.icon-holder svg{width:12px;fill:var(--gds-sys-color-text-primary)}::ng-deep .gds-table tbody tr td.collapse-control>.collapse-btn>.icon-holder svg[name=angle-right]{width:9px}::ng-deep .gds-table{border-bottom:1px solid var(--gds-sys-color-base-600)}@media(max-width:35.98em){::ng-deep .gds-table.table-mobile{width:100%;table-layout:fixed;border-bottom:none}::ng-deep .gds-table.table-mobile thead{position:sticky;top:0;display:block;background:var(--gds-sys-color-base-800)}}@media(max-width:35.98em)and (hover:none)and (pointer:coarse){::ng-deep .gds-table.table-mobile thead{display:table-header-group}}@media(max-width:35.98em){::ng-deep .gds-table.table-mobile thead tr{display:flex;overflow:auto}::ng-deep .gds-table.table-mobile thead tr::-webkit-scrollbar{display:none}::ng-deep .gds-table.table-mobile thead tr th{flex:auto;text-align:left!important;white-space:nowrap}::ng-deep .gds-table.table-mobile tbody tr{display:flex;flex-direction:column;border-bottom:1px solid var(--gds-sys-color-base-600)}::ng-deep .gds-table.table-mobile tbody tr td{display:flex;justify-content:space-between;align-items:center;border-top:none!important}::ng-deep .gds-table.table-mobile tbody tr td:before{content:attr(data-label);font-weight:700}}::ng-deep .gds-table{width:100%;border-bottom:none}::ng-deep .gds-table .web-view{display:table-cell}::ng-deep .gds-table .mobile-view{display:none}::ng-deep .gds-table tr:hover td{background-color:var(--gds-sys-color-base-100)}::ng-deep .gds-table .gds-table__numeric-col{text-align:right}::ng-deep .gds-table thead tr th.gds-table__numeric-col .gds-table-sort{justify-content:end}::ng-deep .gds-table th button{background-color:#0000;border:0;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0;cursor:pointer}::ng-deep .gds-table tbody{border-bottom:var(--sg-table-border-width) solid var(--sg-table-border-color)}::ng-deep .gds-table td{cursor:pointer}::ng-deep .gds-table tfoot{border-top:1px solid;border-bottom:none;font-weight:var(--sg-table-row-expand-font-weight, 500)}::ng-deep .gds-table tfoot ::ng-deep td{padding:.6875rem .5rem}::ng-deep .gds-table th.column__check{height:vanilla-px-to-rem(32px);width:vanilla-px-to-rem(40px)}::ng-deep .gds-table th.column__check div{min-height:100%}::ng-deep .gds-table th.column__check input:checked+label:after{top:.6rem;display:inline}::ng-deep .gds-table th.column__check label{display:inline;padding:0}::ng-deep .gds-table th.column__check label:before{top:.55rem}::ng-deep .gds-table td.column__check{width:vanilla-px-to-rem(40px)}::ng-deep .gds-table td.column__check div{min-height:unset}::ng-deep .gds-table td.column__check label{padding:0}::ng-deep .gds-table td.column__check label:before{margin:0}::ng-deep .gds-table tr.row__expand{background-color:var(--gds-sys-color-base-100)}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap{display:flex;flex-wrap:nowrap}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap.no-sub-items{padding-left:1.5rem}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .chevron-field{width:1.5rem}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .chevron-field svg{transition:transform .3s ease}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .chevron-field[aria-expanded=true] svg{transform:rotate(-180deg)}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .gds-item-field-text{padding-left:.2rem}::ng-deep .gds-table tr.row__expand .gds-item-field-wrap .gds-item-field-text .gds-item-field-extra-label{font-weight:var(--sg-table-row-expand-font-weight-light, 400)}::ng-deep .gds-table tr.row__expand td{font-weight:var(--sg-table-row-expand-font-weight, 500)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}::ng-deep .gds-table label.gds-form-control{align-items:flex-start}::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox]:focus-visible):focus,::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}::ng-deep .gds-table label.gds-form-control input[type=checkbox]~i{margin-right:.75rem \\\"\\\";margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-sys-color-text-primary);position:relative;border-radius:var(--gds-sys-shape-corner-small);background-color:transparent;flex:0 0 auto;height:1rem;width:1rem}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-sys-color-base-900)}::ng-deep .gds-table label.gds-form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{background-color:var(--gds-sys-color-base-200)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:checked~i{background-color:var(--gds-sys-color-base-900)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-sys-color-base-900)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-sys-color-background-primary);box-sizing:border-box;border-left:none;transform:scale(1) rotate(0);opacity:1}::ng-deep .gds-table label.gds-form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem \\\"\\\"}::ng-deep .gds-table .is-invalid label.gds-form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){::ng-deep .gds-table label.gds-form-control.is-invalid{border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem \\\"\\\"}::ng-deep .gds-table .is-invalid label.gds-form-control.is-invalid{border:none;margin:0}}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~i,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~i{background:var(--gds-sys-color-base-300)!important;border-color:var(--gds-sys-color-text-disabled)!important;cursor:not-allowed}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~i::placeholder,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~i::placeholder{color:var(--gds-sys-color-text-disabled)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~i,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~i{box-shadow:inset 0 0 0 1px var(--border-disabled-color)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled:checked~i,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled:checked~i{background:var(--gds-sys-color-base-300)!important;border-color:var(--gds-sys-color-text-disabled)!important;cursor:not-allowed}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled:checked~i::placeholder,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--gds-sys-color-text-disabled)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled:checked~i,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled:checked~i{box-shadow:inset 0 0 0 1px var(--border-disabled-color)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled:checked~i:after,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~span,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~span{color:var(--gds-sys-color-text-disabled)!important;cursor:not-allowed}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:disabled~span::placeholder,::ng-deep .gds-table label.gds-form-control input[type=checkbox].disabled~span::placeholder{color:var(--gds-sys-color-text-disabled)}::ng-deep .gds-table label.gds-form-control input[type=checkbox]~i:after{box-sizing:border-box;content:\\\"\\\";opacity:0;position:absolute}::ng-deep .gds-table label.gds-form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-sys-color-text-inverted);border-left:3px solid var(--gds-sys-color-text-inverted);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}::ng-deep .gds-table label.gds-form-control input[type=checkbox]:checked~i:after{opacity:1}::ng-deep .gds-table .gds-field-checkbox-wrap .gds-form-control:has(input[type=checkbox]){padding-bottom:.75rem \\\"\\\";padding-top:.75rem \\\"\\\";padding-left:1rem \\\"\\\";padding-right:1rem \\\"\\\";border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}::ng-deep .gds-table .gds-field-checkbox-wrap .gds-form-control:has(input[type=checkbox]):has(input:disabled){cursor:not-allowed}::ng-deep .gds-table .gds-field-checkbox-wrap .gds-form-control:has(input[type=checkbox]){line-height:1.125rem;padding:0}::ng-deep .gds-table #thead-checkbox input[type=checkbox]~i{box-shadow:inset 0 0 0 1px var(--gds-sys-color-text-inverted);background-color:transparent}::ng-deep .gds-table #thead-checkbox input[type=checkbox]~i:after{box-sizing:border-box}::ng-deep .gds-table #thead-checkbox:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-white)}::ng-deep .gds-table #thead-checkbox input[type=checkbox]:hover:not(:checked)~i{box-shadow:inset 0 0 0 1px #ababab}::ng-deep .gds-table #thead-checkbox input[type=checkbox]:hover:not(:checked)~i:after{border-color:#ababab}::ng-deep .gds-table #thead-checkbox input[type=checkbox]:hover:checked~i{box-shadow:inset 0 0 0 1px #ababab}::ng-deep .gds-table #thead-checkbox input[type=checkbox]:hover:checked~i:after{border-color:#ababab}@media screen and (max-width:600px){.gds-table thead{display:none}.gds-table .row__expand td:not(:first-child){display:none}.gds-table .row__expand td{display:table-cell}.gds-table .web-view{display:none}.gds-table .mobile-view{display:flex;align-items:center}.gds-table .mobile-view .mobile-view-field-wrap{display:grid;grid-template-columns:1fr 1fr;width:100%}.gds-table .mobile-view .mobile-view-field-wrap .mobile-view-field{display:flex;flex-direction:column;padding-bottom:.3rem}.gds-table .mobile-view .mobile-view-field-wrap .mobile-view-field:nth-child(odd){justify-self:start;align-items:start;text-align:start}.gds-table .mobile-view .mobile-view-field-wrap .mobile-view-field:nth-child(2n){align-items:end;justify-self:end;text-align:end}.gds-table .mobile-view .nav-chevron-field{width:1.5rem;padding-left:.5rem}.gds-table .mobile-view .nav-chevron-field svg{transition:transform .3s ease}.gds-table .mobile-view .nav-chevron-field[aria-expanded=true] svg{transform:rotate(-90deg)}.gds-table .mobile-view .settings-field{width:1.5rem;padding:0 1rem}.gds-table .mobile-view .settings-field svg{transition:all .3s ease}.gds-table .mobile-view .settings-field:hover svg{fill:var(--gds-sys-color-blue-dark-2)}}\\n\"] }]\n }], propDecorators: { customTemplates: [{\n type: ContentChildren,\n args: [TableTemplateDirective, { descendants: true }]\n }], appendedRowsTemplate: [{\n type: ContentChild,\n args: [TableAppendableRowsTemplateDirective]\n }], customFooterTemplate: [{\n type: ContentChild,\n args: [TableFooterTemplateDirective]\n }], ngvRowClick: [{\n type: Output\n }], ngvRowSelect: [{\n type: Output\n }], ngvOrderBy: [{\n type: Output\n }], tableColumns: [{\n type: Input\n }], tableData: [{\n type: Input\n }], rowId: [{\n type: Input\n }], hasRowSpan: [{\n type: Input\n }], selectable: [{\n type: Input\n }], hiddenCheckboxRowIds: [{\n type: Input\n }], expandable: [{\n type: Input\n }], expandedByDefault: [{\n type: Input\n }], subItemsProp: [{\n type: Input\n }], allowLocalSort: [{\n type: Input\n }], thook: [{\n type: Input\n }], trThookFn: [{\n type: Input\n }], ariaLabelCheckboxTh: [{\n type: Input\n }], ariaLabelCheckboxTr: [{\n type: Input\n }], ariaLabelsOrderBy: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWxELE9BQU8sRUFDTCxvQ0FBb0MsRUFDcEMsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUN2QixNQUFNLG1CQUFtQixDQUFBO0FBTzFCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7Ozs7QUFFekUsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFBO0FBRXBCLFNBQVMsaUJBQWlCLENBQUMsUUFBdUI7SUFDaEQsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQTtJQUM5QyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDcEMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUMxQixDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUE7QUFDcEIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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akMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFNLENBQUMseUJBQXlCO1FBQ2hELE9BQU8sTUFBTSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEVBQVU7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDckMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQixDQUFDOzhHQWhaVSxjQUFjO2tHQUFkLGNBQWMsd3JCQWFYLG9DQUFvQyx1RkFPcEMsNEJBQTRCLHFFQWR6QixzQkFBc0IscUVDbEl6QyxpOVVBdVRBOzsyRkQzTGEsY0FBYztrQkFOMUIsU0FBUzsrQkFDSSxZQUFZLGNBR1YsS0FBSzs7c0JBUWxCLGVBQWU7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFOztzQkFPN0QsWUFBWTt1QkFBQyxvQ0FBb0M7O3NCQU9qRCxZQUFZO3VCQUFDLDRCQUE0Qjs7c0JBSXpDLE1BQU07O3NCQU1OLE1BQU07O3NCQUtOLE1BQU07O3NCQU1OLEtBQUs7O3NCQUdMLEtBQUs7O3NCQU9MLEtBQUs7O3NCQVNMLEtBQUs7O3NCQU1MLEtBQUs7O3NCQUtMLEtBQUs7O3NCQU1MLEtBQUs7O3NCQU1MLEtBQUs7O3NCQUtMLEtBQUs7O3NCQU1MLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQge1xuICBUYWJsZUFwcGVuZGFibGVSb3dzVGVtcGxhdGVEaXJlY3RpdmUsXG4gIFRhYmxlRm9vdGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gIFRhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXG59IGZyb20gJy4vdGFibGUuZGlyZWN0aXZlJ1xuaW1wb3J0IHtcbiAgYXJpYUxhYmVsc09yZGVyQnksXG4gIE9yZGVyQnksXG4gIFRhYmxlQ29sdW1uLFxuICBUYWJsZVJvdyxcbn0gZnJvbSAnLi90YWJsZS5tb2RlbHMnXG5pbXBvcnQgeyBvcmRlckJ5QXNjZW5kaW5nLCBvcmRlckJ5RGVzY2VuZGluZywgcGljayB9IGZyb20gJy4vdGFibGUudG9vbHMnXG5cbmxldCBzdGF0aWNJbml0SWQgPSAwXG5cbmZ1bmN0aW9uIG9iamVjdEZyb21FbnRyaWVzKGVudHJ5TWFwOiBNYXA8YW55LCBhbnk+KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gIGNvbnN0IGZyb21FbnRyaWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZW50cnlNYXApIHtcbiAgICBmcm9tRW50cmllc1trZXldID0gdmFsdWVcbiAgfVxuICByZXR1cm4gZnJvbUVudHJpZXNcbn1cblxuLyoqXG4gKiBBIHRhYmxlIGNvbXBvbmVudCB3aXRoIGJ1aWx0LWluIHNvcnRpbmcgYW5kIHNlbGVjdGluZyBmdW5jdGlvbmFsaXR5LlxuICogQnkgZGVmYXVsdCwgdGFibGUgY2VsbHMgKGkuZS4gYDx0ZD5gIGVsZW1lbnRzKSBhbmQgdGFibGUgaGVhZGVycyAoaS5lLiBgPHRoPmAgZWxlbWVudHMpIGFyZSBwb3B1bGF0ZWQgd2l0aCB0ZXh0IG9ubHkgdmFsdWVzLlxuICpcbiAqIFRvIGN1c3RvbWl6ZSB0aGUgY29udGVudHMgb2YgZWl0aGVyIHRoZSBgPHRkPmAgb3IgYDx0aD5gIGVsZW1lbnRzIChsaWtlIGFkZGluZyBjb2xvciwgaWNvbnMsIGZvcm0gZmllbGRzLCBleHRyYSBwYWRkaW5nIGV0Yy4pLCBwcm92aWRlXG4gKiB0aGUgY3VzdG9taXplZCBjb250ZW50IHdpdGhpbiBhIGA8bmctdGVtcGxhdGU+YC10YWcsIGFuZCBwbGFjZSB0aGUgbmctdGVtcGxhdGUgaW4gdGhlIGh0bWwgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZGluZyB0YWcgb2ZcbiAqIHRoZSBgPG5nZ3YtdGFibGU+YC4gQWRkIGEgYHRhYmxlQ29sdW1uYC1hdHRyaWJ1dGUgdG8gdGhlIGA8bmctdGVtcGxhdGU+YC1lbGVtZW50LCBhbmQgc2V0IHRoZSB2YWx1ZSB0byB0aGUgc3BlY2lmaWMgY29sdW1uIHByb3BlcnR5LlxuICogU2V0IGB0YWJsZUNvbHVtblRhcmdldGAgdG8gZWl0aGVyIGB0aGAsIGB0ZGAgb3IgYGJvdGhgIChkZWZhdWx0KSBkZXBlbmRpbmcgb24gdGFyZ2V0IGVsZW1lbnQgdHlwZS5cbiAqIFRoZSBlbnRpcmUgcm93IGZyb20gdGhlIGBASW5wdXQoKSB0YWJsZURhdGFgIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBjb250ZXh0IGAkaW1wbGljaXRgIHZhcmlhYmxlLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8IS0tIGZvciB0YWJsZSBjZWxscyBpLmUuIHRkLWVsZW1lbnRzIC0tPlxuICogPG5nLXRlbXBsYXRlIHRhYmxlQ29sdW1uPVwic3RhdHVzXCIgdGFibGVDb2x1bW5UYXJnZXQ9XCJ0ZFwiIGxldC1teURhdGFWYXI9XCIkaW1wbGljaXRcIiBsZXQtc3RhdHVzPVwiJGltcGxpY2l0LnN0YXR1c1wiPlxuICogIDwhLS0gbXkgY3VzdG9tIHN0YXR1cyBlbGVtZW50IC0tPlxuICogPC9uZy10ZW1wbGF0ZT5cbiAqXG4gKiBAZXhhbXBsZVxuICogPCEtLSBmb3IgdGFibGUgaGVhZGVycyBpLmUuIHRoLWVsZW1lbnRzIC0tPlxuICogPG5nLXRlbXBsYXRlIHRhYmxlQ29sdW1uPVwic3RhdHVzXCIgdGFibGVDb2x1bW5UYXJnZXQ9XCJ0aFwiIGxldC1teURhdGFWYXI9XCIkaW1wbGljaXRcIiBsZXQtc3RhdHVzPVwiJGltcGxpY2l0LnN0YXR1c1wiPlxuICogIDwhLS0gbXkgY3VzdG9tIHN0YXR1cyBlbGVtZW50IC0tPlxuICogPC9uZy10ZW1wbGF0ZT5cbiAqXG4gKiBJdCBpcyBwb3NzaWJsZSB0byBhZGQgY3VzdG9tIHJvd3MgdGhhdCBhcmUgYXBwZW5kZWQgYmVsb3cgZGF0YSByb3cuIFVzZSBgPG5nLXRlbXBsYXRlPmAtdGFnIGFuZCBwbGFjZSB0aGUgbmctdGVtcGxhdGUgaW4gdGhlIGh0bWwgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZGluZyB0YWcgb2ZcbiAqIHRoZSBgPG5nZ3YtdGFibGU+YC4gQWRkIGEgYHRhYmxlQXBwZW5kYWJsZVJvd3NgLWF0dHJpYnV0ZSB0byB0aGUgYDxuZy10ZW1wbGF0ZT5gLWVsZW1lbnQuIEFueSBgdHJgIGVsZW1lbnRzIHRoYXQgZXhpc3Qgd2l0aGluIGA8bmctdGVtcGxhdGUgdGFibGVBcHBlbmRhYmxlUm93cz5gIGFuZCBgPC9uZy10ZW1wbGF0ZT5gIHRhZ3Mgd2lsbCBiZSBwdXQgYmVsb3cgZGF0YSByb3cncyBgdHJgIGVsZW1lbnQgaW4gdGhlIHRhYmxlLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8IS0tIGN1c3RvbSBhcHBlbmRlZCByb3dzIC0tPlxuICogPG5nLXRlbXBsYXRlIHRhYmxlQXBwZW5kYWJsZVJvd3MgbGV0LW15RGF0YVZhcj1cIiRpbXBsaWNpdFwiIGxldC1zdGF0dXM9XCIkaW1wbGljaXQuc3RhdHVzXCI+XG4gKiAgPHRyPlxuICogICA8IS0tIGZpcnN0IHJvdydzIGNvbHVtbnMgLS0+XG4gKiAgPC90cj5cbiAqICA8IS0tIG1vcmUgcm93cyBpZiBuZWVkZWQgLS0+XG4gKiA8L25nLXRlbXBsYXRlPlxuICpcbiAqIElmIGN1c3RvbSBzdHlsaW5nIGlzIG5lZWRlZCBmb3IgZGF0YSByb3cgdGhhdCBoYXMgYXBwZW5kZWQgcm93cywgeW91IGNhbiB1c2UgZGF0YSBhdHRyaWJ1dGUgYGRhdGEtaGFzcm93c3BhbmAgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBkYXRhIHJvdyB3aXRob3V0IGFwcGVuZGVkIHJvd3MuXG4gKiBZb3UgY2FuIHBhc3MgeW91ciBvd24gY3VzdG9tIG1ldGhvZCB3aXRoIGNvbmRpdGlvbmFsIGxvZ2ljIHRvIGRlZmluZSB3aGF0IHZhbHVlIHdpbGwgYmUgcGFzc2VkIHRvIGRhdGEtaGFzcm93c3Bhbi5cbiAqIEluIGFkZGl0aW9uLCBoYXNSb3dTcGFuIGZ1bmN0aW9uIGFjY2VwdHMgaXRlbSBmcm9tIGBASW5wdXQoKSB0YWJsZURhdGFgIGFzIGFyZ3VtZW50IHdoaWNoIGlzIG9mIHRoZSBzYW1lIHR5cGUgYXMgdmFsdWUgcGFzc2VkIHRvIGNvbnRleHQgYCRpbXBsaWNpdGAgdmFyaWFibGUuXG4gKiBJTVBPUlRBTlQ6IHVzZSBhcnJvdyBmdW5jdGlvbiBzdHlsZSBmb3IgZGVmaW5pbmcgZnVuY3Rpb24gaW5zaWRlIGNvbXBvbmVudCwgaS5lLiBgaGFzUm93U3BhbiA9ICh2YWx1ZSkgPT4gb3V0cHV0O2AuIElmIHJlZ3VsYXIgZnVuY3Rpb24gd2lsbCBiZSBkZWZpbmVkLCBpLmUuIGBoYXNSb3dTcGFuKHZhbHVlKSB7IHJldHVybiBvdXRwdXQ7IH1gLCBiaW5kaW5nIHdpbGwgbm90IHdvcmsuXG4gKlxuICogQGV4YW1wbGVcbiAqIDwhLS0gaW5zaWRlIGNvbXBvbmVudFxuICogY2xhc3MgQ3VzdG9tQ29tcG9uZW50IHtcbiAqICBjdXN0b21IYXNSb3dTcGFuRnVuY3Rpb24gPSAoaXRlbTogQ3VzdG9tRGF0YVR5cGUpID0+IGl0ZW0uYXBwZW5kZWRSb3dzRGF0YS5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlO1xuICogfVxuICogLS0+XG4gKiA8IS0tIGluc2lkZSBzdHlsZXNoZWV0c1xuICogW2RhdGEtaGFzcm93c3Bhbj1cInRydWVcIl0ge1xuICogIGNvbG9yOiBibHVlO1xuICogfVxuICogLmFwcGVuZGVkLXJvdyB7XG4gKiAgY29sb3I6IGJsdWU7XG4gKiB9XG4gKiAtLT5cbiAqIDxuZ2d2LXRhYmxlIFtoYXNSb3dTcGFuXT1cImN1c3RvbUhhc1Jvd1NwYW5GdW5jdGlvblwiPlxuICogIDwhLS0gY3VzdG9tIGFwcGVuZGVkIHJvd3MgLS0+XG4gKiAgPG5nLXRlbXBsYXRlIHRhYmxlQXBwZW5kYWJsZVJvd3MgbGV0LWFwcGVuZGVkUm93c0RhdGE9XCIkaW1wbGljaXQuYXBwZW5kZWRSb3dzRGF0YVwiPlxuICogICA8dHIgKm5nRm9yPVwibGV0IGFwcGVuZGVkUm93SXRlbSBvZiBhcHBlbmRlZFJvd3NEYXRhXCIgY2xhc3M9XCJhcHBlbmRlZC1yb3dcIj5cbiAqICAgIDx0ZD57eyBhcHBlbmRlZFJvd0l0ZW0gfX08L3RkPlxuICogICAgPCEtLSBvdGhlciByb3cncyBjb2x1bW5zIC0tPlxuICogICA8L3RyPlxuICogIDwvbmctdGVtcGxhdGU+XG4gKiA8L25nZ3YtdGFibGU+XG4gKlxuICogSW4gYWRkaXRpb24sIGl0IGlzIHBvc3NpYmxlIHRvIGFkZCBmb290ZXIgZm9yIHRoZSB0YWJsZS4gU2ltaWxhcmx5IHRvIGFkZGluZyBjdXN0b20gY29sdW1ucywgdXNlIGA8bmctdGVtcGxhdGU+YC10YWcgYW5kIHBsYWNlIHRoZSBuZy10ZW1wbGF0ZSBpbiB0aGUgaHRtbCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kaW5nIHRhZyBvZlxuICogdGhlIGA8bmdndi10YWJsZT5gLiBBZGQgYSBgdGFibGVGb290ZXJgLWF0dHJpYnV0ZSB0byB0aGUgYDxuZy10ZW1wbGF0ZT5gLWVsZW1lbnQuIEFueSBlbGVtZW50cyB0aGF0IGV4aXN0IHdpdGhpbiBgPG5nLXRlbXBsYXRlIHRhYmxlRm9vdGVyPmAgYW5kIGA8L25nLXRlbXBsYXRlPmAgdGFncyB3aWxsIGJlIHB1dCB0byB0Zm9vdCBlbGVtZW50IGluc2lkZSB0aGUgdGFibGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIDwhLS0gZm9yIHRhYmxlIGZvb3RlciBpLmUuIHRmb290LWVsZW1lbnQgLS0+XG4gKiA8bmctdGVtcGxhdGUgdGFibGVGb290ZXI+XG4gKiAgPHRyPlxuICogICA8IS0tIGZpcnN0IHJvdydzIGNvbHVtbnMgLS0+XG4gKiAgPC90cj5cbiAqICA8IS0tIG1vcmUgcm93cyBpZiBuZWVkZWQgLS0+XG4gKiA8L25nLXRlbXBsYXRlPlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ2d2LXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8VCBleHRlbmRzIFRhYmxlUm93PlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEN1c3RvbSB0ZW1wbGF0ZXMgZGVmaW5lZCBpbiB0aGUgaHRtbC5cbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBjdXN0b21UZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8VGFibGVUZW1wbGF0ZURpcmVjdGl2ZTxrZXlvZiBUPj5cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEN1c3RvbSBhcHBlbmRlZCByb3dzIHRlbXBsYXRlIGRlZmluZWQgaW4gdGhlIGh0bWwuXG4gICAqL1xuICBAQ29udGVudENoaWxkKFRhYmxlQXBwZW5kYWJsZVJvd3NUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgYXBwZW5kZWRSb3dzVGVtcGxhdGUhOiBUYWJsZUFwcGVuZGFibGVSb3dzVGVtcGxhdGVEaXJlY3RpdmVcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEN1c3RvbSBmb290ZXIgdGVtcGxhdGUgZGVmaW5lZCBpbiB0aGUgaHRtbC5cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoVGFibGVGb290ZXJUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgY3VzdG9tRm9vdGVyVGVtcGxhdGUhOiBUYWJsZUZvb3RlclRlbXBsYXRlRGlyZWN0aXZlXG5cbiAgLyoqIEVtaXRzIHRoZSB0YWJsZSByb3cgdGhhdCB3YXMgY2xpY2tlZC4gV29ya3Mgb24gYWxsIGNvbHVtbnMgaWYgbm90IHByZXZlbnREZWZhdWx0RW1pdCBpcyBzZXQgZm9yIHRoYXQgY29sdW1uLiAqL1xuICBAT3V0cHV0KCkgbmd2Um93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFQgfCBhbnk+KClcblxuICAvKipcbiAgICogRW1pdHMgY3VycmVudGx5IHNlbGVjdGVkIGFuZCBkZXNlbGVjdGVkIGl0ZW1zIGluIHRoZSB0YWJsZSBhcyBrZXktdmFsdWUgcGFpcnMuXG4gICAqIFVzZXMgZWFjaCBpdGVtYHMgaXRlbUlkIGFzIGtleSwgYW5kIGEgYm9vbGVhbiB2YWx1ZSB0byBkZXNjcmliZSBzZWxlY3RlZCBzdGF0dXMuXG4gICAqL1xuICBAT3V0cHV0KCkgbmd2Um93U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKVxuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB0byBzaWduYWwgdGhhdCB0aGUgdGFibGUgc2hvdWxkIGJlIHJlb3JkZXJlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBuZ3ZPcmRlckJ5ID0gbmV3IEV2ZW50RW1pdHRlcjxPcmRlckJ5PFQ+PigpXG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGl0ZW1zIGRlc2NyaWJpbmcgaG93IHRoZSB0YWJsZSBoZWFkZXIgc2hvdWxkIGJlIHJlbmRlcmVkLFxuICAgKiB0b2dldGhlciB3aXRoIGluc3RydWN0aW9ucyBmb3IgaG93IGVhY2ggcm93IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhhdCBjb2x1bW4uXG4gICAqL1xuICBASW5wdXQoKSB0YWJsZUNvbHVtbnMhOiBUYWJsZUNvbHVtbjxUPltdXG5cbiAgLyoqIERhdGEgYXJyYXkgdG8gZGlzcGxheSBkYXRhIGluIHRoZSB0YWJsZS4gRWFjaCBpdGVtIDxUPiBpbiB0aGUgYXJyYXkgcmVwcmVzZW50cyBhIHJvdyBpbiB0aGUgdGFibGUuICovXG4gIEBJbnB1dCgpIHRhYmxlRGF0YSE6IFRbXVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBuYW1lIHVzZWQgdG8gdW5pcXVlbHkgZGVzY3JpYmUgZWFjaCBpdGVtIChpLmUuIHJvdykgaW4gdGhlIGRhdGEgdGFibGUuXG4gICAqIERlZmF1bHRzIHRvIFxcJ2lkXFwnLlxuICAgKiBJcyByZXF1aXJlZCBpZiBzZWxlY3RhYmxlIGlzIHRydWUuXG4gICAqL1xuICBASW5wdXQoKSByb3dJZCA9ICdpZCdcblxuICAvKipcbiAgICogRnVuY3Rpb24ncyByZXR1cm4gdmFsdWUgaXMgdXNlZCBmb3IgZGF0YSBhdHRyaWJ1dGUgXFwnZGF0YS1oYXNyb3dzcGFuXFwnLlxuICAgKiBJZiBjdXN0b20gaGFzUm93U3BhbiBmdW5jdGlvbiBpcyBub3QgcGFzc2VkIHRvIHRoZSB0YWJsZSxcbiAgICogdGhlbiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdW5kZWZpbmVkIHZhbHVlIGJ5IGRlZmF1bHQgd2hpY2ggcmVzdWx0cyBpbiBcXCdkYXRhLWhhc3Jvd3NwYW5cXCcgYXR0cmlidXRlIGJlaW5nIG9taXR0ZWQgaW4gaHRtbFxuICAgKiAoYW5ndWxhciBvbWl0cyBhdHRyaWJ1dGVzIHRoYXQgY29udGFpbiBudWxsIG9yIHVuZGVmaW5lZCB2YWx1ZSkuXG4gICAqIElNUE9SVEFOVDogdXNlIGFycm93IGZ1bmN0aW9uIHN0eWxlIGZvciBkZWZpbmluZyBmdW5jdGlvbiBpbnNpZGUgY29tcG9uZW50LCBpLmUuIGBoYXNSb3dTcGFuID0gKHZhbHVlKSA9PiBvdXRwdXQ7YC4gSWYgcmVndWxhciBmdW5jdGlvbiB3aWxsIGJlIGRlZmluZWQsIGkuZS4gYGhhc1Jvd1NwYW4odmFsdWUpIHsgcmV0dXJuIG91dHB1dDsgfWAsIGJpbmRpbmcgd2lsbCBub3Qgd29yay5cbiAgICovXG4gIEBJbnB1dCgpIGhhc1Jvd1NwYW46IChpdGVtOiBUKSA9PiBhbnkgPSAoXykgPT4gdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIGxlZnQtc2lkZSBjaGVja2JveCBjb2x1bW4uXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3RhYmxlID0gdHJ1ZVxuXG4gIC8qKlxuICAgKiBBcnJheSBvZiByb3cgaWQncyAoYXMgZGVmaW5lZCBieSByb3dJZCBwcm9wZXJ0eSkgdGhhdCBzaG91bGQgbm90IGhhdmUgYSBjaGVja2JveCBldmVuIGlmIHNlbGVjdGFibGUgaXMgdHJ1ZS5cbiAgICovXG4gIEBJbnB1dCgpIGhpZGRlbkNoZWNrYm94Um93SWRzOiBzdHJpbmdbXSA9IFtdXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZW5hYmxlL2Rpc2FibGUgZXhwYW5kYWJsZSByb3dzLlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpIGV4cGFuZGFibGUgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGVuYWJsZS9kaXNhYmxlIHRoZSByaWdodC1zaWRlIGV4cGFuZCBpY29uIGNvbHVtbi5cbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIEBJbnB1dCgpIGV4cGFuZGVkQnlEZWZhdWx0ID0gdHJ1ZVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBuYW1lIHVzZWQgdG8gZGVzY3JpYmUgdGhlIHN1Ykl0ZW1zIGluIHRoZSBkYXRhIHRhYmxlLlxuICAgKi9cbiAgQElucHV0KCkgc3ViSXRlbXNQcm9wID0gJ3N1Ykl0ZW1zJ1xuXG4gIC8qKlxuICAgKiBBbGxvdyBuZ2d2LXRhYmxlIHRvIGF0dGVtcHQgc29ydGluZyB0aGUgZGF0YSBpbiB0aGUgdGFibGUuIE5vdCByZWNvbW1lbmRlZCBpZiBvbmx5IGEgc3Vic2V0IGlzIGxvYWRlZCBvciBpZiB0aGUgZGF0YXNldCBpcyB2ZXJ5IGxhcmdlLlxuICAgKiBEaXNhYmxlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dMb2NhbFNvcnQgPSBmYWxzZVxuXG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASW5wdXQoKSB0aG9vayA9ICd0YWJsZS1zZWxlY3QtYWxsJ1xuXG4gIC8qKiBGdW5jdGlvbiB0byBvdmVyd3JpdGUgZ2VuZXJhdGVkIHRob29rIGZvciBlYWNoIHJvdy4gKi9cbiAgQElucHV0KCkgdHJUaG9va0ZuPzogKGl0ZW06IFQpID0+IHN0cmluZ1xuXG4gIC8qKiBBcmlhIGxhYmVsIGZvciB0aGUgY2hlY2tib3ggaW4gdGhlIHRhYmxlIGhlYWRlciAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDaGVja2JveFRoPzogc3RyaW5nXG5cbiAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSBjaGVja2JveCBpbiB0aGUgdGFibGUgaGVhZGVyICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbENoZWNrYm94VHI/OiBzdHJpbmdcblxuICAvKiogQXJpYSBsYWJlbHMgZm9yIHNvcnRpbmcgaW4gdGhlIHRhYmxlIGhlYWRlciAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxzT3JkZXJCeT86IGFyaWFMYWJlbHNPcmRlckJ5XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBJbnRlcm5hbCBkYXRhIHN0cnVjdHVyZSB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgYWRkZWQgY29udGVudCB0ZW1wbGF0ZXMgdXNlZCBpbiB0ZCBlbGVtZW50cy5cbiAgICovXG4gIGN1c3RvbVJvd1RlbXBsYXRlcyA9IG5ldyBNYXA8a2V5b2YgVCwgVGVtcGxhdGVSZWY8YW55Pj4oKVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogSW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmUgdXNlZCB0byBrZWVwIHRyYWNrIG9mIGFkZGVkIGNvbnRlbnQgdGVtcGxhdGVzIHVzZWQgaW4gdGggZWxlbWVudHMuXG4gICAqL1xuICBjdXN0b21IZWFkZXJUZW1wbGF0ZXMgPSBuZXcgTWFwPGtleW9mIFQsIFRlbXBsYXRlUmVmPGFueT4+KClcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEludGVybmFsIGRhdGEgc3RydWN0dXJlIHVzZWQgdG8gaG9sZCBjdXN0b20gYXBwZW5kZWQgcm93cyBpLmUuIHRyIGVsZW1lbnRzIChyb3dzKS5cbiAgICovXG4gIGFwcGVuZGVkUm93c1RlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55PlxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogSW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmUgdXNlZCB0byBob2xkIHRmb290IGVsZW1lbnQgY2hpbGRyZW4gaS5lLiB0ciBlbGVtZW50cyAocm93cykuXG4gICAqL1xuICBjdXN0b21Gb290ZXJUZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT5cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEluY3JlbWVudGFsIGlkLlxuICAgKi9cbiAgaW5pdElkITogbnVtYmVyXG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBGb3JtR3JvdXAgY29udGFpbmluZyBhbGwgcm93IGlkXFwncyBhcyBjb250cm9scywgYW5kIHdoZXRoZXIgdGhlc2UgYXJlIHNlbGVjdGVkIG9yIG5vdCBhcyB2YWx1ZXMuXG4gICAqL1xuICByb3dTZWxlY3RvcnM6IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSlcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIE1hc3RlciBzZWxlY3RvciBmb3Igc2VsZWN0aW5nIG9yIGRlc2VsZWN0aW5nIGFsbCByb3cgc2VsZWN0b3JzLlxuICAgKi9cbiAgZ3JvdXBTZWxlY3RvcjogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChmYWxzZSlcblxuICBwcml2YXRlIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdXG4gIHByaXZhdGUgc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvLyBVcGRhdGUgc2VsZWN0YWJsZSBvciBleHBhbmRhYmxlIHJvd3MgaWYgdGFibGUgZGF0YSBvciBzZXR0aW5ncyBjaGFuZ2VcbiAgICBpZiAoXG4gICAgICAodGhpcy5zZWxlY3RhYmxlIHx8IHRoaXMuZXhwYW5kYWJsZSkgJiYgY2hhbmdlcy50YWJsZURhdGE/LmN1cnJlbnRWYWx1ZSB8fFxuICAgICAgKGNoYW5nZXMuc2VsZWN0YWJsZT8uY3VycmVudFZhbHVlIHx8IGNoYW5nZXMuZXhwYW5kYWJsZT8uY3VycmVudFZhbHVlKSAmJiB0aGlzLnRhYmxlRGF0YVxuICAgICkge1xuICAgICAgY29uc3Qgd2FzQ2hhbmdlZCA9IHRoaXMucmVnaXN0ZXJTZWxlY3RhYmxlUm93cyhcbiAgICAgICAgY2hhbmdlcy50YWJsZURhdGEuY3VycmVudFZhbHVlLFxuICAgICAgKVxuICAgICAgaWYgKHdhc0NoYW5nZWQgJiYgIXRoaXMuc3Vicy5sZW5ndGgpIHtcbiAgICAgICAgLy8gZmlyc3QgdGltZSB0aGlzIGlzIHJ1blxuICAgICAgICBjb25zdCBncm91cFNlbGVjdG9yU3ViID0gdGhpcy5ncm91cFZhbHVlU3Vic2NyaXB0aW9uXG4gICAgICAgIGNvbnN0IHJvd1NlbGVjdG9yU3ViID0gdGhpcy5yb3dWYWx1ZVN1YnNjcmlwdGlvblxuICAgICAgICB0aGlzLnN1YnMucHVzaChncm91cFNlbGVjdG9yU3ViLCByb3dTZWxlY3RvclN1YilcbiAgICAgIH0gZWxzZSBpZiAod2FzQ2hhbmdlZCkge1xuICAgICAgICB0aGlzLnJvd1NlbGVjdG9ycy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzb3J0IGFueSBpbmNvbWluZyBkYXRhXG4gICAgaWYgKFxuICAgICAgdGhpcy5hbGxvd0xvY2FsU29ydCAmJlxuICAgICAgKGNoYW5nZXMudGFibGVEYXRhPy5jdXJyZW50VmFsdWUgfHwgY2hhbmdlcy50YWJsZUNvbHVtbnM/LmN1cnJlbnRWYWx1ZSlcbiAgICApIHtcbiAgICAgIGNvbnN0IG9yZGVyZWRCeUNvbHVtbjogVGFibGVDb2x1bW48VD4gfCB1bmRlZmluZWQgPVxuICAgICAgICB0aGlzLnRhYmxlQ29sdW1ucz8uZmluZCgoZWwpID0+IGVsLm9yZGVyICE9PSB1bmRlZmluZWQpXG4gICAgICBpZiAob3JkZXJlZEJ5Q29sdW1uKSB0aGlzLnNvcnRJdGVtc0J5KG9yZGVyZWRCeUNvbHVtbilcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRJZCA9IHN0YXRpY0luaXRJZCsrXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgLy8gaWYgYW55IGN1c3RvbSB0ZW1wbGF0ZXMgd2VyZSBkZWZpbmVkIGluIHRoZSB0ZW1wbGF0ZVxuICAgIGlmICh0aGlzLmN1c3RvbVRlbXBsYXRlcy5sZW5ndGgpIHtcbiAgICAgIC8vIGZvciBlYWNoIHRlbXBsYXRlIGZvdW5kXG4gICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlcy5tYXAoKHRhYmxlVGVtcGxhdGUpID0+IHtcbiAgICAgICAgLy8gaWYgdGFyZ2V0IGlzIGVpdGhlciAndGQnIG9yICdib3RoJ1xuICAgICAgICBpZiAoXG4gICAgICAgICAgWyd0ZCcsICdib3RoJ10uaW5jbHVkZXModGFibGVUZW1wbGF0ZS50YWJsZUNvbHVtblRhcmdldCBhcyBzdHJpbmcpXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIGFkZCB0byBjdXN0b20gcm93IHRlbXBsYXRlc1xuICAgICAgICAgIHRoaXMuY3VzdG9tUm93VGVtcGxhdGVzLnNldChcbiAgICAgICAgICAgIHRhYmxlVGVtcGxhdGUudGFibGVDb2x1bW4sXG4gICAgICAgICAgICB0YWJsZVRlbXBsYXRlLnRlbXBsYXRlUmVmLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0YXJnZXQgaXMgZWl0aGVyICd0aCcgb3IgJ2JvdGgnXG4gICAgICAgIGlmIChcbiAgICAgICAgICBbJ3RoJywgJ2JvdGgnXS5pbmNsdWRlcyh0YWJsZVRlbXBsYXRlLnRhYmxlQ29sdW1uVGFyZ2V0IGFzIHN0cmluZylcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gYWRkIHRvIGN1c3RvbSBoZWFkZXIgdGVtcGxhdGVzXG4gICAgICAgICAgdGhpcy5jdXN0b21IZWFkZXJUZW1wbGF0ZXMuc2V0KFxuICAgICAgICAgICAgdGFibGVUZW1wbGF0ZS50YWJsZUNvbHVtbixcbiAgICAgICAgICAgIHRhYmxlVGVtcGxhdGUudGVtcGxhdGVSZWYsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIGlmIGFwcGVuZGVkIHJvd3MnIHRlbXBsYXRlIGlzIGRlZmluZWQgaW4gdGhlIHRlbXBsYXRlXG4gICAgaWYgKHRoaXMuYXBwZW5kZWRSb3dzVGVtcGxhdGUpIHtcbiAgICAgIC8vIHNldCB0ZW1wbGF0ZVJlZiBvZiBhcHBlbmRlZCByb3dzJyB0ZW1wbGF0ZSB0byB2YXJpYWJsZVxuICAgICAgdGhpcy5hcHBlbmRlZFJvd3NUZW1wbGF0ZVJlZiA9IHRoaXMuYXBwZW5kZWRSb3dzVGVtcGxhdGUudGVtcGxhdGVSZWZcbiAgICB9XG5cbiAgICAvLyBpZiBjdXN0b20gZm9vdGVyIHRlbXBsYXRlIGlzIGRlZmluZWQgaW4gdGhlIHRlbXBsYXRlXG4gICAgaWYgKHRoaXMuY3VzdG9tRm9vdGVyVGVtcGxhdGUpIHtcbiAgICAgIC8vIHNldCB0ZW1wbGF0ZVJlZiBvZiB0YWJsZSBmb290ZXIgdG8gdmFyaWFibGVcbiAgICAgIHRoaXMuY3VzdG9tRm9vdGVyVGVtcGxhdGVSZWYgPSB0aGlzLmN1c3RvbUZvb3RlclRlbXBsYXRlLnRlbXBsYXRlUmVmXG4gICAgfVxuXG4gICAgLy8gaWYgZXhwYW5kZWRCeURlZmF1bHQgaXMgdHJ1ZSwgdGhlbiBleHBhbmQgYWxsIHJvd3NcbiAgICBpZiAodGhpcy5leHBhbmRlZEJ5RGVmYXVsdCAmJiB0aGlzLmV4cGFuZGFibGUgJiYgdGhpcy50YWJsZURhdGEpIHtcbiAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVSb3dUb0V4cGFuZChpdGVtW3RoaXMucm93SWRdKVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogUmV0dXJucyBhIHN1YnNjcmlwdGlvbiB0byB0aGUgbWFzdGVyIHNlbGVjdG9yIGNvbnRyb2wgdGhhdCBlaXRoZXIgc2VsZWN0cyBvciBkZXNlbGVjdHMgYWxsIHJvdyBjb250cm9scy5cbiAgICovXG4gIGdldCBncm91cFZhbHVlU3Vic2NyaXB0aW9uKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBTZWxlY3Rvci52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RNYXAgPSBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKHRoaXMucm93U2VsZWN0b3JzVmFsdWUpKVxuICAgICAgICBzZWxlY3RNYXAuZm9yRWFjaCgoXywga2V5KSA9PiBzZWxlY3RNYXAuc2V0KGtleSwgdmFsdWUpKVxuICAgICAgICBjb25zdCBwYXRjaFZhbHVlID0gb2JqZWN0RnJvbUVudHJpZXMoc2VsZWN0TWFwKVxuICAgICAgICB0aGlzLnJvd1NlbGVjdG9ycy5wYXRjaFZhbHVlKHBhdGNoVmFsdWUpXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFJldHVybnMgYSBzdWJzY3JpcHRpb24gdG8gYWxsIGluZGl2aWR1YWwgcm93IHNlbGVjdG9ycyBhbmQgdXBkYXRlIHRoZSBtYXN0ZXIgc2VsZWN0b3IgaWYgYWxsIGFyZSBzZWxlY3RlZC5cbiAgICovXG4gIGdldCByb3dWYWx1ZVN1YnNjcmlwdGlvbigpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnJvd1NlbGVjdG9ycy52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgZXZlbnRzIGFuZCB0byB3YWl0IGZvciBhbGwgc3ViIGNvbnRyb2xzIHRvIHVwZGF0ZVxuICAgICAgICBtYXAoKHZhbDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pID0+IHtcbiAgICAgICAgICAvLyBnZXQgYSBmaWx0ZXJlZCBhcnJheSBvZiBrZXlzIGZvciBhbGwgcm93cyB0aGF0IGFyZSBzZWxlY3RlZFxuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gT2JqZWN0LmtleXModmFsKS5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbFtrZXldID09PSB0cnVlICYmIHRoaXMucm93U2VsZWN0b3JzLmdldChrZXkpPy5lbmFibGVkXG4gICAgICAgICAgfSlcbiAgICAgICAgICAvLyByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIG9ubHkgdGhlIGZpbHRlcmVkIGtleXNcbiAgICAgICAgICByZXR1cm4gcGljayhzZWxlY3RlZCwgdmFsKVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodmFsdWU6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIC8vIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQga2V5cyBjb21wYXJlZCB0byB0aGUgdG90YWwgbnVtYmVyIG9mIGtleXMgYXZhaWxhYmxlXG4gICAgICAgICAgY29uc3QgbnVtYmVyT2ZTZWxlY3RlZCA9IE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGhcbiAgICAgICAgICBjb25zdCBhbGxTZWxlY3RlZDogYm9vbGVhbiA9XG4gICAgICAgICAgICBudW1iZXJPZlNlbGVjdGVkID4gMFxuICAgICAgICAgICAgICA/IG51bWJlck9mU2VsZWN0ZWQgPT09IE9iamVjdC5rZXlzKHRoaXMucm93U2VsZWN0b3JzVmFsdWUpLmxlbmd0aFxuICAgICAgICAgICAgICA6IGZhbHNlXG4gICAgICAgICAgLy8gdXBkYXRlIHRoZSBtYXN0ZXIgc2VsZWN0b3IgY29udHJvbFxuICAgICAgICAgIHRoaXMuZ3JvdXBTZWxlY3Rvci5zZXRWYWx1ZShhbGxTZWxlY3RlZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXG4gICAgICAgICAgLy8gdXBkYXRlIHRoZSBhcnJheSBvZiBjdXJyZW50bHkgc2VsZWN0ZWQgaWQnc1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBPYmplY3Qua2V5cyh2YWx1ZSlcbiAgICAgICAgICAvLyBhbmQgZW1pdCB0aGUgdXBkYXRlZCB2YWx1ZVxuICAgICAgICAgIHRoaXMubmd2Um93U2VsZWN0LmVtaXQodGhpcy5zZWxlY3RlZClcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFJlZ2lzdGVycyBvciBkaXNhYmxlcyByb3cgY29udHJvbHMgZm9yIG5ldyBvciByZW1vdmVkIHJvd3MuXG4gICAqL1xuICByZWdpc3RlclNlbGVjdGFibGVSb3dzKHRhYmxlRGF0YTogYW55W10pOiBib29sZWFuIHtcbiAgICBpZiAoIXRhYmxlRGF0YSkgcmV0dXJuIGZhbHNlXG4gICAgLy8gQXJyYXkgY29udGFpbmluZyBvbmx5IHRoZSBpZCdzIGZvciBlYWNoIHJvd1xuICAgIGNvbnN0IGRhdGFSb3dJZHM6IHN0cmluZ1tdID0gdGFibGVEYXRhLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhW3RoaXMucm93SWRdKVxuXG4gICAgLy8gQXJyYXkgY29udGFpbmluZyB0aGUgaWQncyB0aGF0IGhhdmUgcmVnaXN0ZXJlZCBjb250cm9sc1xuICAgIGNvbnN0IGN1cnJlbnRJZHM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXModGhpcy5yb3dTZWxlY3RvcnNWYWx1ZSlcblxuICAgIC8vIEFycmF5IGNvbnRhaW5pbmcgYWxsIGlkcyB0aGF0IGxhY2tzIGEgY29ycmVzcG9uZGluZyBjb250cm9sIChpLmUuIG5ldyByb3dzKVxuICAgIGNvbnN0IG5ld0lkczogc3RyaW5nW10gPSBkYXRhUm93SWRzLmZpbHRlcihcbiAgICAgIChpZCkgPT4gY3VycmVudElkcy5pbmRleE9mKGlkKSA9PT0gLTEsXG4gICAgKVxuXG4gICAgLy8gQXJyYXkgY29udGFpbmluZyBhbGwgaWRzIHRoYXQgaGFzIGEgY29udHJvbCBidXQgaXMgbm8gbG9uZ2VyIGluIHRoZSBkYXRhIHNldCAoaS5lLiByZW1vdmVkIHJvd3MpXG4gICAgY29uc3QgcmVtb3ZlZElkczogc3RyaW5nW10gPSBjdXJyZW50SWRzLmZpbHRlcihcbiAgICAgIChpZCkgPT4gZGF0YVJvd0lkcy5pbmRleE9mKGlkKSA9PT0gLTEsXG4gICAgKVxuXG4gICAgLy8gUmVnaXN0ZXIgbmV3IGNvbnRyb2xzIGZvciBhZGRlZCByb3dzXG4gICAgaWYgKG5ld0lkcy5sZW5ndGgpIHtcbiAgICAgIG5ld0lkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICBjb25zdCBjdHJsID0gdGhpcy5yb3dTZWxlY3RvcnMucmVnaXN0ZXJDb250cm9sKFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgICApXG4gICAgICAgIGlmIChjdHJsLmRpc2FibGVkKSBjdHJsLmVuYWJsZSgpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIFNldCBhbHJlYWR5IHJlZ2lzdGVyZWQgY29udHJvbHMgdG8gZGlzYWJsZWQgZm9yIHJlbW92ZWQgcm93c1xuICAgIGlmIChyZW1vdmVkSWRzLmxlbmd0aClcbiAgICAgIHJlbW92ZWRJZHMuZm9yRWFjaCgoaWQpID0+IHRoaXMucm93U2VsZWN0b3JzLmdldChpZCk/LmRpc2FibGUoKSlcblxuICAgIHJldHVybiBuZXdJZHMubGVuZ3RoID4gMCB8fCByZW1vdmVkSWRzLmxlbmd0aCA+IDBcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogUmV0dXJucyBhbGwgZW5hYmxlZCB2YWx1ZXMgdW5sZXNzIGFsbCByb3dzIGFyZSBkaXNhYmxlZC5cbiAgICovXG4gIGdldCByb3dTZWxlY3RvcnNWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJvd1NlbGVjdG9ycy5lbmFibGVkID8gdGhpcy5yb3dTZWxlY3RvcnMudmFsdWUgOiB7fVxuICB9XG5cbiAgdG9nZ2xlU29ydE9yZGVyV2l0aFNwYWNlKGV2ZW50OiBhbnksIGNvbHVtbjogVGFibGVDb2x1bW48VD4pIHtcbiAgICBpZiAoY29sdW1uLnNvcnRhYmxlKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB0aGlzLnRvZ2dsZVNvcnRPcmRlcihjb2x1bW4pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBTd2l0Y2hlcyBzb3J0aW5nIG9yZGVyIGJldHdlZW4gYXNjZW5kaW5nIGFuZCBkZXNjZW5kaW5nIG9yZGVyIGZvciBhIGNvbHVtbi5cbiAgICogQHBhcmFtIGNvbHVtbiB0aGUgY29sdW1uIHRvIHNvcnQgcm93cyBhZnRlci5cbiAgICovXG4gIHRvZ2dsZVNvcnRPcmRlcihjb2x1bW46IFRhYmxlQ29sdW1uPFQ+KSB7XG4gICAgLy8gY2hlY2sgaWYgdGhlIHRhYmxlIGlzIGFscmVhZHkgc29ydGVkIGJ5IGFub3RoZXIgY29sdW1uIHRoYW4gdGhlIG9uZSBwcm92aWRlZFxuICAgIGNvbnN0IGN1cnJlbnRseU9yZGVyZWRCeSA9IHRoaXMudGFibGVDb2x1bW5zPy5maW5kKFxuICAgICAgKGVsKSA9PiBlbCAhPT0gY29sdW1uICYmIGVsLm9yZGVyICE9PSB1bmRlZmluZWQsXG4gICAgKVxuICAgIGlmIChjdXJyZW50bHlPcmRlcmVkQnkpIGRlbGV0ZSBjdXJyZW50bHlPcmRlcmVkQnkub3JkZXJcbiAgICBjb2x1bW4ub3JkZXIgPSBjb2x1bW4ub3JkZXIgPT09ICdkZXNjJyA/ICdhc2MnIDogJ2Rlc2MnXG4gICAgdGhpcy5zb3J0SXRlbXNCeShjb2x1bW4pXG4gIH1cblxuICAvKiogSWYgc29ydGFibGUsIHJlb3JkZXJzIHRoZSB0YWJsZSBkYXRhIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29sdW1uIGFzIG9yZGVyaW5nIGF0dHJpYnV0ZS4gKi9cbiAgc29ydEl0ZW1zQnkoY29sdW1uOiBUYWJsZUNvbHVtbjxUPik6IFRhYmxlUm93W10gfCB1bmRlZmluZWQge1xuICAgIGlmICghY29sdW1uLnNvcnRhYmxlKSByZXR1cm5cbiAgICAvLyBlbWl0IHJlLW9yZGVyIGV2ZW50XG4gICAgdGhpcy5uZ3ZPcmRlckJ5LmVtaXQoeyBwcm9wZXJ0eTogY29sdW1uLnByb3BlcnR5LCBvcmRlcjogY29sdW1uLm9yZGVyIH0pXG4gICAgLy8gaWYgbG9jYWwgc29ydCBpcyBhbGxvd2VkLCByZW9yZGVyIGRhdGFcbiAgICBpZiAoIXRoaXMuYWxsb3dMb2NhbFNvcnQgfHwgIXRoaXMudGFibGVEYXRhKSByZXR1cm5cbiAgICByZXR1cm4gdGhpcy50YWJsZURhdGEuc29ydChcbiAgICAgIGNvbHVtbi5vcmRlciA9PT0gJ2Rlc2MnXG4gICAgICAgID8gb3JkZXJCeURlc2NlbmRpbmcoY29sdW1uLnByb3BlcnR5KVxuICAgICAgICA6IG9yZGVyQnlBc2NlbmRpbmcoY29sdW1uLnByb3BlcnR5KSxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEVtaXRzIHJvdyBkYXRhIGZvciB3aGF0IHJvdyB3YXMgY2xpY2tlZCBpZiBkZWZhdWx0RW1pdCBpcyBhbGxvd2VkLlxuICAgKi9cbiAgcHJvcGFnYXRlSXRlbUNsaWNrKGl0ZW06IGFueSwgcHJldmVudERlZmF1bHRFbWl0PzogYm9vbGVhbikge1xuICAgIGlmICghcHJldmVudERlZmF1bHRFbWl0KSB0aGlzLm5ndlJvd0NsaWNrLmVtaXQoaXRlbSlcblxuICAgIGlmICh0aGlzLmV4cGFuZGFibGUgJiYgaXRlbVt0aGlzLnN1Ykl0ZW1zUHJvcF0pIHtcbiAgICAgIHRoaXMudG9nZ2xlUm93VG9FeHBhbmQoaXRlbVt0aGlzLnJvd0lkXSlcbiAgICB9XG4gIH1cblxuICBnZXRBcmlhTGFiZWwoY29sdW1uOiBUYWJsZUNvbHVtbjxUPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc29ydE9yZGVyID1cbiAgICAgIGNvbHVtbi5vcmRlciA9PT0gJ2FzYydcbiAgICAgICAgPyB0aGlzLmFyaWFMYWJlbHNPcmRlckJ5Py5kZXNjXG4gICAgICAgIDogdGhpcy5hcmlhTGFiZWxzT3JkZXJCeT8uYXNjXG4gICAgaWYgKCFzb3J0T3JkZXIpIHJldHVybiAvLyBubyBhcmlhIGxhYmVscyBkZWZpbmVkXG4gICAgcmV0dXJuIGNvbHVtbi5hcmlhTGFiZWxTb3J0YWJsZT8ucmVwbGFjZSgne3tzb3J0T3JkZXJ9fScsIHNvcnRPcmRlcilcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlUm93VG9FeHBhbmQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJvdyA9IHRoaXMucm93U2VsZWN0b3JzLmdldChpZClcbiAgICByb3c/LnNldFZhbHVlKCFyb3cudmFsdWUpXG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjc29ydGFibGVUaFRlbXBsYXRlIGxldC1jb2x1bW4+XG4gIDxidXR0b24gY2xhc3M9XCJnZHMtdGFibGUtc29ydFwiICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGhCdXR0b25UZW1wbGF0ZT5cbiAgICAgIHt7IHQoY29sdW1uLmxhYmVsID8/ICcnKSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgY3VzdG9tSGVhZGVyVGVtcGxhdGVzLmdldChjb2x1bW4ucHJvcGVydHkpIGFzIHRoVGVtcGxhdGU7XG4gICAgICAgIGVsc2UgdGhCdXR0b25UZW1wbGF0ZVxuICAgICAgXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aFRlbXBsYXRlIHx8IG51bGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiXG4gICAgICA+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbm90U29ydGFibGVUaFRlbXBsYXRlIGxldC1jb2x1bW4+XG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRoVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgICAgIHt7IHQoY29sdW1uLmxhYmVsID8/ICcnKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIGN1c3RvbUhlYWRlclRlbXBsYXRlcy5nZXQoY29sdW1uLnByb3BlcnR5KSBhcyB0aFRlbXBsYXRlO1xuICAgICAgZWxzZSBkZWZhdWx0VGhUZW1wbGF0ZVxuICAgIFwiXG4gID5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGhUZW1wbGF0ZSB8fCBudWxsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sdW1uIH1cIlxuICAgID5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48dGFibGUgY2xhc3M9XCJnZHMtdGFibGVcIiAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgPCEtLSBUYWJsZSBoZWFkZXIgLS0+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8IS0tIENoZWNrYm94IGNvbHVtbiBmb3IgaGVhZGVyIC0tPlxuICAgICAgPHRoICpuZ0lmPVwic2VsZWN0YWJsZVwiIGNsYXNzPVwiY29sdW1uX19jaGVja1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ2RzLWZpZWxkLWNoZWNrYm94LXdyYXBcIj5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIFthdHRyLmZvcl09XCInY2JfaGVhZGVyX18nICsgaW5pdElkXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ2RzLWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBpZD1cInRoZWFkLWNoZWNrYm94XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImdyb3VwU2VsZWN0b3JcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbENoZWNrYm94VGhcIlxuICAgICAgICAgICAgICBbYXR0ci5pZF09XCInY2JfaGVhZGVyX18nICsgaW5pdElkXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9va1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGk+PC9pPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cblxuICAgICAgPCEtLSBPdGhlciBjb2x1bW5zIC0tPlxuICAgICAgPHRoXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdGFibGVDb2x1bW5zXCJcbiAgICAgICAgW2NvbHVtblR5cGVdPVwiY29sdW1uLnZhbHVlVHlwZVwiXG4gICAgICAgIFtzb3J0YWJsZV09XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICBbc29ydE9yZGVyXT1cImNvbHVtbi5vcmRlclwiXG4gICAgICAgIFt0aG9va109XCInY29sdW1uLWhlYWRlci0nICsgISFjb2x1bW4ucHJvcGVydHlcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlU29ydE9yZGVyKGNvbHVtbilcIlxuICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJ0b2dnbGVTb3J0T3JkZXJXaXRoU3BhY2UoJGV2ZW50LCBjb2x1bW4pXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRBcmlhTGFiZWwoY29sdW1uKVwiXG4gICAgICAgIFthdHRyLmFyaWEtc29ydF09XCJjb2x1bW4ub3JkZXIgKyAnZW5kaW5nJ1wiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBzb3J0YWJsZVRoVGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4sIGNvbHVtbjogY29sdW1uIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uc29ydGFibGVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBub3RTb3J0YWJsZVRoVGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4sIGNvbHVtbjogY29sdW1uIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cblxuICA8IS0tIFRhYmxlIGJvZHkgLS0+XG4gIDx0Ym9keSBbZm9ybUdyb3VwXT1cInJvd1NlbGVjdG9yc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGFibGVEYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8dHJcbiAgICAgICAgW2NsYXNzLnJvd19fZXhwYW5kXT1cImV4cGFuZGFibGVcIlxuICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cIml0ZW0gfCB0clRob29rOiBpIDogdHJUaG9va0ZuXCJcbiAgICAgICAgW2F0dHIuZGF0YS1oYXNyb3dzcGFuXT1cImhhc1Jvd1NwYW4oaXRlbSlcIlxuICAgICAgPlxuICAgICAgICA8IS0tIENoZWNrYm94IGNvbHVtbiBmb3Igcm93IC0tPlxuICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3RhYmxlXCIgY2xhc3M9XCJjb2x1bW5fX2NoZWNrXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZGVuQ2hlY2tib3hSb3dJZHMuaW5jbHVkZXMoaXRlbVtyb3dJZF0pXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ2RzLWZpZWxkLWNoZWNrYm94LXdyYXBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBbYXR0ci5mb3JdPVwiJ2NiX3Jvd19fJyArIGluaXRJZCArICdfJyArIGlcIlxuICAgICAgICAgICAgICBjbGFzcz1cImdkcy1mb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAqbmdJZj1cInJvd1NlbGVjdG9ycy5nZXQoaXRlbVtyb3dJZF0pXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbVtyb3dJZF1cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ2hlY2tib3hUclwiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ2NiX3Jvd19fJyArIGluaXRJZCArICdfJyArIGlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwiJ3Jvdy1zZWxlY3QtJyArIGlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8aT48L2k+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuXG4gICAgICAgIDwhLS0gT3RoZXIgY29sdW1ucyAtLT5cbiAgICAgICAgPHRkXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB0YWJsZUNvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIFtjb2x1bW5UeXBlXT1cImNvbHVtbi52YWx1ZVR5cGVcIlxuICAgICAgICAgIFt2YWx1ZV09XCJpdGVtW2NvbHVtbi5wcm9wZXJ0eV1cIlxuICAgICAgICAgIChjbGljayk9XCJwcm9wYWdhdGVJdGVtQ2xpY2soaXRlbSwgY29sdW1uLnByZXZlbnREZWZhdWx0Q2xpY2tFdmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRhYmxlICYmIGkgPT09IDA7IGVsc2Ugbm9uRXhwYW5kYWJsZVRlbXBsYXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiZ2RzLWl0ZW0tZmllbGQtd3JhcFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ25vLXN1Yi1pdGVtcyc6IGl0ZW0uc3ViSXRlbXMubGVuZ3RoID09PSAwIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zdWJJdGVtcy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hldnJvbi1maWVsZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJyb3dTZWxlY3RvcnMuZ2V0KGl0ZW1bcm93SWRdKT8udmFsdWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiXG4gICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMjAgOUwxMiAxN0w0IDlcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjZcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdkcy1pdGVtLWZpZWxkLXRleHRcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtW2NvbHVtbi5wcm9wZXJ0eV0gfX0gKHt7IGl0ZW0uc3ViSXRlbXMubGVuZ3RoIH19KVxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmNvbHVtbkxhYmVsXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ2RzLWl0ZW0tZmllbGQtZXh0cmEtbGFiZWxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW1bY29sdW1uLmNvbHVtbkxhYmVsXSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9uRXhwYW5kYWJsZVRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGN1c3RvbVJvd1RlbXBsYXRlcy5nZXQoY29sdW1uLnByb3BlcnR5KSBhcyB0ZFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGVsc2UgZGVmYXVsdFRkVGVtcGxhdGVcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZFRlbXBsYXRlPlxuICAgICAgICAgICAgICB7eyBpdGVtW2NvbHVtbi5wcm9wZXJ0eV0gfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG5cbiAgICAgIDwhLS0gRXhwYW5kZWQgU3ViIEl0ZW1zIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4cGFuZGFibGUgJiYgcm93U2VsZWN0b3JzLmdldChpdGVtW3Jvd0lkXSk/LnZhbHVlXCI+XG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgc3ViSXRlbSBvZiBpdGVtW3N1Ykl0ZW1zUHJvcF1cIj5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdGFibGVDb2x1bW5zXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2ViLXZpZXdcIlxuICAgICAgICAgICAgW2NvbHVtblR5cGVdPVwiY29sdW1uLnZhbHVlVHlwZVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwic3ViSXRlbVtjb2x1bW4ucHJvcGVydHldXCJcbiAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgcHJvcGFnYXRlSXRlbUNsaWNrKHN1Ykl0ZW0sIGNvbHVtbi5wcmV2ZW50RGVmYXVsdENsaWNrRXZlbnQpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBjdXN0b21Sb3dUZW1wbGF0ZXMuZ2V0KGNvbHVtbi5wcm9wZXJ0eSkgYXMgdGRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBlbHNlIGRlZmF1bHRUZFRlbXBsYXRlXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGRUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHN1Ykl0ZW0gfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGRUZW1wbGF0ZT5cbiAgICAgICAgICAgICAge3sgc3ViSXRlbVtjb2x1bW4ucHJvcGVydHldIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwibW9iaWxlLXZpZXdcIlxuICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJ0YWJsZUNvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcm9wYWdhdGVJdGVtQ2xpY2soc3ViSXRlbSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkbCBjbGFzcz1cIm1vYmlsZS12aWV3LWZpZWxkLXdyYXBcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29sdW1uc1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWNvbHVtbi5oaWRlUHJvcGVydHlPbk1vYmlsZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vYmlsZS12aWV3LWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5UeXBlXT1cImNvbHVtbi52YWx1ZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN1Ykl0ZW1bY29sdW1uLnByb3BlcnR5XVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGR0ICpuZ0lmPVwiIWNvbHVtbi5oaWRlTGFiZWxPbk1vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHQoY29sdW1uLmxhYmVsID8/ICcnKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvZHQ+XG4gICAgICAgICAgICAgICAgICA8ZGRcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgY29sdW1uLmJvbGRUZXh0T25Nb2JpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8geyAnZm9udC13ZWlnaHQnOiAnNTAwJyB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IHsgJ2ZvbnQtd2VpZ2h0JzogJzQwMCcgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVJvd1RlbXBsYXRlcy5nZXQoY29sdW1uLnByb3BlcnR5KSBhcyB0ZFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBkZWZhdWx0VGRUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRkVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdWJJdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHN1Ykl0ZW1bY29sdW1uLnByb3BlcnR5XSB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2RsPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibmF2LWNoZXZyb24tZmllbGRcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInJvd1NlbGVjdG9ycy5nZXQoaXRlbVtyb3dJZF0pPy52YWx1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMjAgOUwxMiAxN0w0IDlcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNlwiXG4gICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQ3VzdG9tIGFwcGVuZGVkIHJvd3MgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwZW5kZWRSb3dzVGVtcGxhdGVSZWYgYXMgdHJUZW1wbGF0ZVwiPlxuICAgICAgICA8IS0tIENhbm5vdCBpbmZlciB0clRlbXBsYXRlIGFzIFRlbXBsYXRlUmVmIHRoZXJlZm9yZSBudWxsIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0clRlbXBsYXRlIHx8IG51bGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdGJvZHk+XG5cbiAgPCEtLSBUYWJsZSBmb290ZXIgLS0+XG4gIDx0Zm9vdCAqbmdJZj1cImN1c3RvbUZvb3RlclRlbXBsYXRlUmVmIGFzIHRyVGVtcGxhdGVcIj5cbiAgICA8IS0tIENhbm5vdCBpbmZlciB0clRlbXBsYXRlIGFzIFRlbXBsYXRlUmVmIHRoZXJlZm9yZSBudWxsIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0clRlbXBsYXRlIHx8IG51bGxcIj4gPC9uZy1jb250YWluZXI+XG4gIDwvdGZvb3Q+XG48L3RhYmxlPlxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { TableComponent } from './table.component';\nimport { TableAppendableRowsTemplateDirective, TableDirective, TableFooterTemplateDirective, TableTemplateDirective, } from './table.directive';\nimport { TrThookPipe } from './tr-thook.pipe';\nimport * as i0 from \"@angular/core\";\nexport class NggvTableModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvTableModule, declarations: [TableComponent,\n TableDirective,\n TableTemplateDirective,\n TableFooterTemplateDirective,\n TableAppendableRowsTemplateDirective], imports: [CommonModule, ReactiveFormsModule, TranslocoModule, TrThookPipe], exports: [TableComponent,\n TableTemplateDirective,\n TableFooterTemplateDirective,\n TableAppendableRowsTemplateDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvTableModule, imports: [CommonModule, ReactiveFormsModule, TranslocoModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvTableModule, decorators: [{\n type: NgModule,\n args: [{\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 }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGFibGUvdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbEQsT0FBTyxFQUNMLG9DQUFvQyxFQUNwQyxjQUFjLEVBQ2QsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUN2QixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7QUFrQjdDLE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxpQkFkeEIsY0FBYztZQUNkLGNBQWM7WUFDZCxzQkFBc0I7WUFDdEIsNEJBQTRCO1lBQzVCLG9DQUFvQyxhQUU1QixZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLFdBQVcsYUFFdkUsY0FBYztZQUNkLHNCQUFzQjtZQUN0Qiw0QkFBNEI7WUFDNUIsb0NBQW9DOytHQUczQixlQUFlLFlBUmhCLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlOzsyRkFRakQsZUFBZTtrQkFoQjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsb0NBQW9DO3FCQUNyQztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQztvQkFDMUUsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2Qsc0JBQXNCO3dCQUN0Qiw0QkFBNEI7d0JBQzVCLG9DQUFvQztxQkFDckM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5cbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnXG5pbXBvcnQge1xuICBUYWJsZUFwcGVuZGFibGVSb3dzVGVtcGxhdGVEaXJlY3RpdmUsXG4gIFRhYmxlRGlyZWN0aXZlLFxuICBUYWJsZUZvb3RlclRlbXBsYXRlRGlyZWN0aXZlLFxuICBUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxufSBmcm9tICcuL3RhYmxlLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRyVGhvb2tQaXBlIH0gZnJvbSAnLi90ci10aG9vay5waXBlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZURpcmVjdGl2ZSxcbiAgICBUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIFRhYmxlRm9vdGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgVGFibGVBcHBlbmRhYmxlUm93c1RlbXBsYXRlRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xvY29Nb2R1bGUsIFRyVGhvb2tQaXBlXSxcbiAgZXhwb3J0czogW1xuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIFRhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgVGFibGVGb290ZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBUYWJsZUFwcGVuZGFibGVSb3dzVGVtcGxhdGVEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZUYWJsZU1vZHVsZSB7fVxuIl19","/*\n * Public API Surface of table\n */\nexport * from './table.component';\nexport * from './table.directive';\nexport * from './tr-thook.pipe';\nexport * from './table.models';\nexport * from './table.module';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGFibGVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi90ci10aG9vay5waXBlJ1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS5tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLm1vZHVsZSdcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ViZ3JvdXAtZ3JlZW4tYW5ndWxhci1zcmMtdi1hbmd1bGFyLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGFibGUvc2ViZ3JvdXAtZ3JlZW4tYW5ndWxhci1zcmMtdi1hbmd1bGFyLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i4.TableDirective","i5.TrThookPipe"],"mappings":"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"}