@hmcts/rpx-xui-common-lib 1.8.0-angular-upgrade-9-rc.10 → 2.0.0-angular-upgrade-8

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 (280) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +7405 -3198
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +2 -2
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +10 -5
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +17 -13
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +127 -45
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +23 -16
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +78 -31
  10. package/esm2015/lib/components/due-date/due-date.component.js +110 -24
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +34 -29
  12. package/esm2015/lib/components/find-location/find-location.component.js +140 -69
  13. package/esm2015/lib/components/find-person/find-person.component.js +180 -97
  14. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +55 -11
  15. package/esm2015/lib/components/generic-filter/generic-filter.component.js +293 -54
  16. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +29 -20
  17. package/esm2015/lib/components/index.js +7 -2
  18. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +33 -23
  19. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +35 -34
  20. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +22 -16
  21. package/esm2015/lib/components/pagination/pagination.component.js +38 -28
  22. package/esm2015/lib/components/public_api.js +33 -33
  23. package/esm2015/lib/components/search-judicials/search-judicials.component.js +156 -70
  24. package/esm2015/lib/components/search-location/search-location.component.js +183 -80
  25. package/esm2015/lib/components/search-venue/search-venue.component.js +154 -62
  26. package/esm2015/lib/components/selected-case/selected-case.component.js +191 -54
  27. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +53 -22
  28. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +68 -38
  29. package/esm2015/lib/components/service-message/service-message.component.js +32 -23
  30. package/esm2015/lib/components/service-messages/service-messages.component.js +77 -29
  31. package/esm2015/lib/components/share-case/share-case.component.js +104 -45
  32. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +50 -27
  33. package/esm2015/lib/components/tab/tab.component.js +37 -19
  34. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +29 -20
  35. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +17 -13
  36. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +17 -13
  37. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +23 -16
  38. package/esm2015/lib/components/user-details/user-details.component.js +57 -47
  39. package/esm2015/lib/components/user-list/user-list.component.js +54 -19
  40. package/esm2015/lib/components/user-select/user-select.component.js +64 -23
  41. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +67 -21
  42. package/esm2015/lib/directives/index.js +7 -2
  43. package/esm2015/lib/directives/let/let.directive.js +49 -16
  44. package/esm2015/lib/directives/public-api.js +8 -3
  45. package/esm2015/lib/exui-common-lib.module.js +39 -34
  46. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +34 -23
  47. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +23 -18
  48. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +68 -30
  49. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +25 -19
  50. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +28 -19
  51. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +36 -23
  52. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +28 -23
  53. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +35 -24
  54. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +22 -15
  55. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +35 -23
  56. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +23 -18
  57. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +34 -27
  58. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +47 -32
  59. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +29 -22
  60. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +26 -20
  61. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +56 -26
  62. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +27 -17
  63. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +52 -40
  64. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +39 -43
  65. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +36 -29
  66. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +40 -18
  67. package/esm2015/lib/gov-ui/components/index.js +7 -2
  68. package/esm2015/lib/gov-ui/components/public_api.js +7 -22
  69. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +30 -12
  70. package/esm2015/lib/gov-ui/gov-ui.service.js +16 -12
  71. package/esm2015/lib/gov-ui/index.js +7 -2
  72. package/esm2015/lib/gov-ui/models/banner-data-model.js +16 -1
  73. package/esm2015/lib/gov-ui/models/checkboxes-model.js +22 -1
  74. package/esm2015/lib/gov-ui/models/error-messages-model.js +16 -1
  75. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +36 -1
  76. package/esm2015/lib/gov-ui/models/index.js +7 -1
  77. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +24 -1
  78. package/esm2015/lib/gov-ui/models/public_api.js +10 -1
  79. package/esm2015/lib/gov-ui/public_api.js +9 -5
  80. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +14 -4
  81. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +48 -12
  82. package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +24 -5
  83. package/esm2015/lib/gov-ui/validators/date.validator.js +20 -3
  84. package/esm2015/lib/gov-ui/validators/index.js +7 -2
  85. package/esm2015/lib/gov-ui/validators/public_api.js +9 -4
  86. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +15 -3
  87. package/esm2015/lib/models/case-share.model.js +26 -1
  88. package/esm2015/lib/models/contact-details.model.js +31 -7
  89. package/esm2015/lib/models/due-date.model.js +14 -7
  90. package/esm2015/lib/models/feature-user.js +16 -1
  91. package/esm2015/lib/models/filter.model.js +116 -1
  92. package/esm2015/lib/models/idle-config.model.js +20 -1
  93. package/esm2015/lib/models/index.js +19 -6
  94. package/esm2015/lib/models/location.model.js +108 -1
  95. package/esm2015/lib/models/pagination.model.js +18 -0
  96. package/esm2015/lib/models/person.model.js +92 -17
  97. package/esm2015/lib/models/public_api.js +11 -4
  98. package/esm2015/lib/models/search-options.model.js +22 -1
  99. package/esm2015/lib/models/tcDocument.model.js +18 -1
  100. package/esm2015/lib/models/timeout-notification.model.js +18 -1
  101. package/esm2015/lib/models/user-details.model.js +22 -1
  102. package/esm2015/lib/models/user.model.js +25 -1
  103. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +92 -19
  104. package/esm2015/lib/services/cookie/cookie.service.js +78 -19
  105. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +51 -16
  106. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +35 -11
  107. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +101 -21
  108. package/esm2015/lib/services/filter/filter.service.js +63 -11
  109. package/esm2015/lib/services/find-person/find-person.service.js +130 -25
  110. package/esm2015/lib/services/google-analytics/google-analytics.service.js +70 -21
  111. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +71 -23
  112. package/esm2015/lib/services/index.js +7 -2
  113. package/esm2015/lib/services/loading/loading.service.js +48 -11
  114. package/esm2015/lib/services/locations/location.service.js +35 -22
  115. package/esm2015/lib/services/manage-session/manage-session.services.js +70 -21
  116. package/esm2015/lib/services/public-api.js +18 -13
  117. package/esm2015/lib/services/role-guard/role.guard.js +61 -24
  118. package/esm2015/lib/services/role-guard/role.service.js +28 -11
  119. package/esm2015/lib/services/session-storage/session-storage.service.js +24 -12
  120. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +82 -20
  121. package/esm2015/lib/window.js +10 -1
  122. package/esm2015/public-api.js +13 -8
  123. package/esm5/hmcts-rpx-xui-common-lib.js +10 -5
  124. package/esm5/lib/components/accessibility/accessibility.component.js +15 -10
  125. package/esm5/lib/components/checkbox-list/checkbox-list.component.js +232 -57
  126. package/esm5/lib/components/contact-details/contact-details.component.js +22 -14
  127. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +106 -36
  128. package/esm5/lib/components/due-date/due-date.component.js +142 -29
  129. package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +33 -27
  130. package/esm5/lib/components/find-location/find-location.component.js +180 -80
  131. package/esm5/lib/components/find-person/find-person.component.js +203 -102
  132. package/esm5/lib/components/generic-filter/generic-filter-utils.js +57 -13
  133. package/esm5/lib/components/generic-filter/generic-filter.component.js +421 -85
  134. package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +32 -19
  135. package/esm5/lib/components/index.js +7 -2
  136. package/esm5/lib/components/invite-user-form/invite-user-form.component.js +37 -23
  137. package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +34 -32
  138. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +21 -14
  139. package/esm5/lib/components/pagination/pagination.component.js +45 -28
  140. package/esm5/lib/components/public_api.js +33 -33
  141. package/esm5/lib/components/search-judicials/search-judicials.component.js +198 -78
  142. package/esm5/lib/components/search-location/search-location.component.js +217 -89
  143. package/esm5/lib/components/search-venue/search-venue.component.js +199 -71
  144. package/esm5/lib/components/selected-case/selected-case.component.js +279 -72
  145. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +61 -22
  146. package/esm5/lib/components/selected-case-list/selected-case-list.component.js +82 -39
  147. package/esm5/lib/components/service-message/service-message.component.js +36 -22
  148. package/esm5/lib/components/service-messages/service-messages.component.js +91 -30
  149. package/esm5/lib/components/share-case/share-case.component.js +138 -52
  150. package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +49 -25
  151. package/esm5/lib/components/tab/tab.component.js +41 -18
  152. package/esm5/lib/components/tc-confirm/tc-confirm.component.js +32 -19
  153. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +15 -10
  154. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +15 -10
  155. package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +22 -14
  156. package/esm5/lib/components/user-details/user-details.component.js +71 -48
  157. package/esm5/lib/components/user-list/user-list.component.js +65 -18
  158. package/esm5/lib/components/user-select/user-select.component.js +92 -27
  159. package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +70 -21
  160. package/esm5/lib/directives/index.js +7 -2
  161. package/esm5/lib/directives/let/let.directive.js +51 -15
  162. package/esm5/lib/directives/public-api.js +8 -3
  163. package/esm5/lib/exui-common-lib.module.js +33 -25
  164. package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +37 -22
  165. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +22 -16
  166. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +89 -32
  167. package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +24 -17
  168. package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +31 -18
  169. package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +43 -23
  170. package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +27 -21
  171. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +45 -24
  172. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +21 -13
  173. package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +44 -18
  174. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +22 -16
  175. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +37 -26
  176. package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +51 -31
  177. package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +32 -21
  178. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +25 -18
  179. package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +71 -28
  180. package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +27 -16
  181. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +60 -41
  182. package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +37 -40
  183. package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +36 -28
  184. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +39 -16
  185. package/esm5/lib/gov-ui/components/index.js +7 -2
  186. package/esm5/lib/gov-ui/components/public_api.js +7 -22
  187. package/esm5/lib/gov-ui/directives/remove-host.directive.js +29 -10
  188. package/esm5/lib/gov-ui/gov-ui.service.js +14 -9
  189. package/esm5/lib/gov-ui/index.js +7 -2
  190. package/esm5/lib/gov-ui/models/banner-data-model.js +16 -1
  191. package/esm5/lib/gov-ui/models/checkboxes-model.js +22 -1
  192. package/esm5/lib/gov-ui/models/error-messages-model.js +16 -1
  193. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +36 -1
  194. package/esm5/lib/gov-ui/models/index.js +7 -1
  195. package/esm5/lib/gov-ui/models/isession-storage.interface.js +24 -1
  196. package/esm5/lib/gov-ui/models/public_api.js +10 -1
  197. package/esm5/lib/gov-ui/public_api.js +9 -5
  198. package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +34 -3
  199. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +48 -12
  200. package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +24 -5
  201. package/esm5/lib/gov-ui/validators/date.validator.js +20 -3
  202. package/esm5/lib/gov-ui/validators/index.js +7 -2
  203. package/esm5/lib/gov-ui/validators/public_api.js +9 -4
  204. package/esm5/lib/gov-ui/validators/radio-group.validator.js +15 -3
  205. package/esm5/lib/models/case-share.model.js +26 -1
  206. package/esm5/lib/models/contact-details.model.js +31 -7
  207. package/esm5/lib/models/due-date.model.js +14 -7
  208. package/esm5/lib/models/feature-user.js +16 -1
  209. package/esm5/lib/models/filter.model.js +116 -1
  210. package/esm5/lib/models/idle-config.model.js +20 -1
  211. package/esm5/lib/models/index.js +19 -6
  212. package/esm5/lib/models/location.model.js +108 -1
  213. package/esm5/lib/models/pagination.model.js +18 -0
  214. package/esm5/lib/models/person.model.js +92 -17
  215. package/esm5/lib/models/public_api.js +11 -4
  216. package/esm5/lib/models/search-options.model.js +22 -1
  217. package/esm5/lib/models/tcDocument.model.js +18 -1
  218. package/esm5/lib/models/timeout-notification.model.js +18 -1
  219. package/esm5/lib/models/user-details.model.js +22 -1
  220. package/esm5/lib/models/user.model.js +25 -1
  221. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +132 -27
  222. package/esm5/lib/services/cookie/cookie.service.js +104 -21
  223. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +61 -13
  224. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +70 -12
  225. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +142 -21
  226. package/esm5/lib/services/filter/filter.service.js +101 -15
  227. package/esm5/lib/services/find-person/find-person.service.js +152 -27
  228. package/esm5/lib/services/google-analytics/google-analytics.service.js +78 -21
  229. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +79 -23
  230. package/esm5/lib/services/index.js +7 -2
  231. package/esm5/lib/services/loading/loading.service.js +69 -14
  232. package/esm5/lib/services/locations/location.service.js +50 -11
  233. package/esm5/lib/services/manage-session/manage-session.services.js +73 -20
  234. package/esm5/lib/services/public-api.js +18 -13
  235. package/esm5/lib/services/role-guard/role.guard.js +60 -22
  236. package/esm5/lib/services/role-guard/role.service.js +28 -10
  237. package/esm5/lib/services/session-storage/session-storage.service.js +61 -12
  238. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +111 -19
  239. package/esm5/lib/window.js +10 -1
  240. package/esm5/public-api.js +13 -8
  241. package/fesm2015/hmcts-rpx-xui-common-lib.js +6519 -3251
  242. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  243. package/fesm5/hmcts-rpx-xui-common-lib.js +7443 -3202
  244. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  245. package/hmcts-rpx-xui-common-lib.d.ts +3 -3
  246. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  247. package/lib/components/checkbox-list/checkbox-list.component.d.ts +5 -6
  248. package/lib/components/due-date/due-date.component.d.ts +4 -4
  249. package/lib/components/find-location/find-location.component.d.ts +2 -4
  250. package/lib/components/generic-filter/generic-filter.component.d.ts +2 -4
  251. package/lib/components/invite-user-form/invite-user-form.component.d.ts +1 -1
  252. package/lib/components/public_api.d.ts +4 -9
  253. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  254. package/lib/components/search-location/search-location.component.d.ts +2 -4
  255. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  256. package/lib/components/user-list/user-list.component.d.ts +9 -2
  257. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  258. package/lib/directives/let/let.directive.d.ts +1 -1
  259. package/lib/exui-common-lib.module.d.ts +3 -2
  260. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  261. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  262. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
  263. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +2 -3
  264. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  265. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +2 -0
  266. package/lib/gov-ui/components/public_api.d.ts +0 -20
  267. package/lib/gov-ui/public_api.d.ts +1 -2
  268. package/lib/models/index.d.ts +1 -0
  269. package/lib/models/pagination.model.d.ts +5 -0
  270. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  271. package/lib/services/loading/loading.service.d.ts +2 -2
  272. package/lib/services/role-guard/role.service.d.ts +1 -2
  273. package/lib/window.d.ts +1 -1
  274. package/package.json +10 -6
  275. package/esm2015/lib/gov-ui/directives/index.js +0 -2
  276. package/esm2015/lib/gov-ui/directives/public_api.js +0 -2
  277. package/esm5/lib/gov-ui/directives/index.js +0 -2
  278. package/esm5/lib/gov-ui/directives/public_api.js +0 -2
  279. package/lib/gov-ui/directives/index.d.ts +0 -1
  280. package/lib/gov-ui/directives/public_api.d.ts +0 -1
