@hmcts/opal-frontend-common 0.0.55 → 0.0.56

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 (166) hide show
  1. package/components/govuk/govuk-tabs/govuk-tabs-list-item/README.md +15 -5
  2. package/fesm2022/{hmcts-opal-frontend-common-access-denied.component-GXcZeEZc.mjs → hmcts-opal-frontend-common-access-denied.component-Bh_bwG8W.mjs} +4 -4
  3. package/fesm2022/{hmcts-opal-frontend-common-access-denied.component-GXcZeEZc.mjs.map → hmcts-opal-frontend-common-access-denied.component-Bh_bwG8W.mjs.map} +1 -1
  4. package/fesm2022/{hmcts-opal-frontend-common-account-created.component-CnWM00dp.mjs → hmcts-opal-frontend-common-account-created.component-DyJukw2Z.mjs} +4 -4
  5. package/fesm2022/{hmcts-opal-frontend-common-account-created.component-CnWM00dp.mjs.map → hmcts-opal-frontend-common-account-created.component-DyJukw2Z.mjs.map} +1 -1
  6. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs +3 -3
  7. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs +3 -3
  8. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs +3 -3
  9. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs +3 -3
  10. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.mjs +3 -3
  11. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs +3 -3
  12. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs +3 -3
  13. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs +3 -3
  14. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs +90 -3
  15. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs.map +1 -1
  16. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs +3 -3
  17. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs +3 -3
  18. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs +3 -3
  19. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs +3 -3
  20. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-action-links.mjs +3 -3
  21. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-horizontal-scroll-pane.mjs +3 -3
  22. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-page-header.mjs +3 -3
  23. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes-custom-scrollable-panes-inner-pane.mjs +3 -3
  24. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes.mjs +3 -3
  25. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs +3 -3
  26. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs +3 -3
  27. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs +3 -3
  28. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs +3 -3
  29. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-inner-pane.mjs +3 -3
  30. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-outer-pane.mjs +3 -3
  31. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane.mjs +3 -3
  32. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs +105 -16
  33. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs.map +1 -1
  34. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs +3 -3
  35. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-button.mjs +3 -3
  36. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs +3 -3
  37. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs +23 -13
  38. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs.map +1 -1
  39. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs +14 -4
  40. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs.map +1 -1
  41. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-details.mjs +3 -3
  42. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-error-summary.mjs +3 -3
  43. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-footer.mjs +3 -3
  44. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header.mjs +6 -6
  45. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-heading-with-caption.mjs +3 -3
  46. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-inset-text.mjs +3 -3
  47. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list-govuk-list-link.mjs +3 -3
  48. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list.mjs +3 -3
  49. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.mjs +16 -4
  50. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.mjs.map +1 -1
  51. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs +3 -3
  52. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-panel.mjs +3 -3
  53. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs +24 -14
  54. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs.map +1 -1
  55. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs +14 -4
  56. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs.map +1 -1
  57. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-card-list.mjs +6 -6
  58. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs +12 -12
  59. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-table.mjs +12 -12
  60. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.mjs +30 -15
  61. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.mjs.map +1 -1
  62. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-panel.mjs +40 -6
  63. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-panel.mjs.map +1 -1
  64. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs +20 -6
  65. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs.map +1 -1
  66. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tag.mjs +3 -3
  67. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-task-list.mjs +6 -6
  68. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs +17 -4
  69. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs.map +1 -1
  70. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs +10 -4
  71. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs.map +1 -1
  72. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs +15 -4
  73. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs.map +1 -1
  74. package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs +7 -4
  75. package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs.map +1 -1
  76. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-alert.mjs +21 -21
  77. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-badge.mjs +3 -3
  78. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu-moj-button-menu-item.mjs +3 -3
  79. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs +11 -13
  80. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs.map +1 -1
  81. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs +14 -4
  82. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs.map +1 -1
  83. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-header.mjs +3 -3
  84. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-item.mjs +3 -3
  85. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-keyword.mjs +4 -4
  86. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-keyword.mjs.map +1 -1
  87. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option.mjs +3 -3
  88. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected-moj-filter-panel-selected-tag.mjs +3 -3
  89. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected.mjs +3 -3
  90. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel.mjs +3 -3
  91. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs +9 -4
  92. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs.map +1 -1
  93. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header.mjs +6 -6
  94. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-notification-badge.mjs +3 -3
  95. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-page-header.mjs +3 -3
  96. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs +3 -3
  97. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-primary-navigation.mjs +6 -6
  98. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sortable-table.mjs +18 -18
  99. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sub-navigation.mjs +6 -6
  100. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-ticket-panel.mjs +3 -3
  101. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-timeline.mjs +6 -6
  102. package/fesm2022/{hmcts-opal-frontend-common-concurrency-failure.component-CMrT3Rgc.mjs → hmcts-opal-frontend-common-concurrency-failure.component-DlRSu1M1.mjs} +4 -4
  103. package/fesm2022/{hmcts-opal-frontend-common-concurrency-failure.component-CMrT3Rgc.mjs.map → hmcts-opal-frontend-common-concurrency-failure.component-DlRSu1M1.mjs.map} +1 -1
  104. package/fesm2022/hmcts-opal-frontend-common-directives-capitalisation.mjs +3 -3
  105. package/fesm2022/hmcts-opal-frontend-common-directives-govuk-button.mjs +3 -3
  106. package/fesm2022/{hmcts-opal-frontend-common-internal-server-error.component-2YW-gEtF.mjs → hmcts-opal-frontend-common-internal-server-error.component-CUrAQABP.mjs} +4 -4
  107. package/fesm2022/{hmcts-opal-frontend-common-internal-server-error.component-2YW-gEtF.mjs.map → hmcts-opal-frontend-common-internal-server-error.component-CUrAQABP.mjs.map} +1 -1
  108. package/fesm2022/{hmcts-opal-frontend-common-pages-access-denied.component-GXcZeEZc.mjs → hmcts-opal-frontend-common-pages-access-denied.component-Bh_bwG8W.mjs} +4 -4
  109. package/fesm2022/{hmcts-opal-frontend-common-pages-access-denied.component-GXcZeEZc.mjs.map → hmcts-opal-frontend-common-pages-access-denied.component-Bh_bwG8W.mjs.map} +1 -1
  110. package/fesm2022/{hmcts-opal-frontend-common-pages-account-created.component-CnWM00dp.mjs → hmcts-opal-frontend-common-pages-account-created.component-DyJukw2Z.mjs} +4 -4
  111. package/fesm2022/{hmcts-opal-frontend-common-pages-account-created.component-CnWM00dp.mjs.map → hmcts-opal-frontend-common-pages-account-created.component-DyJukw2Z.mjs.map} +1 -1
  112. package/fesm2022/{hmcts-opal-frontend-common-pages-concurrency-failure.component-CMrT3Rgc.mjs → hmcts-opal-frontend-common-pages-concurrency-failure.component-DlRSu1M1.mjs} +4 -4
  113. package/fesm2022/{hmcts-opal-frontend-common-pages-concurrency-failure.component-CMrT3Rgc.mjs.map → hmcts-opal-frontend-common-pages-concurrency-failure.component-DlRSu1M1.mjs.map} +1 -1
  114. package/fesm2022/{hmcts-opal-frontend-common-pages-internal-server-error.component-2YW-gEtF.mjs → hmcts-opal-frontend-common-pages-internal-server-error.component-CUrAQABP.mjs} +4 -4
  115. package/fesm2022/{hmcts-opal-frontend-common-pages-internal-server-error.component-2YW-gEtF.mjs.map → hmcts-opal-frontend-common-pages-internal-server-error.component-CUrAQABP.mjs.map} +1 -1
  116. package/fesm2022/{hmcts-opal-frontend-common-pages-permission-denied.component-DkLF7y3R.mjs → hmcts-opal-frontend-common-pages-permission-denied.component-D2ftUh_2.mjs} +4 -4
  117. package/fesm2022/{hmcts-opal-frontend-common-pages-permission-denied.component-DkLF7y3R.mjs.map → hmcts-opal-frontend-common-pages-permission-denied.component-D2ftUh_2.mjs.map} +1 -1
  118. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-vKSMYfXq.mjs → hmcts-opal-frontend-common-pages-sign-in-stub.component-poQu8P9k.mjs} +4 -4
  119. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-vKSMYfXq.mjs.map → hmcts-opal-frontend-common-pages-sign-in-stub.component-poQu8P9k.mjs.map} +1 -1
  120. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in.component-DVDmyTKi.mjs → hmcts-opal-frontend-common-pages-sign-in.component-EQuYEb0P.mjs} +4 -4
  121. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in.component-DVDmyTKi.mjs.map → hmcts-opal-frontend-common-pages-sign-in.component-EQuYEb0P.mjs.map} +1 -1
  122. package/fesm2022/hmcts-opal-frontend-common-pages.mjs +6 -6
  123. package/fesm2022/{hmcts-opal-frontend-common-permission-denied.component-DkLF7y3R.mjs → hmcts-opal-frontend-common-permission-denied.component-D2ftUh_2.mjs} +4 -4
  124. package/fesm2022/{hmcts-opal-frontend-common-permission-denied.component-DkLF7y3R.mjs.map → hmcts-opal-frontend-common-permission-denied.component-D2ftUh_2.mjs.map} +1 -1
  125. package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs +3 -3
  126. package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs +3 -3
  127. package/fesm2022/hmcts-opal-frontend-common-pipes-monetary.mjs +3 -3
  128. package/fesm2022/hmcts-opal-frontend-common-pipes-national-insurance.mjs +3 -3
  129. package/fesm2022/hmcts-opal-frontend-common-resolvers-title.mjs +3 -3
  130. package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs +3 -3
  131. package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs +3 -3
  132. package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs +3 -3
  133. package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs +3 -3
  134. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs +3 -3
  135. package/fesm2022/hmcts-opal-frontend-common-services-opal-user-service.mjs +3 -3
  136. package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs +3 -3
  137. package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs +3 -3
  138. package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs +3 -3
  139. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs +3 -3
  140. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs +3 -3
  141. package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs +3 -3
  142. package/fesm2022/{hmcts-opal-frontend-common-sign-in-stub.component-vKSMYfXq.mjs → hmcts-opal-frontend-common-sign-in-stub.component-poQu8P9k.mjs} +4 -4
  143. package/fesm2022/{hmcts-opal-frontend-common-sign-in-stub.component-vKSMYfXq.mjs.map → hmcts-opal-frontend-common-sign-in-stub.component-poQu8P9k.mjs.map} +1 -1
  144. package/fesm2022/{hmcts-opal-frontend-common-sign-in.component-D9_GhRtz.mjs → hmcts-opal-frontend-common-sign-in.component-D5yCVKi6.mjs} +4 -4
  145. package/fesm2022/{hmcts-opal-frontend-common-sign-in.component-D9_GhRtz.mjs.map → hmcts-opal-frontend-common-sign-in.component-D5yCVKi6.mjs.map} +1 -1
  146. package/fesm2022/hmcts-opal-frontend-common-validators-amount.mjs +1 -1
  147. package/fesm2022/hmcts-opal-frontend-common-validators-amount.mjs.map +1 -1
  148. package/fesm2022/hmcts-opal-frontend-common.mjs +6 -6
  149. package/package.json +1 -1
  150. package/types/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.d.ts +25 -2
  151. package/types/hmcts-opal-frontend-common-components-govuk-govuk-accordion.d.ts +57 -8
  152. package/types/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.d.ts +1 -0
  153. package/types/hmcts-opal-frontend-common-components-govuk-govuk-date-input.d.ts +1 -0
  154. package/types/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.d.ts +7 -1
  155. package/types/hmcts-opal-frontend-common-components-govuk-govuk-radio.d.ts +1 -0
  156. package/types/hmcts-opal-frontend-common-components-govuk-govuk-select.d.ts +1 -0
  157. package/types/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.d.ts +15 -3
  158. package/types/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-panel.d.ts +10 -1
  159. package/types/hmcts-opal-frontend-common-components-govuk-govuk-tabs.d.ts +9 -1
  160. package/types/hmcts-opal-frontend-common-components-govuk-govuk-text-area.d.ts +1 -0
  161. package/types/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.d.ts +1 -0
  162. package/types/hmcts-opal-frontend-common-components-govuk-govuk-text-input.d.ts +1 -0
  163. package/types/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.d.ts +2 -1
  164. package/types/hmcts-opal-frontend-common-components-moj-moj-button-menu.d.ts +2 -3
  165. package/types/hmcts-opal-frontend-common-components-moj-moj-date-picker.d.ts +1 -0
  166. package/types/hmcts-opal-frontend-common-components-moj-moj-filter.d.ts +2 -1
