@hmcts/rpx-xui-common-lib 1.8.7-fix-wrong-services → 1.8.7-generic-filter-clear-errors-on-destroy

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 (325) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +4626 -7107
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +33 -35
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +2 -8
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +14 -112
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +2 -12
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +4 -65
  10. package/esm2015/lib/components/due-date/due-date.component.js +2 -97
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +7 -21
  12. package/esm2015/lib/components/find-location/find-location.component.js +46 -140
  13. package/esm2015/lib/components/find-person/find-person.component.js +14 -154
  14. package/esm2015/lib/components/find-service/find-service.component.js +97 -43
  15. package/esm2015/lib/components/find-task-name/find-task-name.component.js +97 -0
  16. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +11 -55
  17. package/esm2015/lib/components/generic-filter/generic-filter.component.js +286 -294
  18. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +3 -18
  19. package/esm2015/lib/components/index.js +2 -7
  20. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +2 -22
  21. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +2 -21
  22. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +3 -12
  23. package/esm2015/lib/components/pagination/pagination.component.js +2 -24
  24. package/esm2015/lib/components/public_api.js +37 -33
  25. package/esm2015/lib/components/search-judicials/search-judicials.component.js +11 -134
  26. package/esm2015/lib/components/search-location/search-location.component.js +64 -223
  27. package/esm2015/lib/components/search-service/search-service.component.js +28 -46
  28. package/esm2015/lib/components/search-venue/search-venue.component.js +11 -134
  29. package/esm2015/lib/components/selected-case/selected-case.component.js +20 -175
  30. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +3 -41
  31. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +4 -55
  32. package/esm2015/lib/components/service-message/service-message.component.js +2 -20
  33. package/esm2015/lib/components/service-messages/service-messages.component.js +7 -65
  34. package/esm2015/lib/components/share-case/share-case.component.js +23 -169
  35. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +4 -37
  36. package/esm2015/lib/components/tab/tab.component.js +2 -26
  37. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +2 -17
  38. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +2 -8
  39. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +2 -8
  40. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +2 -12
  41. package/esm2015/lib/components/user-details/user-details.component.js +2 -39
  42. package/esm2015/lib/components/user-list/user-list.component.js +2 -32
  43. package/esm2015/lib/components/user-select/user-select.component.js +5 -52
  44. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +3 -56
  45. package/esm2015/lib/directives/index.js +2 -7
  46. package/esm2015/lib/directives/let/let.directive.js +1 -39
  47. package/esm2015/lib/directives/public-api.js +3 -8
  48. package/esm2015/lib/exui-common-lib.module.js +11 -10
  49. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +2 -22
  50. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +44 -16
  51. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +4 -54
  52. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +2 -14
  53. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +2 -17
  54. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +2 -24
  55. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +2 -16
  56. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +4 -24
  57. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +4 -13
  58. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +6 -24
  59. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +2 -13
  60. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +3 -22
  61. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +2 -32
  62. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +2 -18
  63. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +2 -0
  64. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +13 -25
  65. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +2 -44
  66. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +2 -16
  67. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +3 -37
  68. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +2 -23
  69. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +2 -22
  70. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +3 -30
  71. package/esm2015/lib/gov-ui/components/index.js +2 -7
  72. package/esm2015/lib/gov-ui/components/public_api.js +22 -7
  73. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +1 -22
  74. package/esm2015/lib/gov-ui/gov-ui.service.js +2 -8
  75. package/esm2015/lib/gov-ui/index.js +2 -7
  76. package/esm2015/lib/gov-ui/models/checkboxes-model.js +2 -22
  77. package/esm2015/lib/gov-ui/models/error-messages-model.js +2 -16
  78. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +2 -36
  79. package/esm2015/lib/gov-ui/models/index.js +2 -7
  80. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +2 -24
  81. package/esm2015/lib/gov-ui/models/public_api.js +4 -10
  82. package/esm2015/lib/gov-ui/models/radio-buttons.model.js +2 -0
  83. package/esm2015/lib/gov-ui/public_api.js +5 -9
  84. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +4 -14
  85. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
  86. package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
  87. package/esm2015/lib/gov-ui/validators/date.validator.js +3 -20
  88. package/esm2015/lib/gov-ui/validators/index.js +2 -7
  89. package/esm2015/lib/gov-ui/validators/public_api.js +4 -9
  90. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +3 -15
  91. package/esm2015/lib/models/case-share.model.js +7 -33
  92. package/esm2015/lib/models/contact-details.model.js +7 -31
  93. package/esm2015/lib/models/due-date.model.js +7 -14
  94. package/esm2015/lib/models/feature-user.js +1 -16
  95. package/esm2015/lib/models/filter.model.js +1 -124
  96. package/esm2015/lib/models/idle-config.model.js +2 -20
  97. package/esm2015/lib/models/index.js +16 -20
  98. package/esm2015/lib/models/location.model.js +7 -129
  99. package/esm2015/lib/models/pagination.model.js +2 -18
  100. package/esm2015/lib/models/person.model.js +19 -96
  101. package/esm2015/lib/models/public_api.js +6 -11
  102. package/esm2015/lib/models/search-options.model.js +2 -22
  103. package/esm2015/lib/models/task-name.model.js +2 -0
  104. package/esm2015/lib/models/tcDocument.model.js +2 -18
  105. package/esm2015/lib/models/timeout-notification.model.js +2 -18
  106. package/esm2015/lib/models/user-details.model.js +2 -22
  107. package/esm2015/lib/models/user.model.js +2 -25
  108. package/esm2015/lib/pipes/capitalize/capitalize.pipe.js +11 -0
  109. package/esm2015/lib/pipes/index.js +2 -0
  110. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +11 -96
  111. package/esm2015/lib/services/cookie/cookie.service.js +8 -71
  112. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +4 -43
  113. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +2 -28
  114. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +12 -94
  115. package/esm2015/lib/services/filter/filter.service.js +14 -69
  116. package/esm2015/lib/services/find-person/find-person.service.js +17 -125
  117. package/esm2015/lib/services/google-analytics/google-analytics.service.js +8 -63
  118. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +10 -64
  119. package/esm2015/lib/services/index.js +2 -7
  120. package/esm2015/lib/services/loading/loading.service.js +2 -41
  121. package/esm2015/lib/services/locations/location.service.js +14 -32
  122. package/esm2015/lib/services/manage-session/manage-session.services.js +10 -63
  123. package/esm2015/lib/services/public-api.js +14 -18
  124. package/esm2015/lib/services/ref-data/index.js +4 -0
  125. package/esm2015/lib/services/ref-data/models/ref-data-htmcs-service.model.js +2 -0
  126. package/esm2015/lib/services/ref-data/models/ref-data-region.model.js +2 -0
  127. package/esm2015/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.js +2 -0
  128. package/esm2015/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.js +34 -0
  129. package/esm2015/lib/services/ref-data/ref-data.service.js +35 -0
  130. package/esm2015/lib/services/role-guard/role.guard.js +17 -55
  131. package/esm2015/lib/services/role-guard/role.service.js +7 -26
  132. package/esm2015/lib/services/storage/session-storage/session-storage.service.js +41 -0
  133. package/esm2015/lib/services/task-name/task-name.service.js +37 -0
  134. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +16 -78
  135. package/esm2015/lib/window.js +1 -10
  136. package/esm2015/public-api.js +9 -13
  137. package/fesm2015/hmcts-rpx-xui-common-lib.js +3941 -5799
  138. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  139. package/hmcts-rpx-xui-common-lib.d.ts +31 -28
  140. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  141. package/lib/components/checkbox-list/checkbox-list.component.d.ts +6 -5
  142. package/lib/components/due-date/due-date.component.d.ts +4 -4
  143. package/lib/components/find-location/find-location.component.d.ts +13 -8
  144. package/lib/components/find-person/find-person.component.d.ts +1 -1
  145. package/lib/components/find-service/find-service.component.d.ts +21 -9
  146. package/lib/components/find-task-name/find-task-name.component.d.ts +41 -0
  147. package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -5
  148. package/lib/components/generic-filter/generic-filter.component.d.ts +20 -6
  149. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  150. package/lib/components/invite-user-form/invite-user-form.component.d.ts +2 -2
  151. package/lib/components/public_api.d.ts +9 -0
  152. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  153. package/lib/components/search-location/search-location.component.d.ts +20 -20
  154. package/lib/components/search-service/search-service.component.d.ts +11 -9
  155. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  156. package/lib/components/user-list/user-list.component.d.ts +1 -1
  157. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  158. package/lib/directives/let/let.directive.d.ts +1 -1
  159. package/lib/exui-common-lib.module.d.ts +4 -3
  160. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +14 -5
  161. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +1 -2
  162. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +1 -0
  163. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +2 -2
  164. package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +7 -0
  165. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +4 -2
  166. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  167. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  168. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +3 -3
  169. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  170. package/lib/gov-ui/components/public_api.d.ts +20 -0
  171. package/lib/gov-ui/models/checkboxes-model.d.ts +4 -7
  172. package/lib/gov-ui/models/gov-ui-config-model.d.ts +2 -0
  173. package/lib/gov-ui/models/public_api.d.ts +0 -1
  174. package/lib/gov-ui/models/radio-buttons.model.d.ts +9 -0
  175. package/lib/gov-ui/public_api.d.ts +1 -0
  176. package/lib/models/filter.model.d.ts +38 -8
  177. package/lib/models/index.d.ts +1 -0
  178. package/lib/models/location.model.d.ts +8 -8
  179. package/lib/models/task-name.model.d.ts +4 -0
  180. package/lib/pipes/capitalize/capitalize.pipe.d.ts +4 -0
  181. package/lib/pipes/index.d.ts +1 -0
  182. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  183. package/lib/services/filter/filter.service.d.ts +1 -0
  184. package/lib/services/find-person/find-person.service.d.ts +1 -1
  185. package/lib/services/loading/loading.service.d.ts +2 -2
  186. package/lib/services/locations/location.service.d.ts +1 -1
  187. package/lib/services/public-api.d.ts +1 -0
  188. package/lib/services/ref-data/index.d.ts +3 -0
  189. package/lib/services/ref-data/models/ref-data-htmcs-service.model.d.ts +13 -0
  190. package/lib/services/ref-data/models/ref-data-region.model.d.ts +4 -0
  191. package/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.d.ts +8 -0
  192. package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +15 -0
  193. package/lib/services/ref-data/ref-data.service.d.ts +14 -0
  194. package/lib/services/role-guard/role.guard.d.ts +2 -1
  195. package/lib/services/role-guard/role.service.d.ts +4 -2
  196. package/lib/services/task-name/task-name.service.d.ts +14 -0
  197. package/lib/window.d.ts +2 -2
  198. package/package.json +6 -16
  199. package/public-api.d.ts +1 -0
  200. package/esm2015/lib/gov-ui/models/banner-data-model.js +0 -16
  201. package/esm2015/lib/services/session-storage/session-storage.service.js +0 -55
  202. package/esm5/hmcts-rpx-xui-common-lib.js +0 -75
  203. package/esm5/lib/components/accessibility/accessibility.component.js +0 -22
  204. package/esm5/lib/components/checkbox-list/checkbox-list.component.js +0 -391
  205. package/esm5/lib/components/contact-details/contact-details.component.js +0 -29
  206. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +0 -154
  207. package/esm5/lib/components/due-date/due-date.component.js +0 -254
  208. package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +0 -45
  209. package/esm5/lib/components/find-location/find-location.component.js +0 -293
  210. package/esm5/lib/components/find-person/find-person.component.js +0 -287
  211. package/esm5/lib/components/find-service/find-service.component.js +0 -64
  212. package/esm5/lib/components/generic-filter/generic-filter-utils.js +0 -66
  213. package/esm5/lib/components/generic-filter/generic-filter.component.js +0 -840
  214. package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +0 -47
  215. package/esm5/lib/components/index.js +0 -7
  216. package/esm5/lib/components/invite-user-form/invite-user-form.component.js +0 -54
  217. package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +0 -46
  218. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +0 -29
  219. package/esm5/lib/components/pagination/pagination.component.js +0 -58
  220. package/esm5/lib/components/public_api.js +0 -33
  221. package/esm5/lib/components/search-judicials/search-judicials.component.js +0 -291
  222. package/esm5/lib/components/search-location/search-location.component.js +0 -329
  223. package/esm5/lib/components/search-service/search-service.component.js +0 -68
  224. package/esm5/lib/components/search-venue/search-venue.component.js +0 -290
  225. package/esm5/lib/components/selected-case/selected-case.component.js +0 -424
  226. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +0 -84
  227. package/esm5/lib/components/selected-case-list/selected-case-list.component.js +0 -115
  228. package/esm5/lib/components/service-message/service-message.component.js +0 -46
  229. package/esm5/lib/components/service-messages/service-messages.component.js +0 -122
  230. package/esm5/lib/components/share-case/share-case.component.js +0 -435
  231. package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +0 -70
  232. package/esm5/lib/components/tab/tab.component.js +0 -51
  233. package/esm5/lib/components/tc-confirm/tc-confirm.component.js +0 -42
  234. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +0 -22
  235. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +0 -22
  236. package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +0 -29
  237. package/esm5/lib/components/user-details/user-details.component.js +0 -92
  238. package/esm5/lib/components/user-list/user-list.component.js +0 -76
  239. package/esm5/lib/components/user-select/user-select.component.js +0 -131
  240. package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +0 -104
  241. package/esm5/lib/directives/index.js +0 -7
  242. package/esm5/lib/directives/let/let.directive.js +0 -78
  243. package/esm5/lib/directives/public-api.js +0 -8
  244. package/esm5/lib/exui-common-lib.module.js +0 -167
  245. package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +0 -56
  246. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +0 -36
  247. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +0 -135
  248. package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +0 -37
  249. package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -49
  250. package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +0 -65
  251. package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +0 -40
  252. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +0 -66
  253. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +0 -34
  254. package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +0 -67
  255. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +0 -36
  256. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +0 -52
  257. package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +0 -77
  258. package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +0 -50
  259. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +0 -38
  260. package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +0 -108
  261. package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +0 -40
  262. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +0 -87
  263. package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +0 -51
  264. package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +0 -49
  265. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +0 -46
  266. package/esm5/lib/gov-ui/components/index.js +0 -7
  267. package/esm5/lib/gov-ui/components/public_api.js +0 -7
  268. package/esm5/lib/gov-ui/directives/remove-host.directive.js +0 -52
  269. package/esm5/lib/gov-ui/gov-ui.service.js +0 -22
  270. package/esm5/lib/gov-ui/index.js +0 -7
  271. package/esm5/lib/gov-ui/models/banner-data-model.js +0 -16
  272. package/esm5/lib/gov-ui/models/checkboxes-model.js +0 -22
  273. package/esm5/lib/gov-ui/models/error-messages-model.js +0 -16
  274. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +0 -36
  275. package/esm5/lib/gov-ui/models/index.js +0 -7
  276. package/esm5/lib/gov-ui/models/isession-storage.interface.js +0 -24
  277. package/esm5/lib/gov-ui/models/public_api.js +0 -13
  278. package/esm5/lib/gov-ui/public_api.js +0 -12
  279. package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +0 -57
  280. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +0 -58
  281. package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +0 -38
  282. package/esm5/lib/gov-ui/validators/date.validator.js +0 -32
  283. package/esm5/lib/gov-ui/validators/index.js +0 -7
  284. package/esm5/lib/gov-ui/validators/public_api.js +0 -12
  285. package/esm5/lib/gov-ui/validators/radio-group.validator.js +0 -27
  286. package/esm5/lib/models/case-share.model.js +0 -33
  287. package/esm5/lib/models/contact-details.model.js +0 -31
  288. package/esm5/lib/models/due-date.model.js +0 -15
  289. package/esm5/lib/models/feature-user.js +0 -28
  290. package/esm5/lib/models/filter.model.js +0 -130
  291. package/esm5/lib/models/idle-config.model.js +0 -20
  292. package/esm5/lib/models/index.js +0 -20
  293. package/esm5/lib/models/location.model.js +0 -129
  294. package/esm5/lib/models/pagination.model.js +0 -18
  295. package/esm5/lib/models/person.model.js +0 -96
  296. package/esm5/lib/models/public_api.js +0 -11
  297. package/esm5/lib/models/search-options.model.js +0 -22
  298. package/esm5/lib/models/tcDocument.model.js +0 -18
  299. package/esm5/lib/models/timeout-notification.model.js +0 -18
  300. package/esm5/lib/models/user-details.model.js +0 -22
  301. package/esm5/lib/models/user.model.js +0 -25
  302. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +0 -313
  303. package/esm5/lib/services/cookie/cookie.service.js +0 -136
  304. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +0 -89
  305. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +0 -90
  306. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +0 -187
  307. package/esm5/lib/services/filter/filter.service.js +0 -190
  308. package/esm5/lib/services/find-person/find-person.service.js +0 -246
  309. package/esm5/lib/services/google-analytics/google-analytics.service.js +0 -128
  310. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +0 -135
  311. package/esm5/lib/services/index.js +0 -7
  312. package/esm5/lib/services/loading/loading.service.js +0 -109
  313. package/esm5/lib/services/locations/location.service.js +0 -86
  314. package/esm5/lib/services/manage-session/manage-session.services.js +0 -111
  315. package/esm5/lib/services/public-api.js +0 -21
  316. package/esm5/lib/services/role-guard/role.guard.js +0 -81
  317. package/esm5/lib/services/role-guard/role.service.js +0 -45
  318. package/esm5/lib/services/session-storage/session-storage.service.js +0 -96
  319. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +0 -190
  320. package/esm5/lib/window.js +0 -13
  321. package/esm5/public-api.js +0 -16
  322. package/fesm5/hmcts-rpx-xui-common-lib.js +0 -8157
  323. package/fesm5/hmcts-rpx-xui-common-lib.js.map +0 -1
  324. package/lib/gov-ui/models/banner-data-model.d.ts +0 -4
  325. /package/lib/services/{session-storage → storage/session-storage}/session-storage.service.d.ts +0 -0
