@hmcts/rpx-xui-common-lib 2.1.7-angular-upgrade-11 → 2.1.7-javascript-void

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 (361) hide show
  1. package/README.md +1 -1
  2. package/esm2022/hmcts-rpx-xui-common-lib.mjs +5 -0
  3. package/esm2022/lib/components/accessibility/accessibility.component.mjs +833 -0
  4. package/esm2022/lib/components/checkbox-list/checkbox-list.component.mjs +232 -0
  5. package/esm2022/lib/components/contact-details/contact-details.component.mjs +123 -0
  6. package/esm2022/lib/components/cookie-banner/cookie-banner.component.mjs +151 -0
  7. package/esm2022/lib/components/due-date/due-date.component.mjs +141 -0
  8. package/esm2022/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +80 -0
  9. package/esm2022/lib/components/find-location/find-location.component.mjs +220 -0
  10. package/esm2022/lib/components/find-person/find-person.component.mjs +234 -0
  11. package/esm2022/lib/components/find-service/find-service.component.mjs +193 -0
  12. package/esm2022/lib/components/find-task-name/find-task-name.component.mjs +200 -0
  13. package/esm2022/lib/components/generic-filter/generic-filter-utils.mjs +21 -0
  14. package/esm2022/lib/components/generic-filter/generic-filter.component.mjs +1224 -0
  15. package/esm2022/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +56 -0
  16. package/esm2022/lib/components/invite-user-form/invite-user-form.component.mjs +51 -0
  17. package/esm2022/lib/components/invite-user-permissions/invite-user-permission.component.mjs +54 -0
  18. package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +33 -0
  19. package/esm2022/lib/components/pagination/pagination.component.mjs +92 -0
  20. package/esm2022/lib/components/public_api.mjs +39 -0
  21. package/esm2022/lib/components/search-judicials/search-judicials.component.mjs +185 -0
  22. package/esm2022/lib/components/search-location/search-location.component.mjs +240 -0
  23. package/esm2022/lib/components/search-service/search-service.component.mjs +94 -0
  24. package/esm2022/lib/components/search-venue/search-venue.component.mjs +188 -0
  25. package/esm2022/lib/components/selected-case/selected-case.component.mjs +381 -0
  26. package/esm2022/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +135 -0
  27. package/esm2022/lib/components/selected-case-list/selected-case-list.component.mjs +98 -0
  28. package/esm2022/lib/components/service-message/service-message.component.mjs +62 -0
  29. package/esm2022/lib/components/service-messages/service-messages.component.mjs +167 -0
  30. package/esm2022/lib/components/share-case/share-case.component.mjs +427 -0
  31. package/esm2022/lib/components/share-case-confirm/share-case-confirm.component.mjs +85 -0
  32. package/esm2022/lib/components/tab/tab.component.mjs +40 -0
  33. package/esm2022/lib/components/tc-confirm/tc-confirm.component.mjs +66 -0
  34. package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +17 -0
  35. package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +17 -0
  36. package/esm2022/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +58 -0
  37. package/esm2022/lib/components/user-details/user-details.component.mjs +276 -0
  38. package/esm2022/lib/components/user-list/user-list.component.mjs +100 -0
  39. package/esm2022/lib/components/user-select/user-select.component.mjs +94 -0
  40. package/esm2022/lib/components/write-address/write-address.component.mjs +342 -0
  41. package/esm2022/lib/components/write-address-inputs/write-address-inputs.component.mjs +165 -0
  42. package/esm2022/lib/directives/feature-toggle/feature-toggle.directive.mjs +41 -0
  43. package/esm2022/lib/directives/let/let.directive.mjs +29 -0
  44. package/esm2022/lib/exui-common-lib.module.mjs +313 -0
  45. package/esm2022/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +55 -0
  46. package/esm2022/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +137 -0
  47. package/esm2022/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +127 -0
  48. package/esm2022/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +46 -0
  49. package/esm2022/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +79 -0
  50. package/esm2022/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +79 -0
  51. package/esm2022/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +45 -0
  52. package/esm2022/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +71 -0
  53. package/esm2022/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +84 -0
  54. package/esm2022/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +48 -0
  55. package/esm2022/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +42 -0
  56. package/esm2022/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +80 -0
  57. package/esm2022/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +185 -0
  58. package/esm2022/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +57 -0
  59. package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs +2 -0
  60. package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +111 -0
  61. package/esm2022/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +140 -0
  62. package/esm2022/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +34 -0
  63. package/esm2022/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +129 -0
  64. package/esm2022/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +204 -0
  65. package/esm2022/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +60 -0
  66. package/esm2022/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +58 -0
  67. package/esm2022/lib/gov-ui/directives/remove-host.directive.mjs +30 -0
  68. package/esm2022/lib/gov-ui/gov-ui.service.mjs +14 -0
  69. package/esm2022/lib/gov-ui/models/checkboxes-model.mjs +2 -0
  70. package/{esm2015/lib/gov-ui/models/gov-ui-config-model.js → esm2022/lib/gov-ui/models/gov-ui-config-model.mjs} +1 -1
  71. package/{esm2015/lib/gov-ui/models/public_api.js → esm2022/lib/gov-ui/models/public_api.mjs} +1 -2
  72. package/esm2022/lib/gov-ui/models/radio-buttons.model.mjs +2 -0
  73. package/esm2022/lib/gov-ui/util/helpers/html-templates.helper.mjs +22 -0
  74. package/{esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js → esm2022/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs} +1 -1
  75. package/{esm2015/lib/gov-ui/validators/date.validator.js → esm2022/lib/gov-ui/validators/date.validator.mjs} +1 -1
  76. package/esm2022/lib/gov-ui/validators/radio-group.validator.mjs +15 -0
  77. package/esm2022/lib/models/address-message.enum.mjs +11 -0
  78. package/esm2022/lib/models/address-option.model.mjs +21 -0
  79. package/esm2022/lib/models/address.model.mjs +4 -0
  80. package/{esm2015/lib/models/contact-details.model.js → esm2022/lib/models/contact-details.model.mjs} +1 -1
  81. package/esm2022/lib/models/feature-user.mjs +5 -0
  82. package/esm2022/lib/models/filter.model.mjs +3 -0
  83. package/esm2022/lib/models/index.mjs +19 -0
  84. package/esm2022/lib/models/location.model.mjs +7 -0
  85. package/esm2022/lib/models/person.model.mjs +21 -0
  86. package/{esm2015/lib/models/public_api.js → esm2022/lib/models/public_api.mjs} +2 -1
  87. package/{esm2015/lib/models/search-options.model.js → esm2022/lib/models/search-options.model.mjs} +1 -1
  88. package/esm2022/lib/models/service-message.model.mjs +2 -0
  89. package/esm2022/lib/models/task-name.model.mjs +2 -0
  90. package/esm2022/lib/models/user-access-type.model.mjs +2 -0
  91. package/esm2022/lib/models/user-details.model.mjs +2 -0
  92. package/esm2022/lib/pipes/capitalize/capitalize.pipe.mjs +15 -0
  93. package/esm2022/lib/pipes/index.mjs +2 -0
  94. package/esm2022/lib/services/address/address-parser.mjs +76 -0
  95. package/esm2022/lib/services/address/address-type.enum.mjs +7 -0
  96. package/esm2022/lib/services/address/address.service.mjs +55 -0
  97. package/esm2022/lib/services/case-sharing-state/case-sharing-state.service.mjs +170 -0
  98. package/esm2022/lib/services/cookie/cookie.service.mjs +48 -0
  99. package/esm2022/lib/services/feature-toggle/feature-toggle.guard.mjs +37 -0
  100. package/esm2022/lib/services/feature-toggle/feature-toggle.service.mjs +33 -0
  101. package/esm2022/lib/services/feature-toggle/launch-darkly.service.mjs +70 -0
  102. package/esm2022/lib/services/filter/filter.service.mjs +95 -0
  103. package/esm2022/lib/services/find-person/find-person.service.mjs +92 -0
  104. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +73 -0
  105. package/esm2022/lib/services/google-tag-manager/google-tag-manager.service.mjs +85 -0
  106. package/{esm2015/lib/services/loading/loading.service.js → esm2022/lib/services/loading/loading.service.mjs} +8 -6
  107. package/esm2022/lib/services/locations/location.service.mjs +38 -0
  108. package/{esm2015/lib/services/manage-session/manage-session.services.js → esm2022/lib/services/manage-session/manage-session.services.mjs} +8 -10
  109. package/esm2022/lib/services/public-api.mjs +18 -0
  110. package/esm2022/lib/services/ref-data/index.mjs +4 -0
  111. package/esm2022/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs +2 -0
  112. package/esm2022/lib/services/ref-data/models/ref-data-region.model.mjs +2 -0
  113. package/esm2022/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs +2 -0
  114. package/esm2022/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +33 -0
  115. package/esm2022/lib/services/ref-data/ref-data.service.mjs +34 -0
  116. package/esm2022/lib/services/role-guard/role.guard.mjs +43 -0
  117. package/esm2022/lib/services/role-guard/role.service.mjs +22 -0
  118. package/esm2022/lib/services/storage/session-storage/session-storage.service.mjs +43 -0
  119. package/esm2022/lib/services/task-name/task-name.service.mjs +35 -0
  120. package/esm2022/lib/services/timeout-notifications/timeout-notifications.service.mjs +103 -0
  121. package/{esm2015/public-api.js → esm2022/public-api.mjs} +2 -1
  122. package/fesm2022/hmcts-rpx-xui-common-lib.mjs +10386 -0
  123. package/fesm2022/hmcts-rpx-xui-common-lib.mjs.map +1 -0
  124. package/index.d.ts +5 -0
  125. package/lib/components/accessibility/accessibility.component.d.ts +7 -1
  126. package/lib/components/checkbox-list/checkbox-list.component.d.ts +8 -2
  127. package/lib/components/contact-details/contact-details.component.d.ts +3 -0
  128. package/lib/components/cookie-banner/cookie-banner.component.d.ts +5 -1
  129. package/lib/components/due-date/due-date.component.d.ts +8 -2
  130. package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +3 -0
  131. package/lib/components/find-location/find-location.component.d.ts +12 -6
  132. package/lib/components/find-person/find-person.component.d.ts +5 -2
  133. package/lib/components/find-service/find-service.component.d.ts +24 -9
  134. package/lib/components/find-task-name/find-task-name.component.d.ts +44 -0
  135. package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -5
  136. package/lib/components/generic-filter/generic-filter.component.d.ts +25 -6
  137. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +3 -0
  138. package/lib/components/invite-user-form/invite-user-form.component.d.ts +3 -0
  139. package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +3 -0
  140. package/lib/components/loading-spinner/loading-spinner.component.d.ts +8 -1
  141. package/lib/components/pagination/pagination.component.d.ts +3 -0
  142. package/lib/components/public_api.d.ts +6 -0
  143. package/lib/components/search-judicials/search-judicials.component.d.ts +3 -0
  144. package/lib/components/search-location/search-location.component.d.ts +25 -20
  145. package/lib/components/search-service/search-service.component.d.ts +16 -9
  146. package/lib/components/search-venue/search-venue.component.d.ts +3 -1
  147. package/lib/components/selected-case/selected-case.component.d.ts +3 -0
  148. package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +3 -0
  149. package/lib/components/selected-case-list/selected-case-list.component.d.ts +3 -0
  150. package/lib/components/service-message/service-message.component.d.ts +9 -4
  151. package/lib/components/service-messages/service-messages.component.d.ts +15 -5
  152. package/lib/components/share-case/share-case.component.d.ts +4 -0
  153. package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +3 -0
  154. package/lib/components/tab/tab.component.d.ts +3 -0
  155. package/lib/components/tc-confirm/tc-confirm.component.d.ts +3 -0
  156. package/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.d.ts +3 -0
  157. package/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.d.ts +3 -0
  158. package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +3 -0
  159. package/lib/components/user-details/user-details.component.d.ts +4 -0
  160. package/lib/components/user-list/user-list.component.d.ts +3 -0
  161. package/lib/components/user-select/user-select.component.d.ts +5 -3
  162. package/lib/components/write-address/write-address.component.d.ts +45 -0
  163. package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +16 -0
  164. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +3 -0
  165. package/lib/directives/let/let.directive.d.ts +3 -0
  166. package/lib/exui-common-lib.module.d.ts +83 -4
  167. package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +3 -0
  168. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +17 -5
  169. package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +3 -0
  170. package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +3 -0
  171. package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +3 -0
  172. package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +3 -0
  173. package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +3 -0
  174. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +4 -2
  175. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +4 -0
  176. package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +3 -0
  177. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +5 -2
  178. package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +3 -0
  179. package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +3 -0
  180. package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +3 -0
  181. package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +7 -0
  182. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +7 -2
  183. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +3 -0
  184. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +3 -0
  185. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +6 -3
  186. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +3 -0
  187. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +3 -0
  188. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +3 -0
  189. package/lib/gov-ui/directives/remove-host.directive.d.ts +3 -0
  190. package/lib/gov-ui/gov-ui.service.d.ts +3 -0
  191. package/lib/gov-ui/models/checkboxes-model.d.ts +4 -7
  192. package/lib/gov-ui/models/gov-ui-config-model.d.ts +2 -0
  193. package/lib/gov-ui/models/public_api.d.ts +0 -1
  194. package/lib/gov-ui/models/radio-buttons.model.d.ts +9 -0
  195. package/lib/models/address-message.enum.d.ts +9 -0
  196. package/lib/models/address-option.model.d.ts +9 -0
  197. package/lib/models/address.model.d.ts +9 -0
  198. package/lib/models/contact-details.model.d.ts +4 -0
  199. package/lib/models/feature-user.d.ts +4 -6
  200. package/lib/models/filter.model.d.ts +42 -9
  201. package/lib/models/index.d.ts +4 -0
  202. package/lib/models/location.model.d.ts +12 -12
  203. package/lib/models/person.model.d.ts +5 -3
  204. package/lib/models/public_api.d.ts +1 -0
  205. package/lib/models/search-options.model.d.ts +1 -1
  206. package/lib/models/service-message.model.d.ts +8 -0
  207. package/lib/models/task-name.model.d.ts +4 -0
  208. package/lib/models/user-access-type.model.d.ts +6 -0
  209. package/lib/models/user-details.model.d.ts +2 -0
  210. package/lib/pipes/capitalize/capitalize.pipe.d.ts +7 -0
  211. package/lib/pipes/index.d.ts +1 -0
  212. package/lib/services/address/address-parser.d.ts +17 -0
  213. package/lib/services/address/address-type.enum.d.ts +5 -0
  214. package/lib/services/address/address.service.d.ts +15 -0
  215. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +3 -0
  216. package/lib/services/cookie/cookie.service.d.ts +3 -0
  217. package/lib/services/feature-toggle/feature-toggle.guard.d.ts +8 -2
  218. package/lib/services/feature-toggle/feature-toggle.service.d.ts +4 -0
  219. package/lib/services/feature-toggle/launch-darkly.service.d.ts +14 -10
  220. package/lib/services/filter/filter.service.d.ts +6 -0
  221. package/lib/services/find-person/find-person.service.d.ts +5 -2
  222. package/lib/services/google-analytics/google-analytics.service.d.ts +4 -1
  223. package/lib/services/google-tag-manager/google-tag-manager.service.d.ts +5 -1
  224. package/lib/services/loading/loading.service.d.ts +3 -0
  225. package/lib/services/locations/location.service.d.ts +4 -1
  226. package/lib/services/manage-session/manage-session.services.d.ts +3 -0
  227. package/lib/services/public-api.d.ts +2 -0
  228. package/lib/services/ref-data/index.d.ts +3 -0
  229. package/lib/services/ref-data/models/ref-data-htmcs-service.model.d.ts +13 -0
  230. package/lib/services/ref-data/models/ref-data-region.model.d.ts +4 -0
  231. package/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.d.ts +8 -0
  232. package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +18 -0
  233. package/lib/services/ref-data/ref-data.service.d.ts +17 -0
  234. package/lib/services/role-guard/role.guard.d.ts +7 -3
  235. package/lib/services/role-guard/role.service.d.ts +8 -4
  236. package/lib/services/{session-storage → storage/session-storage}/session-storage.service.d.ts +3 -0
  237. package/lib/services/task-name/task-name.service.d.ts +17 -0
  238. package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +8 -2
  239. package/package.json +21 -11
  240. package/public-api.d.ts +1 -0
  241. package/bundles/hmcts-rpx-xui-common-lib.umd.js +0 -5141
  242. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +0 -1
  243. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +0 -2
  244. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +0 -1
  245. package/esm2015/hmcts-rpx-xui-common-lib.js +0 -70
  246. package/esm2015/lib/components/accessibility/accessibility.component.js +0 -14
  247. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +0 -177
  248. package/esm2015/lib/components/contact-details/contact-details.component.js +0 -17
  249. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +0 -68
  250. package/esm2015/lib/components/due-date/due-date.component.js +0 -115
  251. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +0 -28
  252. package/esm2015/lib/components/find-location/find-location.component.js +0 -124
  253. package/esm2015/lib/components/find-person/find-person.component.js +0 -118
  254. package/esm2015/lib/components/find-service/find-service.component.js +0 -31
  255. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +0 -21
  256. package/esm2015/lib/components/generic-filter/generic-filter.component.js +0 -387
  257. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +0 -27
  258. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +0 -25
  259. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +0 -25
  260. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +0 -18
  261. package/esm2015/lib/components/pagination/pagination.component.js +0 -28
  262. package/esm2015/lib/components/public_api.js +0 -33
  263. package/esm2015/lib/components/search-judicials/search-judicials.component.js +0 -126
  264. package/esm2015/lib/components/search-location/search-location.component.js +0 -133
  265. package/esm2015/lib/components/search-service/search-service.component.js +0 -31
  266. package/esm2015/lib/components/search-venue/search-venue.component.js +0 -123
  267. package/esm2015/lib/components/selected-case/selected-case.component.js +0 -158
  268. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +0 -36
  269. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +0 -49
  270. package/esm2015/lib/components/service-message/service-message.component.js +0 -22
  271. package/esm2015/lib/components/service-messages/service-messages.component.js +0 -48
  272. package/esm2015/lib/components/share-case/share-case.component.js +0 -205
  273. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +0 -34
  274. package/esm2015/lib/components/tab/tab.component.js +0 -21
  275. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +0 -22
  276. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +0 -13
  277. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +0 -13
  278. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +0 -16
  279. package/esm2015/lib/components/user-details/user-details.component.js +0 -41
  280. package/esm2015/lib/components/user-list/user-list.component.js +0 -33
  281. package/esm2015/lib/components/user-select/user-select.component.js +0 -58
  282. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +0 -42
  283. package/esm2015/lib/directives/let/let.directive.js +0 -30
  284. package/esm2015/lib/exui-common-lib.module.js +0 -160
  285. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +0 -31
  286. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +0 -21
  287. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +0 -64
  288. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +0 -22
  289. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -28
  290. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +0 -35
  291. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +0 -23
  292. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +0 -34
  293. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +0 -21
  294. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +0 -33
  295. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +0 -21
  296. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +0 -27
  297. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +0 -39
  298. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +0 -27
  299. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +0 -23
  300. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +0 -48
  301. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +0 -19
  302. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +0 -41
  303. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +0 -28
  304. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +0 -23
  305. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +0 -15
  306. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +0 -29
  307. package/esm2015/lib/gov-ui/gov-ui.service.js +0 -13
  308. package/esm2015/lib/gov-ui/models/banner-data-model.js +0 -2
  309. package/esm2015/lib/gov-ui/models/checkboxes-model.js +0 -2
  310. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +0 -2
  311. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +0 -22
  312. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +0 -22
  313. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +0 -15
  314. package/esm2015/lib/models/feature-user.js +0 -5
  315. package/esm2015/lib/models/filter.model.js +0 -3
  316. package/esm2015/lib/models/index.js +0 -15
  317. package/esm2015/lib/models/location.model.js +0 -7
  318. package/esm2015/lib/models/person.model.js +0 -19
  319. package/esm2015/lib/models/user-details.model.js +0 -2
  320. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +0 -157
  321. package/esm2015/lib/services/cookie/cookie.service.js +0 -47
  322. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +0 -35
  323. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +0 -27
  324. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +0 -59
  325. package/esm2015/lib/services/filter/filter.service.js +0 -64
  326. package/esm2015/lib/services/find-person/find-person.service.js +0 -106
  327. package/esm2015/lib/services/google-analytics/google-analytics.service.js +0 -68
  328. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +0 -71
  329. package/esm2015/lib/services/locations/location.service.js +0 -39
  330. package/esm2015/lib/services/public-api.js +0 -16
  331. package/esm2015/lib/services/role-guard/role.guard.js +0 -37
  332. package/esm2015/lib/services/role-guard/role.service.js +0 -20
  333. package/esm2015/lib/services/session-storage/session-storage.service.js +0 -41
  334. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +0 -94
  335. package/fesm2015/hmcts-rpx-xui-common-lib.js +0 -4174
  336. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +0 -1
  337. package/hmcts-rpx-xui-common-lib.d.ts +0 -69
  338. package/hmcts-rpx-xui-common-lib.metadata.json +0 -1
  339. package/lib/gov-ui/models/banner-data-model.d.ts +0 -4
  340. package/lib/gov-ui/models/isession-storage.interface.d.ts +0 -4
  341. package/lib/gov-ui/util/session-storage/session-storage-utils.d.ts +0 -6
  342. /package/{esm2015/lib/components/index.js → esm2022/lib/components/index.mjs} +0 -0
  343. /package/{esm2015/lib/directives/index.js → esm2022/lib/directives/index.mjs} +0 -0
  344. /package/{esm2015/lib/directives/public-api.js → esm2022/lib/directives/public-api.mjs} +0 -0
  345. /package/{esm2015/lib/gov-ui/components/index.js → esm2022/lib/gov-ui/components/index.mjs} +0 -0
  346. /package/{esm2015/lib/gov-ui/components/public_api.js → esm2022/lib/gov-ui/components/public_api.mjs} +0 -0
  347. /package/{esm2015/lib/gov-ui/index.js → esm2022/lib/gov-ui/index.mjs} +0 -0
  348. /package/{esm2015/lib/gov-ui/models/error-messages-model.js → esm2022/lib/gov-ui/models/error-messages-model.mjs} +0 -0
  349. /package/{esm2015/lib/gov-ui/models/index.js → esm2022/lib/gov-ui/models/index.mjs} +0 -0
  350. /package/{esm2015/lib/gov-ui/public_api.js → esm2022/lib/gov-ui/public_api.mjs} +0 -0
  351. /package/{esm2015/lib/gov-ui/validators/index.js → esm2022/lib/gov-ui/validators/index.mjs} +0 -0
  352. /package/{esm2015/lib/gov-ui/validators/public_api.js → esm2022/lib/gov-ui/validators/public_api.mjs} +0 -0
  353. /package/{esm2015/lib/models/case-share.model.js → esm2022/lib/models/case-share.model.mjs} +0 -0
  354. /package/{esm2015/lib/models/due-date.model.js → esm2022/lib/models/due-date.model.mjs} +0 -0
  355. /package/{esm2015/lib/models/idle-config.model.js → esm2022/lib/models/idle-config.model.mjs} +0 -0
  356. /package/{esm2015/lib/models/pagination.model.js → esm2022/lib/models/pagination.model.mjs} +0 -0
  357. /package/{esm2015/lib/models/tcDocument.model.js → esm2022/lib/models/tcDocument.model.mjs} +0 -0
  358. /package/{esm2015/lib/models/timeout-notification.model.js → esm2022/lib/models/timeout-notification.model.mjs} +0 -0
  359. /package/{esm2015/lib/models/user.model.js → esm2022/lib/models/user.model.mjs} +0 -0
  360. /package/{esm2015/lib/services/index.js → esm2022/lib/services/index.mjs} +0 -0
  361. /package/{esm2015/lib/window.js → esm2022/lib/window.mjs} +0 -0
