@hmcts/opal-frontend-common 0.0.5 → 0.0.7

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 (403) hide show
  1. package/components/abstract/abstract-form-base/abstract-form-base.component.d.ts +1 -1
  2. package/components/abstract/abstract-form-parent-base/abstract-form-parent-base.component.d.ts +1 -1
  3. package/components/abstract/abstract-sortable-table/abstract-sortable-table.component.d.ts +2 -2
  4. package/components/abstract/abstract-sortable-table/interfaces/abstract-sortable-table.interfaces.d.ts +7 -0
  5. package/components/abstract/abstract-sortable-table/interfaces/public-api.d.ts +1 -1
  6. package/components/abstract/abstract-sortable-table/types/abstract-sortable-table-sortable-values.type.d.ts +1 -0
  7. package/components/abstract/abstract-sortable-table/types/index.d.ts +5 -0
  8. package/components/abstract/abstract-sortable-table/types/public-api.d.ts +2 -0
  9. package/components/abstract/abstract-sortable-table-pagination/abstract-sortable-table-pagination.component.d.ts +1 -1
  10. package/components/govuk/helpers/add-gds-body-class.d.ts +4 -0
  11. package/components/govuk/helpers/index.d.ts +5 -0
  12. package/components/govuk/helpers/public-api.d.ts +1 -0
  13. package/constants/public-api.d.ts +0 -4
  14. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs +3 -3
  15. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs +3 -3
  16. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs +3 -3
  17. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs +4 -4
  18. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs.map +1 -1
  19. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-parent-base.mjs.map +1 -1
  20. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs +3 -3
  21. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-types.mjs +4 -0
  22. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-types.mjs.map +1 -0
  23. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs +4 -4
  24. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs.map +1 -1
  25. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs +3 -3
  26. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs +3 -3
  27. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs +3 -3
  28. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-button.mjs +3 -3
  29. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs +3 -3
  30. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs +12 -12
  31. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs +3 -3
  32. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-details.mjs +3 -3
  33. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-error-summary.mjs +3 -3
  34. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-footer.mjs +3 -3
  35. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header.mjs +6 -6
  36. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-heading-with-caption.mjs +3 -3
  37. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-inset-text.mjs +3 -3
  38. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.mjs +3 -3
  39. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs +3 -3
  40. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-panel.mjs +3 -3
  41. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs +12 -12
  42. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs +3 -3
  43. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-card-list.mjs +6 -6
  44. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs +13 -13
  45. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs.map +1 -1
  46. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-table.mjs +12 -12
  47. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs +10 -10
  48. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs.map +1 -1
  49. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tag.mjs +3 -3
  50. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-task-list.mjs +6 -6
  51. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs +3 -3
  52. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs +3 -3
  53. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs +3 -3
  54. package/fesm2022/hmcts-opal-frontend-common-components-govuk-helpers.mjs +19 -0
  55. package/fesm2022/hmcts-opal-frontend-common-components-govuk-helpers.mjs.map +1 -0
  56. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-badge.mjs +3 -3
  57. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-banner.mjs +3 -3
  58. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs +6 -6
  59. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs +6 -4
  60. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs.map +1 -1
  61. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header.mjs +6 -6
  62. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-notification-badge.mjs +3 -3
  63. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-page-header.mjs +3 -3
  64. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs +12 -12
  65. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-primary-navigation.mjs +6 -6
  66. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sortable-table.mjs +15 -15
  67. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sub-navigation.mjs +6 -6
  68. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-ticket-panel.mjs +3 -3
  69. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-timeline.mjs +6 -6
  70. package/fesm2022/hmcts-opal-frontend-common-constants.mjs +1 -31
  71. package/fesm2022/hmcts-opal-frontend-common-constants.mjs.map +1 -1
  72. package/fesm2022/hmcts-opal-frontend-common-guards-auth.mjs +38 -0
  73. package/fesm2022/hmcts-opal-frontend-common-guards-auth.mjs.map +1 -0
  74. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate-interfaces.mjs +4 -0
  75. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate-interfaces.mjs.map +1 -0
  76. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate-types.mjs +4 -0
  77. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate-types.mjs.map +1 -0
  78. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate.mjs +12 -0
  79. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate.mjs.map +1 -0
  80. package/fesm2022/hmcts-opal-frontend-common-guards-has-flow-state.mjs +23 -0
  81. package/fesm2022/hmcts-opal-frontend-common-guards-has-flow-state.mjs.map +1 -0
  82. package/fesm2022/hmcts-opal-frontend-common-guards-helpers.mjs +59 -0
  83. package/fesm2022/hmcts-opal-frontend-common-guards-helpers.mjs.map +1 -0
  84. package/fesm2022/hmcts-opal-frontend-common-guards-route-permissions.mjs +32 -0
  85. package/fesm2022/hmcts-opal-frontend-common-guards-route-permissions.mjs.map +1 -0
  86. package/fesm2022/hmcts-opal-frontend-common-guards-signed-in.mjs +27 -0
  87. package/fesm2022/hmcts-opal-frontend-common-guards-signed-in.mjs.map +1 -0
  88. package/fesm2022/hmcts-opal-frontend-common-guards-types.mjs +4 -0
  89. package/fesm2022/hmcts-opal-frontend-common-guards-types.mjs.map +1 -0
  90. package/fesm2022/{hmcts-opal-frontend-common-interceptors.mjs → hmcts-opal-frontend-common-interceptors-http-error.mjs} +3 -3
  91. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error.mjs.map +1 -0
  92. package/fesm2022/hmcts-opal-frontend-common-pages-access-denied.component-npDHlv8C.mjs +21 -0
  93. package/fesm2022/hmcts-opal-frontend-common-pages-access-denied.component-npDHlv8C.mjs.map +1 -0
  94. package/fesm2022/hmcts-opal-frontend-common-pages-routing-constants.mjs +24 -0
  95. package/fesm2022/hmcts-opal-frontend-common-pages-routing-constants.mjs.map +1 -0
  96. package/fesm2022/hmcts-opal-frontend-common-pages-routing-interfaces.mjs +4 -0
  97. package/fesm2022/hmcts-opal-frontend-common-pages-routing-interfaces.mjs.map +1 -0
  98. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-BcAOQaGF.mjs → hmcts-opal-frontend-common-pages-sign-in-stub.component-EPZmMG9z.mjs} +4 -4
  99. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-BcAOQaGF.mjs.map → hmcts-opal-frontend-common-pages-sign-in-stub.component-EPZmMG9z.mjs.map} +1 -1
  100. package/fesm2022/hmcts-opal-frontend-common-pages-sign-in.component-C94FFph9.mjs +28 -0
  101. package/fesm2022/hmcts-opal-frontend-common-pages-sign-in.component-C94FFph9.mjs.map +1 -0
  102. package/fesm2022/hmcts-opal-frontend-common-pages.mjs +8 -87
  103. package/fesm2022/hmcts-opal-frontend-common-pages.mjs.map +1 -1
  104. package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs +32 -0
  105. package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs.map +1 -0
  106. package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs +41 -0
  107. package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs.map +1 -0
  108. package/fesm2022/{hmcts-opal-frontend-common-resolvers.mjs → hmcts-opal-frontend-common-resolvers-title.mjs} +6 -17
  109. package/fesm2022/hmcts-opal-frontend-common-resolvers-title.mjs.map +1 -0
  110. package/fesm2022/hmcts-opal-frontend-common-resolvers-user-state.mjs +19 -0
  111. package/fesm2022/hmcts-opal-frontend-common-resolvers-user-state.mjs.map +1 -0
  112. package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs +53 -0
  113. package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs.map +1 -0
  114. package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs +66 -0
  115. package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs.map +1 -0
  116. package/fesm2022/hmcts-opal-frontend-common-services-auth-service-constants.mjs +13 -0
  117. package/fesm2022/hmcts-opal-frontend-common-services-auth-service-constants.mjs.map +1 -0
  118. package/fesm2022/hmcts-opal-frontend-common-services-auth-service-interfaces.mjs +4 -0
  119. package/fesm2022/hmcts-opal-frontend-common-services-auth-service-interfaces.mjs.map +1 -0
  120. package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs +43 -0
  121. package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs.map +1 -0
  122. package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs +201 -0
  123. package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs.map +1 -0
  124. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service-mocks.mjs +16 -0
  125. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service-mocks.mjs.map +1 -0
  126. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs +98 -0
  127. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs.map +1 -0
  128. package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs +47 -0
  129. package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs.map +1 -0
  130. package/fesm2022/hmcts-opal-frontend-common-services-session-service-constants.mjs +11 -0
  131. package/fesm2022/hmcts-opal-frontend-common-services-session-service-constants.mjs.map +1 -0
  132. package/fesm2022/hmcts-opal-frontend-common-services-session-service-interfaces.mjs +4 -0
  133. package/fesm2022/hmcts-opal-frontend-common-services-session-service-interfaces.mjs.map +1 -0
  134. package/fesm2022/{hmcts-opal-frontend-common-mocks.mjs → hmcts-opal-frontend-common-services-session-service-mocks.mjs} +2 -34
  135. package/fesm2022/hmcts-opal-frontend-common-services-session-service-mocks.mjs.map +1 -0
  136. package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs +71 -0
  137. package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs.map +1 -0
  138. package/fesm2022/hmcts-opal-frontend-common-services-sort-service-interfaces.mjs +4 -0
  139. package/fesm2022/hmcts-opal-frontend-common-services-sort-service-interfaces.mjs.map +1 -0
  140. package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs +97 -0
  141. package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs.map +1 -0
  142. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service-interfaces.mjs +4 -0
  143. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service-interfaces.mjs.map +1 -0
  144. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service-mocks.mjs +24 -0
  145. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service-mocks.mjs.map +1 -0
  146. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs +73 -0
  147. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs.map +1 -0
  148. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service-interfaces.mjs +4 -0
  149. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service-interfaces.mjs.map +1 -0
  150. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs +76 -0
  151. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs.map +1 -0
  152. package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs +93 -0
  153. package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs.map +1 -0
  154. package/fesm2022/hmcts-opal-frontend-common-stores-global-interfaces.mjs +4 -0
  155. package/fesm2022/hmcts-opal-frontend-common-stores-global-interfaces.mjs.map +1 -0
  156. package/fesm2022/hmcts-opal-frontend-common-stores-global-types.mjs +4 -0
  157. package/fesm2022/hmcts-opal-frontend-common-stores-global-types.mjs.map +1 -0
  158. package/fesm2022/{hmcts-opal-frontend-common-stores.mjs → hmcts-opal-frontend-common-stores-global.mjs} +5 -1
  159. package/fesm2022/hmcts-opal-frontend-common-stores-global.mjs.map +1 -0
  160. package/fesm2022/hmcts-opal-frontend-common-validators-alphabetical-text.mjs +16 -0
  161. package/fesm2022/hmcts-opal-frontend-common-validators-alphabetical-text.mjs.map +1 -0
  162. package/fesm2022/hmcts-opal-frontend-common-validators-amount.mjs +21 -0
  163. package/fesm2022/hmcts-opal-frontend-common-validators-amount.mjs.map +1 -0
  164. package/fesm2022/hmcts-opal-frontend-common-validators-date-after-year.mjs +18 -0
  165. package/fesm2022/hmcts-opal-frontend-common-validators-date-after-year.mjs.map +1 -0
  166. package/fesm2022/hmcts-opal-frontend-common-validators-date-before.mjs +21 -0
  167. package/fesm2022/hmcts-opal-frontend-common-validators-date-before.mjs.map +1 -0
  168. package/fesm2022/hmcts-opal-frontend-common-validators-date-of-birth.mjs +24 -0
  169. package/fesm2022/hmcts-opal-frontend-common-validators-date-of-birth.mjs.map +1 -0
  170. package/fesm2022/hmcts-opal-frontend-common-validators-future-date.mjs +21 -0
  171. package/fesm2022/hmcts-opal-frontend-common-validators-future-date.mjs.map +1 -0
  172. package/fesm2022/hmcts-opal-frontend-common-validators-invalid-value.mjs +15 -0
  173. package/fesm2022/hmcts-opal-frontend-common-validators-invalid-value.mjs.map +1 -0
  174. package/fesm2022/hmcts-opal-frontend-common-validators-national-insurance-number.mjs +22 -0
  175. package/fesm2022/hmcts-opal-frontend-common-validators-national-insurance-number.mjs.map +1 -0
  176. package/fesm2022/hmcts-opal-frontend-common-validators-numerical-only.mjs +16 -0
  177. package/fesm2022/hmcts-opal-frontend-common-validators-numerical-only.mjs.map +1 -0
  178. package/fesm2022/hmcts-opal-frontend-common-validators-optional-max-length.mjs +17 -0
  179. package/fesm2022/hmcts-opal-frontend-common-validators-optional-max-length.mjs.map +1 -0
  180. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-date.mjs +29 -0
  181. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-date.mjs.map +1 -0
  182. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-email-address.mjs +17 -0
  183. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-email-address.mjs.map +1 -0
  184. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-telephone.mjs +20 -0
  185. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-telephone.mjs.map +1 -0
  186. package/fesm2022/hmcts-opal-frontend-common-validators-over-eighteen.mjs +51 -0
  187. package/fesm2022/hmcts-opal-frontend-common-validators-over-eighteen.mjs.map +1 -0
  188. package/fesm2022/hmcts-opal-frontend-common-validators-past-date.mjs +22 -0
  189. package/fesm2022/hmcts-opal-frontend-common-validators-past-date.mjs.map +1 -0
  190. package/fesm2022/hmcts-opal-frontend-common-validators-special-characters.mjs +17 -0
  191. package/fesm2022/hmcts-opal-frontend-common-validators-special-characters.mjs.map +1 -0
  192. package/fesm2022/hmcts-opal-frontend-common-validators-two-decimal-places.mjs +18 -0
  193. package/fesm2022/hmcts-opal-frontend-common-validators-two-decimal-places.mjs.map +1 -0
  194. package/fesm2022/hmcts-opal-frontend-common-validators-valid-value.mjs +15 -0
  195. package/fesm2022/hmcts-opal-frontend-common-validators-valid-value.mjs.map +1 -0
  196. package/guards/auth/auth.guard.d.ts +2 -4
  197. package/{interfaces → guards/auth}/index.d.ts +1 -1
  198. package/guards/auth/public-api.d.ts +1 -0
  199. package/guards/can-deactivate/index.d.ts +5 -0
  200. package/guards/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.d.ts +1 -1
  201. package/guards/can-deactivate/interfaces/index.d.ts +5 -0
  202. package/guards/can-deactivate/interfaces/public-api.d.ts +1 -0
  203. package/guards/can-deactivate/public-api.d.ts +1 -0
  204. package/guards/can-deactivate/types/index.d.ts +5 -0
  205. package/guards/can-deactivate/types/public-api.d.ts +1 -0
  206. package/guards/has-flow-state/index.d.ts +5 -0
  207. package/guards/has-flow-state/public-api.d.ts +1 -0
  208. package/guards/helpers/get-guard-with-dummy-url.d.ts +1 -1
  209. package/guards/helpers/handle-observable-result.d.ts +1 -1
  210. package/guards/{index.d.ts → helpers/index.d.ts} +1 -1
  211. package/guards/helpers/public-api.d.ts +4 -0
  212. package/guards/helpers/run-auth-guard-with-context.d.ts +1 -1
  213. package/guards/helpers/run-has-flow-state-guard-with-context.d.ts +1 -1
  214. package/guards/route-permissions/index.d.ts +5 -0
  215. package/guards/route-permissions/public-api.d.ts +1 -0
  216. package/guards/signed-in/index.d.ts +5 -0
  217. package/guards/signed-in/public-api.d.ts +1 -0
  218. package/{interceptors → guards/types}/index.d.ts +1 -1
  219. package/guards/types/public-api.d.ts +1 -0
  220. package/interceptors/http-error/index.d.ts +5 -0
  221. package/interceptors/http-error/public-api.d.ts +1 -0
  222. package/package.json +308 -52
  223. package/pages/public-api.d.ts +0 -2
  224. package/pages/routing/constants/index.d.ts +5 -0
  225. package/pages/routing/constants/public-api.d.ts +2 -0
  226. package/{constants/src → pages/routing/constants}/routing-paths.constant.d.ts +1 -1
  227. package/{constants/src → pages/routing/constants}/routing-titles.constant.d.ts +1 -1
  228. package/pages/routing/interfaces/index.d.ts +5 -0
  229. package/pages/routing/interfaces/public-api.d.ts +4 -0
  230. package/pages/sign-in/sign-in.component.d.ts +14 -18
  231. package/pipes/date-format/date-format.pipe.d.ts +1 -1
  232. package/pipes/date-format/index.d.ts +5 -0
  233. package/pipes/date-format/public-api.d.ts +1 -0
  234. package/pipes/days-ago/index.d.ts +5 -0
  235. package/pipes/days-ago/public-api.d.ts +1 -0
  236. package/resolvers/title/index.d.ts +5 -0
  237. package/resolvers/title/public-api.d.ts +1 -0
  238. package/resolvers/user-state/index.d.ts +5 -0
  239. package/resolvers/user-state/public-api.d.ts +1 -0
  240. package/resolvers/user-state/user-state.resolver.d.ts +1 -1
  241. package/services/app-initializer-service/app-initializer.service.d.ts +6 -1
  242. package/services/app-initializer-service/index.d.ts +5 -0
  243. package/services/app-initializer-service/public-api.d.ts +1 -0
  244. package/services/app-insights-service/app-insights.service.d.ts +14 -0
  245. package/services/app-insights-service/index.d.ts +5 -0
  246. package/services/app-insights-service/public-api.d.ts +1 -0
  247. package/services/auth-service/constants/index.d.ts +5 -0
  248. package/services/auth-service/constants/public-api.d.ts +1 -0
  249. package/services/auth-service/constants/sso-endpoints.constant.d.ts +2 -0
  250. package/services/auth-service/index.d.ts +5 -0
  251. package/services/auth-service/interfaces/index.d.ts +5 -0
  252. package/services/auth-service/interfaces/public-api.d.ts +1 -0
  253. package/services/auth-service/public-api.d.ts +1 -0
  254. package/services/date-service/index.d.ts +5 -0
  255. package/services/date-service/public-api.d.ts +1 -0
  256. package/services/launch-darkly-service/index.d.ts +5 -0
  257. package/services/launch-darkly-service/mocks/index.d.ts +5 -0
  258. package/services/launch-darkly-service/mocks/public-api.d.ts +2 -0
  259. package/services/launch-darkly-service/public-api.d.ts +1 -0
  260. package/services/permissions-service/index.d.ts +5 -0
  261. package/services/permissions-service/permissions.service.d.ts +1 -1
  262. package/services/permissions-service/public-api.d.ts +1 -0
  263. package/services/session-service/constants/index.d.ts +5 -0
  264. package/services/session-service/constants/public-api.d.ts +1 -0
  265. package/services/session-service/constants/session-endpoints.constant.d.ts +2 -0
  266. package/services/session-service/index.d.ts +5 -0
  267. package/services/session-service/interfaces/index.d.ts +5 -0
  268. package/services/session-service/interfaces/public-api.d.ts +3 -0
  269. package/services/session-service/mocks/index.d.ts +5 -0
  270. package/services/session-service/mocks/public-api.d.ts +2 -0
  271. package/{mocks/src → services/session-service/mocks}/session-token-expiry.mock.d.ts +1 -1
  272. package/services/session-service/mocks/session-user-state.mock.d.ts +2 -0
  273. package/services/session-service/public-api.d.ts +1 -0
  274. package/services/session-service/session.service.d.ts +1 -1
  275. package/services/sort-service/index.d.ts +5 -0
  276. package/services/sort-service/interfaces/index.d.ts +5 -0
  277. package/services/sort-service/interfaces/public-api.d.ts +2 -0
  278. package/services/sort-service/interfaces/sort-service-values.interface.d.ts +4 -4
  279. package/services/sort-service/public-api.d.ts +1 -0
  280. package/services/sort-service/{sort-service.d.ts → sort.service.d.ts} +4 -4
  281. package/services/transfer-state-service/index.d.ts +5 -0
  282. package/services/transfer-state-service/interfaces/index.d.ts +5 -0
  283. package/services/transfer-state-service/interfaces/public-api.d.ts +3 -0
  284. package/services/transfer-state-service/interfaces/transfer-state-app-insights-config.interface.d.ts +5 -0
  285. package/services/transfer-state-service/mocks/index.d.ts +5 -0
  286. package/services/transfer-state-service/mocks/public-api.d.ts +3 -0
  287. package/{mocks/src → services/transfer-state-service/mocks}/transfer-state.mock.d.ts +1 -1
  288. package/services/transfer-state-service/public-api.d.ts +1 -0
  289. package/services/transfer-state-service/transfer-state.service.d.ts +6 -1
  290. package/services/transformation-service/index.d.ts +5 -0
  291. package/services/transformation-service/interfaces/index.d.ts +5 -0
  292. package/services/transformation-service/interfaces/public-api.d.ts +1 -0
  293. package/services/transformation-service/public-api.d.ts +1 -0
  294. package/services/transformation-service/transformation.service.d.ts +1 -1
  295. package/services/utils-service/index.d.ts +5 -0
  296. package/services/utils-service/public-api.d.ts +1 -0
  297. package/stores/global/global.store.d.ts +6 -1
  298. package/{mocks → stores/global}/index.d.ts +1 -1
  299. package/stores/global/interfaces/index.d.ts +5 -0
  300. package/stores/global/interfaces/public-api.d.ts +1 -0
  301. package/stores/global/public-api.d.ts +1 -0
  302. package/stores/global/types/global-store.type.d.ts +2 -0
  303. package/stores/global/types/index.d.ts +5 -0
  304. package/stores/global/types/public-api.d.ts +1 -0
  305. package/validators/alphabetical-text/index.d.ts +5 -0
  306. package/validators/alphabetical-text/public-api.d.ts +1 -0
  307. package/validators/amount/index.d.ts +5 -0
  308. package/validators/amount/public-api.d.ts +1 -0
  309. package/validators/date-after-year/index.d.ts +5 -0
  310. package/validators/date-after-year/public-api.d.ts +1 -0
  311. package/validators/date-before/index.d.ts +5 -0
  312. package/validators/date-before/public-api.d.ts +1 -0
  313. package/validators/date-of-birth/index.d.ts +5 -0
  314. package/validators/date-of-birth/public-api.d.ts +1 -0
  315. package/validators/future-date/index.d.ts +5 -0
  316. package/validators/future-date/public-api.d.ts +1 -0
  317. package/validators/invalid-value/index.d.ts +5 -0
  318. package/validators/invalid-value/public-api.d.ts +1 -0
  319. package/validators/national-insurance-number/index.d.ts +5 -0
  320. package/validators/national-insurance-number/public-api.d.ts +1 -0
  321. package/validators/numerical-only/index.d.ts +5 -0
  322. package/validators/numerical-only/public-api.d.ts +1 -0
  323. package/validators/optional-max-length/index.d.ts +5 -0
  324. package/validators/optional-max-length/public-api.d.ts +1 -0
  325. package/validators/optional-valid-date/index.d.ts +5 -0
  326. package/validators/optional-valid-date/public-api.d.ts +1 -0
  327. package/validators/optional-valid-email-address/index.d.ts +5 -0
  328. package/validators/optional-valid-email-address/public-api.d.ts +1 -0
  329. package/validators/optional-valid-telephone/index.d.ts +5 -0
  330. package/validators/optional-valid-telephone/public-api.d.ts +1 -0
  331. package/validators/over-eighteen/index.d.ts +5 -0
  332. package/validators/over-eighteen/over-eighteen.validator.d.ts +1 -1
  333. package/validators/over-eighteen/public-api.d.ts +1 -0
  334. package/validators/past-date/index.d.ts +5 -0
  335. package/validators/past-date/public-api.d.ts +1 -0
  336. package/validators/special-characters/index.d.ts +5 -0
  337. package/validators/special-characters/public-api.d.ts +1 -0
  338. package/validators/two-decimal-places/index.d.ts +5 -0
  339. package/validators/two-decimal-places/public-api.d.ts +1 -0
  340. package/validators/valid-value/index.d.ts +5 -0
  341. package/validators/valid-value/public-api.d.ts +1 -0
  342. package/components/abstract/abstract-sortable-table/interfaces/abstract-sortable-table-interfaces.d.ts +0 -7
  343. package/constants/src/session-endpoints.constant.d.ts +0 -2
  344. package/constants/src/sso-endpoints.constant.d.ts +0 -2
  345. package/fesm2022/hmcts-opal-frontend-common-guards.mjs +0 -134
  346. package/fesm2022/hmcts-opal-frontend-common-guards.mjs.map +0 -1
  347. package/fesm2022/hmcts-opal-frontend-common-interceptors.mjs.map +0 -1
  348. package/fesm2022/hmcts-opal-frontend-common-interfaces.mjs +0 -4
  349. package/fesm2022/hmcts-opal-frontend-common-interfaces.mjs.map +0 -1
  350. package/fesm2022/hmcts-opal-frontend-common-mocks.mjs.map +0 -1
  351. package/fesm2022/hmcts-opal-frontend-common-pipes.mjs +0 -64
  352. package/fesm2022/hmcts-opal-frontend-common-pipes.mjs.map +0 -1
  353. package/fesm2022/hmcts-opal-frontend-common-resolvers.mjs.map +0 -1
  354. package/fesm2022/hmcts-opal-frontend-common-services.mjs +0 -817
  355. package/fesm2022/hmcts-opal-frontend-common-services.mjs.map +0 -1
  356. package/fesm2022/hmcts-opal-frontend-common-stores.mjs.map +0 -1
  357. package/fesm2022/hmcts-opal-frontend-common-types.mjs +0 -4
  358. package/fesm2022/hmcts-opal-frontend-common-types.mjs.map +0 -1
  359. package/fesm2022/hmcts-opal-frontend-common-validators.mjs +0 -278
  360. package/fesm2022/hmcts-opal-frontend-common-validators.mjs.map +0 -1
  361. package/guards/public-api.d.ts +0 -9
  362. package/interceptors/public-api.d.ts +0 -1
  363. package/interfaces/public-api.d.ts +0 -13
  364. package/interfaces/src/transfer-state-app-insights-config.interface.d.ts +0 -5
  365. package/mocks/public-api.d.ts +0 -8
  366. package/mocks/src/route-permissions.mock.d.ts +0 -3
  367. package/mocks/src/session-user-state.mock.d.ts +0 -2
  368. package/pages/sign-in/sign-in-sso/sign-in-sso.component.d.ts +0 -11
  369. package/pipes/index.d.ts +0 -5
  370. package/pipes/public-api.d.ts +0 -2
  371. package/resolvers/index.d.ts +0 -5
  372. package/resolvers/public-api.d.ts +0 -2
  373. package/services/app-insights/app-insights.service.d.ts +0 -33
  374. package/services/index.d.ts +0 -5
  375. package/services/public-api.d.ts +0 -11
  376. package/stores/index.d.ts +0 -5
  377. package/stores/public-api.d.ts +0 -1
  378. package/types/index.d.ts +0 -5
  379. package/types/public-api.d.ts +0 -4
  380. package/types/src/global-store.type.d.ts +0 -2
  381. package/types/src/sort-service.type.d.ts +0 -1
  382. package/validators/index.d.ts +0 -5
  383. package/validators/public-api.d.ts +0 -18
  384. /package/{types/src/abstract-sortable-table.type.d.ts → components/abstract/abstract-sortable-table/types/abstract-sortable-table-sort-direction.type.d.ts} +0 -0
  385. /package/{types/src → guards/can-deactivate/types}/can-deactivate.type.d.ts +0 -0
  386. /package/{interfaces/src → pages/routing/interfaces}/child-routing-paths.interface.d.ts +0 -0
  387. /package/{interfaces/src → pages/routing/interfaces}/nested-routes.interface.d.ts +0 -0
  388. /package/{interfaces/src → pages/routing/interfaces}/parent-routing-paths.interface.d.ts +0 -0
  389. /package/{interfaces/src → pages/routing/interfaces}/routing-paths.interface.d.ts +0 -0
  390. /package/{interfaces/src → services/auth-service/interfaces}/sso-endpoints.interface.d.ts +0 -0
  391. /package/services/{launch-darkly → launch-darkly-service}/launch-darkly.service.d.ts +0 -0
  392. /package/{mocks/src → services/launch-darkly-service/mocks}/launch-darkly-change-flags.mock.d.ts +0 -0
  393. /package/{mocks/src → services/launch-darkly-service/mocks}/launch-darkly-flags.mock.d.ts +0 -0
  394. /package/{interfaces/src → services/session-service/interfaces}/session-endpoints.interface.d.ts +0 -0
  395. /package/{interfaces/src → services/session-service/interfaces}/session-token-expiry.interface.d.ts +0 -0
  396. /package/{interfaces/src → services/session-service/interfaces}/session-user-state.interface.d.ts +0 -0
  397. /package/{interfaces/src → services/transfer-state-service/interfaces}/transfer-state-launch-darkly-config.interface.d.ts +0 -0
  398. /package/{interfaces/src → services/transfer-state-service/interfaces}/transfer-state-server-state.interface.d.ts +0 -0
  399. /package/{mocks/src → services/transfer-state-service/mocks}/transfer-state-app-insights-config.mock.d.ts +0 -0
  400. /package/{mocks/src → services/transfer-state-service/mocks}/transfer-state-launch-darkly-config.mock.d.ts +0 -0
  401. /package/{interfaces/src → services/transformation-service/interfaces}/transform-item.interface.d.ts +0 -0
  402. /package/services/{utils → utils-service}/utils.service.d.ts +0 -0
  403. /package/{interfaces/src → stores/global/interfaces}/error-state.interface.d.ts +0 -0
