@hmcts/rpx-xui-common-lib 2.0.19 → 2.0.21

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 (279) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/components/accessibility/accessibility.component.mjs +725 -0
  3. package/esm2022/lib/components/checkbox-list/checkbox-list.component.mjs +232 -0
  4. package/esm2022/lib/components/contact-details/contact-details.component.mjs +104 -0
  5. package/esm2022/lib/components/cookie-banner/cookie-banner.component.mjs +151 -0
  6. package/esm2022/lib/components/due-date/due-date.component.mjs +141 -0
  7. package/esm2022/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +80 -0
  8. package/esm2022/lib/components/find-location/find-location.component.mjs +220 -0
  9. package/esm2022/lib/components/find-person/find-person.component.mjs +234 -0
  10. package/esm2022/lib/components/find-service/find-service.component.mjs +193 -0
  11. package/{esm2020 → esm2022}/lib/components/find-task-name/find-task-name.component.mjs +53 -53
  12. package/{esm2020 → esm2022}/lib/components/generic-filter/generic-filter-utils.mjs +1 -1
  13. package/esm2022/lib/components/generic-filter/generic-filter.component.mjs +1184 -0
  14. package/esm2022/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +56 -0
  15. package/esm2022/lib/components/invite-user-form/invite-user-form.component.mjs +51 -0
  16. package/esm2022/lib/components/invite-user-permissions/invite-user-permission.component.mjs +54 -0
  17. package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +33 -0
  18. package/esm2022/lib/components/pagination/pagination.component.mjs +92 -0
  19. package/esm2022/lib/components/search-judicials/search-judicials.component.mjs +185 -0
  20. package/esm2022/lib/components/search-location/search-location.component.mjs +237 -0
  21. package/esm2022/lib/components/search-service/search-service.component.mjs +83 -0
  22. package/esm2022/lib/components/search-venue/search-venue.component.mjs +190 -0
  23. package/esm2022/lib/components/selected-case/selected-case.component.mjs +379 -0
  24. package/esm2022/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +135 -0
  25. package/esm2022/lib/components/selected-case-list/selected-case-list.component.mjs +98 -0
  26. package/esm2022/lib/components/service-message/service-message.component.mjs +51 -0
  27. package/esm2022/lib/components/service-messages/service-messages.component.mjs +76 -0
  28. package/esm2022/lib/components/share-case/share-case.component.mjs +420 -0
  29. package/esm2022/lib/components/share-case-confirm/share-case-confirm.component.mjs +85 -0
  30. package/esm2022/lib/components/tab/tab.component.mjs +40 -0
  31. package/esm2022/lib/components/tc-confirm/tc-confirm.component.mjs +66 -0
  32. package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +17 -0
  33. package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +17 -0
  34. package/esm2022/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +58 -0
  35. package/esm2022/lib/components/user-details/user-details.component.mjs +273 -0
  36. package/esm2022/lib/components/user-list/user-list.component.mjs +100 -0
  37. package/esm2022/lib/components/user-select/user-select.component.mjs +94 -0
  38. package/esm2022/lib/components/write-address/write-address.component.mjs +342 -0
  39. package/esm2022/lib/components/write-address-inputs/write-address-inputs.component.mjs +165 -0
  40. package/esm2022/lib/directives/feature-toggle/feature-toggle.directive.mjs +41 -0
  41. package/{esm2020 → esm2022}/lib/directives/let/let.directive.mjs +5 -5
  42. package/{esm2020 → esm2022}/lib/exui-common-lib.module.mjs +15 -15
  43. package/esm2022/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +55 -0
  44. package/esm2022/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +137 -0
  45. package/esm2022/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +121 -0
  46. package/esm2022/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +46 -0
  47. package/esm2022/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +79 -0
  48. package/esm2022/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +79 -0
  49. package/esm2022/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +45 -0
  50. package/esm2022/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +71 -0
  51. package/esm2022/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +84 -0
  52. package/esm2022/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +48 -0
  53. package/esm2022/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +42 -0
  54. package/esm2022/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +80 -0
  55. package/esm2022/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +185 -0
  56. package/esm2022/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +57 -0
  57. package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +111 -0
  58. package/esm2022/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +140 -0
  59. package/esm2022/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +34 -0
  60. package/esm2022/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +129 -0
  61. package/esm2022/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +204 -0
  62. package/esm2022/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +60 -0
  63. package/esm2022/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +58 -0
  64. package/esm2022/lib/gov-ui/directives/remove-host.directive.mjs +30 -0
  65. package/{esm2020 → esm2022}/lib/gov-ui/gov-ui.service.mjs +5 -5
  66. package/esm2022/lib/gov-ui/util/helpers/html-templates.helper.mjs +22 -0
  67. package/{esm2020 → esm2022}/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs +1 -1
  68. package/{esm2020 → esm2022}/lib/gov-ui/validators/date.validator.mjs +1 -1
  69. package/esm2022/lib/gov-ui/validators/radio-group.validator.mjs +15 -0
  70. package/esm2022/lib/models/address-option.model.mjs +21 -0
  71. package/{esm2020 → esm2022}/lib/pipes/capitalize/capitalize.pipe.mjs +4 -4
  72. package/esm2022/lib/services/address/address-parser.mjs +76 -0
  73. package/esm2022/lib/services/address/address.service.mjs +55 -0
  74. package/esm2022/lib/services/case-sharing-state/case-sharing-state.service.mjs +170 -0
  75. package/{esm2020 → esm2022}/lib/services/cookie/cookie.service.mjs +6 -6
  76. package/{esm2020 → esm2022}/lib/services/feature-toggle/feature-toggle.guard.mjs +5 -5
  77. package/{esm2020 → esm2022}/lib/services/feature-toggle/feature-toggle.service.mjs +4 -4
  78. package/esm2022/lib/services/feature-toggle/launch-darkly.service.mjs +65 -0
  79. package/esm2022/lib/services/filter/filter.service.mjs +95 -0
  80. package/esm2022/lib/services/find-person/find-person.service.mjs +83 -0
  81. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +68 -0
  82. package/esm2022/lib/services/google-tag-manager/google-tag-manager.service.mjs +71 -0
  83. package/{esm2020 → esm2022}/lib/services/loading/loading.service.mjs +4 -4
  84. package/{esm2020 → esm2022}/lib/services/locations/location.service.mjs +5 -5
  85. package/{esm2020 → esm2022}/lib/services/manage-session/manage-session.services.mjs +5 -5
  86. package/esm2022/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +33 -0
  87. package/esm2022/lib/services/ref-data/ref-data.service.mjs +34 -0
  88. package/{esm2020 → esm2022}/lib/services/role-guard/role.guard.mjs +5 -5
  89. package/{esm2020 → esm2022}/lib/services/role-guard/role.service.mjs +4 -4
  90. package/esm2022/lib/services/storage/session-storage/session-storage.service.mjs +43 -0
  91. package/esm2022/lib/services/task-name/task-name.service.mjs +35 -0
  92. package/{esm2020 → esm2022}/lib/services/timeout-notifications/timeout-notifications.service.mjs +5 -5
  93. package/{fesm2020 → fesm2022}/hmcts-rpx-xui-common-lib.mjs +2823 -2835
  94. package/fesm2022/hmcts-rpx-xui-common-lib.mjs.map +1 -0
  95. package/lib/components/checkbox-list/checkbox-list.component.d.ts +1 -1
  96. package/lib/components/contact-details/contact-details.component.d.ts +1 -1
  97. package/lib/components/cookie-banner/cookie-banner.component.d.ts +1 -1
  98. package/lib/components/due-date/due-date.component.d.ts +1 -1
  99. package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +1 -1
  100. package/lib/components/find-location/find-location.component.d.ts +1 -1
  101. package/lib/components/find-person/find-person.component.d.ts +1 -1
  102. package/lib/components/find-service/find-service.component.d.ts +1 -1
  103. package/lib/components/find-task-name/find-task-name.component.d.ts +1 -1
  104. package/lib/components/generic-filter/generic-filter.component.d.ts +1 -1
  105. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  106. package/lib/components/invite-user-form/invite-user-form.component.d.ts +1 -1
  107. package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +1 -1
  108. package/lib/components/loading-spinner/loading-spinner.component.d.ts +1 -1
  109. package/lib/components/pagination/pagination.component.d.ts +1 -1
  110. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  111. package/lib/components/search-location/search-location.component.d.ts +1 -1
  112. package/lib/components/search-service/search-service.component.d.ts +1 -1
  113. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  114. package/lib/components/selected-case/selected-case.component.d.ts +1 -1
  115. package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +1 -1
  116. package/lib/components/selected-case-list/selected-case-list.component.d.ts +1 -1
  117. package/lib/components/service-message/service-message.component.d.ts +1 -1
  118. package/lib/components/service-messages/service-messages.component.d.ts +1 -1
  119. package/lib/components/share-case/share-case.component.d.ts +1 -1
  120. package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +1 -1
  121. package/lib/components/tab/tab.component.d.ts +1 -1
  122. package/lib/components/tc-confirm/tc-confirm.component.d.ts +1 -1
  123. package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +1 -1
  124. package/lib/components/user-details/user-details.component.d.ts +1 -1
  125. package/lib/components/user-list/user-list.component.d.ts +1 -1
  126. package/lib/components/user-select/user-select.component.d.ts +1 -1
  127. package/lib/components/write-address/write-address.component.d.ts +1 -1
  128. package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +1 -1
  129. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  130. package/lib/directives/let/let.directive.d.ts +1 -1
  131. package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +1 -1
  132. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +1 -1
  133. package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +1 -1
  134. package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -1
  135. package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -1
  136. package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +1 -1
  137. package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +1 -1
  138. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +1 -1
  139. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +1 -1
  140. package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +1 -1
  141. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +1 -1
  142. package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +1 -1
  143. package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +1 -1
  144. package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +1 -1
  145. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +1 -1
  146. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  147. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  148. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
  149. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +1 -1
  150. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  151. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +1 -1
  152. package/lib/services/feature-toggle/feature-toggle.guard.d.ts +2 -2
  153. package/lib/services/role-guard/role.guard.d.ts +2 -2
  154. package/package.json +5 -11
  155. package/esm2020/lib/components/accessibility/accessibility.component.mjs +0 -737
  156. package/esm2020/lib/components/checkbox-list/checkbox-list.component.mjs +0 -231
  157. package/esm2020/lib/components/contact-details/contact-details.component.mjs +0 -107
  158. package/esm2020/lib/components/cookie-banner/cookie-banner.component.mjs +0 -150
  159. package/esm2020/lib/components/due-date/due-date.component.mjs +0 -140
  160. package/esm2020/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +0 -79
  161. package/esm2020/lib/components/find-location/find-location.component.mjs +0 -219
  162. package/esm2020/lib/components/find-person/find-person.component.mjs +0 -234
  163. package/esm2020/lib/components/find-service/find-service.component.mjs +0 -192
  164. package/esm2020/lib/components/generic-filter/generic-filter.component.mjs +0 -1198
  165. package/esm2020/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +0 -55
  166. package/esm2020/lib/components/invite-user-form/invite-user-form.component.mjs +0 -50
  167. package/esm2020/lib/components/invite-user-permissions/invite-user-permission.component.mjs +0 -54
  168. package/esm2020/lib/components/loading-spinner/loading-spinner.component.mjs +0 -32
  169. package/esm2020/lib/components/pagination/pagination.component.mjs +0 -93
  170. package/esm2020/lib/components/search-judicials/search-judicials.component.mjs +0 -184
  171. package/esm2020/lib/components/search-location/search-location.component.mjs +0 -236
  172. package/esm2020/lib/components/search-service/search-service.component.mjs +0 -81
  173. package/esm2020/lib/components/search-venue/search-venue.component.mjs +0 -188
  174. package/esm2020/lib/components/selected-case/selected-case.component.mjs +0 -380
  175. package/esm2020/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +0 -135
  176. package/esm2020/lib/components/selected-case-list/selected-case-list.component.mjs +0 -98
  177. package/esm2020/lib/components/service-message/service-message.component.mjs +0 -50
  178. package/esm2020/lib/components/service-messages/service-messages.component.mjs +0 -75
  179. package/esm2020/lib/components/share-case/share-case.component.mjs +0 -420
  180. package/esm2020/lib/components/share-case-confirm/share-case-confirm.component.mjs +0 -85
  181. package/esm2020/lib/components/tab/tab.component.mjs +0 -39
  182. package/esm2020/lib/components/tc-confirm/tc-confirm.component.mjs +0 -65
  183. package/esm2020/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +0 -16
  184. package/esm2020/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +0 -16
  185. package/esm2020/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +0 -59
  186. package/esm2020/lib/components/user-details/user-details.component.mjs +0 -281
  187. package/esm2020/lib/components/user-list/user-list.component.mjs +0 -99
  188. package/esm2020/lib/components/user-select/user-select.component.mjs +0 -92
  189. package/esm2020/lib/components/write-address/write-address.component.mjs +0 -345
  190. package/esm2020/lib/components/write-address-inputs/write-address-inputs.component.mjs +0 -165
  191. package/esm2020/lib/directives/feature-toggle/feature-toggle.directive.mjs +0 -41
  192. package/esm2020/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +0 -54
  193. package/esm2020/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +0 -136
  194. package/esm2020/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +0 -120
  195. package/esm2020/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +0 -45
  196. package/esm2020/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +0 -80
  197. package/esm2020/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +0 -78
  198. package/esm2020/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +0 -45
  199. package/esm2020/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +0 -70
  200. package/esm2020/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +0 -84
  201. package/esm2020/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +0 -47
  202. package/esm2020/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +0 -41
  203. package/esm2020/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +0 -79
  204. package/esm2020/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +0 -188
  205. package/esm2020/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +0 -56
  206. package/esm2020/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +0 -112
  207. package/esm2020/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +0 -141
  208. package/esm2020/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +0 -33
  209. package/esm2020/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +0 -130
  210. package/esm2020/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +0 -204
  211. package/esm2020/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +0 -59
  212. package/esm2020/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +0 -57
  213. package/esm2020/lib/gov-ui/directives/remove-host.directive.mjs +0 -30
  214. package/esm2020/lib/gov-ui/util/helpers/html-templates.helper.mjs +0 -22
  215. package/esm2020/lib/gov-ui/validators/radio-group.validator.mjs +0 -15
  216. package/esm2020/lib/models/address-option.model.mjs +0 -21
  217. package/esm2020/lib/services/address/address-parser.mjs +0 -76
  218. package/esm2020/lib/services/address/address.service.mjs +0 -55
  219. package/esm2020/lib/services/case-sharing-state/case-sharing-state.service.mjs +0 -170
  220. package/esm2020/lib/services/feature-toggle/launch-darkly.service.mjs +0 -65
  221. package/esm2020/lib/services/filter/filter.service.mjs +0 -95
  222. package/esm2020/lib/services/find-person/find-person.service.mjs +0 -83
  223. package/esm2020/lib/services/google-analytics/google-analytics.service.mjs +0 -68
  224. package/esm2020/lib/services/google-tag-manager/google-tag-manager.service.mjs +0 -71
  225. package/esm2020/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +0 -33
  226. package/esm2020/lib/services/ref-data/ref-data.service.mjs +0 -34
  227. package/esm2020/lib/services/storage/session-storage/session-storage.service.mjs +0 -43
  228. package/esm2020/lib/services/task-name/task-name.service.mjs +0 -35
  229. package/fesm2015/hmcts-rpx-xui-common-lib.mjs +0 -11073
  230. package/fesm2015/hmcts-rpx-xui-common-lib.mjs.map +0 -1
  231. package/fesm2020/hmcts-rpx-xui-common-lib.mjs.map +0 -1
  232. /package/{esm2020 → esm2022}/hmcts-rpx-xui-common-lib.mjs +0 -0
  233. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  234. /package/{esm2020 → esm2022}/lib/components/public_api.mjs +0 -0
  235. /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
  236. /package/{esm2020 → esm2022}/lib/directives/public-api.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/gov-ui/components/index.mjs +0 -0
  239. /package/{esm2020 → esm2022}/lib/gov-ui/components/public_api.mjs +0 -0
  240. /package/{esm2020 → esm2022}/lib/gov-ui/index.mjs +0 -0
  241. /package/{esm2020 → esm2022}/lib/gov-ui/models/checkboxes-model.mjs +0 -0
  242. /package/{esm2020 → esm2022}/lib/gov-ui/models/error-messages-model.mjs +0 -0
  243. /package/{esm2020 → esm2022}/lib/gov-ui/models/gov-ui-config-model.mjs +0 -0
  244. /package/{esm2020 → esm2022}/lib/gov-ui/models/index.mjs +0 -0
  245. /package/{esm2020 → esm2022}/lib/gov-ui/models/public_api.mjs +0 -0
  246. /package/{esm2020 → esm2022}/lib/gov-ui/models/radio-buttons.model.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/gov-ui/public_api.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/gov-ui/validators/index.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/gov-ui/validators/public_api.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/models/address-message.enum.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/models/address.model.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/models/case-share.model.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/models/contact-details.model.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/models/due-date.model.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/models/feature-user.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/models/filter.model.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/models/idle-config.model.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/models/location.model.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/models/pagination.model.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/models/person.model.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/models/public_api.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/models/search-options.model.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/models/task-name.model.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/models/tcDocument.model.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/models/timeout-notification.model.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/models/user-access-type.model.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/models/user-details.model.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/models/user.model.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/services/address/address-type.enum.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/services/public-api.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/services/ref-data/index.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/services/ref-data/models/ref-data-region.model.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/window.mjs +0 -0
  279. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,76 @@