@@ -1,6 +1,7 @@
1
1
  # GOV.UK Tab List Item Component
2
2
 
3
- This Angular component renders a single `<li>` element with the appropriate GOV.UK class for use within a tabbed navigation structure. It wraps a projected `<a>` tag that acts as the tab link.
3
+ This Angular component renders a single list item wrapper with the appropriate GOV.UK class for use within a tabbed
4
+ navigation structure. It renders the `<a>` tab link and projects the link text.
4
5
 
5
6
  ## Table of Contents
6
7
 
@@ -19,7 +20,7 @@ import { GovukTabListItemComponent } from 'opal-frontend-common/components/govuk
19
20
 
20
21
  ## Usage
21
22
 
22
- This component renders a `<li>` with appropriate GOV.UK classes for use within a tabs list. It wraps a projected `<a>` element.
23
+ This component renders a list item wrapper with appropriate GOV.UK classes for use within a tabs list.
23
24
 
24
25
  You must provide the following inputs:
25
26
 
@@ -37,15 +38,24 @@ The link text inside the `<a>` is projected using `<ng-content>`.
37
38
  [activeTabItemFragment]="activeTabFragment"
38
39
  [tabItemId]="'tab-individuals'"
39
40
  >
40
- <ng-content [linkText]>Individuals</ng-content>
41
+ Individuals
41
42
  </opal-lib-govuk-tabs-list-item>
42
43
  ```
43
44
 
44
45
  This results in:
45
46
 
46
47
  ```html
