@hmcts/opal-frontend-common 0.0.20 → 0.0.22

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 (178) hide show
  1. package/components/abstract/abstract-sortable-table/index.d.ts +33 -2
  2. package/components/abstract/abstract-sortable-table-pagination/index.d.ts +16 -1
  3. package/components/abstract/abstract-table-filter/README.md +76 -0
  4. package/components/abstract/abstract-table-filter/index.d.ts +116 -0
  5. package/components/abstract/abstract-table-filter/interfaces/index.d.ts +17 -0
  6. package/components/abstract/abstract-table-filter/types/index.d.ts +3 -0
  7. package/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-label/index.d.ts +9 -0
  8. package/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-value/index.d.ts +9 -0
  9. package/components/custom/custom-account-information/custom-account-information-item/index.d.ts +10 -0
  10. package/components/custom/custom-account-information/index.d.ts +8 -0
  11. package/components/custom/custom-action-links/index.d.ts +12 -0
  12. package/components/custom/custom-page-header/index.d.ts +8 -0
  13. package/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-label/index.d.ts +10 -0
  14. package/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-value/index.d.ts +10 -0
  15. package/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/index.d.ts +20 -0
  16. package/components/custom/custom-summary-metric-bar/index.d.ts +8 -0
  17. package/components/govuk/govuk-list/govuk-list-link/index.d.ts +12 -0
  18. package/components/govuk/govuk-list/index.d.ts +8 -0
  19. package/components/hod/hod-loading-spinner/index.d.ts +11 -0
  20. package/components/moj/moj-button-menu/index.d.ts +16 -10
  21. package/components/moj/moj-button-menu/moj-button-menu-item/index.d.ts +12 -0
  22. package/components/moj/moj-filter/index.d.ts +16 -0
  23. package/components/moj/moj-filter/moj-filter-panel/index.d.ts +8 -0
  24. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-header/README.md +43 -0
  25. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-header/index.d.ts +9 -0
  26. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/README.md +81 -0
  27. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/index.d.ts +18 -0
  28. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/moj-filter-panel-option-form-group-item/README.md +53 -0
  29. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/moj-filter-panel-option-form-group-item/index.d.ts +30 -0
  30. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/moj-filter-panel-option-form-group-keyword/README.md +59 -0
  31. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-option/moj-filter-panel-option-form-group-keyword/index.d.ts +22 -0
  32. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-selected/README.md +55 -0
  33. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-selected/index.d.ts +21 -0
  34. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-selected/moj-filter-panel-selected-tag/README.md +52 -0
  35. package/components/moj/moj-filter/moj-filter-panel/moj-filter-panel-selected/moj-filter-panel-selected-tag/index.d.ts +24 -0
  36. package/directives/govuk-button/index.d.ts +21 -0
  37. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs.map +1 -1
  38. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs.map +1 -1
  39. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-parent-base.mjs.map +1 -1
  40. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs.map +1 -1
  41. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs.map +1 -1
  42. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-parent-base.mjs.map +1 -1
  43. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs +23 -7
  44. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs.map +1 -1
  45. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs +69 -9
  46. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs.map +1 -1
  47. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-tab-data.mjs.map +1 -1
  48. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter-interfaces.mjs +4 -0
  49. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter-interfaces.mjs.map +1 -0
  50. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter-types.mjs +4 -0
  51. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter-types.mjs.map +1 -0
  52. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs +184 -0
  53. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs.map +1 -0
  54. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs.map +1 -1
  55. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs +22 -0
  56. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs.map +1 -0
  57. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs +22 -0
  58. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs.map +1 -0
  59. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs +28 -0
  60. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs.map +1 -0
  61. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs +18 -0
  62. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs.map +1 -0
  63. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-action-links.mjs +38 -0
  64. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-action-links.mjs.map +1 -0
  65. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-page-header.mjs +18 -0
  66. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-page-header.mjs.map +1 -0
  67. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs +28 -0
  68. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs.map +1 -0
  69. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs +28 -0
  70. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs.map +1 -0
  71. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs +43 -0
  72. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs.map +1 -0
  73. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs +18 -0
  74. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs.map +1 -0
  75. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs.map +1 -1
  76. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs.map +1 -1
  77. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-button.mjs.map +1 -1
  78. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs.map +1 -1
  79. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs.map +1 -1
  80. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs.map +1 -1
  81. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-error-summary.mjs.map +1 -1
  82. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header.mjs.map +1 -1
  83. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list-govuk-list-link.mjs +31 -0
  84. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list-govuk-list-link.mjs.map +1 -0
  85. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list.mjs +18 -0
  86. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list.mjs.map +1 -0
  87. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs.map +1 -1
  88. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs.map +1 -1
  89. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs.map +1 -1
  90. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-card-list.mjs.map +1 -1
  91. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs.map +1 -1
  92. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-table.mjs.map +1 -1
  93. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.mjs.map +1 -1
  94. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs.map +1 -1
  95. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs.map +1 -1
  96. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs.map +1 -1
  97. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs.map +1 -1
  98. package/fesm2022/hmcts-opal-frontend-common-components-govuk-helpers.mjs.map +1 -1
  99. package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs +30 -0
  100. package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs.map +1 -0
  101. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-alert.mjs.map +1 -1
  102. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu-moj-button-menu-item.mjs +29 -0
  103. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu-moj-button-menu-item.mjs.map +1 -0
  104. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs +40 -22
  105. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs.map +1 -1
  106. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs.map +1 -1
  107. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-header.mjs +22 -0
  108. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-header.mjs.map +1 -0
  109. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-item.mjs +44 -0
  110. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-item.mjs.map +1 -0
  111. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-keyword.mjs +48 -0
  112. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-keyword.mjs.map +1 -0
  113. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option.mjs +34 -0
  114. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option.mjs.map +1 -0
  115. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected-moj-filter-panel-selected-tag.mjs +41 -0
  116. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected-moj-filter-panel-selected-tag.mjs.map +1 -0
  117. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected.mjs +43 -0
  118. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected.mjs.map +1 -0
  119. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel.mjs +18 -0
  120. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel.mjs.map +1 -0
  121. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs +31 -0
  122. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs.map +1 -0
  123. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header.mjs.map +1 -1
  124. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs.map +1 -1
  125. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-primary-navigation.mjs.map +1 -1
  126. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sortable-table.mjs.map +1 -1
  127. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sub-navigation.mjs.map +1 -1
  128. package/fesm2022/hmcts-opal-frontend-common-directives-capitalisation.mjs.map +1 -1
  129. package/fesm2022/hmcts-opal-frontend-common-directives-govuk-button.mjs +61 -0
  130. package/fesm2022/hmcts-opal-frontend-common-directives-govuk-button.mjs.map +1 -0
  131. package/fesm2022/hmcts-opal-frontend-common-guards-auth.mjs.map +1 -1
  132. package/fesm2022/hmcts-opal-frontend-common-guards-has-flow-state.mjs.map +1 -1
  133. package/fesm2022/hmcts-opal-frontend-common-guards-helpers.mjs.map +1 -1
  134. package/fesm2022/hmcts-opal-frontend-common-guards-route-permissions.mjs.map +1 -1
  135. package/fesm2022/hmcts-opal-frontend-common-guards-signed-in.mjs.map +1 -1
  136. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error.mjs.map +1 -1
  137. package/fesm2022/hmcts-opal-frontend-common-pages-access-denied.component-hjYG8Hhi.mjs.map +1 -1
  138. package/fesm2022/hmcts-opal-frontend-common-pages-sign-in-stub.component-CMgQc0uF.mjs.map +1 -1
  139. package/fesm2022/hmcts-opal-frontend-common-pages-sign-in.component-UHSDf5ya.mjs.map +1 -1
  140. package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs.map +1 -1
  141. package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs.map +1 -1
  142. package/fesm2022/hmcts-opal-frontend-common-resolvers-title.mjs.map +1 -1
  143. package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs.map +1 -1
  144. package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs.map +1 -1
  145. package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs.map +1 -1
  146. package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs.map +1 -1
  147. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs.map +1 -1
  148. package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs.map +1 -1
  149. package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs.map +1 -1
  150. package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs.map +1 -1
  151. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs.map +1 -1
  152. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs.map +1 -1
  153. package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs.map +1 -1
  154. package/fesm2022/hmcts-opal-frontend-common-stores-global.mjs.map +1 -1
  155. package/fesm2022/hmcts-opal-frontend-common-validators-alphabetical-text.mjs.map +1 -1
  156. package/fesm2022/hmcts-opal-frontend-common-validators-amount.mjs.map +1 -1
  157. package/fesm2022/hmcts-opal-frontend-common-validators-date-after-year.mjs.map +1 -1
  158. package/fesm2022/hmcts-opal-frontend-common-validators-date-before.mjs.map +1 -1
  159. package/fesm2022/hmcts-opal-frontend-common-validators-date-of-birth.mjs.map +1 -1
  160. package/fesm2022/hmcts-opal-frontend-common-validators-driving-licence-number.mjs.map +1 -1
  161. package/fesm2022/hmcts-opal-frontend-common-validators-future-date.mjs.map +1 -1
  162. package/fesm2022/hmcts-opal-frontend-common-validators-invalid-value.mjs.map +1 -1
  163. package/fesm2022/hmcts-opal-frontend-common-validators-national-insurance-number.mjs.map +1 -1
  164. package/fesm2022/hmcts-opal-frontend-common-validators-numerical-only.mjs.map +1 -1
  165. package/fesm2022/hmcts-opal-frontend-common-validators-optional-max-length.mjs.map +1 -1
  166. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-date.mjs.map +1 -1
  167. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-email-address.mjs.map +1 -1
  168. package/fesm2022/hmcts-opal-frontend-common-validators-optional-valid-telephone.mjs.map +1 -1
  169. package/fesm2022/hmcts-opal-frontend-common-validators-over-eighteen.mjs.map +1 -1
  170. package/fesm2022/hmcts-opal-frontend-common-validators-past-date.mjs.map +1 -1
  171. package/fesm2022/hmcts-opal-frontend-common-validators-pattern-validator.mjs.map +1 -1
  172. package/fesm2022/hmcts-opal-frontend-common-validators-special-characters.mjs.map +1 -1
  173. package/fesm2022/hmcts-opal-frontend-common-validators-time-format.mjs.map +1 -1
  174. package/fesm2022/hmcts-opal-frontend-common-validators-two-decimal-places.mjs.map +1 -1
  175. package/fesm2022/hmcts-opal-frontend-common-validators-valid-value.mjs.map +1 -1
  176. package/package.json +134 -1
  177. package/styles/custom/_custom-section_break.scss +6 -0
  178. package/styles/styles.scss +102 -0
