@myclub_se/data-access 2.15.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +73 -0
- package/esm2022/lib/store/actions/member-card.actions.mjs +71 -0
- package/esm2022/lib/store/actions/member.actions.mjs +65 -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 +83 -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 +6 -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 +10080 -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 +298 -0
- package/lib/store/actions/member-card.actions.d.ts +251 -0
- package/lib/store/actions/member.actions.d.ts +212 -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 +326 -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
|
@@ -1,470 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Role, } from '../models';
|
|
3
|
-
import { tap } from 'rxjs/operators';
|
|
4
|
-
import { of } from 'rxjs';
|
|
5
|
-
import { activityFactory, activityInviteFactory, activityLocationFactory, activitySettingsFactory, activityTypeFactory, eventFactory, memberActivityInviteFactory, openActivityFactory, searchMemberFactory, } from './factories';
|
|
6
|
-
import { sub } from 'date-fns';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./api.service";
|
|
9
|
-
const MEMBER_ACTIVITY_ATTENDANCE_PATH = ':memberId/activities/activity/:activityId/attendance/';
|
|
10
|
-
const MEMBER_ACTIVITY_INVITE_PATH = ':memberId/activities/:activityInviteId/';
|
|
11
|
-
const MEMBER_ACTIVITY_PATH = ':memberId/activities/activity/:activityId/';
|
|
12
|
-
const MEMBER_ACTIVITY_INVITES_PATH = ':memberId/activities/';
|
|
13
|
-
const MEMBER_CALENDAR_PATH = ':memberId/activities/calendar/';
|
|
14
|
-
const MEMBER_OPEN_ACTIVITIES_PATH = ':memberId/open-activities/';
|
|
15
|
-
const MEMBER_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH = ':memberId/open-activities/types/';
|
|
16
|
-
const MEMBER_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH = ':memberId/open-activities/locations/';
|
|
17
|
-
const MEMBER_OPEN_ACTIVITY_PATH = ':memberId/open-activities/:activityId/';
|
|
18
|
-
const MEMBER_OPEN_ACTIVITY_RESPOND_PATH = ':memberId/open-activities/:activityId/respond/';
|
|
19
|
-
const PUBLIC_ACTIVITY_INVITE_PATH = 'activities/:id/:token/';
|
|
20
|
-
const PUBLIC_OPEN_ACTIVITIES_PATH = 'open-activities/';
|
|
21
|
-
const PUBLIC_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH = 'open-activities/types/';
|
|
22
|
-
const PUBLIC_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH = 'open-activities/locations/';
|
|
23
|
-
const PUBLIC_OPEN_ACTIVITY_PATH = 'open-activities/:activityId/';
|
|
24
|
-
const PUBLIC_OPEN_ACTIVITY_RESPOND_PATH = 'open-activities/:activityId/respond/';
|
|
25
|
-
const PUBLIC_OPEN_ACTIVITY_INVITE_PATH = 'open-activities/invites/:activityId/';
|
|
26
|
-
const TEAM_ACTIVITIES_PATH = ':teamId/activities/';
|
|
27
|
-
const TEAM_ACTIVITY_INVITES_PATH = ':teamId/activities/:activityId/invites/';
|
|
28
|
-
const TEAM_ACTIVITY_INVITE_PATH = ':teamId/activities/:activityId/invites/:activityInviteId/';
|
|
29
|
-
const TEAM_ACTIVITY_INVITE_RESEND_PATH = ':teamId/activities/:activityId/invites/:activityInviteId/resend-invite/';
|
|
30
|
-
const TEAM_ACTIVITY_NEW_PATH = ':teamId/activities/new/';
|
|
31
|
-
const TEAM_ACTIVITY_PARTICIPANTS_PATH = ':teamId/activities/:activityId/participants/';
|
|
32
|
-
const TEAM_ACTIVITY_PATH = ':teamId/activities/:id/';
|
|
33
|
-
const TEAM_ACTIVITY_QR_CODE_PATH = ':teamId/activities/:id/qr-code/';
|
|
34
|
-
const TEAM_ACTIVITY_SETTINGS_PATH = ':teamId/activities/settings/';
|
|
35
|
-
const SECTION_ACTIVITY_SETTINGS_PATH = ':sectionId/activities/settings/';
|
|
36
|
-
const CLUB_ACTIVITY_SETTINGS_PATH = ':clubId/activities/settings/';
|
|
37
|
-
const TEAM_ACTIVITY_TYPES_PATH = ':teamId/activities/types/';
|
|
38
|
-
const TEAM_CALENDAR_PATH = ':teamId/activities/calendar/';
|
|
39
|
-
const CLUB_ACTIVITY_LOCATIONS_PATH = ':clubId/activities/locations/';
|
|
40
|
-
const CLUB_ACTIVITY_LOCATION_PATH = ':clubId/activities/locations/:locationId/';
|
|
41
|
-
const CLUB_ACTIVITY_TYPES_PATH = ':clubId/activities/types/';
|
|
42
|
-
const CLUB_ACTIVITY_TYPE_PATH = ':clubId/activities/types/:typeId/';
|
|
43
|
-
const TEAM_ACTIVITY_LOCATIONS_PATH = ':teamId/activities/locations/';
|
|
44
|
-
const SECTION_ACTIVITY_LOCATIONS_PATH = ':sectionId/activities/locations/';
|
|
45
|
-
const SECTION_ACTIVITY_LOCATION_PATH = ':sectionId/activities/locations/:locationId/';
|
|
46
|
-
const SECTION_ACTIVITY_TYPES_PATH = ':sectionId/activities/types/';
|
|
47
|
-
const SECTION_ACTIVITY_TYPE_PATH = ':sectionId/activities/types/:typeId/';
|
|
48
|
-
export class ActivityService {
|
|
49
|
-
constructor(apiService) {
|
|
50
|
-
this.apiService = apiService;
|
|
51
|
-
}
|
|
52
|
-
addTeamActivityInvites(teamId, activityId, memberIds) {
|
|
53
|
-
return this.apiService
|
|
54
|
-
.postResource(() => true, Role.TeamAdmin, TEAM_ACTIVITY_INVITES_PATH, {
|
|
55
|
-
teamId,
|
|
56
|
-
activityId
|
|
57
|
-
}, {
|
|
58
|
-
members: memberIds
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
createTeamActivity(teamId, data) {
|
|
62
|
-
return this.apiService
|
|
63
|
-
.postResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITIES_PATH, {
|
|
64
|
-
teamId
|
|
65
|
-
}, this.removeUnusedActivityFields(data));
|
|
66
|
-
}
|
|
67
|
-
deleteTeamActivity(teamId, id) {
|
|
68
|
-
return this.apiService
|
|
69
|
-
.deleteResource(Role.TeamAdmin, TEAM_ACTIVITY_PATH, {
|
|
70
|
-
teamId,
|
|
71
|
-
id
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
deleteTeamActivityInvite(teamId, activityId, activityInviteId) {
|
|
75
|
-
return this.apiService
|
|
76
|
-
.deleteResource(Role.TeamAdmin, TEAM_ACTIVITY_INVITE_PATH, {
|
|
77
|
-
teamId,
|
|
78
|
-
activityId,
|
|
79
|
-
activityInviteId
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
getMemberActivity(memberId, activityId) {
|
|
83
|
-
return this.apiService
|
|
84
|
-
.getResource(activityFactory, Role.MemberAdmin, MEMBER_ACTIVITY_PATH, {
|
|
85
|
-
memberId,
|
|
86
|
-
activityId
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
getMemberActivityInvite(memberId, activityInviteId) {
|
|
90
|
-
return this.apiService
|
|
91
|
-
.getResource(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_PATH, {
|
|
92
|
-
memberId,
|
|
93
|
-
activityInviteId
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
getMemberActivityInvites(memberId) {
|
|
97
|
-
const params = { limit: 'null' };
|
|
98
|
-
return this.apiService
|
|
99
|
-
.getCollection(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITES_PATH, { memberId }, {
|
|
100
|
-
params
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
getMemberCalendarEvents(memberId, startDate = null, endDate = null) {
|
|
104
|
-
const params = { limit: 'null' };
|
|
105
|
-
if (startDate) {
|
|
106
|
-
params['search_start_day'] = startDate;
|
|
107
|
-
}
|
|
108
|
-
if (endDate) {
|
|
109
|
-
params['search_end_day'] = endDate;
|
|
110
|
-
}
|
|
111
|
-
return this.apiService
|
|
112
|
-
.getCollection(eventFactory, Role.MemberAdmin, MEMBER_CALENDAR_PATH, { memberId }, {
|
|
113
|
-
params
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
getMemberOpenActivities(memberId, openActivitySearchParams) {
|
|
117
|
-
return this.apiService
|
|
118
|
-
.getCollection(openActivityFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_PATH, { memberId }, {
|
|
119
|
-
params: this.getOpenActivitySearchParams(openActivitySearchParams)
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
getMemberOpenActivity(memberId, activityId) {
|
|
123
|
-
return this.apiService
|
|
124
|
-
.getResource(openActivityFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_PATH, {
|
|
125
|
-
memberId,
|
|
126
|
-
activityId
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
getMemberOpenActivityActivityTypes(memberId, startDate = null, endDate = null, all = false) {
|
|
130
|
-
return this.apiService
|
|
131
|
-
.getCollection(activityTypeFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH, {
|
|
132
|
-
memberId
|
|
133
|
-
}, {
|
|
134
|
-
params: this.getOpenActivityDateParams(startDate, endDate, all)
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
getMemberOpenActivityLocations(memberId, startDate = null, endDate = null, all = false) {
|
|
138
|
-
return this.apiService
|
|
139
|
-
.getCollection(activityLocationFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH, {
|
|
140
|
-
memberId
|
|
141
|
-
}, {
|
|
142
|
-
params: this.getOpenActivityDateParams(startDate, endDate, all)
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
getPublicActivityInvite(id, token) {
|
|
146
|
-
return this.apiService
|
|
147
|
-
.getResource(activityInviteFactory, Role.Public, PUBLIC_ACTIVITY_INVITE_PATH, {
|
|
148
|
-
id,
|
|
149
|
-
token
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
getPublicOpenActivities(openActivitySearchParams) {
|
|
153
|
-
return this.apiService
|
|
154
|
-
.getCollection(openActivityFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_PATH, {}, { params: this.getOpenActivitySearchParams(openActivitySearchParams) });
|
|
155
|
-
}
|
|
156
|
-
getPublicOpenActivity(activityId) {
|
|
157
|
-
return this.apiService
|
|
158
|
-
.getResource(openActivityFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_PATH, { activityId });
|
|
159
|
-
}
|
|
160
|
-
getPublicOpenActivityActivityTypes(startDate = null, endDate = null, all = false) {
|
|
161
|
-
return this.apiService
|
|
162
|
-
.getCollection(activityTypeFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH, {}, {
|
|
163
|
-
params: this.getOpenActivityDateParams(startDate, endDate, all)
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
getPublicOpenActivityLocations(startDate = null, endDate = null, all = false) {
|
|
167
|
-
return this.apiService
|
|
168
|
-
.getCollection(activityLocationFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH, {}, {
|
|
169
|
-
params: this.getOpenActivityDateParams(startDate, endDate, all)
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
getTeamActivity(teamId, id) {
|
|
173
|
-
return this.apiService
|
|
174
|
-
.getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, { teamId, id });
|
|
175
|
-
}
|
|
176
|
-
getTeamActivityQRCode(teamId, id) {
|
|
177
|
-
return this.apiService
|
|
178
|
-
.getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_QR_CODE_PATH, { teamId, id });
|
|
179
|
-
}
|
|
180
|
-
getActivityLocations(role, clubOrSectionOrTeamId, force = false) {
|
|
181
|
-
if (role == Role.ClubAdmin) {
|
|
182
|
-
return this.getClubActivityLocations(clubOrSectionOrTeamId, force);
|
|
183
|
-
}
|
|
184
|
-
else if (role == Role.SectionAdmin) {
|
|
185
|
-
return this.getSectionActivityLocations(clubOrSectionOrTeamId, force);
|
|
186
|
-
}
|
|
187
|
-
return this.getTeamActivityLocations(clubOrSectionOrTeamId, force);
|
|
188
|
-
}
|
|
189
|
-
getTeamActivityLocations(teamId, force = false) {
|
|
190
|
-
if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
|
|
191
|
-
return of(this.activityLocationCollection);
|
|
192
|
-
}
|
|
193
|
-
return this.apiService
|
|
194
|
-
.getCollection(activityLocationFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATIONS_PATH, { teamId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
|
|
195
|
-
this.activityLocationResponseDate = new Date();
|
|
196
|
-
this.activityLocationCollection = activityLocationCollection;
|
|
197
|
-
}));
|
|
198
|
-
}
|
|
199
|
-
getClubActivityLocations(clubId, force = false) {
|
|
200
|
-
if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
|
|
201
|
-
return of(this.activityLocationCollection);
|
|
202
|
-
}
|
|
203
|
-
return this.apiService
|
|
204
|
-
.getCollection(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATIONS_PATH, { clubId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
|
|
205
|
-
this.activityLocationResponseDate = new Date();
|
|
206
|
-
this.activityLocationCollection = activityLocationCollection;
|
|
207
|
-
}));
|
|
208
|
-
}
|
|
209
|
-
getSectionActivityLocations(sectionId, force = false) {
|
|
210
|
-
if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
|
|
211
|
-
return of(this.activityLocationCollection);
|
|
212
|
-
}
|
|
213
|
-
return this.apiService
|
|
214
|
-
.getCollection(activityLocationFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATIONS_PATH, { sectionId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
|
|
215
|
-
this.activityLocationResponseDate = new Date();
|
|
216
|
-
this.activityLocationCollection = activityLocationCollection;
|
|
217
|
-
}));
|
|
218
|
-
}
|
|
219
|
-
updateActivityLocation(role, clubOrSectionOrTeamId, location) {
|
|
220
|
-
if (role === Role.ClubAdmin) {
|
|
221
|
-
return this.updateClubActivityLocation(clubOrSectionOrTeamId, location);
|
|
222
|
-
}
|
|
223
|
-
return this.updateSectionActivityLocation(clubOrSectionOrTeamId, location);
|
|
224
|
-
}
|
|
225
|
-
updateClubActivityLocation(clubId, location) {
|
|
226
|
-
return this.apiService
|
|
227
|
-
.updateResource(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_PATH, {
|
|
228
|
-
clubId,
|
|
229
|
-
locationId: location.id
|
|
230
|
-
}, location);
|
|
231
|
-
}
|
|
232
|
-
updateMemberActivityAttendance(memberId, activityId) {
|
|
233
|
-
return this.apiService
|
|
234
|
-
.postResourceNoResponse(Role.MemberAdmin, MEMBER_ACTIVITY_ATTENDANCE_PATH, {
|
|
235
|
-
memberId,
|
|
236
|
-
activityId
|
|
237
|
-
}, {});
|
|
238
|
-
}
|
|
239
|
-
updateSectionActivityLocation(sectionId, location) {
|
|
240
|
-
return this.apiService
|
|
241
|
-
.updateResource(activityLocationFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATION_PATH, {
|
|
242
|
-
sectionId,
|
|
243
|
-
locationId: location.id
|
|
244
|
-
}, location);
|
|
245
|
-
}
|
|
246
|
-
getTeamActivityNew(teamId) {
|
|
247
|
-
return this.apiService
|
|
248
|
-
.getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_NEW_PATH, { teamId });
|
|
249
|
-
}
|
|
250
|
-
getTeamActivityParticipants(teamId, activityId) {
|
|
251
|
-
return this.apiService
|
|
252
|
-
.getCollection(searchMemberFactory, Role.TeamAdmin, TEAM_ACTIVITY_PARTICIPANTS_PATH, {
|
|
253
|
-
teamId,
|
|
254
|
-
activityId
|
|
255
|
-
}, { params: { limit: 'null' } });
|
|
256
|
-
}
|
|
257
|
-
getActivitySettings(role, clubOrSectionOrTeamId) {
|
|
258
|
-
if (role === Role.ClubAdmin) {
|
|
259
|
-
return this.getClubActivitySettings(clubOrSectionOrTeamId);
|
|
260
|
-
}
|
|
261
|
-
else if (role == Role.SectionAdmin) {
|
|
262
|
-
return this.getSectionActivitySettings(clubOrSectionOrTeamId);
|
|
263
|
-
}
|
|
264
|
-
return this.getTeamActivitySettings(clubOrSectionOrTeamId);
|
|
265
|
-
}
|
|
266
|
-
getTeamActivitySettings(teamId) {
|
|
267
|
-
return this.apiService
|
|
268
|
-
.getResource(activitySettingsFactory, Role.TeamAdmin, TEAM_ACTIVITY_SETTINGS_PATH, {
|
|
269
|
-
teamId
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
getSectionActivitySettings(sectionId) {
|
|
273
|
-
return this.apiService
|
|
274
|
-
.getResource(activitySettingsFactory, Role.SectionAdmin, SECTION_ACTIVITY_SETTINGS_PATH, {
|
|
275
|
-
sectionId
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
getClubActivitySettings(clubId) {
|
|
279
|
-
return this.apiService
|
|
280
|
-
.getResource(activitySettingsFactory, Role.ClubAdmin, CLUB_ACTIVITY_SETTINGS_PATH, {
|
|
281
|
-
clubId,
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
getActivityTypes(role, clubOrSectionOrTeamId) {
|
|
285
|
-
if (role === Role.ClubAdmin) {
|
|
286
|
-
return this.getClubActivityTypes(clubOrSectionOrTeamId);
|
|
287
|
-
}
|
|
288
|
-
else if (role === Role.SectionAdmin) {
|
|
289
|
-
return this.getSectionActivityTypes(clubOrSectionOrTeamId);
|
|
290
|
-
}
|
|
291
|
-
return this.getTeamActivityTypes(clubOrSectionOrTeamId);
|
|
292
|
-
}
|
|
293
|
-
getTeamActivityTypes(teamId) {
|
|
294
|
-
return this.apiService
|
|
295
|
-
.getCollection(activityTypeFactory, Role.TeamAdmin, TEAM_ACTIVITY_TYPES_PATH, { teamId }, { params: { limit: 'null' } });
|
|
296
|
-
}
|
|
297
|
-
getClubActivityTypes(clubId) {
|
|
298
|
-
return this.apiService
|
|
299
|
-
.getCollection(activityTypeFactory, Role.ClubAdmin, CLUB_ACTIVITY_TYPES_PATH, { clubId }, { params: { limit: 'null' } });
|
|
300
|
-
}
|
|
301
|
-
getSectionActivityTypes(sectionId) {
|
|
302
|
-
return this.apiService
|
|
303
|
-
.getCollection(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPES_PATH, { sectionId }, { params: { limit: 'null' } });
|
|
304
|
-
}
|
|
305
|
-
updateActivityType(role, clubOrSectionOrTeamId, activityType) {
|
|
306
|
-
if (role === Role.ClubAdmin) {
|
|
307
|
-
return this.updateClubActivityType(clubOrSectionOrTeamId, activityType);
|
|
308
|
-
}
|
|
309
|
-
return this.updateSectionActivityType(clubOrSectionOrTeamId, activityType);
|
|
310
|
-
}
|
|
311
|
-
updateClubActivityType(clubId, activityType) {
|
|
312
|
-
return this.apiService
|
|
313
|
-
.updateResource(activityTypeFactory, Role.ClubAdmin, CLUB_ACTIVITY_TYPE_PATH, {
|
|
314
|
-
clubId,
|
|
315
|
-
typeId: activityType.id,
|
|
316
|
-
}, activityType);
|
|
317
|
-
}
|
|
318
|
-
updateSectionActivityType(sectionId, activityType) {
|
|
319
|
-
return this.apiService
|
|
320
|
-
.updateResource(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPE_PATH, {
|
|
321
|
-
sectionId,
|
|
322
|
-
typeId: activityType.id,
|
|
323
|
-
}, activityType);
|
|
324
|
-
}
|
|
325
|
-
getTeamCalendarEvents(teamId, startDate = null, endDate = null) {
|
|
326
|
-
const params = { limit: 'null' };
|
|
327
|
-
if (startDate) {
|
|
328
|
-
params['search_start_day'] = startDate;
|
|
329
|
-
}
|
|
330
|
-
if (endDate) {
|
|
331
|
-
params['search_end_day'] = endDate;
|
|
332
|
-
}
|
|
333
|
-
return this.apiService
|
|
334
|
-
.getCollection(eventFactory, Role.TeamAdmin, TEAM_CALENDAR_PATH, { teamId }, {
|
|
335
|
-
params
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
resendInvite(teamId, activityId, activityInviteId) {
|
|
339
|
-
return this.apiService
|
|
340
|
-
.postResource(activityInviteFactory, Role.TeamAdmin, TEAM_ACTIVITY_INVITE_RESEND_PATH, {
|
|
341
|
-
teamId,
|
|
342
|
-
activityId,
|
|
343
|
-
activityInviteId
|
|
344
|
-
}, {});
|
|
345
|
-
}
|
|
346
|
-
removeMemberOpenActivity(memberId, activityId) {
|
|
347
|
-
return this.apiService
|
|
348
|
-
.deleteResource(Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_RESPOND_PATH, {
|
|
349
|
-
memberId,
|
|
350
|
-
activityId
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
removePublicOpenActivity(activityId) {
|
|
354
|
-
return this.apiService
|
|
355
|
-
.deleteResource(Role.Public, PUBLIC_OPEN_ACTIVITY_RESPOND_PATH, {
|
|
356
|
-
activityId
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
signUpMemberOpenActivity(memberId, activityId, comment, optionalFees) {
|
|
360
|
-
return this.apiService
|
|
361
|
-
.updateResourceNoResponse(Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_RESPOND_PATH, {
|
|
362
|
-
memberId,
|
|
363
|
-
activityId
|
|
364
|
-
}, {
|
|
365
|
-
comment,
|
|
366
|
-
optional_fees: optionalFees
|
|
367
|
-
});
|
|
368
|
-
}
|
|
369
|
-
signUpPublicOpenActivity(activityId, comment, optionalFees) {
|
|
370
|
-
return this.apiService
|
|
371
|
-
.updateResourceNoResponse(Role.MemberAdmin, PUBLIC_OPEN_ACTIVITY_RESPOND_PATH, {
|
|
372
|
-
activityId
|
|
373
|
-
}, {
|
|
374
|
-
comment,
|
|
375
|
-
optional_fees: optionalFees
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
updateMemberActivity(memberId, activityInviteId, activityInvite) {
|
|
379
|
-
return this.apiService
|
|
380
|
-
.updateResource(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_PATH, {
|
|
381
|
-
memberId,
|
|
382
|
-
activityInviteId
|
|
383
|
-
}, activityInvite);
|
|
384
|
-
}
|
|
385
|
-
updatePublicActivityInvite(id, token, activityInvite) {
|
|
386
|
-
return this.apiService
|
|
387
|
-
.updateResource(activityInviteFactory, Role.Public, PUBLIC_ACTIVITY_INVITE_PATH, {
|
|
388
|
-
id,
|
|
389
|
-
token
|
|
390
|
-
}, activityInvite);
|
|
391
|
-
}
|
|
392
|
-
updatePublicOpenActivityInvite(id, activityInvite) {
|
|
393
|
-
return this.apiService
|
|
394
|
-
.updateResource(activityInviteFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_INVITE_PATH, {
|
|
395
|
-
id
|
|
396
|
-
}, activityInvite);
|
|
397
|
-
}
|
|
398
|
-
updateTeamActivity(teamId, activity) {
|
|
399
|
-
return this.apiService
|
|
400
|
-
.updateResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, {
|
|
401
|
-
teamId,
|
|
402
|
-
id: activity.id
|
|
403
|
-
}, this.removeUnusedActivityFields(activity));
|
|
404
|
-
}
|
|
405
|
-
updateTeamActivityInvite(teamId, activityId, activityInviteId, activityInvite) {
|
|
406
|
-
return this.apiService
|
|
407
|
-
.updateResource(memberActivityInviteFactory, Role.TeamAdmin, TEAM_ACTIVITY_INVITE_PATH, {
|
|
408
|
-
teamId,
|
|
409
|
-
activityId,
|
|
410
|
-
activityInviteId
|
|
411
|
-
}, activityInvite);
|
|
412
|
-
}
|
|
413
|
-
updateTeamActivityParticipants(teamId, activityId, members) {
|
|
414
|
-
return this.apiService
|
|
415
|
-
.postResource(() => {
|
|
416
|
-
}, Role.TeamAdmin, TEAM_ACTIVITY_PARTICIPANTS_PATH, {
|
|
417
|
-
teamId,
|
|
418
|
-
activityId
|
|
419
|
-
}, {
|
|
420
|
-
members
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
getOpenActivityDateParams(startDate, endDate, all = false) {
|
|
424
|
-
let params = {
|
|
425
|
-
'all': all ? 'true' : 'false'
|
|
426
|
-
};
|
|
427
|
-
if (startDate) {
|
|
428
|
-
params['start_date'] = startDate;
|
|
429
|
-
}
|
|
430
|
-
if (endDate) {
|
|
431
|
-
params['end_date'] = endDate;
|
|
432
|
-
}
|
|
433
|
-
return params;
|
|
434
|
-
}
|
|
435
|
-
getOpenActivitySearchParams(openActivitySearchParams) {
|
|
436
|
-
const params = {
|
|
437
|
-
end_date: openActivitySearchParams.endDate,
|
|
438
|
-
limit: 'null',
|
|
439
|
-
start_date: openActivitySearchParams.startDate
|
|
440
|
-
};
|
|
441
|
-
if (openActivitySearchParams.activityTypeId) {
|
|
442
|
-
params['activity_type_id'] = openActivitySearchParams.activityTypeId;
|
|
443
|
-
}
|
|
444
|
-
if (openActivitySearchParams.locationId) {
|
|
445
|
-
params['location_id'] = openActivitySearchParams.locationId;
|
|
446
|
-
}
|
|
447
|
-
return params;
|
|
448
|
-
}
|
|
449
|
-
removeUnusedActivityFields(activity) {
|
|
450
|
-
if (typeof activity.id !== 'undefined') {
|
|
451
|
-
delete activity.id;
|
|
452
|
-
}
|
|
453
|
-
if (typeof activity.file !== 'undefined' && !activity.file) {
|
|
454
|
-
delete activity.file;
|
|
455
|
-
}
|
|
456
|
-
if (typeof activity.invite_last_response_date !== 'undefined' && !activity.invite_last_response_date) {
|
|
457
|
-
delete activity.invite_last_response_date;
|
|
458
|
-
}
|
|
459
|
-
return activity;
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
ActivityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ActivityService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
463
|
-
ActivityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ActivityService, providedIn: 'root' });
|
|
464
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ActivityService, decorators: [{
|
|
465
|
-
type: Injectable,
|
|
466
|
-
args: [{
|
|
467
|
-
providedIn: 'root'
|
|
468
|
-
}]
|
|
469
|
-
}], ctorParameters: function () { return [{ type: i1.ApiService }]; } });
|
|
470
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFPTCxJQUFJLEdBQ0wsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLDJCQUEyQixFQUFFLG1CQUFtQixFQUNoRCxtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7O0FBSTdCLE1BQU0sK0JBQStCLEdBQUcsdURBQXVELENBQUM7QUFDaEcsTUFBTSwyQkFBMkIsR0FBRyx5Q0FBeUMsQ0FBQztBQUM5RSxNQUFNLG9CQUFvQixHQUFHLDRDQUE0QyxDQUFDO0FBQzFFLE1BQU0sNEJBQTRCLEdBQUcsdUJBQXVCLENBQUM7QUFDN0QsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM5RCxNQUFNLDJCQUEyQixHQUFHLDRCQUE0QixDQUFDO0FBQ2pFLE1BQU0sMENBQTBDLEdBQUcsa0NBQWtDLENBQUM7QUFDdEYsTUFBTSw4Q0FBOEMsR0FBRyxzQ0FBc0MsQ0FBQztBQUM5RixNQUFNLHlCQUF5QixHQUFHLHdDQUF3QyxDQUFDO0FBQzNFLE1BQU0saUNBQWlDLEdBQUcsZ0RBQWdELENBQUM7QUFFM0YsTUFBTSwyQkFBMkIsR0FBRyx3QkFBd0IsQ0FB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Q2hCLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxRQUEyQjtRQUM1RCxJQUFJLE9BQU8sUUFBUSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDdEMsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUMxRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdEI7UUFFRCxJQUFJLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRTtZQUNwRyxPQUFPLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztTQUMzQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzZHQWp2QlUsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FwaVNlcnZpY2V9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWN0aXZpdHksXG4gIEFjdGl2aXR5TG9jYXRpb24sIEFjdGl2aXR5TG9jYXRpb25Hcm91cCxcbiAgQWN0aXZpdHlMb2NhdGlvblRhZyxcbiAgQWN0aXZpdHlUeXBlLFxuICBDb2xsZWN0aW9uLFxuICBNZW1iZXJBY3Rpdml0eUludml0ZSxcbiAgUm9sZSxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge29mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGFjdGl2aXR5RmFjdG9yeSxcbiAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgYWN0aXZpdHlMb2NhdGlvbkdyb3VwRmFjdG9yeSxcbiAgYWN0aXZpdHlMb2NhdGlvblRhZ0ZhY3RvcnksXG4gIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICBldmVudEZhY3RvcnksXG4gIG1lbWJlckFjdGl2aXR5SW52aXRlRmFjdG9yeSwgb3BlbkFjdGl2aXR5RmFjdG9yeSxcbiAgc2VhcmNoTWVtYmVyRmFjdG9yeSxcbn0gZnJvbSAnLi9mYWN0b3JpZXMnO1xuaW1wb3J0IHtzdWJ9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7YWN0aXZpdHlMb2NhdGlvblBhcnRGYWN0b3J5fSBmcm9tIFwiLi9mYWN0b3JpZXMvYWN0aXZpdHktbG9jYXRpb24tcGFydC1mYWN0b3J5XCI7XG5pbXBvcnQgeyBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuY29uc3QgTUVNQkVSX0FDVElWSVRZX0FUVEVOREFOQ0VfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy9hY3Rpdml0eS86YWN0aXZpdHlJZC9hdHRlbmRhbmNlLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2FjdGl2aXR5LzphY3Rpdml0eUlkLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzLyc7XG5jb25zdCBNRU1CRVJfQ0FMRU5EQVJfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy9jYWxlbmRhci8nO1xuY29uc3QgTUVNQkVSX09QRU5fQUNUSVZJVElFU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUWV9QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvOmFjdGl2aXR5SWQvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQvJztcblxuY29uc3QgUFVCTElDX0FDVElWSVRZX0lOVklURV9QQVRIID0gJ2FjdGl2aXRpZXMvOmlkLzp0b2tlbi8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVElFU19QQVRIID0gJ29wZW4tYWN0aXZpdGllcy8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRIID0gJ29wZW4tYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCA9ICdvcGVuLWFjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUWV9QQVRIID0gJ29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRIID0gJ29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC9yZXNwb25kLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICdvcGVuLWFjdGl2aXRpZXMvaW52aXRlcy86YWN0aXZpdHlJZC8nO1xuXG5jb25zdCBURUFNX0FDVElWSVRJRVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0lOVklURV9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLzphY3Rpdml0eUludml0ZUlkLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0lOVklURV9SRVNFTkRfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvaW52aXRlcy86YWN0aXZpdHlJbnZpdGVJZC9yZXNlbmQtaW52aXRlLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX05FV19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9uZXcvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3BhcnRpY2lwYW50cy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86aWQvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfUVJfQ09ERV9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86aWQvcXItY29kZS8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9zZXR0aW5ncy8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy9zZXR0aW5ncy8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9zZXR0aW5ncy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9UWVBFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgVEVBTV9DQUxFTkRBUl9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9jYWxlbmRhci8nO1xuXG5jb25zdCBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfTE9DQVRJT05fUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvbG9jYXRpb25zLzpsb2NhdGlvbklkLyc7XG5jb25zdCBDTFVCX0FDVElWSVRZX1RZUEVTX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBDTFVCX0FDVElWSVRZX1RZUEVfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvdHlwZXMvOnR5cGVJZC8nO1xuXG5jb25zdCBURUFNX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcblxuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBTRUNUSU9OX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy86bG9jYXRpb25JZC8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9UWVBFU19QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9UWVBFX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL3R5cGVzLzp0eXBlSWQvJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVNlcnZpY2Uge1xuICBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPiB8IHVuZGVmaW5lZDtcblxuICBhY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge1xuICB9XG5cbiAgYWRkVGVhbUFjdGl2aXR5SW52aXRlcyh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBtZW1iZXJJZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICAoKSA9PiB0cnVlLFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVyczogbWVtYmVySWRzXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGNyZWF0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgZGF0YTogUGFydGlhbDxBY3Rpdml0eT4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKGRhdGEpXG4gICAgICApXG4gIH1cblxuICBkZWxldGVUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgaWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eUludml0ZShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHlJbnZpdGVzKG1lbWJlcklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7bGltaXQ6ICdudWxsJ307XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFU19QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJDYWxlbmRhckV2ZW50cyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9DQUxFTkRBUl9QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldE1lbWJlck9wZW5BY3Rpdml0aWVzKG1lbWJlcklkOiBzdHJpbmcsIG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtczogT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge21lbWJlcklkfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJPcGVuQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyT3BlbkFjdGl2aXR5QWN0aXZpdHlUeXBlcyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnMobWVtYmVySWQ6IHN0cmluZywgc3RhcnREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGFsbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNBY3Rpdml0eUludml0ZShpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0b2tlblxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0UHVibGljT3BlbkFjdGl2aXRpZXMob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zOiBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgb3BlbkFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19PUEVOX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge30sXG4gICAgICAgIHsgcGFyYW1zOiB0aGlzLmdldE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcyhvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMpIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRQdWJsaWNPcGVuQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUEFUSCxcbiAgICAgICAge2FjdGl2aXR5SWR9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpdml0eVR5cGVzKHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBhbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnMoc3RhcnREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGFsbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0T3BlbkFjdGl2aXR5RGF0ZVBhcmFtcyhzdGFydERhdGUsIGVuZERhdGUsIGFsbClcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5KHRlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHt0ZWFtSWQsIGlkfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5UVJDb2RlKHRlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1FSX0NPREVfUEFUSCxcbiAgICAgICAge3RlYW1JZCwgaWR9XG4gICAgICApXG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9ucyhyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlMb2NhdGlvbnMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBmb3JjZSk7XG4gICAgfSBlbHNlIGlmIChyb2xlID09IFJvbGUuU2VjdGlvbkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWN0aW9uQWN0aXZpdHlMb2NhdGlvbnMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBmb3JjZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eUxvY2F0aW9ucyhjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGZvcmNlKVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25zKHRlYW1JZDogc3RyaW5nLCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSAmJiB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldENsdWJBY3Rpdml0eUxvY2F0aW9ucyhjbHViSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID4gc3ViKG5ldyBEYXRlKCksIHtob3VyczogMX0pICYmICFmb3JjZSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEgsXG4gICAgICAgIHtjbHViSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApLnBpcGUoXG4gICAgICAgIHRhcCgoYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gPSBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRTZWN0aW9uQWN0aXZpdHlMb2NhdGlvbnMoc2VjdGlvbklkOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlICYmIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA+IHN1YihuZXcgRGF0ZSgpLCB7aG91cnM6IDF9KSAmJiAhZm9yY2UpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7c2VjdGlvbklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KSA9PiB7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uID0gYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlQWN0aXZpdHlMb2NhdGlvbihyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgbG9jYXRpb246IEFjdGl2aXR5TG9jYXRpb24pIHtcbiAgICBpZiAocm9sZSA9PT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNsdWJBY3Rpdml0eUxvY2F0aW9uKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgbG9jYXRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51cGRhdGVTZWN0aW9uQWN0aXZpdHlMb2NhdGlvbihjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGxvY2F0aW9uKTtcbiAgfVxuXG4gIHVwZGF0ZUNsdWJBY3Rpdml0eUxvY2F0aW9uKGNsdWJJZDogc3RyaW5nLCBsb2NhdGlvbjogQWN0aXZpdHlMb2NhdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgbG9jYXRpb25JZDogbG9jYXRpb24uaWRcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb25cbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUF0dGVuZGFuY2UobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZU5vUmVzcG9uc2UoXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9BVFRFTkRBTkNFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlU2VjdGlvbkFjdGl2aXR5TG9jYXRpb24oc2VjdGlvbklkOiBzdHJpbmcsIGxvY2F0aW9uOiBBY3Rpdml0eUxvY2F0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfTE9DQVRJT05fUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICBsb2NhdGlvbklkOiBsb2NhdGlvbi5pZFxuICAgICAgICB9LFxuICAgICAgICBsb2NhdGlvblxuICAgICAgKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eU5ldyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9ORVdfUEFUSCxcbiAgICAgICAge3RlYW1JZH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHModGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBzZWFyY2hNZW1iZXJGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eVNldHRpbmdzKHJvbGU6IFJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nKSB7XG4gICAgaWYgKHJvbGUgPT09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlTZXR0aW5ncyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH0gZWxzZSBpZiAocm9sZSA9PSBSb2xlLlNlY3Rpb25BZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVNldHRpbmdzKHRlYW1JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVNldHRpbmdzRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0U2VjdGlvbkFjdGl2aXR5U2V0dGluZ3Moc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgc2VjdGlvbklkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlTZXR0aW5ncyhjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlTZXR0aW5nc0ZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX1NFVFRJTkdTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eVR5cGVzKHJvbGU6IFJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nKSB7XG4gICAgaWYgKHJvbGUgPT09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlUeXBlcyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH0gZWxzZSBpZiAocm9sZSA9PT0gUm9sZS5TZWN0aW9uQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFNlY3Rpb25BY3Rpdml0eVR5cGVzKGNsdWJPclNlY3Rpb25PclRlYW1JZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eVR5cGVzKGNsdWJPclNlY3Rpb25PclRlYW1JZCk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlUeXBlcyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKVxuICB9XG5cbiAgZ2V0Q2x1YkFjdGl2aXR5VHlwZXMoY2x1YklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQUNUSVZJVFlfVFlQRVNfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRTZWN0aW9uQWN0aXZpdHlUeXBlcyhzZWN0aW9uSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7c2VjdGlvbklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUFjdGl2aXR5VHlwZShyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlUeXBlOiBBY3Rpdml0eVR5cGUpIHtcbiAgICBpZiAocm9sZSA9PT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNsdWJBY3Rpdml0eVR5cGUoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBhY3Rpdml0eVR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51cGRhdGVTZWN0aW9uQWN0aXZpdHlUeXBlKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYWN0aXZpdHlUeXBlKTtcbiAgfVxuXG4gIHVwZGF0ZUNsdWJBY3Rpdml0eVR5cGUoY2x1YklkOiBzdHJpbmcsIGFjdGl2aXR5VHlwZTogQWN0aXZpdHlUeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9UWVBFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgdHlwZUlkOiBhY3Rpdml0eVR5cGUuaWQsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5VHlwZSxcbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVTZWN0aW9uQWN0aXZpdHlUeXBlKHNlY3Rpb25JZDogc3RyaW5nLCBhY3Rpdml0eVR5cGU6IEFjdGl2aXR5VHlwZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfVFlQRV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgc2VjdGlvbklkLFxuICAgICAgICAgIHR5cGVJZDogYWN0aXZpdHlUeXBlLmlkLFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eVR5cGUsXG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUNhbGVuZGFyRXZlbnRzKHRlYW1JZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0NBTEVOREFSX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICByZXNlbmRJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUkVTRU5EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICB9XG5cbiAgcmVtb3ZlTWVtYmVyT3BlbkFjdGl2aXR5KG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICByZW1vdmVQdWJsaWNPcGVuQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBzaWduVXBNZW1iZXJPcGVuQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcsIG9wdGlvbmFsRmVlczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZU5vUmVzcG9uc2UoXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcklkLFxuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbW1lbnQsXG4gICAgICAgICAgb3B0aW9uYWxfZmVlczogb3B0aW9uYWxGZWVzXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuXG4gIHNpZ25VcFB1YmxpY09wZW5BY3Rpdml0eShhY3Rpdml0eUlkOiBzdHJpbmcsIGNvbW1lbnQ6IHN0cmluZywgb3B0aW9uYWxGZWVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlTm9SZXNwb25zZShcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29tbWVudCxcbiAgICAgICAgICBvcHRpb25hbF9mZWVzOiBvcHRpb25hbEZlZXNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZU1lbWJlckFjdGl2aXR5KG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY0FjdGl2aXR5SW52aXRlKGlkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0b2tlblxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUludml0ZShpZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHk6IEFjdGl2aXR5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgaWQ6IGFjdGl2aXR5LmlkXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucmVtb3ZlVW51c2VkQWN0aXZpdHlGaWVsZHMoYWN0aXZpdHkpXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBtZW1iZXJBY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKVxuICB9XG5cbiAgdXBkYXRlVGVhbUFjdGl2aXR5UGFydGljaXBhbnRzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIG1lbWJlcnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgIH0sXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBUlRJQ0lQQU5UU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcnNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3BlbkFjdGl2aXR5RGF0ZVBhcmFtcyhzdGFydERhdGU6IHN0cmluZyB8IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwsIGFsbDogYm9vbGVhbiA9IGZhbHNlKToge1trZXk6IHN0cmluZ106IHN0cmluZ30ge1xuICAgIGxldCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICAnYWxsJzogYWxsID8gJ3RydWUnIDogJ2ZhbHNlJ1xuICAgIH07XG5cbiAgICBpZiAoc3RhcnREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3N0YXJ0X2RhdGUnXSA9IHN0YXJ0RGF0ZSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgaWYgKGVuZERhdGUpIHtcbiAgICAgIHBhcmFtc1snZW5kX2RhdGUnXSA9IGVuZERhdGUgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIGdldE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcyhvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXM6IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZSk6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9IHtcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBlbmRfZGF0ZTogb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmVuZERhdGUsXG4gICAgICBsaW1pdDogJ251bGwnLFxuICAgICAgc3RhcnRfZGF0ZTogb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLnN0YXJ0RGF0ZVxuICAgIH07XG5cbiAgICBpZiAob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmFjdGl2aXR5VHlwZUlkKSB7XG4gICAgICBwYXJhbXNbJ2FjdGl2aXR5X3R5cGVfaWQnXSA9IG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcy5hY3Rpdml0eVR5cGVJZDtcbiAgICB9XG5cbiAgICBpZiAob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmxvY2F0aW9uSWQpIHtcbiAgICAgIHBhcmFtc1snbG9jYXRpb25faWQnXSA9IG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcy5sb2NhdGlvbklkO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKGFjdGl2aXR5OiBQYXJ0aWFsPEFjdGl2aXR5Pik6IFBhcnRpYWw8QWN0aXZpdHk+IHtcbiAgICBpZiAodHlwZW9mIGFjdGl2aXR5LmlkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZGVsZXRlIGFjdGl2aXR5LmlkO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuZmlsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWFjdGl2aXR5LmZpbGUpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5maWxlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWFjdGl2aXR5Lmludml0ZV9sYXN0X3Jlc3BvbnNlX2RhdGUpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlO1xuICAgIH1cblxuICAgIHJldHVybiBhY3Rpdml0eTtcbiAgfVxufVxuIl19
|