@@ -1,4 +1,9 @@
1
- import { __decorate, __metadata, __read, __spread, __values } from "tslib";
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/selected-case/selected-case.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import * as tslib_1 from "tslib";
2
7
  import { Component, EventEmitter, Input, Output } from '@angular/core';
3
8
  import { map } from 'rxjs/operators';
4
9
  import { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';
@@ -9,40 +14,104 @@ var SelectedCaseComponent = /** @class */ (function () {
9
14
  this.unselect = new EventEmitter();
10
15
  this.synchronizeStore = new EventEmitter();
11
16
  }
12
- SelectedCaseComponent.prototype.ngOnInit = function () {
17
+ /**
18
+ * @return {?}
19
+ */
20
+ SelectedCaseComponent.prototype.ngOnInit = /**
21
+ * @return {?}
22
+ */
23
+ function () {
13
24
  var _this = this;
14
25
  this.shareCases$ = this.stateService.state;
15
- this.shareCases$.subscribe(function (shareCases) { return _this.shareCases = shareCases; });
26
+ this.shareCases$.subscribe((/**
27
+ * @param {?} shareCases
28
+ * @return {?}
29
+ */
30
+ function (shareCases) { return _this.shareCases = shareCases; }));
16
31
  };
17
- SelectedCaseComponent.prototype.ngOnChanges = function (changes) {
32
+ /**
33
+ * @param {?} changes
34
+ * @return {?}
35
+ */
36
+ SelectedCaseComponent.prototype.ngOnChanges = /**
37
+ * @param {?} changes
38
+ * @return {?}
39
+ */
40
+ function (changes) {
18
41
  if (changes.sharedCase) {
42
+ /** @type {?} */
19
43
  var sharedWith = this.sharedCase.sharedWith ? this.sharedCase.sharedWith : [];
44
+ /** @type {?} */
20
45
  var pendingShares = this.sharedCase.pendingShares ? this.sharedCase.pendingShares : [];
21
46
  this.combinedSortedShares = this.combineAndSortShares(sharedWith, pendingShares);
22
47
  }
23
48
  };
24
- SelectedCaseComponent.prototype.onUnselect = function () {
49
+ /**
50
+ * @return {?}
51
+ */
52
+ SelectedCaseComponent.prototype.onUnselect = /**
53
+ * @return {?}
54
+ */
55
+ function () {
25
56
  this.unselect.emit(this.sharedCase);
26
57
  };
27
- SelectedCaseComponent.prototype.onDeselect = function (c) {
58
+ /**
59
+ * @param {?} c
60
+ * @return {?}
61
+ */
62
+ SelectedCaseComponent.prototype.onDeselect = /**
63
+ * @param {?} c
64
+ * @return {?}
65
+ */
66
+ function (c) {
28
67
  this.unselect.emit(c);
29
68
  };
30
- SelectedCaseComponent.prototype.trackByUserId = function (user) {
69
+ /**
70
+ * @param {?} user
71
+ * @return {?}
72
+ */
73
+ SelectedCaseComponent.prototype.trackByUserId = /**
74
+ * @param {?} user
75
+ * @return {?}
76
+ */
77
+ function (user) {
31
78
  return user.idamId;
32
79
  };
33
- SelectedCaseComponent.prototype.canRemove = function (caseId, user) {
80
+ /**
81
+ * @param {?} caseId
82
+ * @param {?} user
83
+ * @return {?}
84
+ */
85
+ SelectedCaseComponent.prototype.canRemove = /**
86
+ * @param {?} caseId
87
+ * @param {?} user
88
+ * @return {?}
89
+ */
90
+ function (caseId, user) {
34
91
  var _this = this;
35
- return this.shareCases$.pipe(map(function (cases) {
92
+ return this.shareCases$.pipe(map((/**
93
+ * @param {?} cases
94
+ * @return {?}
95
+ */
96
+ function (cases) {
36
97
  var e_1, _a;
37
98
  if (_this.removeUserFromCaseToggleOn) {
38
99
  try {
39
- for (var cases_1 = __values(cases), cases_1_1 = cases_1.next(); !cases_1_1.done; cases_1_1 = cases_1.next()) {
100
+ for (var cases_1 = tslib_1.__values(cases), cases_1_1 = cases_1.next(); !cases_1_1.done; cases_1_1 = cases_1.next()) {
40
101
  var aCase = cases_1_1.value;
41
102
  if (aCase.caseId === caseId) {
42
- if (aCase.pendingUnshares && aCase.pendingUnshares.some(function (u) { return u.idamId === user.idamId; })) {
103
+ if (aCase.pendingUnshares && aCase.pendingUnshares.some((/**
104
+ * @param {?} u
105
+ * @return {?}
106
+ */
107
+ function (u) { return u.idamId === user.idamId; }))) {
43
108
  return false;
44
109
  }
45
- if (aCase.sharedWith && aCase.sharedWith.some(function (u) { return u.idamId === user.idamId; })) {
110
+ if (aCase.sharedWith && aCase.sharedWith.some((/**
111
+ * @param {?} u
112
+ * @return {?}
113
+ */
114
+ function (u) { return u.idamId === user.idamId; }))) {
46
115
  return true;
47
116
  }
48
117
  }
@@ -57,19 +126,41 @@ var SelectedCaseComponent = /** @class */ (function () {
57
126
  }
58
127
  }
59
128
  return false;
60
- }));
129
+ })));
61
130
  };
62
- SelectedCaseComponent.prototype.canCancel = function (caseId, user) {
63
- return this.shareCases$.pipe(map(function (cases) {
131
+ /**
132
+ * @param {?} caseId
133
+ * @param {?} user
134
+ * @return {?}
135
+ */
136
+ SelectedCaseComponent.prototype.canCancel = /**
137
+ * @param {?} caseId
138
+ * @param {?} user
139
+ * @return {?}
140
+ */
141
+ function (caseId, user) {
142
+ return this.shareCases$.pipe(map((/**
143
+ * @param {?} cases
144
+ * @return {?}
145
+ */
146
+ function (cases) {
64
147
  var e_2, _a;
65
148
  try {
66
- for (var cases_2 = __values(cases), cases_2_1 = cases_2.next(); !cases_2_1.done; cases_2_1 = cases_2.next()) {
149
+ for (var cases_2 = tslib_1.__values(cases), cases_2_1 = cases_2.next(); !cases_2_1.done; cases_2_1 = cases_2.next()) {
67
150
  var aCase = cases_2_1.value;
68
151
  if (aCase.caseId === caseId) {
69
- if (aCase.pendingShares && aCase.pendingShares.some(function (u) { return u.idamId === user.idamId; })) {
152
+ if (aCase.pendingShares && aCase.pendingShares.some((/**
153
+ * @param {?} u
154
+ * @return {?}
155
+ */
156
+ function (u) { return u.idamId === user.idamId; }))) {
70
157
  return true;
71
158
  }
72
- if (aCase.pendingUnshares && aCase.pendingUnshares.some(function (u) { return u.idamId === user.idamId; })) {
159
+ if (aCase.pendingUnshares && aCase.pendingUnshares.some((/**
160
+ * @param {?} u
161
+ * @return {?}
162
+ */
163
+ function (u) { return u.idamId === user.idamId; }))) {
73
164
  return true;
74
165
  }
75
166
  return false;
@@ -83,16 +174,34 @@ var SelectedCaseComponent = /** @class */ (function () {
83
174
  }
84
175
  finally { if (e_2) throw e_2.error; }
85
176
  }
86
- }));
177
+ })));
87
178
  };
88
- SelectedCaseComponent.prototype.isToBeRemoved = function (caseId, user) {
89
- return this.shareCases$.pipe(map(function (cases) {
179
+ /**
180
+ * @param {?} caseId
181
+ * @param {?} user
182
+ * @return {?}
183
+ */
184
+ SelectedCaseComponent.prototype.isToBeRemoved = /**
185
+ * @param {?} caseId
186
+ * @param {?} user
187
+ * @return {?}
188
+ */
189
+ function (caseId, user) {
190
+ return this.shareCases$.pipe(map((/**
191
+ * @param {?} cases
192
+ * @return {?}
193
+ */
194
+ function (cases) {
90
195
  var e_3, _a;
91
196
  try {
92
- for (var cases_3 = __values(cases), cases_3_1 = cases_3.next(); !cases_3_1.done; cases_3_1 = cases_3.next()) {
197
+ for (var cases_3 = tslib_1.__values(cases), cases_3_1 = cases_3.next(); !cases_3_1.done; cases_3_1 = cases_3.next()) {
93
198
  var aCase = cases_3_1.value;
94
199
  if (aCase.caseId === caseId) {
95
- return aCase.pendingUnshares && aCase.pendingUnshares.some(function (u) { return u.idamId === user.idamId; });
200
+ return aCase.pendingUnshares && aCase.pendingUnshares.some((/**
201
+ * @param {?} u
202
+ * @return {?}
203
+ */
204
+ function (u) { return u.idamId === user.idamId; }));
96
205
  }
97
206
  }
98
207
  }
@@ -103,16 +212,34 @@ var SelectedCaseComponent = /** @class */ (function () {
103
212
  }
104
213
  finally { if (e_3) throw e_3.error; }
105
214
  }
106
- }));
215
+ })));
107
216
  };
108
- SelectedCaseComponent.prototype.isToBeAdded = function (caseId, user) {
109
- return this.shareCases$.pipe(map(function (cases) {
217
+ /**
218
+ * @param {?} caseId
219
+ * @param {?} user
220
+ * @return {?}
221
+ */
222
+ SelectedCaseComponent.prototype.isToBeAdded = /**
223
+ * @param {?} caseId
224
+ * @param {?} user
225
+ * @return {?}
226
+ */
227
+ function (caseId, user) {
228
+ return this.shareCases$.pipe(map((/**
229
+ * @param {?} cases
230
+ * @return {?}
231
+ */
232
+ function (cases) {
110
233
  var e_4, _a;
111
234
  try {
112
- for (var cases_4 = __values(cases), cases_4_1 = cases_4.next(); !cases_4_1.done; cases_4_1 = cases_4.next()) {
235
+ for (var cases_4 = tslib_1.__values(cases), cases_4_1 = cases_4.next(); !cases_4_1.done; cases_4_1 = cases_4.next()) {
113
236
  var aCase = cases_4_1.value;
114
237
  if (aCase.caseId === caseId) {
115
- return aCase.pendingShares && aCase.pendingShares.some(function (u) { return u.idamId === user.idamId; });
238
+ return aCase.pendingShares && aCase.pendingShares.some((/**
239
+ * @param {?} u
240
+ * @return {?}
241
+ */
242
+ function (u) { return u.idamId === user.idamId; }));
116
243
  }
117
244
  }
118
245
  }
@@ -123,17 +250,43 @@ var SelectedCaseComponent = /** @class */ (function () {
123
250
  }
124
251
  finally { if (e_4) throw e_4.error; }
125
252
  }
126
- }));
253
+ })));
127
254
  };
128
- SelectedCaseComponent.prototype.onRemove = function (user, sharedCase) {
255
+ /**
256
+ * @param {?} user
257
+ * @param {?} sharedCase
258
+ * @return {?}
259
+ */
260
+ SelectedCaseComponent.prototype.onRemove = /**
261
+ * @param {?} user
262
+ * @param {?} sharedCase
263
+ * @return {?}
264
+ */
265
+ function (user, sharedCase) {
129
266
  this.stateService.requestUnshare(sharedCase.caseId, user);
130
267
  this.synchronizeStore.emit(this.shareCases);
131
268
  };
132
- SelectedCaseComponent.prototype.onCancel = function (user, sharedCase) {
269
+ /**
270
+ * @param {?} user
271
+ * @param {?} sharedCase
272
+ * @return {?}
273
+ */
274
+ SelectedCaseComponent.prototype.onCancel = /**
275
+ * @param {?} user
276
+ * @param {?} sharedCase
277
+ * @return {?}
278
+ */
279
+ function (user, sharedCase) {
133
280
  this.stateService.requestCancel(sharedCase.caseId, user);
134
281
  this.synchronizeStore.emit(this.shareCases);
135
282
  };
136
- SelectedCaseComponent.prototype.showNoUsersAccessInfo = function () {
283
+ /**
284
+ * @return {?}
285
+ */
286
+ SelectedCaseComponent.prototype.showNoUsersAccessInfo = /**
287
+ * @return {?}
288
+ */
289
+ function () {
137
290
  // A user is added to a case
138
291
  if (this.sharedCase.pendingShares) {
139
292
  if (this.sharedCase.pendingShares.length > 0) {
@@ -155,10 +308,22 @@ var SelectedCaseComponent = /** @class */ (function () {
155
308
  }
156
309
  return false;
157
310
  };
158
- SelectedCaseComponent.prototype.showUserHasAccessInfo = function () {
311
+ /**
312
+ * @return {?}
313
+ */
314
+ SelectedCaseComponent.prototype.showUserHasAccessInfo = /**
315
+ * @return {?}
316
+ */
317
+ function () {
159
318
  return !this.showNoUsersAccessInfo();
160
319
  };
161
- SelectedCaseComponent.prototype.showUserAccessTable = function () {
320
+ /**
321
+ * @return {?}
322
+ */
323
+ SelectedCaseComponent.prototype.showUserAccessTable = /**
324
+ * @return {?}
325
+ */
326
+ function () {
162
327
  if (this.sharedCase.pendingShares) {
163
328
  if (this.sharedCase.pendingShares.length > 0) {
164
329
  return true;
@@ -171,53 +336,95 @@ var SelectedCaseComponent = /** @class */ (function () {
171
336
  }
172
337
  return false;
173
338
  };
174
- SelectedCaseComponent.prototype.combineAndSortShares = function (sharedWith, pendingShares) {
175
- return __spread(sharedWith, pendingShares).sort(function (user1, user2) {
339
+ /**
340
+ * @param {?} sharedWith
341
+ * @param {?} pendingShares
342
+ * @return {?}
343
+ */
344
+ SelectedCaseComponent.prototype.combineAndSortShares = /**
345
+ * @param {?} sharedWith
346
+ * @param {?} pendingShares
347
+ * @return {?}
348
+ */
349
+ function (sharedWith, pendingShares) {
350
+ return tslib_1.__spread(sharedWith, pendingShares).sort((/**
351
+ * @param {?} user1
352
+ * @param {?} user2
353
+ * @return {?}
354
+ */
355
+ function (user1, user2) {
176
356
  return user1.firstName.toLowerCase() > user2.firstName.toLowerCase() ? 1 : (user2.firstName.toLowerCase() > user1.firstName.toLowerCase() ? -1 : 0);
177
- });
357
+ }));
178
358
  };
179
- SelectedCaseComponent.prototype.userIdSetter = function (isPending, id) {
359
+ /**
360
+ * @param {?} isPending
361
+ * @param {?} id
362
+ * @return {?}
363
+ */
364
+ SelectedCaseComponent.prototype.userIdSetter = /**
365
+ * @param {?} isPending
366
+ * @param {?} id
367
+ * @return {?}
368
+ */
369
+ function (isPending, id) {
180
370
  return isPending ? "pendingShares-" + id : "" + id;
181
371
  };
182
- SelectedCaseComponent.prototype.buildElementId = function (elementName) {
372
+ /**
373
+ * @param {?} elementName
374
+ * @return {?}
375
+ */
376
+ SelectedCaseComponent.prototype.buildElementId = /**
377
+ * @param {?} elementName
378
+ * @return {?}
379
+ */
380
+ function (elementName) {
183
381
  return elementName + "-" + this.sharedCase.caseId;
184
382
  };
383
+ SelectedCaseComponent.decorators = [
384
+ { type: Component, args: [{
385
+ selector: 'xuilib-selected-case',
386
+ template: "<div id=\"{{buildElementId('govuk-accordion__section')}}\" class=\"govuk-accordion__section\">\n <div class=\"govuk-grid-row govuk-case-header\">\n <div class=\"govuk-grid-column-three-quarters\">\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle }}</h3>\n <h1 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId }}</h1>\n </div>\n <div class=\"govuk-grid-column-twenty-percent\">\n <button id=\"{{buildElementId('btn-deselect-case')}}\" class=\"govuk-button hmcts-button--secondary\" (click)=\"onDeselect(sharedCase)\" title=\"Deselect case\">Deselect case</button>\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-five-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n aria-controls=\"accordion-with-summary-sections-content-1\" class=\"govuk-accordion__section-button\"\n aria-describedby=\"accordion-with-summary-sections-summary-1\" aria-expanded=\"false\" title=\"Expand or Collapse\">\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\n </div>\n </div>\n </div>\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\n aria-labelledby=\"buildElementId('accordion-with-summary-sections-heading')\" >\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">No users from your organisation currently have access to this case.</span>\n </div>\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">Users from your organisation with access to this case.</span>\n </div>\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">&nbsp;&nbsp;</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase)\" href=\"javascript:void(0);\">Remove <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} from case</span></a>\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase)\" href=\"javascript:void(0);\">Cancel <span class=\"govuk-visually-hidden\">adding {{ user.firstName + ' ' + user.lastName }} to case</span></a>\n </td>\n <td class=\"govuk-table__cell\">\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n",
387
+ styles: [".govuk-case-header{border-top:1px solid #bfc1c3}.govuk-case-title{font-family:nta,Arial,sans-serif;font-size:24px;color:#005ea5;font-weight:700;padding-left:0}.govuk-case-sub-title{font-family:nta,Arial,sans-serif;font-size:1rem!important;color:#6f777b;font-weight:400;padding-left:0}.govuk-grid-row{margin-left:0;margin-right:0}.govuk-grid-column-three-quarters{padding-top:5px;padding-left:0}.govuk-grid-column-twenty-percent{box-sizing:border-box;padding-top:10px;width:20%;float:left}.govuk-grid-column-five-percent{box-sizing:border-box;padding-top:15px;width:5%;float:left}.govuk-table-column-header{width:40%}.govuk-table-column-actions,.govuk-table-column-label{width:10%}.govuk-div-align-left{font-family:nta,Arial,sans-serif;font-size:1.1875rem!important;line-height:1.31579!important;text-align:left;margin-bottom:20px;padding-left:0;color:#0b0c0c}.govuk-accordion__section-header{border-top:0}.govuk-accordion__section-content{padding-top:0}"]
388
+ }] }
389
+ ];
390
+ /** @nocollapse */
185
391
  SelectedCaseComponent.ctorParameters = function () { return [
186
392
  { type: CaseSharingStateService }
187
393
  ]; };
188
- __decorate([
189
- Input(),
190
- __metadata("design:type", Object)
191
- ], SelectedCaseComponent.prototype, "sharedCase", void 0);
192
- __decorate([
193
- Input(),
194
- __metadata("design:type", Object)
195
- ], SelectedCaseComponent.prototype, "selectedUser", void 0);
196
- __decorate([
197
- Input(),
198
- __metadata("design:type", Object)
199
- ], SelectedCaseComponent.prototype, "opened", void 0);
200
- __decorate([
201
- Input(),
202
- __metadata("design:type", Boolean)
203
- ], SelectedCaseComponent.prototype, "removeUserFromCaseToggleOn", void 0);
204
- __decorate([
205
- Output(),
206
- __metadata("design:type", Object)
207
- ], SelectedCaseComponent.prototype, "unselect", void 0);
208
- __decorate([
209
- Output(),
210
- __metadata("design:type", Object)
211
- ], SelectedCaseComponent.prototype, "synchronizeStore", void 0);
212
- SelectedCaseComponent = __decorate([
213
- Component({
214
- selector: 'xuilib-selected-case',
215
- template: "<div id=\"{{buildElementId('govuk-accordion__section')}}\" class=\"govuk-accordion__section\">\n <div class=\"govuk-grid-row govuk-case-header\">\n <div class=\"govuk-grid-column-three-quarters\">\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle }}</h3>\n <h1 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId }}</h1>\n </div>\n <div class=\"govuk-grid-column-twenty-percent\">\n <button id=\"{{buildElementId('btn-deselect-case')}}\" class=\"govuk-button hmcts-button--secondary\" (click)=\"onDeselect(sharedCase)\" title=\"Deselect case\">Deselect case</button>\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-five-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n aria-controls=\"accordion-with-summary-sections-content-1\" class=\"govuk-accordion__section-button\"\n aria-describedby=\"accordion-with-summary-sections-summary-1\" aria-expanded=\"false\" title=\"Expand or Collapse\">\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\n </div>\n </div>\n </div>\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\n aria-labelledby=\"buildElementId('accordion-with-summary-sections-heading')\" >\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">No users from your organisation currently have access to this case.</span>\n </div>\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">Users from your organisation with access to this case.</span>\n </div>\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">&nbsp;&nbsp;</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase)\" href=\"javascript:void(0);\">Remove <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} from case</span></a>\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase)\" href=\"javascript:void(0);\">Cancel <span class=\"govuk-visually-hidden\">adding {{ user.firstName + ' ' + user.lastName }} to case</span></a>\n </td>\n <td class=\"govuk-table__cell\">\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n",
216
- styles: [".govuk-case-header{border-top:1px solid #bfc1c3}.govuk-case-title{font-family:nta,Arial,sans-serif;font-size:24px;color:#005ea5;font-weight:700;padding-left:0}.govuk-case-sub-title{font-family:nta,Arial,sans-serif;font-size:1rem!important;color:#6f777b;font-weight:400;padding-left:0}.govuk-grid-row{margin-left:0;margin-right:0}.govuk-grid-column-three-quarters{padding-top:5px;padding-left:0}.govuk-grid-column-twenty-percent{box-sizing:border-box;padding-top:10px;width:20%;float:left}.govuk-grid-column-five-percent{box-sizing:border-box;padding-top:15px;width:5%;float:left}.govuk-table-column-header{width:40%}.govuk-table-column-actions,.govuk-table-column-label{width:10%}.govuk-div-align-left{font-family:nta,Arial,sans-serif;font-size:1.1875rem!important;line-height:1.31579!important;text-align:left;margin-bottom:20px;padding-left:0;color:#0b0c0c}.govuk-accordion__section-header{border-top:0}.govuk-accordion__section-content{padding-top:0}"]
217
- }),
218
- __metadata("design:paramtypes", [CaseSharingStateService])
219
- ], SelectedCaseComponent);
394
+ SelectedCaseComponent.propDecorators = {
395
+ sharedCase: [{ type: Input }],
396
+ selectedUser: [{ type: Input }],
397
+ opened: [{ type: Input }],
398
+ removeUserFromCaseToggleOn: [{ type: Input }],
399
+ unselect: [{ type: Output }],
400
+ synchronizeStore: [{ type: Output }]
401
+ };
220
402
  return SelectedCaseComponent;
221
403
  }());
222
404
  export { SelectedCaseComponent };
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS9zZWxlY3RlZC1jYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQU92RztJQWVFLCtCQUE2QixZQUFxQztRQUFyQyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFYbEQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdkLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFPVSxDQUFDO0lBRWhFLHdDQUFRLEdBQWY7UUFBQSxpQkFJQztRQUhDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBQSxVQUFVLElBQUksT0FBQSxLQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsRUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO0lBRXpFLENBQUM7SUFFTSwyQ0FBVyxHQUFsQixVQUFtQixPQUFzQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEIsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEYsSUFBTSxhQUFhLEdBQUcs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dUJBQXVCOztJQWJ6RDtRQUFSLEtBQUssRUFBRTs7NkRBQStCO0lBQzlCO1FBQVIsS0FBSyxFQUFFOzsrREFBa0M7SUFDakM7UUFBUixLQUFLLEVBQUU7O3lEQUF1QjtJQUN0QjtRQUFSLEtBQUssRUFBRTs7NkVBQTRDO0lBRTFDO1FBQVQsTUFBTSxFQUFFOzsyREFBa0Q7SUFDakQ7UUFBVCxNQUFNLEVBQUU7O21FQUFtRDtJQVJqRCxxQkFBcUI7UUFMakMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyx1bElBQTZDOztTQUU5QyxDQUFDO3lDQWdCMkMsdUJBQXVCO09BZnZELHFCQUFxQixDQW9LakM7SUFBRCw0QkFBQztDQUFBLEFBcEtELElBb0tDO1NBcEtZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTaGFyZWRDYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcbmltcG9ydCB7IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FzZS1zaGFyaW5nLXN0YXRlL2Nhc2Utc2hhcmluZy1zdGF0ZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlbGVjdGVkLWNhc2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0ZWQtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdGVkLWNhc2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RlZENhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgcHVibGljIHNoYXJlZENhc2U6IFNoYXJlZENhc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFVzZXI6IFVzZXJEZXRhaWxzO1xuICBASW5wdXQoKSBwdWJsaWMgb3BlbmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyByZW1vdmVVc2VyRnJvbUNhc2VUb2dnbGVPbjogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgcHVibGljIHVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZWRDYXNlPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHN5bmNocm9uaXplU3RvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwdWJsaWMgc2hhcmVDYXNlczogU2hhcmVkQ2FzZVtdO1xuICBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcblxuICBwdWJsaWMgY29tYmluZWRTb3J0ZWRTaGFyZXM6IFVzZXJEZXRhaWxzW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaGFyZUNhc2VzJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQuc3Vic2NyaWJlKHNoYXJlQ2FzZXMgPT4gdGhpcy5zaGFyZUNhc2VzID0gc2hhcmVDYXNlcyk7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuc2hhcmVkQ2FzZSkge1xuICAgICAgY29uc3Qgc2hhcmVkV2l0aCA9IHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoID8gdGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGggOiBbXTtcbiAgICAgIGNvbnN0IHBlbmRpbmdTaGFyZXMgPSB0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA/IHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzIDogW107XG4gICAgICB0aGlzLmNvbWJpbmVkU29ydGVkU2hhcmVzID0gdGhpcy5jb21iaW5lQW5kU29ydFNoYXJlcyhzaGFyZWRXaXRoLCBwZW5kaW5nU2hhcmVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25VbnNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc2VsZWN0LmVtaXQodGhpcy5zaGFyZWRDYXNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlc2VsZWN0KGM6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICB0aGlzLnVuc2VsZWN0LmVtaXQoYyk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeVVzZXJJZCh1c2VyOiBVc2VyRGV0YWlscyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVzZXIuaWRhbUlkO1xuICB9XG5cbiAgcHVibGljIGNhblJlbW92ZShjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUNhc2VzJC5waXBlKG1hcChjYXNlcyA9PiB7XG4gICAgICBpZiAodGhpcy5yZW1vdmVVc2VyRnJvbUNhc2VUb2dnbGVPbikge1xuICAgICAgICBmb3IgKGNvbnN0IGFDYXNlIG9mIGNhc2VzKSB7XG4gICAgICAgICAgaWYgKGFDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgICBpZiAoYUNhc2UucGVuZGluZ1Vuc2hhcmVzICYmIGFDYXNlLnBlbmRpbmdVbnNoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYUNhc2Uuc2hhcmVkV2l0aCAmJiBhQ2FzZS5zaGFyZWRXaXRoLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5DYW5jZWwoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVDYXNlcyQucGlwZShtYXAoY2FzZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBhQ2FzZSBvZiBjYXNlcykge1xuICAgICAgICBpZiAoYUNhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICBpZiAoYUNhc2UucGVuZGluZ1NoYXJlcyAmJiBhQ2FzZS5wZW5kaW5nU2hhcmVzLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFDYXNlLnBlbmRpbmdVbnNoYXJlcyAmJiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaXNUb0JlUmVtb3ZlZChjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUNhc2VzJC5waXBlKG1hcChjYXNlcyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGFDYXNlIG9mIGNhc2VzKSB7XG4gICAgICAgIGlmIChhQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgIHJldHVybiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMgJiYgYUNhc2UucGVuZGluZ1Vuc2hhcmVzLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGlzVG9CZUFkZGVkKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNoYXJlQ2FzZXMkLnBpcGUobWFwKGNhc2VzID0+IHtcbiAgICAgIGZvciAoY29uc3QgYUNhc2Ugb2YgY2FzZXMpIHtcbiAgICAgICAgaWYgKGFDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgcmV0dXJuIGFDYXNlLnBlbmRpbmdTaGFyZXMgJiYgYUNhc2UucGVuZGluZ1NoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlbW92ZSh1c2VyOiBVc2VyRGV0YWlscywgc2hhcmVkQ2FzZTogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlcXVlc3RVbnNoYXJlKHNoYXJlZENhc2UuY2FzZUlkLCB1c2VyKTtcbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdCh0aGlzLnNoYXJlQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIG9uQ2FuY2VsKHVzZXI6IFVzZXJEZXRhaWxzLCBzaGFyZWRDYXNlOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVxdWVzdENhbmNlbChzaGFyZWRDYXNlLmNhc2VJZCwgdXNlcik7XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQodGhpcy5zaGFyZUNhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Tm9Vc2Vyc0FjY2Vzc0luZm8oKTogYm9vbGVhbiB7XG4gICAgLy8gQSB1c2VyIGlzIGFkZGVkIHRvIGEgY2FzZVxuICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBBIGNhc2UgaGFzIDAgdXNlcnMgd2l0aCBhY2Nlc3MgdG8gaXRcbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEFjY2VzcyB0byB0aGUgbGFzdCB1c2VyIGlzIHJlbW92ZWRcbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGggJiYgdGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMubGVuZ3RoID4gMFxuICAgICAgICAmJiB0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPT09IHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2hvd1VzZXJIYXNBY2Nlc3NJbmZvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zaG93Tm9Vc2Vyc0FjY2Vzc0luZm8oKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93VXNlckFjY2Vzc1RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aCkge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjb21iaW5lQW5kU29ydFNoYXJlcyhzaGFyZWRXaXRoOiBVc2VyRGV0YWlsc1tdLCBwZW5kaW5nU2hhcmVzOiBVc2VyRGV0YWlsc1tdKTogVXNlckRldGFpbHNbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnNoYXJlZFdpdGgsXG4gICAgICAuLi5wZW5kaW5nU2hhcmVzXG4gICAgXS5zb3J0KCh1c2VyMSwgdXNlcjIpID0+IHtcbiAgICAgIHJldHVybiB1c2VyMS5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSA+IHVzZXIyLmZpcnN0TmFtZS50b0xvd2VyQ2FzZSgpID8gMSA6ICh1c2VyMi5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSA+IHVzZXIxLmZpcnN0TmFtZS50b0xvd2VyQ2FzZSgpID8gLTEgOiAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1c2VySWRTZXR0ZXIoaXNQZW5kaW5nOiBib29sZWFuLCBpZDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXNQZW5kaW5nID8gYHBlbmRpbmdTaGFyZXMtJHtpZH1gIDogYCR7aWR9YDtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZEVsZW1lbnRJZChlbGVtZW50TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7ZWxlbWVudE5hbWV9LSR7dGhpcy5zaGFyZWRDYXNlLmNhc2VJZH1gO1xuICB9XG59XG4iXX0=
405
+ if (false) {
406
+ /** @type {?} */
407
+ SelectedCaseComponent.prototype.sharedCase;
408
+ /** @type {?} */
409
+ SelectedCaseComponent.prototype.selectedUser;
410
+ /** @type {?} */
411
+ SelectedCaseComponent.prototype.opened;
412
+ /** @type {?} */
413
+ SelectedCaseComponent.prototype.removeUserFromCaseToggleOn;
414
+ /** @type {?} */
415
+ SelectedCaseComponent.prototype.unselect;
416
+ /** @type {?} */
417
+ SelectedCaseComponent.prototype.synchronizeStore;
418
+ /** @type {?} */
419
+ SelectedCaseComponent.prototype.shareCases;
420
+ /** @type {?} */
421
+ SelectedCaseComponent.prototype.shareCases$;
422
+ /** @type {?} */
423
+ SelectedCaseComponent.prototype.combinedSortedShares;
424
+ /**
425
+ * @type {?}
426
+ * @private
427
+ */
428
+ SelectedCaseComponent.prototype.stateService;
429
+ }
430
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS9zZWxlY3RlZC1jYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXZHO0lBb0JFLCtCQUE2QixZQUFxQztRQUFyQyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFYbEQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdkLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFPVSxDQUFDOzs7O0lBRWhFLHdDQUFROzs7SUFBZjtRQUFBLGlCQUlDO1FBSEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLFVBQVUsSUFBSSxPQUFBLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxFQUE1QixDQUE0QixFQUFDLENBQUM7SUFFekUsQ0FBQzs7Ozs7SUFFTSwyQ0FBVzs7OztJQUFsQixVQUFtQixPQUFzQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7O2dCQUNoQixVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFOztnQkFDekUs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QUMsbUJBQWlCLEVBQUksQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFJLENBQUM7SUFDckQsQ0FBQzs7Ozs7SUFFTSw4Q0FBYzs7OztJQUFyQixVQUFzQixXQUFtQjtRQUN2QyxPQUFVLFdBQVcsU0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQVEsQ0FBQztJQUNwRCxDQUFDOztnQkF4S0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLHVsSUFBNkM7O2lCQUU5Qzs7OztnQkFOUSx1QkFBdUI7Ozs2QkFTN0IsS0FBSzsrQkFDTCxLQUFLO3lCQUNMLEtBQUs7NkNBQ0wsS0FBSzsyQkFFTCxNQUFNO21DQUNOLE1BQU07O0lBNEpULDRCQUFDO0NBQUEsQUF6S0QsSUF5S0M7U0FwS1kscUJBQXFCOzs7SUFFaEMsMkNBQXVDOztJQUN2Qyw2Q0FBMEM7O0lBQzFDLHVDQUErQjs7SUFDL0IsMkRBQW9EOztJQUVwRCx5Q0FBMkQ7O0lBQzNELGlEQUE0RDs7SUFFNUQsMkNBQWdDOztJQUNoQyw0Q0FBNkM7O0lBRTdDLHFEQUEyQzs7Ozs7SUFFL0IsNkNBQXNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNoYXJlZENhc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FzZS1zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyRGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWRldGFpbHMubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2VsZWN0ZWQtY2FzZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3RlZC1jYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0ZWQtY2FzZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkQ2FzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hhcmVkQ2FzZTogU2hhcmVkQ2FzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkVXNlcjogVXNlckRldGFpbHM7XG4gIEBJbnB1dCgpIHB1YmxpYyBvcGVuZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHJlbW92ZVVzZXJGcm9tQ2FzZVRvZ2dsZU9uOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgdW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFNoYXJlZENhc2U+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc3luY2hyb25pemVTdG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHB1YmxpYyBzaGFyZUNhc2VzOiBTaGFyZWRDYXNlW107XG4gIHB1YmxpYyBzaGFyZUNhc2VzJDogT2JzZXJ2YWJsZTxTaGFyZWRDYXNlW10+O1xuXG4gIHB1YmxpYyBjb21iaW5lZFNvcnRlZFNoYXJlczogVXNlckRldGFpbHNbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gICAgdGhpcy5zaGFyZUNhc2VzJC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB0aGlzLnNoYXJlQ2FzZXMgPSBzaGFyZUNhc2VzKTtcblxuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5zaGFyZWRDYXNlKSB7XG4gICAgICBjb25zdCBzaGFyZWRXaXRoID0gdGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGggPyB0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aCA6IFtdO1xuICAgICAgY29uc3QgcGVuZGluZ1NoYXJlcyA9IHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzID8gdGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMgOiBbXTtcbiAgICAgIHRoaXMuY29tYmluZWRTb3J0ZWRTaGFyZXMgPSB0aGlzLmNvbWJpbmVBbmRTb3J0U2hhcmVzKHNoYXJlZFdpdGgsIHBlbmRpbmdTaGFyZXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblVuc2VsZWN0KCk6IHZvaWQge1xuICAgIHRoaXMudW5zZWxlY3QuZW1pdCh0aGlzLnNoYXJlZENhc2UpO1xuICB9XG5cbiAgcHVibGljIG9uRGVzZWxlY3QoYzogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMudW5zZWxlY3QuZW1pdChjKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5VXNlcklkKHVzZXI6IFVzZXJEZXRhaWxzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXNlci5pZGFtSWQ7XG4gIH1cblxuICBwdWJsaWMgY2FuUmVtb3ZlKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNoYXJlQ2FzZXMkLnBpcGUobWFwKGNhc2VzID0+IHtcbiAgICAgIGlmICh0aGlzLnJlbW92ZVVzZXJGcm9tQ2FzZVRvZ2dsZU9uKSB7XG4gICAgICAgIGZvciAoY29uc3QgYUNhc2Ugb2YgY2FzZXMpIHtcbiAgICAgICAgICBpZiAoYUNhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICAgIGlmIChhQ2FzZS5wZW5kaW5nVW5zaGFyZXMgJiYgYUNhc2UucGVuZGluZ1Vuc2hhcmVzLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhQ2FzZS5zaGFyZWRXaXRoICYmIGFDYXNlLnNoYXJlZFdpdGguc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGNhbkNhbmNlbChjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUNhc2VzJC5waXBlKG1hcChjYXNlcyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGFDYXNlIG9mIGNhc2VzKSB7XG4gICAgICAgIGlmIChhQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgIGlmIChhQ2FzZS5wZW5kaW5nU2hhcmVzICYmIGFDYXNlLnBlbmRpbmdTaGFyZXMuc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYUNhc2UucGVuZGluZ1Vuc2hhcmVzICYmIGFDYXNlLnBlbmRpbmdVbnNoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1RvQmVSZW1vdmVkKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNoYXJlQ2FzZXMkLnBpcGUobWFwKGNhc2VzID0+IHtcbiAgICAgIGZvciAoY29uc3QgYUNhc2Ugb2YgY2FzZXMpIHtcbiAgICAgICAgaWYgKGFDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgcmV0dXJuIGFDYXNlLnBlbmRpbmdVbnNoYXJlcyAmJiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaXNUb0JlQWRkZWQoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVDYXNlcyQucGlwZShtYXAoY2FzZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBhQ2FzZSBvZiBjYXNlcykge1xuICAgICAgICBpZiAoYUNhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICByZXR1cm4gYUNhc2UucGVuZGluZ1NoYXJlcyAmJiBhQ2FzZS5wZW5kaW5nU2hhcmVzLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIG9uUmVtb3ZlKHVzZXI6IFVzZXJEZXRhaWxzLCBzaGFyZWRDYXNlOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVxdWVzdFVuc2hhcmUoc2hhcmVkQ2FzZS5jYXNlSWQsIHVzZXIpO1xuICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KHRoaXMuc2hhcmVDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgb25DYW5jZWwodXNlcjogVXNlckRldGFpbHMsIHNoYXJlZENhc2U6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0Q2FuY2VsKHNoYXJlZENhc2UuY2FzZUlkLCB1c2VyKTtcbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdCh0aGlzLnNoYXJlQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIHNob3dOb1VzZXJzQWNjZXNzSW5mbygpOiBib29sZWFuIHtcbiAgICAvLyBBIHVzZXIgaXMgYWRkZWQgdG8gYSBjYXNlXG4gICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEEgY2FzZSBoYXMgMCB1c2VycyB3aXRoIGFjY2VzcyB0byBpdFxuICAgIGlmICh0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aCkge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQWNjZXNzIHRvIHRoZSBsYXN0IHVzZXIgaXMgcmVtb3ZlZFxuICAgIGlmICh0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aCAmJiB0aGlzLnNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzKSB7XG4gICAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5sZW5ndGggPiAwXG4gICAgICAgICYmIHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmxlbmd0aCA9PT0gdGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93VXNlckhhc0FjY2Vzc0luZm8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnNob3dOb1VzZXJzQWNjZXNzSW5mbygpO1xuICB9XG5cbiAgcHVibGljIHNob3dVc2VyQWNjZXNzVGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoKSB7XG4gICAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGNvbWJpbmVBbmRTb3J0U2hhcmVzKHNoYXJlZFdpdGg6IFVzZXJEZXRhaWxzW10sIHBlbmRpbmdTaGFyZXM6IFVzZXJEZXRhaWxzW10pOiBVc2VyRGV0YWlsc1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uc2hhcmVkV2l0aCxcbiAgICAgIC4uLnBlbmRpbmdTaGFyZXNcbiAgICBdLnNvcnQoKHVzZXIxLCB1c2VyMikgPT4ge1xuICAgICAgcmV0dXJuIHVzZXIxLmZpcnN0TmFtZS50b0xvd2VyQ2FzZSgpID4gdXNlcjIuZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkgPyAxIDogKHVzZXIyLmZpcnN0TmFtZS50b0xvd2VyQ2FzZSgpID4gdXNlcjEuZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkgPyAtMSA6IDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVzZXJJZFNldHRlcihpc1BlbmRpbmc6IGJvb2xlYW4sIGlkOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBpc1BlbmRpbmcgPyBgcGVuZGluZ1NoYXJlcy0ke2lkfWAgOiBgJHtpZH1gO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkRWxlbWVudElkKGVsZW1lbnROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtlbGVtZW50TmFtZX0tJHt0aGlzLnNoYXJlZENhc2UuY2FzZUlkfWA7XG4gIH1cbn1cbiJdfQ==