@hmcts/opal-frontend-common 0.0.67 → 0.0.69

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 (323) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +54 -8
  3. package/fesm2022/{hmcts-opal-frontend-common-access-denied.component-B14ZVnte.mjs → hmcts-opal-frontend-common-access-denied.component-BrQvbEP8.mjs} +4 -4
  4. package/fesm2022/{hmcts-opal-frontend-common-account-created.component-DMjRN8Y1.mjs → hmcts-opal-frontend-common-account-created.component-BeXjpvKI.mjs} +4 -4
  5. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs +3 -3
  6. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs +3 -3
  7. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs +3 -3
  8. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs +3 -3
  9. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.mjs +3 -3
  10. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs +3 -3
  11. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs +3 -3
  12. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs +3 -3
  13. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs +3 -3
  14. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs +3 -3
  15. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs +3 -3
  16. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs +3 -3
  17. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs +3 -3
  18. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-action-links.mjs +3 -3
  19. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-horizontal-scroll-pane.mjs +3 -3
  20. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-page-header.mjs +3 -3
  21. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes-custom-scrollable-panes-inner-pane.mjs +3 -3
  22. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes.mjs +3 -3
  23. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs +3 -3
  24. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs +3 -3
  25. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs +3 -3
  26. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs +3 -3
  27. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-inner-pane.mjs +3 -3
  28. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-outer-pane.mjs +3 -3
  29. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane.mjs +3 -3
  30. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs +3 -3
  31. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs +3 -3
  32. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-button.mjs +3 -3
  33. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs +3 -3
  34. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs +12 -12
  35. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs +3 -3
  36. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-details.mjs +3 -3
  37. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-error-summary.mjs +3 -3
  38. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-footer.mjs +3 -3
  39. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header.mjs +6 -6
  40. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-heading-with-caption.mjs +3 -3
  41. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-inset-text.mjs +3 -3
  42. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list-govuk-list-link.mjs +3 -3
  43. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list.mjs +3 -3
  44. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.mjs +3 -3
  45. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs +3 -3
  46. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-panel.mjs +3 -3
  47. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs +37 -15
  48. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs +3 -3
  49. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-card-list.mjs +6 -6
  50. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs +12 -12
  51. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-table.mjs +12 -12
  52. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.mjs +3 -3
  53. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-panel.mjs +3 -3
  54. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs +3 -3
  55. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tag.mjs +3 -3
  56. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-task-list.mjs +6 -6
  57. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs +3 -3
  58. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs +3 -3
  59. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs +3 -3
  60. package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs +3 -3
  61. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-alert.mjs +21 -21
  62. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-badge.mjs +3 -3
  63. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu-moj-button-menu-item.mjs +3 -3
  64. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs +3 -3
  65. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs +24 -6
  66. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-header.mjs +3 -3
  67. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-item.mjs +3 -3
  68. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-keyword.mjs +3 -3
  69. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option.mjs +3 -3
  70. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected-moj-filter-panel-selected-tag.mjs +3 -3
  71. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected.mjs +3 -3
  72. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel.mjs +3 -3
  73. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs +3 -3
  74. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header.mjs +6 -6
  75. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-inset-text.mjs +3 -3
  76. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-notification-badge.mjs +3 -3
  77. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-page-header.mjs +3 -3
  78. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs +3 -3
  79. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-primary-navigation.mjs +6 -6
  80. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sortable-table.mjs +18 -18
  81. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sub-navigation.mjs +6 -6
  82. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-ticket-panel.mjs +3 -3
  83. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-timeline.mjs +6 -6
  84. package/fesm2022/{hmcts-opal-frontend-common-concurrency-failure.component-CQS1DbQQ.mjs → hmcts-opal-frontend-common-concurrency-failure.component-D-au3jgb.mjs} +4 -4
  85. package/fesm2022/hmcts-opal-frontend-common-directives-capitalisation.mjs +3 -3
  86. package/fesm2022/hmcts-opal-frontend-common-directives-govuk-button.mjs +3 -3
  87. package/fesm2022/hmcts-opal-frontend-common-directives-moj-multi-select.mjs +6 -6
  88. package/fesm2022/{hmcts-opal-frontend-common-internal-server-error.component-lCp06yT-.mjs → hmcts-opal-frontend-common-internal-server-error.component-BHzVGszb.mjs} +4 -4
  89. package/fesm2022/{hmcts-opal-frontend-common-pages-access-denied.component-B14ZVnte.mjs → hmcts-opal-frontend-common-pages-access-denied.component-BrQvbEP8.mjs} +4 -4
  90. package/fesm2022/{hmcts-opal-frontend-common-pages-account-created.component-DMjRN8Y1.mjs → hmcts-opal-frontend-common-pages-account-created.component-BeXjpvKI.mjs} +4 -4
  91. package/fesm2022/{hmcts-opal-frontend-common-pages-concurrency-failure.component-CQS1DbQQ.mjs → hmcts-opal-frontend-common-pages-concurrency-failure.component-D-au3jgb.mjs} +4 -4
  92. package/fesm2022/hmcts-opal-frontend-common-pages-dashboard-page.mjs +3 -3
  93. package/fesm2022/{hmcts-opal-frontend-common-pages-internal-server-error.component-lCp06yT-.mjs → hmcts-opal-frontend-common-pages-internal-server-error.component-BHzVGszb.mjs} +4 -4
  94. package/fesm2022/{hmcts-opal-frontend-common-pages-permission-denied.component-DYa3iGTj.mjs → hmcts-opal-frontend-common-pages-permission-denied.component-DPhihXxF.mjs} +4 -4
  95. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-B87UHy9K.mjs → hmcts-opal-frontend-common-pages-sign-in-stub.component-DTq6oPZO.mjs} +4 -4
  96. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in.component-Ctc9YosM.mjs → hmcts-opal-frontend-common-pages-sign-in.component-CxEpqLr_.mjs} +4 -4
  97. package/fesm2022/hmcts-opal-frontend-common-pages.mjs +6 -6
  98. package/fesm2022/{hmcts-opal-frontend-common-permission-denied.component-DYa3iGTj.mjs → hmcts-opal-frontend-common-permission-denied.component-DPhihXxF.mjs} +4 -4
  99. package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs +3 -3
  100. package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs +3 -3
  101. package/fesm2022/hmcts-opal-frontend-common-pipes-monetary.mjs +3 -3
  102. package/fesm2022/hmcts-opal-frontend-common-pipes-national-insurance.mjs +3 -3
  103. package/fesm2022/hmcts-opal-frontend-common-resolvers-title.mjs +3 -3
  104. package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs +3 -3
  105. package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs +3 -3
  106. package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs +3 -3
  107. package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs +3 -3
  108. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs +3 -3
  109. package/fesm2022/hmcts-opal-frontend-common-services-opal-user-service.mjs +3 -3
  110. package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs +3 -3
  111. package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs +3 -3
  112. package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs +3 -3
  113. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs +3 -3
  114. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs +3 -3
  115. package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs +3 -3
  116. package/fesm2022/{hmcts-opal-frontend-common-sign-in-stub.component-B87UHy9K.mjs → hmcts-opal-frontend-common-sign-in-stub.component-DTq6oPZO.mjs} +4 -4
  117. package/fesm2022/{hmcts-opal-frontend-common-sign-in.component-BjLHMHMm.mjs → hmcts-opal-frontend-common-sign-in.component-09qcuZmL.mjs} +4 -4
  118. package/fesm2022/hmcts-opal-frontend-common.mjs +6 -6
  119. package/package.json +71 -38
  120. package/styles/styles.scss +10 -14
  121. package/types/hmcts-opal-frontend-common-components-govuk-govuk-radio.d.ts +9 -1
  122. package/types/hmcts-opal-frontend-common-components-moj-moj-date-picker.d.ts +9 -2
  123. package/types/package.json +4 -0
  124. package/components/abstract/abstract-nested-form-base/README.md +0 -89
  125. package/components/abstract/abstract-table-filter/README.md +0 -76
  126. package/components/govuk/govuk-tabs/govuk-tabs-list-item/README.md +0 -74
  127. package/components/govuk/govuk-tabs/govuk-tabs-panel/README.md +0 -52
  128. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-header/README.md +0 -43
  129. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/README.md +0 -81
  130. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/moj-filter-panel-option-form-group-item/README.md +0 -53
  131. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/moj-filter-panel-option-form-group-keyword/README.md +0 -59
  132. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-selected/README.md +0 -55
  133. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-selected/moj-filter-panel-selected-tag/README.md +0 -52
  134. package/fesm2022/hmcts-opal-frontend-common-access-denied.component-B14ZVnte.mjs.map +0 -1
  135. package/fesm2022/hmcts-opal-frontend-common-account-created.component-DMjRN8Y1.mjs.map +0 -1
  136. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base-interfaces.mjs.map +0 -1
  137. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs.map +0 -1
  138. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base-interfaces.mjs.map +0 -1
  139. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs.map +0 -1
  140. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-parent-base.mjs.map +0 -1
  141. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base-interfaces.mjs.map +0 -1
  142. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs.map +0 -1
  143. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base-interfaces.mjs.map +0 -1
  144. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs.map +0 -1
  145. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-parent-base.mjs.map +0 -1
  146. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.mjs.map +0 -1
  147. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-interfaces.mjs.map +0 -1
  148. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs.map +0 -1
  149. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-types.mjs.map +0 -1
  150. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs.map +0 -1
  151. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-tab-data.mjs.map +0 -1
  152. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter-interfaces.mjs.map +0 -1
  153. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter-types.mjs.map +0 -1
  154. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs.map +0 -1
  155. package/fesm2022/hmcts-opal-frontend-common-components-abstract-interfaces.mjs.map +0 -1
  156. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete-interfaces.mjs.map +0 -1
  157. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs.map +0 -1
  158. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs.map +0 -1
  159. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs.map +0 -1
  160. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs.map +0 -1
  161. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs.map +0 -1
  162. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-action-links.mjs.map +0 -1
  163. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-horizontal-scroll-pane.mjs.map +0 -1
  164. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-page-header.mjs.map +0 -1
  165. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes-custom-scrollable-panes-inner-pane.mjs.map +0 -1
  166. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes.mjs.map +0 -1
  167. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs.map +0 -1
  168. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs.map +0 -1
  169. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs.map +0 -1
  170. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs.map +0 -1
  171. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-inner-pane.mjs.map +0 -1
  172. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-outer-pane.mjs.map +0 -1
  173. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane.mjs.map +0 -1
  174. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs.map +0 -1
  175. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs.map +0 -1
  176. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-button.mjs.map +0 -1
  177. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs.map +0 -1
  178. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes-interfaces.mjs.map +0 -1
  179. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs.map +0 -1
  180. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input-interfaces.mjs.map +0 -1
  181. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs.map +0 -1
  182. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-details.mjs.map +0 -1
  183. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-error-summary.mjs.map +0 -1
  184. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-footer-interfaces.mjs.map +0 -1
  185. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-footer.mjs.map +0 -1
  186. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header-interfaces.mjs.map +0 -1
  187. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header.mjs.map +0 -1
  188. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-heading-with-caption-types.mjs.map +0 -1
  189. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-heading-with-caption.mjs.map +0 -1
  190. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-inset-text.mjs.map +0 -1
  191. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list-govuk-list-link.mjs.map +0 -1
  192. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list.mjs.map +0 -1
  193. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.mjs.map +0 -1
  194. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs.map +0 -1
  195. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-panel.mjs.map +0 -1
  196. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio-interfaces.mjs.map +0 -1
  197. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs.map +0 -1
  198. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select-interfaces.mjs.map +0 -1
  199. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs.map +0 -1
  200. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-card-list.mjs.map +0 -1
  201. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs.map +0 -1
  202. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-table.mjs.map +0 -1
  203. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.mjs.map +0 -1
  204. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-panel.mjs.map +0 -1
  205. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs.map +0 -1
  206. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tag.mjs.map +0 -1
  207. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-task-list.mjs.map +0 -1
  208. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs.map +0 -1
  209. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs.map +0 -1
  210. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs.map +0 -1
  211. package/fesm2022/hmcts-opal-frontend-common-components-govuk-helpers.mjs.map +0 -1
  212. package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs.map +0 -1
  213. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-alert.mjs.map +0 -1
  214. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-badge.mjs.map +0 -1
  215. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu-moj-button-menu-item.mjs.map +0 -1
  216. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs.map +0 -1
  217. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs.map +0 -1
  218. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-header.mjs.map +0 -1
  219. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-item.mjs.map +0 -1
  220. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-keyword.mjs.map +0 -1
  221. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option.mjs.map +0 -1
  222. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected-moj-filter-panel-selected-tag.mjs.map +0 -1
  223. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected.mjs.map +0 -1
  224. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel.mjs.map +0 -1
  225. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs.map +0 -1
  226. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header-interfaces.mjs.map +0 -1
  227. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header.mjs.map +0 -1
  228. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-inset-text.mjs.map +0 -1
  229. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-notification-badge.mjs.map +0 -1
  230. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-page-header.mjs.map +0 -1
  231. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs.map +0 -1
  232. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-primary-navigation.mjs.map +0 -1
  233. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sortable-table.mjs.map +0 -1
  234. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sub-navigation.mjs.map +0 -1
  235. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-ticket-panel.mjs.map +0 -1
  236. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-timeline.mjs.map +0 -1
  237. package/fesm2022/hmcts-opal-frontend-common-concurrency-failure.component-CQS1DbQQ.mjs.map +0 -1
  238. package/fesm2022/hmcts-opal-frontend-common-constants.mjs.map +0 -1
  239. package/fesm2022/hmcts-opal-frontend-common-directives-capitalisation.mjs.map +0 -1
  240. package/fesm2022/hmcts-opal-frontend-common-directives-govuk-button.mjs.map +0 -1
  241. package/fesm2022/hmcts-opal-frontend-common-directives-moj-multi-select.mjs.map +0 -1
  242. package/fesm2022/hmcts-opal-frontend-common-guards-account.mjs.map +0 -1
  243. package/fesm2022/hmcts-opal-frontend-common-guards-auth.mjs.map +0 -1
  244. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate-interfaces.mjs.map +0 -1
  245. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate-types.mjs.map +0 -1
  246. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate.mjs.map +0 -1
  247. package/fesm2022/hmcts-opal-frontend-common-guards-has-flow-state.mjs.map +0 -1
  248. package/fesm2022/hmcts-opal-frontend-common-guards-has-url-state-match.mjs.map +0 -1
  249. package/fesm2022/hmcts-opal-frontend-common-guards-helpers.mjs.map +0 -1
  250. package/fesm2022/hmcts-opal-frontend-common-guards-route-permissions.mjs.map +0 -1
  251. package/fesm2022/hmcts-opal-frontend-common-guards-signed-in.mjs.map +0 -1
  252. package/fesm2022/hmcts-opal-frontend-common-guards-types.mjs.map +0 -1
  253. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error-constants.mjs.map +0 -1
  254. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error-interfaces.mjs.map +0 -1
  255. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error.mjs.map +0 -1
  256. package/fesm2022/hmcts-opal-frontend-common-internal-server-error.component-lCp06yT-.mjs.map +0 -1
  257. package/fesm2022/hmcts-opal-frontend-common-pages-access-denied.component-B14ZVnte.mjs.map +0 -1
  258. package/fesm2022/hmcts-opal-frontend-common-pages-account-created.component-DMjRN8Y1.mjs.map +0 -1
  259. package/fesm2022/hmcts-opal-frontend-common-pages-concurrency-failure.component-CQS1DbQQ.mjs.map +0 -1
  260. package/fesm2022/hmcts-opal-frontend-common-pages-dashboard-page-interfaces.mjs.map +0 -1
  261. package/fesm2022/hmcts-opal-frontend-common-pages-dashboard-page.mjs.map +0 -1
  262. package/fesm2022/hmcts-opal-frontend-common-pages-internal-server-error.component-lCp06yT-.mjs.map +0 -1
  263. package/fesm2022/hmcts-opal-frontend-common-pages-permission-denied.component-DYa3iGTj.mjs.map +0 -1
  264. package/fesm2022/hmcts-opal-frontend-common-pages-routing-constants.mjs.map +0 -1
  265. package/fesm2022/hmcts-opal-frontend-common-pages-routing-interfaces.mjs.map +0 -1
  266. package/fesm2022/hmcts-opal-frontend-common-pages-sign-in-stub.component-B87UHy9K.mjs.map +0 -1
  267. package/fesm2022/hmcts-opal-frontend-common-pages-sign-in.component-Ctc9YosM.mjs.map +0 -1
  268. package/fesm2022/hmcts-opal-frontend-common-pages.mjs.map +0 -1
  269. package/fesm2022/hmcts-opal-frontend-common-permission-denied.component-DYa3iGTj.mjs.map +0 -1
  270. package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs.map +0 -1
  271. package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs.map +0 -1
  272. package/fesm2022/hmcts-opal-frontend-common-pipes-monetary.mjs.map +0 -1
  273. package/fesm2022/hmcts-opal-frontend-common-pipes-national-insurance.mjs.map +0 -1
  274. package/fesm2022/hmcts-opal-frontend-common-resolvers-title.mjs.map +0 -1
  275. package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs.map +0 -1
  276. package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs.map +0 -1
  277. package/fesm2022/hmcts-opal-frontend-common-services-auth-service-constants.mjs.map +0 -1
  278. package/fesm2022/hmcts-opal-frontend-common-services-auth-service-interfaces.mjs.map +0 -1
  279. package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs.map +0 -1
  280. package/fesm2022/hmcts-opal-frontend-common-services-date-service-interfaces.mjs.map +0 -1
  281. package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs.map +0 -1
  282. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service-mocks.mjs.map +0 -1
  283. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs.map +0 -1
  284. package/fesm2022/hmcts-opal-frontend-common-services-opal-user-service-interfaces.mjs.map +0 -1
  285. package/fesm2022/hmcts-opal-frontend-common-services-opal-user-service-mocks.mjs.map +0 -1
  286. package/fesm2022/hmcts-opal-frontend-common-services-opal-user-service.mjs.map +0 -1
  287. package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs.map +0 -1
  288. package/fesm2022/hmcts-opal-frontend-common-services-session-service-constants.mjs.map +0 -1
  289. package/fesm2022/hmcts-opal-frontend-common-services-session-service-interfaces.mjs.map +0 -1
  290. package/fesm2022/hmcts-opal-frontend-common-services-session-service-mocks.mjs.map +0 -1
  291. package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs.map +0 -1
  292. package/fesm2022/hmcts-opal-frontend-common-services-sort-service-interfaces.mjs.map +0 -1
  293. package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs.map +0 -1
  294. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service-interfaces.mjs.map +0 -1
  295. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service-mocks.mjs.map +0 -1
  296. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs.map +0 -1
  297. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service-constants.mjs.map +0 -1
  298. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service-interfaces.mjs.map +0 -1
  299. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs.map +0 -1
  300. package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs.map +0 -1
  301. package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-B87UHy9K.mjs.map +0 -1
  302. package/fesm2022/hmcts-opal-frontend-common-sign-in.component-BjLHMHMm.mjs.map +0 -1
  303. package/fesm2022/hmcts-opal-frontend-common-stores-global-constants.mjs.map +0 -1
  304. package/fesm2022/hmcts-opal-frontend-common-stores-global-interfaces.mjs.map +0 -1
  305. package/fesm2022/hmcts-opal-frontend-common-stores-global-types.mjs.map +0 -1
  306. package/fesm2022/hmcts-opal-frontend-common-stores-global.mjs.map +0 -1
  307. package/fesm2022/hmcts-opal-frontend-common-types.mjs.map +0 -1
  308. package/fesm2022/hmcts-opal-frontend-common-validators-amount.mjs.map +0 -1
  309. package/fesm2022/hmcts-opal-frontend-common-validators-date-after-year.mjs.map +0 -1
  310. package/fesm2022/hmcts-opal-frontend-common-validators-date-before.mjs.map +0 -1
  311. package/fesm2022/hmcts-opal-frontend-common-validators-date-of-birth.mjs.map +0 -1
  312. package/fesm2022/hmcts-opal-frontend-common-validators-future-date.mjs.map +0 -1
  313. package/fesm2022/hmcts-opal-frontend-common-validators-invalid-value.mjs.map +0 -1
  314. package/fesm2022/hmcts-opal-frontend-common-validators-national-insurance-number.mjs.map +0 -1
  315. package/fesm2022/hmcts-opal-frontend-common-validators-optional-max-length.mjs.map +0 -1
  316. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-date.mjs.map +0 -1
  317. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-telephone.mjs.map +0 -1
  318. package/fesm2022/hmcts-opal-frontend-common-validators-over-eighteen.mjs.map +0 -1
  319. package/fesm2022/hmcts-opal-frontend-common-validators-past-date.mjs.map +0 -1
  320. package/fesm2022/hmcts-opal-frontend-common-validators-pattern-validator.mjs.map +0 -1
  321. package/fesm2022/hmcts-opal-frontend-common-validators-valid-value.mjs.map +0 -1
  322. package/fesm2022/hmcts-opal-frontend-common.mjs.map +0 -1
  323. package/guards/has-url-state-match/README.md +0 -160
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-form-array-parent-base.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-form-array-parent-base/abstract-form-array-parent-base.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-form-array-parent-base/hmcts-opal-frontend-common-components-abstract-abstract-form-array-parent-base.ts"],"sourcesContent":["import { AbstractFormParentBaseComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-form-parent-base';\n\nexport abstract class AbstractFormArrayParentBaseComponent extends AbstractFormParentBaseComponent {\n /**\n * Removes index suffixes from keys in an array of objects and restructures the data.\n *\n * This function takes an array of objects where keys have an index suffix (e.g., `key_0`, `key_1`),\n * and returns a new array of objects where the keys are grouped by their base name without the index.\n *\n * @param data - The array of objects with indexed keys.\n * @returns A new array of objects with keys grouped by their base name.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public removeIndexFromFormArrayData(data: any[]): any[] {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return data.reduce((result: any[], indexedObject) => {\n let currentIndex!: number;\n for (const key of Object.keys(indexedObject)) {\n const match = new RegExp(/^(.*)_(\\d+)$/).exec(key);\n if (match) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_, baseKey, index] = match;\n const idx = Number.parseInt(index, 10);\n\n currentIndex = idx; // Set the current index based on the last indexed key\n\n result[idx] = result[idx] ?? {};\n result[idx][baseKey] = indexedObject[key];\n } else {\n // For non-indexed keys, use the currentIndex if available\n result[currentIndex] = result[currentIndex] ?? {};\n result[currentIndex][key] = indexedObject[key];\n }\n }\n return result;\n }, []);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAEM,MAAgB,oCAAqC,SAAQ,+BAA+B,CAAA;AAChG;;;;;;;;AAQG;;AAEI,IAAA,4BAA4B,CAAC,IAAW,EAAA;;QAE7C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAa,EAAE,aAAa,KAAI;AAClD,YAAA,IAAI,YAAqB;YACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AAC5C,gBAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAClD,IAAI,KAAK,EAAE;;oBAET,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,KAAK;oBACjC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AAEtC,oBAAA,YAAY,GAAG,GAAG,CAAC;oBAEnB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;oBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;gBAC3C;qBAAO;;oBAEL,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE;oBACjD,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;gBAChD;YACF;AACA,YAAA,OAAO,MAAM;QACf,CAAC,EAAE,EAAE,CAAC;IACR;AACD;;ACrCD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base-interfaces.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-form-array-removal-base/interfaces/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-form-array-removal-base/abstract-form-array-removal-base.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-form-array-removal-base/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.ts"],"sourcesContent":["import { FormArray, FormGroup } from '@angular/forms';\nimport { Component, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { IAbstractFormArrayRemovalBaseControlValue } from './interfaces/abstract-form-array-removal-base-control-value.interface';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractFormArrayRemovalComponent {\n private readonly router = inject(Router);\n private readonly activatedRoute = inject(ActivatedRoute);\n\n protected getFormArrayControlValue(\n formArray: FormArray,\n controlName: string,\n rowIndex: number,\n defaultValue: IAbstractFormArrayRemovalBaseControlValue[keyof IAbstractFormArrayRemovalBaseControlValue],\n ): IAbstractFormArrayRemovalBaseControlValue[keyof IAbstractFormArrayRemovalBaseControlValue] {\n const value = formArray.controls[rowIndex]?.get(controlName)?.value;\n\n if (typeof value === 'string' && !Number.isNaN(Number(value))) {\n return Number(value);\n }\n\n return value ?? defaultValue;\n }\n\n /**\n * Removes a control from the given form array at the specified index and renumbers the remaining controls.\n *\n * @param formArray - The form array from which to remove the control.\n * @param removeIndex - The index of the control to remove.\n * @param fieldNames - The names of the fields associated with the controls.\n * @param dynamicFieldPrefix - The prefix used for dynamically generated field names.\n */\n protected removeControlAndRenumber(\n formArray: FormArray,\n removeIndex: number,\n fieldNames: string[],\n dynamicFieldPrefix: string,\n ): void {\n formArray.removeAt(removeIndex);\n this.renumberControls(formArray, removeIndex, fieldNames, dynamicFieldPrefix);\n }\n\n /**\n * Renumber the controls in a FormArray starting from a specific index.\n * This method updates the control keys of each FormGroup within the FormArray.\n *\n * @param formArray - The FormArray to renumber the controls for.\n * @param startIndex - The index to start renumbering the controls from.\n * @param fieldNames - The names of the fields in the FormGroup.\n * @param dynamicFieldPrefix - The prefix to use for dynamic field names.\n */\n protected renumberControls(\n formArray: FormArray,\n startIndex: number,\n fieldNames: string[],\n dynamicFieldPrefix: string,\n ): void {\n const formGroups = formArray.controls.slice(startIndex);\n for (const [index, formGroup] of formGroups.entries()) {\n this.updateControlKeys(formGroup as FormGroup, index + startIndex, fieldNames, dynamicFieldPrefix);\n }\n }\n\n /**\n * Updates the control keys in a form group based on the provided parameters.\n * @param formGroup - The form group to update.\n * @param index - The index of the form group within an array.\n * @param fieldNames - An array of field names to update.\n * @param dynamicFieldPrefix - The prefix to use for dynamic field keys.\n */\n protected updateControlKeys(\n formGroup: FormGroup,\n index: number,\n fieldNames: string[],\n dynamicFieldPrefix: string,\n ): void {\n for (const field of fieldNames) {\n const currentKey = `${dynamicFieldPrefix}_${field}_${index + 1}`;\n const newKey = `${dynamicFieldPrefix}_${field}_${index}`;\n\n // Retrieve the current control, if it exists\n const control = formGroup.get(currentKey);\n\n if (control) {\n // Remove the old control first, then add it with the new key\n formGroup.removeControl(currentKey);\n\n // Add the control with the updated key\n formGroup.addControl(newKey, control);\n }\n }\n }\n\n /**\n * Handles route with the supplied route\n *\n * @param route string of route\n * @param nonRelative boolean indicating if route is relative to the parent\n */\n public handleRoute(route: string, nonRelative: boolean = false, event?: Event): void {\n if (event) {\n event.preventDefault();\n }\n if (nonRelative) {\n this.router.navigate([route]);\n } else {\n this.router.navigate([route], { relativeTo: this.activatedRoute.parent });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-form-base-interfaces.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-form-base/interfaces/hmcts-opal-frontend-common-components-abstract-abstract-form-base-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-form-base/abstract-form-base.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-form-base/hmcts-opal-frontend-common-components-abstract-abstract-form-base.ts"],"sourcesContent":["import { ChangeDetectorRef, Component, EventEmitter, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { FormArray, FormControl, FormGroup, FormRecord, ValidatorFn } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { IAbstractFormBaseFieldError } from './interfaces/abstract-form-base-field-error.interface';\nimport { IAbstractFormBaseFieldErrors } from './interfaces/abstract-form-base-field-errors.interface';\nimport { IAbstractFormBaseFormError } from './interfaces/abstract-form-base-form-error.interface';\nimport {\n IAbstractFormBaseFormErrorSummaryMessage,\n IAbstractFormControlErrorMessage,\n IAbstractFormArrayControlValidation,\n} from '@hmcts/opal-frontend-common/components/abstract/interfaces';\nimport { IAbstractFormBaseHighPriorityFormError } from './interfaces/abstract-form-base-high-priority-form-error.interface';\nimport { IAbstractFormBaseForm } from './interfaces/abstract-form-base-form.interface';\nimport { UtilsService } from '@hmcts/opal-frontend-common/services/utils-service';\nimport { IAbstractFormBaseHandleRouteOptions } from './interfaces/abstract-form-base-handleroute-options.interface';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractFormBaseComponent implements OnInit, OnDestroy {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly router = inject(Router);\n private readonly activatedRoute = inject(ActivatedRoute);\n\n @Output() protected unsavedChanges = new EventEmitter<boolean>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Output() protected formSubmit = new EventEmitter<IAbstractFormBaseForm<any>>();\n protected readonly utilsService = inject(UtilsService);\n protected fieldErrors!: IAbstractFormBaseFieldErrors;\n protected formSubmitted = false;\n protected readonly ngUnsubscribe = new Subject<void>();\n\n public form!: FormGroup;\n public formControlErrorMessages!: IAbstractFormControlErrorMessage;\n public formErrorSummaryMessage!: IAbstractFormBaseFormErrorSummaryMessage[];\n public formErrors!: IAbstractFormBaseFormError[];\n\n constructor() {}\n\n /**\n * Scrolls to a specific form field and attempts to focus on it.\n *\n * This method locates the target field or its associated label/legend\n * based on the provided `fieldId`. It ensures that the field or its\n * nested focusable element is brought into view and focused, if possible.\n *\n * The scrolling behavior is smooth, and the method prioritizes the following\n * elements in order:\n * 1. A label associated with an autocomplete field (`label[for=\"${fieldId}-autocomplete\"]`).\n * 2. A regular label associated with the field (`label[for=\"${fieldId}\"]`).\n * 3. A legend within a fieldset associated with the field (`[id=\"${fieldId}\"] .govuk-fieldset__legend`).\n * 4. The field itself or its nested focusable element.\n *\n * @param fieldId - The ID of the form field to scroll to and focus on.\n */\n private scroll(fieldId: string): void {\n const autocompleteLabel = document.querySelector<HTMLElement>(`label[for=\"${fieldId}-autocomplete\"]`);\n const regularLabel = document.querySelector<HTMLElement>(`label[for=\"${fieldId}\"]`);\n const fieldsetLegend = document.querySelector<HTMLElement>(`[id=\"${fieldId}\"] .govuk-fieldset__legend`);\n\n const labelTarget = autocompleteLabel ?? regularLabel ?? fieldsetLegend ?? null;\n const focusableSelector = 'input:not([type=\"hidden\"]), select, textarea, button, [tabindex]:not([tabindex=\"-1\"])';\n\n let fieldElement = document.getElementById(`${fieldId}-autocomplete`) ?? document.getElementById(fieldId);\n\n if (fieldElement && !this.canReceiveFocus(fieldElement)) {\n const nestedFocusable = fieldElement.querySelector<HTMLElement>(focusableSelector);\n if (nestedFocusable) {\n fieldElement = nestedFocusable;\n }\n }\n\n fieldElement ??= document.querySelector<HTMLElement>(`[id=\"${fieldId}\"] ${focusableSelector}`);\n\n if (labelTarget) {\n labelTarget.scrollIntoView({ behavior: 'smooth' });\n } else if (fieldElement) {\n fieldElement.scrollIntoView({ behavior: 'smooth' });\n }\n\n fieldElement?.focus();\n }\n\n /**\n * Determines whether a given HTML element can receive focus.\n *\n * An element is considered focusable if:\n * - It has a `tabIndex` greater than or equal to 0 and does not have the `disabled` attribute.\n * - It is an anchor (`<a>`) element with a valid `href` attribute.\n * - It is one of the following tags: `INPUT`, `SELECT`, `TEXTAREA`, or `BUTTON`,\n * and it is not disabled.\n *\n * @param element - The HTML element to check for focusability.\n * @returns `true` if the element can receive focus, otherwise `false`.\n */\n private canReceiveFocus(element: HTMLElement): boolean {\n if (element.tabIndex >= 0 && !element.hasAttribute('disabled')) {\n return true;\n }\n\n if (element instanceof HTMLAnchorElement && element.hasAttribute('href') && element.href) {\n return !!element.href;\n }\n\n const focusableTags = ['INPUT', 'SELECT', 'TEXTAREA', 'BUTTON'];\n if (focusableTags.includes(element.tagName)) {\n return !(element as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement).disabled;\n }\n\n return false;\n }\n\n /**\n * Returns the highest priority form error from the given error keys and field errors.\n * @param errorKeys - An array of error keys.\n * @param fieldErrors - An object containing field errors.\n * @returns The highest priority form error or null if no errors are found.\n */\n private getHighestPriorityError(\n errorKeys: string[] = [],\n fieldErrors: IAbstractFormBaseFieldError = {},\n ): IAbstractFormBaseHighPriorityFormError | null {\n if (errorKeys.length && Object.keys(fieldErrors).length) {\n const errors = errorKeys.map((errorType: string) => {\n return {\n ...fieldErrors[errorType],\n type: errorType,\n };\n });\n\n const sortedErrors = [...errors].sort((a, b) => a.priority - b.priority);\n\n return sortedErrors[0];\n }\n return null;\n }\n\n /**\n * Retrieves the details of the highest priority form error for a given control path.\n * @param controlPath - The path to the control in the form.\n * @returns The details of the highest priority form error, or null if there are no errors.\n */\n private getFieldErrorDetails(controlPath: (string | number)[]): IAbstractFormBaseHighPriorityFormError | null {\n // Get the control\n const control = this.form.get(controlPath);\n\n // If we have errors\n const controlErrors = control?.errors;\n\n if (controlErrors) {\n /// Get all the error keys\n // Use Array.prototype.at for clarity when accessing the last segment of the control path\n const controlKey = controlPath.at(-1);\n const errorKeys = Object.keys(controlErrors) || [];\n const fieldErrors = controlKey === undefined ? {} : this.fieldErrors[controlKey] || {};\n\n if (errorKeys.length && Object.keys(fieldErrors).length) {\n return this.getHighestPriorityError(errorKeys, fieldErrors);\n }\n }\n return null;\n }\n\n /**\n * Retrieves all form errors from the provided form and its nested form groups.\n *\n * @param form - The form group to retrieve errors from.\n * @param controlPath - An optional array representing the path to the current control within the form group.\n * @returns An array of form errors, each containing the field ID, error message, priority, and type.\n */\n private getFormErrors(form: FormGroup, controlPath: (string | number)[] = []): IAbstractFormBaseFormError[] {\n // recursively get all errors from all controls in the form including nested form group controls\n const formControls = form.controls;\n\n const errorSummary = Object.keys(formControls)\n .filter((controlName) => formControls[controlName].invalid)\n .flatMap((controlName) => {\n const control = formControls[controlName];\n\n if (control instanceof FormRecord) {\n // We only support FormControls in FormRecords\n const recordFieldErrorDetails = this.getFieldErrorDetails([...controlPath, controlName]);\n\n return {\n fieldId: controlName,\n message: recordFieldErrorDetails?.message ?? null,\n priority: recordFieldErrorDetails?.priority ?? 999999999,\n type: recordFieldErrorDetails?.type ?? null,\n };\n }\n\n if (control instanceof FormGroup) {\n return this.getFormErrors(control, [...controlPath, controlName]);\n }\n\n if (control instanceof FormArray) {\n return control.controls.flatMap((controlItem, index) => {\n // We only support FormGroups in FormArrays\n if (controlItem instanceof FormGroup) {\n return this.getFormErrors(controlItem, [...controlPath, controlName, index]);\n }\n return [];\n });\n }\n\n const getFieldErrorDetails = this.getFieldErrorDetails([...controlPath, controlName]);\n\n // Return the error summary entry\n // If we don't have the error details, return a null message\n return {\n fieldId: controlName,\n message: getFieldErrorDetails?.message ?? null,\n priority: getFieldErrorDetails?.priority ?? 999999999,\n type: getFieldErrorDetails?.type ?? null,\n };\n });\n\n // Remove any null errors\n return errorSummary.filter((item) => item?.message !== null);\n }\n\n /**\n * Sets the error messages for the form controls and error summary based on the provided form errors.\n * @param formErrors - An array of form errors containing field IDs and error messages.\n */\n private setErrorMessages(formErrors: IAbstractFormBaseFormError[]) {\n // Reset the form error messages\n this.formControlErrorMessages = {};\n this.formErrorSummaryMessage = [];\n\n // Set the form error messages based on the error summary entries\n for (const entry of formErrors) {\n this.formControlErrorMessages[entry.fieldId] = entry.message;\n this.formErrorSummaryMessage.push({ fieldId: entry.fieldId, message: entry.message });\n }\n }\n\n /**\n * Gets the indexes of the date fields to remove based on the form error summary message.\n * @returns An array of indexes representing the date fields to remove.\n */\n private getDateFieldsToRemoveIndexes(): number[] {\n const indexesToRemove: number[] = [];\n // The order of the field ids is important\n // this is the order in which we want to remove them\n const foundIndexes = this.getFormErrorSummaryIndex(\n ['dayOfMonth', 'monthOfYear', 'year'],\n this.formErrorSummaryMessage,\n );\n\n // Determine which indexes to remove based on the found fields\n switch (foundIndexes.length) {\n case 3:\n // All three date fields are present\n indexesToRemove.push(foundIndexes[1], foundIndexes[2]);\n break;\n case 2:\n // Two date fields are present\n indexesToRemove.push(foundIndexes[1]);\n break;\n }\n\n return indexesToRemove;\n }\n\n /**\n * Returns an array of indices corresponding to the positions of the given field IDs in the form error summary message array.\n *\n * @param fieldIds - An array of field IDs to search for in the form error summary message array.\n * @param formErrorSummaryMessage - An array of form error summary messages.\n * @returns An array of indices corresponding to the positions of the field IDs in the form error summary message array.\n */\n private getFormErrorSummaryIndex(\n fieldIds: string[],\n formErrorSummaryMessage: IAbstractFormBaseFormErrorSummaryMessage[],\n ): number[] {\n return fieldIds.reduce((acc: number[], field) => {\n const index = formErrorSummaryMessage.findIndex((error) => error.fieldId === field);\n if (index === -1) {\n return acc;\n }\n return [...acc, index];\n }, []);\n }\n\n /**\n * Removes error summary messages from the given array based on the specified indexes.\n *\n * @param formErrorSummaryMessage - The array of error summary messages.\n * @param indexes - The indexes of the error summary messages to be removed.\n * @returns The updated array of error summary messages.\n */\n private removeErrorSummaryMessages(\n formErrorSummaryMessage: IAbstractFormBaseFormErrorSummaryMessage[],\n indexes: number[],\n ): IAbstractFormBaseFormErrorSummaryMessage[] {\n return formErrorSummaryMessage.filter((_, index) => !indexes.includes(index));\n }\n\n /**\n * Splits the form errors into two arrays based on the provided field IDs.\n * Errors with field IDs included in the fieldIds array will be moved to the removedFormErrors array,\n * while the remaining errors will be moved to the cleanFormErrors array.\n *\n * @param fieldIds - An array of field IDs to filter the form errors.\n * @param formErrors - An array of form errors to be split.\n * @returns An array containing two arrays: cleanFormErrors and removedFormErrors.\n */\n private splitFormErrors(\n fieldIds: string[],\n formErrors: IAbstractFormBaseFormError[],\n ): IAbstractFormBaseFormError[][] {\n const cleanFormErrors: IAbstractFormBaseFormError[] = [];\n const removedFormErrors: IAbstractFormBaseFormError[] = [];\n\n for (const error of formErrors) {\n if (fieldIds.includes(error.fieldId)) {\n removedFormErrors.push(error);\n } else {\n cleanFormErrors.push(error);\n }\n }\n\n return [cleanFormErrors, removedFormErrors];\n }\n\n /**\n * Manipulates the error message for specific fields in the formErrors array.\n * @param fields - An array of field IDs to target for error message manipulation.\n * @param messageOverride - The new error message to be used for the targeted fields.\n * @param errorType - The type of error to match for the targeted fields.\n * @param formErrors - An array of IFormError objects representing the form errors.\n * @returns An array of IFormError objects with the manipulated error messages.\n */\n private manipulateFormErrorMessage(\n fields: string[],\n messageOverride: string,\n errorType: string,\n formErrors: IAbstractFormBaseFormError[],\n ): IAbstractFormBaseFormError[] {\n const manipulatedFields: IAbstractFormBaseFormError[] = [];\n for (const field of formErrors) {\n if (fields.includes(field.fieldId)) {\n if (field.type === errorType) {\n manipulatedFields.push({ ...field, message: messageOverride });\n } else {\n manipulatedFields.push(field);\n }\n continue;\n }\n manipulatedFields.push(field);\n }\n\n return manipulatedFields;\n }\n\n /**\n * Retrieves the form errors with the highest priority.\n *\n * @param formErrors - An array of form errors.\n * @returns An array of form errors with the highest priority.\n */\n private getHighPriorityFormErrors(formErrors: IAbstractFormBaseFormError[]): IAbstractFormBaseFormError[] {\n // Get the lowest priority (1 is the highest priority, 3 is the lowest priority)\n const lowestPriority = Math.min(...formErrors.map((item) => item.priority));\n return formErrors.filter((item) => item.priority === lowestPriority);\n }\n\n /**\n * Focuses on the error summary element and scrolls to the top of the page.\n *\n * This method first triggers change detection to ensure the view is up-to-date.\n * It then selects the error summary element with the class 'govuk-error-summary'.\n * If the error summary element is found, it sets focus on it without scrolling the page.\n * Finally, it calls a utility service to scroll to the top of the page.\n *\n * @private\n */\n private focusAndScrollToErrorSummary(): void {\n this.changeDetectorRef.detectChanges();\n\n const errorSummary = document.querySelector('.govuk-error-summary') as HTMLElement;\n if (errorSummary) {\n errorSummary.focus({ preventScroll: true });\n this.utilsService.scrollToTop();\n }\n }\n\n /**\n * Setup listener for the form value changes and to emit hasUnsavedChanges\n */\n private setupListener(): void {\n this.form.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.unsavedChanges.emit(this.hasUnsavedChanges());\n });\n }\n\n /**\n * Adds controls to a form group.\n *\n * @param formGroup - The form group to add controls to.\n * @param controls - An array of form array control validations.\n * @param index - The index of the form array control.\n */\n protected addControlsToFormGroup(\n formGroup: FormGroup,\n controls: IAbstractFormArrayControlValidation[],\n index: number,\n ): void {\n for (const { controlName, validators } of controls) {\n formGroup.addControl(`${controlName}_${index}`, new FormControl(null, validators));\n }\n }\n\n /**\n * Creates a form control with the specified validators and initial value.\n *\n * @param validators - An array of validator functions.\n * @param initialValue - The initial value for the form control. Defaults to null.\n * @returns The created form control.\n */\n protected createFormControl(validators: ValidatorFn[], initialValue: string | null = null): FormControl {\n return new FormControl(initialValue, { validators: [...validators] });\n }\n\n /**\n * Handles the error messages and populates the relevant variables\n */\n protected handleErrorMessages(): void {\n this.formErrors = this.getFormErrors(this.form);\n\n this.setErrorMessages(this.formErrors);\n\n this.formErrorSummaryMessage = this.removeErrorSummaryMessages(\n this.formErrorSummaryMessage,\n this.getDateFieldsToRemoveIndexes(),\n );\n }\n\n /**\n * Checks whether the form has been touched and submitted\n *\n * @returns boolean\n */\n protected hasUnsavedChanges(): boolean {\n return this.form.dirty && !this.formSubmitted;\n }\n\n /**\n * Sets the value of a form control specified by its path and marks it as touched.\n *\n * @param value - The value to set for the form control.\n * @param controlPath - The dot-delimited path to the form control within the form group.\n */\n protected setInputValue(value: string, controlPath: string): void {\n const control = this.form.get(controlPath);\n if (control) {\n control.patchValue(value);\n control.markAsTouched();\n }\n }\n\n /**\n * Handles the form errors for the date input fields.\n * @param formErrors - An array of form errors.\n * @returns An array of form errors with the manipulated error messages.\n */\n protected handleDateInputFormErrors() {\n const dateInputFields = ['dayOfMonth', 'monthOfYear', 'year'];\n const splitFormErrors = this.splitFormErrors(dateInputFields, this.formErrors);\n const highPriorityDateControlErrors = this.getHighPriorityFormErrors(splitFormErrors[1]);\n let manipulatedFormErrors: IAbstractFormBaseFormError[] = highPriorityDateControlErrors;\n\n // If we have more than one error then we want to manipulate the error message\n if (highPriorityDateControlErrors.length > 1) {\n manipulatedFormErrors = this.manipulateFormErrorMessage(\n dateInputFields,\n 'Please enter a DOB',\n 'required',\n manipulatedFormErrors,\n );\n }\n\n return [...splitFormErrors[0], ...manipulatedFormErrors];\n }\n\n /**\n * Sets the initial error messages for the form controls.\n *\n * @param form - The FormGroup instance.\n */\n protected setInitialErrorMessages(): void {\n const formControls = this.form.controls;\n const initialFormControlErrorMessages: IAbstractFormControlErrorMessage = {};\n\n for (const controlName of Object.keys(formControls)) {\n initialFormControlErrorMessages[controlName] = null;\n }\n\n this.formControlErrorMessages = initialFormControlErrorMessages;\n this.formErrorSummaryMessage = [];\n }\n\n /**\n * Repopulates the search form with the data from the account enquiry search.\n * @param state - The state object containing the search form data.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected rePopulateForm(state: any): void {\n this.form.patchValue(state);\n }\n\n /**\n * Adds a new form control to the form group.\n *\n * @param controlName - The name of the control to add.\n * @param validators - An array of validators to apply to the control.\n */\n protected createControl(controlName: string, validators: ValidatorFn[]): void {\n this.form.addControl(controlName, new FormControl(null, validators));\n }\n\n /**\n * Updates the validators of an existing form control.\n *\n * @param controlName - The name of the control to update.\n * @param validators - An array of validators to apply to the control.\n */\n protected updateControl(controlName: string, validators: ValidatorFn[]): void {\n const control = this.form.get(controlName);\n if (control) {\n control.setValidators(validators);\n control.updateValueAndValidity();\n } else {\n this.createControl(controlName, validators);\n }\n }\n\n /**\n * Removes a control from the form.\n *\n * @param controlName - The name of the control to remove.\n */\n protected removeControl(controlName: string): void {\n if (this.formControlErrorMessages[controlName]) {\n this.removeControlErrors(controlName);\n }\n this.form.removeControl(controlName);\n }\n\n /**\n * Removes the error message associated with the specified control name from the formControlErrorMessages object.\n *\n * @param controlName - The name of the control for which to remove the error message.\n */\n protected removeControlErrors(controlName: string): void {\n delete this.formControlErrorMessages[controlName];\n }\n\n /**\n * Clears all error messages from the form.\n */\n protected clearAllErrorMessages(): void {\n this.formControlErrorMessages = {};\n this.formErrorSummaryMessage = [];\n this.formErrors = [];\n this.form.updateValueAndValidity({ onlySelf: false, emitEvent: false });\n }\n\n /**\n * Create a plain object from a FormRecord of FormControls.\n *\n * What it does: copies each control's current value onto a plain object.\n * When to use: when you need the raw values from a FormRecord (e.g. to send to an API).\n *\n * Example\n * -------\n * // record: FormRecord<FormControl<string | null>> with a single control 'firstName'\n * const out = this.objectFromFormRecord(record, {\n * mapKey: k => k, // optional (defaults to identity)\n * mapValue: v => v ?? '' // turn null/undefined into ''\n * });\n * // out -> { firstName: '' }\n *\n * @typeParam T - Control value type.\n * @typeParam U - Output value type (defaults to T).\n * @typeParam K - Output key type (defaults to string). Control names are strings; provide `mapKey` if you need numbers.\n */\n protected objectFromFormRecord<T, U = T, K extends string | number = string>(\n controlRecord: FormRecord<FormControl<T | null | undefined>>,\n options?: {\n mapKey?: (key: string) => K;\n mapValue?: (value: T | null | undefined) => U;\n },\n ): Record<K, U> {\n const mapKey = options?.mapKey ?? ((k: string) => k as unknown as K);\n const mapValue = options?.mapValue ?? ((v: T | null | undefined) => v as unknown as U);\n\n const result = {} as Record<K, U>;\n\n for (const [name, control] of Object.entries(controlRecord.controls)) {\n result[mapKey(name)] = mapValue(control.value);\n }\n\n return result;\n }\n\n /**\n * Patch a FormRecord of FormControls from a plain object.\n *\n * What it does: for each entry in `values`, finds the matching control by name\n * (optionally mapped via `mapKey`) and sets its value **only if** it changes.\n * When to use: when you need to patch many controls at once, without\n * triggering extra updates for unchanged values.\n *\n * Example\n * -------\n * // controlRecord: FormRecord<FormControl<string>> with controls 'firstName', 'lastName'\n * this.patchFormRecordFromObject(controlRecord, { firstName: 'Ada', lastName: 'Lovelace' }, {\n * emitEvent: true,\n * isEqual: (a, b) => a === b,\n * // mapKey: k => `ctrl_${k as string}` // optional: map incoming keys to control names\n * });\n *\n * @typeParam T - Control value type.\n * @typeParam K - Keys present in the `values` object (string or number).\n */\n protected patchFormRecordFromObject<T, K extends string | number = string>(\n controlRecord: FormRecord<FormControl<T>>,\n values: Record<K, T>,\n options?: {\n emitEvent?: boolean;\n /** How provided keys map to control names (defaults to String(key)). */\n mapKey?: (key: K) => string;\n /** Equality check used to avoid unnecessary writes (defaults to Object.is). */\n isEqual?: (a: T, b: T) => boolean;\n },\n ): void {\n const emitEvent = options?.emitEvent ?? false;\n const mapKey = options?.mapKey ?? String;\n const isEqual = options?.isEqual ?? Object.is;\n\n for (const [k, v] of Object.entries(values) as [K, T][]) {\n const controlName = mapKey(k);\n const ctrl = controlRecord.get(controlName) as FormControl<T> | null;\n if (!ctrl) {\n // If the control isn't present, skip silently. Callers can validate separately.\n continue;\n }\n if (!isEqual(ctrl.value, v)) {\n ctrl.setValue(v, { emitEvent });\n }\n }\n }\n\n /**\n * Clears the search form.\n */\n public handleClearForm(): void {\n this.form.reset();\n }\n\n /**\n * Handles the scroll of the component error from the summary\n *\n * @param fieldId - Field id of the component\n */\n public scrollTo(fieldId: string): void {\n this['scroll'](fieldId);\n }\n\n /**\n * Handles route with the supplied route\n *\n * @param route string of route\n * @param options optional parameters\n */\n public handleRoute(route: string, options?: IAbstractFormBaseHandleRouteOptions): void {\n const { nonRelative = false, event, routeData, fragment } = options ?? {};\n\n if (event) {\n event.preventDefault();\n }\n\n this.unsavedChanges.emit(this.hasUnsavedChanges());\n\n const navigationExtras = {\n ...(nonRelative ? {} : { relativeTo: this.activatedRoute.parent }),\n ...(routeData ? { state: routeData } : {}),\n ...(fragment ? { fragment } : {}),\n };\n\n this.router.navigate([route], navigationExtras);\n }\n\n /**\n * Handles the form submission event.\n *\n * @param event - The form submission event.\n * @returns void\n */\n public handleFormSubmit(event: SubmitEvent): void {\n this.handleErrorMessages();\n\n if (this.form.valid) {\n this.formSubmitted = true;\n const nestedFlow = event.submitter ? event.submitter.className.includes('nested-flow') : false;\n this.unsavedChanges.emit(this.hasUnsavedChanges());\n this.formSubmit.emit({ formData: this.form.value, nestedFlow: nestedFlow });\n } else {\n this.focusAndScrollToErrorSummary();\n }\n }\n\n /**\n * Handles the input event to convert all letters in the input value to uppercase.\n * This method is triggered by an input event and modifies the input value directly.\n *\n * @param event - The input event triggered by the user.\n */\n public handleUppercaseInputMask(event: Event): void {\n const input = event.target as HTMLInputElement;\n input.value = this.utilsService.upperCaseAllLetters(input.value);\n }\n\n public ngOnInit(): void {\n if (this.form) {\n this.setupListener();\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-form-parent-base.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-form-parent-base/abstract-form-parent-base.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-form-parent-base/hmcts-opal-frontend-common-components-abstract-abstract-form-parent-base.ts"],"sourcesContent":["import { inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CanDeactivateTypes } from '@hmcts/opal-frontend-common/guards/can-deactivate/types';\n\nexport abstract class AbstractFormParentBaseComponent {\n private readonly router = inject(Router);\n private readonly activatedRoute = inject(ActivatedRoute);\n\n public stateUnsavedChanges!: boolean;\n\n /**\n * Navigates to a specified route using the Angular Router.\n *\n * @param route - The target route to navigate to.\n * @param nonRelative - A boolean indicating whether the navigation should be absolute (true)\n * or relative to the current route (false). Defaults to false.\n * @param event - (Optional) The event object, typically from a click event, to prevent its default behavior.\n * @param routeData - (Optional) Additional data to pass to the target route's state.\n */\n protected routerNavigate(\n route: string,\n nonRelative: boolean = false,\n event?: Event,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n routeData?: any,\n fragment?: string,\n ): void {\n if (event) {\n event.preventDefault();\n }\n\n const navigationExtras = {\n ...(nonRelative ? {} : { relativeTo: this.activatedRoute.parent }),\n ...(routeData ? { state: routeData } : {}),\n ...(fragment ? { fragment } : {}),\n };\n\n this.router.navigate([route], navigationExtras);\n }\n\n /**\n * Checks if an object has any non-empty values.\n *\n * @param form - The object representing form data with key-value pairs.\n * @returns A boolean indicating whether the object has any non-empty values.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected hasFormValues(form: { [key: string]: any }): boolean {\n return Object.values(form).some(Boolean);\n }\n\n /**\n * If the user navigates externally from the site or closes the tab\n * Check if there is unsaved changes form state -> warning message\n * Otherwise -> no warning message\n *\n * @returns boolean\n */\n protected canDeactivate(): CanDeactivateTypes {\n if (this.stateUnsavedChanges) {\n return false;\n } else {\n return true;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAIsB,+BAA+B,CAAA;AAClC,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAEjD,IAAA,mBAAmB;AAE1B;;;;;;;;AAQG;AACO,IAAA,cAAc,CACtB,KAAa,EACb,WAAA,GAAuB,KAAK,EAC5B,KAAa;;AAEb,IAAA,SAAe,EACf,QAAiB,EAAA;QAEjB,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE;QACxB;AAEA,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,IAAI,WAAW,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AAClE,YAAA,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC1C,YAAA,IAAI,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;SAClC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACjD;AAEA;;;;;AAKG;;AAEO,IAAA,aAAa,CAAC,IAA4B,EAAA;QAClD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAC1C;AAEA;;;;;;AAMG;IACO,aAAa,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,OAAO,KAAK;QACd;aAAO;AACL,YAAA,OAAO,IAAI;QACb;IACF;AACD;;ACjED;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-nested-form-base/abstract-nested-form-base.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-nested-form-base/hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { AbstractControl, FormGroup, ValidatorFn } from '@angular/forms';\nimport { AbstractFormBaseComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-form-base';\nimport { merge } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractNestedFormBaseComponent extends AbstractFormBaseComponent {\n /**\n * Installs all controls from a **detached** builder group into a target FormGroup (defaults to `this.form`).\n *\n * @param source A FormGroup created locally (its controls must not already belong to another parent).\n * @param target The FormGroup to install the controls into. Defaults to `this.form`.\n *\n * Notes:\n * - This method **moves** the control instances from `source` into `target` (no cloning).\n * - If a control already has a parent, Angular will throw when adding it to `target`.\n */\n protected addControlsToNestedFormGroup(source: FormGroup, target: FormGroup = this.form): void {\n for (const [name, ctrl] of Object.entries(source.controls)) {\n target.addControl(name, ctrl);\n }\n }\n\n /**\n * Removes controls from `target` whose names are present in `source` (defaults to `this.form`).\n *\n * @param source A FormGroup whose control names identify which controls to remove.\n * @param target The FormGroup to remove controls from. Defaults to `this.form`.\n *\n * Use this with the same builder group you used to add controls so you only remove what you added.\n */\n protected removeControlsFromNestedFormGroup(source: FormGroup, target: FormGroup = this.form): void {\n for (const name of Object.keys(source.controls)) {\n target.removeControl(name);\n }\n }\n\n /**\n * Adds or removes one or more validators on a control and updates validity without emitting events.\n *\n * @param control The control to modify. If null/undefined, the method no-ops and returns `false`.\n * @param validators A single `ValidatorFn` or an array of `ValidatorFn`s to add/remove.\n * @param present When `true`, validators are added; when `false`, the same validators are removed.\n * @returns The `present` flag (for convenient inline use in conditionals).\n */\n protected setValidatorPresence(\n control: AbstractControl | null,\n validators: ValidatorFn | ValidatorFn[],\n present: boolean,\n ): boolean {\n if (!control) return false;\n const list = Array.isArray(validators) ? validators : [validators];\n if (present) {\n control.addValidators(list);\n } else {\n control.removeValidators(list);\n }\n control.updateValueAndValidity({ emitEvent: false, onlySelf: true });\n return present;\n }\n\n /**\n * Truthy-value helper used by multiple sub-forms.\n *\n * Returns `false` for `null`/`undefined`. For strings, trims whitespace and checks for non-zero length.\n * For all other types, returns `true` (treat non-string values as present).\n */\n protected hasValue(v: unknown): boolean {\n if (v == null) return false;\n return typeof v === 'string' ? v.trim().length > 0 : true;\n }\n\n /**\n * Resets a list of controls and re-computes validity without emitting value-change events.\n *\n * For each control: clears errors, resets the value to `null`, and calls `updateValueAndValidity`.\n * This means built-in validators (e.g. `required`) will be re-applied after reset.\n */\n protected resetAndValidateControls(controls: (AbstractControl | null)[]): void {\n for (const c of controls) {\n if (!c) continue;\n c.setErrors(null);\n c.reset(null, { emitEvent: false });\n c.updateValueAndValidity({ emitEvent: false, onlySelf: true });\n }\n }\n\n /**\n * Resets a FormGroup’s value/state and re-computes validity without emitting value-change events.\n *\n * Performs: `group.reset(undefined)`, marks pristine/untouched, then `updateValueAndValidity`.\n */\n protected resetAndValidateFormGroup(group: FormGroup): void {\n group.reset(undefined, { emitEvent: false });\n group.markAsPristine();\n group.markAsUntouched();\n group.updateValueAndValidity({ emitEvent: false, onlySelf: true });\n }\n\n /**\n * Subscribes a handler to the `valueChanges` of multiple controls, with auto-unsubscribe on destroy.\n *\n * @param handler Function invoked whenever **any** provided control emits a value change.\n * @param controls One or more controls to observe; falsy entries are ignored.\n *\n * Implementation detail: merges the streams and unsubscribes via `takeUntil(this.ngUnsubscribe)`.\n */\n protected subscribeValidation(handler: () => void, ...controls: (AbstractControl | null)[]): void {\n const streams = controls.filter(Boolean).map((c) => c!.valueChanges);\n if (!streams.length) return;\n merge(...streams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(handler);\n }\n\n /**\n * @inheritdoc\n *\n * Handles cleanup logic when the component is destroyed.\n *\n * - Clears local child error definitions and emits an empty map to the parent.\n * - Removes all controls added by this sub-form from the parent form, if nested.\n * - Calls the base class's `ngOnDestroy` for additional teardown.\n */\n public override ngOnDestroy(): void {\n // Remove controls this sub-form added to the parent (if nested)\n if (this.form?.parent) {\n for (const name of Object.keys(this.form.controls)) {\n this.form.removeControl(name);\n }\n }\n\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-interfaces.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table/interfaces/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table-pagination/abstract-sortable-table-pagination.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table-pagination/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.ts"],"sourcesContent":["import { Component, computed, signal } from '@angular/core';\nimport { AbstractSortableTableComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractSortableTablePaginationComponent extends AbstractSortableTableComponent {\n // Signal for the current page. Used to calculate the start and end indices for pagination.\n public currentPageSignal = signal(1);\n\n // Signal for the number of items per page. Determines how many items are displayed on each page.\n public itemsPerPageSignal = signal(10);\n\n // Signal for the start index (1-based). Automatically updates when `currentPageSignal` or `itemsPerPageSignal` changes.\n public startIndexComputed = computed(() => {\n const currentPage = this.currentPageSignal();\n return (currentPage - 1) * this.itemsPerPageSignal() + 1;\n });\n\n /**\n * Computes the end index for the current page of the sorted table data.\n * Ensures the end index does not exceed the total number of items.\n *\n * @returns The zero-based index of the last item to display on the current page.\n */\n public endIndexComputed = computed(() => {\n return Math.min(this.sortedTableDataSignal().length, this.startIndexComputed() + this.itemsPerPageSignal() - 1);\n });\n\n // Computed signal for paginated table data. Reactively slices `displayTableDataSignal` based on `startIndexComputed` and `endIndexComputed`.\n public paginatedTableDataComputed = computed(() => {\n const data = this.sortedTableDataSignal(); // Full table data\n\n return data.slice(this.startIndexComputed() - 1, this.endIndexComputed()); // Return paginated data subset\n });\n\n /**\n * Handles sorting changes and resets the page to the first page.\n *\n * @param event - The sorting event containing:\n * - `key`: The column key to sort by.\n * - `sortType`: The sorting order, either 'ascending' or 'descending'.\n *\n * Resets `currentPageSignal` to 1 and triggers re-sorting of `displayTableDataSignal`.\n */\n public override onSortChange(event: { key: string; sortType: 'ascending' | 'descending' }): void {\n super.onSortChange(event); // Update the sort state and sort the data\n this.currentPageSignal.set(1); // Reset the page to the first page\n }\n\n /**\n * Applies the current filters to the table data.\n *\n * Overrides the base implementation to additionally reset the pagination to the first page\n * after filters are applied.\n *\n * @override\n */\n public override onApplyFilters(): void {\n super.onApplyFilters();\n this.currentPageSignal.set(1); // Reset to first page after filtering\n }\n\n /**\n * Handles the event when the page is changed.\n *\n * @param newPage - The new page number to set. If the provided page number is out of range,\n * it will be clamped between 1 and the total number of pages.\n */\n public onPageChange(newPage: number): void {\n const totalPages = Math.ceil(this.displayTableDataSignal().length / this.itemsPerPageSignal());\n this.currentPageSignal.set(Math.max(1, Math.min(newPage, totalPages)));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAMM,MAAgB,wCAAyC,SAAQ,8BAA8B,CAAA;;AAE5F,IAAA,iBAAiB,GAAG,MAAM,CAAC,CAAC,wFAAC;;AAG7B,IAAA,kBAAkB,GAAG,MAAM,CAAC,EAAE,yFAAC;;AAG/B,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC5C,QAAA,OAAO,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC;AAC1D,IAAA,CAAC,yFAAC;AAEF;;;;;AAKG;AACI,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACjH,IAAA,CAAC,uFAAC;;AAGK,IAAA,0BAA0B,GAAG,QAAQ,CAAC,MAAK;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAE1C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC5E,IAAA,CAAC,iGAAC;AAEF;;;;;;;;AAQG;AACa,IAAA,YAAY,CAAC,KAA4D,EAAA;AACvF,QAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC;AAEA;;;;;;;AAOG;IACa,cAAc,GAAA;QAC5B,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC;AAEA;;;;;AAKG;AACI,IAAA,YAAY,CAAC,OAAe,EAAA;AACjC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACxE;uGAlEoB,wCAAwC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wCAAwC,+FAFlD,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEQ,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBAH7D,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;;ACLD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-types.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table/types/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-types.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table/abstract-sortable-table.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.ts"],"sourcesContent":["import { Component, EventEmitter, OnInit, Output, effect, inject, signal } from '@angular/core';\nimport {\n IAbstractSortState,\n IAbstractTableData,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/interfaces';\nimport { SortService } from '@hmcts/opal-frontend-common/services/sort-service';\nimport {\n SortableValuesType,\n SortDirectionType,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/types';\nimport { AbstractTableFilterComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractSortableTableComponent extends AbstractTableFilterComponent implements OnInit {\n private readonly sortService = inject(SortService);\n\n /**\n * Synchronizes the sorted table data with the current filter and sort state.\n *\n * This effect observes changes to the filtered table data and the sort state signals.\n * If no active sort key is found (i.e., no sorting is applied), it sets the sorted table data\n * to a shallow copy of the filtered data. Otherwise, sorting logic should be applied elsewhere.\n *\n * @protected\n */\n protected syncSortedDataEffect = effect(() => {\n const filtered = this.filteredTableDataSignal();\n const currentSort = this.sortStateSignal();\n\n const activeSortKey = Object.keys(currentSort).find((k) => currentSort[k] !== 'none');\n\n if (!activeSortKey) {\n // No sort applied – use filtered data directly\n this.sortedTableDataSignal.set([...filtered]);\n }\n });\n\n public override displayTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public override filteredTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public sortedTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public abstractExistingSortState: IAbstractSortState | null = null;\n public sortStateSignal = signal<IAbstractSortState>({});\n public sortedColumnTitleSignal = signal<string>('');\n public sortedColumnDirectionSignal = signal<SortDirectionType>('none');\n\n @Output() abstractSortState = new EventEmitter<IAbstractSortState>();\n\n /**\n * Creates an initial sort state for a table based on the provided table data.\n *\n * @param tableData - Array of table data objects representing table rows.\n * @returns Initial sort state object with column names as keys and 'none' as values.\n */\n private createSortState(tableData: IAbstractTableData<SortableValuesType>[] | null): IAbstractSortState {\n return tableData?.length\n ? Object.keys(tableData[0]).reduce<IAbstractSortState>((state, key) => {\n state[key] = 'none';\n return state;\n }, {})\n : {};\n }\n /**\n * Initializes the sort state for the sortable table component.\n *\n * This method sets the initial sort state based on the existing sort state or creates a new one\n * if none exists. It then updates the sort state signal with the initial sort state.\n *\n * If an existing sort state is found, it iterates over each entry and triggers the sort change\n * for each key that has a sort type other than 'none'.\n *\n * @private\n * @returns {void}\n */\n private initialiseSortState(): void {\n const existingSortState = this.abstractExistingSortState;\n const initialSortState = existingSortState || this.createSortState(this.displayTableDataSignal());\n this.applyFilterState();\n\n this.sortStateSignal.set(initialSortState);\n\n if (existingSortState) {\n for (const [key, sortType] of Object.entries(existingSortState)) {\n if (sortType !== 'none') {\n this.onSortChange({ key, sortType });\n }\n }\n }\n this.getSortedColumn();\n }\n\n /**\n * Updates the sort state for a given column key and sort type.\n * Resets the sort state for all other columns to 'none'.\n *\n * @param key - The column to sort by.\n * @param sortType - Sorting order ('ascending' or 'descending').\n */\n private updateSortState(key: string, sortType: 'ascending' | 'descending'): void {\n this.sortStateSignal.set(\n Object.keys(this.sortStateSignal()).reduce<IAbstractSortState>((state, columnKey) => {\n state[columnKey] = columnKey === key ? sortType : 'none';\n return state;\n }, {}),\n );\n }\n\n /**\n * Retrieves the sorted table data based on the specified key and sort type.\n *\n * @param key - The key of the property to sort by.\n * @param sortType - The type of sorting to apply, either 'ascending' or 'descending'.\n * @returns An array of sorted table data objects.\n */\n private getSortedTableData(\n key: string,\n sortType: 'ascending' | 'descending',\n ): IAbstractTableData<SortableValuesType>[] {\n return sortType === 'ascending'\n ? (this.sortService.sortObjectArrayAsc(\n this.filteredTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValuesType>[])\n : (this.sortService.sortObjectArrayDesc(\n this.filteredTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValuesType>[]);\n }\n\n /**\n * Determines the first column with a sort state other than 'none' and updates the sorted column signals accordingly.\n *\n * - If a sorted column is found, updates the `sortedColumnTitleSignal` and `sortedColumnDirectionSignal` with the column key and state.\n * - If no sorted column is found, sets the `sortedColumnTitleSignal` to an empty string and `sortedColumnDirectionSignal` to 'none'.\n *\n * @private\n * @returns {void}\n */\n private getSortedColumn(): void {\n // Find the first column that has a sort state other than 'none'\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const sortedColumn = Object.entries(this.sortStateSignal()).find(([_, state]) => state !== 'none');\n\n // If a sorted column is found, set the signal to the sorted column key and state\n if (sortedColumn) {\n const [columnKey, state] = sortedColumn;\n this.sortedColumnTitleSignal.set(columnKey);\n this.sortedColumnDirectionSignal.set(state);\n } else {\n // Otherwise, set the signal to null\n this.sortedColumnTitleSignal.set('');\n this.sortedColumnDirectionSignal.set('none');\n }\n }\n\n /**\n * Handles the change in sorting for the table.\n *\n * @param event - An object containing the key to sort by and the sort type.\n * @param event.key - The key of the column to sort.\n * @param event.sortType - The type of sorting to apply ('ascending' or 'descending').\n *\n * This method updates the sort state, sorts the table data based on the provided key and sort type,\n * updates the table data signal, and emits the updated sort state.\n */\n protected onSortChange(event: { key: string; sortType: 'ascending' | 'descending' }): void {\n const { key, sortType } = event;\n\n this.updateSortState(key, sortType);\n this.getSortedColumn();\n const sortedData = this.getSortedTableData(key, sortType);\n\n // Update the table data signal\n this.sortedTableDataSignal.set(sortedData);\n\n // Emit the updated sort state\n this.abstractSortState.emit(this.sortStateSignal());\n }\n\n /**\n * Lifecycle hook to initialise the sort state.\n */\n public ngOnInit(): void {\n this.initialiseSortState();\n }\n /**\n * Applies the current filters to the table data and updates the sorted data accordingly.\n *\n * This method overrides the parent implementation to additionally handle sorting.\n * If there is an active sort key, it applies the corresponding sort to the filtered data.\n * If no sort key is active, it simply updates the sorted data to match the filtered data.\n *\n * @override\n */\n public override onApplyFilters(): void {\n super.onApplyFilters();\n\n const key = this.sortedColumnTitleSignal();\n const sortType = this.sortedColumnDirectionSignal();\n\n if (!key || sortType === 'none') {\n this.sortedTableDataSignal.set([...this.filteredTableDataSignal()]);\n } else {\n this.onSortChange({ key, sortType });\n }\n }\n\n /**\n * Clears all filters applied to the table and restores the data to its unfiltered state.\n * If a sort is currently active, re-applies the sort after clearing filters.\n * Otherwise, resets the sorted table data to match the filtered data.\n *\n * @override\n */\n public override clearAllFilters(): void {\n super.clearAllFilters();\n\n const key = this.sortedColumnTitleSignal();\n const sortType = this.sortedColumnDirectionSignal();\n\n if (!key || sortType === 'none') {\n this.sortedTableDataSignal.set([...this.filteredTableDataSignal()]);\n } else {\n this.onSortChange({ key, sortType });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-tab-data.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-tab-data/abstract-tab-data.ts","../../../projects/opal-frontend-common/components/abstract/abstract-tab-data/hmcts-opal-frontend-common-components-abstract-abstract-tab-data.ts"],"sourcesContent":["import { inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Observable, switchMap, map, shareReplay, distinctUntilChanged, filter, startWith, takeUntil, tap } from 'rxjs';\n\nexport abstract class AbstractTabData {\n private readonly router = inject(Router);\n public readonly activatedRoute = inject(ActivatedRoute);\n public activeTab!: string;\n\n /**\n * Creates an observable stream that fetches and transforms data based on the current tab.\n *\n * It fetches data using the `fetchData` function with parameters obtained from `getParams`,\n * transforms the result using the `transform` function, and shares the result among subscribers.\n *\n * @template T The type of data returned by the fetchData observable.\n * @template U The type of the value emitted by the resulting observable.\n * @param fragment$ - An observable emitting the current tab identifier.\n * @param getParams - A function that returns parameters for data fetching based on the tab.\n * @param fetchData - A function that fetches data as an observable, given the parameters.\n * @param transform - A function to transform the fetched data before emission.\n * @returns An observable emitting the transformed fetched data, depending on the current tab.\n */\n private createConditionalStream<T, U>(\n fragment$: Observable<string>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getParams: (tab?: string) => any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchData: (params: any) => Observable<T>,\n transform: (data: T) => U,\n ): Observable<U> {\n return fragment$.pipe(switchMap((tab) => fetchData(getParams(tab)).pipe(map(transform), shareReplay(1))));\n }\n\n /**\n * Returns an observable stream of the current URL fragment, starting with the initial fragment or a default tab.\n *\n * This method listens to changes in the route fragment and emits the fragment value as a string.\n * It starts with the current fragment (or the provided default tab if none exists), filters out falsy values,\n * ensures only distinct values are emitted, and completes when the provided `destroy$` observable emits.\n *\n * @param defaultTab - The default tab to use if no fragment is present in the route snapshot.\n * @param destroy$ - An observable that signals when to complete the fragment stream.\n * @returns An observable emitting the current fragment string, updating on changes, and completing on destroy.\n */\n protected getFragmentStream(defaultTab: string, destroy$: Observable<void>): Observable<string> {\n return this.activatedRoute.fragment.pipe(\n startWith(this.activatedRoute.snapshot.fragment ?? defaultTab),\n filter((frag): frag is string => !!frag),\n map((tab) => tab),\n distinctUntilChanged(),\n takeUntil(destroy$),\n );\n }\n\n /**\n * Wraps a fragment stream and executes the provided callback on each tab change.\n *\n * @param fragment$ - The fragment observable stream.\n * @param clearFn - A function to execute when the tab changes.\n * @returns The fragment stream with a side-effect to run `clearFn` on each emission.\n */\n protected clearCacheOnTabChange(fragment$: Observable<string>, clearFn: () => void): Observable<string> {\n return fragment$.pipe(tap(() => clearFn()));\n }\n\n /**\n * Creates an observable data stream for a tab, transforming the fetched data as needed.\n *\n * @template T The type of the data fetched.\n * @template R The type of the transformed data.\n * @param fragment$ An observable emitting the current tab fragment.\n * @param getParams A function that returns fetch parameters based on the tab.\n * @param fetchData A function that fetches data given the parameters.\n * @param transform A function to transform the fetched data.\n * @returns An observable emitting the transformed data for the current tab.\n */\n public createTabDataStream<T, R>(\n fragment$: Observable<string>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getParams: (tab?: string) => any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchData: (params: any) => Observable<T>,\n transform: (data: T) => R,\n ): Observable<R> {\n return this.createConditionalStream<T, R>(fragment$, getParams, fetchData, transform);\n }\n\n /**\n * Creates an observable stream that emits a formatted count string based on the current tab and fragment.\n *\n * @template T - The type of the data returned by the fetchCount observable.\n * @param fragment$ - An observable emitting the current fragment or tab identifier.\n * @param getParams - A function that returns the parameters required for fetching the count.\n * @param fetchCount - A function that takes the parameters and returns an observable emitting the count data.\n * @param extractCount - A function that extracts the numeric count from the fetched data.\n * @param formatFn - (Optional) A function to format the count as a string. Defaults to a simple string conversion.\n * @returns An observable that emits the formatted count string whenever the fragment or parameters change.\n */\n public createCountStream<T>(\n fragment$: Observable<string>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getParams: (tab?: string) => any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchCount: (params: any) => Observable<T>,\n extractCount: (data: T) => number,\n formatFn: (count: number) => string = (c) => `${c}`,\n ): Observable<string> {\n return fragment$.pipe(\n switchMap((tab) =>\n fetchCount(getParams(tab)).pipe(\n map((data) => formatFn(extractCount(data))),\n shareReplay(1),\n ),\n ),\n );\n }\n\n /**\n * Handles the tab switch by updating the active tab and triggering a router fragment update.\n *\n * @param fragment - The identifier of the tab to activate.\n */\n public handleTabSwitch(fragment: string): void {\n this.activeTab = fragment;\n this.router.navigate([], {\n relativeTo: this.activatedRoute.parent,\n fragment,\n });\n }\n\n /**\n * Formats a count value, capping it at a specified maximum.\n *\n * If the count exceeds the cap, returns a string in the format \"{cap}+\".\n * Otherwise, returns the count as a string.\n *\n * @param count - The number to format.\n * @param cap - The maximum value to display before capping.\n * @returns A string representing the count, capped if necessary.\n */\n public formatCountWithCap(count: number, cap: number): string {\n return count > cap ? `${cap}+` : `${count}`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAIsB,eAAe,CAAA;AAClB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAChD,IAAA,SAAS;AAEhB;;;;;;;;;;;;;AAaG;AACK,IAAA,uBAAuB,CAC7B,SAA6B;;IAE7B,SAAgC;;AAEhC,IAAA,SAAyC,EACzC,SAAyB,EAAA;AAEzB,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3G;AAEA;;;;;;;;;;AAUG;IACO,iBAAiB,CAAC,UAAkB,EAAE,QAA0B,EAAA;QACxE,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CACtC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,IAAI,UAAU,CAAC,EAC9D,MAAM,CAAC,CAAC,IAAI,KAAqB,CAAC,CAAC,IAAI,CAAC,EACxC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EACjB,oBAAoB,EAAE,EACtB,SAAS,CAAC,QAAQ,CAAC,CACpB;IACH;AAEA;;;;;;AAMG;IACO,qBAAqB,CAAC,SAA6B,EAAE,OAAmB,EAAA;AAChF,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IAC7C;AAEA;;;;;;;;;;AAUG;AACI,IAAA,mBAAmB,CACxB,SAA6B;;IAE7B,SAAgC;;AAEhC,IAAA,SAAyC,EACzC,SAAyB,EAAA;AAEzB,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAO,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACvF;AAEA;;;;;;;;;;AAUG;AACI,IAAA,iBAAiB,CACtB,SAA6B;;IAE7B,SAAgC;;IAEhC,UAA0C,EAC1C,YAAiC,EACjC,QAAA,GAAsC,CAAC,CAAC,KAAK,CAAA,EAAG,CAAC,CAAA,CAAE,EAAA;QAEnD,OAAO,SAAS,CAAC,IAAI,CACnB,SAAS,CAAC,CAAC,GAAG,KACZ,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAC7B,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAC3C,WAAW,CAAC,CAAC,CAAC,CACf,CACF,CACF;IACH;AAEA;;;;AAIG;AACI,IAAA,eAAe,CAAC,QAAgB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;AACvB,YAAA,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;YACtC,QAAQ;AACT,SAAA,CAAC;IACJ;AAEA;;;;;;;;;AASG;IACI,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;AAClD,QAAA,OAAO,KAAK,GAAG,GAAG,GAAG,CAAA,EAAG,GAAG,CAAA,CAAA,CAAG,GAAG,CAAA,EAAG,KAAK,EAAE;IAC7C;AACD;;AChJD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-table-filter-interfaces.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/interfaces/hmcts-opal-frontend-common-components-abstract-abstract-table-filter-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-table-filter-types.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/types/hmcts-opal-frontend-common-components-abstract-abstract-table-filter-types.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/abstract-table-filter.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.ts"],"sourcesContent":["import { Component, signal, computed, Signal } from '@angular/core';\nimport {\n IAbstractTableData,\n IAbstractTableFilterCategory,\n IAbstractTableFilterOption,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter/interfaces';\nimport { SortableValuesType } from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter/types';\n\n@Component({ template: '' })\nexport abstract class AbstractTableFilterComponent {\n public displayTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public filteredTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public filterTags = signal<IAbstractTableFilterCategory[]>([]);\n public keyword = signal<string>('');\n public appliedFilterTags = signal<IAbstractTableFilterCategory[]>([]);\n public appliedKeyword = signal<string>('');\n\n /**\n * A computed signal that returns the currently selected filter tags.\n * It filters the filterTags signal to include only those options that are selected,\n * grouped by their category name.\n *\n * @returns An array of filter categories each containing only the selected options.\n */\n public abstractSelectedTags: Signal<IAbstractTableFilterCategory[]> = computed(() =>\n this.getSelectedOptionsFromTags(this.filterTags()),\n );\n\n /**\n * Determines whether a given item matches a specific filter option within a category.\n * @param item The data item to test.\n * @param categoryName The category name to check within the item.\n * @param option The filter option to match against.\n * @returns True if the item's value for the category matches the option's value; otherwise false.\n */\n protected matchItemWithFilterOption(\n item: IAbstractTableData<SortableValuesType>,\n categoryName: string,\n option: IAbstractTableFilterOption,\n ): boolean {\n return item?.[categoryName] === option.value;\n }\n\n /**\n * Determines whether a given item matches the keyword filter.\n * Checks if any value in the item contains the keyword (case-insensitive).\n * @param item The data item to test.\n * @param keyword The keyword to match against.\n * @returns True if any value in the item contains the keyword; otherwise false.\n */\n protected matchItemWithKeyword(item: IAbstractTableData<SortableValuesType>, keyword: string): boolean {\n return Object.values(item).some((value) => value?.toString().toLowerCase().includes(keyword));\n }\n\n /**\n * Extracts and returns categories from the provided tags that have at least one selected option.\n *\n * For each category in the input array, this method filters its options to include only those marked as selected.\n * Only categories with at least one selected option are included in the returned array.\n *\n * @param tags - An array of category objects, each containing a list of options.\n * @returns An array of category objects, each with only the selected options, and only categories with at least one selected option.\n */\n protected getSelectedOptionsFromTags(tags: IAbstractTableFilterCategory[]): IAbstractTableFilterCategory[] {\n return tags\n .map((group) => ({\n categoryName: group.categoryName,\n options: group.options.filter((option) => option.selected),\n }))\n .filter((group) => group.options.length > 0);\n }\n\n /**\n * Updates the keyword used to filter the table data.\n * @param newKeyword The new keyword string to filter by.\n */\n public onKeywordChange(newKeyword: string): void {\n this.keyword.set(newKeyword);\n }\n\n /**\n * Updates the selection state of a filter option within a category.\n * @param categoryName The name of the filter category.\n * @param optionValue The value of the filter option to update.\n * @param selected Whether the option is selected (true) or deselected (false).\n */\n public onCategoryCheckboxChange(categoryName: string, optionValue: string | number, selected: boolean): void {\n const updatedFilterTags = this.filterTags().map((group) => {\n if (group.categoryName === categoryName) {\n return {\n ...group,\n options: group.options.map((option) => (option.value === optionValue ? { ...option, selected } : option)),\n };\n }\n return group;\n });\n this.filterTags.set(updatedFilterTags);\n }\n\n /**\n * Removes a selected filter tag by deselecting the corresponding filter option.\n * @param categoryName The name of the filter category.\n * @param optionValue The value of the filter option to remove.\n */\n public removeTag(categoryName: string, optionValue: string | number): void {\n this.onCategoryCheckboxChange(categoryName, optionValue, false);\n }\n\n /**\n * Clears all applied filters and resets the filter state.\n *\n * This method performs the following actions:\n * - Resets the keyword and applied keyword to empty strings.\n * - Iterates through all filter tag groups and sets each option's `selected` property to `false`.\n * - Updates both the current and applied filter tags with the cleared state.\n * - Applies the updated filter state.\n */\n public clearAllFilters(): void {\n this.keyword.set('');\n this.appliedKeyword.set('');\n\n const clearedFilterTags = this.filterTags().map((group) => ({\n ...group,\n options: group.options.map((option) => ({ ...option, selected: false })),\n }));\n\n this.filterTags.set(clearedFilterTags);\n this.appliedFilterTags.set(clearedFilterTags);\n\n this.applyFilterState();\n }\n\n /**\n * Initializes and updates the filtered table data based on the currently applied keyword and filter tags.\n *\n * This method performs the following steps:\n * 1. Retrieves the current table data, applied keyword, and filter tags.\n * 2. If filter tags are present, filters the data to include only items that match all selected filter options.\n * 3. If a keyword is present, further filters the data to include only items that match the keyword.\n * 4. Updates the filtered table data signal with the resulting filtered data.\n *\n * @remarks\n * - Filtering by tags requires each item to match every group of filter tags.\n * - Filtering by keyword is case-insensitive and trims whitespace.\n */\n public applyFilterState(): void {\n const data = this.displayTableDataSignal();\n const keyword = this.appliedKeyword().toLowerCase().trim();\n const tags = this.appliedFilterTags();\n\n const selectedTagGroups = this.getSelectedOptionsFromTags(tags);\n\n let filtered = data;\n\n if (selectedTagGroups.length > 0) {\n filtered = filtered.filter((item) =>\n selectedTagGroups.every((group) =>\n group.options.some((option) => this.matchItemWithFilterOption(item, group.categoryName, option)),\n ),\n );\n }\n\n if (keyword) {\n filtered = filtered.filter((item) => this.matchItemWithKeyword(item, keyword));\n }\n\n this.filteredTableDataSignal.set(filtered);\n }\n\n /**\n * Applies the current filter tags and keyword to the table data.\n *\n * This method updates the `appliedFilterTags` and `appliedKeyword` properties\n * with the current filter values, then re-initialises the filtered data set\n * by invoking `applyFilterState()`.\n *\n * Typically called when the user confirms or applies filter changes in the UI.\n */\n public onApplyFilters(): void {\n this.appliedFilterTags.set(this.filterTags());\n this.appliedKeyword.set(this.keyword());\n this.applyFilterState();\n }\n\n /**\n * Sets the data to be displayed in the table.\n *\n * @param data - An array of table data objects conforming to the `IAbstractTableData<SortableValuesType>` interface.\n */\n public setTableData(data: IAbstractTableData<SortableValuesType>[]): void {\n this.displayTableDataSignal.set(data);\n }\n\n /**\n * Resets the filter and keyword state to the provided values and reapplies them.\n *\n * @param tags - The filter tag state to apply (including selected values).\n * @param keyword - The keyword string to apply (optional, defaults to empty).\n */\n public resetFiltersTo(tags: IAbstractTableFilterCategory[], keyword: string = ''): void {\n this.filterTags.set(tags);\n this.keyword.set(keyword);\n this.appliedFilterTags.set(tags);\n this.appliedKeyword.set(keyword);\n this.applyFilterState();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-interfaces.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/interfaces/hmcts-opal-frontend-common-components-abstract-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete-interfaces.mjs","sources":["../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/interfaces/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs","sources":["../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.ts","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.html","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n afterNextRender,\n inject,\n} from '@angular/core';\nimport { FormControl, AbstractControl, ReactiveFormsModule } from '@angular/forms';\nimport { IAlphagovAccessibleAutocompleteItem } from './interfaces/alphagov-accessible-autocomplete-item.interface';\nimport { AccessibleAutocompleteProps } from 'accessible-autocomplete';\nimport { Subject, pairwise, startWith, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'opal-lib-alphagov-accessible-autocomplete',\n imports: [ReactiveFormsModule],\n templateUrl: './alphagov-accessible-autocomplete.component.html',\n styleUrl: './alphagov-accessible-autocomplete.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlphagovAccessibleAutocompleteComponent implements OnInit, OnDestroy, OnChanges {\n private readonly changeDetector: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _control!: FormControl;\n private readonly ngUnsubscribe = new Subject<void>();\n private describedByObserver: MutationObserver | null = null;\n private containerObserver: MutationObserver | null = null;\n\n @Input({ required: true }) labelText!: string;\n @Input({ required: false }) labelClasses!: string;\n @Input({ required: true }) inputId!: string;\n @Input({ required: true }) inputName!: string;\n @Input({ required: false }) inputClasses!: string;\n @Input({ required: false }) hintText!: string;\n @Input({ required: true }) autoCompleteItems: IAlphagovAccessibleAutocompleteItem[] = [];\n @Input() showAllValues = true;\n @Input({ required: false }) errors: string | null = null;\n\n @ViewChild('autocomplete') autocompleteContainer!: ElementRef<HTMLElement>;\n\n public autoCompleteId!: string;\n\n @Input({ required: true }) set control(abstractControl: AbstractControl | null) {\n // Form controls are passed in as abstract controls, we need to re-cast it.\n this._control = abstractControl as FormControl;\n }\n\n constructor() {\n afterNextRender(() => {\n // Only trigger the render of the component in the browser\n this.configureAutoComplete();\n });\n }\n\n /**\n * Gets the control for the alphagov-accessible-autocomplete component.\n * @returns The control for the component.\n */\n get getControl() {\n return this._control;\n }\n\n /**\n * Handles the confirmation of a selected name.\n *\n * @param selectedName - The selected name.\n * @returns void\n */\n\n private handleOnConfirm(selectedName: string | undefined): void {\n // selectedName is populated on selecting an option but is undefined onBlur, so we need to grab the input value directly from the input\n const control = this._control;\n const name = selectedName ?? (document.querySelector(`#${this.autoCompleteId}`) as HTMLInputElement).value;\n const selectedItem = this.autoCompleteItems.find((item) => item.name === name) ?? null;\n const previousValue = control.value;\n const selectedValue = selectedItem?.value ?? null;\n\n control.setValue(selectedValue);\n control.markAsTouched();\n\n // Handles initial empty state when the user clicks away from the input\n if (selectedItem === null && previousValue === null) {\n control.markAsPristine();\n } else if (selectedItem?.value !== previousValue) {\n control.markAsDirty();\n }\n\n control.updateValueAndValidity();\n this.changeDetector.detectChanges();\n }\n\n /**\n * Retrieves the default value for the autocomplete component.\n *\n * @returns The default value as a string.\n */\n\n private getDefaultValue() {\n return this.autoCompleteItems.find((item) => item.value === this._control.value)?.name ?? '';\n }\n\n /**\n * Builds the props object for the AccessibleAutocomplete component.\n * @returns The props object for the AccessibleAutocomplete component.\n */\n private buildAutoCompleteProps(): AccessibleAutocompleteProps {\n return {\n id: this.autoCompleteId,\n element: this.autocompleteContainer.nativeElement,\n source: this.autoCompleteItems.map((item) => item.name),\n name: this.autoCompleteId,\n showAllValues: this.showAllValues,\n defaultValue: this.getDefaultValue(),\n dropdownArrow: ({ className }) => this.renderDropdownArrow(className),\n onConfirm: (selectedName: string) => this.handleOnConfirm(selectedName),\n };\n }\n\n /**\n * Renders a custom dropdown arrow.\n * @param className – The class to apply to the SVG.\n * @returns An SVG string for the dropdown arrow.\n */\n private renderDropdownArrow(className: string): string {\n return `\n <svg class=\"${className}\" style=\"top: 8px;\" viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M256,298.3L256,298.3L256,298.3l174.2-167.2c4.3-4.2,11.4-4.1,15.8,0.2l30.6,29.9\n c4.4,4.3,4.5,11.3,0.2,15.5L264.1,380.9c-2.2,2.2-5.2,3.2-8.1,3c-3,0.1-5.9-0.9-8.1-3L35.2,176.7\n c-4.3-4.2-4.2-11.2,0.2-15.5L66,131.3c4.4-4.3,11.5-4.4,15.8-0.2L256,298.3z\"></path>\n </svg>`;\n }\n\n /**\n * Configures the auto-complete functionality using the accessible-autocomplete library.\n */\n private configureAutoComplete(): void {\n import('accessible-autocomplete').then((accessibleAutocomplete) => {\n accessibleAutocomplete.default(this.buildAutoCompleteProps());\n this.waitForInputAndApply();\n });\n }\n\n /**\n * Gets the rendered autocomplete text input, if present.\n */\n private getVisibleInput(): HTMLInputElement | null {\n return this.autocompleteContainer?.nativeElement?.querySelector(`#${this.autoCompleteId}`);\n }\n\n /**\n * Builds the hint/error ids to apply to aria-describedby.\n */\n private buildDescribedByIds(): string[] {\n const ids: string[] = [];\n\n if (this.hintText) {\n ids.push(`${this.inputId}-hint`);\n }\n\n if (this.errors) {\n ids.push(`${this.autoCompleteId}-error-message`);\n }\n\n return ids;\n }\n\n /**\n * Updates aria-describedby on the visible input, preserving any non-managed ids.\n */\n private applyDescribedBy(): void {\n const input = this.getVisibleInput();\n if (!input) {\n return;\n }\n\n const managedIds = new Set([`${this.inputId}-hint`, `${this.autoCompleteId}-error-message`]);\n const currentValue = input.getAttribute('aria-describedby') ?? '';\n const currentIds = currentValue.split(' ').filter(Boolean);\n const preservedIds = currentIds.filter((id) => !managedIds.has(id));\n const nextIds = [...new Set([...preservedIds, ...this.buildDescribedByIds()])];\n const nextValue = nextIds.length ? nextIds.join(' ') : '';\n\n if (currentValue === nextValue) {\n return;\n }\n\n if (nextValue) {\n input.setAttribute('aria-describedby', nextValue);\n } else {\n input.removeAttribute('aria-describedby');\n }\n }\n\n /**\n * Observes aria-describedby changes on the visible input to reapply managed ids.\n */\n private observeDescribedBy(): void {\n const input = this.getVisibleInput();\n if (!input || typeof MutationObserver === 'undefined') {\n return;\n }\n\n this.describedByObserver?.disconnect();\n this.describedByObserver = new MutationObserver(() => this.applyDescribedBy());\n this.describedByObserver.observe(input, { attributes: true, attributeFilter: ['aria-describedby'] });\n this.applyDescribedBy();\n }\n\n /**\n * Waits for the visible input to appear, then applies describedby and observers.\n */\n private waitForInputAndApply(): void {\n const input = this.getVisibleInput();\n if (input) {\n this.observeDescribedBy();\n return;\n }\n\n if (typeof MutationObserver === 'undefined') {\n return;\n }\n\n this.containerObserver?.disconnect();\n this.containerObserver = new MutationObserver(() => {\n if (this.getVisibleInput()) {\n this.containerObserver?.disconnect();\n this.observeDescribedBy();\n }\n });\n\n this.containerObserver.observe(this.autocompleteContainer.nativeElement, { childList: true, subtree: true });\n }\n\n /**\n * Sets up the control subscription for value changes.\n * Whenever the control value changes, this method is called to handle the changes.\n * If the new value is null, it clears the autocomplete container and configures the autocomplete.\n */\n private setupControlSub(): void {\n this._control.valueChanges\n .pipe(startWith(null), pairwise(), takeUntil(this.ngUnsubscribe))\n .subscribe(([prev, next]) => {\n // If both values are null, we don't need to do anything\n if (prev === null && next === null) {\n return;\n }\n\n // Otherwise, next is null, we need to clear the autocomplete\n if (next === null) {\n this.autocompleteContainer.nativeElement.innerHTML = '';\n this.configureAutoComplete();\n }\n });\n }\n\n ngOnInit(): void {\n this.autoCompleteId = this.inputId + '-autocomplete';\n this.setupControlSub();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['hintText'] || changes['errors']) {\n this.applyDescribedBy();\n }\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.describedByObserver?.disconnect();\n this.containerObserver?.disconnect();\n }\n}\n","<div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"autoCompleteId\"> {{ labelText }} </label>\n @if (hintText) {\n <div id=\"{{ inputId }}-hint\" class=\"govuk-hint\">\n {{ hintText }}\n </div>\n }\n\n @if (errors) {\n <p id=\"{{ this.autoCompleteId }}-error-message\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <div #autocomplete id=\"{{ autoCompleteId }}-container\" class=\"{{ inputClasses }}\"></div>\n <input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"hidden\"\n [formControl]=\"getControl\"\n [attr.aria-describedby]=\"hintText ? inputId + '-hint' : null\"\n />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-label/custom-account-information-item-label.component.ts","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-label/custom-account-information-item-label.component.html","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-label/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]',\n templateUrl: './custom-account-information-item-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomAccountInformationItemLabelComponent {\n @HostBinding('class') hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-font-weight-bold govuk-!-margin-0';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,0CAA0C,CAAA;IAC/B,SAAS,GAAG,2EAA2E;uGADlG,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,iNCPvD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDMa,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBALtD,SAAS;+BACE,kGAAkG,EAAA,eAAA,EAE3F,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAG9C,WAAW;uBAAC,OAAO;;;AERtB;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-value/custom-account-information-item-value.component.ts","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-value/custom-account-information-item-value.component.html","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-value/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]',\n templateUrl: './custom-account-information-item-value.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomAccountInformationItemValueComponent {\n @HostBinding('class') hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-margin-0';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,0CAA0C,CAAA;IAC/B,SAAS,GAAG,kDAAkD;uGADzE,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,iNCPvD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDMa,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBALtD,SAAS;+BACE,kGAAkG,EAAA,eAAA,EAE3F,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAG9C,WAAW;uBAAC,OAAO;;;AERtB;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item.component.ts","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item.component.html","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-account-information-item',\n templateUrl: './custom-account-information-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomAccountInformationItemComponent {\n @Input({ required: false }) itemClasses: string = 'govuk-grid-column-one-third';\n\n @HostBinding('class')\n get hostClass(): string {\n return this.itemClasses;\n }\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,qCAAqC,CAAA;IACpB,WAAW,GAAW,6BAA6B;AAE/E,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,WAAW;IACzB;uGANW,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qCAAqC,iMCPlD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDMa,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;+BACE,0CAA0C,EAAA,eAAA,EAEnC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAG9C,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBAEzB,WAAW;uBAAC,OAAO;;;AEVtB;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-account-information.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information.component.ts","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information.component.html","../../../projects/opal-frontend-common/components/custom/custom-account-information/hmcts-opal-frontend-common-components-custom-custom-account-information.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-account-information, [opal-lib-custom-account-information]',\n templateUrl: './custom-account-information.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomAccountInformationComponent {}\n","<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,iCAAiC,CAAA;uGAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,sICP9C,uEAGA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDIa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,4EAA4E,EAAA,eAAA,EAErE,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uEAAA,EAAA;;;AELjD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-action-links.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-action-links/custom-action-links.component.ts","../../../projects/opal-frontend-common/components/custom/custom-action-links/custom-action-links.component.html","../../../projects/opal-frontend-common/components/custom/custom-action-links/hmcts-opal-frontend-common-components-custom-custom-action-links.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-action-links',\n templateUrl: './custom-action-links.component.html',\n})\nexport class CustomActionLinksComponent {\n @Input({ required: true }) id!: string;\n @Input({ required: false }) classSize: string = 'govuk-grid-column-one-third';\n\n @HostBinding('attr.id') get hostId(): string {\n return this.id;\n }\n @HostBinding('class') get hostClass(): string {\n return this.classSize;\n }\n}\n","<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,0BAA0B,CAAA;AACV,IAAA,EAAE;IACD,SAAS,GAAW,6BAA6B;AAE7E,IAAA,IAA4B,MAAM,GAAA;QAChC,OAAO,IAAI,CAAC,EAAE;IAChB;AACA,IAAA,IAA0B,SAAS,GAAA;QACjC,OAAO,IAAI,CAAC,SAAS;IACvB;uGATW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,qNCNvC,oNAGA,EAAA,CAAA;;2FDGa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,oNAAA,EAAA;;sBAIvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBAEzB,WAAW;uBAAC,SAAS;;sBAGrB,WAAW;uBAAC,OAAO;;;AEbtB;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-horizontal-scroll-pane.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-horizontal-scroll-pane/custom-horizontal-scroll-pane.component.ts","../../../projects/opal-frontend-common/components/custom/custom-horizontal-scroll-pane/custom-horizontal-scroll-pane.component.html","../../../projects/opal-frontend-common/components/custom/custom-horizontal-scroll-pane/hmcts-opal-frontend-common-components-custom-custom-horizontal-scroll-pane.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-horizontal-scroll-pane',\n templateUrl: './custom-horizontal-scroll-pane.component.html',\n styleUrl: './custom-horizontal-scroll-pane.component.scss',\n})\nexport class CustomHorizontalScrollPaneComponent {}\n","<div class=\"custom-horizontal-scroll-pane\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,mCAAmC,CAAA;uGAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,kGCPhD,sFAGA,EAAA,MAAA,EAAA,CAAA,gFAAA,CAAA,EAAA,CAAA;;2FDIa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,SAAS;+BACE,wCAAwC,EAAA,QAAA,EAAA,sFAAA,EAAA,MAAA,EAAA,CAAA,gFAAA,CAAA,EAAA;;;AEHpD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-page-header.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-page-header/custom-page-header.component.ts","../../../projects/opal-frontend-common/components/custom/custom-page-header/custom-page-header.component.html","../../../projects/opal-frontend-common/components/custom/custom-page-header/hmcts-opal-frontend-common-components-custom-custom-page-header.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-page-header',\n templateUrl: './custom-page-header.component.html',\n styleUrl: './custom-page-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomPageHeaderComponent {}\n","<div class=\"govuk-grid-row custom-grid-class\">\n <div class=\"govuk-grid-column-one-half\">\n <ng-content select=\"[pageHeaderHeading]\"></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-half custom-column-class\">\n <div class=\"moj-button-group moj-button-group--inline custom-button-group-class\">\n <ng-content select=\"[pageHeaderButtons]\"></ng-content>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAQa,yBAAyB,CAAA;uGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,uFCRtC,maAUA,EAAA,MAAA,EAAA,CAAA,iKAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDFa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACE,6BAA6B,EAAA,eAAA,EAGtB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,maAAA,EAAA,MAAA,EAAA,CAAA,iKAAA,CAAA,EAAA;;;AENjD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-scrollable-panes-custom-scrollable-panes-inner-pane.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-scrollable-panes/custom-scrollable-panes-inner-pane/custom-scrollable-panes-inner-pane.component.ts","../../../projects/opal-frontend-common/components/custom/custom-scrollable-panes/custom-scrollable-panes-inner-pane/custom-scrollable-panes-inner-pane.component.html","../../../projects/opal-frontend-common/components/custom/custom-scrollable-panes/custom-scrollable-panes-inner-pane/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes-custom-scrollable-panes-inner-pane.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-scrollable-panes-inner-pane',\n imports: [CommonModule],\n templateUrl: './custom-scrollable-panes-inner-pane.component.html',\n styleUrl: './custom-scrollable-panes-inner-pane.component.scss',\n})\nexport class CustomScrollablePanesInnerPaneComponent {\n @Input({ required: false }) stickyHeadersEnabled: boolean = true;\n @Input({ required: false }) maxHeight: string = '500px';\n}\n","<div\n class=\"custom-scrollable-panes-inner-pane\"\n [style.max-height]=\"maxHeight\"\n [ngClass]=\"{ 'sticky-headers': stickyHeadersEnabled }\"\n>\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MASa,uCAAuC,CAAA;IACtB,oBAAoB,GAAY,IAAI;IACpC,SAAS,GAAW,OAAO;uGAF5C,uCAAuC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvC,uCAAuC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTpD,gMAOA,EAAA,MAAA,EAAA,CAAA,wDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBANnD,SAAS;+BACE,6CAA6C,EAAA,OAAA,EAC9C,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gMAAA,EAAA,MAAA,EAAA,CAAA,wDAAA,CAAA,EAAA;;sBAKtB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;AEX5B;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-scrollable-panes.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-scrollable-panes/custom-scrollable-panes.component.ts","../../../projects/opal-frontend-common/components/custom/custom-scrollable-panes/custom-scrollable-panes.component.html","../../../projects/opal-frontend-common/components/custom/custom-scrollable-panes/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-scrollable-panes',\n templateUrl: './custom-scrollable-panes.component.html',\n styleUrl: './custom-scrollable-panes.component.scss',\n})\nexport class CustomScrollablePanesComponent {\n @Input({ required: false }) public height: string = '100%';\n}\n","<div class=\"custom-scrollable-pane\" [style.height]=\"height\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,8BAA8B,CAAA;IACN,MAAM,GAAW,MAAM;uGAD/C,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,0HCP3C,yGAGA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,CAAA;;2FDIa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,yGAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA;;sBAK3C,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;AER5B;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-label/custom-summary-metric-bar-item-label.component.ts","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-label/custom-summary-metric-bar-item-label.component.html","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-label/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-summary-metric-bar-item-label, [opal-lib-custom-summary-metric-bar-item-label]',\n templateUrl: './custom-summary-metric-bar-item-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomSummaryMetricBarItemLabelComponent {\n @Input({ required: false }) textColour: string = 'govuk-dark-grey-text-colour';\n\n @HostBinding('class')\n get hostClasses(): string {\n return `govuk-body govuk-!-font-size-19 govuk-!-font-weight-bold govuk-!-margin-0 ${this.textColour}`;\n }\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,wCAAwC,CAAA;IACvB,UAAU,GAAW,6BAA6B;AAE9E,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,CAAA,0EAAA,EAA6E,IAAI,CAAC,UAAU,EAAE;IACvG;uGANW,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wCAAwC,uPCPrD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDMa,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBALpD,SAAS;+BACE,gGAAgG,EAAA,eAAA,EAEzF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAG9C,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBAEzB,WAAW;uBAAC,OAAO;;;AEVtB;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-value/custom-summary-metric-bar-item-value.component.ts","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-value/custom-summary-metric-bar-item-value.component.html","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-value/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-summary-metric-bar-item-value, [opal-lib-custom-summary-metric-bar-item-value]',\n templateUrl: './custom-summary-metric-bar-item-value.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomSummaryMetricBarItemValueComponent {\n @Input({ required: false }) textColour: string = 'govuk-dark-grey-text-colour';\n\n @HostBinding('class')\n get hostClasses(): string {\n return `govuk-body govuk-!-font-size-24 govuk-!-font-weight-bold govuk-!-margin-0 ${this.textColour}`;\n }\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,wCAAwC,CAAA;IACvB,UAAU,GAAW,6BAA6B;AAE9E,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,CAAA,0EAAA,EAA6E,IAAI,CAAC,UAAU,EAAE;IACvG;uGANW,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wCAAwC,uPCPrD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDMa,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBALpD,SAAS;+BACE,gGAAgG,EAAA,eAAA,EAEzF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAG9C,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBAEzB,WAAW;uBAAC,OAAO;;;AEVtB;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item.component.ts","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item.component.html","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.ts"],"sourcesContent":["import { Component, Input, ChangeDetectionStrategy, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-summary-metric-bar-item',\n templateUrl: './custom-summary-metric-bar-item.component.html',\n styleUrls: ['./custom-summary-metric-bar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomSummaryMetricBarItemComponent {\n @Input({ required: false }) backgroundColour: string = 'govuk-light-grey-background-colour';\n @Input({ required: false }) itemClasses: string = 'govuk-grid-column-one-quarter';\n\n @HostBinding('class')\n get hostClasses(): string {\n return this.itemClasses;\n }\n\n /**\n * Returns the CSS class names for the summary metric bar item.\n *\n * This method generates a string containing the default class \"custom-summary-metric-bar-item-frame\"\n * combined with additional classes determined by the component's background and text color properties.\n *\n * @returns {string} A space-separated list of CSS classes to apply to the component.\n */\n public getSummaryMetricBarItemClasses(): string {\n return `custom-summary-metric-bar-item-frame ${this.backgroundColour}`;\n }\n}\n","<div [class]=\"getSummaryMetricBarItemClasses()\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAQa,mCAAmC,CAAA;IAClB,gBAAgB,GAAW,oCAAoC;IAC/D,WAAW,GAAW,+BAA+B;AAEjF,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;;;;;;AAOG;IACI,8BAA8B,GAAA;AACnC,QAAA,OAAO,CAAA,qCAAA,EAAwC,IAAI,CAAC,gBAAgB,EAAE;IACxE;uGAnBW,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,wOCRhD,2FAGA,EAAA,MAAA,EAAA,CAAA,uDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDKa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;+BACE,yCAAyC,EAAA,eAAA,EAGlC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2FAAA,EAAA,MAAA,EAAA,CAAA,uDAAA,CAAA,EAAA;;sBAG9C,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBAEzB,WAAW;uBAAC,OAAO;;;AEZtB;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar.component.ts","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar.component.html","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-summary-metric-bar',\n templateUrl: './custom-summary-metric-bar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomSummaryMetricBarComponent {}\n","<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,+BAA+B,CAAA;uGAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,8FCP5C,uEAGA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDIa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,oCAAoC,EAAA,eAAA,EAE7B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uEAAA,EAAA;;;AELjD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-inner-pane.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/custom-vertical-scroll-pane-inner-pane/custom-vertical-scroll-pane-inner-pane.component.ts","../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/custom-vertical-scroll-pane-inner-pane/custom-vertical-scroll-pane-inner-pane.component.html","../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/custom-vertical-scroll-pane-inner-pane/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-inner-pane.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-vertical-scroll-pane-inner-pane',\n imports: [CommonModule],\n templateUrl: './custom-vertical-scroll-pane-inner-pane.component.html',\n styleUrl: './custom-vertical-scroll-pane-inner-pane.component.scss',\n})\nexport class CustomVerticalScrollPaneInnerPaneComponent {\n @Input({ required: false }) maxHeight: string = '500px';\n @Input({ required: false }) stickyHeadersEnabled: boolean = true;\n}\n","<div\n class=\"custom-vertical-scroll-pane-inner-pane\"\n [style.max-height]=\"maxHeight\"\n [ngClass]=\"{ 'sticky-headers': stickyHeadersEnabled }\"\n>\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MASa,0CAA0C,CAAA;IACzB,SAAS,GAAW,OAAO;IAC3B,oBAAoB,GAAY,IAAI;uGAFrD,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA1C,0CAA0C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTvD,oMAOA,EAAA,MAAA,EAAA,CAAA,8EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBANtD,SAAS;+BACE,iDAAiD,EAAA,OAAA,EAClD,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,oMAAA,EAAA,MAAA,EAAA,CAAA,8EAAA,CAAA,EAAA;;sBAKtB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;AEX5B;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-outer-pane.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/custom-vertical-scroll-pane-outer-pane/custom-vertical-scroll-pane-outer-pane.component.ts","../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/custom-vertical-scroll-pane-outer-pane/custom-vertical-scroll-pane-outer-pane.component.html","../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/custom-vertical-scroll-pane-outer-pane/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-outer-pane.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-vertical-scroll-pane-outer-pane',\n templateUrl: './custom-vertical-scroll-pane-outer-pane.component.html',\n})\nexport class CustomVerticalScrollPaneOuterPaneComponent {\n @Input({ required: false }) height: string = '100%';\n}\n","<div class=\"custom-vertical-scroll-pane-outer-pane\" [style.height]=\"height\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,0CAA0C,CAAA;IACzB,MAAM,GAAW,MAAM;uGADxC,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,yICNvD,yHAGA,EAAA,CAAA;;2FDGa,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAJtD,SAAS;+BACE,iDAAiD,EAAA,QAAA,EAAA,yHAAA,EAAA;;sBAI1D,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;AEP5B;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/custom-vertical-scroll-pane.component.ts","../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/custom-vertical-scroll-pane.component.html","../../../projects/opal-frontend-common/components/custom/custom-vertical-scroll-pane/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-vertical-scroll-pane',\n templateUrl: './custom-vertical-scroll-pane.component.html',\n})\nexport class CustomVerticalScrollPaneComponent {}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,iCAAiC,CAAA;uGAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,gGCN9C,6BACA,EAAA,CAAA;;2FDKa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAJ7C,SAAS;+BACE,sCAAsC,EAAA,QAAA,EAAA,6BAAA,EAAA;;;AEHlD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs","sources":["../../../projects/opal-frontend-common/components/govuk/govuk-accordion/govuk-accordion.component.ts","../../../projects/opal-frontend-common/components/govuk/govuk-accordion/govuk-accordion.component.html","../../../projects/opal-frontend-common/components/govuk/govuk-accordion/hmcts-opal-frontend-common-components-govuk-govuk-accordion.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface GovukAccordionSection {\n id?: string;\n heading: string;\n content?: string | TemplateRef<unknown>;\n expanded?: boolean;\n}\n\nlet nextAccordionId = 0;\n\n@Component({\n selector: 'opal-lib-govuk-accordion',\n imports: [CommonModule],\n templateUrl: './govuk-accordion.component.html',\n\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GovukAccordionComponent {\n private _sections: GovukAccordionSection[] = [];\n private expandedStates: boolean[] = [];\n\n @Input({ required: false }) accordionId = `govuk-accordion-${++nextAccordionId}`;\n /**\n * Sets accordion sections and syncs default expanded states.\n */\n @Input({ required: true }) set sections(value: GovukAccordionSection[]) {\n this._sections = value ?? [];\n this.expandedStates = this._sections.map((section) => !!section.expanded);\n }\n /**\n * Returns the current accordion sections.\n */\n get sections(): GovukAccordionSection[] {\n return this._sections;\n }\n\n @Output() expand = new EventEmitter<string>();\n @Output() collapse = new EventEmitter<string>();\n\n /**\n * Resolves the unique section ID for a given index.\n */\n private getSectionId(index: number): string {\n const section = this.sections[index];\n const suffix = index + 1;\n return section?.id ?? `${this.accordionId}-section-${suffix}`;\n }\n\n /**\n * Toggles a section by its resolved ID.\n */\n public toggleSection(sectionId: string): void {\n const index = this.sections.findIndex((section, sectionIndex) => this.getSectionId(sectionIndex) === sectionId);\n if (index === -1) {\n return;\n }\n\n this.toggleSectionByIndex(index);\n }\n\n /**\n * Expands all sections and emits expand events.\n */\n public expandAllSections(): void {\n this.expandedStates = this.sections.map(() => true);\n this.sections.forEach((_section, index) => this.expand.emit(this.getSectionId(index)));\n }\n\n /**\n * Collapses all sections and emits collapse events.\n */\n public collapseAllSections(): void {\n this.expandedStates = this.sections.map(() => false);\n this.sections.forEach((_section, index) => this.collapse.emit(this.getSectionId(index)));\n }\n\n /**\n * Returns whether a section is expanded by index.\n */\n public isExpanded(index: number): boolean {\n return this.expandedStates[index] ?? false;\n }\n\n /**\n * Toggles a section by index and emits the appropriate event.\n */\n public toggleSectionByIndex(index: number): void {\n const nextStates = [...this.expandedStates];\n const nextValue = !nextStates[index];\n nextStates[index] = nextValue;\n this.expandedStates = nextStates;\n\n const sectionId = this.getSectionId(index);\n if (nextValue) {\n this.expand.emit(sectionId);\n } else {\n this.collapse.emit(sectionId);\n }\n }\n\n /**\n * Builds the heading ID for a section.\n */\n public getHeadingId(index: number): string {\n return `${this.getSectionId(index)}-heading`;\n }\n\n /**\n * Builds the content ID for a section.\n */\n public getContentId(index: number): string {\n return `${this.getSectionId(index)}-content`;\n }\n\n /**\n * Type guard for template content.\n */\n public isTemplateRef(content: GovukAccordionSection['content']): content is TemplateRef<unknown> {\n return content instanceof TemplateRef;\n }\n}\n","<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" [id]=\"accordionId\">\n @for (section of sections; track section; let index = $index) {\n <div class=\"govuk-accordion__section\" [class.govuk-accordion__section--expanded]=\"isExpanded(index)\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <button\n type=\"button\"\n class=\"govuk-accordion__section-button\"\n [id]=\"getHeadingId(index)\"\n [attr.aria-controls]=\"getContentId(index)\"\n [attr.aria-expanded]=\"isExpanded(index)\"\n (click)=\"toggleSectionByIndex(index)\"\n >\n {{ section.heading }}\n </button>\n </h2>\n </div>\n <div\n [id]=\"getContentId(index)\"\n class=\"govuk-accordion__section-content\"\n [attr.aria-labelledby]=\"getHeadingId(index)\"\n [hidden]=\"!isExpanded(index)\"\n >\n @if (section.content) {\n @if (isTemplateRef(section.content)) {\n <ng-container [ngTemplateOutlet]=\"section.content\"></ng-container>\n } @else {\n <p class=\"govuk-body\">{{ section.content }}</p>\n }\n }\n </div>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs","sources":["../../../projects/opal-frontend-common/components/govuk/govuk-back-link/govuk-back-link.component.ts","../../../projects/opal-frontend-common/components/govuk/govuk-back-link/govuk-back-link.component.html","../../../projects/opal-frontend-common/components/govuk/govuk-back-link/hmcts-opal-frontend-common-components-govuk-govuk-back-link.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-govuk-back-link',\n imports: [],\n templateUrl: './govuk-back-link.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GovukBackLinkComponent {\n @Output() clickEvent = new EventEmitter<Event>();\n\n /**\n * Handles the back navigation for the component by emitting an event.\n * This method prevents the default action of the event.\n *\n * @param {Event} event - The event object representing the user's action.\n */\n public onBack(event: Event): void {\n event.preventDefault();\n this.clickEvent.emit(event);\n }\n}\n","<a href=\"#\" class=\"govuk-back-link\" (click)=\"onBack($event)\">Back</a>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAQa,sBAAsB,CAAA;AACvB,IAAA,UAAU,GAAG,IAAI,YAAY,EAAS;AAEhD;;;;;AAKG;AACI,IAAA,MAAM,CAAC,KAAY,EAAA;QACxB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;uGAZW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,2HCRnC,+EACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDOa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAAA,OAAA,EAC3B,EAAE,EAAA,eAAA,EAEM,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+EAAA,EAAA;;sBAG9C;;;AETH;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-govuk-govuk-button.mjs","sources":["../../../projects/opal-frontend-common/components/govuk/govuk-button/govuk-button.component.ts","../../../projects/opal-frontend-common/components/govuk/govuk-button/govuk-button.component.html","../../../projects/opal-frontend-common/components/govuk/govuk-button/hmcts-opal-frontend-common-components-govuk-govuk-button.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'opal-lib-govuk-button',\n imports: [ReactiveFormsModule],\n templateUrl: './govuk-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GovukButtonComponent {\n @Input({ required: true }) buttonId!: string;\n @Input({ required: false }) type = 'button';\n @Input({ required: false }) buttonClasses!: string;\n\n @Output() buttonClickEvent = new EventEmitter<boolean>();\n\n /**\n * Handles the button click event.\n */\n public handleButtonClick(): void {\n this.buttonClickEvent.emit(true);\n }\n}\n","<button\n [id]=\"buttonId\"\n [type]=\"type\"\n class=\"govuk-button {{ buttonClasses }}\"\n data-module=\"govuk-button\"\n (click)=\"handleButtonClick()\"\n>\n <ng-content></ng-content>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,oBAAoB,CAAA;AACJ,IAAA,QAAQ;IACP,IAAI,GAAG,QAAQ;AACf,IAAA,aAAa;AAE/B,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW;AAExD;;AAEG;IACI,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC;uGAZW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVjC,+MASA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHY,mBAAmB,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIlB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,WACxB,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAEb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+MAAA,EAAA;;sBAG9C,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBAEzB;;;AEfH;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs","sources":["../../../projects/opal-frontend-common/components/govuk/govuk-cancel-link/govuk-cancel-link.component.ts","../../../projects/opal-frontend-common/components/govuk/govuk-cancel-link/govuk-cancel-link.component.html","../../../projects/opal-frontend-common/components/govuk/govuk-cancel-link/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-govuk-cancel-link',\n imports: [],\n templateUrl: './govuk-cancel-link.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GovukCancelLinkComponent {\n @Input({ required: false }) cancelLinkText = 'Cancel';\n @Output() linkClickEvent = new EventEmitter<boolean>();\n\n /**\n * Handles the click event on the cancel link.\n * Prevents the default action and emits a link click event.\n *\n * @param event - Optional DOM event that triggered the click\n */\n public handleClick(event?: Event): void {\n event?.preventDefault();\n this.linkClickEvent.emit(true);\n }\n}\n","<a (click)=\"handleClick($event)\" class=\"govuk-link button-link govuk-link--no-visited-state\" href=\"\">{{\n cancelLinkText\n}}</a>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAQa,wBAAwB,CAAA;IACP,cAAc,GAAG,QAAQ;AAC3C,IAAA,cAAc,GAAG,IAAI,YAAY,EAAW;AAEtD;;;;;AAKG;AACI,IAAA,WAAW,CAAC,KAAa,EAAA;QAC9B,KAAK,EAAE,cAAc,EAAE;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;IAChC;uGAbW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,mLCRrC,2IAGA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDKa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,OAAA,EAC7B,EAAE,EAAA,eAAA,EAEM,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2IAAA,EAAA;;sBAG9C,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB;;;AEVH;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-govuk-govuk-checkboxes-interfaces.mjs","sources":["../../../projects/opal-frontend-common/components/govuk/govuk-checkboxes/interfaces/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}