@hmcts/rpx-xui-common-lib 1.7.0 → 1.8.0-angular-upgrade-9

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 (271) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +4078 -6583
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +15 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +2 -7
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +13 -17
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +45 -127
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +16 -23
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +31 -78
  10. package/esm2015/lib/components/due-date/due-date.component.js +24 -110
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +29 -34
  12. package/esm2015/lib/components/find-location/find-location.component.js +61 -131
  13. package/esm2015/lib/components/find-person/find-person.component.js +93 -174
  14. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +11 -55
  15. package/esm2015/lib/components/generic-filter/generic-filter.component.js +54 -289
  16. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +20 -29
  17. package/esm2015/lib/components/index.js +2 -7
  18. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +23 -33
  19. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +34 -35
  20. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +16 -22
  21. package/esm2015/lib/components/pagination/pagination.component.js +28 -38
  22. package/esm2015/lib/components/public_api.js +33 -33
  23. package/esm2015/lib/components/search-judicials/search-judicials.component.js +70 -156
  24. package/esm2015/lib/components/search-location/search-location.component.js +76 -177
  25. package/esm2015/lib/components/search-venue/search-venue.component.js +62 -154
  26. package/esm2015/lib/components/selected-case/selected-case.component.js +54 -191
  27. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +22 -53
  28. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +38 -68
  29. package/esm2015/lib/components/service-message/service-message.component.js +23 -32
  30. package/esm2015/lib/components/service-messages/service-messages.component.js +29 -77
  31. package/esm2015/lib/components/share-case/share-case.component.js +45 -104
  32. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +27 -50
  33. package/esm2015/lib/components/tab/tab.component.js +19 -37
  34. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +20 -29
  35. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +13 -17
  36. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +13 -17
  37. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +16 -23
  38. package/esm2015/lib/components/user-details/user-details.component.js +47 -57
  39. package/esm2015/lib/components/user-list/user-list.component.js +19 -28
  40. package/esm2015/lib/components/user-select/user-select.component.js +23 -64
  41. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +21 -67
  42. package/esm2015/lib/directives/index.js +2 -7
  43. package/esm2015/lib/directives/let/let.directive.js +16 -49
  44. package/esm2015/lib/directives/public-api.js +3 -8
  45. package/esm2015/lib/exui-common-lib.module.js +31 -35
  46. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +23 -34
  47. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +18 -23
  48. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +30 -68
  49. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +19 -25
  50. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +19 -28
  51. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +23 -36
  52. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +23 -28
  53. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +24 -35
  54. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +15 -22
  55. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +23 -35
  56. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +18 -23
  57. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +27 -34
  58. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +32 -47
  59. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +22 -29
  60. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +20 -26
  61. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +26 -56
  62. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +17 -27
  63. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +40 -52
  64. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +29 -36
  65. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +18 -35
  66. package/esm2015/lib/gov-ui/components/index.js +2 -7
  67. package/esm2015/lib/gov-ui/components/public_api.js +21 -7
  68. package/esm2015/lib/gov-ui/directives/index.js +2 -0
  69. package/esm2015/lib/gov-ui/directives/public_api.js +2 -0
  70. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +12 -30
  71. package/esm2015/lib/gov-ui/gov-ui.service.js +12 -16
  72. package/esm2015/lib/gov-ui/index.js +2 -7
  73. package/esm2015/lib/gov-ui/models/banner-data-model.js +1 -16
  74. package/esm2015/lib/gov-ui/models/checkboxes-model.js +1 -22
  75. package/esm2015/lib/gov-ui/models/error-messages-model.js +1 -16
  76. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +1 -36
  77. package/esm2015/lib/gov-ui/models/index.js +1 -7
  78. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +1 -24
  79. package/esm2015/lib/gov-ui/models/public_api.js +1 -10
  80. package/esm2015/lib/gov-ui/public_api.js +5 -9
  81. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +4 -14
  82. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
  83. package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
  84. package/esm2015/lib/gov-ui/validators/date.validator.js +3 -20
  85. package/esm2015/lib/gov-ui/validators/index.js +2 -7
  86. package/esm2015/lib/gov-ui/validators/public_api.js +4 -9
  87. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +3 -15
  88. package/esm2015/lib/models/case-share.model.js +1 -26
  89. package/esm2015/lib/models/contact-details.model.js +7 -31
  90. package/esm2015/lib/models/due-date.model.js +7 -14
  91. package/esm2015/lib/models/feature-user.js +1 -16
  92. package/esm2015/lib/models/filter.model.js +1 -112
  93. package/esm2015/lib/models/idle-config.model.js +1 -20
  94. package/esm2015/lib/models/index.js +6 -18
  95. package/esm2015/lib/models/location.model.js +1 -108
  96. package/esm2015/lib/models/person.model.js +17 -92
  97. package/esm2015/lib/models/public_api.js +4 -11
  98. package/esm2015/lib/models/search-options.model.js +1 -22
  99. package/esm2015/lib/models/tcDocument.model.js +1 -18
  100. package/esm2015/lib/models/timeout-notification.model.js +1 -18
  101. package/esm2015/lib/models/user-details.model.js +1 -22
  102. package/esm2015/lib/models/user.model.js +1 -25
  103. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +19 -92
  104. package/esm2015/lib/services/cookie/cookie.service.js +19 -78
  105. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +16 -51
  106. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +11 -35
  107. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +21 -101
  108. package/esm2015/lib/services/filter/filter.service.js +11 -63
  109. package/esm2015/lib/services/find-person/find-person.service.js +25 -130
  110. package/esm2015/lib/services/google-analytics/google-analytics.service.js +21 -70
  111. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +23 -71
  112. package/esm2015/lib/services/index.js +2 -7
  113. package/esm2015/lib/services/loading/loading.service.js +11 -48
  114. package/esm2015/lib/services/locations/location.service.js +22 -35
  115. package/esm2015/lib/services/manage-session/manage-session.services.js +21 -70
  116. package/esm2015/lib/services/public-api.js +13 -18
  117. package/esm2015/lib/services/role-guard/role.guard.js +24 -61
  118. package/esm2015/lib/services/role-guard/role.service.js +11 -28
  119. package/esm2015/lib/services/session-storage/session-storage.service.js +12 -24
  120. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +20 -82
  121. package/esm2015/lib/window.js +1 -10
  122. package/esm2015/public-api.js +8 -13
  123. package/esm5/hmcts-rpx-xui-common-lib.js +2 -7
  124. package/esm5/lib/components/accessibility/accessibility.component.js +10 -15
  125. package/esm5/lib/components/checkbox-list/checkbox-list.component.js +57 -232
  126. package/esm5/lib/components/contact-details/contact-details.component.js +14 -22
  127. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +36 -106
  128. package/esm5/lib/components/due-date/due-date.component.js +29 -142
  129. package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +27 -33
  130. package/esm5/lib/components/find-location/find-location.component.js +71 -167
  131. package/esm5/lib/components/find-person/find-person.component.js +97 -193
  132. package/esm5/lib/components/generic-filter/generic-filter-utils.js +13 -57
  133. package/esm5/lib/components/generic-filter/generic-filter.component.js +83 -408
  134. package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +19 -32
  135. package/esm5/lib/components/index.js +2 -7
  136. package/esm5/lib/components/invite-user-form/invite-user-form.component.js +23 -37
  137. package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +32 -34
  138. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +14 -21
  139. package/esm5/lib/components/pagination/pagination.component.js +28 -45
  140. package/esm5/lib/components/public_api.js +33 -33
  141. package/esm5/lib/components/search-judicials/search-judicials.component.js +78 -198
  142. package/esm5/lib/components/search-location/search-location.component.js +84 -207
  143. package/esm5/lib/components/search-venue/search-venue.component.js +71 -199
  144. package/esm5/lib/components/selected-case/selected-case.component.js +72 -279
  145. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +22 -61
  146. package/esm5/lib/components/selected-case-list/selected-case-list.component.js +39 -82
  147. package/esm5/lib/components/service-message/service-message.component.js +22 -36
  148. package/esm5/lib/components/service-messages/service-messages.component.js +30 -91
  149. package/esm5/lib/components/share-case/share-case.component.js +52 -138
  150. package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +25 -49
  151. package/esm5/lib/components/tab/tab.component.js +18 -41
  152. package/esm5/lib/components/tc-confirm/tc-confirm.component.js +19 -32
  153. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +10 -15
  154. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +10 -15
  155. package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +14 -22
  156. package/esm5/lib/components/user-details/user-details.component.js +48 -71
  157. package/esm5/lib/components/user-list/user-list.component.js +18 -32
  158. package/esm5/lib/components/user-select/user-select.component.js +27 -92
  159. package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +21 -70
  160. package/esm5/lib/directives/index.js +2 -7
  161. package/esm5/lib/directives/let/let.directive.js +15 -51
  162. package/esm5/lib/directives/public-api.js +3 -8
  163. package/esm5/lib/exui-common-lib.module.js +22 -28
  164. package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +22 -37
  165. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +16 -22
  166. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +32 -89
  167. package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +17 -24
  168. package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +18 -31
  169. package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +23 -43
  170. package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +21 -27
  171. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +24 -45
  172. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +13 -21
  173. package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +18 -44
  174. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +16 -22
  175. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +26 -37
  176. package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +31 -51
  177. package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +21 -32
  178. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +18 -25
  179. package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +28 -71
  180. package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +16 -27
  181. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +41 -60
  182. package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +28 -36
  183. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +16 -34
  184. package/esm5/lib/gov-ui/components/index.js +2 -7
  185. package/esm5/lib/gov-ui/components/public_api.js +21 -7
  186. package/esm5/lib/gov-ui/directives/index.js +2 -0
  187. package/esm5/lib/gov-ui/directives/public_api.js +2 -0
  188. package/esm5/lib/gov-ui/directives/remove-host.directive.js +10 -29
  189. package/esm5/lib/gov-ui/gov-ui.service.js +9 -14
  190. package/esm5/lib/gov-ui/index.js +2 -7
  191. package/esm5/lib/gov-ui/models/banner-data-model.js +1 -16
  192. package/esm5/lib/gov-ui/models/checkboxes-model.js +1 -22
  193. package/esm5/lib/gov-ui/models/error-messages-model.js +1 -16
  194. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +1 -36
  195. package/esm5/lib/gov-ui/models/index.js +1 -7
  196. package/esm5/lib/gov-ui/models/isession-storage.interface.js +1 -24
  197. package/esm5/lib/gov-ui/models/public_api.js +1 -10
  198. package/esm5/lib/gov-ui/public_api.js +5 -9
  199. package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +3 -34
  200. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
  201. package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
  202. package/esm5/lib/gov-ui/validators/date.validator.js +3 -20
  203. package/esm5/lib/gov-ui/validators/index.js +2 -7
  204. package/esm5/lib/gov-ui/validators/public_api.js +4 -9
  205. package/esm5/lib/gov-ui/validators/radio-group.validator.js +3 -15
  206. package/esm5/lib/models/case-share.model.js +1 -26
  207. package/esm5/lib/models/contact-details.model.js +7 -31
  208. package/esm5/lib/models/due-date.model.js +7 -14
  209. package/esm5/lib/models/feature-user.js +1 -16
  210. package/esm5/lib/models/filter.model.js +1 -112
  211. package/esm5/lib/models/idle-config.model.js +1 -20
  212. package/esm5/lib/models/index.js +6 -18
  213. package/esm5/lib/models/location.model.js +1 -108
  214. package/esm5/lib/models/person.model.js +17 -92
  215. package/esm5/lib/models/public_api.js +4 -11
  216. package/esm5/lib/models/search-options.model.js +1 -22
  217. package/esm5/lib/models/tcDocument.model.js +1 -18
  218. package/esm5/lib/models/timeout-notification.model.js +1 -18
  219. package/esm5/lib/models/user-details.model.js +1 -22
  220. package/esm5/lib/models/user.model.js +1 -25
  221. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +27 -132
  222. package/esm5/lib/services/cookie/cookie.service.js +21 -104
  223. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +13 -61
  224. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +12 -70
  225. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +21 -142
  226. package/esm5/lib/services/filter/filter.service.js +15 -101
  227. package/esm5/lib/services/find-person/find-person.service.js +27 -152
  228. package/esm5/lib/services/google-analytics/google-analytics.service.js +21 -78
  229. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +23 -79
  230. package/esm5/lib/services/index.js +2 -7
  231. package/esm5/lib/services/loading/loading.service.js +14 -69
  232. package/esm5/lib/services/locations/location.service.js +11 -50
  233. package/esm5/lib/services/manage-session/manage-session.services.js +20 -73
  234. package/esm5/lib/services/public-api.js +13 -18
  235. package/esm5/lib/services/role-guard/role.guard.js +22 -60
  236. package/esm5/lib/services/role-guard/role.service.js +10 -28
  237. package/esm5/lib/services/session-storage/session-storage.service.js +12 -61
  238. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +19 -111
  239. package/esm5/lib/window.js +1 -10
  240. package/esm5/public-api.js +8 -13
  241. package/fesm2015/hmcts-rpx-xui-common-lib.js +3152 -4924
  242. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  243. package/fesm5/hmcts-rpx-xui-common-lib.js +3458 -6178
  244. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  245. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  246. package/lib/components/checkbox-list/checkbox-list.component.d.ts +6 -5
  247. package/lib/components/due-date/due-date.component.d.ts +4 -4
  248. package/lib/components/find-location/find-location.component.d.ts +4 -2
  249. package/lib/components/generic-filter/generic-filter.component.d.ts +4 -2
  250. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  251. package/lib/components/invite-user-form/invite-user-form.component.d.ts +2 -2
  252. package/lib/components/public_api.d.ts +9 -4
  253. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  254. package/lib/components/search-location/search-location.component.d.ts +4 -2
  255. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  256. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  257. package/lib/directives/let/let.directive.d.ts +1 -1
  258. package/lib/exui-common-lib.module.d.ts +1 -1
  259. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  260. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  261. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
  262. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  263. package/lib/gov-ui/components/public_api.d.ts +19 -0
  264. package/lib/gov-ui/directives/index.d.ts +1 -0
  265. package/lib/gov-ui/directives/public_api.d.ts +1 -0
  266. package/lib/gov-ui/public_api.d.ts +2 -1
  267. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  268. package/lib/services/loading/loading.service.d.ts +2 -2
  269. package/lib/services/role-guard/role.service.d.ts +2 -1
  270. package/lib/window.d.ts +2 -2
  271. package/package.json +2 -6
