@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.
- package/{esm2020 → esm2022}/index.mjs +2 -1
- package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-application-time.mjs +1 -1
- package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot-session.mjs +1 -1
- package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar.mjs +1 -1
- package/esm2022/lib/api-models/api-feature-flags.mjs +2 -0
- package/esm2022/lib/api-models/api-invoice/api-payment-attempt-create.mjs +11 -0
- package/esm2022/lib/api-models/index.mjs +57 -0
- package/esm2022/lib/authentication/authentication.interceptor.mjs +101 -0
- package/esm2022/lib/authentication/authentication.service.mjs +109 -0
- package/esm2022/lib/authentication/guards/authenticated.guard.mjs +38 -0
- package/esm2022/lib/authentication/guards/handle-grant-token.guard.mjs +31 -0
- package/esm2022/lib/data-access.module.mjs +39 -0
- package/esm2022/lib/maintenance/maintenance.interceptor.mjs +30 -0
- package/esm2022/lib/models/activity-extra-member.mjs +19 -0
- package/esm2022/lib/models/activity-invite.mjs +35 -0
- package/esm2022/lib/models/activity-location-group.mjs +27 -0
- package/esm2022/lib/models/activity-location-part.mjs +16 -0
- package/esm2022/lib/models/activity-location-tag.mjs +22 -0
- package/esm2022/lib/models/activity-location.mjs +46 -0
- package/esm2022/lib/models/activity-participant.mjs +19 -0
- package/esm2022/lib/models/activity-settings.mjs +27 -0
- package/esm2022/lib/models/activity-type.mjs +34 -0
- package/esm2022/lib/models/activity.mjs +137 -0
- package/esm2022/lib/models/auth/auth-member.mjs +13 -0
- package/{esm2020 → esm2022}/lib/models/auth/auth-section.mjs +3 -1
- package/{esm2020 → esm2022}/lib/models/auth/auth-team-section.mjs +3 -1
- package/esm2022/lib/models/auth/auth-team.mjs +13 -0
- package/esm2022/lib/models/auth/auth.mjs +25 -0
- package/{esm2020 → esm2022}/lib/models/authentication.mjs +3 -1
- package/esm2022/lib/models/bookable-group.mjs +27 -0
- package/esm2022/lib/models/bookable-item.mjs +49 -0
- package/esm2022/lib/models/bookable-part.mjs +16 -0
- package/esm2022/lib/models/bookable-tag.mjs +22 -0
- package/esm2022/lib/models/booking-calendar-application-time.mjs +86 -0
- package/esm2022/lib/models/booking-calendar-slot-session.mjs +87 -0
- package/esm2022/lib/models/booking-calendar-slot.mjs +79 -0
- package/esm2022/lib/models/booking-calendar.mjs +74 -0
- package/esm2022/lib/models/booking-settings.mjs +29 -0
- package/esm2022/lib/models/booking-slot-filter.mjs +72 -0
- package/esm2022/lib/models/calendar-event.mjs +35 -0
- package/esm2022/lib/models/calendar.mjs +15 -0
- package/esm2022/lib/models/card/card-deal.mjs +15 -0
- package/esm2022/lib/models/card/card-logo-urls.mjs +21 -0
- package/esm2022/lib/models/card/card-logo.mjs +11 -0
- package/esm2022/lib/models/card/card-member-ticket.mjs +17 -0
- package/esm2022/lib/models/card/card-theme.mjs +15 -0
- package/esm2022/lib/models/card/card-ticket-location.mjs +13 -0
- package/esm2022/lib/models/card/card-ticket.mjs +37 -0
- package/{esm2020 → esm2022}/lib/models/card/card.mjs +9 -1
- package/esm2022/lib/models/card/home-team.mjs +11 -0
- package/esm2022/lib/models/card/member-card.mjs +23 -0
- package/esm2022/lib/models/card/search-member-card.mjs +13 -0
- package/esm2022/lib/models/club-image.mjs +31 -0
- package/{esm2020 → esm2022}/lib/models/club-section.mjs +3 -1
- package/{esm2020 → esm2022}/lib/models/club.mjs +3 -1
- package/esm2022/lib/models/collection.mjs +19 -0
- package/esm2022/lib/models/contact.mjs +61 -0
- package/esm2022/lib/models/directory.mjs +38 -0
- package/esm2022/lib/models/email.mjs +11 -0
- package/esm2022/lib/models/event.mjs +47 -0
- package/{esm2020 → esm2022}/lib/models/external-link.mjs +3 -1
- package/esm2022/lib/models/feature-flags.mjs +14 -0
- package/esm2022/lib/models/file-object.mjs +23 -0
- package/esm2022/lib/models/general-image.mjs +11 -0
- package/esm2022/lib/models/group-role.mjs +17 -0
- package/esm2022/lib/models/image-urls.mjs +15 -0
- package/esm2022/lib/models/index.mjs +64 -0
- package/esm2022/lib/models/invoice/member-fee.mjs +13 -0
- package/esm2022/lib/models/invoice/member-invoice-row.mjs +31 -0
- package/esm2022/lib/models/invoice/member-invoice.mjs +45 -0
- package/esm2022/lib/models/invoice/payment-attempt.mjs +21 -0
- package/esm2022/lib/models/invoice/payment-types/credit-card.mjs +27 -0
- package/esm2022/lib/models/invoice/payment-types/giro.mjs +17 -0
- package/esm2022/lib/models/invoice/payment-types/swish.mjs +31 -0
- package/esm2022/lib/models/invoice/payment-types/zimpler.mjs +19 -0
- package/esm2022/lib/models/invoice/search-member-invoice.mjs +26 -0
- package/{esm2020 → esm2022}/lib/models/invoice/swish-qr-code.mjs +2 -1
- package/esm2022/lib/models/invoice/unpaid-member-invoice.mjs +13 -0
- package/esm2022/lib/models/member/member-attribute.mjs +44 -0
- package/esm2022/lib/models/member/member-contact.mjs +26 -0
- package/esm2022/lib/models/member/member-function.mjs +24 -0
- package/esm2022/lib/models/member/member-validation-settings.mjs +21 -0
- package/esm2022/lib/models/member/member.mjs +101 -0
- package/{esm2020 → esm2022}/lib/models/member/other-member-field.mjs +4 -1
- package/esm2022/lib/models/member/other-member.mjs +21 -0
- package/esm2022/lib/models/member/search-member.mjs +35 -0
- package/esm2022/lib/models/member-activity-invite.mjs +42 -0
- package/esm2022/lib/models/member-public-form-field-option.mjs +13 -0
- package/esm2022/lib/models/member-public-form-field.mjs +27 -0
- package/esm2022/lib/models/member-public-form.mjs +55 -0
- package/esm2022/lib/models/member-team-through.mjs +23 -0
- package/esm2022/lib/models/member-team.mjs +21 -0
- package/esm2022/lib/models/member-type.mjs +11 -0
- package/esm2022/lib/models/news.mjs +66 -0
- package/esm2022/lib/models/open-activity.mjs +117 -0
- package/esm2022/lib/models/optional-fee.mjs +16 -0
- package/esm2022/lib/models/overbooked-bookable-item.mjs +15 -0
- package/esm2022/lib/models/overbooked-location.mjs +15 -0
- package/esm2022/lib/models/partner.mjs +13 -0
- package/esm2022/lib/models/public-authentication.mjs +9 -0
- package/esm2022/lib/models/registration-qr-code.mjs +19 -0
- package/esm2022/lib/models/search-club.mjs +23 -0
- package/esm2022/lib/models/search-team.mjs +24 -0
- package/{esm2020 → esm2022}/lib/models/section.mjs +3 -1
- package/esm2022/lib/models/token.mjs +11 -0
- package/esm2022/lib/models/user-notification.mjs +21 -0
- package/esm2022/lib/models/user.mjs +41 -0
- package/esm2022/lib/services/activity.service.mjs +508 -0
- package/esm2022/lib/services/api.service.mjs +108 -0
- package/esm2022/lib/services/auth.service.mjs +62 -0
- package/esm2022/lib/services/bookable.service.mjs +279 -0
- package/esm2022/lib/services/booking-calendar.service.mjs +736 -0
- package/esm2022/lib/services/club.service.mjs +35 -0
- package/esm2022/lib/services/constant.service.mjs +97 -0
- package/esm2022/lib/services/email.service.mjs +28 -0
- package/esm2022/lib/services/external-link.service.mjs +25 -0
- package/esm2022/lib/services/factories/activity-settings-factory.mjs +3 -0
- package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-application-time-factory.mjs +2 -2
- package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-factory.mjs +2 -2
- package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-session-factory.mjs +2 -2
- package/esm2022/lib/services/factories/feature-flags-factory.mjs +5 -0
- package/esm2022/lib/services/factories/index.mjs +87 -0
- package/esm2022/lib/services/factories/member-public-form-factory.mjs +26 -0
- package/esm2022/lib/services/factories/payment-attempt-factory.mjs +23 -0
- package/esm2022/lib/services/feature-flags.service.mjs +44 -0
- package/esm2022/lib/services/file.service.mjs +65 -0
- package/esm2022/lib/services/index.mjs +24 -0
- package/esm2022/lib/services/invoice/invoice.service.mjs +42 -0
- package/esm2022/lib/services/invoice/payment-attempt.service.mjs +52 -0
- package/esm2022/lib/services/maintenance-mode.service.mjs +20 -0
- package/esm2022/lib/services/member-card.service.mjs +104 -0
- package/esm2022/lib/services/member-public-form.service.mjs +33 -0
- package/esm2022/lib/services/member.service.mjs +85 -0
- package/esm2022/lib/services/news.service.mjs +94 -0
- package/esm2022/lib/services/registration-qr-code.service.mjs +37 -0
- package/esm2022/lib/services/section.service.mjs +24 -0
- package/esm2022/lib/services/storage.service.mjs +44 -0
- package/esm2022/lib/services/team.service.mjs +89 -0
- package/esm2022/lib/services/token.service.mjs +58 -0
- package/esm2022/lib/services/user-notification.service.mjs +24 -0
- package/esm2022/lib/services/user.service.mjs +69 -0
- package/esm2022/lib/store/actions/activity.actions.mjs +177 -0
- package/esm2022/lib/store/actions/auth.actions.mjs +45 -0
- package/esm2022/lib/store/actions/booking.actions.mjs +187 -0
- package/esm2022/lib/store/actions/calendar.actions.mjs +77 -0
- package/esm2022/lib/store/actions/club-info.actions.mjs +23 -0
- package/esm2022/lib/store/actions/constant.actions.mjs +124 -0
- package/esm2022/lib/store/actions/email.actions.mjs +19 -0
- package/esm2022/lib/store/actions/external-link.actions.mjs +11 -0
- package/esm2022/lib/store/actions/file.actions.mjs +41 -0
- package/esm2022/lib/store/actions/index.mjs +19 -0
- package/esm2022/lib/store/actions/invoice.actions.mjs +75 -0
- package/esm2022/lib/store/actions/member-card.actions.mjs +73 -0
- package/esm2022/lib/store/actions/member.actions.mjs +69 -0
- package/esm2022/lib/store/actions/news.actions.mjs +47 -0
- package/esm2022/lib/store/actions/public-form.actions.mjs +17 -0
- package/esm2022/lib/store/actions/store.actions.mjs +7 -0
- package/esm2022/lib/store/actions/team.actions.mjs +91 -0
- package/esm2022/lib/store/actions/token.actions.mjs +53 -0
- package/esm2022/lib/store/actions/user.actions.mjs +49 -0
- package/esm2022/lib/store/effects/activity.effects.mjs +211 -0
- package/esm2022/lib/store/effects/auth.effects.mjs +96 -0
- package/esm2022/lib/store/effects/booking.effects.mjs +102 -0
- package/esm2022/lib/store/effects/calendar.effects.mjs +84 -0
- package/esm2022/lib/store/effects/club-info.effects.mjs +26 -0
- package/esm2022/lib/store/effects/constant.effects.mjs +69 -0
- package/esm2022/lib/store/effects/data-access.effects.mjs +37 -0
- package/esm2022/lib/store/effects/email.effects.mjs +27 -0
- package/esm2022/lib/store/effects/external-link.effects.mjs +20 -0
- package/esm2022/lib/store/effects/file.effects.mjs +149 -0
- package/esm2022/lib/store/effects/index.mjs +2 -0
- package/esm2022/lib/store/effects/invoice.effects.mjs +72 -0
- package/esm2022/lib/store/effects/member-card.effects.mjs +80 -0
- package/esm2022/lib/store/effects/member.effects.mjs +75 -0
- package/esm2022/lib/store/effects/mixins/extra-members-mixin.mjs +60 -0
- package/esm2022/lib/store/effects/news.effects.mjs +82 -0
- package/esm2022/lib/store/effects/public-form.effects.mjs +33 -0
- package/esm2022/lib/store/effects/team.effects.mjs +82 -0
- package/esm2022/lib/store/effects/token.effects.mjs +81 -0
- package/esm2022/lib/store/effects/user.effects.mjs +59 -0
- package/esm2022/lib/store/index.mjs +8 -0
- package/esm2022/lib/store/interfaces/activate-card-ticket.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/activate-user.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/calendar-activity-locations.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/calendar-activity-types.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/calendar-open-activity-result.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/calendar-public-open-activity-results.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/directory-result.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/email-settings.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/index.mjs +20 -0
- package/esm2022/lib/store/interfaces/list-result-interface.mjs +4 -0
- package/esm2022/lib/store/interfaces/location.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/member-calendar-event-result.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/member-card-deals.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/member-card-tickets.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/public-activate-card-ticket.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/remove-member-auth.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/remove-team-auth.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/retrieve-result.interface.mjs +4 -0
- package/esm2022/lib/store/interfaces/team-activity.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/team-calendar-event-result.interface.mjs +2 -0
- package/esm2022/lib/store/operators/ensure-activity.mjs +8 -0
- package/esm2022/lib/store/operators/ensure-auths.mjs +18 -0
- package/esm2022/lib/store/operators/ensure-calendar-events-loading-done.mjs +23 -0
- package/esm2022/lib/store/operators/ensure-constants.mjs +21 -0
- package/esm2022/lib/store/operators/ensure-current-auth.mjs +17 -0
- package/esm2022/lib/store/operators/ensure-current-user.mjs +16 -0
- package/esm2022/lib/store/operators/ensure-loading-done.mjs +24 -0
- package/esm2022/lib/store/operators/ensure-open-activities-loading-done.mjs +5 -0
- package/esm2022/lib/store/operators/ensure-public-open-activities-loading-done.mjs +5 -0
- package/esm2022/lib/store/operators/ensure-updated-data.mjs +10 -0
- package/esm2022/lib/store/operators/index.mjs +11 -0
- package/esm2022/lib/store/reducers/auth.reducer.mjs +52 -0
- package/esm2022/lib/store/reducers/booking.reducers.mjs +79 -0
- package/esm2022/lib/store/reducers/calendar.reducer.mjs +449 -0
- package/esm2022/lib/store/reducers/club-info.reducer.mjs +9 -0
- package/esm2022/lib/store/reducers/constant.reducer.mjs +181 -0
- package/esm2022/lib/store/reducers/data-access.reducer.mjs +37 -0
- package/esm2022/lib/store/reducers/email.reducer.mjs +21 -0
- package/esm2022/lib/store/reducers/external-link.reducer.mjs +6 -0
- package/esm2022/lib/store/reducers/file.reducer.mjs +118 -0
- package/esm2022/lib/store/reducers/index.mjs +2 -0
- package/esm2022/lib/store/reducers/invoice.reducer.mjs +29 -0
- package/esm2022/lib/store/reducers/member-card.reducer.mjs +33 -0
- package/esm2022/lib/store/reducers/member.reducer.mjs +21 -0
- package/esm2022/lib/store/reducers/news.reducer.mjs +96 -0
- package/esm2022/lib/store/reducers/public-form.reducer.mjs +21 -0
- package/esm2022/lib/store/reducers/public.reducer.mjs +109 -0
- package/esm2022/lib/store/reducers/reducer-helpers.mjs +61 -0
- package/esm2022/lib/store/reducers/team.reducer.mjs +77 -0
- package/esm2022/lib/store/reducers/token.reducer.mjs +21 -0
- package/esm2022/lib/store/reducers/user.reducer.mjs +18 -0
- package/esm2022/lib/store/selectors/auth.selectors.mjs +6 -0
- package/esm2022/lib/store/selectors/booking.selectors.mjs +15 -0
- package/esm2022/lib/store/selectors/calendar.selectors.mjs +18 -0
- package/esm2022/lib/store/selectors/club-info.selectors.mjs +5 -0
- package/esm2022/lib/store/selectors/constant.selectors.mjs +38 -0
- package/esm2022/lib/store/selectors/email.selectors.mjs +5 -0
- package/esm2022/lib/store/selectors/external-links.selectors.mjs +5 -0
- package/esm2022/lib/store/selectors/file.selectors.mjs +6 -0
- package/esm2022/lib/store/selectors/index.mjs +18 -0
- package/esm2022/lib/store/selectors/invoice.selectors.mjs +6 -0
- package/esm2022/lib/store/selectors/member-card.selectors.mjs +8 -0
- package/esm2022/lib/store/selectors/member.selectors.mjs +10 -0
- package/esm2022/lib/store/selectors/news.selectors.mjs +8 -0
- package/esm2022/lib/store/selectors/public-form.selectors.mjs +5 -0
- package/esm2022/lib/store/selectors/public.selectors.mjs +18 -0
- package/esm2022/lib/store/selectors/team.selectors.mjs +12 -0
- package/esm2022/lib/store/selectors/token.selectors.mjs +6 -0
- package/esm2022/lib/store/selectors/user.selectors.mjs +6 -0
- package/esm2022/lib/store/state/auth.state.mjs +5 -0
- package/esm2022/lib/store/state/booking.state.mjs +16 -0
- package/esm2022/lib/store/state/calendar.state.mjs +17 -0
- package/esm2022/lib/store/state/club-info.state.mjs +4 -0
- package/esm2022/lib/store/state/constant.state.mjs +21 -0
- package/esm2022/lib/store/state/data-access.state.mjs +2 -0
- package/esm2022/lib/store/state/email.state.mjs +7 -0
- package/esm2022/lib/store/state/external-link.state.mjs +4 -0
- package/esm2022/lib/store/state/file.state.mjs +5 -0
- package/esm2022/lib/store/state/index.mjs +19 -0
- package/esm2022/lib/store/state/invoice.state.mjs +5 -0
- package/esm2022/lib/store/state/member-card.state.mjs +7 -0
- package/esm2022/lib/store/state/member.state.mjs +10 -0
- package/esm2022/lib/store/state/news.state.mjs +7 -0
- package/esm2022/lib/store/state/public-form.state.mjs +5 -0
- package/esm2022/lib/store/state/public.state.mjs +17 -0
- package/esm2022/lib/store/state/team.state.mjs +11 -0
- package/esm2022/lib/store/state/token.state.mjs +5 -0
- package/esm2022/lib/store/state/user.state.mjs +5 -0
- package/fesm2022/myclub_se-data-access.mjs +10118 -0
- package/fesm2022/myclub_se-data-access.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/lib/api-models/api-booking-calendar-application-time.d.ts +3 -0
- package/lib/api-models/api-booking-calendar-slot-session.d.ts +3 -0
- package/lib/api-models/api-booking-calendar.d.ts +2 -0
- package/lib/api-models/api-feature-flags.d.ts +5 -0
- package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.d.ts +1 -1
- package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.d.ts +1 -1
- package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.d.ts +1 -1
- package/lib/api-models/index.d.ts +1 -0
- package/lib/authentication/authentication.interceptor.d.ts +12 -7
- package/lib/data-access.module.d.ts +3 -1
- package/lib/models/activity-settings.d.ts +3 -1
- package/lib/models/auth/auth.d.ts +3 -2
- package/lib/models/booking-calendar-application-time.d.ts +8 -3
- package/lib/models/booking-calendar-slot-session.d.ts +10 -5
- package/lib/models/booking-calendar-slot.d.ts +7 -6
- package/lib/models/booking-calendar.d.ts +4 -1
- package/lib/models/booking-settings.d.ts +5 -4
- package/lib/models/booking-slot-filter.d.ts +17 -0
- package/lib/models/directory.d.ts +1 -0
- package/lib/models/feature-flags.d.ts +7 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.d.ts +1 -1
- package/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.d.ts +1 -1
- package/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.d.ts +1 -1
- package/lib/services/activity.service.d.ts +55 -52
- package/lib/services/bookable.service.d.ts +9 -9
- package/lib/services/booking-calendar.service.d.ts +6 -23
- package/lib/services/constant.service.d.ts +5 -11
- package/lib/services/email.service.d.ts +0 -9
- package/lib/services/factories/feature-flags-factory.d.ts +3 -0
- package/lib/services/factories/index.d.ts +1 -0
- package/lib/services/feature-flags.service.d.ts +13 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/member.service.d.ts +7 -3
- package/lib/services/storage.service.d.ts +20 -0
- package/lib/store/actions/activity.actions.d.ts +641 -0
- package/lib/store/actions/auth.actions.d.ts +83 -0
- package/lib/store/actions/booking.actions.d.ts +652 -0
- package/lib/store/actions/calendar.actions.d.ts +381 -0
- package/lib/store/actions/club-info.actions.d.ts +54 -0
- package/lib/store/actions/constant.actions.d.ts +249 -0
- package/lib/store/actions/email.actions.d.ts +57 -0
- package/lib/store/actions/external-link.actions.d.ts +22 -0
- package/lib/store/actions/file.actions.d.ts +169 -0
- package/lib/store/actions/index.d.ts +18 -0
- package/lib/store/actions/invoice.actions.d.ts +300 -0
- package/lib/store/actions/member-card.actions.d.ts +253 -0
- package/lib/store/actions/member.actions.d.ts +216 -0
- package/lib/store/actions/news.actions.d.ts +164 -0
- package/lib/store/actions/public-form.actions.d.ts +46 -0
- package/lib/store/actions/store.actions.d.ts +4 -0
- package/lib/store/actions/team.actions.d.ts +334 -0
- package/lib/store/actions/token.actions.d.ts +151 -0
- package/lib/store/actions/user.actions.d.ts +102 -0
- package/lib/store/effects/activity.effects.d.ts +152 -0
- package/lib/store/effects/auth.effects.d.ts +35 -0
- package/lib/store/effects/booking.effects.d.ts +196 -0
- package/lib/store/effects/calendar.effects.d.ts +129 -0
- package/lib/store/effects/club-info.effects.d.ts +24 -0
- package/lib/store/effects/constant.effects.d.ts +96 -0
- package/lib/store/effects/data-access.effects.d.ts +18 -0
- package/lib/store/effects/email.effects.d.ts +14 -0
- package/lib/store/effects/external-link.effects.d.ts +14 -0
- package/lib/store/effects/file.effects.d.ts +55 -0
- package/lib/store/effects/index.d.ts +1 -0
- package/lib/store/effects/invoice.effects.d.ts +80 -0
- package/lib/store/effects/member-card.effects.d.ts +69 -0
- package/lib/store/effects/member.effects.d.ts +58 -0
- package/lib/store/effects/mixins/extra-members-mixin.d.ts +10 -0
- package/lib/store/effects/news.effects.d.ts +49 -0
- package/lib/store/effects/public-form.effects.d.ts +19 -0
- package/lib/store/effects/team.effects.d.ts +80 -0
- package/lib/store/effects/token.effects.d.ts +66 -0
- package/lib/store/effects/user.effects.d.ts +36 -0
- package/lib/store/index.d.ts +7 -0
- package/lib/store/interfaces/activate-card-ticket.interface.d.ts +6 -0
- package/lib/store/interfaces/activate-user.interface.d.ts +4 -0
- package/lib/store/interfaces/calendar-activity-locations.interface.d.ts +7 -0
- package/lib/store/interfaces/calendar-activity-types.interface.d.ts +7 -0
- package/lib/store/interfaces/calendar-open-activity-result.interface.d.ts +8 -0
- package/lib/store/interfaces/calendar-public-open-activity-results.interface.d.ts +7 -0
- package/lib/store/interfaces/directory-result.interface.d.ts +5 -0
- package/lib/store/interfaces/email-settings.interface.d.ts +5 -0
- package/lib/store/interfaces/index.d.ts +19 -0
- package/lib/store/interfaces/list-result-interface.d.ts +13 -0
- package/lib/store/interfaces/location.interface.d.ts +7 -0
- package/lib/store/interfaces/member-calendar-event-result.interface.d.ts +8 -0
- package/lib/store/interfaces/member-card-deals.interface.d.ts +5 -0
- package/lib/store/interfaces/member-card-tickets.interface.d.ts +5 -0
- package/lib/store/interfaces/public-activate-card-ticket.interface.d.ts +6 -0
- package/lib/store/interfaces/remove-member-auth.interface.d.ts +4 -0
- package/lib/store/interfaces/remove-team-auth.interface.d.ts +4 -0
- package/lib/store/interfaces/retrieve-result.interface.d.ts +13 -0
- package/lib/store/interfaces/team-activity.interface.d.ts +9 -0
- package/lib/store/interfaces/team-calendar-event-result.interface.d.ts +8 -0
- package/lib/store/operators/ensure-activity.d.ts +4 -0
- package/lib/store/operators/ensure-auths.d.ts +13 -0
- package/lib/store/operators/ensure-calendar-events-loading-done.d.ts +19 -0
- package/lib/store/operators/ensure-constants.d.ts +12 -0
- package/lib/store/operators/ensure-current-auth.d.ts +12 -0
- package/lib/store/operators/ensure-current-user.d.ts +11 -0
- package/lib/store/operators/ensure-loading-done.d.ts +20 -0
- package/lib/store/operators/ensure-open-activities-loading-done.d.ts +3 -0
- package/lib/store/operators/ensure-public-open-activities-loading-done.d.ts +3 -0
- package/lib/store/operators/ensure-updated-data.d.ts +4 -0
- package/lib/store/operators/index.d.ts +10 -0
- package/lib/store/reducers/auth.reducer.d.ts +2 -0
- package/lib/store/reducers/booking.reducers.d.ts +2 -0
- package/lib/store/reducers/calendar.reducer.d.ts +2 -0
- package/lib/store/reducers/club-info.reducer.d.ts +2 -0
- package/lib/store/reducers/constant.reducer.d.ts +2 -0
- package/lib/store/reducers/data-access.reducer.d.ts +3 -0
- package/lib/store/reducers/email.reducer.d.ts +2 -0
- package/lib/store/reducers/external-link.reducer.d.ts +2 -0
- package/lib/store/reducers/file.reducer.d.ts +2 -0
- package/lib/store/reducers/index.d.ts +1 -0
- package/lib/store/reducers/invoice.reducer.d.ts +2 -0
- package/lib/store/reducers/member-card.reducer.d.ts +2 -0
- package/lib/store/reducers/member.reducer.d.ts +2 -0
- package/lib/store/reducers/news.reducer.d.ts +2 -0
- package/lib/store/reducers/public-form.reducer.d.ts +2 -0
- package/lib/store/reducers/public.reducer.d.ts +2 -0
- package/lib/store/reducers/reducer-helpers.d.ts +8 -0
- package/lib/store/reducers/team.reducer.d.ts +2 -0
- package/lib/store/reducers/token.reducer.d.ts +2 -0
- package/lib/store/reducers/user.reducer.d.ts +2 -0
- package/lib/store/selectors/auth.selectors.d.ts +4 -0
- package/lib/store/selectors/booking.selectors.d.ts +13 -0
- package/lib/store/selectors/calendar.selectors.d.ts +16 -0
- package/lib/store/selectors/club-info.selectors.d.ts +3 -0
- package/lib/store/selectors/constant.selectors.d.ts +19 -0
- package/lib/store/selectors/email.selectors.d.ts +3 -0
- package/lib/store/selectors/external-links.selectors.d.ts +3 -0
- package/lib/store/selectors/file.selectors.d.ts +4 -0
- package/lib/store/selectors/index.d.ts +17 -0
- package/lib/store/selectors/invoice.selectors.d.ts +4 -0
- package/lib/store/selectors/member-card.selectors.d.ts +6 -0
- package/lib/store/selectors/member.selectors.d.ts +8 -0
- package/lib/store/selectors/news.selectors.d.ts +6 -0
- package/lib/store/selectors/public-form.selectors.d.ts +3 -0
- package/lib/store/selectors/public.selectors.d.ts +16 -0
- package/lib/store/selectors/team.selectors.d.ts +10 -0
- package/lib/store/selectors/token.selectors.d.ts +4 -0
- package/lib/store/selectors/user.selectors.d.ts +4 -0
- package/lib/store/state/auth.state.d.ts +7 -0
- package/lib/store/state/booking.state.d.ts +16 -0
- package/lib/store/state/calendar.state.d.ts +19 -0
- package/lib/store/state/club-info.state.d.ts +6 -0
- package/lib/store/state/constant.state.d.ts +23 -0
- package/lib/store/state/data-access.state.d.ts +36 -0
- package/lib/store/state/email.state.d.ts +5 -0
- package/lib/store/state/external-link.state.d.ts +6 -0
- package/lib/store/state/file.state.d.ts +6 -0
- package/lib/store/state/index.d.ts +18 -0
- package/lib/store/state/invoice.state.d.ts +7 -0
- package/lib/store/state/member-card.state.d.ts +9 -0
- package/lib/store/state/member.state.d.ts +11 -0
- package/lib/store/state/news.state.d.ts +9 -0
- package/lib/store/state/public-form.state.d.ts +7 -0
- package/lib/store/state/public.state.d.ts +19 -0
- package/lib/store/state/team.state.d.ts +13 -0
- package/lib/store/state/token.state.d.ts +7 -0
- package/lib/store/state/user.state.d.ts +7 -0
- package/lib/types/attribute-type.d.ts +1 -1
- package/lib/types/booking-calendar-slot-reserved-time-position.d.ts +1 -1
- package/lib/types/booking-calendar-slot-type.d.ts +1 -1
- package/lib/types/contact-type.d.ts +1 -1
- package/lib/types/grant-type.d.ts +1 -1
- package/lib/types/payment-attempt-status-type.d.ts +1 -1
- package/lib/types/payment-attempt-type.d.ts +1 -1
- package/lib/types/sex-type.d.ts +1 -1
- package/package.json +13 -18
- package/esm2020/lib/api-models/api-invoice/api-payment-attempt-create.mjs +0 -8
- package/esm2020/lib/api-models/index.mjs +0 -56
- package/esm2020/lib/authentication/authentication.interceptor.mjs +0 -66
- package/esm2020/lib/authentication/authentication.service.mjs +0 -106
- package/esm2020/lib/authentication/guards/authenticated.guard.mjs +0 -36
- package/esm2020/lib/authentication/guards/handle-grant-token.guard.mjs +0 -29
- package/esm2020/lib/data-access.module.mjs +0 -30
- package/esm2020/lib/maintenance/maintenance.interceptor.mjs +0 -29
- package/esm2020/lib/models/activity-extra-member.mjs +0 -12
- package/esm2020/lib/models/activity-invite.mjs +0 -20
- package/esm2020/lib/models/activity-location-group.mjs +0 -21
- package/esm2020/lib/models/activity-location-part.mjs +0 -14
- package/esm2020/lib/models/activity-location-tag.mjs +0 -17
- package/esm2020/lib/models/activity-location.mjs +0 -36
- package/esm2020/lib/models/activity-participant.mjs +0 -12
- package/esm2020/lib/models/activity-settings.mjs +0 -14
- package/esm2020/lib/models/activity-type.mjs +0 -26
- package/esm2020/lib/models/activity.mjs +0 -92
- package/esm2020/lib/models/auth/auth-member.mjs +0 -10
- package/esm2020/lib/models/auth/auth-team.mjs +0 -9
- package/esm2020/lib/models/auth/auth.mjs +0 -15
- package/esm2020/lib/models/bookable-group.mjs +0 -21
- package/esm2020/lib/models/bookable-item.mjs +0 -39
- package/esm2020/lib/models/bookable-part.mjs +0 -14
- package/esm2020/lib/models/bookable-tag.mjs +0 -17
- package/esm2020/lib/models/booking-calendar-application-time.mjs +0 -52
- package/esm2020/lib/models/booking-calendar-slot-session.mjs +0 -54
- package/esm2020/lib/models/booking-calendar-slot.mjs +0 -53
- package/esm2020/lib/models/booking-calendar.mjs +0 -54
- package/esm2020/lib/models/booking-settings.mjs +0 -22
- package/esm2020/lib/models/calendar-event.mjs +0 -20
- package/esm2020/lib/models/calendar.mjs +0 -10
- package/esm2020/lib/models/card/card-deal.mjs +0 -10
- package/esm2020/lib/models/card/card-logo-urls.mjs +0 -13
- package/esm2020/lib/models/card/card-logo.mjs +0 -8
- package/esm2020/lib/models/card/card-member-ticket.mjs +0 -11
- package/esm2020/lib/models/card/card-theme.mjs +0 -10
- package/esm2020/lib/models/card/card-ticket-location.mjs +0 -9
- package/esm2020/lib/models/card/card-ticket.mjs +0 -21
- package/esm2020/lib/models/card/home-team.mjs +0 -8
- package/esm2020/lib/models/card/member-card.mjs +0 -14
- package/esm2020/lib/models/card/search-member-card.mjs +0 -9
- package/esm2020/lib/models/club-image.mjs +0 -18
- package/esm2020/lib/models/collection.mjs +0 -15
- package/esm2020/lib/models/contact.mjs +0 -46
- package/esm2020/lib/models/directory.mjs +0 -26
- package/esm2020/lib/models/email.mjs +0 -8
- package/esm2020/lib/models/event.mjs +0 -26
- package/esm2020/lib/models/file-object.mjs +0 -14
- package/esm2020/lib/models/general-image.mjs +0 -8
- package/esm2020/lib/models/group-role.mjs +0 -11
- package/esm2020/lib/models/image-urls.mjs +0 -10
- package/esm2020/lib/models/index.mjs +0 -62
- package/esm2020/lib/models/invoice/member-fee.mjs +0 -9
- package/esm2020/lib/models/invoice/member-invoice-row.mjs +0 -18
- package/esm2020/lib/models/invoice/member-invoice.mjs +0 -25
- package/esm2020/lib/models/invoice/payment-attempt.mjs +0 -13
- package/esm2020/lib/models/invoice/payment-types/credit-card.mjs +0 -16
- package/esm2020/lib/models/invoice/payment-types/giro.mjs +0 -11
- package/esm2020/lib/models/invoice/payment-types/swish.mjs +0 -18
- package/esm2020/lib/models/invoice/payment-types/zimpler.mjs +0 -12
- package/esm2020/lib/models/invoice/search-member-invoice.mjs +0 -17
- package/esm2020/lib/models/invoice/unpaid-member-invoice.mjs +0 -9
- package/esm2020/lib/models/member/member-attribute.mjs +0 -33
- package/esm2020/lib/models/member/member-contact.mjs +0 -21
- package/esm2020/lib/models/member/member-function.mjs +0 -19
- package/esm2020/lib/models/member/member-validation-settings.mjs +0 -13
- package/esm2020/lib/models/member/member.mjs +0 -75
- package/esm2020/lib/models/member/other-member.mjs +0 -13
- package/esm2020/lib/models/member/search-member.mjs +0 -20
- package/esm2020/lib/models/member-activity-invite.mjs +0 -31
- package/esm2020/lib/models/member-public-form-field-option.mjs +0 -9
- package/esm2020/lib/models/member-public-form-field.mjs +0 -16
- package/esm2020/lib/models/member-public-form.mjs +0 -30
- package/esm2020/lib/models/member-team-through.mjs +0 -14
- package/esm2020/lib/models/member-team.mjs +0 -13
- package/esm2020/lib/models/member-type.mjs +0 -8
- package/esm2020/lib/models/news.mjs +0 -47
- package/esm2020/lib/models/open-activity.mjs +0 -62
- package/esm2020/lib/models/optional-fee.mjs +0 -11
- package/esm2020/lib/models/overbooked-bookable-item.mjs +0 -10
- package/esm2020/lib/models/overbooked-location.mjs +0 -10
- package/esm2020/lib/models/partner.mjs +0 -9
- package/esm2020/lib/models/public-authentication.mjs +0 -7
- package/esm2020/lib/models/registration-qr-code.mjs +0 -12
- package/esm2020/lib/models/search-club.mjs +0 -14
- package/esm2020/lib/models/search-team.mjs +0 -18
- package/esm2020/lib/models/token.mjs +0 -8
- package/esm2020/lib/models/user-notification.mjs +0 -13
- package/esm2020/lib/models/user.mjs +0 -31
- package/esm2020/lib/services/activity.service.mjs +0 -470
- package/esm2020/lib/services/api.service.mjs +0 -106
- package/esm2020/lib/services/auth.service.mjs +0 -61
- package/esm2020/lib/services/bookable.service.mjs +0 -278
- package/esm2020/lib/services/booking-calendar.service.mjs +0 -794
- package/esm2020/lib/services/club.service.mjs +0 -34
- package/esm2020/lib/services/constant.service.mjs +0 -131
- package/esm2020/lib/services/email.service.mjs +0 -53
- package/esm2020/lib/services/external-link.service.mjs +0 -24
- package/esm2020/lib/services/factories/activity-settings-factory.mjs +0 -3
- package/esm2020/lib/services/factories/index.mjs +0 -86
- package/esm2020/lib/services/factories/member-public-form-factory.mjs +0 -26
- package/esm2020/lib/services/factories/payment-attempt-factory.mjs +0 -23
- package/esm2020/lib/services/file.service.mjs +0 -64
- package/esm2020/lib/services/index.mjs +0 -22
- package/esm2020/lib/services/invoice/invoice.service.mjs +0 -41
- package/esm2020/lib/services/invoice/payment-attempt.service.mjs +0 -51
- package/esm2020/lib/services/maintenance-mode.service.mjs +0 -21
- package/esm2020/lib/services/member-card.service.mjs +0 -103
- package/esm2020/lib/services/member-public-form.service.mjs +0 -32
- package/esm2020/lib/services/member.service.mjs +0 -63
- package/esm2020/lib/services/news.service.mjs +0 -102
- package/esm2020/lib/services/registration-qr-code.service.mjs +0 -36
- package/esm2020/lib/services/section.service.mjs +0 -23
- package/esm2020/lib/services/team.service.mjs +0 -88
- package/esm2020/lib/services/token.service.mjs +0 -57
- package/esm2020/lib/services/user-notification.service.mjs +0 -23
- package/esm2020/lib/services/user.service.mjs +0 -68
- package/fesm2015/myclub_se-data-access.mjs +0 -4835
- package/fesm2015/myclub_se-data-access.mjs.map +0 -1
- package/fesm2020/myclub_se-data-access.mjs +0 -4831
- package/fesm2020/myclub_se-data-access.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-extra-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-invite.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-group.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-part.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-tag.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-participant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-section.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team-section.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-bookable-group.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-bookable-item.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-bookable-part.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-bookable-tag.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-booking-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-calendar-event.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-calendar.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-deal.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo-urls.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-member-ticket.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-theme.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-home-team.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-member-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-search-member-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-club-image.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-club-section.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-club.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-collection.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-directory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-event.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-external-link.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-file-object.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-general-image.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-group-role.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-image-urls.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-credit-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-giro.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-swish.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-zimpler.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-fee.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice-row.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-payment-attempt.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-search-member-invoice.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-swish-qr-code.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-unpaid-member-invoice.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-contact.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-attribute.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-contact.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-validation-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member-field.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-search-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-activity-invite.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field-option.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-team-through.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-team.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-news.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-open-activity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-optional-fee.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-bookable-item.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-partner.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-public-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-registration-qr-code.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-search-club.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-search-team.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-section.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-user-notification.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-user.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/authentication/authentication.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/authentication/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/email-recipient.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/new-account.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/open-activity-search-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/option.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/sms-recipient.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/maintenance/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/auth/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/member/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/role.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-extra-member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-invite-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-location-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-location-group-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-location-part-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-location-tag-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-participant-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-type-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-section-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-team-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-team-section-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/bookable-group-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/bookable-item-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/bookable-part-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/bookable-tag-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/booking-settings-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-deal-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-logo-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-logo-urls-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-member-ticket-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-theme-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-location-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/club-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/club-image-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/club-section-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/contact-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/credit-card-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/directory-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/event-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/external-link-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/file-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/general-image-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/giro-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/group-role-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/home-team-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/image-urls-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-attribute-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-card-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-contact-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-fee-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-function-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-invite-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-row-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-option-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-team-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-team-through-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-type-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-validation-settings-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/news-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/open-activity-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/optional-fee-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/other-member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/other-member-field-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/overbooked-bookable-item-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/overbooked-location-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/partner-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/public-authentication-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/registration-qr-code-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-club-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-member-card-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-member-invoice-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-member-team-through-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-team-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/section-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/swish-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/token-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/unpaid-invoice-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/user-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/user-notification-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/zimpler-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/invoice/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/attribute-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-reserved-time-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/contact-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/grant-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/payment-attempt-status-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/payment-attempt-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/sex-type.mjs +0 -0
- /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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3NlcnZpY2VzL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7OztBQUUzQyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQVMsUUFBUSxDQUFDLENBQUM7QUFFM0QsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDO0FBRTNCLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWE7SUFDL0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsZ0JBQWdCO0lBQ3JDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWE7SUFDL0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsZUFBZTtJQUNuQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTO0lBQ3hCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7Q0FDaEIsQ0FBQztBQWtCRixNQUFNLE9BQU8sVUFBVTtJQUVYO0lBQ2dCO0lBRjFCLFlBQ1UsSUFBZ0IsRUFDQSxNQUFjO1FBRDlCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDQSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRXhDLENBQUM7SUFFRCxjQUFjLENBQ1osSUFBVSxFQUNWLElBQVksRUFDWixhQUF5QixFQUFFLEVBQzNCLFVBQW1CLEVBQUU7UUFFckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQzthQUNoRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBK0IsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FDbEUsQ0FBQztJQUNOLENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsSUFBVSxFQUNWLElBQVksRUFDWixhQUF5QixFQUFFLEVBQzNCLFVBQW1CLEVBQUU7UUFFckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsQ0FDL0UsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsUUFBK0IsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQ1gsT0FBc0IsRUFDdEIsSUFBVSxFQUNWLElBQVksRUFDWixhQUF5QixFQUFFLEVBQzNCLFVBQW1CLEVBQUU7UUFFckIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFtQixJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3JFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM3RSxPQUFPLElBQUksVUFBVSxDQUFJLGFBQWEsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZHLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUNULE9BQXNCLEVBQ3RCLElBQVUsRUFDVixJQUFZLEVBQ1osYUFBeUIsRUFBRSxFQUMzQixVQUFtQixFQUFFO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUNWLE9BQXNCLEVBQ3RCLElBQVUsRUFDVixJQUFZLEVBQ1osYUFBeUIsRUFBRSxFQUMzQixJQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxZQUFZLENBQ1YsT0FBc0IsRUFDdEIsSUFBVSxFQUNWLElBQVksRUFDWixhQUF5QixFQUFFLEVBQzNCLElBQWEsRUFDYixVQUFtQixFQUFFO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUNwQixJQUFVLEVBQ1YsSUFBWSxFQUNaLGFBQXlCLEVBQUUsRUFDM0IsSUFBYSxFQUNiLFVBQW1CLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLENBQUMsUUFBK0IsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FDeEgsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQ1osZUFBOEIsRUFDOUIsSUFBVSxFQUNWLElBQVksRUFDWixhQUF5QixFQUFFLEVBQzNCLElBQWEsRUFDYixVQUFtQixFQUFFO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM5RCxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUNuRCxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUN0QixJQUFVLEVBQ1YsSUFBWSxFQUNaLGFBQXlCLEVBQUUsRUFDM0IsSUFBYSxFQUNiLFVBQW1CLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDeEUsR0FBRyxDQUFDLENBQUMsUUFBK0IsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FDN0YsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsSUFBVSxFQUFFLElBQVksRUFBRSxVQUFzQixFQUFFLE9BQWdCO1FBQy9FLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQU0sUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFTyxHQUFHLENBQUksSUFBVSxFQUFFLElBQVksRUFBRSxVQUFzQixFQUFFLE9BQWdCO1FBQy9FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQTBDO1FBQzVELElBQUksSUFBSSxZQUFZLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoRCxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLEtBQUssQ0FBSSxJQUFVLEVBQUUsSUFBWSxFQUFFLFVBQXNCLEVBQUUsSUFBYSxFQUFFLE9BQWdCO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVUsRUFBRSxJQUFZLEVBQUUsVUFBc0IsRUFBRSxJQUFhLEVBQUUsT0FBZ0I7UUFDMUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFTyxJQUFJLENBQUMsSUFBVSxFQUFFLElBQVksRUFBRSxNQUFrQjtRQUN2RCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVPLElBQUksQ0FBSSxJQUFVLEVBQUUsSUFBWSxFQUFFLFVBQXNCLEVBQUUsSUFBYSxFQUFFLE9BQWdCO1FBQy9GLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVUsRUFBRSxJQUFZLEVBQUUsVUFBc0IsRUFBRSxJQUFhLEVBQUUsT0FBZ0I7UUFDekcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFTyxHQUFHLENBQUMsSUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO3VHQXZLVSxVQUFVLDRDQUdYLE1BQU07MkdBSEwsVUFBVSxjQUZULE1BQU07OzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJSSxNQUFNOzJCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0FwaUNvbGxlY3Rpb259IGZyb20gJy4uL2FwaS1tb2RlbHMnO1xuaW1wb3J0IHtDb2xsZWN0aW9uLCBSb2xlfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgRE9NQUlOID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ2RvbWFpbicpO1xuXG5jb25zdCBBUElfUEFUSCA9ICdhcGkvdjMvJztcblxuY29uc3QgUk9MRV9QQVRIID0ge1xuICBbUm9sZS5DbHViQWRtaW5dOiAnY2x1Yi1hZG1pbi8nLFxuICBbUm9sZS5TZWN0aW9uQWRtaW5dOiAnc2VjdGlvbi1hZG1pbi8nLFxuICBbUm9sZS5UZWFtQWRtaW5dOiAndGVhbS1hZG1pbi8nLFxuICBbUm9sZS5NZW1iZXJBZG1pbl06ICdtZW1iZXItYWRtaW4vJyxcbiAgW1JvbGUuUHVibGljXTogJ3B1YmxpYy8nLFxuICBbUm9sZS5Ob25lXTogJydcbn07XG5cbmludGVyZmFjZSBGYWN0b3J5PEEsIFQ+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
|