@myclub_se/data-access 2.15.2 → 3.0.1

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 (771) hide show
  1. package/{esm2020 → esm2022}/index.mjs +2 -1
  2. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-application-time.mjs +1 -1
  3. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot-session.mjs +1 -1
  4. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar.mjs +1 -1
  5. package/esm2022/lib/api-models/api-feature-flags.mjs +2 -0
  6. package/esm2022/lib/api-models/api-invoice/api-payment-attempt-create.mjs +11 -0
  7. package/esm2022/lib/api-models/index.mjs +57 -0
  8. package/esm2022/lib/authentication/authentication.interceptor.mjs +101 -0
  9. package/esm2022/lib/authentication/authentication.service.mjs +109 -0
  10. package/esm2022/lib/authentication/guards/authenticated.guard.mjs +38 -0
  11. package/esm2022/lib/authentication/guards/handle-grant-token.guard.mjs +31 -0
  12. package/esm2022/lib/data-access.module.mjs +39 -0
  13. package/esm2022/lib/maintenance/maintenance.interceptor.mjs +30 -0
  14. package/esm2022/lib/models/activity-extra-member.mjs +19 -0
  15. package/esm2022/lib/models/activity-invite.mjs +35 -0
  16. package/esm2022/lib/models/activity-location-group.mjs +27 -0
  17. package/esm2022/lib/models/activity-location-part.mjs +16 -0
  18. package/esm2022/lib/models/activity-location-tag.mjs +22 -0
  19. package/esm2022/lib/models/activity-location.mjs +46 -0
  20. package/esm2022/lib/models/activity-participant.mjs +19 -0
  21. package/esm2022/lib/models/activity-settings.mjs +27 -0
  22. package/esm2022/lib/models/activity-type.mjs +34 -0
  23. package/esm2022/lib/models/activity.mjs +137 -0
  24. package/esm2022/lib/models/auth/auth-member.mjs +13 -0
  25. package/{esm2020 → esm2022}/lib/models/auth/auth-section.mjs +3 -1
  26. package/{esm2020 → esm2022}/lib/models/auth/auth-team-section.mjs +3 -1
  27. package/esm2022/lib/models/auth/auth-team.mjs +13 -0
  28. package/esm2022/lib/models/auth/auth.mjs +25 -0
  29. package/{esm2020 → esm2022}/lib/models/authentication.mjs +3 -1
  30. package/esm2022/lib/models/bookable-group.mjs +27 -0
  31. package/esm2022/lib/models/bookable-item.mjs +49 -0
  32. package/esm2022/lib/models/bookable-part.mjs +16 -0
  33. package/esm2022/lib/models/bookable-tag.mjs +22 -0
  34. package/esm2022/lib/models/booking-calendar-application-time.mjs +86 -0
  35. package/esm2022/lib/models/booking-calendar-slot-session.mjs +87 -0
  36. package/esm2022/lib/models/booking-calendar-slot.mjs +79 -0
  37. package/esm2022/lib/models/booking-calendar.mjs +74 -0
  38. package/esm2022/lib/models/booking-settings.mjs +29 -0
  39. package/esm2022/lib/models/booking-slot-filter.mjs +72 -0
  40. package/esm2022/lib/models/calendar-event.mjs +35 -0
  41. package/esm2022/lib/models/calendar.mjs +15 -0
  42. package/esm2022/lib/models/card/card-deal.mjs +15 -0
  43. package/esm2022/lib/models/card/card-logo-urls.mjs +21 -0
  44. package/esm2022/lib/models/card/card-logo.mjs +11 -0
  45. package/esm2022/lib/models/card/card-member-ticket.mjs +17 -0
  46. package/esm2022/lib/models/card/card-theme.mjs +15 -0
  47. package/esm2022/lib/models/card/card-ticket-location.mjs +13 -0
  48. package/esm2022/lib/models/card/card-ticket.mjs +37 -0
  49. package/{esm2020 → esm2022}/lib/models/card/card.mjs +9 -1
  50. package/esm2022/lib/models/card/home-team.mjs +11 -0
  51. package/esm2022/lib/models/card/member-card.mjs +23 -0
  52. package/esm2022/lib/models/card/search-member-card.mjs +13 -0
  53. package/esm2022/lib/models/club-image.mjs +31 -0
  54. package/{esm2020 → esm2022}/lib/models/club-section.mjs +3 -1
  55. package/{esm2020 → esm2022}/lib/models/club.mjs +3 -1
  56. package/esm2022/lib/models/collection.mjs +19 -0
  57. package/esm2022/lib/models/contact.mjs +61 -0
  58. package/esm2022/lib/models/directory.mjs +38 -0
  59. package/esm2022/lib/models/email.mjs +11 -0
  60. package/esm2022/lib/models/event.mjs +47 -0
  61. package/{esm2020 → esm2022}/lib/models/external-link.mjs +3 -1
  62. package/esm2022/lib/models/feature-flags.mjs +14 -0
  63. package/esm2022/lib/models/file-object.mjs +23 -0
  64. package/esm2022/lib/models/general-image.mjs +11 -0
  65. package/esm2022/lib/models/group-role.mjs +17 -0
  66. package/esm2022/lib/models/image-urls.mjs +15 -0
  67. package/esm2022/lib/models/index.mjs +64 -0
  68. package/esm2022/lib/models/invoice/member-fee.mjs +13 -0
  69. package/esm2022/lib/models/invoice/member-invoice-row.mjs +31 -0
  70. package/esm2022/lib/models/invoice/member-invoice.mjs +45 -0
  71. package/esm2022/lib/models/invoice/payment-attempt.mjs +21 -0
  72. package/esm2022/lib/models/invoice/payment-types/credit-card.mjs +27 -0
  73. package/esm2022/lib/models/invoice/payment-types/giro.mjs +17 -0
  74. package/esm2022/lib/models/invoice/payment-types/swish.mjs +31 -0
  75. package/esm2022/lib/models/invoice/payment-types/zimpler.mjs +19 -0
  76. package/esm2022/lib/models/invoice/search-member-invoice.mjs +26 -0
  77. package/{esm2020 → esm2022}/lib/models/invoice/swish-qr-code.mjs +2 -1
  78. package/esm2022/lib/models/invoice/unpaid-member-invoice.mjs +13 -0
  79. package/esm2022/lib/models/member/member-attribute.mjs +44 -0
  80. package/esm2022/lib/models/member/member-contact.mjs +26 -0
  81. package/esm2022/lib/models/member/member-function.mjs +24 -0
  82. package/esm2022/lib/models/member/member-validation-settings.mjs +21 -0
  83. package/esm2022/lib/models/member/member.mjs +101 -0
  84. package/{esm2020 → esm2022}/lib/models/member/other-member-field.mjs +4 -1
  85. package/esm2022/lib/models/member/other-member.mjs +21 -0
  86. package/esm2022/lib/models/member/search-member.mjs +35 -0
  87. package/esm2022/lib/models/member-activity-invite.mjs +42 -0
  88. package/esm2022/lib/models/member-public-form-field-option.mjs +13 -0
  89. package/esm2022/lib/models/member-public-form-field.mjs +27 -0
  90. package/esm2022/lib/models/member-public-form.mjs +55 -0
  91. package/esm2022/lib/models/member-team-through.mjs +23 -0
  92. package/esm2022/lib/models/member-team.mjs +21 -0
  93. package/esm2022/lib/models/member-type.mjs +11 -0
  94. package/esm2022/lib/models/news.mjs +66 -0
  95. package/esm2022/lib/models/open-activity.mjs +117 -0
  96. package/esm2022/lib/models/optional-fee.mjs +16 -0
  97. package/esm2022/lib/models/overbooked-bookable-item.mjs +15 -0
  98. package/esm2022/lib/models/overbooked-location.mjs +15 -0
  99. package/esm2022/lib/models/partner.mjs +13 -0
  100. package/esm2022/lib/models/public-authentication.mjs +9 -0
  101. package/esm2022/lib/models/registration-qr-code.mjs +19 -0
  102. package/esm2022/lib/models/search-club.mjs +23 -0
  103. package/esm2022/lib/models/search-team.mjs +24 -0
  104. package/{esm2020 → esm2022}/lib/models/section.mjs +3 -1
  105. package/esm2022/lib/models/token.mjs +11 -0
  106. package/esm2022/lib/models/user-notification.mjs +21 -0
  107. package/esm2022/lib/models/user.mjs +41 -0
  108. package/esm2022/lib/services/activity.service.mjs +508 -0
  109. package/esm2022/lib/services/api.service.mjs +108 -0
  110. package/esm2022/lib/services/auth.service.mjs +62 -0
  111. package/esm2022/lib/services/bookable.service.mjs +279 -0
  112. package/esm2022/lib/services/booking-calendar.service.mjs +736 -0
  113. package/esm2022/lib/services/club.service.mjs +35 -0
  114. package/esm2022/lib/services/constant.service.mjs +97 -0
  115. package/esm2022/lib/services/email.service.mjs +28 -0
  116. package/esm2022/lib/services/external-link.service.mjs +25 -0
  117. package/esm2022/lib/services/factories/activity-settings-factory.mjs +3 -0
  118. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-application-time-factory.mjs +2 -2
  119. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-factory.mjs +2 -2
  120. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-session-factory.mjs +2 -2
  121. package/esm2022/lib/services/factories/feature-flags-factory.mjs +5 -0
  122. package/esm2022/lib/services/factories/index.mjs +87 -0
  123. package/esm2022/lib/services/factories/member-public-form-factory.mjs +26 -0
  124. package/esm2022/lib/services/factories/payment-attempt-factory.mjs +23 -0
  125. package/esm2022/lib/services/feature-flags.service.mjs +44 -0
  126. package/esm2022/lib/services/file.service.mjs +65 -0
  127. package/esm2022/lib/services/index.mjs +24 -0
  128. package/esm2022/lib/services/invoice/invoice.service.mjs +42 -0
  129. package/esm2022/lib/services/invoice/payment-attempt.service.mjs +52 -0
  130. package/esm2022/lib/services/maintenance-mode.service.mjs +20 -0
  131. package/esm2022/lib/services/member-card.service.mjs +104 -0
  132. package/esm2022/lib/services/member-public-form.service.mjs +33 -0
  133. package/esm2022/lib/services/member.service.mjs +85 -0
  134. package/esm2022/lib/services/news.service.mjs +94 -0
  135. package/esm2022/lib/services/registration-qr-code.service.mjs +37 -0
  136. package/esm2022/lib/services/section.service.mjs +24 -0
  137. package/esm2022/lib/services/storage.service.mjs +44 -0
  138. package/esm2022/lib/services/team.service.mjs +89 -0
  139. package/esm2022/lib/services/token.service.mjs +58 -0
  140. package/esm2022/lib/services/user-notification.service.mjs +24 -0
  141. package/esm2022/lib/services/user.service.mjs +69 -0
  142. package/esm2022/lib/store/actions/activity.actions.mjs +177 -0
  143. package/esm2022/lib/store/actions/auth.actions.mjs +45 -0
  144. package/esm2022/lib/store/actions/booking.actions.mjs +187 -0
  145. package/esm2022/lib/store/actions/calendar.actions.mjs +77 -0
  146. package/esm2022/lib/store/actions/club-info.actions.mjs +23 -0
  147. package/esm2022/lib/store/actions/constant.actions.mjs +124 -0
  148. package/esm2022/lib/store/actions/email.actions.mjs +19 -0
  149. package/esm2022/lib/store/actions/external-link.actions.mjs +11 -0
  150. package/esm2022/lib/store/actions/file.actions.mjs +41 -0
  151. package/esm2022/lib/store/actions/index.mjs +19 -0
  152. package/esm2022/lib/store/actions/invoice.actions.mjs +75 -0
  153. package/esm2022/lib/store/actions/member-card.actions.mjs +73 -0
  154. package/esm2022/lib/store/actions/member.actions.mjs +69 -0
  155. package/esm2022/lib/store/actions/news.actions.mjs +47 -0
  156. package/esm2022/lib/store/actions/public-form.actions.mjs +17 -0
  157. package/esm2022/lib/store/actions/store.actions.mjs +7 -0
  158. package/esm2022/lib/store/actions/team.actions.mjs +91 -0
  159. package/esm2022/lib/store/actions/token.actions.mjs +53 -0
  160. package/esm2022/lib/store/actions/user.actions.mjs +49 -0
  161. package/esm2022/lib/store/effects/activity.effects.mjs +211 -0
  162. package/esm2022/lib/store/effects/auth.effects.mjs +96 -0
  163. package/esm2022/lib/store/effects/booking.effects.mjs +102 -0
  164. package/esm2022/lib/store/effects/calendar.effects.mjs +84 -0
  165. package/esm2022/lib/store/effects/club-info.effects.mjs +26 -0
  166. package/esm2022/lib/store/effects/constant.effects.mjs +69 -0
  167. package/esm2022/lib/store/effects/data-access.effects.mjs +37 -0
  168. package/esm2022/lib/store/effects/email.effects.mjs +27 -0
  169. package/esm2022/lib/store/effects/external-link.effects.mjs +20 -0
  170. package/esm2022/lib/store/effects/file.effects.mjs +149 -0
  171. package/esm2022/lib/store/effects/index.mjs +2 -0
  172. package/esm2022/lib/store/effects/invoice.effects.mjs +72 -0
  173. package/esm2022/lib/store/effects/member-card.effects.mjs +80 -0
  174. package/esm2022/lib/store/effects/member.effects.mjs +75 -0
  175. package/esm2022/lib/store/effects/mixins/extra-members-mixin.mjs +60 -0
  176. package/esm2022/lib/store/effects/news.effects.mjs +82 -0
  177. package/esm2022/lib/store/effects/public-form.effects.mjs +33 -0
  178. package/esm2022/lib/store/effects/team.effects.mjs +82 -0
  179. package/esm2022/lib/store/effects/token.effects.mjs +81 -0
  180. package/esm2022/lib/store/effects/user.effects.mjs +59 -0
  181. package/esm2022/lib/store/index.mjs +8 -0
  182. package/esm2022/lib/store/interfaces/activate-card-ticket.interface.mjs +2 -0
  183. package/esm2022/lib/store/interfaces/activate-user.interface.mjs +2 -0
  184. package/esm2022/lib/store/interfaces/calendar-activity-locations.interface.mjs +2 -0
  185. package/esm2022/lib/store/interfaces/calendar-activity-types.interface.mjs +2 -0
  186. package/esm2022/lib/store/interfaces/calendar-open-activity-result.interface.mjs +2 -0
  187. package/esm2022/lib/store/interfaces/calendar-public-open-activity-results.interface.mjs +2 -0
  188. package/esm2022/lib/store/interfaces/directory-result.interface.mjs +2 -0
  189. package/esm2022/lib/store/interfaces/email-settings.interface.mjs +2 -0
  190. package/esm2022/lib/store/interfaces/index.mjs +20 -0
  191. package/esm2022/lib/store/interfaces/list-result-interface.mjs +4 -0
  192. package/esm2022/lib/store/interfaces/location.interface.mjs +2 -0
  193. package/esm2022/lib/store/interfaces/member-calendar-event-result.interface.mjs +2 -0
  194. package/esm2022/lib/store/interfaces/member-card-deals.interface.mjs +2 -0
  195. package/esm2022/lib/store/interfaces/member-card-tickets.interface.mjs +2 -0
  196. package/esm2022/lib/store/interfaces/public-activate-card-ticket.interface.mjs +2 -0
  197. package/esm2022/lib/store/interfaces/remove-member-auth.interface.mjs +2 -0
  198. package/esm2022/lib/store/interfaces/remove-team-auth.interface.mjs +2 -0
  199. package/esm2022/lib/store/interfaces/retrieve-result.interface.mjs +4 -0
  200. package/esm2022/lib/store/interfaces/team-activity.interface.mjs +2 -0
  201. package/esm2022/lib/store/interfaces/team-calendar-event-result.interface.mjs +2 -0
  202. package/esm2022/lib/store/operators/ensure-activity.mjs +8 -0
  203. package/esm2022/lib/store/operators/ensure-auths.mjs +18 -0
  204. package/esm2022/lib/store/operators/ensure-calendar-events-loading-done.mjs +23 -0
  205. package/esm2022/lib/store/operators/ensure-constants.mjs +21 -0
  206. package/esm2022/lib/store/operators/ensure-current-auth.mjs +17 -0
  207. package/esm2022/lib/store/operators/ensure-current-user.mjs +16 -0
  208. package/esm2022/lib/store/operators/ensure-loading-done.mjs +24 -0
  209. package/esm2022/lib/store/operators/ensure-open-activities-loading-done.mjs +5 -0
  210. package/esm2022/lib/store/operators/ensure-public-open-activities-loading-done.mjs +5 -0
  211. package/esm2022/lib/store/operators/ensure-updated-data.mjs +10 -0
  212. package/esm2022/lib/store/operators/index.mjs +11 -0
  213. package/esm2022/lib/store/reducers/auth.reducer.mjs +52 -0
  214. package/esm2022/lib/store/reducers/booking.reducers.mjs +79 -0
  215. package/esm2022/lib/store/reducers/calendar.reducer.mjs +449 -0
  216. package/esm2022/lib/store/reducers/club-info.reducer.mjs +9 -0
  217. package/esm2022/lib/store/reducers/constant.reducer.mjs +181 -0
  218. package/esm2022/lib/store/reducers/data-access.reducer.mjs +37 -0
  219. package/esm2022/lib/store/reducers/email.reducer.mjs +21 -0
  220. package/esm2022/lib/store/reducers/external-link.reducer.mjs +6 -0
  221. package/esm2022/lib/store/reducers/file.reducer.mjs +118 -0
  222. package/esm2022/lib/store/reducers/index.mjs +2 -0
  223. package/esm2022/lib/store/reducers/invoice.reducer.mjs +29 -0
  224. package/esm2022/lib/store/reducers/member-card.reducer.mjs +33 -0
  225. package/esm2022/lib/store/reducers/member.reducer.mjs +21 -0
  226. package/esm2022/lib/store/reducers/news.reducer.mjs +96 -0
  227. package/esm2022/lib/store/reducers/public-form.reducer.mjs +21 -0
  228. package/esm2022/lib/store/reducers/public.reducer.mjs +109 -0
  229. package/esm2022/lib/store/reducers/reducer-helpers.mjs +61 -0
  230. package/esm2022/lib/store/reducers/team.reducer.mjs +77 -0
  231. package/esm2022/lib/store/reducers/token.reducer.mjs +21 -0
  232. package/esm2022/lib/store/reducers/user.reducer.mjs +18 -0
  233. package/esm2022/lib/store/selectors/auth.selectors.mjs +6 -0
  234. package/esm2022/lib/store/selectors/booking.selectors.mjs +15 -0
  235. package/esm2022/lib/store/selectors/calendar.selectors.mjs +18 -0
  236. package/esm2022/lib/store/selectors/club-info.selectors.mjs +5 -0
  237. package/esm2022/lib/store/selectors/constant.selectors.mjs +38 -0
  238. package/esm2022/lib/store/selectors/email.selectors.mjs +5 -0
  239. package/esm2022/lib/store/selectors/external-links.selectors.mjs +5 -0
  240. package/esm2022/lib/store/selectors/file.selectors.mjs +6 -0
  241. package/esm2022/lib/store/selectors/index.mjs +18 -0
  242. package/esm2022/lib/store/selectors/invoice.selectors.mjs +6 -0
  243. package/esm2022/lib/store/selectors/member-card.selectors.mjs +8 -0
  244. package/esm2022/lib/store/selectors/member.selectors.mjs +10 -0
  245. package/esm2022/lib/store/selectors/news.selectors.mjs +8 -0
  246. package/esm2022/lib/store/selectors/public-form.selectors.mjs +5 -0
  247. package/esm2022/lib/store/selectors/public.selectors.mjs +18 -0
  248. package/esm2022/lib/store/selectors/team.selectors.mjs +12 -0
  249. package/esm2022/lib/store/selectors/token.selectors.mjs +6 -0
  250. package/esm2022/lib/store/selectors/user.selectors.mjs +6 -0
  251. package/esm2022/lib/store/state/auth.state.mjs +5 -0
  252. package/esm2022/lib/store/state/booking.state.mjs +16 -0
  253. package/esm2022/lib/store/state/calendar.state.mjs +17 -0
  254. package/esm2022/lib/store/state/club-info.state.mjs +4 -0
  255. package/esm2022/lib/store/state/constant.state.mjs +21 -0
  256. package/esm2022/lib/store/state/data-access.state.mjs +2 -0
  257. package/esm2022/lib/store/state/email.state.mjs +7 -0
  258. package/esm2022/lib/store/state/external-link.state.mjs +4 -0
  259. package/esm2022/lib/store/state/file.state.mjs +5 -0
  260. package/esm2022/lib/store/state/index.mjs +19 -0
  261. package/esm2022/lib/store/state/invoice.state.mjs +5 -0
  262. package/esm2022/lib/store/state/member-card.state.mjs +7 -0
  263. package/esm2022/lib/store/state/member.state.mjs +10 -0
  264. package/esm2022/lib/store/state/news.state.mjs +7 -0
  265. package/esm2022/lib/store/state/public-form.state.mjs +5 -0
  266. package/esm2022/lib/store/state/public.state.mjs +17 -0
  267. package/esm2022/lib/store/state/team.state.mjs +11 -0
  268. package/esm2022/lib/store/state/token.state.mjs +5 -0
  269. package/esm2022/lib/store/state/user.state.mjs +5 -0
  270. package/fesm2022/myclub_se-data-access.mjs +10118 -0
  271. package/fesm2022/myclub_se-data-access.mjs.map +1 -0
  272. package/index.d.ts +1 -0
  273. package/lib/api-models/api-booking-calendar-application-time.d.ts +3 -0
  274. package/lib/api-models/api-booking-calendar-slot-session.d.ts +3 -0
  275. package/lib/api-models/api-booking-calendar.d.ts +2 -0
  276. package/lib/api-models/api-feature-flags.d.ts +5 -0
  277. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.d.ts +1 -1
  278. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.d.ts +1 -1
  279. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.d.ts +1 -1
  280. package/lib/api-models/index.d.ts +1 -0
  281. package/lib/authentication/authentication.interceptor.d.ts +12 -7
  282. package/lib/data-access.module.d.ts +3 -1
  283. package/lib/models/activity-settings.d.ts +3 -1
  284. package/lib/models/auth/auth.d.ts +3 -2
  285. package/lib/models/booking-calendar-application-time.d.ts +8 -3
  286. package/lib/models/booking-calendar-slot-session.d.ts +10 -5
  287. package/lib/models/booking-calendar-slot.d.ts +7 -6
  288. package/lib/models/booking-calendar.d.ts +4 -1
  289. package/lib/models/booking-settings.d.ts +5 -4
  290. package/lib/models/booking-slot-filter.d.ts +17 -0
  291. package/lib/models/directory.d.ts +1 -0
  292. package/lib/models/feature-flags.d.ts +7 -0
  293. package/lib/models/index.d.ts +2 -0
  294. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.d.ts +1 -1
  295. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.d.ts +1 -1
  296. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.d.ts +1 -1
  297. package/lib/services/activity.service.d.ts +55 -52
  298. package/lib/services/bookable.service.d.ts +9 -9
  299. package/lib/services/booking-calendar.service.d.ts +6 -23
  300. package/lib/services/constant.service.d.ts +5 -11
  301. package/lib/services/email.service.d.ts +0 -9
  302. package/lib/services/factories/feature-flags-factory.d.ts +3 -0
  303. package/lib/services/factories/index.d.ts +1 -0
  304. package/lib/services/feature-flags.service.d.ts +13 -0
  305. package/lib/services/index.d.ts +2 -0
  306. package/lib/services/member.service.d.ts +7 -3
  307. package/lib/services/storage.service.d.ts +20 -0
  308. package/lib/store/actions/activity.actions.d.ts +641 -0
  309. package/lib/store/actions/auth.actions.d.ts +83 -0
  310. package/lib/store/actions/booking.actions.d.ts +652 -0
  311. package/lib/store/actions/calendar.actions.d.ts +381 -0
  312. package/lib/store/actions/club-info.actions.d.ts +54 -0
  313. package/lib/store/actions/constant.actions.d.ts +249 -0
  314. package/lib/store/actions/email.actions.d.ts +57 -0
  315. package/lib/store/actions/external-link.actions.d.ts +22 -0
  316. package/lib/store/actions/file.actions.d.ts +169 -0
  317. package/lib/store/actions/index.d.ts +18 -0
  318. package/lib/store/actions/invoice.actions.d.ts +300 -0
  319. package/lib/store/actions/member-card.actions.d.ts +253 -0
  320. package/lib/store/actions/member.actions.d.ts +216 -0
  321. package/lib/store/actions/news.actions.d.ts +164 -0
  322. package/lib/store/actions/public-form.actions.d.ts +46 -0
  323. package/lib/store/actions/store.actions.d.ts +4 -0
  324. package/lib/store/actions/team.actions.d.ts +334 -0
  325. package/lib/store/actions/token.actions.d.ts +151 -0
  326. package/lib/store/actions/user.actions.d.ts +102 -0
  327. package/lib/store/effects/activity.effects.d.ts +152 -0
  328. package/lib/store/effects/auth.effects.d.ts +35 -0
  329. package/lib/store/effects/booking.effects.d.ts +196 -0
  330. package/lib/store/effects/calendar.effects.d.ts +129 -0
  331. package/lib/store/effects/club-info.effects.d.ts +24 -0
  332. package/lib/store/effects/constant.effects.d.ts +96 -0
  333. package/lib/store/effects/data-access.effects.d.ts +18 -0
  334. package/lib/store/effects/email.effects.d.ts +14 -0
  335. package/lib/store/effects/external-link.effects.d.ts +14 -0
  336. package/lib/store/effects/file.effects.d.ts +55 -0
  337. package/lib/store/effects/index.d.ts +1 -0
  338. package/lib/store/effects/invoice.effects.d.ts +80 -0
  339. package/lib/store/effects/member-card.effects.d.ts +69 -0
  340. package/lib/store/effects/member.effects.d.ts +58 -0
  341. package/lib/store/effects/mixins/extra-members-mixin.d.ts +10 -0
  342. package/lib/store/effects/news.effects.d.ts +49 -0
  343. package/lib/store/effects/public-form.effects.d.ts +19 -0
  344. package/lib/store/effects/team.effects.d.ts +80 -0
  345. package/lib/store/effects/token.effects.d.ts +66 -0
  346. package/lib/store/effects/user.effects.d.ts +36 -0
  347. package/lib/store/index.d.ts +7 -0
  348. package/lib/store/interfaces/activate-card-ticket.interface.d.ts +6 -0
  349. package/lib/store/interfaces/activate-user.interface.d.ts +4 -0
  350. package/lib/store/interfaces/calendar-activity-locations.interface.d.ts +7 -0
  351. package/lib/store/interfaces/calendar-activity-types.interface.d.ts +7 -0
  352. package/lib/store/interfaces/calendar-open-activity-result.interface.d.ts +8 -0
  353. package/lib/store/interfaces/calendar-public-open-activity-results.interface.d.ts +7 -0
  354. package/lib/store/interfaces/directory-result.interface.d.ts +5 -0
  355. package/lib/store/interfaces/email-settings.interface.d.ts +5 -0
  356. package/lib/store/interfaces/index.d.ts +19 -0
  357. package/lib/store/interfaces/list-result-interface.d.ts +13 -0
  358. package/lib/store/interfaces/location.interface.d.ts +7 -0
  359. package/lib/store/interfaces/member-calendar-event-result.interface.d.ts +8 -0
  360. package/lib/store/interfaces/member-card-deals.interface.d.ts +5 -0
  361. package/lib/store/interfaces/member-card-tickets.interface.d.ts +5 -0
  362. package/lib/store/interfaces/public-activate-card-ticket.interface.d.ts +6 -0
  363. package/lib/store/interfaces/remove-member-auth.interface.d.ts +4 -0
  364. package/lib/store/interfaces/remove-team-auth.interface.d.ts +4 -0
  365. package/lib/store/interfaces/retrieve-result.interface.d.ts +13 -0
  366. package/lib/store/interfaces/team-activity.interface.d.ts +9 -0
  367. package/lib/store/interfaces/team-calendar-event-result.interface.d.ts +8 -0
  368. package/lib/store/operators/ensure-activity.d.ts +4 -0
  369. package/lib/store/operators/ensure-auths.d.ts +13 -0
  370. package/lib/store/operators/ensure-calendar-events-loading-done.d.ts +19 -0
  371. package/lib/store/operators/ensure-constants.d.ts +12 -0
  372. package/lib/store/operators/ensure-current-auth.d.ts +12 -0
  373. package/lib/store/operators/ensure-current-user.d.ts +11 -0
  374. package/lib/store/operators/ensure-loading-done.d.ts +20 -0
  375. package/lib/store/operators/ensure-open-activities-loading-done.d.ts +3 -0
  376. package/lib/store/operators/ensure-public-open-activities-loading-done.d.ts +3 -0
  377. package/lib/store/operators/ensure-updated-data.d.ts +4 -0
  378. package/lib/store/operators/index.d.ts +10 -0
  379. package/lib/store/reducers/auth.reducer.d.ts +2 -0
  380. package/lib/store/reducers/booking.reducers.d.ts +2 -0
  381. package/lib/store/reducers/calendar.reducer.d.ts +2 -0
  382. package/lib/store/reducers/club-info.reducer.d.ts +2 -0
  383. package/lib/store/reducers/constant.reducer.d.ts +2 -0
  384. package/lib/store/reducers/data-access.reducer.d.ts +3 -0
  385. package/lib/store/reducers/email.reducer.d.ts +2 -0
  386. package/lib/store/reducers/external-link.reducer.d.ts +2 -0
  387. package/lib/store/reducers/file.reducer.d.ts +2 -0
  388. package/lib/store/reducers/index.d.ts +1 -0
  389. package/lib/store/reducers/invoice.reducer.d.ts +2 -0
  390. package/lib/store/reducers/member-card.reducer.d.ts +2 -0
  391. package/lib/store/reducers/member.reducer.d.ts +2 -0
  392. package/lib/store/reducers/news.reducer.d.ts +2 -0
  393. package/lib/store/reducers/public-form.reducer.d.ts +2 -0
  394. package/lib/store/reducers/public.reducer.d.ts +2 -0
  395. package/lib/store/reducers/reducer-helpers.d.ts +8 -0
  396. package/lib/store/reducers/team.reducer.d.ts +2 -0
  397. package/lib/store/reducers/token.reducer.d.ts +2 -0
  398. package/lib/store/reducers/user.reducer.d.ts +2 -0
  399. package/lib/store/selectors/auth.selectors.d.ts +4 -0
  400. package/lib/store/selectors/booking.selectors.d.ts +13 -0
  401. package/lib/store/selectors/calendar.selectors.d.ts +16 -0
  402. package/lib/store/selectors/club-info.selectors.d.ts +3 -0
  403. package/lib/store/selectors/constant.selectors.d.ts +19 -0
  404. package/lib/store/selectors/email.selectors.d.ts +3 -0
  405. package/lib/store/selectors/external-links.selectors.d.ts +3 -0
  406. package/lib/store/selectors/file.selectors.d.ts +4 -0
  407. package/lib/store/selectors/index.d.ts +17 -0
  408. package/lib/store/selectors/invoice.selectors.d.ts +4 -0
  409. package/lib/store/selectors/member-card.selectors.d.ts +6 -0
  410. package/lib/store/selectors/member.selectors.d.ts +8 -0
  411. package/lib/store/selectors/news.selectors.d.ts +6 -0
  412. package/lib/store/selectors/public-form.selectors.d.ts +3 -0
  413. package/lib/store/selectors/public.selectors.d.ts +16 -0
  414. package/lib/store/selectors/team.selectors.d.ts +10 -0
  415. package/lib/store/selectors/token.selectors.d.ts +4 -0
  416. package/lib/store/selectors/user.selectors.d.ts +4 -0
  417. package/lib/store/state/auth.state.d.ts +7 -0
  418. package/lib/store/state/booking.state.d.ts +16 -0
  419. package/lib/store/state/calendar.state.d.ts +19 -0
  420. package/lib/store/state/club-info.state.d.ts +6 -0
  421. package/lib/store/state/constant.state.d.ts +23 -0
  422. package/lib/store/state/data-access.state.d.ts +36 -0
  423. package/lib/store/state/email.state.d.ts +5 -0
  424. package/lib/store/state/external-link.state.d.ts +6 -0
  425. package/lib/store/state/file.state.d.ts +6 -0
  426. package/lib/store/state/index.d.ts +18 -0
  427. package/lib/store/state/invoice.state.d.ts +7 -0
  428. package/lib/store/state/member-card.state.d.ts +9 -0
  429. package/lib/store/state/member.state.d.ts +11 -0
  430. package/lib/store/state/news.state.d.ts +9 -0
  431. package/lib/store/state/public-form.state.d.ts +7 -0
  432. package/lib/store/state/public.state.d.ts +19 -0
  433. package/lib/store/state/team.state.d.ts +13 -0
  434. package/lib/store/state/token.state.d.ts +7 -0
  435. package/lib/store/state/user.state.d.ts +7 -0
  436. package/lib/types/attribute-type.d.ts +1 -1
  437. package/lib/types/booking-calendar-slot-reserved-time-position.d.ts +1 -1
  438. package/lib/types/booking-calendar-slot-type.d.ts +1 -1
  439. package/lib/types/contact-type.d.ts +1 -1
  440. package/lib/types/grant-type.d.ts +1 -1
  441. package/lib/types/payment-attempt-status-type.d.ts +1 -1
  442. package/lib/types/payment-attempt-type.d.ts +1 -1
  443. package/lib/types/sex-type.d.ts +1 -1
  444. package/package.json +13 -18
  445. package/esm2020/lib/api-models/api-invoice/api-payment-attempt-create.mjs +0 -8
  446. package/esm2020/lib/api-models/index.mjs +0 -56
  447. package/esm2020/lib/authentication/authentication.interceptor.mjs +0 -66
  448. package/esm2020/lib/authentication/authentication.service.mjs +0 -106
  449. package/esm2020/lib/authentication/guards/authenticated.guard.mjs +0 -36
  450. package/esm2020/lib/authentication/guards/handle-grant-token.guard.mjs +0 -29
  451. package/esm2020/lib/data-access.module.mjs +0 -30
  452. package/esm2020/lib/maintenance/maintenance.interceptor.mjs +0 -29
  453. package/esm2020/lib/models/activity-extra-member.mjs +0 -12
  454. package/esm2020/lib/models/activity-invite.mjs +0 -20
  455. package/esm2020/lib/models/activity-location-group.mjs +0 -21
  456. package/esm2020/lib/models/activity-location-part.mjs +0 -14
  457. package/esm2020/lib/models/activity-location-tag.mjs +0 -17
  458. package/esm2020/lib/models/activity-location.mjs +0 -36
  459. package/esm2020/lib/models/activity-participant.mjs +0 -12
  460. package/esm2020/lib/models/activity-settings.mjs +0 -14
  461. package/esm2020/lib/models/activity-type.mjs +0 -26
  462. package/esm2020/lib/models/activity.mjs +0 -92
  463. package/esm2020/lib/models/auth/auth-member.mjs +0 -10
  464. package/esm2020/lib/models/auth/auth-team.mjs +0 -9
  465. package/esm2020/lib/models/auth/auth.mjs +0 -15
  466. package/esm2020/lib/models/bookable-group.mjs +0 -21
  467. package/esm2020/lib/models/bookable-item.mjs +0 -39
  468. package/esm2020/lib/models/bookable-part.mjs +0 -14
  469. package/esm2020/lib/models/bookable-tag.mjs +0 -17
  470. package/esm2020/lib/models/booking-calendar-application-time.mjs +0 -52
  471. package/esm2020/lib/models/booking-calendar-slot-session.mjs +0 -54
  472. package/esm2020/lib/models/booking-calendar-slot.mjs +0 -53
  473. package/esm2020/lib/models/booking-calendar.mjs +0 -54
  474. package/esm2020/lib/models/booking-settings.mjs +0 -22
  475. package/esm2020/lib/models/calendar-event.mjs +0 -20
  476. package/esm2020/lib/models/calendar.mjs +0 -10
  477. package/esm2020/lib/models/card/card-deal.mjs +0 -10
  478. package/esm2020/lib/models/card/card-logo-urls.mjs +0 -13
  479. package/esm2020/lib/models/card/card-logo.mjs +0 -8
  480. package/esm2020/lib/models/card/card-member-ticket.mjs +0 -11
  481. package/esm2020/lib/models/card/card-theme.mjs +0 -10
  482. package/esm2020/lib/models/card/card-ticket-location.mjs +0 -9
  483. package/esm2020/lib/models/card/card-ticket.mjs +0 -21
  484. package/esm2020/lib/models/card/home-team.mjs +0 -8
  485. package/esm2020/lib/models/card/member-card.mjs +0 -14
  486. package/esm2020/lib/models/card/search-member-card.mjs +0 -9
  487. package/esm2020/lib/models/club-image.mjs +0 -18
  488. package/esm2020/lib/models/collection.mjs +0 -15
  489. package/esm2020/lib/models/contact.mjs +0 -46
  490. package/esm2020/lib/models/directory.mjs +0 -26
  491. package/esm2020/lib/models/email.mjs +0 -8
  492. package/esm2020/lib/models/event.mjs +0 -26
  493. package/esm2020/lib/models/file-object.mjs +0 -14
  494. package/esm2020/lib/models/general-image.mjs +0 -8
  495. package/esm2020/lib/models/group-role.mjs +0 -11
  496. package/esm2020/lib/models/image-urls.mjs +0 -10
  497. package/esm2020/lib/models/index.mjs +0 -62
  498. package/esm2020/lib/models/invoice/member-fee.mjs +0 -9
  499. package/esm2020/lib/models/invoice/member-invoice-row.mjs +0 -18
  500. package/esm2020/lib/models/invoice/member-invoice.mjs +0 -25
  501. package/esm2020/lib/models/invoice/payment-attempt.mjs +0 -13
  502. package/esm2020/lib/models/invoice/payment-types/credit-card.mjs +0 -16
  503. package/esm2020/lib/models/invoice/payment-types/giro.mjs +0 -11
  504. package/esm2020/lib/models/invoice/payment-types/swish.mjs +0 -18
  505. package/esm2020/lib/models/invoice/payment-types/zimpler.mjs +0 -12
  506. package/esm2020/lib/models/invoice/search-member-invoice.mjs +0 -17
  507. package/esm2020/lib/models/invoice/unpaid-member-invoice.mjs +0 -9
  508. package/esm2020/lib/models/member/member-attribute.mjs +0 -33
  509. package/esm2020/lib/models/member/member-contact.mjs +0 -21
  510. package/esm2020/lib/models/member/member-function.mjs +0 -19
  511. package/esm2020/lib/models/member/member-validation-settings.mjs +0 -13
  512. package/esm2020/lib/models/member/member.mjs +0 -75
  513. package/esm2020/lib/models/member/other-member.mjs +0 -13
  514. package/esm2020/lib/models/member/search-member.mjs +0 -20
  515. package/esm2020/lib/models/member-activity-invite.mjs +0 -31
  516. package/esm2020/lib/models/member-public-form-field-option.mjs +0 -9
  517. package/esm2020/lib/models/member-public-form-field.mjs +0 -16
  518. package/esm2020/lib/models/member-public-form.mjs +0 -30
  519. package/esm2020/lib/models/member-team-through.mjs +0 -14
  520. package/esm2020/lib/models/member-team.mjs +0 -13
  521. package/esm2020/lib/models/member-type.mjs +0 -8
  522. package/esm2020/lib/models/news.mjs +0 -47
  523. package/esm2020/lib/models/open-activity.mjs +0 -62
  524. package/esm2020/lib/models/optional-fee.mjs +0 -11
  525. package/esm2020/lib/models/overbooked-bookable-item.mjs +0 -10
  526. package/esm2020/lib/models/overbooked-location.mjs +0 -10
  527. package/esm2020/lib/models/partner.mjs +0 -9
  528. package/esm2020/lib/models/public-authentication.mjs +0 -7
  529. package/esm2020/lib/models/registration-qr-code.mjs +0 -12
  530. package/esm2020/lib/models/search-club.mjs +0 -14
  531. package/esm2020/lib/models/search-team.mjs +0 -18
  532. package/esm2020/lib/models/token.mjs +0 -8
  533. package/esm2020/lib/models/user-notification.mjs +0 -13
  534. package/esm2020/lib/models/user.mjs +0 -31
  535. package/esm2020/lib/services/activity.service.mjs +0 -470
  536. package/esm2020/lib/services/api.service.mjs +0 -106
  537. package/esm2020/lib/services/auth.service.mjs +0 -61
  538. package/esm2020/lib/services/bookable.service.mjs +0 -278
  539. package/esm2020/lib/services/booking-calendar.service.mjs +0 -794
  540. package/esm2020/lib/services/club.service.mjs +0 -34
  541. package/esm2020/lib/services/constant.service.mjs +0 -131
  542. package/esm2020/lib/services/email.service.mjs +0 -53
  543. package/esm2020/lib/services/external-link.service.mjs +0 -24
  544. package/esm2020/lib/services/factories/activity-settings-factory.mjs +0 -3
  545. package/esm2020/lib/services/factories/index.mjs +0 -86
  546. package/esm2020/lib/services/factories/member-public-form-factory.mjs +0 -26
  547. package/esm2020/lib/services/factories/payment-attempt-factory.mjs +0 -23
  548. package/esm2020/lib/services/file.service.mjs +0 -64
  549. package/esm2020/lib/services/index.mjs +0 -22
  550. package/esm2020/lib/services/invoice/invoice.service.mjs +0 -41
  551. package/esm2020/lib/services/invoice/payment-attempt.service.mjs +0 -51
  552. package/esm2020/lib/services/maintenance-mode.service.mjs +0 -21
  553. package/esm2020/lib/services/member-card.service.mjs +0 -103
  554. package/esm2020/lib/services/member-public-form.service.mjs +0 -32
  555. package/esm2020/lib/services/member.service.mjs +0 -63
  556. package/esm2020/lib/services/news.service.mjs +0 -102
  557. package/esm2020/lib/services/registration-qr-code.service.mjs +0 -36
  558. package/esm2020/lib/services/section.service.mjs +0 -23
  559. package/esm2020/lib/services/team.service.mjs +0 -88
  560. package/esm2020/lib/services/token.service.mjs +0 -57
  561. package/esm2020/lib/services/user-notification.service.mjs +0 -23
  562. package/esm2020/lib/services/user.service.mjs +0 -68
  563. package/fesm2015/myclub_se-data-access.mjs +0 -4835
  564. package/fesm2015/myclub_se-data-access.mjs.map +0 -1
  565. package/fesm2020/myclub_se-data-access.mjs +0 -4831
  566. package/fesm2020/myclub_se-data-access.mjs.map +0 -1
  567. /package/{esm2020 → esm2022}/lib/api-models/api-activity-extra-member.mjs +0 -0
  568. /package/{esm2020 → esm2022}/lib/api-models/api-activity-invite.mjs +0 -0
  569. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-group.mjs +0 -0
  570. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-part.mjs +0 -0
  571. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-tag.mjs +0 -0
  572. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location.mjs +0 -0
  573. /package/{esm2020 → esm2022}/lib/api-models/api-activity-participant.mjs +0 -0
  574. /package/{esm2020 → esm2022}/lib/api-models/api-activity-settings.mjs +0 -0
  575. /package/{esm2020 → esm2022}/lib/api-models/api-activity-type.mjs +0 -0
  576. /package/{esm2020 → esm2022}/lib/api-models/api-activity.mjs +0 -0
  577. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-member.mjs +0 -0
  578. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-section.mjs +0 -0
  579. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team-section.mjs +0 -0
  580. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team.mjs +0 -0
  581. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth.mjs +0 -0
  582. /package/{esm2020 → esm2022}/lib/api-models/api-auth/index.mjs +0 -0
  583. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-group.mjs +0 -0
  584. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-item.mjs +0 -0
  585. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-part.mjs +0 -0
  586. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-tag.mjs +0 -0
  587. /package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot.mjs +0 -0
  588. /package/{esm2020 → esm2022}/lib/api-models/api-booking-settings.mjs +0 -0
  589. /package/{esm2020 → esm2022}/lib/api-models/api-calendar-event.mjs +0 -0
  590. /package/{esm2020 → esm2022}/lib/api-models/api-calendar.mjs +0 -0
  591. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-deal.mjs +0 -0
  592. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo-urls.mjs +0 -0
  593. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo.mjs +0 -0
  594. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-member-ticket.mjs +0 -0
  595. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-theme.mjs +0 -0
  596. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket-location.mjs +0 -0
  597. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket.mjs +0 -0
  598. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card.mjs +0 -0
  599. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-home-team.mjs +0 -0
  600. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-member-card.mjs +0 -0
  601. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-search-member-card.mjs +0 -0
  602. /package/{esm2020 → esm2022}/lib/api-models/api-card/index.mjs +0 -0
  603. /package/{esm2020 → esm2022}/lib/api-models/api-club-image.mjs +0 -0
  604. /package/{esm2020 → esm2022}/lib/api-models/api-club-section.mjs +0 -0
  605. /package/{esm2020 → esm2022}/lib/api-models/api-club.mjs +0 -0
  606. /package/{esm2020 → esm2022}/lib/api-models/api-collection.mjs +0 -0
  607. /package/{esm2020 → esm2022}/lib/api-models/api-directory.mjs +0 -0
  608. /package/{esm2020 → esm2022}/lib/api-models/api-event.mjs +0 -0
  609. /package/{esm2020 → esm2022}/lib/api-models/api-external-link.mjs +0 -0
  610. /package/{esm2020 → esm2022}/lib/api-models/api-file-object.mjs +0 -0
  611. /package/{esm2020 → esm2022}/lib/api-models/api-general-image.mjs +0 -0
  612. /package/{esm2020 → esm2022}/lib/api-models/api-group-role.mjs +0 -0
  613. /package/{esm2020 → esm2022}/lib/api-models/api-image-urls.mjs +0 -0
  614. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-credit-card.mjs +0 -0
  615. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-giro.mjs +0 -0
  616. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-swish.mjs +0 -0
  617. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-zimpler.mjs +0 -0
  618. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/index.mjs +0 -0
  619. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-fee.mjs +0 -0
  620. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice-row.mjs +0 -0
  621. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice.mjs +0 -0
  622. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-payment-attempt.mjs +0 -0
  623. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-search-member-invoice.mjs +0 -0
  624. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-swish-qr-code.mjs +0 -0
  625. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-unpaid-member-invoice.mjs +0 -0
  626. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/index.mjs +0 -0
  627. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.mjs +0 -0
  628. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.mjs +0 -0
  629. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.mjs +0 -0
  630. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/index.mjs +0 -0
  631. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-contact.mjs +0 -0
  632. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-attribute.mjs +0 -0
  633. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-contact.mjs +0 -0
  634. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-function.mjs +0 -0
  635. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-validation-settings.mjs +0 -0
  636. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member.mjs +0 -0
  637. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member-field.mjs +0 -0
  638. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member.mjs +0 -0
  639. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-search-member.mjs +0 -0
  640. /package/{esm2020 → esm2022}/lib/api-models/api-member/index.mjs +0 -0
  641. /package/{esm2020 → esm2022}/lib/api-models/api-member-activity-invite.mjs +0 -0
  642. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field-option.mjs +0 -0
  643. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field.mjs +0 -0
  644. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form.mjs +0 -0
  645. /package/{esm2020 → esm2022}/lib/api-models/api-member-team-through.mjs +0 -0
  646. /package/{esm2020 → esm2022}/lib/api-models/api-member-team.mjs +0 -0
  647. /package/{esm2020 → esm2022}/lib/api-models/api-member-type.mjs +0 -0
  648. /package/{esm2020 → esm2022}/lib/api-models/api-news.mjs +0 -0
  649. /package/{esm2020 → esm2022}/lib/api-models/api-open-activity.mjs +0 -0
  650. /package/{esm2020 → esm2022}/lib/api-models/api-optional-fee.mjs +0 -0
  651. /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-bookable-item.mjs +0 -0
  652. /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-location.mjs +0 -0
  653. /package/{esm2020 → esm2022}/lib/api-models/api-partner.mjs +0 -0
  654. /package/{esm2020 → esm2022}/lib/api-models/api-public-token.mjs +0 -0
  655. /package/{esm2020 → esm2022}/lib/api-models/api-registration-qr-code.mjs +0 -0
  656. /package/{esm2020 → esm2022}/lib/api-models/api-search-club.mjs +0 -0
  657. /package/{esm2020 → esm2022}/lib/api-models/api-search-team.mjs +0 -0
  658. /package/{esm2020 → esm2022}/lib/api-models/api-section.mjs +0 -0
  659. /package/{esm2020 → esm2022}/lib/api-models/api-token.mjs +0 -0
  660. /package/{esm2020 → esm2022}/lib/api-models/api-user-notification.mjs +0 -0
  661. /package/{esm2020 → esm2022}/lib/api-models/api-user.mjs +0 -0
  662. /package/{esm2020 → esm2022}/lib/authentication/authentication.config.mjs +0 -0
  663. /package/{esm2020 → esm2022}/lib/authentication/index.mjs +0 -0
  664. /package/{esm2020 → esm2022}/lib/interfaces/email-recipient.interface.mjs +0 -0
  665. /package/{esm2020 → esm2022}/lib/interfaces/index.mjs +0 -0
  666. /package/{esm2020 → esm2022}/lib/interfaces/new-account.interface.mjs +0 -0
  667. /package/{esm2020 → esm2022}/lib/interfaces/open-activity-search-params.interface.mjs +0 -0
  668. /package/{esm2020 → esm2022}/lib/interfaces/option.interface.mjs +0 -0
  669. /package/{esm2020 → esm2022}/lib/interfaces/sms-recipient.interface.mjs +0 -0
  670. /package/{esm2020 → esm2022}/lib/maintenance/index.mjs +0 -0
  671. /package/{esm2020 → esm2022}/lib/models/auth/index.mjs +0 -0
  672. /package/{esm2020 → esm2022}/lib/models/card/index.mjs +0 -0
  673. /package/{esm2020 → esm2022}/lib/models/invoice/index.mjs +0 -0
  674. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/index.mjs +0 -0
  675. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.mjs +0 -0
  676. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.mjs +0 -0
  677. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.mjs +0 -0
  678. /package/{esm2020 → esm2022}/lib/models/invoice/payment-types/index.mjs +0 -0
  679. /package/{esm2020 → esm2022}/lib/models/member/index.mjs +0 -0
  680. /package/{esm2020 → esm2022}/lib/models/role.mjs +0 -0
  681. /package/{esm2020 → esm2022}/lib/services/factories/activity-extra-member-factory.mjs +0 -0
  682. /package/{esm2020 → esm2022}/lib/services/factories/activity-factory.mjs +0 -0
  683. /package/{esm2020 → esm2022}/lib/services/factories/activity-invite-factory.mjs +0 -0
  684. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-factory.mjs +0 -0
  685. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-group-factory.mjs +0 -0
  686. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-part-factory.mjs +0 -0
  687. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-tag-factory.mjs +0 -0
  688. /package/{esm2020 → esm2022}/lib/services/factories/activity-participant-factory.mjs +0 -0
  689. /package/{esm2020 → esm2022}/lib/services/factories/activity-type-factory.mjs +0 -0
  690. /package/{esm2020 → esm2022}/lib/services/factories/auth-factory.mjs +0 -0
  691. /package/{esm2020 → esm2022}/lib/services/factories/auth-member-factory.mjs +0 -0
  692. /package/{esm2020 → esm2022}/lib/services/factories/auth-section-factory.mjs +0 -0
  693. /package/{esm2020 → esm2022}/lib/services/factories/auth-team-factory.mjs +0 -0
  694. /package/{esm2020 → esm2022}/lib/services/factories/auth-team-section-factory.mjs +0 -0
  695. /package/{esm2020 → esm2022}/lib/services/factories/bookable-group-factory.mjs +0 -0
  696. /package/{esm2020 → esm2022}/lib/services/factories/bookable-item-factory.mjs +0 -0
  697. /package/{esm2020 → esm2022}/lib/services/factories/bookable-part-factory.mjs +0 -0
  698. /package/{esm2020 → esm2022}/lib/services/factories/bookable-tag-factory.mjs +0 -0
  699. /package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-factory.mjs +0 -0
  700. /package/{esm2020 → esm2022}/lib/services/factories/booking-settings-factory.mjs +0 -0
  701. /package/{esm2020 → esm2022}/lib/services/factories/card-deal-factory.mjs +0 -0
  702. /package/{esm2020 → esm2022}/lib/services/factories/card-factory.mjs +0 -0
  703. /package/{esm2020 → esm2022}/lib/services/factories/card-logo-factory.mjs +0 -0
  704. /package/{esm2020 → esm2022}/lib/services/factories/card-logo-urls-factory.mjs +0 -0
  705. /package/{esm2020 → esm2022}/lib/services/factories/card-member-ticket-factory.mjs +0 -0
  706. /package/{esm2020 → esm2022}/lib/services/factories/card-theme-factory.mjs +0 -0
  707. /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-factory.mjs +0 -0
  708. /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-location-factory.mjs +0 -0
  709. /package/{esm2020 → esm2022}/lib/services/factories/club-factory.mjs +0 -0
  710. /package/{esm2020 → esm2022}/lib/services/factories/club-image-factory.mjs +0 -0
  711. /package/{esm2020 → esm2022}/lib/services/factories/club-section-factory.mjs +0 -0
  712. /package/{esm2020 → esm2022}/lib/services/factories/contact-factory.mjs +0 -0
  713. /package/{esm2020 → esm2022}/lib/services/factories/credit-card-factory.mjs +0 -0
  714. /package/{esm2020 → esm2022}/lib/services/factories/directory-factory.mjs +0 -0
  715. /package/{esm2020 → esm2022}/lib/services/factories/event-factory.mjs +0 -0
  716. /package/{esm2020 → esm2022}/lib/services/factories/external-link-factory.mjs +0 -0
  717. /package/{esm2020 → esm2022}/lib/services/factories/file-factory.mjs +0 -0
  718. /package/{esm2020 → esm2022}/lib/services/factories/general-image-factory.mjs +0 -0
  719. /package/{esm2020 → esm2022}/lib/services/factories/giro-factory.mjs +0 -0
  720. /package/{esm2020 → esm2022}/lib/services/factories/group-role-factory.mjs +0 -0
  721. /package/{esm2020 → esm2022}/lib/services/factories/home-team-factory.mjs +0 -0
  722. /package/{esm2020 → esm2022}/lib/services/factories/image-urls-factory.mjs +0 -0
  723. /package/{esm2020 → esm2022}/lib/services/factories/member-attribute-factory.mjs +0 -0
  724. /package/{esm2020 → esm2022}/lib/services/factories/member-card-factory.mjs +0 -0
  725. /package/{esm2020 → esm2022}/lib/services/factories/member-contact-factory.mjs +0 -0
  726. /package/{esm2020 → esm2022}/lib/services/factories/member-factory.mjs +0 -0
  727. /package/{esm2020 → esm2022}/lib/services/factories/member-fee-factory.mjs +0 -0
  728. /package/{esm2020 → esm2022}/lib/services/factories/member-function-factory.mjs +0 -0
  729. /package/{esm2020 → esm2022}/lib/services/factories/member-invite-factory.mjs +0 -0
  730. /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-factory.mjs +0 -0
  731. /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-row-factory.mjs +0 -0
  732. /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-factory.mjs +0 -0
  733. /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-option-factory.mjs +0 -0
  734. /package/{esm2020 → esm2022}/lib/services/factories/member-team-factory.mjs +0 -0
  735. /package/{esm2020 → esm2022}/lib/services/factories/member-team-through-factory.mjs +0 -0
  736. /package/{esm2020 → esm2022}/lib/services/factories/member-type-factory.mjs +0 -0
  737. /package/{esm2020 → esm2022}/lib/services/factories/member-validation-settings-factory.mjs +0 -0
  738. /package/{esm2020 → esm2022}/lib/services/factories/news-factory.mjs +0 -0
  739. /package/{esm2020 → esm2022}/lib/services/factories/open-activity-factory.mjs +0 -0
  740. /package/{esm2020 → esm2022}/lib/services/factories/optional-fee-factory.mjs +0 -0
  741. /package/{esm2020 → esm2022}/lib/services/factories/other-member-factory.mjs +0 -0
  742. /package/{esm2020 → esm2022}/lib/services/factories/other-member-field-factory.mjs +0 -0
  743. /package/{esm2020 → esm2022}/lib/services/factories/overbooked-bookable-item-factory.mjs +0 -0
  744. /package/{esm2020 → esm2022}/lib/services/factories/overbooked-location-factory.mjs +0 -0
  745. /package/{esm2020 → esm2022}/lib/services/factories/partner-factory.mjs +0 -0
  746. /package/{esm2020 → esm2022}/lib/services/factories/public-authentication-factory.mjs +0 -0
  747. /package/{esm2020 → esm2022}/lib/services/factories/registration-qr-code-factory.mjs +0 -0
  748. /package/{esm2020 → esm2022}/lib/services/factories/search-club-factory.mjs +0 -0
  749. /package/{esm2020 → esm2022}/lib/services/factories/search-member-card-factory.mjs +0 -0
  750. /package/{esm2020 → esm2022}/lib/services/factories/search-member-factory.mjs +0 -0
  751. /package/{esm2020 → esm2022}/lib/services/factories/search-member-invoice-factory.mjs +0 -0
  752. /package/{esm2020 → esm2022}/lib/services/factories/search-member-team-through-factory.mjs +0 -0
  753. /package/{esm2020 → esm2022}/lib/services/factories/search-team-factory.mjs +0 -0
  754. /package/{esm2020 → esm2022}/lib/services/factories/section-factory.mjs +0 -0
  755. /package/{esm2020 → esm2022}/lib/services/factories/swish-factory.mjs +0 -0
  756. /package/{esm2020 → esm2022}/lib/services/factories/token-factory.mjs +0 -0
  757. /package/{esm2020 → esm2022}/lib/services/factories/unpaid-invoice-factory.mjs +0 -0
  758. /package/{esm2020 → esm2022}/lib/services/factories/user-factory.mjs +0 -0
  759. /package/{esm2020 → esm2022}/lib/services/factories/user-notification-factory.mjs +0 -0
  760. /package/{esm2020 → esm2022}/lib/services/factories/zimpler-factory.mjs +0 -0
  761. /package/{esm2020 → esm2022}/lib/services/invoice/index.mjs +0 -0
  762. /package/{esm2020 → esm2022}/lib/types/attribute-type.mjs +0 -0
  763. /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-reserved-time-position.mjs +0 -0
  764. /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-type.mjs +0 -0
  765. /package/{esm2020 → esm2022}/lib/types/contact-type.mjs +0 -0
  766. /package/{esm2020 → esm2022}/lib/types/grant-type.mjs +0 -0
  767. /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
  768. /package/{esm2020 → esm2022}/lib/types/payment-attempt-status-type.mjs +0 -0
  769. /package/{esm2020 → esm2022}/lib/types/payment-attempt-type.mjs +0 -0
  770. /package/{esm2020 → esm2022}/lib/types/sex-type.mjs +0 -0
  771. /package/{esm2020 → esm2022}/myclub_se-data-access.mjs +0 -0
