@hmcts/rpx-xui-common-lib 2.0.2-pre-release-include-user-access-type → 2.0.2-pre-release-accessibility-updated-version

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 (321) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +6257 -0
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -0
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +2 -0
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -0
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +77 -0
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +27 -0
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +185 -0
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +17 -0
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +68 -0
  10. package/esm2015/lib/components/due-date/due-date.component.js +123 -0
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +28 -0
  12. package/esm2015/lib/components/find-location/find-location.component.js +146 -0
  13. package/esm2015/lib/components/find-person/find-person.component.js +120 -0
  14. package/esm2015/lib/components/find-service/find-service.component.js +113 -0
  15. package/esm2015/lib/components/find-task-name/find-task-name.component.js +97 -0
  16. package/esm2015/lib/components/generic-filter/generic-filter.component.js +629 -0
  17. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +27 -0
  18. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +25 -0
  19. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +25 -0
  20. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +26 -0
  21. package/esm2015/lib/components/pagination/pagination.component.js +28 -0
  22. package/esm2015/lib/components/search-judicials/search-judicials.component.js +126 -0
  23. package/esm2015/lib/components/search-location/search-location.component.js +135 -0
  24. package/esm2015/lib/components/search-service/search-service.component.js +42 -0
  25. package/esm2015/lib/components/search-venue/search-venue.component.js +123 -0
  26. package/esm2015/lib/components/selected-case/selected-case.component.js +158 -0
  27. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +36 -0
  28. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +49 -0
  29. package/esm2015/lib/components/service-message/service-message.component.js +22 -0
  30. package/esm2015/lib/components/service-messages/service-messages.component.js +48 -0
  31. package/esm2015/lib/components/share-case/share-case.component.js +205 -0
  32. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +34 -0
  33. package/esm2015/lib/components/tab/tab.component.js +21 -0
  34. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +22 -0
  35. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +13 -0
  36. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +13 -0
  37. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +16 -0
  38. package/esm2015/lib/components/user-details/user-details.component.js +41 -0
  39. package/esm2015/lib/components/user-list/user-list.component.js +33 -0
  40. package/esm2015/lib/components/user-select/user-select.component.js +58 -0
  41. package/esm2015/lib/components/write-address/write-address.component.js +182 -0
  42. package/esm2015/lib/components/write-address-inputs/write-address-inputs.component.js +36 -0
  43. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +42 -0
  44. package/esm2015/lib/directives/let/let.directive.js +30 -0
  45. package/esm2015/lib/exui-common-lib.module.js +174 -0
  46. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +31 -0
  47. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +60 -0
  48. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +64 -0
  49. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +22 -0
  50. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +28 -0
  51. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +35 -0
  52. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +23 -0
  53. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +34 -0
  54. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +22 -0
  55. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +33 -0
  56. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +21 -0
  57. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +27 -0
  58. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +39 -0
  59. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +27 -0
  60. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +23 -0
  61. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +48 -0
  62. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +19 -0
  63. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +41 -0
  64. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +28 -0
  65. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +23 -0
  66. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +15 -0
  67. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +29 -0
  68. package/esm2015/lib/gov-ui/gov-ui.service.js +13 -0
  69. package/{esm2020/lib/models/public_api.mjs → esm2015/lib/models/public_api.js} +1 -2
  70. package/esm2015/lib/models/user-details.model.js +2 -0
  71. package/esm2015/lib/pipes/capitalize/capitalize.pipe.js +11 -0
  72. package/esm2015/lib/services/address/address.service.js +50 -0
  73. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +157 -0
  74. package/esm2015/lib/services/cookie/cookie.service.js +47 -0
  75. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +36 -0
  76. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +27 -0
  77. package/{esm2020/lib/services/feature-toggle/launch-darkly.service.mjs → esm2015/lib/services/feature-toggle/launch-darkly.service.js} +6 -8
  78. package/{esm2020/lib/services/filter/filter.service.mjs → esm2015/lib/services/filter/filter.service.js} +6 -8
  79. package/esm2015/lib/services/find-person/find-person.service.js +115 -0
  80. package/esm2015/lib/services/google-analytics/google-analytics.service.js +68 -0
  81. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +71 -0
  82. package/{esm2020/lib/services/loading/loading.service.mjs → esm2015/lib/services/loading/loading.service.js} +6 -8
  83. package/esm2015/lib/services/locations/location.service.js +39 -0
  84. package/{esm2020/lib/services/manage-session/manage-session.services.mjs → esm2015/lib/services/manage-session/manage-session.services.js} +10 -8
  85. package/esm2015/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.js +34 -0
  86. package/{esm2020/lib/services/ref-data/ref-data.service.mjs → esm2015/lib/services/ref-data/ref-data.service.js} +9 -8
  87. package/{esm2020/lib/services/role-guard/role.guard.mjs → esm2015/lib/services/role-guard/role.guard.js} +10 -8
  88. package/esm2015/lib/services/role-guard/role.service.js +20 -0
  89. package/{esm2020/lib/services/storage/session-storage/session-storage.service.mjs → esm2015/lib/services/storage/session-storage/session-storage.service.js} +6 -8
  90. package/{esm2020/lib/services/task-name/task-name.service.mjs → esm2015/lib/services/task-name/task-name.service.js} +10 -8
  91. package/{esm2020/lib/services/timeout-notifications/timeout-notifications.service.mjs → esm2015/lib/services/timeout-notifications/timeout-notifications.service.js} +10 -8
  92. package/fesm2015/hmcts-rpx-xui-common-lib.js +5227 -0
  93. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -0
  94. package/hmcts-rpx-xui-common-lib.d.ts +76 -0
  95. package/hmcts-rpx-xui-common-lib.metadata.json +1 -0
  96. package/lib/components/accessibility/accessibility.component.d.ts +4 -4
  97. package/lib/components/checkbox-list/checkbox-list.component.d.ts +0 -3
  98. package/lib/components/contact-details/contact-details.component.d.ts +0 -3
  99. package/lib/components/cookie-banner/cookie-banner.component.d.ts +1 -6
  100. package/lib/components/due-date/due-date.component.d.ts +0 -3
  101. package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +0 -3
  102. package/lib/components/find-location/find-location.component.d.ts +0 -3
  103. package/lib/components/find-person/find-person.component.d.ts +0 -3
  104. package/lib/components/find-service/find-service.component.d.ts +0 -3
  105. package/lib/components/find-task-name/find-task-name.component.d.ts +0 -3
  106. package/lib/components/generic-filter/generic-filter.component.d.ts +0 -3
  107. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +0 -3
  108. package/lib/components/invite-user-form/invite-user-form.component.d.ts +0 -3
  109. package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +0 -3
  110. package/lib/components/loading-spinner/loading-spinner.component.d.ts +0 -3
  111. package/lib/components/pagination/pagination.component.d.ts +0 -3
  112. package/lib/components/search-judicials/search-judicials.component.d.ts +0 -3
  113. package/lib/components/search-location/search-location.component.d.ts +1 -4
  114. package/lib/components/search-service/search-service.component.d.ts +1 -4
  115. package/lib/components/search-venue/search-venue.component.d.ts +0 -3
  116. package/lib/components/selected-case/selected-case.component.d.ts +0 -3
  117. package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +0 -3
  118. package/lib/components/selected-case-list/selected-case-list.component.d.ts +0 -3
  119. package/lib/components/service-message/service-message.component.d.ts +0 -3
  120. package/lib/components/service-messages/service-messages.component.d.ts +0 -3
  121. package/lib/components/share-case/share-case.component.d.ts +0 -3
  122. package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +0 -3
  123. package/lib/components/tab/tab.component.d.ts +0 -3
  124. package/lib/components/tc-confirm/tc-confirm.component.d.ts +0 -3
  125. package/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.d.ts +0 -3
  126. package/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.d.ts +0 -3
  127. package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +0 -3
  128. package/lib/components/user-details/user-details.component.d.ts +0 -3
  129. package/lib/components/user-list/user-list.component.d.ts +0 -3
  130. package/lib/components/user-select/user-select.component.d.ts +2 -5
  131. package/lib/components/write-address/write-address.component.d.ts +0 -3
  132. package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +3 -3
  133. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +0 -3
  134. package/lib/directives/let/let.directive.d.ts +0 -3
  135. package/lib/exui-common-lib.module.d.ts +3 -77
  136. package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +0 -3
  137. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +0 -3
  138. package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +0 -3
  139. package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +0 -3
  140. package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +0 -3
  141. package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +0 -3
  142. package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +0 -3
  143. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +0 -3
  144. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +0 -3
  145. package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +0 -3
  146. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +0 -3
  147. package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +0 -3
  148. package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +0 -3
  149. package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +0 -3
  150. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +0 -3
  151. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +0 -3
  152. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +0 -3
  153. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +0 -3
  154. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +0 -3
  155. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +0 -3
  156. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +0 -3
  157. package/lib/gov-ui/directives/remove-host.directive.d.ts +0 -3
  158. package/lib/gov-ui/gov-ui.service.d.ts +0 -3
  159. package/lib/models/feature-user.d.ts +1 -1
  160. package/lib/models/filter.model.d.ts +2 -2
  161. package/lib/models/public_api.d.ts +0 -1
  162. package/lib/models/user-details.model.d.ts +0 -2
  163. package/lib/pipes/capitalize/capitalize.pipe.d.ts +0 -3
  164. package/lib/services/address/address.service.d.ts +0 -3
  165. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +0 -3
  166. package/lib/services/cookie/cookie.service.d.ts +0 -3
  167. package/lib/services/feature-toggle/feature-toggle.guard.d.ts +0 -3
  168. package/lib/services/feature-toggle/feature-toggle.service.d.ts +0 -3
  169. package/lib/services/feature-toggle/launch-darkly.service.d.ts +0 -3
  170. package/lib/services/filter/filter.service.d.ts +0 -3
  171. package/lib/services/find-person/find-person.service.d.ts +0 -3
  172. package/lib/services/google-analytics/google-analytics.service.d.ts +0 -3
  173. package/lib/services/google-tag-manager/google-tag-manager.service.d.ts +0 -3
  174. package/lib/services/loading/loading.service.d.ts +0 -3
  175. package/lib/services/locations/location.service.d.ts +0 -3
  176. package/lib/services/manage-session/manage-session.services.d.ts +0 -3
  177. package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +0 -3
  178. package/lib/services/ref-data/ref-data.service.d.ts +0 -3
  179. package/lib/services/role-guard/role.guard.d.ts +0 -3
  180. package/lib/services/role-guard/role.service.d.ts +2 -5
  181. package/lib/services/storage/session-storage/session-storage.service.d.ts +0 -3
  182. package/lib/services/task-name/task-name.service.d.ts +0 -3
  183. package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +0 -3
  184. package/package.json +9 -24
  185. package/esm2020/hmcts-rpx-xui-common-lib.mjs +0 -5
  186. package/esm2020/lib/components/accessibility/accessibility.component.mjs +0 -486
  187. package/esm2020/lib/components/checkbox-list/checkbox-list.component.mjs +0 -231
  188. package/esm2020/lib/components/contact-details/contact-details.component.mjs +0 -107
  189. package/esm2020/lib/components/cookie-banner/cookie-banner.component.mjs +0 -144
  190. package/esm2020/lib/components/due-date/due-date.component.mjs +0 -140
  191. package/esm2020/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +0 -79
  192. package/esm2020/lib/components/find-location/find-location.component.mjs +0 -219
  193. package/esm2020/lib/components/find-person/find-person.component.mjs +0 -234
  194. package/esm2020/lib/components/find-service/find-service.component.mjs +0 -187
  195. package/esm2020/lib/components/find-task-name/find-task-name.component.mjs +0 -200
  196. package/esm2020/lib/components/generic-filter/generic-filter.component.mjs +0 -1198
  197. package/esm2020/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +0 -55
  198. package/esm2020/lib/components/invite-user-form/invite-user-form.component.mjs +0 -50
  199. package/esm2020/lib/components/invite-user-permissions/invite-user-permission.component.mjs +0 -54
  200. package/esm2020/lib/components/loading-spinner/loading-spinner.component.mjs +0 -32
  201. package/esm2020/lib/components/pagination/pagination.component.mjs +0 -93
  202. package/esm2020/lib/components/search-judicials/search-judicials.component.mjs +0 -184
  203. package/esm2020/lib/components/search-location/search-location.component.mjs +0 -205
  204. package/esm2020/lib/components/search-service/search-service.component.mjs +0 -81
  205. package/esm2020/lib/components/search-venue/search-venue.component.mjs +0 -188
  206. package/esm2020/lib/components/selected-case/selected-case.component.mjs +0 -380
  207. package/esm2020/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +0 -130
  208. package/esm2020/lib/components/selected-case-list/selected-case-list.component.mjs +0 -98
  209. package/esm2020/lib/components/service-message/service-message.component.mjs +0 -50
  210. package/esm2020/lib/components/service-messages/service-messages.component.mjs +0 -75
  211. package/esm2020/lib/components/share-case/share-case.component.mjs +0 -410
  212. package/esm2020/lib/components/share-case-confirm/share-case-confirm.component.mjs +0 -85
  213. package/esm2020/lib/components/tab/tab.component.mjs +0 -39
  214. package/esm2020/lib/components/tc-confirm/tc-confirm.component.mjs +0 -65
  215. package/esm2020/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +0 -16
  216. package/esm2020/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +0 -16
  217. package/esm2020/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +0 -59
  218. package/esm2020/lib/components/user-details/user-details.component.mjs +0 -265
  219. package/esm2020/lib/components/user-list/user-list.component.mjs +0 -99
  220. package/esm2020/lib/components/user-select/user-select.component.mjs +0 -92
  221. package/esm2020/lib/components/write-address/write-address.component.mjs +0 -345
  222. package/esm2020/lib/components/write-address-inputs/write-address-inputs.component.mjs +0 -165
  223. package/esm2020/lib/directives/feature-toggle/feature-toggle.directive.mjs +0 -41
  224. package/esm2020/lib/directives/let/let.directive.mjs +0 -29
  225. package/esm2020/lib/exui-common-lib.module.mjs +0 -313
  226. package/esm2020/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +0 -54
  227. package/esm2020/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +0 -136
  228. package/esm2020/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +0 -120
  229. package/esm2020/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +0 -45
  230. package/esm2020/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +0 -80
  231. package/esm2020/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +0 -78
  232. package/esm2020/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +0 -45
  233. package/esm2020/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +0 -70
  234. package/esm2020/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +0 -84
  235. package/esm2020/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +0 -47
  236. package/esm2020/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +0 -41
  237. package/esm2020/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +0 -79
  238. package/esm2020/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +0 -188
  239. package/esm2020/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +0 -56
  240. package/esm2020/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +0 -112
  241. package/esm2020/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +0 -141
  242. package/esm2020/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +0 -33
  243. package/esm2020/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +0 -130
  244. package/esm2020/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +0 -204
  245. package/esm2020/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +0 -59
  246. package/esm2020/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +0 -57
  247. package/esm2020/lib/gov-ui/directives/remove-host.directive.mjs +0 -30
  248. package/esm2020/lib/gov-ui/gov-ui.service.mjs +0 -14
  249. package/esm2020/lib/models/user-access-type.model.mjs +0 -2
  250. package/esm2020/lib/models/user-details.model.mjs +0 -2
  251. package/esm2020/lib/pipes/capitalize/capitalize.pipe.mjs +0 -15
  252. package/esm2020/lib/services/address/address.service.mjs +0 -55
  253. package/esm2020/lib/services/case-sharing-state/case-sharing-state.service.mjs +0 -170
  254. package/esm2020/lib/services/cookie/cookie.service.mjs +0 -48
  255. package/esm2020/lib/services/feature-toggle/feature-toggle.guard.mjs +0 -34
  256. package/esm2020/lib/services/feature-toggle/feature-toggle.service.mjs +0 -29
  257. package/esm2020/lib/services/find-person/find-person.service.mjs +0 -114
  258. package/esm2020/lib/services/google-analytics/google-analytics.service.mjs +0 -68
  259. package/esm2020/lib/services/google-tag-manager/google-tag-manager.service.mjs +0 -71
  260. package/esm2020/lib/services/locations/location.service.mjs +0 -38
  261. package/esm2020/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +0 -33
  262. package/esm2020/lib/services/role-guard/role.service.mjs +0 -22
  263. package/fesm2015/hmcts-rpx-xui-common-lib.mjs +0 -10735
  264. package/fesm2015/hmcts-rpx-xui-common-lib.mjs.map +0 -1
  265. package/fesm2020/hmcts-rpx-xui-common-lib.mjs +0 -9774
  266. package/fesm2020/hmcts-rpx-xui-common-lib.mjs.map +0 -1
  267. package/index.d.ts +0 -5
  268. package/lib/models/user-access-type.model.d.ts +0 -6
  269. /package/{esm2020/lib/components/generic-filter/generic-filter-utils.mjs → esm2015/lib/components/generic-filter/generic-filter-utils.js} +0 -0
  270. /package/{esm2020/lib/components/index.mjs → esm2015/lib/components/index.js} +0 -0
  271. /package/{esm2020/lib/components/public_api.mjs → esm2015/lib/components/public_api.js} +0 -0
  272. /package/{esm2020/lib/directives/index.mjs → esm2015/lib/directives/index.js} +0 -0
  273. /package/{esm2020/lib/directives/public-api.mjs → esm2015/lib/directives/public-api.js} +0 -0
  274. /package/{esm2020/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs → esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js} +0 -0
  275. /package/{esm2020/lib/gov-ui/components/index.mjs → esm2015/lib/gov-ui/components/index.js} +0 -0
  276. /package/{esm2020/lib/gov-ui/components/public_api.mjs → esm2015/lib/gov-ui/components/public_api.js} +0 -0
  277. /package/{esm2020/lib/gov-ui/index.mjs → esm2015/lib/gov-ui/index.js} +0 -0
  278. /package/{esm2020/lib/gov-ui/models/checkboxes-model.mjs → esm2015/lib/gov-ui/models/checkboxes-model.js} +0 -0
  279. /package/{esm2020/lib/gov-ui/models/error-messages-model.mjs → esm2015/lib/gov-ui/models/error-messages-model.js} +0 -0
  280. /package/{esm2020/lib/gov-ui/models/gov-ui-config-model.mjs → esm2015/lib/gov-ui/models/gov-ui-config-model.js} +0 -0
  281. /package/{esm2020/lib/gov-ui/models/index.mjs → esm2015/lib/gov-ui/models/index.js} +0 -0
  282. /package/{esm2020/lib/gov-ui/models/isession-storage.interface.mjs → esm2015/lib/gov-ui/models/isession-storage.interface.js} +0 -0
  283. /package/{esm2020/lib/gov-ui/models/public_api.mjs → esm2015/lib/gov-ui/models/public_api.js} +0 -0
  284. /package/{esm2020/lib/gov-ui/models/radio-buttons.model.mjs → esm2015/lib/gov-ui/models/radio-buttons.model.js} +0 -0
  285. /package/{esm2020/lib/gov-ui/public_api.mjs → esm2015/lib/gov-ui/public_api.js} +0 -0
  286. /package/{esm2020/lib/gov-ui/util/helpers/html-templates.helper.mjs → esm2015/lib/gov-ui/util/helpers/html-templates.helper.js} +0 -0
  287. /package/{esm2020/lib/gov-ui/util/session-storage/session-storage-utils.mjs → esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js} +0 -0
  288. /package/{esm2020/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs → esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js} +0 -0
  289. /package/{esm2020/lib/gov-ui/validators/date.validator.mjs → esm2015/lib/gov-ui/validators/date.validator.js} +0 -0
  290. /package/{esm2020/lib/gov-ui/validators/index.mjs → esm2015/lib/gov-ui/validators/index.js} +0 -0
  291. /package/{esm2020/lib/gov-ui/validators/public_api.mjs → esm2015/lib/gov-ui/validators/public_api.js} +0 -0
  292. /package/{esm2020/lib/gov-ui/validators/radio-group.validator.mjs → esm2015/lib/gov-ui/validators/radio-group.validator.js} +0 -0
  293. /package/{esm2020/lib/models/address-message.enum.mjs → esm2015/lib/models/address-message.enum.js} +0 -0
  294. /package/{esm2020/lib/models/address-option.model.mjs → esm2015/lib/models/address-option.model.js} +0 -0
  295. /package/{esm2020/lib/models/address.model.mjs → esm2015/lib/models/address.model.js} +0 -0
  296. /package/{esm2020/lib/models/case-share.model.mjs → esm2015/lib/models/case-share.model.js} +0 -0
  297. /package/{esm2020/lib/models/contact-details.model.mjs → esm2015/lib/models/contact-details.model.js} +0 -0
  298. /package/{esm2020/lib/models/due-date.model.mjs → esm2015/lib/models/due-date.model.js} +0 -0
  299. /package/{esm2020/lib/models/feature-user.mjs → esm2015/lib/models/feature-user.js} +0 -0
  300. /package/{esm2020/lib/models/filter.model.mjs → esm2015/lib/models/filter.model.js} +0 -0
  301. /package/{esm2020/lib/models/idle-config.model.mjs → esm2015/lib/models/idle-config.model.js} +0 -0
  302. /package/{esm2020/lib/models/index.mjs → esm2015/lib/models/index.js} +0 -0
  303. /package/{esm2020/lib/models/location.model.mjs → esm2015/lib/models/location.model.js} +0 -0
  304. /package/{esm2020/lib/models/pagination.model.mjs → esm2015/lib/models/pagination.model.js} +0 -0
  305. /package/{esm2020/lib/models/person.model.mjs → esm2015/lib/models/person.model.js} +0 -0
  306. /package/{esm2020/lib/models/search-options.model.mjs → esm2015/lib/models/search-options.model.js} +0 -0
  307. /package/{esm2020/lib/models/task-name.model.mjs → esm2015/lib/models/task-name.model.js} +0 -0
  308. /package/{esm2020/lib/models/tcDocument.model.mjs → esm2015/lib/models/tcDocument.model.js} +0 -0
  309. /package/{esm2020/lib/models/timeout-notification.model.mjs → esm2015/lib/models/timeout-notification.model.js} +0 -0
  310. /package/{esm2020/lib/models/user.model.mjs → esm2015/lib/models/user.model.js} +0 -0
  311. /package/{esm2020/lib/pipes/index.mjs → esm2015/lib/pipes/index.js} +0 -0
  312. /package/{esm2020/lib/services/address/address-parser.mjs → esm2015/lib/services/address/address-parser.js} +0 -0
  313. /package/{esm2020/lib/services/address/address-type.enum.mjs → esm2015/lib/services/address/address-type.enum.js} +0 -0
  314. /package/{esm2020/lib/services/index.mjs → esm2015/lib/services/index.js} +0 -0
  315. /package/{esm2020/lib/services/public-api.mjs → esm2015/lib/services/public-api.js} +0 -0
  316. /package/{esm2020/lib/services/ref-data/index.mjs → esm2015/lib/services/ref-data/index.js} +0 -0
  317. /package/{esm2020/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs → esm2015/lib/services/ref-data/models/ref-data-htmcs-service.model.js} +0 -0
  318. /package/{esm2020/lib/services/ref-data/models/ref-data-region.model.mjs → esm2015/lib/services/ref-data/models/ref-data-region.model.js} +0 -0
  319. /package/{esm2020/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs → esm2015/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.js} +0 -0
  320. /package/{esm2020/lib/window.mjs → esm2015/lib/window.js} +0 -0
  321. /package/{esm2020/public-api.mjs → esm2015/public-api.js} +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
