@hmcts/rpx-xui-common-lib 2.0.2-pre-release-include-user-access-type → 2.0.2-pre-release-accessibility-updated-version

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 (321) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +6257 -0
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -0
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +2 -0
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -0
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +77 -0
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +27 -0
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +185 -0
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +17 -0
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +68 -0
  10. package/esm2015/lib/components/due-date/due-date.component.js +123 -0
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +28 -0
  12. package/esm2015/lib/components/find-location/find-location.component.js +146 -0
  13. package/esm2015/lib/components/find-person/find-person.component.js +120 -0
  14. package/esm2015/lib/components/find-service/find-service.component.js +113 -0
  15. package/esm2015/lib/components/find-task-name/find-task-name.component.js +97 -0
  16. package/esm2015/lib/components/generic-filter/generic-filter.component.js +629 -0
  17. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +27 -0
  18. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +25 -0
  19. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +25 -0
  20. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +26 -0
  21. package/esm2015/lib/components/pagination/pagination.component.js +28 -0
  22. package/esm2015/lib/components/search-judicials/search-judicials.component.js +126 -0
  23. package/esm2015/lib/components/search-location/search-location.component.js +135 -0
  24. package/esm2015/lib/components/search-service/search-service.component.js +42 -0
  25. package/esm2015/lib/components/search-venue/search-venue.component.js +123 -0
  26. package/esm2015/lib/components/selected-case/selected-case.component.js +158 -0
  27. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +36 -0
  28. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +49 -0
  29. package/esm2015/lib/components/service-message/service-message.component.js +22 -0
  30. package/esm2015/lib/components/service-messages/service-messages.component.js +48 -0
  31. package/esm2015/lib/components/share-case/share-case.component.js +205 -0
  32. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +34 -0
  33. package/esm2015/lib/components/tab/tab.component.js +21 -0
  34. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +22 -0
  35. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +13 -0
  36. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +13 -0
  37. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +16 -0
  38. package/esm2015/lib/components/user-details/user-details.component.js +41 -0
  39. package/esm2015/lib/components/user-list/user-list.component.js +33 -0
  40. package/esm2015/lib/components/user-select/user-select.component.js +58 -0
  41. package/esm2015/lib/components/write-address/write-address.component.js +182 -0
  42. package/esm2015/lib/components/write-address-inputs/write-address-inputs.component.js +36 -0
  43. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +42 -0
  44. package/esm2015/lib/directives/let/let.directive.js +30 -0
  45. package/esm2015/lib/exui-common-lib.module.js +174 -0
  46. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +31 -0
  47. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +60 -0
  48. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +64 -0
  49. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +22 -0
  50. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +28 -0
  51. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +35 -0
  52. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +23 -0
  53. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +34 -0
  54. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +22 -0
  55. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +33 -0
  56. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +21 -0
  57. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +27 -0
  58. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +39 -0
  59. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +27 -0
  60. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +23 -0
  61. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +48 -0
  62. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +19 -0
  63. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +41 -0
  64. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +28 -0
  65. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +23 -0
  66. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +15 -0
  67. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +29 -0
  68. package/esm2015/lib/gov-ui/gov-ui.service.js +13 -0
  69. package/{esm2020/lib/models/public_api.mjs → esm2015/lib/models/public_api.js} +1 -2
  70. package/esm2015/lib/models/user-details.model.js +2 -0
  71. package/esm2015/lib/pipes/capitalize/capitalize.pipe.js +11 -0
  72. package/esm2015/lib/services/address/address.service.js +50 -0
  73. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +157 -0
  74. package/esm2015/lib/services/cookie/cookie.service.js +47 -0
  75. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +36 -0
  76. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +27 -0
  77. package/{esm2020/lib/services/feature-toggle/launch-darkly.service.mjs → esm2015/lib/services/feature-toggle/launch-darkly.service.js} +6 -8
  78. package/{esm2020/lib/services/filter/filter.service.mjs → esm2015/lib/services/filter/filter.service.js} +6 -8
  79. package/esm2015/lib/services/find-person/find-person.service.js +115 -0
  80. package/esm2015/lib/services/google-analytics/google-analytics.service.js +68 -0
  81. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +71 -0
  82. package/{esm2020/lib/services/loading/loading.service.mjs → esm2015/lib/services/loading/loading.service.js} +6 -8
  83. package/esm2015/lib/services/locations/location.service.js +39 -0
  84. package/{esm2020/lib/services/manage-session/manage-session.services.mjs → esm2015/lib/services/manage-session/manage-session.services.js} +10 -8
  85. package/esm2015/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.js +34 -0
  86. package/{esm2020/lib/services/ref-data/ref-data.service.mjs → esm2015/lib/services/ref-data/ref-data.service.js} +9 -8
  87. package/{esm2020/lib/services/role-guard/role.guard.mjs → esm2015/lib/services/role-guard/role.guard.js} +10 -8
  88. package/esm2015/lib/services/role-guard/role.service.js +20 -0
  89. package/{esm2020/lib/services/storage/session-storage/session-storage.service.mjs → esm2015/lib/services/storage/session-storage/session-storage.service.js} +6 -8
  90. package/{esm2020/lib/services/task-name/task-name.service.mjs → esm2015/lib/services/task-name/task-name.service.js} +10 -8
  91. package/{esm2020/lib/services/timeout-notifications/timeout-notifications.service.mjs → esm2015/lib/services/timeout-notifications/timeout-notifications.service.js} +10 -8
  92. package/fesm2015/hmcts-rpx-xui-common-lib.js +5227 -0
  93. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -0
  94. package/hmcts-rpx-xui-common-lib.d.ts +76 -0
  95. package/hmcts-rpx-xui-common-lib.metadata.json +1 -0
  96. package/lib/components/accessibility/accessibility.component.d.ts +4 -4
  97. package/lib/components/checkbox-list/checkbox-list.component.d.ts +0 -3
  98. package/lib/components/contact-details/contact-details.component.d.ts +0 -3
  99. package/lib/components/cookie-banner/cookie-banner.component.d.ts +1 -6
  100. package/lib/components/due-date/due-date.component.d.ts +0 -3
  101. package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +0 -3
  102. package/lib/components/find-location/find-location.component.d.ts +0 -3
  103. package/lib/components/find-person/find-person.component.d.ts +0 -3
  104. package/lib/components/find-service/find-service.component.d.ts +0 -3
  105. package/lib/components/find-task-name/find-task-name.component.d.ts +0 -3
  106. package/lib/components/generic-filter/generic-filter.component.d.ts +0 -3
  107. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +0 -3
  108. package/lib/components/invite-user-form/invite-user-form.component.d.ts +0 -3
  109. package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +0 -3
  110. package/lib/components/loading-spinner/loading-spinner.component.d.ts +0 -3
  111. package/lib/components/pagination/pagination.component.d.ts +0 -3
  112. package/lib/components/search-judicials/search-judicials.component.d.ts +0 -3
  113. package/lib/components/search-location/search-location.component.d.ts +1 -4
  114. package/lib/components/search-service/search-service.component.d.ts +1 -4
  115. package/lib/components/search-venue/search-venue.component.d.ts +0 -3
  116. package/lib/components/selected-case/selected-case.component.d.ts +0 -3
  117. package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +0 -3
  118. package/lib/components/selected-case-list/selected-case-list.component.d.ts +0 -3
  119. package/lib/components/service-message/service-message.component.d.ts +0 -3
  120. package/lib/components/service-messages/service-messages.component.d.ts +0 -3
  121. package/lib/components/share-case/share-case.component.d.ts +0 -3
  122. package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +0 -3
  123. package/lib/components/tab/tab.component.d.ts +0 -3
  124. package/lib/components/tc-confirm/tc-confirm.component.d.ts +0 -3
  125. package/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.d.ts +0 -3
  126. package/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.d.ts +0 -3
  127. package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +0 -3
  128. package/lib/components/user-details/user-details.component.d.ts +0 -3
  129. package/lib/components/user-list/user-list.component.d.ts +0 -3
  130. package/lib/components/user-select/user-select.component.d.ts +2 -5
  131. package/lib/components/write-address/write-address.component.d.ts +0 -3
  132. package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +3 -3
  133. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +0 -3
  134. package/lib/directives/let/let.directive.d.ts +0 -3
  135. package/lib/exui-common-lib.module.d.ts +3 -77
  136. package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +0 -3
  137. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +0 -3
  138. package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +0 -3
  139. package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +0 -3
  140. package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +0 -3
  141. package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +0 -3
  142. package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +0 -3
  143. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +0 -3
  144. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +0 -3
  145. package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +0 -3
  146. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +0 -3
  147. package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +0 -3
  148. package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +0 -3
  149. package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +0 -3
  150. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +0 -3
  151. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +0 -3
  152. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +0 -3
  153. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +0 -3
  154. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +0 -3
  155. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +0 -3
  156. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +0 -3
  157. package/lib/gov-ui/directives/remove-host.directive.d.ts +0 -3
  158. package/lib/gov-ui/gov-ui.service.d.ts +0 -3
  159. package/lib/models/feature-user.d.ts +1 -1
  160. package/lib/models/filter.model.d.ts +2 -2
  161. package/lib/models/public_api.d.ts +0 -1
  162. package/lib/models/user-details.model.d.ts +0 -2
  163. package/lib/pipes/capitalize/capitalize.pipe.d.ts +0 -3
  164. package/lib/services/address/address.service.d.ts +0 -3
  165. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +0 -3
  166. package/lib/services/cookie/cookie.service.d.ts +0 -3
  167. package/lib/services/feature-toggle/feature-toggle.guard.d.ts +0 -3
  168. package/lib/services/feature-toggle/feature-toggle.service.d.ts +0 -3
  169. package/lib/services/feature-toggle/launch-darkly.service.d.ts +0 -3
  170. package/lib/services/filter/filter.service.d.ts +0 -3
  171. package/lib/services/find-person/find-person.service.d.ts +0 -3
  172. package/lib/services/google-analytics/google-analytics.service.d.ts +0 -3
  173. package/lib/services/google-tag-manager/google-tag-manager.service.d.ts +0 -3
  174. package/lib/services/loading/loading.service.d.ts +0 -3
  175. package/lib/services/locations/location.service.d.ts +0 -3
  176. package/lib/services/manage-session/manage-session.services.d.ts +0 -3
  177. package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +0 -3
  178. package/lib/services/ref-data/ref-data.service.d.ts +0 -3
  179. package/lib/services/role-guard/role.guard.d.ts +0 -3
  180. package/lib/services/role-guard/role.service.d.ts +2 -5
  181. package/lib/services/storage/session-storage/session-storage.service.d.ts +0 -3
  182. package/lib/services/task-name/task-name.service.d.ts +0 -3
  183. package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +0 -3
  184. package/package.json +9 -24
  185. package/esm2020/hmcts-rpx-xui-common-lib.mjs +0 -5
  186. package/esm2020/lib/components/accessibility/accessibility.component.mjs +0 -486
  187. package/esm2020/lib/components/checkbox-list/checkbox-list.component.mjs +0 -231
  188. package/esm2020/lib/components/contact-details/contact-details.component.mjs +0 -107
  189. package/esm2020/lib/components/cookie-banner/cookie-banner.component.mjs +0 -144
  190. package/esm2020/lib/components/due-date/due-date.component.mjs +0 -140
  191. package/esm2020/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +0 -79
  192. package/esm2020/lib/components/find-location/find-location.component.mjs +0 -219
  193. package/esm2020/lib/components/find-person/find-person.component.mjs +0 -234
  194. package/esm2020/lib/components/find-service/find-service.component.mjs +0 -187
  195. package/esm2020/lib/components/find-task-name/find-task-name.component.mjs +0 -200
  196. package/esm2020/lib/components/generic-filter/generic-filter.component.mjs +0 -1198
  197. package/esm2020/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +0 -55
  198. package/esm2020/lib/components/invite-user-form/invite-user-form.component.mjs +0 -50
  199. package/esm2020/lib/components/invite-user-permissions/invite-user-permission.component.mjs +0 -54
  200. package/esm2020/lib/components/loading-spinner/loading-spinner.component.mjs +0 -32
  201. package/esm2020/lib/components/pagination/pagination.component.mjs +0 -93
  202. package/esm2020/lib/components/search-judicials/search-judicials.component.mjs +0 -184
  203. package/esm2020/lib/components/search-location/search-location.component.mjs +0 -205
  204. package/esm2020/lib/components/search-service/search-service.component.mjs +0 -81
  205. package/esm2020/lib/components/search-venue/search-venue.component.mjs +0 -188
  206. package/esm2020/lib/components/selected-case/selected-case.component.mjs +0 -380
  207. package/esm2020/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +0 -130
  208. package/esm2020/lib/components/selected-case-list/selected-case-list.component.mjs +0 -98
  209. package/esm2020/lib/components/service-message/service-message.component.mjs +0 -50
  210. package/esm2020/lib/components/service-messages/service-messages.component.mjs +0 -75
  211. package/esm2020/lib/components/share-case/share-case.component.mjs +0 -410
  212. package/esm2020/lib/components/share-case-confirm/share-case-confirm.component.mjs +0 -85
  213. package/esm2020/lib/components/tab/tab.component.mjs +0 -39
  214. package/esm2020/lib/components/tc-confirm/tc-confirm.component.mjs +0 -65
  215. package/esm2020/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +0 -16
  216. package/esm2020/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +0 -16
  217. package/esm2020/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +0 -59
  218. package/esm2020/lib/components/user-details/user-details.component.mjs +0 -265
  219. package/esm2020/lib/components/user-list/user-list.component.mjs +0 -99
  220. package/esm2020/lib/components/user-select/user-select.component.mjs +0 -92
  221. package/esm2020/lib/components/write-address/write-address.component.mjs +0 -345
  222. package/esm2020/lib/components/write-address-inputs/write-address-inputs.component.mjs +0 -165
  223. package/esm2020/lib/directives/feature-toggle/feature-toggle.directive.mjs +0 -41
  224. package/esm2020/lib/directives/let/let.directive.mjs +0 -29
  225. package/esm2020/lib/exui-common-lib.module.mjs +0 -313
  226. package/esm2020/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +0 -54
  227. package/esm2020/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +0 -136
  228. package/esm2020/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +0 -120
  229. package/esm2020/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +0 -45
  230. package/esm2020/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +0 -80
  231. package/esm2020/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +0 -78
  232. package/esm2020/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +0 -45
  233. package/esm2020/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +0 -70
  234. package/esm2020/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +0 -84
  235. package/esm2020/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +0 -47
  236. package/esm2020/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +0 -41
  237. package/esm2020/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +0 -79
  238. package/esm2020/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +0 -188
  239. package/esm2020/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +0 -56
  240. package/esm2020/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +0 -112
  241. package/esm2020/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +0 -141
  242. package/esm2020/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +0 -33
  243. package/esm2020/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +0 -130
  244. package/esm2020/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +0 -204
  245. package/esm2020/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +0 -59
  246. package/esm2020/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +0 -57
  247. package/esm2020/lib/gov-ui/directives/remove-host.directive.mjs +0 -30
  248. package/esm2020/lib/gov-ui/gov-ui.service.mjs +0 -14
  249. package/esm2020/lib/models/user-access-type.model.mjs +0 -2
  250. package/esm2020/lib/models/user-details.model.mjs +0 -2
  251. package/esm2020/lib/pipes/capitalize/capitalize.pipe.mjs +0 -15
  252. package/esm2020/lib/services/address/address.service.mjs +0 -55
  253. package/esm2020/lib/services/case-sharing-state/case-sharing-state.service.mjs +0 -170
  254. package/esm2020/lib/services/cookie/cookie.service.mjs +0 -48
  255. package/esm2020/lib/services/feature-toggle/feature-toggle.guard.mjs +0 -34
  256. package/esm2020/lib/services/feature-toggle/feature-toggle.service.mjs +0 -29
  257. package/esm2020/lib/services/find-person/find-person.service.mjs +0 -114
  258. package/esm2020/lib/services/google-analytics/google-analytics.service.mjs +0 -68
  259. package/esm2020/lib/services/google-tag-manager/google-tag-manager.service.mjs +0 -71
  260. package/esm2020/lib/services/locations/location.service.mjs +0 -38
  261. package/esm2020/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +0 -33
  262. package/esm2020/lib/services/role-guard/role.service.mjs +0 -22
  263. package/fesm2015/hmcts-rpx-xui-common-lib.mjs +0 -10735
  264. package/fesm2015/hmcts-rpx-xui-common-lib.mjs.map +0 -1
  265. package/fesm2020/hmcts-rpx-xui-common-lib.mjs +0 -9774
  266. package/fesm2020/hmcts-rpx-xui-common-lib.mjs.map +0 -1
  267. package/index.d.ts +0 -5
  268. package/lib/models/user-access-type.model.d.ts +0 -6
  269. /package/{esm2020/lib/components/generic-filter/generic-filter-utils.mjs → esm2015/lib/components/generic-filter/generic-filter-utils.js} +0 -0
  270. /package/{esm2020/lib/components/index.mjs → esm2015/lib/components/index.js} +0 -0
  271. /package/{esm2020/lib/components/public_api.mjs → esm2015/lib/components/public_api.js} +0 -0
  272. /package/{esm2020/lib/directives/index.mjs → esm2015/lib/directives/index.js} +0 -0
  273. /package/{esm2020/lib/directives/public-api.mjs → esm2015/lib/directives/public-api.js} +0 -0
  274. /package/{esm2020/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs → esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js} +0 -0
  275. /package/{esm2020/lib/gov-ui/components/index.mjs → esm2015/lib/gov-ui/components/index.js} +0 -0
  276. /package/{esm2020/lib/gov-ui/components/public_api.mjs → esm2015/lib/gov-ui/components/public_api.js} +0 -0
  277. /package/{esm2020/lib/gov-ui/index.mjs → esm2015/lib/gov-ui/index.js} +0 -0
  278. /package/{esm2020/lib/gov-ui/models/checkboxes-model.mjs → esm2015/lib/gov-ui/models/checkboxes-model.js} +0 -0
  279. /package/{esm2020/lib/gov-ui/models/error-messages-model.mjs → esm2015/lib/gov-ui/models/error-messages-model.js} +0 -0
  280. /package/{esm2020/lib/gov-ui/models/gov-ui-config-model.mjs → esm2015/lib/gov-ui/models/gov-ui-config-model.js} +0 -0
  281. /package/{esm2020/lib/gov-ui/models/index.mjs → esm2015/lib/gov-ui/models/index.js} +0 -0
  282. /package/{esm2020/lib/gov-ui/models/isession-storage.interface.mjs → esm2015/lib/gov-ui/models/isession-storage.interface.js} +0 -0
  283. /package/{esm2020/lib/gov-ui/models/public_api.mjs → esm2015/lib/gov-ui/models/public_api.js} +0 -0
  284. /package/{esm2020/lib/gov-ui/models/radio-buttons.model.mjs → esm2015/lib/gov-ui/models/radio-buttons.model.js} +0 -0
  285. /package/{esm2020/lib/gov-ui/public_api.mjs → esm2015/lib/gov-ui/public_api.js} +0 -0
  286. /package/{esm2020/lib/gov-ui/util/helpers/html-templates.helper.mjs → esm2015/lib/gov-ui/util/helpers/html-templates.helper.js} +0 -0
  287. /package/{esm2020/lib/gov-ui/util/session-storage/session-storage-utils.mjs → esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js} +0 -0
  288. /package/{esm2020/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs → esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js} +0 -0
  289. /package/{esm2020/lib/gov-ui/validators/date.validator.mjs → esm2015/lib/gov-ui/validators/date.validator.js} +0 -0
  290. /package/{esm2020/lib/gov-ui/validators/index.mjs → esm2015/lib/gov-ui/validators/index.js} +0 -0
  291. /package/{esm2020/lib/gov-ui/validators/public_api.mjs → esm2015/lib/gov-ui/validators/public_api.js} +0 -0
  292. /package/{esm2020/lib/gov-ui/validators/radio-group.validator.mjs → esm2015/lib/gov-ui/validators/radio-group.validator.js} +0 -0
  293. /package/{esm2020/lib/models/address-message.enum.mjs → esm2015/lib/models/address-message.enum.js} +0 -0
  294. /package/{esm2020/lib/models/address-option.model.mjs → esm2015/lib/models/address-option.model.js} +0 -0
  295. /package/{esm2020/lib/models/address.model.mjs → esm2015/lib/models/address.model.js} +0 -0
  296. /package/{esm2020/lib/models/case-share.model.mjs → esm2015/lib/models/case-share.model.js} +0 -0
  297. /package/{esm2020/lib/models/contact-details.model.mjs → esm2015/lib/models/contact-details.model.js} +0 -0
  298. /package/{esm2020/lib/models/due-date.model.mjs → esm2015/lib/models/due-date.model.js} +0 -0
  299. /package/{esm2020/lib/models/feature-user.mjs → esm2015/lib/models/feature-user.js} +0 -0
  300. /package/{esm2020/lib/models/filter.model.mjs → esm2015/lib/models/filter.model.js} +0 -0
  301. /package/{esm2020/lib/models/idle-config.model.mjs → esm2015/lib/models/idle-config.model.js} +0 -0
  302. /package/{esm2020/lib/models/index.mjs → esm2015/lib/models/index.js} +0 -0
  303. /package/{esm2020/lib/models/location.model.mjs → esm2015/lib/models/location.model.js} +0 -0
  304. /package/{esm2020/lib/models/pagination.model.mjs → esm2015/lib/models/pagination.model.js} +0 -0
  305. /package/{esm2020/lib/models/person.model.mjs → esm2015/lib/models/person.model.js} +0 -0
  306. /package/{esm2020/lib/models/search-options.model.mjs → esm2015/lib/models/search-options.model.js} +0 -0
  307. /package/{esm2020/lib/models/task-name.model.mjs → esm2015/lib/models/task-name.model.js} +0 -0
  308. /package/{esm2020/lib/models/tcDocument.model.mjs → esm2015/lib/models/tcDocument.model.js} +0 -0
  309. /package/{esm2020/lib/models/timeout-notification.model.mjs → esm2015/lib/models/timeout-notification.model.js} +0 -0
  310. /package/{esm2020/lib/models/user.model.mjs → esm2015/lib/models/user.model.js} +0 -0
  311. /package/{esm2020/lib/pipes/index.mjs → esm2015/lib/pipes/index.js} +0 -0
  312. /package/{esm2020/lib/services/address/address-parser.mjs → esm2015/lib/services/address/address-parser.js} +0 -0
  313. /package/{esm2020/lib/services/address/address-type.enum.mjs → esm2015/lib/services/address/address-type.enum.js} +0 -0
  314. /package/{esm2020/lib/services/index.mjs → esm2015/lib/services/index.js} +0 -0
  315. /package/{esm2020/lib/services/public-api.mjs → esm2015/lib/services/public-api.js} +0 -0
  316. /package/{esm2020/lib/services/ref-data/index.mjs → esm2015/lib/services/ref-data/index.js} +0 -0
  317. /package/{esm2020/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs → esm2015/lib/services/ref-data/models/ref-data-htmcs-service.model.js} +0 -0
  318. /package/{esm2020/lib/services/ref-data/models/ref-data-region.model.mjs → esm2015/lib/services/ref-data/models/ref-data-region.model.js} +0 -0
  319. /package/{esm2020/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs → esm2015/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.js} +0 -0
  320. /package/{esm2020/lib/window.mjs → esm2015/lib/window.js} +0 -0
  321. /package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
