@hmcts/rpx-xui-common-lib 2.1.0-angular-upgrade-11 → 2.1.1-angular-upgrade-11

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 (270) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +7051 -2390
  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 +8 -2
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +9 -3
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +112 -14
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +12 -2
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +65 -4
  10. package/esm2015/lib/components/due-date/due-date.component.js +97 -2
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +21 -7
  12. package/esm2015/lib/components/find-location/find-location.component.js +119 -10
  13. package/esm2015/lib/components/find-person/find-person.component.js +150 -9
  14. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +55 -11
  15. package/esm2015/lib/components/generic-filter/generic-filter.component.js +276 -27
  16. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +18 -3
  17. package/esm2015/lib/components/index.js +7 -2
  18. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +22 -2
  19. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +21 -2
  20. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +12 -3
  21. package/esm2015/lib/components/pagination/pagination.component.js +24 -2
  22. package/esm2015/lib/components/public_api.js +33 -33
  23. package/esm2015/lib/components/search-judicials/search-judicials.component.js +133 -10
  24. package/esm2015/lib/components/search-location/search-location.component.js +158 -7
  25. package/esm2015/lib/components/search-venue/search-venue.component.js +135 -12
  26. package/esm2015/lib/components/selected-case/selected-case.component.js +176 -20
  27. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +41 -3
  28. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +52 -3
  29. package/esm2015/lib/components/service-message/service-message.component.js +20 -2
  30. package/esm2015/lib/components/service-messages/service-messages.component.js +65 -7
  31. package/esm2015/lib/components/share-case/share-case.component.js +87 -6
  32. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +37 -4
  33. package/esm2015/lib/components/tab/tab.component.js +26 -2
  34. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +17 -2
  35. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +8 -2
  36. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +8 -2
  37. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +12 -2
  38. package/esm2015/lib/components/user-details/user-details.component.js +39 -2
  39. package/esm2015/lib/components/user-list/user-list.component.js +32 -2
  40. package/esm2015/lib/components/user-select/user-select.component.js +52 -5
  41. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +56 -3
  42. package/esm2015/lib/directives/index.js +7 -2
  43. package/esm2015/lib/directives/let/let.directive.js +39 -1
  44. package/esm2015/lib/directives/public-api.js +8 -3
  45. package/esm2015/lib/exui-common-lib.module.js +26 -3
  46. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +22 -2
  47. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +13 -2
  48. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +54 -4
  49. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +14 -2
  50. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +17 -2
  51. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +24 -2
  52. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +16 -2
  53. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +22 -2
  54. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +12 -2
  55. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +24 -6
  56. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +13 -2
  57. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +21 -2
  58. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +32 -2
  59. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +18 -2
  60. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +14 -2
  61. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +44 -2
  62. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +16 -2
  63. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +36 -2
  64. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +23 -2
  65. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +22 -2
  66. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +30 -3
  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 +22 -1
  70. package/esm2015/lib/gov-ui/gov-ui.service.js +8 -2
  71. package/esm2015/lib/gov-ui/index.js +7 -2
  72. package/esm2015/lib/gov-ui/models/banner-data-model.js +16 -2
  73. package/esm2015/lib/gov-ui/models/checkboxes-model.js +22 -2
  74. package/esm2015/lib/gov-ui/models/error-messages-model.js +16 -2
  75. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +36 -2
  76. package/esm2015/lib/gov-ui/models/index.js +7 -2
  77. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +24 -2
  78. package/esm2015/lib/gov-ui/models/public_api.js +10 -5
  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 -2
  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 -2
  93. package/esm2015/lib/models/index.js +19 -14
  94. package/esm2015/lib/models/location.model.js +108 -2
  95. package/esm2015/lib/models/pagination.model.js +18 -2
  96. package/esm2015/lib/models/person.model.js +92 -17
  97. package/esm2015/lib/models/public_api.js +11 -6
  98. package/esm2015/lib/models/search-options.model.js +22 -2
  99. package/esm2015/lib/models/tcDocument.model.js +18 -2
  100. package/esm2015/lib/models/timeout-notification.model.js +18 -2
  101. package/esm2015/lib/models/user-details.model.js +22 -2
  102. package/esm2015/lib/models/user.model.js +25 -2
  103. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +84 -9
  104. package/esm2015/lib/services/cookie/cookie.service.js +71 -8
  105. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +43 -4
  106. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +28 -2
  107. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +94 -12
  108. package/esm2015/lib/services/filter/filter.service.js +56 -2
  109. package/esm2015/lib/services/find-person/find-person.service.js +123 -15
  110. package/esm2015/lib/services/google-analytics/google-analytics.service.js +63 -8
  111. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +64 -10
  112. package/esm2015/lib/services/index.js +7 -2
  113. package/esm2015/lib/services/loading/loading.service.js +41 -2
  114. package/esm2015/lib/services/locations/location.service.js +28 -12
  115. package/esm2015/lib/services/manage-session/manage-session.services.js +63 -10
  116. package/esm2015/lib/services/public-api.js +22 -13
  117. package/esm2015/lib/services/role-guard/role.guard.js +53 -12
  118. package/esm2015/lib/services/role-guard/role.service.js +21 -2
  119. package/esm2015/lib/services/session-storage/session-storage.service.js +17 -3
  120. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +75 -9
  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 +74 -0
  124. package/esm5/lib/components/accessibility/accessibility.component.js +22 -0
  125. package/esm5/lib/components/checkbox-list/checkbox-list.component.js +391 -0
  126. package/esm5/lib/components/contact-details/contact-details.component.js +29 -0
  127. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +154 -0
  128. package/esm5/lib/components/due-date/due-date.component.js +254 -0
  129. package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +45 -0
  130. package/esm5/lib/components/find-location/find-location.component.js +279 -0
  131. package/esm5/lib/components/find-person/find-person.component.js +286 -0
  132. package/esm5/lib/components/generic-filter/generic-filter-utils.js +66 -0
  133. package/esm5/lib/components/generic-filter/generic-filter.component.js +822 -0
  134. package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +47 -0
  135. package/esm5/lib/components/index.js +7 -0
  136. package/esm5/lib/components/invite-user-form/invite-user-form.component.js +54 -0
  137. package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +46 -0
  138. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +29 -0
  139. package/esm5/lib/components/pagination/pagination.component.js +58 -0
  140. package/esm5/lib/components/public_api.js +33 -0
  141. package/esm5/lib/components/search-judicials/search-judicials.component.js +291 -0
  142. package/esm5/lib/components/search-location/search-location.component.js +302 -0
  143. package/esm5/lib/components/search-venue/search-venue.component.js +290 -0
  144. package/esm5/lib/components/selected-case/selected-case.component.js +430 -0
  145. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +84 -0
  146. package/esm5/lib/components/selected-case-list/selected-case-list.component.js +109 -0
  147. package/esm5/lib/components/service-message/service-message.component.js +46 -0
  148. package/esm5/lib/components/service-messages/service-messages.component.js +122 -0
  149. package/esm5/lib/components/share-case/share-case.component.js +223 -0
  150. package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +70 -0
  151. package/esm5/lib/components/tab/tab.component.js +51 -0
  152. package/esm5/lib/components/tc-confirm/tc-confirm.component.js +42 -0
  153. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +22 -0
  154. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +22 -0
  155. package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +29 -0
  156. package/esm5/lib/components/user-details/user-details.component.js +92 -0
  157. package/esm5/lib/components/user-list/user-list.component.js +76 -0
  158. package/esm5/lib/components/user-select/user-select.component.js +131 -0
  159. package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +104 -0
  160. package/esm5/lib/directives/index.js +7 -0
  161. package/esm5/lib/directives/let/let.directive.js +78 -0
  162. package/esm5/lib/directives/public-api.js +8 -0
  163. package/esm5/lib/exui-common-lib.module.js +178 -0
  164. package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +56 -0
  165. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +36 -0
  166. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +135 -0
  167. package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +37 -0
  168. package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +49 -0
  169. package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +65 -0
  170. package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +40 -0
  171. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +66 -0
  172. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +34 -0
  173. package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +67 -0
  174. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +36 -0
  175. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +52 -0
  176. package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +77 -0
  177. package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +50 -0
  178. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +38 -0
  179. package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +108 -0
  180. package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +40 -0
  181. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +87 -0
  182. package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +51 -0
  183. package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +49 -0
  184. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +46 -0
  185. package/esm5/lib/gov-ui/components/index.js +7 -0
  186. package/esm5/lib/gov-ui/components/public_api.js +7 -0
  187. package/esm5/lib/gov-ui/directives/remove-host.directive.js +52 -0
  188. package/esm5/lib/gov-ui/gov-ui.service.js +22 -0
  189. package/esm5/lib/gov-ui/index.js +7 -0
  190. package/esm5/lib/gov-ui/models/banner-data-model.js +16 -0
  191. package/esm5/lib/gov-ui/models/checkboxes-model.js +22 -0
  192. package/esm5/lib/gov-ui/models/error-messages-model.js +16 -0
  193. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +36 -0
  194. package/esm5/lib/gov-ui/models/index.js +7 -0
  195. package/esm5/lib/gov-ui/models/isession-storage.interface.js +24 -0
  196. package/esm5/lib/gov-ui/models/public_api.js +13 -0
  197. package/esm5/lib/gov-ui/public_api.js +12 -0
  198. package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +57 -0
  199. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +58 -0
  200. package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +38 -0
  201. package/esm5/lib/gov-ui/validators/date.validator.js +32 -0
  202. package/esm5/lib/gov-ui/validators/index.js +7 -0
  203. package/esm5/lib/gov-ui/validators/public_api.js +12 -0
  204. package/esm5/lib/gov-ui/validators/radio-group.validator.js +27 -0
  205. package/esm5/lib/models/case-share.model.js +26 -0
  206. package/esm5/lib/models/contact-details.model.js +31 -0
  207. package/esm5/lib/models/due-date.model.js +15 -0
  208. package/esm5/lib/models/feature-user.js +28 -0
  209. package/esm5/lib/models/filter.model.js +122 -0
  210. package/esm5/lib/models/idle-config.model.js +20 -0
  211. package/esm5/lib/models/index.js +19 -0
  212. package/esm5/lib/models/location.model.js +108 -0
  213. package/esm5/lib/models/pagination.model.js +18 -0
  214. package/esm5/lib/models/person.model.js +92 -0
  215. package/esm5/lib/models/public_api.js +11 -0
  216. package/esm5/lib/models/search-options.model.js +22 -0
  217. package/esm5/lib/models/tcDocument.model.js +18 -0
  218. package/esm5/lib/models/timeout-notification.model.js +18 -0
  219. package/esm5/lib/models/user-details.model.js +22 -0
  220. package/esm5/lib/models/user.model.js +25 -0
  221. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +289 -0
  222. package/esm5/lib/services/cookie/cookie.service.js +136 -0
  223. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +89 -0
  224. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +90 -0
  225. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +187 -0
  226. package/esm5/lib/services/filter/filter.service.js +153 -0
  227. package/esm5/lib/services/find-person/find-person.service.js +238 -0
  228. package/esm5/lib/services/google-analytics/google-analytics.service.js +128 -0
  229. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +135 -0
  230. package/esm5/lib/services/index.js +7 -0
  231. package/esm5/lib/services/loading/loading.service.js +109 -0
  232. package/esm5/lib/services/locations/location.service.js +82 -0
  233. package/esm5/lib/services/manage-session/manage-session.services.js +111 -0
  234. package/esm5/lib/services/public-api.js +25 -0
  235. package/esm5/lib/services/role-guard/role.guard.js +81 -0
  236. package/esm5/lib/services/role-guard/role.service.js +45 -0
  237. package/esm5/lib/services/session-storage/session-storage.service.js +96 -0
  238. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +190 -0
  239. package/esm5/lib/window.js +13 -0
  240. package/esm5/public-api.js +16 -0
  241. package/fesm2015/hmcts-rpx-xui-common-lib.js +4742 -871
  242. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  243. package/fesm5/hmcts-rpx-xui-common-lib.js +9247 -0
  244. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -0
  245. package/hmcts-rpx-xui-common-lib.d.ts +1 -0
  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 +0 -5
  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/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 +3 -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 +0 -20
  264. package/lib/gov-ui/public_api.d.ts +0 -1
  265. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  266. package/lib/services/loading/loading.service.d.ts +2 -2
  267. package/lib/services/public-api.d.ts +4 -0
  268. package/lib/services/role-guard/role.service.d.ts +1 -2
  269. package/lib/window.d.ts +1 -1
  270. package/package.json +16 -6