@@ -1,9 +1,4 @@
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";
1
+ import { __decorate, __metadata, __read, __spread, __values } from "tslib";
7
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
8
3
  import { map } from 'rxjs/operators';
9
4
  import { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';
@@ -14,104 +9,40 @@ var SelectedCaseComponent = /** @class */ (function () {
14
9
  this.unselect = new EventEmitter();
15
10
  this.synchronizeStore = new EventEmitter();
16
11
  }
17
- /**
18
- * @return {?}
19
- */
20
- SelectedCaseComponent.prototype.ngOnInit = /**
21
- * @return {?}
22
- */
23
- function () {
12
+ SelectedCaseComponent.prototype.ngOnInit = function () {
24
13
  var _this = this;
25
14
  this.shareCases$ = this.stateService.state;
26
- this.shareCases$.subscribe((/**
27
- * @param {?} shareCases
28
- * @return {?}
29
- */
30
- function (shareCases) { return _this.shareCases = shareCases; }));
15
+ this.shareCases$.subscribe(function (shareCases) { return _this.shareCases = shareCases; });
31
16
  };
32
- /**
33
- * @param {?} changes
34
- * @return {?}
35
- */
36
- SelectedCaseComponent.prototype.ngOnChanges = /**
37
- * @param {?} changes
38
- * @return {?}
39
- */
40
- function (changes) {
17
+ SelectedCaseComponent.prototype.ngOnChanges = function (changes) {
41
18
  if (changes.sharedCase) {
42
- /** @type {?} */
43
19
  var sharedWith = this.sharedCase.sharedWith ? this.sharedCase.sharedWith : [];
44
- /** @type {?} */
45
20
  var pendingShares = this.sharedCase.pendingShares ? this.sharedCase.pendingShares : [];
46
21
  this.combinedSortedShares = this.combineAndSortShares(sharedWith, pendingShares);
47
22
  }
48
23
  };
49
- /**
50
- * @return {?}
51
- */
52
- SelectedCaseComponent.prototype.onUnselect = /**
53
- * @return {?}
54
- */
55
- function () {
24
+ SelectedCaseComponent.prototype.onUnselect = function () {
56
25
  this.unselect.emit(this.sharedCase);
57
26
  };
58
- /**
59
- * @param {?} c
60
- * @return {?}
61
- */
62
- SelectedCaseComponent.prototype.onDeselect = /**
63
- * @param {?} c
64
- * @return {?}
65
- */
66
- function (c) {
27
+ SelectedCaseComponent.prototype.onDeselect = function (c) {
67
28
  this.unselect.emit(c);
68
29
  };
69
- /**
70
- * @param {?} user
71
- * @return {?}
72
- */
73
- SelectedCaseComponent.prototype.trackByUserId = /**
74
- * @param {?} user
75
- * @return {?}
76
- */
77
- function (user) {
30
+ SelectedCaseComponent.prototype.trackByUserId = function (user) {
78
31
  return user.idamId;
79
32
  };
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) {
33
+ SelectedCaseComponent.prototype.canRemove = function (caseId, user) {
91
34
  var _this = this;
92
- return this.shareCases$.pipe(map((/**
93
- * @param {?} cases
94
- * @return {?}
95
- */
96
- function (cases) {
35
+ return this.shareCases$.pipe(map(function (cases) {
97
36
  var e_1, _a;
98
37
  if (_this.removeUserFromCaseToggleOn) {
99
38
  try {
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()) {
39
+ for (var cases_1 = __values(cases), cases_1_1 = cases_1.next(); !cases_1_1.done; cases_1_1 = cases_1.next()) {
101
40
  var aCase = cases_1_1.value;
102
41
  if (aCase.caseId === caseId) {
103
- if (aCase.pendingUnshares && aCase.pendingUnshares.some((/**
104
- * @param {?} u
105
- * @return {?}
106
- */
107
- function (u) { return u.idamId === user.idamId; }))) {
42
+ if (aCase.pendingUnshares && aCase.pendingUnshares.some(function (u) { return u.idamId === user.idamId; })) {
108
43
  return false;
109
44
  }
110
- if (aCase.sharedWith && aCase.sharedWith.some((/**
111
- * @param {?} u
112
- * @return {?}
113
- */
114
- function (u) { return u.idamId === user.idamId; }))) {
45
+ if (aCase.sharedWith && aCase.sharedWith.some(function (u) { return u.idamId === user.idamId; })) {
115
46
  return true;
116
47
  }
117
48
  }
@@ -126,41 +57,19 @@ var SelectedCaseComponent = /** @class */ (function () {
126
57
  }
127
58
  }
128
59
  return false;
129
- })));
60
+ }));
130
61
  };
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) {
62
+ SelectedCaseComponent.prototype.canCancel = function (caseId, user) {
63
+ return this.shareCases$.pipe(map(function (cases) {
147
64
  var e_2, _a;
148
65
  try {
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()) {
66
+ for (var cases_2 = __values(cases), cases_2_1 = cases_2.next(); !cases_2_1.done; cases_2_1 = cases_2.next()) {
150
67
  var aCase = cases_2_1.value;
151
68
  if (aCase.caseId === caseId) {
152
- if (aCase.pendingShares && aCase.pendingShares.some((/**
153
- * @param {?} u
154
- * @return {?}
155
- */
156
- function (u) { return u.idamId === user.idamId; }))) {
69
+ if (aCase.pendingShares && aCase.pendingShares.some(function (u) { return u.idamId === user.idamId; })) {
157
70
  return true;
158
71
  }
159
- if (aCase.pendingUnshares && aCase.pendingUnshares.some((/**
160
- * @param {?} u
161
- * @return {?}
162
- */
163
- function (u) { return u.idamId === user.idamId; }))) {
72
+ if (aCase.pendingUnshares && aCase.pendingUnshares.some(function (u) { return u.idamId === user.idamId; })) {
164
73
  return true;
165
74
  }
166
75
  return false;
@@ -174,34 +83,16 @@ var SelectedCaseComponent = /** @class */ (function () {
174
83
  }
175
84
  finally { if (e_2) throw e_2.error; }
176
85
  }
177
- })));
86
+ }));
178
87
  };
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) {
88
+ SelectedCaseComponent.prototype.isToBeRemoved = function (caseId, user) {
89
+ return this.shareCases$.pipe(map(function (cases) {
195
90
  var e_3, _a;
196
91
  try {
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()) {
92
+ for (var cases_3 = __values(cases), cases_3_1 = cases_3.next(); !cases_3_1.done; cases_3_1 = cases_3.next()) {
198
93
  var aCase = cases_3_1.value;
199
94
  if (aCase.caseId === caseId) {
200
- return aCase.pendingUnshares && aCase.pendingUnshares.some((/**
201
- * @param {?} u
202
- * @return {?}
203
- */
204
- function (u) { return u.idamId === user.idamId; }));
95
+ return aCase.pendingUnshares && aCase.pendingUnshares.some(function (u) { return u.idamId === user.idamId; });
205
96
  }
206
97
  }
207
98
  }
@@ -212,34 +103,16 @@ var SelectedCaseComponent = /** @class */ (function () {
212
103
  }
213
104
  finally { if (e_3) throw e_3.error; }
214
105
  }
215
- })));
106
+ }));
216
107
  };
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) {
108
+ SelectedCaseComponent.prototype.isToBeAdded = function (caseId, user) {
109
+ return this.shareCases$.pipe(map(function (cases) {
233
110
  var e_4, _a;
234
111
  try {
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()) {
112
+ for (var cases_4 = __values(cases), cases_4_1 = cases_4.next(); !cases_4_1.done; cases_4_1 = cases_4.next()) {
236
113
  var aCase = cases_4_1.value;
237
114
  if (aCase.caseId === caseId) {
238
- return aCase.pendingShares && aCase.pendingShares.some((/**
239
- * @param {?} u
240
- * @return {?}
241
- */
242
- function (u) { return u.idamId === user.idamId; }));
115
+ return aCase.pendingShares && aCase.pendingShares.some(function (u) { return u.idamId === user.idamId; });
243
116
  }
244
117
  }
245
118
  }
@@ -250,43 +123,17 @@ var SelectedCaseComponent = /** @class */ (function () {
250
123
  }
251
124
  finally { if (e_4) throw e_4.error; }
252
125
  }
253
- })));
126
+ }));
254
127
  };
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) {
128
+ SelectedCaseComponent.prototype.onRemove = function (user, sharedCase) {
266
129
  this.stateService.requestUnshare(sharedCase.caseId, user);
267
130
  this.synchronizeStore.emit(this.shareCases);
268
131
  };
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) {
132
+ SelectedCaseComponent.prototype.onCancel = function (user, sharedCase) {
280
133
  this.stateService.requestCancel(sharedCase.caseId, user);
281
134
  this.synchronizeStore.emit(this.shareCases);
282
135
  };
283
- /**
284
- * @return {?}
285
- */
286
- SelectedCaseComponent.prototype.showNoUsersAccessInfo = /**
287
- * @return {?}
288
- */
289
- function () {
136
+ SelectedCaseComponent.prototype.showNoUsersAccessInfo = function () {
290
137
  // A user is added to a case
291
138
  if (this.sharedCase.pendingShares) {
292
139
  if (this.sharedCase.pendingShares.length > 0) {
@@ -308,22 +155,10 @@ var SelectedCaseComponent = /** @class */ (function () {
308
155
  }
309
156
  return false;
310
157
  };
311
- /**
312
- * @return {?}
313
- */
314
- SelectedCaseComponent.prototype.showUserHasAccessInfo = /**
315
- * @return {?}
316
- */
317
- function () {
158
+ SelectedCaseComponent.prototype.showUserHasAccessInfo = function () {
318
159
  return !this.showNoUsersAccessInfo();
319
160
  };
320
- /**
321
- * @return {?}
322
- */
323
- SelectedCaseComponent.prototype.showUserAccessTable = /**
324
- * @return {?}
325
- */
326
- function () {
161
+ SelectedCaseComponent.prototype.showUserAccessTable = function () {
327
162
  if (this.sharedCase.pendingShares) {
328
163
  if (this.sharedCase.pendingShares.length > 0) {
329
164
  return true;
@@ -336,95 +171,53 @@ var SelectedCaseComponent = /** @class */ (function () {
336
171
  }
337
172
  return false;
338
173
  };
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) {
174
+ SelectedCaseComponent.prototype.combineAndSortShares = function (sharedWith, pendingShares) {
175
+ return __spread(sharedWith, pendingShares).sort(function (user1, user2) {
356
176
  return user1.firstName.toLowerCase() > user2.firstName.toLowerCase() ? 1 : (user2.firstName.toLowerCase() > user1.firstName.toLowerCase() ? -1 : 0);
357
- }));
177
+ });
358
178
  };
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) {
179
+ SelectedCaseComponent.prototype.userIdSetter = function (isPending, id) {
370
180
  return isPending ? "pendingShares-" + id : "" + id;
371
181
  };
372
- /**
373
- * @param {?} elementName
374
- * @return {?}
375
- */
376
- SelectedCaseComponent.prototype.buildElementId = /**
377
- * @param {?} elementName
378
- * @return {?}
379
- */
380
- function (elementName) {
182
+ SelectedCaseComponent.prototype.buildElementId = function (elementName) {
381
183
  return elementName + "-" + this.sharedCase.caseId;
382
184
  };
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 */
391
185
  SelectedCaseComponent.ctorParameters = function () { return [
392
186
  { type: CaseSharingStateService }
393
187
  ]; };
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
- };
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);
402
220
  return SelectedCaseComponent;
403
221
  }());
404
222
  export { SelectedCaseComponent };
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==
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS9zZWxlY3RlZC1jYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQU92RztJQWVFLCtCQUE2QixZQUFxQztRQUFyQyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFYbEQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdkLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFPVSxDQUFDO0lBRWhFLHdDQUFRLEdBQWY7UUFBQSxpQkFJQztRQUhDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBQSxVQUFVLElBQUksT0FBQSxLQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsRUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO0lBRXpFLENBQUM7SUFFTSwyQ0FBVyxHQUFsQixVQUFtQixPQUFzQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEIsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEYsSUFBTSxhQUFhLEdBQUcs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dUJBQXVCOztJQWJ6RDtRQUFSLEtBQUssRUFBRTs7NkRBQStCO0lBQzlCO1FBQVIsS0FBSyxFQUFFOzsrREFBa0M7SUFDakM7UUFBUixLQUFLLEVBQUU7O3lEQUF1QjtJQUN0QjtRQUFSLEtBQUssRUFBRTs7NkVBQTRDO0lBRTFDO1FBQVQsTUFBTSxFQUFFOzsyREFBa0Q7SUFDakQ7UUFBVCxNQUFNLEVBQUU7O21FQUFtRDtJQVJqRCxxQkFBcUI7UUFMakMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyx1bElBQTZDOztTQUU5QyxDQUFDO3lDQWdCMkMsdUJBQXVCO09BZnZELHFCQUFxQixDQW9LakM7SUFBRCw0QkFBQztDQUFBLEFBcEtELElBb0tDO1NBcEtZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTaGFyZWRDYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcbmltcG9ydCB7IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FzZS1zaGFyaW5nLXN0YXRlL2Nhc2Utc2hhcmluZy1zdGF0ZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlbGVjdGVkLWNhc2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0ZWQtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdGVkLWNhc2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RlZENhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgcHVibGljIHNoYXJlZENhc2U6IFNoYXJlZENhc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFVzZXI6IFVzZXJEZXRhaWxzO1xuICBASW5wdXQoKSBwdWJsaWMgb3BlbmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyByZW1vdmVVc2VyRnJvbUNhc2VUb2dnbGVPbjogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgcHVibGljIHVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZWRDYXNlPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHN5bmNocm9uaXplU3RvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwdWJsaWMgc2hhcmVDYXNlczogU2hhcmVkQ2FzZVtdO1xuICBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcblxuICBwdWJsaWMgY29tYmluZWRTb3J0ZWRTaGFyZXM6IFVzZXJEZXRhaWxzW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaGFyZUNhc2VzJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQuc3Vic2NyaWJlKHNoYXJlQ2FzZXMgPT4gdGhpcy5zaGFyZUNhc2VzID0gc2hhcmVDYXNlcyk7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuc2hhcmVkQ2FzZSkge1xuICAgICAgY29uc3Qgc2hhcmVkV2l0aCA9IHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoID8gdGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGggOiBbXTtcbiAgICAgIGNvbnN0IHBlbmRpbmdTaGFyZXMgPSB0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA/IHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzIDogW107XG4gICAgICB0aGlzLmNvbWJpbmVkU29ydGVkU2hhcmVzID0gdGhpcy5jb21iaW5lQW5kU29ydFNoYXJlcyhzaGFyZWRXaXRoLCBwZW5kaW5nU2hhcmVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25VbnNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc2VsZWN0LmVtaXQodGhpcy5zaGFyZWRDYXNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlc2VsZWN0KGM6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICB0aGlzLnVuc2VsZWN0LmVtaXQoYyk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeVVzZXJJZCh1c2VyOiBVc2VyRGV0YWlscyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVzZXIuaWRhbUlkO1xuICB9XG5cbiAgcHVibGljIGNhblJlbW92ZShjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUNhc2VzJC5waXBlKG1hcChjYXNlcyA9PiB7XG4gICAgICBpZiAodGhpcy5yZW1vdmVVc2VyRnJvbUNhc2VUb2dnbGVPbikge1xuICAgICAgICBmb3IgKGNvbnN0IGFDYXNlIG9mIGNhc2VzKSB7XG4gICAgICAgICAgaWYgKGFDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgICBpZiAoYUNhc2UucGVuZGluZ1Vuc2hhcmVzICYmIGFDYXNlLnBlbmRpbmdVbnNoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYUNhc2Uuc2hhcmVkV2l0aCAmJiBhQ2FzZS5zaGFyZWRXaXRoLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5DYW5jZWwoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVDYXNlcyQucGlwZShtYXAoY2FzZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBhQ2FzZSBvZiBjYXNlcykge1xuICAgICAgICBpZiAoYUNhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICBpZiAoYUNhc2UucGVuZGluZ1NoYXJlcyAmJiBhQ2FzZS5wZW5kaW5nU2hhcmVzLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFDYXNlLnBlbmRpbmdVbnNoYXJlcyAmJiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaXNUb0JlUmVtb3ZlZChjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUNhc2VzJC5waXBlKG1hcChjYXNlcyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGFDYXNlIG9mIGNhc2VzKSB7XG4gICAgICAgIGlmIChhQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgIHJldHVybiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMgJiYgYUNhc2UucGVuZGluZ1Vuc2hhcmVzLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGlzVG9CZUFkZGVkKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNoYXJlQ2FzZXMkLnBpcGUobWFwKGNhc2VzID0+IHtcbiAgICAgIGZvciAoY29uc3QgYUNhc2Ugb2YgY2FzZXMpIHtcbiAgICAgICAgaWYgKGFDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgcmV0dXJuIGFDYXNlLnBlbmRpbmdTaGFyZXMgJiYgYUNhc2UucGVuZGluZ1NoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlbW92ZSh1c2VyOiBVc2VyRGV0YWlscywgc2hhcmVkQ2FzZTogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlcXVlc3RVbnNoYXJlKHNoYXJlZENhc2UuY2FzZUlkLCB1c2VyKTtcbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdCh0aGlzLnNoYXJlQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIG9uQ2FuY2VsKHVzZXI6IFVzZXJEZXRhaWxzLCBzaGFyZWRDYXNlOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVxdWVzdENhbmNlbChzaGFyZWRDYXNlLmNhc2VJZCwgdXNlcik7XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQodGhpcy5zaGFyZUNhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Tm9Vc2Vyc0FjY2Vzc0luZm8oKTogYm9vbGVhbiB7XG4gICAgLy8gQSB1c2VyIGlzIGFkZGVkIHRvIGEgY2FzZVxuICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBBIGNhc2UgaGFzIDAgdXNlcnMgd2l0aCBhY2Nlc3MgdG8gaXRcbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEFjY2VzcyB0byB0aGUgbGFzdCB1c2VyIGlzIHJlbW92ZWRcbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGggJiYgdGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMubGVuZ3RoID4gMFxuICAgICAgICAmJiB0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPT09IHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2hvd1VzZXJIYXNBY2Nlc3NJbmZvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zaG93Tm9Vc2Vyc0FjY2Vzc0luZm8oKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93VXNlckFjY2Vzc1RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aCkge1xuICAgICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjb21iaW5lQW5kU29ydFNoYXJlcyhzaGFyZWRXaXRoOiBVc2VyRGV0YWlsc1tdLCBwZW5kaW5nU2hhcmVzOiBVc2VyRGV0YWlsc1tdKTogVXNlckRldGFpbHNbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnNoYXJlZFdpdGgsXG4gICAgICAuLi5wZW5kaW5nU2hhcmVzXG4gICAgXS5zb3J0KCh1c2VyMSwgdXNlcjIpID0+IHtcbiAgICAgIHJldHVybiB1c2VyMS5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSA+IHVzZXIyLmZpcnN0TmFtZS50b0xvd2VyQ2FzZSgpID8gMSA6ICh1c2VyMi5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSA+IHVzZXIxLmZpcnN0TmFtZS50b0xvd2VyQ2FzZSgpID8gLTEgOiAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1c2VySWRTZXR0ZXIoaXNQZW5kaW5nOiBib29sZWFuLCBpZDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXNQZW5kaW5nID8gYHBlbmRpbmdTaGFyZXMtJHtpZH1gIDogYCR7aWR9YDtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZEVsZW1lbnRJZChlbGVtZW50TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7ZWxlbWVudE5hbWV9LSR7dGhpcy5zaGFyZWRDYXNlLmNhc2VJZH1gO1xuICB9XG59XG4iXX0=