47
- <li class="govuk-tabs__list-item govuk-tabs__list-item--selected" id="tab-individuals">
48
- <a id="tab-individuals" href="#panel-individuals" class="govuk-tabs__tab">Individuals</a>
48
+ <li class="govuk-tabs__list-item govuk-tabs__list-item--selected">
49
+ <a
50
+ id="tab-individuals"
51
+ href="#panel-individuals"
52
+ class="govuk-tabs__tab"
53
+ role="tab"
54
+ aria-controls="panel-individuals"
55
+ aria-selected="true"
56
+ >
57
+ Individuals
58
+ </a>
49
59
  </li>
50
60
  ```
51
61
 
@@ -9,13 +9,13 @@ class AccessDeniedComponent {
9
9
  // For now, test page will act as our 'Dashboard' page
10
10
  this.router.navigate(['/']);
11
11
  }
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AccessDeniedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AccessDeniedComponent, isStandalone: true, selector: "opal-lib-access-denied", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Access Denied</h1>\n <p class=\"govuk-body\">You do not have the appropriate permissions to access this page.</p>\n <p class=\"govuk-body\">\n <opal-lib-govuk-button\n buttonClasses=\"govuk-button--secondary\"\n buttonId=\"go-back\"\n (buttonClickEvent)=\"handleGoBackButtonClick()\"\n >\n Back to dashboard</opal-lib-govuk-button\n >\n </p>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: GovukButtonComponent, selector: "opal-lib-govuk-button", inputs: ["buttonId", "type", "buttonClasses"], outputs: ["buttonClickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AccessDeniedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AccessDeniedComponent, isStandalone: true, selector: "opal-lib-access-denied", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Access Denied</h1>\n <p class=\"govuk-body\">You do not have the appropriate permissions to access this page.</p>\n <p class=\"govuk-body\">\n <opal-lib-govuk-button\n buttonClasses=\"govuk-button--secondary\"\n buttonId=\"go-back\"\n (buttonClickEvent)=\"handleGoBackButtonClick()\"\n >\n Back to dashboard</opal-lib-govuk-button\n >\n </p>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: GovukButtonComponent, selector: "opal-lib-govuk-button", inputs: ["buttonId", "type", "buttonClasses"], outputs: ["buttonClickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AccessDeniedComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AccessDeniedComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'opal-lib-access-denied', imports: [GovukButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Access Denied</h1>\n <p class=\"govuk-body\">You do not have the appropriate permissions to access this page.</p>\n <p class=\"govuk-body\">\n <opal-lib-govuk-button\n buttonClasses=\"govuk-button--secondary\"\n buttonId=\"go-back\"\n (buttonClickEvent)=\"handleGoBackButtonClick()\"\n >\n Back to dashboard</opal-lib-govuk-button\n >\n </p>\n </div>\n</div>\n" }]
18
18
  }] });
19
19
 
20
20
  export { AccessDeniedComponent };
21
- //# sourceMappingURL=hmcts-opal-frontend-common-access-denied.component-GXcZeEZc.mjs.map
21
+ //# sourceMappingURL=hmcts-opal-frontend-common-access-denied.component-Bh_bwG8W.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-access-denied.component-GXcZeEZc.mjs","sources":["../../../projects/opal-frontend-common/pages/access-denied/access-denied.component.ts","../../../projects/opal-frontend-common/pages/access-denied/access-denied.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GovukButtonComponent } from '@hmcts/opal-frontend-common/components/govuk/govuk-button';\n\n@Component({\n selector: 'opal-lib-access-denied',\n imports: [GovukButtonComponent],\n templateUrl: './access-denied.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccessDeniedComponent {\n private readonly router = inject(Router);\n\n public handleGoBackButtonClick(): void {\n // For now, test page will act as our 'Dashboard' page\n this.router.navigate(['/']);\n }\n}\n","<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Access Denied</h1>\n <p class=\"govuk-body\">You do not have the appropriate permissions to access this page.</p>\n <p class=\"govuk-body\">\n <opal-lib-govuk-button\n buttonClasses=\"govuk-button--secondary\"\n buttonId=\"go-back\"\n (buttonClickEvent)=\"handleGoBackButtonClick()\"\n >\n Back to dashboard</opal-lib-govuk-button\n >\n </p>\n </div>\n</div>\n"],"names":[],"mappings":";;;;;MAUa,qBAAqB,CAAA;AACf,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAEjC,uBAAuB,GAAA;;QAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B;wGANW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVlC,ihBAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDTY,oBAAoB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAInB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,WACzB,CAAC,oBAAoB,CAAC,EAAA,eAAA,EAEd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ihBAAA,EAAA;;;;;"}
1
+ {"version":3,"file":"hmcts-opal-frontend-common-access-denied.component-Bh_bwG8W.mjs","sources":["../../../projects/opal-frontend-common/pages/access-denied/access-denied.component.ts","../../../projects/opal-frontend-common/pages/access-denied/access-denied.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GovukButtonComponent } from '@hmcts/opal-frontend-common/components/govuk/govuk-button';\n\n@Component({\n selector: 'opal-lib-access-denied',\n imports: [GovukButtonComponent],\n templateUrl: './access-denied.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccessDeniedComponent {\n private readonly router = inject(Router);\n\n public handleGoBackButtonClick(): void {\n // For now, test page will act as our 'Dashboard' page\n this.router.navigate(['/']);\n }\n}\n","<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Access Denied</h1>\n <p class=\"govuk-body\">You do not have the appropriate permissions to access this page.</p>\n <p class=\"govuk-body\">\n <opal-lib-govuk-button\n buttonClasses=\"govuk-button--secondary\"\n buttonId=\"go-back\"\n (buttonClickEvent)=\"handleGoBackButtonClick()\"\n >\n Back to dashboard</opal-lib-govuk-button\n >\n </p>\n </div>\n</div>\n"],"names":[],"mappings":";;;;;MAUa,qBAAqB,CAAA;AACf,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAEjC,uBAAuB,GAAA;;QAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B;wGANW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVlC,ihBAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDTY,oBAAoB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAInB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,WACzB,CAAC,oBAAoB,CAAC,EAAA,eAAA,EAEd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ihBAAA,EAAA;;;;;"}
@@ -3,13 +3,13 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { GovukPanelComponent } from '@hmcts/opal-frontend-common/components/govuk/govuk-panel';
4
4
 
5
5
  class AccountCreated {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AccountCreated, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AccountCreated, isStandalone: true, selector: "opal-lib-account-created", ngImport: i0, template: "<div class=\"govuk-grid-column-two-thirds\">\n <opal-lib-govuk-panel panelTitle=\"User account created\"></opal-lib-govuk-panel>\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h2 class=\"govuk-fieldset__heading\">Next steps</h2>\n </legend>\n <p class=\"govuk-body\">\n Your Opal account has been created but is not yet live. <br />\n Contact your team lead to activate it fully.\n </p>\n </fieldset>\n</div>\n", dependencies: [{ kind: "component", type: GovukPanelComponent, selector: "opal-lib-govuk-panel", inputs: ["panelTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AccountCreated, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AccountCreated, isStandalone: true, selector: "opal-lib-account-created", ngImport: i0, template: "<div class=\"govuk-grid-column-two-thirds\">\n <opal-lib-govuk-panel panelTitle=\"User account created\"></opal-lib-govuk-panel>\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h2 class=\"govuk-fieldset__heading\">Next steps</h2>\n </legend>\n <p class=\"govuk-body\">\n Your Opal account has been created but is not yet live. <br />\n Contact your team lead to activate it fully.\n </p>\n </fieldset>\n</div>\n", dependencies: [{ kind: "component", type: GovukPanelComponent, selector: "opal-lib-govuk-panel", inputs: ["panelTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AccountCreated, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AccountCreated, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'opal-lib-account-created', imports: [GovukPanelComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-column-two-thirds\">\n <opal-lib-govuk-panel panelTitle=\"User account created\"></opal-lib-govuk-panel>\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h2 class=\"govuk-fieldset__heading\">Next steps</h2>\n </legend>\n <p class=\"govuk-body\">\n Your Opal account has been created but is not yet live. <br />\n Contact your team lead to activate it fully.\n </p>\n </fieldset>\n</div>\n" }]
12
12
  }] });
13
13
 
14
14
  export { AccountCreated };
15
- //# sourceMappingURL=hmcts-opal-frontend-common-account-created.component-CnWM00dp.mjs.map
15
+ //# sourceMappingURL=hmcts-opal-frontend-common-account-created.component-DyJukw2Z.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-account-created.component-CnWM00dp.mjs","sources":["../../../projects/opal-frontend-common/pages/account-created/account-created.component.ts","../../../projects/opal-frontend-common/pages/account-created/account-created.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { GovukPanelComponent } from '@hmcts/opal-frontend-common/components/govuk/govuk-panel';\n\n@Component({\n selector: 'opal-lib-account-created',\n imports: [GovukPanelComponent],\n templateUrl: './account-created.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccountCreated {}\n","<div class=\"govuk-grid-column-two-thirds\">\n <opal-lib-govuk-panel panelTitle=\"User account created\"></opal-lib-govuk-panel>\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h2 class=\"govuk-fieldset__heading\">Next steps</h2>\n </legend>\n <p class=\"govuk-body\">\n Your Opal account has been created but is not yet live. <br />\n Contact your team lead to activate it fully.\n </p>\n </fieldset>\n</div>\n"],"names":[],"mappings":";;;;MASa,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT3B,0fAYA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPY,mBAAmB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIlB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,WAC3B,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAEb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0fAAA,EAAA;;;;;"}
1
+ {"version":3,"file":"hmcts-opal-frontend-common-account-created.component-DyJukw2Z.mjs","sources":["../../../projects/opal-frontend-common/pages/account-created/account-created.component.ts","../../../projects/opal-frontend-common/pages/account-created/account-created.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { GovukPanelComponent } from '@hmcts/opal-frontend-common/components/govuk/govuk-panel';\n\n@Component({\n selector: 'opal-lib-account-created',\n imports: [GovukPanelComponent],\n templateUrl: './account-created.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccountCreated {}\n","<div class=\"govuk-grid-column-two-thirds\">\n <opal-lib-govuk-panel panelTitle=\"User account created\"></opal-lib-govuk-panel>\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h2 class=\"govuk-fieldset__heading\">Next steps</h2>\n </legend>\n <p class=\"govuk-body\">\n Your Opal account has been created but is not yet live. <br />\n Contact your team lead to activate it fully.\n </p>\n </fieldset>\n</div>\n"],"names":[],"mappings":";;;;MASa,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT3B,0fAYA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPY,mBAAmB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIlB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,WAC3B,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAEb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0fAAA,EAAA;;;;;"}
@@ -211,10 +211,10 @@ class AbstractFormAliasBaseComponent extends AbstractFormBaseComponent {
211
211
  this['ngUnsubscribe'].complete();
212
212
  super.ngOnDestroy();
213
213
  }
214
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormAliasBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
215
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AbstractFormAliasBaseComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "aliasFirstField", predicate: ["aliasFirstField"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
214
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractFormAliasBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
215
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AbstractFormAliasBaseComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "aliasFirstField", predicate: ["aliasFirstField"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormAliasBaseComponent, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractFormAliasBaseComponent, decorators: [{
218
218
  type: Component,
219
219
  args: [{
220
220
  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: "20.3.15", ngImport: i0, type: AbstractFormArrayBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
238
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AbstractFormArrayBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
237
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractFormArrayBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
238
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AbstractFormArrayBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
239
239
  }
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormArrayBaseComponent, decorators: [{
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", 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: "20.3.15", ngImport: i0, type: AbstractFormArrayRemovalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AbstractFormArrayRemovalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractFormArrayRemovalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AbstractFormArrayRemovalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormArrayRemovalComponent, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractFormArrayRemovalComponent, decorators: [{
84
84
  type: Component,
85
85
  args: [{
86
86
  template: '',
@@ -595,10 +595,10 @@ class AbstractFormBaseComponent {
595
595
  this.ngUnsubscribe.next();
596
596
  this.ngUnsubscribe.complete();
597
597
  }
598
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
599
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AbstractFormBaseComponent, isStandalone: true, selector: "ng-component", outputs: { unsavedChanges: "unsavedChanges", formSubmit: "formSubmit" }, ngImport: i0, template: '', isInline: true });
598
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractFormBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
599
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AbstractFormBaseComponent, isStandalone: true, selector: "ng-component", outputs: { unsavedChanges: "unsavedChanges", formSubmit: "formSubmit" }, ngImport: i0, template: '', isInline: true });
600
600
  }
601
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractFormBaseComponent, decorators: [{
601
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractFormBaseComponent, decorators: [{
602
602
  type: Component,
603
603
  args: [{
604
604
  template: '',
@@ -125,10 +125,10 @@ class AbstractNestedFormBaseComponent extends AbstractFormBaseComponent {
125
125
  }
126
126
  super.ngOnDestroy();
127
127
  }
128
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractNestedFormBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
129
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AbstractNestedFormBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
128
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractNestedFormBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
129
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AbstractNestedFormBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
130
130
  }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractNestedFormBaseComponent, decorators: [{
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractNestedFormBaseComponent, decorators: [{
132
132
  type: Component,
133
133
  args: [{
134
134
  template: '',
@@ -61,10 +61,10 @@ class AbstractSortableTablePaginationComponent extends AbstractSortableTableComp
61
61
  const totalPages = Math.ceil(this.displayTableDataSignal().length / this.itemsPerPageSignal());
62
62
  this.currentPageSignal.set(Math.max(1, Math.min(newPage, totalPages)));
63
63
  }
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractSortableTablePaginationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
65
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AbstractSortableTablePaginationComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
64
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractSortableTablePaginationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
65
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AbstractSortableTablePaginationComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
66
66
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractSortableTablePaginationComponent, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractSortableTablePaginationComponent, decorators: [{
68
68
  type: Component,
69
69
  args: [{
70
70
  template: '',
@@ -185,10 +185,10 @@ class AbstractSortableTableComponent extends AbstractTableFilterComponent {
185
185
  this.onSortChange({ key, sortType });
186
186
  }
187
187
  }
188
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractSortableTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
189
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AbstractSortableTableComponent, isStandalone: true, selector: "ng-component", outputs: { abstractSortState: "abstractSortState" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
188
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractSortableTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
189
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AbstractSortableTableComponent, isStandalone: true, selector: "ng-component", outputs: { abstractSortState: "abstractSortState" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
190
190
  }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractSortableTableComponent, decorators: [{
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractSortableTableComponent, decorators: [{
192
192
  type: Component,
193
193
  args: [{
194
194
  template: '',
@@ -168,10 +168,10 @@ class AbstractTableFilterComponent {
168
168
  this.appliedKeyword.set(keyword);
169
169
  this.applyFilterState();
170
170
  }
171
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractTableFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
172
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AbstractTableFilterComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractTableFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AbstractTableFilterComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
173
173
  }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AbstractTableFilterComponent, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AbstractTableFilterComponent, decorators: [{
175
175
  type: Component,
176
176
  args: [{ template: '' }]
177
177
  }] });
@@ -8,6 +8,8 @@ class AlphagovAccessibleAutocompleteComponent {
8
8
  changeDetector = inject(ChangeDetectorRef);
9
9
  _control;
10
10
  ngUnsubscribe = new Subject();
11
+ describedByObserver = null;
12
+ containerObserver = null;
11
13
  labelText;
12
14
  labelClasses;
13
15
  inputId;
@@ -104,8 +106,86 @@ class AlphagovAccessibleAutocompleteComponent {
104
106
  configureAutoComplete() {
105
107
  import('accessible-autocomplete').then((accessibleAutocomplete) => {
106
108
  accessibleAutocomplete.default(this.buildAutoCompleteProps());
109
+ this.waitForInputAndApply();
107
110
  });
108
111
  }
112
+ /**
113
+ * Gets the rendered autocomplete text input, if present.
114
+ */
115
+ getVisibleInput() {
116
+ return this.autocompleteContainer?.nativeElement?.querySelector(`#${this.autoCompleteId}`);
117
+ }
118
+ /**
119
+ * Builds the hint/error ids to apply to aria-describedby.
120
+ */
121
+ buildDescribedByIds() {
122
+ const ids = [];
123
+ if (this.hintText) {
124
+ ids.push(`${this.inputId}-hint`);
125
+ }
126
+ if (this.errors) {
127
+ ids.push(`${this.autoCompleteId}-error-message`);
128
+ }
129
+ return ids;
130
+ }
131
+ /**
132
+ * Updates aria-describedby on the visible input, preserving any non-managed ids.
133
+ */
134
+ applyDescribedBy() {
135
+ const input = this.getVisibleInput();
136
+ if (!input) {
137
+ return;
138
+ }
139
+ const managedIds = new Set([`${this.inputId}-hint`, `${this.autoCompleteId}-error-message`]);
140
+ const currentValue = input.getAttribute('aria-describedby') ?? '';
141
+ const currentIds = currentValue.split(' ').filter(Boolean);
142
+ const preservedIds = currentIds.filter((id) => !managedIds.has(id));
143
+ const nextIds = [...new Set([...preservedIds, ...this.buildDescribedByIds()])];
144
+ const nextValue = nextIds.length ? nextIds.join(' ') : '';
145
+ if (currentValue === nextValue) {
146
+ return;
147
+ }
148
+ if (nextValue) {
149
+ input.setAttribute('aria-describedby', nextValue);
150
+ }
151
+ else {
152
+ input.removeAttribute('aria-describedby');
153
+ }
154
+ }
155
+ /**
156
+ * Observes aria-describedby changes on the visible input to reapply managed ids.
157
+ */
158
+ observeDescribedBy() {
159
+ const input = this.getVisibleInput();
160
+ if (!input || typeof MutationObserver === 'undefined') {
161
+ return;
162
+ }
163
+ this.describedByObserver?.disconnect();
164
+ this.describedByObserver = new MutationObserver(() => this.applyDescribedBy());
165
+ this.describedByObserver.observe(input, { attributes: true, attributeFilter: ['aria-describedby'] });
166
+ this.applyDescribedBy();
167
+ }
168
+ /**
169
+ * Waits for the visible input to appear, then applies describedby and observers.
170
+ */
171
+ waitForInputAndApply() {
172
+ const input = this.getVisibleInput();
173
+ if (input) {
174
+ this.observeDescribedBy();
175
+ return;
176
+ }
177
+ if (typeof MutationObserver === 'undefined') {
178
+ return;
179
+ }
180
+ this.containerObserver?.disconnect();
181
+ this.containerObserver = new MutationObserver(() => {
182
+ if (this.getVisibleInput()) {
183
+ this.containerObserver?.disconnect();
184
+ this.observeDescribedBy();
185
+ }
186
+ });
187
+ this.containerObserver.observe(this.autocompleteContainer.nativeElement, { childList: true, subtree: true });
188
+ }
109
189
  /**
110
190
  * Sets up the control subscription for value changes.
111
191
  * Whenever the control value changes, this method is called to handle the changes.
@@ -130,14 +210,21 @@ class AlphagovAccessibleAutocompleteComponent {
130
210
  this.autoCompleteId = this.inputId + '-autocomplete';
131
211
  this.setupControlSub();
132
212
  }
213
+ ngOnChanges(changes) {
214
+ if (changes['hintText'] || changes['errors']) {
215
+ this.applyDescribedBy();
216
+ }
217
+ }
133
218
  ngOnDestroy() {
134
219
  this.ngUnsubscribe.next();
135
220
  this.ngUnsubscribe.complete();
221
+ this.describedByObserver?.disconnect();
222
+ this.containerObserver?.disconnect();
136
223
  }
137
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
138
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", 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\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"hidden\"\n [formControl]=\"getControl\"\n [attr.aria-describedby]=\"hintText ? inputId + '-hint' : null\"\n />\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}:host ::ng-deep .autocomplete__dropdown-arrow-down{z-index:1!important;pointer-events:none!important}\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 });
224
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
225
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", 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 }], usesOnChanges: 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\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"hidden\"\n [formControl]=\"getControl\"\n [attr.aria-describedby]=\"hintText ? inputId + '-hint' : null\"\n />\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}:host ::ng-deep .autocomplete__dropdown-arrow-down{z-index:1!important;pointer-events:none!important}\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 });
139
226
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, decorators: [{
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, decorators: [{
141
228
  type: Component,
142
229
  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\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"hidden\"\n [formControl]=\"getControl\"\n [attr.aria-describedby]=\"hintText ? inputId + '-hint' : null\"\n />\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}:host ::ng-deep .autocomplete__dropdown-arrow-down{z-index:1!important;pointer-events:none!important}\n"] }]
143
230
  }], ctorParameters: () => [], propDecorators: { labelText: [{
@@ -1 +1 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs","sources":["../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.ts","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.html","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n afterNextRender,\n inject,\n} from '@angular/core';\nimport { FormControl, AbstractControl, ReactiveFormsModule } from '@angular/forms';\nimport { IAlphagovAccessibleAutocompleteItem } from './interfaces/alphagov-accessible-autocomplete-item.interface';\nimport { AccessibleAutocompleteProps } from 'accessible-autocomplete';\nimport { Subject, pairwise, startWith, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'opal-lib-alphagov-accessible-autocomplete',\n imports: [ReactiveFormsModule],\n templateUrl: './alphagov-accessible-autocomplete.component.html',\n styleUrl: './alphagov-accessible-autocomplete.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlphagovAccessibleAutocompleteComponent implements OnInit, OnDestroy {\n private readonly changeDetector: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _control!: FormControl;\n private readonly ngUnsubscribe = new Subject<void>();\n\n @Input({ required: true }) labelText!: string;\n @Input({ required: false }) labelClasses!: string;\n @Input({ required: true }) inputId!: string;\n @Input({ required: true }) inputName!: string;\n @Input({ required: false }) inputClasses!: string;\n @Input({ required: false }) hintText!: string;\n @Input({ required: true }) autoCompleteItems: IAlphagovAccessibleAutocompleteItem[] = [];\n @Input() showAllValues = true;\n @Input({ required: false }) errors: string | null = null;\n\n @ViewChild('autocomplete') autocompleteContainer!: ElementRef<HTMLElement>;\n\n public autoCompleteId!: string;\n\n @Input({ required: true }) set control(abstractControl: AbstractControl | null) {\n // Form controls are passed in as abstract controls, we need to re-cast it.\n this._control = abstractControl as FormControl;\n }\n\n constructor() {\n afterNextRender(() => {\n // Only trigger the render of the component in the browser\n this.configureAutoComplete();\n });\n }\n\n /**\n * Gets the control for the alphagov-accessible-autocomplete component.\n * @returns The control for the component.\n */\n get getControl() {\n return this._control;\n }\n\n /**\n * Handles the confirmation of a selected name.\n *\n * @param selectedName - The selected name.\n * @returns void\n */\n\n private handleOnConfirm(selectedName: string | undefined): void {\n // selectedName is populated on selecting an option but is undefined onBlur, so we need to grab the input value directly from the input\n const control = this._control;\n const name = selectedName ?? (document.querySelector(`#${this.autoCompleteId}`) as HTMLInputElement).value;\n const selectedItem = this.autoCompleteItems.find((item) => item.name === name) ?? null;\n const previousValue = control.value;\n const selectedValue = selectedItem?.value ?? null;\n\n control.setValue(selectedValue);\n control.markAsTouched();\n\n // Handles initial empty state when the user clicks away from the input\n if (selectedItem === null && previousValue === null) {\n control.markAsPristine();\n } else if (selectedItem?.value !== previousValue) {\n control.markAsDirty();\n }\n\n control.updateValueAndValidity();\n this.changeDetector.detectChanges();\n }\n\n /**\n * Retrieves the default value for the autocomplete component.\n *\n * @returns The default value as a string.\n */\n\n private getDefaultValue() {\n return this.autoCompleteItems.find((item) => item.value === this._control.value)?.name ?? '';\n }\n\n /**\n * Builds the props object for the AccessibleAutocomplete component.\n * @returns The props object for the AccessibleAutocomplete component.\n */\n private buildAutoCompleteProps(): AccessibleAutocompleteProps {\n return {\n id: this.autoCompleteId,\n element: this.autocompleteContainer.nativeElement,\n source: this.autoCompleteItems.map((item) => item.name),\n name: this.autoCompleteId,\n showAllValues: this.showAllValues,\n defaultValue: this.getDefaultValue(),\n dropdownArrow: ({ className }) => this.renderDropdownArrow(className),\n onConfirm: (selectedName: string) => this.handleOnConfirm(selectedName),\n };\n }\n\n /**\n * Renders a custom dropdown arrow.\n * @param className – The class to apply to the SVG.\n * @returns An SVG string for the dropdown arrow.\n */\n private renderDropdownArrow(className: string): string {\n return `\n <svg class=\"${className}\" style=\"top: 8px;\" viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M256,298.3L256,298.3L256,298.3l174.2-167.2c4.3-4.2,11.4-4.1,15.8,0.2l30.6,29.9\n c4.4,4.3,4.5,11.3,0.2,15.5L264.1,380.9c-2.2,2.2-5.2,3.2-8.1,3c-3,0.1-5.9-0.9-8.1-3L35.2,176.7\n c-4.3-4.2-4.2-11.2,0.2-15.5L66,131.3c4.4-4.3,11.5-4.4,15.8-0.2L256,298.3z\"></path>\n </svg>`;\n }\n\n /**\n * Configures the auto-complete functionality using the accessible-autocomplete library.\n */\n private configureAutoComplete(): void {\n import('accessible-autocomplete').then((accessibleAutocomplete) => {\n accessibleAutocomplete.default(this.buildAutoCompleteProps());\n });\n }\n\n /**\n * Sets up the control subscription for value changes.\n * Whenever the control value changes, this method is called to handle the changes.\n * If the new value is null, it clears the autocomplete container and configures the autocomplete.\n */\n private setupControlSub(): void {\n this._control.valueChanges\n .pipe(startWith(null), pairwise(), takeUntil(this.ngUnsubscribe))\n .subscribe(([prev, next]) => {\n // If both values are null, we don't need to do anything\n if (prev === null && next === null) {\n return;\n }\n\n // Otherwise, next is null, we need to clear the autocomplete\n if (next === null) {\n this.autocompleteContainer.nativeElement.innerHTML = '';\n this.configureAutoComplete();\n }\n });\n }\n\n ngOnInit(): void {\n this.autoCompleteId = this.inputId + '-autocomplete';\n this.setupControlSub();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","<div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"autoCompleteId\"> {{ labelText }} </label>\n @if (hintText) {\n <div id=\"{{ inputId }}-hint\" class=\"govuk-hint\">\n {{ hintText }}\n </div>\n }\n\n @if (errors) {\n <p id=\"{{ this.autoCompleteId }}-error-message\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <div #autocomplete id=\"{{ autoCompleteId }}-container\" class=\"{{ inputClasses }}\"></div>\n <input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"hidden\"\n [formControl]=\"getControl\"\n [attr.aria-describedby]=\"hintText ? inputId + '-hint' : null\"\n />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs","sources":["../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.ts","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.html","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n afterNextRender,\n inject,\n} from '@angular/core';\nimport { FormControl, AbstractControl, ReactiveFormsModule } from '@angular/forms';\nimport { IAlphagovAccessibleAutocompleteItem } from './interfaces/alphagov-accessible-autocomplete-item.interface';\nimport { AccessibleAutocompleteProps } from 'accessible-autocomplete';\nimport { Subject, pairwise, startWith, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'opal-lib-alphagov-accessible-autocomplete',\n imports: [ReactiveFormsModule],\n templateUrl: './alphagov-accessible-autocomplete.component.html',\n styleUrl: './alphagov-accessible-autocomplete.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlphagovAccessibleAutocompleteComponent implements OnInit, OnDestroy, OnChanges {\n private readonly changeDetector: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _control!: FormControl;\n private readonly ngUnsubscribe = new Subject<void>();\n private describedByObserver: MutationObserver | null = null;\n private containerObserver: MutationObserver | null = null;\n\n @Input({ required: true }) labelText!: string;\n @Input({ required: false }) labelClasses!: string;\n @Input({ required: true }) inputId!: string;\n @Input({ required: true }) inputName!: string;\n @Input({ required: false }) inputClasses!: string;\n @Input({ required: false }) hintText!: string;\n @Input({ required: true }) autoCompleteItems: IAlphagovAccessibleAutocompleteItem[] = [];\n @Input() showAllValues = true;\n @Input({ required: false }) errors: string | null = null;\n\n @ViewChild('autocomplete') autocompleteContainer!: ElementRef<HTMLElement>;\n\n public autoCompleteId!: string;\n\n @Input({ required: true }) set control(abstractControl: AbstractControl | null) {\n // Form controls are passed in as abstract controls, we need to re-cast it.\n this._control = abstractControl as FormControl;\n }\n\n constructor() {\n afterNextRender(() => {\n // Only trigger the render of the component in the browser\n this.configureAutoComplete();\n });\n }\n\n /**\n * Gets the control for the alphagov-accessible-autocomplete component.\n * @returns The control for the component.\n */\n get getControl() {\n return this._control;\n }\n\n /**\n * Handles the confirmation of a selected name.\n *\n * @param selectedName - The selected name.\n * @returns void\n */\n\n private handleOnConfirm(selectedName: string | undefined): void {\n // selectedName is populated on selecting an option but is undefined onBlur, so we need to grab the input value directly from the input\n const control = this._control;\n const name = selectedName ?? (document.querySelector(`#${this.autoCompleteId}`) as HTMLInputElement).value;\n const selectedItem = this.autoCompleteItems.find((item) => item.name === name) ?? null;\n const previousValue = control.value;\n const selectedValue = selectedItem?.value ?? null;\n\n control.setValue(selectedValue);\n control.markAsTouched();\n\n // Handles initial empty state when the user clicks away from the input\n if (selectedItem === null && previousValue === null) {\n control.markAsPristine();\n } else if (selectedItem?.value !== previousValue) {\n control.markAsDirty();\n }\n\n control.updateValueAndValidity();\n this.changeDetector.detectChanges();\n }\n\n /**\n * Retrieves the default value for the autocomplete component.\n *\n * @returns The default value as a string.\n */\n\n private getDefaultValue() {\n return this.autoCompleteItems.find((item) => item.value === this._control.value)?.name ?? '';\n }\n\n /**\n * Builds the props object for the AccessibleAutocomplete component.\n * @returns The props object for the AccessibleAutocomplete component.\n */\n private buildAutoCompleteProps(): AccessibleAutocompleteProps {\n return {\n id: this.autoCompleteId,\n element: this.autocompleteContainer.nativeElement,\n source: this.autoCompleteItems.map((item) => item.name),\n name: this.autoCompleteId,\n showAllValues: this.showAllValues,\n defaultValue: this.getDefaultValue(),\n dropdownArrow: ({ className }) => this.renderDropdownArrow(className),\n onConfirm: (selectedName: string) => this.handleOnConfirm(selectedName),\n };\n }\n\n /**\n * Renders a custom dropdown arrow.\n * @param className – The class to apply to the SVG.\n * @returns An SVG string for the dropdown arrow.\n */\n private renderDropdownArrow(className: string): string {\n return `\n <svg class=\"${className}\" style=\"top: 8px;\" viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M256,298.3L256,298.3L256,298.3l174.2-167.2c4.3-4.2,11.4-4.1,15.8,0.2l30.6,29.9\n c4.4,4.3,4.5,11.3,0.2,15.5L264.1,380.9c-2.2,2.2-5.2,3.2-8.1,3c-3,0.1-5.9-0.9-8.1-3L35.2,176.7\n c-4.3-4.2-4.2-11.2,0.2-15.5L66,131.3c4.4-4.3,11.5-4.4,15.8-0.2L256,298.3z\"></path>\n </svg>`;\n }\n\n /**\n * Configures the auto-complete functionality using the accessible-autocomplete library.\n */\n private configureAutoComplete(): void {\n import('accessible-autocomplete').then((accessibleAutocomplete) => {\n accessibleAutocomplete.default(this.buildAutoCompleteProps());\n this.waitForInputAndApply();\n });\n }\n\n /**\n * Gets the rendered autocomplete text input, if present.\n */\n private getVisibleInput(): HTMLInputElement | null {\n return this.autocompleteContainer?.nativeElement?.querySelector(`#${this.autoCompleteId}`);\n }\n\n /**\n * Builds the hint/error ids to apply to aria-describedby.\n */\n private buildDescribedByIds(): string[] {\n const ids: string[] = [];\n\n if (this.hintText) {\n ids.push(`${this.inputId}-hint`);\n }\n\n if (this.errors) {\n ids.push(`${this.autoCompleteId}-error-message`);\n }\n\n return ids;\n }\n\n /**\n * Updates aria-describedby on the visible input, preserving any non-managed ids.\n */\n private applyDescribedBy(): void {\n const input = this.getVisibleInput();\n if (!input) {\n return;\n }\n\n const managedIds = new Set([`${this.inputId}-hint`, `${this.autoCompleteId}-error-message`]);\n const currentValue = input.getAttribute('aria-describedby') ?? '';\n const currentIds = currentValue.split(' ').filter(Boolean);\n const preservedIds = currentIds.filter((id) => !managedIds.has(id));\n const nextIds = [...new Set([...preservedIds, ...this.buildDescribedByIds()])];\n const nextValue = nextIds.length ? nextIds.join(' ') : '';\n\n if (currentValue === nextValue) {\n return;\n }\n\n if (nextValue) {\n input.setAttribute('aria-describedby', nextValue);\n } else {\n input.removeAttribute('aria-describedby');\n }\n }\n\n /**\n * Observes aria-describedby changes on the visible input to reapply managed ids.\n */\n private observeDescribedBy(): void {\n const input = this.getVisibleInput();\n if (!input || typeof MutationObserver === 'undefined') {\n return;\n }\n\n this.describedByObserver?.disconnect();\n this.describedByObserver = new MutationObserver(() => this.applyDescribedBy());\n this.describedByObserver.observe(input, { attributes: true, attributeFilter: ['aria-describedby'] });\n this.applyDescribedBy();\n }\n\n /**\n * Waits for the visible input to appear, then applies describedby and observers.\n */\n private waitForInputAndApply(): void {\n const input = this.getVisibleInput();\n if (input) {\n this.observeDescribedBy();\n return;\n }\n\n if (typeof MutationObserver === 'undefined') {\n return;\n }\n\n this.containerObserver?.disconnect();\n this.containerObserver = new MutationObserver(() => {\n if (this.getVisibleInput()) {\n this.containerObserver?.disconnect();\n this.observeDescribedBy();\n }\n });\n\n this.containerObserver.observe(this.autocompleteContainer.nativeElement, { childList: true, subtree: true });\n }\n\n /**\n * Sets up the control subscription for value changes.\n * Whenever the control value changes, this method is called to handle the changes.\n * If the new value is null, it clears the autocomplete container and configures the autocomplete.\n */\n private setupControlSub(): void {\n this._control.valueChanges\n .pipe(startWith(null), pairwise(), takeUntil(this.ngUnsubscribe))\n .subscribe(([prev, next]) => {\n // If both values are null, we don't need to do anything\n if (prev === null && next === null) {\n return;\n }\n\n // Otherwise, next is null, we need to clear the autocomplete\n if (next === null) {\n this.autocompleteContainer.nativeElement.innerHTML = '';\n this.configureAutoComplete();\n }\n });\n }\n\n ngOnInit(): void {\n this.autoCompleteId = this.inputId + '-autocomplete';\n this.setupControlSub();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['hintText'] || changes['errors']) {\n this.applyDescribedBy();\n }\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.describedByObserver?.disconnect();\n this.containerObserver?.disconnect();\n }\n}\n","<div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"autoCompleteId\"> {{ labelText }} </label>\n @if (hintText) {\n <div id=\"{{ inputId }}-hint\" class=\"govuk-hint\">\n {{ hintText }}\n </div>\n }\n\n @if (errors) {\n <p id=\"{{ this.autoCompleteId }}-error-message\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <div #autocomplete id=\"{{ autoCompleteId }}-container\" class=\"{{ inputClasses }}\"></div>\n <input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"hidden\"\n [formControl]=\"getControl\"\n [attr.aria-describedby]=\"hintText ? inputId + '-hint' : null\"\n />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import { HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
 
4
4
  class CustomAccountInformationItemLabelComponent {
5
5
  hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-font-weight-bold govuk-!-margin-0';
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomAccountInformationItemLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CustomAccountInformationItemLabelComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]", host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAccountInformationItemLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomAccountInformationItemLabelComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]", host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomAccountInformationItemLabelComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAccountInformationItemLabelComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
12
12
  }], propDecorators: { hostClass: [{
@@ -3,10 +3,10 @@ import { HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
 
4
4
  class CustomAccountInformationItemValueComponent {
5
5
  hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-margin-0';
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomAccountInformationItemValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CustomAccountInformationItemValueComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]", host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAccountInformationItemValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomAccountInformationItemValueComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]", host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomAccountInformationItemValueComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAccountInformationItemValueComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
12
12
  }], propDecorators: { hostClass: [{
@@ -6,10 +6,10 @@ class CustomAccountInformationItemComponent {
6
6
  get hostClass() {
7
7
  return this.itemClasses;
8
8
  }
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomAccountInformationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CustomAccountInformationItemComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item", inputs: { itemClasses: "itemClasses" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAccountInformationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomAccountInformationItemComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item", inputs: { itemClasses: "itemClasses" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomAccountInformationItemComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAccountInformationItemComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'opal-lib-custom-account-information-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
15
15
  }], propDecorators: { itemClasses: [{
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { ChangeDetectionStrategy, Component } from '@angular/core';
3
3
 
4
4
  class CustomAccountInformationComponent {
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomAccountInformationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CustomAccountInformationComponent, isStandalone: true, selector: "opal-lib-custom-account-information, [opal-lib-custom-account-information]", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAccountInformationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomAccountInformationComponent, isStandalone: true, selector: "opal-lib-custom-account-information, [opal-lib-custom-account-information]", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomAccountInformationComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAccountInformationComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'opal-lib-custom-account-information, [opal-lib-custom-account-information]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n" }]
11
11
  }] });
@@ -10,10 +10,10 @@ class CustomActionLinksComponent {
10
10
  get hostClass() {
11
11
  return this.classSize;
12
12
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomActionLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CustomActionLinksComponent, isStandalone: true, selector: "opal-lib-custom-action-links", inputs: { id: "id", classSize: "classSize" }, host: { properties: { "attr.id": "this.hostId", "class": "this.hostClass" } }, ngImport: i0, template: "<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n" });
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomActionLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomActionLinksComponent, isStandalone: true, selector: "opal-lib-custom-action-links", inputs: { id: "id", classSize: "classSize" }, host: { properties: { "attr.id": "this.hostId", "class": "this.hostClass" } }, ngImport: i0, template: "<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n" });
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomActionLinksComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomActionLinksComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'opal-lib-custom-action-links', template: "<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n" }]
19
19
  }], propDecorators: { id: [{
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { Component } from '@angular/core';
3
3
 
4
4
  class CustomHorizontalScrollPaneComponent {
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomHorizontalScrollPaneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CustomHorizontalScrollPaneComponent, isStandalone: true, selector: "opal-lib-custom-horizontal-scroll-pane", ngImport: i0, template: "<div class=\"custom-horizontal-scroll-pane\">\n <ng-content></ng-content>\n</div>\n", styles: [".custom-horizontal-scroll-pane{overflow-x:auto;overflow-y:hidden;width:100%}\n"] });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomHorizontalScrollPaneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomHorizontalScrollPaneComponent, isStandalone: true, selector: "opal-lib-custom-horizontal-scroll-pane", ngImport: i0, template: "<div class=\"custom-horizontal-scroll-pane\">\n <ng-content></ng-content>\n</div>\n", styles: [".custom-horizontal-scroll-pane{overflow-x:auto;overflow-y:hidden;width:100%}\n"] });
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomHorizontalScrollPaneComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomHorizontalScrollPaneComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'opal-lib-custom-horizontal-scroll-pane', template: "<div class=\"custom-horizontal-scroll-pane\">\n <ng-content></ng-content>\n</div>\n", styles: [".custom-horizontal-scroll-pane{overflow-x:auto;overflow-y:hidden;width:100%}\n"] }]
11
11
  }] });
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { ChangeDetectionStrategy, Component } from '@angular/core';
3
3
 
