@myclub_se/data-access 2.15.2 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/index.mjs +2 -1
- package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-application-time.mjs +1 -1
- package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot-session.mjs +1 -1
- package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar.mjs +1 -1
- package/esm2022/lib/api-models/api-feature-flags.mjs +2 -0
- package/esm2022/lib/api-models/api-invoice/api-payment-attempt-create.mjs +11 -0
- package/esm2022/lib/api-models/index.mjs +57 -0
- package/esm2022/lib/authentication/authentication.interceptor.mjs +101 -0
- package/esm2022/lib/authentication/authentication.service.mjs +109 -0
- package/esm2022/lib/authentication/guards/authenticated.guard.mjs +38 -0
- package/esm2022/lib/authentication/guards/handle-grant-token.guard.mjs +31 -0
- package/esm2022/lib/data-access.module.mjs +39 -0
- package/esm2022/lib/maintenance/maintenance.interceptor.mjs +30 -0
- package/esm2022/lib/models/activity-extra-member.mjs +19 -0
- package/esm2022/lib/models/activity-invite.mjs +35 -0
- package/esm2022/lib/models/activity-location-group.mjs +27 -0
- package/esm2022/lib/models/activity-location-part.mjs +16 -0
- package/esm2022/lib/models/activity-location-tag.mjs +22 -0
- package/esm2022/lib/models/activity-location.mjs +46 -0
- package/esm2022/lib/models/activity-participant.mjs +19 -0
- package/esm2022/lib/models/activity-settings.mjs +27 -0
- package/esm2022/lib/models/activity-type.mjs +34 -0
- package/esm2022/lib/models/activity.mjs +137 -0
- package/esm2022/lib/models/auth/auth-member.mjs +13 -0
- package/{esm2020 → esm2022}/lib/models/auth/auth-section.mjs +3 -1
- package/{esm2020 → esm2022}/lib/models/auth/auth-team-section.mjs +3 -1
- package/esm2022/lib/models/auth/auth-team.mjs +13 -0
- package/esm2022/lib/models/auth/auth.mjs +25 -0
- package/{esm2020 → esm2022}/lib/models/authentication.mjs +3 -1
- package/esm2022/lib/models/bookable-group.mjs +27 -0
- package/esm2022/lib/models/bookable-item.mjs +49 -0
- package/esm2022/lib/models/bookable-part.mjs +16 -0
- package/esm2022/lib/models/bookable-tag.mjs +22 -0
- package/esm2022/lib/models/booking-calendar-application-time.mjs +86 -0
- package/esm2022/lib/models/booking-calendar-slot-session.mjs +87 -0
- package/esm2022/lib/models/booking-calendar-slot.mjs +79 -0
- package/esm2022/lib/models/booking-calendar.mjs +74 -0
- package/esm2022/lib/models/booking-settings.mjs +29 -0
- package/esm2022/lib/models/booking-slot-filter.mjs +72 -0
- package/esm2022/lib/models/calendar-event.mjs +35 -0
- package/esm2022/lib/models/calendar.mjs +15 -0
- package/esm2022/lib/models/card/card-deal.mjs +15 -0
- package/esm2022/lib/models/card/card-logo-urls.mjs +21 -0
- package/esm2022/lib/models/card/card-logo.mjs +11 -0
- package/esm2022/lib/models/card/card-member-ticket.mjs +17 -0
- package/esm2022/lib/models/card/card-theme.mjs +15 -0
- package/esm2022/lib/models/card/card-ticket-location.mjs +13 -0
- package/esm2022/lib/models/card/card-ticket.mjs +37 -0
- package/{esm2020 → esm2022}/lib/models/card/card.mjs +9 -1
- package/esm2022/lib/models/card/home-team.mjs +11 -0
- package/esm2022/lib/models/card/member-card.mjs +23 -0
- package/esm2022/lib/models/card/search-member-card.mjs +13 -0
- package/esm2022/lib/models/club-image.mjs +31 -0
- package/{esm2020 → esm2022}/lib/models/club-section.mjs +3 -1
- package/{esm2020 → esm2022}/lib/models/club.mjs +3 -1
- package/esm2022/lib/models/collection.mjs +19 -0
- package/esm2022/lib/models/contact.mjs +61 -0
- package/esm2022/lib/models/directory.mjs +38 -0
- package/esm2022/lib/models/email.mjs +11 -0
- package/esm2022/lib/models/event.mjs +47 -0
- package/{esm2020 → esm2022}/lib/models/external-link.mjs +3 -1
- package/esm2022/lib/models/feature-flags.mjs +14 -0
- package/esm2022/lib/models/file-object.mjs +23 -0
- package/esm2022/lib/models/general-image.mjs +11 -0
- package/esm2022/lib/models/group-role.mjs +17 -0
- package/esm2022/lib/models/image-urls.mjs +15 -0
- package/esm2022/lib/models/index.mjs +64 -0
- package/esm2022/lib/models/invoice/member-fee.mjs +13 -0
- package/esm2022/lib/models/invoice/member-invoice-row.mjs +31 -0
- package/esm2022/lib/models/invoice/member-invoice.mjs +45 -0
- package/esm2022/lib/models/invoice/payment-attempt.mjs +21 -0
- package/esm2022/lib/models/invoice/payment-types/credit-card.mjs +27 -0
- package/esm2022/lib/models/invoice/payment-types/giro.mjs +17 -0
- package/esm2022/lib/models/invoice/payment-types/swish.mjs +31 -0
- package/esm2022/lib/models/invoice/payment-types/zimpler.mjs +19 -0
- package/esm2022/lib/models/invoice/search-member-invoice.mjs +26 -0
- package/{esm2020 → esm2022}/lib/models/invoice/swish-qr-code.mjs +2 -1
- package/esm2022/lib/models/invoice/unpaid-member-invoice.mjs +13 -0
- package/esm2022/lib/models/member/member-attribute.mjs +44 -0
- package/esm2022/lib/models/member/member-contact.mjs +26 -0
- package/esm2022/lib/models/member/member-function.mjs +24 -0
- package/esm2022/lib/models/member/member-validation-settings.mjs +21 -0
- package/esm2022/lib/models/member/member.mjs +101 -0
- package/{esm2020 → esm2022}/lib/models/member/other-member-field.mjs +4 -1
- package/esm2022/lib/models/member/other-member.mjs +21 -0
- package/esm2022/lib/models/member/search-member.mjs +35 -0
- package/esm2022/lib/models/member-activity-invite.mjs +42 -0
- package/esm2022/lib/models/member-public-form-field-option.mjs +13 -0
- package/esm2022/lib/models/member-public-form-field.mjs +27 -0
- package/esm2022/lib/models/member-public-form.mjs +55 -0
- package/esm2022/lib/models/member-team-through.mjs +23 -0
- package/esm2022/lib/models/member-team.mjs +21 -0
- package/esm2022/lib/models/member-type.mjs +11 -0
- package/esm2022/lib/models/news.mjs +66 -0
- package/esm2022/lib/models/open-activity.mjs +117 -0
- package/esm2022/lib/models/optional-fee.mjs +16 -0
- package/esm2022/lib/models/overbooked-bookable-item.mjs +15 -0
- package/esm2022/lib/models/overbooked-location.mjs +15 -0
- package/esm2022/lib/models/partner.mjs +13 -0
- package/esm2022/lib/models/public-authentication.mjs +9 -0
- package/esm2022/lib/models/registration-qr-code.mjs +19 -0
- package/esm2022/lib/models/search-club.mjs +23 -0
- package/esm2022/lib/models/search-team.mjs +24 -0
- package/{esm2020 → esm2022}/lib/models/section.mjs +3 -1
- package/esm2022/lib/models/token.mjs +11 -0
- package/esm2022/lib/models/user-notification.mjs +21 -0
- package/esm2022/lib/models/user.mjs +41 -0
- package/esm2022/lib/services/activity.service.mjs +508 -0
- package/esm2022/lib/services/api.service.mjs +108 -0
- package/esm2022/lib/services/auth.service.mjs +62 -0
- package/esm2022/lib/services/bookable.service.mjs +279 -0
- package/esm2022/lib/services/booking-calendar.service.mjs +736 -0
- package/esm2022/lib/services/club.service.mjs +35 -0
- package/esm2022/lib/services/constant.service.mjs +97 -0
- package/esm2022/lib/services/email.service.mjs +28 -0
- package/esm2022/lib/services/external-link.service.mjs +25 -0
- package/esm2022/lib/services/factories/activity-settings-factory.mjs +3 -0
- package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-application-time-factory.mjs +2 -2
- package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-factory.mjs +2 -2
- package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-session-factory.mjs +2 -2
- package/esm2022/lib/services/factories/feature-flags-factory.mjs +5 -0
- package/esm2022/lib/services/factories/index.mjs +87 -0
- package/esm2022/lib/services/factories/member-public-form-factory.mjs +26 -0
- package/esm2022/lib/services/factories/payment-attempt-factory.mjs +23 -0
- package/esm2022/lib/services/feature-flags.service.mjs +44 -0
- package/esm2022/lib/services/file.service.mjs +65 -0
- package/esm2022/lib/services/index.mjs +24 -0
- package/esm2022/lib/services/invoice/invoice.service.mjs +42 -0
- package/esm2022/lib/services/invoice/payment-attempt.service.mjs +52 -0
- package/esm2022/lib/services/maintenance-mode.service.mjs +20 -0
- package/esm2022/lib/services/member-card.service.mjs +104 -0
- package/esm2022/lib/services/member-public-form.service.mjs +33 -0
- package/esm2022/lib/services/member.service.mjs +85 -0
- package/esm2022/lib/services/news.service.mjs +94 -0
- package/esm2022/lib/services/registration-qr-code.service.mjs +37 -0
- package/esm2022/lib/services/section.service.mjs +24 -0
- package/esm2022/lib/services/storage.service.mjs +44 -0
- package/esm2022/lib/services/team.service.mjs +89 -0
- package/esm2022/lib/services/token.service.mjs +58 -0
- package/esm2022/lib/services/user-notification.service.mjs +24 -0
- package/esm2022/lib/services/user.service.mjs +69 -0
- package/esm2022/lib/store/actions/activity.actions.mjs +177 -0
- package/esm2022/lib/store/actions/auth.actions.mjs +45 -0
- package/esm2022/lib/store/actions/booking.actions.mjs +187 -0
- package/esm2022/lib/store/actions/calendar.actions.mjs +77 -0
- package/esm2022/lib/store/actions/club-info.actions.mjs +23 -0
- package/esm2022/lib/store/actions/constant.actions.mjs +124 -0
- package/esm2022/lib/store/actions/email.actions.mjs +19 -0
- package/esm2022/lib/store/actions/external-link.actions.mjs +11 -0
- package/esm2022/lib/store/actions/file.actions.mjs +41 -0
- package/esm2022/lib/store/actions/index.mjs +19 -0
- package/esm2022/lib/store/actions/invoice.actions.mjs +75 -0
- package/esm2022/lib/store/actions/member-card.actions.mjs +73 -0
- package/esm2022/lib/store/actions/member.actions.mjs +69 -0
- package/esm2022/lib/store/actions/news.actions.mjs +47 -0
- package/esm2022/lib/store/actions/public-form.actions.mjs +17 -0
- package/esm2022/lib/store/actions/store.actions.mjs +7 -0
- package/esm2022/lib/store/actions/team.actions.mjs +91 -0
- package/esm2022/lib/store/actions/token.actions.mjs +53 -0
- package/esm2022/lib/store/actions/user.actions.mjs +49 -0
- package/esm2022/lib/store/effects/activity.effects.mjs +211 -0
- package/esm2022/lib/store/effects/auth.effects.mjs +96 -0
- package/esm2022/lib/store/effects/booking.effects.mjs +102 -0
- package/esm2022/lib/store/effects/calendar.effects.mjs +84 -0
- package/esm2022/lib/store/effects/club-info.effects.mjs +26 -0
- package/esm2022/lib/store/effects/constant.effects.mjs +69 -0
- package/esm2022/lib/store/effects/data-access.effects.mjs +37 -0
- package/esm2022/lib/store/effects/email.effects.mjs +27 -0
- package/esm2022/lib/store/effects/external-link.effects.mjs +20 -0
- package/esm2022/lib/store/effects/file.effects.mjs +149 -0
- package/esm2022/lib/store/effects/index.mjs +2 -0
- package/esm2022/lib/store/effects/invoice.effects.mjs +72 -0
- package/esm2022/lib/store/effects/member-card.effects.mjs +80 -0
- package/esm2022/lib/store/effects/member.effects.mjs +75 -0
- package/esm2022/lib/store/effects/mixins/extra-members-mixin.mjs +60 -0
- package/esm2022/lib/store/effects/news.effects.mjs +82 -0
- package/esm2022/lib/store/effects/public-form.effects.mjs +33 -0
- package/esm2022/lib/store/effects/team.effects.mjs +82 -0
- package/esm2022/lib/store/effects/token.effects.mjs +81 -0
- package/esm2022/lib/store/effects/user.effects.mjs +59 -0
- package/esm2022/lib/store/index.mjs +8 -0
- package/esm2022/lib/store/interfaces/activate-card-ticket.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/activate-user.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/calendar-activity-locations.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/calendar-activity-types.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/calendar-open-activity-result.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/calendar-public-open-activity-results.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/directory-result.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/email-settings.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/index.mjs +20 -0
- package/esm2022/lib/store/interfaces/list-result-interface.mjs +4 -0
- package/esm2022/lib/store/interfaces/location.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/member-calendar-event-result.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/member-card-deals.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/member-card-tickets.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/public-activate-card-ticket.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/remove-member-auth.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/remove-team-auth.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/retrieve-result.interface.mjs +4 -0
- package/esm2022/lib/store/interfaces/team-activity.interface.mjs +2 -0
- package/esm2022/lib/store/interfaces/team-calendar-event-result.interface.mjs +2 -0
- package/esm2022/lib/store/operators/ensure-activity.mjs +8 -0
- package/esm2022/lib/store/operators/ensure-auths.mjs +18 -0
- package/esm2022/lib/store/operators/ensure-calendar-events-loading-done.mjs +23 -0
- package/esm2022/lib/store/operators/ensure-constants.mjs +21 -0
- package/esm2022/lib/store/operators/ensure-current-auth.mjs +17 -0
- package/esm2022/lib/store/operators/ensure-current-user.mjs +16 -0
- package/esm2022/lib/store/operators/ensure-loading-done.mjs +24 -0
- package/esm2022/lib/store/operators/ensure-open-activities-loading-done.mjs +5 -0
- package/esm2022/lib/store/operators/ensure-public-open-activities-loading-done.mjs +5 -0
- package/esm2022/lib/store/operators/ensure-updated-data.mjs +10 -0
- package/esm2022/lib/store/operators/index.mjs +11 -0
- package/esm2022/lib/store/reducers/auth.reducer.mjs +52 -0
- package/esm2022/lib/store/reducers/booking.reducers.mjs +79 -0
- package/esm2022/lib/store/reducers/calendar.reducer.mjs +449 -0
- package/esm2022/lib/store/reducers/club-info.reducer.mjs +9 -0
- package/esm2022/lib/store/reducers/constant.reducer.mjs +181 -0
- package/esm2022/lib/store/reducers/data-access.reducer.mjs +37 -0
- package/esm2022/lib/store/reducers/email.reducer.mjs +21 -0
- package/esm2022/lib/store/reducers/external-link.reducer.mjs +6 -0
- package/esm2022/lib/store/reducers/file.reducer.mjs +118 -0
- package/esm2022/lib/store/reducers/index.mjs +2 -0
- package/esm2022/lib/store/reducers/invoice.reducer.mjs +29 -0
- package/esm2022/lib/store/reducers/member-card.reducer.mjs +33 -0
- package/esm2022/lib/store/reducers/member.reducer.mjs +21 -0
- package/esm2022/lib/store/reducers/news.reducer.mjs +96 -0
- package/esm2022/lib/store/reducers/public-form.reducer.mjs +21 -0
- package/esm2022/lib/store/reducers/public.reducer.mjs +109 -0
- package/esm2022/lib/store/reducers/reducer-helpers.mjs +61 -0
- package/esm2022/lib/store/reducers/team.reducer.mjs +77 -0
- package/esm2022/lib/store/reducers/token.reducer.mjs +21 -0
- package/esm2022/lib/store/reducers/user.reducer.mjs +18 -0
- package/esm2022/lib/store/selectors/auth.selectors.mjs +6 -0
- package/esm2022/lib/store/selectors/booking.selectors.mjs +15 -0
- package/esm2022/lib/store/selectors/calendar.selectors.mjs +18 -0
- package/esm2022/lib/store/selectors/club-info.selectors.mjs +5 -0
- package/esm2022/lib/store/selectors/constant.selectors.mjs +38 -0
- package/esm2022/lib/store/selectors/email.selectors.mjs +5 -0
- package/esm2022/lib/store/selectors/external-links.selectors.mjs +5 -0
- package/esm2022/lib/store/selectors/file.selectors.mjs +6 -0
- package/esm2022/lib/store/selectors/index.mjs +18 -0
- package/esm2022/lib/store/selectors/invoice.selectors.mjs +6 -0
- package/esm2022/lib/store/selectors/member-card.selectors.mjs +8 -0
- package/esm2022/lib/store/selectors/member.selectors.mjs +10 -0
- package/esm2022/lib/store/selectors/news.selectors.mjs +8 -0
- package/esm2022/lib/store/selectors/public-form.selectors.mjs +5 -0
- package/esm2022/lib/store/selectors/public.selectors.mjs +18 -0
- package/esm2022/lib/store/selectors/team.selectors.mjs +12 -0
- package/esm2022/lib/store/selectors/token.selectors.mjs +6 -0
- package/esm2022/lib/store/selectors/user.selectors.mjs +6 -0
- package/esm2022/lib/store/state/auth.state.mjs +5 -0
- package/esm2022/lib/store/state/booking.state.mjs +16 -0
- package/esm2022/lib/store/state/calendar.state.mjs +17 -0
- package/esm2022/lib/store/state/club-info.state.mjs +4 -0
- package/esm2022/lib/store/state/constant.state.mjs +21 -0
- package/esm2022/lib/store/state/data-access.state.mjs +2 -0
- package/esm2022/lib/store/state/email.state.mjs +7 -0
- package/esm2022/lib/store/state/external-link.state.mjs +4 -0
- package/esm2022/lib/store/state/file.state.mjs +5 -0
- package/esm2022/lib/store/state/index.mjs +19 -0
- package/esm2022/lib/store/state/invoice.state.mjs +5 -0
- package/esm2022/lib/store/state/member-card.state.mjs +7 -0
- package/esm2022/lib/store/state/member.state.mjs +10 -0
- package/esm2022/lib/store/state/news.state.mjs +7 -0
- package/esm2022/lib/store/state/public-form.state.mjs +5 -0
- package/esm2022/lib/store/state/public.state.mjs +17 -0
- package/esm2022/lib/store/state/team.state.mjs +11 -0
- package/esm2022/lib/store/state/token.state.mjs +5 -0
- package/esm2022/lib/store/state/user.state.mjs +5 -0
- package/fesm2022/myclub_se-data-access.mjs +10118 -0
- package/fesm2022/myclub_se-data-access.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/lib/api-models/api-booking-calendar-application-time.d.ts +3 -0
- package/lib/api-models/api-booking-calendar-slot-session.d.ts +3 -0
- package/lib/api-models/api-booking-calendar.d.ts +2 -0
- package/lib/api-models/api-feature-flags.d.ts +5 -0
- package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.d.ts +1 -1
- package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.d.ts +1 -1
- package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.d.ts +1 -1
- package/lib/api-models/index.d.ts +1 -0
- package/lib/authentication/authentication.interceptor.d.ts +12 -7
- package/lib/data-access.module.d.ts +3 -1
- package/lib/models/activity-settings.d.ts +3 -1
- package/lib/models/auth/auth.d.ts +3 -2
- package/lib/models/booking-calendar-application-time.d.ts +8 -3
- package/lib/models/booking-calendar-slot-session.d.ts +10 -5
- package/lib/models/booking-calendar-slot.d.ts +7 -6
- package/lib/models/booking-calendar.d.ts +4 -1
- package/lib/models/booking-settings.d.ts +5 -4
- package/lib/models/booking-slot-filter.d.ts +17 -0
- package/lib/models/directory.d.ts +1 -0
- package/lib/models/feature-flags.d.ts +7 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.d.ts +1 -1
- package/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.d.ts +1 -1
- package/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.d.ts +1 -1
- package/lib/services/activity.service.d.ts +55 -52
- package/lib/services/bookable.service.d.ts +9 -9
- package/lib/services/booking-calendar.service.d.ts +6 -23
- package/lib/services/constant.service.d.ts +5 -11
- package/lib/services/email.service.d.ts +0 -9
- package/lib/services/factories/feature-flags-factory.d.ts +3 -0
- package/lib/services/factories/index.d.ts +1 -0
- package/lib/services/feature-flags.service.d.ts +13 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/member.service.d.ts +7 -3
- package/lib/services/storage.service.d.ts +20 -0
- package/lib/store/actions/activity.actions.d.ts +641 -0
- package/lib/store/actions/auth.actions.d.ts +83 -0
- package/lib/store/actions/booking.actions.d.ts +652 -0
- package/lib/store/actions/calendar.actions.d.ts +381 -0
- package/lib/store/actions/club-info.actions.d.ts +54 -0
- package/lib/store/actions/constant.actions.d.ts +249 -0
- package/lib/store/actions/email.actions.d.ts +57 -0
- package/lib/store/actions/external-link.actions.d.ts +22 -0
- package/lib/store/actions/file.actions.d.ts +169 -0
- package/lib/store/actions/index.d.ts +18 -0
- package/lib/store/actions/invoice.actions.d.ts +300 -0
- package/lib/store/actions/member-card.actions.d.ts +253 -0
- package/lib/store/actions/member.actions.d.ts +216 -0
- package/lib/store/actions/news.actions.d.ts +164 -0
- package/lib/store/actions/public-form.actions.d.ts +46 -0
- package/lib/store/actions/store.actions.d.ts +4 -0
- package/lib/store/actions/team.actions.d.ts +334 -0
- package/lib/store/actions/token.actions.d.ts +151 -0
- package/lib/store/actions/user.actions.d.ts +102 -0
- package/lib/store/effects/activity.effects.d.ts +152 -0
- package/lib/store/effects/auth.effects.d.ts +35 -0
- package/lib/store/effects/booking.effects.d.ts +196 -0
- package/lib/store/effects/calendar.effects.d.ts +129 -0
- package/lib/store/effects/club-info.effects.d.ts +24 -0
- package/lib/store/effects/constant.effects.d.ts +96 -0
- package/lib/store/effects/data-access.effects.d.ts +18 -0
- package/lib/store/effects/email.effects.d.ts +14 -0
- package/lib/store/effects/external-link.effects.d.ts +14 -0
- package/lib/store/effects/file.effects.d.ts +55 -0
- package/lib/store/effects/index.d.ts +1 -0
- package/lib/store/effects/invoice.effects.d.ts +80 -0
- package/lib/store/effects/member-card.effects.d.ts +69 -0
- package/lib/store/effects/member.effects.d.ts +58 -0
- package/lib/store/effects/mixins/extra-members-mixin.d.ts +10 -0
- package/lib/store/effects/news.effects.d.ts +49 -0
- package/lib/store/effects/public-form.effects.d.ts +19 -0
- package/lib/store/effects/team.effects.d.ts +80 -0
- package/lib/store/effects/token.effects.d.ts +66 -0
- package/lib/store/effects/user.effects.d.ts +36 -0
- package/lib/store/index.d.ts +7 -0
- package/lib/store/interfaces/activate-card-ticket.interface.d.ts +6 -0
- package/lib/store/interfaces/activate-user.interface.d.ts +4 -0
- package/lib/store/interfaces/calendar-activity-locations.interface.d.ts +7 -0
- package/lib/store/interfaces/calendar-activity-types.interface.d.ts +7 -0
- package/lib/store/interfaces/calendar-open-activity-result.interface.d.ts +8 -0
- package/lib/store/interfaces/calendar-public-open-activity-results.interface.d.ts +7 -0
- package/lib/store/interfaces/directory-result.interface.d.ts +5 -0
- package/lib/store/interfaces/email-settings.interface.d.ts +5 -0
- package/lib/store/interfaces/index.d.ts +19 -0
- package/lib/store/interfaces/list-result-interface.d.ts +13 -0
- package/lib/store/interfaces/location.interface.d.ts +7 -0
- package/lib/store/interfaces/member-calendar-event-result.interface.d.ts +8 -0
- package/lib/store/interfaces/member-card-deals.interface.d.ts +5 -0
- package/lib/store/interfaces/member-card-tickets.interface.d.ts +5 -0
- package/lib/store/interfaces/public-activate-card-ticket.interface.d.ts +6 -0
- package/lib/store/interfaces/remove-member-auth.interface.d.ts +4 -0
- package/lib/store/interfaces/remove-team-auth.interface.d.ts +4 -0
- package/lib/store/interfaces/retrieve-result.interface.d.ts +13 -0
- package/lib/store/interfaces/team-activity.interface.d.ts +9 -0
- package/lib/store/interfaces/team-calendar-event-result.interface.d.ts +8 -0
- package/lib/store/operators/ensure-activity.d.ts +4 -0
- package/lib/store/operators/ensure-auths.d.ts +13 -0
- package/lib/store/operators/ensure-calendar-events-loading-done.d.ts +19 -0
- package/lib/store/operators/ensure-constants.d.ts +12 -0
- package/lib/store/operators/ensure-current-auth.d.ts +12 -0
- package/lib/store/operators/ensure-current-user.d.ts +11 -0
- package/lib/store/operators/ensure-loading-done.d.ts +20 -0
- package/lib/store/operators/ensure-open-activities-loading-done.d.ts +3 -0
- package/lib/store/operators/ensure-public-open-activities-loading-done.d.ts +3 -0
- package/lib/store/operators/ensure-updated-data.d.ts +4 -0
- package/lib/store/operators/index.d.ts +10 -0
- package/lib/store/reducers/auth.reducer.d.ts +2 -0
- package/lib/store/reducers/booking.reducers.d.ts +2 -0
- package/lib/store/reducers/calendar.reducer.d.ts +2 -0
- package/lib/store/reducers/club-info.reducer.d.ts +2 -0
- package/lib/store/reducers/constant.reducer.d.ts +2 -0
- package/lib/store/reducers/data-access.reducer.d.ts +3 -0
- package/lib/store/reducers/email.reducer.d.ts +2 -0
- package/lib/store/reducers/external-link.reducer.d.ts +2 -0
- package/lib/store/reducers/file.reducer.d.ts +2 -0
- package/lib/store/reducers/index.d.ts +1 -0
- package/lib/store/reducers/invoice.reducer.d.ts +2 -0
- package/lib/store/reducers/member-card.reducer.d.ts +2 -0
- package/lib/store/reducers/member.reducer.d.ts +2 -0
- package/lib/store/reducers/news.reducer.d.ts +2 -0
- package/lib/store/reducers/public-form.reducer.d.ts +2 -0
- package/lib/store/reducers/public.reducer.d.ts +2 -0
- package/lib/store/reducers/reducer-helpers.d.ts +8 -0
- package/lib/store/reducers/team.reducer.d.ts +2 -0
- package/lib/store/reducers/token.reducer.d.ts +2 -0
- package/lib/store/reducers/user.reducer.d.ts +2 -0
- package/lib/store/selectors/auth.selectors.d.ts +4 -0
- package/lib/store/selectors/booking.selectors.d.ts +13 -0
- package/lib/store/selectors/calendar.selectors.d.ts +16 -0
- package/lib/store/selectors/club-info.selectors.d.ts +3 -0
- package/lib/store/selectors/constant.selectors.d.ts +19 -0
- package/lib/store/selectors/email.selectors.d.ts +3 -0
- package/lib/store/selectors/external-links.selectors.d.ts +3 -0
- package/lib/store/selectors/file.selectors.d.ts +4 -0
- package/lib/store/selectors/index.d.ts +17 -0
- package/lib/store/selectors/invoice.selectors.d.ts +4 -0
- package/lib/store/selectors/member-card.selectors.d.ts +6 -0
- package/lib/store/selectors/member.selectors.d.ts +8 -0
- package/lib/store/selectors/news.selectors.d.ts +6 -0
- package/lib/store/selectors/public-form.selectors.d.ts +3 -0
- package/lib/store/selectors/public.selectors.d.ts +16 -0
- package/lib/store/selectors/team.selectors.d.ts +10 -0
- package/lib/store/selectors/token.selectors.d.ts +4 -0
- package/lib/store/selectors/user.selectors.d.ts +4 -0
- package/lib/store/state/auth.state.d.ts +7 -0
- package/lib/store/state/booking.state.d.ts +16 -0
- package/lib/store/state/calendar.state.d.ts +19 -0
- package/lib/store/state/club-info.state.d.ts +6 -0
- package/lib/store/state/constant.state.d.ts +23 -0
- package/lib/store/state/data-access.state.d.ts +36 -0
- package/lib/store/state/email.state.d.ts +5 -0
- package/lib/store/state/external-link.state.d.ts +6 -0
- package/lib/store/state/file.state.d.ts +6 -0
- package/lib/store/state/index.d.ts +18 -0
- package/lib/store/state/invoice.state.d.ts +7 -0
- package/lib/store/state/member-card.state.d.ts +9 -0
- package/lib/store/state/member.state.d.ts +11 -0
- package/lib/store/state/news.state.d.ts +9 -0
- package/lib/store/state/public-form.state.d.ts +7 -0
- package/lib/store/state/public.state.d.ts +19 -0
- package/lib/store/state/team.state.d.ts +13 -0
- package/lib/store/state/token.state.d.ts +7 -0
- package/lib/store/state/user.state.d.ts +7 -0
- package/lib/types/attribute-type.d.ts +1 -1
- package/lib/types/booking-calendar-slot-reserved-time-position.d.ts +1 -1
- package/lib/types/booking-calendar-slot-type.d.ts +1 -1
- package/lib/types/contact-type.d.ts +1 -1
- package/lib/types/grant-type.d.ts +1 -1
- package/lib/types/payment-attempt-status-type.d.ts +1 -1
- package/lib/types/payment-attempt-type.d.ts +1 -1
- package/lib/types/sex-type.d.ts +1 -1
- package/package.json +13 -18
- package/esm2020/lib/api-models/api-invoice/api-payment-attempt-create.mjs +0 -8
- package/esm2020/lib/api-models/index.mjs +0 -56
- package/esm2020/lib/authentication/authentication.interceptor.mjs +0 -66
- package/esm2020/lib/authentication/authentication.service.mjs +0 -106
- package/esm2020/lib/authentication/guards/authenticated.guard.mjs +0 -36
- package/esm2020/lib/authentication/guards/handle-grant-token.guard.mjs +0 -29
- package/esm2020/lib/data-access.module.mjs +0 -30
- package/esm2020/lib/maintenance/maintenance.interceptor.mjs +0 -29
- package/esm2020/lib/models/activity-extra-member.mjs +0 -12
- package/esm2020/lib/models/activity-invite.mjs +0 -20
- package/esm2020/lib/models/activity-location-group.mjs +0 -21
- package/esm2020/lib/models/activity-location-part.mjs +0 -14
- package/esm2020/lib/models/activity-location-tag.mjs +0 -17
- package/esm2020/lib/models/activity-location.mjs +0 -36
- package/esm2020/lib/models/activity-participant.mjs +0 -12
- package/esm2020/lib/models/activity-settings.mjs +0 -14
- package/esm2020/lib/models/activity-type.mjs +0 -26
- package/esm2020/lib/models/activity.mjs +0 -92
- package/esm2020/lib/models/auth/auth-member.mjs +0 -10
- package/esm2020/lib/models/auth/auth-team.mjs +0 -9
- package/esm2020/lib/models/auth/auth.mjs +0 -15
- package/esm2020/lib/models/bookable-group.mjs +0 -21
- package/esm2020/lib/models/bookable-item.mjs +0 -39
- package/esm2020/lib/models/bookable-part.mjs +0 -14
- package/esm2020/lib/models/bookable-tag.mjs +0 -17
- package/esm2020/lib/models/booking-calendar-application-time.mjs +0 -52
- package/esm2020/lib/models/booking-calendar-slot-session.mjs +0 -54
- package/esm2020/lib/models/booking-calendar-slot.mjs +0 -53
- package/esm2020/lib/models/booking-calendar.mjs +0 -54
- package/esm2020/lib/models/booking-settings.mjs +0 -22
- package/esm2020/lib/models/calendar-event.mjs +0 -20
- package/esm2020/lib/models/calendar.mjs +0 -10
- package/esm2020/lib/models/card/card-deal.mjs +0 -10
- package/esm2020/lib/models/card/card-logo-urls.mjs +0 -13
- package/esm2020/lib/models/card/card-logo.mjs +0 -8
- package/esm2020/lib/models/card/card-member-ticket.mjs +0 -11
- package/esm2020/lib/models/card/card-theme.mjs +0 -10
- package/esm2020/lib/models/card/card-ticket-location.mjs +0 -9
- package/esm2020/lib/models/card/card-ticket.mjs +0 -21
- package/esm2020/lib/models/card/home-team.mjs +0 -8
- package/esm2020/lib/models/card/member-card.mjs +0 -14
- package/esm2020/lib/models/card/search-member-card.mjs +0 -9
- package/esm2020/lib/models/club-image.mjs +0 -18
- package/esm2020/lib/models/collection.mjs +0 -15
- package/esm2020/lib/models/contact.mjs +0 -46
- package/esm2020/lib/models/directory.mjs +0 -26
- package/esm2020/lib/models/email.mjs +0 -8
- package/esm2020/lib/models/event.mjs +0 -26
- package/esm2020/lib/models/file-object.mjs +0 -14
- package/esm2020/lib/models/general-image.mjs +0 -8
- package/esm2020/lib/models/group-role.mjs +0 -11
- package/esm2020/lib/models/image-urls.mjs +0 -10
- package/esm2020/lib/models/index.mjs +0 -62
- package/esm2020/lib/models/invoice/member-fee.mjs +0 -9
- package/esm2020/lib/models/invoice/member-invoice-row.mjs +0 -18
- package/esm2020/lib/models/invoice/member-invoice.mjs +0 -25
- package/esm2020/lib/models/invoice/payment-attempt.mjs +0 -13
- package/esm2020/lib/models/invoice/payment-types/credit-card.mjs +0 -16
- package/esm2020/lib/models/invoice/payment-types/giro.mjs +0 -11
- package/esm2020/lib/models/invoice/payment-types/swish.mjs +0 -18
- package/esm2020/lib/models/invoice/payment-types/zimpler.mjs +0 -12
- package/esm2020/lib/models/invoice/search-member-invoice.mjs +0 -17
- package/esm2020/lib/models/invoice/unpaid-member-invoice.mjs +0 -9
- package/esm2020/lib/models/member/member-attribute.mjs +0 -33
- package/esm2020/lib/models/member/member-contact.mjs +0 -21
- package/esm2020/lib/models/member/member-function.mjs +0 -19
- package/esm2020/lib/models/member/member-validation-settings.mjs +0 -13
- package/esm2020/lib/models/member/member.mjs +0 -75
- package/esm2020/lib/models/member/other-member.mjs +0 -13
- package/esm2020/lib/models/member/search-member.mjs +0 -20
- package/esm2020/lib/models/member-activity-invite.mjs +0 -31
- package/esm2020/lib/models/member-public-form-field-option.mjs +0 -9
- package/esm2020/lib/models/member-public-form-field.mjs +0 -16
- package/esm2020/lib/models/member-public-form.mjs +0 -30
- package/esm2020/lib/models/member-team-through.mjs +0 -14
- package/esm2020/lib/models/member-team.mjs +0 -13
- package/esm2020/lib/models/member-type.mjs +0 -8
- package/esm2020/lib/models/news.mjs +0 -47
- package/esm2020/lib/models/open-activity.mjs +0 -62
- package/esm2020/lib/models/optional-fee.mjs +0 -11
- package/esm2020/lib/models/overbooked-bookable-item.mjs +0 -10
- package/esm2020/lib/models/overbooked-location.mjs +0 -10
- package/esm2020/lib/models/partner.mjs +0 -9
- package/esm2020/lib/models/public-authentication.mjs +0 -7
- package/esm2020/lib/models/registration-qr-code.mjs +0 -12
- package/esm2020/lib/models/search-club.mjs +0 -14
- package/esm2020/lib/models/search-team.mjs +0 -18
- package/esm2020/lib/models/token.mjs +0 -8
- package/esm2020/lib/models/user-notification.mjs +0 -13
- package/esm2020/lib/models/user.mjs +0 -31
- package/esm2020/lib/services/activity.service.mjs +0 -470
- package/esm2020/lib/services/api.service.mjs +0 -106
- package/esm2020/lib/services/auth.service.mjs +0 -61
- package/esm2020/lib/services/bookable.service.mjs +0 -278
- package/esm2020/lib/services/booking-calendar.service.mjs +0 -794
- package/esm2020/lib/services/club.service.mjs +0 -34
- package/esm2020/lib/services/constant.service.mjs +0 -131
- package/esm2020/lib/services/email.service.mjs +0 -53
- package/esm2020/lib/services/external-link.service.mjs +0 -24
- package/esm2020/lib/services/factories/activity-settings-factory.mjs +0 -3
- package/esm2020/lib/services/factories/index.mjs +0 -86
- package/esm2020/lib/services/factories/member-public-form-factory.mjs +0 -26
- package/esm2020/lib/services/factories/payment-attempt-factory.mjs +0 -23
- package/esm2020/lib/services/file.service.mjs +0 -64
- package/esm2020/lib/services/index.mjs +0 -22
- package/esm2020/lib/services/invoice/invoice.service.mjs +0 -41
- package/esm2020/lib/services/invoice/payment-attempt.service.mjs +0 -51
- package/esm2020/lib/services/maintenance-mode.service.mjs +0 -21
- package/esm2020/lib/services/member-card.service.mjs +0 -103
- package/esm2020/lib/services/member-public-form.service.mjs +0 -32
- package/esm2020/lib/services/member.service.mjs +0 -63
- package/esm2020/lib/services/news.service.mjs +0 -102
- package/esm2020/lib/services/registration-qr-code.service.mjs +0 -36
- package/esm2020/lib/services/section.service.mjs +0 -23
- package/esm2020/lib/services/team.service.mjs +0 -88
- package/esm2020/lib/services/token.service.mjs +0 -57
- package/esm2020/lib/services/user-notification.service.mjs +0 -23
- package/esm2020/lib/services/user.service.mjs +0 -68
- package/fesm2015/myclub_se-data-access.mjs +0 -4835
- package/fesm2015/myclub_se-data-access.mjs.map +0 -1
- package/fesm2020/myclub_se-data-access.mjs +0 -4831
- package/fesm2020/myclub_se-data-access.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-extra-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-invite.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-group.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-part.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-tag.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-participant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-activity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-section.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team-section.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-auth/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-bookable-group.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-bookable-item.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-bookable-part.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-bookable-tag.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-booking-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-calendar-event.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-calendar.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-deal.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo-urls.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-member-ticket.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-theme.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-home-team.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-member-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/api-search-member-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-club-image.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-club-section.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-club.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-collection.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-directory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-event.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-external-link.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-file-object.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-general-image.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-group-role.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-image-urls.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-credit-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-giro.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-swish.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-zimpler.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-fee.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice-row.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-payment-attempt.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-search-member-invoice.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-swish-qr-code.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-unpaid-member-invoice.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-contact.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-attribute.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-contact.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-validation-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member-field.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/api-search-member.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-activity-invite.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field-option.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-team-through.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-team.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-member-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-news.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-open-activity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-optional-fee.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-bookable-item.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-partner.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-public-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-registration-qr-code.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-search-club.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-search-team.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-section.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-user-notification.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api-models/api-user.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/authentication/authentication.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/authentication/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/email-recipient.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/new-account.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/open-activity-search-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/option.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/sms-recipient.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/maintenance/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/auth/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/invoice/payment-types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/member/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/role.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-extra-member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-invite-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-location-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-location-group-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-location-part-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-location-tag-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-participant-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/activity-type-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-section-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-team-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/auth-team-section-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/bookable-group-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/bookable-item-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/bookable-part-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/bookable-tag-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/booking-settings-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-deal-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-logo-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-logo-urls-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-member-ticket-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-theme-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-location-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/club-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/club-image-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/club-section-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/contact-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/credit-card-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/directory-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/event-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/external-link-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/file-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/general-image-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/giro-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/group-role-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/home-team-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/image-urls-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-attribute-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-card-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-contact-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-fee-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-function-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-invite-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-row-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-option-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-team-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-team-through-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-type-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/member-validation-settings-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/news-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/open-activity-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/optional-fee-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/other-member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/other-member-field-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/overbooked-bookable-item-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/overbooked-location-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/partner-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/public-authentication-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/registration-qr-code-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-club-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-member-card-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-member-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-member-invoice-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-member-team-through-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/search-team-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/section-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/swish-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/token-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/unpaid-invoice-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/user-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/user-notification-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/factories/zimpler-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/invoice/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/attribute-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-reserved-time-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/contact-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/grant-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/payment-attempt-status-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/payment-attempt-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/sex-type.mjs +0 -0
- /package/{esm2020 → esm2022}/myclub_se-data-access.mjs +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ActivityEffects } from './activity.effects';
|
|
2
|
+
import { AuthEffects } from './auth.effects';
|
|
3
|
+
import { CalendarEffects } from './calendar.effects';
|
|
4
|
+
import { ClubInfoEffects } from './club-info.effects';
|
|
5
|
+
import { ConstantEffects } from './constant.effects';
|
|
6
|
+
import { EmailEffects } from './email.effects';
|
|
7
|
+
import { ExternalLinkEffects } from './external-link.effects';
|
|
8
|
+
import { FileEffects } from './file.effects';
|
|
9
|
+
import { InvoiceEffects } from './invoice.effects';
|
|
10
|
+
import { MemberEffects } from './member.effects';
|
|
11
|
+
import { MemberCardEffects } from './member-card.effects';
|
|
12
|
+
import { NewsEffects } from './news.effects';
|
|
13
|
+
import { PublicFormEffects } from './public-form.effects';
|
|
14
|
+
import { TeamEffects } from './team.effects';
|
|
15
|
+
import { TokenEffects } from './token.effects';
|
|
16
|
+
import { UserEffects } from './user.effects';
|
|
17
|
+
import { BookingEffects } from './booking.effects';
|
|
18
|
+
export const dataAccessEffects = [
|
|
19
|
+
ActivityEffects,
|
|
20
|
+
AuthEffects,
|
|
21
|
+
BookingEffects,
|
|
22
|
+
CalendarEffects,
|
|
23
|
+
ClubInfoEffects,
|
|
24
|
+
ConstantEffects,
|
|
25
|
+
EmailEffects,
|
|
26
|
+
ExternalLinkEffects,
|
|
27
|
+
FileEffects,
|
|
28
|
+
InvoiceEffects,
|
|
29
|
+
MemberEffects,
|
|
30
|
+
MemberCardEffects,
|
|
31
|
+
NewsEffects,
|
|
32
|
+
PublicFormEffects,
|
|
33
|
+
TeamEffects,
|
|
34
|
+
TokenEffects,
|
|
35
|
+
UserEffects,
|
|
36
|
+
];
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1hY2Nlc3MuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9kYXRhLWFjY2Vzcy5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsZUFBZTtJQUNmLFdBQVc7SUFDWCxjQUFjO0lBQ2QsZUFBZTtJQUNmLGVBQWU7SUFDZixlQUFlO0lBQ2YsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsY0FBYztJQUNkLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixXQUFXO0lBQ1gsWUFBWTtJQUNaLFdBQVc7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZpdHlFZmZlY3RzIH0gZnJvbSAnLi9hY3Rpdml0eS5lZmZlY3RzJztcbmltcG9ydCB7IEF1dGhFZmZlY3RzIH0gZnJvbSAnLi9hdXRoLmVmZmVjdHMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJFZmZlY3RzIH0gZnJvbSAnLi9jYWxlbmRhci5lZmZlY3RzJztcbmltcG9ydCB7IENsdWJJbmZvRWZmZWN0cyB9IGZyb20gJy4vY2x1Yi1pbmZvLmVmZmVjdHMnO1xuaW1wb3J0IHsgQ29uc3RhbnRFZmZlY3RzIH0gZnJvbSAnLi9jb25zdGFudC5lZmZlY3RzJztcbmltcG9ydCB7IEVtYWlsRWZmZWN0cyB9IGZyb20gJy4vZW1haWwuZWZmZWN0cyc7XG5pbXBvcnQgeyBFeHRlcm5hbExpbmtFZmZlY3RzIH0gZnJvbSAnLi9leHRlcm5hbC1saW5rLmVmZmVjdHMnO1xuaW1wb3J0IHsgRmlsZUVmZmVjdHMgfSBmcm9tICcuL2ZpbGUuZWZmZWN0cyc7XG5pbXBvcnQgeyBJbnZvaWNlRWZmZWN0cyB9IGZyb20gJy4vaW52b2ljZS5lZmZlY3RzJztcbmltcG9ydCB7IE1lbWJlckVmZmVjdHMgfSBmcm9tICcuL21lbWJlci5lZmZlY3RzJztcbmltcG9ydCB7IE1lbWJlckNhcmRFZmZlY3RzIH0gZnJvbSAnLi9tZW1iZXItY2FyZC5lZmZlY3RzJztcbmltcG9ydCB7IE5ld3NFZmZlY3RzIH0gZnJvbSAnLi9uZXdzLmVmZmVjdHMnO1xuaW1wb3J0IHsgUHVibGljRm9ybUVmZmVjdHMgfSBmcm9tICcuL3B1YmxpYy1mb3JtLmVmZmVjdHMnO1xuaW1wb3J0IHsgVGVhbUVmZmVjdHMgfSBmcm9tICcuL3RlYW0uZWZmZWN0cyc7XG5pbXBvcnQgeyBUb2tlbkVmZmVjdHMgfSBmcm9tICcuL3Rva2VuLmVmZmVjdHMnO1xuaW1wb3J0IHsgVXNlckVmZmVjdHMgfSBmcm9tICcuL3VzZXIuZWZmZWN0cyc7XG5pbXBvcnQgeyBCb29raW5nRWZmZWN0cyB9IGZyb20gJy4vYm9va2luZy5lZmZlY3RzJztcblxuZXhwb3J0IGNvbnN0IGRhdGFBY2Nlc3NFZmZlY3RzID0gW1xuICBBY3Rpdml0eUVmZmVjdHMsXG4gIEF1dGhFZmZlY3RzLFxuICBCb29raW5nRWZmZWN0cyxcbiAgQ2FsZW5kYXJFZmZlY3RzLFxuICBDbHViSW5mb0VmZmVjdHMsXG4gIENvbnN0YW50RWZmZWN0cyxcbiAgRW1haWxFZmZlY3RzLFxuICBFeHRlcm5hbExpbmtFZmZlY3RzLFxuICBGaWxlRWZmZWN0cyxcbiAgSW52b2ljZUVmZmVjdHMsXG4gIE1lbWJlckVmZmVjdHMsXG4gIE1lbWJlckNhcmRFZmZlY3RzLFxuICBOZXdzRWZmZWN0cyxcbiAgUHVibGljRm9ybUVmZmVjdHMsXG4gIFRlYW1FZmZlY3RzLFxuICBUb2tlbkVmZmVjdHMsXG4gIFVzZXJFZmZlY3RzLFxuXTtcbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { EmailService } from '../../services';
|
|
3
|
+
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
|
4
|
+
import { sendEmailAction, sendEmailFailureAction, sendEmailSuccessAction } from '../actions';
|
|
5
|
+
import { mergeMap, of, withLatestFrom } from 'rxjs';
|
|
6
|
+
import { Store } from '@ngrx/store';
|
|
7
|
+
import { selectEmailSettings } from '../selectors';
|
|
8
|
+
import { catchError, map } from 'rxjs/operators';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class EmailEffects {
|
|
11
|
+
actions$ = inject(Actions);
|
|
12
|
+
emailService = inject(EmailService);
|
|
13
|
+
store = inject(Store);
|
|
14
|
+
sendEmail$ = createEffect(() => this.actions$
|
|
15
|
+
.pipe(ofType(sendEmailAction), withLatestFrom(this.store.select(selectEmailSettings)), mergeMap(([action, settings]) => this.emailService.sendTeamLeaderEmail(action.payload.teamId, {
|
|
16
|
+
body: action.payload.body,
|
|
17
|
+
subject: action.payload.subject,
|
|
18
|
+
recipients: settings.recipients
|
|
19
|
+
})
|
|
20
|
+
.pipe(map((sentEmails) => sendEmailSuccessAction({ payload: sentEmails })), catchError((error) => of(sendEmailFailureAction({ payload: error })))))));
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EmailEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EmailEffects });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EmailEffects, decorators: [{
|
|
25
|
+
type: Injectable
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9lbWFpbC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLakQsTUFBTSxPQUFPLFlBQVk7SUFDZixRQUFRLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLFlBQVksR0FBaUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELEtBQUssR0FBVSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFckMsVUFBVSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUMxQyxJQUFJLENBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUN2QixjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUN0RCxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUMxRixJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1FBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87UUFDL0IsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO0tBQ2hDLENBQUM7U0FDQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQyxFQUMxRSxVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3ZGLENBQ0osQ0FDRixDQUNGLENBQUM7dUdBcEJTLFlBQVk7MkdBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW1haWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IHNlbmRFbWFpbEFjdGlvbiwgc2VuZEVtYWlsRmFpbHVyZUFjdGlvbiwgc2VuZEVtYWlsU3VjY2Vzc0FjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAsIG9mLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBzZWxlY3RFbWFpbFNldHRpbmdzIH0gZnJvbSAnLi4vc2VsZWN0b3JzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbWFpbEVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIGVtYWlsU2VydmljZTogRW1haWxTZXJ2aWNlID0gaW5qZWN0KEVtYWlsU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmU6IFN0b3JlID0gaW5qZWN0KFN0b3JlKTtcblxuICBzZW5kRW1haWwkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShzZW5kRW1haWxBY3Rpb24pLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3Qoc2VsZWN0RW1haWxTZXR0aW5ncykpLFxuICAgICAgbWVyZ2VNYXAoKFthY3Rpb24sIHNldHRpbmdzXSkgPT4gdGhpcy5lbWFpbFNlcnZpY2Uuc2VuZFRlYW1MZWFkZXJFbWFpbChhY3Rpb24ucGF5bG9hZC50ZWFtSWQsIHtcbiAgICAgICAgICBib2R5OiBhY3Rpb24ucGF5bG9hZC5ib2R5LFxuICAgICAgICAgIHN1YmplY3Q6IGFjdGlvbi5wYXlsb2FkLnN1YmplY3QsXG4gICAgICAgICAgcmVjaXBpZW50czogc2V0dGluZ3MucmVjaXBpZW50c1xuICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChzZW50RW1haWxzOiBudW1iZXIpID0+IHNlbmRFbWFpbFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHNlbnRFbWFpbHN9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHNlbmRFbWFpbEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { ExternalLinkService } from '../../services';
|
|
4
|
+
import { getMemberExternalLinksAction, getMemberExternalLinksFailureAction, getMemberExternalLinksSuccessAction } from '../actions';
|
|
5
|
+
import { exhaustMap, of } from 'rxjs';
|
|
6
|
+
import { catchError, map } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class ExternalLinkEffects {
|
|
9
|
+
actions$ = inject(Actions);
|
|
10
|
+
externalLinksService = inject(ExternalLinkService);
|
|
11
|
+
getMemberExternalLinks$ = createEffect(() => this.actions$
|
|
12
|
+
.pipe(ofType(getMemberExternalLinksAction), exhaustMap(({ payload }) => this.externalLinksService.getMemberExternalLinks(payload)
|
|
13
|
+
.pipe(map((links) => getMemberExternalLinksSuccessAction({ payload: links.toArray() })), catchError((error) => of(getMemberExternalLinksFailureAction({ payload: error })))))));
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ExternalLinkEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ExternalLinkEffects });
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ExternalLinkEffects, decorators: [{
|
|
18
|
+
type: Injectable
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtbGluay5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2V4dGVybmFsLWxpbmsuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixtQ0FBbUMsRUFDbkMsbUNBQW1DLEVBQ3BDLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSWpELE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixvQkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUUzRCx1QkFBdUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDdkQsSUFBSSxDQUNILE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxFQUNwQyxVQUFVLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO1NBQ2hGLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxLQUErQixFQUFFLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQ3pHLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDcEcsQ0FDRixDQUNGLENBQ0YsQ0FBQzt1R0FkUyxtQkFBbUI7MkdBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEV4dGVybmFsTGlua1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBFeHRlcm5hbExpbmsgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgZ2V0TWVtYmVyRXh0ZXJuYWxMaW5rc0FjdGlvbixcbiAgZ2V0TWVtYmVyRXh0ZXJuYWxMaW5rc0ZhaWx1cmVBY3Rpb24sXG4gIGdldE1lbWJlckV4dGVybmFsTGlua3NTdWNjZXNzQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZXhoYXVzdE1hcCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxMaW5rRWZmZWN0cyB7XG4gIHByaXZhdGUgYWN0aW9ucyQgPSBpbmplY3QoQWN0aW9ucyk7XG4gIHByaXZhdGUgZXh0ZXJuYWxMaW5rc1NlcnZpY2UgPSBpbmplY3QoRXh0ZXJuYWxMaW5rU2VydmljZSk7XG5cbiAgZ2V0TWVtYmVyRXh0ZXJuYWxMaW5rcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGdldE1lbWJlckV4dGVybmFsTGlua3NBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9KSA9PiB0aGlzLmV4dGVybmFsTGlua3NTZXJ2aWNlLmdldE1lbWJlckV4dGVybmFsTGlua3MocGF5bG9hZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChsaW5rczogQ29sbGVjdGlvbjxFeHRlcm5hbExpbms+KSA9PiBnZXRNZW1iZXJFeHRlcm5hbExpbmtzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogbGlua3MudG9BcnJheSgpfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoZ2V0TWVtYmVyRXh0ZXJuYWxMaW5rc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { FileService } from '../../services';
|
|
4
|
+
import { createTeamDirectoryAction, createTeamDirectoryFailureAction, createTeamDirectorySuccessAction, createTeamFileAction, createTeamFileFailureAction, createTeamFileSuccessAction, deleteTeamDirectoryAction, deleteTeamDirectoryFailureAction, deleteTeamDirectorySuccessAction, deleteTeamFileAction, deleteTeamFileFailureAction, deleteTeamFileSuccessAction, retrieveMemberDirectoriesAction, retrieveMemberDirectoriesFailureAction, retrieveMemberDirectoriesSuccessAction, retrieveTeamDirectoriesAction, retrieveTeamDirectoriesFailureAction, retrieveTeamDirectoriesSuccessAction } from '../actions';
|
|
5
|
+
import { exhaustMap, forkJoin, mergeMap, of } from 'rxjs';
|
|
6
|
+
import { catchError, map } from 'rxjs/operators';
|
|
7
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class FileEffects {
|
|
10
|
+
actions$ = inject(Actions);
|
|
11
|
+
fileService = inject(FileService);
|
|
12
|
+
createTeamDirectory$ = createEffect(() => this.actions$
|
|
13
|
+
.pipe(ofType(createTeamDirectoryAction), exhaustMap(({ payload }) => this.fileService.createTeamDirectory(payload.teamId, { name: payload.directory.name })
|
|
14
|
+
.pipe(map((directory) => createTeamDirectorySuccessAction({
|
|
15
|
+
payload: {
|
|
16
|
+
teamId: payload.teamId,
|
|
17
|
+
directory
|
|
18
|
+
}
|
|
19
|
+
})), catchError((error) => of(createTeamDirectoryFailureAction({ payload: error })))))));
|
|
20
|
+
createTeamFile$ = createEffect(() => this.actions$
|
|
21
|
+
.pipe(ofType(createTeamFileAction), exhaustMap(({ payload }) => this.fileService.createTeamFile(payload.teamId, payload.directoryId, payload.file)
|
|
22
|
+
.pipe(map((file) => createTeamFileSuccessAction({
|
|
23
|
+
payload: {
|
|
24
|
+
teamId: payload.teamId,
|
|
25
|
+
directoryId: payload.directoryId,
|
|
26
|
+
file
|
|
27
|
+
}
|
|
28
|
+
})), catchError((error) => of(createTeamFileFailureAction({ payload: error })))))));
|
|
29
|
+
deleteTeamDirectory$ = createEffect(() => this.actions$
|
|
30
|
+
.pipe(ofType(deleteTeamDirectoryAction), exhaustMap(({ payload }) => this.fileService.deleteTeamDirectory(payload.teamId, payload.directoryId)
|
|
31
|
+
.pipe(map((success) => {
|
|
32
|
+
if (success) {
|
|
33
|
+
return deleteTeamDirectorySuccessAction({ payload: { ...payload } });
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return deleteTeamDirectoryFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
|
|
37
|
+
}
|
|
38
|
+
}), catchError((error) => of(deleteTeamDirectoryFailureAction({ payload: error })))))));
|
|
39
|
+
deleteTeamFile$ = createEffect(() => this.actions$
|
|
40
|
+
.pipe(ofType(deleteTeamFileAction), exhaustMap(({ payload }) => this.fileService.deleteTeamFile(payload.teamId, payload.directoryId, payload.fileId)
|
|
41
|
+
.pipe(map((success) => {
|
|
42
|
+
if (success) {
|
|
43
|
+
return deleteTeamFileSuccessAction({ payload: { ...payload } });
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return deleteTeamFileFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
|
|
47
|
+
}
|
|
48
|
+
}), catchError((error) => of(deleteTeamFileFailureAction({ payload: error })))))));
|
|
49
|
+
retrieveTeamDirectories$ = createEffect(() => this.actions$
|
|
50
|
+
.pipe(ofType(retrieveTeamDirectoriesAction), exhaustMap(({ payload }) => this.fileService.getTeamDirectories(payload)
|
|
51
|
+
.pipe(map((directories) => {
|
|
52
|
+
const files = new Map();
|
|
53
|
+
directories.toArray().forEach((directory) => {
|
|
54
|
+
this.addDirectory(directory, files, payload);
|
|
55
|
+
});
|
|
56
|
+
let locations = [...this.processLocations(files, payload)];
|
|
57
|
+
locations.sort((a) => (a.teamId === payload ? -1 : 1));
|
|
58
|
+
return retrieveTeamDirectoriesSuccessAction({ payload: { locations, files } });
|
|
59
|
+
}), catchError((error) => of(retrieveTeamDirectoriesFailureAction({ payload: error })))))));
|
|
60
|
+
retrieveMemberDirectories$ = createEffect(() => this.actions$
|
|
61
|
+
.pipe(ofType(retrieveMemberDirectoriesAction), mergeMap(({ payload }) => {
|
|
62
|
+
if (payload.length) {
|
|
63
|
+
return forkJoin(payload.map((id) => this.fileService.getMemberDirectories(id)
|
|
64
|
+
.pipe(map((directories) => ({ id, directories: directories.toArray() })), catchError((error) => of({ id, error }))))).pipe(map(results => {
|
|
65
|
+
const files = new Map();
|
|
66
|
+
// Process and add directories to the files map
|
|
67
|
+
results.forEach(result => {
|
|
68
|
+
if ('directories' in result) {
|
|
69
|
+
result.directories.forEach((directory) => {
|
|
70
|
+
this.addDirectory(directory, files);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else if ('error' in result) {
|
|
74
|
+
throw (result.error);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
const locations = this.processLocations(files);
|
|
78
|
+
// Dispatch success action with the processed result
|
|
79
|
+
return retrieveMemberDirectoriesSuccessAction({
|
|
80
|
+
payload: {
|
|
81
|
+
locations,
|
|
82
|
+
files
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}), catchError((error) => of(retrieveMemberDirectoriesFailureAction({ payload: error }))));
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
return [retrieveMemberDirectoriesSuccessAction({
|
|
89
|
+
payload: {
|
|
90
|
+
locations: [],
|
|
91
|
+
files: new Map()
|
|
92
|
+
}
|
|
93
|
+
})];
|
|
94
|
+
}
|
|
95
|
+
})));
|
|
96
|
+
addDirectory(directory, files, teamId) {
|
|
97
|
+
const locationId = directory.belongsToTeam() ? 't' + directory.team_id : directory.belongsToSection()
|
|
98
|
+
? 's' + directory.section_id : 'c' + directory.club_id;
|
|
99
|
+
let location = files.get(locationId);
|
|
100
|
+
if (typeof location === 'undefined') {
|
|
101
|
+
files.set(locationId, {
|
|
102
|
+
id: locationId,
|
|
103
|
+
name: directory.location_name,
|
|
104
|
+
directories: [],
|
|
105
|
+
teamId: directory.team_id
|
|
106
|
+
});
|
|
107
|
+
location = files.get(locationId);
|
|
108
|
+
}
|
|
109
|
+
if (location &&
|
|
110
|
+
!location.directories.find((value) => value.id === directory.id) &&
|
|
111
|
+
(directory.files.length !== 0 || directory.team_id === teamId)) {
|
|
112
|
+
location.directories.push(directory);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
processLocations(files, teamId) {
|
|
116
|
+
let locations = [];
|
|
117
|
+
if (files.size && Array.from(files.values()).some((location) => location.directories.length !== 0 || teamId)) {
|
|
118
|
+
let firstItem;
|
|
119
|
+
if (typeof files.get('') !== 'undefined') {
|
|
120
|
+
firstItem = files.get('');
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
[firstItem] = files.values();
|
|
124
|
+
}
|
|
125
|
+
locations = [firstItem];
|
|
126
|
+
const otherLocations = [];
|
|
127
|
+
files.forEach((location, key) => {
|
|
128
|
+
if (location) {
|
|
129
|
+
if (key && !locations.find((searchLocation) => location.name === searchLocation.name &&
|
|
130
|
+
location.directories.length === searchLocation.directories.length)) {
|
|
131
|
+
otherLocations.push(location);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
otherLocations.sort((a, b) => (a.name < b.name ? -1 : 1));
|
|
136
|
+
locations = locations.concat(otherLocations);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
locations = [];
|
|
140
|
+
}
|
|
141
|
+
return locations;
|
|
142
|
+
}
|
|
143
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FileEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
144
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FileEffects });
|
|
145
|
+
}
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FileEffects, decorators: [{
|
|
147
|
+
type: Injectable
|
|
148
|
+
}] });
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2ZpbGUuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZ0NBQWdDLEVBQ2hDLGdDQUFnQyxFQUNoQyxvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIsZ0NBQWdDLEVBQUUsZ0NBQWdDLEVBQ2xFLG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLCtCQUErQixFQUMvQixzQ0FBc0MsRUFDdEMsc0NBQXNDLEVBQ3RDLDZCQUE2QixFQUM3QixvQ0FBb0MsRUFDcEMsb0NBQW9DLEVBQ3JDLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJekQsTUFBTSxPQUFPLFdBQVc7SUFDZCxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFMUMsb0JBQW9CLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFD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QUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQW9CLEVBQUUsQ0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hHLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzt1R0FoTlUsV0FBVzsyR0FBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgRmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBjcmVhdGVUZWFtRGlyZWN0b3J5QWN0aW9uLFxuICBjcmVhdGVUZWFtRGlyZWN0b3J5RmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlVGVhbURpcmVjdG9yeVN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZVRlYW1GaWxlQWN0aW9uLFxuICBjcmVhdGVUZWFtRmlsZUZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZVRlYW1GaWxlU3VjY2Vzc0FjdGlvbixcbiAgZGVsZXRlVGVhbURpcmVjdG9yeUFjdGlvbixcbiAgZGVsZXRlVGVhbURpcmVjdG9yeUZhaWx1cmVBY3Rpb24sIGRlbGV0ZVRlYW1EaXJlY3RvcnlTdWNjZXNzQWN0aW9uLFxuICBkZWxldGVUZWFtRmlsZUFjdGlvbixcbiAgZGVsZXRlVGVhbUZpbGVGYWlsdXJlQWN0aW9uLFxuICBkZWxldGVUZWFtRmlsZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyRGlyZWN0b3JpZXNBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyRGlyZWN0b3JpZXNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckRpcmVjdG9yaWVzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtRGlyZWN0b3JpZXNBY3Rpb24sXG4gIHJldHJpZXZlVGVhbURpcmVjdG9yaWVzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtRGlyZWN0b3JpZXNTdWNjZXNzQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZXhoYXVzdE1hcCwgZm9ya0pvaW4sIG1lcmdlTWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiwgRGlyZWN0b3J5LCBGaWxlT2JqZWN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IExvY2F0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmlsZUVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIGZpbGVTZXJ2aWNlID0gaW5qZWN0KEZpbGVTZXJ2aWNlKTtcblxuICBjcmVhdGVUZWFtRGlyZWN0b3J5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlVGVhbURpcmVjdG9yeUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCBkaXJlY3Rvcnk6IFBhcnRpYWw8RGlyZWN0b3J5PiB9XG4gICAgICAgIH0pID0+IHRoaXMuZmlsZVNlcnZpY2UuY3JlYXRlVGVhbURpcmVjdG9yeShwYXlsb2FkLnRlYW1JZCwge25hbWU6IHBheWxvYWQuZGlyZWN0b3J5Lm5hbWV9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChkaXJlY3Rvcnk6IERpcmVjdG9yeSkgPT4gY3JlYXRlVGVhbURpcmVjdG9yeVN1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgdGVhbUlkOiBwYXlsb2FkLnRlYW1JZCxcbiAgICAgICAgICAgICAgICBkaXJlY3RvcnlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVUZWFtRGlyZWN0b3J5RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVUZWFtRmlsZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVRlYW1GaWxlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIGRpcmVjdG9yeUlkOiBzdHJpbmcsIGZpbGU6IFBhcnRpYWw8RmlsZU9iamVjdD4gfVxuICAgICAgICB9KSA9PiB0aGlzLmZpbGVTZXJ2aWNlLmNyZWF0ZVRlYW1GaWxlKHBheWxvYWQudGVhbUlkLCBwYXlsb2FkLmRpcmVjdG9yeUlkLCBwYXlsb2FkLmZpbGUpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGZpbGU6IEZpbGVPYmplY3QpID0+IGNyZWF0ZVRlYW1GaWxlU3VjY2Vzc0FjdGlvbih7XG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICB0ZWFtSWQ6IHBheWxvYWQudGVhbUlkLFxuICAgICAgICAgICAgICAgIGRpcmVjdG9yeUlkOiBwYXlsb2FkLmRpcmVjdG9yeUlkLFxuICAgICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVUZWFtRmlsZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlVGVhbURpcmVjdG9yeSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGRlbGV0ZVRlYW1EaXJlY3RvcnlBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0ZWFtSWQ6IHN0cmluZywgZGlyZWN0b3J5SWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMuZmlsZVNlcnZpY2UuZGVsZXRlVGVhbURpcmVjdG9yeShwYXlsb2FkLnRlYW1JZCwgcGF5bG9hZC5kaXJlY3RvcnlJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoc3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWxldGVUZWFtRGlyZWN0b3J5U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogey4uLnBheWxvYWR9fSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVRlYW1EaXJlY3RvcnlGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe3N0YXR1czogNDAwfSl9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGRlbGV0ZVRlYW1EaXJlY3RvcnlGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZVRlYW1GaWxlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoZGVsZXRlVGVhbUZpbGVBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0ZWFtSWQ6IHN0cmluZywgZGlyZWN0b3J5SWQ6IHN0cmluZywgZmlsZUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmZpbGVTZXJ2aWNlLmRlbGV0ZVRlYW1GaWxlKHBheWxvYWQudGVhbUlkLCBwYXlsb2FkLmRpcmVjdG9yeUlkLCBwYXlsb2FkLmZpbGVJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoc3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWxldGVUZWFtRmlsZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHsuLi5wYXlsb2FkfX0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWxldGVUZWFtRmlsZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7c3RhdHVzOiA0MDB9KX0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoZGVsZXRlVGVhbUZpbGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlVGVhbURpcmVjdG9yaWVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVUZWFtRGlyZWN0b3JpZXNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHN0cmluZyB9KSA9PiB0aGlzLmZpbGVTZXJ2aWNlLmdldFRlYW1EaXJlY3RvcmllcyhwYXlsb2FkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGRpcmVjdG9yaWVzOiBDb2xsZWN0aW9uPERpcmVjdG9yeT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gbmV3IE1hcDxzdHJpbmcsIExvY2F0aW9uSW50ZXJmYWNlPigpO1xuXG4gICAgICAgICAgICBkaXJlY3Rvcmllcy50b0FycmF5KCkuZm9yRWFjaCgoZGlyZWN0b3J5OiBEaXJlY3RvcnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hZGREaXJlY3RvcnkoZGlyZWN0b3J5LCBmaWxlcywgcGF5bG9hZCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbGV0IGxvY2F0aW9ucyA9IFsuLi50aGlzLnByb2Nlc3NMb2NhdGlvbnMoZmlsZXMsIHBheWxvYWQpXTtcbiAgICAgICAgICAgIGxvY2F0aW9ucy5zb3J0KChhOiBMb2NhdGlvbkludGVyZmFjZSkgPT4gKGEudGVhbUlkID09PSBwYXlsb2FkID8gLTEgOiAxKSk7XG5cbiAgICAgICAgICAgIHJldHVybiByZXRyaWV2ZVRlYW1EaXJlY3Rvcmllc1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHtsb2NhdGlvbnMsIGZpbGVzfX0pO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVUZWFtRGlyZWN0b3JpZXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZU1lbWJlckRpcmVjdG9yaWVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJEaXJlY3Rvcmllc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IEFycmF5PHN0cmluZz4gfSkgPT4ge1xuICAgICAgICBpZiAocGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ocGF5bG9hZC5tYXAoKGlkOiBzdHJpbmcpID0+XG4gICAgICAgICAgICB0aGlzLmZpbGVTZXJ2aWNlLmdldE1lbWJlckRpcmVjdG9yaWVzKGlkKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGRpcmVjdG9yaWVzOiBDb2xsZWN0aW9uPERpcmVjdG9yeT4pID0+ICh7aWQsIGRpcmVjdG9yaWVzOiBkaXJlY3Rvcmllcy50b0FycmF5KCl9KSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih7aWQsIGVycm9yfSkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgKSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXN1bHRzID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBuZXcgTWFwPHN0cmluZywgTG9jYXRpb25JbnRlcmZhY2U+KCk7XG5cbiAgICAgICAgICAgICAgLy8gUHJvY2VzcyBhbmQgYWRkIGRpcmVjdG9yaWVzIHRvIHRoZSBmaWxlcyBtYXBcbiAgICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCdkaXJlY3RvcmllcycgaW4gcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHQuZGlyZWN0b3JpZXMuZm9yRWFjaCgoZGlyZWN0b3J5OiBEaXJlY3RvcnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGREaXJlY3RvcnkoZGlyZWN0b3J5LCBmaWxlcyk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdlcnJvcicgaW4gcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyAocmVzdWx0LmVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9ucyA9IHRoaXMucHJvY2Vzc0xvY2F0aW9ucyhmaWxlcyk7XG5cbiAgICAgICAgICAgICAgLy8gRGlzcGF0Y2ggc3VjY2VzcyBhY3Rpb24gd2l0aCB0aGUgcHJvY2Vzc2VkIHJlc3VsdFxuICAgICAgICAgICAgICByZXR1cm4gcmV0cmlldmVNZW1iZXJEaXJlY3Rvcmllc1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgIGxvY2F0aW9ucyxcbiAgICAgICAgICAgICAgICAgIGZpbGVzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZU1lbWJlckRpcmVjdG9yaWVzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBbcmV0cmlldmVNZW1iZXJEaXJlY3Rvcmllc1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBsb2NhdGlvbnM6IFtdLFxuICAgICAgICAgICAgICBmaWxlczogbmV3IE1hcDxzdHJpbmcsIExvY2F0aW9uSW50ZXJmYWNlPigpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSldO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBwcml2YXRlIGFkZERpcmVjdG9yeShkaXJlY3Rvcnk6IERpcmVjdG9yeSwgZmlsZXM6IE1hcDxzdHJpbmcsIExvY2F0aW9uSW50ZXJmYWNlPiwgdGVhbUlkPzogc3RyaW5nKSB7XG4gICAgY29uc3QgbG9jYXRpb25JZCA9IGRpcmVjdG9yeS5iZWxvbmdzVG9UZWFtKCkgPyAndCcgKyBkaXJlY3RvcnkudGVhbV9pZCA6IGRpcmVjdG9yeS5iZWxvbmdzVG9TZWN0aW9uKClcbiAgICAgID8gJ3MnICsgZGlyZWN0b3J5LnNlY3Rpb25faWQgOiAnYycgKyBkaXJlY3RvcnkuY2x1Yl9pZDtcbiAgICBsZXQgbG9jYXRpb24gPSBmaWxlcy5nZXQobG9jYXRpb25JZCk7XG5cbiAgICBpZiAodHlwZW9mIGxvY2F0aW9uID09PSAndW5kZWZpbmVkJykge1xuICAgICAgZmlsZXMuc2V0KGxvY2F0aW9uSWQsIHtcbiAgICAgICAgaWQ6IGxvY2F0aW9uSWQsXG4gICAgICAgIG5hbWU6IGRpcmVjdG9yeS5sb2NhdGlvbl9uYW1lLFxuICAgICAgICBkaXJlY3RvcmllczogW10sXG4gICAgICAgIHRlYW1JZDogZGlyZWN0b3J5LnRlYW1faWQgYXMgc3RyaW5nXG4gICAgICB9KTtcbiAgICAgIGxvY2F0aW9uID0gZmlsZXMuZ2V0KGxvY2F0aW9uSWQpO1xuICAgIH1cblxuICAgIGlmIChsb2NhdGlvbiAmJlxuICAgICAgIWxvY2F0aW9uLmRpcmVjdG9yaWVzLmZpbmQoKHZhbHVlOiBEaXJlY3RvcnkpID0+IHZhbHVlLmlkID09PSBkaXJlY3RvcnkuaWQpICYmXG4gICAgICAoZGlyZWN0b3J5LmZpbGVzLmxlbmd0aCAhPT0gMCB8fCBkaXJlY3RvcnkudGVhbV9pZCA9PT0gdGVhbUlkKSkge1xuICAgICAgbG9jYXRpb24uZGlyZWN0b3JpZXMucHVzaChkaXJlY3RvcnkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0xvY2F0aW9ucyhmaWxlczogTWFwPHN0cmluZywgTG9jYXRpb25JbnRlcmZhY2U+LCB0ZWFtSWQ/OiBzdHJpbmcpOiBBcnJheTxMb2NhdGlvbkludGVyZmFjZT4ge1xuICAgIGxldCBsb2NhdGlvbnM6IEFycmF5PExvY2F0aW9uSW50ZXJmYWNlPiA9IFtdO1xuXG4gICAgaWYgKGZpbGVzLnNpemUgJiYgQXJyYXkuZnJvbShmaWxlcy52YWx1ZXMoKSkuc29tZSgobG9jYXRpb246IExvY2F0aW9uSW50ZXJmYWNlKSA9PiBsb2NhdGlvbi5kaXJlY3Rvcmllcy5sZW5ndGggIT09IDAgfHwgdGVhbUlkKSkge1xuICAgICAgbGV0IGZpcnN0SXRlbTogTG9jYXRpb25JbnRlcmZhY2U7XG4gICAgICBpZiAodHlwZW9mIGZpbGVzLmdldCgnJykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGZpcnN0SXRlbSA9IGZpbGVzLmdldCgnJykgYXMgTG9jYXRpb25JbnRlcmZhY2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbZmlyc3RJdGVtXSA9IGZpbGVzLnZhbHVlcygpO1xuICAgICAgfVxuICAgICAgbG9jYXRpb25zID0gW2ZpcnN0SXRlbV07XG5cbiAgICAgIGNvbnN0IG90aGVyTG9jYXRpb25zOiBBcnJheTxMb2NhdGlvbkludGVyZmFjZT4gPSBbXTtcbiAgICAgIGZpbGVzLmZvckVhY2goKGxvY2F0aW9uOiBMb2NhdGlvbkludGVyZmFjZSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgaWYgKGtleSAmJiAhbG9jYXRpb25zLmZpbmQoKHNlYXJjaExvY2F0aW9uKSA9PlxuICAgICAgICAgICAgbG9jYXRpb24ubmFtZSA9PT0gc2VhcmNoTG9jYXRpb24ubmFtZSAmJlxuICAgICAgICAgICAgbG9jYXRpb24uZGlyZWN0b3JpZXMubGVuZ3RoID09PSBzZWFyY2hMb2NhdGlvbi5kaXJlY3Rvcmllcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICBvdGhlckxvY2F0aW9ucy5wdXNoKGxvY2F0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBvdGhlckxvY2F0aW9ucy5zb3J0KChhOiBMb2NhdGlvbkludGVyZmFjZSwgYjogTG9jYXRpb25JbnRlcmZhY2UpID0+IChhLm5hbWUgPCBiLm5hbWUgPyAtMSA6IDEpKTtcbiAgICAgIGxvY2F0aW9ucyA9IGxvY2F0aW9ucy5jb25jYXQob3RoZXJMb2NhdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2NhdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYXRpb25zO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './data-access.effects';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3N0b3JlL2VmZmVjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0YS1hY2Nlc3MuZWZmZWN0cyc7XG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { InvoiceService, PaymentAttemptService } from '../../services';
|
|
4
|
+
import { createMondidoMemberPaymentAction, createMondidoPaymentFailureAction, createMondidoPaymentSuccessAction, createMondidoPublicPaymentAction, createSwishMemberPaymentAction, createSwishPaymentFailureAction, createSwishPaymentSuccessAction, createSwishPublicPaymentAction, createZimplerMemberPaymentAction, createZimplerPaymentFailureAction, createZimplerPaymentSuccessAction, createZimplerPublicPaymentAction, listMemberInvoicesAction, listMemberInvoicesFailureAction, listMemberInvoicesSuccessAction, retrieveMemberInvoiceAction, retrieveMemberInvoiceFailureAction, retrieveMemberInvoiceSuccessAction, retrieveMemberPaymentAttemptAction, retrieveMemberPaymentAttemptFailureAction, retrieveMemberPaymentAttemptSuccessAction, retrieveMemberSwishQRCodeAction, retrievePublicInvoiceAction, retrievePublicInvoiceFailureAction, retrievePublicInvoiceLogoAction, retrievePublicInvoiceLogoFailureAction, retrievePublicInvoiceLogoSuccessAction, retrievePublicInvoiceSuccessAction, retrievePublicPaymentAttemptAction, retrievePublicPaymentAttemptFailureAction, retrievePublicPaymentAttemptSuccessAction, retrievePublicSwishQRCodeAction, retrieveSwishQRCodeFailureAction, retrieveSwishQRCodeSuccessAction } from '../actions';
|
|
5
|
+
import { exhaustMap, forkJoin, mergeMap, of } from 'rxjs';
|
|
6
|
+
import { catchError, map } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class InvoiceEffects {
|
|
9
|
+
actions$ = inject(Actions);
|
|
10
|
+
invoiceService = inject(InvoiceService);
|
|
11
|
+
paymentAttemptService = inject(PaymentAttemptService);
|
|
12
|
+
createMemberMondidoPayment$ = createEffect(() => this.actions$
|
|
13
|
+
.pipe(ofType(createMondidoMemberPaymentAction), exhaustMap(({ payload }) => this.paymentAttemptService.createMemberPaymentAttempt(payload.memberId, payload.invoiceId, 'mondido')
|
|
14
|
+
.pipe(map((paymentAttempt) => createMondidoPaymentSuccessAction({ payload: paymentAttempt })), catchError((error) => of(createMondidoPaymentFailureAction({ payload: error })))))));
|
|
15
|
+
createMemberSwishPayment$ = createEffect(() => this.actions$
|
|
16
|
+
.pipe(ofType(createSwishMemberPaymentAction), exhaustMap(({ payload }) => this.paymentAttemptService.createMemberPaymentAttempt(payload.memberId, payload.invoiceId, 'swish', payload.telephoneNumber)
|
|
17
|
+
.pipe(map((paymentAttempt) => createSwishPaymentSuccessAction({ payload: paymentAttempt })), catchError((error) => of(createSwishPaymentFailureAction({ payload: error })))))));
|
|
18
|
+
createMemberZimplerPayment$ = createEffect(() => this.actions$
|
|
19
|
+
.pipe(ofType(createZimplerMemberPaymentAction), exhaustMap(({ payload }) => this.paymentAttemptService.createMemberPaymentAttempt(payload.memberId, payload.invoiceId, 'zimpler')
|
|
20
|
+
.pipe(map((paymentAttempt) => createZimplerPaymentSuccessAction({ payload: paymentAttempt })), catchError((error) => of(createZimplerPaymentFailureAction({ payload: error })))))));
|
|
21
|
+
createPublicMondidoPayment$ = createEffect(() => this.actions$
|
|
22
|
+
.pipe(ofType(createMondidoPublicPaymentAction), exhaustMap(({ payload }) => this.paymentAttemptService.createPublicPaymentAttempt(payload.invoiceId, payload.token, 'mondido')
|
|
23
|
+
.pipe(map((paymentAttempt) => createMondidoPaymentSuccessAction({ payload: paymentAttempt })), catchError((error) => of(createMondidoPaymentFailureAction({ payload: error })))))));
|
|
24
|
+
createPublicSwishPayment$ = createEffect(() => this.actions$
|
|
25
|
+
.pipe(ofType(createSwishPublicPaymentAction), exhaustMap(({ payload }) => this.paymentAttemptService.createPublicPaymentAttempt(payload.invoiceId, payload.token, 'swish', payload.telephoneNumber)
|
|
26
|
+
.pipe(map((paymentAttempt) => createSwishPaymentSuccessAction({ payload: paymentAttempt })), catchError((error) => of(createSwishPaymentFailureAction({ payload: error })))))));
|
|
27
|
+
createPublicZimplerPayment$ = createEffect(() => this.actions$
|
|
28
|
+
.pipe(ofType(createZimplerPublicPaymentAction), exhaustMap(({ payload }) => this.paymentAttemptService.createPublicPaymentAttempt(payload.invoiceId, payload.token, 'zimpler')
|
|
29
|
+
.pipe(map((paymentAttempt) => createZimplerPaymentSuccessAction({ payload: paymentAttempt })), catchError((error) => of(createZimplerPaymentFailureAction({ payload: error })))))));
|
|
30
|
+
listMemberInvoices$ = createEffect(() => this.actions$
|
|
31
|
+
.pipe(ofType(listMemberInvoicesAction), mergeMap(({ payload }) => forkJoin(payload.map((id) => this.invoiceService.getMemberInvoices(id)
|
|
32
|
+
.pipe(map((invoices) => ({ id, invoices: invoices.toArray() })), catchError((error) => of({ id, error }))))).pipe(mergeMap((results) => {
|
|
33
|
+
const invoiceMap = new Map();
|
|
34
|
+
const errors = results.filter(result => result.error);
|
|
35
|
+
if (errors.length) {
|
|
36
|
+
return of(listMemberInvoicesFailureAction({ payload: errors[0].error }));
|
|
37
|
+
}
|
|
38
|
+
results.forEach((result) => {
|
|
39
|
+
if (result.invoices) {
|
|
40
|
+
invoiceMap.set(result.id, result.invoices);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return of(listMemberInvoicesSuccessAction({ payload: invoiceMap }));
|
|
44
|
+
})))));
|
|
45
|
+
retrieveMemberInvoice$ = createEffect(() => this.actions$
|
|
46
|
+
.pipe(ofType(retrieveMemberInvoiceAction), exhaustMap(({ payload }) => this.invoiceService.getMemberInvoice(payload.memberId, payload.invoiceId)
|
|
47
|
+
.pipe(map((invoice) => retrieveMemberInvoiceSuccessAction({ payload: invoice })), catchError((error) => of(retrieveMemberInvoiceFailureAction({ payload: error })))))));
|
|
48
|
+
retrieveMemberPaymentAttempt$ = createEffect(() => this.actions$
|
|
49
|
+
.pipe(ofType(retrieveMemberPaymentAttemptAction), exhaustMap(({ payload }) => this.paymentAttemptService.getMemberPaymentAttempt(payload.memberId, payload.invoiceId, payload.paymentAttemptId)
|
|
50
|
+
.pipe(map((paymentAttempt) => retrieveMemberPaymentAttemptSuccessAction({ payload: paymentAttempt })), catchError((error) => of(retrieveMemberPaymentAttemptFailureAction({ payload: error })))))));
|
|
51
|
+
retrieveMemberSwishQRCode$ = createEffect(() => this.actions$
|
|
52
|
+
.pipe(ofType(retrieveMemberSwishQRCodeAction), exhaustMap(({ payload }) => this.paymentAttemptService.getMemberSwishQRCode(payload.memberId, payload.invoiceId, payload.paymentAttemptId)
|
|
53
|
+
.pipe(map((swishQRCode) => retrieveSwishQRCodeSuccessAction({ payload: swishQRCode })), catchError((error) => of(retrieveSwishQRCodeFailureAction({ payload: error })))))));
|
|
54
|
+
retrievePublicInvoice$ = createEffect(() => this.actions$
|
|
55
|
+
.pipe(ofType(retrievePublicInvoiceAction), exhaustMap(({ payload }) => this.invoiceService.getPublicInvoice(payload.invoiceId, payload.token)
|
|
56
|
+
.pipe(map((invoice) => retrievePublicInvoiceSuccessAction({ payload: invoice })), catchError((error) => of(retrievePublicInvoiceFailureAction({ payload: error })))))));
|
|
57
|
+
retrievePublicInvoiceLogo$ = createEffect(() => this.actions$
|
|
58
|
+
.pipe(ofType(retrievePublicInvoiceLogoAction), exhaustMap(({ payload }) => this.invoiceService.getPublicInvoiceLogo(payload.invoiceId, payload.token)
|
|
59
|
+
.pipe(map((image) => retrievePublicInvoiceLogoSuccessAction({ payload: image })), catchError((error) => of(retrievePublicInvoiceLogoFailureAction({ payload: error })))))));
|
|
60
|
+
retrievePublicPaymentAttempt$ = createEffect(() => this.actions$
|
|
61
|
+
.pipe(ofType(retrievePublicPaymentAttemptAction), exhaustMap(({ payload }) => this.paymentAttemptService.getPublicPaymentAttempt(payload.invoiceId, payload.token, payload.paymentAttemptId)
|
|
62
|
+
.pipe(map((paymentAttempt) => retrievePublicPaymentAttemptSuccessAction({ payload: paymentAttempt })), catchError((error) => of(retrievePublicPaymentAttemptFailureAction({ payload: error })))))));
|
|
63
|
+
retrievePublicSwishQRCode$ = createEffect(() => this.actions$
|
|
64
|
+
.pipe(ofType(retrievePublicSwishQRCodeAction), exhaustMap(({ payload }) => this.paymentAttemptService.getPublicSwishQRCode(payload.invoiceId, payload.token, payload.paymentAttemptId)
|
|
65
|
+
.pipe(map((swishQRCode) => retrieveSwishQRCodeSuccessAction({ payload: swishQRCode })), catchError((error) => of(retrieveSwishQRCodeFailureAction({ payload: error })))))));
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: InvoiceEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: InvoiceEffects });
|
|
68
|
+
}
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: InvoiceEffects, decorators: [{
|
|
70
|
+
type: Injectable
|
|
71
|
+
}] });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2ludm9pY2UuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyxnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQzlCLGdDQUFnQyxFQUNoQyxpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLGdDQUFnQyxFQUNoQyx3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLCtCQUErQixFQUMvQiwyQkFBMkIsRUFDM0Isa0NBQWtDLEVBQ2xDLGtDQUFrQyxFQUNsQyxrQ0FBa0MsRUFDbEMseUNBQXlDLEVBQ3pDLHlDQUF5QyxFQUN6QywrQkFBK0IsRUFDL0IsMkJBQTJCLEVBQzNCLGtDQUFrQyxFQUNsQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0QyxrQ0FBa0MsRUFDbEMsa0NBQWtDLEVBQ2xDLHlDQUF5QyxFQUN6Qyx5Q0FBeUMsRUFDekMsK0JBQStCLEVBQy9CLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDakMsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sY0FBYztJQUNqQixRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFOUQsMkJBQTJCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQzNELElBQUksQ0FDSCxNQUFNLENBQUMsZ0NBQWdDLENBQUMsRUFDeEMsVUFBVSxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQW1ELEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1NBQzlLLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUMsQ0FBQyxDQUFDLEVBQ3JHLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEcsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLHlCQUF5QixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUN6RCxJQUFJLENBQ0gsTUFBTSxDQUFDLDhCQUE4QixDQUFDLEVBQ3RDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUE0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDO1NBQzlOLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUMsQ0FBQyxDQUFDLEVBQ25HLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDaEcsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLDJCQUEyQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUMzRCxJQUFJLENBQ0gsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLEVBQ3hDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFtRCxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztTQUM5SyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsY0FBOEIsRUFBRSxFQUFFLENBQUMsaUNBQWlDLENBQUMsRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFDLENBQUMsQ0FBQyxFQUNyRyxVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2xHLENBQ0YsQ0FDRixDQUNGLENBQUM7SUFFRiwyQkFBMkIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDM0QsSUFBSSxDQUNILE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUN4QyxVQUFVLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBZ0QsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7U0FDeEssSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGNBQThCLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBQyxDQUFDLENBQUMsRUFDckcsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUNsRyxDQUNGLENBQ0YsQ0FDRixDQUFDO0lBRUYseUJBQXlCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQ3pELElBQUksQ0FDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsRUFDdEMsVUFBVSxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQXlFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUM7U0FDeE4sSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGNBQThCLEVBQUUsRUFBRSxDQUFDLCtCQUErQixDQUFDLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBQyxDQUFDLENBQUMsRUFDbkcsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUNoRyxDQUNGLENBQ0YsQ0FDRixDQUFDO0lBRUYsMkJBQTJCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQzNELElBQUksQ0FDSCxNQUFNLENBQUMsZ0NBQWdDLENBQUMsRUFDeEMsVUFBVSxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQWdELEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1NBQ3hLLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUMsQ0FBQyxDQUFDLEVBQ3JHLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEcsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUNuRCxJQUFJLENBQ0gsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEVBQ2hDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUE4QixFQUFFLEVBQUUsQ0FDbkQsUUFBUSxDQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztTQUN0QyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBeUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUMxRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUM1RCxDQUNKLENBQ0YsQ0FBQyxJQUFJLENBQ0osUUFBUSxDQUFDLENBQUMsT0FBZ0csRUFBRSxFQUFFO1FBQzVHLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFzQyxDQUFDO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQTBCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN6QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLHNCQUFzQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUN0RCxJQUFJLENBQ0gsTUFBTSxDQUFDLDJCQUEyQixDQUFDLEVBQ25DLFVBQVUsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFtRCxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUNsSixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsT0FBc0IsRUFBRSxFQUFFLENBQUMsa0NBQWtDLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQyxFQUN2RixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0NBQWtDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25HLENBQ0YsQ0FDRixDQUNGLENBQUM7SUFFRiw2QkFBNkIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDN0QsSUFBSSxDQUNILE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxFQUMxQyxVQUFVLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBK0UsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDdE4sSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGNBQThCLEVBQUUsRUFBRSxDQUFDLHlDQUF5QyxDQUFDLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBQyxDQUFDLENBQUMsRUFDN0csVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLHlDQUF5QyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUMxRyxDQUNGLENBQ0YsQ0FDRixDQUFDO0lBRUYsMEJBQTBCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQzFELElBQUksQ0FDSCxNQUFNLENBQUMsK0JBQStCLENBQUMsRUFDdkMsVUFBVSxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQTZFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1NBQ2pOLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDLEVBQzNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDakcsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLHNCQUFzQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUN0RCxJQUFJLENBQ0gsTUFBTSxDQUFDLDJCQUEyQixDQUFDLEVBQ25DLFVBQVUsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFnRCxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUM1SSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsT0FBc0IsRUFBRSxFQUFFLENBQUMsa0NBQWtDLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQyxFQUN2RixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0NBQWtDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25HLENBQ0YsQ0FDRixDQUNGLENBQUM7SUFFRiwwQkFBMEIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDMUQsSUFBSSxDQUNILE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxFQUN2QyxVQUFVLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBZ0QsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDaEosSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLHNDQUFzQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsRUFDbkYsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUN2RyxDQUNGLENBQ0YsQ0FDRixDQUFDO0lBRUYsNkJBQTZCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQzdELElBQUksQ0FDSCxNQUFNLENBQUMsa0NBQWtDLENBQUMsRUFDMUMsVUFBVSxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQTBFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1NBQzlNLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUMsQ0FBQyxDQUFDLEVBQzdHLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMUcsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLDBCQUEwQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUMxRCxJQUFJLENBQ0gsTUFBTSxDQUFDLCtCQUErQixDQUFDLEVBQ3ZDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUEwRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztTQUMzTSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQyxFQUMzRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pHLENBQ0YsQ0FDRixDQUNGLENBQUM7dUdBaE1TLGNBQWM7MkdBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEludm9pY2VTZXJ2aWNlLCBQYXltZW50QXR0ZW1wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBjcmVhdGVNb25kaWRvTWVtYmVyUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlTW9uZGlkb1BheW1lbnRGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVNb25kaWRvUGF5bWVudFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZU1vbmRpZG9QdWJsaWNQYXltZW50QWN0aW9uLFxuICBjcmVhdGVTd2lzaE1lbWJlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoUGF5bWVudFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoUHVibGljUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlWmltcGxlck1lbWJlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVppbXBsZXJQYXltZW50RmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlWmltcGxlclBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVaaW1wbGVyUHVibGljUGF5bWVudEFjdGlvbixcbiAgbGlzdE1lbWJlckludm9pY2VzQWN0aW9uLFxuICBsaXN0TWVtYmVySW52b2ljZXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVySW52b2ljZXNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckludm9pY2VBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVySW52b2ljZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVySW52b2ljZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyUGF5bWVudEF0dGVtcHRBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyUGF5bWVudEF0dGVtcHRGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlclBheW1lbnRBdHRlbXB0U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJTd2lzaFFSQ29kZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudEF0dGVtcHRBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudEF0dGVtcHRGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRBdHRlbXB0U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNTd2lzaFFSQ29kZUFjdGlvbixcbiAgcmV0cmlldmVTd2lzaFFSQ29kZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlU3dpc2hRUkNvZGVTdWNjZXNzQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZXhoYXVzdE1hcCwgZm9ya0pvaW4sIG1lcmdlTWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2x1YkltYWdlLCBDb2xsZWN0aW9uLCBNZW1iZXJJbnZvaWNlLCBQYXltZW50QXR0ZW1wdCwgU2VhcmNoTWVtYmVySW52b2ljZSwgU3dpc2hRckNvZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEludm9pY2VFZmZlY3RzIHtcbiAgcHJpdmF0ZSBhY3Rpb25zJCA9IGluamVjdChBY3Rpb25zKTtcbiAgcHJpdmF0ZSBpbnZvaWNlU2VydmljZSA9IGluamVjdChJbnZvaWNlU2VydmljZSk7XG4gIHByaXZhdGUgcGF5bWVudEF0dGVtcHRTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRBdHRlbXB0U2VydmljZSk7XG5cbiAgY3JlYXRlTWVtYmVyTW9uZGlkb1BheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVNb25kaWRvTWVtYmVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7bWVtYmVySWQ6IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmd9fSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVyUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5pbnZvaWNlSWQsICdtb25kaWRvJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZU1vbmRpZG9QYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVNb25kaWRvUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZU1lbWJlclN3aXNoUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVN3aXNoTWVtYmVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7bWVtYmVySWQ6IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcsIHRlbGVwaG9uZU51bWJlcjogc3RyaW5nfX0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZU1lbWJlclBheW1lbnRBdHRlbXB0KHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuaW52b2ljZUlkLCAnc3dpc2gnLCBwYXlsb2FkLnRlbGVwaG9uZU51bWJlcilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVN3aXNoUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlU3dpc2hQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlTWVtYmVyWmltcGxlclBheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVaaW1wbGVyTWVtYmVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7bWVtYmVySWQ6IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmd9fSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVyUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5pbnZvaWNlSWQsICd6aW1wbGVyJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVppbXBsZXJQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVaaW1wbGVyUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZVB1YmxpY01vbmRpZG9QYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlTW9uZGlkb1B1YmxpY1BheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7cGF5bG9hZDoge3Rva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nfX0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZVB1YmxpY1BheW1lbnRBdHRlbXB0KHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCAnbW9uZGlkbycpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVNb25kaWRvUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlTW9uZGlkb1BheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVQdWJsaWNTd2lzaFBheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVTd2lzaFB1YmxpY1BheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7cGF5bG9hZDoge3Rva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCB0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZ319KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNQYXltZW50QXR0ZW1wdChwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC50b2tlbiwgJ3N3aXNoJywgcGF5bG9hZC50ZWxlcGhvbmVOdW1iZXIpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVTd2lzaFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVN3aXNoUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZVB1YmxpY1ppbXBsZXJQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlWmltcGxlclB1YmxpY1BheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7cGF5bG9hZDoge3Rva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nfX0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZVB1YmxpY1BheW1lbnRBdHRlbXB0KHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCAnemltcGxlcicpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVaaW1wbGVyUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlWmltcGxlclBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0TWVtYmVySW52b2ljZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0TWVtYmVySW52b2ljZXNBY3Rpb24pLFxuICAgICAgbWVyZ2VNYXAoKHsgcGF5bG9hZCB9OiB7IHBheWxvYWQ6IEFycmF5PHN0cmluZz4gfSkgPT5cbiAgICAgICAgZm9ya0pvaW4oXG4gICAgICAgICAgcGF5bG9hZC5tYXAoKGlkOiBzdHJpbmcpID0+XG4gICAgICAgICAgICB0aGlzLmludm9pY2VTZXJ2aWNlLmdldE1lbWJlckludm9pY2VzKGlkKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGludm9pY2VzOiBDb2xsZWN0aW9uPFNlYXJjaE1lbWJlckludm9pY2U+KSA9PiAoeyBpZCwgaW52b2ljZXM6IGludm9pY2VzLnRvQXJyYXkoKSB9KSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih7IGlkLCBlcnJvciB9KSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKChyZXN1bHRzOiBBcnJheTx7IGlkOiBzdHJpbmcsIGludm9pY2VzPzogQXJyYXk8U2VhcmNoTWVtYmVySW52b2ljZT4sIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2UgfT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGludm9pY2VNYXAgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8U2VhcmNoTWVtYmVySW52b2ljZT4+KCk7XG4gICAgICAgICAgICBjb25zdCBlcnJvcnMgPSByZXN1bHRzLmZpbHRlcihyZXN1bHQgPT4gcmVzdWx0LmVycm9yKTtcbiAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihsaXN0TWVtYmVySW52b2ljZXNGYWlsdXJlQWN0aW9uKHsgcGF5bG9hZDogZXJyb3JzWzBdLmVycm9yIGFzIEh0dHBFcnJvclJlc3BvbnNlIH0pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pbnZvaWNlcykge1xuICAgICAgICAgICAgICAgIGludm9pY2VNYXAuc2V0KHJlc3VsdC5pZCwgcmVzdWx0Lmludm9pY2VzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBvZihsaXN0TWVtYmVySW52b2ljZXNTdWNjZXNzQWN0aW9uKHsgcGF5bG9hZDogaW52b2ljZU1hcCB9KSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZU1lbWJlckludm9pY2UkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlckludm9pY2VBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7cGF5bG9hZDoge21lbWJlcklkOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nfX0pID0+IHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0TWVtYmVySW52b2ljZShwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmludm9pY2VJZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChpbnZvaWNlOiBNZW1iZXJJbnZvaWNlKSA9PiByZXRyaWV2ZU1lbWJlckludm9pY2VTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBpbnZvaWNlfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVNZW1iZXJJbnZvaWNlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVNZW1iZXJQYXltZW50QXR0ZW1wdCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlTWVtYmVyUGF5bWVudEF0dGVtcHRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7cGF5bG9hZDoge21lbWJlcklkOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCBwYXltZW50QXR0ZW1wdElkOiBudW1iZXIgfSB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5nZXRNZW1iZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC5wYXltZW50QXR0ZW1wdElkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gcmV0cmlldmVNZW1iZXJQYXltZW50QXR0ZW1wdFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVNZW1iZXJQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlTWVtYmVyU3dpc2hRUkNvZGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlclN3aXNoUVJDb2RlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge3BheWxvYWQ6IHttZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgcGF5bWVudEF0dGVtcHRJZDogbnVtYmVyfX0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmdldE1lbWJlclN3aXNoUVJDb2RlKHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnBheW1lbnRBdHRlbXB0SWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoc3dpc2hRUkNvZGU6IFN3aXNoUXJDb2RlKSA9PiByZXRyaWV2ZVN3aXNoUVJDb2RlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogc3dpc2hRUkNvZGV9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVN3aXNoUVJDb2RlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNJbnZvaWNlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge3BheWxvYWQ6IHt0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZ319KSA9PiB0aGlzLmludm9pY2VTZXJ2aWNlLmdldFB1YmxpY0ludm9pY2UocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoaW52b2ljZTogTWVtYmVySW52b2ljZSkgPT4gcmV0cmlldmVQdWJsaWNJbnZvaWNlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogaW52b2ljZX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljSW52b2ljZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUHVibGljSW52b2ljZUxvZ28kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge3BheWxvYWQ6IHt0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZ319KSA9PiB0aGlzLmludm9pY2VTZXJ2aWNlLmdldFB1YmxpY0ludm9pY2VMb2dvKHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGltYWdlOiBDbHViSW1hZ2UpID0+IHJldHJpZXZlUHVibGljSW52b2ljZUxvZ29TdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBpbWFnZX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljSW52b2ljZUxvZ29GYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRBdHRlbXB0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNQYXltZW50QXR0ZW1wdEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7dG9rZW46IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcsIHBheW1lbnRBdHRlbXB0SWQ6IG51bWJlcn19KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5nZXRQdWJsaWNQYXltZW50QXR0ZW1wdChwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC50b2tlbiwgcGF5bG9hZC5wYXltZW50QXR0ZW1wdElkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gcmV0cmlldmVQdWJsaWNQYXltZW50QXR0ZW1wdFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUHVibGljU3dpc2hRUkNvZGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY1N3aXNoUVJDb2RlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge3BheWxvYWQ6IHt0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgcGF5bWVudEF0dGVtcHRJZDogbnVtYmVyfX0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmdldFB1YmxpY1N3aXNoUVJDb2RlKHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCBwYXlsb2FkLnBheW1lbnRBdHRlbXB0SWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoc3dpc2hRUkNvZGU6IFN3aXNoUXJDb2RlKSA9PiByZXRyaWV2ZVN3aXNoUVJDb2RlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogc3dpc2hRUkNvZGV9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVN3aXNoUVJDb2RlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { MemberCardService } from '../../services';
|
|
4
|
+
import { activateCardTicketAction, activateCardTicketFailureAction, activateCardTicketSuccessAction, activatePublicCardTicketAction, activatePublicCardTicketFailureAction, activatePublicCardTicketSuccessAction, listMemberCardsAction, listMemberCardsFailureAction, listMemberCardsSuccessAction, retrieveMemberCardAction, retrieveMemberCardDealsAction, retrieveMemberCardDealsFailureAction, retrieveMemberCardDealsSuccessAction, retrieveMemberCardFailureAction, retrieveMemberCardQRCodeAction, retrieveMemberCardQRCodeFailureAction, retrieveMemberCardQRCodeSuccessAction, retrieveMemberCardSuccessAction, retrieveMemberCardTicketsAction, retrieveMemberCardTicketsFailureAction, retrieveMemberCardTicketsSuccessAction, retrievePublicMemberCardAction, retrievePublicMemberCardDealsAction, retrievePublicMemberCardDealsFailureAction, retrievePublicMemberCardDealsSuccessAction, retrievePublicMemberCardFailureAction, retrievePublicMemberCardQRCodeAction, retrievePublicMemberCardQRCodeFailureAction, retrievePublicMemberCardQRCodeSuccessAction, retrievePublicMemberCardSuccessAction, retrievePublicMemberCardTicketsAction, retrievePublicMemberCardTicketsFailureAction, retrievePublicMemberCardTicketsSuccessAction, } from '../actions';
|
|
5
|
+
import { exhaustMap, forkJoin, mergeMap, of } from 'rxjs';
|
|
6
|
+
import { catchError, map } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class MemberCardEffects {
|
|
9
|
+
actions$ = inject(Actions);
|
|
10
|
+
memberCardService = inject(MemberCardService);
|
|
11
|
+
activateCardTicket$ = createEffect(() => this.actions$
|
|
12
|
+
.pipe(ofType(activateCardTicketAction), exhaustMap(({ payload }) => this.memberCardService.activateMemberCardTicket(payload.memberId, payload.cardId, payload.id, payload.pinCode)
|
|
13
|
+
.pipe(mergeMap((success) => [
|
|
14
|
+
activateCardTicketSuccessAction({ payload: success }),
|
|
15
|
+
retrieveMemberCardTicketsAction({ payload: { memberId: payload.memberId, memberCardId: payload.cardId } })
|
|
16
|
+
]), catchError((error) => of(activateCardTicketFailureAction({ payload: error })))))));
|
|
17
|
+
activatePublicCardTicket$ = createEffect(() => this.actions$
|
|
18
|
+
.pipe(ofType(activatePublicCardTicketAction), exhaustMap(({ payload }) => this.memberCardService.activatePublicCardTicket(payload.cardId, payload.token, payload.id, payload.pinCode)
|
|
19
|
+
.pipe(map((success) => activatePublicCardTicketSuccessAction({ payload: success })), catchError((error) => of(activatePublicCardTicketFailureAction({ payload: error })))))));
|
|
20
|
+
listMemberCards$ = createEffect(() => this.actions$
|
|
21
|
+
.pipe(ofType(listMemberCardsAction), mergeMap(({ payload }) => forkJoin(payload.map((id) => this.memberCardService.getMemberCards(id).pipe(map((cards) => ({ id, cards: cards.toArray() })), catchError((error) => of({ id, error }))))).pipe(map(results => {
|
|
22
|
+
const resultMap = new Map();
|
|
23
|
+
results.forEach((result) => {
|
|
24
|
+
if (result.cards) {
|
|
25
|
+
resultMap.set(result.id, result.cards);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return listMemberCardsSuccessAction({ payload: resultMap });
|
|
29
|
+
}), catchError((error) => of(listMemberCardsFailureAction({ payload: error })))))));
|
|
30
|
+
retrieveMemberCard$ = createEffect(() => this.actions$
|
|
31
|
+
.pipe(ofType(retrieveMemberCardAction), exhaustMap(({ payload }) => this.memberCardService.getMemberCard(payload.memberId, payload.memberCardId)
|
|
32
|
+
.pipe(map((card) => retrieveMemberCardSuccessAction({ payload: card })), catchError((error) => of(retrieveMemberCardFailureAction({ payload: error })))))));
|
|
33
|
+
retrieveDeals$ = createEffect(() => this.actions$
|
|
34
|
+
.pipe(ofType(retrieveMemberCardDealsAction), exhaustMap(({ payload }) => this.memberCardService.getMemberCardDeals(payload.memberId, payload.memberCardId)
|
|
35
|
+
.pipe(map((cardDeals) => retrieveMemberCardDealsSuccessAction({
|
|
36
|
+
payload: {
|
|
37
|
+
memberCardId: payload.memberCardId,
|
|
38
|
+
deals: cardDeals.toArray()
|
|
39
|
+
}
|
|
40
|
+
})), catchError((error) => of(retrieveMemberCardDealsFailureAction({ payload: error })))))));
|
|
41
|
+
retrievePublicMemberCard$ = createEffect(() => this.actions$
|
|
42
|
+
.pipe(ofType(retrievePublicMemberCardAction), exhaustMap(({ payload }) => this.memberCardService.getPublicMemberCard(payload.memberCardId, payload.token)
|
|
43
|
+
.pipe(map((card) => retrievePublicMemberCardSuccessAction({ payload: card })), catchError((error) => of(retrievePublicMemberCardFailureAction({ payload: error })))))));
|
|
44
|
+
retrievePublicMemberCardDeals$ = createEffect(() => this.actions$
|
|
45
|
+
.pipe(ofType(retrievePublicMemberCardDealsAction), exhaustMap(({ payload }) => this.memberCardService.getPublicMemberCardDeals(payload.memberCardId, payload.token)
|
|
46
|
+
.pipe(map((cardDeals) => retrievePublicMemberCardDealsSuccessAction({
|
|
47
|
+
payload: {
|
|
48
|
+
memberCardId: payload.memberCardId,
|
|
49
|
+
deals: cardDeals.toArray()
|
|
50
|
+
}
|
|
51
|
+
})), catchError((error) => of(retrievePublicMemberCardDealsFailureAction({ payload: error })))))));
|
|
52
|
+
retrievePublicMemberCardQRCode$ = createEffect(() => this.actions$
|
|
53
|
+
.pipe(ofType(retrievePublicMemberCardQRCodeAction), exhaustMap(({ payload }) => this.memberCardService.getPublicMemberCardQRCode(payload.memberCardId, payload.token)
|
|
54
|
+
.pipe(map((memberCard) => retrievePublicMemberCardQRCodeSuccessAction({ payload: memberCard })), catchError((error) => of(retrievePublicMemberCardQRCodeFailureAction({ payload: error })))))));
|
|
55
|
+
retrievePublicMemberCardTickets$ = createEffect(() => this.actions$
|
|
56
|
+
.pipe(ofType(retrievePublicMemberCardTicketsAction), exhaustMap(({ payload }) => this.memberCardService.getPublicMemberCardTickets(payload.memberCardId, payload.token)
|
|
57
|
+
.pipe(map((cardTickets) => retrievePublicMemberCardTicketsSuccessAction({
|
|
58
|
+
payload: {
|
|
59
|
+
memberCardId: payload.memberCardId,
|
|
60
|
+
tickets: cardTickets.toArray()
|
|
61
|
+
}
|
|
62
|
+
})), catchError((error) => of(retrievePublicMemberCardTicketsFailureAction({ payload: error })))))));
|
|
63
|
+
retrieveQRCode$ = createEffect(() => this.actions$
|
|
64
|
+
.pipe(ofType(retrieveMemberCardQRCodeAction), exhaustMap(({ payload }) => this.memberCardService.getMemberCardQRCode(payload.memberId, payload.memberCardId)
|
|
65
|
+
.pipe(map((memberCard) => retrieveMemberCardQRCodeSuccessAction({ payload: memberCard })), catchError((error) => of(retrieveMemberCardQRCodeFailureAction({ payload: error })))))));
|
|
66
|
+
retrieveTickets$ = createEffect(() => this.actions$
|
|
67
|
+
.pipe(ofType(retrieveMemberCardTicketsAction), exhaustMap(({ payload }) => this.memberCardService.getMemberCardTickets(payload.memberId, payload.memberCardId)
|
|
68
|
+
.pipe(map((cardTickets) => retrieveMemberCardTicketsSuccessAction({
|
|
69
|
+
payload: {
|
|
70
|
+
memberCardId: payload.memberCardId,
|
|
71
|
+
tickets: cardTickets.toArray()
|
|
72
|
+
}
|
|
73
|
+
})), catchError((error) => of(retrieveMemberCardTicketsFailureAction({ payload: error })))))));
|
|
74
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MemberCardEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
75
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MemberCardEffects });
|
|
76
|
+
}
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MemberCardEffects, decorators: [{
|
|
78
|
+
type: Injectable
|
|
79
|
+
}] });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLWNhcmQuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9tZW1iZXItY2FyZC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQ3hCLDZCQUE2QixFQUM3QixvQ0FBb0MsRUFDcEMsb0NBQW9DLEVBQ3BDLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQywrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsOEJBQThCLEVBQzlCLG1DQUFtQyxFQUNuQywwQ0FBMEMsRUFDMUMsMENBQTBDLEVBQzFDLHFDQUFxQyxFQUNyQyxvQ0FBb0MsRUFDcEMsMkNBQTJDLEVBQzNDLDJDQUEyQyxFQUMzQyxxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLDRDQUE0QyxFQUM1Qyw0Q0FBNEMsR0FDN0MsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcs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QUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLHFDQUFxQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUN0RyxDQUNKLENBQ0YsQ0FDRixDQUFDO0lBRUYsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQ2hELElBQUksQ0FDSCxNQUFNLENBQUMsK0JBQStCLENBQUMsRUFDdkMsVUFBVSxDQUFDLENBQUMsRUFBQyxPQUFPLEVBRWpCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7U0FDdEYsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFdBQW1DLEVBQUUsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO1FBQ2xGLE9BQU8sRUFBRTtZQUNQLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNsQyxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtTQUMvQjtLQUNGLENBQUMsQ0FBQyxFQUNILFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkcsQ0FDSixDQUNGLENBQUMsQ0FBQzt1R0FyTE0saUJBQWlCOzJHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBDYXJkRGVhbCwgQ2FyZFRpY2tldCwgQ29sbGVjdGlvbiwgTWVtYmVyQ2FyZCwgU2VhcmNoTWVtYmVyQ2FyZCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBNZW1iZXJDYXJkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIGFjdGl2YXRlQ2FyZFRpY2tldEFjdGlvbixcbiAgYWN0aXZhdGVDYXJkVGlja2V0RmFpbHVyZUFjdGlvbixcbiAgYWN0aXZhdGVDYXJkVGlja2V0U3VjY2Vzc0FjdGlvbixcbiAgYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0QWN0aW9uLFxuICBhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRGYWlsdXJlQWN0aW9uLFxuICBhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyQ2FyZHNBY3Rpb24sXG4gIGxpc3RNZW1iZXJDYXJkc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJDYXJkc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZEFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkRGVhbHNBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZERlYWxzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkRGVhbHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckNhcmRGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckNhcmRRUkNvZGVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFFSQ29kZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckNhcmRUaWNrZXRzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkRGVhbHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNTdWNjZXNzQWN0aW9uLFxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IGV4aGF1c3RNYXAsIGZvcmtKb2luLCBtZXJnZU1hcCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWN0aXZhdGVDYXJkVGlja2V0SW50ZXJmYWNlLCBQdWJsaWNBY3RpdmF0ZUNhcmRUaWNrZXRJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWVtYmVyQ2FyZEVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIG1lbWJlckNhcmRTZXJ2aWNlID0gaW5qZWN0KE1lbWJlckNhcmRTZXJ2aWNlKTtcblxuICBhY3RpdmF0ZUNhcmRUaWNrZXQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShhY3RpdmF0ZUNhcmRUaWNrZXRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogQWN0aXZhdGVDYXJkVGlja2V0SW50ZXJmYWNlXG4gICAgICAgIH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuYWN0aXZhdGVNZW1iZXJDYXJkVGlja2V0KHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuY2FyZElkLCBwYXlsb2FkLmlkLCBwYXlsb2FkLnBpbkNvZGUpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCgoc3VjY2VzczogYm9vbGVhbikgPT4gW1xuICAgICAgICAgICAgICBhY3RpdmF0ZUNhcmRUaWNrZXRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBzdWNjZXNzfSksXG4gICAgICAgICAgICAgIHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNBY3Rpb24oe3BheWxvYWQ6IHttZW1iZXJJZDogcGF5bG9hZC5tZW1iZXJJZCwgbWVtYmVyQ2FyZElkOiBwYXlsb2FkLmNhcmRJZH19KVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGFjdGl2YXRlQ2FyZFRpY2tldEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IFB1YmxpY0FjdGl2YXRlQ2FyZFRpY2tldEludGVyZmFjZVxuICAgICAgICB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmFjdGl2YXRlUHVibGljQ2FyZFRpY2tldChwYXlsb2FkLmNhcmRJZCwgcGF5bG9hZC50b2tlbiwgcGF5bG9hZC5pZCwgcGF5bG9hZC5waW5Db2RlKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChzdWNjZXNzOiBib29sZWFuKSA9PiBhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBzdWNjZXNzfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RNZW1iZXJDYXJkcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RNZW1iZXJDYXJkc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IEFycmF5PHN0cmluZz4gfSkgPT5cbiAgICAgICAgZm9ya0pvaW4ocGF5bG9hZC5tYXAoKGlkOiBzdHJpbmcpID0+XG4gICAgICAgICAgdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRNZW1iZXJDYXJkcyhpZCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FyZHM6IENvbGxlY3Rpb248U2VhcmNoTWVtYmVyQ2FyZD4pID0+ICh7aWQsIGNhcmRzOiBjYXJkcy50b0FycmF5KCl9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHtpZCwgZXJyb3J9KSlcbiAgICAgICAgICApXG4gICAgICAgICkpLnBpcGUoXG4gICAgICAgICAgbWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0TWFwID0gbmV3IE1hcDxzdHJpbmcsIEFycmF5PFNlYXJjaE1lbWJlckNhcmQ+PigpO1xuICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQ6IHsgaWQ6IHN0cmluZywgY2FyZHM/OiBBcnJheTxTZWFyY2hNZW1iZXJDYXJkPiwgZXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZSB9KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQuY2FyZHMpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRNYXAuc2V0KHJlc3VsdC5pZCwgcmVzdWx0LmNhcmRzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbGlzdE1lbWJlckNhcmRzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcmVzdWx0TWFwfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0TWVtYmVyQ2FyZHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZU1lbWJlckNhcmQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlckNhcmRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0TWVtYmVyQ2FyZChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLm1lbWJlckNhcmRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FyZDogTWVtYmVyQ2FyZCkgPT4gcmV0cmlldmVNZW1iZXJDYXJkU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY2FyZH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVNZW1iZXJDYXJkRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZURlYWxzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJDYXJkRGVhbHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0TWVtYmVyQ2FyZERlYWxzKHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQubWVtYmVyQ2FyZElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChjYXJkRGVhbHM6IENvbGxlY3Rpb248Q2FyZERlYWw+KSA9PiByZXRyaWV2ZU1lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgbWVtYmVyQ2FyZElkOiBwYXlsb2FkLm1lbWJlckNhcmRJZCxcbiAgICAgICAgICAgICAgICBkZWFsczogY2FyZERlYWxzLnRvQXJyYXkoKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVyQ2FyZERlYWxzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfSB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldFB1YmxpY01lbWJlckNhcmQocGF5bG9hZC5tZW1iZXJDYXJkSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY2FyZDogTWVtYmVyQ2FyZCkgPT4gcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY2FyZH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkRGVhbHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfSB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldFB1YmxpY01lbWJlckNhcmREZWFscyhwYXlsb2FkLm1lbWJlckNhcmRJZCwgcGF5bG9hZC50b2tlbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjYXJkRGVhbHM6IENvbGxlY3Rpb248Q2FyZERlYWw+KSA9PiByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBtZW1iZXJDYXJkSWQ6IHBheWxvYWQubWVtYmVyQ2FyZElkLFxuICAgICAgICAgICAgICBkZWFsczogY2FyZERlYWxzLnRvQXJyYXkoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIG1lbWJlckNhcmRJZDogc3RyaW5nIH0gfSkgPT4gdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRQdWJsaWNNZW1iZXJDYXJkUVJDb2RlKHBheWxvYWQubWVtYmVyQ2FyZElkLCBwYXlsb2FkLnRva2VuKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKG1lbWJlckNhcmQ6IE1lbWJlckNhcmQpID0+IHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG1lbWJlckNhcmR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRRUkNvZGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRUaWNrZXRzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHsgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9IH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0UHVibGljTWVtYmVyQ2FyZFRpY2tldHMocGF5bG9hZC5tZW1iZXJDYXJkSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY2FyZFRpY2tldHM6IENvbGxlY3Rpb248Q2FyZFRpY2tldD4pID0+IHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNTdWNjZXNzQWN0aW9uKHtcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgbWVtYmVyQ2FyZElkOiBwYXlsb2FkLm1lbWJlckNhcmRJZCxcbiAgICAgICAgICAgICAgdGlja2V0czogY2FyZFRpY2tldHMudG9BcnJheSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUVJDb2RlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJDYXJkUVJDb2RlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldE1lbWJlckNhcmRRUkNvZGUocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5tZW1iZXJDYXJkSWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG1lbWJlckNhcmQ6IE1lbWJlckNhcmQpID0+IHJldHJpZXZlTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG1lbWJlckNhcmR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVyQ2FyZFFSQ29kZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVUaWNrZXRzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJDYXJkVGlja2V0c0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIG1lbWJlckNhcmRJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRNZW1iZXJDYXJkVGlja2V0cyhwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLm1lbWJlckNhcmRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FyZFRpY2tldHM6IENvbGxlY3Rpb248Q2FyZFRpY2tldD4pID0+IHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNTdWNjZXNzQWN0aW9uKHtcbiAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgIG1lbWJlckNhcmRJZDogcGF5bG9hZC5tZW1iZXJDYXJkSWQsXG4gICAgICAgICAgICAgICAgdGlja2V0czogY2FyZFRpY2tldHMudG9BcnJheSgpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVNZW1iZXJDYXJkVGlja2V0c0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApKTtcbn1cbiJdfQ==
|