@@ -5,7 +5,7 @@ import { IAbstractFormBaseFieldErrors } from './interfaces/abstract-form-base-fi
5
5
  import { IAbstractFormBaseFormError } from './interfaces/abstract-form-base-form-error.interface';
6
6
  import { IAbstractFormBaseFormErrorSummaryMessage, IAbstractFormControlErrorMessage, IAbstractFormArrayControlValidation } from '@hmcts/opal-frontend-common/components/abstract/interfaces';
7
7
  import { IAbstractFormBaseForm } from './interfaces/abstract-form-base-form.interface';
8
- import { UtilsService } from '@hmcts/opal-frontend-common/services';
8
+ import { UtilsService } from '@hmcts/opal-frontend-common/services/utils-service';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare abstract class AbstractFormBaseComponent implements OnInit, OnDestroy {
11
11
  protected unsavedChanges: EventEmitter<boolean>;
@@ -1,4 +1,4 @@
1
- import { CanDeactivateTypes } from '@hmcts/opal-frontend-common/types';
1
+ import { CanDeactivateTypes } from '@hmcts/opal-frontend-common/guards/can-deactivate/types';
2
2
  export declare abstract class AbstractFormParentBaseComponent {
3
3
  private readonly router;
4
4
  private readonly activatedRoute;
@@ -1,10 +1,10 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { IAbstractSortState, IAbstractTableData } from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/interfaces';
3
- import { SortableValues, SortDirectionType } from '@hmcts/opal-frontend-common/types';
3
+ import { SortableValuesType, SortDirectionType } from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/types';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare abstract class AbstractSortableTableComponent implements OnInit {
6
6
  private readonly sortService;
7
- abstractTableDataSignal: import("@angular/core").WritableSignal<IAbstractTableData<SortableValues>[]>;
7
+ abstractTableDataSignal: import("@angular/core").WritableSignal<IAbstractTableData<SortableValuesType>[]>;
8
8
  abstractExistingSortState: IAbstractSortState | null;
9
9
  sortStateSignal: import("@angular/core").WritableSignal<IAbstractSortState>;
10
10
  sortedColumnTitleSignal: import("@angular/core").WritableSignal<string>;
@@ -0,0 +1,7 @@
1
+ import { SortableValuesType, SortDirectionType } from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/types';
2
+ export interface IAbstractSortState {
3
+ [key: string]: SortDirectionType;
4
+ }
5
+ export interface IAbstractTableData<T extends SortableValuesType> {
6
+ [key: string]: T;
7
+ }
@@ -1 +1 @@
1
- export * from './abstract-sortable-table-interfaces';
1
+ export * from './abstract-sortable-table.interfaces';
@@ -0,0 +1 @@
1
+ export type SortableValuesType = string | number | boolean | null;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/types" />
5
+ export * from './public-api';
@@ -0,0 +1,2 @@
1
+ export * from './abstract-sortable-table-sort-direction.type';
2
+ export * from './abstract-sortable-table-sortable-values.type';
@@ -5,7 +5,7 @@ export declare abstract class AbstractSortableTablePaginationComponent extends A
5
5
  itemsPerPageSignal: import("@angular/core").WritableSignal<number>;
6
6
  startIndexComputed: import("@angular/core").Signal<number>;
7
7
  endIndexComputed: import("@angular/core").Signal<number>;
8
- paginatedTableDataComputed: import("@angular/core").Signal<import("@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/interfaces").IAbstractTableData<import("@hmcts/opal-frontend-common/types").SortableValues>[]>;
8
+ paginatedTableDataComputed: import("@angular/core").Signal<import("@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/interfaces").IAbstractTableData<import("@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/types").SortableValuesType>[]>;
9
9
  /**
10
10
  * Handles sorting changes and resets the page to the first page.
11
11
  *
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Adds necessary CSS classes to the document body for GDS (Government Digital Service) support.
3
+ */
4
+ export declare function addGdsBodyClass(): void;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@hmcts/opal-frontend-common/components/govuk/helpers" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './add-gds-body-class';
@@ -1,6 +1,2 @@
1
1
  export * from './src/footer-links.constant';
2
2
  export * from './src/header-links.constant';
3
- export * from './src/routing-paths.constant';
4
- export * from './src/routing-titles.constant';
5
- export * from './src/session-endpoints.constant';
6
- export * from './src/sso-endpoints.constant';
@@ -190,10 +190,10 @@ class AbstractFormAliasBaseComponent extends AbstractFormBaseComponent {
190
190
  this['ngUnsubscribe'].complete();
191
191
  super.ngOnDestroy();
192
192
  }
193
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractFormAliasBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
194
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AbstractFormAliasBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
193
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractFormAliasBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AbstractFormAliasBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
195
195
  }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractFormAliasBaseComponent, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractFormAliasBaseComponent, decorators: [{
197
197
  type: Component,
198
198
  args: [{
199
199
  template: '',
@@ -234,10 +234,10 @@ class AbstractFormArrayBaseComponent extends AbstractFormBaseComponent {
234
234
  this.ngUnsubscribe.complete();
235
235
  super.ngOnDestroy();
236
236
  }
237
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractFormArrayBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
238
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AbstractFormArrayBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
237
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractFormArrayBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
238
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AbstractFormArrayBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
239
239
  }
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractFormArrayBaseComponent, decorators: [{
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractFormArrayBaseComponent, decorators: [{
241
241
  type: Component,
242
242
  args: [{
243
243
  template: '',
@@ -77,10 +77,10 @@ class AbstractFormArrayRemovalComponent {
77
77
  this.router.navigate([route], { relativeTo: this.activatedRoute.parent });
78
78
  }
79
79
  }
80
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractFormArrayRemovalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AbstractFormArrayRemovalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractFormArrayRemovalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AbstractFormArrayRemovalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractFormArrayRemovalComponent, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractFormArrayRemovalComponent, decorators: [{
84
84
  type: Component,
85
85
  args: [{
86
86
  template: '',
@@ -3,7 +3,7 @@ import { EventEmitter, inject, ChangeDetectorRef, Output, Component } from '@ang
3
3
  import { FormGroup, FormArray, FormControl } from '@angular/forms';
4
4
  import { Router, ActivatedRoute } from '@angular/router';
5
5
  import { Subject, takeUntil } from 'rxjs';
6
- import { UtilsService } from '@hmcts/opal-frontend-common/services';
6
+ import { UtilsService } from '@hmcts/opal-frontend-common/services/utils-service';
7
7
 
8
8
  class AbstractFormBaseComponent {
9
9
  unsavedChanges = new EventEmitter();
@@ -471,10 +471,10 @@ class AbstractFormBaseComponent {
471
471
  this.ngUnsubscribe.next();
472
472
  this.ngUnsubscribe.complete();
473
473
  }
474
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractFormBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
475
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AbstractFormBaseComponent, isStandalone: true, selector: "ng-component", outputs: { unsavedChanges: "unsavedChanges", formSubmit: "formSubmit" }, ngImport: i0, template: '', isInline: true });
474
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractFormBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
475
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AbstractFormBaseComponent, isStandalone: true, selector: "ng-component", outputs: { unsavedChanges: "unsavedChanges", formSubmit: "formSubmit" }, ngImport: i0, template: '', isInline: true });
476
476
  }
477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractFormBaseComponent, decorators: [{
477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractFormBaseComponent, decorators: [{
478
478
  type: Component,
479
479
  args: [{
480
480
  template: '',
@@ -1 +1 @@
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, 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';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractFormBaseComponent implements OnInit, OnDestroy {\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\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly router = inject(Router);\n private readonly activatedRoute = inject(ActivatedRoute);\n protected readonly utilsService = inject(UtilsService);\n\n public form!: FormGroup;\n public formControlErrorMessages!: IAbstractFormControlErrorMessage;\n public formErrorSummaryMessage!: IAbstractFormBaseFormErrorSummaryMessage[];\n protected fieldErrors!: IAbstractFormBaseFieldErrors;\n protected formSubmitted = false;\n protected readonly ngUnsubscribe = new Subject<void>();\n public formErrors!: IAbstractFormBaseFormError[];\n\n constructor() {}\n\n /**\n * Scrolls to the label of the component and focuses on the field id\n *\n * @param fieldId - Field id of the component\n */\n private scroll(fieldId: string): void {\n let labelTarget;\n let fieldElement;\n\n const autocompleteLabel = document.querySelector(`label[for=${fieldId}-autocomplete]`);\n const regularLabel = document.querySelector(`label[for=${fieldId}]`);\n const fieldsetLegend = document.querySelector(`#${fieldId} .govuk-fieldset__legend`);\n\n if (autocompleteLabel) {\n labelTarget = autocompleteLabel;\n fieldElement = document.getElementById(`${fieldId}-autocomplete`);\n } else {\n labelTarget = regularLabel || fieldsetLegend;\n fieldElement = document.getElementById(fieldId);\n }\n\n if (fieldElement) {\n if (labelTarget) {\n labelTarget.scrollIntoView({ behavior: 'smooth' });\n }\n fieldElement.focus();\n }\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 const controlKey = controlPath[controlPath.length - 1];\n const errorKeys = Object.keys(controlErrors) || [];\n const fieldErrors = 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 .map((controlName) => {\n const control = formControls[controlName];\n\n if (control instanceof FormGroup) {\n return this.getFormErrors(control, [...controlPath, controlName]);\n }\n\n if (control instanceof FormArray) {\n return control.controls\n .map((controlItem, index) => {\n // We only support FormGroups in FormArrays\n if (controlItem instanceof FormGroup) {\n return this.getFormErrors(controlItem, [...controlPath, controlName, index]);\n }\n\n return [];\n })\n .flat();\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 .flat();\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 formErrors.forEach((entry) => {\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 return index !== -1 ? [...acc, index] : acc;\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 formErrors.forEach((error) => {\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 formErrors.forEach((field) => {\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 } else {\n manipulatedFields.push(field);\n }\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 controls.forEach(({ controlName, validators }) => {\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 specified form control and marks it as touched.\n *\n * @param {string} value - The value to set for the form control.\n * @param {string} control - The name of the form control to update.\n */\n protected setInputValue(value: string, control: string) {\n this.form.controls[control].patchValue(value);\n this.form.controls[control].markAsTouched();\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 Object.keys(formControls).forEach((controlName) => {\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 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 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 this.unsavedChanges.emit(this.hasUnsavedChanges());\n if (nonRelative) {\n this.router.navigate([route]);\n } else {\n this.router.navigate([route], { relativeTo: this.activatedRoute.parent });\n }\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
+ {"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, 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';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractFormBaseComponent implements OnInit, OnDestroy {\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\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly router = inject(Router);\n private readonly activatedRoute = inject(ActivatedRoute);\n protected readonly utilsService = inject(UtilsService);\n\n public form!: FormGroup;\n public formControlErrorMessages!: IAbstractFormControlErrorMessage;\n public formErrorSummaryMessage!: IAbstractFormBaseFormErrorSummaryMessage[];\n protected fieldErrors!: IAbstractFormBaseFieldErrors;\n protected formSubmitted = false;\n protected readonly ngUnsubscribe = new Subject<void>();\n public formErrors!: IAbstractFormBaseFormError[];\n\n constructor() {}\n\n /**\n * Scrolls to the label of the component and focuses on the field id\n *\n * @param fieldId - Field id of the component\n */\n private scroll(fieldId: string): void {\n let labelTarget;\n let fieldElement;\n\n const autocompleteLabel = document.querySelector(`label[for=${fieldId}-autocomplete]`);\n const regularLabel = document.querySelector(`label[for=${fieldId}]`);\n const fieldsetLegend = document.querySelector(`#${fieldId} .govuk-fieldset__legend`);\n\n if (autocompleteLabel) {\n labelTarget = autocompleteLabel;\n fieldElement = document.getElementById(`${fieldId}-autocomplete`);\n } else {\n labelTarget = regularLabel || fieldsetLegend;\n fieldElement = document.getElementById(fieldId);\n }\n\n if (fieldElement) {\n if (labelTarget) {\n labelTarget.scrollIntoView({ behavior: 'smooth' });\n }\n fieldElement.focus();\n }\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 const controlKey = controlPath[controlPath.length - 1];\n const errorKeys = Object.keys(controlErrors) || [];\n const fieldErrors = 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 .map((controlName) => {\n const control = formControls[controlName];\n\n if (control instanceof FormGroup) {\n return this.getFormErrors(control, [...controlPath, controlName]);\n }\n\n if (control instanceof FormArray) {\n return control.controls\n .map((controlItem, index) => {\n // We only support FormGroups in FormArrays\n if (controlItem instanceof FormGroup) {\n return this.getFormErrors(controlItem, [...controlPath, controlName, index]);\n }\n\n return [];\n })\n .flat();\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 .flat();\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 formErrors.forEach((entry) => {\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 return index !== -1 ? [...acc, index] : acc;\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 formErrors.forEach((error) => {\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 formErrors.forEach((field) => {\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 } else {\n manipulatedFields.push(field);\n }\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 controls.forEach(({ controlName, validators }) => {\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 specified form control and marks it as touched.\n *\n * @param {string} value - The value to set for the form control.\n * @param {string} control - The name of the form control to update.\n */\n protected setInputValue(value: string, control: string) {\n this.form.controls[control].patchValue(value);\n this.form.controls[control].markAsTouched();\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 Object.keys(formControls).forEach((controlName) => {\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 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 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 this.unsavedChanges.emit(this.hasUnsavedChanges());\n if (nonRelative) {\n this.router.navigate([route]);\n } else {\n this.router.navigate([route], { relativeTo: this.activatedRoute.parent });\n }\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":";;;;;;;MAmBsB,yBAAyB,CAAA;AACzB,IAAA,cAAc,GAAG,IAAI,YAAY,EAAW;;AAE5C,IAAA,UAAU,GAAG,IAAI,YAAY,EAA8B;AAE9D,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC7C,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAE/C,IAAA,IAAI;AACJ,IAAA,wBAAwB;AACxB,IAAA,uBAAuB;AACpB,IAAA,WAAW;IACX,aAAa,GAAG,KAAK;AACZ,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ;AAC/C,IAAA,UAAU;AAEjB,IAAA,WAAA,GAAA;AAEA;;;;AAIG;AACK,IAAA,MAAM,CAAC,OAAe,EAAA;AAC5B,QAAA,IAAI,WAAW;AACf,QAAA,IAAI,YAAY;QAEhB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAa,UAAA,EAAA,OAAO,CAAgB,cAAA,CAAA,CAAC;QACtF,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAa,UAAA,EAAA,OAAO,CAAG,CAAA,CAAA,CAAC;QACpE,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAI,CAAA,EAAA,OAAO,CAA0B,wBAAA,CAAA,CAAC;QAEpF,IAAI,iBAAiB,EAAE;YACrB,WAAW,GAAG,iBAAiB;YAC/B,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAG,EAAA,OAAO,CAAe,aAAA,CAAA,CAAC;;aAC5D;AACL,YAAA,WAAW,GAAG,YAAY,IAAI,cAAc;AAC5C,YAAA,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;;QAGjD,IAAI,YAAY,EAAE;YAChB,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;YAEpD,YAAY,CAAC,KAAK,EAAE;;;AAIxB;;;;;AAKG;AACK,IAAA,uBAAuB,CAC7B,SAAA,GAAsB,EAAE,EACxB,cAA2C,EAAE,EAAA;AAE7C,QAAA,IAAI,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE;YACvD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,SAAiB,KAAI;gBACjD,OAAO;oBACL,GAAG,WAAW,CAAC,SAAS,CAAC;AACzB,oBAAA,IAAI,EAAE,SAAS;iBAChB;AACH,aAAC,CAAC;YAEF,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;AAExE,YAAA,OAAO,YAAY,CAAC,CAAC,CAAC;;AAExB,QAAA,OAAO,IAAI;;AAGb;;;;AAIG;AACK,IAAA,oBAAoB,CAAC,WAAgC,EAAA;;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;;AAG1C,QAAA,MAAM,aAAa,GAAG,OAAO,EAAE,MAAM;QAErC,IAAI,aAAa,EAAE;;YAEjB,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE;AAEtD,YAAA,IAAI,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE;gBACvD,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC;;;AAG/D,QAAA,OAAO,IAAI;;AAGb;;;;;;AAMG;AACK,IAAA,aAAa,CAAC,IAAe,EAAE,WAAA,GAAmC,EAAE,EAAA;;AAE1E,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ;AAElC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY;AAC1C,aAAA,MAAM,CAAC,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO;AACzD,aAAA,GAAG,CAAC,CAAC,WAAW,KAAI;AACnB,YAAA,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC;AAEzC,YAAA,IAAI,OAAO,YAAY,SAAS,EAAE;AAChC,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,WAAW,EAAE,WAAW,CAAC,CAAC;;AAGnE,YAAA,IAAI,OAAO,YAAY,SAAS,EAAE;gBAChC,OAAO,OAAO,CAAC;AACZ,qBAAA,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,KAAI;;AAE1B,oBAAA,IAAI,WAAW,YAAY,SAAS,EAAE;AACpC,wBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;;AAG9E,oBAAA,OAAO,EAAE;AACX,iBAAC;AACA,qBAAA,IAAI,EAAE;;AAGX,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,WAAW,EAAE,WAAW,CAAC,CAAC;;;YAIrF,OAAO;AACL,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,OAAO,EAAE,oBAAoB,EAAE,OAAO,IAAI,IAAI;AAC9C,gBAAA,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,IAAI,SAAS;AACrD,gBAAA,IAAI,EAAE,oBAAoB,EAAE,IAAI,IAAI,IAAI;aACzC;AACH,SAAC;AACA,aAAA,IAAI,EAAE;;AAGT,QAAA,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;;AAG9D;;;AAGG;AACK,IAAA,gBAAgB,CAAC,UAAwC,EAAA;;AAE/D,QAAA,IAAI,CAAC,wBAAwB,GAAG,EAAE;AAClC,QAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE;;AAGjC,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YAC3B,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO;AAC5D,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AACvF,SAAC,CAAC;;AAGJ;;;AAGG;IACK,4BAA4B,GAAA;QAClC,MAAM,eAAe,GAAa,EAAE;;;AAGpC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAChD,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,EACrC,IAAI,CAAC,uBAAuB,CAC7B;;AAGD,QAAA,QAAQ,YAAY,CAAC,MAAM;AACzB,YAAA,KAAK,CAAC;;AAEJ,gBAAA,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtD;AACF,YAAA,KAAK,CAAC;;gBAEJ,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACrC;;AAGJ,QAAA,OAAO,eAAe;;AAGxB;;;;;;AAMG;IACK,wBAAwB,CAC9B,QAAkB,EAClB,uBAAmE,EAAA;QAEnE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAa,EAAE,KAAK,KAAI;AAC9C,YAAA,MAAM,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC;AACnF,YAAA,OAAO,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG;SAC5C,EAAE,EAAE,CAAC;;AAGR;;;;;;AAMG;IACK,0BAA0B,CAChC,uBAAmE,EACnE,OAAiB,EAAA;AAEjB,QAAA,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAG/E;;;;;;;;AAQG;IACK,eAAe,CACrB,QAAkB,EAClB,UAAwC,EAAA;QAExC,MAAM,eAAe,GAAiC,EAAE;QACxD,MAAM,iBAAiB,GAAiC,EAAE;AAE1D,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACpC,gBAAA,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;;iBACxB;AACL,gBAAA,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE/B,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,eAAe,EAAE,iBAAiB,CAAC;;AAG7C;;;;;;;AAOG;AACK,IAAA,0BAA0B,CAChC,MAAgB,EAChB,eAAuB,EACvB,SAAiB,EACjB,UAAwC,EAAA;QAExC,MAAM,iBAAiB,GAAiC,EAAE;AAC1D,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAClC,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;AAC5B,oBAAA,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;;qBACzD;AACL,oBAAA,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;;;iBAE1B;AACL,gBAAA,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEjC,SAAC,CAAC;AAEF,QAAA,OAAO,iBAAiB;;AAG1B;;;;;AAKG;AACK,IAAA,yBAAyB,CAAC,UAAwC,EAAA;;QAExE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3E,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,cAAc,CAAC;;AAGtE;;;;;;;;;AASG;IACK,4BAA4B,GAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;QAEtC,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAgB;QAClF,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;;;AAInC;;AAEG;IACK,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACxE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACpD,SAAC,CAAC;;AAGJ;;;;;;AAMG;AACO,IAAA,sBAAsB,CAC9B,SAAoB,EACpB,QAA+C,EAC/C,KAAa,EAAA;QAEb,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAI;AAC/C,YAAA,SAAS,CAAC,UAAU,CAAC,CAAG,EAAA,WAAW,IAAI,KAAK,CAAA,CAAE,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACpF,SAAC,CAAC;;AAGJ;;;;;;AAMG;AACO,IAAA,iBAAiB,CAAC,UAAyB,EAAE,YAAA,GAA8B,IAAI,EAAA;AACvF,QAAA,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;;AAGvE;;AAEG;IACO,mBAAmB,GAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAE/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AAEtC,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAC5D,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,4BAA4B,EAAE,CACpC;;AAGH;;;;AAIG;IACO,iBAAiB,GAAA;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa;;AAG/C;;;;;AAKG;IACO,aAAa,CAAC,KAAa,EAAE,OAAe,EAAA;AACpD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE;;AAG7C;;;;AAIG;IACO,yBAAyB,GAAA;QACjC,MAAM,eAAe,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC;AAC7D,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC;QAC9E,MAAM,6BAA6B,GAAG,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,qBAAqB,GAAiC,6BAA6B;;AAGvF,QAAA,IAAI,6BAA6B,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,YAAA,qBAAqB,GAAG,IAAI,CAAC,0BAA0B,CACrD,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,qBAAqB,CACtB;;QAGH,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,qBAAqB,CAAC;;AAG1D;;;;AAIG;IACO,uBAAuB,GAAA;AAC/B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;QACvC,MAAM,+BAA+B,GAAqC,EAAE;QAE5E,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;AAChD,YAAA,+BAA+B,CAAC,WAAW,CAAC,GAAG,IAAI;AACrD,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,wBAAwB,GAAG,+BAA+B;AAC/D,QAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE;;AAGnC;;;AAGG;;AAEO,IAAA,cAAc,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;;AAG7B;;;;;AAKG;IACO,aAAa,CAAC,WAAmB,EAAE,UAAyB,EAAA;AACpE,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;;AAGtE;;;;;AAKG;IACO,aAAa,CAAC,WAAmB,EAAE,UAAyB,EAAA;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;QAC1C,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;YACjC,OAAO,CAAC,sBAAsB,EAAE;;aAC3B;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC;;;AAI/C;;;;AAIG;AACO,IAAA,aAAa,CAAC,WAAmB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;;AAGtC;;;;AAIG;AACO,IAAA,mBAAmB,CAAC,WAAmB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC;;AAGnD;;AAEG;IACI,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;;AAGnB;;;;AAIG;AACI,IAAA,QAAQ,CAAC,OAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;;AAGzB;;;;;AAKG;AACI,IAAA,WAAW,CAAC,KAAa,EAAE,WAAuB,GAAA,KAAK,EAAE,KAAa,EAAA;QAC3E,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE;;QAExB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClD,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;;aACxB;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;;;AAI7E;;;;;AAKG;AACI,IAAA,gBAAgB,CAAC,KAAkB,EAAA;QACxC,IAAI,CAAC,mBAAmB,EAAE;AAE1B,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YACzB,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,KAAK;YAC9F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAClD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;;aACtE;YACL,IAAI,CAAC,4BAA4B,EAAE;;;AAIvC;;;;;AAKG;AACI,IAAA,wBAAwB,CAAC,KAAY,EAAA;AAC1C,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC;;IAG3D,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,aAAa,EAAE;;;IAIjB,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;;uGAziBX,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,iJAFnC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAH9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;wDAEqB,cAAc,EAAA,CAAA;sBAAjC;gBAEmB,UAAU,EAAA,CAAA;sBAA7B;;;ACtBH;;AAEG;;;;"}
@@ -1 +1 @@
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/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 * 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 canDeactivate(): CanDeactivateTypes {\n if (this.stateUnsavedChanges) {\n return false;\n } else {\n return true;\n }\n }\n\n /**\n * Navigates to the specified route using the Angular router.\n *\n * @param route - The route to navigate to.\n */\n protected routerNavigate(route: string, nonRelative: boolean = false, event?: Event): void {\n if (event) {\n event.preventDefault();\n }\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 * 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 * 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;;;;;;AAMG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,OAAO,KAAK;;aACP;AACL,YAAA,OAAO,IAAI;;;AAIf;;;;AAIG;AACO,IAAA,cAAc,CAAC,KAAa,EAAE,WAAuB,GAAA,KAAK,EAAE,KAAa,EAAA;QACjF,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE;;QAGxB,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;;aACxB;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;;;AAI7E;;;;;AAKG;;AAEO,IAAA,aAAa,CAAC,IAA4B,EAAA;QAClD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;AAE3C;;ACpDD;;AAEG;;;;"}
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 * 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 canDeactivate(): CanDeactivateTypes {\n if (this.stateUnsavedChanges) {\n return false;\n } else {\n return true;\n }\n }\n\n /**\n * Navigates to the specified route using the Angular router.\n *\n * @param route - The route to navigate to.\n */\n protected routerNavigate(route: string, nonRelative: boolean = false, event?: Event): void {\n if (event) {\n event.preventDefault();\n }\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 * 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 * 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;;;;;;AAMG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,OAAO,KAAK;;aACP;AACL,YAAA,OAAO,IAAI;;;AAIf;;;;AAIG;AACO,IAAA,cAAc,CAAC,KAAa,EAAE,WAAuB,GAAA,KAAK,EAAE,KAAa,EAAA;QACjF,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE;;QAGxB,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;;aACxB;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;;;AAI7E;;;;;AAKG;;AAEO,IAAA,aAAa,CAAC,IAA4B,EAAA;QAClD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;AAE3C;;ACpDD;;AAEG;;;;"}
@@ -45,10 +45,10 @@ class AbstractSortableTablePaginationComponent extends AbstractSortableTableComp
45
45
  const totalPages = Math.ceil(this.abstractTableDataSignal().length / this.itemsPerPageSignal());
46
46
  this.currentPageSignal.set(Math.max(1, Math.min(newPage, totalPages)));
47
47
  }
48
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractSortableTablePaginationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
49
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AbstractSortableTablePaginationComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractSortableTablePaginationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AbstractSortableTablePaginationComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractSortableTablePaginationComponent, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractSortableTablePaginationComponent, decorators: [{
52
52
  type: Component,
53
53
  args: [{
54
54
  template: '',
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-types.mjs.map
@@ -0,0 +1 @@
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,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, signal, EventEmitter, Output, Component } from '@angular/core';
3
- import { SortService } from '@hmcts/opal-frontend-common/services';
3
+ import { SortService } from '@hmcts/opal-frontend-common/services/sort-service';
4
4
 
5
5
  class AbstractSortableTableComponent {
6
6
  sortService = inject(SortService);
@@ -125,10 +125,10 @@ class AbstractSortableTableComponent {
125
125
  ngOnInit() {
126
126
  this.initialiseSortState();
127
127
  }
128
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractSortableTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
129
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AbstractSortableTableComponent, isStandalone: true, selector: "ng-component", outputs: { abstractSortState: "abstractSortState" }, ngImport: i0, template: '', isInline: true });
128
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractSortableTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
129
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AbstractSortableTableComponent, isStandalone: true, selector: "ng-component", outputs: { abstractSortState: "abstractSortState" }, ngImport: i0, template: '', isInline: true });
130
130
  }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AbstractSortableTableComponent, decorators: [{
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AbstractSortableTableComponent, decorators: [{
132
132
  type: Component,
133
133
  args: [{
134
134
  template: '',
@@ -1 +1 @@
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, 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';\nimport { SortableValues, SortDirectionType } from '@hmcts/opal-frontend-common/types';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractSortableTableComponent implements OnInit {\n private readonly sortService = inject(SortService);\n\n public abstractTableDataSignal = signal<IAbstractTableData<SortableValues>[]>([]);\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<SortableValues>[] | 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.abstractTableDataSignal());\n\n this.sortStateSignal.set(initialSortState);\n\n if (existingSortState) {\n Object.entries(existingSortState).forEach(([key, sortType]) => {\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(key: string, sortType: 'ascending' | 'descending'): IAbstractTableData<SortableValues>[] {\n return sortType === 'ascending'\n ? (this.sortService.sortObjectArrayAsc(\n this.abstractTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValues>[])\n : (this.sortService.sortObjectArrayDesc(\n this.abstractTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValues>[]);\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.abstractTableDataSignal.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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAWsB,8BAA8B,CAAA;AACjC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAE3C,IAAA,uBAAuB,GAAG,MAAM,CAAuC,EAAE,CAAC;IAC1E,yBAAyB,GAA8B,IAAI;AAC3D,IAAA,eAAe,GAAG,MAAM,CAAqB,EAAE,CAAC;AAChD,IAAA,uBAAuB,GAAG,MAAM,CAAS,EAAE,CAAC;AAC5C,IAAA,2BAA2B,GAAG,MAAM,CAAoB,MAAM,CAAC;AAE5D,IAAA,iBAAiB,GAAG,IAAI,YAAY,EAAsB;AAEpE;;;;;AAKG;AACK,IAAA,eAAe,CAAC,SAAsD,EAAA;QAC5E,OAAO,SAAS,EAAE;AAChB,cAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAqB,CAAC,KAAK,EAAE,GAAG,KAAI;AAClE,gBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM;AACnB,gBAAA,OAAO,KAAK;aACb,EAAE,EAAE;cACL,EAAE;;AAER;;;;;;;;;;;AAWG;IACK,mBAAmB,GAAA;AACzB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB;AACxD,QAAA,MAAM,gBAAgB,GAAG,iBAAiB,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAElG,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAE1C,IAAI,iBAAiB,EAAE;AACrB,YAAA,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAI;AAC5D,gBAAA,IAAI,QAAQ,KAAK,MAAM,EAAE;oBACvB,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;;AAExC,aAAC,CAAC;;QAEJ,IAAI,CAAC,eAAe,EAAE;;AAGxB;;;;;;AAMG;IACK,eAAe,CAAC,GAAW,EAAE,QAAoC,EAAA;QACvE,IAAI,CAAC,eAAe,CAAC,GAAG,CACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAqB,CAAC,KAAK,EAAE,SAAS,KAAI;AAClF,YAAA,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,KAAK,GAAG,GAAG,QAAQ,GAAG,MAAM;AACxD,YAAA,OAAO,KAAK;AACd,SAAC,EAAE,EAAE,CAAC,CACP;;AAGH;;;;;;AAMG;IACK,kBAAkB,CAAC,GAAW,EAAE,QAAoC,EAAA;QAC1E,OAAO,QAAQ,KAAK;AAClB,cAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAClC,IAAI,CAAC,uBAAuB,EAAE,EAC9B,GAAG;AAEP,cAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CACnC,IAAI,CAAC,uBAAuB,EAAE,EAC9B,GAAG,CACqC;;AAGhD;;;;;;;;AAQG;IACK,eAAe,GAAA;;;QAGrB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC;;QAGlG,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,YAAY;AACvC,YAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC3C,YAAA,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC;;aACtC;;AAEL,YAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC;;;AAIhD;;;;;;;;;AASG;AACO,IAAA,YAAY,CAAC,KAA4D,EAAA;AACjF,QAAA,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK;AAE/B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC;QACnC,IAAI,CAAC,eAAe,EAAE;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC;;AAGzD,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC;;QAG5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;;AAGrD;;AAEG;IACI,QAAQ,GAAA;QACb,IAAI,CAAC,mBAAmB,EAAE;;uGA9IR,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,6HAFxC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEQ,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAHnD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;8BAUW,iBAAiB,EAAA,CAAA;sBAA1B;;;ACpBH;;AAEG;;;;"}
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, 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';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractSortableTableComponent implements OnInit {\n private readonly sortService = inject(SortService);\n\n public abstractTableDataSignal = 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.abstractTableDataSignal());\n\n this.sortStateSignal.set(initialSortState);\n\n if (existingSortState) {\n Object.entries(existingSortState).forEach(([key, sortType]) => {\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.abstractTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValuesType>[])\n : (this.sortService.sortObjectArrayDesc(\n this.abstractTableDataSignal(),\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.abstractTableDataSignal.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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -120,10 +120,10 @@ class AlphagovAccessibleAutocompleteComponent {
120
120
  this.ngUnsubscribe.next();
121
121
  this.ngUnsubscribe.complete();
122
122
  }
123
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
124
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AlphagovAccessibleAutocompleteComponent, isStandalone: true, selector: "opal-lib-alphagov-accessible-autocomplete", inputs: { labelText: "labelText", labelClasses: "labelClasses", inputId: "inputId", inputName: "inputName", inputClasses: "inputClasses", hintText: "hintText", autoCompleteItems: "autoCompleteItems", showAllValues: "showAllValues", errors: "errors", control: "control" }, viewQueries: [{ propertyName: "autocompleteContainer", first: true, predicate: ["autocomplete"], descendants: true }], ngImport: i0, template: "<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 [id]=\"inputId\" [name]=\"inputName\" type=\"hidden\" [formControl]=\"getControl\" />\n</div>\n", styles: [":host ::ng-deep .autocomplete__option{font-family:GDS Transport,arial,sans-serif}:host ::ng-deep .govuk-input--error input{border-color:#d4351c}:host ::ng-deep .autocomplete__input{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: AlphagovAccessibleAutocompleteComponent, isStandalone: true, selector: "opal-lib-alphagov-accessible-autocomplete", inputs: { labelText: "labelText", labelClasses: "labelClasses", inputId: "inputId", inputName: "inputName", inputClasses: "inputClasses", hintText: "hintText", autoCompleteItems: "autoCompleteItems", showAllValues: "showAllValues", errors: "errors", control: "control" }, viewQueries: [{ propertyName: "autocompleteContainer", first: true, predicate: ["autocomplete"], descendants: true }], ngImport: i0, template: "<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 [id]=\"inputId\" [name]=\"inputName\" type=\"hidden\" [formControl]=\"getControl\" />\n</div>\n", styles: [":host ::ng-deep .autocomplete__option{font-family:GDS Transport,arial,sans-serif}:host ::ng-deep .govuk-input--error input{border-color:#d4351c}:host ::ng-deep .autocomplete__input{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, decorators: [{
127
127
  type: Component,
128
128
  args: [{ selector: 'opal-lib-alphagov-accessible-autocomplete', imports: [ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 [id]=\"inputId\" [name]=\"inputName\" type=\"hidden\" [formControl]=\"getControl\" />\n</div>\n", styles: [":host ::ng-deep .autocomplete__option{font-family:GDS Transport,arial,sans-serif}:host ::ng-deep .govuk-input--error input{border-color:#d4351c}:host ::ng-deep .autocomplete__input{background-color:#fff}\n"] }]
129
129
  }], ctorParameters: () => [], propDecorators: { labelText: [{
@@ -16,10 +16,10 @@ class GovukAccordionComponent {
16
16
  });
17
17
  }
18
18
  }
19
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GovukAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: GovukAccordionComponent, isStandalone: true, selector: "opal-lib-govuk-accordion", ngImport: i0, template: "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-default\">\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-1\"> Writing well for the web </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-1\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-1\"\n >\n <p class=\"govuk-body\">This is the content for Writing well for the web.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-2\">\n Writing well for specialists\n </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-2\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-2\"\n >\n <p class=\"govuk-body\">This is the content for Writing well for specialists.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-3\"> Know your audience </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-3\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-3\"\n >\n <p class=\"govuk-body\">This is the content for Know your audience.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-4\"> How people read </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-4\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-4\"\n >\n <p class=\"govuk-body\">This is the content for How people read.</p>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GovukAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: GovukAccordionComponent, isStandalone: true, selector: "opal-lib-govuk-accordion", ngImport: i0, template: "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-default\">\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-1\"> Writing well for the web </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-1\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-1\"\n >\n <p class=\"govuk-body\">This is the content for Writing well for the web.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-2\">\n Writing well for specialists\n </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-2\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-2\"\n >\n <p class=\"govuk-body\">This is the content for Writing well for specialists.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-3\"> Know your audience </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-3\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-3\"\n >\n <p class=\"govuk-body\">This is the content for Know your audience.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-4\"> How people read </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-4\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-4\"\n >\n <p class=\"govuk-body\">This is the content for How people read.</p>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GovukAccordionComponent, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GovukAccordionComponent, decorators: [{
23
23
  type: Component,
24
24
  args: [{ selector: 'opal-lib-govuk-accordion', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-default\">\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-1\"> Writing well for the web </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-1\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-1\"\n >\n <p class=\"govuk-body\">This is the content for Writing well for the web.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-2\">\n Writing well for specialists\n </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-2\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-2\"\n >\n <p class=\"govuk-body\">This is the content for Writing well for specialists.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-3\"> Know your audience </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-3\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-3\"\n >\n <p class=\"govuk-body\">This is the content for Know your audience.</p>\n </div>\n </div>\n <div class=\"govuk-accordion__section\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"accordion-default-heading-4\"> How people read </span>\n </h2>\n </div>\n <div\n id=\"accordion-default-content-4\"\n class=\"govuk-accordion__section-content\"\n aria-labelledby=\"accordion-default-heading-4\"\n >\n <p class=\"govuk-body\">This is the content for How people read.</p>\n </div>\n </div>\n</div>\n" }]
25
25
  }] });
@@ -13,10 +13,10 @@ class GovukBackLinkComponent {
13
13
  event.preventDefault();
14
14
  this.clickEvent.emit(event);
15
15
  }
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GovukBackLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: GovukBackLinkComponent, isStandalone: true, selector: "opal-lib-govuk-back-link", outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<a href=\"#\" class=\"govuk-back-link\" (click)=\"onBack($event)\">Back</a>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GovukBackLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: GovukBackLinkComponent, isStandalone: true, selector: "opal-lib-govuk-back-link", outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<a href=\"#\" class=\"govuk-back-link\" (click)=\"onBack($event)\">Back</a>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GovukBackLinkComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GovukBackLinkComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'opal-lib-govuk-back-link', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a href=\"#\" class=\"govuk-back-link\" (click)=\"onBack($event)\">Back</a>\n" }]
22
22
  }], propDecorators: { clickEvent: [{
@@ -14,10 +14,10 @@ class GovukButtonComponent {
14
14
  handleButtonClick() {
15
15
  this.buttonClickEvent.emit(true);
16
16
  }
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GovukButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: GovukButtonComponent, isStandalone: true, selector: "opal-lib-govuk-button", inputs: { buttonId: "buttonId", type: "type", buttonClasses: "buttonClasses" }, outputs: { buttonClickEvent: "buttonClickEvent" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GovukButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: GovukButtonComponent, isStandalone: true, selector: "opal-lib-govuk-button", inputs: { buttonId: "buttonId", type: "type", buttonClasses: "buttonClasses" }, outputs: { buttonClickEvent: "buttonClickEvent" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GovukButtonComponent, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GovukButtonComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{ selector: 'opal-lib-govuk-button', imports: [CommonModule, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
23
23
  }], propDecorators: { buttonId: [{
@@ -10,10 +10,10 @@ class GovukCancelLinkComponent {
10
10
  handleClick() {
11
11
  this.linkClickEvent.emit(true);
12
12
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GovukCancelLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: GovukCancelLinkComponent, isStandalone: true, selector: "opal-lib-govuk-cancel-link", inputs: { cancelLinkText: "cancelLinkText" }, outputs: { linkClickEvent: "linkClickEvent" }, ngImport: i0, template: "<a (keyup.enter)=\"handleClick()\" (click)=\"handleClick()\" class=\"govuk-link button-link\" role=\"link\" tabindex=\"0\">{{\n cancelLinkText\n}}</a>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GovukCancelLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: GovukCancelLinkComponent, isStandalone: true, selector: "opal-lib-govuk-cancel-link", inputs: { cancelLinkText: "cancelLinkText" }, outputs: { linkClickEvent: "linkClickEvent" }, ngImport: i0, template: "<a (keyup.enter)=\"handleClick()\" (click)=\"handleClick()\" class=\"govuk-link button-link\" role=\"link\" tabindex=\"0\">{{\n cancelLinkText\n}}</a>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GovukCancelLinkComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GovukCancelLinkComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'opal-lib-govuk-cancel-link', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a (keyup.enter)=\"handleClick()\" (click)=\"handleClick()\" class=\"govuk-link button-link\" role=\"link\" tabindex=\"0\">{{\n cancelLinkText\n}}</a>\n" }]
19
19
  }], propDecorators: { cancelLinkText: [{