@hmcts/opal-frontend-common 0.0.2 → 0.0.3

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 (437) hide show
  1. package/components/abstract/abstract-form-alias-base/abstract-form-alias-base.d.ts +117 -0
  2. package/components/abstract/abstract-form-alias-base/interfaces/abstract-form-alias-base-alias-controls.interface.d.ts +4 -0
  3. package/components/abstract/abstract-form-array-base/abstract-form-array-base.d.ts +158 -0
  4. package/components/abstract/abstract-form-array-parent-base/abstract-form-array-parent-base.component.d.ts +13 -0
  5. package/components/abstract/abstract-form-array-removal-base/abstract-form-array-removal-base.component.d.ts +44 -0
  6. package/components/abstract/abstract-form-array-removal-base/interfaces/abstract-form-array-removal-base-control-value.interface.d.ts +5 -0
  7. package/components/abstract/abstract-form-base/abstract-form-base.component.d.ts +232 -0
  8. package/components/abstract/abstract-form-base/interfaces/abstract-form-base-field-error.interface.d.ts +6 -0
  9. package/components/abstract/abstract-form-base/interfaces/abstract-form-base-field-errors.interface.d.ts +4 -0
  10. package/components/abstract/abstract-form-base/interfaces/abstract-form-base-form-error.interface.d.ts +6 -0
  11. package/components/abstract/abstract-form-base/interfaces/abstract-form-base-form.interface.d.ts +4 -0
  12. package/components/abstract/abstract-form-base/interfaces/abstract-form-base-high-priority-form-error.interface.d.ts +5 -0
  13. package/components/abstract/abstract-form-base/interfaces/abstract-form-base-status.interface.d.ts +3 -0
  14. package/components/abstract/abstract-form-parent-base/abstract-form-parent-base.component.d.ts +29 -0
  15. package/components/abstract/abstract-sortable-table/abstract-sortable-table.component.d.ts +79 -0
  16. package/components/abstract/abstract-sortable-table/interfaces/abstract-sortable-table-interfaces.d.ts +7 -0
  17. package/components/abstract/abstract-sortable-table-pagination/abstract-sortable-table-pagination.component.d.ts +31 -0
  18. package/components/abstract/index.d.ts +5 -0
  19. package/components/abstract/interfaces/abstract-form-array-control-validation.interface.d.ts +5 -0
  20. package/components/abstract/interfaces/abstract-form-array-control.interface.d.ts +5 -0
  21. package/components/abstract/interfaces/abstract-form-array-controls.interface.d.ts +4 -0
  22. package/components/abstract/interfaces/abstract-form-base-form-error-summary-message.interface.d.ts +4 -0
  23. package/components/abstract/interfaces/abstract-form-control-error-message.interface.d.ts +3 -0
  24. package/components/abstract/public-api.d.ts +20 -0
  25. package/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.d.ts +59 -0
  26. package/components/alphagov/alphagov-accessible-autocomplete/interfaces/alphagov-accessible-autocomplete-item.interface.d.ts +4 -0
  27. package/components/alphagov/index.d.ts +5 -0
  28. package/components/alphagov/public-api.d.ts +2 -0
  29. package/components/govuk/govuk-accordion/govuk-accordion.component.d.ts +13 -0
  30. package/components/govuk/govuk-back-link/govuk-back-link.component.d.ts +14 -0
  31. package/components/govuk/govuk-cancel-link/govuk-cancel-link.component.d.ts +12 -0
  32. package/components/govuk/govuk-checkboxes/govuk-checkboxes-conditional/govuk-checkboxes-conditional.component.d.ts +10 -0
  33. package/components/govuk/govuk-checkboxes/govuk-checkboxes-divider/govuk-checkboxes-divider.component.d.ts +5 -0
  34. package/components/govuk/govuk-checkboxes/govuk-checkboxes-item/govuk-checkboxes-item.component.d.ts +16 -0
  35. package/components/govuk/govuk-checkboxes/govuk-checkboxes.component.d.ts +10 -0
  36. package/components/govuk/govuk-checkboxes/interfaces/govuk-checkboxes-input.interface.d.ts +17 -0
  37. package/components/govuk/govuk-date-input/govuk-date-input.component.d.ts +18 -0
  38. package/components/govuk/govuk-date-input/interfaces/govuk-date-input.interface.d.ts +12 -0
  39. package/components/govuk/govuk-details/govuk-details.component.d.ts +6 -0
  40. package/components/govuk/govuk-error-summary/govuk-error-summary.component.d.ts +16 -0
  41. package/components/govuk/govuk-footer/constants/govuk-footer-links.constant.d.ts +2 -0
  42. package/components/govuk/govuk-footer/govuk-footer.component.d.ts +6 -0
  43. package/components/govuk/govuk-footer/interfaces/govuk-footer-links.interface.d.ts +5 -0
  44. package/components/govuk/govuk-header/constants/govuk-header-links.constant.d.ts +2 -0
  45. package/components/govuk/govuk-header/govuk-header-navigation-item/govuk-header-navigation-item.component.d.ts +12 -0
  46. package/components/govuk/govuk-header/govuk-header.component.d.ts +6 -0
  47. package/components/govuk/govuk-header/interfaces/govuk-header-links.interface.d.ts +4 -0
  48. package/components/govuk/govuk-heading-with-caption/govuk-heading-with-caption.component.d.ts +9 -0
  49. package/components/govuk/govuk-inset-text/govuk-inset-text.component.d.ts +6 -0
  50. package/components/govuk/govuk-notification-banner/govuk-notification-banner.component.d.ts +10 -0
  51. package/components/govuk/govuk-pagination/govuk-pagination.component.d.ts +44 -0
  52. package/components/govuk/govuk-panel/govuk-panel.component.d.ts +7 -0
  53. package/components/govuk/govuk-radio/govuk-radio.component.d.ts +11 -0
  54. package/components/govuk/govuk-radio/govuk-radios-conditional/govuk-radios-conditional.component.d.ts +10 -0
  55. package/components/govuk/govuk-radio/govuk-radios-divider/govuk-radios-divider.component.d.ts +5 -0
  56. package/components/govuk/govuk-radio/govuk-radios-item/govuk-radios-item.component.d.ts +18 -0
  57. package/components/govuk/govuk-radio/interfaces/govuk-radio-input.interface.d.ts +17 -0
  58. package/components/govuk/govuk-radio/interfaces/govuk-radio-options.interface.d.ts +4 -0
  59. package/components/govuk/govuk-select/govuk-select.component.d.ts +18 -0
  60. package/components/govuk/govuk-select/interfaces/govuk-select-options.interface.d.ts +4 -0
  61. package/components/govuk/govuk-summary-card-list/govuk-summary-card-action/govuk-summary-card-action.component.d.ts +17 -0
  62. package/components/govuk/govuk-summary-card-list/govuk-summary-card-list.component.d.ts +12 -0
  63. package/components/govuk/govuk-summary-list/govuk-summary-list-row/govuk-summary-list-row-actions/govuk-summary-list-row-action-item/govuk-summary-list-row-action-item.component.d.ts +15 -0
  64. package/components/govuk/govuk-summary-list/govuk-summary-list-row/govuk-summary-list-row-actions/govuk-summary-list-row-actions.component.d.ts +5 -0
  65. package/components/govuk/govuk-summary-list/govuk-summary-list-row/govuk-summary-list-row.component.d.ts +20 -0
  66. package/components/govuk/govuk-summary-list/govuk-summary-list.component.d.ts +7 -0
  67. package/components/govuk/govuk-table/govuk-table-body-row/govuk-table-body-row-data/govuk-table-body-row-data.component.d.ts +8 -0
  68. package/components/govuk/govuk-table/govuk-table-body-row/govuk-table-body-row.component.d.ts +7 -0
  69. package/components/govuk/govuk-table/govuk-table-heading/govuk-table-heading.component.d.ts +7 -0
  70. package/components/govuk/govuk-table/govuk-table.component.d.ts +6 -0
  71. package/components/govuk/govuk-tabs/govuk-tab-list-item/govuk-tab-list-item.component.d.ts +11 -0
  72. package/components/govuk/govuk-tabs/govuk-tab-panel/govuk-tab-panel.component.d.ts +9 -0
  73. package/components/govuk/govuk-tabs/govuk-tabs.component.d.ts +14 -0
  74. package/components/govuk/govuk-tag/govuk-tag.component.d.ts +7 -0
  75. package/components/govuk/govuk-task-list/govuk-task-list-item/govuk-task-list-item.component.d.ts +8 -0
  76. package/components/govuk/govuk-task-list/govuk-task-list.component.d.ts +7 -0
  77. package/components/govuk/govuk-text-area/govuk-text-area.component.d.ts +21 -0
  78. package/components/govuk/govuk-text-input-prefix-suffix/govuk-text-input-prefix-suffix.component.d.ts +22 -0
  79. package/components/govuk/index.d.ts +5 -0
  80. package/components/govuk/public-api.d.ts +52 -0
  81. package/components/moj/index.d.ts +5 -0
  82. package/components/moj/moj-badge/moj.badge.component.d.ts +7 -0
  83. package/components/moj/moj-banner/moj-banner.component.d.ts +8 -0
  84. package/components/moj/moj-button-menu/moj-button-menu-item/moj-button-menu-item.component.d.ts +8 -0
  85. package/components/moj/moj-button-menu/moj-button-menu.component.d.ts +10 -0
  86. package/components/moj/moj-date-picker/moj-date-picker.component.d.ts +40 -0
  87. package/components/moj/moj-header/constants/moj-header-links.constant.d.ts +2 -0
  88. package/components/moj/moj-header/interfaces/moj-header-links.interface.d.ts +4 -0
  89. package/components/moj/moj-header/moj-header-navigation-item/moj-header-navigation-item.component.d.ts +12 -0
  90. package/components/moj/moj-header/moj-header.component.d.ts +6 -0
  91. package/components/moj/moj-page-header/moj-page-header.component.d.ts +6 -0
  92. package/components/moj/moj-pagination/moj-pagination-item/moj-pagination-item.component.d.ts +6 -0
  93. package/components/moj/moj-pagination/moj-pagination-link/moj-pagination-link.component.d.ts +43 -0
  94. package/components/moj/moj-pagination/moj-pagination-list/moj-pagination-list.component.d.ts +6 -0
  95. package/components/moj/moj-pagination/moj-pagination.component.d.ts +108 -0
  96. package/components/moj/moj-primary-navigation/moj-primary-navigation-item/moj-primary-navigation-item.component.d.ts +18 -0
  97. package/components/moj/moj-primary-navigation/moj-primary-navigation.component.d.ts +26 -0
  98. package/components/moj/moj-sortable-table/moj-sortable-table-header/moj-sortable-table-header.component.d.ts +24 -0
  99. package/components/moj/moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row.component.d.ts +7 -0
  100. package/components/moj/moj-sortable-table/moj-sortable-table.component.d.ts +6 -0
  101. package/components/moj/moj-sub-navigation/moj-sub-navigation-item/moj-sub-navigation-item.component.d.ts +17 -0
  102. package/components/moj/moj-sub-navigation/moj-sub-navigation.component.d.ts +21 -0
  103. package/components/moj/moj-ticket-panel/moj-ticket-panel.component.d.ts +8 -0
  104. package/components/moj/moj-timeline/moj-timeline-item/moj-timeline-item.component.d.ts +5 -0
  105. package/components/moj/moj-timeline/moj-timeline.component.d.ts +5 -0
  106. package/components/moj/public-api.d.ts +24 -0
  107. package/constants/index.d.ts +5 -0
  108. package/constants/public-api.d.ts +4 -0
  109. package/constants/src/routing-paths.constant.d.ts +2 -0
  110. package/constants/src/routing-titles.constant.d.ts +2 -0
  111. package/constants/src/session-endpoints.constant.d.ts +2 -0
  112. package/constants/src/sso-endpoints.constant.d.ts +2 -0
  113. package/fesm2022/hmcts-opal-frontend-common-components-abstract.mjs +1288 -0
  114. package/fesm2022/hmcts-opal-frontend-common-components-abstract.mjs.map +1 -0
  115. package/fesm2022/hmcts-opal-frontend-common-components-alphagov.mjs +170 -0
  116. package/fesm2022/hmcts-opal-frontend-common-components-alphagov.mjs.map +1 -0
  117. package/fesm2022/hmcts-opal-frontend-common-components-govuk.mjs +1259 -0
  118. package/fesm2022/hmcts-opal-frontend-common-components-govuk.mjs.map +1 -0
  119. package/fesm2022/hmcts-opal-frontend-common-components-moj.mjs +804 -0
  120. package/fesm2022/hmcts-opal-frontend-common-components-moj.mjs.map +1 -0
  121. package/fesm2022/hmcts-opal-frontend-common-constants.mjs +36 -0
  122. package/fesm2022/hmcts-opal-frontend-common-constants.mjs.map +1 -0
  123. package/fesm2022/hmcts-opal-frontend-common-guards.mjs +134 -0
  124. package/fesm2022/hmcts-opal-frontend-common-guards.mjs.map +1 -0
  125. package/fesm2022/hmcts-opal-frontend-common-interceptors.mjs +31 -0
  126. package/fesm2022/hmcts-opal-frontend-common-interceptors.mjs.map +1 -0
  127. package/fesm2022/hmcts-opal-frontend-common-interfaces.mjs +4 -0
  128. package/fesm2022/hmcts-opal-frontend-common-interfaces.mjs.map +1 -0
  129. package/fesm2022/hmcts-opal-frontend-common-mocks.mjs +429 -0
  130. package/fesm2022/hmcts-opal-frontend-common-mocks.mjs.map +1 -0
  131. package/fesm2022/hmcts-opal-frontend-common-pages-sign-in-stub.component-eGVOJLC2.mjs +41 -0
  132. package/fesm2022/hmcts-opal-frontend-common-pages-sign-in-stub.component-eGVOJLC2.mjs.map +1 -0
  133. package/fesm2022/hmcts-opal-frontend-common-pages.mjs +109 -0
  134. package/fesm2022/hmcts-opal-frontend-common-pages.mjs.map +1 -0
  135. package/fesm2022/hmcts-opal-frontend-common-pipes.mjs +64 -0
  136. package/fesm2022/hmcts-opal-frontend-common-pipes.mjs.map +1 -0
  137. package/fesm2022/hmcts-opal-frontend-common-resolvers.mjs +40 -0
  138. package/fesm2022/hmcts-opal-frontend-common-resolvers.mjs.map +1 -0
  139. package/fesm2022/hmcts-opal-frontend-common-services.mjs +817 -0
  140. package/fesm2022/hmcts-opal-frontend-common-services.mjs.map +1 -0
  141. package/fesm2022/hmcts-opal-frontend-common-stores.mjs +40 -0
  142. package/fesm2022/hmcts-opal-frontend-common-stores.mjs.map +1 -0
  143. package/fesm2022/hmcts-opal-frontend-common-types.mjs +4 -0
  144. package/fesm2022/hmcts-opal-frontend-common-types.mjs.map +1 -0
  145. package/fesm2022/hmcts-opal-frontend-common-validators.mjs +278 -0
  146. package/fesm2022/hmcts-opal-frontend-common-validators.mjs.map +1 -0
  147. package/fesm2022/hmcts-opal-frontend-common.mjs +0 -1943
  148. package/fesm2022/hmcts-opal-frontend-common.mjs.map +1 -1
  149. package/{lib/guards → guards}/can-deactivate/can-deactivate.guard.d.ts +1 -1
  150. package/{lib/guards → guards}/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.d.ts +1 -1
  151. package/{lib/guards → guards}/helpers/get-guard-with-dummy-url.d.ts +1 -1
  152. package/{lib/guards → guards}/helpers/handle-observable-result.d.ts +1 -1
  153. package/{lib/guards → guards}/helpers/run-has-flow-state-guard-with-context.d.ts +1 -1
  154. package/guards/index.d.ts +5 -0
  155. package/guards/public-api.d.ts +9 -0
  156. package/interceptors/index.d.ts +5 -0
  157. package/interceptors/public-api.d.ts +1 -0
  158. package/interfaces/index.d.ts +5 -0
  159. package/interfaces/public-api.d.ts +12 -0
  160. package/{lib/pages/routing/interfaces → interfaces/src}/routing-paths.interface.d.ts +1 -1
  161. package/mocks/index.d.ts +5 -0
  162. package/mocks/public-api.d.ts +8 -0
  163. package/mocks/src/route-permissions.mock.d.ts +3 -0
  164. package/mocks/src/session-token-expiry.mock.d.ts +2 -0
  165. package/mocks/src/session-user-state.mock.d.ts +2 -0
  166. package/mocks/src/transfer-state.mock.d.ts +2 -0
  167. package/package.json +106 -9
  168. package/pages/index.d.ts +5 -0
  169. package/{lib/pages → pages}/sign-in/sign-in.component.d.ts +10 -10
  170. package/pipes/date-format/date-format.pipe.d.ts +10 -0
  171. package/pipes/days-ago/days-ago.pipe.d.ts +7 -0
  172. package/pipes/index.d.ts +5 -0
  173. package/pipes/public-api.d.ts +2 -0
  174. package/public-api.d.ts +1 -10
  175. package/resolvers/index.d.ts +5 -0
  176. package/resolvers/public-api.d.ts +2 -0
  177. package/{lib/resolvers → resolvers}/user-state/user-state.resolver.d.ts +1 -1
  178. package/{lib/services → services}/date-service/date.service.d.ts +8 -0
  179. package/services/index.d.ts +5 -0
  180. package/{lib/services → services}/permissions-service/permissions.service.d.ts +1 -1
  181. package/services/public-api.d.ts +11 -0
  182. package/{lib/services → services}/session-service/session.service.d.ts +1 -1
  183. package/services/sort-service/interfaces/sort-service-values.interface.d.ts +7 -0
  184. package/{lib/services → services}/sort-service/sort-service.d.ts +1 -1
  185. package/{lib/services → services}/transfer-state-service/transfer-state.service.d.ts +1 -1
  186. package/{lib/services → services}/transformation-service/transformation.service.d.ts +1 -1
  187. package/{lib/stores → stores}/global/global.store.d.ts +1 -4
  188. package/stores/index.d.ts +5 -0
  189. package/stores/public-api.d.ts +1 -0
  190. package/types/index.d.ts +5 -0
  191. package/types/public-api.d.ts +4 -0
  192. package/types/src/abstract-sortable-table.type.d.ts +1 -0
  193. package/types/src/global-store.type.d.ts +2 -0
  194. package/types/src/sort-service.type.d.ts +1 -0
  195. package/validators/index.d.ts +5 -0
  196. package/{lib/validators → validators}/over-eighteen/over-eighteen.validator.d.ts +1 -1
  197. package/validators/public-api.d.ts +18 -0
  198. package/esm2022/hmcts-opal-frontend-common.mjs +0 -5
  199. package/esm2022/lib/components/govuk/govuk-button/govuk-button.component.mjs +0 -34
  200. package/esm2022/lib/components/govuk/govuk-text-input/govuk-text-input.component.mjs +0 -57
  201. package/esm2022/lib/components/govuk/index.mjs +0 -3
  202. package/esm2022/lib/guards/auth/auth.guard.mjs +0 -20
  203. package/esm2022/lib/guards/auth/index.mjs +0 -2
  204. package/esm2022/lib/guards/can-deactivate/can-deactivate.guard.mjs +0 -6
  205. package/esm2022/lib/guards/can-deactivate/index.mjs +0 -5
  206. package/esm2022/lib/guards/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.mjs +0 -2
  207. package/esm2022/lib/guards/can-deactivate/interfaces/index.mjs +0 -2
  208. package/esm2022/lib/guards/has-flow-state/has-flow-state.guard.mjs +0 -16
  209. package/esm2022/lib/guards/has-flow-state/index.mjs +0 -2
  210. package/esm2022/lib/guards/helpers/get-guard-with-dummy-url.mjs +0 -19
  211. package/esm2022/lib/guards/helpers/handle-observable-result.mjs +0 -13
  212. package/esm2022/lib/guards/helpers/index.mjs +0 -5
  213. package/esm2022/lib/guards/helpers/run-auth-guard-with-context.mjs +0 -15
  214. package/esm2022/lib/guards/helpers/run-has-flow-state-guard-with-context.mjs +0 -9
  215. package/esm2022/lib/guards/index.mjs +0 -10
  216. package/esm2022/lib/guards/route-permissions/index.mjs +0 -2
  217. package/esm2022/lib/guards/route-permissions/route-permissions.guard.mjs +0 -25
  218. package/esm2022/lib/guards/signed-in/index.mjs +0 -3
  219. package/esm2022/lib/guards/signed-in/signed-in.guard.mjs +0 -20
  220. package/esm2022/lib/guards/types/can-deactivate.type.mjs +0 -2
  221. package/esm2022/lib/guards/types/guard-return.type.mjs +0 -2
  222. package/esm2022/lib/guards/types/index.mjs +0 -3
  223. package/esm2022/lib/interceptors/http-error/http-error.interceptor.mjs +0 -24
  224. package/esm2022/lib/interceptors/index.mjs +0 -3
  225. package/esm2022/lib/opal-frontend-common.module.mjs +0 -22
  226. package/esm2022/lib/pages/access-denied/access-denied.component.mjs +0 -18
  227. package/esm2022/lib/pages/index.mjs +0 -4
  228. package/esm2022/lib/pages/routing/constants/routing-paths.constant.mjs +0 -9
  229. package/esm2022/lib/pages/routing/constants/routing-titles.constant.mjs +0 -9
  230. package/esm2022/lib/pages/routing/interfaces/routing-paths.interface.mjs +0 -2
  231. package/esm2022/lib/pages/routing/pages.routes.mjs +0 -24
  232. package/esm2022/lib/pages/sign-in/interfaces/index.mjs +0 -2
  233. package/esm2022/lib/pages/sign-in/interfaces/sign-in-stub-form.interface.mjs +0 -2
  234. package/esm2022/lib/pages/sign-in/sign-in-sso/sign-in-sso.component.mjs +0 -23
  235. package/esm2022/lib/pages/sign-in/sign-in-stub/sign-in-stub.component.mjs +0 -39
  236. package/esm2022/lib/pages/sign-in/sign-in.component.mjs +0 -38
  237. package/esm2022/lib/resolvers/index.mjs +0 -3
  238. package/esm2022/lib/resolvers/title/index.mjs +0 -2
  239. package/esm2022/lib/resolvers/title/title.resolver.mjs +0 -22
  240. package/esm2022/lib/resolvers/user-state/index.mjs +0 -2
  241. package/esm2022/lib/resolvers/user-state/user-state.resolver.mjs +0 -12
  242. package/esm2022/lib/routing/constants/index.mjs +0 -2
  243. package/esm2022/lib/routing/constants/sso-endpoints.constant.mjs +0 -7
  244. package/esm2022/lib/routing/index.mjs +0 -3
  245. package/esm2022/lib/routing/interfaces/child-routing-paths.interface.mjs +0 -2
  246. package/esm2022/lib/routing/interfaces/index.mjs +0 -4
  247. package/esm2022/lib/routing/interfaces/nested-routes.interface.mjs +0 -2
  248. package/esm2022/lib/routing/interfaces/sso-endpoints.interface.mjs +0 -2
  249. package/esm2022/lib/services/app-initializer-service/app-initializer.service.mjs +0 -36
  250. package/esm2022/lib/services/app-initializer-service/index.mjs +0 -2
  251. package/esm2022/lib/services/app-insights/app-insights.service.mjs +0 -73
  252. package/esm2022/lib/services/app-insights/index.mjs +0 -4
  253. package/esm2022/lib/services/auth-service/auth.service.mjs +0 -36
  254. package/esm2022/lib/services/auth-service/index.mjs +0 -2
  255. package/esm2022/lib/services/date-service/date.service.mjs +0 -182
  256. package/esm2022/lib/services/date-service/index.mjs +0 -4
  257. package/esm2022/lib/services/index.mjs +0 -12
  258. package/esm2022/lib/services/launch-darkly/index.mjs +0 -5
  259. package/esm2022/lib/services/launch-darkly/launch-darkly.service.mjs +0 -94
  260. package/esm2022/lib/services/launch-darkly/mocks/index.mjs +0 -3
  261. package/esm2022/lib/services/launch-darkly/mocks/launch-darkly-change-flags.mock.mjs +0 -5
  262. package/esm2022/lib/services/launch-darkly/mocks/launch-darkly-flags.mock.mjs +0 -5
  263. package/esm2022/lib/services/permissions-service/index.mjs +0 -4
  264. package/esm2022/lib/services/permissions-service/permissions.service.mjs +0 -40
  265. package/esm2022/lib/services/session-service/constants/index.mjs +0 -2
  266. package/esm2022/lib/services/session-service/constants/session-endpoints.constant.mjs +0 -5
  267. package/esm2022/lib/services/session-service/index.mjs +0 -7
  268. package/esm2022/lib/services/session-service/interfaces/index.mjs +0 -4
  269. package/esm2022/lib/services/session-service/interfaces/session-endpoints.interface.mjs +0 -2
  270. package/esm2022/lib/services/session-service/interfaces/session-token-expiry.interface.mjs +0 -2
  271. package/esm2022/lib/services/session-service/interfaces/session-user-state.interface.mjs +0 -2
  272. package/esm2022/lib/services/session-service/mocks/index.mjs +0 -3
  273. package/esm2022/lib/services/session-service/mocks/session-token-expiry.mock.mjs +0 -5
  274. package/esm2022/lib/services/session-service/mocks/session-user-state.mock.mjs +0 -386
  275. package/esm2022/lib/services/session-service/session.service.mjs +0 -64
  276. package/esm2022/lib/services/sort-service/index.mjs +0 -6
  277. package/esm2022/lib/services/sort-service/interfaces/index.mjs +0 -3
  278. package/esm2022/lib/services/sort-service/interfaces/sort-service-values.interface.mjs +0 -2
  279. package/esm2022/lib/services/sort-service/interfaces/sort-service.interface.mjs +0 -2
  280. package/esm2022/lib/services/sort-service/sort-service.mjs +0 -90
  281. package/esm2022/lib/services/sort-service/types/index.mjs +0 -2
  282. package/esm2022/lib/services/sort-service/types/sort-service.type.mjs +0 -2
  283. package/esm2022/lib/services/transfer-state-service/index.mjs +0 -6
  284. package/esm2022/lib/services/transfer-state-service/interfaces/index.mjs +0 -4
  285. package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-app-insights-config.interface.mjs +0 -2
  286. package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-launch-darkly-config.interface.mjs +0 -2
  287. package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-server-state.interface.mjs +0 -2
  288. package/esm2022/lib/services/transfer-state-service/mocks/index.mjs +0 -4
  289. package/esm2022/lib/services/transfer-state-service/mocks/transfer-state-app-insights-config.mock.mjs +0 -6
  290. package/esm2022/lib/services/transfer-state-service/mocks/transfer-state-launch-darkly-config.mock.mjs +0 -6
  291. package/esm2022/lib/services/transfer-state-service/mocks/transfer-state.mock.mjs +0 -8
  292. package/esm2022/lib/services/transfer-state-service/transfer-state.service.mjs +0 -59
  293. package/esm2022/lib/services/transformation-service/index.mjs +0 -5
  294. package/esm2022/lib/services/transformation-service/interfaces/index.mjs +0 -2
  295. package/esm2022/lib/services/transformation-service/interfaces/transform-item.interface.mjs +0 -2
  296. package/esm2022/lib/services/transformation-service/transformation.service.mjs +0 -69
  297. package/esm2022/lib/services/utils/index.mjs +0 -4
  298. package/esm2022/lib/services/utils/utils.service.mjs +0 -86
  299. package/esm2022/lib/stores/global/global.store.mjs +0 -33
  300. package/esm2022/lib/stores/global/index.mjs +0 -6
  301. package/esm2022/lib/stores/global/interfaces/error-state.interface.mjs +0 -2
  302. package/esm2022/lib/stores/global/interfaces/index.mjs +0 -2
  303. package/esm2022/lib/stores/global/types/global-store.type.mjs +0 -2
  304. package/esm2022/lib/stores/global/types/index.mjs +0 -2
  305. package/esm2022/lib/stores/index.mjs +0 -2
  306. package/esm2022/lib/validators/alphabetical-text/alphabetical-text.validator.mjs +0 -10
  307. package/esm2022/lib/validators/amount/amount.validator.mjs +0 -15
  308. package/esm2022/lib/validators/date-after-year/date-after-year.validator.mjs +0 -12
  309. package/esm2022/lib/validators/date-before/date-before.validator.mjs +0 -15
  310. package/esm2022/lib/validators/date-of-birth/date-of-birth.validator.mjs +0 -18
  311. package/esm2022/lib/validators/future-date/future-date.validator.mjs +0 -15
  312. package/esm2022/lib/validators/index.mjs +0 -20
  313. package/esm2022/lib/validators/invalid-value/invalid-value.validator.mjs +0 -9
  314. package/esm2022/lib/validators/national-insurance-number/national-insurance-number.validator.mjs +0 -16
  315. package/esm2022/lib/validators/numerical-only/numerical-only.validator.mjs +0 -10
  316. package/esm2022/lib/validators/optional-max-length/optional-max-length.validator.mjs +0 -10
  317. package/esm2022/lib/validators/optional-valid-date/optional-valid-date.validator.mjs +0 -23
  318. package/esm2022/lib/validators/optional-valid-email-address/optional-valid-email-address.validator.mjs +0 -11
  319. package/esm2022/lib/validators/optional-valid-telephone/optional-valid-telephone.validator.mjs +0 -14
  320. package/esm2022/lib/validators/over-eighteen/over-eighteen.validator.mjs +0 -45
  321. package/esm2022/lib/validators/past-date/past-date.validator.mjs +0 -16
  322. package/esm2022/lib/validators/special-characters/special-characters.validator.mjs +0 -11
  323. package/esm2022/lib/validators/two-decimal-places/two-decimal-places.validator.mjs +0 -12
  324. package/esm2022/lib/validators/valid-value/valid-value.validator.mjs +0 -9
  325. package/esm2022/public-api.mjs +0 -11
  326. package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-CysPzJGJ.mjs +0 -41
  327. package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-CysPzJGJ.mjs.map +0 -1
  328. package/lib/components/govuk/index.d.ts +0 -2
  329. package/lib/guards/auth/index.d.ts +0 -1
  330. package/lib/guards/can-deactivate/index.d.ts +0 -2
  331. package/lib/guards/can-deactivate/interfaces/index.d.ts +0 -2
  332. package/lib/guards/has-flow-state/index.d.ts +0 -1
  333. package/lib/guards/helpers/index.d.ts +0 -4
  334. package/lib/guards/index.d.ts +0 -7
  335. package/lib/guards/route-permissions/index.d.ts +0 -1
  336. package/lib/guards/signed-in/index.d.ts +0 -1
  337. package/lib/guards/types/index.d.ts +0 -2
  338. package/lib/interceptors/index.d.ts +0 -2
  339. package/lib/opal-frontend-common.module.d.ts +0 -14
  340. package/lib/pages/routing/constants/routing-paths.constant.d.ts +0 -2
  341. package/lib/pages/routing/constants/routing-titles.constant.d.ts +0 -2
  342. package/lib/resolvers/index.d.ts +0 -2
  343. package/lib/resolvers/title/index.d.ts +0 -1
  344. package/lib/resolvers/user-state/index.d.ts +0 -1
  345. package/lib/routing/constants/index.d.ts +0 -1
  346. package/lib/routing/constants/sso-endpoints.constant.d.ts +0 -2
  347. package/lib/routing/index.d.ts +0 -2
  348. package/lib/routing/interfaces/index.d.ts +0 -3
  349. package/lib/services/app-initializer-service/index.d.ts +0 -1
  350. package/lib/services/app-insights/index.d.ts +0 -1
  351. package/lib/services/auth-service/index.d.ts +0 -1
  352. package/lib/services/date-service/index.d.ts +0 -1
  353. package/lib/services/index.d.ts +0 -11
  354. package/lib/services/launch-darkly/index.d.ts +0 -2
  355. package/lib/services/launch-darkly/mocks/index.d.ts +0 -2
  356. package/lib/services/permissions-service/index.d.ts +0 -1
  357. package/lib/services/session-service/constants/index.d.ts +0 -1
  358. package/lib/services/session-service/constants/session-endpoints.constant.d.ts +0 -2
  359. package/lib/services/session-service/index.d.ts +0 -4
  360. package/lib/services/session-service/interfaces/index.d.ts +0 -3
  361. package/lib/services/session-service/mocks/index.d.ts +0 -2
  362. package/lib/services/session-service/mocks/session-token-expiry.mock.d.ts +0 -2
  363. package/lib/services/session-service/mocks/session-user-state.mock.d.ts +0 -2
  364. package/lib/services/sort-service/index.d.ts +0 -3
  365. package/lib/services/sort-service/interfaces/index.d.ts +0 -2
  366. package/lib/services/sort-service/interfaces/sort-service-values.interface.d.ts +0 -6
  367. package/lib/services/sort-service/types/index.d.ts +0 -1
  368. package/lib/services/sort-service/types/sort-service.type.d.ts +0 -1
  369. package/lib/services/transfer-state-service/index.d.ts +0 -3
  370. package/lib/services/transfer-state-service/interfaces/index.d.ts +0 -3
  371. package/lib/services/transfer-state-service/mocks/index.d.ts +0 -3
  372. package/lib/services/transfer-state-service/mocks/transfer-state.mock.d.ts +0 -2
  373. package/lib/services/transformation-service/index.d.ts +0 -2
  374. package/lib/services/transformation-service/interfaces/index.d.ts +0 -1
  375. package/lib/services/utils/index.d.ts +0 -1
  376. package/lib/stores/global/index.d.ts +0 -3
  377. package/lib/stores/global/interfaces/index.d.ts +0 -1
  378. package/lib/stores/global/types/global-store.type.d.ts +0 -2
  379. package/lib/stores/global/types/index.d.ts +0 -1
  380. package/lib/stores/index.d.ts +0 -1
  381. package/lib/validators/index.d.ts +0 -19
  382. /package/{lib/components → components}/govuk/govuk-button/govuk-button.component.d.ts +0 -0
  383. /package/{lib/components → components}/govuk/govuk-text-input/govuk-text-input.component.d.ts +0 -0
  384. /package/{lib/guards → guards}/auth/auth.guard.d.ts +0 -0
  385. /package/{lib/guards → guards}/has-flow-state/has-flow-state.guard.d.ts +0 -0
  386. /package/{lib/guards → guards}/helpers/run-auth-guard-with-context.d.ts +0 -0
  387. /package/{lib/guards → guards}/route-permissions/route-permissions.guard.d.ts +0 -0
  388. /package/{lib/guards → guards}/signed-in/signed-in.guard.d.ts +0 -0
  389. /package/{lib/guards → guards}/types/guard-return.type.d.ts +0 -0
  390. /package/{lib/interceptors → interceptors}/http-error/http-error.interceptor.d.ts +0 -0
  391. /package/{lib/routing/interfaces → interfaces/src}/child-routing-paths.interface.d.ts +0 -0
  392. /package/{lib/stores/global/interfaces → interfaces/src}/error-state.interface.d.ts +0 -0
  393. /package/{lib/routing/interfaces → interfaces/src}/nested-routes.interface.d.ts +0 -0
  394. /package/{lib/services/session-service/interfaces → interfaces/src}/session-endpoints.interface.d.ts +0 -0
  395. /package/{lib/services/session-service/interfaces → interfaces/src}/session-token-expiry.interface.d.ts +0 -0
  396. /package/{lib/services/session-service/interfaces → interfaces/src}/session-user-state.interface.d.ts +0 -0
  397. /package/{lib/routing/interfaces → interfaces/src}/sso-endpoints.interface.d.ts +0 -0
  398. /package/{lib/services/transfer-state-service/interfaces → interfaces/src}/transfer-state-app-insights-config.interface.d.ts +0 -0
  399. /package/{lib/services/transfer-state-service/interfaces → interfaces/src}/transfer-state-launch-darkly-config.interface.d.ts +0 -0
  400. /package/{lib/services/transfer-state-service/interfaces → interfaces/src}/transfer-state-server-state.interface.d.ts +0 -0
  401. /package/{lib/services/transformation-service/interfaces → interfaces/src}/transform-item.interface.d.ts +0 -0
  402. /package/{lib/services/launch-darkly/mocks → mocks/src}/launch-darkly-change-flags.mock.d.ts +0 -0
  403. /package/{lib/services/launch-darkly/mocks → mocks/src}/launch-darkly-flags.mock.d.ts +0 -0
  404. /package/{lib/services/transfer-state-service/mocks → mocks/src}/transfer-state-app-insights-config.mock.d.ts +0 -0
  405. /package/{lib/services/transfer-state-service/mocks → mocks/src}/transfer-state-launch-darkly-config.mock.d.ts +0 -0
  406. /package/{lib/pages → pages}/access-denied/access-denied.component.d.ts +0 -0
  407. /package/{lib/pages/index.d.ts → pages/public-api.d.ts} +0 -0
  408. /package/{lib/pages → pages}/routing/pages.routes.d.ts +0 -0
  409. /package/{lib/pages → pages}/sign-in/interfaces/index.d.ts +0 -0
  410. /package/{lib/pages → pages}/sign-in/interfaces/sign-in-stub-form.interface.d.ts +0 -0
  411. /package/{lib/pages → pages}/sign-in/sign-in-sso/sign-in-sso.component.d.ts +0 -0
  412. /package/{lib/pages → pages}/sign-in/sign-in-stub/sign-in-stub.component.d.ts +0 -0
  413. /package/{lib/resolvers → resolvers}/title/title.resolver.d.ts +0 -0
  414. /package/{lib/services → services}/app-initializer-service/app-initializer.service.d.ts +0 -0
  415. /package/{lib/services → services}/app-insights/app-insights.service.d.ts +0 -0
  416. /package/{lib/services → services}/auth-service/auth.service.d.ts +0 -0
  417. /package/{lib/services → services}/launch-darkly/launch-darkly.service.d.ts +0 -0
  418. /package/{lib/services → services}/sort-service/interfaces/sort-service.interface.d.ts +0 -0
  419. /package/{lib/services → services}/utils/utils.service.d.ts +0 -0
  420. /package/{lib/guards/types → types/src}/can-deactivate.type.d.ts +0 -0
  421. /package/{lib/validators → validators}/alphabetical-text/alphabetical-text.validator.d.ts +0 -0
  422. /package/{lib/validators → validators}/amount/amount.validator.d.ts +0 -0
  423. /package/{lib/validators → validators}/date-after-year/date-after-year.validator.d.ts +0 -0
  424. /package/{lib/validators → validators}/date-before/date-before.validator.d.ts +0 -0
  425. /package/{lib/validators → validators}/date-of-birth/date-of-birth.validator.d.ts +0 -0
  426. /package/{lib/validators → validators}/future-date/future-date.validator.d.ts +0 -0
  427. /package/{lib/validators → validators}/invalid-value/invalid-value.validator.d.ts +0 -0
  428. /package/{lib/validators → validators}/national-insurance-number/national-insurance-number.validator.d.ts +0 -0
  429. /package/{lib/validators → validators}/numerical-only/numerical-only.validator.d.ts +0 -0
  430. /package/{lib/validators → validators}/optional-max-length/optional-max-length.validator.d.ts +0 -0
  431. /package/{lib/validators → validators}/optional-valid-date/optional-valid-date.validator.d.ts +0 -0
  432. /package/{lib/validators → validators}/optional-valid-email-address/optional-valid-email-address.validator.d.ts +0 -0
  433. /package/{lib/validators → validators}/optional-valid-telephone/optional-valid-telephone.validator.d.ts +0 -0
  434. /package/{lib/validators → validators}/past-date/past-date.validator.d.ts +0 -0
  435. /package/{lib/validators → validators}/special-characters/special-characters.validator.d.ts +0 -0
  436. /package/{lib/validators → validators}/two-decimal-places/two-decimal-places.validator.d.ts +0 -0
  437. /package/{lib/validators → validators}/valid-value/valid-value.validator.d.ts +0 -0
