@hmcts/rpx-xui-common-lib 3.0.4 → 3.0.15-alpha-4

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 (207) hide show
  1. package/{esm2022 → esm2020}/lib/components/accessibility/accessibility.component.mjs +4 -4
  2. package/{esm2022 → esm2020}/lib/components/checkbox-list/checkbox-list.component.mjs +4 -4
  3. package/{esm2022 → esm2020}/lib/components/contact-details/contact-details.component.mjs +4 -4
  4. package/{esm2022 → esm2020}/lib/components/cookie-banner/cookie-banner.component.mjs +4 -4
  5. package/{esm2022 → esm2020}/lib/components/due-date/due-date.component.mjs +4 -4
  6. package/{esm2022 → esm2020}/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +4 -4
  7. package/{esm2022 → esm2020}/lib/components/find-location/find-location.component.mjs +4 -4
  8. package/{esm2022 → esm2020}/lib/components/find-person/find-person.component.mjs +4 -4
  9. package/{esm2022 → esm2020}/lib/components/find-service/find-service.component.mjs +4 -4
  10. package/{esm2022 → esm2020}/lib/components/find-task-name/find-task-name.component.mjs +4 -4
  11. package/{esm2022 → esm2020}/lib/components/generic-filter/generic-filter.component.mjs +4 -4
  12. package/{esm2022 → esm2020}/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +4 -4
  13. package/{esm2022 → esm2020}/lib/components/invite-user-form/invite-user-form.component.mjs +4 -4
  14. package/{esm2022 → esm2020}/lib/components/invite-user-permissions/invite-user-permission.component.mjs +4 -4
  15. package/{esm2022 → esm2020}/lib/components/loading-spinner/loading-spinner.component.mjs +4 -4
  16. package/{esm2022 → esm2020}/lib/components/pagination/pagination.component.mjs +4 -4
  17. package/{esm2022 → esm2020}/lib/components/search-judicials/search-judicials.component.mjs +4 -4
  18. package/{esm2022 → esm2020}/lib/components/search-location/search-location.component.mjs +11 -11
  19. package/{esm2022 → esm2020}/lib/components/search-service/search-service.component.mjs +4 -4
  20. package/{esm2022 → esm2020}/lib/components/search-venue/search-venue.component.mjs +4 -4
  21. package/{esm2022 → esm2020}/lib/components/selected-case/selected-case.component.mjs +4 -4
  22. package/{esm2022 → esm2020}/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +4 -4
  23. package/{esm2022 → esm2020}/lib/components/selected-case-list/selected-case-list.component.mjs +4 -4
  24. package/{esm2022 → esm2020}/lib/components/service-message/service-message.component.mjs +4 -4
  25. package/{esm2022 → esm2020}/lib/components/service-messages/service-messages.component.mjs +4 -4
  26. package/{esm2022 → esm2020}/lib/components/share-case/share-case.component.mjs +4 -4
  27. package/{esm2022 → esm2020}/lib/components/share-case-confirm/share-case-confirm.component.mjs +4 -4
  28. package/{esm2022 → esm2020}/lib/components/tab/tab.component.mjs +4 -4
  29. package/{esm2022 → esm2020}/lib/components/tc-confirm/tc-confirm.component.mjs +4 -4
  30. package/{esm2022 → esm2020}/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +4 -4
  31. package/{esm2022 → esm2020}/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +4 -4
  32. package/{esm2022 → esm2020}/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +4 -4
  33. package/{esm2022 → esm2020}/lib/components/user-details/user-details.component.mjs +4 -4
  34. package/esm2020/lib/components/user-list/user-list.component.mjs +40 -0
  35. package/{esm2022 → esm2020}/lib/components/user-select/user-select.component.mjs +4 -4
  36. package/{esm2022 → esm2020}/lib/directives/feature-toggle/feature-toggle.directive.mjs +8 -8
  37. package/{esm2022 → esm2020}/lib/directives/let/let.directive.mjs +4 -4
  38. package/esm2020/lib/exui-common-lib.module.mjs +300 -0
  39. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +4 -4
  40. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +4 -4
  41. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +4 -4
  42. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +4 -4
  43. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +4 -4
  44. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +4 -4
  45. package/esm2020/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +28 -0
  46. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +4 -4
  47. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +4 -4
  48. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +4 -4
  49. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +4 -4
  50. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +4 -4
  51. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +4 -4
  52. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +4 -4
  53. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +4 -4
  54. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +7 -7
  55. package/esm2020/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +18 -0
  56. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +7 -7
  57. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +4 -4
  58. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +6 -6
  59. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +4 -4
  60. package/{esm2022 → esm2020}/lib/gov-ui/directives/remove-host.directive.mjs +4 -4
  61. package/{esm2022 → esm2020}/lib/gov-ui/gov-ui.service.mjs +4 -4
  62. package/{esm2022 → esm2020}/lib/pipes/capitalize/capitalize.pipe.mjs +4 -4
  63. package/esm2020/lib/services/case-sharing-state/case-sharing-state.service.mjs +170 -0
  64. package/{esm2022 → esm2020}/lib/services/cookie/cookie.service.mjs +4 -4
  65. package/{esm2022 → esm2020}/lib/services/feature-toggle/feature-toggle.guard.mjs +4 -4
  66. package/{esm2022 → esm2020}/lib/services/feature-toggle/feature-toggle.service.mjs +4 -4
  67. package/{esm2022 → esm2020}/lib/services/feature-toggle/launch-darkly.service.mjs +4 -4
  68. package/{esm2022 → esm2020}/lib/services/filter/filter.service.mjs +4 -4
  69. package/esm2020/lib/services/find-person/find-person.service.mjs +111 -0
  70. package/{esm2022 → esm2020}/lib/services/google-analytics/google-analytics.service.mjs +4 -4
  71. package/{esm2022 → esm2020}/lib/services/google-tag-manager/google-tag-manager.service.mjs +4 -4
  72. package/{esm2022 → esm2020}/lib/services/loading/loading.service.mjs +4 -4
  73. package/{esm2022 → esm2020}/lib/services/locations/location.service.mjs +4 -4
  74. package/{esm2022 → esm2020}/lib/services/manage-session/manage-session.services.mjs +4 -4
  75. package/esm2020/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +33 -0
  76. package/{esm2022 → esm2020}/lib/services/ref-data/ref-data.service.mjs +4 -4
  77. package/{esm2022 → esm2020}/lib/services/role-guard/role.guard.mjs +4 -4
  78. package/{esm2022 → esm2020}/lib/services/role-guard/role.service.mjs +4 -4
  79. package/{esm2022 → esm2020}/lib/services/storage/session-storage/session-storage.service.mjs +4 -4
  80. package/esm2020/lib/services/task-name/task-name.service.mjs +33 -0
  81. package/{esm2022 → esm2020}/lib/services/timeout-notifications/timeout-notifications.service.mjs +4 -4
  82. package/fesm2015/hmcts-rpx-xui-common-lib.mjs +5024 -0
  83. package/fesm2015/hmcts-rpx-xui-common-lib.mjs.map +1 -0
  84. package/{fesm2022 → fesm2020}/hmcts-rpx-xui-common-lib.mjs +431 -425
  85. package/fesm2020/hmcts-rpx-xui-common-lib.mjs.map +1 -0
  86. package/lib/components/checkbox-list/checkbox-list.component.d.ts +1 -1
  87. package/lib/components/contact-details/contact-details.component.d.ts +1 -1
  88. package/lib/components/cookie-banner/cookie-banner.component.d.ts +1 -1
  89. package/lib/components/due-date/due-date.component.d.ts +1 -1
  90. package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +1 -1
  91. package/lib/components/find-location/find-location.component.d.ts +1 -1
  92. package/lib/components/find-person/find-person.component.d.ts +1 -1
  93. package/lib/components/find-service/find-service.component.d.ts +1 -1
  94. package/lib/components/find-task-name/find-task-name.component.d.ts +1 -1
  95. package/lib/components/generic-filter/generic-filter.component.d.ts +1 -1
  96. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  97. package/lib/components/invite-user-form/invite-user-form.component.d.ts +1 -1
  98. package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +1 -1
  99. package/lib/components/loading-spinner/loading-spinner.component.d.ts +1 -1
  100. package/lib/components/pagination/pagination.component.d.ts +1 -1
  101. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  102. package/lib/components/search-location/search-location.component.d.ts +1 -1
  103. package/lib/components/search-service/search-service.component.d.ts +1 -1
  104. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  105. package/lib/components/selected-case/selected-case.component.d.ts +1 -1
  106. package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +1 -1
  107. package/lib/components/selected-case-list/selected-case-list.component.d.ts +1 -1
  108. package/lib/components/service-message/service-message.component.d.ts +1 -1
  109. package/lib/components/service-messages/service-messages.component.d.ts +1 -1
  110. package/lib/components/share-case/share-case.component.d.ts +1 -1
  111. package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +1 -1
  112. package/lib/components/tab/tab.component.d.ts +1 -1
  113. package/lib/components/tc-confirm/tc-confirm.component.d.ts +1 -1
  114. package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +1 -1
  115. package/lib/components/user-details/user-details.component.d.ts +1 -1
  116. package/lib/components/user-list/user-list.component.d.ts +1 -1
  117. package/lib/components/user-select/user-select.component.d.ts +1 -1
  118. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  119. package/lib/directives/let/let.directive.d.ts +1 -1
  120. package/lib/exui-common-lib.module.d.ts +2 -1
  121. package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +1 -1
  122. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +1 -1
  123. package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +1 -1
  124. package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -1
  125. package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -1
  126. package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +1 -1
  127. package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +1 -1
  128. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +1 -1
  129. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +1 -1
  130. package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +1 -1
  131. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +1 -1
  132. package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +1 -1
  133. package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +1 -1
  134. package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +1 -1
  135. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +1 -1
  136. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  137. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  138. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
  139. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +1 -1
  140. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  141. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +1 -1
  142. package/lib/models/feature-user.d.ts +1 -1
  143. package/lib/models/filter.model.d.ts +2 -2
  144. package/lib/services/feature-toggle/feature-toggle.guard.d.ts +2 -2
  145. package/lib/services/role-guard/role.guard.d.ts +2 -2
  146. package/lib/services/role-guard/role.service.d.ts +2 -2
  147. package/package.json +11 -5
  148. package/esm2022/lib/components/user-list/user-list.component.mjs +0 -36
  149. package/esm2022/lib/exui-common-lib.module.mjs +0 -295
  150. package/esm2022/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +0 -27
  151. package/esm2022/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +0 -18
  152. package/esm2022/lib/services/case-sharing-state/case-sharing-state.service.mjs +0 -170
  153. package/esm2022/lib/services/find-person/find-person.service.mjs +0 -111
  154. package/esm2022/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +0 -33
  155. package/esm2022/lib/services/task-name/task-name.service.mjs +0 -33
  156. package/fesm2022/hmcts-rpx-xui-common-lib.mjs.map +0 -1
  157. /package/{esm2022 → esm2020}/hmcts-rpx-xui-common-lib.mjs +0 -0
  158. /package/{esm2022 → esm2020}/lib/components/generic-filter/generic-filter-utils.mjs +0 -0
  159. /package/{esm2022 → esm2020}/lib/components/index.mjs +0 -0
  160. /package/{esm2022 → esm2020}/lib/components/public_api.mjs +0 -0
  161. /package/{esm2022 → esm2020}/lib/directives/index.mjs +0 -0
  162. /package/{esm2022 → esm2020}/lib/directives/public-api.mjs +0 -0
  163. /package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs +0 -0
  164. /package/{esm2022 → esm2020}/lib/gov-ui/components/index.mjs +0 -0
  165. /package/{esm2022 → esm2020}/lib/gov-ui/components/public_api.mjs +0 -0
  166. /package/{esm2022 → esm2020}/lib/gov-ui/index.mjs +0 -0
  167. /package/{esm2022 → esm2020}/lib/gov-ui/models/checkboxes-model.mjs +0 -0
  168. /package/{esm2022 → esm2020}/lib/gov-ui/models/error-messages-model.mjs +0 -0
  169. /package/{esm2022 → esm2020}/lib/gov-ui/models/gov-ui-config-model.mjs +0 -0
  170. /package/{esm2022 → esm2020}/lib/gov-ui/models/index.mjs +0 -0
  171. /package/{esm2022 → esm2020}/lib/gov-ui/models/isession-storage.interface.mjs +0 -0
  172. /package/{esm2022 → esm2020}/lib/gov-ui/models/public_api.mjs +0 -0
  173. /package/{esm2022 → esm2020}/lib/gov-ui/models/radio-buttons.model.mjs +0 -0
  174. /package/{esm2022 → esm2020}/lib/gov-ui/public_api.mjs +0 -0
  175. /package/{esm2022 → esm2020}/lib/gov-ui/util/helpers/html-templates.helper.mjs +0 -0
  176. /package/{esm2022 → esm2020}/lib/gov-ui/util/session-storage/session-storage-utils.mjs +0 -0
  177. /package/{esm2022 → esm2020}/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs +0 -0
  178. /package/{esm2022 → esm2020}/lib/gov-ui/validators/date.validator.mjs +0 -0
  179. /package/{esm2022 → esm2020}/lib/gov-ui/validators/index.mjs +0 -0
  180. /package/{esm2022 → esm2020}/lib/gov-ui/validators/public_api.mjs +0 -0
  181. /package/{esm2022 → esm2020}/lib/gov-ui/validators/radio-group.validator.mjs +0 -0
  182. /package/{esm2022 → esm2020}/lib/models/case-share.model.mjs +0 -0
  183. /package/{esm2022 → esm2020}/lib/models/contact-details.model.mjs +0 -0
  184. /package/{esm2022 → esm2020}/lib/models/due-date.model.mjs +0 -0
  185. /package/{esm2022 → esm2020}/lib/models/feature-user.mjs +0 -0
  186. /package/{esm2022 → esm2020}/lib/models/filter.model.mjs +0 -0
  187. /package/{esm2022 → esm2020}/lib/models/idle-config.model.mjs +0 -0
  188. /package/{esm2022 → esm2020}/lib/models/index.mjs +0 -0
  189. /package/{esm2022 → esm2020}/lib/models/location.model.mjs +0 -0
  190. /package/{esm2022 → esm2020}/lib/models/pagination.model.mjs +0 -0
  191. /package/{esm2022 → esm2020}/lib/models/person.model.mjs +0 -0
  192. /package/{esm2022 → esm2020}/lib/models/public_api.mjs +0 -0
  193. /package/{esm2022 → esm2020}/lib/models/search-options.model.mjs +0 -0
  194. /package/{esm2022 → esm2020}/lib/models/task-name.model.mjs +0 -0
  195. /package/{esm2022 → esm2020}/lib/models/tcDocument.model.mjs +0 -0
  196. /package/{esm2022 → esm2020}/lib/models/timeout-notification.model.mjs +0 -0
  197. /package/{esm2022 → esm2020}/lib/models/user-details.model.mjs +0 -0
  198. /package/{esm2022 → esm2020}/lib/models/user.model.mjs +0 -0
  199. /package/{esm2022 → esm2020}/lib/pipes/index.mjs +0 -0
  200. /package/{esm2022 → esm2020}/lib/services/index.mjs +0 -0
  201. /package/{esm2022 → esm2020}/lib/services/public-api.mjs +0 -0
  202. /package/{esm2022 → esm2020}/lib/services/ref-data/index.mjs +0 -0
  203. /package/{esm2022 → esm2020}/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs +0 -0
  204. /package/{esm2022 → esm2020}/lib/services/ref-data/models/ref-data-region.model.mjs +0 -0
  205. /package/{esm2022 → esm2020}/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs +0 -0
  206. /package/{esm2022 → esm2020}/lib/window.mjs +0 -0
  207. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