@@ -0,0 +1,108 @@
1
+ import { Inject, Injectable, InjectionToken } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { Collection, Role } from '../models';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ export const DOMAIN = new InjectionToken('domain');
7
+ const API_PATH = 'api/v3/';
8
+ const ROLE_PATH = {
9
+ [Role.ClubAdmin]: 'club-admin/',
10
+ [Role.SectionAdmin]: 'section-admin/',
11
+ [Role.TeamAdmin]: 'team-admin/',
12
+ [Role.MemberAdmin]: 'member-admin/',
13
+ [Role.Public]: 'public/',
14
+ [Role.None]: ''
15
+ };
16
+ export class ApiService {
17
+ http;
18
+ domain;
19
+ constructor(http, domain) {
20
+ this.http = http;
21
+ this.domain = domain;
22
+ }
23
+ deleteResource(role, path, pathParams = {}, options = {}) {
24
+ return this.delete(role, path, pathParams, options)
25
+ .pipe(map((response) => response.status === 204));
26
+ }
27
+ deleteResourceWithBody(role, path, pathParams = {}, options = {}) {
28
+ return this.http.delete(this.url(this.path(role, path, pathParams)), { ...options, observe: 'response' }).pipe(map((response) => response.status === 204));
29
+ }
30
+ getCollection(factory, role, path, pathParams = {}, options = {}) {
31
+ return this.get(role, path, pathParams, options).pipe(map((apiCollection) => {
32
+ const resources = apiCollection.results.map((resource) => factory(resource));
33
+ return new Collection(apiCollection.count, apiCollection.next, apiCollection.previous, resources);
34
+ }));
35
+ }
36
+ getResource(factory, role, path, pathParams = {}, options = {}) {
37
+ return this.get(role, path, pathParams, options).pipe(map((apiResource) => factory(apiResource)));
38
+ }
39
+ postFormData(factory, role, path, pathParams = {}, data) {
40
+ return this.http.post(this.url(this.path(role, path, pathParams)), this.getFormData(data))
41
+ .pipe(map((apiResource) => factory(apiResource)));
42
+ }
43
+ postResource(factory, role, path, pathParams = {}, data, options = {}) {
44
+ return this.post(role, path, pathParams, data, options).pipe(map((apiResource) => factory(apiResource)));
45
+ }
46
+ postResourceNoResponse(role, path, pathParams = {}, data, options = {}) {
47
+ return this.postEmptyResponse(role, path, pathParams, data, options).pipe(map((response) => response.status === 200 || response.status === 201 || response.status === 204));
48
+ }
49
+ updateResource(responseFactory, role, path, pathParams = {}, data, options = {}) {
50
+ return this.patch(role, path, pathParams, data, options).pipe(map((apiResource) => responseFactory(apiResource)));
51
+ }
52
+ updateResourceNoResponse(role, path, pathParams = {}, data, options = {}) {
53
+ return this.patchEmptyResponse(role, path, pathParams, data, options).pipe(map((response) => response.status === 200 || response.status === 204));
54
+ }
55
+ delete(role, path, pathParams, options) {
56
+ if (options.body) {
57
+ return this.http.request('delete', this.url(this.path(role, path, pathParams)), options);
58
+ }
59
+ return this.http.delete(this.url(this.path(role, path, pathParams)), { ...options, observe: 'response' });
60
+ }
61
+ get(role, path, pathParams, options) {
62
+ return this.http.get(this.url(this.path(role, path, pathParams)), options);
63
+ }
64
+ getFormData(data) {
65
+ if (data instanceof FormData) {
66
+ return data;
67
+ }
68
+ const formData = new FormData();
69
+ for (const [key, value] of Object.entries(data)) {
70
+ formData.append(key, value);
71
+ }
72
+ return formData;
73
+ }
74
+ patch(role, path, pathParams, data, options) {
75
+ return this.http.patch(this.url(this.path(role, path, pathParams)), data, options);
76
+ }
77
+ patchEmptyResponse(role, path, pathParams, data, options) {
78
+ return this.http.patch(this.url(this.path(role, path, pathParams)), data, { ...options, observe: 'response' });
79
+ }
80
+ path(role, path, params) {
81
+ for (const [key, value] of Object.entries(params)) {
82
+ const regexp = new RegExp(':' + key, 'g');
83
+ path = path.replace(regexp, value);
84
+ }
85
+ return ROLE_PATH[role] + path;
86
+ }
87
+ post(role, path, pathParams, data, options) {
88
+ return this.http.post(this.url(this.path(role, path, pathParams)), data, options);
89
+ }
90
+ postEmptyResponse(role, path, pathParams, data, options) {
91
+ return this.http.post(this.url(this.path(role, path, pathParams)), data, { ...options, observe: 'response' });
92
+ }
93
+ url(path) {
94
+ return this.domain + API_PATH + path;
95
+ }
96
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiService, deps: [{ token: i1.HttpClient }, { token: DOMAIN }], target: i0.ɵɵFactoryTarget.Injectable });
97
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiService, providedIn: 'root' });
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiService, decorators: [{
100
+ type: Injectable,
101
+ args: [{
102
+ providedIn: 'root'
103
+ }]
104
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
105
+ type: Inject,
106
+ args: [DOMAIN]
107
+ }] }] });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3NlcnZpY2VzL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7OztBQUUzQyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQVMsUUFBUSxDQUFDLENBQUM7QUFFM0QsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDO0FBRTNCLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWE7SUFDL0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsZ0JBQWdCO0lBQ3JDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWE7SUFDL0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsZUFBZTtJQUNuQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTO0lBQ3hCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7Q0FDaEIsQ0FBQztBQWtCRixNQUFNLE9BQU8sVUFBVTtJQUVYO0lBQ2dCO0lBRjFCLFlBQ1UsSUFBZ0IsRUFDQSxNQUFjO1FBRDlCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDQSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRXhDLENBQUM7SUFFRCxjQUFjLENBQ1osSUFBVSxFQUNWLElBQVksRUFDWixhQUF5QixFQUFFLEVBQzNCLFVBQW1CLEVBQUU7UUFFckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFD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QUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVUsRUFBRSxJQUFZLEVBQUUsVUFBc0IsRUFBRSxJQUFhLEVBQUUsT0FBZ0I7UUFDekcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFTyxHQUFHLENBQUMsSUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO3VHQXZLVSxVQUFVLDRDQUdYLE1BQU07MkdBSEwsVUFBVSxjQUZULE1BQU07OzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJSSxNQUFNOzJCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0FwaUNvbGxlY3Rpb259IGZyb20gJy4uL2FwaS1tb2RlbHMnO1xuaW1wb3J0IHtDb2xsZWN0aW9uLCBSb2xlfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgRE9NQUlOID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ2RvbWFpbicpO1xuXG5jb25zdCBBUElfUEFUSCA9ICdhcGkvdjMvJztcblxuY29uc3QgUk9MRV9QQVRIID0ge1xuICBbUm9sZS5DbHViQWRtaW5dOiAnY2x1Yi1hZG1pbi8nLFxuICBbUm9sZS5TZWN0aW9uQWRtaW5dOiAnc2VjdGlvbi1hZG1pbi8nLFxuICBbUm9sZS5UZWFtQWRtaW5dOiAndGVhbS1hZG1pbi8nLFxuICBbUm9sZS5NZW1iZXJBZG1pbl06ICdtZW1iZXItYWRtaW4vJyxcbiAgW1JvbGUuUHVibGljXTogJ3B1YmxpYy8nLFxuICBbUm9sZS5Ob25lXTogJydcbn07XG5cbmludGVyZmFjZSBGYWN0b3J5PEEsIFQ+IHtcbiAgKGFwaVJlc291cmNlOiBBKTogVDtcbn1cblxuaW50ZXJmYWNlIFBhdGhQYXJhbXMge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IH07XG4gIGJvZHk/OiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdChET01BSU4pIHByaXZhdGUgZG9tYWluOiBzdHJpbmdcbiAgKSB7XG4gIH1cblxuICBkZWxldGVSZXNvdXJjZShcbiAgICByb2xlOiBSb2xlLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwYXRoUGFyYW1zOiBQYXRoUGFyYW1zID0ge30sXG4gICAgb3B0aW9uczogT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZShyb2xlLCBwYXRoLCBwYXRoUGFyYW1zLCBvcHRpb25zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEh0dHBSZXNwb25zZTx1bmtub3duPikgPT4gcmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpXG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlUmVzb3VyY2VXaXRoQm9keShcbiAgICByb2xlOiBSb2xlLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwYXRoUGFyYW1zOiBQYXRoUGFyYW1zID0ge30sXG4gICAgb3B0aW9uczogT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKFxuICAgICAgdGhpcy51cmwodGhpcy5wYXRoKHJvbGUsIHBhdGgsIHBhdGhQYXJhbXMpKSwgey4uLm9wdGlvbnMsIG9ic2VydmU6ICdyZXNwb25zZSd9LFxuICAgICkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IEh0dHBSZXNwb25zZTx1bmtub3duPikgPT4gcmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbGxlY3Rpb248QSwgVD4oXG4gICAgZmFjdG9yeTogRmFjdG9yeTxBLCBUPixcbiAgICByb2xlOiBSb2xlLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwYXRoUGFyYW1zOiBQYXRoUGFyYW1zID0ge30sXG4gICAgb3B0aW9uczogT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIHJldHVybiB0aGlzLmdldDxBcGlDb2xsZWN0aW9uPEE+Pihyb2xlLCBwYXRoLCBwYXRoUGFyYW1zLCBvcHRpb25zKS5waXBlKFxuICAgICAgbWFwKChhcGlDb2xsZWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc291cmNlcyA9IGFwaUNvbGxlY3Rpb24ucmVzdWx0cy5tYXAoKHJlc291cmNlKSA9PiBmYWN0b3J5KHJlc291cmNlKSk7XG4gICAgICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbjxUPihhcGlDb2xsZWN0aW9uLmNvdW50LCBhcGlDb2xsZWN0aW9uLm5leHQsIGFwaUNvbGxlY3Rpb24ucHJldmlvdXMsIHJlc291cmNlcyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRSZXNvdXJjZTxBLCBUPihcbiAgICBmYWN0b3J5OiBGYWN0b3J5PEEsIFQ+LFxuICAgIHJvbGU6IFJvbGUsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHBhdGhQYXJhbXM6IFBhdGhQYXJhbXMgPSB7fSxcbiAgICBvcHRpb25zOiBPcHRpb25zID0ge31cbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0PEE+KHJvbGUsIHBhdGgsIHBhdGhQYXJhbXMsIG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKGFwaVJlc291cmNlKSA9PiBmYWN0b3J5KGFwaVJlc291cmNlKSlcbiAgICApO1xuICB9XG5cbiAgcG9zdEZvcm1EYXRhPEEsIFQ+KFxuICAgIGZhY3Rvcnk6IEZhY3Rvcnk8QSwgVD4sXG4gICAgcm9sZTogUm9sZSxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcGF0aFBhcmFtczogUGF0aFBhcmFtcyA9IHt9LFxuICAgIGRhdGE6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCBGb3JtRGF0YSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBPih0aGlzLnVybCh0aGlzLnBhdGgocm9sZSwgcGF0aCwgcGF0aFBhcmFtcykpLCB0aGlzLmdldEZvcm1EYXRhKGRhdGEpKVxuICAgICAgLnBpcGUobWFwKChhcGlSZXNvdXJjZSkgPT4gZmFjdG9yeShhcGlSZXNvdXJjZSkpKTtcbiAgfVxuXG4gIHBvc3RSZXNvdXJjZTxBLCBUPihcbiAgICBmYWN0b3J5OiBGYWN0b3J5PEEsIFQ+LFxuICAgIHJvbGU6IFJvbGUsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHBhdGhQYXJhbXM6IFBhdGhQYXJhbXMgPSB7fSxcbiAgICBkYXRhOiB1bmtub3duLFxuICAgIG9wdGlvbnM6IE9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLnBvc3Q8QT4ocm9sZSwgcGF0aCwgcGF0aFBhcmFtcywgZGF0YSwgb3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgoYXBpUmVzb3VyY2UpID0+IGZhY3RvcnkoYXBpUmVzb3VyY2UpKVxuICAgICk7XG4gIH1cblxuICBwb3N0UmVzb3VyY2VOb1Jlc3BvbnNlKFxuICAgIHJvbGU6IFJvbGUsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHBhdGhQYXJhbXM6IFBhdGhQYXJhbXMgPSB7fSxcbiAgICBkYXRhOiB1bmtub3duLFxuICAgIG9wdGlvbnM6IE9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLnBvc3RFbXB0eVJlc3BvbnNlKHJvbGUsIHBhdGgsIHBhdGhQYXJhbXMsIGRhdGEsIG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8dW5rbm93bj4pID0+IHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwIHx8IHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAxIHx8IHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KVxuICAgICk7XG4gIH1cblxuICB1cGRhdGVSZXNvdXJjZTxBLCBUPihcbiAgICByZXNwb25zZUZhY3Rvcnk6IEZhY3Rvcnk8QSwgVD4sXG4gICAgcm9sZTogUm9sZSxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcGF0aFBhcmFtczogUGF0aFBhcmFtcyA9IHt9LFxuICAgIGRhdGE6IHVua25vd24sXG4gICAgb3B0aW9uczogT3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMucGF0Y2g8QT4ocm9sZSwgcGF0aCwgcGF0aFBhcmFtcywgZGF0YSwgb3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgoYXBpUmVzb3VyY2UpID0+IHJlc3BvbnNlRmFjdG9yeShhcGlSZXNvdXJjZSkpXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVJlc291cmNlTm9SZXNwb25zZShcbiAgICByb2xlOiBSb2xlLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwYXRoUGFyYW1zOiBQYXRoUGFyYW1zID0ge30sXG4gICAgZGF0YTogdW5rbm93bixcbiAgICBvcHRpb25zOiBPcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5wYXRjaEVtcHR5UmVzcG9uc2Uocm9sZSwgcGF0aCwgcGF0aFBhcmFtcywgZGF0YSwgb3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IEh0dHBSZXNwb25zZTx1bmtub3duPikgPT4gcmVzcG9uc2Uuc3RhdHVzID09PSAyMDAgfHwgcmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVsZXRlKHJvbGU6IFJvbGUsIHBhdGg6IHN0cmluZywgcGF0aFBhcmFtczogUGF0aFBhcmFtcywgb3B0aW9uczogT3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmJvZHkpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdDxhbnk+KCdkZWxldGUnLCB0aGlzLnVybCh0aGlzLnBhdGgocm9sZSwgcGF0aCwgcGF0aFBhcmFtcykpLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnVybCh0aGlzLnBhdGgocm9sZSwgcGF0aCwgcGF0aFBhcmFtcykpLCB7Li4ub3B0aW9ucywgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQ8VD4ocm9sZTogUm9sZSwgcGF0aDogc3RyaW5nLCBwYXRoUGFyYW1zOiBQYXRoUGFyYW1zLCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy51cmwodGhpcy5wYXRoKHJvbGUsIHBhdGgsIHBhdGhQYXJhbXMpKSwgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1EYXRhKGRhdGE6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCBGb3JtRGF0YSkge1xuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YSkpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybURhdGE7XG4gIH1cblxuICBwcml2YXRlIHBhdGNoPFQ+KHJvbGU6IFJvbGUsIHBhdGg6IHN0cmluZywgcGF0aFBhcmFtczogUGF0aFBhcmFtcywgZGF0YTogdW5rbm93biwgb3B0aW9uczogT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8VD4odGhpcy51cmwodGhpcy5wYXRoKHJvbGUsIHBhdGgsIHBhdGhQYXJhbXMpKSwgZGF0YSwgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHBhdGNoRW1wdHlSZXNwb25zZShyb2xlOiBSb2xlLCBwYXRoOiBzdHJpbmcsIHBhdGhQYXJhbXM6IFBhdGhQYXJhbXMsIGRhdGE6IHVua25vd24sIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoKHRoaXMudXJsKHRoaXMucGF0aChyb2xlLCBwYXRoLCBwYXRoUGFyYW1zKSksIGRhdGEsIHsuLi5vcHRpb25zLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gIH1cblxuICBwcml2YXRlIHBhdGgocm9sZTogUm9sZSwgcGF0aDogc3RyaW5nLCBwYXJhbXM6IFBhdGhQYXJhbXMpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKCc6JyArIGtleSwgJ2cnKTtcbiAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UocmVnZXhwLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFJPTEVfUEFUSFtyb2xlXSArIHBhdGg7XG4gIH1cblxuICBwcml2YXRlIHBvc3Q8VD4ocm9sZTogUm9sZSwgcGF0aDogc3RyaW5nLCBwYXRoUGFyYW1zOiBQYXRoUGFyYW1zLCBkYXRhOiB1bmtub3duLCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMudXJsKHRoaXMucGF0aChyb2xlLCBwYXRoLCBwYXRoUGFyYW1zKSksIGRhdGEsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3N0RW1wdHlSZXNwb25zZShyb2xlOiBSb2xlLCBwYXRoOiBzdHJpbmcsIHBhdGhQYXJhbXM6IFBhdGhQYXJhbXMsIGRhdGE6IHVua25vd24sIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy51cmwodGhpcy5wYXRoKHJvbGUsIHBhdGgsIHBhdGhQYXJhbXMpKSwgZGF0YSwgey4uLm9wdGlvbnMsIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXJsKHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmRvbWFpbiArIEFQSV9QQVRIICsgcGF0aDtcbiAgfVxufVxuIl19
@@ -0,0 +1,62 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { catchError, map } from 'rxjs/operators';
3
+ import { Role } from '../models';
4
+ import { of } from 'rxjs';
5
+ import { authFactory } from './factories';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./api.service";
8
+ const AUTHS_PATH = 'every-admin/auths/';
9
+ const REMOVE_AUTH_PATH = 'accounts/remove-auth/:authId/:authType/:id/';
10
+ const UPDATE_MEMBERS_PATH = 'every-admin/auths/update-members/';
11
+ export class AuthService {
12
+ apiService;
13
+ constructor(apiService) {
14
+ this.apiService = apiService;
15
+ }
16
+ getAuth(id) {
17
+ return this.apiService
18
+ .getCollection(authFactory, Role.None, AUTHS_PATH, {}, { params: { club_id: id } })
19
+ .pipe(map((collection) => {
20
+ if (collection.count === 0) {
21
+ return null;
22
+ }
23
+ return collection.toArray()[0];
24
+ }));
25
+ }
26
+ getAuths(role = null) {
27
+ return this.apiService.getCollection(authFactory, Role.None, AUTHS_PATH, {}, role ? { params: { role } } : {});
28
+ }
29
+ removeClubAuth(authId, clubId) {
30
+ return this.removeAuth(authId, clubId, 'club');
31
+ }
32
+ removeMemberAuth(authId, memberId) {
33
+ return this.removeAuth(authId, memberId, 'member');
34
+ }
35
+ removeSectionAuth(authId, sectionId) {
36
+ return this.removeAuth(authId, sectionId, 'section');
37
+ }
38
+ removeTeamAuth(authId, teamId) {
39
+ return this.removeAuth(authId, teamId, 'team');
40
+ }
41
+ updateMembers() {
42
+ return this.apiService.updateResourceNoResponse(Role.None, UPDATE_MEMBERS_PATH, {}, {})
43
+ .pipe(map(() => true), catchError(() => of(false)));
44
+ }
45
+ removeAuth(authId, authTypeId, authType) {
46
+ return this.apiService.postResource(() => { }, Role.None, REMOVE_AUTH_PATH, {
47
+ authId,
48
+ authType,
49
+ id: authTypeId
50
+ }, {})
51
+ .pipe(map(() => true), catchError(() => of(false)));
52
+ }
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
54
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthService, providedIn: 'root' });
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthService, decorators: [{
57
+ type: Injectable,
58
+ args: [{
59
+ providedIn: 'root'
60
+ }]
61
+ }], ctorParameters: () => [{ type: i1.ApiService }] });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFFMUMsTUFBTSxVQUFVLEdBQUcsb0JBQW9CLENBQUM7QUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyw2Q0FBNkMsQ0FBQztBQUN2RSxNQUFNLG1CQUFtQixHQUFHLG1DQUFtQyxDQUFDO0FBS2hFLE1BQU0sT0FBTyxXQUFXO0lBQ0Y7SUFBcEIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFOUMsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixhQUFhLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ2xGLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQixJQUFJLFVBQVUsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXNCLElBQUk7UUFDakMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7UUFDL0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQWMsRUFBRSxTQUFpQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUM3QyxJQUFJLENBQUMsSUFBSSxFQUNULG1CQUFtQixFQUNuQixFQUFFLEVBQ0YsRUFBRSxDQUFDO2FBQ0YsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFDTixDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQWMsRUFBRSxVQUFrQixFQUFFLFFBQWdCO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDekUsTUFBTTtZQUNOLFFBQVE7WUFDUixFQUFFLEVBQUUsVUFBVTtTQUNmLEVBQUUsRUFBRSxDQUFDO2FBQ0gsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFDTixDQUFDO3VHQTFEVSxXQUFXOzJHQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGF1dGhGYWN0b3J5IH0gZnJvbSAnLi9mYWN0b3JpZXMnO1xuXG5jb25zdCBBVVRIU19QQVRIID0gJ2V2ZXJ5LWFkbWluL2F1dGhzLyc7XG5jb25zdCBSRU1PVkVfQVVUSF9QQVRIID0gJ2FjY291bnRzL3JlbW92ZS1hdXRoLzphdXRoSWQvOmF1dGhUeXBlLzppZC8nO1xuY29uc3QgVVBEQVRFX01FTUJFUlNfUEFUSCA9ICdldmVyeS1hZG1pbi9hdXRocy91cGRhdGUtbWVtYmVycy8nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge31cblxuICBnZXRBdXRoKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihhdXRoRmFjdG9yeSwgUm9sZS5Ob25lLCBBVVRIU19QQVRILCB7fSwgeyBwYXJhbXM6IHsgY2x1Yl9pZDogaWQgfSB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChjb2xsZWN0aW9uLmNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24udG9BcnJheSgpWzBdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldEF1dGhzKHJvbGU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXRDb2xsZWN0aW9uKGF1dGhGYWN0b3J5LCBSb2xlLk5vbmUsIEFVVEhTX1BBVEgsIHt9LCByb2xlID8ge3BhcmFtczoge3JvbGV9fSA6IHt9KTtcbiAgfVxuXG4gIHJlbW92ZUNsdWJBdXRoKGF1dGhJZDogc3RyaW5nLCBjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJlbW92ZUF1dGgoYXV0aElkLCBjbHViSWQsICdjbHViJyk7XG4gIH1cblxuICByZW1vdmVNZW1iZXJBdXRoKGF1dGhJZDogc3RyaW5nLCBtZW1iZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZlQXV0aChhdXRoSWQsIG1lbWJlcklkLCAnbWVtYmVyJyk7XG4gIH1cblxuICByZW1vdmVTZWN0aW9uQXV0aChhdXRoSWQ6IHN0cmluZywgc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVBdXRoKGF1dGhJZCwgc2VjdGlvbklkLCAnc2VjdGlvbicpO1xuICB9XG5cbiAgcmVtb3ZlVGVhbUF1dGgoYXV0aElkOiBzdHJpbmcsIHRlYW1JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZlQXV0aChhdXRoSWQsIHRlYW1JZCwgJ3RlYW0nKTtcbiAgfVxuXG4gIHVwZGF0ZU1lbWJlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS51cGRhdGVSZXNvdXJjZU5vUmVzcG9uc2UoXG4gICAgICBSb2xlLk5vbmUsXG4gICAgICBVUERBVEVfTUVNQkVSU19QQVRILFxuICAgICAge30sXG4gICAgICB7fSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQXV0aChhdXRoSWQ6IHN0cmluZywgYXV0aFR5cGVJZDogc3RyaW5nLCBhdXRoVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0UmVzb3VyY2UoKCkgPT4ge30sIFJvbGUuTm9uZSwgUkVNT1ZFX0FVVEhfUEFUSCwge1xuICAgICAgYXV0aElkLFxuICAgICAgYXV0aFR5cGUsXG4gICAgICBpZDogYXV0aFR5cGVJZFxuICAgIH0sIHt9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpXG4gICAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,279 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Role, } from '../models';
3
+ import { bookableGroupFactory, bookableItemFactory, bookablePartFactory, bookableTagFactory, } from './factories';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./api.service";
6
+ const CLUB_BOOKABLES_PATH = ':clubId/activities/bookables/';
7
+ const CLUB_BOOKABLE_PATH = ':clubId/activities/bookables/:bookableId/';
8
+ const CLUB_BOOKABLE_GROUPS_PATH = ':clubId/activities/bookables/groups/';
9
+ const CLUB_BOOKABLE_GROUP_PATH = ':clubId/activities/bookables/groups/:groupId/';
10
+ const CLUB_BOOKABLE_TAGS_PATH = ':clubId/activities/bookables/tags/';
11
+ const CLUB_BOOKABLE_TAG_PATH = ':clubId/activities/bookables/tags/:tagId/';
12
+ const CLUB_BOOKABLE_PARTS_PATH = ':clubId/activities/bookables/:bookableId/parts/';
13
+ const TEAM_BOOKABLES_PATH = ':teamId/activities/bookables/';
14
+ const TEAM_BOOKABLE_GROUPS_PATH = ':teamId/activities/bookables/groups/';
15
+ const TEAM_BOOKABLE_TAGS_PATH = ':teamId/activities/bookables/tags/';
16
+ const TEAM_BOOKABLE_PARTS_PATH = ':teamId/activities/bookables/:bookableId/parts/';
17
+ const SECTION_BOOKABLES_PATH = ':sectionId/activities/bookables/';
18
+ const SECTION_BOOKABLE_PATH = ':sectionId/activities/bookables/:bookableId/';
19
+ const SECTION_BOOKABLE_GROUPS_PATH = ':sectionId/activities/bookables/groups/';
20
+ const SECTION_BOOKABLE_GROUP_PATH = ':sectionId/activities/bookables/groups/:groupId/';
21
+ const SECTION_BOOKABLE_TAGS_PATH = ':sectionId/activities/bookables/tags/';
22
+ const SECTION_BOOKABLE_TAG_PATH = ':sectionId/activities/bookables/tags/:tagId/';
23
+ const SECTION_BOOKABLE_PARTS_PATH = ':sectionId/activities/bookables/:bookableId/parts/';
24
+ export class BookableService {
25
+ apiService;
26
+ constructor(apiService) {
27
+ this.apiService = apiService;
28
+ }
29
+ // region Bookable Items
30
+ getBookableItems(role, clubOrSectionOrTeamId) {
31
+ if (role == Role.ClubAdmin) {
32
+ return this.getClubBookableItems(clubOrSectionOrTeamId);
33
+ }
34
+ else if (role == Role.SectionAdmin) {
35
+ return this.getSectionBookableItems(clubOrSectionOrTeamId);
36
+ }
37
+ return this.getTeamBookableItems(clubOrSectionOrTeamId);
38
+ }
39
+ getTeamBookableItems(teamId) {
40
+ return this.apiService
41
+ .getCollection(bookableItemFactory, Role.TeamAdmin, TEAM_BOOKABLES_PATH, { teamId }, { params: { limit: 'null' } });
42
+ }
43
+ getClubBookableItems(clubId) {
44
+ return this.apiService
45
+ .getCollection(bookableItemFactory, Role.ClubAdmin, CLUB_BOOKABLES_PATH, { clubId }, { params: { limit: 'null' } });
46
+ }
47
+ getSectionBookableItems(sectionId) {
48
+ return this.apiService
49
+ .getCollection(bookableItemFactory, Role.SectionAdmin, SECTION_BOOKABLES_PATH, { sectionId }, { params: { limit: 'null' } });
50
+ }
51
+ updateBookableItem(role, clubOrSectionOrTeamId, bookableItem) {
52
+ if (role === Role.ClubAdmin) {
53
+ return this.updateClubBookableItem(clubOrSectionOrTeamId, bookableItem);
54
+ }
55
+ return this.updateSectionBookableItem(clubOrSectionOrTeamId, bookableItem);
56
+ }
57
+ updateClubBookableItem(clubId, bookableItem) {
58
+ return this.apiService
59
+ .updateResource(bookableItemFactory, Role.ClubAdmin, CLUB_BOOKABLE_PATH, {
60
+ clubId,
61
+ bookableId: bookableItem.id,
62
+ }, bookableItem);
63
+ }
64
+ updateSectionBookableItem(sectionId, bookableItem) {
65
+ return this.apiService
66
+ .updateResource(bookableItemFactory, Role.SectionAdmin, SECTION_BOOKABLE_PATH, {
67
+ sectionId,
68
+ bookableId: bookableItem.id,
69
+ }, bookableItem);
70
+ }
71
+ createBookableItem(role, clubOrSectionOrTeamId, bookableItem) {
72
+ if (role === Role.ClubAdmin) {
73
+ return this.createClubBookableItem(clubOrSectionOrTeamId, bookableItem);
74
+ }
75
+ return this.createSectionBookableItem(clubOrSectionOrTeamId, bookableItem);
76
+ }
77
+ createClubBookableItem(clubId, bookableItem) {
78
+ delete bookableItem.id;
79
+ return this.apiService
80
+ .postResource(bookableItemFactory, Role.ClubAdmin, CLUB_BOOKABLES_PATH, {
81
+ clubId,
82
+ }, bookableItem);
83
+ }
84
+ createSectionBookableItem(sectionId, bookableItem) {
85
+ delete bookableItem.id;
86
+ return this.apiService
87
+ .postResource(bookableItemFactory, Role.SectionAdmin, SECTION_BOOKABLES_PATH, {
88
+ sectionId,
89
+ }, bookableItem);
90
+ }
91
+ // endregion
92
+ // region Bookable Groups
93
+ getBookableGroups(role, clubOrSectionOrTeamId) {
94
+ if (role == Role.ClubAdmin) {
95
+ return this.getClubBookableGroups(clubOrSectionOrTeamId);
96
+ }
97
+ else if (role == Role.SectionAdmin) {
98
+ return this.getSectionBookableGroups(clubOrSectionOrTeamId);
99
+ }
100
+ return this.getTeamBookableGroups(clubOrSectionOrTeamId);
101
+ }
102
+ getClubBookableGroups(clubId) {
103
+ return this.apiService
104
+ .getCollection(bookableGroupFactory, Role.ClubAdmin, CLUB_BOOKABLE_GROUPS_PATH, { clubId }, { params: { limit: 'null' } });
105
+ }
106
+ getSectionBookableGroups(sectionId) {
107
+ return this.apiService
108
+ .getCollection(bookableGroupFactory, Role.SectionAdmin, SECTION_BOOKABLE_GROUPS_PATH, { sectionId }, { params: { limit: 'null' } });
109
+ }
110
+ getTeamBookableGroups(teamId) {
111
+ return this.apiService
112
+ .getCollection(bookableGroupFactory, Role.TeamAdmin, TEAM_BOOKABLE_GROUPS_PATH, { teamId }, { params: { limit: 'null' } });
113
+ }
114
+ updateBookableGroup(role, clubOrSectionOrTeamId, bookableGroup) {
115
+ if (role === Role.ClubAdmin) {
116
+ return this.updateClubBookableGroup(clubOrSectionOrTeamId, bookableGroup);
117
+ }
118
+ return this.updateSectionBookableGroup(clubOrSectionOrTeamId, bookableGroup);
119
+ }
120
+ updateClubBookableGroup(clubId, bookableGroup) {
121
+ return this.apiService
122
+ .updateResource(bookableGroupFactory, Role.ClubAdmin, CLUB_BOOKABLE_GROUP_PATH, {
123
+ clubId,
124
+ groupId: bookableGroup.id,
125
+ }, bookableGroup);
126
+ }
127
+ updateSectionBookableGroup(sectionId, bookableGroup) {
128
+ return this.apiService
129
+ .updateResource(bookableGroupFactory, Role.SectionAdmin, SECTION_BOOKABLE_GROUP_PATH, {
130
+ sectionId,
131
+ groupId: bookableGroup.id,
132
+ }, bookableGroup);
133
+ }
134
+ createBookableGroup(role, clubOrSectionOrTeamId, bookableGroup) {
135
+ if (role === Role.ClubAdmin) {
136
+ return this.createClubBookableGroup(clubOrSectionOrTeamId, bookableGroup);
137
+ }
138
+ return this.createSectionBookableGroup(clubOrSectionOrTeamId, bookableGroup);
139
+ }
140
+ createClubBookableGroup(clubId, bookableGroup) {
141
+ delete bookableGroup.id;
142
+ return this.apiService
143
+ .postResource(bookableGroupFactory, Role.ClubAdmin, CLUB_BOOKABLE_GROUPS_PATH, {
144
+ clubId,
145
+ }, bookableGroup);
146
+ }
147
+ createSectionBookableGroup(sectionId, bookableGroup) {
148
+ delete bookableGroup.id;
149
+ return this.apiService
150
+ .postResource(bookableGroupFactory, Role.SectionAdmin, SECTION_BOOKABLE_GROUPS_PATH, {
151
+ sectionId,
152
+ }, bookableGroup);
153
+ }
154
+ // endregion
155
+ // region Bookable Tags
156
+ getBookableTags(role, clubOrSectionOrTeamId) {
157
+ if (role == Role.ClubAdmin) {
158
+ return this.getClubBookableTags(clubOrSectionOrTeamId);
159
+ }
160
+ else if (role == Role.SectionAdmin) {
161
+ return this.getSectionBookableTags(clubOrSectionOrTeamId);
162
+ }
163
+ return this.getTeamBookableTags(clubOrSectionOrTeamId);
164
+ }
165
+ getClubBookableTags(clubId) {
166
+ return this.apiService
167
+ .getCollection(bookableTagFactory, Role.ClubAdmin, CLUB_BOOKABLE_TAGS_PATH, { clubId }, { params: { limit: 'null' } });
168
+ }
169
+ getSectionBookableTags(sectionId) {
170
+ return this.apiService
171
+ .getCollection(bookableTagFactory, Role.SectionAdmin, SECTION_BOOKABLE_TAGS_PATH, { sectionId }, { params: { limit: 'null' } });
172
+ }
173
+ getTeamBookableTags(teamId) {
174
+ return this.apiService
175
+ .getCollection(bookableTagFactory, Role.TeamAdmin, TEAM_BOOKABLE_TAGS_PATH, { teamId }, { params: { limit: 'null' } });
176
+ }
177
+ createBookableTag(role, clubOrSectionOrTeamId, tag) {
178
+ if (role == Role.ClubAdmin) {
179
+ return this.createClubBookableTag(clubOrSectionOrTeamId, tag);
180
+ }
181
+ else if (role == Role.SectionAdmin) {
182
+ return this.createSectionBookableTag(clubOrSectionOrTeamId, tag);
183
+ }
184
+ return this.createTeamBookableTag(clubOrSectionOrTeamId, tag);
185
+ }
186
+ createClubBookableTag(clubId, tag) {
187
+ delete tag.id;
188
+ return this.apiService
189
+ .postResource(bookableTagFactory, Role.ClubAdmin, CLUB_BOOKABLE_TAGS_PATH, {
190
+ clubId,
191
+ }, tag);
192
+ }
193
+ createSectionBookableTag(sectionId, tag) {
194
+ delete tag.id;
195
+ return this.apiService
196
+ .postResource(bookableTagFactory, Role.SectionAdmin, SECTION_BOOKABLE_TAGS_PATH, {
197
+ sectionId,
198
+ }, tag);
199
+ }
200
+ createTeamBookableTag(teamId, tag) {
201
+ delete tag.id;
202
+ return this.apiService
203
+ .postResource(bookableTagFactory, Role.TeamAdmin, TEAM_BOOKABLE_TAGS_PATH, {
204
+ teamId,
205
+ }, tag);
206
+ }
207
+ updateBookableTag(role, clubOrSectionOrTeamId, tag) {
208
+ if (role == Role.ClubAdmin) {
209
+ return this.updateClubBookableTag(clubOrSectionOrTeamId, tag);
210
+ }
211
+ return this.updateSectionBookableTag(clubOrSectionOrTeamId, tag);
212
+ }
213
+ updateClubBookableTag(clubId, tag) {
214
+ return this.apiService
215
+ .updateResource(bookableTagFactory, Role.ClubAdmin, CLUB_BOOKABLE_TAG_PATH, {
216
+ clubId,
217
+ tagId: tag.id,
218
+ }, tag);
219
+ }
220
+ updateSectionBookableTag(sectionId, tag) {
221
+ return this.apiService
222
+ .updateResource(bookableTagFactory, Role.SectionAdmin, SECTION_BOOKABLE_TAG_PATH, {
223
+ sectionId,
224
+ tagId: tag.id,
225
+ }, tag);
226
+ }
227
+ deleteBookableTag(role, clubOrSectionOrTeamId, tag) {
228
+ if (role == Role.ClubAdmin) {
229
+ return this.deleteClubBookableTag(clubOrSectionOrTeamId, tag);
230
+ }
231
+ return this.deleteSectionBookableTag(clubOrSectionOrTeamId, tag);
232
+ }
233
+ deleteClubBookableTag(clubId, tag) {
234
+ return this.apiService
235
+ .deleteResource(Role.ClubAdmin, CLUB_BOOKABLE_TAG_PATH, {
236
+ clubId,
237
+ tagId: tag.id,
238
+ });
239
+ }
240
+ deleteSectionBookableTag(sectionId, tag) {
241
+ return this.apiService
242
+ .deleteResource(Role.SectionAdmin, SECTION_BOOKABLE_TAG_PATH, {
243
+ sectionId,
244
+ tagId: tag.id,
245
+ });
246
+ }
247
+ // endregion
248
+ // region Bookable Parts
249
+ getBookableParts(role, clubOrSectionOrTeamId, bookableId) {
250
+ if (role == Role.ClubAdmin) {
251
+ return this.getClubBookableParts(clubOrSectionOrTeamId, bookableId);
252
+ }
253
+ else if (role == Role.SectionAdmin) {
254
+ return this.getSectionBookableParts(clubOrSectionOrTeamId, bookableId);
255
+ }
256
+ return this.getTeamBookableParts(clubOrSectionOrTeamId, bookableId);
257
+ }
258
+ getClubBookableParts(clubId, bookableId) {
259
+ return this.apiService
260
+ .getCollection(bookablePartFactory, Role.ClubAdmin, CLUB_BOOKABLE_PARTS_PATH, { clubId, bookableId }, { params: { limit: 'null' } });
261
+ }
262
+ getSectionBookableParts(sectionId, bookableId) {
263
+ return this.apiService
264
+ .getCollection(bookablePartFactory, Role.SectionAdmin, SECTION_BOOKABLE_PARTS_PATH, { sectionId, bookableId }, { params: { limit: 'null' } });
265
+ }
266
+ getTeamBookableParts(teamId, bookableId) {
267
+ return this.apiService
268
+ .getCollection(bookablePartFactory, Role.TeamAdmin, TEAM_BOOKABLE_PARTS_PATH, { teamId, bookableId }, { params: { limit: 'null' } });
269
+ }
270
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BookableService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
271
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BookableService, providedIn: 'root' });
272
+ }
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BookableService, decorators: [{
274
+ type: Injectable,
275
+ args: [{
276
+ providedIn: 'root'
277
+ }]
278
+ }], ctorParameters: () => [{ type: i1.ApiService }] });
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2FibGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvYm9va2FibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBMkMsSUFBSSxHQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsR0FBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBRWhILE1BQU0sbUJBQW1CLEdBQUcsK0JBQStCLENBQUM7QUFDNUQsTUFBTSxrQkFBa0IsR0FBRywyQ0FBMkMsQ0FBQztBQUN2RSxNQUFNLHlCQUF5QixHQUFHLHNDQUFzQyxDQUFDO0FBQ3pFLE1BQU0sd0JBQXdCLEdBQUcsK0NBQStDLENBQUM7QUFDakYsTUFBTSx1QkFBdUIsR0FBRyxvQ0FBb0MsQ0FBQztBQUNyRSxNQUFNLHNCQUFzQixHQUFHLDJDQUEyQyxDQUFDO0FBQzNFLE1BQU0sd0JBQXdCLEdBQUcsaURBQWlELENBQUM7QUFFbkYsTUFBTSxtQkFBbUIsR0FBRywrQkFBK0IsQ0FBQztBQUM1RCxNQUFNLHlCQUF5QixHQUFHLHNDQUFzQyxDQUFDO0FBQ3pFLE1BQU0sdUJBQXVCLEdBQUcsb0NBQW9DLENBQUM7QUFDckUsTUFBTSx3QkFBd0IsR0FBRyxpREFBaUQsQ0FBQztBQUVuRixNQUFNLHNCQUFzQixHQUFHLGtDQUFrQyxDQUFDO0FBQ2xFLE1BQU0scUJBQXFCLEdBQUcsOENBQThDLENBQUM7QUFDN0UsTUFBTSw0QkFBNEIsR0FBRyx5Q0FBeUMsQ0FBQztBQUMvRSxNQUFNLDJCQUEyQixHQUFHLGtEQUFrRCxDQUFDO0FBQ3ZGLE1BQU0sMEJBQTBCLEdBQUcsdUNBQXVDLENBQUM7QUFDM0UsTUFB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LE1BQU0sRUFBQyxFQUFDLENBQzFCLENBQUM7SUFDTixDQUFDO0lBRUQsdUJBQXVCLENBQUMsU0FBaUIsRUFBRSxVQUFrQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLGFBQWEsQ0FDWixtQkFBbUIsRUFDbkIsSUFBSSxDQUFDLFlBQVksRUFDakIsMkJBQTJCLEVBQzNCLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxFQUN2QixFQUFDLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsRUFBQyxDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQWMsRUFBRSxVQUFrQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLGFBQWEsQ0FDWixtQkFBbUIsRUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFDZCx3QkFBd0IsRUFDeEIsRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLEVBQ3BCLEVBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxFQUFDLENBQzFCLENBQUM7SUFDTixDQUFDO3VHQXpiVSxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FwaVNlcnZpY2V9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtCb29rYWJsZUdyb3VwLCBCb29rYWJsZUl0ZW0sIEJvb2thYmxlVGFnLCBSb2xlLH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7Ym9va2FibGVHcm91cEZhY3RvcnksIGJvb2thYmxlSXRlbUZhY3RvcnksIGJvb2thYmxlUGFydEZhY3RvcnksIGJvb2thYmxlVGFnRmFjdG9yeSx9IGZyb20gJy4vZmFjdG9yaWVzJztcblxuY29uc3QgQ0xVQl9CT09LQUJMRVNfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvYm9va2FibGVzLyc7XG5jb25zdCBDTFVCX0JPT0tBQkxFX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2Jvb2thYmxlcy86Ym9va2FibGVJZC8nO1xuY29uc3QgQ0xVQl9CT09LQUJMRV9HUk9VUFNfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvYm9va2FibGVzL2dyb3Vwcy8nO1xuY29uc3QgQ0xVQl9CT09LQUJMRV9HUk9VUF9QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9ib29rYWJsZXMvZ3JvdXBzLzpncm91cElkLyc7XG5jb25zdCBDTFVCX0JPT0tBQkxFX1RBR1NfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvYm9va2FibGVzL3RhZ3MvJztcbmNvbnN0IENMVUJfQk9PS0FCTEVfVEFHX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2Jvb2thYmxlcy90YWdzLzp0YWdJZC8nO1xuY29uc3QgQ0xVQl9CT09LQUJMRV9QQVJUU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9ib29rYWJsZXMvOmJvb2thYmxlSWQvcGFydHMvJztcblxuY29uc3QgVEVBTV9CT09LQUJMRVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvYm9va2FibGVzLyc7XG5jb25zdCBURUFNX0JPT0tBQkxFX0dST1VQU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9ib29rYWJsZXMvZ3JvdXBzLyc7XG5jb25zdCBURUFNX0JPT0tBQkxFX1RBR1NfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvYm9va2FibGVzL3RhZ3MvJztcbmNvbnN0IFRFQU1fQk9PS0FCTEVfUEFSVFNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvYm9va2FibGVzLzpib29rYWJsZUlkL3BhcnRzLyc7XG5cbmNvbnN0IFNFQ1RJT05fQk9PS0FCTEVTX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL2Jvb2thYmxlcy8nO1xuY29uc3QgU0VDVElPTl9CT09LQUJMRV9QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy9ib29rYWJsZXMvOmJvb2thYmxlSWQvJztcbmNvbnN0IFNFQ1RJT05fQk9PS0FCTEVfR1JPVVBTX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL2Jvb2thYmxlcy9ncm91cHMvJztcbmNvbnN0IFNFQ1RJT05fQk9PS0FCTEVfR1JPVVBfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvYm9va2FibGVzL2dyb3Vwcy86Z3JvdXBJZC8nO1xuY29uc3QgU0VDVElPTl9CT09LQUJMRV9UQUdTX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL2Jvb2thYmxlcy90YWdzLyc7XG5jb25zdCBTRUNUSU9OX0JPT0tBQkxFX1RBR19QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy9ib29rYWJsZXMvdGFncy86dGFnSWQvJztcbmNvbnN0IFNFQ1RJT05fQk9PS0FCTEVfUEFSVFNfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvYm9va2FibGVzLzpib29rYWJsZUlkL3BhcnRzLyc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQm9va2FibGVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlKSB7XG4gIH1cblxuICAvLyByZWdpb24gQm9va2FibGUgSXRlbXNcblxuICBnZXRCb29rYWJsZUl0ZW1zKHJvbGU6IFJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nKSB7XG4gICAgaWYgKHJvbGUgPT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENsdWJCb29rYWJsZUl0ZW1zKGNsdWJPclNlY3Rpb25PclRlYW1JZCk7XG4gICAgfSBlbHNlIGlmIChyb2xlID09IFJvbGUuU2VjdGlvbkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWN0aW9uQm9va2FibGVJdGVtcyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRUZWFtQm9va2FibGVJdGVtcyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpXG4gIH1cblxuICBnZXRUZWFtQm9va2FibGVJdGVtcyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBib29rYWJsZUl0ZW1GYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9CT09LQUJMRVNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRDbHViQm9va2FibGVJdGVtcyhjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBib29rYWJsZUl0ZW1GYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9CT09LQUJMRVNfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRTZWN0aW9uQm9va2FibGVJdGVtcyhzZWN0aW9uSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBib29rYWJsZUl0ZW1GYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9CT09LQUJMRVNfUEFUSCxcbiAgICAgICAge3NlY3Rpb25JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVCb29rYWJsZUl0ZW0ocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGJvb2thYmxlSXRlbTogUGFydGlhbDxCb29rYWJsZUl0ZW0+KSB7XG4gICAgaWYgKHJvbGUgPT09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVDbHViQm9va2FibGVJdGVtKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYm9va2FibGVJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlU2VjdGlvbkJvb2thYmxlSXRlbShjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGJvb2thYmxlSXRlbSk7XG4gIH1cblxuICB1cGRhdGVDbHViQm9va2FibGVJdGVtKGNsdWJJZDogc3RyaW5nLCBib29rYWJsZUl0ZW06IFBhcnRpYWw8Qm9va2FibGVJdGVtPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVJdGVtRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQk9PS0FCTEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGNsdWJJZCxcbiAgICAgICAgICBib29rYWJsZUlkOiBib29rYWJsZUl0ZW0uaWQgYXMgc3RyaW5nLFxuICAgICAgICB9LFxuICAgICAgICBib29rYWJsZUl0ZW1cbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVTZWN0aW9uQm9va2FibGVJdGVtKHNlY3Rpb25JZDogc3RyaW5nLCBib29rYWJsZUl0ZW06IFBhcnRpYWw8Qm9va2FibGVJdGVtPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVJdGVtRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQk9PS0FCTEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICBib29rYWJsZUlkOiBib29rYWJsZUl0ZW0uaWQgYXMgc3RyaW5nLFxuICAgICAgICB9LFxuICAgICAgICBib29rYWJsZUl0ZW1cbiAgICAgICk7XG4gIH1cblxuICBjcmVhdGVCb29rYWJsZUl0ZW0ocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGJvb2thYmxlSXRlbTogUGFydGlhbDxCb29rYWJsZUl0ZW0+KSB7XG4gICAgaWYgKHJvbGUgPT09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVDbHViQm9va2FibGVJdGVtKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYm9va2FibGVJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlU2VjdGlvbkJvb2thYmxlSXRlbShjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGJvb2thYmxlSXRlbSk7XG4gIH1cblxuICBjcmVhdGVDbHViQm9va2FibGVJdGVtKGNsdWJJZDogc3RyaW5nLCBib29rYWJsZUl0ZW06IFBhcnRpYWw8Qm9va2FibGVJdGVtPikge1xuICAgIGRlbGV0ZSBib29rYWJsZUl0ZW0uaWQ7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVJdGVtRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQk9PS0FCTEVTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgIH0sXG4gICAgICAgIGJvb2thYmxlSXRlbSxcbiAgICAgICk7XG4gIH1cblxuICBjcmVhdGVTZWN0aW9uQm9va2FibGVJdGVtKHNlY3Rpb25JZDogc3RyaW5nLCBib29rYWJsZUl0ZW06IFBhcnRpYWw8Qm9va2FibGVJdGVtPikge1xuICAgIGRlbGV0ZSBib29rYWJsZUl0ZW0uaWQ7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVJdGVtRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQk9PS0FCTEVTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWN0aW9uSWQsXG4gICAgICAgIH0sXG4gICAgICAgIGJvb2thYmxlSXRlbVxuICAgICAgKTtcbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBCb29rYWJsZSBHcm91cHNcblxuICBnZXRCb29rYWJsZUdyb3Vwcyhyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQm9va2FibGVHcm91cHMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKTtcbiAgICB9IGVsc2UgaWYgKHJvbGUgPT0gUm9sZS5TZWN0aW9uQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFNlY3Rpb25Cb29rYWJsZUdyb3VwcyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRUZWFtQm9va2FibGVHcm91cHMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKTtcbiAgfVxuXG4gIGdldENsdWJCb29rYWJsZUdyb3VwcyhjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBib29rYWJsZUdyb3VwRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQk9PS0FCTEVfR1JPVVBTX1BBVEgsXG4gICAgICAgIHtjbHViSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0U2VjdGlvbkJvb2thYmxlR3JvdXBzKHNlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGJvb2thYmxlR3JvdXBGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9CT09LQUJMRV9HUk9VUFNfUEFUSCxcbiAgICAgICAge3NlY3Rpb25JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQm9va2FibGVHcm91cHModGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYm9va2FibGVHcm91cEZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0JPT0tBQkxFX0dST1VQU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUJvb2thYmxlR3JvdXAocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGJvb2thYmxlR3JvdXA6IFBhcnRpYWw8Qm9va2FibGVHcm91cD4pIHtcbiAgICBpZiAocm9sZSA9PT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNsdWJCb29rYWJsZUdyb3VwKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYm9va2FibGVHcm91cCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVwZGF0ZVNlY3Rpb25Cb29rYWJsZUdyb3VwKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYm9va2FibGVHcm91cCk7XG4gIH1cblxuICB1cGRhdGVDbHViQm9va2FibGVHcm91cChjbHViSWQ6IHN0cmluZywgYm9va2FibGVHcm91cDogUGFydGlhbDxCb29rYWJsZUdyb3VwPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVHcm91cEZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0JPT0tBQkxFX0dST1VQX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgZ3JvdXBJZDogYm9va2FibGVHcm91cC5pZCBhcyBzdHJpbmcsXG4gICAgICAgIH0sXG4gICAgICAgIGJvb2thYmxlR3JvdXAsXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlU2VjdGlvbkJvb2thYmxlR3JvdXAoc2VjdGlvbklkOiBzdHJpbmcsIGJvb2thYmxlR3JvdXA6IFBhcnRpYWw8Qm9va2FibGVHcm91cD4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGJvb2thYmxlR3JvdXBGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9CT09LQUJMRV9HUk9VUF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgc2VjdGlvbklkLFxuICAgICAgICAgIGdyb3VwSWQ6IGJvb2thYmxlR3JvdXAuaWQgYXMgc3RyaW5nLFxuICAgICAgICB9LFxuICAgICAgICBib29rYWJsZUdyb3VwXG4gICAgICApO1xuICB9XG5cbiAgY3JlYXRlQm9va2FibGVHcm91cChyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgYm9va2FibGVHcm91cDogUGFydGlhbDxCb29rYWJsZUdyb3VwPikge1xuICAgIGlmIChyb2xlID09PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ2x1YkJvb2thYmxlR3JvdXAoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBib29rYWJsZUdyb3VwKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlU2VjdGlvbkJvb2thYmxlR3JvdXAoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBib29rYWJsZUdyb3VwKTtcbiAgfVxuXG4gIGNyZWF0ZUNsdWJCb29rYWJsZUdyb3VwKGNsdWJJZDogc3RyaW5nLCBib29rYWJsZUdyb3VwOiBQYXJ0aWFsPEJvb2thYmxlR3JvdXA+KSB7XG4gICAgZGVsZXRlIGJvb2thYmxlR3JvdXAuaWQ7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVHcm91cEZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0JPT0tBQkxFX0dST1VQU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICB9LFxuICAgICAgICBib29rYWJsZUdyb3VwLFxuICAgICAgKTtcbiAgfVxuXG4gIGNyZWF0ZVNlY3Rpb25Cb29rYWJsZUdyb3VwKHNlY3Rpb25JZDogc3RyaW5nLCBib29rYWJsZUdyb3VwOiBQYXJ0aWFsPEJvb2thYmxlR3JvdXA+KSB7XG4gICAgZGVsZXRlIGJvb2thYmxlR3JvdXAuaWQ7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVHcm91cEZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0JPT0tBQkxFX0dST1VQU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgc2VjdGlvbklkLFxuICAgICAgICB9LFxuICAgICAgICBib29rYWJsZUdyb3VwXG4gICAgICApO1xuICB9XG5cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIEJvb2thYmxlIFRhZ3NcblxuICBnZXRCb29rYWJsZVRhZ3Mocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcpIHtcbiAgICBpZiAocm9sZSA9PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2x1YkJvb2thYmxlVGFncyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH0gZWxzZSBpZiAocm9sZSA9PSBSb2xlLlNlY3Rpb25BZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkJvb2thYmxlVGFncyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRUZWFtQm9va2FibGVUYWdzKGNsdWJPclNlY3Rpb25PclRlYW1JZCk7XG4gIH1cblxuICBnZXRDbHViQm9va2FibGVUYWdzKGNsdWJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGJvb2thYmxlVGFnRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQk9PS0FCTEVfVEFHU19QQVRILFxuICAgICAgICB7Y2x1YklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFNlY3Rpb25Cb29rYWJsZVRhZ3Moc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYm9va2FibGVUYWdGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9CT09LQUJMRV9UQUdTX1BBVEgsXG4gICAgICAgIHtzZWN0aW9uSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUJvb2thYmxlVGFncyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBib29rYWJsZVRhZ0ZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0JPT0tBQkxFX1RBR1NfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBjcmVhdGVCb29rYWJsZVRhZyhyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgdGFnOiBQYXJ0aWFsPEJvb2thYmxlVGFnPikge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVDbHViQm9va2FibGVUYWcoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCB0YWcpO1xuICAgIH0gZWxzZSBpZiAocm9sZSA9PSBSb2xlLlNlY3Rpb25BZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU2VjdGlvbkJvb2thYmxlVGFnKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgdGFnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVGVhbUJvb2thYmxlVGFnKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgdGFnKTtcbiAgfVxuXG4gIGNyZWF0ZUNsdWJCb29rYWJsZVRhZyhjbHViSWQ6IHN0cmluZywgdGFnOiBQYXJ0aWFsPEJvb2thYmxlVGFnPikge1xuICAgIGRlbGV0ZSB0YWcuaWQ7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVUYWdGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9CT09LQUJMRV9UQUdTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgIH0sXG4gICAgICAgIHRhZyxcbiAgICAgIClcbiAgfVxuXG4gIGNyZWF0ZVNlY3Rpb25Cb29rYWJsZVRhZyhzZWN0aW9uSWQ6IHN0cmluZywgdGFnOiBQYXJ0aWFsPEJvb2thYmxlVGFnPikge1xuICAgIGRlbGV0ZSB0YWcuaWQ7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVUYWdGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9CT09LQUJMRV9UQUdTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWN0aW9uSWQsXG4gICAgICAgIH0sXG4gICAgICAgIHRhZyxcbiAgICAgIClcbiAgfVxuXG4gIGNyZWF0ZVRlYW1Cb29rYWJsZVRhZyh0ZWFtSWQ6IHN0cmluZywgdGFnOiBQYXJ0aWFsPEJvb2thYmxlVGFnPikge1xuICAgIGRlbGV0ZSB0YWcuaWQ7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVUYWdGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9CT09LQUJMRV9UQUdTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgIH0sXG4gICAgICAgIHRhZyxcbiAgICAgIClcbiAgfVxuXG4gIHVwZGF0ZUJvb2thYmxlVGFnKHJvbGU6IFJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nLCB0YWc6IFBhcnRpYWw8Qm9va2FibGVUYWc+KSB7XG4gICAgaWYgKHJvbGUgPT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNsdWJCb29rYWJsZVRhZyhjbHViT3JTZWN0aW9uT3JUZWFtSWQsIHRhZyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVwZGF0ZVNlY3Rpb25Cb29rYWJsZVRhZyhjbHViT3JTZWN0aW9uT3JUZWFtSWQsIHRhZyk7XG4gIH1cblxuICB1cGRhdGVDbHViQm9va2FibGVUYWcoY2x1YklkOiBzdHJpbmcsIHRhZzogUGFydGlhbDxCb29rYWJsZVRhZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGJvb2thYmxlVGFnRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQk9PS0FCTEVfVEFHX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgdGFnSWQ6IHRhZy5pZCBhcyBzdHJpbmcsXG4gICAgICAgIH0sXG4gICAgICAgIHRhZyxcbiAgICAgIClcbiAgfVxuXG4gIHVwZGF0ZVNlY3Rpb25Cb29rYWJsZVRhZyhzZWN0aW9uSWQ6IHN0cmluZywgdGFnOiBQYXJ0aWFsPEJvb2thYmxlVGFnPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYm9va2FibGVUYWdGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9CT09LQUJMRV9UQUdfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICB0YWdJZDogdGFnLmlkIGFzIHN0cmluZyxcbiAgICAgICAgfSxcbiAgICAgICAgdGFnLFxuICAgICAgKVxuICB9XG5cbiAgZGVsZXRlQm9va2FibGVUYWcocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIHRhZzogQm9va2FibGVUYWcpIHtcbiAgICBpZiAocm9sZSA9PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlQ2x1YkJvb2thYmxlVGFnKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgdGFnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlU2VjdGlvbkJvb2thYmxlVGFnKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgdGFnKTtcbiAgfVxuXG4gIGRlbGV0ZUNsdWJCb29rYWJsZVRhZyhjbHViSWQ6IHN0cmluZywgdGFnOiBCb29rYWJsZVRhZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQk9PS0FCTEVfVEFHX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgdGFnSWQ6IHRhZy5pZCxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgfVxuXG4gIGRlbGV0ZVNlY3Rpb25Cb29rYWJsZVRhZyhzZWN0aW9uSWQ6IHN0cmluZywgdGFnOiBCb29rYWJsZVRhZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQk9PS0FCTEVfVEFHX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWN0aW9uSWQsXG4gICAgICAgICAgdGFnSWQ6IHRhZy5pZCxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBCb29rYWJsZSBQYXJ0c1xuXG4gIGdldEJvb2thYmxlUGFydHMocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGJvb2thYmxlSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQm9va2FibGVQYXJ0cyhjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGJvb2thYmxlSWQpO1xuICAgIH0gZWxzZSBpZiAocm9sZSA9PSBSb2xlLlNlY3Rpb25BZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkJvb2thYmxlUGFydHMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBib29rYWJsZUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUJvb2thYmxlUGFydHMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBib29rYWJsZUlkKTtcbiAgfVxuXG4gIGdldENsdWJCb29rYWJsZVBhcnRzKGNsdWJJZDogc3RyaW5nLCBib29rYWJsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYm9va2FibGVQYXJ0RmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQk9PS0FCTEVfUEFSVFNfUEFUSCxcbiAgICAgICAge2NsdWJJZCwgYm9va2FibGVJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRTZWN0aW9uQm9va2FibGVQYXJ0cyhzZWN0aW9uSWQ6IHN0cmluZywgYm9va2FibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGJvb2thYmxlUGFydEZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0JPT0tBQkxFX1BBUlRTX1BBVEgsXG4gICAgICAgIHtzZWN0aW9uSWQsIGJvb2thYmxlSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUJvb2thYmxlUGFydHModGVhbUlkOiBzdHJpbmcsIGJvb2thYmxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBib29rYWJsZVBhcnRGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9CT09LQUJMRV9QQVJUU19QQVRILFxuICAgICAgICB7dGVhbUlkLCBib29rYWJsZUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKTtcbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxufVxuIl19