@myclub_se/data-access 2.15.1 → 3.0.0

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 (774) hide show
  1. package/{esm2020 → esm2022}/index.mjs +2 -1
  2. package/{esm2020 → esm2022}/lib/api-models/api-bookable-item.mjs +1 -1
  3. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-application-time.mjs +1 -1
  4. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot-session.mjs +1 -1
  5. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar.mjs +1 -1
  6. package/esm2022/lib/api-models/api-feature-flags.mjs +2 -0
  7. package/esm2022/lib/api-models/api-invoice/api-payment-attempt-create.mjs +11 -0
  8. package/esm2022/lib/api-models/index.mjs +57 -0
  9. package/esm2022/lib/authentication/authentication.interceptor.mjs +101 -0
  10. package/esm2022/lib/authentication/authentication.service.mjs +109 -0
  11. package/esm2022/lib/authentication/guards/authenticated.guard.mjs +38 -0
  12. package/esm2022/lib/authentication/guards/handle-grant-token.guard.mjs +31 -0
  13. package/esm2022/lib/data-access.module.mjs +39 -0
  14. package/esm2022/lib/maintenance/maintenance.interceptor.mjs +30 -0
  15. package/esm2022/lib/models/activity-extra-member.mjs +19 -0
  16. package/esm2022/lib/models/activity-invite.mjs +35 -0
  17. package/esm2022/lib/models/activity-location-group.mjs +27 -0
  18. package/esm2022/lib/models/activity-location-part.mjs +16 -0
  19. package/esm2022/lib/models/activity-location-tag.mjs +22 -0
  20. package/esm2022/lib/models/activity-location.mjs +46 -0
  21. package/esm2022/lib/models/activity-participant.mjs +19 -0
  22. package/esm2022/lib/models/activity-settings.mjs +27 -0
  23. package/esm2022/lib/models/activity-type.mjs +34 -0
  24. package/esm2022/lib/models/activity.mjs +137 -0
  25. package/esm2022/lib/models/auth/auth-member.mjs +13 -0
  26. package/{esm2020 → esm2022}/lib/models/auth/auth-section.mjs +3 -1
  27. package/{esm2020 → esm2022}/lib/models/auth/auth-team-section.mjs +3 -1
  28. package/esm2022/lib/models/auth/auth-team.mjs +13 -0
  29. package/esm2022/lib/models/auth/auth.mjs +25 -0
  30. package/{esm2020 → esm2022}/lib/models/authentication.mjs +3 -1
  31. package/esm2022/lib/models/bookable-group.mjs +27 -0
  32. package/esm2022/lib/models/bookable-item.mjs +49 -0
  33. package/esm2022/lib/models/bookable-part.mjs +16 -0
  34. package/esm2022/lib/models/bookable-tag.mjs +22 -0
  35. package/esm2022/lib/models/booking-calendar-application-time.mjs +86 -0
  36. package/esm2022/lib/models/booking-calendar-slot-session.mjs +87 -0
  37. package/esm2022/lib/models/booking-calendar-slot.mjs +79 -0
  38. package/esm2022/lib/models/booking-calendar.mjs +74 -0
  39. package/esm2022/lib/models/booking-settings.mjs +29 -0
  40. package/esm2022/lib/models/booking-slot-filter.mjs +72 -0
  41. package/esm2022/lib/models/calendar-event.mjs +35 -0
  42. package/esm2022/lib/models/calendar.mjs +15 -0
  43. package/esm2022/lib/models/card/card-deal.mjs +15 -0
  44. package/esm2022/lib/models/card/card-logo-urls.mjs +21 -0
  45. package/esm2022/lib/models/card/card-logo.mjs +11 -0
  46. package/esm2022/lib/models/card/card-member-ticket.mjs +17 -0
  47. package/esm2022/lib/models/card/card-theme.mjs +15 -0
  48. package/esm2022/lib/models/card/card-ticket-location.mjs +13 -0
  49. package/esm2022/lib/models/card/card-ticket.mjs +37 -0
  50. package/{esm2020 → esm2022}/lib/models/card/card.mjs +9 -1
  51. package/esm2022/lib/models/card/home-team.mjs +11 -0
  52. package/esm2022/lib/models/card/member-card.mjs +23 -0
  53. package/esm2022/lib/models/card/search-member-card.mjs +13 -0
  54. package/esm2022/lib/models/club-image.mjs +31 -0
  55. package/{esm2020 → esm2022}/lib/models/club-section.mjs +3 -1
  56. package/{esm2020 → esm2022}/lib/models/club.mjs +3 -1
  57. package/esm2022/lib/models/collection.mjs +19 -0
  58. package/esm2022/lib/models/contact.mjs +61 -0
  59. package/esm2022/lib/models/directory.mjs +38 -0
  60. package/esm2022/lib/models/email.mjs +11 -0
  61. package/esm2022/lib/models/event.mjs +47 -0
  62. package/{esm2020 → esm2022}/lib/models/external-link.mjs +3 -1
  63. package/esm2022/lib/models/feature-flags.mjs +14 -0
  64. package/esm2022/lib/models/file-object.mjs +23 -0
  65. package/esm2022/lib/models/general-image.mjs +11 -0
  66. package/esm2022/lib/models/group-role.mjs +17 -0
  67. package/esm2022/lib/models/image-urls.mjs +15 -0
  68. package/esm2022/lib/models/index.mjs +64 -0
  69. package/esm2022/lib/models/invoice/member-fee.mjs +13 -0
  70. package/esm2022/lib/models/invoice/member-invoice-row.mjs +31 -0
  71. package/esm2022/lib/models/invoice/member-invoice.mjs +45 -0
  72. package/esm2022/lib/models/invoice/payment-attempt.mjs +21 -0
  73. package/esm2022/lib/models/invoice/payment-types/credit-card.mjs +27 -0
  74. package/esm2022/lib/models/invoice/payment-types/giro.mjs +17 -0
  75. package/esm2022/lib/models/invoice/payment-types/swish.mjs +31 -0
  76. package/esm2022/lib/models/invoice/payment-types/zimpler.mjs +19 -0
  77. package/esm2022/lib/models/invoice/search-member-invoice.mjs +26 -0
  78. package/{esm2020 → esm2022}/lib/models/invoice/swish-qr-code.mjs +2 -1
  79. package/esm2022/lib/models/invoice/unpaid-member-invoice.mjs +13 -0
  80. package/esm2022/lib/models/member/member-attribute.mjs +44 -0
  81. package/esm2022/lib/models/member/member-contact.mjs +26 -0
  82. package/esm2022/lib/models/member/member-function.mjs +24 -0
  83. package/esm2022/lib/models/member/member-validation-settings.mjs +21 -0
  84. package/esm2022/lib/models/member/member.mjs +101 -0
  85. package/{esm2020 → esm2022}/lib/models/member/other-member-field.mjs +4 -1
  86. package/esm2022/lib/models/member/other-member.mjs +21 -0
  87. package/esm2022/lib/models/member/search-member.mjs +35 -0
  88. package/esm2022/lib/models/member-activity-invite.mjs +42 -0
  89. package/esm2022/lib/models/member-public-form-field-option.mjs +13 -0
  90. package/esm2022/lib/models/member-public-form-field.mjs +27 -0
  91. package/esm2022/lib/models/member-public-form.mjs +55 -0
  92. package/esm2022/lib/models/member-team-through.mjs +23 -0
  93. package/esm2022/lib/models/member-team.mjs +21 -0
  94. package/esm2022/lib/models/member-type.mjs +11 -0
  95. package/esm2022/lib/models/news.mjs +66 -0
  96. package/esm2022/lib/models/open-activity.mjs +117 -0
  97. package/esm2022/lib/models/optional-fee.mjs +16 -0
  98. package/esm2022/lib/models/overbooked-bookable-item.mjs +15 -0
  99. package/esm2022/lib/models/overbooked-location.mjs +15 -0
  100. package/esm2022/lib/models/partner.mjs +13 -0
  101. package/esm2022/lib/models/public-authentication.mjs +9 -0
  102. package/esm2022/lib/models/registration-qr-code.mjs +19 -0
  103. package/esm2022/lib/models/search-club.mjs +23 -0
  104. package/esm2022/lib/models/search-team.mjs +24 -0
  105. package/{esm2020 → esm2022}/lib/models/section.mjs +3 -1
  106. package/esm2022/lib/models/token.mjs +11 -0
  107. package/esm2022/lib/models/user-notification.mjs +21 -0
  108. package/esm2022/lib/models/user.mjs +41 -0
  109. package/esm2022/lib/services/activity.service.mjs +508 -0
  110. package/esm2022/lib/services/api.service.mjs +108 -0
  111. package/esm2022/lib/services/auth.service.mjs +62 -0
  112. package/esm2022/lib/services/bookable.service.mjs +279 -0
  113. package/esm2022/lib/services/booking-calendar.service.mjs +736 -0
  114. package/esm2022/lib/services/club.service.mjs +35 -0
  115. package/esm2022/lib/services/constant.service.mjs +97 -0
  116. package/esm2022/lib/services/email.service.mjs +28 -0
  117. package/esm2022/lib/services/external-link.service.mjs +25 -0
  118. package/esm2022/lib/services/factories/activity-settings-factory.mjs +3 -0
  119. package/esm2022/lib/services/factories/bookable-item-factory.mjs +5 -0
  120. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-application-time-factory.mjs +2 -2
  121. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-factory.mjs +2 -2
  122. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-session-factory.mjs +2 -2
  123. package/esm2022/lib/services/factories/feature-flags-factory.mjs +5 -0
  124. package/esm2022/lib/services/factories/index.mjs +87 -0
  125. package/esm2022/lib/services/factories/member-public-form-factory.mjs +26 -0
  126. package/esm2022/lib/services/factories/payment-attempt-factory.mjs +23 -0
  127. package/esm2022/lib/services/feature-flags.service.mjs +44 -0
  128. package/esm2022/lib/services/file.service.mjs +65 -0
  129. package/esm2022/lib/services/index.mjs +24 -0
  130. package/esm2022/lib/services/invoice/invoice.service.mjs +42 -0
  131. package/esm2022/lib/services/invoice/payment-attempt.service.mjs +52 -0
  132. package/esm2022/lib/services/maintenance-mode.service.mjs +20 -0
  133. package/esm2022/lib/services/member-card.service.mjs +104 -0
  134. package/esm2022/lib/services/member-public-form.service.mjs +33 -0
  135. package/esm2022/lib/services/member.service.mjs +85 -0
  136. package/esm2022/lib/services/news.service.mjs +94 -0
  137. package/esm2022/lib/services/registration-qr-code.service.mjs +37 -0
  138. package/esm2022/lib/services/section.service.mjs +24 -0
  139. package/esm2022/lib/services/storage.service.mjs +44 -0
  140. package/esm2022/lib/services/team.service.mjs +89 -0
  141. package/esm2022/lib/services/token.service.mjs +58 -0
  142. package/esm2022/lib/services/user-notification.service.mjs +24 -0
  143. package/esm2022/lib/services/user.service.mjs +69 -0
  144. package/esm2022/lib/store/actions/activity.actions.mjs +177 -0
  145. package/esm2022/lib/store/actions/auth.actions.mjs +45 -0
  146. package/esm2022/lib/store/actions/booking.actions.mjs +187 -0
  147. package/esm2022/lib/store/actions/calendar.actions.mjs +77 -0
  148. package/esm2022/lib/store/actions/club-info.actions.mjs +23 -0
  149. package/esm2022/lib/store/actions/constant.actions.mjs +124 -0
  150. package/esm2022/lib/store/actions/email.actions.mjs +19 -0
  151. package/esm2022/lib/store/actions/external-link.actions.mjs +11 -0
  152. package/esm2022/lib/store/actions/file.actions.mjs +41 -0
  153. package/esm2022/lib/store/actions/index.mjs +19 -0
  154. package/esm2022/lib/store/actions/invoice.actions.mjs +73 -0
  155. package/esm2022/lib/store/actions/member-card.actions.mjs +71 -0
  156. package/esm2022/lib/store/actions/member.actions.mjs +65 -0
  157. package/esm2022/lib/store/actions/news.actions.mjs +47 -0
  158. package/esm2022/lib/store/actions/public-form.actions.mjs +17 -0
  159. package/esm2022/lib/store/actions/store.actions.mjs +7 -0
  160. package/esm2022/lib/store/actions/team.actions.mjs +83 -0
  161. package/esm2022/lib/store/actions/token.actions.mjs +53 -0
  162. package/esm2022/lib/store/actions/user.actions.mjs +49 -0
  163. package/esm2022/lib/store/effects/activity.effects.mjs +211 -0
  164. package/esm2022/lib/store/effects/auth.effects.mjs +96 -0
  165. package/esm2022/lib/store/effects/booking.effects.mjs +102 -0
  166. package/esm2022/lib/store/effects/calendar.effects.mjs +84 -0
  167. package/esm2022/lib/store/effects/club-info.effects.mjs +26 -0
  168. package/esm2022/lib/store/effects/constant.effects.mjs +69 -0
  169. package/esm2022/lib/store/effects/data-access.effects.mjs +37 -0
  170. package/esm2022/lib/store/effects/email.effects.mjs +27 -0
  171. package/esm2022/lib/store/effects/external-link.effects.mjs +20 -0
  172. package/esm2022/lib/store/effects/file.effects.mjs +149 -0
  173. package/esm2022/lib/store/effects/index.mjs +2 -0
  174. package/esm2022/lib/store/effects/invoice.effects.mjs +72 -0
  175. package/esm2022/lib/store/effects/member-card.effects.mjs +80 -0
  176. package/esm2022/lib/store/effects/member.effects.mjs +75 -0
  177. package/esm2022/lib/store/effects/mixins/extra-members-mixin.mjs +60 -0
  178. package/esm2022/lib/store/effects/news.effects.mjs +82 -0
  179. package/esm2022/lib/store/effects/public-form.effects.mjs +33 -0
  180. package/esm2022/lib/store/effects/team.effects.mjs +82 -0
  181. package/esm2022/lib/store/effects/token.effects.mjs +81 -0
  182. package/esm2022/lib/store/effects/user.effects.mjs +59 -0
  183. package/esm2022/lib/store/index.mjs +8 -0
  184. package/esm2022/lib/store/interfaces/activate-card-ticket.interface.mjs +2 -0
  185. package/esm2022/lib/store/interfaces/activate-user.interface.mjs +2 -0
  186. package/esm2022/lib/store/interfaces/calendar-activity-locations.interface.mjs +2 -0
  187. package/esm2022/lib/store/interfaces/calendar-activity-types.interface.mjs +2 -0
  188. package/esm2022/lib/store/interfaces/calendar-open-activity-result.interface.mjs +2 -0
  189. package/esm2022/lib/store/interfaces/calendar-public-open-activity-results.interface.mjs +2 -0
  190. package/esm2022/lib/store/interfaces/directory-result.interface.mjs +2 -0
  191. package/esm2022/lib/store/interfaces/email-settings.interface.mjs +2 -0
  192. package/esm2022/lib/store/interfaces/index.mjs +20 -0
  193. package/esm2022/lib/store/interfaces/list-result-interface.mjs +4 -0
  194. package/esm2022/lib/store/interfaces/location.interface.mjs +2 -0
  195. package/esm2022/lib/store/interfaces/member-calendar-event-result.interface.mjs +2 -0
  196. package/esm2022/lib/store/interfaces/member-card-deals.interface.mjs +2 -0
  197. package/esm2022/lib/store/interfaces/member-card-tickets.interface.mjs +2 -0
  198. package/esm2022/lib/store/interfaces/public-activate-card-ticket.interface.mjs +2 -0
  199. package/esm2022/lib/store/interfaces/remove-member-auth.interface.mjs +2 -0
  200. package/esm2022/lib/store/interfaces/remove-team-auth.interface.mjs +2 -0
  201. package/esm2022/lib/store/interfaces/retrieve-result.interface.mjs +4 -0
  202. package/esm2022/lib/store/interfaces/team-activity.interface.mjs +2 -0
  203. package/esm2022/lib/store/interfaces/team-calendar-event-result.interface.mjs +2 -0
  204. package/esm2022/lib/store/operators/ensure-activity.mjs +8 -0
  205. package/esm2022/lib/store/operators/ensure-auths.mjs +18 -0
  206. package/esm2022/lib/store/operators/ensure-calendar-events-loading-done.mjs +23 -0
  207. package/esm2022/lib/store/operators/ensure-constants.mjs +21 -0
  208. package/esm2022/lib/store/operators/ensure-current-auth.mjs +17 -0
  209. package/esm2022/lib/store/operators/ensure-current-user.mjs +16 -0
  210. package/esm2022/lib/store/operators/ensure-loading-done.mjs +24 -0
  211. package/esm2022/lib/store/operators/ensure-open-activities-loading-done.mjs +5 -0
  212. package/esm2022/lib/store/operators/ensure-public-open-activities-loading-done.mjs +5 -0
  213. package/esm2022/lib/store/operators/ensure-updated-data.mjs +10 -0
  214. package/esm2022/lib/store/operators/index.mjs +11 -0
  215. package/esm2022/lib/store/reducers/auth.reducer.mjs +52 -0
  216. package/esm2022/lib/store/reducers/booking.reducers.mjs +79 -0
  217. package/esm2022/lib/store/reducers/calendar.reducer.mjs +449 -0
  218. package/esm2022/lib/store/reducers/club-info.reducer.mjs +9 -0
  219. package/esm2022/lib/store/reducers/constant.reducer.mjs +181 -0
  220. package/esm2022/lib/store/reducers/data-access.reducer.mjs +37 -0
  221. package/esm2022/lib/store/reducers/email.reducer.mjs +21 -0
  222. package/esm2022/lib/store/reducers/external-link.reducer.mjs +6 -0
  223. package/esm2022/lib/store/reducers/file.reducer.mjs +118 -0
  224. package/esm2022/lib/store/reducers/index.mjs +2 -0
  225. package/esm2022/lib/store/reducers/invoice.reducer.mjs +6 -0
  226. package/esm2022/lib/store/reducers/member-card.reducer.mjs +33 -0
  227. package/esm2022/lib/store/reducers/member.reducer.mjs +21 -0
  228. package/esm2022/lib/store/reducers/news.reducer.mjs +96 -0
  229. package/esm2022/lib/store/reducers/public-form.reducer.mjs +21 -0
  230. package/esm2022/lib/store/reducers/public.reducer.mjs +109 -0
  231. package/esm2022/lib/store/reducers/reducer-helpers.mjs +61 -0
  232. package/esm2022/lib/store/reducers/team.reducer.mjs +77 -0
  233. package/esm2022/lib/store/reducers/token.reducer.mjs +21 -0
  234. package/esm2022/lib/store/reducers/user.reducer.mjs +18 -0
  235. package/esm2022/lib/store/selectors/auth.selectors.mjs +6 -0
  236. package/esm2022/lib/store/selectors/booking.selectors.mjs +15 -0
  237. package/esm2022/lib/store/selectors/calendar.selectors.mjs +18 -0
  238. package/esm2022/lib/store/selectors/club-info.selectors.mjs +5 -0
  239. package/esm2022/lib/store/selectors/constant.selectors.mjs +38 -0
  240. package/esm2022/lib/store/selectors/email.selectors.mjs +5 -0
  241. package/esm2022/lib/store/selectors/external-links.selectors.mjs +5 -0
  242. package/esm2022/lib/store/selectors/file.selectors.mjs +6 -0
  243. package/esm2022/lib/store/selectors/index.mjs +18 -0
  244. package/esm2022/lib/store/selectors/invoice.selectors.mjs +6 -0
  245. package/esm2022/lib/store/selectors/member-card.selectors.mjs +8 -0
  246. package/esm2022/lib/store/selectors/member.selectors.mjs +10 -0
  247. package/esm2022/lib/store/selectors/news.selectors.mjs +8 -0
  248. package/esm2022/lib/store/selectors/public-form.selectors.mjs +5 -0
  249. package/esm2022/lib/store/selectors/public.selectors.mjs +18 -0
  250. package/esm2022/lib/store/selectors/team.selectors.mjs +12 -0
  251. package/esm2022/lib/store/selectors/token.selectors.mjs +6 -0
  252. package/esm2022/lib/store/selectors/user.selectors.mjs +6 -0
  253. package/esm2022/lib/store/state/auth.state.mjs +5 -0
  254. package/esm2022/lib/store/state/booking.state.mjs +16 -0
  255. package/esm2022/lib/store/state/calendar.state.mjs +17 -0
  256. package/esm2022/lib/store/state/club-info.state.mjs +4 -0
  257. package/esm2022/lib/store/state/constant.state.mjs +21 -0
  258. package/esm2022/lib/store/state/data-access.state.mjs +2 -0
  259. package/esm2022/lib/store/state/email.state.mjs +7 -0
  260. package/esm2022/lib/store/state/external-link.state.mjs +4 -0
  261. package/esm2022/lib/store/state/file.state.mjs +5 -0
  262. package/esm2022/lib/store/state/index.mjs +19 -0
  263. package/esm2022/lib/store/state/invoice.state.mjs +5 -0
  264. package/esm2022/lib/store/state/member-card.state.mjs +7 -0
  265. package/esm2022/lib/store/state/member.state.mjs +10 -0
  266. package/esm2022/lib/store/state/news.state.mjs +7 -0
  267. package/esm2022/lib/store/state/public-form.state.mjs +5 -0
  268. package/esm2022/lib/store/state/public.state.mjs +17 -0
  269. package/esm2022/lib/store/state/team.state.mjs +11 -0
  270. package/esm2022/lib/store/state/token.state.mjs +5 -0
  271. package/esm2022/lib/store/state/user.state.mjs +5 -0
  272. package/fesm2022/myclub_se-data-access.mjs +10080 -0
  273. package/fesm2022/myclub_se-data-access.mjs.map +1 -0
  274. package/index.d.ts +1 -0
  275. package/lib/api-models/api-bookable-item.d.ts +2 -0
  276. package/lib/api-models/api-booking-calendar-application-time.d.ts +3 -0
  277. package/lib/api-models/api-booking-calendar-slot-session.d.ts +3 -0
  278. package/lib/api-models/api-booking-calendar.d.ts +2 -0
  279. package/lib/api-models/api-feature-flags.d.ts +5 -0
  280. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.d.ts +1 -1
  281. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.d.ts +1 -1
  282. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.d.ts +1 -1
  283. package/lib/api-models/index.d.ts +1 -0
  284. package/lib/authentication/authentication.interceptor.d.ts +12 -7
  285. package/lib/data-access.module.d.ts +3 -1
  286. package/lib/models/activity-settings.d.ts +3 -1
  287. package/lib/models/auth/auth.d.ts +3 -2
  288. package/lib/models/bookable-item.d.ts +6 -1
  289. package/lib/models/booking-calendar-application-time.d.ts +8 -3
  290. package/lib/models/booking-calendar-slot-session.d.ts +10 -5
  291. package/lib/models/booking-calendar-slot.d.ts +7 -6
  292. package/lib/models/booking-calendar.d.ts +4 -1
  293. package/lib/models/booking-settings.d.ts +5 -4
  294. package/lib/models/booking-slot-filter.d.ts +17 -0
  295. package/lib/models/directory.d.ts +1 -0
  296. package/lib/models/feature-flags.d.ts +7 -0
  297. package/lib/models/index.d.ts +2 -0
  298. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.d.ts +1 -1
  299. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.d.ts +1 -1
  300. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.d.ts +1 -1
  301. package/lib/services/activity.service.d.ts +55 -52
  302. package/lib/services/bookable.service.d.ts +12 -9
  303. package/lib/services/booking-calendar.service.d.ts +6 -23
  304. package/lib/services/constant.service.d.ts +5 -11
  305. package/lib/services/email.service.d.ts +0 -9
  306. package/lib/services/factories/feature-flags-factory.d.ts +3 -0
  307. package/lib/services/factories/index.d.ts +1 -0
  308. package/lib/services/feature-flags.service.d.ts +13 -0
  309. package/lib/services/index.d.ts +2 -0
  310. package/lib/services/member.service.d.ts +7 -3
  311. package/lib/services/storage.service.d.ts +20 -0
  312. package/lib/store/actions/activity.actions.d.ts +641 -0
  313. package/lib/store/actions/auth.actions.d.ts +83 -0
  314. package/lib/store/actions/booking.actions.d.ts +652 -0
  315. package/lib/store/actions/calendar.actions.d.ts +381 -0
  316. package/lib/store/actions/club-info.actions.d.ts +54 -0
  317. package/lib/store/actions/constant.actions.d.ts +249 -0
  318. package/lib/store/actions/email.actions.d.ts +57 -0
  319. package/lib/store/actions/external-link.actions.d.ts +22 -0
  320. package/lib/store/actions/file.actions.d.ts +169 -0
  321. package/lib/store/actions/index.d.ts +18 -0
  322. package/lib/store/actions/invoice.actions.d.ts +298 -0
  323. package/lib/store/actions/member-card.actions.d.ts +251 -0
  324. package/lib/store/actions/member.actions.d.ts +212 -0
  325. package/lib/store/actions/news.actions.d.ts +164 -0
  326. package/lib/store/actions/public-form.actions.d.ts +46 -0
  327. package/lib/store/actions/store.actions.d.ts +4 -0
  328. package/lib/store/actions/team.actions.d.ts +326 -0
  329. package/lib/store/actions/token.actions.d.ts +151 -0
  330. package/lib/store/actions/user.actions.d.ts +102 -0
  331. package/lib/store/effects/activity.effects.d.ts +152 -0
  332. package/lib/store/effects/auth.effects.d.ts +35 -0
  333. package/lib/store/effects/booking.effects.d.ts +196 -0
  334. package/lib/store/effects/calendar.effects.d.ts +129 -0
  335. package/lib/store/effects/club-info.effects.d.ts +24 -0
  336. package/lib/store/effects/constant.effects.d.ts +96 -0
  337. package/lib/store/effects/data-access.effects.d.ts +18 -0
  338. package/lib/store/effects/email.effects.d.ts +14 -0
  339. package/lib/store/effects/external-link.effects.d.ts +14 -0
  340. package/lib/store/effects/file.effects.d.ts +55 -0
  341. package/lib/store/effects/index.d.ts +1 -0
  342. package/lib/store/effects/invoice.effects.d.ts +80 -0
  343. package/lib/store/effects/member-card.effects.d.ts +69 -0
  344. package/lib/store/effects/member.effects.d.ts +58 -0
  345. package/lib/store/effects/mixins/extra-members-mixin.d.ts +10 -0
  346. package/lib/store/effects/news.effects.d.ts +49 -0
  347. package/lib/store/effects/public-form.effects.d.ts +19 -0
  348. package/lib/store/effects/team.effects.d.ts +80 -0
  349. package/lib/store/effects/token.effects.d.ts +66 -0
  350. package/lib/store/effects/user.effects.d.ts +36 -0
  351. package/lib/store/index.d.ts +7 -0
  352. package/lib/store/interfaces/activate-card-ticket.interface.d.ts +6 -0
  353. package/lib/store/interfaces/activate-user.interface.d.ts +4 -0
  354. package/lib/store/interfaces/calendar-activity-locations.interface.d.ts +7 -0
  355. package/lib/store/interfaces/calendar-activity-types.interface.d.ts +7 -0
  356. package/lib/store/interfaces/calendar-open-activity-result.interface.d.ts +8 -0
  357. package/lib/store/interfaces/calendar-public-open-activity-results.interface.d.ts +7 -0
  358. package/lib/store/interfaces/directory-result.interface.d.ts +5 -0
  359. package/lib/store/interfaces/email-settings.interface.d.ts +5 -0
  360. package/lib/store/interfaces/index.d.ts +19 -0
  361. package/lib/store/interfaces/list-result-interface.d.ts +13 -0
  362. package/lib/store/interfaces/location.interface.d.ts +7 -0
  363. package/lib/store/interfaces/member-calendar-event-result.interface.d.ts +8 -0
  364. package/lib/store/interfaces/member-card-deals.interface.d.ts +5 -0
  365. package/lib/store/interfaces/member-card-tickets.interface.d.ts +5 -0
  366. package/lib/store/interfaces/public-activate-card-ticket.interface.d.ts +6 -0
  367. package/lib/store/interfaces/remove-member-auth.interface.d.ts +4 -0
  368. package/lib/store/interfaces/remove-team-auth.interface.d.ts +4 -0
  369. package/lib/store/interfaces/retrieve-result.interface.d.ts +13 -0
  370. package/lib/store/interfaces/team-activity.interface.d.ts +9 -0
  371. package/lib/store/interfaces/team-calendar-event-result.interface.d.ts +8 -0
  372. package/lib/store/operators/ensure-activity.d.ts +4 -0
  373. package/lib/store/operators/ensure-auths.d.ts +13 -0
  374. package/lib/store/operators/ensure-calendar-events-loading-done.d.ts +19 -0
  375. package/lib/store/operators/ensure-constants.d.ts +12 -0
  376. package/lib/store/operators/ensure-current-auth.d.ts +12 -0
  377. package/lib/store/operators/ensure-current-user.d.ts +11 -0
  378. package/lib/store/operators/ensure-loading-done.d.ts +20 -0
  379. package/lib/store/operators/ensure-open-activities-loading-done.d.ts +3 -0
  380. package/lib/store/operators/ensure-public-open-activities-loading-done.d.ts +3 -0
  381. package/lib/store/operators/ensure-updated-data.d.ts +4 -0
  382. package/lib/store/operators/index.d.ts +10 -0
  383. package/lib/store/reducers/auth.reducer.d.ts +2 -0
  384. package/lib/store/reducers/booking.reducers.d.ts +2 -0
  385. package/lib/store/reducers/calendar.reducer.d.ts +2 -0
  386. package/lib/store/reducers/club-info.reducer.d.ts +2 -0
  387. package/lib/store/reducers/constant.reducer.d.ts +2 -0
  388. package/lib/store/reducers/data-access.reducer.d.ts +3 -0
  389. package/lib/store/reducers/email.reducer.d.ts +2 -0
  390. package/lib/store/reducers/external-link.reducer.d.ts +2 -0
  391. package/lib/store/reducers/file.reducer.d.ts +2 -0
  392. package/lib/store/reducers/index.d.ts +1 -0
  393. package/lib/store/reducers/invoice.reducer.d.ts +2 -0
  394. package/lib/store/reducers/member-card.reducer.d.ts +2 -0
  395. package/lib/store/reducers/member.reducer.d.ts +2 -0
  396. package/lib/store/reducers/news.reducer.d.ts +2 -0
  397. package/lib/store/reducers/public-form.reducer.d.ts +2 -0
  398. package/lib/store/reducers/public.reducer.d.ts +2 -0
  399. package/lib/store/reducers/reducer-helpers.d.ts +8 -0
  400. package/lib/store/reducers/team.reducer.d.ts +2 -0
  401. package/lib/store/reducers/token.reducer.d.ts +2 -0
  402. package/lib/store/reducers/user.reducer.d.ts +2 -0
  403. package/lib/store/selectors/auth.selectors.d.ts +4 -0
  404. package/lib/store/selectors/booking.selectors.d.ts +13 -0
  405. package/lib/store/selectors/calendar.selectors.d.ts +16 -0
  406. package/lib/store/selectors/club-info.selectors.d.ts +3 -0
  407. package/lib/store/selectors/constant.selectors.d.ts +19 -0
  408. package/lib/store/selectors/email.selectors.d.ts +3 -0
  409. package/lib/store/selectors/external-links.selectors.d.ts +3 -0
  410. package/lib/store/selectors/file.selectors.d.ts +4 -0
  411. package/lib/store/selectors/index.d.ts +17 -0
  412. package/lib/store/selectors/invoice.selectors.d.ts +4 -0
  413. package/lib/store/selectors/member-card.selectors.d.ts +6 -0
  414. package/lib/store/selectors/member.selectors.d.ts +8 -0
  415. package/lib/store/selectors/news.selectors.d.ts +6 -0
  416. package/lib/store/selectors/public-form.selectors.d.ts +3 -0
  417. package/lib/store/selectors/public.selectors.d.ts +16 -0
  418. package/lib/store/selectors/team.selectors.d.ts +10 -0
  419. package/lib/store/selectors/token.selectors.d.ts +4 -0
  420. package/lib/store/selectors/user.selectors.d.ts +4 -0
  421. package/lib/store/state/auth.state.d.ts +7 -0
  422. package/lib/store/state/booking.state.d.ts +16 -0
  423. package/lib/store/state/calendar.state.d.ts +19 -0
  424. package/lib/store/state/club-info.state.d.ts +6 -0
  425. package/lib/store/state/constant.state.d.ts +23 -0
  426. package/lib/store/state/data-access.state.d.ts +36 -0
  427. package/lib/store/state/email.state.d.ts +5 -0
  428. package/lib/store/state/external-link.state.d.ts +6 -0
  429. package/lib/store/state/file.state.d.ts +6 -0
  430. package/lib/store/state/index.d.ts +18 -0
  431. package/lib/store/state/invoice.state.d.ts +7 -0
  432. package/lib/store/state/member-card.state.d.ts +9 -0
  433. package/lib/store/state/member.state.d.ts +11 -0
  434. package/lib/store/state/news.state.d.ts +9 -0
  435. package/lib/store/state/public-form.state.d.ts +7 -0
  436. package/lib/store/state/public.state.d.ts +19 -0
  437. package/lib/store/state/team.state.d.ts +13 -0
  438. package/lib/store/state/token.state.d.ts +7 -0
  439. package/lib/store/state/user.state.d.ts +7 -0
  440. package/lib/types/attribute-type.d.ts +1 -1
  441. package/lib/types/booking-calendar-slot-reserved-time-position.d.ts +1 -1
  442. package/lib/types/booking-calendar-slot-type.d.ts +1 -1
  443. package/lib/types/contact-type.d.ts +1 -1
  444. package/lib/types/grant-type.d.ts +1 -1
  445. package/lib/types/payment-attempt-status-type.d.ts +1 -1
  446. package/lib/types/payment-attempt-type.d.ts +1 -1
  447. package/lib/types/sex-type.d.ts +1 -1
  448. package/package.json +13 -18
  449. package/esm2020/lib/api-models/api-invoice/api-payment-attempt-create.mjs +0 -8
  450. package/esm2020/lib/api-models/index.mjs +0 -56
  451. package/esm2020/lib/authentication/authentication.interceptor.mjs +0 -66
  452. package/esm2020/lib/authentication/authentication.service.mjs +0 -106
  453. package/esm2020/lib/authentication/guards/authenticated.guard.mjs +0 -36
  454. package/esm2020/lib/authentication/guards/handle-grant-token.guard.mjs +0 -29
  455. package/esm2020/lib/data-access.module.mjs +0 -30
  456. package/esm2020/lib/maintenance/maintenance.interceptor.mjs +0 -29
  457. package/esm2020/lib/models/activity-extra-member.mjs +0 -12
  458. package/esm2020/lib/models/activity-invite.mjs +0 -20
  459. package/esm2020/lib/models/activity-location-group.mjs +0 -21
  460. package/esm2020/lib/models/activity-location-part.mjs +0 -14
  461. package/esm2020/lib/models/activity-location-tag.mjs +0 -17
  462. package/esm2020/lib/models/activity-location.mjs +0 -36
  463. package/esm2020/lib/models/activity-participant.mjs +0 -12
  464. package/esm2020/lib/models/activity-settings.mjs +0 -14
  465. package/esm2020/lib/models/activity-type.mjs +0 -26
  466. package/esm2020/lib/models/activity.mjs +0 -92
  467. package/esm2020/lib/models/auth/auth-member.mjs +0 -10
  468. package/esm2020/lib/models/auth/auth-team.mjs +0 -9
  469. package/esm2020/lib/models/auth/auth.mjs +0 -15
  470. package/esm2020/lib/models/bookable-group.mjs +0 -21
  471. package/esm2020/lib/models/bookable-item.mjs +0 -34
  472. package/esm2020/lib/models/bookable-part.mjs +0 -14
  473. package/esm2020/lib/models/bookable-tag.mjs +0 -17
  474. package/esm2020/lib/models/booking-calendar-application-time.mjs +0 -52
  475. package/esm2020/lib/models/booking-calendar-slot-session.mjs +0 -54
  476. package/esm2020/lib/models/booking-calendar-slot.mjs +0 -53
  477. package/esm2020/lib/models/booking-calendar.mjs +0 -54
  478. package/esm2020/lib/models/booking-settings.mjs +0 -22
  479. package/esm2020/lib/models/calendar-event.mjs +0 -20
  480. package/esm2020/lib/models/calendar.mjs +0 -10
  481. package/esm2020/lib/models/card/card-deal.mjs +0 -10
  482. package/esm2020/lib/models/card/card-logo-urls.mjs +0 -13
  483. package/esm2020/lib/models/card/card-logo.mjs +0 -8
  484. package/esm2020/lib/models/card/card-member-ticket.mjs +0 -11
  485. package/esm2020/lib/models/card/card-theme.mjs +0 -10
  486. package/esm2020/lib/models/card/card-ticket-location.mjs +0 -9
  487. package/esm2020/lib/models/card/card-ticket.mjs +0 -21
  488. package/esm2020/lib/models/card/home-team.mjs +0 -8
  489. package/esm2020/lib/models/card/member-card.mjs +0 -14
  490. package/esm2020/lib/models/card/search-member-card.mjs +0 -9
  491. package/esm2020/lib/models/club-image.mjs +0 -18
  492. package/esm2020/lib/models/collection.mjs +0 -15
  493. package/esm2020/lib/models/contact.mjs +0 -46
  494. package/esm2020/lib/models/directory.mjs +0 -26
  495. package/esm2020/lib/models/email.mjs +0 -8
  496. package/esm2020/lib/models/event.mjs +0 -26
  497. package/esm2020/lib/models/file-object.mjs +0 -14
  498. package/esm2020/lib/models/general-image.mjs +0 -8
  499. package/esm2020/lib/models/group-role.mjs +0 -11
  500. package/esm2020/lib/models/image-urls.mjs +0 -10
  501. package/esm2020/lib/models/index.mjs +0 -62
  502. package/esm2020/lib/models/invoice/member-fee.mjs +0 -9
  503. package/esm2020/lib/models/invoice/member-invoice-row.mjs +0 -18
  504. package/esm2020/lib/models/invoice/member-invoice.mjs +0 -25
  505. package/esm2020/lib/models/invoice/payment-attempt.mjs +0 -13
  506. package/esm2020/lib/models/invoice/payment-types/credit-card.mjs +0 -16
  507. package/esm2020/lib/models/invoice/payment-types/giro.mjs +0 -11
  508. package/esm2020/lib/models/invoice/payment-types/swish.mjs +0 -18
  509. package/esm2020/lib/models/invoice/payment-types/zimpler.mjs +0 -12
  510. package/esm2020/lib/models/invoice/search-member-invoice.mjs +0 -17
  511. package/esm2020/lib/models/invoice/unpaid-member-invoice.mjs +0 -9
  512. package/esm2020/lib/models/member/member-attribute.mjs +0 -33
  513. package/esm2020/lib/models/member/member-contact.mjs +0 -21
  514. package/esm2020/lib/models/member/member-function.mjs +0 -19
  515. package/esm2020/lib/models/member/member-validation-settings.mjs +0 -13
  516. package/esm2020/lib/models/member/member.mjs +0 -75
  517. package/esm2020/lib/models/member/other-member.mjs +0 -13
  518. package/esm2020/lib/models/member/search-member.mjs +0 -20
  519. package/esm2020/lib/models/member-activity-invite.mjs +0 -31
  520. package/esm2020/lib/models/member-public-form-field-option.mjs +0 -9
  521. package/esm2020/lib/models/member-public-form-field.mjs +0 -16
  522. package/esm2020/lib/models/member-public-form.mjs +0 -30
  523. package/esm2020/lib/models/member-team-through.mjs +0 -14
  524. package/esm2020/lib/models/member-team.mjs +0 -13
  525. package/esm2020/lib/models/member-type.mjs +0 -8
  526. package/esm2020/lib/models/news.mjs +0 -47
  527. package/esm2020/lib/models/open-activity.mjs +0 -62
  528. package/esm2020/lib/models/optional-fee.mjs +0 -11
  529. package/esm2020/lib/models/overbooked-bookable-item.mjs +0 -10
  530. package/esm2020/lib/models/overbooked-location.mjs +0 -10
  531. package/esm2020/lib/models/partner.mjs +0 -9
  532. package/esm2020/lib/models/public-authentication.mjs +0 -7
  533. package/esm2020/lib/models/registration-qr-code.mjs +0 -12
  534. package/esm2020/lib/models/search-club.mjs +0 -14
  535. package/esm2020/lib/models/search-team.mjs +0 -18
  536. package/esm2020/lib/models/token.mjs +0 -8
  537. package/esm2020/lib/models/user-notification.mjs +0 -13
  538. package/esm2020/lib/models/user.mjs +0 -31
  539. package/esm2020/lib/services/activity.service.mjs +0 -470
  540. package/esm2020/lib/services/api.service.mjs +0 -106
  541. package/esm2020/lib/services/auth.service.mjs +0 -61
  542. package/esm2020/lib/services/bookable.service.mjs +0 -258
  543. package/esm2020/lib/services/booking-calendar.service.mjs +0 -794
  544. package/esm2020/lib/services/club.service.mjs +0 -34
  545. package/esm2020/lib/services/constant.service.mjs +0 -131
  546. package/esm2020/lib/services/email.service.mjs +0 -53
  547. package/esm2020/lib/services/external-link.service.mjs +0 -24
  548. package/esm2020/lib/services/factories/activity-settings-factory.mjs +0 -3
  549. package/esm2020/lib/services/factories/bookable-item-factory.mjs +0 -5
  550. package/esm2020/lib/services/factories/index.mjs +0 -86
  551. package/esm2020/lib/services/factories/member-public-form-factory.mjs +0 -26
  552. package/esm2020/lib/services/factories/payment-attempt-factory.mjs +0 -23
  553. package/esm2020/lib/services/file.service.mjs +0 -64
  554. package/esm2020/lib/services/index.mjs +0 -22
  555. package/esm2020/lib/services/invoice/invoice.service.mjs +0 -41
  556. package/esm2020/lib/services/invoice/payment-attempt.service.mjs +0 -51
  557. package/esm2020/lib/services/maintenance-mode.service.mjs +0 -21
  558. package/esm2020/lib/services/member-card.service.mjs +0 -103
  559. package/esm2020/lib/services/member-public-form.service.mjs +0 -32
  560. package/esm2020/lib/services/member.service.mjs +0 -63
  561. package/esm2020/lib/services/news.service.mjs +0 -102
  562. package/esm2020/lib/services/registration-qr-code.service.mjs +0 -36
  563. package/esm2020/lib/services/section.service.mjs +0 -23
  564. package/esm2020/lib/services/team.service.mjs +0 -88
  565. package/esm2020/lib/services/token.service.mjs +0 -57
  566. package/esm2020/lib/services/user-notification.service.mjs +0 -23
  567. package/esm2020/lib/services/user.service.mjs +0 -68
  568. package/fesm2015/myclub_se-data-access.mjs +0 -4810
  569. package/fesm2015/myclub_se-data-access.mjs.map +0 -1
  570. package/fesm2020/myclub_se-data-access.mjs +0 -4806
  571. package/fesm2020/myclub_se-data-access.mjs.map +0 -1
  572. /package/{esm2020 → esm2022}/lib/api-models/api-activity-extra-member.mjs +0 -0
  573. /package/{esm2020 → esm2022}/lib/api-models/api-activity-invite.mjs +0 -0
  574. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-group.mjs +0 -0
  575. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-part.mjs +0 -0
  576. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-tag.mjs +0 -0
  577. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location.mjs +0 -0
  578. /package/{esm2020 → esm2022}/lib/api-models/api-activity-participant.mjs +0 -0
  579. /package/{esm2020 → esm2022}/lib/api-models/api-activity-settings.mjs +0 -0
  580. /package/{esm2020 → esm2022}/lib/api-models/api-activity-type.mjs +0 -0
  581. /package/{esm2020 → esm2022}/lib/api-models/api-activity.mjs +0 -0
  582. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-member.mjs +0 -0
  583. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-section.mjs +0 -0
  584. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team-section.mjs +0 -0
  585. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team.mjs +0 -0
  586. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth.mjs +0 -0
  587. /package/{esm2020 → esm2022}/lib/api-models/api-auth/index.mjs +0 -0
  588. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-group.mjs +0 -0
  589. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-part.mjs +0 -0
  590. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-tag.mjs +0 -0
  591. /package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot.mjs +0 -0
  592. /package/{esm2020 → esm2022}/lib/api-models/api-booking-settings.mjs +0 -0
  593. /package/{esm2020 → esm2022}/lib/api-models/api-calendar-event.mjs +0 -0
  594. /package/{esm2020 → esm2022}/lib/api-models/api-calendar.mjs +0 -0
  595. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-deal.mjs +0 -0
  596. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo-urls.mjs +0 -0
  597. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo.mjs +0 -0
  598. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-member-ticket.mjs +0 -0
  599. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-theme.mjs +0 -0
  600. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket-location.mjs +0 -0
  601. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket.mjs +0 -0
  602. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card.mjs +0 -0
  603. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-home-team.mjs +0 -0
  604. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-member-card.mjs +0 -0
  605. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-search-member-card.mjs +0 -0
  606. /package/{esm2020 → esm2022}/lib/api-models/api-card/index.mjs +0 -0
  607. /package/{esm2020 → esm2022}/lib/api-models/api-club-image.mjs +0 -0
  608. /package/{esm2020 → esm2022}/lib/api-models/api-club-section.mjs +0 -0
  609. /package/{esm2020 → esm2022}/lib/api-models/api-club.mjs +0 -0
  610. /package/{esm2020 → esm2022}/lib/api-models/api-collection.mjs +0 -0
  611. /package/{esm2020 → esm2022}/lib/api-models/api-directory.mjs +0 -0
  612. /package/{esm2020 → esm2022}/lib/api-models/api-event.mjs +0 -0
  613. /package/{esm2020 → esm2022}/lib/api-models/api-external-link.mjs +0 -0
  614. /package/{esm2020 → esm2022}/lib/api-models/api-file-object.mjs +0 -0
  615. /package/{esm2020 → esm2022}/lib/api-models/api-general-image.mjs +0 -0
  616. /package/{esm2020 → esm2022}/lib/api-models/api-group-role.mjs +0 -0
  617. /package/{esm2020 → esm2022}/lib/api-models/api-image-urls.mjs +0 -0
  618. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-credit-card.mjs +0 -0
  619. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-giro.mjs +0 -0
  620. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-swish.mjs +0 -0
  621. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-zimpler.mjs +0 -0
  622. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/index.mjs +0 -0
  623. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-fee.mjs +0 -0
  624. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice-row.mjs +0 -0
  625. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice.mjs +0 -0
  626. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-payment-attempt.mjs +0 -0
  627. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-search-member-invoice.mjs +0 -0
  628. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-swish-qr-code.mjs +0 -0
  629. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-unpaid-member-invoice.mjs +0 -0
  630. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/index.mjs +0 -0
  631. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.mjs +0 -0
  632. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.mjs +0 -0
  633. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.mjs +0 -0
  634. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/index.mjs +0 -0
  635. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-contact.mjs +0 -0
  636. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-attribute.mjs +0 -0
  637. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-contact.mjs +0 -0
  638. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-function.mjs +0 -0
  639. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-validation-settings.mjs +0 -0
  640. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member.mjs +0 -0
  641. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member-field.mjs +0 -0
  642. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member.mjs +0 -0
  643. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-search-member.mjs +0 -0
  644. /package/{esm2020 → esm2022}/lib/api-models/api-member/index.mjs +0 -0
  645. /package/{esm2020 → esm2022}/lib/api-models/api-member-activity-invite.mjs +0 -0
  646. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field-option.mjs +0 -0
  647. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field.mjs +0 -0
  648. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form.mjs +0 -0
  649. /package/{esm2020 → esm2022}/lib/api-models/api-member-team-through.mjs +0 -0
  650. /package/{esm2020 → esm2022}/lib/api-models/api-member-team.mjs +0 -0
  651. /package/{esm2020 → esm2022}/lib/api-models/api-member-type.mjs +0 -0
  652. /package/{esm2020 → esm2022}/lib/api-models/api-news.mjs +0 -0
  653. /package/{esm2020 → esm2022}/lib/api-models/api-open-activity.mjs +0 -0
  654. /package/{esm2020 → esm2022}/lib/api-models/api-optional-fee.mjs +0 -0
  655. /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-bookable-item.mjs +0 -0
  656. /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-location.mjs +0 -0
  657. /package/{esm2020 → esm2022}/lib/api-models/api-partner.mjs +0 -0
  658. /package/{esm2020 → esm2022}/lib/api-models/api-public-token.mjs +0 -0
  659. /package/{esm2020 → esm2022}/lib/api-models/api-registration-qr-code.mjs +0 -0
  660. /package/{esm2020 → esm2022}/lib/api-models/api-search-club.mjs +0 -0
  661. /package/{esm2020 → esm2022}/lib/api-models/api-search-team.mjs +0 -0
  662. /package/{esm2020 → esm2022}/lib/api-models/api-section.mjs +0 -0
  663. /package/{esm2020 → esm2022}/lib/api-models/api-token.mjs +0 -0
  664. /package/{esm2020 → esm2022}/lib/api-models/api-user-notification.mjs +0 -0
  665. /package/{esm2020 → esm2022}/lib/api-models/api-user.mjs +0 -0
  666. /package/{esm2020 → esm2022}/lib/authentication/authentication.config.mjs +0 -0
  667. /package/{esm2020 → esm2022}/lib/authentication/index.mjs +0 -0
  668. /package/{esm2020 → esm2022}/lib/interfaces/email-recipient.interface.mjs +0 -0
  669. /package/{esm2020 → esm2022}/lib/interfaces/index.mjs +0 -0
  670. /package/{esm2020 → esm2022}/lib/interfaces/new-account.interface.mjs +0 -0
  671. /package/{esm2020 → esm2022}/lib/interfaces/open-activity-search-params.interface.mjs +0 -0
  672. /package/{esm2020 → esm2022}/lib/interfaces/option.interface.mjs +0 -0
  673. /package/{esm2020 → esm2022}/lib/interfaces/sms-recipient.interface.mjs +0 -0
  674. /package/{esm2020 → esm2022}/lib/maintenance/index.mjs +0 -0
  675. /package/{esm2020 → esm2022}/lib/models/auth/index.mjs +0 -0
  676. /package/{esm2020 → esm2022}/lib/models/card/index.mjs +0 -0
  677. /package/{esm2020 → esm2022}/lib/models/invoice/index.mjs +0 -0
  678. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/index.mjs +0 -0
  679. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.mjs +0 -0
  680. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.mjs +0 -0
  681. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.mjs +0 -0
  682. /package/{esm2020 → esm2022}/lib/models/invoice/payment-types/index.mjs +0 -0
  683. /package/{esm2020 → esm2022}/lib/models/member/index.mjs +0 -0
  684. /package/{esm2020 → esm2022}/lib/models/role.mjs +0 -0
  685. /package/{esm2020 → esm2022}/lib/services/factories/activity-extra-member-factory.mjs +0 -0
  686. /package/{esm2020 → esm2022}/lib/services/factories/activity-factory.mjs +0 -0
  687. /package/{esm2020 → esm2022}/lib/services/factories/activity-invite-factory.mjs +0 -0
  688. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-factory.mjs +0 -0
  689. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-group-factory.mjs +0 -0
  690. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-part-factory.mjs +0 -0
  691. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-tag-factory.mjs +0 -0
  692. /package/{esm2020 → esm2022}/lib/services/factories/activity-participant-factory.mjs +0 -0
  693. /package/{esm2020 → esm2022}/lib/services/factories/activity-type-factory.mjs +0 -0
  694. /package/{esm2020 → esm2022}/lib/services/factories/auth-factory.mjs +0 -0
  695. /package/{esm2020 → esm2022}/lib/services/factories/auth-member-factory.mjs +0 -0
  696. /package/{esm2020 → esm2022}/lib/services/factories/auth-section-factory.mjs +0 -0
  697. /package/{esm2020 → esm2022}/lib/services/factories/auth-team-factory.mjs +0 -0
  698. /package/{esm2020 → esm2022}/lib/services/factories/auth-team-section-factory.mjs +0 -0
  699. /package/{esm2020 → esm2022}/lib/services/factories/bookable-group-factory.mjs +0 -0
  700. /package/{esm2020 → esm2022}/lib/services/factories/bookable-part-factory.mjs +0 -0
  701. /package/{esm2020 → esm2022}/lib/services/factories/bookable-tag-factory.mjs +0 -0
  702. /package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-factory.mjs +0 -0
  703. /package/{esm2020 → esm2022}/lib/services/factories/booking-settings-factory.mjs +0 -0
  704. /package/{esm2020 → esm2022}/lib/services/factories/card-deal-factory.mjs +0 -0
  705. /package/{esm2020 → esm2022}/lib/services/factories/card-factory.mjs +0 -0
  706. /package/{esm2020 → esm2022}/lib/services/factories/card-logo-factory.mjs +0 -0
  707. /package/{esm2020 → esm2022}/lib/services/factories/card-logo-urls-factory.mjs +0 -0
  708. /package/{esm2020 → esm2022}/lib/services/factories/card-member-ticket-factory.mjs +0 -0
  709. /package/{esm2020 → esm2022}/lib/services/factories/card-theme-factory.mjs +0 -0
  710. /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-factory.mjs +0 -0
  711. /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-location-factory.mjs +0 -0
  712. /package/{esm2020 → esm2022}/lib/services/factories/club-factory.mjs +0 -0
  713. /package/{esm2020 → esm2022}/lib/services/factories/club-image-factory.mjs +0 -0
  714. /package/{esm2020 → esm2022}/lib/services/factories/club-section-factory.mjs +0 -0
  715. /package/{esm2020 → esm2022}/lib/services/factories/contact-factory.mjs +0 -0
  716. /package/{esm2020 → esm2022}/lib/services/factories/credit-card-factory.mjs +0 -0
  717. /package/{esm2020 → esm2022}/lib/services/factories/directory-factory.mjs +0 -0
  718. /package/{esm2020 → esm2022}/lib/services/factories/event-factory.mjs +0 -0
  719. /package/{esm2020 → esm2022}/lib/services/factories/external-link-factory.mjs +0 -0
  720. /package/{esm2020 → esm2022}/lib/services/factories/file-factory.mjs +0 -0
  721. /package/{esm2020 → esm2022}/lib/services/factories/general-image-factory.mjs +0 -0
  722. /package/{esm2020 → esm2022}/lib/services/factories/giro-factory.mjs +0 -0
  723. /package/{esm2020 → esm2022}/lib/services/factories/group-role-factory.mjs +0 -0
  724. /package/{esm2020 → esm2022}/lib/services/factories/home-team-factory.mjs +0 -0
  725. /package/{esm2020 → esm2022}/lib/services/factories/image-urls-factory.mjs +0 -0
  726. /package/{esm2020 → esm2022}/lib/services/factories/member-attribute-factory.mjs +0 -0
  727. /package/{esm2020 → esm2022}/lib/services/factories/member-card-factory.mjs +0 -0
  728. /package/{esm2020 → esm2022}/lib/services/factories/member-contact-factory.mjs +0 -0
  729. /package/{esm2020 → esm2022}/lib/services/factories/member-factory.mjs +0 -0
  730. /package/{esm2020 → esm2022}/lib/services/factories/member-fee-factory.mjs +0 -0
  731. /package/{esm2020 → esm2022}/lib/services/factories/member-function-factory.mjs +0 -0
  732. /package/{esm2020 → esm2022}/lib/services/factories/member-invite-factory.mjs +0 -0
  733. /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-factory.mjs +0 -0
  734. /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-row-factory.mjs +0 -0
  735. /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-factory.mjs +0 -0
  736. /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-option-factory.mjs +0 -0
  737. /package/{esm2020 → esm2022}/lib/services/factories/member-team-factory.mjs +0 -0
  738. /package/{esm2020 → esm2022}/lib/services/factories/member-team-through-factory.mjs +0 -0
  739. /package/{esm2020 → esm2022}/lib/services/factories/member-type-factory.mjs +0 -0
  740. /package/{esm2020 → esm2022}/lib/services/factories/member-validation-settings-factory.mjs +0 -0
  741. /package/{esm2020 → esm2022}/lib/services/factories/news-factory.mjs +0 -0
  742. /package/{esm2020 → esm2022}/lib/services/factories/open-activity-factory.mjs +0 -0
  743. /package/{esm2020 → esm2022}/lib/services/factories/optional-fee-factory.mjs +0 -0
  744. /package/{esm2020 → esm2022}/lib/services/factories/other-member-factory.mjs +0 -0
  745. /package/{esm2020 → esm2022}/lib/services/factories/other-member-field-factory.mjs +0 -0
  746. /package/{esm2020 → esm2022}/lib/services/factories/overbooked-bookable-item-factory.mjs +0 -0
  747. /package/{esm2020 → esm2022}/lib/services/factories/overbooked-location-factory.mjs +0 -0
  748. /package/{esm2020 → esm2022}/lib/services/factories/partner-factory.mjs +0 -0
  749. /package/{esm2020 → esm2022}/lib/services/factories/public-authentication-factory.mjs +0 -0
  750. /package/{esm2020 → esm2022}/lib/services/factories/registration-qr-code-factory.mjs +0 -0
  751. /package/{esm2020 → esm2022}/lib/services/factories/search-club-factory.mjs +0 -0
  752. /package/{esm2020 → esm2022}/lib/services/factories/search-member-card-factory.mjs +0 -0
  753. /package/{esm2020 → esm2022}/lib/services/factories/search-member-factory.mjs +0 -0
  754. /package/{esm2020 → esm2022}/lib/services/factories/search-member-invoice-factory.mjs +0 -0
  755. /package/{esm2020 → esm2022}/lib/services/factories/search-member-team-through-factory.mjs +0 -0
  756. /package/{esm2020 → esm2022}/lib/services/factories/search-team-factory.mjs +0 -0
  757. /package/{esm2020 → esm2022}/lib/services/factories/section-factory.mjs +0 -0
  758. /package/{esm2020 → esm2022}/lib/services/factories/swish-factory.mjs +0 -0
  759. /package/{esm2020 → esm2022}/lib/services/factories/token-factory.mjs +0 -0
  760. /package/{esm2020 → esm2022}/lib/services/factories/unpaid-invoice-factory.mjs +0 -0
  761. /package/{esm2020 → esm2022}/lib/services/factories/user-factory.mjs +0 -0
  762. /package/{esm2020 → esm2022}/lib/services/factories/user-notification-factory.mjs +0 -0
  763. /package/{esm2020 → esm2022}/lib/services/factories/zimpler-factory.mjs +0 -0
  764. /package/{esm2020 → esm2022}/lib/services/invoice/index.mjs +0 -0
  765. /package/{esm2020 → esm2022}/lib/types/attribute-type.mjs +0 -0
  766. /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-reserved-time-position.mjs +0 -0
  767. /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-type.mjs +0 -0
  768. /package/{esm2020 → esm2022}/lib/types/contact-type.mjs +0 -0
  769. /package/{esm2020 → esm2022}/lib/types/grant-type.mjs +0 -0
  770. /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
  771. /package/{esm2020 → esm2022}/lib/types/payment-attempt-status-type.mjs +0 -0
  772. /package/{esm2020 → esm2022}/lib/types/payment-attempt-type.mjs +0 -0
  773. /package/{esm2020 → esm2022}/lib/types/sex-type.mjs +0 -0
  774. /package/{esm2020 → esm2022}/myclub_se-data-access.mjs +0 -0