@@ -1,8 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/services/feature-toggle/launch-darkly.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { Injectable } from '@angular/core';
7
2
  import * as LDClient from 'launchdarkly-js-client-sdk';
8
3
  import { BehaviorSubject } from 'rxjs';
@@ -15,71 +10,30 @@ export class LaunchDarklyService {
15
10
  this.user = { anonymous: true };
16
11
  this.clientId = '';
17
12
  }
18
- /**
19
- * @param {?=} user
20
- * @param {?=} clientId
21
- * @return {?}
22
- */
23
13
  initialize(user = { anonymous: true }, clientId) {
24
14
  this.ready.next(false);
25
15
  this.user = user;
26
16
  this.clientId = clientId;
27
17
  this.client = LDClient.initialize(this.clientId, this.user, {});
28
- this.client.on('ready', (/**
29
- * @return {?}
30
- */
31
- () => {
32
- this.client.identify(this.user).then((/**
33
- * @return {?}
34
- */
35
- () => this.ready.next(true)));
36
- }));
18
+ this.client.on('ready', () => {
19
+ this.client.identify(this.user).then(() => this.ready.next(true));
20
+ });
37
21
  }
38
- /**
39
- * @param {?} feature
40
- * @return {?}
41
- */
42
22
  isEnabled(feature) {
43
23
  return this.getValue(feature, false);
44
24
  }
45
- /**
46
- * @template R
47
- * @param {?} feature
48
- * @return {?}
49
- */
50
25
  getArray(feature) {
51
26
  return this.getValue(feature, []);
52
27
  }
53
- /**
54
- * @template R
55
- * @param {?} feature
56
- * @param {?} defaultValue
57
- * @return {?}
58
- */
59
28
  getValue(feature, defaultValue) {
60
29
  if (!this.features.hasOwnProperty(feature)) {
61
30
  this.features[feature] = new BehaviorSubject(defaultValue);
62
- this.ready.pipe(filter((/**
63
- * @param {?} ready
64
- * @return {?}
65
- */
66
- ready => ready)), map((/**
67
- * @return {?}
68
- */
69
- () => this.client.variation(feature, defaultValue)))).subscribe((/**
70
- * @param {?} value
71
- * @return {?}
72
- */
73
- value => {
31
+ this.ready.pipe(filter(ready => ready), map(() => this.client.variation(feature, defaultValue))).subscribe(value => {
74
32
  this.features[feature].next(value);
75
- this.client.on(`change:${feature}`, (/**
76
- * @param {?} val
77
- * @return {?}
78
- */
79
- (val) => {
33
+ this.client.on(`change:${feature}`, (val) => {
80
34
  this.features[feature].next(val);
81
- }));
82
- }));
35
+ });
36
+ });
83
37
  }
84
38
  return this.features[feature].pipe(distinctUntilChanged());
85
39
  }