@@ -0,0 +1,804 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Input, ChangeDetectionStrategy, Component, EventEmitter, Output, inject, afterNextRender, HostBinding, signal } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i1 from '@angular/forms';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import { DateService } from '@hmcts/opal-frontend-common/services';
7
+ import { RouterLink, Router, ActivatedRoute } from '@angular/router';
8
+ import { Subject, takeUntil } from 'rxjs';
9
+
10
+ class MojBadgeComponent {
11
+ badgeId;
12
+ badgeClasses;
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojBadgeComponent, isStandalone: true, selector: "opal-lib-moj-badge", inputs: { badgeId: "badgeId", badgeClasses: "badgeClasses" }, ngImport: i0, template: "<span class=\"moj-badge {{ badgeClasses }}\" [id]=\"badgeId\"><ng-content></ng-content> </span>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojBadgeComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'opal-lib-moj-badge', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"moj-badge {{ badgeClasses }}\" [id]=\"badgeId\"><ng-content></ng-content> </span>\n" }]
19
+ }], propDecorators: { badgeId: [{
20
+ type: Input,
21
+ args: [{ required: true }]
22
+ }], badgeClasses: [{
23
+ type: Input,
24
+ args: [{ required: false }]
25
+ }] } });
26
+
27
+ class MojBannerComponent {
28
+ text;
29
+ type = 'success';
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: MojBannerComponent, isStandalone: true, selector: "opal-lib-moj-banner", inputs: { text: "text", type: "type" }, ngImport: i0, template: "<section class=\"moj-banner moj-banner--{{ type }}\">\n <svg\n class=\"moj-banner__icon\"\n fill=\"currentColor\"\n role=\"presentation\"\n focusable=\"false\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 25\"\n height=\"25\"\n width=\"25\"\n >\n @if (type === 'success') {\n <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\" />\n }\n @if (type === 'warning') {\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\" />\n }\n @if (type === 'information') {\n <path\n d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n\tC13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\"\n />\n }\n </svg>\n <div id=\"{{ type }}-message\" class=\"moj-banner__message\" role=\"alert\">{{ text }}</div>\n</section>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojBannerComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'opal-lib-moj-banner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"moj-banner moj-banner--{{ type }}\">\n <svg\n class=\"moj-banner__icon\"\n fill=\"currentColor\"\n role=\"presentation\"\n focusable=\"false\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 25\"\n height=\"25\"\n width=\"25\"\n >\n @if (type === 'success') {\n <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\" />\n }\n @if (type === 'warning') {\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\" />\n }\n @if (type === 'information') {\n <path\n d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n\tC13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\"\n />\n }\n </svg>\n <div id=\"{{ type }}-message\" class=\"moj-banner__message\" role=\"alert\">{{ text }}</div>\n</section>\n" }]
36
+ }], propDecorators: { text: [{
37
+ type: Input,
38
+ args: [{ required: true }]
39
+ }], type: [{
40
+ type: Input,
41
+ args: [{ required: true }]
42
+ }] } });
43
+
44
+ class MojButtonMenuItemComponent {
45
+ actionClick = new EventEmitter();
46
+ handleClick(event) {
47
+ event.preventDefault();
48
+ this.actionClick.emit(true);
49
+ }
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojButtonMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojButtonMenuItemComponent, isStandalone: true, selector: "opal-lib-moj-button-menu-item", outputs: { actionClick: "actionClick" }, ngImport: i0, template: "<a\n href=\"\"\n role=\"menuitem\"\n draggable=\"false\"\n class=\"moj-button-menu__item\"\n data-module=\"govuk-button\"\n data-secondary=\"true\"\n (click)=\"handleClick($event)\"\n>\n <ng-content select=\"[linkText]\"></ng-content>\n</a>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojButtonMenuItemComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'opal-lib-moj-button-menu-item', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n href=\"\"\n role=\"menuitem\"\n draggable=\"false\"\n class=\"moj-button-menu__item\"\n data-module=\"govuk-button\"\n data-secondary=\"true\"\n (click)=\"handleClick($event)\"\n>\n <ng-content select=\"[linkText]\"></ng-content>\n</a>\n" }]
56
+ }], propDecorators: { actionClick: [{
57
+ type: Output
58
+ }] } });
59
+
60
+ class MojButtonMenuComponent {
61
+ menuButtonTitle;
62
+ /**
63
+ * Toggles the button menu by changing the `aria-expanded` attribute of the toggle button.
64
+ */
65
+ toggleButtonMenu() {
66
+ const button = document.querySelector('.moj-button-menu__toggle-button');
67
+ const isExpanded = button.getAttribute('aria-expanded') === 'true';
68
+ button.setAttribute('aria-expanded', String(!isExpanded));
69
+ }
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojButtonMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojButtonMenuComponent, isStandalone: true, selector: "opal-lib-moj-button-menu", inputs: { menuButtonTitle: "menuButtonTitle" }, ngImport: i0, template: "<div class=\"moj-button-menu\">\n <button\n class=\"govuk-button moj-button-menu__toggle-button govuk-button--secondary moj-button-menu__toggle-button--secondary\"\n type=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleButtonMenu()\"\n >\n {{ menuButtonTitle }}\n </button>\n <div class=\"moj-button-menu__wrapper\" role=\"menu\">\n <ng-content></ng-content>\n </div>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojButtonMenuComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'opal-lib-moj-button-menu', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"moj-button-menu\">\n <button\n class=\"govuk-button moj-button-menu__toggle-button govuk-button--secondary moj-button-menu__toggle-button--secondary\"\n type=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleButtonMenu()\"\n >\n {{ menuButtonTitle }}\n </button>\n <div class=\"moj-button-menu__wrapper\" role=\"menu\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
76
+ }], propDecorators: { menuButtonTitle: [{
77
+ type: Input,
78
+ args: [{ required: true }]
79
+ }] } });
80
+
81
+ class MojDatePickerComponent {
82
+ _control;
83
+ disabledDatesConcatenated;
84
+ dateService = inject(DateService);
85
+ labelText;
86
+ labelClasses;
87
+ hintText;
88
+ inputId;
89
+ inputName;
90
+ inputClasses;
91
+ minDate;
92
+ maxDate;
93
+ disabledDates;
94
+ disabledDays;
95
+ errors = null;
96
+ dateChange = new EventEmitter();
97
+ set control(abstractControl) {
98
+ // Form controls are passed in as abstract controls, we need to re-cast it.
99
+ this._control = abstractControl;
100
+ }
101
+ get getControl() {
102
+ return this._control;
103
+ }
104
+ constructor() {
105
+ afterNextRender(() => {
106
+ // Only trigger the render of the component in the browser
107
+ this.configureDatePicker();
108
+ });
109
+ }
110
+ /**
111
+ * Retrieves the disabled dates and concatenates them into a single string.
112
+ */
113
+ concatenateDisabledDates() {
114
+ this.disabledDatesConcatenated = this.disabledDates ? this.disabledDates.join(' ') : '';
115
+ }
116
+ /**
117
+ * Sets the date value and emits the updated value through the `dateChange` event.
118
+ *
119
+ * @param value - The new date value to set.
120
+ */
121
+ setDateValue(value) {
122
+ const parsedDate = this.dateService.getFromFormat(value, 'd/M/yyyy');
123
+ if (parsedDate.isValid) {
124
+ const formattedDate = parsedDate.toFormat('dd/MM/yyyy'); // Formats with leading zeros
125
+ this.dateChange.emit(formattedDate);
126
+ }
127
+ else {
128
+ this.dateChange.emit(value);
129
+ }
130
+ }
131
+ /**
132
+ * Configures the date picker functionality using the moj library.
133
+ */
134
+ configureDatePicker() {
135
+ import('@ministryofjustice/frontend/moj/all').then((datePicker) => {
136
+ datePicker.initAll();
137
+ });
138
+ }
139
+ ngOnInit() {
140
+ this.concatenateDisabledDates();
141
+ }
142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: MojDatePickerComponent, isStandalone: true, selector: "opal-lib-moj-date-picker", inputs: { labelText: "labelText", labelClasses: "labelClasses", hintText: "hintText", inputId: "inputId", inputName: "inputName", inputClasses: "inputClasses", minDate: "minDate", maxDate: "maxDate", disabledDates: "disabledDates", disabledDays: "disabledDays", errors: "errors", control: "control" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div\n class=\"moj-datepicker\"\n data-module=\"moj-date-picker\"\n [attr.data-min-date]=\"minDate\"\n [attr.data-max-date]=\"maxDate\"\n [attr.data-excluded-dates]=\"disabledDatesConcatenated\"\n [attr.data-excluded-days]=\"disabledDays\"\n>\n <div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"inputId\"> {{ labelText }} </label>\n\n @if (hintText) {\n <div id=\"date-hint\" class=\"govuk-hint\">{{ hintText }}</div>\n }\n\n @if (errors) {\n <p id=\"{{ inputId }}-date-error\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <input\n class=\"govuk-input moj-js-datepicker-input {{ inputClasses }}\"\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"text\"\n aria-describedby=\"date-hint\"\n autocomplete=\"off\"\n [formControl]=\"getControl\"\n (change)=\"setDateValue($any($event).target.value)\"\n />\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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 });
144
+ }
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojDatePickerComponent, decorators: [{
146
+ type: Component,
147
+ args: [{ selector: 'opal-lib-moj-date-picker', imports: [CommonModule, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"moj-datepicker\"\n data-module=\"moj-date-picker\"\n [attr.data-min-date]=\"minDate\"\n [attr.data-max-date]=\"maxDate\"\n [attr.data-excluded-dates]=\"disabledDatesConcatenated\"\n [attr.data-excluded-days]=\"disabledDays\"\n>\n <div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"inputId\"> {{ labelText }} </label>\n\n @if (hintText) {\n <div id=\"date-hint\" class=\"govuk-hint\">{{ hintText }}</div>\n }\n\n @if (errors) {\n <p id=\"{{ inputId }}-date-error\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <input\n class=\"govuk-input moj-js-datepicker-input {{ inputClasses }}\"\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"text\"\n aria-describedby=\"date-hint\"\n autocomplete=\"off\"\n [formControl]=\"getControl\"\n (change)=\"setDateValue($any($event).target.value)\"\n />\n </div>\n</div>\n" }]
148
+ }], ctorParameters: () => [], propDecorators: { labelText: [{
149
+ type: Input,
150
+ args: [{ required: true }]
151
+ }], labelClasses: [{
152
+ type: Input,
153
+ args: [{ required: false }]
154
+ }], hintText: [{
155
+ type: Input,
156
+ args: [{ required: false }]
157
+ }], inputId: [{
158
+ type: Input,
159
+ args: [{ required: true }]
160
+ }], inputName: [{
161
+ type: Input,
162
+ args: [{ required: true }]
163
+ }], inputClasses: [{
164
+ type: Input,
165
+ args: [{ required: false }]
166
+ }], minDate: [{
167
+ type: Input,
168
+ args: [{ required: false }]
169
+ }], maxDate: [{
170
+ type: Input,
171
+ args: [{ required: false }]
172
+ }], disabledDates: [{
173
+ type: Input,
174
+ args: [{ required: false }]
175
+ }], disabledDays: [{
176
+ type: Input,
177
+ args: [{ required: false }]
178
+ }], errors: [{
179
+ type: Input,
180
+ args: [{ required: false }]
181
+ }], dateChange: [{
182
+ type: Output
183
+ }], control: [{
184
+ type: Input,
185
+ args: [{ required: true }]
186
+ }] } });
187
+
188
+ class MojHeaderNavigationItemComponent {
189
+ actionClick = new EventEmitter();
190
+ /**
191
+ * Handles the click event for the action button.
192
+ * @param event - The click event.
193
+ */
194
+ handleClick(event) {
195
+ event.preventDefault();
196
+ this.actionClick.emit(true);
197
+ }
198
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojHeaderNavigationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
199
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojHeaderNavigationItemComponent, isStandalone: true, selector: "opal-lib-moj-header-navigation-item, [opal-lib-moj-header-navigation-item]", outputs: { actionClick: "actionClick" }, ngImport: i0, template: "<li class=\"moj-header__navigation-item\" role=\"listitem\">\n <a\n class=\"moj-header__navigation-link\"\n (click)=\"handleClick($event)\"\n (keyup.enter)=\"handleClick($event)\"\n tabindex=\"0\"\n href=\"#\"\n >\n <ng-content select=\"[linkText]\"></ng-content>\n </a>\n</li>\n" });
200
+ }
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojHeaderNavigationItemComponent, decorators: [{
202
+ type: Component,
203
+ args: [{ selector: 'opal-lib-moj-header-navigation-item, [opal-lib-moj-header-navigation-item]', template: "<li class=\"moj-header__navigation-item\" role=\"listitem\">\n <a\n class=\"moj-header__navigation-link\"\n (click)=\"handleClick($event)\"\n (keyup.enter)=\"handleClick($event)\"\n tabindex=\"0\"\n href=\"#\"\n >\n <ng-content select=\"[linkText]\"></ng-content>\n </a>\n</li>\n" }]
204
+ }], propDecorators: { actionClick: [{
205
+ type: Output
206
+ }] } });
207
+
208
+ const MOJ_HEADER_LINKS = {
209
+ govukLink: 'https://www.gov.uk/',
210
+ serviceLink: '/',
211
+ };
212
+
213
+ class MojHeaderComponent {
214
+ headerLinks = MOJ_HEADER_LINKS;
215
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
216
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: MojHeaderComponent, isStandalone: true, selector: "opal-lib-moj-header", ngImport: i0, template: "<header class=\"moj-header\" role=\"banner\">\n <div class=\"moj-header__container\">\n <div class=\"moj-header__logo\">\n <a [href]=\"headerLinks.govukLink\" class=\"govuk-header__link\" title=\"GOV.UK\" aria-label=\"GOV.UK home page\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"moj-header__logotype-crest\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 40 40\"\n height=\"40\"\n width=\"40\"\n >\n <path\n fill=\"#ffffff\"\n fill-rule=\"evenodd\"\n d=\"M38.1 16.9c.1 1.8 2.2 1.3 1.9 2.7 0-.9-3-.8-3-2.6 0-.3.1-.7.3-.9-.1-.1-.2-.1-.5-.1-.6 0-1.2.6-1.2 1.3 0 2.2 3 2.6 3 5.1 0 .6-.2 1-.6 1.2.2 0 .7-.1.8-.3-.2 1-1.2 1-1.6.6h-.3c.2.4.4.8.9.7-.9.7-2-.2-1.8-1.2-.2-.3-.4-.7-.6-.9-.1-.2-.2-.1-.2.1 0 .8-.6 1.6-.6 2.1 0 .6.6 1.1.8 1.1s.3-.2.4-.2c.1.1.1.2.1.7 0 .2 0 1 .1 1.7 0-.2.2-.3.3-.4.2-.1.4-.2.7-.1.1 0 .3.1.3.2.1.1.1.2.1.3 0 .2-.2.4-.3.6-.2.1-.3.2-.6.1-.2 0-.3-.1-.4-.2v-.1.7c0 .6-.1.8-.3.9 0-.1-.2-.2-.3-.2-.1 0-.3.1-.3.2 0 .2.3.2.3.6s-.8.8-1.3.8c.1-.2.2-.8.3-1.1-.1.1-.3.3-.4.7-.1.4-.3.4-.6.3.2-.2.6-1.1 1-1.3.4-.3.6-.4.7-1.1.1-.7 0-1.1 0-1.7 0-.8-.3-.7-.6-.7-.6 0-2.6-1.3-2.6-2.7v-.4c-.9 0-1.5.2-1.5 1.1 0 .3 0 .6.2.8.2.1.3.3 0 .4-.3.1-3.1 1.3-3.1 1.3-.3.1-.4 0-.6-.2-.1-.2-.3-.2-.4-.1-.2.1.1.2.1.4s-.1.7-1.3.6l.3-.6c.1-.2.1-.3.1-.3-.1 0-.1.1-.2.3l-.3.4h-.4l1-1c.2-.2.6-.4 1.1-.4.7-.1 2.9-.4 2.9-1.1 0-.8-.9-.8-.9-1.9 0-1 .4-2 3-1.9-.2-.7-.9-1.1-1.6-1.2-1.3-.3-1.7-1.2-1.8-2.1h-1c-.8 0-1.2-.3-1.5-.1-.1.1-.1.2 0 .3.1.2.3.7.6 1 .1 0 .4 0 .4.2s-.1.2-.1.3 0 .2.1.2.1-.1.1-.2c.1-.1.3-.1.7 0 .2.2.6.6.7 1-.3-.1-.8-.3-.9-.3s-.1.1 0 .1.4.2.6.3v.3c-.1-.1-.7-.4-1.1-.6-.3-.1-.6-.2-.8-.7-.2-.4-.8-1.6-1-1.9-.1-.2-.1-.3 0-.4.1-.1.1-.2.2-.3.1-.2.2-.2.4-.2s.8 0 1-.1c0 0 .1 0 .2-.1-.6-.6-1.2-1.4-1.2-1.6-.1-.1-.2-.2-.3-.2s-.2 0-.3.1l-.1.1c0-.1-.1-.1-.1-.2l-.3-.3c.2-.1.3-.3.4-.3.1-.1.2-.2.3-.2h.3c.2 0 .2 0 .3.1.2.2.6.4.8.7 0 0 .1 0 .1.1l.1-.1c.1-.1.2-.1.3-.1s.2.1.3.2.2.3.2.6v.2l.6.6c.1-.7.4-1.4.9-2h-.1v-.1c.1-.3.2-.9.3-1.1v-.3l.8.3.1-.1c.7-.7 2.3-1.1 2.3-2.1 0-.2-.1-.6-.3-.8.1.1.1.3.1.6 0 .2-.4.8-1.1.8-.3 0-.7-.3-.8-.3s-.2.1-.3.1c0 .4-.2.8-.3.8.1-.2 0-.6 0-.6-.1 0-.1.1-.1.4 0 .3-.2.7-.7.7.1-.1.2-.6.1-.7-.1-.1-.2.1-.3.1s-.2-.1-.2-.2-.2 0-.2-.1.2-.3.4-.3c.2-.1.6-.2.6-.4-.1-.2-.9.1-1.1.3-.4.3-.2-.1-.3-.2-.2-.4 0-.4.2-.7.2-.2.8-.7 1.5-1 0-.2.1-.3.3-.4.2-.1.6-.2.8-.3l-3.8-4c-.1-.1-.1-.1 0-.2 0 0 .1 0 .2.1l4 3.9c.3-.6.4-.9.3-1.3.4.2.9.7 1 1.2 1.2 0 1.6.8 1.9.4 0 .2-.1.3-.6.4 1.5.3 1 1.3 1.8 1.4-.1.1-.3.2-.6.1.9 1.3 0 2.1.7 2.8-.2.1-.7-.1-.9-.6.2 1.1-.1 1.7.1 2.1-.3.1-.6-.2-.7-.6-.1.2-.1.4-.2.7l.3.1-.1.1c-.6.6-.8.9-.9 1l-.1.1-.1-.1c-.3.4-.7.8-.7 1.2 0 .4.6 1.3 1.2 2.1v-.2c0-.1.1-.3.2-.4.1-.1.2-.1.4-.1s.4.1.6.3c.1.2.2.3.2.6 0 .1-.1.3-.2.4-.1.1-.2.1-.4.1-.1 0-.3-.1-.4-.1.4.6.9 1.2 1.1 1.7.4.9.9 1.4 1.3 1.4.6 0 1.1-.4 1.1-1.1 0-2.3-3-2.6-3-5.2 0-1.2 1-1.8 1.7-1.8.4 0 .7.1.9.3h.2c1.5 0 .6 1.9 1.7 2-.3.5-1 .2-1.3-.7zM30.3 10c.3-.2.8-.3 1.2-.3-.3-.1-.6-.3-.8-.3-.4-.1-.3.4-.4.6zm-2.7 5.5c0-.1 0-.3-.1-.3 0 0-.1-.1-.2-.1s-.1 0-.2.1-.1.2-.1.3c0 .2.1.4.3.4.1 0 .1 0 .2-.1 0 0 .1-.1.1-.3zm8.7 12.6v.2c.1.2.4.2.7 0 .1-.1.2-.2.2-.3v-.2c-.1-.1-.1-.1-.2-.1s-.3 0-.4.1c-.2.1-.3.2-.3.3zm-1.9-8.3c0 .1.1.3.2.4.1.1.2.2.4.2.1 0 .1 0 .2-.1s.1-.1.1-.2-.1-.3-.2-.4c-.1-.1-.2-.2-.4-.2-.1 0-.1 0-.2.1s-.1.1-.1.2zm-.8-3.2c.3-.3.9-1 .9-1l-.3-.3v.6c-.1-.1-.2-.2-.2-.3l-.2.3c.1 0 .3 0 .3.1-.2.2-.6.1-.7 0-.2-.2-.3-.3-.3-.4.1-.1.3-.1.4.1.2 0 .2-.2.2-.3-.1-.1-.2-.1-.3-.1.3-.2.6-.4.4-.9-.4.1-.6.3-.7.7 0-.1-.1-.3-.2-.3s-.3.1-.3.3c.2-.1.4.1.3.3-.1.1-.3.1-.6 0-.3-.4-.3-.6-.1-.9.1.1.1.2.1.4l.3-.6c-.1 0-.2.1-.3 0 .1-.1.2-.2.4-.3l-.7-.2c.1.2 0 .4 0 .6-.1-.1-.2-.2-.2-.3l-.3.6c.1-.1.3-.1.4-.1-.1.2-.4.3-.7.2-.2-.1-.3-.3-.3-.4.1-.1.3-.1.4.1.2-.1.2-.3.1-.4-.1-.1-.2-.1-.4 0 .3-.3.4-.6.3-1-.3.1-.6.4-.6.8 0-.1-.1-.2-.2-.2s-.3.1-.2.3c.2-.1.4.1.3.3-.1.1-.2.1-.6 0-.2-.1-.4-.2-.3-.6.1 0 .2.2.3.2l.1-.4h-.3c.1-.1.3-.2.4-.3l-.4-.2s-.2.9-.4 1.3l4.2 2.3zm0 7.9c.1-.2.1-.6 0-.7-.2-.1-.4 0-.7.2-.1.2-.1.6 0 .7.1.1.5 0 .7-.2zm1.1-1.9c.1-.2.1-.6 0-.7-.2-.1-.4 0-.7.2-.1.2-.1.6 0 .7.3.1.6 0 .7-.2zM27.4 18c.2-.1.4 0 .7 0 .2.1.3.3.4.4v.4l-.3.3c-.2.1-.4 0-.7 0-.5-.1-.6-.4-.5-.8.1-.2.2-.3.4-.3zm.2 1c.1.1.3.1.4 0 .1 0 .1-.1.2-.1v-.2c0-.1-.1-.2-.3-.3-.1-.1-.3-.1-.4 0-.1 0-.1.1-.2.1-.1.1.1.3.3.5zm4.8 7.2c.1-.1.2-.2.4-.2s.3.1.4.2c.1.1.2.3.2.6 0 .2-.1.4-.2.6-.1.1-.2.2-.4.2-.1 0-.3-.1-.4-.2-.1-.1-.2-.3-.2-.6 0-.2 0-.5.2-.6zm.3 1.1c.1 0 .2 0 .2-.1.1-.1.1-.2.2-.4 0-.3-.1-.6-.3-.6-.1 0-.2 0-.2.1-.1.1-.1.2-.2.4 0 .2 0 .3.1.4.1.1.1.2.2.2zm-4.8-13.8c.2-.1.3-.2.6-.2.1 0 .2.1.3.2s.1.2.1.4-.1.3-.3.6c-.3.2-.8.2-.9 0-.1-.3 0-.6.2-1zm0 .7v.2c.1.1.3.1.6 0 .1-.1.2-.2.2-.3v-.2c0-.1-.1-.1-.2-.1s-.2 0-.3.1c-.2 0-.3.2-.3.3zm5.7 13.7c.2-.1.4-.2.7-.1.4.1.8.4.7.8 0 .2-.1.3-.3.4-.1.1-.3.1-.6.1s-.3-.1-.6-.2c-.1-.1-.2-.3-.1-.6-.1-.2 0-.3.2-.4zm.4.9c.3 0 .6-.1.6-.3 0-.2-.2-.3-.4-.4-.2 0-.3 0-.4.1 0 0-.1.1-.1.2-.2.1 0 .3.3.4zm3.3-1.9c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1c-.5 0-1-.4-1-1zm.3 0c0 .4.3.8.8.8s.8-.3.8-.8c0-.4-.3-.8-.8-.8-.4.1-.8.5-.8.8zm-23.3-5.8c-.1.3.1.3.1.7 0 .3-.2.4-.6.6.2-.4 0-.7-.3-.8.1.8-.6.9-.8.8.2 0 .3-.4.2-.8-.1.2-.4.4-.7.4s-.4-.2-.6-.4c.3.2.6 0 .6-.2 0-.1-.3-.2-.3-.4 0-.6.6-.3.6-.8 0-.2-.1-.3-.2-.3s-.3.1-.3.3c-.3-.2 0-.9-.1-1.2 0 .7-.4.6-.6.9-.2-.2 0-.7-.2-1.2-.1.6-.3.4-.3.9-.6-.3-1.7-.2-2 .2 1 .8 2.2 1.2 2.2 2.4 0 .9-1.5 1.3-1.5 1.9 0 .6 1.5 2 2.2 2 .2 0 .3-.3.6-.3h.6c.2 0 .3.2.3.3.3 0 .8.6.3 1-.1-.2-.3-.6-.8-.3.2.4 0 .8-.4 1 .1-.2.2-.6-.1-.6s0 .2-.7.2c-.6 0-.6 0-.8-.3-.2-.3-.4-.4-.6-.4s-.2.3 0 .6c-1.2 0-.7-1.2-1.3-1.6v.9c-.4-.5-.8-.9-.8-1.3-.1-.3 0-.6-.3-.8-.1 0-.2-.1-.2-.3 0-.1.1-.1.3-.2.2-.1.6-.3.6-1 0-.4-.1-1.1-.9-1.7.1 1 0 1.9-.4 2.7-.6 1-1.7 1.7-2.2 1.9-.6.2-1.3.4-1.3 1.2 0 1.4.7 2.2 1.2 2.2.4 0 .3-.4.9-.4.2 0 .6.1.6.3.3-.1.7.1.7.4 0 .3-.1.4-.3.6.2-.4-.3-.4-.4-.4-.1.1 0 .2 0 .4s-.1.4-.4.6c.1-.1.1-.3-.2-.3-.2 0-.3.4-.7.4-.6 0-.7-.2-1.2-.1-.3.1-.3.3-.2.3-.7 0-.6-.8-.4-.9.1-.1.2-.2 0-.4-.2-.1-.6 0-.7.3-.6-1.1.2-1 0-2.2-.1.6-.4.9-.7 1 .1-.2-.1-.8-.1-1.2 0-.9.6-1.2.6-1.4 0-.2-.2-.4 0-.6.1-.1.3.1.6.1.7 0 1.2-.9 1.3-2 .1-1.2.7-2.1 1.1-3 0-.1 0-.3.1-.4-.6.7-1 1.6-1.7 2.1.1.8-1.5 1.7-2.3 1 .3 0 .8-.1 1-.6-.1 0-.2 0-.3-.1-.6.3-1.3-.1-1.3-.7.2.2.4.3.8.2.2-.1.1-.4.1-.8 0-2.3 3.6-3.9 3.6-5.8 0-.6-.3-.9-.8-.9-.2 0-.4.1-.7.2.2.1.3.3.3.6 0 2.1-3.5 1.9-3.7 3.3-.1-1.8 2-1.4 2.1-2.9-.4.7-1.2 1.1-1.7.9 1.1 0 .8-2.2 2-2.2.1 0 .2 0 .4.1.3-.3.8-.4 1.1-.4.6 0 1.3.3 1.3 1.3 0 2.2-3.6 3.7-3.6 5.8 0 .7.4 1 1 1 1.2 0 2.1-2.2 3.5-4.1.9-1.2 1.5-3.7 2-4.9-.7.4-.8 1.8-1.6 1.9.4-.3.1-1.4.4-2.3.1-.3.1-.6.1-.9-.4.6-.3 2.2-1.1 2.4.3-.3 0-.9 0-1.4 0-1 .6-1.1.6-2.1-.4.2-.3 1.4-1.2 1.4.7-.7 0-1.3.8-2.1-.4-.2-.8-.6-.8-.9.3-.2.7-.3 1-.3-.3-.2-.2-.4 0-.7.1.2.2.3.3.3.3-.1.8-.6 1.5-.8.5-.2 1.3-.5 1.6-.5.1 0 .1-.2.1-.3.2 0 .6 0 .7.3.2-.2.6-.3.9-.3.2.4.2.8 0 1.2.4 0 .7.4 1.1.3-.3.4-.8.3-1.2.2 1.2.3 1.5 1.6 2.1 1.7-1.2.7-1.7-.3-2.3-.3 1.7.9 1.7 1.9 2.1 1.9-.6.4-.9-.1-1.6-.3 1.3.9 1.3 1.6 1.2 2.1.3.2.2.6.2 1 .2-.1.6-.2.8-.2-.1.1-.2.2-.2.3-.7.8-1.1 1.4-1.5 2.4-.3-.2-.6-.6-.8-.7-.2-.2-.6-.2-.7-.2.4.4 1.8 2 2.2 2.4.4.4.3.8.4 1.2.4.4.8.7.7.9zM7.5 10.2c.4 0 .6-.6.4-.9-.4.2-1 .3-1.3.4.5.2.5.5.9.5zm2.3 2.5c.4-.2.4-.7.3-.9-.1-.2-.2-.4-.3-.4-.2 0-.4-.1-.4-.3-.1-.2.2-.3.4-.6-.2-.1-.4-.2-.2-.3.2-.1.4.1.4 0 .1-.1-.1-.2-.2-.3s-.2-.1-.3 0l-1.2.4c-.1 0-.3 0-.3.1s-.1.3 0 .3.1-.3.3-.3.2.1 0 .4c.4 0 .6-.1.7.2.1.2 0 .3-.1.6-.1.1 0 .3 0 .6.1.2.5.7.9.5zm.1-3.5c.2-.2 0-.4.3-.9-.3.2-.8.5-1.3.7.3.3.7.5 1 .2zm-.7-3.1c.1.1.1.2.1.3-.1 0-.1-.1-.3-.2v.6c.1-.1.2-.1.2-.2 0 .3-.1.6-.3.6l-.3-.3c0-.1.1-.2.2-.1 0-.3-.2-.3-.3-.2.1-.4.1-.6-.2-.7-.3.3-.1.4.1.6-.2-.1-.5.1-.2.4 0-.2.2-.1.2 0s-.1.3-.4.4c-.3.1-.4-.1-.5-.3.1 0 .2 0 .4.1l.1-.5c-.1.3-.2.3-.3.4 0-.1.1-.4.1-.4l-.7.2s.3.1.4.2c0 0-.1.1-.4 0l.2.4c0-.2.1-.3.2-.3.1.2.1.4-.2.6-.2.2-.4.1-.4 0-.1-.1 0-.3.2-.2 0-.3-.3-.3-.3-.1 0-.3-.1-.6-.4-.6-.1.3 0 .6.3.7-.2 0-.3.1-.1.3 0-.2.1-.2.2-.1s0 .2-.1.3c-.1.1-.3.1-.6-.2h.2L6 7.3v.3c-.1-.1-.1-.1-.1-.3l-.2.2c.2.2.6.5.9.9.3-.2 1-.6 1.5-.7.4-.2 1.1-.4 1.6-.4-.1-.6 0-1 0-1.2h-.5zm-2.7-.7l.2.4.1-.3v.6c0 .1.1.3.3.3.1 0 .3-.1.3-.3 0-.1-.1-.2-.1-.2 0-.1-.2-.3-.3-.4h.4v-.4l-.4.2v-.4l-.4.1.2.3-.3.1zm1.4.4c.1-.2.1-.3 0-.4-.1-.1-.2-.1-.3 0-.1.1-.1.2 0 .3.1.1.2.1.3.1zm.6-.5c.1-.1.1-.2 0-.3s-.2-.1-.3 0-.2.2 0 .3c.1.1.2.1.3 0zm.5.1c.1-.1.1-.2 0-.3s-.2-.1-.3 0c-.1.1-.1.2 0 .3.1.1.3.1.3 0zm.2.5c.1.1.2.1.3 0s.1-.2 0-.3h-.3c-.2 0-.2.3 0 .3zm-2.7.4c.1 0 .2-.1.2-.2s-.1-.2-.2-.2-.2.1-.2.2.1.2.2.2zm-.7.1c.1 0 .2-.1.2-.2S6 6 5.8 6c-.1 0-.2.1-.2.2s.1.2.2.2zm-.1.2c0-.1-.1-.2-.2-.2s-.2.1-.2.2.1.2.2.2.2 0 .2-.2zm.1.7c0-.1-.1-.2-.2-.2s-.2.1-.2.2.1.2.2.2.2-.1.2-.2zm15.7 16.9c-.1 0-.1.1-.1.1 0 .1 1-.1 1 .1 0 .1-.2.2-.6.2h-.1c0 .1.1.1.1.1v.1s0 .1 0 0h-.1s-.1 0 0 .1h-.1v-.1h-.1v-.1h.1l.1.1.1-.1-.1-.1h-.3c.1.1.1.2.1.3v.1h-.1s0 .1-.1.1H21c0-.1.1 0 .1-.1 0 0 0-.1.1-.1s.1.1.2.1h.1-.1v-.1c-.1 0-.1.1-.2.1 0 .1-.1.2-.1.2l-.1.1c-.1 0-.1 0-.1.1v-.1h-.1l-.1.1v-.1s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1 0-.1-.1h.1v.1h.4v-.1c-.1 0-.1 0-.1-.1-.4-.2-.4-.3-.4-.3-.1 0-.2 0-.1-.1 0 .1.1.1.1 0 0 0-.1 0 0-.1v-.1h.1-.1.1l.1.1h.1v.1c0 .1 0 .1.1.1s.1.2.2.2v-.2s0-.1.1-.1l.1-.1v-.1h.2s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1.8 0 .9 0 .2 0 .4-.1.4-.1 0-.1-1 .1-1-.1-.4-.4-.3-.4-.2-.4 0 0 0-.1 0 0 .2-.2.6 0 .7-.1 0 0-.2.1-.3.1.3.1.4-.1.8 0-.3-.1-.7.3-1.2 0 0 .1 0 0 0 0zm-.7 0c0 .1 0 .1 0 0 .1.1.1.1 0 0 .1.1.1.1 0 0zm0 0s-.1 0 0 0c-.1 0-.1 0 0 0-.1.1 0 0 0 0zm-.1.3s0 .1 0 0c0 .1.1.1 0 0 .1 0 .1 0 0 0 .1 0 .1 0 0 0 .1-.1.1-.1.1 0h-.1c0-.2 0-.2 0 0 0-.2.1-.2 0 0zm1.1-1.6c-.1 0-.3 0-.3.1s.7.1.9.1c.3 0 .3.1.3.1 0 .1-.3.1-.6.1h.3c.1 0 0 0 0 0h.1v.2h-.1c0 .1-.1 0-.1.1v.1h-.1v-.1s0 .1-.1.1 0-.1.1-.1H22s0-.1.1-.1h.1v-.1h-.5v.1s.1.1 0 .1h-.1s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1c-.1 0 0-.1 0-.2h-.1c-.4-.1-.2.1-.4.1 0 0 0 .1-.1.1 0 .1-.1.2-.2.1-.1 0-.2 0-.2.1v-.1h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1h.1v.1c0 .1.2 0 .2 0h.2v-.1h-.1c-.1-.1-.1 0-.1 0-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1 0 0-.1v-.1s0-.1.1 0h-.1.1l.1.1h.1v.1c0 .1 0 .1.1.1h.1v-.1s0-.1.1-.1l.1-.1V23h.2s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.3-.1 1 0 1.2 0 .1 0 .4 0 .4-.1 0 0 0-.1-.2-.1s-1 .2-1-.1c-.2-.3.1-.3.2-.2.1-.1.1-.1 0 0 .2-.2.6 0 .7-.1 0 0-.2.1-.3.1.3.1.4-.1.8 0-.3-.1-.8.1-1.2 0 .1 0 .1 0 0 0zm-.9 0s-.1-.1 0 0c-.1 0-.1 0 0 0zm.1.1s-.1 0 0 0l-.1-.1c-.1.1 0 .1.1.1h-.1v.1l.1-.1c-.1.1-.1.1 0 0-.1.1-.1.1 0 0-.1 0-.1 0 0 0-.1 0-.1 0 0 0-.1 0-.1 0 0 0zm0 0c0-.1 0-.1 0 0 0-.1 0 0 0 0zm2.2-.9s0 .1 0 0c0 .1 0 .1 0 0 0 .1 0 .1 0 0v.1c0 .1-.1 0-.1.1 0 0 .1 0 0 .1H23v-.1s0 .1-.1.1v-.1h-.2s0-.1.1-.1h.1v-.1h-.2c-.1 0-.1.1-.2.1h-.2v.1s.1.1 0 .1h-.1s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.2c-.1 0-.1-.1 0-.2 0 0 0 .1-.1.1-.6-.1-.3.2-.8.1 0 0 0 .1-.1.1h-.1l-.1.1c-.1 0-.1 0-.2.1v-.1h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1h.1v.1c0 .1.2 0 .2 0h.2s-.1-.1 0-.1v-.1h-.1l-.2-.2v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1h.1v.1c0 .1 0 .1.1.1s.1.1.2.1v-.1s0-.1.1-.1l.1-.1v-.1h.3s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1 1.5 0 1.7 0 .1 0 .4 0 .4-.1 0 0 0-.1-.3-.1-.2 0-1.3.2-1.3-.1 0-.2.3-.1.7-.1.1-.1.6 0 .7 0 0 0-.2.1-.3.1.3.1.4-.1.8 0-.2-.1-.7.2-1.1.1h-.1c-.2 0-.6 0-.6.1 0 .2.9.1 1.2.1.3 0 .4.1.4.1 0 .1-.3.1-.4.1h.3c-.4-.1-.4-.1-.3 0-.1 0 0-.1 0 0zm-2.2-.5s0 .1 0 0c.1.1.1.1.1 0H21zm-.1 0s0-.2 0 0c0 0-.1 0 0 0zm-.1.2c.1.1.1 0 0 0 .1 0 .1 0 0 0 .1 0 .1-.1 0 0l.1-.1h-.1c.1 0 .1 0 0 .1.1-.1.1-.1 0 0 .1-.1 0 0 0 0zm-1.9-2c0 .1-.3.1-.4.1h.5v.2c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.1.1-.1h-.2s0-.1.1-.1h.1V20h-.2c-.1 0-.1.1-.2.1h-.2v.1s.1.1 0 .1H18s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1c-.1 0-.1-.1 0-.1h-.1c-.6-.1-.3.2-.8.1 0 0 0 .1-.1.1l-.1.1h-.1c-.1 0-.2 0-.2.1v-.2h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1v.1c0 .1.2 0 .2 0h.2v-.1h-.1l-.2-.2v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1h.1v.1c0 .1 0 .1.1.1s.1.1.1.1v-.1s0-.1.1-.1l.1-.1v-.1h.3s.1 0 .1.1h.1s0 .1-.1.1c0 .1 0 .1-.1.2.5-.1 1.5 0 1.8 0-.4.1-.1 0 0 0-.1-.1-.1-.1-.4-.1-.2 0-1.3.2-1.3-.1 0-.2.3-.1.7-.1.1-.1.6 0 .7 0 0 0-.2.1-.3.1.3.1.6-.1.8 0-.3-.1-.7.2-1.1.1h-.1c-.2 0-.6 0-.6.1 0 .2.9.1 1.2.1.3-.3.4-.2.4-.1zm-2.3-.2c.1.1.1.1.1 0h-.1zm-.1-.2s-.1 0 0 0c-.1 0-.1 0 0 0 0 .2 0 0 0 0zm-.1.3c0 .1 0 .1 0 0 0 .1.1.1 0 0 .1.1.1 0 0 0 .1 0 .1 0 0 0l.1-.1h-.1c.1 0 .1 0 0 .1.1 0 .1 0 0 0 .1 0 0 0 0 0zm2.6-1.4c0 .1-.3.2-.6.2h.6v.2h-.1c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.1.2-.1h-.2s0-.1.1-.1h.1v-.1h-.2c-.1 0-.1.1-.2.1h-.2v.1c.1 0 .1.1 0 .1H18s0 .1-.1.1h-.1.1-.2c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.2.2.1h.1-.1c-.1 0-.1-.1 0-.2h-.1c-.4-.1-.2.2-.6.2h-.1c0 .1-.2.2-.2.2-.1.1-.1 0-.2.1v-.2h-.1c0 .1-.1.1-.1.1V19s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1V19c-.2 0-.2-.1-.2-.1s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1H16v.1c0 .1.2 0 .2 0h.2v-.1h-.1c-.1 0-.1-.1-.1-.1v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1V18s.1 0 .1.1v.1c0 .1 0 .1.1.1s.1.1.1.1h.1v-.1s0-.1.1-.1l.1-.1V18h.3s.1 0 .1.1v.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1 1.1 0 1.3 0 0-.1.3-.1.4-.2-.1-.1-.1-.1-.4-.1-.2 0-1.1.2-1.1-.1 0-.1.2-.1.4-.1.2-.1.4 0 .6-.1 0 0-.1.1-.2.1.3.1.6-.1.9.1-.2-.1-.8.1-1.1 0H18c-.2 0-.3 0-.3.1 0 .2.7.1 1 .1.2-.1.3-.1.3 0zm-2.5.3c-.1 0-.1 0 0 0zm.5-.5c.1.1.1.1.1 0H17zm-.1-.1s-.2 0 0 0c0 .1 0 .1 0 0zm-.2.3c.2.1.2 0 0 0 .2 0 .2 0 0 0 .2-.1.2-.1 0 0l.1-.1h-.1c.2 0 .2 0 0 .1.2-.1.2-.1 0 0 .2-.1 0-.1 0 0zm1.8-1.2c.1 0 .2.1.3.1h.2v.2c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.2h-.2s0-.1.1-.1h.1v-.1h-.4v.2h-.1v.1h-.4c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1v-.2h-.1c-.3 0-.1.1-.2.1 0 0-.1.1-.2.1v-.1h-.1l-.1.1c-.1 0-.1 0-.1.1v-.1h-.1l-.1.1v-.1s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1 0-.1-.1h.1v.1h.3s.1 0 .2-.1l-.1-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1 0 0-.1v-.1h.1-.1.1v.1h.1v.2l.1.1V17s0-.1.1-.1l.1-.1v-.1h.4s0 .1-.1.1c0 0-.1.1-.1.2.1-.1.2 0 .4.1.3-.1.5-.1.5-.2 0-.2-.9 0-.9-.3 0 0 0-.1.1-.1v-.1c.1-.1.2-.1.3-.2 0 0 0 .1-.1.2.2 0 .2-.3.7-.2-.3.1-.3.3-.8.4l-.1.1c0 .2.9 0 .9.3-.1 0-.2.1-.6.1zm-.7-.4c0 .1 0 .1 0 0 .1.1.1.1 0 0 .1.1 0 0 0 0zm0 0c-.2 0-.2 0 0 0-.2 0-.2 0 0 0-.2 0-.2 0 0 0zm-.2.2c-.1 0-.1 0 0 0 0 .1 0 0 0 0 .1-.1.1-.1.1 0h-.1c0-.1 0-.1 0 0 0-.1 0-.1 0 0zm1.3 5.1c.1 0 .1 0 .1.1s-.1.1-.2.1l-.1 2.4h.1v.2c0 .1-.1.1-.2.1 0 .3-.2.4-.4.4-.1 0-.3-.1-.3-.3 0-.1.1-.2.2-.2s.1 0 .1.1-.2 0-.2.1 0 .1.1.1.2-.1.2-.2c0-.2-.2-.2-.4-.2-1.3-.4-2.1-1.8-2.1-2.8h-.1l.1-.2-.1.1c-.1 0-.2-.1-.2-.2s.1-.2.2-.2.2.1.2.2l.1-.2c.2.1.6.2.9.2.7 0 1.2-.3 1.5-.3.2.1.4.4.5.7zm-2.6.2c-.1 1.2.8 2.1 1.7 2.4l-1.7-2.4zm1.8 2.3c0-.1 0-.3.1-.4l-1.3-1.8h-.3l1.5 2.2zm.1-.8c0-.1 0-.3.1-.4l-.8-1.1c-.1 0-.2.1-.3.1l1 1.4zm.2-1.7c0-.2 0-.3-.1-.3s-.4.1-.7.2l.7 1c0-.2.1-.4.1-.7v-.1c-.1 0-.1-.1-.1-.1h.1zm4.3-2.6c.1 0 .1-.1.1-.1h-.1s.1 0 0-.1c0-.1-.1-.1-.1 0s-.4 0-.4-.3l.1.1h.1c.1 0 .1-.1.1-.1 0-.1-.1-.2-.3-.3-.1 0-.1-.1-.1-.1 0-.1 0-.2-.1-.4v-.2c-.1.1-.1.3.1.6.1.1.4.3.4.4 0 0 0 .1-.1.1h-.1s-.1 0-.1-.1c-.1-.1-.2-.3-.3-.4-.1-.2-.1-.3-.1-.6.1-.1-.1-.4-.1-.6v-.1h-.1s0-.1-.1-.1-.1 0-.1-.1c0 0 0 .1-.1.1h-.4c-.1 0-.1 0 0 .1v.2-.1h.1v.1h-.1v.1h.3c0 .1-.2.1-.2.3l-.1-.1-.1-.1-.1-.1c-.1 0-.1-.1-.1-.1v-.1l-.1-.1v.2s0-.1-.1-.1c0 0 0-.1-.1 0 0 0 0 .1.1.1h-.1v.2h-.1c-.1.1 0 .2.1.1v.3c0 .1.1.2.3.3l-.2.2s-.1.1-.2.1l-.1-.1h-.2.2-.1s-.1.1 0 .1v-.1s.1.1.1 0v.1s.1.1.1 0l-.1-.1v-.1s0 .1.1 0v-.1h.2s0-.1.1-.1h.1s0-.1.1-.1c0 .3.3.2.4.4-.1 0-.2-.1-.3-.1s-.2.1-.2.2.1.2.1.3h-.2c-.1 0-.1-.1-.2-.1 0 0-.1 0-.1.1h.1s-.1 0-.1.1c0 0 0 .1.1 0 0 0 0 .1.1 0h.1s0-.1.1 0h.2v-.1c0-.1-.1-.1-.1-.1 0-.1.1-.2.2-.2 0 .1.1.3.3.4.1 0 .2-.1.2-.1v.1h-.1s-.1 0-.1.1h.1s.1.1.1 0c0 0-.1.1 0 .1s0-.1.1-.1v.1h.1v-.1s.1 0 .1-.1c1 .6 1 .6 1 .4 0 .2 0 .2 0 0 0 .2 0 0 0 0zm.7.6c.1 0 .2.1.2.2l-.1.1s.1.1.1.2c-.1 0-.1 0-.2-.1 0 .1 0 .1-.1.1s-.2 0-.2-.1c0 .1.2 0 .1 0h-1.5c0 .1 0 .2-.1.3-.1-.1-.1-.2-.1-.3h-1.3c0 .1.1.1.1 0 0 .1-.1.2-.2.2H20s-.1.1-.2.1c0-.1 0-.1.1-.2-.1 0-.1 0-.1-.1s0-.2.2-.2c-.1 0 0 .2 0 .1v-1.9c-.1 0-.2 0-.3-.1.1-.1.2-.1.3-.1v-1.8c-.1 0-.1.1 0 .1-.1 0-.2-.1-.1-.2l.1-.1s-.1-.1-.1-.2c.1 0 .1 0 .2.1 0-.1 0-.1.1-.1s.2 0 .2.2c0-.1-.1-.1-.1 0 .3.1.8.2 1.1.4.3.2.7.6 1 .9l.1.1c0-.1.1-.1.3-.1-.2.3-.3.3-.3.3.4.7.8 1.4.9 2.3V20zm-1.3-2.3c-.2-.3-.6-.6-.9-.8-.2-.2-.6-.3-.9-.4v.2c-.1 0-.1 0-.1-.1v1.2c.1 0 .1 0 .1.1v.1c.1 0 .1 0 .2.1-.1.1-.1.1-.2.1.1 0 .1.1 0 .1l-.1.1V20s.1-.1.2-.1c0 .1 0 .1-.1.2h1c0-.1 0-.1.1-.1h.1c0-.1 0-.1.1-.2.1.1.1.1.1.2 0-.1.1-.1.1 0l.1.1H23s-.1-.1-.1-.2h.1c-.1-.7-.3-1.2-.7-1.8h-.1s-.1-.1 0-.1c0 0-.1.1-.2 0 0-.1 0-.1.1-.2v-.1zm4.2 2.7v.4c0 1-.2 2.1-.6 3-.3.9-.9 1.8-1.5 2.4-.3.3-.7.7-1 .9-.1.1-.4.2-2-.2-.2 0-.3-.1-.6-.1 0-.2 0-.3.1-.4.1-.2.1-.3.2-.4.1 0 .1-.1.2-.1.6-.2 1-.7 1.5-1.2.4-.6.8-1.1 1-1.8.2-.7.3-1.3.3-2h-4.5v5c.3 0 1 .1 1 .1-.1.2-.2.4-.2.8-.6-.1-1-.3-1.6-.6.4-.2.6-.2.8-.2v-4.9h-4.7c0-.2-.1-.6-.2-.7-.2-.3-.3-.4-.3-.9 0-.2-.1-.6-.3-.8-.1-.1-.7-.8-.8-.9.3-.9.9-1.8 1.5-2.4.4-.4.9-.9 1.5-1.2-.2-.2-.6-.4-.6-.9 0-.2.1-.4.2-.6-.3-.9-.8-2-1.2-2.6l.9-.4c-.2.3-.2.8-.2 1 .2-.2.4-.4.6-.7 0 .3.2.8.3 1-.2 0-.4-.1-.8 0 .1.2.6.6 1.1.3.3-.1.7-.2.7-.6 0-.1-.1-.3-.3-.3s-.2.3-.1.4c-.2-.1-.6-.9-.1-1 .3-.1.7.3.8.7 0-.2.2-.7.6-.7.4 0 .3.8.1 1 0-.2-.2-.4-.3-.4s-.2.1-.2.3c0 .2.3.4.8.4.3 0 1.1-.1 1.1-.9-.2 0-.7.2-.8.4V9.4c.2.3.6.6.8.6-.1-.3-.3-.7-.7-.9h1.7c-.3.2-.6.6-.7.9.2 0 .6-.2.8-.4v1.2c-.2-.2-.6-.4-.8-.4.1.8.8.9 1.1.9.4 0 .8-.1.8-.4 0-.2-.1-.3-.2-.3s-.2.1-.3.4c0-.2-.2-1.1.2-1.1.3 0 .4.3.6.8.1-.3.4-.8.8-.7.3.1.1.9-.1 1 .1-.1 0-.4-.1-.4-.2 0-.3.1-.3.3 0 .2.3.4.7.6.6.1 1-.2 1.1-.4-.2-.1-.4-.1-.8.1.1-.2.3-.8.3-1 .1.3.2.6.6.7 0-.2 0-.7-.2-1l.9.4c-.4.4-1 1.6-1.2 2.6.2.1.3.3.3.7 0 .4-.2.7-.6.9.6.3 1 .8 1.5 1.2.3.3.6.8.9 1.2 0 0-.1.1-.1.2-.1.1-.2.2-.2.3-.1.1-.1.2-.1.3 0 .1 0 .2.1.4l1 2c-.6 0-.4.2-.2.3zm-7-5c-.6 0-1.2.1-1.8.4-.6.2-1.1.7-1.5 1.2-.4.6-.8 1.1-1 1.8-.2.7-.3 1.3-.3 2.1h4.6v-5.5zm.1-2.2c1.6 0 2.6.4 3.2.9.3-.2.6-.4.6-.7 0-.9-2.5-1-3.7-1-1.2 0-3.7.1-3.7 1 0 .2.1.4.6.7.5-.4 1.5-.9 3-.9zm4.7 7.7c0-.7-.1-1.4-.3-2.1-.2-.7-.6-1.2-1-1.8-.4-.6-.9-.9-1.5-1.2-.6-.2-1.1-.4-1.7-.4v5.5h4.5zm11 11.1c0-.1-.1-.1-.1-.1-1.5.4-3.2-.8-4.9-1.9-1.5-1-2.8-1.9-4-1.9-.4 0-.8.1-1.1.2-.4.2-.7.6-.9 1.1-.2.4-.4.8-.6 1.1-.2.3-.3.6-.3.8 0 .2.1.4.3.7.1.2.4.3.8.6.1 0 .1.1.2.1.3.1.4.2.4.4-.6.2-1.3.4-2.1.6-.9.1-2 .2-3.1.2s-2.1-.1-3.1-.2c-.9-.1-1.6-.3-2.1-.6 0-.2.2-.3.6-.4.1 0 .1-.1.2-.1.3-.1.6-.3.8-.4.2-.2.3-.3.3-.6s-.1-.6-.3-.8c-.1-.2-.3-.6-.6-1.1-.2-.4-.6-.9-.9-1.1-.3-.2-.7-.2-1.1-.2-1.2 0-2.6.9-4 1.9-1.8 1.1-3.6 2.3-4.9 1.9-.1 0-.1 0-.1.1s0 .1.1.1c.4.2.8.4 1.2.8.6.4 1 .8 1.6.8.6 0 1.1-.1 1.8-.6.6-.3 1.2-.7 1.8-1.1 1.1-.8 2.3-1.6 3.5-1.7l-.3.3c-.3.3-.7.6-.7 1.1 0 .4.1.7.3 1.1.1.1.1.2.2.4s.2.4.2.8c0 .1.1.3.1.4.1.2.2.8 1 1.2 1 .4 2.6.8 4.9.8 2.2 0 3.9-.2 4.9-.8.8-.4 1-.9 1-1.2 0-.2.1-.3.1-.4.1-.3.1-.6.2-.8.1-.2.2-.3.2-.6.2-.3.3-.6.3-.9 0-.6-.3-.8-.7-1.1l-.3-.3c1.1.1 2.3.9 3.5 1.7.6.4 1.2.8 1.8 1.1.7.3 1.2.6 1.8.6.6 0 1-.3 1.6-.8.3-.3.8-.6 1.2-.8-.9-.2-.7-.3-.7-.4zm-14.6-1.4c.4 0 .7.3.7.7 0 .3-.2.6-.3.8-.1-.2-.1-.3-.2-.3-.2 0-.1 1.1-.8 1.1v.2c0 .2-.2.4-.4.4s-.5-.3-.5-.5v-.2c-.7 0-.6-1.1-.8-1.1-.1 0-.2.1-.2.3-.1-.2-.3-.4-.3-.8 0-.3.2-.7.7-.7h.2V29c.7.1 1.2.2 1.8.2v1.2c0 .2 0 .2.1.2zm-1.1 2.6c.1 0 .2-.1.2-.2s-.1-.2-.2-.2-.2.1-.2.2.1.2.2.2zm1.5-1.5c.1-.1.1-.3.1-.4 0-.2-.1-.4-.4-.4-.6 0-.4.8-.7.8-.1 0-.2-.1-.2-.2 0-.2.3-.4.3-.8s-.3-.6-.6-.8c-.3.2-.6.6-.6.8 0 .3.3.6.3.8 0 .1-.1.2-.2.2-.2 0-.1-.8-.7-.8-.3 0-.4.3-.4.4 0 .1 0 .2.1.4l.2-.2c.4 0 .2 1.1.8 1.1.2 0 .3-.1.3-.3 0-.1-.1-.2-.1-.3 0-.1.1-.2.2-.2s.2 0 .2.2c0 .1-.1.2-.1.3s.1.3.3.3c.4 0 .3-1.1.8-1.1.3 0 .3.1.4.2zm.3-4.1c.7.1 1.5.3 1.9.2l-.1.1c-.2.2-.4.3-.7.6-.7.4-1.3.7-1.8.7-.6 0-1.3-.1-2.1-.3-.7-.2-1.3-.4-1.8-.7-.2.2-.6.2-.9.1-.3-.1-.6-.6-.6-.8v-.1l-.7-.7c-.7-.7-1.1-1.6-1.5-2.4-.1-.4-.3-.9-.3-1.3.6.2.8 0 1-.2.1 0 .1.2.1.2.7 0 1-.4 1.1-.8.1.4.1.8.3 1.1.2.7.6 1.2 1 1.8.1.2.3.3.4.4.1 0 .2-.1.3-.1.2 0 .4.1.7.3.2.2.2.4.2.7 1.3.4 2.5.8 3.5 1.2zM17.4 26c.1 0 .1.1.2.1 0-.1-.1-.2-.2-.4-.1-.1-.3-.2-.6-.2-.4 0-.8.4-1 .6-.1 0-.2 0-.3-.1 0 .1.1.2.1.3-.2.3-.3.7-.3.9 0 .1.2.4.4.7.2.1.3.1.6 0-.1-.1-.2-.1-.3-.2-.1 0-.2-.1-.2-.2v-.1c0-.1 0-.2.1-.3v-.3h.1c.1.1.3.1.4.1 0 0 .1 0 .1-.1.1-.1 0-.3-.2-.4l-.1-.4.1-.1c.1-.1.1-.2.2-.2.5.1.6.1.9.3zm.7 1.9c.2 0 .4-.2.4-.4s-.2-.4-.4-.4-.4.2-.4.4c-.1.3.2.4.4.4zm1.9.7c.2 0 .4-.2.4-.4s-.2-.4-.4-.4-.4.2-.4.4c0 .1.2.4.4.4zM20 5c-.2-.2-.4-.4-.4-.8.2 0 .6.2.8.4V3.5c-.3.3-.5.5-.9.5 0-.2.2-.6.4-.8h-1.1c.2.3.4.6.4.8-.2 0-.6-.2-.8-.4v1.1c.2-.2.4-.4.8-.4 0 .3-.2.6-.4.8H20zm-1.6 1.4c.1.4.6.8 1 .8s.9-.3 1-.8h-2zm1.2-.4h.8c-.1-.4-.4-.8-.8-.8V6zm-.4 0v-.8c-.4.1-.8.4-.8.8h.8zm.8 1.5c-.1 0-.2.1-.3.1V9h.3V7.5zm-1.1 1.6h.3V7.7c-.1 0-.2-.1-.3-.1v1.5zm1.2-1.8c0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3s-.3.1-.3.3zm1-.1c.2 0 .3-.1.3-.3 0-.1-.1-.2-.3-.2s-.3.1-.3.3c0 .1.2.2.3.2zM22 7c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.1.3.3.3zm2.2.8c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.2.3.3.3zm-.5-.6c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2 0 .3.3.3zm-.9-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.1.2.3.3.3zm1.8 2.4c-.2 0-.3.1-.3.3 0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3zm.1-.7c-.2 0-.3.1-.3.3 0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3zm-.4-.5c0 .2.1.3.3.3s.4-.1.4-.3c0-.2-.1-.3-.3-.3s-.4.1-.4.3zm-5.9-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 0 .2.3.3.3zm-.8-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c.1.2.2.3.3.3zm-.7-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2.1.3.3.3zm-2.3.8c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.1.3.3.3zm.6-.6c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2.2.3.3.3zm.9-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.1.1.3.3.3zm-1.5 2.8c0-.2-.1-.3-.3-.3s-.3 0-.3.3c0 .2.1.3.3.3.1 0 .3-.1.3-.3zm-.2-.8c0-.2-.1-.3-.3-.3-.2 0-.3.1-.3.3 0 .2.1.3.3.3.2 0 .3-.2.3-.3zm-.2-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.4.1-.4.3c0 .1.3.3.4.3zm7.7.3c-.1.1-.4.4-.4.8 0 .2.2.6.3.8.1-.3.4-.4.4-.8 0-.3-.2-.5-.3-.8zm-4.9 0c-.2.3-.3.6-.3.9 0 .3.3.4.4.8.1-.3.3-.6.3-.8 0-.5-.3-.8-.4-.9z\"\n ></path>\n </svg>\n </a>\n\n @if (headerLinks.serviceLink) {\n <a [routerLink]=\"headerLinks.serviceLink\" class=\"moj-header__link moj-header__link--organisation-name\">\n <ng-content select=\"[organisationName]\"></ng-content>\n </a>\n\n <a [routerLink]=\"headerLinks.serviceLink\" class=\"moj-header__link moj-header__link--service-name\">\n <ng-content select=\"[serviceName]\"></ng-content>\n </a>\n } @else {\n <span class=\"moj-header__link--organisation-name\">\n <ng-content select=\"[organisationName]\"></ng-content>\n </span>\n\n <span class=\"moj-header__link--service-name\">\n <ng-content select=\"[serviceName]\"></ng-content>\n </span>\n }\n </div>\n <div class=\"moj-header__content\">\n <nav class=\"moj-header__navigation\" aria-label=\"Account navigation\">\n <!--PO-322\n For accessibility we need to add a role to prevent any accessibility issues\n-->\n <ul class=\"moj-header__navigation-list\" role=\"list\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n </div>\n</header>\n", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
217
+ }
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojHeaderComponent, decorators: [{
219
+ type: Component,
220
+ args: [{ selector: 'opal-lib-moj-header', imports: [RouterLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"moj-header\" role=\"banner\">\n <div class=\"moj-header__container\">\n <div class=\"moj-header__logo\">\n <a [href]=\"headerLinks.govukLink\" class=\"govuk-header__link\" title=\"GOV.UK\" aria-label=\"GOV.UK home page\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"moj-header__logotype-crest\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 40 40\"\n height=\"40\"\n width=\"40\"\n >\n <path\n fill=\"#ffffff\"\n fill-rule=\"evenodd\"\n d=\"M38.1 16.9c.1 1.8 2.2 1.3 1.9 2.7 0-.9-3-.8-3-2.6 0-.3.1-.7.3-.9-.1-.1-.2-.1-.5-.1-.6 0-1.2.6-1.2 1.3 0 2.2 3 2.6 3 5.1 0 .6-.2 1-.6 1.2.2 0 .7-.1.8-.3-.2 1-1.2 1-1.6.6h-.3c.2.4.4.8.9.7-.9.7-2-.2-1.8-1.2-.2-.3-.4-.7-.6-.9-.1-.2-.2-.1-.2.1 0 .8-.6 1.6-.6 2.1 0 .6.6 1.1.8 1.1s.3-.2.4-.2c.1.1.1.2.1.7 0 .2 0 1 .1 1.7 0-.2.2-.3.3-.4.2-.1.4-.2.7-.1.1 0 .3.1.3.2.1.1.1.2.1.3 0 .2-.2.4-.3.6-.2.1-.3.2-.6.1-.2 0-.3-.1-.4-.2v-.1.7c0 .6-.1.8-.3.9 0-.1-.2-.2-.3-.2-.1 0-.3.1-.3.2 0 .2.3.2.3.6s-.8.8-1.3.8c.1-.2.2-.8.3-1.1-.1.1-.3.3-.4.7-.1.4-.3.4-.6.3.2-.2.6-1.1 1-1.3.4-.3.6-.4.7-1.1.1-.7 0-1.1 0-1.7 0-.8-.3-.7-.6-.7-.6 0-2.6-1.3-2.6-2.7v-.4c-.9 0-1.5.2-1.5 1.1 0 .3 0 .6.2.8.2.1.3.3 0 .4-.3.1-3.1 1.3-3.1 1.3-.3.1-.4 0-.6-.2-.1-.2-.3-.2-.4-.1-.2.1.1.2.1.4s-.1.7-1.3.6l.3-.6c.1-.2.1-.3.1-.3-.1 0-.1.1-.2.3l-.3.4h-.4l1-1c.2-.2.6-.4 1.1-.4.7-.1 2.9-.4 2.9-1.1 0-.8-.9-.8-.9-1.9 0-1 .4-2 3-1.9-.2-.7-.9-1.1-1.6-1.2-1.3-.3-1.7-1.2-1.8-2.1h-1c-.8 0-1.2-.3-1.5-.1-.1.1-.1.2 0 .3.1.2.3.7.6 1 .1 0 .4 0 .4.2s-.1.2-.1.3 0 .2.1.2.1-.1.1-.2c.1-.1.3-.1.7 0 .2.2.6.6.7 1-.3-.1-.8-.3-.9-.3s-.1.1 0 .1.4.2.6.3v.3c-.1-.1-.7-.4-1.1-.6-.3-.1-.6-.2-.8-.7-.2-.4-.8-1.6-1-1.9-.1-.2-.1-.3 0-.4.1-.1.1-.2.2-.3.1-.2.2-.2.4-.2s.8 0 1-.1c0 0 .1 0 .2-.1-.6-.6-1.2-1.4-1.2-1.6-.1-.1-.2-.2-.3-.2s-.2 0-.3.1l-.1.1c0-.1-.1-.1-.1-.2l-.3-.3c.2-.1.3-.3.4-.3.1-.1.2-.2.3-.2h.3c.2 0 .2 0 .3.1.2.2.6.4.8.7 0 0 .1 0 .1.1l.1-.1c.1-.1.2-.1.3-.1s.2.1.3.2.2.3.2.6v.2l.6.6c.1-.7.4-1.4.9-2h-.1v-.1c.1-.3.2-.9.3-1.1v-.3l.8.3.1-.1c.7-.7 2.3-1.1 2.3-2.1 0-.2-.1-.6-.3-.8.1.1.1.3.1.6 0 .2-.4.8-1.1.8-.3 0-.7-.3-.8-.3s-.2.1-.3.1c0 .4-.2.8-.3.8.1-.2 0-.6 0-.6-.1 0-.1.1-.1.4 0 .3-.2.7-.7.7.1-.1.2-.6.1-.7-.1-.1-.2.1-.3.1s-.2-.1-.2-.2-.2 0-.2-.1.2-.3.4-.3c.2-.1.6-.2.6-.4-.1-.2-.9.1-1.1.3-.4.3-.2-.1-.3-.2-.2-.4 0-.4.2-.7.2-.2.8-.7 1.5-1 0-.2.1-.3.3-.4.2-.1.6-.2.8-.3l-3.8-4c-.1-.1-.1-.1 0-.2 0 0 .1 0 .2.1l4 3.9c.3-.6.4-.9.3-1.3.4.2.9.7 1 1.2 1.2 0 1.6.8 1.9.4 0 .2-.1.3-.6.4 1.5.3 1 1.3 1.8 1.4-.1.1-.3.2-.6.1.9 1.3 0 2.1.7 2.8-.2.1-.7-.1-.9-.6.2 1.1-.1 1.7.1 2.1-.3.1-.6-.2-.7-.6-.1.2-.1.4-.2.7l.3.1-.1.1c-.6.6-.8.9-.9 1l-.1.1-.1-.1c-.3.4-.7.8-.7 1.2 0 .4.6 1.3 1.2 2.1v-.2c0-.1.1-.3.2-.4.1-.1.2-.1.4-.1s.4.1.6.3c.1.2.2.3.2.6 0 .1-.1.3-.2.4-.1.1-.2.1-.4.1-.1 0-.3-.1-.4-.1.4.6.9 1.2 1.1 1.7.4.9.9 1.4 1.3 1.4.6 0 1.1-.4 1.1-1.1 0-2.3-3-2.6-3-5.2 0-1.2 1-1.8 1.7-1.8.4 0 .7.1.9.3h.2c1.5 0 .6 1.9 1.7 2-.3.5-1 .2-1.3-.7zM30.3 10c.3-.2.8-.3 1.2-.3-.3-.1-.6-.3-.8-.3-.4-.1-.3.4-.4.6zm-2.7 5.5c0-.1 0-.3-.1-.3 0 0-.1-.1-.2-.1s-.1 0-.2.1-.1.2-.1.3c0 .2.1.4.3.4.1 0 .1 0 .2-.1 0 0 .1-.1.1-.3zm8.7 12.6v.2c.1.2.4.2.7 0 .1-.1.2-.2.2-.3v-.2c-.1-.1-.1-.1-.2-.1s-.3 0-.4.1c-.2.1-.3.2-.3.3zm-1.9-8.3c0 .1.1.3.2.4.1.1.2.2.4.2.1 0 .1 0 .2-.1s.1-.1.1-.2-.1-.3-.2-.4c-.1-.1-.2-.2-.4-.2-.1 0-.1 0-.2.1s-.1.1-.1.2zm-.8-3.2c.3-.3.9-1 .9-1l-.3-.3v.6c-.1-.1-.2-.2-.2-.3l-.2.3c.1 0 .3 0 .3.1-.2.2-.6.1-.7 0-.2-.2-.3-.3-.3-.4.1-.1.3-.1.4.1.2 0 .2-.2.2-.3-.1-.1-.2-.1-.3-.1.3-.2.6-.4.4-.9-.4.1-.6.3-.7.7 0-.1-.1-.3-.2-.3s-.3.1-.3.3c.2-.1.4.1.3.3-.1.1-.3.1-.6 0-.3-.4-.3-.6-.1-.9.1.1.1.2.1.4l.3-.6c-.1 0-.2.1-.3 0 .1-.1.2-.2.4-.3l-.7-.2c.1.2 0 .4 0 .6-.1-.1-.2-.2-.2-.3l-.3.6c.1-.1.3-.1.4-.1-.1.2-.4.3-.7.2-.2-.1-.3-.3-.3-.4.1-.1.3-.1.4.1.2-.1.2-.3.1-.4-.1-.1-.2-.1-.4 0 .3-.3.4-.6.3-1-.3.1-.6.4-.6.8 0-.1-.1-.2-.2-.2s-.3.1-.2.3c.2-.1.4.1.3.3-.1.1-.2.1-.6 0-.2-.1-.4-.2-.3-.6.1 0 .2.2.3.2l.1-.4h-.3c.1-.1.3-.2.4-.3l-.4-.2s-.2.9-.4 1.3l4.2 2.3zm0 7.9c.1-.2.1-.6 0-.7-.2-.1-.4 0-.7.2-.1.2-.1.6 0 .7.1.1.5 0 .7-.2zm1.1-1.9c.1-.2.1-.6 0-.7-.2-.1-.4 0-.7.2-.1.2-.1.6 0 .7.3.1.6 0 .7-.2zM27.4 18c.2-.1.4 0 .7 0 .2.1.3.3.4.4v.4l-.3.3c-.2.1-.4 0-.7 0-.5-.1-.6-.4-.5-.8.1-.2.2-.3.4-.3zm.2 1c.1.1.3.1.4 0 .1 0 .1-.1.2-.1v-.2c0-.1-.1-.2-.3-.3-.1-.1-.3-.1-.4 0-.1 0-.1.1-.2.1-.1.1.1.3.3.5zm4.8 7.2c.1-.1.2-.2.4-.2s.3.1.4.2c.1.1.2.3.2.6 0 .2-.1.4-.2.6-.1.1-.2.2-.4.2-.1 0-.3-.1-.4-.2-.1-.1-.2-.3-.2-.6 0-.2 0-.5.2-.6zm.3 1.1c.1 0 .2 0 .2-.1.1-.1.1-.2.2-.4 0-.3-.1-.6-.3-.6-.1 0-.2 0-.2.1-.1.1-.1.2-.2.4 0 .2 0 .3.1.4.1.1.1.2.2.2zm-4.8-13.8c.2-.1.3-.2.6-.2.1 0 .2.1.3.2s.1.2.1.4-.1.3-.3.6c-.3.2-.8.2-.9 0-.1-.3 0-.6.2-1zm0 .7v.2c.1.1.3.1.6 0 .1-.1.2-.2.2-.3v-.2c0-.1-.1-.1-.2-.1s-.2 0-.3.1c-.2 0-.3.2-.3.3zm5.7 13.7c.2-.1.4-.2.7-.1.4.1.8.4.7.8 0 .2-.1.3-.3.4-.1.1-.3.1-.6.1s-.3-.1-.6-.2c-.1-.1-.2-.3-.1-.6-.1-.2 0-.3.2-.4zm.4.9c.3 0 .6-.1.6-.3 0-.2-.2-.3-.4-.4-.2 0-.3 0-.4.1 0 0-.1.1-.1.2-.2.1 0 .3.3.4zm3.3-1.9c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1c-.5 0-1-.4-1-1zm.3 0c0 .4.3.8.8.8s.8-.3.8-.8c0-.4-.3-.8-.8-.8-.4.1-.8.5-.8.8zm-23.3-5.8c-.1.3.1.3.1.7 0 .3-.2.4-.6.6.2-.4 0-.7-.3-.8.1.8-.6.9-.8.8.2 0 .3-.4.2-.8-.1.2-.4.4-.7.4s-.4-.2-.6-.4c.3.2.6 0 .6-.2 0-.1-.3-.2-.3-.4 0-.6.6-.3.6-.8 0-.2-.1-.3-.2-.3s-.3.1-.3.3c-.3-.2 0-.9-.1-1.2 0 .7-.4.6-.6.9-.2-.2 0-.7-.2-1.2-.1.6-.3.4-.3.9-.6-.3-1.7-.2-2 .2 1 .8 2.2 1.2 2.2 2.4 0 .9-1.5 1.3-1.5 1.9 0 .6 1.5 2 2.2 2 .2 0 .3-.3.6-.3h.6c.2 0 .3.2.3.3.3 0 .8.6.3 1-.1-.2-.3-.6-.8-.3.2.4 0 .8-.4 1 .1-.2.2-.6-.1-.6s0 .2-.7.2c-.6 0-.6 0-.8-.3-.2-.3-.4-.4-.6-.4s-.2.3 0 .6c-1.2 0-.7-1.2-1.3-1.6v.9c-.4-.5-.8-.9-.8-1.3-.1-.3 0-.6-.3-.8-.1 0-.2-.1-.2-.3 0-.1.1-.1.3-.2.2-.1.6-.3.6-1 0-.4-.1-1.1-.9-1.7.1 1 0 1.9-.4 2.7-.6 1-1.7 1.7-2.2 1.9-.6.2-1.3.4-1.3 1.2 0 1.4.7 2.2 1.2 2.2.4 0 .3-.4.9-.4.2 0 .6.1.6.3.3-.1.7.1.7.4 0 .3-.1.4-.3.6.2-.4-.3-.4-.4-.4-.1.1 0 .2 0 .4s-.1.4-.4.6c.1-.1.1-.3-.2-.3-.2 0-.3.4-.7.4-.6 0-.7-.2-1.2-.1-.3.1-.3.3-.2.3-.7 0-.6-.8-.4-.9.1-.1.2-.2 0-.4-.2-.1-.6 0-.7.3-.6-1.1.2-1 0-2.2-.1.6-.4.9-.7 1 .1-.2-.1-.8-.1-1.2 0-.9.6-1.2.6-1.4 0-.2-.2-.4 0-.6.1-.1.3.1.6.1.7 0 1.2-.9 1.3-2 .1-1.2.7-2.1 1.1-3 0-.1 0-.3.1-.4-.6.7-1 1.6-1.7 2.1.1.8-1.5 1.7-2.3 1 .3 0 .8-.1 1-.6-.1 0-.2 0-.3-.1-.6.3-1.3-.1-1.3-.7.2.2.4.3.8.2.2-.1.1-.4.1-.8 0-2.3 3.6-3.9 3.6-5.8 0-.6-.3-.9-.8-.9-.2 0-.4.1-.7.2.2.1.3.3.3.6 0 2.1-3.5 1.9-3.7 3.3-.1-1.8 2-1.4 2.1-2.9-.4.7-1.2 1.1-1.7.9 1.1 0 .8-2.2 2-2.2.1 0 .2 0 .4.1.3-.3.8-.4 1.1-.4.6 0 1.3.3 1.3 1.3 0 2.2-3.6 3.7-3.6 5.8 0 .7.4 1 1 1 1.2 0 2.1-2.2 3.5-4.1.9-1.2 1.5-3.7 2-4.9-.7.4-.8 1.8-1.6 1.9.4-.3.1-1.4.4-2.3.1-.3.1-.6.1-.9-.4.6-.3 2.2-1.1 2.4.3-.3 0-.9 0-1.4 0-1 .6-1.1.6-2.1-.4.2-.3 1.4-1.2 1.4.7-.7 0-1.3.8-2.1-.4-.2-.8-.6-.8-.9.3-.2.7-.3 1-.3-.3-.2-.2-.4 0-.7.1.2.2.3.3.3.3-.1.8-.6 1.5-.8.5-.2 1.3-.5 1.6-.5.1 0 .1-.2.1-.3.2 0 .6 0 .7.3.2-.2.6-.3.9-.3.2.4.2.8 0 1.2.4 0 .7.4 1.1.3-.3.4-.8.3-1.2.2 1.2.3 1.5 1.6 2.1 1.7-1.2.7-1.7-.3-2.3-.3 1.7.9 1.7 1.9 2.1 1.9-.6.4-.9-.1-1.6-.3 1.3.9 1.3 1.6 1.2 2.1.3.2.2.6.2 1 .2-.1.6-.2.8-.2-.1.1-.2.2-.2.3-.7.8-1.1 1.4-1.5 2.4-.3-.2-.6-.6-.8-.7-.2-.2-.6-.2-.7-.2.4.4 1.8 2 2.2 2.4.4.4.3.8.4 1.2.4.4.8.7.7.9zM7.5 10.2c.4 0 .6-.6.4-.9-.4.2-1 .3-1.3.4.5.2.5.5.9.5zm2.3 2.5c.4-.2.4-.7.3-.9-.1-.2-.2-.4-.3-.4-.2 0-.4-.1-.4-.3-.1-.2.2-.3.4-.6-.2-.1-.4-.2-.2-.3.2-.1.4.1.4 0 .1-.1-.1-.2-.2-.3s-.2-.1-.3 0l-1.2.4c-.1 0-.3 0-.3.1s-.1.3 0 .3.1-.3.3-.3.2.1 0 .4c.4 0 .6-.1.7.2.1.2 0 .3-.1.6-.1.1 0 .3 0 .6.1.2.5.7.9.5zm.1-3.5c.2-.2 0-.4.3-.9-.3.2-.8.5-1.3.7.3.3.7.5 1 .2zm-.7-3.1c.1.1.1.2.1.3-.1 0-.1-.1-.3-.2v.6c.1-.1.2-.1.2-.2 0 .3-.1.6-.3.6l-.3-.3c0-.1.1-.2.2-.1 0-.3-.2-.3-.3-.2.1-.4.1-.6-.2-.7-.3.3-.1.4.1.6-.2-.1-.5.1-.2.4 0-.2.2-.1.2 0s-.1.3-.4.4c-.3.1-.4-.1-.5-.3.1 0 .2 0 .4.1l.1-.5c-.1.3-.2.3-.3.4 0-.1.1-.4.1-.4l-.7.2s.3.1.4.2c0 0-.1.1-.4 0l.2.4c0-.2.1-.3.2-.3.1.2.1.4-.2.6-.2.2-.4.1-.4 0-.1-.1 0-.3.2-.2 0-.3-.3-.3-.3-.1 0-.3-.1-.6-.4-.6-.1.3 0 .6.3.7-.2 0-.3.1-.1.3 0-.2.1-.2.2-.1s0 .2-.1.3c-.1.1-.3.1-.6-.2h.2L6 7.3v.3c-.1-.1-.1-.1-.1-.3l-.2.2c.2.2.6.5.9.9.3-.2 1-.6 1.5-.7.4-.2 1.1-.4 1.6-.4-.1-.6 0-1 0-1.2h-.5zm-2.7-.7l.2.4.1-.3v.6c0 .1.1.3.3.3.1 0 .3-.1.3-.3 0-.1-.1-.2-.1-.2 0-.1-.2-.3-.3-.4h.4v-.4l-.4.2v-.4l-.4.1.2.3-.3.1zm1.4.4c.1-.2.1-.3 0-.4-.1-.1-.2-.1-.3 0-.1.1-.1.2 0 .3.1.1.2.1.3.1zm.6-.5c.1-.1.1-.2 0-.3s-.2-.1-.3 0-.2.2 0 .3c.1.1.2.1.3 0zm.5.1c.1-.1.1-.2 0-.3s-.2-.1-.3 0c-.1.1-.1.2 0 .3.1.1.3.1.3 0zm.2.5c.1.1.2.1.3 0s.1-.2 0-.3h-.3c-.2 0-.2.3 0 .3zm-2.7.4c.1 0 .2-.1.2-.2s-.1-.2-.2-.2-.2.1-.2.2.1.2.2.2zm-.7.1c.1 0 .2-.1.2-.2S6 6 5.8 6c-.1 0-.2.1-.2.2s.1.2.2.2zm-.1.2c0-.1-.1-.2-.2-.2s-.2.1-.2.2.1.2.2.2.2 0 .2-.2zm.1.7c0-.1-.1-.2-.2-.2s-.2.1-.2.2.1.2.2.2.2-.1.2-.2zm15.7 16.9c-.1 0-.1.1-.1.1 0 .1 1-.1 1 .1 0 .1-.2.2-.6.2h-.1c0 .1.1.1.1.1v.1s0 .1 0 0h-.1s-.1 0 0 .1h-.1v-.1h-.1v-.1h.1l.1.1.1-.1-.1-.1h-.3c.1.1.1.2.1.3v.1h-.1s0 .1-.1.1H21c0-.1.1 0 .1-.1 0 0 0-.1.1-.1s.1.1.2.1h.1-.1v-.1c-.1 0-.1.1-.2.1 0 .1-.1.2-.1.2l-.1.1c-.1 0-.1 0-.1.1v-.1h-.1l-.1.1v-.1s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1 0-.1-.1h.1v.1h.4v-.1c-.1 0-.1 0-.1-.1-.4-.2-.4-.3-.4-.3-.1 0-.2 0-.1-.1 0 .1.1.1.1 0 0 0-.1 0 0-.1v-.1h.1-.1.1l.1.1h.1v.1c0 .1 0 .1.1.1s.1.2.2.2v-.2s0-.1.1-.1l.1-.1v-.1h.2s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1.8 0 .9 0 .2 0 .4-.1.4-.1 0-.1-1 .1-1-.1-.4-.4-.3-.4-.2-.4 0 0 0-.1 0 0 .2-.2.6 0 .7-.1 0 0-.2.1-.3.1.3.1.4-.1.8 0-.3-.1-.7.3-1.2 0 0 .1 0 0 0 0zm-.7 0c0 .1 0 .1 0 0 .1.1.1.1 0 0 .1.1.1.1 0 0zm0 0s-.1 0 0 0c-.1 0-.1 0 0 0-.1.1 0 0 0 0zm-.1.3s0 .1 0 0c0 .1.1.1 0 0 .1 0 .1 0 0 0 .1 0 .1 0 0 0 .1-.1.1-.1.1 0h-.1c0-.2 0-.2 0 0 0-.2.1-.2 0 0zm1.1-1.6c-.1 0-.3 0-.3.1s.7.1.9.1c.3 0 .3.1.3.1 0 .1-.3.1-.6.1h.3c.1 0 0 0 0 0h.1v.2h-.1c0 .1-.1 0-.1.1v.1h-.1v-.1s0 .1-.1.1 0-.1.1-.1H22s0-.1.1-.1h.1v-.1h-.5v.1s.1.1 0 .1h-.1s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1c-.1 0 0-.1 0-.2h-.1c-.4-.1-.2.1-.4.1 0 0 0 .1-.1.1 0 .1-.1.2-.2.1-.1 0-.2 0-.2.1v-.1h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1h.1v.1c0 .1.2 0 .2 0h.2v-.1h-.1c-.1-.1-.1 0-.1 0-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1 0 0-.1v-.1s0-.1.1 0h-.1.1l.1.1h.1v.1c0 .1 0 .1.1.1h.1v-.1s0-.1.1-.1l.1-.1V23h.2s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.3-.1 1 0 1.2 0 .1 0 .4 0 .4-.1 0 0 0-.1-.2-.1s-1 .2-1-.1c-.2-.3.1-.3.2-.2.1-.1.1-.1 0 0 .2-.2.6 0 .7-.1 0 0-.2.1-.3.1.3.1.4-.1.8 0-.3-.1-.8.1-1.2 0 .1 0 .1 0 0 0zm-.9 0s-.1-.1 0 0c-.1 0-.1 0 0 0zm.1.1s-.1 0 0 0l-.1-.1c-.1.1 0 .1.1.1h-.1v.1l.1-.1c-.1.1-.1.1 0 0-.1.1-.1.1 0 0-.1 0-.1 0 0 0-.1 0-.1 0 0 0-.1 0-.1 0 0 0zm0 0c0-.1 0-.1 0 0 0-.1 0 0 0 0zm2.2-.9s0 .1 0 0c0 .1 0 .1 0 0 0 .1 0 .1 0 0v.1c0 .1-.1 0-.1.1 0 0 .1 0 0 .1H23v-.1s0 .1-.1.1v-.1h-.2s0-.1.1-.1h.1v-.1h-.2c-.1 0-.1.1-.2.1h-.2v.1s.1.1 0 .1h-.1s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.2c-.1 0-.1-.1 0-.2 0 0 0 .1-.1.1-.6-.1-.3.2-.8.1 0 0 0 .1-.1.1h-.1l-.1.1c-.1 0-.1 0-.2.1v-.1h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1h.1v.1c0 .1.2 0 .2 0h.2s-.1-.1 0-.1v-.1h-.1l-.2-.2v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1h.1v.1c0 .1 0 .1.1.1s.1.1.2.1v-.1s0-.1.1-.1l.1-.1v-.1h.3s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1 1.5 0 1.7 0 .1 0 .4 0 .4-.1 0 0 0-.1-.3-.1-.2 0-1.3.2-1.3-.1 0-.2.3-.1.7-.1.1-.1.6 0 .7 0 0 0-.2.1-.3.1.3.1.4-.1.8 0-.2-.1-.7.2-1.1.1h-.1c-.2 0-.6 0-.6.1 0 .2.9.1 1.2.1.3 0 .4.1.4.1 0 .1-.3.1-.4.1h.3c-.4-.1-.4-.1-.3 0-.1 0 0-.1 0 0zm-2.2-.5s0 .1 0 0c.1.1.1.1.1 0H21zm-.1 0s0-.2 0 0c0 0-.1 0 0 0zm-.1.2c.1.1.1 0 0 0 .1 0 .1 0 0 0 .1 0 .1-.1 0 0l.1-.1h-.1c.1 0 .1 0 0 .1.1-.1.1-.1 0 0 .1-.1 0 0 0 0zm-1.9-2c0 .1-.3.1-.4.1h.5v.2c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.1.1-.1h-.2s0-.1.1-.1h.1V20h-.2c-.1 0-.1.1-.2.1h-.2v.1s.1.1 0 .1H18s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1c-.1 0-.1-.1 0-.1h-.1c-.6-.1-.3.2-.8.1 0 0 0 .1-.1.1l-.1.1h-.1c-.1 0-.2 0-.2.1v-.2h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1v.1c0 .1.2 0 .2 0h.2v-.1h-.1l-.2-.2v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1h.1v.1c0 .1 0 .1.1.1s.1.1.1.1v-.1s0-.1.1-.1l.1-.1v-.1h.3s.1 0 .1.1h.1s0 .1-.1.1c0 .1 0 .1-.1.2.5-.1 1.5 0 1.8 0-.4.1-.1 0 0 0-.1-.1-.1-.1-.4-.1-.2 0-1.3.2-1.3-.1 0-.2.3-.1.7-.1.1-.1.6 0 .7 0 0 0-.2.1-.3.1.3.1.6-.1.8 0-.3-.1-.7.2-1.1.1h-.1c-.2 0-.6 0-.6.1 0 .2.9.1 1.2.1.3-.3.4-.2.4-.1zm-2.3-.2c.1.1.1.1.1 0h-.1zm-.1-.2s-.1 0 0 0c-.1 0-.1 0 0 0 0 .2 0 0 0 0zm-.1.3c0 .1 0 .1 0 0 0 .1.1.1 0 0 .1.1.1 0 0 0 .1 0 .1 0 0 0l.1-.1h-.1c.1 0 .1 0 0 .1.1 0 .1 0 0 0 .1 0 0 0 0 0zm2.6-1.4c0 .1-.3.2-.6.2h.6v.2h-.1c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.1.2-.1h-.2s0-.1.1-.1h.1v-.1h-.2c-.1 0-.1.1-.2.1h-.2v.1c.1 0 .1.1 0 .1H18s0 .1-.1.1h-.1.1-.2c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.2.2.1h.1-.1c-.1 0-.1-.1 0-.2h-.1c-.4-.1-.2.2-.6.2h-.1c0 .1-.2.2-.2.2-.1.1-.1 0-.2.1v-.2h-.1c0 .1-.1.1-.1.1V19s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1V19c-.2 0-.2-.1-.2-.1s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1H16v.1c0 .1.2 0 .2 0h.2v-.1h-.1c-.1 0-.1-.1-.1-.1v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1V18s.1 0 .1.1v.1c0 .1 0 .1.1.1s.1.1.1.1h.1v-.1s0-.1.1-.1l.1-.1V18h.3s.1 0 .1.1v.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1 1.1 0 1.3 0 0-.1.3-.1.4-.2-.1-.1-.1-.1-.4-.1-.2 0-1.1.2-1.1-.1 0-.1.2-.1.4-.1.2-.1.4 0 .6-.1 0 0-.1.1-.2.1.3.1.6-.1.9.1-.2-.1-.8.1-1.1 0H18c-.2 0-.3 0-.3.1 0 .2.7.1 1 .1.2-.1.3-.1.3 0zm-2.5.3c-.1 0-.1 0 0 0zm.5-.5c.1.1.1.1.1 0H17zm-.1-.1s-.2 0 0 0c0 .1 0 .1 0 0zm-.2.3c.2.1.2 0 0 0 .2 0 .2 0 0 0 .2-.1.2-.1 0 0l.1-.1h-.1c.2 0 .2 0 0 .1.2-.1.2-.1 0 0 .2-.1 0-.1 0 0zm1.8-1.2c.1 0 .2.1.3.1h.2v.2c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.2h-.2s0-.1.1-.1h.1v-.1h-.4v.2h-.1v.1h-.4c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1v-.2h-.1c-.3 0-.1.1-.2.1 0 0-.1.1-.2.1v-.1h-.1l-.1.1c-.1 0-.1 0-.1.1v-.1h-.1l-.1.1v-.1s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1 0-.1-.1h.1v.1h.3s.1 0 .2-.1l-.1-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1 0 0-.1v-.1h.1-.1.1v.1h.1v.2l.1.1V17s0-.1.1-.1l.1-.1v-.1h.4s0 .1-.1.1c0 0-.1.1-.1.2.1-.1.2 0 .4.1.3-.1.5-.1.5-.2 0-.2-.9 0-.9-.3 0 0 0-.1.1-.1v-.1c.1-.1.2-.1.3-.2 0 0 0 .1-.1.2.2 0 .2-.3.7-.2-.3.1-.3.3-.8.4l-.1.1c0 .2.9 0 .9.3-.1 0-.2.1-.6.1zm-.7-.4c0 .1 0 .1 0 0 .1.1.1.1 0 0 .1.1 0 0 0 0zm0 0c-.2 0-.2 0 0 0-.2 0-.2 0 0 0-.2 0-.2 0 0 0zm-.2.2c-.1 0-.1 0 0 0 0 .1 0 0 0 0 .1-.1.1-.1.1 0h-.1c0-.1 0-.1 0 0 0-.1 0-.1 0 0zm1.3 5.1c.1 0 .1 0 .1.1s-.1.1-.2.1l-.1 2.4h.1v.2c0 .1-.1.1-.2.1 0 .3-.2.4-.4.4-.1 0-.3-.1-.3-.3 0-.1.1-.2.2-.2s.1 0 .1.1-.2 0-.2.1 0 .1.1.1.2-.1.2-.2c0-.2-.2-.2-.4-.2-1.3-.4-2.1-1.8-2.1-2.8h-.1l.1-.2-.1.1c-.1 0-.2-.1-.2-.2s.1-.2.2-.2.2.1.2.2l.1-.2c.2.1.6.2.9.2.7 0 1.2-.3 1.5-.3.2.1.4.4.5.7zm-2.6.2c-.1 1.2.8 2.1 1.7 2.4l-1.7-2.4zm1.8 2.3c0-.1 0-.3.1-.4l-1.3-1.8h-.3l1.5 2.2zm.1-.8c0-.1 0-.3.1-.4l-.8-1.1c-.1 0-.2.1-.3.1l1 1.4zm.2-1.7c0-.2 0-.3-.1-.3s-.4.1-.7.2l.7 1c0-.2.1-.4.1-.7v-.1c-.1 0-.1-.1-.1-.1h.1zm4.3-2.6c.1 0 .1-.1.1-.1h-.1s.1 0 0-.1c0-.1-.1-.1-.1 0s-.4 0-.4-.3l.1.1h.1c.1 0 .1-.1.1-.1 0-.1-.1-.2-.3-.3-.1 0-.1-.1-.1-.1 0-.1 0-.2-.1-.4v-.2c-.1.1-.1.3.1.6.1.1.4.3.4.4 0 0 0 .1-.1.1h-.1s-.1 0-.1-.1c-.1-.1-.2-.3-.3-.4-.1-.2-.1-.3-.1-.6.1-.1-.1-.4-.1-.6v-.1h-.1s0-.1-.1-.1-.1 0-.1-.1c0 0 0 .1-.1.1h-.4c-.1 0-.1 0 0 .1v.2-.1h.1v.1h-.1v.1h.3c0 .1-.2.1-.2.3l-.1-.1-.1-.1-.1-.1c-.1 0-.1-.1-.1-.1v-.1l-.1-.1v.2s0-.1-.1-.1c0 0 0-.1-.1 0 0 0 0 .1.1.1h-.1v.2h-.1c-.1.1 0 .2.1.1v.3c0 .1.1.2.3.3l-.2.2s-.1.1-.2.1l-.1-.1h-.2.2-.1s-.1.1 0 .1v-.1s.1.1.1 0v.1s.1.1.1 0l-.1-.1v-.1s0 .1.1 0v-.1h.2s0-.1.1-.1h.1s0-.1.1-.1c0 .3.3.2.4.4-.1 0-.2-.1-.3-.1s-.2.1-.2.2.1.2.1.3h-.2c-.1 0-.1-.1-.2-.1 0 0-.1 0-.1.1h.1s-.1 0-.1.1c0 0 0 .1.1 0 0 0 0 .1.1 0h.1s0-.1.1 0h.2v-.1c0-.1-.1-.1-.1-.1 0-.1.1-.2.2-.2 0 .1.1.3.3.4.1 0 .2-.1.2-.1v.1h-.1s-.1 0-.1.1h.1s.1.1.1 0c0 0-.1.1 0 .1s0-.1.1-.1v.1h.1v-.1s.1 0 .1-.1c1 .6 1 .6 1 .4 0 .2 0 .2 0 0 0 .2 0 0 0 0zm.7.6c.1 0 .2.1.2.2l-.1.1s.1.1.1.2c-.1 0-.1 0-.2-.1 0 .1 0 .1-.1.1s-.2 0-.2-.1c0 .1.2 0 .1 0h-1.5c0 .1 0 .2-.1.3-.1-.1-.1-.2-.1-.3h-1.3c0 .1.1.1.1 0 0 .1-.1.2-.2.2H20s-.1.1-.2.1c0-.1 0-.1.1-.2-.1 0-.1 0-.1-.1s0-.2.2-.2c-.1 0 0 .2 0 .1v-1.9c-.1 0-.2 0-.3-.1.1-.1.2-.1.3-.1v-1.8c-.1 0-.1.1 0 .1-.1 0-.2-.1-.1-.2l.1-.1s-.1-.1-.1-.2c.1 0 .1 0 .2.1 0-.1 0-.1.1-.1s.2 0 .2.2c0-.1-.1-.1-.1 0 .3.1.8.2 1.1.4.3.2.7.6 1 .9l.1.1c0-.1.1-.1.3-.1-.2.3-.3.3-.3.3.4.7.8 1.4.9 2.3V20zm-1.3-2.3c-.2-.3-.6-.6-.9-.8-.2-.2-.6-.3-.9-.4v.2c-.1 0-.1 0-.1-.1v1.2c.1 0 .1 0 .1.1v.1c.1 0 .1 0 .2.1-.1.1-.1.1-.2.1.1 0 .1.1 0 .1l-.1.1V20s.1-.1.2-.1c0 .1 0 .1-.1.2h1c0-.1 0-.1.1-.1h.1c0-.1 0-.1.1-.2.1.1.1.1.1.2 0-.1.1-.1.1 0l.1.1H23s-.1-.1-.1-.2h.1c-.1-.7-.3-1.2-.7-1.8h-.1s-.1-.1 0-.1c0 0-.1.1-.2 0 0-.1 0-.1.1-.2v-.1zm4.2 2.7v.4c0 1-.2 2.1-.6 3-.3.9-.9 1.8-1.5 2.4-.3.3-.7.7-1 .9-.1.1-.4.2-2-.2-.2 0-.3-.1-.6-.1 0-.2 0-.3.1-.4.1-.2.1-.3.2-.4.1 0 .1-.1.2-.1.6-.2 1-.7 1.5-1.2.4-.6.8-1.1 1-1.8.2-.7.3-1.3.3-2h-4.5v5c.3 0 1 .1 1 .1-.1.2-.2.4-.2.8-.6-.1-1-.3-1.6-.6.4-.2.6-.2.8-.2v-4.9h-4.7c0-.2-.1-.6-.2-.7-.2-.3-.3-.4-.3-.9 0-.2-.1-.6-.3-.8-.1-.1-.7-.8-.8-.9.3-.9.9-1.8 1.5-2.4.4-.4.9-.9 1.5-1.2-.2-.2-.6-.4-.6-.9 0-.2.1-.4.2-.6-.3-.9-.8-2-1.2-2.6l.9-.4c-.2.3-.2.8-.2 1 .2-.2.4-.4.6-.7 0 .3.2.8.3 1-.2 0-.4-.1-.8 0 .1.2.6.6 1.1.3.3-.1.7-.2.7-.6 0-.1-.1-.3-.3-.3s-.2.3-.1.4c-.2-.1-.6-.9-.1-1 .3-.1.7.3.8.7 0-.2.2-.7.6-.7.4 0 .3.8.1 1 0-.2-.2-.4-.3-.4s-.2.1-.2.3c0 .2.3.4.8.4.3 0 1.1-.1 1.1-.9-.2 0-.7.2-.8.4V9.4c.2.3.6.6.8.6-.1-.3-.3-.7-.7-.9h1.7c-.3.2-.6.6-.7.9.2 0 .6-.2.8-.4v1.2c-.2-.2-.6-.4-.8-.4.1.8.8.9 1.1.9.4 0 .8-.1.8-.4 0-.2-.1-.3-.2-.3s-.2.1-.3.4c0-.2-.2-1.1.2-1.1.3 0 .4.3.6.8.1-.3.4-.8.8-.7.3.1.1.9-.1 1 .1-.1 0-.4-.1-.4-.2 0-.3.1-.3.3 0 .2.3.4.7.6.6.1 1-.2 1.1-.4-.2-.1-.4-.1-.8.1.1-.2.3-.8.3-1 .1.3.2.6.6.7 0-.2 0-.7-.2-1l.9.4c-.4.4-1 1.6-1.2 2.6.2.1.3.3.3.7 0 .4-.2.7-.6.9.6.3 1 .8 1.5 1.2.3.3.6.8.9 1.2 0 0-.1.1-.1.2-.1.1-.2.2-.2.3-.1.1-.1.2-.1.3 0 .1 0 .2.1.4l1 2c-.6 0-.4.2-.2.3zm-7-5c-.6 0-1.2.1-1.8.4-.6.2-1.1.7-1.5 1.2-.4.6-.8 1.1-1 1.8-.2.7-.3 1.3-.3 2.1h4.6v-5.5zm.1-2.2c1.6 0 2.6.4 3.2.9.3-.2.6-.4.6-.7 0-.9-2.5-1-3.7-1-1.2 0-3.7.1-3.7 1 0 .2.1.4.6.7.5-.4 1.5-.9 3-.9zm4.7 7.7c0-.7-.1-1.4-.3-2.1-.2-.7-.6-1.2-1-1.8-.4-.6-.9-.9-1.5-1.2-.6-.2-1.1-.4-1.7-.4v5.5h4.5zm11 11.1c0-.1-.1-.1-.1-.1-1.5.4-3.2-.8-4.9-1.9-1.5-1-2.8-1.9-4-1.9-.4 0-.8.1-1.1.2-.4.2-.7.6-.9 1.1-.2.4-.4.8-.6 1.1-.2.3-.3.6-.3.8 0 .2.1.4.3.7.1.2.4.3.8.6.1 0 .1.1.2.1.3.1.4.2.4.4-.6.2-1.3.4-2.1.6-.9.1-2 .2-3.1.2s-2.1-.1-3.1-.2c-.9-.1-1.6-.3-2.1-.6 0-.2.2-.3.6-.4.1 0 .1-.1.2-.1.3-.1.6-.3.8-.4.2-.2.3-.3.3-.6s-.1-.6-.3-.8c-.1-.2-.3-.6-.6-1.1-.2-.4-.6-.9-.9-1.1-.3-.2-.7-.2-1.1-.2-1.2 0-2.6.9-4 1.9-1.8 1.1-3.6 2.3-4.9 1.9-.1 0-.1 0-.1.1s0 .1.1.1c.4.2.8.4 1.2.8.6.4 1 .8 1.6.8.6 0 1.1-.1 1.8-.6.6-.3 1.2-.7 1.8-1.1 1.1-.8 2.3-1.6 3.5-1.7l-.3.3c-.3.3-.7.6-.7 1.1 0 .4.1.7.3 1.1.1.1.1.2.2.4s.2.4.2.8c0 .1.1.3.1.4.1.2.2.8 1 1.2 1 .4 2.6.8 4.9.8 2.2 0 3.9-.2 4.9-.8.8-.4 1-.9 1-1.2 0-.2.1-.3.1-.4.1-.3.1-.6.2-.8.1-.2.2-.3.2-.6.2-.3.3-.6.3-.9 0-.6-.3-.8-.7-1.1l-.3-.3c1.1.1 2.3.9 3.5 1.7.6.4 1.2.8 1.8 1.1.7.3 1.2.6 1.8.6.6 0 1-.3 1.6-.8.3-.3.8-.6 1.2-.8-.9-.2-.7-.3-.7-.4zm-14.6-1.4c.4 0 .7.3.7.7 0 .3-.2.6-.3.8-.1-.2-.1-.3-.2-.3-.2 0-.1 1.1-.8 1.1v.2c0 .2-.2.4-.4.4s-.5-.3-.5-.5v-.2c-.7 0-.6-1.1-.8-1.1-.1 0-.2.1-.2.3-.1-.2-.3-.4-.3-.8 0-.3.2-.7.7-.7h.2V29c.7.1 1.2.2 1.8.2v1.2c0 .2 0 .2.1.2zm-1.1 2.6c.1 0 .2-.1.2-.2s-.1-.2-.2-.2-.2.1-.2.2.1.2.2.2zm1.5-1.5c.1-.1.1-.3.1-.4 0-.2-.1-.4-.4-.4-.6 0-.4.8-.7.8-.1 0-.2-.1-.2-.2 0-.2.3-.4.3-.8s-.3-.6-.6-.8c-.3.2-.6.6-.6.8 0 .3.3.6.3.8 0 .1-.1.2-.2.2-.2 0-.1-.8-.7-.8-.3 0-.4.3-.4.4 0 .1 0 .2.1.4l.2-.2c.4 0 .2 1.1.8 1.1.2 0 .3-.1.3-.3 0-.1-.1-.2-.1-.3 0-.1.1-.2.2-.2s.2 0 .2.2c0 .1-.1.2-.1.3s.1.3.3.3c.4 0 .3-1.1.8-1.1.3 0 .3.1.4.2zm.3-4.1c.7.1 1.5.3 1.9.2l-.1.1c-.2.2-.4.3-.7.6-.7.4-1.3.7-1.8.7-.6 0-1.3-.1-2.1-.3-.7-.2-1.3-.4-1.8-.7-.2.2-.6.2-.9.1-.3-.1-.6-.6-.6-.8v-.1l-.7-.7c-.7-.7-1.1-1.6-1.5-2.4-.1-.4-.3-.9-.3-1.3.6.2.8 0 1-.2.1 0 .1.2.1.2.7 0 1-.4 1.1-.8.1.4.1.8.3 1.1.2.7.6 1.2 1 1.8.1.2.3.3.4.4.1 0 .2-.1.3-.1.2 0 .4.1.7.3.2.2.2.4.2.7 1.3.4 2.5.8 3.5 1.2zM17.4 26c.1 0 .1.1.2.1 0-.1-.1-.2-.2-.4-.1-.1-.3-.2-.6-.2-.4 0-.8.4-1 .6-.1 0-.2 0-.3-.1 0 .1.1.2.1.3-.2.3-.3.7-.3.9 0 .1.2.4.4.7.2.1.3.1.6 0-.1-.1-.2-.1-.3-.2-.1 0-.2-.1-.2-.2v-.1c0-.1 0-.2.1-.3v-.3h.1c.1.1.3.1.4.1 0 0 .1 0 .1-.1.1-.1 0-.3-.2-.4l-.1-.4.1-.1c.1-.1.1-.2.2-.2.5.1.6.1.9.3zm.7 1.9c.2 0 .4-.2.4-.4s-.2-.4-.4-.4-.4.2-.4.4c-.1.3.2.4.4.4zm1.9.7c.2 0 .4-.2.4-.4s-.2-.4-.4-.4-.4.2-.4.4c0 .1.2.4.4.4zM20 5c-.2-.2-.4-.4-.4-.8.2 0 .6.2.8.4V3.5c-.3.3-.5.5-.9.5 0-.2.2-.6.4-.8h-1.1c.2.3.4.6.4.8-.2 0-.6-.2-.8-.4v1.1c.2-.2.4-.4.8-.4 0 .3-.2.6-.4.8H20zm-1.6 1.4c.1.4.6.8 1 .8s.9-.3 1-.8h-2zm1.2-.4h.8c-.1-.4-.4-.8-.8-.8V6zm-.4 0v-.8c-.4.1-.8.4-.8.8h.8zm.8 1.5c-.1 0-.2.1-.3.1V9h.3V7.5zm-1.1 1.6h.3V7.7c-.1 0-.2-.1-.3-.1v1.5zm1.2-1.8c0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3s-.3.1-.3.3zm1-.1c.2 0 .3-.1.3-.3 0-.1-.1-.2-.3-.2s-.3.1-.3.3c0 .1.2.2.3.2zM22 7c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.1.3.3.3zm2.2.8c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.2.3.3.3zm-.5-.6c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2 0 .3.3.3zm-.9-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.1.2.3.3.3zm1.8 2.4c-.2 0-.3.1-.3.3 0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3zm.1-.7c-.2 0-.3.1-.3.3 0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3zm-.4-.5c0 .2.1.3.3.3s.4-.1.4-.3c0-.2-.1-.3-.3-.3s-.4.1-.4.3zm-5.9-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 0 .2.3.3.3zm-.8-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c.1.2.2.3.3.3zm-.7-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2.1.3.3.3zm-2.3.8c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.1.3.3.3zm.6-.6c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2.2.3.3.3zm.9-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.1.1.3.3.3zm-1.5 2.8c0-.2-.1-.3-.3-.3s-.3 0-.3.3c0 .2.1.3.3.3.1 0 .3-.1.3-.3zm-.2-.8c0-.2-.1-.3-.3-.3-.2 0-.3.1-.3.3 0 .2.1.3.3.3.2 0 .3-.2.3-.3zm-.2-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.4.1-.4.3c0 .1.3.3.4.3zm7.7.3c-.1.1-.4.4-.4.8 0 .2.2.6.3.8.1-.3.4-.4.4-.8 0-.3-.2-.5-.3-.8zm-4.9 0c-.2.3-.3.6-.3.9 0 .3.3.4.4.8.1-.3.3-.6.3-.8 0-.5-.3-.8-.4-.9z\"\n ></path>\n </svg>\n </a>\n\n @if (headerLinks.serviceLink) {\n <a [routerLink]=\"headerLinks.serviceLink\" class=\"moj-header__link moj-header__link--organisation-name\">\n <ng-content select=\"[organisationName]\"></ng-content>\n </a>\n\n <a [routerLink]=\"headerLinks.serviceLink\" class=\"moj-header__link moj-header__link--service-name\">\n <ng-content select=\"[serviceName]\"></ng-content>\n </a>\n } @else {\n <span class=\"moj-header__link--organisation-name\">\n <ng-content select=\"[organisationName]\"></ng-content>\n </span>\n\n <span class=\"moj-header__link--service-name\">\n <ng-content select=\"[serviceName]\"></ng-content>\n </span>\n }\n </div>\n <div class=\"moj-header__content\">\n <nav class=\"moj-header__navigation\" aria-label=\"Account navigation\">\n <!--PO-322\n For accessibility we need to add a role to prevent any accessibility issues\n-->\n <ul class=\"moj-header__navigation-list\" role=\"list\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n </div>\n</header>\n" }]
221
+ }] });
222
+
223
+ class MojPageHeaderComponent {
224
+ title;
225
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
226
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojPageHeaderComponent, isStandalone: true, selector: "opal-lib-moj-page-header", inputs: { title: "title" }, ngImport: i0, template: "<div class=\"moj-page-header-actions\">\n <div class=\"moj-page-header-actions__title\">\n <h1 class=\"govuk-heading-xl\">{{ title }}</h1>\n </div>\n <div class=\"moj-page-header-actions__actions\">\n <div class=\"moj-button-menu\">\n <div class=\"moj-button-menu__wrapper\">\n <ng-content select=\"[buttons]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".moj-page-header-actions__actions{float:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
227
+ }
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPageHeaderComponent, decorators: [{
229
+ type: Component,
230
+ args: [{ selector: 'opal-lib-moj-page-header', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"moj-page-header-actions\">\n <div class=\"moj-page-header-actions__title\">\n <h1 class=\"govuk-heading-xl\">{{ title }}</h1>\n </div>\n <div class=\"moj-page-header-actions__actions\">\n <div class=\"moj-button-menu\">\n <div class=\"moj-button-menu__wrapper\">\n <ng-content select=\"[buttons]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".moj-page-header-actions__actions{float:right}\n"] }]
231
+ }], propDecorators: { title: [{
232
+ type: Input,
233
+ args: [{ required: true }]
234
+ }] } });
235
+
236
+ class MojPaginationItemComponent {
237
+ class = 'moj-pagination__item';
238
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPaginationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
239
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojPaginationItemComponent, isStandalone: true, selector: "opal-lib-moj-pagination-item , [opal-lib-moj-pagination-item]", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<ng-content></ng-content>\n" });
240
+ }
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPaginationItemComponent, decorators: [{
242
+ type: Component,
243
+ args: [{ selector: 'opal-lib-moj-pagination-item , [opal-lib-moj-pagination-item]', imports: [], template: "<ng-content></ng-content>\n" }]
244
+ }], propDecorators: { class: [{
245
+ type: HostBinding,
246
+ args: ['class']
247
+ }] } });
248
+
249
+ class MojPaginationLinkComponent {
250
+ page = 1;
251
+ currentPage = 1;
252
+ totalPages = 1;
253
+ changePage = new EventEmitter();
254
+ /**
255
+ * Checks if the given page number is not the current page.
256
+ *
257
+ * @param page - The page number to check.
258
+ * @returns A boolean indicating whether the given page is not the current page.
259
+ */
260
+ pageIsNotCurrentPage(page) {
261
+ return page !== this.currentPage;
262
+ }
263
+ /**
264
+ * Checks if the given page number is not negative.
265
+ *
266
+ * @param page - The page number to check.
267
+ * @returns `true` if the page number is greater than 0, otherwise `false`.
268
+ */
269
+ pageIsNotNegative(page) {
270
+ return page > 0;
271
+ }
272
+ /**
273
+ * Checks if the given page number is not greater than the total number of pages.
274
+ *
275
+ * @param page - The page number to check.
276
+ * @returns `true` if the page number is less than or equal to the total number of pages, otherwise `false`.
277
+ */
278
+ pageIsNotGreaterThanTotalPages(page) {
279
+ return page <= this.totalPages;
280
+ }
281
+ /**
282
+ * Handles the page change event.
283
+ *
284
+ * @param event - The mouse event that triggered the page change.
285
+ * @param page - The page number to change to.
286
+ *
287
+ * Prevents the default action of the event and checks if the page number is valid.
288
+ * A valid page number is one that is not the current page, is greater than 0,
289
+ * and is less than or equal to the total number of pages.
290
+ * If the page number is valid, emits the changePage event with the new page number.
291
+ */
292
+ changePageEvent(event, page) {
293
+ event.preventDefault();
294
+ if (this.pageIsNotCurrentPage(page) && this.pageIsNotNegative(page) && this.pageIsNotGreaterThanTotalPages(page)) {
295
+ this.changePage.emit(page);
296
+ }
297
+ }
298
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPaginationLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
299
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojPaginationLinkComponent, isStandalone: true, selector: "opal-lib-moj-pagination-link", inputs: { page: "page", currentPage: "currentPage", totalPages: "totalPages", changePage: "changePage" }, ngImport: i0, template: "<a class=\"moj-pagination__link\" href=\"#\" (click)=\"changePageEvent($event, +page)\"> <ng-content></ng-content></a>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
300
+ }
301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPaginationLinkComponent, decorators: [{
302
+ type: Component,
303
+ args: [{ selector: 'opal-lib-moj-pagination-link', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a class=\"moj-pagination__link\" href=\"#\" (click)=\"changePageEvent($event, +page)\"> <ng-content></ng-content></a>\n" }]
304
+ }], propDecorators: { page: [{
305
+ type: Input,
306
+ args: [{ required: true }]
307
+ }], currentPage: [{
308
+ type: Input,
309
+ args: [{ required: true }]
310
+ }], totalPages: [{
311
+ type: Input,
312
+ args: [{ required: true }]
313
+ }], changePage: [{
314
+ type: Input
315
+ }] } });
316
+
317
+ class MojPaginationListComponent {
318
+ class = 'moj-pagination__list';
319
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPaginationListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
320
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojPaginationListComponent, isStandalone: true, selector: "opal-lib-moj-pagination-list , [opal-lib-moj-pagination-list]", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<ng-content></ng-content>\n" });
321
+ }
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPaginationListComponent, decorators: [{
323
+ type: Component,
324
+ args: [{ selector: 'opal-lib-moj-pagination-list , [opal-lib-moj-pagination-list]', imports: [], template: "<ng-content></ng-content>\n" }]
325
+ }], propDecorators: { class: [{
326
+ type: HostBinding,
327
+ args: ['class']
328
+ }] } });
329
+
330
+ class MojPaginationComponent {
331
+ currentPage = 1;
332
+ total = 0;
333
+ maxPagesToShow = 5;
334
+ limit = 100;
335
+ ariaLabel = 'Pagination navigation';
336
+ changePage = new EventEmitter();
337
+ pages = signal([]);
338
+ totalPages = signal(0);
339
+ startItem = signal(0);
340
+ endItem = signal(0);
341
+ totalItems = signal(0);
342
+ /**
343
+ * Updates the pagination signals based on the current state.
344
+ *
345
+ * This method recalculates and sets the following signals:
346
+ * - `totalPages`: The total number of pages based on the total items and items per page limit.
347
+ * - `startItem`: The index of the first item on the current page.
348
+ * - `endItem`: The index of the last item on the current page.
349
+ * - `pages`: The array of page numbers to be displayed.
350
+ * - `totalItems`: The total number of items.
351
+ *
352
+ * @private
353
+ */
354
+ setSignals() {
355
+ this.totalPages.set(this.getTotalPages(this.total, this.limit));
356
+ this.startItem.set(this.getStartItem(this.currentPage, this.limit));
357
+ this.endItem.set(this.getEndItem(this.currentPage, this.limit, this.total));
358
+ this.setPages();
359
+ this.setTotalItems();
360
+ }
361
+ /**
362
+ * Calculates the total number of pages based on the total number of items and the limit of items per page.
363
+ *
364
+ * @param total - The total number of items.
365
+ * @param limit - The number of items per page.
366
+ * @returns The total number of pages.
367
+ */
368
+ getTotalPages(total, limit) {
369
+ return Math.ceil(total / limit);
370
+ }
371
+ /**
372
+ * Sets the pagination pages based on the current page and total pages.
373
+ * This method updates the `pages` property with the result of the `getPages` method.
374
+ *
375
+ * @private
376
+ */
377
+ setPages() {
378
+ this.pages.set(this.getPages(this.currentPage, this.totalPages()));
379
+ }
380
+ /**
381
+ * Calculates the starting item index for pagination.
382
+ *
383
+ * @param currentPage - The current page number.
384
+ * @param limit - The number of items per page.
385
+ * @returns The starting item index for the given page.
386
+ */
387
+ getStartItem(currentPage, limit) {
388
+ return (currentPage - 1) * limit + 1;
389
+ }
390
+ /**
391
+ * Calculates the end item index for pagination.
392
+ *
393
+ * @param currentPage - The current page number.
394
+ * @param limit - The number of items per page.
395
+ * @param total - The total number of items.
396
+ * @returns The index of the last item on the current page, or the total number of items if the end of the list is reached.
397
+ */
398
+ getEndItem(currentPage, limit, total) {
399
+ return Math.min(currentPage * limit, total);
400
+ }
401
+ /**
402
+ * Updates the total number of items by setting the value of `totalItems` to the current `total`.
403
+ *
404
+ * @private
405
+ */
406
+ setTotalItems() {
407
+ this.totalItems.set(this.total);
408
+ }
409
+ /**
410
+ * Generates an array of page numbers and ellipses for pagination display.
411
+ *
412
+ * @param currentPage - The current active page number.
413
+ * @param totalPages - The total number of pages available.
414
+ * @returns An array of page numbers and ellipses representing the pagination.
415
+ *
416
+ * The function ensures that the pagination display shows a maximum of 5 pages at a time.
417
+ * It calculates the range of pages to display based on the current page and total pages.
418
+ * If the start page is greater than 1, it adds an ellipsis and the first page at the beginning.
419
+ * If the end page is less than the total pages, it adds an ellipsis and the last page at the end.
420
+ */
421
+ getPages(currentPage, totalPages) {
422
+ const halfPagesToShow = Math.floor(this.maxPagesToShow / 2);
423
+ const eclipses = '...';
424
+ const startPage = this.calculateStartPage(currentPage, totalPages, halfPagesToShow);
425
+ const endPage = this.calculateEndPage(currentPage, totalPages, halfPagesToShow);
426
+ const pages = this.generatePageNumbers(startPage, endPage);
427
+ if (startPage > 1) {
428
+ pages.unshift(eclipses);
429
+ pages.unshift(1);
430
+ }
431
+ if (endPage < totalPages) {
432
+ pages.push(eclipses);
433
+ pages.push(totalPages);
434
+ }
435
+ return pages;
436
+ }
437
+ /**
438
+ * Calculates the start page for pagination based on the current page, total pages, and the number of pages to show on either side of the current page.
439
+ *
440
+ * @param currentPage - The current active page number.
441
+ * @param totalPages - The total number of pages available.
442
+ * @param halfPagesToShow - The number of pages to show on either side of the current page.
443
+ * @returns The start page number for pagination.
444
+ */
445
+ calculateStartPage(currentPage, totalPages, halfPagesToShow) {
446
+ let startPage = Math.max(1, currentPage - halfPagesToShow);
447
+ if (currentPage - halfPagesToShow <= 0) {
448
+ startPage = 1;
449
+ }
450
+ else if (currentPage + halfPagesToShow > totalPages) {
451
+ startPage = Math.max(1, startPage - (currentPage + halfPagesToShow - totalPages));
452
+ }
453
+ return startPage;
454
+ }
455
+ /**
456
+ * Calculates the end page number for pagination based on the current page, total pages, and the number of pages to show.
457
+ *
458
+ * @param currentPage - The current page number.
459
+ * @param totalPages - The total number of pages.
460
+ * @param halfPagesToShow - Half the number of pages to show around the current page.
461
+ * @returns The calculated end page number.
462
+ */
463
+ calculateEndPage(currentPage, totalPages, halfPagesToShow) {
464
+ let endPage = Math.min(totalPages, currentPage + halfPagesToShow);
465
+ if (currentPage - halfPagesToShow <= 0) {
466
+ endPage = Math.min(totalPages, endPage + (halfPagesToShow - currentPage + 1));
467
+ }
468
+ else if (currentPage + halfPagesToShow > totalPages) {
469
+ endPage = totalPages;
470
+ }
471
+ return endPage;
472
+ }
473
+ /**
474
+ * Generates an array of page numbers from the startPage to the endPage.
475
+ *
476
+ * @param startPage - The starting page number.
477
+ * @param endPage - The ending page number.
478
+ * @returns An array of page numbers from startPage to endPage.
479
+ */
480
+ generatePageNumbers(startPage, endPage) {
481
+ const pages = [];
482
+ for (let i = startPage; i <= endPage; i++) {
483
+ pages.push(i);
484
+ }
485
+ return pages;
486
+ }
487
+ ngOnChanges() {
488
+ this.setSignals();
489
+ }
490
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
491
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: MojPaginationComponent, isStandalone: true, selector: "opal-lib-moj-pagination,", inputs: { currentPage: "currentPage", total: "total", maxPagesToShow: "maxPagesToShow", limit: "limit", ariaLabel: "ariaLabel" }, outputs: { changePage: "changePage" }, usesOnChanges: true, ngImport: i0, template: "<nav class=\"moj-pagination moj-pagination-alignment\" [attr.aria-label]=\"ariaLabel\">\n <ul opal-lib-moj-pagination-list>\n <li opal-lib-moj-pagination-item class=\"moj-pagination__item moj-pagination__item--prev\">\n @if (currentPage > 1) {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"currentPage - 1\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >Previous<span class=\"govuk-visually-hidden\"> page </span></opal-lib-moj-pagination-link\n >\n }\n </li>\n @for (page of pages(); track page) {\n <li\n opal-lib-moj-pagination-item\n [class.moj-pagination__item--active]=\"page === currentPage\"\n [class.moj-pagination__item--dot]=\"page === '...'\"\n >\n @if (page !== currentPage && page !== '...') {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"+page\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >\n {{ page }}\n </opal-lib-moj-pagination-link>\n } @else if (page === '...') {\n <strong>...</strong>\n } @else {\n {{ page }}\n }\n </li>\n }\n\n <li opal-lib-moj-pagination-item class=\"moj-pagination__item moj-pagination__item--next\">\n @if (currentPage < totalPages()) {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"currentPage + 1\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >Next<span class=\"govuk-visually-hidden\"> page</span></opal-lib-moj-pagination-link\n >\n }\n </li>\n </ul>\n <p class=\"moj-pagination__results\">\n Showing <b>{{ startItem() - 1 }}</b> to <b>{{ endItem() }}</b> of <b>{{ totalItems() }}</b> results\n </p>\n</nav>\n", styles: [".moj-pagination-alignment{width:100%;display:grid;grid-template-columns:.5fr .5fr}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: MojPaginationItemComponent, selector: "opal-lib-moj-pagination-item , [opal-lib-moj-pagination-item]" }, { kind: "component", type: MojPaginationListComponent, selector: "opal-lib-moj-pagination-list , [opal-lib-moj-pagination-list]" }, { kind: "component", type: MojPaginationLinkComponent, selector: "opal-lib-moj-pagination-link", inputs: ["page", "currentPage", "totalPages", "changePage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
492
+ }
493
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPaginationComponent, decorators: [{
494
+ type: Component,
495
+ args: [{ selector: 'opal-lib-moj-pagination,', imports: [CommonModule, MojPaginationItemComponent, MojPaginationListComponent, MojPaginationLinkComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"moj-pagination moj-pagination-alignment\" [attr.aria-label]=\"ariaLabel\">\n <ul opal-lib-moj-pagination-list>\n <li opal-lib-moj-pagination-item class=\"moj-pagination__item moj-pagination__item--prev\">\n @if (currentPage > 1) {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"currentPage - 1\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >Previous<span class=\"govuk-visually-hidden\"> page </span></opal-lib-moj-pagination-link\n >\n }\n </li>\n @for (page of pages(); track page) {\n <li\n opal-lib-moj-pagination-item\n [class.moj-pagination__item--active]=\"page === currentPage\"\n [class.moj-pagination__item--dot]=\"page === '...'\"\n >\n @if (page !== currentPage && page !== '...') {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"+page\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >\n {{ page }}\n </opal-lib-moj-pagination-link>\n } @else if (page === '...') {\n <strong>...</strong>\n } @else {\n {{ page }}\n }\n </li>\n }\n\n <li opal-lib-moj-pagination-item class=\"moj-pagination__item moj-pagination__item--next\">\n @if (currentPage < totalPages()) {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"currentPage + 1\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >Next<span class=\"govuk-visually-hidden\"> page</span></opal-lib-moj-pagination-link\n >\n }\n </li>\n </ul>\n <p class=\"moj-pagination__results\">\n Showing <b>{{ startItem() - 1 }}</b> to <b>{{ endItem() }}</b> of <b>{{ totalItems() }}</b> results\n </p>\n</nav>\n", styles: [".moj-pagination-alignment{width:100%;display:grid;grid-template-columns:.5fr .5fr}\n"] }]
496
+ }], propDecorators: { currentPage: [{
497
+ type: Input
498
+ }], total: [{
499
+ type: Input
500
+ }], maxPagesToShow: [{
501
+ type: Input
502
+ }], limit: [{
503
+ type: Input
504
+ }], ariaLabel: [{
505
+ type: Input
506
+ }], changePage: [{
507
+ type: Output
508
+ }] } });
509
+
510
+ class MojPrimaryNavigationItemComponent {
511
+ router = inject(Router);
512
+ route = inject(ActivatedRoute);
513
+ primaryNavigationItemId;
514
+ primaryNavigationItemFragment;
515
+ primaryNavigationItemText;
516
+ activeItemFragment;
517
+ isLastItem = false;
518
+ /**
519
+ * Handles the click event of a sub-navigation item.
520
+ * @param event - The click event.
521
+ * @param item - The item string.
522
+ */
523
+ handleItemClick(event, item) {
524
+ event.preventDefault();
525
+ // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.
526
+ this.router.navigate(['./'], { relativeTo: this.route, fragment: item });
527
+ }
528
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPrimaryNavigationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
529
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojPrimaryNavigationItemComponent, isStandalone: true, selector: "opal-lib-moj-primary-navigation-item, [opal-lib-moj-primary-navigation-item]", inputs: { primaryNavigationItemId: "primaryNavigationItemId", primaryNavigationItemFragment: "primaryNavigationItemFragment", primaryNavigationItemText: "primaryNavigationItemText", activeItemFragment: "activeItemFragment", isLastItem: "isLastItem" }, ngImport: i0, template: "<li class=\"moj-primary-navigation__item\" [class.last-item]=\"isLastItem\" [id]=\"primaryNavigationItemId\">\n <a\n href=\"\"\n class=\"moj-primary-navigation__link cursor-pointer\"\n [attr.aria-current]=\"primaryNavigationItemFragment === activeItemFragment ? 'page' : null\"\n (click)=\"handleItemClick($event, primaryNavigationItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, primaryNavigationItemFragment)\"\n >{{ primaryNavigationItemText }}</a\n >\n</li>\n", styles: [".moj-primary-navigation__item.last-item{margin-right:initial!important}.moj-primary-navigation__item{margin-right:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
530
+ }
531
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPrimaryNavigationItemComponent, decorators: [{
532
+ type: Component,
533
+ args: [{ selector: 'opal-lib-moj-primary-navigation-item, [opal-lib-moj-primary-navigation-item]', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<li class=\"moj-primary-navigation__item\" [class.last-item]=\"isLastItem\" [id]=\"primaryNavigationItemId\">\n <a\n href=\"\"\n class=\"moj-primary-navigation__link cursor-pointer\"\n [attr.aria-current]=\"primaryNavigationItemFragment === activeItemFragment ? 'page' : null\"\n (click)=\"handleItemClick($event, primaryNavigationItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, primaryNavigationItemFragment)\"\n >{{ primaryNavigationItemText }}</a\n >\n</li>\n", styles: [".moj-primary-navigation__item.last-item{margin-right:initial!important}.moj-primary-navigation__item{margin-right:20px}\n"] }]
534
+ }], propDecorators: { primaryNavigationItemId: [{
535
+ type: Input,
536
+ args: [{ required: true }]
537
+ }], primaryNavigationItemFragment: [{
538
+ type: Input,
539
+ args: [{ required: true }]
540
+ }], primaryNavigationItemText: [{
541
+ type: Input,
542
+ args: [{ required: true }]
543
+ }], activeItemFragment: [{
544
+ type: Input,
545
+ args: [{ required: true }]
546
+ }], isLastItem: [{
547
+ type: Input,
548
+ args: [{ required: false }]
549
+ }] } });
550
+
551
+ class MojPrimaryNavigationComponent {
552
+ router = inject(Router);
553
+ route = inject(ActivatedRoute);
554
+ ngUnsubscribe = new Subject();
555
+ primaryNavigationId;
556
+ activeItemFragment = new EventEmitter();
557
+ /**
558
+ * Sets up the listeners for the route fragment changes.
559
+ * Emits the active navigation item when a fragment is present in the route.
560
+ */
561
+ setupListeners() {
562
+ // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.
563
+ this.route.fragment.pipe(takeUntil(this.ngUnsubscribe)).subscribe((fragment) => {
564
+ if (fragment) {
565
+ this.activeItemFragment.emit(fragment);
566
+ }
567
+ });
568
+ }
569
+ /**
570
+ * Initializes the component.
571
+ * This method is called after the component has been created and initialized.
572
+ */
573
+ ngOnInit() {
574
+ this.setupListeners();
575
+ }
576
+ /**
577
+ * Lifecycle hook that is called when the component is about to be destroyed.
578
+ * Unsubscribes from the route fragment subscription.
579
+ */
580
+ ngOnDestroy() {
581
+ this.ngUnsubscribe.next();
582
+ this.ngUnsubscribe.complete();
583
+ }
584
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPrimaryNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
585
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojPrimaryNavigationComponent, isStandalone: true, selector: "opal-lib-moj-primary-navigation", inputs: { primaryNavigationId: "primaryNavigationId" }, outputs: { activeItemFragment: "activeItemFragment" }, ngImport: i0, template: "<div class=\"moj-primary-navigation\" [id]=\"primaryNavigationId\">\n <div class=\"moj-primary-navigation__container\">\n <div class=\"moj-primary-navigation__nav\">\n <nav class=\"moj-primary-navigation\" aria-label=\"Primary navigation\">\n <ul class=\"moj-primary-navigation__list\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n </div>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
586
+ }
587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojPrimaryNavigationComponent, decorators: [{
588
+ type: Component,
589
+ args: [{ selector: 'opal-lib-moj-primary-navigation', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"moj-primary-navigation\" [id]=\"primaryNavigationId\">\n <div class=\"moj-primary-navigation__container\">\n <div class=\"moj-primary-navigation__nav\">\n <nav class=\"moj-primary-navigation\" aria-label=\"Primary navigation\">\n <ul class=\"moj-primary-navigation__list\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n </div>\n</div>\n" }]
590
+ }], propDecorators: { primaryNavigationId: [{
591
+ type: Input,
592
+ args: [{ required: true }]
593
+ }], activeItemFragment: [{
594
+ type: Output
595
+ }] } });
596
+
597
+ class MojSortableTableHeaderComponent {
598
+ columnKey;
599
+ sortDirection = 'none';
600
+ dataIndex = 0;
601
+ sortChange = new EventEmitter();
602
+ get ariaSort() {
603
+ return this.sortDirection;
604
+ }
605
+ hostScope = 'col';
606
+ get hostClass() {
607
+ return 'govuk-table__header';
608
+ }
609
+ /**
610
+ * Toggles the sort direction between 'ascending' and 'descending' for the table column.
611
+ * Emits a sortChange event with the column key and the new sort direction.
612
+ *
613
+ * @public
614
+ * @returns {void}
615
+ */
616
+ toggleSort() {
617
+ const newDirection = this.sortDirection === 'ascending' ? 'descending' : 'ascending';
618
+ this.sortChange.emit({
619
+ key: this.columnKey,
620
+ sortType: newDirection,
621
+ });
622
+ }
623
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSortableTableHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
624
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojSortableTableHeaderComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-header, [opal-lib-moj-sortable-table-header]", inputs: { columnKey: "columnKey", sortDirection: "sortDirection", dataIndex: "dataIndex" }, outputs: { sortChange: "sortChange" }, host: { properties: { "attr.aria-sort": "this.ariaSort", "scope": "this.hostScope", "class": "this.hostClass" } }, ngImport: i0, template: "<button [attr.data-index]=\"dataIndex\" (click)=\"toggleSort()\" type=\"button\">\n <ng-content></ng-content>\n</button>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
625
+ }
626
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSortableTableHeaderComponent, decorators: [{
627
+ type: Component,
628
+ args: [{ selector: 'opal-lib-moj-sortable-table-header, [opal-lib-moj-sortable-table-header]', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button [attr.data-index]=\"dataIndex\" (click)=\"toggleSort()\" type=\"button\">\n <ng-content></ng-content>\n</button>\n" }]
629
+ }], propDecorators: { columnKey: [{
630
+ type: Input
631
+ }], sortDirection: [{
632
+ type: Input
633
+ }], dataIndex: [{
634
+ type: Input
635
+ }], sortChange: [{
636
+ type: Output
637
+ }], ariaSort: [{
638
+ type: HostBinding,
639
+ args: ['attr.aria-sort']
640
+ }], hostScope: [{
641
+ type: HostBinding,
642
+ args: ['scope']
643
+ }], hostClass: [{
644
+ type: HostBinding,
645
+ args: ['class']
646
+ }] } });
647
+
648
+ class MojSortableTableRowComponent {
649
+ bodyRowClasses = '';
650
+ get hostClass() {
651
+ return `govuk-table__row ${this.bodyRowClasses}`;
652
+ }
653
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSortableTableRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
654
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojSortableTableRowComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-row,[opal-lib-moj-sortable-table-row]", inputs: { bodyRowClasses: "bodyRowClasses" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
655
+ }
656
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSortableTableRowComponent, decorators: [{
657
+ type: Component,
658
+ args: [{ selector: 'opal-lib-moj-sortable-table-row,[opal-lib-moj-sortable-table-row]', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
659
+ }], propDecorators: { bodyRowClasses: [{
660
+ type: Input,
661
+ args: [{ required: false }]
662
+ }], hostClass: [{
663
+ type: HostBinding,
664
+ args: ['class']
665
+ }] } });
666
+
667
+ class MojSortableTableComponent {
668
+ tableClasses;
669
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSortableTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
670
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojSortableTableComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table", inputs: { tableClasses: "tableClasses" }, ngImport: i0, template: "<table class=\"govuk-table {{ tableClasses }}\" data-module=\"moj-sortable-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <ng-content select=\"[head]\"></ng-content>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-content select=\"[row]\"></ng-content>\n <ng-content select=\"[results]\"></ng-content>\n </tbody>\n</table>\n<ng-content select=\"[status]\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
671
+ }
672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSortableTableComponent, decorators: [{
673
+ type: Component,
674
+ args: [{ selector: 'opal-lib-moj-sortable-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"govuk-table {{ tableClasses }}\" data-module=\"moj-sortable-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <ng-content select=\"[head]\"></ng-content>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-content select=\"[row]\"></ng-content>\n <ng-content select=\"[results]\"></ng-content>\n </tbody>\n</table>\n<ng-content select=\"[status]\"></ng-content>\n" }]
675
+ }], propDecorators: { tableClasses: [{
676
+ type: Input,
677
+ args: [{ required: false }]
678
+ }] } });
679
+
680
+ class MojSubNavigationItemComponent {
681
+ router = inject(Router);
682
+ route = inject(ActivatedRoute);
683
+ subNavItemId;
684
+ subNavItemFragment;
685
+ subNavItemText;
686
+ activeSubNavItemFragment;
687
+ /**
688
+ * Handles the click event of a sub-navigation item.
689
+ * @param event - The click event.
690
+ * @param item - The item string.
691
+ */
692
+ handleItemClick(event, item) {
693
+ event.preventDefault();
694
+ // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.
695
+ this.router.navigate(['./'], { relativeTo: this.route, fragment: item });
696
+ }
697
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSubNavigationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
698
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojSubNavigationItemComponent, isStandalone: true, selector: "opal-lib-moj-sub-navigation-item", inputs: { subNavItemId: "subNavItemId", subNavItemFragment: "subNavItemFragment", subNavItemText: "subNavItemText", activeSubNavItemFragment: "activeSubNavItemFragment" }, ngImport: i0, template: "<li class=\"moj-sub-navigation__item\" [id]=\"subNavItemId\">\n <a\n class=\"moj-sub-navigation__link cursor-pointer\"\n [attr.aria-current]=\"subNavItemFragment === activeSubNavItemFragment ? 'page' : ''\"\n (click)=\"handleItemClick($event, subNavItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, subNavItemFragment)\"\n role=\"link\"\n tabindex=\"0\"\n >{{ subNavItemText }}</a\n >\n</li>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
699
+ }
700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSubNavigationItemComponent, decorators: [{
701
+ type: Component,
702
+ args: [{ selector: 'opal-lib-moj-sub-navigation-item', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<li class=\"moj-sub-navigation__item\" [id]=\"subNavItemId\">\n <a\n class=\"moj-sub-navigation__link cursor-pointer\"\n [attr.aria-current]=\"subNavItemFragment === activeSubNavItemFragment ? 'page' : ''\"\n (click)=\"handleItemClick($event, subNavItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, subNavItemFragment)\"\n role=\"link\"\n tabindex=\"0\"\n >{{ subNavItemText }}</a\n >\n</li>\n" }]
703
+ }], propDecorators: { subNavItemId: [{
704
+ type: Input,
705
+ args: [{ required: true }]
706
+ }], subNavItemFragment: [{
707
+ type: Input,
708
+ args: [{ required: true }]
709
+ }], subNavItemText: [{
710
+ type: Input,
711
+ args: [{ required: true }]
712
+ }], activeSubNavItemFragment: [{
713
+ type: Input,
714
+ args: [{ required: true }]
715
+ }] } });
716
+
717
+ class MojSubNavigationComponent {
718
+ route = inject(ActivatedRoute);
719
+ ngUnsubscribe = new Subject();
720
+ subNavId;
721
+ activeSubNavItemFragment = new EventEmitter();
722
+ /**
723
+ * Sets up the listeners for the route fragment changes.
724
+ * Emits the active navigation item when a fragment is present in the route.
725
+ */
726
+ setupListeners() {
727
+ // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.
728
+ this.route.fragment.pipe(takeUntil(this.ngUnsubscribe)).subscribe((fragment) => {
729
+ if (fragment) {
730
+ this.activeSubNavItemFragment.emit(fragment);
731
+ }
732
+ });
733
+ }
734
+ ngOnInit() {
735
+ this.setupListeners();
736
+ }
737
+ /**
738
+ * Lifecycle hook that is called when the component is about to be destroyed.
739
+ * Unsubscribes from the route fragment subscription.
740
+ */
741
+ ngOnDestroy() {
742
+ this.ngUnsubscribe.next();
743
+ this.ngUnsubscribe.complete();
744
+ }
745
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSubNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
746
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojSubNavigationComponent, isStandalone: true, selector: "opal-lib-moj-sub-navigation", inputs: { subNavId: "subNavId" }, outputs: { activeSubNavItemFragment: "activeSubNavItemFragment" }, ngImport: i0, template: "<nav class=\"moj-sub-navigation\" aria-label=\"Sub navigation\" [id]=\"subNavId\">\n <ul class=\"moj-sub-navigation__list\">\n <ng-content></ng-content>\n </ul>\n</nav>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
747
+ }
748
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojSubNavigationComponent, decorators: [{
749
+ type: Component,
750
+ args: [{ selector: 'opal-lib-moj-sub-navigation', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"moj-sub-navigation\" aria-label=\"Sub navigation\" [id]=\"subNavId\">\n <ul class=\"moj-sub-navigation__list\">\n <ng-content></ng-content>\n </ul>\n</nav>\n" }]
751
+ }], propDecorators: { subNavId: [{
752
+ type: Input,
753
+ args: [{ required: true }]
754
+ }], activeSubNavItemFragment: [{
755
+ type: Output
756
+ }] } });
757
+
758
+ class MojTicketPanelComponent {
759
+ componentClasses;
760
+ sectionClasses;
761
+ alert;
762
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojTicketPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
763
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojTicketPanelComponent, isStandalone: true, selector: "opal-lib-moj-ticket-panel", inputs: { componentClasses: "componentClasses", sectionClasses: "sectionClasses", alert: "alert" }, ngImport: i0, template: "<article class=\"moj-ticket-panel {{ componentClasses }}\">\n <section class=\"moj-ticket-panel__content {{ sectionClasses }}\" [attr.role]=\"alert ? 'alert' : ''\">\n <ng-content></ng-content>\n </section>\n</article>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
764
+ }
765
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojTicketPanelComponent, decorators: [{
766
+ type: Component,
767
+ args: [{ selector: 'opal-lib-moj-ticket-panel', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<article class=\"moj-ticket-panel {{ componentClasses }}\">\n <section class=\"moj-ticket-panel__content {{ sectionClasses }}\" [attr.role]=\"alert ? 'alert' : ''\">\n <ng-content></ng-content>\n </section>\n</article>\n" }]
768
+ }], propDecorators: { componentClasses: [{
769
+ type: Input,
770
+ args: [{ required: false }]
771
+ }], sectionClasses: [{
772
+ type: Input,
773
+ args: [{ required: false }]
774
+ }], alert: [{
775
+ type: Input,
776
+ args: [{ required: false }]
777
+ }] } });
778
+
779
+ class MojTimelineItemComponent {
780
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojTimelineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
781
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojTimelineItemComponent, isStandalone: true, selector: "opal-lib-moj-timeline-item", ngImport: i0, template: "<div class=\"moj-timeline__item\">\n <div class=\"moj-timeline__header\">\n <h2 class=\"moj-timeline__title\"><ng-content select=\"[title]\"></ng-content></h2>\n\n <p class=\"moj-timeline__byline\">&nbsp;by <ng-content select=\"[user]\"></ng-content></p>\n </div>\n <p class=\"moj-timeline__date\">\n <time datetime=\"\"><ng-content select=\"[date]\"></ng-content></time>\n </p>\n <div class=\"moj-timeline__description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
782
+ }
783
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojTimelineItemComponent, decorators: [{
784
+ type: Component,
785
+ args: [{ selector: 'opal-lib-moj-timeline-item', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"moj-timeline__item\">\n <div class=\"moj-timeline__header\">\n <h2 class=\"moj-timeline__title\"><ng-content select=\"[title]\"></ng-content></h2>\n\n <p class=\"moj-timeline__byline\">&nbsp;by <ng-content select=\"[user]\"></ng-content></p>\n </div>\n <p class=\"moj-timeline__date\">\n <time datetime=\"\"><ng-content select=\"[date]\"></ng-content></time>\n </p>\n <div class=\"moj-timeline__description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n</div>\n" }]
786
+ }] });
787
+
788
+ class MojTimelineComponent {
789
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
790
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: MojTimelineComponent, isStandalone: true, selector: "opal-lib-moj-timeline", ngImport: i0, template: "<div class=\"moj-timeline\"><ng-content></ng-content></div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
791
+ }
792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MojTimelineComponent, decorators: [{
793
+ type: Component,
794
+ args: [{ selector: 'opal-lib-moj-timeline', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"moj-timeline\"><ng-content></ng-content></div>\n" }]
795
+ }] });
796
+
797
+ // COMPONENTS
798
+
799
+ /**
800
+ * Generated bundle index. Do not edit.
801
+ */
802
+
803
+ export { MOJ_HEADER_LINKS, MojBadgeComponent, MojBannerComponent, MojButtonMenuComponent, MojButtonMenuItemComponent, MojDatePickerComponent, MojHeaderComponent, MojHeaderNavigationItemComponent, MojPageHeaderComponent, MojPaginationComponent, MojPaginationItemComponent, MojPaginationLinkComponent, MojPaginationListComponent, MojPrimaryNavigationComponent, MojPrimaryNavigationItemComponent, MojSortableTableComponent, MojSortableTableHeaderComponent, MojSortableTableRowComponent, MojSubNavigationComponent, MojSubNavigationItemComponent, MojTicketPanelComponent, MojTimelineComponent, MojTimelineItemComponent };
804
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-moj.mjs.map