@@ -0,0 +1,92 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/models/person.model.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /**
7
+ * @record
8
+ */
9
+ export function Person() { }
10
+ if (false) {
11
+ /** @type {?} */
12
+ Person.prototype.id;
13
+ /** @type {?} */
14
+ Person.prototype.name;
15
+ /** @type {?|undefined} */
16
+ Person.prototype.email;
17
+ /** @type {?} */
18
+ Person.prototype.domain;
19
+ /** @type {?|undefined} */
20
+ Person.prototype.knownAs;
21
+ }
22
+ /**
23
+ * @record
24
+ */
25
+ export function JudicialUserModel() { }
26
+ if (false) {
27
+ /** @type {?} */
28
+ JudicialUserModel.prototype.emailId;
29
+ /** @type {?} */
30
+ JudicialUserModel.prototype.fullName;
31
+ /** @type {?} */
32
+ JudicialUserModel.prototype.idamId;
33
+ /** @type {?} */
34
+ JudicialUserModel.prototype.isJudge;
35
+ /** @type {?} */
36
+ JudicialUserModel.prototype.isMagistrate;
37
+ /** @type {?} */
38
+ JudicialUserModel.prototype.isPanelMember;
39
+ /** @type {?} */
40
+ JudicialUserModel.prototype.knownAs;
41
+ /** @type {?} */
42
+ JudicialUserModel.prototype.personalCode;
43
+ /** @type {?} */
44
+ JudicialUserModel.prototype.surname;
45
+ /** @type {?} */
46
+ JudicialUserModel.prototype.title;
47
+ }
48
+ /**
49
+ * @record
50
+ */
51
+ export function CaseworkersByService() { }
52
+ if (false) {
53
+ /** @type {?} */
54
+ CaseworkersByService.prototype.service;
55
+ /** @type {?} */
56
+ CaseworkersByService.prototype.caseworkers;
57
+ }
58
+ /**
59
+ * @record
60
+ */
61
+ export function Caseworker() { }
62
+ if (false) {
63
+ /** @type {?} */
64
+ Caseworker.prototype.idamId;
65
+ /** @type {?} */
66
+ Caseworker.prototype.firstName;
67
+ /** @type {?} */
68
+ Caseworker.prototype.lastName;
69
+ /** @type {?} */
70
+ Caseworker.prototype.email;
71
+ /** @type {?|undefined} */
72
+ Caseworker.prototype.knownAs;
73
+ /** @type {?} */
74
+ Caseworker.prototype.roleCategory;
75
+ }
76
+ /** @enum {string} */
77
+ var PersonRole = {
78
+ JUDICIAL: "Judicial",
79
+ CASEWORKER: "Legal Ops",
80
+ ADMIN: "Admin",
81
+ ALL: "All",
82
+ };
83
+ export { PersonRole };
84
+ /** @enum {string} */
85
+ var RoleCategory = {
86
+ JUDICIAL: "JUDICIAL",
87
+ CASEWORKER: "LEGAL_OPERATIONS",
88
+ ADMIN: "ADMIN",
89
+ ALL: "ALL",
90
+ };
91
+ export { RoleCategory };
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvcGVyc29uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsNEJBTUM7OztJQUxDLG9CQUFXOztJQUNYLHNCQUFhOztJQUNiLHVCQUFlOztJQUNmLHdCQUFlOztJQUNmLHlCQUFpQjs7Ozs7QUFHbkIsdUNBV0M7OztJQVZDLG9DQUFnQjs7SUFDaEIscUNBQWlCOztJQUNqQixtQ0FBZTs7SUFDZixvQ0FBZ0I7O0lBQ2hCLHlDQUFxQjs7SUFDckIsMENBQXNCOztJQUN0QixvQ0FBZ0I7O0lBQ2hCLHlDQUFxQjs7SUFDckIsb0NBQWdCOztJQUNoQixrQ0FBYzs7Ozs7QUFHaEIsMENBR0M7OztJQUZDLHVDQUFnQjs7SUFDaEIsMkNBQTBCOzs7OztBQUc1QixnQ0FPQzs7O0lBTkMsNEJBQWU7O0lBQ2YsK0JBQWtCOztJQUNsQiw4QkFBaUI7O0lBQ2pCLDJCQUFjOztJQUNkLDZCQUFpQjs7SUFDakIsa0NBQXFCOzs7QUFHdkIsSUFBWSxVQUFVO0lBQ3BCLFFBQVEsWUFBYTtJQUNyQixVQUFVLGFBQWM7SUFDeEIsS0FBSyxTQUFVO0lBQ2YsR0FBRyxPQUFRO0VBQ1o7OztBQUlELElBQVksWUFBWTtJQUN0QixRQUFRLFlBQWE7SUFDckIsVUFBVSxvQkFBcUI7SUFDL0IsS0FBSyxTQUFVO0lBQ2YsR0FBRyxPQUFRO0VBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFBlcnNvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGRvbWFpbjogc3RyaW5nO1xuICBrbm93bkFzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEp1ZGljaWFsVXNlck1vZGVsIHtcbiAgZW1haWxJZDogc3RyaW5nO1xuICBmdWxsTmFtZTogc3RyaW5nO1xuICBpZGFtSWQ6IHN0cmluZztcbiAgaXNKdWRnZTogc3RyaW5nO1xuICBpc01hZ2lzdHJhdGU6IHN0cmluZztcbiAgaXNQYW5lbE1lbWJlcjogc3RyaW5nO1xuICBrbm93bkFzOiBzdHJpbmc7XG4gIHBlcnNvbmFsQ29kZTogc3RyaW5nO1xuICBzdXJuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FzZXdvcmtlcnNCeVNlcnZpY2Uge1xuICBzZXJ2aWNlOiBzdHJpbmc7XG4gIGNhc2V3b3JrZXJzOiBDYXNld29ya2VyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FzZXdvcmtlciB7XG4gIGlkYW1JZDogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAga25vd25Bcz86IHN0cmluZztcbiAgcm9sZUNhdGVnb3J5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFBlcnNvblJvbGUge1xuICBKVURJQ0lBTCA9ICdKdWRpY2lhbCcsXG4gIENBU0VXT1JLRVIgPSAnTGVnYWwgT3BzJyxcbiAgQURNSU4gPSAnQWRtaW4nLFxuICBBTEwgPSAnQWxsJyxcbn1cblxuLy8gTm90ZTogUm9sZUNhdGVnb3J5IGNvdWxkIHJlcGxhY2UgUGVyc29uUm9sZSBwb3NzaWJseVxuLy8gSG93ZXZlciBhIGxvdCBvZiB3ZWJhcHAgbG9naWMgaXMgYmFzZWQgb24gY3VycmVudCBQZXJzb25Sb2xlIHVuZGVyc3RhbmRpbmdcbmV4cG9ydCBlbnVtIFJvbGVDYXRlZ29yeSB7XG4gIEpVRElDSUFMID0gJ0pVRElDSUFMJyxcbiAgQ0FTRVdPUktFUiA9ICdMRUdBTF9PUEVSQVRJT05TJyxcbiAgQURNSU4gPSAnQURNSU4nLFxuICBBTEwgPSAnQUxMJ1xufVxuIl19
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/models/public_api.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ export {} from './tcDocument.model';
7
+ export { BadgeColour } from './contact-details.model';
8
+ export { AnonymousFeatureUser, LoggedInFeatureUser } from './feature-user';
9
+ export {} from './user.model';
10
+ export { RadioFilterFieldConfig } from './filter.model';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxlQUFjLG9CQUFvQixDQUFDO0FBQ25DLDRCQUFjLHlCQUF5QixDQUFDO0FBQ3hDLDBEQUFjLGdCQUFnQixDQUFDO0FBQy9CLGVBQWMsY0FBYyxDQUFDO0FBQzdCLHVDQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90Y0RvY3VtZW50Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdC1kZXRhaWxzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS11c2VyJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci5tb2RlbCc7XG4iXX0=
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/models/search-options.model.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /**
7
+ * @record
8
+ */
9
+ export function SearchOptions() { }
10
+ if (false) {
11
+ /** @type {?} */
12
+ SearchOptions.prototype.searchTerm;
13
+ /** @type {?} */
14
+ SearchOptions.prototype.userRole;
15
+ /** @type {?} */
16
+ SearchOptions.prototype.services;
17
+ /** @type {?|undefined} */
18
+ SearchOptions.prototype.userIncluded;
19
+ /** @type {?|undefined} */
20
+ SearchOptions.prototype.assignedUser;
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW9wdGlvbnMubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9zZWFyY2gtb3B0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBLG1DQU1DOzs7SUFMQyxtQ0FBbUI7O0lBQ25CLGlDQUFxQjs7SUFDckIsaUNBQW1COztJQUNuQixxQ0FBdUI7O0lBQ3ZCLHFDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcnNvblJvbGUgfSBmcm9tICcuL3BlcnNvbi5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoT3B0aW9ucyB7XG4gIHNlYXJjaFRlcm06IHN0cmluZztcbiAgdXNlclJvbGU6IFBlcnNvblJvbGU7XG4gIHNlcnZpY2VzOiBzdHJpbmdbXTtcbiAgdXNlckluY2x1ZGVkPzogYm9vbGVhbjtcbiAgYXNzaWduZWRVc2VyPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/models/tcDocument.model.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /**
7
+ * @record
8
+ */
9
+ export function TCDocument() { }
10
+ if (false) {
11
+ /** @type {?} */
12
+ TCDocument.prototype.version;
13
+ /** @type {?} */
14
+ TCDocument.prototype.content;
15
+ /** @type {?} */
16
+ TCDocument.prototype.mimeType;
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNEb2N1bWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL3RjRG9jdW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxnQ0FJQzs7O0lBSEcsNkJBQWdCOztJQUNoQiw2QkFBZ0I7O0lBQ2hCLDhCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVENEb2N1bWVudCB7XG4gICAgdmVyc2lvbjogbnVtYmVyO1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBtaW1lVHlwZTogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/models/timeout-notification.model.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /**
7
+ * @record
8
+ */
9
+ export function TimeoutNotificationConfig() { }
10
+ if (false) {
11
+ /** @type {?} */
12
+ TimeoutNotificationConfig.prototype.idleModalDisplayTime;
13
+ /** @type {?} */
14
+ TimeoutNotificationConfig.prototype.totalIdleTime;
15
+ /** @type {?|undefined} */
16
+ TimeoutNotificationConfig.prototype.idleServiceName;
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZW91dC1ub3RpZmljYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL21vZGVscy90aW1lb3V0LW5vdGlmaWNhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLCtDQUlDOzs7SUFIQyx5REFBNkI7O0lBQzdCLGtEQUFzQjs7SUFDdEIsb0RBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUaW1lb3V0Tm90aWZpY2F0aW9uQ29uZmlnIHtcbiAgaWRsZU1vZGFsRGlzcGxheVRpbWU6IG51bWJlcjtcbiAgdG90YWxJZGxlVGltZTogbnVtYmVyO1xuICBpZGxlU2VydmljZU5hbWU/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/models/user-details.model.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /**
7
+ * @record
8
+ */
9
+ export function UserDetails() { }
10
+ if (false) {
11
+ /** @type {?|undefined} */
12
+ UserDetails.prototype.caseRoles;
13
+ /** @type {?} */
14
+ UserDetails.prototype.email;
15
+ /** @type {?} */
16
+ UserDetails.prototype.firstName;
17
+ /** @type {?} */
18
+ UserDetails.prototype.idamId;
19
+ /** @type {?} */
20
+ UserDetails.prototype.lastName;
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kZXRhaWxzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsaUNBTUM7OztJQUxDLGdDQUFtQjs7SUFDbkIsNEJBQWM7O0lBQ2QsZ0NBQWtCOztJQUNsQiw2QkFBZTs7SUFDZiwrQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXJEZXRhaWxzIHtcbiAgY2FzZVJvbGVzPzogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgaWRhbUlkOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/models/user.model.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /**
7
+ * @record
8
+ */
9
+ export function User() { }
10
+ if (false) {
11
+ /** @type {?|undefined} */
12
+ User.prototype.routerLink;
13
+ /** @type {?|undefined} */
14
+ User.prototype.routerLinkTitle;
15
+ /** @type {?|undefined} */
16
+ User.prototype.fullName;
17
+ /** @type {?|undefined} */
18
+ User.prototype.email;
19
+ /** @type {?|undefined} */
20
+ User.prototype.status;
21
+ /** @type {?|undefined} */
22
+ User.prototype.resendInvite;
23
+ /* Skipping unhandled member: [key: string]: any;*/
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL3VzZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSwwQkFRQzs7O0lBTkcsMEJBQW9COztJQUNwQiwrQkFBeUI7O0lBQ3pCLHdCQUFrQjs7SUFDbEIscUJBQWU7O0lBQ2Ysc0JBQWdCOztJQUNoQiw0QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXIge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICByb3V0ZXJMaW5rPzogc3RyaW5nO1xuICAgIHJvdXRlckxpbmtUaXRsZT86IHN0cmluZztcbiAgICBmdWxsTmFtZT86IHN0cmluZztcbiAgICBlbWFpbD86IHN0cmluZztcbiAgICBzdGF0dXM/OiBzdHJpbmc7XG4gICAgcmVzZW5kSW52aXRlPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,289 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/services/case-sharing-state/case-sharing-state.service.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import * as tslib_1 from "tslib";
7
+ import { Injectable } from '@angular/core';
8
+ import { BehaviorSubject } from 'rxjs';
9
+ import { distinctUntilChanged } from 'rxjs/operators';
10
+ import * as i0 from "@angular/core";
11
+ var CaseSharingStateService = /** @class */ (function () {
12
+ function CaseSharingStateService() {
13
+ this.caseState = [];
14
+ this.subject = new BehaviorSubject(this.caseState);
15
+ }
16
+ Object.defineProperty(CaseSharingStateService.prototype, "state", {
17
+ get: /**
18
+ * @return {?}
19
+ */
20
+ function () {
21
+ return this.subject.asObservable().pipe(distinctUntilChanged());
22
+ },
23
+ enumerable: true,
24
+ configurable: true
25
+ });
26
+ /**
27
+ * @param {?} cases
28
+ * @return {?}
29
+ */
30
+ CaseSharingStateService.prototype.setCases = /**
31
+ * @param {?} cases
32
+ * @return {?}
33
+ */
34
+ function (cases) {
35
+ var _this = this;
36
+ this.caseState = [];
37
+ cases.forEach((/**
38
+ * @param {?} aCase
39
+ * @return {?}
40
+ */
41
+ function (aCase) {
42
+ _this.caseState.push({ caseId: aCase.caseId, caseTitle: aCase.caseTitle, caseTypeId: aCase.caseTypeId, roles: aCase.roles,
43
+ sharedWith: aCase.sharedWith, pendingShares: aCase.pendingShares, pendingUnshares: aCase.pendingUnshares });
44
+ }));
45
+ this.subject.next(this.caseState);
46
+ };
47
+ /**
48
+ * @return {?}
49
+ */
50
+ CaseSharingStateService.prototype.getCases = /**
51
+ * @return {?}
52
+ */
53
+ function () {
54
+ return this.caseState;
55
+ };
56
+ /**
57
+ * @param {?} user
58
+ * @return {?}
59
+ */
60
+ CaseSharingStateService.prototype.requestShare = /**
61
+ * @param {?} user
62
+ * @return {?}
63
+ */
64
+ function (user) {
65
+ var e_1, _a;
66
+ /** @type {?} */
67
+ var oldSharedCases = this.caseState.slice();
68
+ /** @type {?} */
69
+ var newSharedCases = [];
70
+ try {
71
+ for (var oldSharedCases_1 = tslib_1.__values(oldSharedCases), oldSharedCases_1_1 = oldSharedCases_1.next(); !oldSharedCases_1_1.done; oldSharedCases_1_1 = oldSharedCases_1.next()) {
72
+ var sharedCase = oldSharedCases_1_1.value;
73
+ if (!sharedCase.pendingShares) {
74
+ sharedCase.pendingShares = [];
75
+ }
76
+ /** @type {?} */
77
+ var newPendingShares = sharedCase.pendingShares.slice();
78
+ if (!sharedCase.pendingUnshares) {
79
+ sharedCase.pendingUnshares = [];
80
+ }
81
+ /** @type {?} */
82
+ var newPendingUnshares = sharedCase.pendingUnshares.slice();
83
+ if (!this.userHasAccess(sharedCase, user)) {
84
+ if (!newPendingShares.some((/**
85
+ * @param {?} u
86
+ * @return {?}
87
+ */
88
+ function (u) { return u.email === user.email; }))) {
89
+ newPendingShares.push(user);
90
+ }
91
+ }
92
+ else {
93
+ for (var u = 0, ul = newPendingUnshares.length; u < ul; u++) {
94
+ if (newPendingUnshares[u].email === user.email) {
95
+ newPendingUnshares.splice(u, 1);
96
+ break;
97
+ }
98
+ }
99
+ }
100
+ /** @type {?} */
101
+ var newSharedCase = tslib_1.__assign({}, sharedCase, { pendingUnshares: newPendingUnshares, pendingShares: newPendingShares });
102
+ newSharedCases.push(newSharedCase);
103
+ }
104
+ }
105
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
106
+ finally {
107
+ try {
108
+ if (oldSharedCases_1_1 && !oldSharedCases_1_1.done && (_a = oldSharedCases_1.return)) _a.call(oldSharedCases_1);
109
+ }
110
+ finally { if (e_1) throw e_1.error; }
111
+ }
112
+ this.subject.next(newSharedCases);
113
+ return newSharedCases;
114
+ };
115
+ /**
116
+ * @param {?} caseId
117
+ * @param {?} user
118
+ * @return {?}
119
+ */
120
+ CaseSharingStateService.prototype.requestUnshare = /**
121
+ * @param {?} caseId
122
+ * @param {?} user
123
+ * @return {?}
124
+ */
125
+ function (caseId, user) {
126
+ var e_2, _a;
127
+ /** @type {?} */
128
+ var newSharedCases = [];
129
+ try {
130
+ for (var _b = tslib_1.__values(this.caseState), _c = _b.next(); !_c.done; _c = _b.next()) {
131
+ var sharedCase = _c.value;
132
+ if (sharedCase.caseId === caseId) {
133
+ if (!sharedCase.pendingUnshares) {
134
+ sharedCase.pendingUnshares = [];
135
+ }
136
+ /** @type {?} */
137
+ var newPendingUnshares = sharedCase.pendingUnshares.slice();
138
+ if (newPendingUnshares) {
139
+ if (!newPendingUnshares.some((/**
140
+ * @param {?} u
141
+ * @return {?}
142
+ */
143
+ function (u) { return u.email === user.email; }))) {
144
+ newPendingUnshares.push(user);
145
+ }
146
+ }
147
+ else {
148
+ newPendingUnshares.push(user);
149
+ }
150
+ /** @type {?} */
151
+ var newSharedCase = tslib_1.__assign({}, sharedCase, { pendingUnshares: newPendingUnshares });
152
+ newSharedCases.push(newSharedCase);
153
+ }
154
+ else {
155
+ newSharedCases.push(sharedCase);
156
+ }
157
+ }
158
+ }
159
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
160
+ finally {
161
+ try {
162
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
163
+ }
164
+ finally { if (e_2) throw e_2.error; }
165
+ }
166
+ this.subject.next(newSharedCases);
167
+ return;
168
+ };
169
+ /**
170
+ * @param {?} caseId
171
+ * @param {?} user
172
+ * @return {?}
173
+ */
174
+ CaseSharingStateService.prototype.requestCancel = /**
175
+ * @param {?} caseId
176
+ * @param {?} user
177
+ * @return {?}
178
+ */
179
+ function (caseId, user) {
180
+ var e_3, _a;
181
+ /** @type {?} */
182
+ var newSharedCases = [];
183
+ try {
184
+ for (var _b = tslib_1.__values(this.caseState), _c = _b.next(); !_c.done; _c = _b.next()) {
185
+ var sharedCase = _c.value;
186
+ if (sharedCase.caseId === caseId) {
187
+ if (!sharedCase.pendingUnshares) {
188
+ sharedCase.pendingUnshares = [];
189
+ }
190
+ /** @type {?} */
191
+ var newPendingUnshares = sharedCase.pendingUnshares.slice();
192
+ for (var iPendingUnshares = 0; iPendingUnshares < newPendingUnshares.length; iPendingUnshares++) {
193
+ if (newPendingUnshares[iPendingUnshares].email === user.email) {
194
+ newPendingUnshares.splice(iPendingUnshares, 1);
195
+ break;
196
+ }
197
+ }
198
+ if (!sharedCase.pendingShares) {
199
+ sharedCase.pendingShares = [];
200
+ }
201
+ /** @type {?} */
202
+ var newPendingShares = sharedCase.pendingShares.slice();
203
+ for (var iPendingShares = 0; iPendingShares < newPendingShares.length; iPendingShares++) {
204
+ if (newPendingShares[iPendingShares].email === user.email) {
205
+ newPendingShares.splice(iPendingShares, 1);
206
+ break;
207
+ }
208
+ }
209
+ /** @type {?} */
210
+ var newSharedCase = tslib_1.__assign({}, sharedCase, { pendingUnshares: newPendingUnshares, pendingShares: newPendingShares });
211
+ newSharedCases.push(newSharedCase);
212
+ }
213
+ else {
214
+ newSharedCases.push(sharedCase);
215
+ }
216
+ }
217
+ }
218
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
219
+ finally {
220
+ try {
221
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
222
+ }
223
+ finally { if (e_3) throw e_3.error; }
224
+ }
225
+ this.subject.next(newSharedCases);
226
+ return;
227
+ };
228
+ /**
229
+ * @param {?} caseId
230
+ * @return {?}
231
+ */
232
+ CaseSharingStateService.prototype.removeCase = /**
233
+ * @param {?} caseId
234
+ * @return {?}
235
+ */
236
+ function (caseId) {
237
+ for (var i = 0, l = this.caseState.length; i < l; i++) {
238
+ if (this.caseState[i].caseId === caseId) {
239
+ this.caseState.splice(i, 1);
240
+ this.subject.next(this.caseState);
241
+ return;
242
+ }
243
+ }
244
+ };
245
+ /**
246
+ * @param {?} c
247
+ * @param {?} user
248
+ * @return {?}
249
+ */
250
+ CaseSharingStateService.prototype.userHasAccess = /**
251
+ * @param {?} c
252
+ * @param {?} user
253
+ * @return {?}
254
+ */
255
+ function (c, user) {
256
+ if (!c.sharedWith) {
257
+ return false;
258
+ }
259
+ for (var i = 0, l = c.sharedWith.length; i < l; i++) {
260
+ if (c.sharedWith[i].email === user.email) {
261
+ return true;
262
+ }
263
+ }
264
+ return false;
265
+ };
266
+ CaseSharingStateService.decorators = [
267
+ { type: Injectable, args: [{
268
+ providedIn: 'root'
269
+ },] }
270
+ ];
271
+ /** @nocollapse */
272
+ CaseSharingStateService.ctorParameters = function () { return []; };
273
+ /** @nocollapse */ CaseSharingStateService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function CaseSharingStateService_Factory() { return new CaseSharingStateService(); }, token: CaseSharingStateService, providedIn: "root" });
274
+ return CaseSharingStateService;
275
+ }());
276
+ export { CaseSharingStateService };
277
+ if (false) {
278
+ /**
279
+ * @type {?}
280
+ * @private
281
+ */
282
+ CaseSharingStateService.prototype.caseState;
283
+ /**
284
+ * @type {?}
285
+ * @private
286
+ */
287
+ CaseSharingStateService.prototype.subject;
288
+ }
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2Nhc2Utc2hhcmluZy1zdGF0ZS9jYXNlLXNoYXJpbmctc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSXREO0lBY0U7UUFUUSxjQUFTLEdBQWlCLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBUTdELENBQUM7SUFOakIsc0JBQVcsMENBQUs7Ozs7UUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUNyQyxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO1FBQ0osQ0FBQzs7O09BQUE7Ozs7O0lBSU0sMENBQVE7Ozs7SUFBZixVQUFnQixLQUFtQjtRQUFuQyxpQkFPQztRQU5DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxLQUFLO1lBQ2pCLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUN0SCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFB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QUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU87YUFDUjtTQUNGO0lBQ0gsQ0FBQzs7Ozs7O0lBRU0sK0NBQWE7Ozs7O0lBQXBCLFVBQXFCLENBQWEsRUFBRSxJQUFpQjtRQUNuRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRTtZQUNqQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN4QyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2dCQXRKRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7OztrQ0FSRDtDQTZKQyxBQXZKRCxJQXVKQztTQXBKWSx1QkFBdUI7Ozs7OztJQUVsQyw0Q0FBcUM7Ozs7O0lBQ3JDLDBDQUE2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaGFyZWRDYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgY2FzZVN0YXRlOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTaGFyZWRDYXNlW10+KHRoaXMuY2FzZVN0YXRlKTtcblxuICBwdWJsaWMgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgc2V0Q2FzZXMoY2FzZXM6IFNoYXJlZENhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuY2FzZVN0YXRlID0gW107XG4gICAgY2FzZXMuZm9yRWFjaChhQ2FzZSA9PiB7XG4gICAgICB0aGlzLmNhc2VTdGF0ZS5wdXNoKHsgY2FzZUlkOiBhQ2FzZS5jYXNlSWQsIGNhc2VUaXRsZTogYUNhc2UuY2FzZVRpdGxlLCBjYXNlVHlwZUlkOiBhQ2FzZS5jYXNlVHlwZUlkLCByb2xlczogYUNhc2Uucm9sZXMsXG4gICAgICAgIHNoYXJlZFdpdGg6IGFDYXNlLnNoYXJlZFdpdGgsIHBlbmRpbmdTaGFyZXM6IGFDYXNlLnBlbmRpbmdTaGFyZXMsIHBlbmRpbmdVbnNoYXJlczogYUNhc2UucGVuZGluZ1Vuc2hhcmVzIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KHRoaXMuY2FzZVN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlcygpOiBTaGFyZWRDYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmNhc2VTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0U2hhcmUodXNlcjogVXNlckRldGFpbHMpOiBTaGFyZWRDYXNlW10ge1xuICAgIGNvbnN0IG9sZFNoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSB0aGlzLmNhc2VTdGF0ZS5zbGljZSgpO1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2Ygb2xkU2hhcmVkQ2FzZXMpIHtcbiAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UGVuZGluZ1NoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5zbGljZSgpO1xuICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UGVuZGluZ1Vuc2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc2xpY2UoKTtcbiAgICAgIGlmICghdGhpcy51c2VySGFzQWNjZXNzKHNoYXJlZENhc2UsIHVzZXIpKSB7XG4gICAgICAgIGlmICghbmV3UGVuZGluZ1NoYXJlcy5zb21lKHUgPT4gdS5lbWFpbCA9PT0gdXNlci5lbWFpbCkpIHtcbiAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzLnB1c2godXNlcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAobGV0IHUgPSAwLCB1bCA9IG5ld1BlbmRpbmdVbnNoYXJlcy5sZW5ndGg7IHUgPCB1bDsgdSsrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdVbnNoYXJlc1t1XS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1Vuc2hhcmVzLnNwbGljZSh1LCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgLi4uc2hhcmVkQ2FzZSxcbiAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXMsXG4gICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgIH07XG4gICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgIH1cbiAgICB0aGlzLnN1YmplY3QubmV4dChuZXdTaGFyZWRDYXNlcyk7XG4gICAgcmV0dXJuIG5ld1NoYXJlZENhc2VzO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RVbnNoYXJlKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2YgdGhpcy5jYXNlU3RhdGUpIHtcbiAgICAgIGlmIChzaGFyZWRDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdVbnNoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLnNsaWNlKCk7XG4gICAgICAgIGlmIChuZXdQZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgICAgICBpZiAoIW5ld1BlbmRpbmdVbnNoYXJlcy5zb21lKHUgPT4gdS5lbWFpbCA9PT0gdXNlci5lbWFpbCkpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdVbnNoYXJlcy5wdXNoKHVzZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdQZW5kaW5nVW5zaGFyZXMucHVzaCh1c2VyKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdTaGFyZWRDYXNlID0ge1xuICAgICAgICAgIC4uLnNoYXJlZENhc2UsXG4gICAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXNcbiAgICAgICAgfTtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChuZXdTaGFyZWRDYXNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2goc2hhcmVkQ2FzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5ld1NoYXJlZENhc2VzKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdENhbmNlbChjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdTaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdID0gW107XG4gICAgZm9yIChjb25zdCBzaGFyZWRDYXNlIG9mIHRoaXMuY2FzZVN0YXRlKSB7XG4gICAgICBpZiAoc2hhcmVkQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzKSB7XG4gICAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdQZW5kaW5nVW5zaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5zbGljZSgpO1xuICAgICAgICBmb3IgKGxldCBpUGVuZGluZ1Vuc2hhcmVzID0gMDsgaVBlbmRpbmdVbnNoYXJlcyA8IG5ld1BlbmRpbmdVbnNoYXJlcy5sZW5ndGg7IGlQZW5kaW5nVW5zaGFyZXMrKykge1xuICAgICAgICAgIGlmIChuZXdQZW5kaW5nVW5zaGFyZXNbaVBlbmRpbmdVbnNoYXJlc10uZW1haWwgPT09IHVzZXIuZW1haWwpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdVbnNoYXJlcy5zcGxpY2UoaVBlbmRpbmdVbnNoYXJlcywgMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdQZW5kaW5nU2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLnNsaWNlKCk7XG4gICAgICAgIGZvciAobGV0IGlQZW5kaW5nU2hhcmVzID0gMDsgaVBlbmRpbmdTaGFyZXMgPCBuZXdQZW5kaW5nU2hhcmVzLmxlbmd0aDsgaVBlbmRpbmdTaGFyZXMrKykge1xuICAgICAgICAgIGlmIChuZXdQZW5kaW5nU2hhcmVzW2lQZW5kaW5nU2hhcmVzXS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1NoYXJlcy5zcGxpY2UoaVBlbmRpbmdTaGFyZXMsIDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1NoYXJlZENhc2UgPSB7XG4gICAgICAgICAgLi4uc2hhcmVkQ2FzZSxcbiAgICAgICAgICBwZW5kaW5nVW5zaGFyZXM6IG5ld1BlbmRpbmdVbnNoYXJlcyxcbiAgICAgICAgICBwZW5kaW5nU2hhcmVzOiBuZXdQZW5kaW5nU2hhcmVzXG4gICAgICAgIH07XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2gobmV3U2hhcmVkQ2FzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKHNoYXJlZENhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN1YmplY3QubmV4dChuZXdTaGFyZWRDYXNlcyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUNhc2UoY2FzZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMuY2FzZVN0YXRlLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKHRoaXMuY2FzZVN0YXRlW2ldLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgIHRoaXMuY2FzZVN0YXRlLnNwbGljZShpLCAxKTtcbiAgICAgICAgdGhpcy5zdWJqZWN0Lm5leHQodGhpcy5jYXNlU3RhdGUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVzZXJIYXNBY2Nlc3MoYzogU2hhcmVkQ2FzZSwgdXNlcjogVXNlckRldGFpbHMpOiBib29sZWFuIHtcbiAgICBpZiAoIWMuc2hhcmVkV2l0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IGMuc2hhcmVkV2l0aC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChjLnNoYXJlZFdpdGhbaV0uZW1haWwgPT09IHVzZXIuZW1haWwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19