@@ -89,53 +43,17 @@ export class LaunchDarklyService {
89
43
  * only one value should be emitted, that value coming directly from LD. This will likely
90
44
  * only apply for Guards, and should be used only when absolutely necessary.
91
45
  * @see getValue for regular usage.
92
- * @template R
93
- * @param {?} feature string
94
- * @param {?} defaultValue R
95
- * @return {?}
46
+ * @param feature string
47
+ * @param defaultValue R
96
48
  */
97
49
  getValueOnce(feature, defaultValue) {
98
- return this.ready.pipe(filter((/**
99
- * @param {?} ready
100
- * @return {?}
101
- */
102
- ready => ready)), map((/**
103
- * @return {?}
104
- */
105
- () => this.client.variation(feature, defaultValue))));
50
+ return this.ready.pipe(filter(ready => ready), map(() => this.client.variation(feature, defaultValue)));
106
51
  }
107
52
  }
53
+ LaunchDarklyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LaunchDarklyService_Factory() { return new LaunchDarklyService(); }, token: LaunchDarklyService, providedIn: "root" });
108
54
  LaunchDarklyService.decorators = [
109
55
  { type: Injectable, args: [{
110
56
  providedIn: 'root'
111
57
  },] }
112
58
  ];
113
- /** @nocollapse */ LaunchDarklyService.ngInjectableDef = i0.defineInjectable({ factory: function LaunchDarklyService_Factory() { return new LaunchDarklyService(); }, token: LaunchDarklyService, providedIn: "root" });
114
- if (false) {
115
- /**
116
- * @type {?}
117
- * @private
118
- */
119
- LaunchDarklyService.prototype.client;
120
- /**
121
- * @type {?}
122
- * @private
123
- */
124
- LaunchDarklyService.prototype.ready;
125
- /**
126
- * @type {?}
127
- * @private
128
- */
129
- LaunchDarklyService.prototype.features;
130
- /**
131
- * @type {?}
132
- * @private
133
- */
134
- LaunchDarklyService.prototype.user;
135
- /**
136
- * @type {?}
137
- * @private
138
- */
139
- LaunchDarklyService.prototype.clientId;
140
- }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLWRhcmtseS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9mZWF0dXJlLXRvZ2dsZS9sYXVuY2gtZGFya2x5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU9uRSxNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBTXFCLFVBQUssR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdEUsYUFBUSxHQUF5QyxFQUFFLENBQUM7UUFDN0QsU0FBSSxHQUFnQixFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN4QyxhQUFRLEdBQVcsRUFBRSxDQUFDO0tBcURqQzs7Ozs7O0lBbkRVLFVBQVUsQ0FBQyxPQUFvQixFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxRQUFnQjtRQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU87OztRQUFFLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTs7O1lBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQztRQUN0RSxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7O0lBRU0sU0FBUyxDQUFDLE9BQWU7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFVLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs7Ozs7SUFFTSxRQUFRLENBQVUsT0FBZTtRQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQU0sT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7Ozs7SUFFTSxRQUFRLENBQUksT0FBZSxFQUFFLFlBQWU7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxlQUFlLENBQUksWUFBWSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ1gsTUFBTTs7OztZQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFDLEVBQ3RCLEdBQUc7OztZQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFBQyxDQUMxRCxDQUFDLFNBQVM7Ozs7WUFBQyxLQUFLLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsT0FBTyxFQUFFOzs7O2dCQUFFLENBQUMsR0FBTSxFQUFFLEVBQUU7b0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLEVBQUMsQ0FBQztZQUNQLENBQUMsRUFBQyxDQUFDO1NBQ047UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM5QixvQkFBb0IsRUFBRSxDQUN6QixDQUFDO0lBQ04sQ0FBQzs7Ozs7Ozs7Ozs7O0lBV00sWUFBWSxDQUFJLE9BQWUsRUFBRSxZQUFlO1FBQ25ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2xCLE1BQU07Ozs7UUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBQyxFQUN0QixHQUFHOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUMsQ0FDMUQsQ0FBQztJQUNOLENBQUM7OztZQTdESixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7Ozs7O0lBR0cscUNBQWtDOzs7OztJQUNsQyxvQ0FBdUY7Ozs7O0lBQ3ZGLHVDQUFxRTs7Ozs7SUFDckUsbUNBQWdEOzs7OztJQUNoRCx1Q0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBMRENsaWVudCBmcm9tICdsYXVuY2hkYXJrbHktanMtY2xpZW50LXNkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZlYXR1cmVVc2VyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZlYXR1cmUtdXNlcic7XG5pbXBvcnQgeyBGZWF0dXJlVG9nZ2xlU2VydmljZSB9IGZyb20gJy4vZmVhdHVyZS10b2dnbGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGF1bmNoRGFya2x5U2VydmljZSBpbXBsZW1lbnRzIEZlYXR1cmVUb2dnbGVTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgY2xpZW50OiBMRENsaWVudC5MRENsaWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlYWR5OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZlYXR1cmVzOiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvclN1YmplY3Q8YW55Pj4gPSB7fTtcbiAgICBwcml2YXRlIHVzZXI6IEZlYXR1cmVVc2VyID0geyBhbm9ueW1vdXM6IHRydWUgfTtcbiAgICBwcml2YXRlIGNsaWVudElkOiBzdHJpbmcgPSAnJztcblxuICAgIHB1YmxpYyBpbml0aWFsaXplKHVzZXI6IEZlYXR1cmVVc2VyID0geyBhbm9ueW1vdXM6IHRydWUgfSwgY2xpZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlYWR5Lm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgICAgICB0aGlzLmNsaWVudElkID0gY2xpZW50SWQ7XG4gICAgICAgIHRoaXMuY2xpZW50ID0gTERDbGllbnQuaW5pdGlhbGl6ZSh0aGlzLmNsaWVudElkLCB0aGlzLnVzZXIsIHt9KTtcbiAgICAgICAgdGhpcy5jbGllbnQub24oJ3JlYWR5JywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGllbnQuaWRlbnRpZnkodGhpcy51c2VyKS50aGVuKCgpID0+IHRoaXMucmVhZHkubmV4dCh0cnVlKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0VuYWJsZWQoZmVhdHVyZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlPGJvb2xlYW4+KGZlYXR1cmUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXJyYXk8UiA9IGFueT4oZmVhdHVyZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxSW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWU8UltdPihmZWF0dXJlLCBbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbHVlPFI+KGZlYXR1cmU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIGlmICghdGhpcy5mZWF0dXJlcy5oYXNPd25Qcm9wZXJ0eShmZWF0dXJlKSkge1xuICAgICAgICAgICAgdGhpcy5mZWF0dXJlc1tmZWF0dXJlXSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Uj4oZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucmVhZHkucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIocmVhZHkgPT4gcmVhZHkpLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmNsaWVudC52YXJpYXRpb24oZmVhdHVyZSwgZGVmYXVsdFZhbHVlKSlcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZlYXR1cmVzW2ZlYXR1cmVdLm5leHQodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xpZW50Lm9uKGBjaGFuZ2U6JHtmZWF0dXJlfWAsICh2YWw6IFIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlc1tmZWF0dXJlXS5uZXh0KHZhbCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5mZWF0dXJlc1tmZWF0dXJlXS5waXBlKFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IHdpbGwgb25seSBnZXQgdGhlIHN0YXRlIG9mIHRoZSBmZWF0dXJlIHRvZ2dsZVxuICAgICAqIG9uY2UuIEl0IGNhbGxzIHRoZSBMRCBTREsgZGlyZWN0bHksIGFuZCBzaG91bGQgb25seSBiZSB1c2VkIGluIGNpcmN1bXN0YW5jZXMgd2hlcmVcbiAgICAgKiBvbmx5IG9uZSB2YWx1ZSBzaG91bGQgYmUgZW1pdHRlZCwgdGhhdCB2YWx1ZSBjb21pbmcgZGlyZWN0bHkgZnJvbSBMRC4gVGhpcyB3aWxsIGxpa2VseVxuICAgICAqIG9ubHkgYXBwbHkgZm9yIEd1YXJkcywgYW5kIHNob3VsZCBiZSB1c2VkIG9ubHkgd2hlbiBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS5cbiAgICAgKiBAc2VlIGdldFZhbHVlIGZvciByZWd1bGFyIHVzYWdlLlxuICAgICAqIEBwYXJhbSBmZWF0dXJlIHN0cmluZ1xuICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgUlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRWYWx1ZU9uY2U8Uj4oZmVhdHVyZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFIpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZHkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihyZWFkeSA9PiByZWFkeSksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5jbGllbnQudmFyaWF0aW9uKGZlYXR1cmUsIGRlZmF1bHRWYWx1ZSkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLWRhcmtseS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvZmVhdHVyZS10b2dnbGUvbGF1bmNoLWRhcmtseS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBT25FLE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFNcUIsVUFBSyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN0RSxhQUFRLEdBQXlDLEVBQUUsQ0FBQztRQUM3RCxTQUFJLEdBQWdCLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3hDLGFBQVEsR0FBVyxFQUFFLENBQUM7S0FxRGpDO0lBbkRVLFVBQVUsQ0FBQyxPQUFvQixFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxRQUFnQjtRQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFlO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLFFBQVEsQ0FBVSxPQUFlO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBTSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFFBQVEsQ0FBSSxPQUFlLEVBQUUsWUFBZTtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBSSxZQUFZLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDWCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUMxRCxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlCLG9CQUFvQixFQUFFLENBQ3pCLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxZQUFZLENBQUksT0FBZSxFQUFFLFlBQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQ3RCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FDMUQsQ0FBQztJQUNOLENBQUM7Ozs7WUE3REosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgTERDbGllbnQgZnJvbSAnbGF1bmNoZGFya2x5LWpzLWNsaWVudC1zZGsnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGZWF0dXJlVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy9mZWF0dXJlLXVzZXInO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExhdW5jaERhcmtseVNlcnZpY2UgaW1wbGVtZW50cyBGZWF0dXJlVG9nZ2xlU2VydmljZSB7XG5cbiAgICBwcml2YXRlIGNsaWVudDogTERDbGllbnQuTERDbGllbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWFkeTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlczogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JTdWJqZWN0PGFueT4+ID0ge307XG4gICAgcHJpdmF0ZSB1c2VyOiBGZWF0dXJlVXNlciA9IHsgYW5vbnltb3VzOiB0cnVlIH07XG4gICAgcHJpdmF0ZSBjbGllbnRJZDogc3RyaW5nID0gJyc7XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZSh1c2VyOiBGZWF0dXJlVXNlciA9IHsgYW5vbnltb3VzOiB0cnVlIH0sIGNsaWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAgICAgdGhpcy5jbGllbnRJZCA9IGNsaWVudElkO1xuICAgICAgICB0aGlzLmNsaWVudCA9IExEQ2xpZW50LmluaXRpYWxpemUodGhpcy5jbGllbnRJZCwgdGhpcy51c2VyLCB7fSk7XG4gICAgICAgIHRoaXMuY2xpZW50Lm9uKCdyZWFkeScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xpZW50LmlkZW50aWZ5KHRoaXMudXNlcikudGhlbigoKSA9PiB0aGlzLnJlYWR5Lm5leHQodHJ1ZSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFbmFibGVkKGZlYXR1cmU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZTxib29sZWFuPihmZWF0dXJlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFycmF5PFIgPSBhbnk+KGZlYXR1cmU6IHN0cmluZyk6IE9ic2VydmFibGU8UltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlPFJbXT4oZmVhdHVyZSwgW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZTxSPihmZWF0dXJlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogUik6IE9ic2VydmFibGU8Uj4ge1xuICAgICAgICBpZiAoIXRoaXMuZmVhdHVyZXMuaGFzT3duUHJvcGVydHkoZmVhdHVyZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFI+KGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnJlYWR5LnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKHJlYWR5ID0+IHJlYWR5KSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5jbGllbnQudmFyaWF0aW9uKGZlYXR1cmUsIGRlZmF1bHRWYWx1ZSkpXG4gICAgICAgICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlc1tmZWF0dXJlXS5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsaWVudC5vbihgY2hhbmdlOiR7ZmVhdHVyZX1gLCAodmFsOiBSKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0ubmV4dCh2YWwpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0ucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIG9ubHkgZ2V0IHRoZSBzdGF0ZSBvZiB0aGUgZmVhdHVyZSB0b2dnbGVcbiAgICAgKiBvbmNlLiBJdCBjYWxscyB0aGUgTEQgU0RLIGRpcmVjdGx5LCBhbmQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiBjaXJjdW1zdGFuY2VzIHdoZXJlXG4gICAgICogb25seSBvbmUgdmFsdWUgc2hvdWxkIGJlIGVtaXR0ZWQsIHRoYXQgdmFsdWUgY29taW5nIGRpcmVjdGx5IGZyb20gTEQuIFRoaXMgd2lsbCBsaWtlbHlcbiAgICAgKiBvbmx5IGFwcGx5IGZvciBHdWFyZHMsIGFuZCBzaG91bGQgYmUgdXNlZCBvbmx5IHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnkuXG4gICAgICogQHNlZSBnZXRWYWx1ZSBmb3IgcmVndWxhciB1c2FnZS5cbiAgICAgKiBAcGFyYW0gZmVhdHVyZSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIFJcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmFsdWVPbmNlPFI+KGZlYXR1cmU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWR5LnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIocmVhZHkgPT4gcmVhZHkpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuY2xpZW50LnZhcmlhdGlvbihmZWF0dXJlLCBkZWZhdWx0VmFsdWUpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,8 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/services/filter/filter.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { Injectable } from '@angular/core';
7
2
  import { BehaviorSubject } from 'rxjs';