1
+ import { AddressModel } from '../../models';
2
+ import { AddressType } from './address-type.enum';
3
+ /**
4
+ * Moving all this logic here into Address Parser class, so that it
5
+ * will be easier for us when we move this parsing logic to into
6
+ * `Shim` java service.
7
+ */
8
+ export class AddressParser {
9
+ parse(address) {
10
+ const classification = `${address.CLASSIFICATION_CODE}`;
11
+ const addressModel = new AddressModel();
12
+ addressModel.addressLine1 = this.parseAddressLine1(classification, address);
13
+ addressModel.addressLine2 = this.parseAddressLine2(classification, address);
14
+ addressModel.addressLine3 = this.parseAddressLine3(classification, address);
15
+ addressModel.postCode = address.POSTCODE;
16
+ addressModel.postTown = address.POST_TOWN;
17
+ addressModel.country = AddressType.UK;
18
+ return addressModel;
19
+ }
20
+ parseAddressLine1(classification, address) {
21
+ let addressLine;
22
+ if (classification === AddressType.RD06) {
23
+ addressLine =
24
+ `${address.SUB_BUILDING_NAME} ${address.ORGANISATION_NAME} ${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
25
+ }
26
+ else {
27
+ addressLine =
28
+ `${address.ORGANISATION_NAME}${this.prefixWithCommaIfPresent(address.BUILDING_NAME)}` +
29
+ `${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
30
+ }
31
+ return this.removeNonAddressValues(addressLine);
32
+ }
33
+ parseAddressLine2(classification, address) {
34
+ let addressLine;
35
+ if (classification === AddressType.RD06) {
36
+ addressLine = `${address.BUILDING_NAME} `;
37
+ }
38
+ else {
39
+ addressLine =
40
+ `${address.SUB_BUILDING_NAME} ${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
41
+ }
42
+ return this.removeNonAddressValues(addressLine);
43
+ }
44
+ parseAddressLine3(classification, address) {
45
+ let addressLine;
46
+ if (classification === AddressType.RD06) {
47
+ addressLine =
48
+ `${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
49
+ }
50
+ else {
51
+ addressLine =
52
+ `${address.DEPENDENT_LOCALITY} ${address.DOUBLE_DEPENDENT_LOCALITY} ${address.DEPENDENT_THOROUGHFARE_NAME}`;
53
+ }
54
+ return this.removeNonAddressValues(addressLine);
55
+ }
56
+ removeNonAddressValues(line) {
57
+ line = line.replace(' null', ' ').replace('null ', ' ');
58
+ line = this.removeUndefinedString(line);
59
+ line = this.removeInitialComma(line);
60
+ line = this.removeEmptySpaces(line);
61
+ return line;
62
+ }
63
+ removeUndefinedString(value) {
64
+ return value.replace(new RegExp('undefined', 'gi'), '');
65
+ }
66
+ removeEmptySpaces(value) {
67
+ return value.replace(new RegExp(' +', 'gi'), ' ').trim();
68
+ }
69
+ removeInitialComma(value) {
70
+ return value.replace(new RegExp('^,', 'gi'), '');
71
+ }
72
+ prefixWithCommaIfPresent(value) {
73
+ return value ? `, ${value}` : value;
74
+ }
75
+ }
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9hZGRyZXNzL2FkZHJlc3MtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxEOzs7O0dBSUc7QUFDRixNQUFNLE9BQU8sYUFBYTtJQUNsQixLQUFLLENBQUMsT0FBWTtRQUN2QixNQUFNLGNBQWMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVFLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RSxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUUsWUFBWSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3pDLFlBQVksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUMxQyxZQUFZLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLGNBQXNCLEVBQUUsT0FBWTtRQUM1RCxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLGNBQWMsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7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Q3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZHJlc3NNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBZGRyZXNzVHlwZSB9IGZyb20gJy4vYWRkcmVzcy10eXBlLmVudW0nO1xuXG4vKipcbiAqIE1vdmluZyBhbGwgdGhpcyBsb2dpYyBoZXJlIGludG8gQWRkcmVzcyBQYXJzZXIgY2xhc3MsIHNvIHRoYXQgaXRcbiAqIHdpbGwgYmUgZWFzaWVyIGZvciB1cyB3aGVuIHdlIG1vdmUgdGhpcyBwYXJzaW5nIGxvZ2ljIHRvIGludG9cbiAqIGBTaGltYCBqYXZhIHNlcnZpY2UuXG4gKi9cbiBleHBvcnQgY2xhc3MgQWRkcmVzc1BhcnNlciB7XG4gIHB1YmxpYyBwYXJzZShhZGRyZXNzOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc2lmaWNhdGlvbiA9IGAke2FkZHJlc3MuQ0xBU1NJRklDQVRJT05fQ09ERX1gO1xuICAgIGNvbnN0IGFkZHJlc3NNb2RlbCA9IG5ldyBBZGRyZXNzTW9kZWwoKTtcbiAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUxID0gdGhpcy5wYXJzZUFkZHJlc3NMaW5lMShjbGFzc2lmaWNhdGlvbiwgYWRkcmVzcyk7XG4gICAgYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMiA9IHRoaXMucGFyc2VBZGRyZXNzTGluZTIoY2xhc3NpZmljYXRpb24sIGFkZHJlc3MpO1xuICAgIGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTMgPSB0aGlzLnBhcnNlQWRkcmVzc0xpbmUzKGNsYXNzaWZpY2F0aW9uLCBhZGRyZXNzKTtcbiAgICBhZGRyZXNzTW9kZWwucG9zdENvZGUgPSBhZGRyZXNzLlBPU1RDT0RFO1xuICAgIGFkZHJlc3NNb2RlbC5wb3N0VG93biA9IGFkZHJlc3MuUE9TVF9UT1dOO1xuICAgIGFkZHJlc3NNb2RlbC5jb3VudHJ5ID0gQWRkcmVzc1R5cGUuVUs7XG4gICAgcmV0dXJuIGFkZHJlc3NNb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VBZGRyZXNzTGluZTEoY2xhc3NpZmljYXRpb246IHN0cmluZywgYWRkcmVzczogYW55KSB7XG4gICAgbGV0IGFkZHJlc3NMaW5lO1xuICAgIGlmIChjbGFzc2lmaWNhdGlvbiA9PT0gQWRkcmVzc1R5cGUuUkQwNikge1xuICAgICAgYWRkcmVzc0xpbmUgPVxuICAgICAgICBgJHthZGRyZXNzLlNVQl9CVUlMRElOR19OQU1FfSAke2FkZHJlc3MuT1JHQU5JU0FUSU9OX05BTUV9ICR7YWRkcmVzcy5ERVBBUlRNRU5UX05BTUV9ICR7YWRkcmVzcy5QT19CT1hfTlVNQkVSfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3NMaW5lID1cbiAgICAgICAgYCR7YWRkcmVzcy5PUkdBTklTQVRJT05fTkFNRX0ke3RoaXMucHJlZml4V2l0aENvbW1hSWZQcmVzZW50KGFkZHJlc3MuQlVJTERJTkdfTkFNRSl9YCArXG4gICAgICAgIGAke2FkZHJlc3MuREVQQVJUTUVOVF9OQU1FfSAke2FkZHJlc3MuUE9fQk9YX05VTUJFUn1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZW1vdmVOb25BZGRyZXNzVmFsdWVzKGFkZHJlc3NMaW5lKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VBZGRyZXNzTGluZTIoY2xhc3NpZmljYXRpb246IHN0cmluZywgYWRkcmVzczogYW55KSB7XG4gICAgbGV0IGFkZHJlc3NMaW5lO1xuICAgIGlmIChjbGFzc2lmaWNhdGlvbiA9PT0gQWRkcmVzc1R5cGUuUkQwNikge1xuICAgICAgYWRkcmVzc0xpbmUgPSBgJHthZGRyZXNzLkJVSUxESU5HX05BTUV9IGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3NMaW5lID1cbiAgICAgICAgYCR7YWRkcmVzcy5TVUJfQlVJTERJTkdfTkFNRX0gJHthZGRyZXNzLkJVSUxESU5HX05VTUJFUn0gJHthZGRyZXNzLlRIT1JPVUdIRkFSRV9OQU1FfWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlbW92ZU5vbkFkZHJlc3NWYWx1ZXMoYWRkcmVzc0xpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUFkZHJlc3NMaW5lMyhjbGFzc2lmaWNhdGlvbjogc3RyaW5nLCBhZGRyZXNzOiBhbnkpIHtcbiAgICBsZXQgYWRkcmVzc0xpbmU7XG4gICAgaWYgKGNsYXNzaWZpY2F0aW9uID09PSBBZGRyZXNzVHlwZS5SRDA2KSB7XG4gICAgICBhZGRyZXNzTGluZSA9XG4gICAgICAgIGAke2FkZHJlc3MuQlVJTERJTkdfTlVNQkVSfSAke2FkZHJlc3MuVEhPUk9VR0hGQVJFX05BTUV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkcmVzc0xpbmUgPVxuICAgICAgICBgJHthZGRyZXNzLkRFUEVOREVOVF9MT0NBTElUWX0gJHthZGRyZXNzLkRPVUJMRV9ERVBFTkRFTlRfTE9DQUxJVFl9ICR7YWRkcmVzcy5ERVBFTkRFTlRfVEhPUk9VR0hGQVJFX05BTUV9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZlTm9uQWRkcmVzc1ZhbHVlcyhhZGRyZXNzTGluZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU5vbkFkZHJlc3NWYWx1ZXMobGluZTogc3RyaW5nKSB7XG4gICAgbGluZSA9IGxpbmUucmVwbGFjZSgnIG51bGwnLCAnICcpLnJlcGxhY2UoJ251bGwgJywgJyAnKTtcbiAgICBsaW5lID0gdGhpcy5yZW1vdmVVbmRlZmluZWRTdHJpbmcobGluZSk7XG4gICAgbGluZSA9IHRoaXMucmVtb3ZlSW5pdGlhbENvbW1hKGxpbmUpO1xuICAgIGxpbmUgPSB0aGlzLnJlbW92ZUVtcHR5U3BhY2VzKGxpbmUpO1xuICAgIHJldHVybiBsaW5lO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVVbmRlZmluZWRTdHJpbmcodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoJ3VuZGVmaW5lZCcsICdnaScpLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUVtcHR5U3BhY2VzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKCcgKycsICdnaScpLCAnICcpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSW5pdGlhbENvbW1hKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKCdeLCcsICdnaScpLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIHByZWZpeFdpdGhDb21tYUlmUHJlc2VudCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gYCwgJHt2YWx1ZX1gIDogdmFsdWU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,55 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { of } from 'rxjs/internal/observable/of';
4
+ import { map } from 'rxjs/operators';
5
+ import { AddressParser } from './address-parser';
6
+ import { AddressType } from './address-type.enum';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ export class AddressService {
10
+ constructor(http) {
11
+ this.http = http;
12
+ }
13
+ getAddressesForPostcode(postcode) {
14
+ if (!postcode) {
15
+ return of([]);
16
+ }
17
+ return this.http
18
+ .get('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined)
19
+ .pipe(map((res) => res.results))
20
+ .pipe(map(output => output ? output.map((addresses) => this.format(new AddressParser().parse(addresses[AddressType.DPA]))) : []));
21
+ }
22
+ format(addressModel) {
23
+ return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
24
+ }
25
+ formatAddressLines(addressModel) {
26
+ ['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach((value) => {
27
+ addressModel[value] = this.toCapitalCase(addressModel[value]);
28
+ });
29
+ return addressModel;
30
+ }
31
+ shiftAddressLinesUp(addressModel) {
32
+ if (addressModel.addressLine2 === '') {
33
+ addressModel.addressLine2 = addressModel.addressLine3;
34
+ addressModel.addressLine3 = '';
35
+ }
36
+ if (addressModel.addressLine1 === '') {
37
+ addressModel.addressLine1 = addressModel.addressLine2;
38
+ addressModel.addressLine2 = '';
39
+ }
40
+ return addressModel;
41
+ }
42
+ toCapitalCase(sentence) {
43
+ sentence = sentence.toLowerCase();
44
+ sentence.split(' ').forEach((value) => {
45
+ sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));
46
+ });
47
+ return sentence;
48
+ }
49
+ static { this.ɵfac = function AddressService_Factory(t) { return new (t || AddressService)(i0.ɵɵinject(i1.HttpClient)); }; }
50
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AddressService, factory: AddressService.ɵfac }); }
51
+ }
52
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddressService, [{
53
+ type: Injectable
54
+ }], () => [{ type: i1.HttpClient }], null); })();
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvYWRkcmVzcy9hZGRyZXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFHbEQsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBNkIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUM3QyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBZ0I7UUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sMENBQTBDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsRUFBRSxTQUFtQixDQUFDO2FBQzFHLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzQixJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDbkUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ1IsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsWUFBMEI7UUFDdkMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFlBQTBCO1FBQ25ELENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBZ0MsRUFBRSxFQUFFO1lBQ3hHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFlBQTBCO1FBQ3BELElBQUksWUFBWSxDQUFDLFlBQVksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxZQUFZLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDdEQsWUFBWSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFlBQVksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxZQUFZLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDdEQsWUFBWSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxhQUFhLENBQUMsUUFBZ0I7UUFDcEMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xDLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0VBbERVLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWM7O2lGQUFkLGNBQWM7Y0FEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBZGRyZXNzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWRkcmVzc1BhcnNlciB9IGZyb20gJy4vYWRkcmVzcy1wYXJzZXInO1xuaW1wb3J0IHsgQWRkcmVzc1R5cGUgfSBmcm9tICcuL2FkZHJlc3MtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFkZHJlc3NTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBZGRyZXNzZXNGb3JQb3N0Y29kZShwb3N0Y29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBZGRyZXNzTW9kZWxbXT4ge1xuICAgIGlmICghcG9zdGNvZGUpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PignL2V4dGVybmFsL2FkZHJlc3Nlcz9wb3N0Y29kZT0ke3Bvc3Rjb2RlfScucmVwbGFjZSgnJHtwb3N0Y29kZX0nLCBwb3N0Y29kZSksIHVuZGVmaW5lZCBhcyBvYmplY3QpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHJlcy5yZXN1bHRzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAob3V0cHV0ID0+IG91dHB1dCA/IG91dHB1dC5tYXAoKGFkZHJlc3NlczogYW55KSA9PlxuICAgICAgICAgIHRoaXMuZm9ybWF0KG5ldyBBZGRyZXNzUGFyc2VyKCkucGFyc2UoYWRkcmVzc2VzW0FkZHJlc3NUeXBlLkRQQV0pKVxuICAgICAgICApIDogW10pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXQoYWRkcmVzc01vZGVsOiBBZGRyZXNzTW9kZWwpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRBZGRyZXNzTGluZXModGhpcy5zaGlmdEFkZHJlc3NMaW5lc1VwKGFkZHJlc3NNb2RlbCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRBZGRyZXNzTGluZXMoYWRkcmVzc01vZGVsOiBBZGRyZXNzTW9kZWwpIHtcbiAgICBbJ2FkZHJlc3NMaW5lMScsICdhZGRyZXNzTGluZTInLCAnYWRkcmVzc0xpbmUzJywgJ3Bvc3RUb3duJ10uZm9yRWFjaCgodmFsdWU6IGtleW9mIHR5cGVvZiBhZGRyZXNzTW9kZWwpID0+IHtcbiAgICAgIGFkZHJlc3NNb2RlbFt2YWx1ZV0gPSB0aGlzLnRvQ2FwaXRhbENhc2UoYWRkcmVzc01vZGVsW3ZhbHVlXSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFkZHJlc3NNb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgc2hpZnRBZGRyZXNzTGluZXNVcChhZGRyZXNzTW9kZWw6IEFkZHJlc3NNb2RlbCkge1xuICAgIGlmIChhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUyID09PSAnJykge1xuICAgICAgYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMiA9IGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTM7XG4gICAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUzID0gJyc7XG4gICAgfVxuICAgIGlmIChhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUxID09PSAnJykge1xuICAgICAgYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMSA9IGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTI7XG4gICAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUyID0gJyc7XG4gICAgfVxuICAgIHJldHVybiBhZGRyZXNzTW9kZWw7XG4gIH1cblxuICBwcml2YXRlIHRvQ2FwaXRhbENhc2Uoc2VudGVuY2U6IHN0cmluZykge1xuICAgIHNlbnRlbmNlID0gc2VudGVuY2UudG9Mb3dlckNhc2UoKTtcbiAgICBzZW50ZW5jZS5zcGxpdCgnICcpLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgIHNlbnRlbmNlID0gc2VudGVuY2UucmVwbGFjZSh2YWx1ZSwgdmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zdWJzdHIoMSkpO1xuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHNlbnRlbmNlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,170 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { distinctUntilChanged } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class CaseSharingStateService {
6
+ get state() {
7
+ return this.subject.asObservable().pipe(distinctUntilChanged());
8
+ }
9
+ constructor() {
10
+ this.caseState = [];
11
+ this.subject = new BehaviorSubject(this.caseState);
12
+ }
13
+ setCases(cases) {
14
+ this.caseState = [];
15
+ cases.forEach(aCase => {
16
+ this.caseState.push({ caseId: aCase.caseId, caseTitle: aCase.caseTitle, caseTypeId: aCase.caseTypeId, roles: aCase.roles,
17
+ sharedWith: aCase.sharedWith, pendingShares: aCase.pendingShares, pendingUnshares: aCase.pendingUnshares });
18
+ });
19
+ this.subject.next(this.caseState);
20
+ }
21
+ getCases() {
22
+ return this.caseState;
23
+ }
24
+ requestShare(user) {
25
+ const oldSharedCases = this.caseState.slice();
26
+ const newSharedCases = [];
27
+ for (const sharedCase of oldSharedCases) {
28
+ if (!sharedCase.pendingShares) {
29
+ sharedCase.pendingShares = [];
30
+ }
31
+ const newPendingShares = sharedCase.pendingShares.slice();
32
+ if (!sharedCase.pendingUnshares) {
33
+ sharedCase.pendingUnshares = [];
34
+ }
35
+ const newPendingUnshares = sharedCase.pendingUnshares.slice();
36
+ if (!this.userHasAccess(sharedCase, user)) {
37
+ if (!newPendingShares.some(u => u.email === user.email)) {
38
+ newPendingShares.push(user);
39
+ }
40
+ }
41
+ else {
42
+ for (let u = 0, ul = newPendingUnshares.length; u < ul; u++) {
43
+ if (newPendingUnshares[u].email === user.email) {
44
+ newPendingUnshares.splice(u, 1);
45
+ break;
46
+ }
47
+ }
48
+ }
49
+ const newSharedCase = {
50
+ ...sharedCase,
51
+ pendingUnshares: newPendingUnshares,
52
+ pendingShares: newPendingShares
53
+ };
54
+ newSharedCases.push(newSharedCase);
55
+ }
56
+ this.subject.next(newSharedCases);
57
+ return newSharedCases;
58
+ }
59
+ requestUnshare(user, caseId) {
60
+ const newSharedCases = [];
61
+ for (const sharedCase of this.caseState) {
62
+ // If no caseId, then request unshare from all shared cases
63
+ if (caseId === undefined || sharedCase.caseId === caseId) {
64
+ if (!sharedCase.pendingUnshares) {
65
+ sharedCase.pendingUnshares = [];
66
+ }
67
+ const newPendingUnshares = sharedCase.pendingUnshares.slice();
68
+ // If the user is pending shared access, just remove them from pendingShares
69
+ let newPendingShares;
70
+ let indexOfPreviouslyAddedUser = -1;
71
+ if (sharedCase.pendingShares) {
72
+ indexOfPreviouslyAddedUser = sharedCase.pendingShares.findIndex(u => u.idamId === user.idamId);
73
+ if (indexOfPreviouslyAddedUser > -1) {
74
+ newPendingShares = sharedCase.pendingShares.slice();
75
+ newPendingShares.splice(indexOfPreviouslyAddedUser, 1);
76
+ }
77
+ }
78
+ // If the user does not exist in pendingShares, and already has shared access (i.e. exists in sharedWith),
79
+ // request removal of shared access
80
+ if (indexOfPreviouslyAddedUser === -1 && sharedCase.sharedWith && sharedCase.sharedWith.findIndex(u => u.idamId === user.idamId) > -1) {
81
+ if (!newPendingUnshares.some(u => u.email === user.email)) {
82
+ newPendingUnshares.push(user);
83
+ }
84
+ }
85
+ const newSharedCase = {
86
+ ...sharedCase,
87
+ pendingUnshares: newPendingUnshares,
88
+ ...(newPendingShares && {
89
+ pendingShares: newPendingShares
90
+ })
91
+ };
92
+ newSharedCases.push(newSharedCase);
93
+ }
94
+ else {
95
+ newSharedCases.push(sharedCase);
96
+ }
97
+ }
98
+ this.subject.next(newSharedCases);
99
+ return newSharedCases;
100
+ }
101
+ requestCancel(caseId, user) {
102
+ const newSharedCases = [];
103
+ for (const sharedCase of this.caseState) {
104
+ if (sharedCase.caseId === caseId) {
105
+ if (!sharedCase.pendingUnshares) {
106
+ sharedCase.pendingUnshares = [];
107
+ }
108
+ const newPendingUnshares = sharedCase.pendingUnshares.slice();
109
+ for (let iPendingUnshares = 0; iPendingUnshares < newPendingUnshares.length; iPendingUnshares++) {
110
+ if (newPendingUnshares[iPendingUnshares].email === user.email) {
111
+ newPendingUnshares.splice(iPendingUnshares, 1);
112
+ break;
113
+ }
114
+ }
115
+ if (!sharedCase.pendingShares) {
116
+ sharedCase.pendingShares = [];
117
+ }
118
+ const newPendingShares = sharedCase.pendingShares.slice();
119
+ for (let iPendingShares = 0; iPendingShares < newPendingShares.length; iPendingShares++) {
120
+ if (newPendingShares[iPendingShares].email === user.email) {
121
+ newPendingShares.splice(iPendingShares, 1);
122
+ break;
123
+ }
124
+ }
125
+ const newSharedCase = {
126
+ ...sharedCase,
127
+ pendingUnshares: newPendingUnshares,
128
+ pendingShares: newPendingShares
129
+ };
130
+ newSharedCases.push(newSharedCase);
131
+ }
132
+ else {
133
+ newSharedCases.push(sharedCase);
134
+ }
135
+ }
136
+ this.subject.next(newSharedCases);
137
+ return;
138
+ }
139
+ removeCase(caseId) {
140
+ if (this.caseState.length > 1) {
141
+ for (let i = 0, l = this.caseState.length; i < l; i++) {
142
+ if (this.caseState[i].caseId === caseId) {
143
+ this.caseState.splice(i, 1);
144
+ this.subject.next(this.caseState);
145
+ return;
146
+ }
147
+ }
148
+ }
149
+ }
150
+ userHasAccess(c, user) {
151
+ if (!c.sharedWith) {
152
+ return false;
153
+ }
154
+ for (let i = 0, l = c.sharedWith.length; i < l; i++) {
155
+ if (c.sharedWith[i].email === user.email) {
156
+ return true;
157
+ }
158
+ }
159
+ return false;
160
+ }
161
+ static { this.ɵfac = function CaseSharingStateService_Factory(t) { return new (t || CaseSharingStateService)(); }; }
162
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseSharingStateService, factory: CaseSharingStateService.ɵfac, providedIn: 'root' }); }
163
+ }
164
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseSharingStateService, [{
165
+ type: Injectable,
166
+ args: [{
167
+ providedIn: 'root'
168
+ }]
169
+ }], () => [], null); })();
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU90RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ3JDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQ7UUFUUSxjQUFTLEdBQWlCLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBUTdELENBQUM7SUFFVixRQUFRLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDdEgsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLEtB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T0FBTztnQkFDVCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLENBQWEsRUFBRSxJQUFpQjtRQUNuRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0ZBcEtVLHVCQUF1Qjt1RUFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1QixtQkFGdEIsTUFBTTs7aUZBRVAsdUJBQXVCO2NBSG5DLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaGFyZWRDYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgY2FzZVN0YXRlOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTaGFyZWRDYXNlW10+KHRoaXMuY2FzZVN0YXRlKTtcblxuICBwdWJsaWMgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgc2V0Q2FzZXMoY2FzZXM6IFNoYXJlZENhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuY2FzZVN0YXRlID0gW107XG4gICAgY2FzZXMuZm9yRWFjaChhQ2FzZSA9PiB7XG4gICAgICB0aGlzLmNhc2VTdGF0ZS5wdXNoKHsgY2FzZUlkOiBhQ2FzZS5jYXNlSWQsIGNhc2VUaXRsZTogYUNhc2UuY2FzZVRpdGxlLCBjYXNlVHlwZUlkOiBhQ2FzZS5jYXNlVHlwZUlkLCByb2xlczogYUNhc2Uucm9sZXMsXG4gICAgICAgIHNoYXJlZFdpdGg6IGFDYXNlLnNoYXJlZFdpdGgsIHBlbmRpbmdTaGFyZXM6IGFDYXNlLnBlbmRpbmdTaGFyZXMsIHBlbmRpbmdVbnNoYXJlczogYUNhc2UucGVuZGluZ1Vuc2hhcmVzIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KHRoaXMuY2FzZVN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlcygpOiBTaGFyZWRDYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmNhc2VTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0U2hhcmUodXNlcjogVXNlckRldGFpbHMpOiBTaGFyZWRDYXNlW10ge1xuICAgIGNvbnN0IG9sZFNoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSB0aGlzLmNhc2VTdGF0ZS5zbGljZSgpO1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2Ygb2xkU2hhcmVkQ2FzZXMpIHtcbiAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UGVuZGluZ1NoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5zbGljZSgpO1xuICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UGVuZGluZ1Vuc2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc2xpY2UoKTtcbiAgICAgIGlmICghdGhpcy51c2VySGFzQWNjZXNzKHNoYXJlZENhc2UsIHVzZXIpKSB7XG4gICAgICAgIGlmICghbmV3UGVuZGluZ1NoYXJlcy5zb21lKHUgPT4gdS5lbWFpbCA9PT0gdXNlci5lbWFpbCkpIHtcbiAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzLnB1c2godXNlcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAobGV0IHUgPSAwLCB1bCA9IG5ld1BlbmRpbmdVbnNoYXJlcy5sZW5ndGg7IHUgPCB1bDsgdSsrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdVbnNoYXJlc1t1XS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1Vuc2hhcmVzLnNwbGljZSh1LCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgLi4uc2hhcmVkQ2FzZSxcbiAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXMsXG4gICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgIH07XG4gICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgIH1cbiAgICB0aGlzLnN1YmplY3QubmV4dChuZXdTaGFyZWRDYXNlcyk7XG4gICAgcmV0dXJuIG5ld1NoYXJlZENhc2VzO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RVbnNoYXJlKHVzZXI6IFVzZXJEZXRhaWxzLCBjYXNlSWQ/OiBzdHJpbmcpOiBTaGFyZWRDYXNlW10ge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2YgdGhpcy5jYXNlU3RhdGUpIHtcbiAgICAgIC8vIElmIG5vIGNhc2VJZCwgdGhlbiByZXF1ZXN0IHVuc2hhcmUgZnJvbSBhbGwgc2hhcmVkIGNhc2VzXG4gICAgICBpZiAoY2FzZUlkID09PSB1bmRlZmluZWQgfHwgc2hhcmVkQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzKSB7XG4gICAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdQZW5kaW5nVW5zaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5zbGljZSgpO1xuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBwZW5kaW5nIHNoYXJlZCBhY2Nlc3MsIGp1c3QgcmVtb3ZlIHRoZW0gZnJvbSBwZW5kaW5nU2hhcmVzXG4gICAgICAgIGxldCBuZXdQZW5kaW5nU2hhcmVzO1xuICAgICAgICBsZXQgaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPSAtMTtcbiAgICAgICAgaWYgKHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgICAgIGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyID0gc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmZpbmRJbmRleCh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCk7XG4gICAgICAgICAgaWYgKGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyID4gLTEpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMuc3BsaWNlKGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgZG9lcyBub3QgZXhpc3QgaW4gcGVuZGluZ1NoYXJlcywgYW5kIGFscmVhZHkgaGFzIHNoYXJlZCBhY2Nlc3MgKGkuZS4gZXhpc3RzIGluIHNoYXJlZFdpdGgpLFxuICAgICAgICAvLyByZXF1ZXN0IHJlbW92YWwgb2Ygc2hhcmVkIGFjY2Vzc1xuICAgICAgICBpZiAoaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPT09IC0xICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aCAmJiBzaGFyZWRDYXNlLnNoYXJlZFdpdGguZmluZEluZGV4KFxuICAgICAgICAgIHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSA+IC0xKSB7XG4gICAgICAgICAgaWYgKCFuZXdQZW5kaW5nVW5zaGFyZXMuc29tZSh1ID0+IHUuZW1haWwgPT09IHVzZXIuZW1haWwpKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nVW5zaGFyZXMucHVzaCh1c2VyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgICAuLi5zaGFyZWRDYXNlLFxuICAgICAgICAgIHBlbmRpbmdVbnNoYXJlczogbmV3UGVuZGluZ1Vuc2hhcmVzLFxuICAgICAgICAgIC4uLihuZXdQZW5kaW5nU2hhcmVzICYmIHtcbiAgICAgICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChzaGFyZWRDYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIHJldHVybiBuZXdTaGFyZWRDYXNlcztcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0Q2FuY2VsKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2YgdGhpcy5jYXNlU3RhdGUpIHtcbiAgICAgIGlmIChzaGFyZWRDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdVbnNoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLnNsaWNlKCk7XG4gICAgICAgIGZvciAobGV0IGlQZW5kaW5nVW5zaGFyZXMgPSAwOyBpUGVuZGluZ1Vuc2hhcmVzIDwgbmV3UGVuZGluZ1Vuc2hhcmVzLmxlbmd0aDsgaVBlbmRpbmdVbnNoYXJlcysrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdVbnNoYXJlc1tpUGVuZGluZ1Vuc2hhcmVzXS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1Vuc2hhcmVzLnNwbGljZShpUGVuZGluZ1Vuc2hhcmVzLCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdTaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChsZXQgaVBlbmRpbmdTaGFyZXMgPSAwOyBpUGVuZGluZ1NoYXJlcyA8IG5ld1BlbmRpbmdTaGFyZXMubGVuZ3RoOyBpUGVuZGluZ1NoYXJlcysrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdTaGFyZXNbaVBlbmRpbmdTaGFyZXNdLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzLnNwbGljZShpUGVuZGluZ1NoYXJlcywgMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgICAuLi5zaGFyZWRDYXNlLFxuICAgICAgICAgIHBlbmRpbmdVbnNoYXJlczogbmV3UGVuZGluZ1Vuc2hhcmVzLFxuICAgICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgICAgfTtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChuZXdTaGFyZWRDYXNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2goc2hhcmVkQ2FzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5ld1NoYXJlZENhc2VzKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2FzZShjYXNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhc2VTdGF0ZS5sZW5ndGggPiAxKSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMuY2FzZVN0YXRlLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBpZiAodGhpcy5jYXNlU3RhdGVbaV0uY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICB0aGlzLmNhc2VTdGF0ZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgdGhpcy5zdWJqZWN0Lm5leHQodGhpcy5jYXNlU3RhdGUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1c2VySGFzQWNjZXNzKGM6IFNoYXJlZENhc2UsIHVzZXI6IFVzZXJEZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjLnNoYXJlZFdpdGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBjLnNoYXJlZFdpdGgubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYy5zaGFyZWRXaXRoW2ldLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -33,16 +33,16 @@ export class CookieService {
33
33
  checkCookie(key) {
34
34
  return this.document.cookie.split('; ').some(item => item.trim().startsWith(`${key}=`));
35
35
  }
36
+ static { this.ɵfac = function CookieService_Factory(t) { return new (t || CookieService)(i0.ɵɵinject(DOCUMENT)); }; }
37
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CookieService, factory: CookieService.ɵfac, providedIn: 'root' }); }
36
38
  }
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, [{
39
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CookieService, [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
43
43
  }]
44
- }], function () { return [{ type: undefined, decorators: [{
44
+ }], () => [{ type: undefined, decorators: [{
45
45
  type: Inject,
46
46
  args: [DOCUMENT]
47
- }] }]; }, null); })();
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jb29raWUvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUE4QixHQUFTO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBZSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxVQUFtQjtRQUM5RCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVztRQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07YUFDckMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ3RDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQVcsRUFBRSxJQUFhLEVBQUUsTUFBZTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTLEdBQUcsV0FBVyxvREFBb0QsQ0FBQztJQUMvRyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsR0FBVyxFQUFFLElBQWEsRUFBRSxNQUFlO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTthQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDOzswRUF0Q1UsYUFBYSxjQUdKLFFBQVE7bUVBSGpCLGFBQWEsV0FBYixhQUFhLG1CQUZaLE1BQU07dUZBRVAsYUFBYTtjQUh6QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQUljLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudD86IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvYz86IGFueSkge1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2MgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29va2llKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBleHBpcnlEYXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJ5ID0gZXhwaXJ5RGF0ZSA/IGAgZXhwaXJlcz0ke2V4cGlyeURhdGV9YCA6ICcnO1xuICAgIGNvbnN0IGNvb2tpZSA9IGAke2tleX09JHt2YWx1ZX07JHtleHBpcnl9YDtcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb29raWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gdGhpcy5kb2N1bWVudC5jb29raWVcbiAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX09YCkpXG4gICAgICAuc3BsaXQoJz0nKVsxXTtcbiAgICByZXR1cm4gY29va2llVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llKGtleTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoVmFsdWUgPSBwYXRoID8gYDsgcGF0aD0ke3BhdGh9YCA6ICcnO1xuICAgIGNvbnN0IGRvbWFpblZhbHVlID0gZG9tYWluID8gYDsgZG9tYWluPSR7ZG9tYWlufWAgOiAnJztcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGAke2tleX09JHtwYXRoVmFsdWV9JHtkb21haW5WYWx1ZX07IGV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7IG1heC1hZ2U9MGA7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llQnlQYXJ0aWFsTWF0Y2goa2V5OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuY29va2llXG4gICAgICAuc3BsaXQoJzsgJylcbiAgICAgIC5maWx0ZXIocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX1gKSlcbiAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICB0aGlzLmRlbGV0ZUNvb2tpZShlbGVtZW50LnNwbGl0KCc9JylbMF0sIHBhdGgsIGRvbWFpbik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0Nvb2tpZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5zb21lKGl0ZW0gPT4gaXRlbS50cmltKCkuc3RhcnRzV2l0aChgJHtrZXl9PWApKTtcbiAgfVxufVxuIl19
47
+ }] }], null); })();
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jb29raWUvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUE4QixHQUFTO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBZSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxVQUFtQjtRQUM5RCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVztRQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07YUFDckMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ3RDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQVcsRUFBRSxJQUFhLEVBQUUsTUFBZTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTLEdBQUcsV0FBVyxvREFBb0QsQ0FBQztJQUMvRyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsR0FBVyxFQUFFLElBQWEsRUFBRSxNQUFlO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTthQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDOzhFQXRDVSxhQUFhLGNBR0osUUFBUTt1RUFIakIsYUFBYSxXQUFiLGFBQWEsbUJBRlosTUFBTTs7aUZBRVAsYUFBYTtjQUh6QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQUljLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudD86IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvYz86IGFueSkge1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2MgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29va2llKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBleHBpcnlEYXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJ5ID0gZXhwaXJ5RGF0ZSA/IGAgZXhwaXJlcz0ke2V4cGlyeURhdGV9YCA6ICcnO1xuICAgIGNvbnN0IGNvb2tpZSA9IGAke2tleX09JHt2YWx1ZX07JHtleHBpcnl9YDtcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb29raWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gdGhpcy5kb2N1bWVudC5jb29raWVcbiAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX09YCkpXG4gICAgICAuc3BsaXQoJz0nKVsxXTtcbiAgICByZXR1cm4gY29va2llVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llKGtleTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoVmFsdWUgPSBwYXRoID8gYDsgcGF0aD0ke3BhdGh9YCA6ICcnO1xuICAgIGNvbnN0IGRvbWFpblZhbHVlID0gZG9tYWluID8gYDsgZG9tYWluPSR7ZG9tYWlufWAgOiAnJztcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGAke2tleX09JHtwYXRoVmFsdWV9JHtkb21haW5WYWx1ZX07IGV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7IG1heC1hZ2U9MGA7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llQnlQYXJ0aWFsTWF0Y2goa2V5OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuY29va2llXG4gICAgICAuc3BsaXQoJzsgJylcbiAgICAgIC5maWx0ZXIocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX1gKSlcbiAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICB0aGlzLmRlbGV0ZUNvb2tpZShlbGVtZW50LnNwbGl0KCc9JylbMF0sIHBhdGgsIGRvbWFpbik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0Nvb2tpZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5zb21lKGl0ZW0gPT4gaXRlbS50cmltKCkuc3RhcnRzV2l0aChgJHtrZXl9PWApKTtcbiAgfVxufVxuIl19
@@ -22,13 +22,13 @@ export class FeatureToggleGuard {
22
22
  canActivate(route) {
23
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
24
  }
25
+ static { this.ɵfac = function FeatureToggleGuard_Factory(t) { return new (t || FeatureToggleGuard)(i0.ɵɵinject(i1.FeatureToggleService), i0.ɵɵinject(i2.Router)); }; }
26
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureToggleGuard, factory: FeatureToggleGuard.ɵfac, providedIn: 'root' }); }
25
27
  }
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, [{
28
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureToggleGuard, [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root'
32
32
  }]
33
- }], function () { return [{ type: i1.FeatureToggleService }, { type: i2.Router }]; }, null); })();
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBdUMsTUFBTSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNxQixvQkFBMEMsRUFDMUMsTUFBYztRQURkLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNoQyxDQUFDO0lBRUo7Ozs7Ozs7T0FPRztJQUNJLFdBQVcsQ0FBQyxLQUE2QjtRQUM1QyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEdBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBaUMsQ0FBQyxHQUFHLENBQ2xFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQ2pGLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDL0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBaUMsQ0FBQyxDQUFDLENBQ3ZNLENBQUM7SUFDTixDQUFDOztvRkF0QlEsa0JBQWtCO3dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZmLE1BQU07dUZBRVQsa0JBQWtCO2NBSDlCLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVUb2dnbGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlVG9nZ2xlU2VydmljZTogRmVhdHVyZVRvZ2dsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiBVc2FnZTogQWRkIHRoZSBGZWF0dXJlVG9nZ2xlR3VhcmQgYXMgdGhlIEd1YXJkIGZvciBhIHJvdXRlLCBhbmQgcHJvdmlkZSB0aGUgZm9sbG93aW5nXG4gICAgICogaW4gdGhlIGRhdGEgYXJyYXkgZm9yIHRoZSByb3V0ZTpcbiAgICAgKiAtIG5lZWRzRmVhdHVyZXNFbmFibGVkOiBBbiBhcnJheSBvZiBmZWF0dXJlIGtleXMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgcm91dGVcbiAgICAgKiAtIGZlYXR1cmVEaXNhYmxlZFJlZGlyZWN0OiB0aGUgVVJMIHRvIHJlZGlyZWN0IHRvIHdoZW4gdGhlIHRoaXMgcm91dGUgaXMgbm90IGFjY2Vzc2libGUgZHVlIHRvIGRpc2FibGVkIGZlYXR1cmVzXG4gICAgICogLSBleHBlY3RGZWF0dXJlRW5hYmxlZDogU2V0cyB3aGV0aGVyIGEgcm91dGUgc2hvdWxkIGJlIGVuYWJsZWQvZGlzYWJsZWQgYmFzZWQgb24gd2hldGhlciBmZWF0dXJlIGlzIHByZXNlbnRcbiAgICAgKiBAcGFyYW0gcm91dGUgQXV0b21hdGljYWxseSBwcm92aWRlZCBieSBBbmd1bGFyXG4gICAgICovXG4gICAgcHVibGljIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbLi4uKHJvdXRlLmRhdGEubmVlZHNGZWF0dXJlc0VuYWJsZWQgYXMgc3RyaW5nW10pLm1hcChcbiAgICAgICAgICAgICAgICBmZWF0dXJlID0+IHRoaXMuZmVhdHVyZVRvZ2dsZVNlcnZpY2UuZ2V0VmFsdWVPbmNlPGJvb2xlYW4+KGZlYXR1cmUsIGZhbHNlKVxuICAgICAgICApXSkucGlwZShcbiAgICAgICAgICAgIG1hcChmZWF0dXJlU3RhdHVzZXMgPT4gZmVhdHVyZVN0YXR1c2VzLmV2ZXJ5KHN0YXR1cyA9PiBzdGF0dXMpKSxcbiAgICAgICAgICAgIG1hcChzdGF0dXMgPT4gKHJvdXRlLmRhdGEuZXhwZWN0RmVhdHVyZUVuYWJsZWQgIT09IGZhbHNlICYmIHN0YXR1cykgfHwgKHJvdXRlLmRhdGEuZXhwZWN0RmVhdHVyZUVuYWJsZWQgPT09IGZhbHNlICYmICFzdGF0dXMpIHx8IHRoaXMucm91dGVyLnBhcnNlVXJsKHJvdXRlLmRhdGEuZmVhdHVyZURpc2FibGVkUmVkaXJlY3QgYXMgc3RyaW5nKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
33
+ }], () => [{ type: i1.FeatureToggleService }, { type: i2.Router }], null); })();
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBMEIsTUFBTSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNxQixvQkFBMEMsRUFDMUMsTUFBYztRQURkLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNoQyxDQUFDO0lBRUo7Ozs7Ozs7T0FPRztJQUNJLFdBQVcsQ0FBQyxLQUE2QjtRQUM1QyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEdBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBaUMsQ0FBQyxHQUFHLENBQ2xFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQ2pGLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDL0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBaUMsQ0FBQyxDQUFDLENBQ3ZNLENBQUM7SUFDTixDQUFDO21GQXRCUSxrQkFBa0I7dUVBQWxCLGtCQUFrQixXQUFsQixrQkFBa0IsbUJBRmYsTUFBTTs7aUZBRVQsa0JBQWtCO2NBSDlCLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGZWF0dXJlVG9nZ2xlU2VydmljZSB9IGZyb20gJy4vZmVhdHVyZS10b2dnbGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZVRvZ2dsZUd1YXJkICB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmVhdHVyZVRvZ2dsZVNlcnZpY2U6IEZlYXR1cmVUb2dnbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogVXNhZ2U6IEFkZCB0aGUgRmVhdHVyZVRvZ2dsZUd1YXJkIGFzIHRoZSBHdWFyZCBmb3IgYSByb3V0ZSwgYW5kIHByb3ZpZGUgdGhlIGZvbGxvd2luZ1xuICAgICAqIGluIHRoZSBkYXRhIGFycmF5IGZvciB0aGUgcm91dGU6XG4gICAgICogLSBuZWVkc0ZlYXR1cmVzRW5hYmxlZDogQW4gYXJyYXkgb2YgZmVhdHVyZSBrZXlzIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciB0aGlzIHJvdXRlXG4gICAgICogLSBmZWF0dXJlRGlzYWJsZWRSZWRpcmVjdDogdGhlIFVSTCB0byByZWRpcmVjdCB0byB3aGVuIHRoZSB0aGlzIHJvdXRlIGlzIG5vdCBhY2Nlc3NpYmxlIGR1ZSB0byBkaXNhYmxlZCBmZWF0dXJlc1xuICAgICAqIC0gZXhwZWN0RmVhdHVyZUVuYWJsZWQ6IFNldHMgd2hldGhlciBhIHJvdXRlIHNob3VsZCBiZSBlbmFibGVkL2Rpc2FibGVkIGJhc2VkIG9uIHdoZXRoZXIgZmVhdHVyZSBpcyBwcmVzZW50XG4gICAgICogQHBhcmFtIHJvdXRlIEF1dG9tYXRpY2FsbHkgcHJvdmlkZWQgYnkgQW5ndWxhclxuICAgICAqL1xuICAgIHB1YmxpYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoWy4uLihyb3V0ZS5kYXRhLm5lZWRzRmVhdHVyZXNFbmFibGVkIGFzIHN0cmluZ1tdKS5tYXAoXG4gICAgICAgICAgICAgICAgZmVhdHVyZSA9PiB0aGlzLmZlYXR1cmVUb2dnbGVTZXJ2aWNlLmdldFZhbHVlT25jZTxib29sZWFuPihmZWF0dXJlLCBmYWxzZSlcbiAgICAgICAgKV0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoZmVhdHVyZVN0YXR1c2VzID0+IGZlYXR1cmVTdGF0dXNlcy5ldmVyeShzdGF0dXMgPT4gc3RhdHVzKSksXG4gICAgICAgICAgICBtYXAoc3RhdHVzID0+IChyb3V0ZS5kYXRhLmV4cGVjdEZlYXR1cmVFbmFibGVkICE9PSBmYWxzZSAmJiBzdGF0dXMpIHx8IChyb3V0ZS5kYXRhLmV4cGVjdEZlYXR1cmVFbmFibGVkID09PSBmYWxzZSAmJiAhc3RhdHVzKSB8fCB0aGlzLnJvdXRlci5wYXJzZVVybChyb3V0ZS5kYXRhLmZlYXR1cmVEaXNhYmxlZFJlZGlyZWN0IGFzIHN0cmluZykpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -21,13 +21,13 @@ export class FeatureToggleService {
21
21
  getValueSync(feature, defaultValue) {
22
22
  throw new Error(`Not implemented ${feature}:${defaultValue}`);
23
23
  }
24
+ static { this.ɵfac = function FeatureToggleService_Factory(t) { return new (t || FeatureToggleService)(); }; }
25
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureToggleService, factory: FeatureToggleService.ɵfac, providedIn: 'root' }); }
24
26
  }