@@ -0,0 +1,211 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { Actions, createEffect, ofType } from '@ngrx/effects';
3
+ import { ActivityService } from '../../services';
4
+ import { addTeamLeaderActivityInviteAction, addTeamLeaderActivityInviteFailureAction, addTeamLeaderActivityInviteSuccessAction, createTeamActivityAction, createTeamActivityFailureAction, createTeamActivitySuccessAction, deleteTeamActivityAction, deleteTeamActivityFailureAction, deleteTeamActivityInviteAction, deleteTeamActivityInviteFailureAction, deleteTeamActivityInviteSuccessAction, deleteTeamActivitySuccessAction, listMemberActivityInvitesAction, listMemberActivityInvitesFailureAction, listMemberActivityInvitesSuccessAction, listTeamActivityParticipantsAction, listTeamActivityParticipantsFailureAction, listTeamActivityParticipantsSuccessAction, listTeamLeaderExtraMembersSuccessAction, removeMemberOpenActivityAction, removeMemberOpenActivityFailureAction, removeMemberOpenActivitySuccessAction, removePublicOpenActivityAction, removePublicOpenActivityFailureAction, removePublicOpenActivitySuccessAction, resendTeamActivityMemberInviteAction, resendTeamActivityMemberInviteFailureAction, resendTeamActivityMemberInviteSuccessAction, retrieveMemberActivityAction, retrieveMemberActivityFailureAction, retrieveMemberActivityInviteAction, retrieveMemberActivityInviteFailureAction, retrieveMemberActivityInviteSuccessAction, retrieveMemberActivitySuccessAction, retrieveMemberOpenActivityAction, retrieveMemberOpenActivityFailureAction, retrieveMemberOpenActivitySuccessAction, retrievePublicActivityInviteAction, retrievePublicActivityInviteFailureAction, retrievePublicActivityInviteSuccessAction, retrievePublicOpenActivityAction, retrievePublicOpenActivityFailureAction, retrievePublicOpenActivitySuccessAction, retrieveTeamActivityAction, retrieveTeamActivityFailureAction, retrieveTeamActivityQRCodeAction, retrieveTeamActivityQRCodeFailureAction, retrieveTeamActivityQRCodeSuccessAction, retrieveTeamActivitySettingsAction, retrieveTeamActivitySettingsFailureAction, retrieveTeamActivitySettingsSuccessAction, retrieveTeamActivitySuccessAction, retrieveTeamDefaultActivitySettingsAction, retrieveTeamDefaultActivitySettingsFailureAction, retrieveTeamDefaultActivitySettingsSuccessAction, retrieveTeamLeaderGroupSuccessAction, updateMemberActivityAttendanceAction, updateMemberActivityAttendanceFailureAction, updateMemberActivityAttendanceSuccessAction, updateMemberActivityInviteAction, updateMemberActivityInviteFailureAction, updateMemberActivityInviteSuccessAction, updateMemberOpenActivityAction, updateMemberOpenActivityFailureAction, updateMemberOpenActivitySuccessAction, updatePublicActivityInviteAction, updatePublicActivityInviteFailureAction, updatePublicActivityInviteSuccessAction, updatePublicOpenActivityAction, updatePublicOpenActivityFailureAction, updatePublicOpenActivityInviteAction, updatePublicOpenActivityInviteFailureAction, updatePublicOpenActivityInviteSuccessAction, updatePublicOpenActivitySuccessAction, updateTeamActivityAction, updateTeamActivityAttendanceAction, updateTeamActivityAttendanceFailureAction, updateTeamActivityAttendanceSuccessAction, updateTeamActivityFailureAction, updateTeamActivitySuccessAction, updateTeamMemberActivityInviteAction, updateTeamMemberActivityInviteFailureAction, updateTeamMemberActivityInviteSuccessAction } from '../actions';
5
+ import { exhaustMap, forkJoin, mergeMap, of } from 'rxjs';
6
+ import { catchError, map, take } from 'rxjs/operators';
7
+ import { HttpErrorResponse } from '@angular/common/http';
8
+ import { ExtraMembersMixin } from './mixins/extra-members-mixin';
9
+ import * as i0 from "@angular/core";
10
+ export class ActivityEffects extends ExtraMembersMixin {
11
+ actions$ = inject(Actions);
12
+ activityService = inject(ActivityService);
13
+ addTeamLeaderActivityInvite$ = createEffect(() => this.actions$
14
+ .pipe(ofType(addTeamLeaderActivityInviteAction), exhaustMap(({ payload }) => this.activityService.addTeamActivityInvites(payload.teamId, payload.activityId, payload.memberIds)
15
+ .pipe(map((success) => {
16
+ if (success) {
17
+ return addTeamLeaderActivityInviteSuccessAction();
18
+ }
19
+ else {
20
+ return addTeamLeaderActivityInviteFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
21
+ }
22
+ }), catchError((error) => of(addTeamLeaderActivityInviteFailureAction({ payload: error })))))));
23
+ createTeamActivity$ = createEffect(() => this.actions$
24
+ .pipe(ofType(createTeamActivityAction), exhaustMap(({ payload }) => this.activityService.createTeamActivity(payload.teamId, payload.activity)
25
+ .pipe(mergeMap((activity) => [createTeamActivitySuccessAction({ payload: activity }), retrieveTeamActivityAction({
26
+ payload: {
27
+ teamId: payload.teamId,
28
+ activityId: activity.id,
29
+ retrieveExtraMembers: true
30
+ }
31
+ })]), catchError((error) => of(createTeamActivityFailureAction({ payload: error })))))));
32
+ deleteTeamActivity$ = createEffect(() => this.actions$
33
+ .pipe(ofType(deleteTeamActivityAction), exhaustMap(({ payload }) => this.activityService.deleteTeamActivity(payload.teamId, payload.activityId)
34
+ .pipe(map((value) => {
35
+ if (value) {
36
+ return deleteTeamActivitySuccessAction({ payload: payload.activityId });
37
+ }
38
+ else {
39
+ return deleteTeamActivityFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
40
+ }
41
+ }), catchError((error) => of(deleteTeamActivityFailureAction({ payload: error })))))));
42
+ deleteTeamActivityInvite$ = createEffect(() => this.actions$
43
+ .pipe(ofType(deleteTeamActivityInviteAction), exhaustMap(({ payload }) => this.activityService.deleteTeamActivityInvite(payload.teamId, payload.activityId, payload.activityInviteId)
44
+ .pipe(map((value) => {
45
+ if (value) {
46
+ return deleteTeamActivityInviteSuccessAction();
47
+ }
48
+ else {
49
+ return deleteTeamActivityInviteFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
50
+ }
51
+ }), catchError((error) => of(deleteTeamActivityInviteFailureAction({ payload: error })))))));
52
+ listMemberActivityInvites$ = createEffect(() => this.actions$
53
+ .pipe(ofType(listMemberActivityInvitesAction), mergeMap(({ payload }) => forkJoin(payload.map((id) => this.activityService.getMemberActivityInvites(id)
54
+ .pipe(catchError((error) => of({ error }))))).pipe(map(results => {
55
+ const returnValue = [];
56
+ const successResults = results.filter(result => !(result instanceof HttpErrorResponse));
57
+ const errorResults = results.filter(result => result instanceof HttpErrorResponse);
58
+ if (errorResults.length) {
59
+ return listMemberActivityInvitesFailureAction({ payload: errorResults[0] });
60
+ }
61
+ successResults.forEach(result => {
62
+ returnValue.push(...result.toArray());
63
+ });
64
+ return listMemberActivityInvitesSuccessAction({ payload: returnValue });
65
+ }), catchError(error => of(listMemberActivityInvitesFailureAction({ payload: error })))))));
66
+ listTeamActivityParticipants$ = createEffect(() => this.actions$
67
+ .pipe(ofType(listTeamActivityParticipantsAction), exhaustMap(({ payload }) => this.activityService.getTeamActivityParticipants(payload.teamId, payload.activityId)
68
+ .pipe(map((activityParticipants) => listTeamActivityParticipantsSuccessAction({
69
+ payload: {
70
+ activityId: payload.activityId,
71
+ results: activityParticipants.toArray()
72
+ }
73
+ })), catchError((error) => of(listTeamActivityParticipantsFailureAction({ payload: error })))))));
74
+ removeMemberOpenActivity$ = createEffect(() => this.actions$
75
+ .pipe(ofType(removeMemberOpenActivityAction), exhaustMap(({ payload }) => this.activityService.removeMemberOpenActivity(payload.memberId, payload.activityId)
76
+ .pipe(map((success) => {
77
+ if (success) {
78
+ return removeMemberOpenActivitySuccessAction();
79
+ }
80
+ else {
81
+ return removeMemberOpenActivityFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
82
+ }
83
+ }), catchError((error) => of(removeMemberOpenActivityFailureAction({ payload: error })))))));
84
+ removePublicOpenActivity$ = createEffect(() => this.actions$
85
+ .pipe(ofType(removePublicOpenActivityAction), exhaustMap(({ payload }) => this.activityService.removePublicOpenActivity(payload)
86
+ .pipe(map((success) => {
87
+ if (success) {
88
+ return removePublicOpenActivitySuccessAction({ payload });
89
+ }
90
+ else {
91
+ return removePublicOpenActivityFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
92
+ }
93
+ }), catchError((error) => of(removePublicOpenActivityFailureAction({ payload: error })))))));
94
+ resendTeamActivityInvite$ = createEffect(() => this.actions$
95
+ .pipe(ofType(resendTeamActivityMemberInviteAction), exhaustMap(({ payload }) => this.activityService.resendInvite(payload.teamId, payload.activityId, payload.activityInviteId)
96
+ .pipe(map((activityInvite) => resendTeamActivityMemberInviteSuccessAction({ payload: activityInvite })), catchError((error) => of(resendTeamActivityMemberInviteFailureAction({ payload: error })))))));
97
+ retrieveMemberActivity$ = createEffect(() => this.actions$
98
+ .pipe(ofType(retrieveMemberActivityAction), exhaustMap(({ payload }) => this.activityService.getMemberActivity(payload.memberId, payload.activityId)
99
+ .pipe(map((activity) => retrieveMemberActivitySuccessAction({ payload: activity })), catchError((error) => of(retrieveMemberActivityFailureAction({ payload: error })))))));
100
+ retrieveMemberActivityInvite$ = createEffect(() => this.actions$
101
+ .pipe(ofType(retrieveMemberActivityInviteAction), exhaustMap(({ payload }) => this.activityService.getMemberActivityInvite(payload.memberId, payload.activityInviteId)
102
+ .pipe(map((activityInvite) => retrieveMemberActivityInviteSuccessAction({ payload: activityInvite })), catchError((error) => of(retrieveMemberActivityInviteFailureAction({ payload: error })))))));
103
+ retrieveMemberOpenActivityInvite$ = createEffect(() => this.actions$
104
+ .pipe(ofType(retrieveMemberOpenActivityAction), exhaustMap(({ payload }) => this.activityService.getMemberOpenActivity(payload.memberId, payload.activityId)
105
+ .pipe(map((activity) => retrieveMemberOpenActivitySuccessAction({ payload: activity })), catchError((error) => of(retrieveMemberOpenActivityFailureAction({ payload: error })))))));
106
+ retrievePublicOpenActivity$ = createEffect(() => this.actions$
107
+ .pipe(ofType(retrievePublicOpenActivityAction), exhaustMap(({ payload }) => this.activityService.getPublicOpenActivity(payload)
108
+ .pipe(map((activity) => retrievePublicOpenActivitySuccessAction({ payload: activity })), catchError((error) => of(retrievePublicOpenActivityFailureAction({ payload: error })))))));
109
+ retrieveTeamActivity = createEffect(() => this.actions$
110
+ .pipe(ofType(retrieveTeamActivityAction), exhaustMap(({ payload }) => forkJoin({
111
+ activity: this.activityService.getTeamActivity(payload.teamId, payload.activityId)
112
+ .pipe(take(1)),
113
+ extraMembers: payload.retrieveExtraMembers ? this.teamLeaderGetAllExtraMembers(payload.teamId)
114
+ .pipe(take(1)) : of(new Array()),
115
+ members: this.teamLeaderGetAllMembers(payload.teamId),
116
+ participants: this.activityService.getTeamActivityParticipants(payload.teamId, payload.activityId)
117
+ .pipe(take(1), map((response) => response.toArray())),
118
+ team: this.teamService.getTeamLeaderTeam(payload.teamId)
119
+ .pipe(take(1))
120
+ }).pipe(mergeMap(({ activity, extraMembers, members, participants, team }) => [
121
+ retrieveTeamActivitySuccessAction({
122
+ payload: {
123
+ activity,
124
+ extraMembers,
125
+ extraMembersLoaded: payload.retrieveExtraMembers,
126
+ members,
127
+ participants,
128
+ team
129
+ }
130
+ }),
131
+ retrieveTeamLeaderGroupSuccessAction({ payload: team }),
132
+ listTeamLeaderExtraMembersSuccessAction({ payload: { teamId: payload.teamId, results: extraMembers } }),
133
+ ]), catchError((error) => of(retrieveTeamActivityFailureAction({ payload: error })))))));
134
+ retrievePublicActivityInvite$ = createEffect(() => this.actions$
135
+ .pipe(ofType(retrievePublicActivityInviteAction), exhaustMap(({ payload }) => this.activityService.getPublicActivityInvite(payload.activityInviteId, payload.token)
136
+ .pipe(map((activityInvite) => retrievePublicActivityInviteSuccessAction({ payload: activityInvite })), catchError((error) => of(retrievePublicActivityInviteFailureAction({ payload: error })))))));
137
+ retrieveTeamActivityQRCode$ = createEffect(() => this.actions$
138
+ .pipe(ofType(retrieveTeamActivityQRCodeAction), exhaustMap(({ payload }) => this.activityService.getTeamActivityQRCode(payload.teamId, payload.activityId)
139
+ .pipe(map((activity) => retrieveTeamActivityQRCodeSuccessAction({
140
+ payload: {
141
+ teamId: payload.teamId,
142
+ activity: activity
143
+ }
144
+ })), catchError((error) => of(retrieveTeamActivityQRCodeFailureAction({ payload: error })))))));
145
+ retrieveTeamActivitySettings$ = createEffect(() => this.actions$
146
+ .pipe(ofType(retrieveTeamActivitySettingsAction), exhaustMap(({ payload }) => forkJoin({
147
+ activitySettings: this.activityService.getTeamActivitySettings(payload.teamId)
148
+ .pipe(take(1)),
149
+ activityLocations: this.activityService.getTeamActivityLocations(payload.teamId)
150
+ .pipe(take(1), map((response) => response.toArray().map((value) => ({
151
+ text: value.name,
152
+ value: value.id
153
+ })))),
154
+ activityTypes: this.activityService.getTeamActivityTypes(payload.teamId)
155
+ .pipe(take(1), map((response) => {
156
+ const types = payload.create ? response.toArray().filter((type) => type.active) : response.toArray();
157
+ return types.map((value) => ({
158
+ text: value.name,
159
+ value: value.id
160
+ }));
161
+ }))
162
+ }).pipe(map(({ activitySettings, activityLocations, activityTypes }) => {
163
+ // Add locations and types to the activitySettings object
164
+ activitySettings.activityLocations = activityLocations;
165
+ activitySettings.activityTypes = activityTypes;
166
+ return retrieveTeamActivitySettingsSuccessAction({ payload: activitySettings });
167
+ }), catchError((error) => of(retrieveTeamActivitySettingsFailureAction({ payload: error })))))));
168
+ retrieveTeamDefaultActivitySettings$ = createEffect(() => this.actions$
169
+ .pipe(ofType(retrieveTeamDefaultActivitySettingsAction), exhaustMap(({ payload }) => this.activityService.getTeamActivityNew(payload)
170
+ .pipe(map((activity) => retrieveTeamDefaultActivitySettingsSuccessAction({ payload: activity })), catchError((error) => of(retrieveTeamDefaultActivitySettingsFailureAction({ payload: error })))))));
171
+ updateMemberActivityAttendance$ = createEffect(() => this.actions$
172
+ .pipe(ofType(updateMemberActivityAttendanceAction), exhaustMap(({ payload }) => this.activityService.updateMemberActivityAttendance(payload.memberId, payload.activityId)
173
+ .pipe(map((success) => {
174
+ if (success) {
175
+ return updateMemberActivityAttendanceSuccessAction();
176
+ }
177
+ else {
178
+ return updateMemberActivityAttendanceFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
179
+ }
180
+ }), catchError((error) => of(updateMemberActivityAttendanceFailureAction({ payload: error })))))));
181
+ updateMemberActivityInvite$ = createEffect(() => this.actions$
182
+ .pipe(ofType(updateMemberActivityInviteAction), exhaustMap(({ payload }) => this.activityService.updateMemberActivity(payload.memberId, payload.activityInvite.id, payload.activityInvite)
183
+ .pipe(map((activityInvite) => updateMemberActivityInviteSuccessAction({ payload: activityInvite })), catchError((error) => of(updateMemberActivityInviteFailureAction({ payload: error })))))));
184
+ updateMemberOpenActivity$ = createEffect(() => this.actions$
185
+ .pipe(ofType(updateMemberOpenActivityAction), exhaustMap(({ payload }) => this.activityService.signUpMemberOpenActivityWithResponse(payload.memberId, payload.activityId, payload.comment, payload.optionalFees)
186
+ .pipe(map((openActivity) => updateMemberOpenActivitySuccessAction({ payload: openActivity })), catchError((error) => of(updateMemberOpenActivityFailureAction({ payload: error })))))));
187
+ updatePublicActivityInvite$ = createEffect(() => this.actions$
188
+ .pipe(ofType(updatePublicActivityInviteAction), exhaustMap(({ payload }) => this.activityService.updatePublicActivityInvite(payload.activityInvite.id, payload.token, payload.activityInvite)
189
+ .pipe(map((activityInvite) => updatePublicActivityInviteSuccessAction({ payload: activityInvite })), catchError((error) => of(updatePublicActivityInviteFailureAction({ payload: error })))))));
190
+ updatePublicOpenActivity$ = createEffect(() => this.actions$
191
+ .pipe(ofType(updatePublicOpenActivityAction), exhaustMap(({ payload }) => this.activityService.signUpPublicOpenActivityWithResponse(payload.activityId, payload.comment, payload.optionalFees)
192
+ .pipe(map((openActivity) => updatePublicOpenActivitySuccessAction({ payload: openActivity })), catchError((error) => of(updatePublicOpenActivityFailureAction({ payload: error })))))));
193
+ updatePublicOpenActivityInvite$ = createEffect(() => this.actions$
194
+ .pipe(ofType(updatePublicOpenActivityInviteAction), exhaustMap(({ payload }) => this.activityService.updatePublicOpenActivityInvite(payload.id, payload)
195
+ .pipe(map(() => updatePublicOpenActivityInviteSuccessAction()), catchError((error) => of(updatePublicOpenActivityInviteFailureAction({ payload: error })))))));
196
+ updateTeamActivity = createEffect(() => this.actions$
197
+ .pipe(ofType(updateTeamActivityAction), exhaustMap(({ payload }) => this.activityService.updateTeamActivity(payload.teamId, payload.activity)
198
+ .pipe(map((activity) => updateTeamActivitySuccessAction({ payload: activity })), catchError((error) => of(updateTeamActivityFailureAction({ payload: error })))))));
199
+ updateTeamActivityAttendance = createEffect(() => this.actions$
200
+ .pipe(ofType(updateTeamActivityAttendanceAction), exhaustMap(({ payload }) => this.activityService.updateTeamActivityParticipants(payload.teamId, payload.activityId, payload.memberIds)
201
+ .pipe(map(() => updateTeamActivityAttendanceSuccessAction()), catchError((error) => of(updateTeamActivityAttendanceFailureAction({ payload: error })))))));
202
+ updateTeamMemberActivityInvite = createEffect(() => this.actions$
203
+ .pipe(ofType(updateTeamMemberActivityInviteAction), exhaustMap(({ payload }) => this.activityService.updateTeamActivityInvite(payload.teamId, payload.activityId, payload.activityInviteId, payload.memberActivityInvite)
204
+ .pipe(map((memberActivityInvite) => updateTeamMemberActivityInviteSuccessAction({ payload: memberActivityInvite })), catchError((error) => of(updateTeamMemberActivityInviteFailureAction({ payload: error })))))));
205
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActivityEffects, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
206
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActivityEffects });
207
+ }
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActivityEffects, decorators: [{
209
+ type: Injectable
210
+ }] });
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9hY3Rpdml0eS5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQyx3Q0FBd0MsRUFDeEMsd0NBQXdDLEVBQ3hDLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsK0JBQStCLEVBQy9CLCtCQUErQixFQUMvQixzQ0FBc0MsRUFDdEMsc0NBQXNDLEVBQ3RDLGtDQUFrQyxFQUNsQyx5Q0FBeUMsRUFDekMseUNBQXlDLEVBQ3pDLHVDQUF1QyxFQUN2Qyw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyxvQ0FBb0MsRUFDcEMsMkNBQTJDLEVBQzNDLDJDQUEyQyxFQUMzQyw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNsQyx5Q0FBeUMsRUFDekMseUNBQXlDLEVBQ3pDLG1DQUFtQyxFQUNuQyxnQ0FBZ0MsRUFDaEMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QyxrQ0FBa0MsRUFDbEMseUNBQXlDLEVBQ3pDLHlDQUF5QyxFQUN6QyxnQ0FBZ0MsRUFDaEMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxF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S0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzFHLENBQ0osQ0FDRixDQUNGLENBQUM7SUFFRiw4QkFBOEIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDOUQsSUFBSSxDQUNILE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxFQUM1QyxVQUFVLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFPakIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztTQUM1SSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsb0JBQTBDLEVBQUUsRUFBRSxDQUFDLDJDQUEyQyxDQUFDLEVBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUFDLENBQUMsQ0FBQyxFQUNqSSxVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsMkNBQTJDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzVHLENBQ0osQ0FDRixDQUNGLENBQUM7dUdBbmZTLGVBQWU7MkdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEFjdGl2aXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIGFkZFRlYW1MZWFkZXJBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgYWRkVGVhbUxlYWRlckFjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbixcbiAgYWRkVGVhbUxlYWRlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlVGVhbUFjdGl2aXR5QWN0aW9uLFxuICBjcmVhdGVUZWFtQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICBkZWxldGVUZWFtQWN0aXZpdHlBY3Rpb24sXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZUFjdGlvbixcbiAgZGVsZXRlVGVhbUFjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbixcbiAgZGVsZXRlVGVhbUFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgZGVsZXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUFjdGl2aXR5UGFydGljaXBhbnRzQWN0aW9uLFxuICBsaXN0VGVhbUFjdGl2aXR5UGFydGljaXBhbnRzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFRlYW1BY3Rpdml0eVBhcnRpY2lwYW50c1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RUZWFtTGVhZGVyRXh0cmFNZW1iZXJzU3VjY2Vzc0FjdGlvbixcbiAgcmVtb3ZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLFxuICByZW1vdmVNZW1iZXJPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICByZW1vdmVNZW1iZXJPcGVuQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICByZW1vdmVQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpb24sXG4gIHJlbW92ZVB1YmxpY09wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJlbW92ZVB1YmxpY09wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHJlc2VuZFRlYW1BY3Rpdml0eU1lbWJlckludml0ZUFjdGlvbixcbiAgcmVzZW5kVGVhbUFjdGl2aXR5TWVtYmVySW52aXRlRmFpbHVyZUFjdGlvbixcbiAgcmVzZW5kVGVhbUFjdGl2aXR5TWVtYmVySW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNBY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5QWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5UVJDb2RlQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVFSQ29kZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5UVJDb2RlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlTZXR0aW5nc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlTZXR0aW5nc0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5U2V0dGluZ3NTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtTGVhZGVyR3JvdXBTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUF0dGVuZGFuY2VBY3Rpb24sXG4gIHVwZGF0ZU1lbWJlckFjdGl2aXR5QXR0ZW5kYW5jZUZhaWx1cmVBY3Rpb24sXG4gIHVwZGF0ZU1lbWJlckFjdGl2aXR5QXR0ZW5kYW5jZVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uLFxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24sXG4gIHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLFxuICB1cGRhdGVNZW1iZXJPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICB1cGRhdGVNZW1iZXJPcGVuQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVQdWJsaWNBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgdXBkYXRlUHVibGljQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uLFxuICB1cGRhdGVQdWJsaWNBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUFjdGlvbixcbiAgdXBkYXRlUHVibGljT3BlbkFjdGl2aXR5RmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlUHVibGljT3BlbkFjdGl2aXR5SW52aXRlQWN0aW9uLCB1cGRhdGVQdWJsaWNPcGVuQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uLFxuICB1cGRhdGVQdWJsaWNPcGVuQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVQdWJsaWNPcGVuQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVUZWFtQWN0aXZpdHlBY3Rpb24sXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUF0dGVuZGFuY2VBY3Rpb24sXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUF0dGVuZGFuY2VGYWlsdXJlQWN0aW9uLFxuICB1cGRhdGVUZWFtQWN0aXZpdHlBdHRlbmRhbmNlU3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlVGVhbU1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uLFxuICB1cGRhdGVUZWFtTWVtYmVyQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uLFxuICB1cGRhdGVUZWFtTWVtYmVyQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZXhoYXVzdE1hcCwgZm9ya0pvaW4sIG1lcmdlTWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBBY3Rpdml0eSxcbiAgQWN0aXZpdHlFeHRyYU1lbWJlcixcbiAgQWN0aXZpdHlJbnZpdGUsXG4gIEFjdGl2aXR5TG9jYXRpb24sXG4gIEFjdGl2aXR5U2V0dGluZ3MsXG4gIEFjdGl2aXR5VHlwZSxcbiAgQ29sbGVjdGlvbixcbiAgTWVtYmVyQWN0aXZpdHlJbnZpdGUsXG4gIE9wZW5BY3Rpdml0eSxcbiAgU2VhcmNoTWVtYmVyXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBFeHRyYU1lbWJlcnNNaXhpbiB9IGZyb20gJy4vbWl4aW5zL2V4dHJhLW1lbWJlcnMtbWl4aW4nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlFZmZlY3RzIGV4dGVuZHMgRXh0cmFNZW1iZXJzTWl4aW4ge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIGFjdGl2aXR5U2VydmljZSA9IGluamVjdChBY3Rpdml0eVNlcnZpY2UpO1xuXG4gIGFkZFRlYW1MZWFkZXJBY3Rpdml0eUludml0ZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGFkZFRlYW1MZWFkZXJBY3Rpdml0eUludml0ZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIG1lbWJlcklkczogQXJyYXk8c3RyaW5nPiB9XG4gICAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmFkZFRlYW1BY3Rpdml0eUludml0ZXMocGF5bG9hZC50ZWFtSWQsIHBheWxvYWQuYWN0aXZpdHlJZCwgcGF5bG9hZC5tZW1iZXJJZHMpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWRkVGVhbUxlYWRlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbigpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhZGRUZWFtTGVhZGVyQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe3N0YXR1czogNDAwfSl9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGFkZFRlYW1MZWFkZXJBY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlVGVhbUFjdGl2aXR5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlVGVhbUFjdGl2aXR5QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5OiBBY3Rpdml0eSB9XG4gICAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmNyZWF0ZVRlYW1BY3Rpdml0eShwYXlsb2FkLnRlYW1JZCwgcGF5bG9hZC5hY3Rpdml0eSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKChhY3Rpdml0eTogQWN0aXZpdHkpID0+IFtjcmVhdGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhY3Rpdml0eX0pLCByZXRyaWV2ZVRlYW1BY3Rpdml0eUFjdGlvbih7XG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICB0ZWFtSWQ6IHBheWxvYWQudGVhbUlkLFxuICAgICAgICAgICAgICAgIGFjdGl2aXR5SWQ6IGFjdGl2aXR5LmlkLFxuICAgICAgICAgICAgICAgIHJldHJpZXZlRXh0cmFNZW1iZXJzOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlVGVhbUFjdGl2aXR5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoZGVsZXRlVGVhbUFjdGl2aXR5QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmRlbGV0ZVRlYW1BY3Rpdml0eShwYXlsb2FkLnRlYW1JZCwgcGF5bG9hZC5hY3Rpdml0eUlkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bG9hZC5hY3Rpdml0eUlkfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7c3RhdHVzOiA0MDB9KX0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoZGVsZXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBkZWxldGVUZWFtQWN0aXZpdHlJbnZpdGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShkZWxldGVUZWFtQWN0aXZpdHlJbnZpdGVBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5kZWxldGVUZWFtQWN0aXZpdHlJbnZpdGUocGF5bG9hZC50ZWFtSWQsIHBheWxvYWQuYWN0aXZpdHlJZCwgcGF5bG9hZC5hY3Rpdml0eUludml0ZUlkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlVGVhbUFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbigpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWxldGVUZWFtQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe3N0YXR1czogNDAwfSl9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNBY3Rpb24pLFxuICAgICAgbWVyZ2VNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiBBcnJheTxzdHJpbmc+IH0pID0+XG4gICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgIHBheWxvYWQubWFwKChpZDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eVNlcnZpY2UuZ2V0TWVtYmVyQWN0aXZpdHlJbnZpdGVzKGlkKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHtlcnJvcn0pKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgbWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuVmFsdWU6IEFycmF5PEFjdGl2aXR5SW52aXRlPiA9IFtdO1xuICAgICAgICAgICAgY29uc3Qgc3VjY2Vzc1Jlc3VsdHMgPSByZXN1bHRzLmZpbHRlcihyZXN1bHQgPT4gIShyZXN1bHQgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkpIGFzIEFycmF5PENvbGxlY3Rpb248QWN0aXZpdHlJbnZpdGU+PjtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yUmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKHJlc3VsdCA9PiByZXN1bHQgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkgYXMgQXJyYXk8SHR0cEVycm9yUmVzcG9uc2U+O1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JSZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICByZXR1cm4gbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yUmVzdWx0c1swXX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3VjY2Vzc1Jlc3VsdHMuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICByZXR1cm5WYWx1ZS5wdXNoKC4uLnJlc3VsdC50b0FycmF5KCkpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBsaXN0TWVtYmVyQWN0aXZpdHlJbnZpdGVzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcmV0dXJuVmFsdWV9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0VGVhbUFjdGl2aXR5UGFydGljaXBhbnRzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdFRlYW1BY3Rpdml0eVBhcnRpY2lwYW50c0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHMocGF5bG9hZC50ZWFtSWQsIHBheWxvYWQuYWN0aXZpdHlJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoYWN0aXZpdHlQYXJ0aWNpcGFudHM6IENvbGxlY3Rpb248U2VhcmNoTWVtYmVyPikgPT4gbGlzdFRlYW1BY3Rpdml0eVBhcnRpY2lwYW50c1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgYWN0aXZpdHlJZDogcGF5bG9hZC5hY3Rpdml0eUlkLFxuICAgICAgICAgICAgICAgIHJlc3VsdHM6IGFjdGl2aXR5UGFydGljaXBhbnRzLnRvQXJyYXkoKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJlbW92ZU1lbWJlck9wZW5BY3Rpdml0eSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJlbW92ZU1lbWJlck9wZW5BY3Rpdml0eUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnJlbW92ZU1lbWJlck9wZW5BY3Rpdml0eShwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmFjdGl2aXR5SWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3ZlTWVtYmVyT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbigpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiByZW1vdmVNZW1iZXJPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe3N0YXR1czogNDAwfSl9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJlbW92ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmVtb3ZlUHVibGljT3BlbkFjdGl2aXR5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmVtb3ZlUHVibGljT3BlbkFjdGl2aXR5QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge3BheWxvYWQ6IHN0cmluZ30pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnJlbW92ZVB1YmxpY09wZW5BY3Rpdml0eShwYXlsb2FkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZW1vdmVQdWJsaWNPcGVuQWN0aXZpdHlTdWNjZXNzQWN0aW9uKHtwYXlsb2FkfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gcmVtb3ZlUHVibGljT3BlbkFjdGl2aXR5RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogbmV3IEh0dHBFcnJvclJlc3BvbnNlKHtzdGF0dXM6IDQwMH0pfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZW1vdmVQdWJsaWNPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxuXG4gIHJlc2VuZFRlYW1BY3Rpdml0eUludml0ZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJlc2VuZFRlYW1BY3Rpdml0eU1lbWJlckludml0ZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnJlc2VuZEludml0ZShwYXlsb2FkLnRlYW1JZCwgcGF5bG9hZC5hY3Rpdml0eUlkLCBwYXlsb2FkLmFjdGl2aXR5SW52aXRlSWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGFjdGl2aXR5SW52aXRlOiBBY3Rpdml0eUludml0ZSkgPT4gcmVzZW5kVGVhbUFjdGl2aXR5TWVtYmVySW52aXRlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYWN0aXZpdHlJbnZpdGV9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJlc2VuZFRlYW1BY3Rpdml0eU1lbWJlckludml0ZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRNZW1iZXJBY3Rpdml0eShwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmFjdGl2aXR5SWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGFjdGl2aXR5OiBBY3Rpdml0eSkgPT4gcmV0cmlldmVNZW1iZXJBY3Rpdml0eVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGFjdGl2aXR5fSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZU1lbWJlckFjdGl2aXR5RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJBY3Rpdml0eUludml0ZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmdldE1lbWJlckFjdGl2aXR5SW52aXRlKHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuYWN0aXZpdHlJbnZpdGVJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoYWN0aXZpdHlJbnZpdGU6IEFjdGl2aXR5SW52aXRlKSA9PiByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYWN0aXZpdHlJbnZpdGV9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5SW52aXRlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRNZW1iZXJPcGVuQWN0aXZpdHkocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5hY3Rpdml0eUlkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChhY3Rpdml0eTogT3BlbkFjdGl2aXR5KSA9PiByZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGFjdGl2aXR5fSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHkkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiBzdHJpbmd9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRQdWJsaWNPcGVuQWN0aXZpdHkocGF5bG9hZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChhY3Rpdml0eTogT3BlbkFjdGl2aXR5KSA9PiByZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGFjdGl2aXR5fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eSA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVUZWFtQWN0aXZpdHlBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgcmV0cmlldmVFeHRyYU1lbWJlcnM6IGJvb2xlYW4gfSB9KSA9PlxuICAgICAgICBmb3JrSm9pbih7XG4gICAgICAgICAgYWN0aXZpdHk6IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmdldFRlYW1BY3Rpdml0eShwYXlsb2FkLnRlYW1JZCwgcGF5bG9hZC5hY3Rpdml0eUlkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgZXh0cmFNZW1iZXJzOiBwYXlsb2FkLnJldHJpZXZlRXh0cmFNZW1iZXJzID8gdGhpcy50ZWFtTGVhZGVyR2V0QWxsRXh0cmFNZW1iZXJzKHBheWxvYWQudGVhbUlkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICApIDogb2YobmV3IEFycmF5PEFjdGl2aXR5RXh0cmFNZW1iZXI+KCkpLFxuICAgICAgICAgIG1lbWJlcnM6IHRoaXMudGVhbUxlYWRlckdldEFsbE1lbWJlcnMocGF5bG9hZC50ZWFtSWQpLFxuICAgICAgICAgIHBhcnRpY2lwYW50czogdGhpcy5hY3Rpdml0eVNlcnZpY2UuZ2V0VGVhbUFjdGl2aXR5UGFydGljaXBhbnRzKHBheWxvYWQudGVhbUlkLCBwYXlsb2FkLmFjdGl2aXR5SWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogQ29sbGVjdGlvbjxTZWFyY2hNZW1iZXI+KSA9PiByZXNwb25zZS50b0FycmF5KCkpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIHRlYW06IHRoaXMudGVhbVNlcnZpY2UuZ2V0VGVhbUxlYWRlclRlYW0ocGF5bG9hZC50ZWFtSWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFrZSgxKVxuICAgICAgICAgICAgKVxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKCh7YWN0aXZpdHksIGV4dHJhTWVtYmVycywgbWVtYmVycywgcGFydGljaXBhbnRzLCB0ZWFtfSkgPT4gW1xuICAgICAgICAgICAgcmV0cmlldmVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uKHtcbiAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgIGFjdGl2aXR5LFxuICAgICAgICAgICAgICAgIGV4dHJhTWVtYmVycyxcbiAgICAgICAgICAgICAgICBleHRyYU1lbWJlcnNMb2FkZWQ6IHBheWxvYWQucmV0cmlldmVFeHRyYU1lbWJlcnMsXG4gICAgICAgICAgICAgICAgbWVtYmVycyxcbiAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudHMsXG4gICAgICAgICAgICAgICAgdGVhbVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHJldHJpZXZlVGVhbUxlYWRlckdyb3VwU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogdGVhbX0pLFxuICAgICAgICAgICAgbGlzdFRlYW1MZWFkZXJFeHRyYU1lbWJlcnNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiB7dGVhbUlkOiBwYXlsb2FkLnRlYW1JZCwgcmVzdWx0czogZXh0cmFNZW1iZXJzfX0pLFxuICAgICAgICAgIF0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVUZWFtQWN0aXZpdHlGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY0FjdGl2aXR5SW52aXRlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNBY3Rpdml0eUludml0ZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7YWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nIH19KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRQdWJsaWNBY3Rpdml0eUludml0ZShwYXlsb2FkLmFjdGl2aXR5SW52aXRlSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYWN0aXZpdHlJbnZpdGU6IEFjdGl2aXR5SW52aXRlKSA9PiByZXRyaWV2ZVB1YmxpY0FjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYWN0aXZpdHlJbnZpdGV9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY0FjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlRUkNvZGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVRlYW1BY3Rpdml0eVFSQ29kZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRUZWFtQWN0aXZpdHlRUkNvZGUocGF5bG9hZC50ZWFtSWQsIHBheWxvYWQuYWN0aXZpdHlJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoYWN0aXZpdHk6IEFjdGl2aXR5KSA9PiByZXRyaWV2ZVRlYW1BY3Rpdml0eVFSQ29kZVN1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgdGVhbUlkOiBwYXlsb2FkLnRlYW1JZCxcbiAgICAgICAgICAgICAgICBhY3Rpdml0eTogYWN0aXZpdHlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVRlYW1BY3Rpdml0eVFSQ29kZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlTZXR0aW5ncyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlVGVhbUFjdGl2aXR5U2V0dGluZ3NBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIGNyZWF0ZTogYm9vbGVhbiB9IH0pID0+XG4gICAgICAgIGZvcmtKb2luKHtcbiAgICAgICAgICBhY3Rpdml0eVNldHRpbmdzOiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRUZWFtQWN0aXZpdHlTZXR0aW5ncyhwYXlsb2FkLnRlYW1JZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIGFjdGl2aXR5TG9jYXRpb25zOiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRUZWFtQWN0aXZpdHlMb2NhdGlvbnMocGF5bG9hZC50ZWFtSWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4gcmVzcG9uc2UudG9BcnJheSgpLm1hcCgodmFsdWU6IEFjdGl2aXR5TG9jYXRpb24pID0+ICh7XG4gICAgICAgICAgICAgICAgdGV4dDogdmFsdWUubmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUuaWRcbiAgICAgICAgICAgICAgfSkpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBhY3Rpdml0eVR5cGVzOiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRUZWFtQWN0aXZpdHlUeXBlcyhwYXlsb2FkLnRlYW1JZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBDb2xsZWN0aW9uPEFjdGl2aXR5VHlwZT4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlcyA9IHBheWxvYWQuY3JlYXRlID8gcmVzcG9uc2UudG9BcnJheSgpLmZpbHRlcigodHlwZTogQWN0aXZpdHlUeXBlKSA9PiB0eXBlLmFjdGl2ZSkgOiByZXNwb25zZS50b0FycmF5KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVzLm1hcCgodmFsdWU6IEFjdGl2aXR5VHlwZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlLm5hbWUsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUuaWRcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgbWFwKCh7YWN0aXZpdHlTZXR0aW5ncywgYWN0aXZpdHlMb2NhdGlvbnMsIGFjdGl2aXR5VHlwZXN9KSA9PiB7XG4gICAgICAgICAgICAvLyBBZGQgbG9jYXRpb25zIGFuZCB0eXBlcyB0byB0aGUgYWN0aXZpdHlTZXR0aW5ncyBvYmplY3RcbiAgICAgICAgICAgIGFjdGl2aXR5U2V0dGluZ3MuYWN0aXZpdHlMb2NhdGlvbnMgPSBhY3Rpdml0eUxvY2F0aW9ucztcbiAgICAgICAgICAgIGFjdGl2aXR5U2V0dGluZ3MuYWN0aXZpdHlUeXBlcyA9IGFjdGl2aXR5VHlwZXM7XG5cbiAgICAgICAgICAgIHJldHVybiByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYWN0aXZpdHlTZXR0aW5ncyBhcyBBY3Rpdml0eVNldHRpbmdzfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3MkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHsgcGF5bG9hZDogc3RyaW5nIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmdldFRlYW1BY3Rpdml0eU5ldyhwYXlsb2FkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGFjdGl2aXR5OiBBY3Rpdml0eSkgPT4gcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhY3Rpdml0eX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgdXBkYXRlTWVtYmVyQWN0aXZpdHlBdHRlbmRhbmNlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUodXBkYXRlTWVtYmVyQWN0aXZpdHlBdHRlbmRhbmNlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5hY3Rpdml0eVNlcnZpY2UudXBkYXRlTWVtYmVyQWN0aXZpdHlBdHRlbmRhbmNlKHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuYWN0aXZpdHlJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoc3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVNZW1iZXJBY3Rpdml0eUF0dGVuZGFuY2VTdWNjZXNzQWN0aW9uKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbWJlckFjdGl2aXR5QXR0ZW5kYW5jZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7c3RhdHVzOiA0MDB9KX0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodXBkYXRlTWVtYmVyQWN0aXZpdHlBdHRlbmRhbmNlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IEFjdGl2aXR5SW52aXRlIH1cbiAgICAgICAgfSkgPT4gdGhpcy5hY3Rpdml0eVNlcnZpY2UudXBkYXRlTWVtYmVyQWN0aXZpdHkocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5hY3Rpdml0eUludml0ZS5pZCwgcGF5bG9hZC5hY3Rpdml0eUludml0ZSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoYWN0aXZpdHlJbnZpdGU6IEFjdGl2aXR5SW52aXRlKSA9PiB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGFjdGl2aXR5SW52aXRlfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgdXBkYXRlTWVtYmVyT3BlbkFjdGl2aXR5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUodXBkYXRlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcsIG9wdGlvbmFsRmVlczogQXJyYXk8c3RyaW5nPiB9XG4gICAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnNpZ25VcE1lbWJlck9wZW5BY3Rpdml0eVdpdGhSZXNwb25zZShwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmFjdGl2aXR5SWQsIHBheWxvYWQuY29tbWVudCwgcGF5bG9hZC5vcHRpb25hbEZlZXMpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG9wZW5BY3Rpdml0eTogT3BlbkFjdGl2aXR5KSA9PiB1cGRhdGVNZW1iZXJPcGVuQWN0aXZpdHlTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBvcGVuQWN0aXZpdHl9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHVwZGF0ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgdXBkYXRlUHVibGljQWN0aXZpdHlJbnZpdGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZSh1cGRhdGVQdWJsaWNBY3Rpdml0eUludml0ZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7dG9rZW46IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IEFjdGl2aXR5SW52aXRlfX0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnVwZGF0ZVB1YmxpY0FjdGl2aXR5SW52aXRlKHBheWxvYWQuYWN0aXZpdHlJbnZpdGUuaWQsIHBheWxvYWQudG9rZW4sIHBheWxvYWQuYWN0aXZpdHlJbnZpdGUpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYWN0aXZpdHlJbnZpdGU6IEFjdGl2aXR5SW52aXRlKSA9PiB1cGRhdGVQdWJsaWNBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGFjdGl2aXR5SW52aXRlfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodXBkYXRlUHVibGljQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVQdWJsaWNPcGVuQWN0aXZpdHkkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZSh1cGRhdGVQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7cGF5bG9hZDoge2FjdGl2aXR5SWQ6IHN0cmluZywgY29tbWVudDogc3RyaW5nLCBvcHRpb25hbEZlZXM6IEFycmF5PHN0cmluZz4gfX0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnNpZ25VcFB1YmxpY09wZW5BY3Rpdml0eVdpdGhSZXNwb25zZShwYXlsb2FkLmFjdGl2aXR5SWQsIHBheWxvYWQuY29tbWVudCwgcGF5bG9hZC5vcHRpb25hbEZlZXMpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgob3BlbkFjdGl2aXR5OiBPcGVuQWN0aXZpdHkpID0+IHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG9wZW5BY3Rpdml0eX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUludml0ZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUludml0ZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiBBY3Rpdml0eUludml0ZX0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUludml0ZShwYXlsb2FkLmlkLCBwYXlsb2FkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gdXBkYXRlUHVibGljT3BlbkFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbigpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eSA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUodXBkYXRlVGVhbUFjdGl2aXR5QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5OiBBY3Rpdml0eSB9XG4gICAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnVwZGF0ZVRlYW1BY3Rpdml0eShwYXlsb2FkLnRlYW1JZCwgcGF5bG9hZC5hY3Rpdml0eSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoYWN0aXZpdHk6IEFjdGl2aXR5KSA9PiB1cGRhdGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhY3Rpdml0eX0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVUZWFtQWN0aXZpdHlBdHRlbmRhbmNlID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZSh1cGRhdGVUZWFtQWN0aXZpdHlBdHRlbmRhbmNlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgbWVtYmVySWRzOiBBcnJheTxzdHJpbmc+IH1cbiAgICAgICAgfSkgPT4gdGhpcy5hY3Rpdml0eVNlcnZpY2UudXBkYXRlVGVhbUFjdGl2aXR5UGFydGljaXBhbnRzKHBheWxvYWQudGVhbUlkLCBwYXlsb2FkLmFjdGl2aXR5SWQsIHBheWxvYWQubWVtYmVySWRzKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IHVwZGF0ZVRlYW1BY3Rpdml0eUF0dGVuZGFuY2VTdWNjZXNzQWN0aW9uKCkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih1cGRhdGVUZWFtQWN0aXZpdHlBdHRlbmRhbmNlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVUZWFtTWVtYmVyQWN0aXZpdHlJbnZpdGUgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHVwZGF0ZVRlYW1NZW1iZXJBY3Rpdml0eUludml0ZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICB0ZWFtSWQ6IHN0cmluZyxcbiAgICAgICAgICAgIGFjdGl2aXR5SWQ6IHN0cmluZyxcbiAgICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZyxcbiAgICAgICAgICAgIG1lbWJlckFjdGl2aXR5SW52aXRlOiBNZW1iZXJBY3Rpdml0eUludml0ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSkgPT4gdGhpcy5hY3Rpdml0eVNlcnZpY2UudXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlKHBheWxvYWQudGVhbUlkLCBwYXlsb2FkLmFjdGl2aXR5SWQsIHBheWxvYWQuYWN0aXZpdHlJbnZpdGVJZCwgcGF5bG9hZC5tZW1iZXJBY3Rpdml0eUludml0ZSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgobWVtYmVyQWN0aXZpdHlJbnZpdGU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiB1cGRhdGVUZWFtTWVtYmVyQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBtZW1iZXJBY3Rpdml0eUludml0ZX0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodXBkYXRlVGVhbU1lbWJlckFjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,96 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { Actions, createEffect, ofType } from '@ngrx/effects';
3
+ import { AuthService, STORAGE_SELECTED_AUTH, STORAGE_SELECTED_MEMBERS, STORAGE_TOKEN, StorageService, TeamService } from '../../services';
4
+ import { clearAuthenticationAction, clearAuthenticationSuccessAction, clearStoreAction, getCurrentAuthAction, getCurrentAuthSuccessAction, listAuthAction, listAuthFailureAction, listAuthSuccessAction, listAuthTeamsAction, listAuthTeamsFailureAction, listAuthTeamsSuccessAction, refreshAuthsAction, refreshAuthsFailureAction, refreshAuthsSuccessAction, removeMemberAuthAction, removeMemberAuthFailureAction, removeMemberAuthSuccessAction, removeTeamAuthAction, removeTeamAuthFailureAction, removeTeamAuthSuccessAction, setCurrentAuthAction } from '../actions';
5
+ import { exhaustMap, forkJoin, mergeMap, of } from 'rxjs';
6
+ import { catchError, map } from 'rxjs/operators';
7
+ import { AuthenticationService } from '../../authentication';
8
+ import * as i0 from "@angular/core";
9
+ export class AuthEffects {
10
+ actions$ = inject(Actions);
11
+ authenticationService = inject(AuthenticationService);
12
+ authService = inject(AuthService);
13
+ storageService = inject(StorageService);
14
+ teamService = inject(TeamService);
15
+ clearAuthentication$ = createEffect(() => this.actions$
16
+ .pipe(ofType(clearAuthenticationAction), exhaustMap(() => forkJoin({
17
+ tokenRemoval: this.storageService.removeAsObservable(STORAGE_TOKEN),
18
+ selectedAuthRemoval: this.storageService.removeAsObservable(STORAGE_SELECTED_AUTH),
19
+ selectedMembersRemoval: this.storageService.removeAsObservable(STORAGE_SELECTED_MEMBERS),
20
+ }).pipe(mergeMap(() => {
21
+ this.authenticationService.clearAuthentication();
22
+ return [
23
+ clearAuthenticationSuccessAction(),
24
+ clearStoreAction()
25
+ ];
26
+ })))));
27
+ getCurrent$ = createEffect(() => this.actions$
28
+ .pipe(ofType(getCurrentAuthAction), exhaustMap(() => this.storageService.getAsObservable(STORAGE_SELECTED_AUTH)
29
+ .pipe(map((auth) => {
30
+ if (auth === undefined) {
31
+ return getCurrentAuthSuccessAction({ payload: null });
32
+ }
33
+ return getCurrentAuthSuccessAction({ payload: auth });
34
+ })))));
35
+ listAuth$ = createEffect(() => this.actions$
36
+ .pipe(ofType(listAuthAction), exhaustMap(({ payload }) => this.authService.getAuths(payload)
37
+ .pipe(map((auths) => listAuthSuccessAction({ payload: auths.toArray() })), catchError((error) => of(listAuthFailureAction({ payload: error })))))));
38
+ listAuthTeams$ = createEffect(() => this.actions$
39
+ .pipe(ofType(listAuthTeamsAction), exhaustMap(({ payload }) => {
40
+ if (payload.clubAdmin) {
41
+ return this.teamService.getClubTeams(payload.id)
42
+ .pipe(map((searchTeams) => {
43
+ const auth = {
44
+ ...payload,
45
+ teams: searchTeams.toArray()
46
+ .sort((a, b) => a.name.localeCompare(b.name))
47
+ };
48
+ return listAuthTeamsSuccessAction({ payload: auth });
49
+ }), catchError((error) => of(listAuthTeamsFailureAction({ payload: error }))));
50
+ }
51
+ else {
52
+ const sectionsTeams$ = payload.sections.map((section) => this.teamService.getSectionTeams(section.id));
53
+ return forkJoin(sectionsTeams$).pipe(map((results) => {
54
+ const sortedTeams = results
55
+ .flatMap((result) => result.toArray())
56
+ .sort((a, b) => a.name.localeCompare(b.name));
57
+ const auth = {
58
+ ...payload,
59
+ teams: sortedTeams,
60
+ };
61
+ return listAuthTeamsSuccessAction({ payload: auth });
62
+ }), catchError((error) => of(listAuthTeamsFailureAction({ payload: error }))));
63
+ }
64
+ })));
65
+ refresh$ = createEffect(() => this.actions$
66
+ .pipe(ofType(refreshAuthsAction), exhaustMap(() => this.authService.updateMembers()
67
+ .pipe(mergeMap((success) => {
68
+ if (success) {
69
+ return [
70
+ refreshAuthsSuccessAction(),
71
+ listAuthAction()
72
+ ];
73
+ }
74
+ else {
75
+ return of(refreshAuthsFailureAction());
76
+ }
77
+ }), catchError(() => of(refreshAuthsFailureAction()))))));
78
+ removeMember$ = createEffect(() => this.actions$
79
+ .pipe(ofType(removeMemberAuthAction), exhaustMap(({ payload }) => this.authService.removeMemberAuth(payload.authId, payload.memberId)
80
+ .pipe(map((value) => value ? removeMemberAuthSuccessAction() : removeMemberAuthFailureAction()), catchError(() => of(removeMemberAuthFailureAction()))))));
81
+ removeTeam$ = createEffect(() => this.actions$
82
+ .pipe(ofType(removeTeamAuthAction), exhaustMap(({ payload }) => this.authService.removeTeamAuth(payload.authId, payload.teamId)
83
+ .pipe(map((value) => value ? removeTeamAuthSuccessAction() : removeTeamAuthFailureAction()), catchError(() => of(removeMemberAuthFailureAction()))))));
84
+ setCurrent$ = createEffect(() => this.actions$
85
+ .pipe(ofType(setCurrentAuthAction), exhaustMap(({ payload }) => this.storageService.setAsObservable(STORAGE_SELECTED_AUTH, payload)
86
+ .pipe(mergeMap((auth) => [
87
+ getCurrentAuthSuccessAction({ payload: auth }),
88
+ clearStoreAction()
89
+ ])))));
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
91
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthEffects });
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthEffects, decorators: [{
94
+ type: Injectable
95
+ }] });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2F1dGguZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYixjQUFjLEVBQ2QsV0FBVyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFDaEMsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0IsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLFdBQVc7SUFDZCxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8s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QyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUM7UUFDNUMsZ0JBQWdCLEVBQUU7S0FDbkIsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUNGLENBQUM7dUdBaEtTLFdBQVc7MkdBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIEF1dGhTZXJ2aWNlLFxuICBTVE9SQUdFX1NFTEVDVEVEX0FVVEgsXG4gIFNUT1JBR0VfU0VMRUNURURfTUVNQkVSUyxcbiAgU1RPUkFHRV9UT0tFTixcbiAgU3RvcmFnZVNlcnZpY2UsXG4gIFRlYW1TZXJ2aWNlXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIGNsZWFyQXV0aGVudGljYXRpb25BY3Rpb24sXG4gIGNsZWFyQXV0aGVudGljYXRpb25TdWNjZXNzQWN0aW9uLFxuICBjbGVhclN0b3JlQWN0aW9uLFxuICBnZXRDdXJyZW50QXV0aEFjdGlvbixcbiAgZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uLFxuICBsaXN0QXV0aEFjdGlvbixcbiAgbGlzdEF1dGhGYWlsdXJlQWN0aW9uLFxuICBsaXN0QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBdXRoVGVhbXNBY3Rpb24sXG4gIGxpc3RBdXRoVGVhbXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbixcbiAgcmVmcmVzaEF1dGhzQWN0aW9uLFxuICByZWZyZXNoQXV0aHNGYWlsdXJlQWN0aW9uLFxuICByZWZyZXNoQXV0aHNTdWNjZXNzQWN0aW9uLFxuICByZW1vdmVNZW1iZXJBdXRoQWN0aW9uLFxuICByZW1vdmVNZW1iZXJBdXRoRmFpbHVyZUFjdGlvbixcbiAgcmVtb3ZlTWVtYmVyQXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIHJlbW92ZVRlYW1BdXRoQWN0aW9uLFxuICByZW1vdmVUZWFtQXV0aEZhaWx1cmVBY3Rpb24sXG4gIHJlbW92ZVRlYW1BdXRoU3VjY2Vzc0FjdGlvbixcbiAgc2V0Q3VycmVudEF1dGhBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBmb3JrSm9pbiwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEF1dGgsIENvbGxlY3Rpb24sIFNlYXJjaFRlYW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVtb3ZlTWVtYmVyQXV0aEludGVyZmFjZSwgUmVtb3ZlVGVhbUF1dGhJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhFZmZlY3RzIHtcbiAgcHJpdmF0ZSBhY3Rpb25zJCA9IGluamVjdChBY3Rpb25zKTtcbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuICBwcml2YXRlIHRlYW1TZXJ2aWNlID0gaW5qZWN0KFRlYW1TZXJ2aWNlKTtcblxuICBjbGVhckF1dGhlbnRpY2F0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY2xlYXJBdXRoZW50aWNhdGlvbkFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+XG4gICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRva2VuUmVtb3ZhbDogdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVBc09ic2VydmFibGUoU1RPUkFHRV9UT0tFTiksXG4gICAgICAgICAgICBzZWxlY3RlZEF1dGhSZW1vdmFsOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX0FVVEgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRNZW1iZXJzUmVtb3ZhbDogdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9NRU1CRVJTKSxcbiAgICAgICAgICB9XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jbGVhckF1dGhlbnRpY2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBjbGVhckF1dGhlbnRpY2F0aW9uU3VjY2Vzc0FjdGlvbigpLFxuICAgICAgICAgICAgICBjbGVhclN0b3JlQWN0aW9uKClcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGdldEN1cnJlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShnZXRDdXJyZW50QXV0aEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0QXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChhdXRoOiBBdXRoIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGF1dGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICByZXR1cm4gZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBudWxsfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhdXRofSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0QXV0aCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RBdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfSkgPT4gdGhpcy5hdXRoU2VydmljZS5nZXRBdXRocyhwYXlsb2FkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGF1dGhzOiBDb2xsZWN0aW9uPEF1dGg+KSA9PiBsaXN0QXV0aFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGF1dGhzLnRvQXJyYXkoKX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RBdXRoRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdEF1dGhUZWFtcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RBdXRoVGVhbXNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9KSA9PiB7XG4gICAgICAgIGlmIChwYXlsb2FkLmNsdWJBZG1pbikge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRlYW1TZXJ2aWNlLmdldENsdWJUZWFtcyhwYXlsb2FkLmlkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoc2VhcmNoVGVhbXM6IENvbGxlY3Rpb248U2VhcmNoVGVhbT4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdXRoID0ge1xuICAgICAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICAgIHRlYW1zOiBzZWFyY2hUZWFtcy50b0FycmF5KClcbiAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGE6IFNlYXJjaFRlYW0sIGI6IFNlYXJjaFRlYW0pID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aH0pO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0QXV0aFRlYW1zRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHNlY3Rpb25zVGVhbXMkOiBBcnJheTxPYnNlcnZhYmxlPENvbGxlY3Rpb248U2VhcmNoVGVhbT4+PiA9IHBheWxvYWQuc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PlxuICAgICAgICAgICAgdGhpcy50ZWFtU2VydmljZS5nZXRTZWN0aW9uVGVhbXMoc2VjdGlvbi5pZClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHNlY3Rpb25zVGVhbXMkKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBBcnJheTxDb2xsZWN0aW9uPFNlYXJjaFRlYW0+PikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzb3J0ZWRUZWFtczogQXJyYXk8U2VhcmNoVGVhbT4gPSByZXN1bHRzXG4gICAgICAgICAgICAgICAgLmZsYXRNYXAoKHJlc3VsdDogQ29sbGVjdGlvbjxTZWFyY2hUZWFtPikgPT4gcmVzdWx0LnRvQXJyYXkoKSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGF1dGggPSB7XG4gICAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICB0ZWFtczogc29ydGVkVGVhbXMsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHJldHVybiBsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RBdXRoVGVhbXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICByZWZyZXNoJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmVmcmVzaEF1dGhzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5hdXRoU2VydmljZS51cGRhdGVNZW1iZXJzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgcmVmcmVzaEF1dGhzU3VjY2Vzc0FjdGlvbigpLFxuICAgICAgICAgICAgICAgIGxpc3RBdXRoQWN0aW9uKClcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihyZWZyZXNoQXV0aHNGYWlsdXJlQWN0aW9uKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVmcmVzaEF1dGhzRmFpbHVyZUFjdGlvbigpKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZW1vdmVNZW1iZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZW1vdmVNZW1iZXJBdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IFJlbW92ZU1lbWJlckF1dGhJbnRlcmZhY2VcbiAgICAgICAgfSkgPT4gdGhpcy5hdXRoU2VydmljZS5yZW1vdmVNZW1iZXJBdXRoKHBheWxvYWQuYXV0aElkLCBwYXlsb2FkLm1lbWJlcklkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUgPyByZW1vdmVNZW1iZXJBdXRoU3VjY2Vzc0FjdGlvbigpIDogcmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHJlbW92ZU1lbWJlckF1dGhGYWlsdXJlQWN0aW9uKCkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmVtb3ZlVGVhbSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJlbW92ZVRlYW1BdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IFJlbW92ZVRlYW1BdXRoSW50ZXJmYWNlXG4gICAgICAgIH0pID0+IHRoaXMuYXV0aFNlcnZpY2UucmVtb3ZlVGVhbUF1dGgocGF5bG9hZC5hdXRoSWQsIHBheWxvYWQudGVhbUlkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUgPyByZW1vdmVUZWFtQXV0aFN1Y2Nlc3NBY3Rpb24oKSA6IHJlbW92ZVRlYW1BdXRoRmFpbHVyZUFjdGlvbigpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oKSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzZXRDdXJyZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoc2V0Q3VycmVudEF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IEF1dGggfSkgPT4gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9BVVRILCBwYXlsb2FkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoYXV0aDogQXV0aCkgPT4gW1xuICAgICAgICAgICAgZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhdXRofSksXG4gICAgICAgICAgICBjbGVhclN0b3JlQWN0aW9uKClcbiAgICAgICAgICBdKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19