8
3
  import * as i0 from "@angular/core";
@@ -13,11 +8,6 @@ export class FilterService {
13
8
  this.filterSettings = {};
14
9
  this.streams = {};
15
10
  }
16
- /**
17
- * @param {?} setting
18
- * @param {?} persistence
19
- * @return {?}
20
- */
21
11
  persist(setting, persistence) {
22
12
  switch (persistence) {
23
13
  case 'local':
@@ -32,16 +22,12 @@ export class FilterService {
32
22
  this.persistMemory(setting);
33
23
  this.updateStreams(setting);
34
24
  }
35
- /**
36
- * @param {?} id
37
- * @return {?}
38
- */
39
25
  get(id) {
40
26
  if (this.filterSettings[id]) {
41
27
  return this.filterSettings[id];
42
28
  }
43
29
  if (sessionStorage.getItem(id)) {
44
- return JSON.parse(window.sessionStorage.getItem(id));
30
+ return JSON.parse(sessionStorage.getItem(id));
45
31
  }
46
32
  if (localStorage.getItem(id)) {
47
33
  if (this.isSameUser(id)) {
@@ -53,96 +39,55 @@ export class FilterService {
53
39
  }
54
40
  return null;
55
41
  }
56
- /**
57
- * @param {?} id
58
- * @return {?}
59
- */
60
42
  isSameUser(id) {
61
- /** @type {?} */
62
43
  const filterSetting = JSON.parse(window.localStorage.getItem(id));
63
44
  return !!filterSetting.idamId && filterSetting.idamId === this.getUserId();
64
45
  }
65
- /**
66
- * @param {?} id
67
- * @return {?}
68
- */
69
46
  getStream(id) {
70
47
  if (!this.streams[id]) {
71
48
  this.streams[id] = new BehaviorSubject(this.get(id));
72
49
  }
73
50
  return this.streams[id].asObservable();
74
51
  }
75
- /**
76
- * @private
77
- * @param {?} setting
78
- * @return {?}
79
- */
52
+ clearSessionAndLocalPersistance(id) {
53
+ sessionStorage.removeItem(id);
54
+ localStorage.removeItem(id);
55
+ if (this.filterSettings[id] !== undefined) {
56
+ this.filterSettings[id] = null;
57
+ }
58
+ if (this.streams[id] !== undefined) {
59
+ this.streams[id].next(null);
60
+ }
61
+ }
80
62
  persistLocal(setting) {
81
63
  setting.idamId = this.getUserId();
82
64
  window.localStorage.setItem(setting.id, JSON.stringify(setting));
83
65
  }
84
- /**
85
- * @private
86
- * @param {?} setting
87
- * @return {?}
88
- */
89
66
  persistSession(setting) {
90
- window.sessionStorage.setItem(setting.id, JSON.stringify(setting));
67
+ sessionStorage.setItem(setting.id, JSON.stringify(setting));
91
68
  }
92
- /**
93
- * @private
94
- * @param {?} setting
95
- * @return {?}
96
- */
97
69
  persistMemory(setting) {
98
70
  this.filterSettings[setting.id] = setting;
99
71
  }
100
- /**
101
- * @private
102
- * @param {?} setting
103
- * @return {?}
104
- */
105
72
  updateStreams(setting) {
106
73
  if (this.streams[setting.id]) {
107
74
  this.streams[setting.id].next(setting);
108
75
  }
109
76
  }
110
- /**
111
- * @return {?}
112
- */
113
77
  getUserId() {
114
- /** @type {?} */
115
78
  const userInfoStr = window.sessionStorage.getItem('userDetails');
116
- /** @type {?} */
117
79
  let userId;
118
80
  if (userInfoStr) {
119
- /** @type {?} */
120
81
  const userInfo = JSON.parse(userInfoStr);
121
82
  userId = userInfo.id ? userInfo.id : userInfo.uid;
122
83
  }
123
84
  return userId;
124
85
  }
125
86
  }
87
+ FilterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FilterService_Factory() { return new FilterService(); }, token: FilterService, providedIn: "root" });
126
88
  FilterService.decorators = [
127
89
  { type: Injectable, args: [{
128
90
  providedIn: 'root'
129
91
  },] }
130
92
  ];
131
- /** @nocollapse */ FilterService.ngInjectableDef = i0.defineInjectable({ factory: function FilterService_Factory() { return new FilterService(); }, token: FilterService, providedIn: "root" });
132
- if (false) {
133
- /** @type {?} */
134
- FilterService.prototype.givenErrors;
135
- /** @type {?} */
136
- FilterService.prototype.isInitialSetting;
137
- /**
138
- * @type {?}
139
- * @private
140
- */
141
- FilterService.prototype.filterSettings;
142
- /**
143
- * @type {?}
144
- * @private
145
- */
146
- FilterService.prototype.streams;
147
- }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2ZpbHRlci9maWx0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLGFBQWE7SUFIMUI7UUFLUyxnQkFBVyxHQUFtQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RSxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDeEIsbUJBQWMsR0FBb0MsRUFBRSxDQUFDO1FBQ3JELFlBQU8sR0FBcUQsRUFBRSxDQUFDO0tBMEVqRjs7Ozs7O0lBeEVRLE9BQU8sQ0FBQyxPQUFzQixFQUFFLFdBQThCO1FBQ25FLFFBQVEsV0FBVyxFQUFFO1lBQ25CLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDUjtnQkFDRSxNQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7Ozs7SUFFTSxHQUFHLENBQUMsRUFBVTtRQUNuQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzlCLE9BQU8s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bSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlckVycm9yLCBGaWx0ZXJQZXJzaXN0ZW5jZSwgRmlsdGVyU2V0dGluZyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclNlcnZpY2Uge1xuXG4gIHB1YmxpYyBnaXZlbkVycm9yczogQmVoYXZpb3JTdWJqZWN0PEZpbHRlckVycm9yW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcHVibGljIGlzSW5pdGlhbFNldHRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTZXR0aW5nczogeyBbaWQ6IHN0cmluZ106IEZpbHRlclNldHRpbmcgfSA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IHN0cmVhbXM6IHsgW2lkOiBzdHJpbmddOiBCZWhhdmlvclN1YmplY3Q8RmlsdGVyU2V0dGluZz4gfSA9IHt9O1xuXG4gIHB1YmxpYyBwZXJzaXN0KHNldHRpbmc6IEZpbHRlclNldHRpbmcsIHBlcnNpc3RlbmNlOiBGaWx0ZXJQZXJzaXN0ZW5jZSk6IHZvaWQge1xuICAgIHN3aXRjaCAocGVyc2lzdGVuY2UpIHtcbiAgICAgIGNhc2UgJ2xvY2FsJzpcbiAgICAgICAgdGhpcy5wZXJzaXN0TG9jYWwoc2V0dGluZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2Vzc2lvbic6XG4gICAgICAgIHRoaXMucGVyc2lzdFNlc3Npb24oc2V0dGluZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMucGVyc2lzdE1lbW9yeShzZXR0aW5nKTtcbiAgICB0aGlzLnVwZGF0ZVN0cmVhbXMoc2V0dGluZyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0KGlkOiBzdHJpbmcpOiBGaWx0ZXJTZXR0aW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZmlsdGVyU2V0dGluZ3NbaWRdKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJTZXR0aW5nc1tpZF07XG4gICAgfVxuICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGlkKSkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2Uod2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oaWQpKTtcbiAgICB9XG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGlkKSkge1xuICAgICAgaWYgKHRoaXMuaXNTYW1lVXNlcihpZCkpIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2Uod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGlkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgaXNTYW1lVXNlcihpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmlsdGVyU2V0dGluZzogRmlsdGVyU2V0dGluZyA9IEpTT04ucGFyc2Uod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGlkKSk7XG4gICAgcmV0dXJuICEhZmlsdGVyU2V0dGluZy5pZGFtSWQgJiYgZmlsdGVyU2V0dGluZy5pZGFtSWQgPT09IHRoaXMuZ2V0VXNlcklkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RyZWFtKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZpbHRlclNldHRpbmc+IHtcbiAgICBpZiAoIXRoaXMuc3RyZWFtc1tpZF0pIHtcbiAgICAgIHRoaXMuc3RyZWFtc1tpZF0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlclNldHRpbmc+KHRoaXMuZ2V0KGlkKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0cmVhbXNbaWRdLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBwZXJzaXN0TG9jYWwoc2V0dGluZzogRmlsdGVyU2V0dGluZyk6IHZvaWQge1xuICAgIHNldHRpbmcuaWRhbUlkID0gdGhpcy5nZXRVc2VySWQoKTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oc2V0dGluZy5pZCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZykpO1xuICB9XG5cbiAgcHJpdmF0ZSBwZXJzaXN0U2Vzc2lvbihzZXR0aW5nOiBGaWx0ZXJTZXR0aW5nKTogdm9pZCB7XG4gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc2V0dGluZy5pZCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZykpO1xuICB9XG5cbiAgcHJpdmF0ZSBwZXJzaXN0TWVtb3J5KHNldHRpbmc6IEZpbHRlclNldHRpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlclNldHRpbmdzW3NldHRpbmcuaWRdID0gc2V0dGluZztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RyZWFtcyhzZXR0aW5nOiBGaWx0ZXJTZXR0aW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RyZWFtc1tzZXR0aW5nLmlkXSkge1xuICAgICAgdGhpcy5zdHJlYW1zW3NldHRpbmcuaWRdLm5leHQoc2V0dGluZyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFVzZXJJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgbGV0IHVzZXJJZDogc3RyaW5nO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHJldHVybiB1c2VySWQ7XG4gIH1cbn1cbiJdfQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9maWx0ZXIvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQU1uRCxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlTLGdCQUFXLEdBQW1DLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hFLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFvQyxFQUFFLENBQUM7UUFDckQsWUFBTyxHQUFxRCxFQUFFLENBQUM7S0FxRmpGO0lBbkZRLE9BQU8sQ0FBQyxPQUFzQixFQUFFLFdBQThCO1FBQ25FLFFBQVEsV0FBVyxFQUFFO1lBQ25CLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDUjtnQkFDRSxNQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxFQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDOUIsT0FB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Q2YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztTQUNuRDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Ozs7WUEzRkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWx0ZXJFcnJvciwgRmlsdGVyUGVyc2lzdGVuY2UsIEZpbHRlclNldHRpbmcgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZXJ2aWNlIHtcbiAgcHVibGljIGdpdmVuRXJyb3JzOiBCZWhhdmlvclN1YmplY3Q8RmlsdGVyRXJyb3JbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwdWJsaWMgaXNJbml0aWFsU2V0dGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlclNldHRpbmdzOiB7IFtpZDogc3RyaW5nXTogRmlsdGVyU2V0dGluZyB9ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtczogeyBbaWQ6IHN0cmluZ106IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJTZXR0aW5nPiB9ID0ge307XG5cbiAgcHVibGljIHBlcnNpc3Qoc2V0dGluZzogRmlsdGVyU2V0dGluZywgcGVyc2lzdGVuY2U6IEZpbHRlclBlcnNpc3RlbmNlKTogdm9pZCB7XG4gICAgc3dpdGNoIChwZXJzaXN0ZW5jZSkge1xuICAgICAgY2FzZSAnbG9jYWwnOlxuICAgICAgICB0aGlzLnBlcnNpc3RMb2NhbChzZXR0aW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZXNzaW9uJzpcbiAgICAgICAgdGhpcy5wZXJzaXN0U2Vzc2lvbihzZXR0aW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5wZXJzaXN0TWVtb3J5KHNldHRpbmcpO1xuICAgIHRoaXMudXBkYXRlU3RyZWFtcyhzZXR0aW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoaWQ6IHN0cmluZyk6IEZpbHRlclNldHRpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5maWx0ZXJTZXR0aW5nc1tpZF0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlclNldHRpbmdzW2lkXTtcbiAgICB9XG4gICAgaWYgKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oaWQpKSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGlkKSk7XG4gICAgfVxuICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShpZCkpIHtcbiAgICAgIGlmICh0aGlzLmlzU2FtZVVzZXIoaWQpKSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShpZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGlzU2FtZVVzZXIoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZpbHRlclNldHRpbmc6IEZpbHRlclNldHRpbmcgPSBKU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShpZCkpO1xuICAgIHJldHVybiAhIWZpbHRlclNldHRpbmcuaWRhbUlkICYmIGZpbHRlclNldHRpbmcuaWRhbUlkID09PSB0aGlzLmdldFVzZXJJZCgpO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmVhbShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxGaWx0ZXJTZXR0aW5nPiB7XG4gICAgaWYgKCF0aGlzLnN0cmVhbXNbaWRdKSB7XG4gICAgICB0aGlzLnN0cmVhbXNbaWRdID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJTZXR0aW5nPih0aGlzLmdldChpZCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdHJlYW1zW2lkXS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlc3Npb25BbmRMb2NhbFBlcnNpc3RhbmNlKGlkOiBzdHJpbmcpIHtcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGlkKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShpZCk7XG4gICAgaWYgKHRoaXMuZmlsdGVyU2V0dGluZ3NbaWRdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyU2V0dGluZ3NbaWRdID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RyZWFtc1tpZF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdHJlYW1zW2lkXS5uZXh0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGVyc2lzdExvY2FsKHNldHRpbmc6IEZpbHRlclNldHRpbmcpOiB2b2lkIHtcbiAgICBzZXR0aW5nLmlkYW1JZCA9IHRoaXMuZ2V0VXNlcklkKCk7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHNldHRpbmcuaWQsIEpTT04uc3RyaW5naWZ5KHNldHRpbmcpKTtcbiAgfVxuXG4gIHByaXZhdGUgcGVyc2lzdFNlc3Npb24oc2V0dGluZzogRmlsdGVyU2V0dGluZyk6IHZvaWQge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc2V0dGluZy5pZCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZykpO1xuICB9XG5cbiAgcHJpdmF0ZSBwZXJzaXN0TWVtb3J5KHNldHRpbmc6IEZpbHRlclNldHRpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlclNldHRpbmdzW3NldHRpbmcuaWRdID0gc2V0dGluZztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RyZWFtcyhzZXR0aW5nOiBGaWx0ZXJTZXR0aW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RyZWFtc1tzZXR0aW5nLmlkXSkge1xuICAgICAgdGhpcy5zdHJlYW1zW3NldHRpbmcuaWRdLm5leHQoc2V0dGluZyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFVzZXJJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgbGV0IHVzZXJJZDogc3RyaW5nO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHJldHVybiB1c2VySWQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,78 +1,40 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/services/find-person/find-person.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { HttpClient } from '@angular/common/http';
7
2
  import { Injectable } from '@angular/core';
8
3
  import { of } from 'rxjs';
9
4
  import { map, tap } from 'rxjs/operators';
10
5
  import { getAllCaseworkersFromServices, getSessionStorageKeyForServiceId, setCaseworkers } from '../../gov-ui/util/session-storage/session-storage-utils';
11
6
  import { PersonRole, RoleCategory } from '../../models';
12
- import { SessionStorageService } from '../session-storage/session-storage.service';
7
+ import { SessionStorageService } from '../storage/session-storage/session-storage.service';
13
8
  import * as i0 from "@angular/core";
14
9
  import * as i1 from "@angular/common/http";
15
- import * as i2 from "../session-storage/session-storage.service";
10
+ import * as i2 from "../storage/session-storage/session-storage.service";
16
11
  export class FindAPersonService {
17
- /**
18
- * @param {?} http
19
- * @param {?} sessionStorageService
20
- */
21
12
  constructor(http, sessionStorageService) {
22
13
  this.http = http;
23
14
  this.sessionStorageService = sessionStorageService;
24
15
  }
25
- /**
26
- * @param {?} searchOptions
27
- * @return {?}
28
- */
29
16
  find(searchOptions) {
30
- /** @type {?} */
31
17
  const userInfoStr = this.sessionStorageService.getItem('userDetails');
32
18
  if (userInfoStr && !searchOptions.userIncluded) {
33
- /** @type {?} */
34
19
  const userInfo = JSON.parse(userInfoStr);
35
20
  this.userId = userInfo.id ? userInfo.id : userInfo.uid;
36
21
  }
37
22
  this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
38
23
  return this.http.post('/workallocation/findPerson', { searchOptions })
39
- .pipe(map((/**
40
- * @param {?} judiciary
41
- * @return {?}
42
- */
43
- judiciary => judiciary.filter((/**
44
- * @param {?} judge
45
- * @return {?}
46
- */
47
- judge => !([this.assignedUser, this.userId].includes(judge.id)))))));
24
+ .pipe(map(judiciary => judiciary.filter(judge => !([this.assignedUser, this.userId].includes(judge.id)))));
48
25
  }
49
- /**
50
- * @param {?} searchOptions
51
- * @return {?}
52
- */
53
26
  findCaseworkers(searchOptions) {
54
- /** @type {?} */
55
27
  const userInfoStr = this.sessionStorageService.getItem('userDetails');
56
28
  if (userInfoStr) {
57
- /** @type {?} */
58
29
  const userInfo = JSON.parse(userInfoStr);
59
30
  this.userId = userInfo.id ? userInfo.id : userInfo.uid;
60
31
  }
61
32
  this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
62
- /** @type {?} */
63
33
  const fullServices = searchOptions.services;
64
- /** @type {?} */
65
34
  const storedServices = [];
66
- /** @type {?} */
67
35
  const newServices = [];
68
- /** @type {?} */
69
36
  const storedCaseworkersByService = [];
70
- fullServices.forEach((/**
71
- * @param {?} serviceId
72
- * @return {?}
73
- */
74
- serviceId => {
75
- /** @type {?} */
37
+ fullServices.forEach(serviceId => {
76
38
  const serviceKey = getSessionStorageKeyForServiceId(serviceId);
77
39
  if (this.sessionStorageService.getItem(serviceKey)) {
78
40
  storedServices.push(serviceId);
@@ -81,53 +43,28 @@ export class FindAPersonService {
81
43
  else {
82
44
  newServices.push(serviceId);
83
45
  }
84
- }));
46
+ });
85
47
  // if all services are stored then return the stored caseworkers by service
86
48
  if (storedServices.length === fullServices.length) {
87
- /** @type {?} */
88
49
  const storedCaseworkers = getAllCaseworkersFromServices(storedCaseworkersByService);
89
50
  return of(this.searchInCaseworkers(storedCaseworkers, searchOptions));
90
51
  }
91
52
  // all serviceIds passed in as node layer getting used anyway and caseworkers also stored there
92
- return this.http.post('/workallocation/retrieveCaseWorkersForServices', { fullServices }).pipe(tap((/**
93
- * @param {?} caseworkersByService
94
- * @return {?}
95
- */
96
- caseworkersByService => {
97
- caseworkersByService.forEach((/**
98
- * @param {?} caseworkerListByService
99
- * @return {?}
100
- */
101
- caseworkerListByService => {
53
+ return this.http.post('/workallocation/retrieveCaseWorkersForServices', { fullServices }).pipe(tap(caseworkersByService => {
54
+ caseworkersByService.forEach(caseworkerListByService => {
102
55
  // for any new service, ensure that they are then stored in the session
103
56
  if (newServices.includes(caseworkerListByService.service)) {
104
57
  setCaseworkers(caseworkerListByService.service, caseworkerListByService.caseworkers, this.sessionStorageService);
105
58
  }
106
- }));
107
- })), map((/**
108
- * @param {?} caseworkersByService
109
- * @return {?}
110
- */
111
- caseworkersByService => {
112
- /** @type {?} */
59
+ });
60
+ }), map(caseworkersByService => {
113
61
  const givenCaseworkers = getAllCaseworkersFromServices(caseworkersByService);
114
62
  return this.searchInCaseworkers(givenCaseworkers, searchOptions);
115
- })));
63
+ }));
116
64
  }
117
- /**
118
- * @param {?} caseworkers
119
- * @param {?} roleCategory
120
- * @return {?}
121
- */
122
65
  mapCaseworkers(caseworkers, roleCategory) {
123
- /** @type {?} */
124
66
  const people = [];
125
- caseworkers.forEach((/**
126
- * @param {?} caseworker
127
- * @return {?}
128
- */
129
- (caseworker) => {
130
- /** @type {?} */
67
+ caseworkers.forEach((caseworker) => {
131
68
  const thisPerson = {
132
69
  email: caseworker.email,
133
70
  name: `${caseworker.firstName} ${caseworker.lastName}`,
@@ -137,16 +74,10 @@ export class FindAPersonService {
137
74
  if (caseworker.roleCategory === roleCategory || roleCategory === RoleCategory.ALL) {
138
75
  people.push(thisPerson);
139
76
  }
140
- }));
77
+ });
141
78
  return people;
142
79
  }
143
- /**
144
- * @param {?} caseworkers
145
- * @param {?} searchOptions
146
- * @return {?}
147
- */
148
80
  searchInCaseworkers(caseworkers, searchOptions) {
149
- /** @type {?} */
150
81
  let roleCategory = RoleCategory.ALL;
151
82
  if (!(searchOptions.userRole === PersonRole.ALL)) {
152
83
  if (searchOptions.userRole === PersonRole.CASEWORKER) {
@@ -159,64 +90,25 @@ export class FindAPersonService {
159
90
  roleCategory = RoleCategory.CTSC;
160
91
  }
161
92
  }
162
- /** @type {?} */
163
93
  const searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';
164
- /** @type {?} */
165
94
  const people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];
166
- /** @type {?} */
167
- const finalPeopleList = people.filter((/**
168
- * @param {?} person
169
- * @return {?}
170
- */
171
- person => person && person.name && person.name.toLowerCase().includes(searchTerm)));
172
- return searchOptions.userIncluded ? finalPeopleList.filter((/**
173
- * @param {?} person
174
- * @return {?}
175
- */
176
- person => person && person.id !== this.assignedUser))
177
- : finalPeopleList.filter((/**
178
- * @param {?} person
179
- * @return {?}
180
- */
181
- person => person && person.id !== this.userId && person.id !== this.assignedUser));
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);
182
98
  }
183
- /**
184
- * @param {?} value
185
- * @param {?} serviceId
186
- * @return {?}
187
- */
188
99
  searchJudicial(value, serviceId) {
189
100
  return this.http.post('api/prd/judicial/getJudicialUsersSearch', { searchString: value, serviceCode: serviceId });
190
101
  }
191
102
  }
192
103
  FindAPersonService.caseworkersKey = 'caseworkers';
104
+ FindAPersonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FindAPersonService_Factory() { return new FindAPersonService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.SessionStorageService)); }, token: FindAPersonService, providedIn: "root" });
193
105
  FindAPersonService.decorators = [
194
106
  { type: Injectable, args: [{
195
107
  providedIn: 'root'
196
108
  },] }
197
109
  ];