25
- FeatureToggleService.ɵfac = function FeatureToggleService_Factory(t) { return new (t || FeatureToggleService)(); };
26
- FeatureToggleService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureToggleService, factory: FeatureToggleService.ɵfac, providedIn: 'root' });
27
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureToggleService, [{
27
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureToggleService, [{
28
28
  type: Injectable,
29
29
  args: [{
30
30
  providedIn: 'root'
31
31
  }]
32
32
  }], null, null); })();
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QiwwQ0FBMEM7SUFDbkMsVUFBVSxDQUFDLEtBQWtCLEVBQUUsU0FBaUI7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCwwQ0FBMEM7SUFDbkMsU0FBUyxDQUFDLFFBQWdCO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsMENBQTBDO0lBQ25DLFFBQVEsQ0FBSSxJQUFZLEVBQUUsYUFBZ0I7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQ0FBMEM7SUFDbkMsWUFBWSxDQUFJLElBQVksRUFBRSxhQUFnQjtRQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELDBDQUEwQztJQUNuQyxZQUFZLENBQUksT0FBZSxFQUFFLFlBQWU7UUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7d0ZBdEJRLG9CQUFvQjswRUFBcEIsb0JBQW9CLFdBQXBCLG9CQUFvQixtQkFGakIsTUFBTTt1RkFFVCxvQkFBb0I7Y0FIaEMsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmVhdHVyZVVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmVhdHVyZS11c2VyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlVG9nZ2xlU2VydmljZSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGluaXRpYWxpemUoX3VzZXI6IEZlYXR1cmVVc2VyLCBfY2xpZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHZhcmlhYmxlLW5hbWVcbiAgICBwdWJsaWMgaXNFbmFibGVkKF9mZWF0dXJlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGdldFZhbHVlPFI+KF9rZXk6IHN0cmluZywgX2RlZmF1bHRWYWx1ZTogUik6IE9ic2VydmFibGU8Uj4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdmFyaWFibGUtbmFtZVxuICAgIHB1YmxpYyBnZXRWYWx1ZU9uY2U8Uj4oX2tleTogc3RyaW5nLCBfZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGdldFZhbHVlU3luYzxSPihmZWF0dXJlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogUik6IFIge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3QgaW1wbGVtZW50ZWQgJHtmZWF0dXJlfToke2RlZmF1bHRWYWx1ZX1gKTtcbiAgICB9XG5cbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QiwwQ0FBMEM7SUFDbkMsVUFBVSxDQUFDLEtBQWtCLEVBQUUsU0FBaUI7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCwwQ0FBMEM7SUFDbkMsU0FBUyxDQUFDLFFBQWdCO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsMENBQTBDO0lBQ25DLFFBQVEsQ0FBSSxJQUFZLEVBQUUsYUFBZ0I7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQ0FBMEM7SUFDbkMsWUFBWSxDQUFJLElBQVksRUFBRSxhQUFnQjtRQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELDBDQUEwQztJQUNuQyxZQUFZLENBQUksT0FBZSxFQUFFLFlBQWU7UUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztxRkF0QlEsb0JBQW9CO3VFQUFwQixvQkFBb0IsV0FBcEIsb0JBQW9CLG1CQUZqQixNQUFNOztpRkFFVCxvQkFBb0I7Y0FIaEMsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmVhdHVyZVVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmVhdHVyZS11c2VyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlVG9nZ2xlU2VydmljZSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGluaXRpYWxpemUoX3VzZXI6IEZlYXR1cmVVc2VyLCBfY2xpZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHZhcmlhYmxlLW5hbWVcbiAgICBwdWJsaWMgaXNFbmFibGVkKF9mZWF0dXJlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGdldFZhbHVlPFI+KF9rZXk6IHN0cmluZywgX2RlZmF1bHRWYWx1ZTogUik6IE9ic2VydmFibGU8Uj4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdmFyaWFibGUtbmFtZVxuICAgIHB1YmxpYyBnZXRWYWx1ZU9uY2U8Uj4oX2tleTogc3RyaW5nLCBfZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGdldFZhbHVlU3luYzxSPihmZWF0dXJlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogUik6IFIge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3QgaW1wbGVtZW50ZWQgJHtmZWF0dXJlfToke2RlZmF1bHRWYWx1ZX1gKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { initialize } from 'launchdarkly-js-client-sdk';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { distinctUntilChanged, filter, map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ export class LaunchDarklyService {
7
+ constructor() {
8
+ this.ready = new BehaviorSubject(false);
9
+ this.features = {};
10
+ this.user = { anonymous: true };
11
+ this.clientId = '';
12
+ }
13
+ initialize(user = { anonymous: true }, clientId) {
14
+ this.ready.next(false);
15
+ this.user = user;
16
+ this.clientId = clientId;
17
+ this.client = initialize(this.clientId, this.user, {});
18
+ this.client.on('ready', () => {
19
+ this.client.identify(this.user).then(() => this.ready.next(true));
20
+ });
21
+ }
22
+ isEnabled(feature, defaultValue = false) {
23
+ return this.getValue(feature, defaultValue);
24
+ }
25
+ getArray(feature) {
26
+ return this.getValue(feature, []);
27
+ }
28
+ // Note that this function always emits its default value first, which can lead to unexpected results
29
+ getValue(feature, defaultValue) {
30
+ if (!this.features.hasOwnProperty(feature)) {
31
+ this.features[feature] = new BehaviorSubject(defaultValue);
32
+ this.ready.pipe(filter(ready => ready), map(() => this.client.variation(feature, defaultValue))).subscribe(value => {
33
+ this.features[feature].next(value);
34
+ this.client.on(`change:${feature}`, (val) => {
35
+ this.features[feature].next(val);
36
+ });
37
+ });
38
+ }
39
+ return this.features[feature].pipe(distinctUntilChanged());
40
+ }
41
+ /**
42
+ * This method returns an observable that will only get the state of the feature toggle
43
+ * once. It calls the LD SDK directly, and should only be used in circumstances where
44
+ * only one value should be emitted, that value coming directly from LD. This will likely
45
+ * only apply for Guards, and should be used only when absolutely necessary.
46
+ * @see getValue for regular usage.
47
+ * @param feature string
48
+ * @param defaultValue R
49
+ */
50
+ getValueOnce(feature, defaultValue) {
51
+ return this.ready.pipe(filter(ready => ready), map(() => this.client.variation(feature, defaultValue)));
52
+ }
53
+ getValueSync(feature, defaultValue) {
54
+ return this.client.variation(feature, defaultValue);
55
+ }
56
+ static { this.ɵfac = function LaunchDarklyService_Factory(t) { return new (t || LaunchDarklyService)(); }; }
57
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LaunchDarklyService, factory: LaunchDarklyService.ɵfac, providedIn: 'root' }); }
58
+ }
59
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LaunchDarklyService, [{
60
+ type: Injectable,
61
+ args: [{
62
+ providedIn: 'root'
63
+ }]
64
+ }], null, null); })();
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLWRhcmtseS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvZmVhdHVyZS10b2dnbGUvbGF1bmNoLWRhcmtseS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBVyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPbkUsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQU1xQixVQUFLLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLGFBQVEsR0FBeUMsRUFBRSxDQUFDO1FBQzdELFNBQUksR0FBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDeEMsYUFBUSxHQUFXLEVBQUUsQ0FBQztLQTBEakM7SUF4RFUsVUFBVSxDQUFDLE9BQW9CLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLFFBQWdCO1FBQ3ZFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxTQUFTLENBQUMsT0FBZSxFQUFFLGVBQXdCLEtBQUs7UUFDM0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFVLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sUUFBUSxDQUFVLE9BQWU7UUFDcEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFNLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQscUdBQXFHO0lBQzlGLFFBQVEsQ0FBSSxPQUFlLEVBQUUsWUFBZTtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFJLFlBQVksQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQzFELENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQU0sRUFBRSxFQUFFO29CQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM5QixvQkFBb0IsRUFBRSxDQUN6QixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksWUFBWSxDQUFJLE9BQWUsRUFBRSxZQUFlO1FBQ25ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2xCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQzFELENBQUM7SUFDTixDQUFDO0lBRU0sWUFBWSxDQUFJLE9BQWUsRUFBRSxZQUFlO1FBQ3JELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3RELENBQUM7b0ZBL0RRLG1CQUFtQjt1RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQixtQkFGaEIsTUFBTTs7aUZBRVQsbUJBQW1CO2NBSC9CLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluaXRpYWxpemUsIExEQ2xpZW50fSBmcm9tICdsYXVuY2hkYXJrbHktanMtY2xpZW50LXNkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZlYXR1cmVVc2VyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZlYXR1cmUtdXNlcic7XG5pbXBvcnQgeyBGZWF0dXJlVG9nZ2xlU2VydmljZSB9IGZyb20gJy4vZmVhdHVyZS10b2dnbGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGF1bmNoRGFya2x5U2VydmljZSBpbXBsZW1lbnRzIEZlYXR1cmVUb2dnbGVTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgY2xpZW50OiBMRENsaWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlYWR5OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZlYXR1cmVzOiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvclN1YmplY3Q8YW55Pj4gPSB7fTtcbiAgICBwcml2YXRlIHVzZXI6IEZlYXR1cmVVc2VyID0geyBhbm9ueW1vdXM6IHRydWUgfTtcbiAgICBwcml2YXRlIGNsaWVudElkOiBzdHJpbmcgPSAnJztcblxuICAgIHB1YmxpYyBpbml0aWFsaXplKHVzZXI6IEZlYXR1cmVVc2VyID0geyBhbm9ueW1vdXM6IHRydWUgfSwgY2xpZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlYWR5Lm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgICAgICB0aGlzLmNsaWVudElkID0gY2xpZW50SWQ7XG4gICAgICAgIHRoaXMuY2xpZW50ID0gaW5pdGlhbGl6ZSh0aGlzLmNsaWVudElkLCB0aGlzLnVzZXIsIHt9KTtcbiAgICAgICAgdGhpcy5jbGllbnQub24oJ3JlYWR5JywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGllbnQuaWRlbnRpZnkodGhpcy51c2VyKS50aGVuKCgpID0+IHRoaXMucmVhZHkubmV4dCh0cnVlKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0VuYWJsZWQoZmVhdHVyZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IGJvb2xlYW4gPSBmYWxzZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZTxib29sZWFuPihmZWF0dXJlLCBkZWZhdWx0VmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBcnJheTxSID0gYW55PihmZWF0dXJlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFJbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZTxSW10+KGZlYXR1cmUsIFtdKTtcbiAgICB9XG5cbiAgICAvLyBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBhbHdheXMgZW1pdHMgaXRzIGRlZmF1bHQgdmFsdWUgZmlyc3QsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgcmVzdWx0c1xuICAgIHB1YmxpYyBnZXRWYWx1ZTxSPihmZWF0dXJlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogUik6IE9ic2VydmFibGU8Uj4ge1xuICAgICAgICBpZiAoIXRoaXMuZmVhdHVyZXMuaGFzT3duUHJvcGVydHkoZmVhdHVyZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFI+KGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnJlYWR5LnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKHJlYWR5ID0+IHJlYWR5KSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5jbGllbnQudmFyaWF0aW9uKGZlYXR1cmUsIGRlZmF1bHRWYWx1ZSkpXG4gICAgICAgICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlc1tmZWF0dXJlXS5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsaWVudC5vbihgY2hhbmdlOiR7ZmVhdHVyZX1gLCAodmFsOiBSKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0ubmV4dCh2YWwpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0ucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIG9ubHkgZ2V0IHRoZSBzdGF0ZSBvZiB0aGUgZmVhdHVyZSB0b2dnbGVcbiAgICAgKiBvbmNlLiBJdCBjYWxscyB0aGUgTEQgU0RLIGRpcmVjdGx5LCBhbmQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiBjaXJjdW1zdGFuY2VzIHdoZXJlXG4gICAgICogb25seSBvbmUgdmFsdWUgc2hvdWxkIGJlIGVtaXR0ZWQsIHRoYXQgdmFsdWUgY29taW5nIGRpcmVjdGx5IGZyb20gTEQuIFRoaXMgd2lsbCBsaWtlbHlcbiAgICAgKiBvbmx5IGFwcGx5IGZvciBHdWFyZHMsIGFuZCBzaG91bGQgYmUgdXNlZCBvbmx5IHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnkuXG4gICAgICogQHNlZSBnZXRWYWx1ZSBmb3IgcmVndWxhciB1c2FnZS5cbiAgICAgKiBAcGFyYW0gZmVhdHVyZSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIFJcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmFsdWVPbmNlPFI+KGZlYXR1cmU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWR5LnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIocmVhZHkgPT4gcmVhZHkpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuY2xpZW50LnZhcmlhdGlvbihmZWF0dXJlLCBkZWZhdWx0VmFsdWUpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZVN5bmM8Uj4oZmVhdHVyZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFIpOiBSIHtcbiAgICAgIHJldHVybiB0aGlzLmNsaWVudC52YXJpYXRpb24oZmVhdHVyZSwgZGVmYXVsdFZhbHVlKTtcbiAgICB9XG59XG4iXX0=