4
4
  class CustomPageHeaderComponent {
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CustomPageHeaderComponent, isStandalone: true, selector: "opal-lib-custom-page-header", ngImport: i0, template: "<div class=\"govuk-grid-row custom-grid-class\">\n <div class=\"govuk-grid-column-one-half\">\n <ng-content select=\"[pageHeaderHeading]\"></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-half custom-column-class\">\n <div class=\"moj-button-group moj-button-group--inline custom-button-group-class\">\n <ng-content select=\"[pageHeaderButtons]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".custom-grid-class{display:flex}.custom-column-class{display:flex;flex-direction:column;justify-content:end}.custom-button-group-class{justify-content:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomPageHeaderComponent, isStandalone: true, selector: "opal-lib-custom-page-header", ngImport: i0, template: "<div class=\"govuk-grid-row custom-grid-class\">\n <div class=\"govuk-grid-column-one-half\">\n <ng-content select=\"[pageHeaderHeading]\"></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-half custom-column-class\">\n <div class=\"moj-button-group moj-button-group--inline custom-button-group-class\">\n <ng-content select=\"[pageHeaderButtons]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".custom-grid-class{display:flex}.custom-column-class{display:flex;flex-direction:column;justify-content:end}.custom-button-group-class{justify-content:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CustomPageHeaderComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomPageHeaderComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'opal-lib-custom-page-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row custom-grid-class\">\n <div class=\"govuk-grid-column-one-half\">\n <ng-content select=\"[pageHeaderHeading]\"></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-half custom-column-class\">\n <div class=\"moj-button-group moj-button-group--inline custom-button-group-class\">\n <ng-content select=\"[pageHeaderButtons]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".custom-grid-class{display:flex}.custom-column-class{display:flex;flex-direction:column;justify-content:end}.custom-button-group-class{justify-content:right}\n"] }]
11
11
  }] });