198
- /** @nocollapse */
199
110
  FindAPersonService.ctorParameters = () => [
200
111
  { type: HttpClient },
201
112
  { type: SessionStorageService }
202
113
  ];
203
- /** @nocollapse */ FindAPersonService.ngInjectableDef = i0.defineInjectable({ factory: function FindAPersonService_Factory() { return new FindAPersonService(i0.inject(i1.HttpClient), i0.inject(i2.SessionStorageService)); }, token: FindAPersonService, providedIn: "root" });
204
- if (false) {
205
- /** @type {?} */
206
- FindAPersonService.caseworkersKey;
207
- /** @type {?} */
208
- FindAPersonService.prototype.userId;
209
- /** @type {?} */
210
- FindAPersonService.prototype.assignedUser;
211
- /**
212
- * @type {?}
213
- * @private
214
- */
215
- FindAPersonService.prototype.http;
216
- /**
217
- * @type {?}
218
- * @private
219
- */
220
- FindAPersonService.prototype.sessionStorageService;
221
- }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmluZC1wZXJzb24vZmluZC1wZXJzb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLGdDQUFnQyxFQUNoQyxjQUFjLEVBQ2YsTUFBTSx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLEVBS0wsVUFBVSxFQUNWLFlBQVksRUFFYixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQUtuRixNQUFNLE9BQU8sa0JBQWtCOzs7OztJQU03QixZQUE2QixJQUFnQixFQUFtQixxQkFBNEM7UUFBL0UsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFtQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBQzVHLENBQUM7Ozs7O0lBRU0sSUFBSSxDQUFDLGFBQTRCOztjQUNoQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDckUsSUFBSSxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFOztrQkFDeEMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVB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QUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDO0lBQy9HLENBQUM7Ozs7OztJQUVNLGNBQWMsQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0IseUNBQXlDLEVBQ2xGLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDOztBQWxHYSxpQ0FBYyxHQUFXLGFBQWEsQ0FBQzs7WUFMdEQsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBdEJRLFVBQVU7WUFrQlYscUJBQXFCOzs7OztJQU81QixrQ0FBcUQ7O0lBQ3JELG9DQUFzQjs7SUFDdEIsMENBQTRCOzs7OztJQUVoQixrQ0FBaUM7Ozs7O0lBQUUsbURBQTZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzLFxuICBnZXRTZXNzaW9uU3RvcmFnZUtleUZvclNlcnZpY2VJZCxcbiAgc2V0Q2FzZXdvcmtlcnNcbn0gZnJvbSAnLi4vLi4vZ292LXVpL3V0aWwvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS11dGlscyc7XG5pbXBvcnQge1xuICBDYXNld29ya2VyLFxuICBDYXNld29ya2Vyc0J5U2VydmljZSxcbiAgSnVkaWNpYWxVc2VyTW9kZWwsXG4gIFBlcnNvbixcbiAgUGVyc29uUm9sZSxcbiAgUm9sZUNhdGVnb3J5LFxuICBTZWFyY2hPcHRpb25zXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXNzaW9uLXN0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaW5kQVBlcnNvblNlcnZpY2Uge1xuXG4gIHB1YmxpYyBzdGF0aWMgY2FzZXdvcmtlcnNLZXk6IHN0cmluZyA9ICdjYXNld29ya2Vycyc7XG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcbiAgcHVibGljIGFzc2lnbmVkVXNlcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIGZpbmQoc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyICYmICFzZWFyY2hPcHRpb25zLnVzZXJJbmNsdWRlZCkge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHRoaXMudXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgdGhpcy5hc3NpZ25lZFVzZXIgPSBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA/IHNlYXJjaE9wdGlvbnMuYXNzaWduZWRVc2VyIDogbnVsbDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UGVyc29uW10+KCcvd29ya2FsbG9jYXRpb24vZmluZFBlcnNvbicsIHsgc2VhcmNoT3B0aW9ucyB9KVxuICAgICAgLnBpcGUobWFwKGp1ZGljaWFyeSA9PiBqdWRpY2lhcnkuZmlsdGVyKGp1ZGdlID0+ICEoW3RoaXMuYXNzaWduZWRVc2VyLCB0aGlzLnVzZXJJZF0uaW5jbHVkZXMoanVkZ2UuaWQpKSkpKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQ2FzZXdvcmtlcnMoc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgICAgdGhpcy51c2VySWQgPSB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkO1xuICAgIH1cbiAgICB0aGlzLmFzc2lnbmVkVXNlciA9IHNlYXJjaE9wdGlvbnMuYXNzaWduZWRVc2VyID8gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgOiBudWxsO1xuICAgIGNvbnN0IGZ1bGxTZXJ2aWNlcyA9IHNlYXJjaE9wdGlvbnMuc2VydmljZXM7XG4gICAgY29uc3Qgc3RvcmVkU2VydmljZXMgPSBbXTtcbiAgICBjb25zdCBuZXdTZXJ2aWNlczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBzdG9yZWRDYXNld29ya2Vyc0J5U2VydmljZTogQ2FzZXdvcmtlcnNCeVNlcnZpY2VbXSA9IFtdO1xuICAgIGZ1bGxTZXJ2aWNlcy5mb3JFYWNoKHNlcnZpY2VJZCA9PiB7XG4gICAgICBjb25zdCBzZXJ2aWNlS2V5ID0gZ2V0U2Vzc2lvblN0b3JhZ2VLZXlGb3JTZXJ2aWNlSWQoc2VydmljZUlkKTtcbiAgICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKHNlcnZpY2VLZXkpKSB7XG4gICAgICAgIHN0b3JlZFNlcnZpY2VzLnB1c2goc2VydmljZUlkKTtcbiAgICAgICAgc3RvcmVkQ2FzZXdvcmtlcnNCeVNlcnZpY2UucHVzaCh7IHNlcnZpY2U6IHNlcnZpY2VJZCwgY2FzZXdvcmtlcnM6IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShzZXJ2aWNlS2V5KSkgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTZXJ2aWNlcy5wdXNoKHNlcnZpY2VJZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gaWYgYWxsIHNlcnZpY2VzIGFyZSBzdG9yZWQgdGhlbiByZXR1cm4gdGhlIHN0b3JlZCBjYXNld29ya2VycyBieSBzZXJ2aWNlXG4gICAgaWYgKHN0b3JlZFNlcnZpY2VzLmxlbmd0aCA9PT0gZnVsbFNlcnZpY2VzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc3RvcmVkQ2FzZXdvcmtlcnMgPSBnZXRBbGxDYXNld29ya2Vyc0Zyb21TZXJ2aWNlcyhzdG9yZWRDYXNld29ya2Vyc0J5U2VydmljZSk7XG4gICAgICByZXR1cm4gb2YodGhpcy5zZWFyY2hJbkNhc2V3b3JrZXJzKHN0b3JlZENhc2V3b3JrZXJzLCBzZWFyY2hPcHRpb25zKSk7XG4gICAgfVxuICAgIC8vIGFsbCBzZXJ2aWNlSWRzIHBhc3NlZCBpbiBhcyBub2RlIGxheWVyIGdldHRpbmcgdXNlZCBhbnl3YXkgYW5kIGNhc2V3b3JrZXJzIGFsc28gc3RvcmVkIHRoZXJlXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENhc2V3b3JrZXJzQnlTZXJ2aWNlW10+KCcvd29ya2FsbG9jYXRpb24vcmV0cmlldmVDYXNlV29ya2Vyc0ZvclNlcnZpY2VzJywgeyBmdWxsU2VydmljZXMgfSkucGlwZShcbiAgICAgIHRhcChjYXNld29ya2Vyc0J5U2VydmljZSA9PiB7XG4gICAgICAgIGNhc2V3b3JrZXJzQnlTZXJ2aWNlLmZvckVhY2goY2FzZXdvcmtlckxpc3RCeVNlcnZpY2UgPT4ge1xuICAgICAgICAgIC8vIGZvciBhbnkgbmV3IHNlcnZpY2UsIGVuc3VyZSB0aGF0IHRoZXkgYXJlIHRoZW4gc3RvcmVkIGluIHRoZSBzZXNzaW9uXG4gICAgICAgICAgaWYgKG5ld1NlcnZpY2VzLmluY2x1ZGVzKGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlLnNlcnZpY2UpKSB7XG4gICAgICAgICAgICBzZXRDYXNld29ya2VycyhjYXNld29ya2VyTGlzdEJ5U2VydmljZS5zZXJ2aWNlLCBjYXNld29ya2VyTGlzdEJ5U2VydmljZS5jYXNld29ya2VycywgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcChjYXNld29ya2Vyc0J5U2VydmljZSA9PiB7XG4gICAgICAgIGNvbnN0IGdpdmVuQ2FzZXdvcmtlcnMgPSBnZXRBbGxDYXNld29ya2Vyc0Zyb21TZXJ2aWNlcyhjYXNld29ya2Vyc0J5U2VydmljZSk7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEluQ2FzZXdvcmtlcnMoZ2l2ZW5DYXNld29ya2Vycywgc2VhcmNoT3B0aW9ucyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbWFwQ2FzZXdvcmtlcnMoY2FzZXdvcmtlcnM6IENhc2V3b3JrZXJbXSwgcm9sZUNhdGVnb3J5OiBzdHJpbmcpOiBQZXJzb25bXSB7XG4gICAgY29uc3QgcGVvcGxlOiBQZXJzb25bXSA9IFtdO1xuICAgIGNhc2V3b3JrZXJzLmZvckVhY2goKGNhc2V3b3JrZXIpID0+IHtcbiAgICAgIGNvbnN0IHRoaXNQZXJzb246IFBlcnNvbiA9IHtcbiAgICAgICAgZW1haWw6IGNhc2V3b3JrZXIuZW1haWwsXG4gICAgICAgIG5hbWU6IGAke2Nhc2V3b3JrZXIuZmlyc3ROYW1lfSAke2Nhc2V3b3JrZXIubGFzdE5hbWV9YCxcbiAgICAgICAgaWQ6IGNhc2V3b3JrZXIuaWRhbUlkLFxuICAgICAgICBkb21haW46IGNhc2V3b3JrZXIucm9sZUNhdGVnb3J5ID09PSBSb2xlQ2F0ZWdvcnkuQ0FTRVdPUktFUiA/IFBlcnNvblJvbGUuQ0FTRVdPUktFUiA6IFBlcnNvblJvbGUuQURNSU4sXG4gICAgICAgIC8vIGtub3duQXMgY2FuIGJlIGFkZGVkIGlmIHJlcXVpcmVkXG4gICAgICB9O1xuICAgICAgaWYgKGNhc2V3b3JrZXIucm9sZUNhdGVnb3J5ID09PSByb2xlQ2F0ZWdvcnkgfHwgcm9sZUNhdGVnb3J5ID09PSBSb2xlQ2F0ZWdvcnkuQUxMKSB7XG4gICAgICAgIHBlb3BsZS5wdXNoKHRoaXNQZXJzb24pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwZW9wbGU7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoSW5DYXNld29ya2VycyhjYXNld29ya2VyczogQ2FzZXdvcmtlcltdLCBzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zKTogUGVyc29uW10ge1xuICAgIGxldCByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQUxMO1xuICAgIGlmICghKHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQUxMKSkge1xuICAgICAgaWYgKHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQ0FTRVdPUktFUikge1xuICAgICAgICByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQ0FTRVdPUktFUjtcbiAgICAgIH0gZWxzZSBpZiAoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5BRE1JTikge1xuICAgICAgICByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQURNSU47XG4gICAgICB9IGVsc2UgaWYgKHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQ1RTQykge1xuICAgICAgICByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQ1RTQztcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VhcmNoVGVybSA9IHNlYXJjaE9wdGlvbnMgJiYgc2VhcmNoT3B0aW9ucy5zZWFyY2hUZXJtID8gc2VhcmNoT3B0aW9ucy5zZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgICBjb25zdCBwZW9wbGUgPSBjYXNld29ya2VycyA/IHRoaXMubWFwQ2FzZXdvcmtlcnMoY2FzZXdvcmtlcnMsIHJvbGVDYXRlZ29yeSkgOiBbXTtcbiAgICBjb25zdCBmaW5hbFBlb3BsZUxpc3QgPSBwZW9wbGUuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLm5hbWUgJiYgcGVyc29uLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSk7XG4gICAgcmV0dXJuIHNlYXJjaE9wdGlvbnMudXNlckluY2x1ZGVkID8gZmluYWxQZW9wbGVMaXN0LmZpbHRlcihwZXJzb24gPT4gcGVyc29uICYmIHBlcnNvbi5pZCAhPT0gdGhpcy5hc3NpZ25lZFVzZXIpXG4gICAgICA6IGZpbmFsUGVvcGxlTGlzdC5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24uaWQgIT09IHRoaXMudXNlcklkICYmIHBlcnNvbi5pZCAhPT0gdGhpcy5hc3NpZ25lZFVzZXIpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEp1ZGljaWFsKHZhbHVlOiBzdHJpbmcsIHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxKdWRpY2lhbFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEp1ZGljaWFsVXNlck1vZGVsW10+KCdhcGkvcHJkL2p1ZGljaWFsL2dldEp1ZGljaWFsVXNlcnNTZWFyY2gnLFxuICAgICAgeyBzZWFyY2hTdHJpbmc6IHZhbHVlLCBzZXJ2aWNlQ29kZTogc2VydmljZUlkIH0pO1xuICB9XG59XG5cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEVBQ2hDLGNBQWMsRUFDZixNQUFNLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8sRUFLTCxVQUFVLEVBQ1YsWUFBWSxFQUViLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBSzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFBNkIsSUFBZ0IsRUFBbUIscUJBQTRDO1FBQS9FLFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUM1RyxDQUFDO0lBRU0sSUFBSSxDQUFDLGFBQTRCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsSUFBSSxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENB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QUFDO1lBQzdHLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWEsRUFBRSxTQUFpQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFzQix5Q0FBeUMsRUFDbEYsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O0FBbEdhLGlDQUFjLEdBQVcsYUFBYSxDQUFDOzs7WUFMdEQsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUF0QlEsVUFBVTtZQWtCVixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMsXG4gIGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkLFxuICBzZXRDYXNld29ya2Vyc1xufSBmcm9tICcuLi8uLi9nb3YtdWkvdXRpbC9zZXNzaW9uLXN0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlLXV0aWxzJztcbmltcG9ydCB7XG4gIENhc2V3b3JrZXIsXG4gIENhc2V3b3JrZXJzQnlTZXJ2aWNlLFxuICBKdWRpY2lhbFVzZXJNb2RlbCxcbiAgUGVyc29uLFxuICBQZXJzb25Sb2xlLFxuICBSb2xlQ2F0ZWdvcnksXG4gIFNlYXJjaE9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmluZEFQZXJzb25TZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIGNhc2V3b3JrZXJzS2V5OiBzdHJpbmcgPSAnY2FzZXdvcmtlcnMnO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0ciAmJiAhc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFBlcnNvbltdPignL3dvcmthbGxvY2F0aW9uL2ZpbmRQZXJzb24nLCB7IHNlYXJjaE9wdGlvbnMgfSlcbiAgICAgIC5waXBlKG1hcChqdWRpY2lhcnkgPT4ganVkaWNpYXJ5LmZpbHRlcihqdWRnZSA9PiAhKFt0aGlzLmFzc2lnbmVkVXNlciwgdGhpcy51c2VySWRdLmluY2x1ZGVzKGp1ZGdlLmlkKSkpKSk7XG4gIH1cblxuICBwdWJsaWMgZmluZENhc2V3b3JrZXJzKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHRoaXMudXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgdGhpcy5hc3NpZ25lZFVzZXIgPSBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA/IHNlYXJjaE9wdGlvbnMuYXNzaWduZWRVc2VyIDogbnVsbDtcbiAgICBjb25zdCBmdWxsU2VydmljZXMgPSBzZWFyY2hPcHRpb25zLnNlcnZpY2VzO1xuICAgIGNvbnN0IHN0b3JlZFNlcnZpY2VzID0gW107XG4gICAgY29uc3QgbmV3U2VydmljZXM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc3RvcmVkQ2FzZXdvcmtlcnNCeVNlcnZpY2U6IENhc2V3b3JrZXJzQnlTZXJ2aWNlW10gPSBbXTtcbiAgICBmdWxsU2VydmljZXMuZm9yRWFjaChzZXJ2aWNlSWQgPT4ge1xuICAgICAgY29uc3Qgc2VydmljZUtleSA9IGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkKHNlcnZpY2VJZCk7XG4gICAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShzZXJ2aWNlS2V5KSkge1xuICAgICAgICBzdG9yZWRTZXJ2aWNlcy5wdXNoKHNlcnZpY2VJZCk7XG4gICAgICAgIHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlLnB1c2goeyBzZXJ2aWNlOiBzZXJ2aWNlSWQsIGNhc2V3b3JrZXJzOiBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oc2VydmljZUtleSkpIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2VydmljZXMucHVzaChzZXJ2aWNlSWQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vIGlmIGFsbCBzZXJ2aWNlcyBhcmUgc3RvcmVkIHRoZW4gcmV0dXJuIHRoZSBzdG9yZWQgY2FzZXdvcmtlcnMgYnkgc2VydmljZVxuICAgIGlmIChzdG9yZWRTZXJ2aWNlcy5sZW5ndGggPT09IGZ1bGxTZXJ2aWNlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN0b3JlZENhc2V3b3JrZXJzID0gZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMoc3RvcmVkQ2FzZXdvcmtlcnNCeVNlcnZpY2UpO1xuICAgICAgcmV0dXJuIG9mKHRoaXMuc2VhcmNoSW5DYXNld29ya2VycyhzdG9yZWRDYXNld29ya2Vycywgc2VhcmNoT3B0aW9ucykpO1xuICAgIH1cbiAgICAvLyBhbGwgc2VydmljZUlkcyBwYXNzZWQgaW4gYXMgbm9kZSBsYXllciBnZXR0aW5nIHVzZWQgYW55d2F5IGFuZCBjYXNld29ya2VycyBhbHNvIHN0b3JlZCB0aGVyZVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDYXNld29ya2Vyc0J5U2VydmljZVtdPignL3dvcmthbGxvY2F0aW9uL3JldHJpZXZlQ2FzZVdvcmtlcnNGb3JTZXJ2aWNlcycsIHsgZnVsbFNlcnZpY2VzIH0pLnBpcGUoXG4gICAgICB0YXAoY2FzZXdvcmtlcnNCeVNlcnZpY2UgPT4ge1xuICAgICAgICBjYXNld29ya2Vyc0J5U2VydmljZS5mb3JFYWNoKGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlID0+IHtcbiAgICAgICAgICAvLyBmb3IgYW55IG5ldyBzZXJ2aWNlLCBlbnN1cmUgdGhhdCB0aGV5IGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgc2Vzc2lvblxuICAgICAgICAgIGlmIChuZXdTZXJ2aWNlcy5pbmNsdWRlcyhjYXNld29ya2VyTGlzdEJ5U2VydmljZS5zZXJ2aWNlKSkge1xuICAgICAgICAgICAgc2V0Q2FzZXdvcmtlcnMoY2FzZXdvcmtlckxpc3RCeVNlcnZpY2Uuc2VydmljZSwgY2FzZXdvcmtlckxpc3RCeVNlcnZpY2UuY2FzZXdvcmtlcnMsIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoY2FzZXdvcmtlcnNCeVNlcnZpY2UgPT4ge1xuICAgICAgICBjb25zdCBnaXZlbkNhc2V3b3JrZXJzID0gZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMoY2FzZXdvcmtlcnNCeVNlcnZpY2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hJbkNhc2V3b3JrZXJzKGdpdmVuQ2FzZXdvcmtlcnMsIHNlYXJjaE9wdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1hcENhc2V3b3JrZXJzKGNhc2V3b3JrZXJzOiBDYXNld29ya2VyW10sIHJvbGVDYXRlZ29yeTogc3RyaW5nKTogUGVyc29uW10ge1xuICAgIGNvbnN0IHBlb3BsZTogUGVyc29uW10gPSBbXTtcbiAgICBjYXNld29ya2Vycy5mb3JFYWNoKChjYXNld29ya2VyKSA9PiB7XG4gICAgICBjb25zdCB0aGlzUGVyc29uOiBQZXJzb24gPSB7XG4gICAgICAgIGVtYWlsOiBjYXNld29ya2VyLmVtYWlsLFxuICAgICAgICBuYW1lOiBgJHtjYXNld29ya2VyLmZpcnN0TmFtZX0gJHtjYXNld29ya2VyLmxhc3ROYW1lfWAsXG4gICAgICAgIGlkOiBjYXNld29ya2VyLmlkYW1JZCxcbiAgICAgICAgZG9tYWluOiBjYXNld29ya2VyLnJvbGVDYXRlZ29yeSA9PT0gUm9sZUNhdGVnb3J5LkNBU0VXT1JLRVIgPyBQZXJzb25Sb2xlLkNBU0VXT1JLRVIgOiBQZXJzb25Sb2xlLkFETUlOLFxuICAgICAgICAvLyBrbm93bkFzIGNhbiBiZSBhZGRlZCBpZiByZXF1aXJlZFxuICAgICAgfTtcbiAgICAgIGlmIChjYXNld29ya2VyLnJvbGVDYXRlZ29yeSA9PT0gcm9sZUNhdGVnb3J5IHx8IHJvbGVDYXRlZ29yeSA9PT0gUm9sZUNhdGVnb3J5LkFMTCkge1xuICAgICAgICBwZW9wbGUucHVzaCh0aGlzUGVyc29uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcGVvcGxlO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEluQ2FzZXdvcmtlcnMoY2FzZXdvcmtlcnM6IENhc2V3b3JrZXJbXSwgc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IFBlcnNvbltdIHtcbiAgICBsZXQgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkFMTDtcbiAgICBpZiAoIShzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkFMTCkpIHtcbiAgICAgIGlmIChzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkNBU0VXT1JLRVIpIHtcbiAgICAgICAgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkNBU0VXT1JLRVI7XG4gICAgICB9IGVsc2UgaWYgKHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQURNSU4pIHtcbiAgICAgICAgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkFETUlOO1xuICAgICAgfSBlbHNlIGlmIChzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkNUU0MpIHtcbiAgICAgICAgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkNUU0M7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBzZWFyY2hPcHRpb25zICYmIHNlYXJjaE9wdGlvbnMuc2VhcmNoVGVybSA/IHNlYXJjaE9wdGlvbnMuc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpIDogJyc7XG4gICAgY29uc3QgcGVvcGxlID0gY2FzZXdvcmtlcnMgPyB0aGlzLm1hcENhc2V3b3JrZXJzKGNhc2V3b3JrZXJzLCByb2xlQ2F0ZWdvcnkpIDogW107XG4gICAgY29uc3QgZmluYWxQZW9wbGVMaXN0ID0gcGVvcGxlLmZpbHRlcihwZXJzb24gPT4gcGVyc29uICYmIHBlcnNvbi5uYW1lICYmIHBlcnNvbi5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpO1xuICAgIHJldHVybiBzZWFyY2hPcHRpb25zLnVzZXJJbmNsdWRlZCA/IGZpbmFsUGVvcGxlTGlzdC5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24uaWQgIT09IHRoaXMuYXNzaWduZWRVc2VyKVxuICAgICAgOiBmaW5hbFBlb3BsZUxpc3QuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLmlkICE9PSB0aGlzLnVzZXJJZCAmJiBwZXJzb24uaWQgIT09IHRoaXMuYXNzaWduZWRVc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hKdWRpY2lhbCh2YWx1ZTogc3RyaW5nLCBzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SnVkaWNpYWxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxKdWRpY2lhbFVzZXJNb2RlbFtdPignYXBpL3ByZC9qdWRpY2lhbC9nZXRKdWRpY2lhbFVzZXJzU2VhcmNoJyxcbiAgICAgIHsgc2VhcmNoU3RyaW5nOiB2YWx1ZSwgc2VydmljZUNvZGU6IHNlcnZpY2VJZCB9KTtcbiAgfVxufVxuXG4iXX0=