@@ -0,0 +1,427 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { Observable } from 'rxjs';
4
+ import { tap } from 'rxjs/operators';
5
+ import { SharedCaseErrorMessages } from '../../models/case-share.model';
6
+ import { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';
7
+ import { UserSelectComponent } from '../user-select/user-select.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../services/case-sharing-state/case-sharing-state.service";
10
+ import * as i2 from "@angular/router";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "@angular/forms";
13
+ import * as i5 from "../selected-case-list/selected-case-list.component";
14
+ import * as i6 from "../user-select/user-select.component";
15
+ import * as i7 from "../../gov-ui/components/hmcts-error-summary/hmcts-error-summary.component";
16
+ import * as i8 from "../../gov-ui/components/gov-uk-error-message/gov-uk-error-message.component";
17
+ import * as i9 from "rpx-xui-translation";
18
+ const _c0 = a0 => ({ "govuk-form-group--error": a0 });
19
+ function ShareCaseComponent_h1_1_span_1_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelementStart(0, "span", 27);
21
+ i0.ɵɵtext(1);
22
+ i0.ɵɵpipe(2, "rpxTranslate");
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ const ctx_r0 = i0.ɵɵnextContext(2);
26
+ i0.ɵɵadvance();
27
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.fnTitle));
28
+ } }
29
+ function ShareCaseComponent_h1_1_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "h1", 25);
31
+ i0.ɵɵtemplate(1, ShareCaseComponent_h1_1_span_1_Template, 3, 3, "span", 26);
32
+ i0.ɵɵtext(2);
33
+ i0.ɵɵpipe(3, "rpxTranslate");
34
+ i0.ɵɵelementEnd();
35
+ } if (rf & 2) {
36
+ const ctx_r0 = i0.ɵɵnextContext();
37
+ i0.ɵɵadvance();
38
+ i0.ɵɵproperty("ngIf", ctx_r0.fnTitle);
39
+ i0.ɵɵadvance();
40
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, ctx_r0.title), "\n");
41
+ } }
42
+ function ShareCaseComponent_div_29_option_12_Template(rf, ctx) { if (rf & 1) {
43
+ i0.ɵɵelementStart(0, "option", 34);
44
+ i0.ɵɵtext(1);
45
+ i0.ɵɵelementEnd();
46
+ } if (rf & 2) {
47
+ const user_r3 = ctx.$implicit;
48
+ i0.ɵɵproperty("ngValue", user_r3);
49
+ i0.ɵɵadvance();
50
+ i0.ɵɵtextInterpolate3("", user_r3.firstName, " ", user_r3.lastName, " - ", user_r3.email, "");
51
+ } }
52
+ function ShareCaseComponent_div_29_Template(rf, ctx) { if (rf & 1) {
53
+ const _r2 = i0.ɵɵgetCurrentView();
54
+ i0.ɵɵelementStart(0, "div", 3)(1, "label", 28);
55
+ i0.ɵɵtext(2);
56
+ i0.ɵɵpipe(3, "rpxTranslate");
57
+ i0.ɵɵelementEnd();
58
+ i0.ɵɵelementStart(4, "span", 29);
59
+ i0.ɵɵtext(5);
60
+ i0.ɵɵpipe(6, "rpxTranslate");
61
+ i0.ɵɵelementEnd();
62
+ i0.ɵɵelementStart(7, "div", 6)(8, "div", 7)(9, "select", 30);
63
+ i0.ɵɵlistener("change", function ShareCaseComponent_div_29_Template_select_change_9_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onSelectedUserToRemoveChanged($event.target.value)); });
64
+ i0.ɵɵelementStart(10, "option", 31);
65
+ i0.ɵɵtext(11, "Select a person");
66
+ i0.ɵɵelementEnd();
67
+ i0.ɵɵtemplate(12, ShareCaseComponent_div_29_option_12_Template, 2, 4, "option", 32);
68
+ i0.ɵɵelementEnd()();
69
+ i0.ɵɵelementStart(13, "div", 9)(14, "button", 33);
70
+ i0.ɵɵpipe(15, "rpxTranslate");
71
+ i0.ɵɵlistener("click", function ShareCaseComponent_div_29_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.removeUser()); });
72
+ i0.ɵɵtext(16);
73
+ i0.ɵɵpipe(17, "rpxTranslate");
74
+ i0.ɵɵelementStart(18, "span", 11);
75
+ i0.ɵɵtext(19);
76
+ i0.ɵɵpipe(20, "rpxTranslate");
77
+ i0.ɵɵelementEnd()()()()();
78
+ } if (rf & 2) {
79
+ const ctx_r0 = i0.ɵɵnextContext();
80
+ i0.ɵɵadvance(2);
81
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 8, "Remove a person from all cases"), " ");
82
+ i0.ɵɵadvance(3);
83
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 10, "Select a person to remove them from all selected cases."), " ");
84
+ i0.ɵɵadvance(4);
85
+ i0.ɵɵproperty("value", ctx_r0.selectedUserToRemove);
86
+ i0.ɵɵadvance();
87
+ i0.ɵɵproperty("ngValue", null);
88
+ i0.ɵɵadvance(2);
89
+ i0.ɵɵproperty("ngForOf", ctx_r0.assignedUsers);
90
+ i0.ɵɵadvance(2);
91
+ i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(15, 12, "Remove user from selected cases"));
92
+ i0.ɵɵadvance(2);
93
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 14, "Remove"), " ");
94
+ i0.ɵɵadvance(3);
95
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 16, "user"), "");
96
+ } }
97
+ function ShareCaseComponent_div_35_Template(rf, ctx) { if (rf & 1) {
98
+ const _r4 = i0.ɵɵgetCurrentView();
99
+ i0.ɵɵelementStart(0, "div", 35)(1, "xuilib-selected-case-list", 36);
100
+ i0.ɵɵlistener("unselect", function ShareCaseComponent_div_35_Template_xuilib_selected_case_list_unselect_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onUnselect($event)); })("synchronizeStore", function ShareCaseComponent_div_35_Template_xuilib_selected_case_list_synchronizeStore_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onSynchronizeStore($event)); });
101
+ i0.ɵɵelementEnd()();
102
+ } if (rf & 2) {
103
+ const ctx_r0 = i0.ɵɵnextContext();
104
+ i0.ɵɵadvance();
105
+ i0.ɵɵproperty("shareCases$", ctx_r0.shareCases$)("removeUserFromCaseToggleOn", ctx_r0.removeUserFromCaseToggleOn);
106
+ } }
107
+ function ShareCaseComponent_div_36_Template(rf, ctx) { if (rf & 1) {
108
+ i0.ɵɵelementStart(0, "div", 37);
109
+ i0.ɵɵtext(1);
110
+ i0.ɵɵpipe(2, "rpxTranslate");
111
+ i0.ɵɵelementEnd();
112
+ } if (rf & 2) {
113
+ const ctx_r0 = i0.ɵɵnextContext();
114
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0, ctx_r0.shareCaseErrorMessage.messages && ctx_r0.shareCaseErrorMessage.messages.length > 0));
115
+ i0.ɵɵadvance();
116
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "No cases to display."), " ");
117
+ } }
118
+ export class ShareCaseComponent {
119
+ constructor(stateService, router) {
120
+ this.stateService = stateService;
121
+ this.router = router;
122
+ this.shareCases = []; // cases selected for sharing
123
+ this.continueAllowed = false;
124
+ this.selectedUserToRemove = null;
125
+ this.removeUserFromCaseToggleOn = false;
126
+ this.users = []; // users of this organisation the cases can be shared with
127
+ this.confirmLink = '';
128
+ this.cancelLink = '';
129
+ this.showRemoveUsers = false;
130
+ this.fnTitle = '';
131
+ this.title = '';
132
+ this.unselect = new EventEmitter();
133
+ this.synchronizeStore = new EventEmitter();
134
+ this.validationErrors = [];
135
+ }
136
+ ngOnInit() {
137
+ this.shareCases$
138
+ .pipe(tap(sharedCases => {
139
+ // Update the list of users assigned to at least one case
140
+ this.getAssignedUsers(sharedCases.filter(sharedCase => sharedCase.sharedWith && sharedCase.sharedWith.length > 0));
141
+ }))
142
+ .subscribe(shareCases => {
143
+ this.shareCases = shareCases;
144
+ this.stateService.setCases(shareCases);
145
+ // Set the config to be used by the xuilib-gov-uk-error-message component, in particular the element ID to
146
+ // which the error message is associated
147
+ if (shareCases) {
148
+ this.selectedCasesErrorMessageConfig = {
149
+ id: shareCases.length > 0 ? 'cases' : 'noCaseDisplay'
150
+ };
151
+ }
152
+ });
153
+ this.shareCases$ = this.stateService.state;
154
+ this.shareCaseErrorMessage = { isInvalid: false, messages: [] };
155
+ }
156
+ onUnselect(c) {
157
+ this.validationErrors = [];
158
+ if (this.stateService.getCases().length === 1) {
159
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OneCaseMustBeSelected });
160
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OneCaseMustBeSelected] };
161
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
162
+ }
163
+ else {
164
+ this.unselect.emit(c);
165
+ this.stateService.removeCase(c.caseId);
166
+ }
167
+ }
168
+ onSynchronizeStore(event) {
169
+ this.synchronizeStore.emit(event);
170
+ }
171
+ onSelectedUser(user) {
172
+ this.selectedUser = user;
173
+ }
174
+ addUser() {
175
+ const newSharedCases = this.stateService.requestShare(this.selectedUser);
176
+ this.selectedUser = null;
177
+ if (this.userSelect) {
178
+ this.userSelect.clear();
179
+ }
180
+ this.synchronizeStore.emit(newSharedCases);
181
+ // Update the list of assigned users (which includes pending users)
182
+ this.getAssignedUsers(newSharedCases);
183
+ }
184
+ removeUser() {
185
+ if (this.selectedUserToRemove) {
186
+ const newSharedCases = this.stateService.requestUnshare(this.selectedUserToRemove);
187
+ this.synchronizeStore.emit(newSharedCases);
188
+ }
189
+ }
190
+ isDisabledAdd() {
191
+ return this.selectedUser === null || this.shareCases.length === 0;
192
+ }
193
+ /**
194
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
195
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
196
+ */
197
+ setContinueAllowed() {
198
+ // Always start with continueAllowed = false. This covers the scenario where a user might add someone for sharing
199
+ // a case (so, continueAllowed = true), then removes the same user before trying to continue. This would
200
+ // erroneously leave continueAllowed as true
201
+ this.continueAllowed = false;
202
+ this.shareCases$.subscribe(shareCases => {
203
+ for (const caseState of shareCases) {
204
+ if (caseState.pendingShares && caseState.pendingShares.length > 0) {
205
+ this.continueAllowed = true;
206
+ break;
207
+ }
208
+ if (caseState.pendingUnshares && caseState.pendingUnshares.length > 0) {
209
+ this.continueAllowed = true;
210
+ break;
211
+ }
212
+ }
213
+ });
214
+ }
215
+ onDeselect(sharedCase) {
216
+ if (sharedCase !== null) {
217
+ const updated = [];
218
+ for (const element of this.shareCases) {
219
+ if (element.caseId !== sharedCase.caseId) {
220
+ updated.push(element);
221
+ }
222
+ }
223
+ this.shareCases = updated;
224
+ }
225
+ this.stateService.setCases(this.shareCases);
226
+ }
227
+ onContinue() {
228
+ this.setContinueAllowed();
229
+ // If continuation is not allowed, set an error message
230
+ if (!this.continueAllowed) {
231
+ this.validationErrors = [];
232
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.NoChangesRequested });
233
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.NoChangesRequested] };
234
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
235
+ }
236
+ // Navigate to confirmation page only if allowed to continue
237
+ if (this.continueAllowed) {
238
+ // Check that no case is left unassigned; a user can be removed only if there is another current user, or if at
239
+ // least one user is to be added. Prevent navigation to confirmation page if there is at least one case left in
240
+ // an unassigned state
241
+ if (this.hasCasesLeftUnassigned(this.shareCases)) {
242
+ this.validationErrors = [];
243
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OnePersonMustBeAssigned });
244
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OnePersonMustBeAssigned] };
245
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
246
+ }
247
+ else {
248
+ this.router.navigate([this.confirmLink]);
249
+ }
250
+ }
251
+ }
252
+ /**
253
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
254
+ * @param sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
255
+ */
256
+ getAssignedUsers(sharedCases) {
257
+ const users = [];
258
+ sharedCases.forEach(sharedCase => {
259
+ if (sharedCase.sharedWith) {
260
+ sharedCase.sharedWith.forEach(user => {
261
+ if (!users.some(existingUser => user.idamId === existingUser.idamId)) {
262
+ users.push(user);
263
+ }
264
+ });
265
+ }
266
+ if (sharedCase.pendingShares) {
267
+ sharedCase.pendingShares.forEach(user => {
268
+ if (!users.some(existingUser => user.idamId === existingUser.idamId)) {
269
+ users.push(user);
270
+ }
271
+ });
272
+ }
273
+ });
274
+ this.assignedUsers = users;
275
+ }
276
+ /**
277
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
278
+ * unshares equal to the number of current shares, and there are no pending shares.
279
+ * @param sharedCases The array of shared cases to check
280
+ * @returns `true` if at least one case has the condition described above; `false` otherwise
281
+ */
282
+ hasCasesLeftUnassigned(sharedCases) {
283
+ return sharedCases.some(sharedCase => {
284
+ return sharedCase.pendingUnshares && sharedCase.sharedWith &&
285
+ sharedCase.pendingUnshares.length === sharedCase.sharedWith.length &&
286
+ (!sharedCase.pendingShares || sharedCase.pendingShares.length === 0);
287
+ });
288
+ }
289
+ // TEST-TODO
290
+ // Another place where ngModel use is removed for Angular best practice
291
+ // May cause issues but based on understanding should work
292
+ // TODO: Confirm this works correctly after Angular 18 upgrade
293
+ onSelectedUserToRemoveChanged(value) {
294
+ this.selectedUserToRemove = this.assignedUsers.find(user => `${user.firstName} ${user.lastName} - ${user.email}` === value) || null;
295
+ }
296
+ static { this.ɵfac = function ShareCaseComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ShareCaseComponent)(i0.ɵɵdirectiveInject(i1.CaseSharingStateService), i0.ɵɵdirectiveInject(i2.Router)); }; }
297
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareCaseComponent, selectors: [["xuilib-share-case"]], viewQuery: function ShareCaseComponent_Query(rf, ctx) { if (rf & 1) {
298
+ i0.ɵɵviewQuery(UserSelectComponent, 7);
299
+ } if (rf & 2) {
300
+ let _t;
301
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.userSelect = _t.first);
302
+ } }, inputs: { removeUserFromCaseToggleOn: "removeUserFromCaseToggleOn", shareCases$: "shareCases$", users: "users", confirmLink: "confirmLink", cancelLink: "cancelLink", addUserLabel: "addUserLabel", showRemoveUsers: "showRemoveUsers", fnTitle: "fnTitle", title: "title" }, outputs: { unselect: "unselect", synchronizeStore: "synchronizeStore" }, decls: 46, vars: 50, consts: [[3, "errorMessages", "header"], ["class", "govuk-heading-xl govuk-!-margin-top-2", 4, "ngIf"], ["id", "add-user"], [1, "govuk-form-group"], ["for", "add-user-input", 1, "govuk-label", "govuk-!-font-weight-bold"], ["id", "add-user-hint", 1, "govuk-hint"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds"], ["id", "add-user-input", "aria-describedby", "add-user-hint", 3, "selected", "users"], [1, "govuk-grid-column-one-thirds"], ["id", "btn-add-user", 1, "govuk-button", "govuk-button--secondary", 3, "click", "disabled", "title"], [1, "govuk-visually-hidden"], ["id", "add-user-help", "data-module", "govuk-details", 1, "govuk-details"], [1, "govuk-details__summary"], ["id", "content-why-can-not-find-email", 1, "govuk-details__summary-text"], ["id", "content-reason-can-not-find-email", 1, "govuk-details__text"], ["class", "govuk-form-group", 4, "ngIf"], ["id", "cases", 3, "ngClass"], ["id", "title-selected-cases", 1, "govuk-heading-m"], [3, "config", "errorMessage"], ["class", "govuk-accordion", "data-module", "govuk-accordion", "id", "accordion-with-summary-sections", 4, "ngIf"], ["id", "noCaseDisplay", "class", "govuk-hint", 3, "ngClass", 4, "ngIf"], ["id", "share-case-nav", 1, "govuk-button-group"], ["id", "btn-continue", "data-module", "govuk-button", 1, "govuk-button", 3, "click", "title"], ["id", "btn-cancel", "data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", 3, "title", "routerLink"], [1, "govuk-heading-xl", "govuk-!-margin-top-2"], ["class", "govuk-caption-xl", 4, "ngIf"], [1, "govuk-caption-xl"], ["for", "remove-user-input", 1, "govuk-label", "govuk-!-font-weight-bold"], ["id", "remove-user-hint", 1, "govuk-hint"], ["id", "remove-user-input", "aria-describedby", "remove-user-hint", 1, "govuk-select", 3, "change", "value"], ["selected", "", 3, "ngValue"], [3, "ngValue", 4, "ngFor", "ngForOf"], ["id", "btn-remove-user", 1, "govuk-button", "govuk-button--secondary", 3, "click", "title"], [3, "ngValue"], ["data-module", "govuk-accordion", "id", "accordion-with-summary-sections", 1, "govuk-accordion"], [3, "unselect", "synchronizeStore", "shareCases$", "removeUserFromCaseToggleOn"], ["id", "noCaseDisplay", 1, "govuk-hint", 3, "ngClass"]], template: function ShareCaseComponent_Template(rf, ctx) { if (rf & 1) {
303
+ i0.ɵɵelement(0, "xuilib-hmcts-error-summary", 0);
304
+ i0.ɵɵtemplate(1, ShareCaseComponent_h1_1_Template, 4, 4, "h1", 1);
305
+ i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "label", 4);
306
+ i0.ɵɵtext(5);
307
+ i0.ɵɵpipe(6, "rpxTranslate");
308
+ i0.ɵɵelementEnd();
309
+ i0.ɵɵelementStart(7, "span", 5);
310
+ i0.ɵɵtext(8);
311
+ i0.ɵɵpipe(9, "rpxTranslate");
312
+ i0.ɵɵelementEnd();
313
+ i0.ɵɵelementStart(10, "div", 6)(11, "div", 7)(12, "xuilib-user-select", 8);
314
+ i0.ɵɵlistener("selected", function ShareCaseComponent_Template_xuilib_user_select_selected_12_listener($event) { return ctx.onSelectedUser($event); });
315
+ i0.ɵɵelementEnd()();
316
+ i0.ɵɵelementStart(13, "div", 9)(14, "button", 10);
317
+ i0.ɵɵpipe(15, "rpxTranslate");
318
+ i0.ɵɵlistener("click", function ShareCaseComponent_Template_button_click_14_listener() { return ctx.addUser(); });
319
+ i0.ɵɵtext(16);
320
+ i0.ɵɵpipe(17, "rpxTranslate");
321
+ i0.ɵɵelementStart(18, "span", 11);
322
+ i0.ɵɵtext(19);
323
+ i0.ɵɵpipe(20, "rpxTranslate");
324
+ i0.ɵɵelementEnd()()()();
325
+ i0.ɵɵelementStart(21, "details", 12)(22, "summary", 13)(23, "span", 14);
326
+ i0.ɵɵtext(24);
327
+ i0.ɵɵpipe(25, "rpxTranslate");
328
+ i0.ɵɵelementEnd()();
329
+ i0.ɵɵelementStart(26, "div", 15);
330
+ i0.ɵɵtext(27);
331
+ i0.ɵɵpipe(28, "rpxTranslate");
332
+ i0.ɵɵelementEnd()()();
333
+ i0.ɵɵtemplate(29, ShareCaseComponent_div_29_Template, 21, 18, "div", 16);
334
+ i0.ɵɵelementEnd();
335
+ i0.ɵɵelementStart(30, "div", 17)(31, "h3", 18);
336
+ i0.ɵɵtext(32);
337
+ i0.ɵɵpipe(33, "rpxTranslate");
338
+ i0.ɵɵelementEnd();
339
+ i0.ɵɵelement(34, "xuilib-gov-uk-error-message", 19);
340
+ i0.ɵɵtemplate(35, ShareCaseComponent_div_35_Template, 2, 2, "div", 20)(36, ShareCaseComponent_div_36_Template, 3, 6, "div", 21);
341
+ i0.ɵɵelementEnd();
342
+ i0.ɵɵelementStart(37, "div", 22)(38, "button", 23);
343
+ i0.ɵɵpipe(39, "rpxTranslate");
344
+ i0.ɵɵlistener("click", function ShareCaseComponent_Template_button_click_38_listener() { return ctx.onContinue(); });
345
+ i0.ɵɵtext(40);
346
+ i0.ɵɵpipe(41, "rpxTranslate");
347
+ i0.ɵɵelementEnd();
348
+ i0.ɵɵelementStart(42, "button", 24);
349
+ i0.ɵɵpipe(43, "rpxTranslate");
350
+ i0.ɵɵtext(44);
351
+ i0.ɵɵpipe(45, "rpxTranslate");
352
+ i0.ɵɵelementEnd()();
353
+ } if (rf & 2) {
354
+ i0.ɵɵproperty("errorMessages", ctx.validationErrors)("header", "There is a problem");
355
+ i0.ɵɵadvance();
356
+ i0.ɵɵproperty("ngIf", ctx.title);
357
+ i0.ɵɵadvance(4);
358
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 24, ctx.addUserLabel));
359
+ i0.ɵɵadvance(3);
360
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 26, "Search by name or email address. You can share access with as many people as you need."), " ");
361
+ i0.ɵɵadvance(4);
362
+ i0.ɵɵproperty("users", ctx.users);
363
+ i0.ɵɵadvance(2);
364
+ i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(15, 28, "Add user to selected cases"));
365
+ i0.ɵɵproperty("disabled", ctx.isDisabledAdd());
366
+ i0.ɵɵadvance(2);
367
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 30, "Add"), " ");
368
+ i0.ɵɵadvance(3);
369
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(20, 32, "user"));
370
+ i0.ɵɵadvance(5);
371
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(25, 34, "Can't find an email address?"), " ");
372
+ i0.ɵɵadvance(3);
373
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(28, 36, "If you can't find your colleague's email address, they will need to complete their registration. Contact your administrator for help."), " ");
374
+ i0.ɵɵadvance(2);
375
+ i0.ɵɵproperty("ngIf", ctx.showRemoveUsers);
376
+ i0.ɵɵadvance();
377
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(48, _c0, ctx.shareCaseErrorMessage.messages && ctx.shareCaseErrorMessage.messages.length > 0));
378
+ i0.ɵɵadvance(2);
379
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(33, 38, "Selected cases"), " ");
380
+ i0.ɵɵadvance(2);
381
+ i0.ɵɵproperty("config", ctx.selectedCasesErrorMessageConfig)("errorMessage", ctx.shareCaseErrorMessage);
382
+ i0.ɵɵadvance();
383
+ i0.ɵɵproperty("ngIf", ctx.shareCases && ctx.shareCases.length > 0);
384
+ i0.ɵɵadvance();
385
+ i0.ɵɵproperty("ngIf", ctx.shareCases && ctx.shareCases.length === 0);
386
+ i0.ɵɵadvance(2);
387
+ i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(39, 40, "Continue"));
388
+ i0.ɵɵadvance(2);
389
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(41, 42, "Continue"), " ");
390
+ i0.ɵɵadvance(2);
391
+ i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(43, 44, "Cancel"));
392
+ i0.ɵɵproperty("routerLink", ctx.cancelLink);
393
+ i0.ɵɵadvance(2);
394
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(45, 46, "Cancel"), " ");
395
+ } }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i2.RouterLink, i5.SelectedCaseListComponent, i6.UserSelectComponent, i7.HmctsErrorSummaryComponent, i8.GovUkErrorMessageComponent, i9.RpxTranslatePipe], styles: ["select[_ngcontent-%COMP%]{width:100%}"] }); }
396
+ }
397
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ShareCaseComponent, [{
398
+ type: Component,
399
+ args: [{ selector: 'xuilib-share-case', template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel | rpxTranslate}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n {{'Search by name or email address. You can share access with as many people as you need.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n {{\"Can't find an email address?\" | rpxTranslate}}\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n {{\"If you can't find your colleague's email address, they will need to complete their registration. Contact your administrator for help.\" | rpxTranslate}}\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">\n {{'Remove a person from all cases' | rpxTranslate}}\n </label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n {{'Select a person to remove them from all selected cases.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [value]=\"selectedUserToRemove\" (change)=\"onSelectedUserToRemoveChanged($event.target.value)\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"{{'Remove user from selected cases' | rpxTranslate}}\">\n {{'Remove' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\"> {{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">\n {{'Selected cases' | rpxTranslate}}\n </h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"{{'Continue' | rpxTranslate}}\">\n {{'Continue' | rpxTranslate}}\n </button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"{{'Cancel' | rpxTranslate}}\" [routerLink]=\"cancelLink\">\n {{'Cancel' | rpxTranslate}}\n </button>\n</div>\n", styles: ["select{width:100%}\n"] }]
400
+ }], () => [{ type: i1.CaseSharingStateService }, { type: i2.Router }], { removeUserFromCaseToggleOn: [{
401
+ type: Input
402
+ }], shareCases$: [{
403
+ type: Input
404
+ }], users: [{
405
+ type: Input
406
+ }], confirmLink: [{
407
+ type: Input
408
+ }], cancelLink: [{
409
+ type: Input
410
+ }], addUserLabel: [{
411
+ type: Input
412
+ }], showRemoveUsers: [{
413
+ type: Input
414
+ }], fnTitle: [{
415
+ type: Input
416
+ }], title: [{
417
+ type: Input
418
+ }], unselect: [{
419
+ type: Output
420
+ }], synchronizeStore: [{
421
+ type: Output
422
+ }], userSelect: [{
423
+ type: ViewChild,
424
+ args: [UserSelectComponent, { static: true }]
425
+ }] }); })();
426
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShareCaseComponent, { className: "ShareCaseComponent", filePath: "lib/components/share-case/share-case.component.ts", lineNumber: 16 }); })();
427
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFjLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7SUNIekUsZ0NBQStDO0lBQUEsWUFBMEI7O0lBQUEsaUJBQU87OztJQUFqQyxjQUEwQjtJQUExQiwwREFBMEI7OztJQUQzRSw4QkFBZ0U7SUFDOUQsMkVBQStDO0lBQy9DLFlBQ0Y7O0lBQUEsaUJBQUs7OztJQUZJLGNBQWE7SUFBYixxQ0FBYTtJQUNwQixjQUNGO0lBREUsb0VBQ0Y7OztJQStDVSxrQ0FBNEQ7SUFBQSxZQUFxRDtJQUFBLGlCQUFTOzs7SUFBL0UsaUNBQWdCO0lBQUMsY0FBcUQ7SUFBckQsNkZBQXFEOzs7O0lBVnZILEFBREYs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Q1UsZ0JBQWdCO2tCQUFoQyxNQUFNO1lBS1UsVUFBVTtrQkFEMUIsU0FBUzttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O2tGQXpCckMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlc01vZGVsLCBHb3ZVaUNvbmZpZ01vZGVsIH0gZnJvbSAnLi4vLi4vZ292LXVpL21vZGVscyc7XG5pbXBvcnQgeyBTaGFyZWRDYXNlLCBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcyB9IGZyb20gJy4uLy4uL21vZGVscy9jYXNlLXNoYXJlLm1vZGVsJztcbmltcG9ydCB7IFVzZXJEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXItZGV0YWlscy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2hhcmluZy1zdGF0ZS9jYXNlLXNoYXJpbmctc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1zZWxlY3QvdXNlci1zZWxlY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNoYXJlLWNhc2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2hhcmUtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWNhc2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZUNhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzaGFyZUNhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTsgLy8gY2FzZXMgc2VsZWN0ZWQgZm9yIHNoYXJpbmdcbiAgcHVibGljIHNlbGVjdGVkQ2FzZXNFcnJvck1lc3NhZ2VDb25maWc6IEdvdlVpQ29uZmlnTW9kZWw7XG4gIHB1YmxpYyBjb250aW51ZUFsbG93ZWQgPSBmYWxzZTtcbiAgcHVibGljIGFzc2lnbmVkVXNlcnM6IFVzZXJEZXRhaWxzW107XG4gIHB1YmxpYyBzZWxlY3RlZFVzZXJUb1JlbW92ZTogVXNlckRldGFpbHMgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyByZW1vdmVVc2VyRnJvbUNhc2VUb2dnbGVPbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzaGFyZUNhc2VzJDogT2JzZXJ2YWJsZTxTaGFyZWRDYXNlW10+O1xuICBASW5wdXQoKSBwdWJsaWMgdXNlcnM6IFVzZXJEZXRhaWxzW10gPSBbXTsgLy8gdXNlcnMgb2YgdGhpcyBvcmdhbmlzYXRpb24gdGhlIGNhc2VzIGNhbiBiZSBzaGFyZWQgd2l0aFxuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maXJtTGluazogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjYW5jZWxMaW5rOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGFkZFVzZXJMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd1JlbW92ZVVzZXJzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBmblRpdGxlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHRpdGxlOiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgcHVibGljIHVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZWRDYXNlPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHN5bmNocm9uaXplU3RvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcml2YXRlIHNlbGVjdGVkVXNlcjogVXNlckRldGFpbHM7XG5cbiAgQFZpZXdDaGlsZChVc2VyU2VsZWN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJTZWxlY3Q6IFVzZXJTZWxlY3RDb21wb25lbnQ7XG5cbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHsgaWQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH1bXSA9IFtdO1xuICBwdWJsaWMgc2hhcmVDYXNlRXJyb3JNZXNzYWdlOiBFcnJvck1lc3NhZ2VzTW9kZWw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaGFyZUNhc2VzJFxuICAgICAgLnBpcGUodGFwKHNoYXJlZENhc2VzID0+IHtcbiAgICAgICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIHVzZXJzIGFzc2lnbmVkIHRvIGF0IGxlYXN0IG9uZSBjYXNlXG4gICAgICAgIHRoaXMuZ2V0QXNzaWduZWRVc2VycyhzaGFyZWRDYXNlcy5maWx0ZXIoc2hhcmVkQ2FzZSA9PiBzaGFyZWRDYXNlLnNoYXJlZFdpdGggJiYgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmxlbmd0aCA+IDApKTtcbiAgICAgIH0pKVxuICAgICAgLnN1YnNjcmliZShzaGFyZUNhc2VzID0+IHtcbiAgICAgICAgdGhpcy5zaGFyZUNhc2VzID0gc2hhcmVDYXNlcztcbiAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0Q2FzZXMoc2hhcmVDYXNlcyk7XG4gICAgICAgIC8vIFNldCB0aGUgY29uZmlnIHRvIGJlIHVzZWQgYnkgdGhlIHh1aWxpYi1nb3YtdWstZXJyb3ItbWVzc2FnZSBjb21wb25lbnQsIGluIHBhcnRpY3VsYXIgdGhlIGVsZW1lbnQgSUQgdG9cbiAgICAgICAgLy8gd2hpY2ggdGhlIGVycm9yIG1lc3NhZ2UgaXMgYXNzb2NpYXRlZFxuICAgICAgICBpZiAoc2hhcmVDYXNlcykge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlc0Vycm9yTWVzc2FnZUNvbmZpZyA9IHtcbiAgICAgICAgICAgIGlkOiBzaGFyZUNhc2VzLmxlbmd0aCA+IDAgPyAnY2FzZXMnIDogJ25vQ2FzZURpc3BsYXknXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5zaGFyZUNhc2VzJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlO1xuICAgIHRoaXMuc2hhcmVDYXNlRXJyb3JNZXNzYWdlID0geyBpc0ludmFsaWQ6IGZhbHNlLCBtZXNzYWdlczogW10gfTtcbiAgfVxuXG4gIHB1YmxpYyBvblVuc2VsZWN0KGM6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBbXTtcbiAgICBpZiAodGhpcy5zdGF0ZVNlcnZpY2UuZ2V0Q2FzZXMoKS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsgaWQ6ICdjYXNlcycsIG1lc3NhZ2U6IFNoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZUNhc2VNdXN0QmVTZWxlY3RlZCB9KTtcbiAgICAgIHRoaXMuc2hhcmVDYXNlRXJyb3JNZXNzYWdlID0geyBpc0ludmFsaWQ6IHRydWUsIG1lc3NhZ2VzOiBbU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMuT25lQ2FzZU11c3RCZVNlbGVjdGVkXSB9O1xuICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBsZWZ0OiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudW5zZWxlY3QuZW1pdChjKTtcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlbW92ZUNhc2UoYy5jYXNlSWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblN5bmNocm9uaXplU3RvcmUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkVXNlcih1c2VyOiBVc2VyRGV0YWlscykge1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VyID0gdXNlcjtcbiAgfVxuXG4gIHB1YmxpYyBhZGRVc2VyKCkge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzID0gdGhpcy5zdGF0ZVNlcnZpY2UucmVxdWVzdFNoYXJlKHRoaXMuc2VsZWN0ZWRVc2VyKTtcbiAgICB0aGlzLnNlbGVjdGVkVXNlciA9IG51bGw7XG4gICAgaWYgKHRoaXMudXNlclNlbGVjdCkgeyB0aGlzLnVzZXJTZWxlY3QuY2xlYXIoKTsgfVxuICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KG5ld1NoYXJlZENhc2VzKTtcbiAgICAvLyBVcGRhdGUgdGhlIGxpc3Qgb2YgYXNzaWduZWQgdXNlcnMgKHdoaWNoIGluY2x1ZGVzIHBlbmRpbmcgdXNlcnMpXG4gICAgdGhpcy5nZXRBc3NpZ25lZFVzZXJzKG5ld1NoYXJlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVVc2VyKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVXNlclRvUmVtb3ZlKSB7XG4gICAgICBjb25zdCBuZXdTaGFyZWRDYXNlcyA9IHRoaXMuc3RhdGVTZXJ2aWNlLnJlcXVlc3RVbnNoYXJlKHRoaXMuc2VsZWN0ZWRVc2VyVG9SZW1vdmUpO1xuICAgICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0Rpc2FibGVkQWRkKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVXNlciA9PT0gbnVsbCB8fCB0aGlzLnNoYXJlQ2FzZXMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIG9yaWdpbmFsbHkgdXNlZCB0byBzZXQgZGlzYWJsZWQgc3RhdGUgb2YgXCJDb250aW51ZVwiIGJ1dHRvbiwgbm93IGNhbGxlZCBieSB0aGUgYnV0dG9uIGNsaWNrIGhhbmRsZXIgdG9cbiAgICogY29udHJvbCB3aGV0aGVyIG5hdmlnYXRpb24gdG8gdGhlIGNvbmZpcm1hdGlvbiBwYWdlIGlzIGFsbG93ZWQuIEl0IGlzIHByZXZlbnRlZCBpZiBubyBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlXG4gICAqL1xuICBwdWJsaWMgc2V0Q29udGludWVBbGxvd2VkKCk6IHZvaWQge1xuICAgIC8vIEFsd2F5cyBzdGFydCB3aXRoIGNvbnRpbnVlQWxsb3dlZCA9IGZhbHNlLiBUaGlzIGNvdmVycyB0aGUgc2NlbmFyaW8gd2hlcmUgYSB1c2VyIG1pZ2h0IGFkZCBzb21lb25lIGZvciBzaGFyaW5nXG4gICAgLy8gYSBjYXNlIChzbywgY29udGludWVBbGxvd2VkID0gdHJ1ZSksIHRoZW4gcmVtb3ZlcyB0aGUgc2FtZSB1c2VyIGJlZm9yZSB0cnlpbmcgdG8gY29udGludWUuIFRoaXMgd291bGRcbiAgICAvLyBlcnJvbmVvdXNseSBsZWF2ZSBjb250aW51ZUFsbG93ZWQgYXMgdHJ1ZVxuICAgIHRoaXMuY29udGludWVBbGxvd2VkID0gZmFsc2U7XG4gICAgdGhpcy5zaGFyZUNhc2VzJC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGNhc2VTdGF0ZSBvZiBzaGFyZUNhc2VzKSB7XG4gICAgICAgIGlmIChjYXNlU3RhdGUucGVuZGluZ1NoYXJlcyAmJiBjYXNlU3RhdGUucGVuZGluZ1NoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5jb250aW51ZUFsbG93ZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXNlU3RhdGUucGVuZGluZ1Vuc2hhcmVzICYmIGNhc2VTdGF0ZS5wZW5kaW5nVW5zaGFyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY29udGludWVBbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uRGVzZWxlY3Qoc2hhcmVkQ2FzZTogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIGlmIChzaGFyZWRDYXNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB1cGRhdGVkID0gW107XG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5zaGFyZUNhc2VzKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmNhc2VJZCAhPT0gc2hhcmVkQ2FzZS5jYXNlSWQpIHtcbiAgICAgICAgICB1cGRhdGVkLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuc2hhcmVDYXNlcyA9IHVwZGF0ZWQ7XG4gICAgfVxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldENhc2VzKHRoaXMuc2hhcmVDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgb25Db250aW51ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldENvbnRpbnVlQWxsb3dlZCgpO1xuICAgIC8vIElmIGNvbnRpbnVhdGlvbiBpcyBub3QgYWxsb3dlZCwgc2V0IGFuIGVycm9yIG1lc3NhZ2VcbiAgICBpZiAoIXRoaXMuY29udGludWVBbGxvd2VkKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBbXTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsgaWQ6ICdjYXNlcycsIG1lc3NhZ2U6IFNoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk5vQ2hhbmdlc1JlcXVlc3RlZCB9KTtcbiAgICAgIHRoaXMuc2hhcmVDYXNlRXJyb3JNZXNzYWdlID0geyBpc0ludmFsaWQ6IHRydWUsIG1lc3NhZ2VzOiBbU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMuTm9DaGFuZ2VzUmVxdWVzdGVkXSB9O1xuICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBsZWZ0OiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgfVxuICAgIC8vIE5hdmlnYXRlIHRvIGNvbmZpcm1hdGlvbiBwYWdlIG9ubHkgaWYgYWxsb3dlZCB0byBjb250aW51ZVxuICAgIGlmICh0aGlzLmNvbnRpbnVlQWxsb3dlZCkge1xuICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjYXNlIGlzIGxlZnQgdW5hc3NpZ25lZDsgYSB1c2VyIGNhbiBiZSByZW1vdmVkIG9ubHkgaWYgdGhlcmUgaXMgYW5vdGhlciBjdXJyZW50IHVzZXIsIG9yIGlmIGF0XG4gICAgICAvLyBsZWFzdCBvbmUgdXNlciBpcyB0byBiZSBhZGRlZC4gUHJldmVudCBuYXZpZ2F0aW9uIHRvIGNvbmZpcm1hdGlvbiBwYWdlIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjYXNlIGxlZnQgaW5cbiAgICAgIC8vIGFuIHVuYXNzaWduZWQgc3RhdGVcbiAgICAgIGlmICh0aGlzLmhhc0Nhc2VzTGVmdFVuYXNzaWduZWQodGhpcy5zaGFyZUNhc2VzKSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBbXTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogJ2Nhc2VzJywgbWVzc2FnZTogU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMuT25lUGVyc29uTXVzdEJlQXNzaWduZWQgfSk7XG4gICAgICAgIHRoaXMuc2hhcmVDYXNlRXJyb3JNZXNzYWdlID0geyBpc0ludmFsaWQ6IHRydWUsIG1lc3NhZ2VzOiBbU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMuT25lUGVyc29uTXVzdEJlQXNzaWduZWRdIH07XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgbGVmdDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuY29uZmlybUxpbmtdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHVuaXF1ZSBsaXN0IG9mIGFsbCB1c2VycyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCwgb3IgYXJlIHBlbmRpbmcgYXNzaWdtZW50IHRvLCBhdCBsZWFzdCBvbmUgY2FzZVxuICAgKiBAcGFyYW0gc2hhcmVkQ2FzZXMgVGhlIGxpc3Qgb2Ygc2hhcmVkIGNhc2VzIGZyb20gd2hpY2ggdG8gZ2V0IHVzZXJzIHRoZXNlIGFyZSBzaGFyZWQgd2l0aCwgb3IgYXJlIHRvIGJlIHNoYXJlZCB3aXRoXG4gICAqL1xuICBwdWJsaWMgZ2V0QXNzaWduZWRVc2VycyhzaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdKTogdm9pZCB7XG4gICAgY29uc3QgdXNlcnM6IFVzZXJEZXRhaWxzW10gPSBbXTtcbiAgICBzaGFyZWRDYXNlcy5mb3JFYWNoKHNoYXJlZENhc2UgPT4ge1xuICAgICAgaWYgKHNoYXJlZENhc2Uuc2hhcmVkV2l0aCkge1xuICAgICAgICBzaGFyZWRDYXNlLnNoYXJlZFdpdGguZm9yRWFjaCh1c2VyID0+IHtcbiAgICAgICAgICBpZiAoIXVzZXJzLnNvbWUoZXhpc3RpbmdVc2VyID0+IHVzZXIuaWRhbUlkID09PSBleGlzdGluZ1VzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgdXNlcnMucHVzaCh1c2VyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuZm9yRWFjaCh1c2VyID0+IHtcbiAgICAgICAgICBpZiAoIXVzZXJzLnNvbWUoZXhpc3RpbmdVc2VyID0+IHVzZXIuaWRhbUlkID09PSBleGlzdGluZ1VzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgdXNlcnMucHVzaCh1c2VyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduZWRVc2VycyA9IHVzZXJzO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbnkgc2hhcmVkIGNhc2VzIGhhdmUgYmVlbiBsZWZ0IHVuYXNzaWduZWQuIFRoaXMgb2NjdXJzIGlmIGEgc2hhcmVkIGNhc2UgaGFzIGEgbnVtYmVyIG9mIHBlbmRpbmdcbiAgICogdW5zaGFyZXMgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBjdXJyZW50IHNoYXJlcywgYW5kIHRoZXJlIGFyZSBubyBwZW5kaW5nIHNoYXJlcy5cbiAgICogQHBhcmFtIHNoYXJlZENhc2VzIFRoZSBhcnJheSBvZiBzaGFyZWQgY2FzZXMgdG8gY2hlY2tcbiAgICogQHJldHVybnMgYHRydWVgIGlmIGF0IGxlYXN0IG9uZSBjYXNlIGhhcyB0aGUgY29uZGl0aW9uIGRlc2NyaWJlZCBhYm92ZTsgYGZhbHNlYCBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyBoYXNDYXNlc0xlZnRVbmFzc2lnbmVkKHNoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2hhcmVkQ2FzZXMuc29tZShzaGFyZWRDYXNlID0+IHtcbiAgICAgIHJldHVybiBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyAmJiBzaGFyZWRDYXNlLnNoYXJlZFdpdGggJiZcbiAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMubGVuZ3RoID09PSBzaGFyZWRDYXNlLnNoYXJlZFdpdGgubGVuZ3RoICYmXG4gICAgICAgICghc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzIHx8IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5sZW5ndGggPT09IDApO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVEVTVC1UT0RPXG4gIC8vIEFub3RoZXIgcGxhY2Ugd2hlcmUgbmdNb2RlbCB1c2UgaXMgcmVtb3ZlZCBmb3IgQW5ndWxhciBiZXN0IHByYWN0aWNlXG4gIC8vIE1heSBjYXVzZSBpc3N1ZXMgYnV0IGJhc2VkIG9uIHVuZGVyc3RhbmRpbmcgc2hvdWxkIHdvcmtcbiAgLy8gVE9ETzogQ29uZmlybSB0aGlzIHdvcmtzIGNvcnJlY3RseSBhZnRlciBBbmd1bGFyIDE4IHVwZ3JhZGVcbiAgcHVibGljIG9uU2VsZWN0ZWRVc2VyVG9SZW1vdmVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVXNlclRvUmVtb3ZlID0gdGhpcy5hc3NpZ25lZFVzZXJzLmZpbmQodXNlciA9PiBgJHt1c2VyLmZpcnN0TmFtZX0gJHt1c2VyLmxhc3ROYW1lfSAtICR7dXNlci5lbWFpbH1gID09PSB2YWx1ZSkgfHwgbnVsbDtcbiAgfVxufVxuIiwiPHh1aWxpYi1obWN0cy1lcnJvci1zdW1tYXJ5XG4gIFtlcnJvck1lc3NhZ2VzXT1cInZhbGlkYXRpb25FcnJvcnNcIlxuICBbaGVhZGVyXT1cIidUaGVyZSBpcyBhIHByb2JsZW0nXCJcbj48L3h1aWxpYi1obWN0cy1lcnJvci1zdW1tYXJ5PlxuPGgxICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cImdvdnVrLWhlYWRpbmcteGwgZ292dWstIS1tYXJnaW4tdG9wLTJcIj5cbiAgPHNwYW4gKm5nSWY9XCJmblRpdGxlXCIgY2xhc3M9XCJnb3Z1ay1jYXB0aW9uLXhsXCI+e3tmblRpdGxlIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gIHt7dGl0bGUgfCBycHhUcmFuc2xhdGV9fVxuPC9oMT5cbjxkaXYgaWQ9XCJhZGQtdXNlclwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiIGZvcj1cImFkZC11c2VyLWlucHV0XCI+e3thZGRVc2VyTGFiZWwgfCBycHhUcmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPHNwYW4gaWQ9XCJhZGQtdXNlci1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICB7eydTZWFyY2ggYnkgbmFtZSBvciBlbWFpbCBhZGRyZXNzLiBZb3UgY2FuIHNoYXJlIGFjY2VzcyB3aXRoIGFzIG1hbnkgcGVvcGxlIGFzIHlvdSBuZWVkLicgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi10d28tdGhpcmRzXCI+XG4gICAgICAgIDx4dWlsaWItdXNlci1zZWxlY3RcbiAgICAgICAgICBpZD1cImFkZC11c2VyLWlucHV0XCJcbiAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiYWRkLXVzZXItaGludFwiXG4gICAgICAgICAgW3VzZXJzXT1cInVzZXJzXCJcbiAgICAgICAgICAoc2VsZWN0ZWQpPVwib25TZWxlY3RlZFVzZXIoJGV2ZW50KVwiPlxuICAgICAgICA8L3h1aWxpYi11c2VyLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS10aGlyZHNcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bi1hZGQtdXNlclwiIChjbGljayk9XCJhZGRVc2VyKClcIlxuICAgICAgICAgIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRBZGQoKVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eydBZGQgdXNlciB0byBzZWxlY3RlZCBjYXNlcycgfCBycHhUcmFuc2xhdGV9fVwiPlxuICAgICAgICAgIHt7J0FkZCcgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3sndXNlcicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGV0YWlscyBpZD1cImFkZC11c2VyLWhlbHBcIiBjbGFzcz1cImdvdnVrLWRldGFpbHNcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWRldGFpbHNcIj5cbiAgICAgIDxzdW1tYXJ5IGNsYXNzPVwiZ292dWstZGV0YWlsc19fc3VtbWFyeVwiPlxuICAgICAgPHNwYW4gaWQ9XCJjb250ZW50LXdoeS1jYW4tbm90LWZpbmQtZW1haWxcIiBjbGFzcz1cImdvdnVrLWRldGFpbHNfX3N1bW1hcnktdGV4dFwiPlxuICAgICAgICB7e1wiQ2FuJ3QgZmluZCBhbiBlbWFpbCBhZGRyZXNzP1wiIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3VtbWFyeT5cbiAgICAgIDxkaXYgaWQ9XCJjb250ZW50LXJlYXNvbi1jYW4tbm90LWZpbmQtZW1haWxcIiBjbGFzcz1cImdvdnVrLWRldGFpbHNfX3RleHRcIj5cbiAgICAgICAge3tcIklmIHlvdSBjYW4ndCBmaW5kIHlvdXIgY29sbGVhZ3VlJ3MgZW1haWwgYWRkcmVzcywgdGhleSB3aWxsIG5lZWQgdG8gY29tcGxldGUgdGhlaXIgcmVnaXN0cmF0aW9uLiBDb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvciBmb3IgaGVscC5cIiB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cbiAgICA8L2RldGFpbHM+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiICpuZ0lmPVwic2hvd1JlbW92ZVVzZXJzXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCIgZm9yPVwicmVtb3ZlLXVzZXItaW5wdXRcIj5cbiAgICAgIHt7J1JlbW92ZSBhIHBlcnNvbiBmcm9tIGFsbCBjYXNlcycgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvbGFiZWw+XG4gICAgPHNwYW4gaWQ9XCJyZW1vdmUtdXNlci1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICB7eydTZWxlY3QgYSBwZXJzb24gdG8gcmVtb3ZlIHRoZW0gZnJvbSBhbGwgc2VsZWN0ZWQgY2FzZXMuJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgPC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLXR3by10aGlyZHNcIj5cbiAgICAgICAgPHNlbGVjdCBbdmFsdWVdPVwic2VsZWN0ZWRVc2VyVG9SZW1vdmVcIiAoY2hhbmdlKT1cIm9uU2VsZWN0ZWRVc2VyVG9SZW1vdmVDaGFuZ2VkKCRldmVudC50YXJnZXQudmFsdWUpXCIgY2xhc3M9XCJnb3Z1ay1zZWxlY3RcIiBpZD1cInJlbW92ZS11c2VyLWlucHV0XCIgYXJpYS1kZXNjcmliZWRieT1cInJlbW92ZS11c2VyLWhpbnRcIj5cbiAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBzZWxlY3RlZD5TZWxlY3QgYSBwZXJzb248L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB1c2VyIG9mIGFzc2lnbmVkVXNlcnNcIiBbbmdWYWx1ZV09XCJ1c2VyXCI+e3t1c2VyLmZpcnN0TmFtZX19IHt7dXNlci5sYXN0TmFtZX19IC0ge3t1c2VyLmVtYWlsfX08L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1vbmUtdGhpcmRzXCI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJidG4tcmVtb3ZlLXVzZXJcIiAoY2xpY2spPVwicmVtb3ZlVXNlcigpXCIgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIiB0aXRsZT1cInt7J1JlbW92ZSB1c2VyIGZyb20gc2VsZWN0ZWQgY2FzZXMnIHwgcnB4VHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICB7eydSZW1vdmUnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPiB7eyd1c2VyJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGlkPVwiY2FzZXNcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogc2hhcmVDYXNlRXJyb3JNZXNzYWdlLm1lc3NhZ2VzICYmIHNoYXJlQ2FzZUVycm9yTWVzc2FnZS5tZXNzYWdlcy5sZW5ndGggPiAwfVwiPlxuICA8aDMgaWQ9XCJ0aXRsZS1zZWxlY3RlZC1jYXNlc1wiIGNsYXNzPVwiZ292dWstaGVhZGluZy1tXCI+XG4gICAge3snU2VsZWN0ZWQgY2FzZXMnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9oMz5cbiAgPHh1aWxpYi1nb3YtdWstZXJyb3ItbWVzc2FnZSBbY29uZmlnXT1cInNlbGVjdGVkQ2FzZXNFcnJvck1lc3NhZ2VDb25maWdcIiBbZXJyb3JNZXNzYWdlXT1cInNoYXJlQ2FzZUVycm9yTWVzc2FnZVwiPjwveHVpbGliLWdvdi11ay1lcnJvci1tZXNzYWdlPlxuICA8ZGl2ICpuZ0lmPVwic2hhcmVDYXNlcyAmJiBzaGFyZUNhc2VzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImdvdnVrLWFjY29yZGlvblwiIGRhdGEtbW9kdWxlPVwiZ292dWstYWNjb3JkaW9uXCIgaWQ9XCJhY2NvcmRpb24td2l0aC1zdW1tYXJ5LXNlY3Rpb25zXCI+XG4gICAgPHh1aWxpYi1zZWxlY3RlZC1jYXNlLWxpc3RcbiAgICAgIFtzaGFyZUNhc2VzJF09XCJzaGFyZUNhc2VzJFwiXG4gICAgICBbcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT25dPVwicmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT25cIlxuICAgICAgKHVuc2VsZWN0KT1cIm9uVW5zZWxlY3QoJGV2ZW50KVwiXG4gICAgICAoc3luY2hyb25pemVTdG9yZSk9XCJvblN5bmNocm9uaXplU3RvcmUoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwveHVpbGliLXNlbGVjdGVkLWNhc2UtbGlzdD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBpZD1cIm5vQ2FzZURpc3BsYXlcIiAqbmdJZj1cInNoYXJlQ2FzZXMgJiYgc2hhcmVDYXNlcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImdvdnVrLWhpbnRcIlxuICAgIFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiBzaGFyZUNhc2VFcnJvck1lc3NhZ2UubWVzc2FnZXMgJiYgc2hhcmVDYXNlRXJyb3JNZXNzYWdlLm1lc3NhZ2VzLmxlbmd0aCA+IDB9XCI+XG4gICAge3snTm8gY2FzZXMgdG8gZGlzcGxheS4nIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG48ZGl2IGlkPVwic2hhcmUtY2FzZS1uYXZcIiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICA8YnV0dG9uIGlkPVwiYnRuLWNvbnRpbnVlXCIgY2xhc3M9XCJnb3Z1ay1idXR0b25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiIChjbGljayk9XCJvbkNvbnRpbnVlKClcIiB0aXRsZT1cInt7J0NvbnRpbnVlJyB8IHJweFRyYW5zbGF0ZX19XCI+XG4gICAge3snQ29udGludWUnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG4gIDxidXR0b24gaWQ9XCJidG4tY2FuY2VsXCIgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiIHRpdGxlPVwie3snQ2FuY2VsJyB8IHJweFRyYW5zbGF0ZX19XCIgW3JvdXRlckxpbmtdPVwiY2FuY2VsTGlua1wiPlxuICAgIHt7J0NhbmNlbCcgfCBycHhUcmFuc2xhdGV9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,85 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/case-sharing-state/case-sharing-state.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/router";
8
+ import * as i4 from "../selected-case-list/selected-case-list.component";
9
+ import * as i5 from "rpx-xui-translation";
10
+ function ShareCaseConfirmComponent_div_4_Template(rf, ctx) { if (rf & 1) {
11
+ i0.ɵɵelementStart(0, "div", 5);
12
+ i0.ɵɵelement(1, "xuilib-selected-case-list", 6);
13
+ i0.ɵɵelementEnd();
14
+ } if (rf & 2) {
15
+ const ctx_r0 = i0.ɵɵnextContext();
16
+ i0.ɵɵadvance();
17
+ i0.ɵɵproperty("shareCases$", ctx_r0.shareCases$)("toConfirm", true)("changeLink", ctx_r0.changeLink);
18
+ } }
19
+ function ShareCaseConfirmComponent_div_5_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelementStart(0, "div", 7);
21
+ i0.ɵɵtext(1);
22
+ i0.ɵɵpipe(2, "rpxTranslate");
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ i0.ɵɵadvance();
26
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "No cases to display."), " ");
27
+ } }
28
+ function ShareCaseConfirmComponent_div_6_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵelementStart(0, "div", 8)(1, "button", 9);
30
+ i0.ɵɵtext(2);
31
+ i0.ɵɵpipe(3, "rpxTranslate");
32
+ i0.ɵɵelementEnd()();
33
+ } if (rf & 2) {
34
+ const ctx_r0 = i0.ɵɵnextContext();
35
+ i0.ɵɵadvance();
36
+ i0.ɵɵproperty("routerLink", ctx_r0.completeLink);
37
+ i0.ɵɵadvance();
38
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Confirm"));
39
+ } }
40
+ export class ShareCaseConfirmComponent {
41
+ constructor(stateService) {
42
+ this.stateService = stateService;
43
+ this.shareCases = []; // cases selected for sharing
44
+ this.changeLink = '';
45
+ this.completeLink = '';
46
+ }
47
+ ngOnInit() {
48
+ this.shareCases$.subscribe(shareCases => {
49
+ this.shareCases = shareCases;
50
+ this.stateService.setCases(shareCases);
51
+ });
52
+ this.shareCases$ = this.stateService.state;
53
+ }
54
+ static { this.ɵfac = function ShareCaseConfirmComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ShareCaseConfirmComponent)(i0.ɵɵdirectiveInject(i1.CaseSharingStateService)); }; }
55
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareCaseConfirmComponent, selectors: [["xuilib-share-case-confirm"]], inputs: { shareCases$: "shareCases$", changeLink: "changeLink", completeLink: "completeLink" }, decls: 7, vars: 6, consts: [["id", "casesToConfirm"], [1, "govuk-heading-l"], ["id", "summarySections", 4, "ngIf"], ["id", "noCaseDisplay", "class", "govuk-hint", 4, "ngIf"], ["id", "share-case-nav", 4, "ngIf"], ["id", "summarySections"], [3, "shareCases$", "toConfirm", "changeLink"], ["id", "noCaseDisplay", 1, "govuk-hint"], ["id", "share-case-nav"], ["title", "Confirm", 1, "govuk-button", 3, "routerLink"]], template: function ShareCaseConfirmComponent_Template(rf, ctx) { if (rf & 1) {
56
+ i0.ɵɵelementStart(0, "div", 0)(1, "h3", 1);
57
+ i0.ɵɵtext(2);
58
+ i0.ɵɵpipe(3, "rpxTranslate");
59
+ i0.ɵɵelementEnd();
60
+ i0.ɵɵtemplate(4, ShareCaseConfirmComponent_div_4_Template, 2, 3, "div", 2)(5, ShareCaseConfirmComponent_div_5_Template, 3, 3, "div", 3);
61
+ i0.ɵɵelementEnd();
62
+ i0.ɵɵtemplate(6, ShareCaseConfirmComponent_div_6_Template, 4, 4, "div", 4);
63
+ } if (rf & 2) {
64
+ i0.ɵɵadvance(2);
65
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, "Cases"));
66
+ i0.ɵɵadvance(2);
67
+ i0.ɵɵproperty("ngIf", ctx.shareCases && ctx.shareCases.length > 0);
68
+ i0.ɵɵadvance();
69
+ i0.ɵɵproperty("ngIf", ctx.shareCases && ctx.shareCases.length === 0);
70
+ i0.ɵɵadvance();
71
+ i0.ɵɵproperty("ngIf", ctx.shareCases && ctx.shareCases.length > 0);
72
+ } }, dependencies: [i2.NgIf, i3.RouterLink, i4.SelectedCaseListComponent, i5.RpxTranslatePipe] }); }
73
+ }
74
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ShareCaseConfirmComponent, [{
75
+ type: Component,
76
+ args: [{ selector: 'xuilib-share-case-confirm', template: "<div id=\"casesToConfirm\">\n <h3 class=\"govuk-heading-l\">{{'Cases' | rpxTranslate}}</h3>\n <div *ngIf=\"shareCases && shareCases.length > 0\" id=\"summarySections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [toConfirm]=\"true\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" *ngIf=\"shareCases && shareCases.length > 0\">\n <button class=\"govuk-button\" title=\"Confirm\" [routerLink]=\"completeLink\">{{'Confirm' | rpxTranslate}}</button>\n</div>\n" }]
77
+ }], () => [{ type: i1.CaseSharingStateService }], { shareCases$: [{
78
+ type: Input
79
+ }], changeLink: [{
80
+ type: Input
81
+ }], completeLink: [{
82
+ type: Input
83
+ }] }); })();
84
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShareCaseConfirmComponent, { className: "ShareCaseConfirmComponent", filePath: "lib/components/share-case-confirm/share-case-confirm.component.ts", lineNumber: 11 }); })();
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS1jb25maXJtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmUtY2FzZS1jb25maXJtL3NoYXJlLWNhc2UtY29uZmlybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2UtY29uZmlybS9zaGFyZS1jYXNlLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7SUNEckcsOEJBQXNFO0lBQ3BFLCtDQUk0QjtJQUM5QixpQkFBTTs7O0lBSkYsY0FBMkI7SUFFM0IsQUFEQSxBQURBLGdEQUEyQixtQkFDVCxpQ0FDTzs7O0lBSTdCLDhCQUF5RjtJQUN2RixZQUNGOztJQUFBLGlCQUFNOztJQURKLGNBQ0Y7SUFERSw2RUFDRjs7O0lBS0EsQUFERiw4QkFBcUUsZ0JBQ007SUFBQSxZQUE0Qjs7SUFDdkcsQUFEdUcsaUJBQVMsRUFDMUc7OztJQUR5QyxjQUEyQjtJQUEzQixnREFBMkI7SUFBQyxjQUE0QjtJQUE1QixxREFBNEI7O0FEUHZHLE1BQU0sT0FBTyx5QkFBeUI7SUFVcEMsWUFBNkIsWUFBcUM7UUFBckMsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBUjNELGVBQVUsR0FBaUIsRUFBRSxDQUFDLENBQUMsNkJBQTZCO1FBR25ELGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBVyxFQUFFLENBQUM7SUFJNEIsQ0FBQztJQUVoRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQzdDLENBQUM7MEhBbEJVLHlCQUF5QjtvRUFBekIseUJBQXlCO1lDVHBDLEFBREYsOEJBQXlCLFlBQ0s7WUFBQSxZQUEwQjs7WUFBQSxpQkFBSztZQVMzRCxBQVJBLDBFQUFzRSw2REFRbUI7WUFJM0YsaUJBQU07WUFFTiwwRUFBcUU7O1lBZnZDLGVBQTBCO1lBQTFCLG1EQUEwQjtZQUNoRCxlQUF5QztZQUF6QyxrRUFBeUM7WUFRdEIsY0FBMkM7WUFBM0Msb0VBQTJDO1lBTTVDLGNBQXlDO1lBQXpDLGtFQUF5Qzs7O2lGRE50RCx5QkFBeUI7Y0FMckMsU0FBUzsyQkFDRSwyQkFBMkI7d0RBUXJCLFdBQVc7a0JBQTFCLEtBQUs7WUFDVSxVQUFVO2tCQUF6QixLQUFLO1lBQ1UsWUFBWTtrQkFBM0IsS0FBSzs7a0ZBTksseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaGFyZWRDYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2hhcmUtY2FzZS1jb25maXJtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLWNhc2UtY29uZmlybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWNhc2UtY29uZmlybS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlQ2FzZUNvbmZpcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzaGFyZUNhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTsgLy8gY2FzZXMgc2VsZWN0ZWQgZm9yIHNoYXJpbmdcblxuICBASW5wdXQoKSBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcbiAgQElucHV0KCkgcHVibGljIGNoYW5nZUxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgY29tcGxldGVMaW5rOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgc3RhdGUkOiBPYnNlcnZhYmxlPFNoYXJlZENhc2VbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaGFyZUNhc2VzJC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB7XG4gICAgICB0aGlzLnNoYXJlQ2FzZXMgPSBzaGFyZUNhc2VzO1xuICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0Q2FzZXMoc2hhcmVDYXNlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zaGFyZUNhc2VzJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cbn1cbiIsIjxkaXYgaWQ9XCJjYXNlc1RvQ29uZmlybVwiPlxuICA8aDMgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj57eydDYXNlcycgfCBycHhUcmFuc2xhdGV9fTwvaDM+XG4gIDxkaXYgKm5nSWY9XCJzaGFyZUNhc2VzICYmIHNoYXJlQ2FzZXMubGVuZ3RoID4gMFwiIGlkPVwic3VtbWFyeVNlY3Rpb25zXCI+XG4gICAgPHh1aWxpYi1zZWxlY3RlZC1jYXNlLWxpc3RcbiAgICAgIFtzaGFyZUNhc2VzJF09XCJzaGFyZUNhc2VzJFwiXG4gICAgICBbdG9Db25maXJtXT1cInRydWVcIlxuICAgICAgW2NoYW5nZUxpbmtdPVwiY2hhbmdlTGlua1wiPlxuICAgIDwveHVpbGliLXNlbGVjdGVkLWNhc2UtbGlzdD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBpZD1cIm5vQ2FzZURpc3BsYXlcIiAqbmdJZj1cInNoYXJlQ2FzZXMgJiYgc2hhcmVDYXNlcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICB7eydObyBjYXNlcyB0byBkaXNwbGF5LicgfCBycHhUcmFuc2xhdGV9fVxuICA8L2Rpdj5cblxuPC9kaXY+XG5cbjxkaXYgaWQ9XCJzaGFyZS1jYXNlLW5hdlwiICpuZ0lmPVwic2hhcmVDYXNlcyAmJiBzaGFyZUNhc2VzLmxlbmd0aCA+IDBcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImdvdnVrLWJ1dHRvblwiIHRpdGxlPVwiQ29uZmlybVwiIFtyb3V0ZXJMaW5rXT1cImNvbXBsZXRlTGlua1wiPnt7J0NvbmZpcm0nIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19