- }
162
- CaseSharingStateService.ɵfac = function CaseSharingStateService_Factory(t) { return new (t || CaseSharingStateService)(); };
163
- CaseSharingStateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseSharingStateService, factory: CaseSharingStateService.ɵfac, providedIn: 'root' });
164
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseSharingStateService, [{
165
- type: Injectable,
166
- args: [{
167
- providedIn: 'root'
168
- }]
169
- }], function () { return []; }, null); })();
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU90RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ3JDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQ7UUFUUSxjQUFTLEdBQWlCLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBUTdELENBQUM7SUFFVixRQUFRLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDdEgsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLEtB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Q0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3hDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OEZBcEtVLHVCQUF1Qjs2RUFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1QixtQkFGdEIsTUFBTTt1RkFFUCx1QkFBdUI7Y0FIbkMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNoYXJlZENhc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FzZS1zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyRGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWRldGFpbHMubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBjYXNlU3RhdGU6IFNoYXJlZENhc2VbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNoYXJlZENhc2VbXT4odGhpcy5jYXNlU3RhdGUpO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBzZXRDYXNlcyhjYXNlczogU2hhcmVkQ2FzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlU3RhdGUgPSBbXTtcbiAgICBjYXNlcy5mb3JFYWNoKGFDYXNlID0+IHtcbiAgICAgIHRoaXMuY2FzZVN0YXRlLnB1c2goeyBjYXNlSWQ6IGFDYXNlLmNhc2VJZCwgY2FzZVRpdGxlOiBhQ2FzZS5jYXNlVGl0bGUsIGNhc2VUeXBlSWQ6IGFDYXNlLmNhc2VUeXBlSWQsIHJvbGVzOiBhQ2FzZS5yb2xlcyxcbiAgICAgICAgc2hhcmVkV2l0aDogYUNhc2Uuc2hhcmVkV2l0aCwgcGVuZGluZ1NoYXJlczogYUNhc2UucGVuZGluZ1NoYXJlcywgcGVuZGluZ1Vuc2hhcmVzOiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQodGhpcy5jYXNlU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VzKCk6IFNoYXJlZENhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZVN0YXRlO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RTaGFyZSh1c2VyOiBVc2VyRGV0YWlscyk6IFNoYXJlZENhc2VbXSB7XG4gICAgY29uc3Qgb2xkU2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSA9IHRoaXMuY2FzZVN0YXRlLnNsaWNlKCk7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2hhcmVkQ2FzZSBvZiBvbGRTaGFyZWRDYXNlcykge1xuICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzID0gW107XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdQZW5kaW5nU2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLnNsaWNlKCk7XG4gICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzKSB7XG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzID0gW107XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdQZW5kaW5nVW5zaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5zbGljZSgpO1xuICAgICAgaWYgKCF0aGlzLnVzZXJIYXNBY2Nlc3Moc2hhcmVkQ2FzZSwgdXNlcikpIHtcbiAgICAgICAgaWYgKCFuZXdQZW5kaW5nU2hhcmVzLnNvbWUodSA9PiB1LmVtYWlsID09PSB1c2VyLmVtYWlsKSkge1xuICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMucHVzaCh1c2VyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChsZXQgdSA9IDAsIHVsID0gbmV3UGVuZGluZ1Vuc2hhcmVzLmxlbmd0aDsgdSA8IHVsOyB1KyspIHtcbiAgICAgICAgICBpZiAobmV3UGVuZGluZ1Vuc2hhcmVzW3VdLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nVW5zaGFyZXMuc3BsaWNlKHUsIDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdTaGFyZWRDYXNlID0ge1xuICAgICAgICAuLi5zaGFyZWRDYXNlLFxuICAgICAgICBwZW5kaW5nVW5zaGFyZXM6IG5ld1BlbmRpbmdVbnNoYXJlcyxcbiAgICAgICAgcGVuZGluZ1NoYXJlczogbmV3UGVuZGluZ1NoYXJlc1xuICAgICAgfTtcbiAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2gobmV3U2hhcmVkQ2FzZSk7XG4gICAgfVxuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5ld1NoYXJlZENhc2VzKTtcbiAgICByZXR1cm4gbmV3U2hhcmVkQ2FzZXM7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFVuc2hhcmUodXNlcjogVXNlckRldGFpbHMsIGNhc2VJZD86IHN0cmluZyk6IFNoYXJlZENhc2VbXSB7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2hhcmVkQ2FzZSBvZiB0aGlzLmNhc2VTdGF0ZSkge1xuICAgICAgLy8gSWYgbm8gY2FzZUlkLCB0aGVuIHJlcXVlc3QgdW5zaGFyZSBmcm9tIGFsbCBzaGFyZWQgY2FzZXNcbiAgICAgIGlmIChjYXNlSWQgPT09IHVuZGVmaW5lZCB8fCBzaGFyZWRDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdVbnNoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLnNsaWNlKCk7XG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIHBlbmRpbmcgc2hhcmVkIGFjY2VzcywganVzdCByZW1vdmUgdGhlbSBmcm9tIHBlbmRpbmdTaGFyZXNcbiAgICAgICAgbGV0IG5ld1BlbmRpbmdTaGFyZXM7XG4gICAgICAgIGxldCBpbmRleE9mUHJldmlvdXNseUFkZGVkVXNlciA9IC0xO1xuICAgICAgICBpZiAoc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgICAgaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuZmluZEluZGV4KHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKTtcbiAgICAgICAgICBpZiAoaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPiAtMSkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1NoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5zbGljZSgpO1xuICAgICAgICAgICAgbmV3UGVuZGluZ1NoYXJlcy5zcGxpY2UoaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgdXNlciBkb2VzIG5vdCBleGlzdCBpbiBwZW5kaW5nU2hhcmVzLCBhbmQgYWxyZWFkeSBoYXMgc2hhcmVkIGFjY2VzcyAoaS5lLiBleGlzdHMgaW4gc2hhcmVkV2l0aCksXG4gICAgICAgIC8vIHJlcXVlc3QgcmVtb3ZhbCBvZiBzaGFyZWQgYWNjZXNzXG4gICAgICAgIGlmIChpbmRleE9mUHJldmlvdXNseUFkZGVkVXNlciA9PT0gLTEgJiYgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5maW5kSW5kZXgoXG4gICAgICAgICAgdSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpID4gLTEpIHtcbiAgICAgICAgICBpZiAoIW5ld1BlbmRpbmdVbnNoYXJlcy5zb21lKHUgPT4gdS5lbWFpbCA9PT0gdXNlci5lbWFpbCkpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdVbnNoYXJlcy5wdXNoKHVzZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdTaGFyZWRDYXNlID0ge1xuICAgICAgICAgIC4uLnNoYXJlZENhc2UsXG4gICAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXMsXG4gICAgICAgICAgLi4uKG5ld1BlbmRpbmdTaGFyZXMgJiYge1xuICAgICAgICAgICAgcGVuZGluZ1NoYXJlczogbmV3UGVuZGluZ1NoYXJlc1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2gobmV3U2hhcmVkQ2FzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKHNoYXJlZENhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN1YmplY3QubmV4dChuZXdTaGFyZWRDYXNlcyk7XG4gICAgcmV0dXJuIG5ld1NoYXJlZENhc2VzO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RDYW5jZWwoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogdm9pZCB7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2hhcmVkQ2FzZSBvZiB0aGlzLmNhc2VTdGF0ZSkge1xuICAgICAgaWYgKHNoYXJlZENhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3UGVuZGluZ1Vuc2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChsZXQgaVBlbmRpbmdVbnNoYXJlcyA9IDA7IGlQZW5kaW5nVW5zaGFyZXMgPCBuZXdQZW5kaW5nVW5zaGFyZXMubGVuZ3RoOyBpUGVuZGluZ1Vuc2hhcmVzKyspIHtcbiAgICAgICAgICBpZiAobmV3UGVuZGluZ1Vuc2hhcmVzW2lQZW5kaW5nVW5zaGFyZXNdLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nVW5zaGFyZXMuc3BsaWNlKGlQZW5kaW5nVW5zaGFyZXMsIDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3UGVuZGluZ1NoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5zbGljZSgpO1xuICAgICAgICBmb3IgKGxldCBpUGVuZGluZ1NoYXJlcyA9IDA7IGlQZW5kaW5nU2hhcmVzIDwgbmV3UGVuZGluZ1NoYXJlcy5sZW5ndGg7IGlQZW5kaW5nU2hhcmVzKyspIHtcbiAgICAgICAgICBpZiAobmV3UGVuZGluZ1NoYXJlc1tpUGVuZGluZ1NoYXJlc10uZW1haWwgPT09IHVzZXIuZW1haWwpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMuc3BsaWNlKGlQZW5kaW5nU2hhcmVzLCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdTaGFyZWRDYXNlID0ge1xuICAgICAgICAgIC4uLnNoYXJlZENhc2UsXG4gICAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXMsXG4gICAgICAgICAgcGVuZGluZ1NoYXJlczogbmV3UGVuZGluZ1NoYXJlc1xuICAgICAgICB9O1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChzaGFyZWRDYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDYXNlKGNhc2VJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FzZVN0YXRlLmxlbmd0aCA+IDEpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5jYXNlU3RhdGUubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLmNhc2VTdGF0ZVtpXS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgIHRoaXMuY2FzZVN0YXRlLnNwbGljZShpLCAxKTtcbiAgICAgICAgICB0aGlzLnN1YmplY3QubmV4dCh0aGlzLmNhc2VTdGF0ZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVzZXJIYXNBY2Nlc3MoYzogU2hhcmVkQ2FzZSwgdXNlcjogVXNlckRldGFpbHMpOiBib29sZWFuIHtcbiAgICBpZiAoIWMuc2hhcmVkV2l0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IGMuc2hhcmVkV2l0aC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChjLnNoYXJlZFdpdGhbaV0uZW1haWwgPT09IHVzZXIuZW1haWwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -1,48 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Inject, Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class CookieService {
5
- constructor(doc) {
6
- this.document = doc;
7
- }
8
- setCookie(key, value, expiryDate) {
9
- const expiry = expiryDate ? ` expires=${expiryDate}` : '';
10
- const cookie = `${key}=${value};${expiry}`;
11
- this.document.cookie = cookie;
12
- }
13
- getCookie(key) {
14
- const cookieValue = this.document.cookie
15
- .split('; ')
16
- .find(row => row.startsWith(`${key}=`))
17
- .split('=')[1];
18
- return cookieValue;
19
- }
20
- deleteCookie(key, path, domain) {
21
- const pathValue = path ? `; path=${path}` : '';
22
- const domainValue = domain ? `; domain=${domain}` : '';
23
- this.document.cookie = `${key}=${pathValue}${domainValue}; expires=Thu, 01 Jan 1970 00:00:01 GMT; max-age=0`;
24
- }
25
- deleteCookieByPartialMatch(key, path, domain) {
26
- this.document.cookie
27
- .split('; ')
28
- .filter(row => row.startsWith(`${key}`))
29
- .forEach(element => {
30
- this.deleteCookie(element.split('=')[0], path, domain);
31
- });
32
- }
33
- checkCookie(key) {
34
- return this.document.cookie.split('; ').some(item => item.trim().startsWith(`${key}=`));
35
- }
36
- }
37
- CookieService.ɵfac = function CookieService_Factory(t) { return new (t || CookieService)(i0.ɵɵinject(DOCUMENT)); };
38
- CookieService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CookieService, factory: CookieService.ɵfac, providedIn: 'root' });
39
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CookieService, [{
40
- type: Injectable,
41
- args: [{
42
- providedIn: 'root'
43
- }]
44
- }], function () { return [{ type: undefined, decorators: [{
45
- type: Inject,
46
- args: [DOCUMENT]
47
- }] }]; }, null); })();
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jb29raWUvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUE4QixHQUFTO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBZSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxVQUFtQjtRQUM5RCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVztRQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07YUFDckMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ3RDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQVcsRUFBRSxJQUFhLEVBQUUsTUFBZTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTLEdBQUcsV0FBVyxvREFBb0QsQ0FBQztJQUMvRyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsR0FBVyxFQUFFLElBQWEsRUFBRSxNQUFlO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTthQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDOzswRUF0Q1UsYUFBYSxjQUdKLFFBQVE7bUVBSGpCLGFBQWEsV0FBYixhQUFhLG1CQUZaLE1BQU07dUZBRVAsYUFBYTtjQUh6QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQUljLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudD86IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvYz86IGFueSkge1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2MgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29va2llKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBleHBpcnlEYXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJ5ID0gZXhwaXJ5RGF0ZSA/IGAgZXhwaXJlcz0ke2V4cGlyeURhdGV9YCA6ICcnO1xuICAgIGNvbnN0IGNvb2tpZSA9IGAke2tleX09JHt2YWx1ZX07JHtleHBpcnl9YDtcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb29raWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gdGhpcy5kb2N1bWVudC5jb29raWVcbiAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX09YCkpXG4gICAgICAuc3BsaXQoJz0nKVsxXTtcbiAgICByZXR1cm4gY29va2llVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llKGtleTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoVmFsdWUgPSBwYXRoID8gYDsgcGF0aD0ke3BhdGh9YCA6ICcnO1xuICAgIGNvbnN0IGRvbWFpblZhbHVlID0gZG9tYWluID8gYDsgZG9tYWluPSR7ZG9tYWlufWAgOiAnJztcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGAke2tleX09JHtwYXRoVmFsdWV9JHtkb21haW5WYWx1ZX07IGV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7IG1heC1hZ2U9MGA7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llQnlQYXJ0aWFsTWF0Y2goa2V5OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuY29va2llXG4gICAgICAuc3BsaXQoJzsgJylcbiAgICAgIC5maWx0ZXIocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX1gKSlcbiAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICB0aGlzLmRlbGV0ZUNvb2tpZShlbGVtZW50LnNwbGl0KCc9JylbMF0sIHBhdGgsIGRvbWFpbik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0Nvb2tpZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5zb21lKGl0ZW0gPT4gaXRlbS50cmltKCkuc3RhcnRzV2l0aChgJHtrZXl9PWApKTtcbiAgfVxufVxuIl19
@@ -1,34 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { combineLatest } from 'rxjs';
4
- import { map } from 'rxjs/operators';
5
- import { FeatureToggleService } from './feature-toggle.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./feature-toggle.service";
8
- import * as i2 from "@angular/router";
9
- export class FeatureToggleGuard {
10
- constructor(featureToggleService, router) {
11
- this.featureToggleService = featureToggleService;
12
- this.router = router;
13
- }
14
- /**
15
- * Usage: Add the FeatureToggleGuard as the Guard for a route, and provide the following
16
- * in the data array for the route:
17
- * - needsFeaturesEnabled: An array of feature keys that need to be enabled for this route
18
- * - featureDisabledRedirect: the URL to redirect to when the this route is not accessible due to disabled features
19
- * - expectFeatureEnabled: Sets whether a route should be enabled/disabled based on whether feature is present
20
- * @param route Automatically provided by Angular
21
- */
22
- canActivate(route) {
23
- return combineLatest([...route.data.needsFeaturesEnabled.map(feature => this.featureToggleService.getValueOnce(feature, false))]).pipe(map(featureStatuses => featureStatuses.every(status => status)), map(status => (route.data.expectFeatureEnabled !== false && status) || (route.data.expectFeatureEnabled === false && !status) || this.router.parseUrl(route.data.featureDisabledRedirect)));
24
- }
25
- }
26
- FeatureToggleGuard.ɵfac = function FeatureToggleGuard_Factory(t) { return new (t || FeatureToggleGuard)(i0.ɵɵinject(i1.FeatureToggleService), i0.ɵɵinject(i2.Router)); };
27
- FeatureToggleGuard.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureToggleGuard, factory: FeatureToggleGuard.ɵfac, providedIn: 'root' });
28
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureToggleGuard, [{
29
- type: Injectable,
30
- args: [{
31
- providedIn: 'root'
32
- }]
33
- }], function () { return [{ type: i1.FeatureToggleService }, { type: i2.Router }]; }, null); })();
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBdUMsTUFBTSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNxQixvQkFBMEMsRUFDMUMsTUFBYztRQURkLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNoQyxDQUFDO0lBRUo7Ozs7Ozs7T0FPRztJQUNJLFdBQVcsQ0FBQyxLQUE2QjtRQUM1QyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEdBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBaUMsQ0FBQyxHQUFHLENBQ2xFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQ2pGLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDL0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBaUMsQ0FBQyxDQUFDLENBQ3ZNLENBQUM7SUFDTixDQUFDOztvRkF0QlEsa0JBQWtCO3dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZmLE1BQU07dUZBRVQsa0JBQWtCO2NBSDlCLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVUb2dnbGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlVG9nZ2xlU2VydmljZTogRmVhdHVyZVRvZ2dsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiBVc2FnZTogQWRkIHRoZSBGZWF0dXJlVG9nZ2xlR3VhcmQgYXMgdGhlIEd1YXJkIGZvciBhIHJvdXRlLCBhbmQgcHJvdmlkZSB0aGUgZm9sbG93aW5nXG4gICAgICogaW4gdGhlIGRhdGEgYXJyYXkgZm9yIHRoZSByb3V0ZTpcbiAgICAgKiAtIG5lZWRzRmVhdHVyZXNFbmFibGVkOiBBbiBhcnJheSBvZiBmZWF0dXJlIGtleXMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgcm91dGVcbiAgICAgKiAtIGZlYXR1cmVEaXNhYmxlZFJlZGlyZWN0OiB0aGUgVVJMIHRvIHJlZGlyZWN0IHRvIHdoZW4gdGhlIHRoaXMgcm91dGUgaXMgbm90IGFjY2Vzc2libGUgZHVlIHRvIGRpc2FibGVkIGZlYXR1cmVzXG4gICAgICogLSBleHBlY3RGZWF0dXJlRW5hYmxlZDogU2V0cyB3aGV0aGVyIGEgcm91dGUgc2hvdWxkIGJlIGVuYWJsZWQvZGlzYWJsZWQgYmFzZWQgb24gd2hldGhlciBmZWF0dXJlIGlzIHByZXNlbnRcbiAgICAgKiBAcGFyYW0gcm91dGUgQXV0b21hdGljYWxseSBwcm92aWRlZCBieSBBbmd1bGFyXG4gICAgICovXG4gICAgcHVibGljIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbLi4uKHJvdXRlLmRhdGEubmVlZHNGZWF0dXJlc0VuYWJsZWQgYXMgc3RyaW5nW10pLm1hcChcbiAgICAgICAgICAgICAgICBmZWF0dXJlID0+IHRoaXMuZmVhdHVyZVRvZ2dsZVNlcnZpY2UuZ2V0VmFsdWVPbmNlPGJvb2xlYW4+KGZlYXR1cmUsIGZhbHNlKVxuICAgICAgICApXSkucGlwZShcbiAgICAgICAgICAgIG1hcChmZWF0dXJlU3RhdHVzZXMgPT4gZmVhdHVyZVN0YXR1c2VzLmV2ZXJ5KHN0YXR1cyA9PiBzdGF0dXMpKSxcbiAgICAgICAgICAgIG1hcChzdGF0dXMgPT4gKHJvdXRlLmRhdGEuZXhwZWN0RmVhdHVyZUVuYWJsZWQgIT09IGZhbHNlICYmIHN0YXR1cykgfHwgKHJvdXRlLmRhdGEuZXhwZWN0RmVhdHVyZUVuYWJsZWQgPT09IGZhbHNlICYmICFzdGF0dXMpIHx8IHRoaXMucm91dGVyLnBhcnNlVXJsKHJvdXRlLmRhdGEuZmVhdHVyZURpc2FibGVkUmVkaXJlY3QgYXMgc3RyaW5nKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class FeatureToggleService {
4
- // tslint:disable-next-line: variable-name
5
- initialize(_user, _clientId) {
6
- throw new Error('Not implemented');
7
- }
8
- // tslint:disable-next-line: variable-name
9
- isEnabled(_feature) {
10
- throw new Error('Not implemented');
11
- }
12
- // tslint:disable-next-line: variable-name
13
- getValue(_key, _defaultValue) {
14
- throw new Error('Not implemented');
15
- }
16
- // tslint:disable-next-line: variable-name
17
- getValueOnce(_key, _defaultValue) {
18
- throw new Error('Not implemented');
19
- }
20
- }
21
- FeatureToggleService.ɵfac = function FeatureToggleService_Factory(t) { return new (t || FeatureToggleService)(); };
22
- FeatureToggleService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureToggleService, factory: FeatureToggleService.ɵfac, providedIn: 'root' });
23
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureToggleService, [{
24
- type: Injectable,
25
- args: [{
26
- providedIn: 'root'
27
- }]
28
- }], null, null); })();
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QiwwQ0FBMEM7SUFDbkMsVUFBVSxDQUFDLEtBQWtCLEVBQUUsU0FBaUI7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCwwQ0FBMEM7SUFDbkMsU0FBUyxDQUFDLFFBQWdCO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsMENBQTBDO0lBQ25DLFFBQVEsQ0FBSSxJQUFZLEVBQUUsYUFBZ0I7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQ0FBMEM7SUFDbkMsWUFBWSxDQUFJLElBQVksRUFBRSxhQUFnQjtRQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQzs7d0ZBakJRLG9CQUFvQjswRUFBcEIsb0JBQW9CLFdBQXBCLG9CQUFvQixtQkFGakIsTUFBTTt1RkFFVCxvQkFBb0I7Y0FIaEMsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmVhdHVyZVVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmVhdHVyZS11c2VyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlVG9nZ2xlU2VydmljZSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGluaXRpYWxpemUoX3VzZXI6IEZlYXR1cmVVc2VyLCBfY2xpZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHZhcmlhYmxlLW5hbWVcbiAgICBwdWJsaWMgaXNFbmFibGVkKF9mZWF0dXJlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGdldFZhbHVlPFI+KF9rZXk6IHN0cmluZywgX2RlZmF1bHRWYWx1ZTogUik6IE9ic2VydmFibGU8Uj4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdmFyaWFibGUtbmFtZVxuICAgIHB1YmxpYyBnZXRWYWx1ZU9uY2U8Uj4oX2tleTogc3RyaW5nLCBfZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxufVxuIl19
@@ -1,114 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { of } from 'rxjs';
4
- import { map, tap } from 'rxjs/operators';
5
- import { getAllCaseworkersFromServices, getSessionStorageKeyForServiceId, setCaseworkers } from '../../gov-ui/util/session-storage/session-storage-utils';
6
- import { PersonRole, RoleCategory } from '../../models';
7
- import { SessionStorageService } from '../storage/session-storage/session-storage.service';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common/http";
10
- import * as i2 from "../storage/session-storage/session-storage.service";
11
- export class FindAPersonService {
12
- constructor(http, sessionStorageService) {
13
- this.http = http;
14
- this.sessionStorageService = sessionStorageService;
15
- }
16
- find(searchOptions) {
17
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
18
- if (userInfoStr && !searchOptions.userIncluded) {
19
- const userInfo = JSON.parse(userInfoStr);
20
- this.userId = userInfo.id ? userInfo.id : userInfo.uid;
21
- }
22
- this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
23
- return this.http.post('/workallocation/findPerson', { searchOptions })
24
- .pipe(map(judiciary => judiciary.filter(judge => !([this.assignedUser].includes(judge.id)))));
25
- // Removed the current user id to fix EUI-8465.
26
- }
27
- findCaseworkers(searchOptions) {
28
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
29
- if (userInfoStr) {
30
- const userInfo = JSON.parse(userInfoStr);
31
- this.userId = userInfo.id ? userInfo.id : userInfo.uid;
32
- }
33
- this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
34
- const fullServices = searchOptions.services;
35
- const storedServices = [];
36
- const newServices = [];
37
- const storedCaseworkersByService = [];
38
- fullServices.forEach(serviceId => {
39
- const serviceKey = getSessionStorageKeyForServiceId(serviceId);
40
- if (this.sessionStorageService.getItem(serviceKey)) {
41
- storedServices.push(serviceId);
42
- storedCaseworkersByService.push({ service: serviceId, caseworkers: JSON.parse(this.sessionStorageService.getItem(serviceKey)) });
43
- }
44
- else {
45
- newServices.push(serviceId);
46
- }
47
- });
48
- // if all services are stored then return the stored caseworkers by service
49
- if (storedServices.length === fullServices.length) {
50
- const storedCaseworkers = getAllCaseworkersFromServices(storedCaseworkersByService);
51
- return of(this.searchInCaseworkers(storedCaseworkers, searchOptions));
52
- }
53
- // all serviceIds passed in as node layer getting used anyway and caseworkers also stored there
54
- return this.http.post('/workallocation/retrieveCaseWorkersForServices', { fullServices }).pipe(tap(caseworkersByService => {
55
- caseworkersByService.forEach(caseworkerListByService => {
56
- // for any new service, ensure that they are then stored in the session
57
- if (newServices.includes(caseworkerListByService.service)) {
58
- setCaseworkers(caseworkerListByService.service, caseworkerListByService.caseworkers, this.sessionStorageService);
59
- }
60
- });
61
- }), map(caseworkersByService => {
62
- const givenCaseworkers = getAllCaseworkersFromServices(caseworkersByService);
63
- return this.searchInCaseworkers(givenCaseworkers, searchOptions);
64
- }));
65
- }
66
- mapCaseworkers(caseworkers, roleCategory) {
67
- const people = [];
68
- caseworkers.forEach((caseworker) => {
69
- const thisPerson = {
70
- email: caseworker.email,
71
- name: `${caseworker.firstName} ${caseworker.lastName}`,
72
- id: caseworker.idamId,
73
- domain: caseworker.roleCategory === RoleCategory.CASEWORKER ? PersonRole.CASEWORKER : PersonRole.ADMIN,
74
- // knownAs can be added if required
75
- };
76
- if (caseworker.roleCategory === roleCategory || roleCategory === RoleCategory.ALL) {
77
- people.push(thisPerson);
78
- }
79
- });
80
- return people;
81
- }
82
- searchInCaseworkers(caseworkers, searchOptions) {
83
- let roleCategory = RoleCategory.ALL;
84
- if (!(searchOptions.userRole === PersonRole.ALL)) {
85
- if (searchOptions.userRole === PersonRole.CASEWORKER) {
86
- roleCategory = RoleCategory.CASEWORKER;
87
- }
88
- else if (searchOptions.userRole === PersonRole.ADMIN) {
89
- roleCategory = RoleCategory.ADMIN;
90
- }
91
- else if (searchOptions.userRole === PersonRole.CTSC) {
92
- roleCategory = RoleCategory.CTSC;
93
- }
94
- }
95
- const searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';
96
- const people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];
97
- const finalPeopleList = people.filter(person => person && person.name && person.name.toLowerCase().includes(searchTerm));
98
- return searchOptions.userIncluded ? finalPeopleList.filter(person => person && person.id !== this.assignedUser)
99
- : finalPeopleList.filter(person => person && person.id !== this.userId && person.id !== this.assignedUser);
100
- }
101
- searchJudicial(value, serviceId) {
102
- return this.http.post('api/prd/judicial/getJudicialUsersSearch', { searchString: value, serviceCode: serviceId });
103
- }
104
- }
105
- FindAPersonService.caseworkersKey = 'caseworkers';
106
- FindAPersonService.ɵfac = function FindAPersonService_Factory(t) { return new (t || FindAPersonService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.SessionStorageService)); };
107
- FindAPersonService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FindAPersonService, factory: FindAPersonService.ɵfac, providedIn: 'root' });
108
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FindAPersonService, [{
109
- type: Injectable,
110
- args: [{
111
- providedIn: 'root'
112
- }]
113
- }], function () { return [{ type: i1.HttpClient }, { type: i2.SessionStorageService }]; }, null); })();
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEVBQ2hDLGNBQWMsRUFDZixNQUFNLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8sRUFLTCxVQUFVLEVBQ1YsWUFBWSxFQUViLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBSzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFBNkIsSUFBZ0IsRUFBbUIscUJBQTRDO1FBQS9FLFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUM1RyxDQUFDO0lBRU0sSUFBSSxDQUFDLGFBQTRCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsSUFBSSxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVyw0QkFBNEIsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDO2FBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRywrQ0FBK0M7SUFDakQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxhQUE0QjtRQUNqRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksV0FBVyxFQUFFO1lBQ2YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuRixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQzVDLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMxQixNQUFNLFdBQVcsR0FBYSxFQUFFLENBQUM7UUFDakMsTUFBTSwwQkFBMEIsR0FBMkIsRUFBRSxDQUFDO1FBQzlELFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDL0IsTUFBTSxVQUFVLEdBQUcsZ0NBQWdDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNsRCxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQiwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDbEk7aUJBQU07Z0JBQ0wsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsMkVBQTJFO1FBQzNFLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ2pELE1BQU0saUJBQWlCLEdBQUcsNkJBQTZCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUNwRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUNELCtGQUErRjtRQUMvRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF5QixnREFBZ0QsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNwSCxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRTtZQUN6QixvQkFBb0IsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsRUFBRTtnQkFDckQsdUVBQXVFO2dCQUN2RSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3pELGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2lCQUNsSDtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7WUFDekIsTUFBTSxnQkFBZ0IsR0FBRyw2QkFBNkIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU0sY0FBYyxDQUFDLFdBQXlCLEVBQUUsWUFBb0I7UUFDbkUsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFVBQVUsR0FBVztnQkFDekIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RELEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTTtnQkFDckIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUs7Z0JBQ3RHLG1DQUFtQzthQUNwQyxDQUFDO1lBQ0YsSUFBSSxVQUFVLENBQUMsWUFBWSxLQUFLLFlBQVksSUFBSSxZQUFZLEtBQUssWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDakYsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFdBQXlCLEVBQUUsYUFBNEI7UUFDaEYsSUFBSSxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQztRQUNwQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLFVBQVUsRUFBRTtnQkFDcEQsWUFBWSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7YUFDeEM7aUJBQU0sSUFBSSxhQUFhLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3RELFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO2FBQ25DO2lCQUFNLElBQUksYUFBYSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsSUFBSSxFQUFFO2dCQUNyRCxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQzthQUNsQztTQUNGO1FBQ0QsTUFBTSxVQUFVLEdBQUcsYUFBYSxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDekgsT0FBTyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM3RyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0IseUNBQXlDLEVBQ2xGLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDOztBQW5HYSxpQ0FBYyxHQUFXLGFBQWEsQ0FBQztvRkFGMUMsa0JBQWtCO3dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZqQixNQUFNO3VGQUVQLGtCQUFrQjtjQUg5QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMsXG4gIGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkLFxuICBzZXRDYXNld29ya2Vyc1xufSBmcm9tICcuLi8uLi9nb3YtdWkvdXRpbC9zZXNzaW9uLXN0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlLXV0aWxzJztcbmltcG9ydCB7XG4gIENhc2V3b3JrZXIsXG4gIENhc2V3b3JrZXJzQnlTZXJ2aWNlLFxuICBKdWRpY2lhbFVzZXJNb2RlbCxcbiAgUGVyc29uLFxuICBQZXJzb25Sb2xlLFxuICBSb2xlQ2F0ZWdvcnksXG4gIFNlYXJjaE9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmluZEFQZXJzb25TZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIGNhc2V3b3JrZXJzS2V5OiBzdHJpbmcgPSAnY2FzZXdvcmtlcnMnO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0ciAmJiAhc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFBlcnNvbltdPignL3dvcmthbGxvY2F0aW9uL2ZpbmRQZXJzb24nLCB7IHNlYXJjaE9wdGlvbnMgfSlcbiAgICAgIC5waXBlKG1hcChqdWRpY2lhcnkgPT4ganVkaWNpYXJ5LmZpbHRlcihqdWRnZSA9PiAhKFt0aGlzLmFzc2lnbmVkVXNlcl0uaW5jbHVkZXMoanVkZ2UuaWQpKSkpKTtcbiAgICAvLyBSZW1vdmVkIHRoZSBjdXJyZW50IHVzZXIgaWQgdG8gZml4IEVVSS04NDY1LlxuICB9XG5cbiAgcHVibGljIGZpbmRDYXNld29ya2VycyhzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zKTogT2JzZXJ2YWJsZTxQZXJzb25bXT4ge1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgY29uc3QgZnVsbFNlcnZpY2VzID0gc2VhcmNoT3B0aW9ucy5zZXJ2aWNlcztcbiAgICBjb25zdCBzdG9yZWRTZXJ2aWNlcyA9IFtdO1xuICAgIGNvbnN0IG5ld1NlcnZpY2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlOiBDYXNld29ya2Vyc0J5U2VydmljZVtdID0gW107XG4gICAgZnVsbFNlcnZpY2VzLmZvckVhY2goc2VydmljZUlkID0+IHtcbiAgICAgIGNvbnN0IHNlcnZpY2VLZXkgPSBnZXRTZXNzaW9uU3RvcmFnZUtleUZvclNlcnZpY2VJZChzZXJ2aWNlSWQpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oc2VydmljZUtleSkpIHtcbiAgICAgICAgc3RvcmVkU2VydmljZXMucHVzaChzZXJ2aWNlSWQpO1xuICAgICAgICBzdG9yZWRDYXNld29ya2Vyc0J5U2VydmljZS5wdXNoKHsgc2VydmljZTogc2VydmljZUlkLCBjYXNld29ya2VyczogSlNPTi5wYXJzZSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKHNlcnZpY2VLZXkpKSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NlcnZpY2VzLnB1c2goc2VydmljZUlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBpZiBhbGwgc2VydmljZXMgYXJlIHN0b3JlZCB0aGVuIHJldHVybiB0aGUgc3RvcmVkIGNhc2V3b3JrZXJzIGJ5IHNlcnZpY2VcbiAgICBpZiAoc3RvcmVkU2VydmljZXMubGVuZ3RoID09PSBmdWxsU2VydmljZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdG9yZWRDYXNld29ya2VycyA9IGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzKHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlKTtcbiAgICAgIHJldHVybiBvZih0aGlzLnNlYXJjaEluQ2FzZXdvcmtlcnMoc3RvcmVkQ2FzZXdvcmtlcnMsIHNlYXJjaE9wdGlvbnMpKTtcbiAgICB9XG4gICAgLy8gYWxsIHNlcnZpY2VJZHMgcGFzc2VkIGluIGFzIG5vZGUgbGF5ZXIgZ2V0dGluZyB1c2VkIGFueXdheSBhbmQgY2FzZXdvcmtlcnMgYWxzbyBzdG9yZWQgdGhlcmVcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2FzZXdvcmtlcnNCeVNlcnZpY2VbXT4oJy93b3JrYWxsb2NhdGlvbi9yZXRyaWV2ZUNhc2VXb3JrZXJzRm9yU2VydmljZXMnLCB7IGZ1bGxTZXJ2aWNlcyB9KS5waXBlKFxuICAgICAgdGFwKGNhc2V3b3JrZXJzQnlTZXJ2aWNlID0+IHtcbiAgICAgICAgY2FzZXdvcmtlcnNCeVNlcnZpY2UuZm9yRWFjaChjYXNld29ya2VyTGlzdEJ5U2VydmljZSA9PiB7XG4gICAgICAgICAgLy8gZm9yIGFueSBuZXcgc2VydmljZSwgZW5zdXJlIHRoYXQgdGhleSBhcmUgdGhlbiBzdG9yZWQgaW4gdGhlIHNlc3Npb25cbiAgICAgICAgICBpZiAobmV3U2VydmljZXMuaW5jbHVkZXMoY2FzZXdvcmtlckxpc3RCeVNlcnZpY2Uuc2VydmljZSkpIHtcbiAgICAgICAgICAgIHNldENhc2V3b3JrZXJzKGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlLnNlcnZpY2UsIGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlLmNhc2V3b3JrZXJzLCB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKGNhc2V3b3JrZXJzQnlTZXJ2aWNlID0+IHtcbiAgICAgICAgY29uc3QgZ2l2ZW5DYXNld29ya2VycyA9IGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzKGNhc2V3b3JrZXJzQnlTZXJ2aWNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoSW5DYXNld29ya2VycyhnaXZlbkNhc2V3b3JrZXJzLCBzZWFyY2hPcHRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBDYXNld29ya2VycyhjYXNld29ya2VyczogQ2FzZXdvcmtlcltdLCByb2xlQ2F0ZWdvcnk6IHN0cmluZyk6IFBlcnNvbltdIHtcbiAgICBjb25zdCBwZW9wbGU6IFBlcnNvbltdID0gW107XG4gICAgY2FzZXdvcmtlcnMuZm9yRWFjaCgoY2FzZXdvcmtlcikgPT4ge1xuICAgICAgY29uc3QgdGhpc1BlcnNvbjogUGVyc29uID0ge1xuICAgICAgICBlbWFpbDogY2FzZXdvcmtlci5lbWFpbCxcbiAgICAgICAgbmFtZTogYCR7Y2FzZXdvcmtlci5maXJzdE5hbWV9ICR7Y2FzZXdvcmtlci5sYXN0TmFtZX1gLFxuICAgICAgICBpZDogY2FzZXdvcmtlci5pZGFtSWQsXG4gICAgICAgIGRvbWFpbjogY2FzZXdvcmtlci5yb2xlQ2F0ZWdvcnkgPT09IFJvbGVDYXRlZ29yeS5DQVNFV09SS0VSID8gUGVyc29uUm9sZS5DQVNFV09SS0VSIDogUGVyc29uUm9sZS5BRE1JTixcbiAgICAgICAgLy8ga25vd25BcyBjYW4gYmUgYWRkZWQgaWYgcmVxdWlyZWRcbiAgICAgIH07XG4gICAgICBpZiAoY2FzZXdvcmtlci5yb2xlQ2F0ZWdvcnkgPT09IHJvbGVDYXRlZ29yeSB8fCByb2xlQ2F0ZWdvcnkgPT09IFJvbGVDYXRlZ29yeS5BTEwpIHtcbiAgICAgICAgcGVvcGxlLnB1c2godGhpc1BlcnNvbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBlb3BsZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hJbkNhc2V3b3JrZXJzKGNhc2V3b3JrZXJzOiBDYXNld29ya2VyW10sIHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBQZXJzb25bXSB7XG4gICAgbGV0IHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5BTEw7XG4gICAgaWYgKCEoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5BTEwpKSB7XG4gICAgICBpZiAoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5DQVNFV09SS0VSKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5DQVNFV09SS0VSO1xuICAgICAgfSBlbHNlIGlmIChzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkFETUlOKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5BRE1JTjtcbiAgICAgIH0gZWxzZSBpZiAoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5DVFNDKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5DVFNDO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWFyY2hUZXJtID0gc2VhcmNoT3B0aW9ucyAmJiBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0gPyBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgIGNvbnN0IHBlb3BsZSA9IGNhc2V3b3JrZXJzID8gdGhpcy5tYXBDYXNld29ya2VycyhjYXNld29ya2Vycywgcm9sZUNhdGVnb3J5KSA6IFtdO1xuICAgIGNvbnN0IGZpbmFsUGVvcGxlTGlzdCA9IHBlb3BsZS5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24ubmFtZSAmJiBwZXJzb24ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pKTtcbiAgICByZXR1cm4gc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQgPyBmaW5hbFBlb3BsZUxpc3QuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLmlkICE9PSB0aGlzLmFzc2lnbmVkVXNlcilcbiAgICAgIDogZmluYWxQZW9wbGVMaXN0LmZpbHRlcihwZXJzb24gPT4gcGVyc29uICYmIHBlcnNvbi5pZCAhPT0gdGhpcy51c2VySWQgJiYgcGVyc29uLmlkICE9PSB0aGlzLmFzc2lnbmVkVXNlcik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoSnVkaWNpYWwodmFsdWU6IHN0cmluZywgc2VydmljZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEp1ZGljaWFsVXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SnVkaWNpYWxVc2VyTW9kZWxbXT4oJ2FwaS9wcmQvanVkaWNpYWwvZ2V0SnVkaWNpYWxVc2Vyc1NlYXJjaCcsXG4gICAgICB7IHNlYXJjaFN0cmluZzogdmFsdWUsIHNlcnZpY2VDb2RlOiBzZXJ2aWNlSWQgfSk7XG4gIH1cbn1cblxuIl19
@@ -1,68 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { Title } from '@angular/platform-browser';
4
- import { NavigationEnd, Router } from '@angular/router';
5
- import { windowToken } from '../../window';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- import * as i2 from "@angular/platform-browser";
9
- export class GoogleAnalyticsService {
10
- constructor(router, title, window, document) {
11
- this.router = router;
12
- this.title = title;
13
- this.window = window;
14
- this.document = document;
15
- }
16
- init(googleAnalyticsKey) {
17
- this.googleAnalyticsKey = googleAnalyticsKey;
18
- try {
19
- const script1 = this.document.createElement('script');
20
- script1.async = true;
21
- script1.src = `https://www.googletagmanager.com/gtag/js?id=${this.googleAnalyticsKey}`;
22
- this.document.head.appendChild(script1);
23
- const script2 = this.document.createElement('script');
24
- script2.innerHTML = `
25
- window.dataLayer = window.dataLayer || [];
26
- function gtag(){dataLayer.push(arguments);}
27
- gtag('js', new Date());
28
- gtag('config', '${this.googleAnalyticsKey}', {'send_page_view': false});
29
- `;
30
- this.document.head.appendChild(script2);
31
- }
32
- catch (ex) {
33
- console.error('Error appending google analytics');
34
- console.error(ex);
35
- }
36
- this.listenForRouteChanges();
37
- }
38
- listenForRouteChanges() {
39
- if (this.googleAnalyticsKey) {
40
- this.router.events.subscribe(event => {
41
- if (event instanceof NavigationEnd) {
42
- this.window.gtag('config', this.googleAnalyticsKey, {
43
- page_path: event.urlAfterRedirects,
44
- page_title: this.title.getTitle(),
45
- });
46
- }
47
- });
48
- }
49
- }
50
- event(eventName, params) {
51
- this.window.gtag('event', eventName, params);
52
- }
53
- }
54
- GoogleAnalyticsService.ɵfac = function GoogleAnalyticsService_Factory(t) { return new (t || GoogleAnalyticsService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Title), i0.ɵɵinject(windowToken), i0.ɵɵinject(DOCUMENT)); };
55
- GoogleAnalyticsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GoogleAnalyticsService, factory: GoogleAnalyticsService.ɵfac, providedIn: 'root' });
56
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GoogleAnalyticsService, [{
57
- type: Injectable,
58
- args: [{
59
- providedIn: 'root'
60
- }]
61
- }], function () { return [{ type: i1.Router }, { type: i2.Title }, { type: undefined, decorators: [{
62
- type: Inject,
63
- args: [windowToken]
64
- }] }, { type: undefined, decorators: [{
65
- type: Inject,
66
- args: [DOCUMENT]
67
- }] }]; }, null); })();
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvZ29vZ2xlLWFuYWx5dGljcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFNM0MsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUNtQixNQUFjLEVBQ2QsS0FBWSxFQUNSLE1BQVcsRUFDZCxRQUFhO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQU87UUFJN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFnQixDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBb0IsQ0FBQztJQUV2QyxDQUFDO0lBRU0sSUFBSSxDQUFDLGtCQUEwQjtRQUNwQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsK0NBQStDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0RCxPQUFPLENBQUMsU0FBUyxHQUFHOzs7OzBCQUlBLElBQUksQ0FBQyxrQkFBa0I7T0FDMUMsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QztRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO29CQUNqQyxJQUFJLENBQUMsTUFBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUMzRCxTQUFTLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjt3QkFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO3FCQUNsQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFpQixFQUFFLE1BQVU7UUFDdkMsSUFBSSxDQUFDLE1BQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs0RkF2RFUsc0JBQXNCLDZEQVN2QixXQUFXLGVBQ1gsUUFBUTs0RUFWUCxzQkFBc0IsV0FBdEIsc0JBQXNCLG1CQUhyQixNQUFNO3VGQUdQLHNCQUFzQjtjQUpsQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVdJLE1BQU07dUJBQUMsV0FBVzs7c0JBQ2xCLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlQW5hbHl0aWNzU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XG5cbiAgcHVibGljIGdvb2dsZUFuYWx5dGljc0tleTogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGU6IFRpdGxlLFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pIHdpbmRvdzogYW55LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICkge1xuICAgIHRoaXMud2luZG93ID0gd2luZG93IGFzIFdpbmRvdztcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG5cbiAgfVxuXG4gIHB1YmxpYyBpbml0KGdvb2dsZUFuYWx5dGljc0tleTogc3RyaW5nKSB7XG4gICAgdGhpcy5nb29nbGVBbmFseXRpY3NLZXkgPSBnb29nbGVBbmFseXRpY3NLZXk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNjcmlwdDEgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0MS5hc3luYyA9IHRydWU7XG4gICAgICBzY3JpcHQxLnNyYyA9IGBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPSR7dGhpcy5nb29nbGVBbmFseXRpY3NLZXl9YDtcbiAgICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQxKTtcblxuICAgICAgY29uc3Qgc2NyaXB0MiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQyLmlubmVySFRNTCA9IGBcbiAgICAgICAgd2luZG93LmRhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107XG4gICAgICAgIGZ1bmN0aW9uIGd0YWcoKXtkYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpO31cbiAgICAgICAgZ3RhZygnanMnLCBuZXcgRGF0ZSgpKTtcbiAgICAgICAgZ3RhZygnY29uZmlnJywgJyR7dGhpcy5nb29nbGVBbmFseXRpY3NLZXl9JywgeydzZW5kX3BhZ2Vfdmlldyc6IGZhbHNlfSk7XG4gICAgICBgO1xuICAgICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdDIpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhcHBlbmRpbmcgZ29vZ2xlIGFuYWx5dGljcycpO1xuICAgICAgY29uc29sZS5lcnJvcihleCk7XG4gICAgfVxuICAgIHRoaXMubGlzdGVuRm9yUm91dGVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvclJvdXRlQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5nb29nbGVBbmFseXRpY3NLZXkpIHtcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZ3RhZygnY29uZmlnJywgdGhpcy5nb29nbGVBbmFseXRpY3NLZXksIHtcbiAgICAgICAgICAgIHBhZ2VfcGF0aDogZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMsXG4gICAgICAgICAgICBwYWdlX3RpdGxlOiB0aGlzLnRpdGxlLmdldFRpdGxlKCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBldmVudChldmVudE5hbWU6IHN0cmluZywgcGFyYW1zOiB7fSkge1xuICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmd0YWcoJ2V2ZW50JywgZXZlbnROYW1lLCBwYXJhbXMpO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,71 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { Title } from '@angular/platform-browser';
4
- import { NavigationEnd, Router } from '@angular/router';
5
- import { windowToken } from '../../window';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- import * as i2 from "@angular/platform-browser";
9
- export class GoogleTagManagerService {
10
- constructor(router, title, window, document) {
11
- this.router = router;
12
- this.title = title;
13
- this.window = window;
14
- this.document = document;
15
- }
16
- init(googleTagManagerKey) {
17
- this.googleTagManagerKey = googleTagManagerKey;
18
- try {
19
- this.window.dataLayer = this.window.dataLayer || [];
20
- this.window.dataLayer.push({
21
- 'gtm.start': new Date().getTime(),
22
- event: 'gtm.js'
23
- });
24
- const script = this.document.createElement('script');
25
- script.async = true;
26
- script.src = `https://www.googletagmanager.com/gtm.js?id=${this.googleTagManagerKey}`;
27
- this.document.head.appendChild(script);
28
- }
29
- catch (ex) {
30
- console.error('Error appending google tag manager');
31
- console.error(ex);
32
- }
33
- this.listenForRouteChanges();
34
- }
35
- listenForRouteChanges() {
36
- if (this.googleTagManagerKey) {
37
- this.router.events.subscribe(event => {
38
- if (event instanceof NavigationEnd) {
39
- this.window.dataLayer.push({
40
- event: 'pageview',
41
- page: {
42
- path: event.urlAfterRedirects,
43
- title: this.title.getTitle()
44
- }
45
- });
46
- }
47
- });
48
- }
49
- }
50
- event(eventName, params) {
51
- this.window.dataLayer.push({
52
- event: eventName,
53
- params
54
- });
55
- }
56
- }
57
- GoogleTagManagerService.ɵfac = function GoogleTagManagerService_Factory(t) { return new (t || GoogleTagManagerService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Title), i0.ɵɵinject(windowToken), i0.ɵɵinject(DOCUMENT)); };
58
- GoogleTagManagerService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GoogleTagManagerService, factory: GoogleTagManagerService.ɵfac, providedIn: 'root' });
59
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GoogleTagManagerService, [{
60
- type: Injectable,
61
- args: [{
62
- providedIn: 'root'
63
- }]
64
- }], function () { return [{ type: i1.Router }, { type: i2.Title }, { type: undefined, decorators: [{
65
- type: Inject,
66
- args: [windowToken]
67
- }] }, { type: undefined, decorators: [{
68
- type: Inject,
69
- args: [DOCUMENT]
70
- }] }]; }, null); })();
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9nb29nbGUtdGFnLW1hbmFnZXIvZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFLM0MsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUNtQixNQUFjLEVBQ2QsS0FBWSxFQUNSLE1BQVcsRUFDZCxRQUFhO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQU87UUFJN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFnQixDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBb0IsQ0FBQztJQUN2QyxDQUFDO0lBRU0sSUFBSSxDQUFDLG1CQUEyQjtRQUNyQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSTtZQUVELElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxHQUFJLElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNyRSxJQUFJLENBQUMsTUFBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xDLFdBQVcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsS0FBSyxFQUFFLFFBQVE7YUFDaEIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTSxDQUFDLEdBQUcsR0FBRyw4Q0FBOEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBRXhDO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDbEMsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLElBQUksRUFBRTs0QkFDSixJQUFJLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjs0QkFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO3lCQUM3QjtxQkFDRixDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFpQixFQUFFLE1BQVU7UUFDdkMsSUFBSSxDQUFDLE1BQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2xDLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDOzs4RkExRFUsdUJBQXVCLDZEQVF4QixXQUFXLGVBQ1gsUUFBUTs2RUFUUCx1QkFBdUIsV0FBdkIsdUJBQXVCLG1CQUZ0QixNQUFNO3VGQUVQLHVCQUF1QjtjQUhuQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVNJLE1BQU07dUJBQUMsV0FBVzs7c0JBQ2xCLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVRhZ01hbmFnZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XG5cbiAgcHVibGljIGdvb2dsZVRhZ01hbmFnZXJLZXk6IHN0cmluZztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlOiBUaXRsZSxcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSB3aW5kb3c6IGFueSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55XG4gICkge1xuICAgIHRoaXMud2luZG93ID0gd2luZG93IGFzIFdpbmRvdztcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgaW5pdChnb29nbGVUYWdNYW5hZ2VyS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmdvb2dsZVRhZ01hbmFnZXJLZXkgPSBnb29nbGVUYWdNYW5hZ2VyS2V5O1xuICAgIHRyeSB7XG5cbiAgICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllciA9ICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllciB8fCBbXTtcbiAgICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllci5wdXNoKHtcbiAgICAgICAgJ2d0bS5zdGFydCc6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxuICAgICAgICBldmVudDogJ2d0bS5qcydcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgIHNjcmlwdC5zcmMgPSBgaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPSR7dGhpcy5nb29nbGVUYWdNYW5hZ2VyS2V5fWA7XG4gICAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblxuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhcHBlbmRpbmcgZ29vZ2xlIHRhZyBtYW5hZ2VyJyk7XG4gICAgICBjb25zb2xlLmVycm9yKGV4KTtcbiAgICB9XG4gICAgdGhpcy5saXN0ZW5Gb3JSb3V0ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9yUm91dGVDaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLmdvb2dsZVRhZ01hbmFnZXJLZXkpIHtcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyLnB1c2goe1xuICAgICAgICAgICAgZXZlbnQ6ICdwYWdldmlldycsXG4gICAgICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgICAgIHBhdGg6IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50aXRsZS5nZXRUaXRsZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBldmVudChldmVudE5hbWU6IHN0cmluZywgcGFyYW1zOiB7fSkge1xuICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllci5wdXNoKHtcbiAgICAgIGV2ZW50OiBldmVudE5hbWUsXG4gICAgICBwYXJhbXNcbiAgICB9KTtcbiAgfVxufVxuIl19