@@ -0,0 +1,205 @@
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
+ export class ShareCaseComponent {
9
+ constructor(stateService, router) {
10
+ this.stateService = stateService;
11
+ this.router = router;
12
+ this.shareCases = []; // cases selected for sharing
13
+ this.continueAllowed = false;
14
+ this.selectedUserToRemove = null;
15
+ this.removeUserFromCaseToggleOn = false;
16
+ this.users = []; // users of this organisation the cases can be shared with
17
+ this.confirmLink = '';
18
+ this.cancelLink = '';
19
+ this.showRemoveUsers = false;
20
+ this.fnTitle = '';
21
+ this.title = '';
22
+ this.unselect = new EventEmitter();
23
+ this.synchronizeStore = new EventEmitter();
24
+ this.validationErrors = [];
25
+ }
26
+ ngOnInit() {
27
+ this.shareCases$
28
+ .pipe(tap(sharedCases => {
29
+ // Update the list of users assigned to at least one case
30
+ this.getAssignedUsers(sharedCases.filter(sharedCase => sharedCase.sharedWith && sharedCase.sharedWith.length > 0));
31
+ }))
32
+ .subscribe(shareCases => {
33
+ this.shareCases = shareCases;
34
+ this.stateService.setCases(shareCases);
35
+ // Set the config to be used by the xuilib-gov-uk-error-message component, in particular the element ID to
36
+ // which the error message is associated
37
+ if (shareCases) {
38
+ this.selectedCasesErrorMessageConfig = {
39
+ id: shareCases.length > 0 ? 'cases' : 'noCaseDisplay'
40
+ };
41
+ }
42
+ });
43
+ this.shareCases$ = this.stateService.state;
44
+ this.shareCaseErrorMessage = { isInvalid: false, messages: [] };
45
+ }
46
+ onUnselect(c) {
47
+ this.validationErrors = [];
48
+ if (this.stateService.getCases().length === 1) {
49
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OneCaseMustBeSelected });
50
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OneCaseMustBeSelected] };
51
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
52
+ }
53
+ else {
54
+ this.unselect.emit(c);
55
+ this.stateService.removeCase(c.caseId);
56
+ }
57
+ }
58
+ onSynchronizeStore(event) {
59
+ this.synchronizeStore.emit(event);
60
+ }
61
+ onSelectedUser(user) {
62
+ this.selectedUser = user;
63
+ }
64
+ addUser() {
65
+ const newSharedCases = this.stateService.requestShare(this.selectedUser);
66
+ this.selectedUser = null;
67
+ if (this.userSelect) {
68
+ this.userSelect.clear();
69
+ }
70
+ this.synchronizeStore.emit(newSharedCases);
71
+ // Update the list of assigned users (which includes pending users)
72
+ this.getAssignedUsers(newSharedCases);
73
+ }
74
+ removeUser() {
75
+ if (this.selectedUserToRemove) {
76
+ const newSharedCases = this.stateService.requestUnshare(this.selectedUserToRemove);
77
+ this.synchronizeStore.emit(newSharedCases);
78
+ }
79
+ }
80
+ isDisabledAdd() {
81
+ return this.selectedUser === null || this.shareCases.length === 0;
82
+ }
83
+ /**
84
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
85
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
86
+ */
87
+ setContinueAllowed() {
88
+ // Always start with continueAllowed = false. This covers the scenario where a user might add someone for sharing
89
+ // a case (so, continueAllowed = true), then removes the same user before trying to continue. This would
90
+ // erroneously leave continueAllowed as true
91
+ this.continueAllowed = false;
92
+ this.shareCases$.subscribe(shareCases => {
93
+ for (const caseState of shareCases) {
94
+ if (caseState.pendingShares && caseState.pendingShares.length > 0) {
95
+ this.continueAllowed = true;
96
+ break;
97
+ }
98
+ if (caseState.pendingUnshares && caseState.pendingUnshares.length > 0) {
99
+ this.continueAllowed = true;
100
+ break;
101
+ }
102
+ }
103
+ });
104
+ }
105
+ onDeselect(sharedCase) {
106
+ if (sharedCase !== null) {
107
+ const updated = [];
108
+ for (const element of this.shareCases) {
109
+ if (element.caseId !== sharedCase.caseId) {
110
+ updated.push(element);
111
+ }
112
+ }
113
+ this.shareCases = updated;
114
+ }
115
+ this.stateService.setCases(this.shareCases);
116
+ }
117
+ onContinue() {
118
+ this.setContinueAllowed();
119
+ // If continuation is not allowed, set an error message
120
+ if (!this.continueAllowed) {
121
+ this.validationErrors = [];
122
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.NoChangesRequested });
123
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.NoChangesRequested] };
124
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
125
+ }
126
+ // Navigate to confirmation page only if allowed to continue
127
+ if (this.continueAllowed) {
128
+ // Check that no case is left unassigned; a user can be removed only if there is another current user, or if at
129
+ // least one user is to be added. Prevent navigation to confirmation page if there is at least one case left in
130
+ // an unassigned state
131
+ if (this.hasCasesLeftUnassigned(this.shareCases)) {
132
+ this.validationErrors = [];
133
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OnePersonMustBeAssigned });
134
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OnePersonMustBeAssigned] };
135
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
136
+ }
137
+ else {
138
+ this.router.navigate([this.confirmLink]);
139
+ }
140
+ }
141
+ }
142
+ /**
143
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
144
+ * @param sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
145
+ */
146
+ getAssignedUsers(sharedCases) {
147
+ const users = [];
148
+ sharedCases.forEach(sharedCase => {
149
+ if (sharedCase.sharedWith) {
150
+ sharedCase.sharedWith.forEach(user => {
151
+ if (!users.some(existingUser => user.idamId === existingUser.idamId)) {
152
+ users.push(user);
153
+ }
154
+ });
155
+ }
156
+ if (sharedCase.pendingShares) {
157
+ sharedCase.pendingShares.forEach(user => {
158
+ if (!users.some(existingUser => user.idamId === existingUser.idamId)) {
159
+ users.push(user);
160
+ }
161
+ });
162
+ }
163
+ });
164
+ this.assignedUsers = users;
165
+ }
166
+ /**
167
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
168
+ * unshares equal to the number of current shares, and there are no pending shares.
169
+ * @param sharedCases The array of shared cases to check
170
+ * @returns `true` if at least one case has the condition described above; `false` otherwise
171
+ */
172
+ hasCasesLeftUnassigned(sharedCases) {
173
+ return sharedCases.some(sharedCase => {
174
+ return sharedCase.pendingUnshares && sharedCase.sharedWith &&
175
+ sharedCase.pendingUnshares.length === sharedCase.sharedWith.length &&
176
+ (!sharedCase.pendingShares || sharedCase.pendingShares.length === 0);
177
+ });
178
+ }
179
+ }
180
+ ShareCaseComponent.decorators = [
181
+ { type: Component, args: [{
182
+ selector: 'xuilib-share-case',
183
+ 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 </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 [(ngModel)]=\"selectedUserToRemove\" 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 </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",
184
+ styles: ["select{width:100%}"]
185
+ },] }
186
+ ];
187
+ ShareCaseComponent.ctorParameters = () => [
188
+ { type: CaseSharingStateService },
189
+ { type: Router }
190
+ ];
191
+ ShareCaseComponent.propDecorators = {
192
+ removeUserFromCaseToggleOn: [{ type: Input }],
193
+ shareCases$: [{ type: Input }],
194
+ users: [{ type: Input }],
195
+ confirmLink: [{ type: Input }],
196
+ cancelLink: [{ type: Input }],
197
+ addUserLabel: [{ type: Input }],
198
+ showRemoveUsers: [{ type: Input }],
199
+ fnTitle: [{ type: Input }],
200
+ title: [{ type: Input }],
201
+ unselect: [{ type: Output }],
202
+ synchronizeStore: [{ type: Output }],
203
+ userSelect: [{ type: ViewChild, args: [UserSelectComponent, { static: true },] }]
204
+ };
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBYyx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXBGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBTzNFLE1BQU0sT0FBTyxrQkFBa0I7SUErQjdCLFlBQTZCLFlBQXFDLEVBQ3JDLE1BQWM7UUFEZCxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTlCcEMsZUFBVSxHQUFpQixFQUFFLENBQUMsQ0FBQyw2QkFBNkI7UUFFNUQsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIseUJBQW9CLEdBQWdCLElBQUksQ0FBQztRQUVoQywrQkFBMEIsR0FBWSxLQUFLLENBQUM7UUFHNUMsVUFBSyxHQUFrQixFQUFFLENBQUMsQ0FBQywwREFBMEQ7UUFFckYsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUV4QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxZQUFPLEdB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Q3RDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ3BFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2xCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHNCQUFzQixDQUFDLFdBQXlCO1FBQ3JELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuQyxPQUFPLFVBQVUsQ0FBQyxlQUFlLElBQUksVUFBVSxDQUFDLFVBQVU7Z0JBQ3hELFVBQVUsQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFDbEUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUF0TUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLDhxSkFBMEM7O2FBRTNDOzs7WUFQUSx1QkFBdUI7WUFOdkIsTUFBTTs7O3lDQXNCWixLQUFLOzBCQUVMLEtBQUs7b0JBQ0wsS0FBSzswQkFFTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzs4QkFDTCxLQUFLO3NCQUNMLEtBQUs7b0JBQ0wsS0FBSzt1QkFFTCxNQUFNOytCQUNOLE1BQU07eUJBSU4sU0FBUyxTQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZXNNb2RlbCwgR292VWlDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uL2dvdi11aS9tb2RlbHMnO1xuaW1wb3J0IHsgU2hhcmVkQ2FzZSwgU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FzZS1zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyRGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWRldGFpbHMubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItc2VsZWN0L3VzZXItc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zaGFyZS1jYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLWNhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaGFyZS1jYXNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVDYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc2hhcmVDYXNlczogU2hhcmVkQ2FzZVtdID0gW107IC8vIGNhc2VzIHNlbGVjdGVkIGZvciBzaGFyaW5nXG4gIHB1YmxpYyBzZWxlY3RlZENhc2VzRXJyb3JNZXNzYWdlQ29uZmlnOiBHb3ZVaUNvbmZpZ01vZGVsO1xuICBwdWJsaWMgY29udGludWVBbGxvd2VkID0gZmFsc2U7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXJzOiBVc2VyRGV0YWlsc1tdO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyVG9SZW1vdmU6IFVzZXJEZXRhaWxzID0gbnVsbDtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcbiAgQElucHV0KCkgcHVibGljIHVzZXJzOiBVc2VyRGV0YWlsc1tdID0gW107IC8vIHVzZXJzIG9mIHRoaXMgb3JnYW5pc2F0aW9uIHRoZSBjYXNlcyBjYW4gYmUgc2hhcmVkIHdpdGhcblxuICBASW5wdXQoKSBwdWJsaWMgY29uZmlybUxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgY2FuY2VsTGluazogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRVc2VyTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNob3dSZW1vdmVVc2VyczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZm5UaXRsZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJyc7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyB1bnNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcmVkQ2FzZT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzeW5jaHJvbml6ZVN0b3JlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFVzZXI6IFVzZXJEZXRhaWxzO1xuXG4gIEBWaWV3Q2hpbGQoVXNlclNlbGVjdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyU2VsZWN0OiBVc2VyU2VsZWN0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyB2YWxpZGF0aW9uRXJyb3JzOiB7IGlkOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9W10gPSBbXTtcbiAgcHVibGljIHNoYXJlQ2FzZUVycm9yTWVzc2FnZTogRXJyb3JNZXNzYWdlc01vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcikgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2hhcmVDYXNlcyRcbiAgICAgIC5waXBlKHRhcChzaGFyZWRDYXNlcyA9PiB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgbGlzdCBvZiB1c2VycyBhc3NpZ25lZCB0byBhdCBsZWFzdCBvbmUgY2FzZVxuICAgICAgICB0aGlzLmdldEFzc2lnbmVkVXNlcnMoc2hhcmVkQ2FzZXMuZmlsdGVyKHNoYXJlZENhc2UgPT4gc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPiAwKSk7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB7XG4gICAgICAgIHRoaXMuc2hhcmVDYXNlcyA9IHNoYXJlQ2FzZXM7XG4gICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldENhc2VzKHNoYXJlQ2FzZXMpO1xuICAgICAgICAvLyBTZXQgdGhlIGNvbmZpZyB0byBiZSB1c2VkIGJ5IHRoZSB4dWlsaWItZ292LXVrLWVycm9yLW1lc3NhZ2UgY29tcG9uZW50LCBpbiBwYXJ0aWN1bGFyIHRoZSBlbGVtZW50IElEIHRvXG4gICAgICAgIC8vIHdoaWNoIHRoZSBlcnJvciBtZXNzYWdlIGlzIGFzc29jaWF0ZWRcbiAgICAgICAgaWYgKHNoYXJlQ2FzZXMpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXNFcnJvck1lc3NhZ2VDb25maWcgPSB7XG4gICAgICAgICAgICBpZDogc2hhcmVDYXNlcy5sZW5ndGggPiAwID8gJ2Nhc2VzJyA6ICdub0Nhc2VEaXNwbGF5J1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQgPSB0aGlzLnN0YXRlU2VydmljZS5zdGF0ZTtcbiAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiBmYWxzZSwgbWVzc2FnZXM6IFtdIH07XG4gIH1cblxuICBwdWJsaWMgb25VbnNlbGVjdChjOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgaWYgKHRoaXMuc3RhdGVTZXJ2aWNlLmdldENhc2VzKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGlkOiAnY2FzZXMnLCBtZXNzYWdlOiBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVDYXNlTXVzdEJlU2VsZWN0ZWQgfSk7XG4gICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZUNhc2VNdXN0QmVTZWxlY3RlZF0gfTtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgbGVmdDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVuc2VsZWN0LmVtaXQoYyk7XG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5yZW1vdmVDYXNlKGMuY2FzZUlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TeW5jaHJvbml6ZVN0b3JlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RlZFVzZXIodXNlcjogVXNlckRldGFpbHMpIHtcbiAgICB0aGlzLnNlbGVjdGVkVXNlciA9IHVzZXI7XG4gIH1cblxuICBwdWJsaWMgYWRkVXNlcigpIHtcbiAgICBjb25zdCBuZXdTaGFyZWRDYXNlcyA9IHRoaXMuc3RhdGVTZXJ2aWNlLnJlcXVlc3RTaGFyZSh0aGlzLnNlbGVjdGVkVXNlcik7XG4gICAgdGhpcy5zZWxlY3RlZFVzZXIgPSBudWxsO1xuICAgIGlmICh0aGlzLnVzZXJTZWxlY3QpIHsgdGhpcy51c2VyU2VsZWN0LmNsZWFyKCk7IH1cbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChuZXdTaGFyZWRDYXNlcyk7XG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIGFzc2lnbmVkIHVzZXJzICh3aGljaCBpbmNsdWRlcyBwZW5kaW5nIHVzZXJzKVxuICAgIHRoaXMuZ2V0QXNzaWduZWRVc2VycyhuZXdTaGFyZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlVXNlcigpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFVzZXJUb1JlbW92ZSkge1xuICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZXMgPSB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0VW5zaGFyZSh0aGlzLnNlbGVjdGVkVXNlclRvUmVtb3ZlKTtcbiAgICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KG5ld1NoYXJlZENhc2VzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEaXNhYmxlZEFkZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFVzZXIgPT09IG51bGwgfHwgdGhpcy5zaGFyZUNhc2VzLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBvcmlnaW5hbGx5IHVzZWQgdG8gc2V0IGRpc2FibGVkIHN0YXRlIG9mIFwiQ29udGludWVcIiBidXR0b24sIG5vdyBjYWxsZWQgYnkgdGhlIGJ1dHRvbiBjbGljayBoYW5kbGVyIHRvXG4gICAqIGNvbnRyb2wgd2hldGhlciBuYXZpZ2F0aW9uIHRvIHRoZSBjb25maXJtYXRpb24gcGFnZSBpcyBhbGxvd2VkLiBJdCBpcyBwcmV2ZW50ZWQgaWYgbm8gY2hhbmdlcyBoYXZlIGJlZW4gbWFkZVxuICAgKi9cbiAgcHVibGljIHNldENvbnRpbnVlQWxsb3dlZCgpOiB2b2lkIHtcbiAgICAvLyBBbHdheXMgc3RhcnQgd2l0aCBjb250aW51ZUFsbG93ZWQgPSBmYWxzZS4gVGhpcyBjb3ZlcnMgdGhlIHNjZW5hcmlvIHdoZXJlIGEgdXNlciBtaWdodCBhZGQgc29tZW9uZSBmb3Igc2hhcmluZ1xuICAgIC8vIGEgY2FzZSAoc28sIGNvbnRpbnVlQWxsb3dlZCA9IHRydWUpLCB0aGVuIHJlbW92ZXMgdGhlIHNhbWUgdXNlciBiZWZvcmUgdHJ5aW5nIHRvIGNvbnRpbnVlLiBUaGlzIHdvdWxkXG4gICAgLy8gZXJyb25lb3VzbHkgbGVhdmUgY29udGludWVBbGxvd2VkIGFzIHRydWVcbiAgICB0aGlzLmNvbnRpbnVlQWxsb3dlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQuc3Vic2NyaWJlKHNoYXJlQ2FzZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBjYXNlU3RhdGUgb2Ygc2hhcmVDYXNlcykge1xuICAgICAgICBpZiAoY2FzZVN0YXRlLnBlbmRpbmdTaGFyZXMgJiYgY2FzZVN0YXRlLnBlbmRpbmdTaGFyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY29udGludWVBbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZVN0YXRlLnBlbmRpbmdVbnNoYXJlcyAmJiBjYXNlU3RhdGUucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmNvbnRpbnVlQWxsb3dlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlc2VsZWN0KHNoYXJlZENhc2U6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICBpZiAoc2hhcmVkQ2FzZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IFtdO1xuICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuc2hhcmVDYXNlcykge1xuICAgICAgICBpZiAoZWxlbWVudC5jYXNlSWQgIT09IHNoYXJlZENhc2UuY2FzZUlkKSB7XG4gICAgICAgICAgdXBkYXRlZC5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNoYXJlQ2FzZXMgPSB1cGRhdGVkO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZXRDYXNlcyh0aGlzLnNoYXJlQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGludWUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDb250aW51ZUFsbG93ZWQoKTtcbiAgICAvLyBJZiBjb250aW51YXRpb24gaXMgbm90IGFsbG93ZWQsIHNldCBhbiBlcnJvciBtZXNzYWdlXG4gICAgaWYgKCF0aGlzLmNvbnRpbnVlQWxsb3dlZCkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGlkOiAnY2FzZXMnLCBtZXNzYWdlOiBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5Ob0NoYW5nZXNSZXF1ZXN0ZWQgfSk7XG4gICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk5vQ2hhbmdlc1JlcXVlc3RlZF0gfTtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgbGVmdDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH1cbiAgICAvLyBOYXZpZ2F0ZSB0byBjb25maXJtYXRpb24gcGFnZSBvbmx5IGlmIGFsbG93ZWQgdG8gY29udGludWVcbiAgICBpZiAodGhpcy5jb250aW51ZUFsbG93ZWQpIHtcbiAgICAgIC8vIENoZWNrIHRoYXQgbm8gY2FzZSBpcyBsZWZ0IHVuYXNzaWduZWQ7IGEgdXNlciBjYW4gYmUgcmVtb3ZlZCBvbmx5IGlmIHRoZXJlIGlzIGFub3RoZXIgY3VycmVudCB1c2VyLCBvciBpZiBhdFxuICAgICAgLy8gbGVhc3Qgb25lIHVzZXIgaXMgdG8gYmUgYWRkZWQuIFByZXZlbnQgbmF2aWdhdGlvbiB0byBjb25maXJtYXRpb24gcGFnZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2FzZSBsZWZ0IGluXG4gICAgICAvLyBhbiB1bmFzc2lnbmVkIHN0YXRlXG4gICAgICBpZiAodGhpcy5oYXNDYXNlc0xlZnRVbmFzc2lnbmVkKHRoaXMuc2hhcmVDYXNlcykpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsgaWQ6ICdjYXNlcycsIG1lc3NhZ2U6IFNoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZVBlcnNvbk11c3RCZUFzc2lnbmVkIH0pO1xuICAgICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZVBlcnNvbk11c3RCZUFzc2lnbmVkXSB9O1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmNvbmZpcm1MaW5rXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB1bmlxdWUgbGlzdCBvZiBhbGwgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQsIG9yIGFyZSBwZW5kaW5nIGFzc2lnbWVudCB0bywgYXQgbGVhc3Qgb25lIGNhc2VcbiAgICogQHBhcmFtIHNoYXJlZENhc2VzIFRoZSBsaXN0IG9mIHNoYXJlZCBjYXNlcyBmcm9tIHdoaWNoIHRvIGdldCB1c2VycyB0aGVzZSBhcmUgc2hhcmVkIHdpdGgsIG9yIGFyZSB0byBiZSBzaGFyZWQgd2l0aFxuICAgKi9cbiAgcHVibGljIGdldEFzc2lnbmVkVXNlcnMoc2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSk6IHZvaWQge1xuICAgIGNvbnN0IHVzZXJzOiBVc2VyRGV0YWlsc1tdID0gW107XG4gICAgc2hhcmVkQ2FzZXMuZm9yRWFjaChzaGFyZWRDYXNlID0+IHtcbiAgICAgIGlmIChzaGFyZWRDYXNlLnNoYXJlZFdpdGgpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmZvckVhY2godXNlciA9PiB7XG4gICAgICAgICAgaWYgKCF1c2Vycy5zb21lKGV4aXN0aW5nVXNlciA9PiB1c2VyLmlkYW1JZCA9PT0gZXhpc3RpbmdVc2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmZvckVhY2godXNlciA9PiB7XG4gICAgICAgICAgaWYgKCF1c2Vycy5zb21lKGV4aXN0aW5nVXNlciA9PiB1c2VyLmlkYW1JZCA9PT0gZXhpc3RpbmdVc2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbmVkVXNlcnMgPSB1c2VycztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW55IHNoYXJlZCBjYXNlcyBoYXZlIGJlZW4gbGVmdCB1bmFzc2lnbmVkLiBUaGlzIG9jY3VycyBpZiBhIHNoYXJlZCBjYXNlIGhhcyBhIG51bWJlciBvZiBwZW5kaW5nXG4gICAqIHVuc2hhcmVzIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgY3VycmVudCBzaGFyZXMsIGFuZCB0aGVyZSBhcmUgbm8gcGVuZGluZyBzaGFyZXMuXG4gICAqIEBwYXJhbSBzaGFyZWRDYXNlcyBUaGUgYXJyYXkgb2Ygc2hhcmVkIGNhc2VzIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiBhdCBsZWFzdCBvbmUgY2FzZSBoYXMgdGhlIGNvbmRpdGlvbiBkZXNjcmliZWQgYWJvdmU7IGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICBwdWJsaWMgaGFzQ2FzZXNMZWZ0VW5hc3NpZ25lZChzaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNoYXJlZENhc2VzLnNvbWUoc2hhcmVkQ2FzZSA9PiB7XG4gICAgICByZXR1cm4gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgJiYgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmXG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCA9PT0gc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmxlbmd0aCAmJlxuICAgICAgICAoIXNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyB8fCBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMubGVuZ3RoID09PSAwKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,34 @@
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
+ export class ShareCaseConfirmComponent {
5
+ constructor(stateService) {
6
+ this.stateService = stateService;
7
+ this.shareCases = []; // cases selected for sharing
8
+ this.changeLink = '';
9
+ this.completeLink = '';
10
+ }
11
+ ngOnInit() {
12
+ this.shareCases$.subscribe(shareCases => {
13
+ this.shareCases = shareCases;
14
+ this.stateService.setCases(shareCases);
15
+ });
16
+ this.shareCases$ = this.stateService.state;
17
+ }
18
+ }
19
+ ShareCaseConfirmComponent.decorators = [
20
+ { type: Component, args: [{
21
+ selector: 'xuilib-share-case-confirm',
22
+ 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",
23
+ styles: [""]
24
+ },] }
25
+ ];
26
+ ShareCaseConfirmComponent.ctorParameters = () => [
27
+ { type: CaseSharingStateService }
28
+ ];
29
+ ShareCaseConfirmComponent.propDecorators = {
30
+ shareCases$: [{ type: Input }],
31
+ changeLink: [{ type: Input }],
32
+ completeLink: [{ type: Input }]
33
+ };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS1jb25maXJtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmUtY2FzZS1jb25maXJtL3NoYXJlLWNhc2UtY29uZmlybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQU92RyxNQUFNLE9BQU8seUJBQXlCO0lBVXBDLFlBQTZCLFlBQXFDO1FBQXJDLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQVIzRCxlQUFVLEdBQWlCLEVBQUUsQ0FBQyxDQUFDLDZCQUE2QjtRQUduRCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO0lBSTRCLENBQUM7SUFFaEUsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUM3QyxDQUFDOzs7WUF2QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLDh0QkFBa0Q7O2FBRW5EOzs7WUFOUSx1QkFBdUI7OzswQkFXN0IsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNoYXJlZENhc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FzZS1zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2hhcmluZy1zdGF0ZS9jYXNlLXNoYXJpbmctc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zaGFyZS1jYXNlLWNvbmZpcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2hhcmUtY2FzZS1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2hhcmUtY2FzZS1jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVDYXNlQ29uZmlybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHNoYXJlQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdOyAvLyBjYXNlcyBzZWxlY3RlZCBmb3Igc2hhcmluZ1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzaGFyZUNhc2VzJDogT2JzZXJ2YWJsZTxTaGFyZWRDYXNlW10+O1xuICBASW5wdXQoKSBwdWJsaWMgY2hhbmdlTGluazogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb21wbGV0ZUxpbms6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBzdGF0ZSQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkLnN1YnNjcmliZShzaGFyZUNhc2VzID0+IHtcbiAgICAgIHRoaXMuc2hhcmVDYXNlcyA9IHNoYXJlQ2FzZXM7XG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5zZXRDYXNlcyhzaGFyZUNhc2VzKTtcbiAgICB9KTtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ export class TabComponent {
3
+ constructor() {
4
+ this.tabChange = new EventEmitter();
5
+ }
6
+ tabChanged(event) {
7
+ this.tabChange.emit(event);
8
+ }
9
+ }
10
+ TabComponent.decorators = [
11
+ { type: Component, args: [{
12
+ selector: 'xuilib-tab',
13
+ template: "<mat-tab-group animationDuration=\"0ms\" (selectedTabChange)=\"tabChanged($event)\">\n <mat-tab *ngFor=\"let tabItem of tabItems; let last = last;\" [label]=\"tabItem.text | rpxTranslate\">\n </mat-tab>\n</mat-tab-group>"
14
+ },] }
15
+ ];
16
+ TabComponent.ctorParameters = () => [];
17
+ TabComponent.propDecorators = {
18
+ tabItems: [{ type: Input }],
19
+ tabChange: [{ type: Output }]
20
+ };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVd2RSxNQUFNLE9BQU8sWUFBWTtJQUdyQjtRQURpQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRVQsVUFBVSxDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7O1lBWkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxZQUFZO2dCQUN0Qiw4T0FBbUM7YUFDcEM7Ozs7dUJBR0UsS0FBSzt3QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJJdGVtIHtcbiAgICB0ZXh0OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAneHVpbGliLXRhYicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYi5jb21wb25lbnQuaHRtbCdcbiAgfSlcblxuZXhwb3J0IGNsYXNzIFRhYkNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgcHVibGljIHRhYkl0ZW1zOiBhbnkgW107XG4gICAgQE91dHB1dCgpIHB1YmxpYyB0YWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgcHVibGljIHRhYkNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgdGhpcy50YWJDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ export class TcConfirmComponent {
3
+ constructor() {
4
+ this.confirm = new EventEmitter();
5
+ }
6
+ onClick() {
7
+ this.confirm.emit();
8
+ }
9
+ }
10
+ TcConfirmComponent.decorators = [
11
+ { type: Component, args: [{
12
+ selector: 'xuilib-tc-confirm',
13
+ template: "<div class=\"govuk-width-container\">\n <main role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <div class=\"column-two-thirds\">\n <h1 class=\"govuk-heading-xl\">{{'Using this service' | rpxTranslate}}</h1>\n <h2 class=\"govuk-heading-m\">{{'Terms and conditions' | rpxTranslate}}</h2>\n <p>{{'We\\'ve recently updated the' | rpxTranslate}}\n <a\n routerLink=\"/terms-and-conditions\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >{{'terms and conditions' | rpxTranslate}}</a\n >.\n </p>\n <p>{{'You must review and accept them.' | rpxTranslate}}\n </p>\n <p>\n <button class=\"govuk-button\" (click)=\"onClick()\">\n {{ buttonText | rpxTranslate }}\n </button>\n </p>\n </div>\n </div>\n </div>\n <div class=\"govuk-grid-column-one-third\"></div>\n </main>\n</div>\n",
14
+ styles: [""]
15
+ },] }
16
+ ];
17
+ TcConfirmComponent.ctorParameters = () => [];
18
+ TcConfirmComponent.propDecorators = {
19
+ buttonText: [{ type: Input }],
20
+ confirm: [{ type: Output }]
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGMtY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RjLWNvbmZpcm0vdGMtY29uZmlybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU92RSxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCO1FBRmlCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXJDLENBQUM7SUFFVCxPQUFPO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7WUFkRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsdWpDQUEwQzs7YUFFM0M7Ozs7eUJBR0UsS0FBSztzQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXRjLWNvbmZpcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGMtY29uZmlybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RjLWNvbmZpcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUY0NvbmZpcm1Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBidXR0b25UZXh0OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtLmVtaXQoKTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { Component } from '@angular/core';
2
+ export class TcDisplayHtmlComponent {
3
+ constructor() { }
4
+ }
5
+ TcDisplayHtmlComponent.decorators = [
6
+ { type: Component, args: [{
7
+ selector: 'xuilib-tc-display-html',
8
+ template: "<ng-content></ng-content>",
9
+ styles: [":host{display:block;width:100%}"]
10
+ },] }
11
+ ];
12
+ TcDisplayHtmlComponent.ctorParameters = () => [];
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGMtZGlzcGxheS1odG1sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGVybXMtYW5kLWNvbmRpdGlvbnMvdGMtZGlzcGxheS90Yy1kaXNwbGF5LWh0bWwvdGMtZGlzcGxheS1odG1sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzFDLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsZ0JBQWdCLENBQUM7OztZQVBsQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMscUNBQStDOzthQUVoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItdGMtZGlzcGxheS1odG1sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RjLWRpc3BsYXktaHRtbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RjLWRpc3BsYXktaHRtbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRjRGlzcGxheUh0bWxDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { Component } from '@angular/core';
2
+ export class TcDisplayPlainComponent {
3
+ constructor() { }
4
+ }
5
+ TcDisplayPlainComponent.decorators = [
6
+ { type: Component, args: [{
7
+ selector: 'xuilib-tc-display-plain',
8
+ template: "<ng-content></ng-content>",
9
+ styles: [":host{display:block;width:100%}"]
10
+ },] }
11
+ ];
12
+ TcDisplayPlainComponent.ctorParameters = () => [];
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGMtZGlzcGxheS1wbGFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Rlcm1zLWFuZC1jb25kaXRpb25zL3RjLWRpc3BsYXkvdGMtZGlzcGxheS1wbGFpbi90Yy1kaXNwbGF5LXBsYWluLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzFDLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsZ0JBQWdCLENBQUM7OztZQVBsQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMscUNBQWdEOzthQUVqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItdGMtZGlzcGxheS1wbGFpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90Yy1kaXNwbGF5LXBsYWluLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGMtZGlzcGxheS1wbGFpbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRjRGlzcGxheVBsYWluQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Component, Input } from '@angular/core';
2
+ export class TermsAndConditionsComponent {
3
+ constructor() { }
4
+ }
5
+ TermsAndConditionsComponent.decorators = [
6
+ { type: Component, args: [{
7
+ selector: 'xuilib-terms-and-conditions',
8
+ template: "<ng-container [ngSwitch]=\"document.mimeType\">\n <xuilib-tc-display-html *ngSwitchCase=\"'text/html'\">\n <div [innerHTML]=\"document.content | rpxTranslate\"></div>\n </xuilib-tc-display-html>\n <xuilib-tc-display-plain *ngSwitchCase=\"'text/plain'\">\n {{ document.content | rpxTranslate}}\n </xuilib-tc-display-plain>\n <div *ngSwitchDefault>\n {{'An error occured. Please try again.' | rpxTranslate}}\n </div>\n</ng-container>\n",
9
+ styles: [":host{display:block;width:100%}"]
10
+ },] }
11
+ ];
12
+ TermsAndConditionsComponent.ctorParameters = () => [];
13
+ TermsAndConditionsComponent.propDecorators = {
14
+ document: [{ type: Input }]
15
+ };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtYW5kLWNvbmRpdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy90ZXJtcy1hbmQtY29uZGl0aW9ucy90ZXJtcy1hbmQtY29uZGl0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRakQsTUFBTSxPQUFPLDJCQUEyQjtJQUl0QyxnQkFBZ0IsQ0FBQzs7O1lBVGxCLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNkJBQTZCO2dCQUN2Qyw0Y0FBb0Q7O2FBRXJEOzs7O3VCQUdFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUQ0RvY3VtZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXRlcm1zLWFuZC1jb25kaXRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlcm1zLWFuZC1jb25kaXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGVybXMtYW5kLWNvbmRpdGlvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUZXJtc0FuZENvbmRpdGlvbnNDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBkb2N1bWVudDogVENEb2N1bWVudDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ export class UserDetailsComponent {
3
+ constructor() {
4
+ this.showEditLink = false;
5
+ this.showHelpLink = false;
6
+ this.suspendUserEvent = new EventEmitter();
7
+ this.showSuspendUserButton = false;
8
+ this.reinvite = new EventEmitter();
9
+ }
10
+ reinviteClick(user) {
11
+ this.reinvite.emit(user);
12
+ }
13
+ suspendUser(suspendUser) {
14
+ this.suspendUserEvent.emit(suspendUser);
15
+ }
16
+ userHasRole(theRole) {
17
+ if (this.user && this.user.roles) {
18
+ return this.user.roles.includes(theRole);
19
+ }
20
+ return false;
21
+ }
22
+ }
23
+ UserDetailsComponent.decorators = [
24
+ { type: Component, args: [{
25
+ selector: 'xuilib-user-details',
26
+ template: "<div class=\"govuk-warning-text\" *ngIf=\"warningTitle && warningTitle !== ''\">\n<span class=\"govuk-warning-text__icon\">!</span>\n<strong class=\"govuk-warning-text__text\">\n {{ warningTitle | rpxTranslate}}\n</strong>\n</div>\n<table class=\"govuk-table\" *ngIf=\"user\">\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"row\">{{'Name' | rpxTranslate}}</th>\n <td class=\"govuk-table__cell\">{{user.fullName | rpxTranslate}}</td>\n <td class=\"govuk-table__cell\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"row\">{{'Email address' | rpxTranslate}}</th>\n <td class=\"govuk-table__cell\">{{user.email}}</td>\n <td class=\"govuk-table__cell\"></td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"!user.resendInvite\">\n <th class=\"govuk-table__header\" scope=\"row\">{{'Permissions' | rpxTranslate}}</th>\n <td class=\"govuk-table__cell\">\n <div *ngIf=\"user.manageOrganisations === 'Yes'\">{{'Manage organisations' | rpxTranslate}}</div>\n <div *ngIf=\"user.manageUsers === 'Yes'\">{{'Manage users' | rpxTranslate}}</div>\n <div *ngIf=\"user.manageCases === 'Yes'\">{{'Manage cases' | rpxTranslate}}</div>\n <div *ngIf=\"userHasRole('pui-caa')\">{{'Case access administrator' | rpxTranslate}}</div>\n <div *ngIf=\"userHasRole('pui-finance-manager')\">{{'Manage fee accounts' | rpxTranslate}}</div>\n </td>\n <td class=\"govuk-table__cell\"><a *ngIf=\"editPermissionRouterLink && showEditLink\" [routerLink]=\"editPermissionRouterLink\">{{'Change' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'roles' | rpxTranslate}}</span></a></td>\n </tr>\n </tbody>\n</table>\n<button *ngIf=\"showSuspendUserButton\" class=\"govuk-button govuk-button--warning\" (click)=\"suspendUser(user)\">\n {{'Suspend account' | rpxTranslate}}\n</button>\n<div *ngIf=\"user && user.resendInvite\">\n <div class=\"govuk-inset-text\">\n <p>{{'This user has already been invited but has not activated their account.' | rpxTranslate}}</p>\n <p>{{'If you resend an invitation, they\\'ll receive an email from HM Courts and Tribunals to finish setting up their account.' | rpxTranslate}}</p>\n <p>{{'You can\\'t invite the same user more than once an hour.' | rpxTranslate}}</p>\n </div>\n <a role=\"button\" draggable=\"false\" class=\"govuk-button\" (click)=\"reinviteClick(user)\" id=\"resend-invite-button\">\n {{'Resend invitation' | rpxTranslate}}\n </a>\n</div>\n<p class=\"govuk-body\" *ngIf=\"showHelpLink && suspendHelpLink\"><a [routerLink]=\"suspendHelpLink\" target=\"_blank\">{{'Get help' | rpxTranslate}}</a> {{'to reactivate this account.' | rpxTranslate}}</p>\n",
27
+ styles: [":host{display:block}"]
28
+ },] }
29
+ ];
30
+ UserDetailsComponent.propDecorators = {
31
+ user: [{ type: Input }],
32
+ editPermissionRouterLink: [{ type: Input }],
33
+ warningTitle: [{ type: Input }],
34
+ showEditLink: [{ type: Input }],
35
+ showHelpLink: [{ type: Input }],
36
+ suspendHelpLink: [{ type: Input }],
37
+ suspendUserEvent: [{ type: Output }],
38
+ showSuspendUserButton: [{ type: Input }],
39
+ reinvite: [{ type: Output }]
40
+ };
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1kZXRhaWxzL3VzZXItZGV0YWlscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVF2RSxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBU29CLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTdCLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDN0MsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzdCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBZ0J6RCxDQUFDO0lBZFUsYUFBYSxDQUFDLElBQVU7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLFdBQVcsQ0FBQyxXQUFpQjtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBZTtRQUNoQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQTdCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtnQkFFL0IsbXlGQUE0Qzs7YUFDL0M7OzttQkFFSSxLQUFLO3VDQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7OEJBQ0wsS0FBSzsrQkFDTCxNQUFNO29DQUNOLEtBQUs7dUJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd4dWlsaWItdXNlci1kZXRhaWxzJyxcbiAgICBzdHlsZVVybHM6IFsnLi91c2VyLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyRGV0YWlsc0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgcHVibGljIHVzZXI6IFVzZXI7XG4gICAgQElucHV0KCkgcHVibGljIGVkaXRQZXJtaXNzaW9uUm91dGVyTGluazogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB3YXJuaW5nVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0VkaXRMaW5rOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dIZWxwTGluazogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXNwZW5kSGVscExpbms6IHN0cmluZztcbiAgICBAT3V0cHV0KCkgcHVibGljIHN1c3BlbmRVc2VyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXI+KCk7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dTdXNwZW5kVXNlckJ1dHRvbiA9IGZhbHNlO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVpbnZpdGUgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXI+KCk7XG5cbiAgICBwdWJsaWMgcmVpbnZpdGVDbGljayh1c2VyOiBVc2VyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVpbnZpdGUuZW1pdCh1c2VyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3VzcGVuZFVzZXIoc3VzcGVuZFVzZXI6IFVzZXIpOiB2b2lkIHtcbiAgICAgIHRoaXMuc3VzcGVuZFVzZXJFdmVudC5lbWl0KHN1c3BlbmRVc2VyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXNlckhhc1JvbGUodGhlUm9sZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICBpZiAodGhpcy51c2VyICYmIHRoaXMudXNlci5yb2xlcykge1xuICAgICAgICByZXR1cm4gdGhpcy51c2VyLnJvbGVzLmluY2x1ZGVzKHRoZVJvbGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ export class UserListComponent {
3
+ constructor() {
4
+ this.users = [];
5
+ this.userClick = new EventEmitter();
6
+ this.pageChange = new EventEmitter();
7
+ }
8
+ ngOnInit() {
9
+ this.pagination = { itemsPerPage: 50, currentPage: this.currentPageNumber, totalItems: this.pageTotalSize };
10
+ }
11
+ onUserClick(user) {
12
+ this.userClick.emit(user);
13
+ }
14
+ emitPageClickEvent(pageNumber) {
15
+ this.currentPageNumber = pageNumber;
16
+ this.pageChange.emit(pageNumber);
17
+ }
18
+ }
19
+ UserListComponent.decorators = [
20
+ { type: Component, args: [{
21
+ selector: 'xuilib-user-list',
22
+ template: "<table class=\"govuk-table\">\n\n <thead clas=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\">{{'Name' | rpxTranslate}}</th>\n <th class=\"govuk-table__header\" scope=\"col\">{{'Email' | rpxTranslate}}</th>\n <th class=\"govuk-table__header\" scope=\"col\">{{'Status' | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-container *ngFor=\"let u of users | paginate: { itemsPerPage: pagination.itemsPerPage, currentPage: currentPageNumber, totalItems: pagination.totalItems }\">\n <tr class=\"govuk-table__row\" data-selector=\"table-row\">\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">\n <a class=\"govuk-link\" [attr.title]=\"u.routerLinkTitle\" [routerLink]=\"u.routerLink\" (click)=\"onUserClick(u)\">{{ u.fullName }}</a>\n </td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.email }}</td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.status }}</td>\n </tr>\n </ng-container>\n </tbody>\n</table>\n<xuilib-hmcts-pagination (pageChange)=\"emitPageClickEvent($event)\" [pageSize]=\"pagination.itemsPerPage\"></xuilib-hmcts-pagination>\n",
23
+ styles: [":host{display:block}"]
24
+ },] }
25
+ ];
26
+ UserListComponent.propDecorators = {
27
+ users: [{ type: Input }],
28
+ currentPageNumber: [{ type: Input }],
29
+ pageTotalSize: [{ type: Input }],
30
+ userClick: [{ type: Output }],
31
+ pageChange: [{ type: Output }]
32
+ };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1saXN0L3VzZXItbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMvRSxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBTW9CLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbEIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFnQnJELENBQUM7SUFaVSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBQyxDQUFDO0lBQzdHLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBVTtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sa0JBQWtCLENBQUMsVUFBZTtRQUN2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OztZQXpCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtnQkFFNUIsZzBDQUF5Qzs7YUFDNUM7OztvQkFFSSxLQUFLO2dDQUNMLEtBQUs7NEJBQ0wsS0FBSzt3QkFDTCxNQUFNO3lCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAneHVpbGliLXVzZXItbGlzdCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyB1c2VyczogVXNlcltdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIGN1cnJlbnRQYWdlTnVtYmVyPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdlVG90YWxTaXplPzogYW55O1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgdXNlckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxVc2VyPigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uO1xuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uID0geyBpdGVtc1BlclBhZ2U6IDUwLCBjdXJyZW50UGFnZTogdGhpcy5jdXJyZW50UGFnZU51bWJlciwgdG90YWxJdGVtczogdGhpcy5wYWdlVG90YWxTaXplfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Vc2VyQ2xpY2sodXNlcjogVXNlcikge1xuICAgICAgdGhpcy51c2VyQ2xpY2suZW1pdCh1c2VyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdFBhZ2VDbGlja0V2ZW50KHBhZ2VOdW1iZXI6IGFueSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZU51bWJlciA9IHBhZ2VOdW1iZXI7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChwYWdlTnVtYmVyKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { map } from 'rxjs/operators';
4
+ export class UserSelectComponent {
5
+ constructor() {
6
+ this.selected = new EventEmitter();
7
+ this.control = new FormControl();
8
+ }
9
+ ngOnInit() {
10
+ this.filteredUsers = this.control.valueChanges.pipe(map(value => typeof value === typeof 'string' ? this.filterUsers(value) : this.users));
11
+ this.selected.emit(null);
12
+ }
13
+ displayValue(user) {
14
+ return user ? `${user.firstName} ${user.lastName} - ${user.email}` : '';
15
+ }
16
+ onSelected(e) {
17
+ this.selected.emit(e.option.value);
18
+ }
19
+ clear() {
20
+ this.control.setValue(null);
21
+ }
22
+ onUserChange(newUserValue) {
23
+ if (!newUserValue || !newUserValue.email) {
24
+ this.selected.emit(null);
25
+ }
26
+ }
27
+ filterUsers(value) {
28
+ if (value) {
29
+ value = value.toLowerCase();
30
+ return this.users.filter(user => {
31
+ if (user.firstName.toLowerCase().includes(value)) {
32
+ return true;
33
+ }
34
+ if (user.lastName.toLowerCase().includes(value)) {
35
+ return true;
36
+ }
37
+ if (user.email.toLowerCase().includes(value)) {
38
+ return true;
39
+ }
40
+ return false;
41
+ });
42
+ }
43
+ return [];
44
+ }
45
+ }
46
+ UserSelectComponent.decorators = [
47
+ { type: Component, args: [{
48
+ selector: 'xuilib-user-select',
49
+ template: "<input class=\"govuk-input\" type=\"text\" [matAutocomplete]=\"dropdown\" [formControl]=\"control\" (ngModelChange)=\"onUserChange($event)\"\n [attr.aria-labelledby]=\"'add-user-hint' | rpxTranslate\">\n\n<mat-autocomplete #dropdown=\"matAutocomplete\" [displayWith]=\"displayValue\" autoActiveFirstOption (optionSelected)=\"onSelected($event)\">\n <mat-option *ngFor=\"let user of filteredUsers | async\" [value]=\"user\">\n {{ user.firstName | rpxTranslate }} {{ user.lastName | rpxTranslate }} - {{ user.email }}\n </mat-option>\n</mat-autocomplete>\n",
50
+ styles: [""]
51
+ },] }
52
+ ];
53
+ UserSelectComponent.ctorParameters = () => [];
54
+ UserSelectComponent.propDecorators = {
55
+ users: [{ type: Input }],
56
+ selected: [{ type: Output }]
57
+ };
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy91c2VyLXNlbGVjdC91c2VyLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXJDLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUI7UUFOaUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFJckQsWUFBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFbkIsQ0FBQztJQUVWLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDakQsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDdEYsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBaUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFTSxVQUFVLENBQUMsQ0FBK0I7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxZQUFZLENBQUMsWUFBeUI7UUFDM0MsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWE7UUFDL0IsSUFBSSxLQUFLLEVBQUU7WUFDVCxLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2hELE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQy9DLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzVDLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7O1lBM0RGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5Qixpa0JBQTJDOzthQUU1Qzs7OztvQkFHRSxLQUFLO3VCQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXVzZXItc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1zZWxlY3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBwdWJsaWMgdXNlcnM6IFVzZXJEZXRhaWxzW107XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VXNlckRldGFpbHM+KCk7XG5cbiAgcHVibGljIGZpbHRlcmVkVXNlcnM6IE9ic2VydmFibGU8VXNlckRldGFpbHNbXT47XG5cbiAgcHVibGljIGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBtYXAodmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSB0eXBlb2YgJ3N0cmluZycgPyB0aGlzLmZpbHRlclVzZXJzKHZhbHVlKSA6IHRoaXMudXNlcnMpXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVZhbHVlKHVzZXI6IFVzZXJEZXRhaWxzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXNlciA/IGAke3VzZXIuZmlyc3ROYW1lfSAke3VzZXIubGFzdE5hbWV9IC0gJHt1c2VyLmVtYWlsfWAgOiAnJztcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkKGU6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoZS5vcHRpb24udmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBvblVzZXJDaGFuZ2UobmV3VXNlclZhbHVlOiBVc2VyRGV0YWlscykge1xuICAgIGlmICghbmV3VXNlclZhbHVlIHx8ICFuZXdVc2VyVmFsdWUuZW1haWwpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlclVzZXJzKHZhbHVlOiBzdHJpbmcpOiBVc2VyRGV0YWlsc1tdIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiB0aGlzLnVzZXJzLmZpbHRlcih1c2VyID0+IHtcbiAgICAgICAgaWYgKHVzZXIuZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXIubGFzdE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlci5lbWFpbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXX0=