@@ -1,170 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { distinctUntilChanged } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class CaseSharingStateService {
6
- get state() {
7
- return this.subject.asObservable().pipe(distinctUntilChanged());
8
- }
9
- constructor() {
10
- this.caseState = [];
11
- this.subject = new BehaviorSubject(this.caseState);
12
- }
13
- setCases(cases) {
14
- this.caseState = [];
15
- cases.forEach(aCase => {
16
- this.caseState.push({ caseId: aCase.caseId, caseTitle: aCase.caseTitle, caseTypeId: aCase.caseTypeId, roles: aCase.roles,
17
- sharedWith: aCase.sharedWith, pendingShares: aCase.pendingShares, pendingUnshares: aCase.pendingUnshares });
18
- });
19
- this.subject.next(this.caseState);
20
- }
21
- getCases() {
22
- return this.caseState;
23
- }
24
- requestShare(user) {
25
- const oldSharedCases = this.caseState.slice();
26
- const newSharedCases = [];
27
- for (const sharedCase of oldSharedCases) {
28
- if (!sharedCase.pendingShares) {
29
- sharedCase.pendingShares = [];
30
- }
31
- const newPendingShares = sharedCase.pendingShares.slice();
32
- if (!sharedCase.pendingUnshares) {
33
- sharedCase.pendingUnshares = [];
34
- }
35
- const newPendingUnshares = sharedCase.pendingUnshares.slice();
36
- if (!this.userHasAccess(sharedCase, user)) {
37
- if (!newPendingShares.some(u => u.email === user.email)) {
38
- newPendingShares.push(user);
39
- }
40
- }
41
- else {
42
- for (let u = 0, ul = newPendingUnshares.length; u < ul; u++) {
43
- if (newPendingUnshares[u].email === user.email) {
44
- newPendingUnshares.splice(u, 1);
45
- break;
46
- }
47
- }
48
- }
49
- const newSharedCase = {
50
- ...sharedCase,
51
- pendingUnshares: newPendingUnshares,
52
- pendingShares: newPendingShares
53
- };
54
- newSharedCases.push(newSharedCase);
55
- }
56
- this.subject.next(newSharedCases);
57
- return newSharedCases;
58
- }
59
- requestUnshare(user, caseId) {
60
- const newSharedCases = [];
61
- for (const sharedCase of this.caseState) {
62
- // If no caseId, then request unshare from all shared cases
63
- if (caseId === undefined || sharedCase.caseId === caseId) {
64
- if (!sharedCase.pendingUnshares) {
65
- sharedCase.pendingUnshares = [];
66
- }
67
- const newPendingUnshares = sharedCase.pendingUnshares.slice();
68
- // If the user is pending shared access, just remove them from pendingShares
69
- let newPendingShares;
70
- let indexOfPreviouslyAddedUser = -1;
71
- if (sharedCase.pendingShares) {
72
- indexOfPreviouslyAddedUser = sharedCase.pendingShares.findIndex(u => u.idamId === user.idamId);
73
- if (indexOfPreviouslyAddedUser > -1) {
74
- newPendingShares = sharedCase.pendingShares.slice();
75
- newPendingShares.splice(indexOfPreviouslyAddedUser, 1);
76
- }
77
- }
78
- // If the user does not exist in pendingShares, and already has shared access (i.e. exists in sharedWith),
79
- // request removal of shared access
80
- if (indexOfPreviouslyAddedUser === -1 && sharedCase.sharedWith && sharedCase.sharedWith.findIndex(u => u.idamId === user.idamId) > -1) {
81
- if (!newPendingUnshares.some(u => u.email === user.email)) {
82
- newPendingUnshares.push(user);
83
- }
84
- }
85
- const newSharedCase = {
86
- ...sharedCase,
87
- pendingUnshares: newPendingUnshares,
88
- ...(newPendingShares && {
89
- pendingShares: newPendingShares
90
- })
91
- };
92
- newSharedCases.push(newSharedCase);
93
- }
94
- else {
95
- newSharedCases.push(sharedCase);
96
- }
97
- }
98
- this.subject.next(newSharedCases);
99
- return newSharedCases;
100
- }
101
- requestCancel(caseId, user) {
102
- const newSharedCases = [];
103
- for (const sharedCase of this.caseState) {
104
- if (sharedCase.caseId === caseId) {
105
- if (!sharedCase.pendingUnshares) {
106
- sharedCase.pendingUnshares = [];
107
- }
108
- const newPendingUnshares = sharedCase.pendingUnshares.slice();
109
- for (let iPendingUnshares = 0; iPendingUnshares < newPendingUnshares.length; iPendingUnshares++) {
110
- if (newPendingUnshares[iPendingUnshares].email === user.email) {
111
- newPendingUnshares.splice(iPendingUnshares, 1);
112
- break;
113
- }
114
- }
115
- if (!sharedCase.pendingShares) {
116
- sharedCase.pendingShares = [];
117
- }
118
- const newPendingShares = sharedCase.pendingShares.slice();
119
- for (let iPendingShares = 0; iPendingShares < newPendingShares.length; iPendingShares++) {
120
- if (newPendingShares[iPendingShares].email === user.email) {
121
- newPendingShares.splice(iPendingShares, 1);
122
- break;
123
- }
124
- }
125
- const newSharedCase = {
126
- ...sharedCase,
127
- pendingUnshares: newPendingUnshares,
128
- pendingShares: newPendingShares
129
- };
130
- newSharedCases.push(newSharedCase);
131
- }
132
- else {
133
- newSharedCases.push(sharedCase);
134
- }
135
- }
136
- this.subject.next(newSharedCases);
137
- return;
138
- }
139
- removeCase(caseId) {
140
- if (this.caseState.length > 1) {
141
- for (let i = 0, l = this.caseState.length; i < l; i++) {
142
- if (this.caseState[i].caseId === caseId) {
143
- this.caseState.splice(i, 1);
144
- this.subject.next(this.caseState);
145
- return;
146
- }
147
- }
148
- }
149
- }
150
- userHasAccess(c, user) {
151
- if (!c.sharedWith) {
152
- return false;
153
- }
154
- for (let i = 0, l = c.sharedWith.length; i < l; i++) {
155
- if (c.sharedWith[i].email === user.email) {
156
- return true;
157
- }
158
- }
159
- return false;
160
- }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CaseSharingStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
162
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CaseSharingStateService, providedIn: 'root' }); }
163
- }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CaseSharingStateService, decorators: [{
165
- type: Injectable,
166
- args: [{
167
- providedIn: 'root'
168
- }]
169
- }], ctorParameters: function () { return []; } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU90RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ3JDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQ7UUFUUSxjQUFTLEdBQWlCLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBUTdELENBQUM7SUFFVixRQUFRLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDdEgsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLEtB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Q0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3hDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FwS1UsdUJBQXVCO2tIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaGFyZWRDYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgY2FzZVN0YXRlOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTaGFyZWRDYXNlW10+KHRoaXMuY2FzZVN0YXRlKTtcblxuICBwdWJsaWMgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgc2V0Q2FzZXMoY2FzZXM6IFNoYXJlZENhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuY2FzZVN0YXRlID0gW107XG4gICAgY2FzZXMuZm9yRWFjaChhQ2FzZSA9PiB7XG4gICAgICB0aGlzLmNhc2VTdGF0ZS5wdXNoKHsgY2FzZUlkOiBhQ2FzZS5jYXNlSWQsIGNhc2VUaXRsZTogYUNhc2UuY2FzZVRpdGxlLCBjYXNlVHlwZUlkOiBhQ2FzZS5jYXNlVHlwZUlkLCByb2xlczogYUNhc2Uucm9sZXMsXG4gICAgICAgIHNoYXJlZFdpdGg6IGFDYXNlLnNoYXJlZFdpdGgsIHBlbmRpbmdTaGFyZXM6IGFDYXNlLnBlbmRpbmdTaGFyZXMsIHBlbmRpbmdVbnNoYXJlczogYUNhc2UucGVuZGluZ1Vuc2hhcmVzIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KHRoaXMuY2FzZVN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlcygpOiBTaGFyZWRDYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmNhc2VTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0U2hhcmUodXNlcjogVXNlckRldGFpbHMpOiBTaGFyZWRDYXNlW10ge1xuICAgIGNvbnN0IG9sZFNoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSB0aGlzLmNhc2VTdGF0ZS5zbGljZSgpO1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2Ygb2xkU2hhcmVkQ2FzZXMpIHtcbiAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UGVuZGluZ1NoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5zbGljZSgpO1xuICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UGVuZGluZ1Vuc2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc2xpY2UoKTtcbiAgICAgIGlmICghdGhpcy51c2VySGFzQWNjZXNzKHNoYXJlZENhc2UsIHVzZXIpKSB7XG4gICAgICAgIGlmICghbmV3UGVuZGluZ1NoYXJlcy5zb21lKHUgPT4gdS5lbWFpbCA9PT0gdXNlci5lbWFpbCkpIHtcbiAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzLnB1c2godXNlcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAobGV0IHUgPSAwLCB1bCA9IG5ld1BlbmRpbmdVbnNoYXJlcy5sZW5ndGg7IHUgPCB1bDsgdSsrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdVbnNoYXJlc1t1XS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1Vuc2hhcmVzLnNwbGljZSh1LCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgLi4uc2hhcmVkQ2FzZSxcbiAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXMsXG4gICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgIH07XG4gICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgIH1cbiAgICB0aGlzLnN1YmplY3QubmV4dChuZXdTaGFyZWRDYXNlcyk7XG4gICAgcmV0dXJuIG5ld1NoYXJlZENhc2VzO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RVbnNoYXJlKHVzZXI6IFVzZXJEZXRhaWxzLCBjYXNlSWQ/OiBzdHJpbmcpOiBTaGFyZWRDYXNlW10ge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2YgdGhpcy5jYXNlU3RhdGUpIHtcbiAgICAgIC8vIElmIG5vIGNhc2VJZCwgdGhlbiByZXF1ZXN0IHVuc2hhcmUgZnJvbSBhbGwgc2hhcmVkIGNhc2VzXG4gICAgICBpZiAoY2FzZUlkID09PSB1bmRlZmluZWQgfHwgc2hhcmVkQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzKSB7XG4gICAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdQZW5kaW5nVW5zaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5zbGljZSgpO1xuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBwZW5kaW5nIHNoYXJlZCBhY2Nlc3MsIGp1c3QgcmVtb3ZlIHRoZW0gZnJvbSBwZW5kaW5nU2hhcmVzXG4gICAgICAgIGxldCBuZXdQZW5kaW5nU2hhcmVzO1xuICAgICAgICBsZXQgaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPSAtMTtcbiAgICAgICAgaWYgKHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgICAgIGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyID0gc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmZpbmRJbmRleCh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCk7XG4gICAgICAgICAgaWYgKGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyID4gLTEpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMuc3BsaWNlKGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgZG9lcyBub3QgZXhpc3QgaW4gcGVuZGluZ1NoYXJlcywgYW5kIGFscmVhZHkgaGFzIHNoYXJlZCBhY2Nlc3MgKGkuZS4gZXhpc3RzIGluIHNoYXJlZFdpdGgpLFxuICAgICAgICAvLyByZXF1ZXN0IHJlbW92YWwgb2Ygc2hhcmVkIGFjY2Vzc1xuICAgICAgICBpZiAoaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPT09IC0xICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aCAmJiBzaGFyZWRDYXNlLnNoYXJlZFdpdGguZmluZEluZGV4KFxuICAgICAgICAgIHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSA+IC0xKSB7XG4gICAgICAgICAgaWYgKCFuZXdQZW5kaW5nVW5zaGFyZXMuc29tZSh1ID0+IHUuZW1haWwgPT09IHVzZXIuZW1haWwpKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nVW5zaGFyZXMucHVzaCh1c2VyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgICAuLi5zaGFyZWRDYXNlLFxuICAgICAgICAgIHBlbmRpbmdVbnNoYXJlczogbmV3UGVuZGluZ1Vuc2hhcmVzLFxuICAgICAgICAgIC4uLihuZXdQZW5kaW5nU2hhcmVzICYmIHtcbiAgICAgICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChzaGFyZWRDYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIHJldHVybiBuZXdTaGFyZWRDYXNlcztcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0Q2FuY2VsKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2YgdGhpcy5jYXNlU3RhdGUpIHtcbiAgICAgIGlmIChzaGFyZWRDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdVbnNoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLnNsaWNlKCk7XG4gICAgICAgIGZvciAobGV0IGlQZW5kaW5nVW5zaGFyZXMgPSAwOyBpUGVuZGluZ1Vuc2hhcmVzIDwgbmV3UGVuZGluZ1Vuc2hhcmVzLmxlbmd0aDsgaVBlbmRpbmdVbnNoYXJlcysrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdVbnNoYXJlc1tpUGVuZGluZ1Vuc2hhcmVzXS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1Vuc2hhcmVzLnNwbGljZShpUGVuZGluZ1Vuc2hhcmVzLCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdTaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChsZXQgaVBlbmRpbmdTaGFyZXMgPSAwOyBpUGVuZGluZ1NoYXJlcyA8IG5ld1BlbmRpbmdTaGFyZXMubGVuZ3RoOyBpUGVuZGluZ1NoYXJlcysrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdTaGFyZXNbaVBlbmRpbmdTaGFyZXNdLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzLnNwbGljZShpUGVuZGluZ1NoYXJlcywgMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgICAuLi5zaGFyZWRDYXNlLFxuICAgICAgICAgIHBlbmRpbmdVbnNoYXJlczogbmV3UGVuZGluZ1Vuc2hhcmVzLFxuICAgICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgICAgfTtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChuZXdTaGFyZWRDYXNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2goc2hhcmVkQ2FzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5ld1NoYXJlZENhc2VzKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2FzZShjYXNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhc2VTdGF0ZS5sZW5ndGggPiAxKSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMuY2FzZVN0YXRlLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBpZiAodGhpcy5jYXNlU3RhdGVbaV0uY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICB0aGlzLmNhc2VTdGF0ZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgdGhpcy5zdWJqZWN0Lm5leHQodGhpcy5jYXNlU3RhdGUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1c2VySGFzQWNjZXNzKGM6IFNoYXJlZENhc2UsIHVzZXI6IFVzZXJEZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjLnNoYXJlZFdpdGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBjLnNoYXJlZFdpdGgubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYy5zaGFyZWRXaXRoW2ldLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -1,111 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { of } from 'rxjs';
3
- import { map, tap } from 'rxjs/operators';
4
- import { getAllCaseworkersFromServices, getSessionStorageKeyForServiceId, setCaseworkers } from '../../gov-ui/util/session-storage/session-storage-utils';
5
- import { PersonRole, RoleCategory } from '../../models';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common/http";
8
- import * as i2 from "../storage/session-storage/session-storage.service";
9
- export class FindAPersonService {
10
- static { this.caseworkersKey = 'caseworkers'; }
11
- constructor(http, sessionStorageService) {
12
- this.http = http;
13
- this.sessionStorageService = sessionStorageService;
14
- }
15
- find(searchOptions) {
16
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
17
- if (userInfoStr && !searchOptions.userIncluded) {
18
- const userInfo = JSON.parse(userInfoStr);
19
- this.userId = userInfo.id ? userInfo.id : userInfo.uid;
20
- }
21
- this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
22
- return this.http.post('/workallocation/findPerson', { searchOptions })
23
- .pipe(map(judiciary => judiciary.filter(judge => !([this.assignedUser, this.userId].includes(judge.id)))));
24
- }
25
- findCaseworkers(searchOptions) {
26
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
27
- if (userInfoStr) {
28
- const userInfo = JSON.parse(userInfoStr);
29
- this.userId = userInfo.id ? userInfo.id : userInfo.uid;
30
- }
31
- this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
32
- const fullServices = searchOptions.services;
33
- const storedServices = [];
34
- const newServices = [];
35
- const storedCaseworkersByService = [];
36
- fullServices.forEach(serviceId => {
37
- const serviceKey = getSessionStorageKeyForServiceId(serviceId);
38
- if (this.sessionStorageService.getItem(serviceKey)) {
39
- storedServices.push(serviceId);
40
- storedCaseworkersByService.push({ service: serviceId, caseworkers: JSON.parse(this.sessionStorageService.getItem(serviceKey)) });
41
- }
42
- else {
43
- newServices.push(serviceId);
44
- }
45
- });
46
- // if all services are stored then return the stored caseworkers by service
47
- if (storedServices.length === fullServices.length) {
48
- const storedCaseworkers = getAllCaseworkersFromServices(storedCaseworkersByService);
49
- return of(this.searchInCaseworkers(storedCaseworkers, searchOptions));
50
- }
51
- // all serviceIds passed in as node layer getting used anyway and caseworkers also stored there
52
- return this.http.post('/workallocation/retrieveCaseWorkersForServices', { fullServices }).pipe(tap(caseworkersByService => {
53
- caseworkersByService.forEach(caseworkerListByService => {
54
- // for any new service, ensure that they are then stored in the session
55
- if (newServices.includes(caseworkerListByService.service)) {
56
- setCaseworkers(caseworkerListByService.service, caseworkerListByService.caseworkers, this.sessionStorageService);
57
- }
58
- });
59
- }), map(caseworkersByService => {
60
- const givenCaseworkers = getAllCaseworkersFromServices(caseworkersByService);
61
- return this.searchInCaseworkers(givenCaseworkers, searchOptions);
62
- }));
63
- }
64
- mapCaseworkers(caseworkers, roleCategory) {
65
- const people = [];
66
- caseworkers.forEach((caseworker) => {
67
- const thisPerson = {
68
- email: caseworker.email,
69
- name: `${caseworker.firstName} ${caseworker.lastName}`,
70
- id: caseworker.idamId,
71
- domain: caseworker.roleCategory === RoleCategory.CASEWORKER ? PersonRole.CASEWORKER : PersonRole.ADMIN,
72
- // knownAs can be added if required
73
- };
74
- if (caseworker.roleCategory === roleCategory || roleCategory === RoleCategory.ALL) {
75
- people.push(thisPerson);
76
- }
77
- });
78
- return people;
79
- }
80
- searchInCaseworkers(caseworkers, searchOptions) {
81
- let roleCategory = RoleCategory.ALL;
82
- if (!(searchOptions.userRole === PersonRole.ALL)) {
83
- if (searchOptions.userRole === PersonRole.CASEWORKER) {
84
- roleCategory = RoleCategory.CASEWORKER;
85
- }
86
- else if (searchOptions.userRole === PersonRole.ADMIN) {
87
- roleCategory = RoleCategory.ADMIN;
88
- }
89
- else if (searchOptions.userRole === PersonRole.CTSC) {
90
- roleCategory = RoleCategory.CTSC;
91
- }
92
- }
93
- const searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';
94
- const people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];
95
- const finalPeopleList = people.filter(person => person && person.name && person.name.toLowerCase().includes(searchTerm));
96
- return searchOptions.userIncluded ? finalPeopleList.filter(person => person && person.id !== this.assignedUser)
97
- : finalPeopleList.filter(person => person && person.id !== this.userId && person.id !== this.assignedUser);
98
- }
99
- searchJudicial(value, serviceId) {
100
- return this.http.post('api/prd/judicial/getJudicialUsersSearch', { searchString: value, serviceCode: serviceId });
101
- }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindAPersonService, deps: [{ token: i1.HttpClient }, { token: i2.SessionStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
103
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindAPersonService, providedIn: 'root' }); }
104
- }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindAPersonService, decorators: [{
106
- type: Injectable,
107
- args: [{
108
- providedIn: 'root'
109
- }]
110
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.SessionStorageService }]; } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixnQ0FBZ0MsRUFDaEMsY0FBYyxFQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUtMLFVBQVUsRUFDVixZQUFZLEVBRWIsTUFBTSxjQUFjLENBQUM7Ozs7QUFNdEIsTUFBTSxPQUFPLGtCQUFrQjthQUVmLG1CQUFjLEdBQVcsYUFBYSxDQUFDO0lBSXJELFlBQTZCLElBQWdCLEVBQW1CLHFCQUE0QztRQUEvRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQW1CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFDNUcsQ0FBQztJQUVNLElBQUksQ0FBQyxhQUE0QjtRQUN0QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksV0FBVyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRTtZQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztTQUN4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QyxFQUFFLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWEsRUFBRSxTQUFpQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFzQix5Q0FBeUMsRUFDbEYsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBcEdVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMsXG4gIGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkLFxuICBzZXRDYXNld29ya2Vyc1xufSBmcm9tICcuLi8uLi9nb3YtdWkvdXRpbC9zZXNzaW9uLXN0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlLXV0aWxzJztcbmltcG9ydCB7XG4gIENhc2V3b3JrZXIsXG4gIENhc2V3b3JrZXJzQnlTZXJ2aWNlLFxuICBKdWRpY2lhbFVzZXJNb2RlbCxcbiAgUGVyc29uLFxuICBQZXJzb25Sb2xlLFxuICBSb2xlQ2F0ZWdvcnksXG4gIFNlYXJjaE9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmluZEFQZXJzb25TZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIGNhc2V3b3JrZXJzS2V5OiBzdHJpbmcgPSAnY2FzZXdvcmtlcnMnO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0ciAmJiAhc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFBlcnNvbltdPignL3dvcmthbGxvY2F0aW9uL2ZpbmRQZXJzb24nLCB7IHNlYXJjaE9wdGlvbnMgfSlcbiAgICAgIC5waXBlKG1hcChqdWRpY2lhcnkgPT4ganVkaWNpYXJ5LmZpbHRlcihqdWRnZSA9PiAhKFt0aGlzLmFzc2lnbmVkVXNlciwgdGhpcy51c2VySWRdLmluY2x1ZGVzKGp1ZGdlLmlkKSkpKSk7XG4gIH1cblxuICBwdWJsaWMgZmluZENhc2V3b3JrZXJzKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHRoaXMudXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgdGhpcy5hc3NpZ25lZFVzZXIgPSBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA/IHNlYXJjaE9wdGlvbnMuYXNzaWduZWRVc2VyIDogbnVsbDtcbiAgICBjb25zdCBmdWxsU2VydmljZXMgPSBzZWFyY2hPcHRpb25zLnNlcnZpY2VzO1xuICAgIGNvbnN0IHN0b3JlZFNlcnZpY2VzID0gW107XG4gICAgY29uc3QgbmV3U2VydmljZXM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc3RvcmVkQ2FzZXdvcmtlcnNCeVNlcnZpY2U6IENhc2V3b3JrZXJzQnlTZXJ2aWNlW10gPSBbXTtcbiAgICBmdWxsU2VydmljZXMuZm9yRWFjaChzZXJ2aWNlSWQgPT4ge1xuICAgICAgY29uc3Qgc2VydmljZUtleSA9IGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkKHNlcnZpY2VJZCk7XG4gICAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShzZXJ2aWNlS2V5KSkge1xuICAgICAgICBzdG9yZWRTZXJ2aWNlcy5wdXNoKHNlcnZpY2VJZCk7XG4gICAgICAgIHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlLnB1c2goeyBzZXJ2aWNlOiBzZXJ2aWNlSWQsIGNhc2V3b3JrZXJzOiBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oc2VydmljZUtleSkpIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2VydmljZXMucHVzaChzZXJ2aWNlSWQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vIGlmIGFsbCBzZXJ2aWNlcyBhcmUgc3RvcmVkIHRoZW4gcmV0dXJuIHRoZSBzdG9yZWQgY2FzZXdvcmtlcnMgYnkgc2VydmljZVxuICAgIGlmIChzdG9yZWRTZXJ2aWNlcy5sZW5ndGggPT09IGZ1bGxTZXJ2aWNlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN0b3JlZENhc2V3b3JrZXJzID0gZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMoc3RvcmVkQ2FzZXdvcmtlcnNCeVNlcnZpY2UpO1xuICAgICAgcmV0dXJuIG9mKHRoaXMuc2VhcmNoSW5DYXNld29ya2VycyhzdG9yZWRDYXNld29ya2Vycywgc2VhcmNoT3B0aW9ucykpO1xuICAgIH1cbiAgICAvLyBhbGwgc2VydmljZUlkcyBwYXNzZWQgaW4gYXMgbm9kZSBsYXllciBnZXR0aW5nIHVzZWQgYW55d2F5IGFuZCBjYXNld29ya2VycyBhbHNvIHN0b3JlZCB0aGVyZVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDYXNld29ya2Vyc0J5U2VydmljZVtdPignL3dvcmthbGxvY2F0aW9uL3JldHJpZXZlQ2FzZVdvcmtlcnNGb3JTZXJ2aWNlcycsIHsgZnVsbFNlcnZpY2VzIH0pLnBpcGUoXG4gICAgICB0YXAoY2FzZXdvcmtlcnNCeVNlcnZpY2UgPT4ge1xuICAgICAgICBjYXNld29ya2Vyc0J5U2VydmljZS5mb3JFYWNoKGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlID0+IHtcbiAgICAgICAgICAvLyBmb3IgYW55IG5ldyBzZXJ2aWNlLCBlbnN1cmUgdGhhdCB0aGV5IGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgc2Vzc2lvblxuICAgICAgICAgIGlmIChuZXdTZXJ2aWNlcy5pbmNsdWRlcyhjYXNld29ya2VyTGlzdEJ5U2VydmljZS5zZXJ2aWNlKSkge1xuICAgICAgICAgICAgc2V0Q2FzZXdvcmtlcnMoY2FzZXdvcmtlckxpc3RCeVNlcnZpY2Uuc2VydmljZSwgY2FzZXdvcmtlckxpc3RCeVNlcnZpY2UuY2FzZXdvcmtlcnMsIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoY2FzZXdvcmtlcnNCeVNlcnZpY2UgPT4ge1xuICAgICAgICBjb25zdCBnaXZlbkNhc2V3b3JrZXJzID0gZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMoY2FzZXdvcmtlcnNCeVNlcnZpY2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hJbkNhc2V3b3JrZXJzKGdpdmVuQ2FzZXdvcmtlcnMsIHNlYXJjaE9wdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1hcENhc2V3b3JrZXJzKGNhc2V3b3JrZXJzOiBDYXNld29ya2VyW10sIHJvbGVDYXRlZ29yeTogc3RyaW5nKTogUGVyc29uW10ge1xuICAgIGNvbnN0IHBlb3BsZTogUGVyc29uW10gPSBbXTtcbiAgICBjYXNld29ya2Vycy5mb3JFYWNoKChjYXNld29ya2VyKSA9PiB7XG4gICAgICBjb25zdCB0aGlzUGVyc29uOiBQZXJzb24gPSB7XG4gICAgICAgIGVtYWlsOiBjYXNld29ya2VyLmVtYWlsLFxuICAgICAgICBuYW1lOiBgJHtjYXNld29ya2VyLmZpcnN0TmFtZX0gJHtjYXNld29ya2VyLmxhc3ROYW1lfWAsXG4gICAgICAgIGlkOiBjYXNld29ya2VyLmlkYW1JZCxcbiAgICAgICAgZG9tYWluOiBjYXNld29ya2VyLnJvbGVDYXRlZ29yeSA9PT0gUm9sZUNhdGVnb3J5LkNBU0VXT1JLRVIgPyBQZXJzb25Sb2xlLkNBU0VXT1JLRVIgOiBQZXJzb25Sb2xlLkFETUlOLFxuICAgICAgICAvLyBrbm93bkFzIGNhbiBiZSBhZGRlZCBpZiByZXF1aXJlZFxuICAgICAgfTtcbiAgICAgIGlmIChjYXNld29ya2VyLnJvbGVDYXRlZ29yeSA9PT0gcm9sZUNhdGVnb3J5IHx8IHJvbGVDYXRlZ29yeSA9PT0gUm9sZUNhdGVnb3J5LkFMTCkge1xuICAgICAgICBwZW9wbGUucHVzaCh0aGlzUGVyc29uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcGVvcGxlO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEluQ2FzZXdvcmtlcnMoY2FzZXdvcmtlcnM6IENhc2V3b3JrZXJbXSwgc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IFBlcnNvbltdIHtcbiAgICBsZXQgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkFMTDtcbiAgICBpZiAoIShzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkFMTCkpIHtcbiAgICAgIGlmIChzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkNBU0VXT1JLRVIpIHtcbiAgICAgICAgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkNBU0VXT1JLRVI7XG4gICAgICB9IGVsc2UgaWYgKHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQURNSU4pIHtcbiAgICAgICAgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkFETUlOO1xuICAgICAgfSBlbHNlIGlmIChzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkNUU0MpIHtcbiAgICAgICAgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkNUU0M7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBzZWFyY2hPcHRpb25zICYmIHNlYXJjaE9wdGlvbnMuc2VhcmNoVGVybSA/IHNlYXJjaE9wdGlvbnMuc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpIDogJyc7XG4gICAgY29uc3QgcGVvcGxlID0gY2FzZXdvcmtlcnMgPyB0aGlzLm1hcENhc2V3b3JrZXJzKGNhc2V3b3JrZXJzLCByb2xlQ2F0ZWdvcnkpIDogW107XG4gICAgY29uc3QgZmluYWxQZW9wbGVMaXN0ID0gcGVvcGxlLmZpbHRlcihwZXJzb24gPT4gcGVyc29uICYmIHBlcnNvbi5uYW1lICYmIHBlcnNvbi5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpO1xuICAgIHJldHVybiBzZWFyY2hPcHRpb25zLnVzZXJJbmNsdWRlZCA/IGZpbmFsUGVvcGxlTGlzdC5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24uaWQgIT09IHRoaXMuYXNzaWduZWRVc2VyKVxuICAgICAgOiBmaW5hbFBlb3BsZUxpc3QuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLmlkICE9PSB0aGlzLnVzZXJJZCAmJiBwZXJzb24uaWQgIT09IHRoaXMuYXNzaWduZWRVc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hKdWRpY2lhbCh2YWx1ZTogc3RyaW5nLCBzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SnVkaWNpYWxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxKdWRpY2lhbFVzZXJNb2RlbFtdPignYXBpL3ByZC9qdWRpY2lhbC9nZXRKdWRpY2lhbFVzZXJzU2VhcmNoJyxcbiAgICAgIHsgc2VhcmNoU3RyaW5nOiB2YWx1ZSwgc2VydmljZUNvZGU6IHNlcnZpY2VJZCB9KTtcbiAgfVxufVxuXG4iXX0=
@@ -1,33 +0,0 @@
1
- import { HttpParams } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- export class RefDataDataAccessService {
6
- static { this.refDataUrl = '/api/ref-data'; }
7
- constructor(http) {
8
- this.http = http;
9
- }
10
- getServices() {
11
- return this.http.get(`${RefDataDataAccessService.refDataUrl}/services`);
12
- }
13
- getRegions() {
14
- return this.http.get(`${RefDataDataAccessService.refDataUrl}/regions`);
15
- }
16
- getLocationsByServiceCode(serviceCode) {
17
- const httpParams = new HttpParams()
18
- .append('service_code', serviceCode);
19
- return this.http.get(`${RefDataDataAccessService.refDataUrl}/locations-by-service-code`, { params: httpParams });
20
- }
21
- getLocations() {
22
- return this.http.get(`${RefDataDataAccessService.refDataUrl}/locations`);
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RefDataDataAccessService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RefDataDataAccessService, providedIn: 'root' }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RefDataDataAccessService, decorators: [{
28
- type: Injectable,
29
- args: [{
30
- providedIn: 'root'
31
- }]
32
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLWRhdGEtZGF0YS1hY2Nlc3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3JlZi1kYXRhL3JlZi1kYXRhLWRhdGEtYWNjZXNzL3JlZi1kYXRhLWRhdGEtYWNjZXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVkzQyxNQUFNLE9BQU8sd0JBQXdCO2FBQ3JCLGVBQVUsR0FBVyxlQUFlLENBQUM7SUFDbkQsWUFBb0MsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFHLENBQUM7SUFFakQsV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QixHQUFHLHdCQUF3QixDQUFDLFVBQVUsV0FBVyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFrQixHQUFHLHdCQUF3QixDQUFDLFVBQVUsVUFBVSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVNLHlCQUF5QixDQUFDLFdBQW1CO1FBQ2xELE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFO2FBQ2hDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBc0MsR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDeEosQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLFlBQVksQ0FBQyxDQUFDO0lBQzVGLENBQUM7OEdBckJVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZWZEYXRhSE1DVFNTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kZWxzL3JlZi1kYXRhLWh0bWNzLXNlcnZpY2UubW9kZWwnO1xuaW1wb3J0IHsgUmVmRGF0YVJlZ2lvbiB9IGZyb20gJy4uL21vZGVscy9yZWYtZGF0YS1yZWdpb24ubW9kZWwnO1xuaW1wb3J0IHtcbiAgTG9jYXRpb25Nb2RlbHNCeVNlcnZpY2VDb2RlUmVzcG9uc2Vcbn0gZnJvbSAnLi9tb2RlbHMvcmVmLWRhdGEtbG9jYXRpb25zLWJ5LXNlcnZpY2UtY29kZS1yZXNwb25zZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlZkRhdGFEYXRhQWNjZXNzU2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVmRGF0YVVybDogc3RyaW5nID0gJy9hcGkvcmVmLWRhdGEnO1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIHB1YmxpYyBnZXRTZXJ2aWNlcygpOiBPYnNlcnZhYmxlPFJlZkRhdGFITUNUU1NlcnZpY2VbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlZkRhdGFITUNUU1NlcnZpY2VbXT4oYCR7UmVmRGF0YURhdGFBY2Nlc3NTZXJ2aWNlLnJlZkRhdGFVcmx9L3NlcnZpY2VzYCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVnaW9ucygpOiBPYnNlcnZhYmxlPFJlZkRhdGFSZWdpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlZkRhdGFSZWdpb25bXT4oYCR7UmVmRGF0YURhdGFBY2Nlc3NTZXJ2aWNlLnJlZkRhdGFVcmx9L3JlZ2lvbnNgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMb2NhdGlvbnNCeVNlcnZpY2VDb2RlKHNlcnZpY2VDb2RlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgLmFwcGVuZCgnc2VydmljZV9jb2RlJywgc2VydmljZUNvZGUpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TG9jYXRpb25Nb2RlbHNCeVNlcnZpY2VDb2RlUmVzcG9uc2U+KGAke1JlZkRhdGFEYXRhQWNjZXNzU2VydmljZS5yZWZEYXRhVXJsfS9sb2NhdGlvbnMtYnktc2VydmljZS1jb2RlYCwgeyBwYXJhbXM6IGh0dHBQYXJhbXMgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TG9jYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PExvY2F0aW9uTW9kZWxbXT4oYCR7UmVmRGF0YURhdGFBY2Nlc3NTZXJ2aWNlLnJlZkRhdGFVcmx9L2xvY2F0aW9uc2ApO1xuICB9XG59XG4iXX0=
@@ -1,33 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { of } from 'rxjs';
3
- import { tap } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- import * as i2 from "../storage/session-storage/session-storage.service";
7
- export class TaskNameService {
8
- static { this.taskNamesKey = 'taskNames'; }
9
- constructor(http, sessionStorageService) {
10
- this.http = http;
11
- this.sessionStorageService = sessionStorageService;
12
- }
13
- /**
14
- * @return Observable<any[]>: Array of taskName in Observable
15
- */
16
- getTaskName(service) {
17
- const serviceTaskTypeKey = `${service}-${TaskNameService.taskNamesKey}`;
18
- if (this.sessionStorageService.getItem(serviceTaskTypeKey)) {
19
- const taskNames = JSON.parse(this.sessionStorageService.getItem(serviceTaskTypeKey));
20
- return of(taskNames);
21
- }
22
- return this.http.post(`/workallocation/taskNames`, { service }).pipe(tap(taskNames => this.sessionStorageService.setItem(serviceTaskTypeKey, JSON.stringify(taskNames))));
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TaskNameService, deps: [{ token: i1.HttpClient }, { token: i2.SessionStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TaskNameService, providedIn: 'root' }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TaskNameService, decorators: [{
28
- type: Injectable,
29
- args: [{
30
- providedIn: 'root'
31
- }]
32
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.SessionStorageService }]; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1uYW1lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90YXNrLW5hbWUvdGFzay1uYW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU9yQyxNQUFNLE9BQU8sZUFBZTthQUNaLGlCQUFZLEdBQVcsV0FBVyxDQUFDO0lBRWpELFlBQTZCLElBQWdCLEVBQW1CLHFCQUE0QztRQUEvRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQW1CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFDNUcsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQWU7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLE9BQU8sSUFBSSxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEUsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDMUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUNyRixPQUFPLEVBQUUsQ0FBQyxTQUE0QixDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFrQiwyQkFBMkIsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUNqRixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUNwRyxDQUFDO0lBQ0osQ0FBQzs4R0FsQlUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhc2tOYW1lTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFzay1uYW1lLm1vZGVsJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGFza05hbWVTZXJ2aWNlIHtcbiAgcHVibGljIHN0YXRpYyB0YXNrTmFtZXNLZXk6IHN0cmluZyA9ICd0YXNrTmFtZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSkge1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxhbnlbXT46IEFycmF5IG9mIHRhc2tOYW1lIGluIE9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyBnZXRUYXNrTmFtZShzZXJ2aWNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRhc2tOYW1lTW9kZWxbXT4ge1xuICAgIGNvbnN0IHNlcnZpY2VUYXNrVHlwZUtleSA9IGAke3NlcnZpY2V9LSR7VGFza05hbWVTZXJ2aWNlLnRhc2tOYW1lc0tleX1gO1xuICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKHNlcnZpY2VUYXNrVHlwZUtleSkpIHtcbiAgICAgIGNvbnN0IHRhc2tOYW1lcyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShzZXJ2aWNlVGFza1R5cGVLZXkpKTtcbiAgICAgIHJldHVybiBvZih0YXNrTmFtZXMgYXMgVGFza05hbWVNb2RlbFtdKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFRhc2tOYW1lTW9kZWxbXT4oYC93b3JrYWxsb2NhdGlvbi90YXNrTmFtZXNgLCB7c2VydmljZX0pLnBpcGUoXG4gICAgICB0YXAodGFza05hbWVzID0+IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oc2VydmljZVRhc2tUeXBlS2V5LCBKU09OLnN0cmluZ2lmeSh0YXNrTmFtZXMpKSlcbiAgICApO1xuICB9XG59XG4iXX0=