@@ -0,0 +1,184 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, computed, Component } from '@angular/core';
3
+
4
+ class AbstractTableFilterComponent {
5
+ displayTableDataSignal = signal([]);
6
+ filteredTableDataSignal = signal([]);
7
+ filterTags = signal([]);
8
+ keyword = signal('');
9
+ appliedFilterTags = signal([]);
10
+ appliedKeyword = signal('');
11
+ /**
12
+ * Determines whether a given item matches a specific filter option within a category.
13
+ * @param item The data item to test.
14
+ * @param categoryName The category name to check within the item.
15
+ * @param option The filter option to match against.
16
+ * @returns True if the item's value for the category matches the option's value; otherwise false.
17
+ */
18
+ matchItemWithFilterOption(item, categoryName, option) {
19
+ return item?.[categoryName] === option.value;
20
+ }
21
+ /**
22
+ * Determines whether a given item matches the keyword filter.
23
+ * Checks if any value in the item contains the keyword (case-insensitive).
24
+ * @param item The data item to test.
25
+ * @param keyword The keyword to match against.
26
+ * @returns True if any value in the item contains the keyword; otherwise false.
27
+ */
28
+ matchItemWithKeyword(item, keyword) {
29
+ return Object.values(item).some((value) => value?.toString().toLowerCase().includes(keyword));
30
+ }
31
+ /**
32
+ * Extracts and returns categories from the provided tags that have at least one selected option.
33
+ *
34
+ * For each category in the input array, this method filters its options to include only those marked as selected.
35
+ * Only categories with at least one selected option are included in the returned array.
36
+ *
37
+ * @param tags - An array of category objects, each containing a list of options.
38
+ * @returns An array of category objects, each with only the selected options, and only categories with at least one selected option.
39
+ */
40
+ getSelectedOptionsFromTags(tags) {
41
+ return tags
42
+ .map((group) => ({
43
+ categoryName: group.categoryName,
44
+ options: group.options.filter((option) => option.selected),
45
+ }))
46
+ .filter((group) => group.options.length > 0);
47
+ }
48
+ /**
49
+ * A computed signal that returns the currently selected filter tags.
50
+ * It filters the filterTags signal to include only those options that are selected,
51
+ * grouped by their category name.
52
+ *
53
+ * @returns An array of filter categories each containing only the selected options.
54
+ */
55
+ abstractSelectedTags = computed(() => this.getSelectedOptionsFromTags(this.filterTags()));
56
+ /**
57
+ * Updates the keyword used to filter the table data.
58
+ * @param newKeyword The new keyword string to filter by.
59
+ */
60
+ onKeywordChange(newKeyword) {
61
+ this.keyword.set(newKeyword);
62
+ }
63
+ /**
64
+ * Updates the selection state of a filter option within a category.
65
+ * @param categoryName The name of the filter category.
66
+ * @param optionValue The value of the filter option to update.
67
+ * @param selected Whether the option is selected (true) or deselected (false).
68
+ */
69
+ onCategoryCheckboxChange(categoryName, optionValue, selected) {
70
+ const updatedFilterTags = this.filterTags().map((group) => {
71
+ if (group.categoryName === categoryName) {
72
+ return {
73
+ ...group,
74
+ options: group.options.map((option) => (option.value === optionValue ? { ...option, selected } : option)),
75
+ };
76
+ }
77
+ return group;
78
+ });
79
+ this.filterTags.set(updatedFilterTags);
80
+ }
81
+ /**
82
+ * Removes a selected filter tag by deselecting the corresponding filter option.
83
+ * @param categoryName The name of the filter category.
84
+ * @param optionValue The value of the filter option to remove.
85
+ */
86
+ removeTag(categoryName, optionValue) {
87
+ this.onCategoryCheckboxChange(categoryName, optionValue, false);
88
+ }
89
+ /**
90
+ * Clears all applied filters and resets the filter state.
91
+ *
92
+ * This method performs the following actions:
93
+ * - Resets the keyword and applied keyword to empty strings.
94
+ * - Iterates through all filter tag groups and sets each option's `selected` property to `false`.
95
+ * - Updates both the current and applied filter tags with the cleared state.
96
+ * - Applies the updated filter state.
97
+ */
98
+ clearAllFilters() {
99
+ this.keyword.set('');
100
+ this.appliedKeyword.set('');
101
+ const clearedFilterTags = this.filterTags().map((group) => ({
102
+ ...group,
103
+ options: group.options.map((option) => ({ ...option, selected: false })),
104
+ }));
105
+ this.filterTags.set(clearedFilterTags);
106
+ this.appliedFilterTags.set(clearedFilterTags);
107
+ this.applyFilterState();
108
+ }
109
+ /**
110
+ * Initializes and updates the filtered table data based on the currently applied keyword and filter tags.
111
+ *
112
+ * This method performs the following steps:
113
+ * 1. Retrieves the current table data, applied keyword, and filter tags.
114
+ * 2. If filter tags are present, filters the data to include only items that match all selected filter options.
115
+ * 3. If a keyword is present, further filters the data to include only items that match the keyword.
116
+ * 4. Updates the filtered table data signal with the resulting filtered data.
117
+ *
118
+ * @remarks
119
+ * - Filtering by tags requires each item to match every group of filter tags.
120
+ * - Filtering by keyword is case-insensitive and trims whitespace.
121
+ */
122
+ applyFilterState() {
123
+ const data = this.displayTableDataSignal();
124
+ const keyword = this.appliedKeyword().toLowerCase().trim();
125
+ const tags = this.appliedFilterTags();
126
+ const selectedTagGroups = this.getSelectedOptionsFromTags(tags);
127
+ let filtered = data;
128
+ if (selectedTagGroups.length > 0) {
129
+ filtered = filtered.filter((item) => selectedTagGroups.every((group) => group.options.some((option) => this.matchItemWithFilterOption(item, group.categoryName, option))));
130
+ }
131
+ if (keyword) {
132
+ filtered = filtered.filter((item) => this.matchItemWithKeyword(item, keyword));
133
+ }
134
+ this.filteredTableDataSignal.set(filtered);
135
+ }
136
+ /**
137
+ * Applies the current filter tags and keyword to the table data.
138
+ *
139
+ * This method updates the `appliedFilterTags` and `appliedKeyword` properties
140
+ * with the current filter values, then re-initialises the filtered data set
141
+ * by invoking `applyFilterState()`.
142
+ *
143
+ * Typically called when the user confirms or applies filter changes in the UI.
144
+ */
145
+ onApplyFilters() {
146
+ this.appliedFilterTags.set(this.filterTags());
147
+ this.appliedKeyword.set(this.keyword());
148
+ this.applyFilterState();
149
+ }
150
+ /**
151
+ * Sets the data to be displayed in the table.
152
+ *
153
+ * @param data - An array of table data objects conforming to the `IAbstractTableData<SortableValuesType>` interface.
154
+ */
155
+ setTableData(data) {
156
+ this.displayTableDataSignal.set(data);
157
+ }
158
+ /**
159
+ * Resets the filter and keyword state to the provided values and reapplies them.
160
+ *
161
+ * @param tags - The filter tag state to apply (including selected values).
162
+ * @param keyword - The keyword string to apply (optional, defaults to empty).
163
+ */
164
+ resetFiltersTo(tags, keyword = '') {
165
+ this.filterTags.set(tags);
166
+ this.keyword.set(keyword);
167
+ this.appliedFilterTags.set(tags);
168
+ this.appliedKeyword.set(keyword);
169
+ this.applyFilterState();
170
+ }
171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AbstractTableFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: AbstractTableFilterComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
173
+ }
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AbstractTableFilterComponent, decorators: [{
175
+ type: Component,
176
+ args: [{ template: '' }]
177
+ }] });
178
+
179
+ /**
180
+ * Generated bundle index. Do not edit.
181
+ */
182
+
183
+ export { AbstractTableFilterComponent };
184
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/abstract-table-filter.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.ts"],"sourcesContent":["import { Component, signal, computed, Signal } from '@angular/core';\nimport {\n IAbstractTableData,\n IAbstractTableFilterCategory,\n IAbstractTableFilterOption,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter/interfaces';\nimport { SortableValuesType } from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter/types';\n\n@Component({ template: '' })\nexport abstract class AbstractTableFilterComponent {\n public displayTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public filteredTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public filterTags = signal<IAbstractTableFilterCategory[]>([]);\n public keyword = signal<string>('');\n public appliedFilterTags = signal<IAbstractTableFilterCategory[]>([]);\n public appliedKeyword = signal<string>('');\n\n /**\n * Determines whether a given item matches a specific filter option within a category.\n * @param item The data item to test.\n * @param categoryName The category name to check within the item.\n * @param option The filter option to match against.\n * @returns True if the item's value for the category matches the option's value; otherwise false.\n */\n protected matchItemWithFilterOption(\n item: IAbstractTableData<SortableValuesType>,\n categoryName: string,\n option: IAbstractTableFilterOption,\n ): boolean {\n return item?.[categoryName] === option.value;\n }\n\n /**\n * Determines whether a given item matches the keyword filter.\n * Checks if any value in the item contains the keyword (case-insensitive).\n * @param item The data item to test.\n * @param keyword The keyword to match against.\n * @returns True if any value in the item contains the keyword; otherwise false.\n */\n protected matchItemWithKeyword(item: IAbstractTableData<SortableValuesType>, keyword: string): boolean {\n return Object.values(item).some((value) => value?.toString().toLowerCase().includes(keyword));\n }\n\n /**\n * Extracts and returns categories from the provided tags that have at least one selected option.\n *\n * For each category in the input array, this method filters its options to include only those marked as selected.\n * Only categories with at least one selected option are included in the returned array.\n *\n * @param tags - An array of category objects, each containing a list of options.\n * @returns An array of category objects, each with only the selected options, and only categories with at least one selected option.\n */\n protected getSelectedOptionsFromTags(tags: IAbstractTableFilterCategory[]): IAbstractTableFilterCategory[] {\n return tags\n .map((group) => ({\n categoryName: group.categoryName,\n options: group.options.filter((option) => option.selected),\n }))\n .filter((group) => group.options.length > 0);\n }\n\n /**\n * A computed signal that returns the currently selected filter tags.\n * It filters the filterTags signal to include only those options that are selected,\n * grouped by their category name.\n *\n * @returns An array of filter categories each containing only the selected options.\n */\n public abstractSelectedTags: Signal<IAbstractTableFilterCategory[]> = computed(() =>\n this.getSelectedOptionsFromTags(this.filterTags()),\n );\n\n /**\n * Updates the keyword used to filter the table data.\n * @param newKeyword The new keyword string to filter by.\n */\n public onKeywordChange(newKeyword: string): void {\n this.keyword.set(newKeyword);\n }\n\n /**\n * Updates the selection state of a filter option within a category.\n * @param categoryName The name of the filter category.\n * @param optionValue The value of the filter option to update.\n * @param selected Whether the option is selected (true) or deselected (false).\n */\n public onCategoryCheckboxChange(categoryName: string, optionValue: string | number, selected: boolean): void {\n const updatedFilterTags = this.filterTags().map((group) => {\n if (group.categoryName === categoryName) {\n return {\n ...group,\n options: group.options.map((option) => (option.value === optionValue ? { ...option, selected } : option)),\n };\n }\n return group;\n });\n this.filterTags.set(updatedFilterTags);\n }\n\n /**\n * Removes a selected filter tag by deselecting the corresponding filter option.\n * @param categoryName The name of the filter category.\n * @param optionValue The value of the filter option to remove.\n */\n public removeTag(categoryName: string, optionValue: string | number): void {\n this.onCategoryCheckboxChange(categoryName, optionValue, false);\n }\n\n /**\n * Clears all applied filters and resets the filter state.\n *\n * This method performs the following actions:\n * - Resets the keyword and applied keyword to empty strings.\n * - Iterates through all filter tag groups and sets each option's `selected` property to `false`.\n * - Updates both the current and applied filter tags with the cleared state.\n * - Applies the updated filter state.\n */\n public clearAllFilters(): void {\n this.keyword.set('');\n this.appliedKeyword.set('');\n\n const clearedFilterTags = this.filterTags().map((group) => ({\n ...group,\n options: group.options.map((option) => ({ ...option, selected: false })),\n }));\n\n this.filterTags.set(clearedFilterTags);\n this.appliedFilterTags.set(clearedFilterTags);\n\n this.applyFilterState();\n }\n\n /**\n * Initializes and updates the filtered table data based on the currently applied keyword and filter tags.\n *\n * This method performs the following steps:\n * 1. Retrieves the current table data, applied keyword, and filter tags.\n * 2. If filter tags are present, filters the data to include only items that match all selected filter options.\n * 3. If a keyword is present, further filters the data to include only items that match the keyword.\n * 4. Updates the filtered table data signal with the resulting filtered data.\n *\n * @remarks\n * - Filtering by tags requires each item to match every group of filter tags.\n * - Filtering by keyword is case-insensitive and trims whitespace.\n */\n public applyFilterState(): void {\n const data = this.displayTableDataSignal();\n const keyword = this.appliedKeyword().toLowerCase().trim();\n const tags = this.appliedFilterTags();\n\n const selectedTagGroups = this.getSelectedOptionsFromTags(tags);\n\n let filtered = data;\n\n if (selectedTagGroups.length > 0) {\n filtered = filtered.filter((item) =>\n selectedTagGroups.every((group) =>\n group.options.some((option) => this.matchItemWithFilterOption(item, group.categoryName, option)),\n ),\n );\n }\n\n if (keyword) {\n filtered = filtered.filter((item) => this.matchItemWithKeyword(item, keyword));\n }\n\n this.filteredTableDataSignal.set(filtered);\n }\n\n /**\n * Applies the current filter tags and keyword to the table data.\n *\n * This method updates the `appliedFilterTags` and `appliedKeyword` properties\n * with the current filter values, then re-initialises the filtered data set\n * by invoking `applyFilterState()`.\n *\n * Typically called when the user confirms or applies filter changes in the UI.\n */\n public onApplyFilters(): void {\n this.appliedFilterTags.set(this.filterTags());\n this.appliedKeyword.set(this.keyword());\n this.applyFilterState();\n }\n\n /**\n * Sets the data to be displayed in the table.\n *\n * @param data - An array of table data objects conforming to the `IAbstractTableData<SortableValuesType>` interface.\n */\n public setTableData(data: IAbstractTableData<SortableValuesType>[]): void {\n this.displayTableDataSignal.set(data);\n }\n\n /**\n * Resets the filter and keyword state to the provided values and reapplies them.\n *\n * @param tags - The filter tag state to apply (including selected values).\n * @param keyword - The keyword string to apply (optional, defaults to empty).\n */\n public resetFiltersTo(tags: IAbstractTableFilterCategory[], keyword: string = ''): void {\n this.filterTags.set(tags);\n this.keyword.set(keyword);\n this.appliedFilterTags.set(tags);\n this.appliedKeyword.set(keyword);\n this.applyFilterState();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs","sources":["../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.ts","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.html","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n afterNextRender,\n inject,\n} from '@angular/core';\nimport { FormControl, AbstractControl, ReactiveFormsModule } from '@angular/forms';\nimport { IAlphagovAccessibleAutocompleteItem } from './interfaces/alphagov-accessible-autocomplete-item.interface';\nimport { AccessibleAutocompleteProps } from 'accessible-autocomplete';\nimport { Subject, pairwise, startWith, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'opal-lib-alphagov-accessible-autocomplete',\n imports: [ReactiveFormsModule],\n templateUrl: './alphagov-accessible-autocomplete.component.html',\n styleUrl: './alphagov-accessible-autocomplete.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlphagovAccessibleAutocompleteComponent implements OnInit, OnDestroy {\n @Input({ required: true }) labelText!: string;\n @Input({ required: false }) labelClasses!: string;\n @Input({ required: true }) inputId!: string;\n @Input({ required: true }) inputName!: string;\n @Input({ required: false }) inputClasses!: string;\n @Input({ required: false }) hintText!: string;\n @Input({ required: true }) autoCompleteItems: IAlphagovAccessibleAutocompleteItem[] = [];\n @Input() showAllValues = false;\n @Input({ required: false }) errors: string | null = null;\n\n @ViewChild('autocomplete') autocompleteContainer!: ElementRef<HTMLElement>;\n\n private readonly changeDetector: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _control!: FormControl;\n private readonly ngUnsubscribe = new Subject<void>();\n public autoCompleteId!: string;\n\n @Input({ required: true }) set control(abstractControl: AbstractControl | null) {\n // Form controls are passed in as abstract controls, we need to re-cast it.\n this._control = abstractControl as FormControl;\n }\n\n constructor() {\n afterNextRender(() => {\n // Only trigger the render of the component in the browser\n this.configureAutoComplete();\n });\n }\n\n /**\n * Gets the control for the alphagov-accessible-autocomplete component.\n * @returns The control for the component.\n */\n get getControl() {\n return this._control;\n }\n\n /**\n * Handles the confirmation of a selected name.\n *\n * @param selectedName - The selected name.\n * @returns void\n */\n\n private handleOnConfirm(selectedName: string | undefined): void {\n // selectedName is populated on selecting an option but is undefined onBlur, so we need to grab the input value directly from the input\n const control = this._control;\n const name = selectedName ?? (document.querySelector(`#${this.autoCompleteId}`) as HTMLInputElement).value;\n const selectedItem = this.autoCompleteItems.find((item) => item.name === name) ?? null;\n const previousValue = control.value;\n const selectedValue = selectedItem?.value ?? null;\n\n control.setValue(selectedValue);\n control.markAsTouched();\n\n // Handles initial empty state when the user clicks away from the input\n if (selectedItem === null && previousValue === null) {\n control.markAsPristine();\n } else if (selectedItem?.value !== previousValue) {\n control.markAsDirty();\n }\n\n control.updateValueAndValidity();\n this.changeDetector.detectChanges();\n }\n\n /**\n * Retrieves the default value for the autocomplete component.\n *\n * @returns The default value as a string.\n */\n\n private getDefaultValue() {\n return this.autoCompleteItems.find((item) => item.value === this._control.value)?.name ?? '';\n }\n\n /**\n * Builds the props object for the AccessibleAutocomplete component.\n * @returns The props object for the AccessibleAutocomplete component.\n */\n private buildAutoCompleteProps(): AccessibleAutocompleteProps {\n return {\n id: this.autoCompleteId,\n element: this.autocompleteContainer.nativeElement,\n source: this.autoCompleteItems.map((item) => item.name),\n name: this.autoCompleteId,\n showAllValues: this.showAllValues,\n defaultValue: this.getDefaultValue(),\n onConfirm: (selectedName: string) => this.handleOnConfirm(selectedName),\n };\n }\n\n /**\n * Configures the auto-complete functionality using the accessible-autocomplete library.\n */\n private configureAutoComplete(): void {\n import('accessible-autocomplete').then((accessibleAutocomplete) => {\n accessibleAutocomplete.default(this.buildAutoCompleteProps());\n });\n }\n\n /**\n * Sets up the control subscription for value changes.\n * Whenever the control value changes, this method is called to handle the changes.\n * If the new value is null, it clears the autocomplete container and configures the autocomplete.\n */\n private setupControlSub(): void {\n this._control.valueChanges\n .pipe(startWith(null), pairwise(), takeUntil(this.ngUnsubscribe))\n .subscribe(([prev, next]) => {\n // If both values are null, we don't need to do anything\n if (prev === null && next === null) {\n return;\n }\n\n // Otherwise, next is null, we need to clear the autocomplete\n if (next === null) {\n this.autocompleteContainer.nativeElement.innerHTML = '';\n this.configureAutoComplete();\n }\n });\n }\n\n ngOnInit(): void {\n this.autoCompleteId = this.inputId + '-autocomplete';\n this.setupControlSub();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","<div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"autoCompleteId\"> {{ labelText }} </label>\n @if (hintText) {\n <div id=\"{{ inputId }}-hint\" class=\"govuk-hint\">\n {{ hintText }}\n </div>\n }\n\n @if (errors) {\n <p id=\"{{ this.autoCompleteId }}-error-message\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <div #autocomplete id=\"{{ autoCompleteId }}-container\" class=\"{{ inputClasses }}\"></div>\n <input [id]=\"inputId\" [name]=\"inputName\" type=\"hidden\" [formControl]=\"getControl\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs","sources":["../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.ts","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.html","../../../projects/opal-frontend-common/components/alphagov/alphagov-accessible-autocomplete/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n afterNextRender,\n inject,\n} from '@angular/core';\nimport { FormControl, AbstractControl, ReactiveFormsModule } from '@angular/forms';\nimport { IAlphagovAccessibleAutocompleteItem } from './interfaces/alphagov-accessible-autocomplete-item.interface';\nimport { AccessibleAutocompleteProps } from 'accessible-autocomplete';\nimport { Subject, pairwise, startWith, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'opal-lib-alphagov-accessible-autocomplete',\n imports: [ReactiveFormsModule],\n templateUrl: './alphagov-accessible-autocomplete.component.html',\n styleUrl: './alphagov-accessible-autocomplete.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlphagovAccessibleAutocompleteComponent implements OnInit, OnDestroy {\n @Input({ required: true }) labelText!: string;\n @Input({ required: false }) labelClasses!: string;\n @Input({ required: true }) inputId!: string;\n @Input({ required: true }) inputName!: string;\n @Input({ required: false }) inputClasses!: string;\n @Input({ required: false }) hintText!: string;\n @Input({ required: true }) autoCompleteItems: IAlphagovAccessibleAutocompleteItem[] = [];\n @Input() showAllValues = false;\n @Input({ required: false }) errors: string | null = null;\n\n @ViewChild('autocomplete') autocompleteContainer!: ElementRef<HTMLElement>;\n\n private readonly changeDetector: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _control!: FormControl;\n private readonly ngUnsubscribe = new Subject<void>();\n public autoCompleteId!: string;\n\n @Input({ required: true }) set control(abstractControl: AbstractControl | null) {\n // Form controls are passed in as abstract controls, we need to re-cast it.\n this._control = abstractControl as FormControl;\n }\n\n constructor() {\n afterNextRender(() => {\n // Only trigger the render of the component in the browser\n this.configureAutoComplete();\n });\n }\n\n /**\n * Gets the control for the alphagov-accessible-autocomplete component.\n * @returns The control for the component.\n */\n get getControl() {\n return this._control;\n }\n\n /**\n * Handles the confirmation of a selected name.\n *\n * @param selectedName - The selected name.\n * @returns void\n */\n\n private handleOnConfirm(selectedName: string | undefined): void {\n // selectedName is populated on selecting an option but is undefined onBlur, so we need to grab the input value directly from the input\n const control = this._control;\n const name = selectedName ?? (document.querySelector(`#${this.autoCompleteId}`) as HTMLInputElement).value;\n const selectedItem = this.autoCompleteItems.find((item) => item.name === name) ?? null;\n const previousValue = control.value;\n const selectedValue = selectedItem?.value ?? null;\n\n control.setValue(selectedValue);\n control.markAsTouched();\n\n // Handles initial empty state when the user clicks away from the input\n if (selectedItem === null && previousValue === null) {\n control.markAsPristine();\n } else if (selectedItem?.value !== previousValue) {\n control.markAsDirty();\n }\n\n control.updateValueAndValidity();\n this.changeDetector.detectChanges();\n }\n\n /**\n * Retrieves the default value for the autocomplete component.\n *\n * @returns The default value as a string.\n */\n\n private getDefaultValue() {\n return this.autoCompleteItems.find((item) => item.value === this._control.value)?.name ?? '';\n }\n\n /**\n * Builds the props object for the AccessibleAutocomplete component.\n * @returns The props object for the AccessibleAutocomplete component.\n */\n private buildAutoCompleteProps(): AccessibleAutocompleteProps {\n return {\n id: this.autoCompleteId,\n element: this.autocompleteContainer.nativeElement,\n source: this.autoCompleteItems.map((item) => item.name),\n name: this.autoCompleteId,\n showAllValues: this.showAllValues,\n defaultValue: this.getDefaultValue(),\n onConfirm: (selectedName: string) => this.handleOnConfirm(selectedName),\n };\n }\n\n /**\n * Configures the auto-complete functionality using the accessible-autocomplete library.\n */\n private configureAutoComplete(): void {\n import('accessible-autocomplete').then((accessibleAutocomplete) => {\n accessibleAutocomplete.default(this.buildAutoCompleteProps());\n });\n }\n\n /**\n * Sets up the control subscription for value changes.\n * Whenever the control value changes, this method is called to handle the changes.\n * If the new value is null, it clears the autocomplete container and configures the autocomplete.\n */\n private setupControlSub(): void {\n this._control.valueChanges\n .pipe(startWith(null), pairwise(), takeUntil(this.ngUnsubscribe))\n .subscribe(([prev, next]) => {\n // If both values are null, we don't need to do anything\n if (prev === null && next === null) {\n return;\n }\n\n // Otherwise, next is null, we need to clear the autocomplete\n if (next === null) {\n this.autocompleteContainer.nativeElement.innerHTML = '';\n this.configureAutoComplete();\n }\n });\n }\n\n ngOnInit(): void {\n this.autoCompleteId = this.inputId + '-autocomplete';\n this.setupControlSub();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","<div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"autoCompleteId\"> {{ labelText }} </label>\n @if (hintText) {\n <div id=\"{{ inputId }}-hint\" class=\"govuk-hint\">\n {{ hintText }}\n </div>\n }\n\n @if (errors) {\n <p id=\"{{ this.autoCompleteId }}-error-message\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <div #autocomplete id=\"{{ autoCompleteId }}-container\" class=\"{{ inputClasses }}\"></div>\n <input [id]=\"inputId\" [name]=\"inputName\" type=\"hidden\" [formControl]=\"getControl\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import * as i0 from '@angular/core';
2
+ import { HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ class CustomAccountInformationItemLabelComponent {
5
+ hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-font-weight-bold govuk-!-margin-0';
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomAccountInformationItemLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomAccountInformationItemLabelComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]", host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomAccountInformationItemLabelComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
12
+ }], propDecorators: { hostClass: [{
13
+ type: HostBinding,
14
+ args: ['class']
15
+ }] } });
16
+
17
+ /**
18
+ * Generated bundle index. Do not edit.
19
+ */
20
+
21
+ export { CustomAccountInformationItemLabelComponent };
22
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-label/custom-account-information-item-label.component.ts","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-label/custom-account-information-item-label.component.html","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-label/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]',\n templateUrl: './custom-account-information-item-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomAccountInformationItemLabelComponent {\n @HostBinding('class') hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-font-weight-bold govuk-!-margin-0';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,0CAA0C,CAAA;IAC/B,SAAS,GAAG,2EAA2E;wGADlG,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0CAA0C,iNCPvD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDMa,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBALtD,SAAS;+BACE,kGAAkG,EAAA,eAAA,EAE3F,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;8BAGzB,SAAS,EAAA,CAAA;sBAA9B,WAAW;uBAAC,OAAO;;;AERtB;;AAEG;;;;"}
@@ -0,0 +1,22 @@
1
+ import * as i0 from '@angular/core';
2
+ import { HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ class CustomAccountInformationItemValueComponent {
5
+ hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-margin-0';
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomAccountInformationItemValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomAccountInformationItemValueComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]", host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomAccountInformationItemValueComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
12
+ }], propDecorators: { hostClass: [{
13
+ type: HostBinding,
14
+ args: ['class']
15
+ }] } });
16
+
17
+ /**
18
+ * Generated bundle index. Do not edit.
19
+ */
20
+
21
+ export { CustomAccountInformationItemValueComponent };
22
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-value/custom-account-information-item-value.component.ts","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-value/custom-account-information-item-value.component.html","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item-value/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]',\n templateUrl: './custom-account-information-item-value.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomAccountInformationItemValueComponent {\n @HostBinding('class') hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-margin-0';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,0CAA0C,CAAA;IAC/B,SAAS,GAAG,kDAAkD;wGADzE,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0CAA0C,iNCPvD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDMa,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBALtD,SAAS;+BACE,kGAAkG,EAAA,eAAA,EAE3F,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;8BAGzB,SAAS,EAAA,CAAA;sBAA9B,WAAW;uBAAC,OAAO;;;AERtB;;AAEG;;;;"}
@@ -0,0 +1,28 @@
1
+ import * as i0 from '@angular/core';
2
+ import { HostBinding, Input, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ class CustomAccountInformationItemComponent {
5
+ itemClasses = 'govuk-grid-column-one-third';
6
+ get hostClass() {
7
+ return this.itemClasses;
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomAccountInformationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomAccountInformationItemComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item", inputs: { itemClasses: "itemClasses" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomAccountInformationItemComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'opal-lib-custom-account-information-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
15
+ }], propDecorators: { itemClasses: [{
16
+ type: Input,
17
+ args: [{ required: false }]
18
+ }], hostClass: [{
19
+ type: HostBinding,
20
+ args: ['class']
21
+ }] } });
22
+
23
+ /**
24
+ * Generated bundle index. Do not edit.
25
+ */
26
+
27
+ export { CustomAccountInformationItemComponent };
28
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item.component.ts","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/custom-account-information-item.component.html","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information-item/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-account-information-item',\n templateUrl: './custom-account-information-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomAccountInformationItemComponent {\n @Input({ required: false }) itemClasses: string = 'govuk-grid-column-one-third';\n\n @HostBinding('class')\n get hostClass(): string {\n return this.itemClasses;\n }\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,qCAAqC,CAAA;IACpB,WAAW,GAAW,6BAA6B;AAE/E,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,WAAW;IACzB;wGANW,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qCAAqC,iMCPlD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDMa,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;+BACE,0CAA0C,EAAA,eAAA,EAEnC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;8BAGnB,WAAW,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAGtB,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,OAAO;;;AEVtB;;AAEG;;;;"}
@@ -0,0 +1,18 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ class CustomAccountInformationComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomAccountInformationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomAccountInformationComponent, isStandalone: true, selector: "opal-lib-custom-account-information, [opal-lib-custom-account-information]", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomAccountInformationComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'opal-lib-custom-account-information, [opal-lib-custom-account-information]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n" }]
11
+ }] });
12
+
13
+ /**
14
+ * Generated bundle index. Do not edit.
15
+ */
16
+
17
+ export { CustomAccountInformationComponent };
18
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-account-information.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-account-information.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information.component.ts","../../../projects/opal-frontend-common/components/custom/custom-account-information/custom-account-information.component.html","../../../projects/opal-frontend-common/components/custom/custom-account-information/hmcts-opal-frontend-common-components-custom-custom-account-information.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-account-information, [opal-lib-custom-account-information]',\n templateUrl: './custom-account-information.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomAccountInformationComponent {}\n","<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,iCAAiC,CAAA;wGAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,sICP9C,uEAGA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDIa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,4EAA4E,EAAA,eAAA,EAErE,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uEAAA,EAAA;;;AELjD;;AAEG;;;;"}
@@ -0,0 +1,38 @@
1
+ import * as i0 from '@angular/core';
2
+ import { HostBinding, Input, Component } from '@angular/core';
3
+
4
+ class CustomActionLinksComponent {
5
+ id;
6
+ classSize = 'govuk-grid-column-one-third';
7
+ get hostId() {
8
+ return this.id;
9
+ }
10
+ get hostClass() {
11
+ return this.classSize;
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomActionLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomActionLinksComponent, isStandalone: true, selector: "opal-lib-custom-action-links", inputs: { id: "id", classSize: "classSize" }, host: { properties: { "attr.id": "this.hostId", "class": "this.hostClass" } }, ngImport: i0, template: "<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n" });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomActionLinksComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'opal-lib-custom-action-links', template: "<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n" }]
19
+ }], propDecorators: { id: [{
20
+ type: Input,
21
+ args: [{ required: true }]
22
+ }], classSize: [{
23
+ type: Input,
24
+ args: [{ required: false }]
25
+ }], hostId: [{
26
+ type: HostBinding,
27
+ args: ['attr.id']
28
+ }], hostClass: [{
29
+ type: HostBinding,
30
+ args: ['class']
31
+ }] } });
32
+
33
+ /**
34
+ * Generated bundle index. Do not edit.
35
+ */
36
+
37
+ export { CustomActionLinksComponent };
38
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-action-links.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-action-links.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-action-links/custom-action-links.component.ts","../../../projects/opal-frontend-common/components/custom/custom-action-links/custom-action-links.component.html","../../../projects/opal-frontend-common/components/custom/custom-action-links/hmcts-opal-frontend-common-components-custom-custom-action-links.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-action-links',\n templateUrl: './custom-action-links.component.html',\n})\nexport class CustomActionLinksComponent {\n @Input({ required: true }) id!: string;\n @Input({ required: false }) classSize: string = 'govuk-grid-column-one-third';\n\n @HostBinding('attr.id') get hostId(): string {\n return this.id;\n }\n @HostBinding('class') get hostClass(): string {\n return this.classSize;\n }\n}\n","<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,0BAA0B,CAAA;AACV,IAAA,EAAE;IACD,SAAS,GAAW,6BAA6B;AAE7E,IAAA,IAA4B,MAAM,GAAA;QAChC,OAAO,IAAI,CAAC,EAAE;IAChB;AACA,IAAA,IAA0B,SAAS,GAAA;QACjC,OAAO,IAAI,CAAC,SAAS;IACvB;wGATW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,qNCNvC,oNAGA,EAAA,CAAA;;4FDGa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,oNAAA,EAAA;8BAIb,EAAE,EAAA,CAAA;sBAA5B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACG,SAAS,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAEE,MAAM,EAAA,CAAA;sBAAjC,WAAW;uBAAC,SAAS;gBAGI,SAAS,EAAA,CAAA;sBAAlC,WAAW;uBAAC,OAAO;;;AEbtB;;AAEG;;;;"}
@@ -0,0 +1,18 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ class CustomPageHeaderComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomPageHeaderComponent, isStandalone: true, selector: "opal-lib-custom-page-header", ngImport: i0, template: "<div class=\"govuk-grid-row custom-grid-class\">\n <div class=\"govuk-grid-column-one-half\">\n <ng-content select=\"[pageHeaderHeading]\"></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-half custom-column-class\">\n <div class=\"moj-button-group moj-button-group--inline custom-button-group-class\">\n <ng-content select=\"[pageHeaderButtons]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".custom-grid-class{display:flex}.custom-column-class{display:flex;flex-direction:column;justify-content:end}.custom-button-group-class{justify-content:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomPageHeaderComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'opal-lib-custom-page-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row custom-grid-class\">\n <div class=\"govuk-grid-column-one-half\">\n <ng-content select=\"[pageHeaderHeading]\"></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-half custom-column-class\">\n <div class=\"moj-button-group moj-button-group--inline custom-button-group-class\">\n <ng-content select=\"[pageHeaderButtons]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".custom-grid-class{display:flex}.custom-column-class{display:flex;flex-direction:column;justify-content:end}.custom-button-group-class{justify-content:right}\n"] }]
11
+ }] });
12
+
13
+ /**
14
+ * Generated bundle index. Do not edit.
15
+ */
16
+
17
+ export { CustomPageHeaderComponent };
18
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-page-header.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-page-header.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-page-header/custom-page-header.component.ts","../../../projects/opal-frontend-common/components/custom/custom-page-header/custom-page-header.component.html","../../../projects/opal-frontend-common/components/custom/custom-page-header/hmcts-opal-frontend-common-components-custom-custom-page-header.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-page-header',\n templateUrl: './custom-page-header.component.html',\n styleUrl: './custom-page-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomPageHeaderComponent {}\n","<div class=\"govuk-grid-row custom-grid-class\">\n <div class=\"govuk-grid-column-one-half\">\n <ng-content select=\"[pageHeaderHeading]\"></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-half custom-column-class\">\n <div class=\"moj-button-group moj-button-group--inline custom-button-group-class\">\n <ng-content select=\"[pageHeaderButtons]\"></ng-content>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAQa,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,uFCRtC,maAUA,EAAA,MAAA,EAAA,CAAA,iKAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDFa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACE,6BAA6B,EAAA,eAAA,EAGtB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,maAAA,EAAA,MAAA,EAAA,CAAA,iKAAA,CAAA,EAAA;;;AENjD;;AAEG;;;;"}
@@ -0,0 +1,28 @@
1
+ import * as i0 from '@angular/core';
2
+ import { HostBinding, Input, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ class CustomSummaryMetricBarItemLabelComponent {
5
+ textColour = 'govuk-dark-grey-text-colour';
6
+ get hostClasses() {
7
+ return `govuk-body govuk-!-font-size-19 govuk-!-font-weight-bold govuk-!-margin-0 ${this.textColour}`;
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomSummaryMetricBarItemLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomSummaryMetricBarItemLabelComponent, isStandalone: true, selector: "opal-lib-custom-summary-metric-bar-item-label, [opal-lib-custom-summary-metric-bar-item-label]", inputs: { textColour: "textColour" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomSummaryMetricBarItemLabelComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'opal-lib-custom-summary-metric-bar-item-label, [opal-lib-custom-summary-metric-bar-item-label]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
15
+ }], propDecorators: { textColour: [{
16
+ type: Input,
17
+ args: [{ required: false }]
18
+ }], hostClasses: [{
19
+ type: HostBinding,
20
+ args: ['class']
21
+ }] } });
22
+
23
+ /**
24
+ * Generated bundle index. Do not edit.
25
+ */
26
+
27
+ export { CustomSummaryMetricBarItemLabelComponent };
28
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-label/custom-summary-metric-bar-item-label.component.ts","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-label/custom-summary-metric-bar-item-label.component.html","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-label/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-summary-metric-bar-item-label, [opal-lib-custom-summary-metric-bar-item-label]',\n templateUrl: './custom-summary-metric-bar-item-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomSummaryMetricBarItemLabelComponent {\n @Input({ required: false }) textColour: string = 'govuk-dark-grey-text-colour';\n\n @HostBinding('class')\n get hostClasses(): string {\n return `govuk-body govuk-!-font-size-19 govuk-!-font-weight-bold govuk-!-margin-0 ${this.textColour}`;\n }\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,wCAAwC,CAAA;IACvB,UAAU,GAAW,6BAA6B;AAE9E,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,CAAA,0EAAA,EAA6E,IAAI,CAAC,UAAU,EAAE;IACvG;wGANW,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wCAAwC,uPCPrD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDMa,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBALpD,SAAS;+BACE,gGAAgG,EAAA,eAAA,EAEzF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;8BAGnB,UAAU,EAAA,CAAA;sBAArC,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAGtB,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;;AEVtB;;AAEG;;;;"}
@@ -0,0 +1,28 @@
1
+ import * as i0 from '@angular/core';
2
+ import { HostBinding, Input, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ class CustomSummaryMetricBarItemValueComponent {
5
+ textColour = 'govuk-dark-grey-text-colour';
6
+ get hostClasses() {
7
+ return `govuk-body govuk-!-font-size-24 govuk-!-font-weight-bold govuk-!-margin-0 ${this.textColour}`;
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomSummaryMetricBarItemValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomSummaryMetricBarItemValueComponent, isStandalone: true, selector: "opal-lib-custom-summary-metric-bar-item-value, [opal-lib-custom-summary-metric-bar-item-value]", inputs: { textColour: "textColour" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomSummaryMetricBarItemValueComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'opal-lib-custom-summary-metric-bar-item-value, [opal-lib-custom-summary-metric-bar-item-value]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
15
+ }], propDecorators: { textColour: [{
16
+ type: Input,
17
+ args: [{ required: false }]
18
+ }], hostClasses: [{
19
+ type: HostBinding,
20
+ args: ['class']
21
+ }] } });
22
+
23
+ /**
24
+ * Generated bundle index. Do not edit.
25
+ */
26
+
27
+ export { CustomSummaryMetricBarItemValueComponent };
28
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-value/custom-summary-metric-bar-item-value.component.ts","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-value/custom-summary-metric-bar-item-value.component.html","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item-value/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-summary-metric-bar-item-value, [opal-lib-custom-summary-metric-bar-item-value]',\n templateUrl: './custom-summary-metric-bar-item-value.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomSummaryMetricBarItemValueComponent {\n @Input({ required: false }) textColour: string = 'govuk-dark-grey-text-colour';\n\n @HostBinding('class')\n get hostClasses(): string {\n return `govuk-body govuk-!-font-size-24 govuk-!-font-weight-bold govuk-!-margin-0 ${this.textColour}`;\n }\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,wCAAwC,CAAA;IACvB,UAAU,GAAW,6BAA6B;AAE9E,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,CAAA,0EAAA,EAA6E,IAAI,CAAC,UAAU,EAAE;IACvG;wGANW,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wCAAwC,uPCPrD,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDMa,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBALpD,SAAS;+BACE,gGAAgG,EAAA,eAAA,EAEzF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;8BAGnB,UAAU,EAAA,CAAA;sBAArC,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAGtB,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;;AEVtB;;AAEG;;;;"}
@@ -0,0 +1,43 @@
1
+ import * as i0 from '@angular/core';
2
+ import { HostBinding, Input, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ class CustomSummaryMetricBarItemComponent {
5
+ backgroundColour = 'govuk-light-grey-background-colour';
6
+ itemClasses = 'govuk-grid-column-one-quarter';
7
+ get hostClasses() {
8
+ return this.itemClasses;
9
+ }
10
+ /**
11
+ * Returns the CSS class names for the summary metric bar item.
12
+ *
13
+ * This method generates a string containing the default class "custom-summary-metric-bar-item-frame"
14
+ * combined with additional classes determined by the component's background and text color properties.
15
+ *
16
+ * @returns {string} A space-separated list of CSS classes to apply to the component.
17
+ */
18
+ getSummaryMetricBarItemClasses() {
19
+ return `custom-summary-metric-bar-item-frame ${this.backgroundColour}`;
20
+ }
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomSummaryMetricBarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CustomSummaryMetricBarItemComponent, isStandalone: true, selector: "opal-lib-custom-summary-metric-bar-item", inputs: { backgroundColour: "backgroundColour", itemClasses: "itemClasses" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<div [class]=\"getSummaryMetricBarItemClasses()\">\n <ng-content></ng-content>\n</div>\n", styles: [".custom-summary-metric-bar-item-frame{padding:15px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CustomSummaryMetricBarItemComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'opal-lib-custom-summary-metric-bar-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"getSummaryMetricBarItemClasses()\">\n <ng-content></ng-content>\n</div>\n", styles: [".custom-summary-metric-bar-item-frame{padding:15px}\n"] }]
27
+ }], propDecorators: { backgroundColour: [{
28
+ type: Input,
29
+ args: [{ required: false }]
30
+ }], itemClasses: [{
31
+ type: Input,
32
+ args: [{ required: false }]
33
+ }], hostClasses: [{
34
+ type: HostBinding,
35
+ args: ['class']
36
+ }] } });
37
+
38
+ /**
39
+ * Generated bundle index. Do not edit.
40
+ */
41
+
42
+ export { CustomSummaryMetricBarItemComponent };
43
+ //# sourceMappingURL=hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs","sources":["../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item.component.ts","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/custom-summary-metric-bar-item.component.html","../../../projects/opal-frontend-common/components/custom/custom-summary-metric-bar/custom-summary-metric-bar-item/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.ts"],"sourcesContent":["import { Component, Input, ChangeDetectionStrategy, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-custom-summary-metric-bar-item',\n templateUrl: './custom-summary-metric-bar-item.component.html',\n styleUrls: ['./custom-summary-metric-bar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomSummaryMetricBarItemComponent {\n @Input({ required: false }) backgroundColour: string = 'govuk-light-grey-background-colour';\n @Input({ required: false }) itemClasses: string = 'govuk-grid-column-one-quarter';\n\n @HostBinding('class')\n get hostClasses(): string {\n return this.itemClasses;\n }\n\n /**\n * Returns the CSS class names for the summary metric bar item.\n *\n * This method generates a string containing the default class \"custom-summary-metric-bar-item-frame\"\n * combined with additional classes determined by the component's background and text color properties.\n *\n * @returns {string} A space-separated list of CSS classes to apply to the component.\n */\n public getSummaryMetricBarItemClasses(): string {\n return `custom-summary-metric-bar-item-frame ${this.backgroundColour}`;\n }\n}\n","<div [class]=\"getSummaryMetricBarItemClasses()\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAQa,mCAAmC,CAAA;IAClB,gBAAgB,GAAW,oCAAoC;IAC/D,WAAW,GAAW,+BAA+B;AAEjF,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;;;;;;AAOG;IACI,8BAA8B,GAAA;AACnC,QAAA,OAAO,CAAA,qCAAA,EAAwC,IAAI,CAAC,gBAAgB,EAAE;IACxE;wGAnBW,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,wOCRhD,2FAGA,EAAA,MAAA,EAAA,CAAA,uDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDKa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;+BACE,yCAAyC,EAAA,eAAA,EAGlC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2FAAA,EAAA,MAAA,EAAA,CAAA,uDAAA,CAAA,EAAA;8BAGnB,gBAAgB,EAAA,CAAA;sBAA3C,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;gBACE,WAAW,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAGtB,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;;AEZtB;;AAEG;;;;"}