@sabstravtech/obtservices 0.0.0 → 0.0.2
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/dist/obtservices/angular/components/basket-panel.d.ts +34 -0
- package/dist/obtservices/angular/components/with-component.d.ts +12 -0
- package/dist/obtservices/angular/data.d.ts +5530 -0
- package/dist/obtservices/angular/fetchers.d.ts +32 -0
- package/dist/obtservices/angular/lib/vendor/classes/environment.d.ts +3 -0
- package/dist/obtservices/angular/lib/vendor/classes/event-messenager.d.ts +4 -0
- package/dist/obtservices/angular/lib/vendor/classes/helpers.d.ts +15 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/basket-fetcher.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/cabhire-quote-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/carhire-availability-detail.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/carhire-quote-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/conferma-office-names.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/conferma-quicklist.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/eurostar-quote.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/flight-quote.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/get-rail-cards.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/get-rail-station.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/get-risk-alerts.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/get-user-company-offices.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/get-user-recent-searches.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/get-users-baskets-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/getMiAutoSugestions.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/hotel-avaliability-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/hotel-quote-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/irl-quote-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/lounge-quote.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/parking-quote-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/rail-quote-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-airlines-fetcher.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-airports-fetcher.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-cities.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-conferma-cities.fetcher.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-depots.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-hotel-chains.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-postcodes.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-rail-stations.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/search-users-can-book-for-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/user-addresses.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/user-fetcher.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/user-message.fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/user-products-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/fetchers/user-ui-configs-fetcher.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/services/enterprise-basket.service.d.ts +29 -0
- package/dist/obtservices/angular/lib/vendor/services/hotel-avallibility.service.d.ts +9 -0
- package/dist/obtservices/angular/lib/vendor/services/http-call.service.d.ts +48 -0
- package/dist/obtservices/angular/lib/vendor/services/logon.service.d.ts +18 -0
- package/dist/obtservices/angular/lib/vendor/services/modal-opener.service.d.ts +4 -0
- package/dist/obtservices/angular/lib/vendor/services/my-bookings.service.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/services/route-happy.service.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/services/search.service.d.ts +47 -0
- package/dist/obtservices/angular/lib/vendor/services/storage.service.d.ts +18 -0
- package/dist/obtservices/angular/lib/vendor/services/user.service.d.ts +10 -0
- package/dist/obtservices/angular/lib/vendor/services/webtoken.service.d.ts +7 -0
- package/dist/obtservices/angular/lib/vendor/testers/postcode-validate.tester.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/testers/validate-mi-free-value.tester.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/types/graphql.angular.types.d.ts +5915 -0
- package/dist/obtservices/angular/lib/vendor/updaters/accept-new-price.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/add-item-to-basket.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/addUserToBasketItem.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/book-basket-updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/create-basket-updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/move-basket-item-to-basket.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/remove-basket-updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/remove-item-from-basket.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/remove-recent-search.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/remove-user-address.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/revalidate-basket-updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/save-recent-search.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/save-user-address.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/send-basket-for-approval.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/set-basket-item-lead-passenger.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/set-basket-item-mi-group.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/set-basket-item-mi-value-updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/set-payment-option.updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/update-basket-notes-updater.d.ts +6 -0
- package/dist/obtservices/angular/lib/vendor/updaters/update-basket-title-updater.d.ts +6 -0
- package/dist/obtservices/angular/obtservices-angular.d.ts +17 -0
- package/dist/obtservices/angular/obtservices-angular.metadata.json +1 -0
- package/dist/obtservices/angular/obtservices.module.d.ts +7 -0
- package/dist/obtservices/angular/package.json +11 -0
- package/dist/obtservices/base/fetchers.d.ts +36 -0
- package/dist/obtservices/base/lib/vendor/classes/base-enterprise.d.ts +39 -0
- package/dist/obtservices/base/lib/vendor/classes/base-network-call.d.ts +10 -0
- package/dist/obtservices/base/lib/vendor/classes/basket-info-mi-details.impl.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/classes/bookable-basket.d.ts +40 -0
- package/dist/obtservices/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +138 -0
- package/dist/obtservices/base/lib/vendor/classes/carhire-enterprise-search.d.ts +203 -0
- package/dist/obtservices/base/lib/vendor/classes/enviroment.d.ts +24 -0
- package/dist/obtservices/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +268 -0
- package/dist/obtservices/base/lib/vendor/classes/eurostar-search-type.enum.d.ts +4 -0
- package/dist/obtservices/base/lib/vendor/classes/event-messenager.d.ts +12 -0
- package/dist/obtservices/base/lib/vendor/classes/flight-enterprise-search.d.ts +251 -0
- package/dist/obtservices/base/lib/vendor/classes/flight-search-type.enum.d.ts +5 -0
- package/dist/obtservices/base/lib/vendor/classes/helpers.d.ts +173 -0
- package/dist/obtservices/base/lib/vendor/classes/hotel-enterprise-search.d.ts +176 -0
- package/dist/obtservices/base/lib/vendor/classes/irl-enterprise-search.d.ts +139 -0
- package/dist/obtservices/base/lib/vendor/classes/limited-cache.class.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/classes/lounges-enterprise-search.d.ts +68 -0
- package/dist/obtservices/base/lib/vendor/classes/management-info-and-valid.d.ts +41 -0
- package/dist/obtservices/base/lib/vendor/classes/modal-types.enum.d.ts +12 -0
- package/dist/obtservices/base/lib/vendor/classes/parking-enterprise-search.d.ts +103 -0
- package/dist/obtservices/base/lib/vendor/classes/rail-direction.enum.d.ts +4 -0
- package/dist/obtservices/base/lib/vendor/classes/rail-enterprise-search.d.ts +193 -0
- package/dist/obtservices/base/lib/vendor/classes/routehappy-request.d.ts +126 -0
- package/dist/obtservices/base/lib/vendor/classes/routehappy-response.d.ts +107 -0
- package/dist/obtservices/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +62 -0
- package/dist/obtservices/base/lib/vendor/classes/user-favourite.enum.d.ts +12 -0
- package/dist/obtservices/base/lib/vendor/classes/validator.checker.d.ts +6 -0
- package/dist/obtservices/base/lib/vendor/fetchers/basket-fetcher.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/cabhire-quote-fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/carhire-availability-detail.fetcher.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/carhire-quote-fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/conferma-office-names.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/conferma-quicklist.fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/eurostar-quote.fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/flight-quote.fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/get-rail-cards.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/get-rail-station.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/get-risk-alerts.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/get-user-company-offices.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/get-user-recent-searches.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/get-users-baskets-fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/getMiAutoSugestions.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/hotel-avaliability-fetcher.d.ts +24 -0
- package/dist/obtservices/base/lib/vendor/fetchers/hotel-quote-fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/irl-quote-fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/list-fetchable-enterprise.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/lounge-quote.fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/object-fetchable-enterprise.d.ts +11 -0
- package/dist/obtservices/base/lib/vendor/fetchers/parking-quote-fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/rail-quote-fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-airlines.fetcher.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-airports-fetcher.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-cities.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-conferma-cities.fetcher.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-depots.fetcher.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-hotel-chains.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-postcodes.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-rail-stations.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/search-users-can-book-for-fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/user-addresses.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/user-fetcher.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/fetchers/user-message.fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/user-products-fetcher.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/fetchers/user-ui-configs-fetcher.d.ts +23 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Icabhire-enterprise-search.d.ts +133 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +99 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +64 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +124 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +123 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +192 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +45 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +36 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Imybookings.service.d.ts +24 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Iparking-enterprise-search.d.ts +58 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +110 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Isearch.service.d.ts +101 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Isupplementary-booking-info-impl.d.ts +42 -0
- package/dist/obtservices/base/lib/vendor/interfaces/Iuser.service.d.ts +59 -0
- package/dist/obtservices/base/lib/vendor/interfaces/car-hire-classes.interface.d.ts +7 -0
- package/dist/obtservices/base/lib/vendor/interfaces/car-hire-filters.interface.d.ts +10 -0
- package/dist/obtservices/base/lib/vendor/interfaces/car-hire-sort.interface.d.ts +4 -0
- package/dist/obtservices/base/lib/vendor/interfaces/cheapest-price.d.ts +4 -0
- package/dist/obtservices/base/lib/vendor/interfaces/code-name.d.ts +4 -0
- package/dist/obtservices/base/lib/vendor/interfaces/flight-filters.interface.d.ts +29 -0
- package/dist/obtservices/base/lib/vendor/interfaces/flight-multi-destination.interface.d.ts +7 -0
- package/dist/obtservices/base/lib/vendor/interfaces/rail-airport-express-stations.interface.d.ts +4 -0
- package/dist/obtservices/base/lib/vendor/interfaces/rail-basket-item.interface.d.ts +69 -0
- package/dist/obtservices/base/lib/vendor/interfaces/rail-journey-leg.interface.d.ts +6 -0
- package/dist/obtservices/base/lib/vendor/interfaces/rail-recent-search-args.interface.d.ts +19 -0
- package/dist/obtservices/base/lib/vendor/interfaces/rail-selected-ticket.interface.d.ts +10 -0
- package/dist/obtservices/base/lib/vendor/interfaces/rail-ticket-group.interface.d.ts +26 -0
- package/dist/obtservices/base/lib/vendor/interfaces/rail-ticket-groups.interface.d.ts +4 -0
- package/dist/obtservices/base/lib/vendor/interfaces/search-objects.interface.d.ts +16 -0
- package/dist/obtservices/base/lib/vendor/interfaces/select-filter.interface.d.ts +5 -0
- package/dist/obtservices/base/lib/vendor/interfaces/user.data.d.ts +21 -0
- package/dist/obtservices/base/lib/vendor/interfaces/value-display.d.ts +4 -0
- package/dist/obtservices/base/lib/vendor/models/login.model.d.ts +52 -0
- package/dist/obtservices/base/lib/vendor/models/regexp.model.d.ts +10 -0
- package/dist/obtservices/base/lib/vendor/models/traveller.object.d.ts +22 -0
- package/dist/obtservices/base/lib/vendor/services/enterprise-basket.service.d.ts +177 -0
- package/dist/obtservices/base/lib/vendor/services/hotel-avallibility.service.d.ts +31 -0
- package/dist/obtservices/base/lib/vendor/services/http-call.service.d.ts +17 -0
- package/dist/obtservices/base/lib/vendor/services/logon.service.d.ts +39 -0
- package/dist/obtservices/base/lib/vendor/services/modal-opener.service.d.ts +13 -0
- package/dist/obtservices/base/lib/vendor/services/my-bookings.service.d.ts +31 -0
- package/dist/obtservices/base/lib/vendor/services/routehappy.service.d.ts +47 -0
- package/dist/obtservices/base/lib/vendor/services/search.service.d.ts +236 -0
- package/dist/obtservices/base/lib/vendor/services/storage.service.d.ts +9 -0
- package/dist/obtservices/base/lib/vendor/services/url.service.d.ts +10 -0
- package/dist/obtservices/base/lib/vendor/services/user.service.d.ts +62 -0
- package/dist/obtservices/base/lib/vendor/services/webtoken.service.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/testers/base.tester.d.ts +11 -0
- package/dist/obtservices/base/lib/vendor/testers/postcode-validate.tester.d.ts +17 -0
- package/dist/obtservices/base/lib/vendor/testers/validate-mi-free-value.tester.d.ts +17 -0
- package/dist/obtservices/base/lib/vendor/types/graphql.types.d.ts +5597 -0
- package/dist/obtservices/base/lib/vendor/types/types.d.ts +444 -0
- package/dist/obtservices/base/lib/vendor/updaters/accept-new-price.updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/add-item-to-basket.updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/addUserToBasketItem.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/book-basket-updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/create-basket-updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/move-basket-item-to-basket.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/object-updater-enterprise.d.ts +11 -0
- package/dist/obtservices/base/lib/vendor/updaters/remove-basket-updater.d.ts +19 -0
- package/dist/obtservices/base/lib/vendor/updaters/remove-item-from-basket.updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/remove-recent-search-updater.d.ts +19 -0
- package/dist/obtservices/base/lib/vendor/updaters/remove-user-address-updater.d.ts +19 -0
- package/dist/obtservices/base/lib/vendor/updaters/revalidate-basket-updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/save-recent-search-updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/save-user-address.updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/send-basket-for-approval.updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/set-basket-item-lead-passenger.updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/set-basket-item-mi-group.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/set-basket-item-mi-value-updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/set-basket-item-paymenr-option.updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/update-basket-notes-updater.d.ts +20 -0
- package/dist/obtservices/base/lib/vendor/updaters/update-basket-title-updater.d.ts +20 -0
- package/dist/obtservices/base/obtservices-base.d.ts +9 -0
- package/dist/obtservices/base/obtservices-base.metadata.json +1 -0
- package/dist/obtservices/base/package.json +11 -0
- package/dist/obtservices/bundles/obtservices-angular.umd.js +32033 -0
- package/dist/obtservices/bundles/obtservices-angular.umd.js.map +1 -0
- package/dist/obtservices/bundles/obtservices-angular.umd.min.js +2 -0
- package/dist/obtservices/bundles/obtservices-angular.umd.min.js.map +1 -0
- package/dist/obtservices/bundles/obtservices-base.umd.js +18609 -0
- package/dist/obtservices/bundles/obtservices-base.umd.js.map +1 -0
- package/dist/obtservices/bundles/obtservices-base.umd.min.js +16 -0
- package/dist/obtservices/bundles/obtservices-base.umd.min.js.map +1 -0
- package/dist/obtservices/bundles/obtservices.umd.js +18 -0
- package/dist/obtservices/bundles/obtservices.umd.js.map +1 -0
- package/dist/obtservices/bundles/obtservices.umd.min.js +2 -0
- package/dist/obtservices/bundles/obtservices.umd.min.js.map +1 -0
- package/dist/obtservices/esm2015/angular/classes.js +4 -0
- package/dist/obtservices/esm2015/angular/components/basket-panel.js +113 -0
- package/dist/obtservices/esm2015/angular/components/with-component.js +26 -0
- package/dist/obtservices/esm2015/angular/components.js +3 -0
- package/dist/obtservices/esm2015/angular/data.js +5 -0
- package/dist/obtservices/esm2015/angular/fetchers.js +33 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/classes/environment.js +10 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/classes/event-messenager.js +16 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/classes/helpers.js +81 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/data/airports.data.json +5508 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/data/flight-booking.data.json +136 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/basket-fetcher.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/cabhire-quote-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/carhire-availability-detail.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/carhire-quote-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/conferma-office-names.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/conferma-quicklist.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/eurostar-quote.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/flight-quote.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-rail-cards.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-rail-station.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-risk-alerts.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-user-company-offices.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-user-recent-searches.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-users-baskets-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/getMiAutoSugestions.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/hotel-avaliability-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/hotel-quote-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/irl-quote-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/lounge-quote.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/parking-quote-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/rail-quote-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-airlines-fetcher.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-airports-fetcher.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-cities.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-conferma-cities.fetcher.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-depots.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-hotel-chains.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-postcodes.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-rail-stations.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-users-can-book-for-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-addresses.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-fetcher.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-message.fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-products-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-ui-configs-fetcher.js +25 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/enterprise-basket.service.js +91 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/hotel-avallibility.service.js +28 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/http-call.service.js +220 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/logon.service.js +41 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/modal-opener.service.js +15 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/my-bookings.service.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/route-happy.service.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/search.service.js +142 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/storage.service.js +79 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/user.service.js +31 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/services/webtoken.service.js +59 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/testers/postcode-validate.tester.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/testers/validate-mi-free-value.tester.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/types/graphql.angular.types.js +5662 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/accept-new-price.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/add-item-to-basket.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/addUserToBasketItem.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/book-basket-updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/create-basket-updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/move-basket-item-to-basket.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/remove-basket-updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/remove-item-from-basket.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/remove-recent-search.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/remove-user-address.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/revalidate-basket-updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/save-recent-search.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/save-user-address.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/send-basket-for-approval.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/set-basket-item-lead-passenger.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/set-basket-item-mi-group.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/set-basket-item-mi-value-updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/set-payment-option.updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/update-basket-notes-updater.js +22 -0
- package/dist/obtservices/esm2015/angular/lib/vendor/updaters/update-basket-title-updater.js +22 -0
- package/dist/obtservices/esm2015/angular/obtservices-angular.js +18 -0
- package/dist/obtservices/esm2015/angular/obtservices.module.js +128 -0
- package/dist/obtservices/esm2015/angular/public_api.js +9 -0
- package/dist/obtservices/esm2015/angular/services.js +12 -0
- package/dist/obtservices/esm2015/angular/types.js +2 -0
- package/dist/obtservices/esm2015/angular/updaters.js +14 -0
- package/dist/obtservices/esm2015/base/classes.js +28 -0
- package/dist/obtservices/esm2015/base/fetchers.js +37 -0
- package/dist/obtservices/esm2015/base/interfaces.js +30 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/base-enterprise.js +78 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/base-network-call.js +24 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/basket-info-mi-details.impl.js +35 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/bookable-basket.js +237 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/cabhire-enterprise-search.js +696 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/carhire-enterprise-search.js +1204 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/enviroment.js +12 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/eurostar-enterprise-search.js +1462 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/eurostar-search-type.enum.js +6 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/event-messenager.js +17 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/flight-enterprise-search.js +1640 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/flight-search-type.enum.js +7 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/helpers.js +978 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/hotel-enterprise-search.js +1022 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/irl-enterprise-search.js +1117 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/limited-cache.class.js +64 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/lounges-enterprise-search.js +323 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/management-info-and-valid.js +174 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/modal-types.enum.js +22 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/parking-enterprise-search.js +397 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/rail-direction.enum.js +6 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/rail-enterprise-search.js +1324 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/routehappy-request.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/routehappy-response.js +8 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/supplementary-booking-info-impl.js +250 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/user-favourite.enum.js +15 -0
- package/dist/obtservices/esm2015/base/lib/vendor/classes/validator.checker.js +4 -0
- package/dist/obtservices/esm2015/base/lib/vendor/data/countries.json +1212 -0
- package/dist/obtservices/esm2015/base/lib/vendor/data/euro-stations.json +30 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/basket-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/cabhire-quote-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/carhire-availability-detail.fetcher.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/carhire-quote-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/conferma-office-names.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/conferma-quicklist.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/eurostar-quote.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/flight-quote.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-rail-cards.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-rail-station.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-risk-alerts.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-user-company-offices.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-user-recent-searches.fetcher.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-users-baskets-fetcher.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/getMiAutoSugestions.fetcher.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/hotel-avaliability-fetcher.js +22 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/hotel-quote-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/irl-quote-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/list-fetchable-enterprise.js +27 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/lounge-quote.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/object-fetchable-enterprise.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/parking-quote-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/rail-quote-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-airlines.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-airports-fetcher.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-cities.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-conferma-cities.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-depots.fetcher.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-hotel-chains.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-postcodes.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-rail-stations.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-users-can-book-for-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-addresses.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-fetcher.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-message.fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-products-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-ui-configs-fetcher.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Icabhire-enterprise-search.js +17 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Icarhire-enterprise-search.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Ienterprise-basket.service.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Ieurostar-enterprise-search.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Iflight-enterprise-search.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Ihotel-enterprise-search.js +18 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Iirl-enterprise-search.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Ilounges-enterprise-search.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Imybookings.service.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Iparking-enterprise-search.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Irail-enterprise-search.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Isearch.service.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Isupplementary-booking-info-impl.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Iuser.service.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/car-hire-classes.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/car-hire-filters.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/car-hire-sort.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/cheapest-price.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/code-name.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/flight-filters.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/flight-multi-destination.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-airport-express-stations.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-basket-item.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-journey-leg.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-recent-search-args.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-selected-ticket.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-ticket-group.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-ticket-groups.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/search-objects.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/select-filter.interface.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/user.data.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/interfaces/value-display.js +2 -0
- package/dist/obtservices/esm2015/base/lib/vendor/models/login.model.js +71 -0
- package/dist/obtservices/esm2015/base/lib/vendor/models/regexp.model.js +13 -0
- package/dist/obtservices/esm2015/base/lib/vendor/models/traveller.object.js +38 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/enterprise-basket.service.js +669 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/hotel-avallibility.service.js +165 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/http-call.service.js +16 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/logon.service.js +177 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/modal-opener.service.js +20 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/my-bookings.service.js +124 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/routehappy.service.js +196 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/search.service.js +1281 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/storage.service.js +3 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/url.service.js +12 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/user.service.js +223 -0
- package/dist/obtservices/esm2015/base/lib/vendor/services/webtoken.service.js +56 -0
- package/dist/obtservices/esm2015/base/lib/vendor/testers/base.tester.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/testers/postcode-validate.tester.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/testers/validate-mi-free-value.tester.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/types/graphql.types.js +456 -0
- package/dist/obtservices/esm2015/base/lib/vendor/types/types.js +161 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/accept-new-price.updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/add-item-to-basket.updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/addUserToBasketItem.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/book-basket-updater.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/create-basket-updater.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/move-basket-item-to-basket.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/object-updater-enterprise.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/remove-basket-updater.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/remove-item-from-basket.updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/remove-recent-search-updater.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/remove-user-address-updater.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/revalidate-basket-updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/save-recent-search-updater.js +11 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/save-user-address.updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/send-basket-for-approval.updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/set-basket-item-lead-passenger.updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/set-basket-item-mi-group.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/set-basket-item-mi-value-updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/set-basket-item-paymenr-option.updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/update-basket-notes-updater.js +10 -0
- package/dist/obtservices/esm2015/base/lib/vendor/updaters/update-basket-title-updater.js +10 -0
- package/dist/obtservices/esm2015/base/models.js +4 -0
- package/dist/obtservices/esm2015/base/obtservices-base.js +9 -0
- package/dist/obtservices/esm2015/base/public_api.js +9 -0
- package/dist/obtservices/esm2015/base/services.js +13 -0
- package/dist/obtservices/esm2015/base/testers.js +3 -0
- package/dist/obtservices/esm2015/base/types.js +2 -0
- package/dist/obtservices/esm2015/base/updaters.js +21 -0
- package/dist/obtservices/esm2015/obtservices.js +5 -0
- package/dist/obtservices/esm2015/public_api.js +2 -0
- package/dist/obtservices/fesm2015/obtservices-angular.js +35267 -0
- package/dist/obtservices/fesm2015/obtservices-angular.js.map +1 -0
- package/dist/obtservices/fesm2015/obtservices-base.js +16573 -0
- package/dist/obtservices/fesm2015/obtservices-base.js.map +1 -0
- package/dist/obtservices/fesm2015/obtservices.js +8 -0
- package/dist/obtservices/fesm2015/obtservices.js.map +1 -0
- package/dist/obtservices/obtservices.d.ts +4 -0
- package/dist/obtservices/obtservices.metadata.json +1 -0
- package/dist/obtservices/package.json +23 -0
- package/dist/obtservices/public_api.d.ts +1 -0
- package/dist/obtservices/tsconfig.lib.tsbuildinfo +3 -0
- package/package.json +4 -1
- package/.editorconfig +0 -13
- package/.gitmodules +0 -0
- package/.vscode/settings.json +0 -4
- package/angular.json +0 -45
- package/audit.config.json +0 -6
- package/codegen.yml +0 -18
- package/ng-package.json +0 -7
- package/projects/obtservices/angular/package.json +0 -3
- package/projects/obtservices/angular/src/components/basket-panel.ts +0 -139
- package/projects/obtservices/angular/src/components/with-component.ts +0 -40
- package/projects/obtservices/angular/src/data.ts +0 -5
- package/projects/obtservices/angular/src/fetchers.ts +0 -32
- package/projects/obtservices/angular/src/lib/vendor/classes/environment.ts +0 -5
- package/projects/obtservices/angular/src/lib/vendor/classes/event-messenager.ts +0 -11
- package/projects/obtservices/angular/src/lib/vendor/classes/helpers.ts +0 -87
- package/projects/obtservices/angular/src/lib/vendor/data/airports.data.json +0 -5508
- package/projects/obtservices/angular/src/lib/vendor/data/animations.ts +0 -38
- package/projects/obtservices/angular/src/lib/vendor/data/booking-expected-responses.json +0 -100
- package/projects/obtservices/angular/src/lib/vendor/data/cities.data.json +0 -31499
- package/projects/obtservices/angular/src/lib/vendor/data/countries.json +0 -1212
- package/projects/obtservices/angular/src/lib/vendor/data/flight-booking.data.json +0 -136
- package/projects/obtservices/angular/src/lib/vendor/data/postcodes1.json +0 -194
- package/projects/obtservices/angular/src/lib/vendor/data/rail_addresses.json +0 -2524
- package/projects/obtservices/angular/src/lib/vendor/fetchers/basket-fetcher.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/fetchers/cabhire-quote-fetcher.ts +0 -15
- package/projects/obtservices/angular/src/lib/vendor/fetchers/carhire-availability-detail.fetcher.ts +0 -17
- package/projects/obtservices/angular/src/lib/vendor/fetchers/carhire-quote-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/conferma-office-names.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/conferma-quicklist.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/eurostar-quote.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/flight-quote.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/get-rail-cards.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/get-rail-station.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/get-risk-alerts.fetcher.ts +0 -18
- package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-company-offices.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-recent-searches.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/get-users-baskets-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/getMiAutoSugestions.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/hotel-avaliability-fetcher.ts +0 -17
- package/projects/obtservices/angular/src/lib/vendor/fetchers/hotel-quote-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/irl-quote-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/lounge-quote.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/parking-quote-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/rail-quote-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-airlines-fetcher.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-airports-fetcher.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-cities.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-conferma-cities.fetcher.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-depots.fetcher.ts +0 -18
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-hotel-chains.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-postcodes.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-rail-stations.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/search-users-can-book-for-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/user-addresses.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/user-fetcher.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/fetchers/user-message.fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/user-products-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/fetchers/user-ui-configs-fetcher.ts +0 -16
- package/projects/obtservices/angular/src/lib/vendor/services/enterprise-basket.service.ts +0 -133
- package/projects/obtservices/angular/src/lib/vendor/services/hotel-avallibility.service.ts +0 -19
- package/projects/obtservices/angular/src/lib/vendor/services/http-call.service.ts +0 -252
- package/projects/obtservices/angular/src/lib/vendor/services/logon.service.ts +0 -40
- package/projects/obtservices/angular/src/lib/vendor/services/modal-opener.service.ts +0 -9
- package/projects/obtservices/angular/src/lib/vendor/services/my-bookings.service.ts +0 -21
- package/projects/obtservices/angular/src/lib/vendor/services/route-happy.service.ts +0 -11
- package/projects/obtservices/angular/src/lib/vendor/services/search.service.ts +0 -213
- package/projects/obtservices/angular/src/lib/vendor/services/storage.service.ts +0 -82
- package/projects/obtservices/angular/src/lib/vendor/services/user.service.ts +0 -36
- package/projects/obtservices/angular/src/lib/vendor/services/webtoken.service.ts +0 -62
- package/projects/obtservices/angular/src/lib/vendor/testers/postcode-validate.tester.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/testers/validate-mi-free-value.tester.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/types/graphql.angular.types.ts +0 -11081
- package/projects/obtservices/angular/src/lib/vendor/updaters/accept-new-price.updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/add-item-to-basket.updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/addUserToBasketItem.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/book-basket-updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/create-basket-updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/move-basket-item-to-basket.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/remove-basket-updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/remove-item-from-basket.updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/remove-recent-search.updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/remove-user-address.updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/revalidate-basket-updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/save-recent-search.updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/save-user-address.updater.ts +0 -11
- package/projects/obtservices/angular/src/lib/vendor/updaters/send-basket-for-approval.updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-lead-passenger.updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-mi-group.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-mi-value-updater.ts +0 -15
- package/projects/obtservices/angular/src/lib/vendor/updaters/set-payment-option.updater.ts +0 -15
- package/projects/obtservices/angular/src/lib/vendor/updaters/update-basket-notes-updater.ts +0 -14
- package/projects/obtservices/angular/src/lib/vendor/updaters/update-basket-title-updater.ts +0 -14
- package/projects/obtservices/angular/src/obtservices.module.ts +0 -131
- package/projects/obtservices/base/package.json +0 -3
- package/projects/obtservices/base/src/custom.d.ts +0 -3
- package/projects/obtservices/base/src/fetchers.ts +0 -36
- package/projects/obtservices/base/src/lib/vendor/classes/base-enterprise.ts +0 -126
- package/projects/obtservices/base/src/lib/vendor/classes/base-network-call.ts +0 -40
- package/projects/obtservices/base/src/lib/vendor/classes/basket-info-mi-details.impl.ts +0 -68
- package/projects/obtservices/base/src/lib/vendor/classes/bookable-basket.ts +0 -343
- package/projects/obtservices/base/src/lib/vendor/classes/cabhire-enterprise-search.ts +0 -907
- package/projects/obtservices/base/src/lib/vendor/classes/carhire-enterprise-search.ts +0 -1597
- package/projects/obtservices/base/src/lib/vendor/classes/empty-enterprise-search.ts +0 -75
- package/projects/obtservices/base/src/lib/vendor/classes/enviroment.ts +0 -25
- package/projects/obtservices/base/src/lib/vendor/classes/eurostar-enterprise-search.ts +0 -2126
- package/projects/obtservices/base/src/lib/vendor/classes/eurostar-search-type.enum.ts +0 -4
- package/projects/obtservices/base/src/lib/vendor/classes/event-messenager.ts +0 -23
- package/projects/obtservices/base/src/lib/vendor/classes/flight-enterprise-search.ts +0 -2399
- package/projects/obtservices/base/src/lib/vendor/classes/flight-search-type.enum.ts +0 -5
- package/projects/obtservices/base/src/lib/vendor/classes/helpers.ts +0 -1233
- package/projects/obtservices/base/src/lib/vendor/classes/hotel-enterprise-search.ts +0 -1370
- package/projects/obtservices/base/src/lib/vendor/classes/irl-enterprise-search.ts +0 -1380
- package/projects/obtservices/base/src/lib/vendor/classes/limited-cache.class.ts +0 -70
- package/projects/obtservices/base/src/lib/vendor/classes/lounges-enterprise-search.ts +0 -444
- package/projects/obtservices/base/src/lib/vendor/classes/management-info-and-valid.ts +0 -268
- package/projects/obtservices/base/src/lib/vendor/classes/modal-types.enum.ts +0 -28
- package/projects/obtservices/base/src/lib/vendor/classes/parking-enterprise-search.ts +0 -541
- package/projects/obtservices/base/src/lib/vendor/classes/rail-direction.enum.ts +0 -4
- package/projects/obtservices/base/src/lib/vendor/classes/rail-enterprise-search.ts +0 -1751
- package/projects/obtservices/base/src/lib/vendor/classes/routehappy-request.ts +0 -146
- package/projects/obtservices/base/src/lib/vendor/classes/routehappy-response.ts +0 -128
- package/projects/obtservices/base/src/lib/vendor/classes/supplementary-booking-info-impl.ts +0 -375
- package/projects/obtservices/base/src/lib/vendor/classes/user-favourite.enum.ts +0 -12
- package/projects/obtservices/base/src/lib/vendor/classes/validator.checker.ts +0 -7
- package/projects/obtservices/base/src/lib/vendor/data/airports.data.json +0 -5508
- package/projects/obtservices/base/src/lib/vendor/data/booking-expected-responses.json +0 -100
- package/projects/obtservices/base/src/lib/vendor/data/cities.data.json +0 -31499
- package/projects/obtservices/base/src/lib/vendor/data/countries.json +0 -1212
- package/projects/obtservices/base/src/lib/vendor/data/euro-stations.json +0 -30
- package/projects/obtservices/base/src/lib/vendor/data/flight-booking.data.json +0 -136
- package/projects/obtservices/base/src/lib/vendor/data/postcodes1.json +0 -194
- package/projects/obtservices/base/src/lib/vendor/data/rail_addresses.json +0 -2524
- package/projects/obtservices/base/src/lib/vendor/fetchers/basket-fetcher.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/fetchers/cabhire-quote-fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/carhire-availability-detail.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/carhire-quote-fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/conferma-office-names.fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/conferma-quicklist.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/eurostar-quote.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/flight-quote.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/get-rail-cards.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/get-rail-station.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/get-risk-alerts.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-company-offices.fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-recent-searches.fetcher.ts +0 -36
- package/projects/obtservices/base/src/lib/vendor/fetchers/get-users-baskets-fetcher.ts +0 -33
- package/projects/obtservices/base/src/lib/vendor/fetchers/getMiAutoSugestions.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/hotel-avaliability-fetcher.ts +0 -53
- package/projects/obtservices/base/src/lib/vendor/fetchers/hotel-quote-fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/irl-quote-fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/list-fetchable-enterprise.ts +0 -59
- package/projects/obtservices/base/src/lib/vendor/fetchers/lounge-quote.fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/object-fetchable-enterprise.ts +0 -20
- package/projects/obtservices/base/src/lib/vendor/fetchers/parking-quote-fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/rail-quote-fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-airlines.fetcher.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-airports-fetcher.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-cities.fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-conferma-cities.fetcher.ts +0 -32
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-depots.fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-hotel-chains.fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-postcodes.fetcher.ts +0 -37
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-rail-stations.fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/search-users-can-book-for-fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/user-addresses.fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/user-fetcher.ts +0 -27
- package/projects/obtservices/base/src/lib/vendor/fetchers/user-message.fetcher.ts +0 -34
- package/projects/obtservices/base/src/lib/vendor/fetchers/user-products-fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/fetchers/user-ui-configs-fetcher.ts +0 -35
- package/projects/obtservices/base/src/lib/vendor/interfaces/Icabhire-enterprise-search.ts +0 -174
- package/projects/obtservices/base/src/lib/vendor/interfaces/Icarhire-enterprise-search.ts +0 -143
- package/projects/obtservices/base/src/lib/vendor/interfaces/Ienterprise-basket.service.ts +0 -127
- package/projects/obtservices/base/src/lib/vendor/interfaces/Ieurostar-enterprise-search.ts +0 -197
- package/projects/obtservices/base/src/lib/vendor/interfaces/Iflight-enterprise-search.ts +0 -196
- package/projects/obtservices/base/src/lib/vendor/interfaces/Ihotel-enterprise-search.ts +0 -219
- package/projects/obtservices/base/src/lib/vendor/interfaces/Iirl-enterprise-search.ts +0 -135
- package/projects/obtservices/base/src/lib/vendor/interfaces/Ilounges-enterprise-search.ts +0 -58
- package/projects/obtservices/base/src/lib/vendor/interfaces/Imybookings.service.ts +0 -27
- package/projects/obtservices/base/src/lib/vendor/interfaces/Iparking-enterprise-search.ts +0 -72
- package/projects/obtservices/base/src/lib/vendor/interfaces/Irail-enterprise-search.ts +0 -161
- package/projects/obtservices/base/src/lib/vendor/interfaces/Isearch.service.ts +0 -178
- package/projects/obtservices/base/src/lib/vendor/interfaces/Isupplementary-booking-info-impl.ts +0 -63
- package/projects/obtservices/base/src/lib/vendor/interfaces/Iuser.service.ts +0 -87
- package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-classes.interface.ts +0 -8
- package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-filters.interface.ts +0 -11
- package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-sort.interface.ts +0 -4
- package/projects/obtservices/base/src/lib/vendor/interfaces/cheapest-price.ts +0 -4
- package/projects/obtservices/base/src/lib/vendor/interfaces/code-name.ts +0 -4
- package/projects/obtservices/base/src/lib/vendor/interfaces/flight-filters.interface.ts +0 -41
- package/projects/obtservices/base/src/lib/vendor/interfaces/flight-multi-destination.interface.ts +0 -8
- package/projects/obtservices/base/src/lib/vendor/interfaces/rail-airport-express-stations.interface.ts +0 -4
- package/projects/obtservices/base/src/lib/vendor/interfaces/rail-basket-item.interface.ts +0 -79
- package/projects/obtservices/base/src/lib/vendor/interfaces/rail-journey-leg.interface.ts +0 -6
- package/projects/obtservices/base/src/lib/vendor/interfaces/rail-recent-search-args.interface.ts +0 -20
- package/projects/obtservices/base/src/lib/vendor/interfaces/rail-selected-ticket.interface.ts +0 -11
- package/projects/obtservices/base/src/lib/vendor/interfaces/rail-ticket-group.interface.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/interfaces/rail-ticket-groups.interface.ts +0 -5
- package/projects/obtservices/base/src/lib/vendor/interfaces/search-objects.interface.ts +0 -17
- package/projects/obtservices/base/src/lib/vendor/interfaces/select-filter.interface.ts +0 -5
- package/projects/obtservices/base/src/lib/vendor/interfaces/user.data.ts +0 -22
- package/projects/obtservices/base/src/lib/vendor/interfaces/value-display.ts +0 -4
- package/projects/obtservices/base/src/lib/vendor/models/login.model.ts +0 -97
- package/projects/obtservices/base/src/lib/vendor/models/regexp.model.ts +0 -13
- package/projects/obtservices/base/src/lib/vendor/models/traveller.object.ts +0 -61
- package/projects/obtservices/base/src/lib/vendor/services/enterprise-basket.service.ts +0 -1150
- package/projects/obtservices/base/src/lib/vendor/services/hotel-avallibility.service.ts +0 -251
- package/projects/obtservices/base/src/lib/vendor/services/http-call.service.ts +0 -57
- package/projects/obtservices/base/src/lib/vendor/services/logon.service.ts +0 -245
- package/projects/obtservices/base/src/lib/vendor/services/modal-opener.service.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/services/my-bookings.service.ts +0 -184
- package/projects/obtservices/base/src/lib/vendor/services/routehappy.service.ts +0 -275
- package/projects/obtservices/base/src/lib/vendor/services/search.service.ts +0 -2026
- package/projects/obtservices/base/src/lib/vendor/services/storage.service.ts +0 -15
- package/projects/obtservices/base/src/lib/vendor/services/url.service.ts +0 -12
- package/projects/obtservices/base/src/lib/vendor/services/user.service.ts +0 -354
- package/projects/obtservices/base/src/lib/vendor/services/webtoken.service.ts +0 -66
- package/projects/obtservices/base/src/lib/vendor/testers/base.tester.ts +0 -18
- package/projects/obtservices/base/src/lib/vendor/testers/postcode-validate.tester.ts +0 -24
- package/projects/obtservices/base/src/lib/vendor/testers/validate-mi-free-value.tester.ts +0 -23
- package/projects/obtservices/base/src/lib/vendor/types/graphql.types.ts +0 -6184
- package/projects/obtservices/base/src/lib/vendor/types/types.ts +0 -630
- package/projects/obtservices/base/src/lib/vendor/updaters/accept-new-price.updater.ts +0 -31
- package/projects/obtservices/base/src/lib/vendor/updaters/add-item-to-basket.updater.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/updaters/addUserToBasketItem.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/updaters/book-basket-updater.ts +0 -28
- package/projects/obtservices/base/src/lib/vendor/updaters/create-basket-updater.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/updaters/move-basket-item-to-basket.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/updaters/object-updater-enterprise.ts +0 -20
- package/projects/obtservices/base/src/lib/vendor/updaters/remove-basket-updater.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/updaters/remove-item-from-basket.updater.ts +0 -28
- package/projects/obtservices/base/src/lib/vendor/updaters/remove-recent-search-updater.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/updaters/remove-user-address-updater.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/updaters/revalidate-basket-updater.ts +0 -29
- package/projects/obtservices/base/src/lib/vendor/updaters/save-recent-search-updater.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/updaters/save-user-address.updater.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/updaters/send-basket-for-approval.updater.ts +0 -31
- package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-lead-passenger.updater.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-mi-group.ts +0 -32
- package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-mi-value-updater.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-paymenr-option.updater.ts +0 -28
- package/projects/obtservices/base/src/lib/vendor/updaters/update-basket-notes-updater.ts +0 -30
- package/projects/obtservices/base/src/lib/vendor/updaters/update-basket-title-updater.ts +0 -30
- package/projects/obtservices/base/src/testers.ts +0 -2
- package/projects/obtservices/graphQL/autogenerated/index.js +0 -2
- package/projects/obtservices/graphQL/autogenerated/mutations/acceptNewPrice.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/addItemToBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/addUsersToBasketItem.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/bookBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/cancelBooking.gql +0 -6
- package/projects/obtservices/graphQL/autogenerated/mutations/confermaCreateCard.gql +0 -23
- package/projects/obtservices/graphQL/autogenerated/mutations/confermaDeleteCard.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/mutations/createBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/deleteBasket.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/mutations/deleteFavouriteSearch.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/mutations/deleteRecentSearch.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/mutations/deleteUserAddress.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/mutations/index.js +0 -36
- package/projects/obtservices/graphQL/autogenerated/mutations/moveItemToADifferentBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/removeItemFromBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/removeItemsFromBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/removeUserFromBasketItem.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/reopenBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/revalidateBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/revalidateBasketItem.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/saveFavouriteSearch.gql +0 -348
- package/projects/obtservices/graphQL/autogenerated/mutations/saveRecentSearch.gql +0 -348
- package/projects/obtservices/graphQL/autogenerated/mutations/saveUserAddress.gql +0 -14
- package/projects/obtservices/graphQL/autogenerated/mutations/sendBasketForApproval.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/setAddressAsUserPrimary.gql +0 -14
- package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemLeadPassenger.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemMIGroup.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemMIValue.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemPaymentMethod.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/setMIDefaultValue.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/mutations/setUserLanguage.gql +0 -339
- package/projects/obtservices/graphQL/autogenerated/mutations/updateBasketNotes.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/mutations/updateBasketTitle.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/queries/alive.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/queries/carHireAvailabilityDetailRequest.gql +0 -42
- package/projects/obtservices/graphQL/autogenerated/queries/confermaBlockClientHotels.gql +0 -23
- package/projects/obtservices/graphQL/autogenerated/queries/confermaBlockConsumerHotels.gql +0 -23
- package/projects/obtservices/graphQL/autogenerated/queries/confermaListCards.gql +0 -11
- package/projects/obtservices/graphQL/autogenerated/queries/confermaUnblockClientHotels.gql +0 -23
- package/projects/obtservices/graphQL/autogenerated/queries/confermaUnblockConsumerHotels.gql +0 -23
- package/projects/obtservices/graphQL/autogenerated/queries/getCOVIDMicrositeToken.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/queries/getCancellationInfo.gql +0 -7
- package/projects/obtservices/graphQL/autogenerated/queries/getCarHireDepots.gql +0 -13
- package/projects/obtservices/graphQL/autogenerated/queries/getConfermaOffice.gql +0 -50
- package/projects/obtservices/graphQL/autogenerated/queries/getConfermaOfficeNames.gql +0 -26
- package/projects/obtservices/graphQL/autogenerated/queries/getConfermaQuicklist.gql +0 -131
- package/projects/obtservices/graphQL/autogenerated/queries/getCountries.gql +0 -8
- package/projects/obtservices/graphQL/autogenerated/queries/getHotelAvailability.gql +0 -78
- package/projects/obtservices/graphQL/autogenerated/queries/getHotelChains.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/queries/getIRLSupplierStation.gql +0 -28
- package/projects/obtservices/graphQL/autogenerated/queries/getMultipleHotelsAvailability.gql +0 -78
- package/projects/obtservices/graphQL/autogenerated/queries/getPostcodeDetails.gql +0 -25
- package/projects/obtservices/graphQL/autogenerated/queries/getRailStation.gql +0 -27
- package/projects/obtservices/graphQL/autogenerated/queries/getRailcards.gql +0 -6
- package/projects/obtservices/graphQL/autogenerated/queries/getRiskAlerts.gql +0 -17
- package/projects/obtservices/graphQL/autogenerated/queries/getUser.gql +0 -339
- package/projects/obtservices/graphQL/autogenerated/queries/getUserAddresses.gql +0 -14
- package/projects/obtservices/graphQL/autogenerated/queries/getUserBasket.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/queries/getUserBaskets.gql +0 -1580
- package/projects/obtservices/graphQL/autogenerated/queries/getUserCompanyOffices.gql +0 -88
- package/projects/obtservices/graphQL/autogenerated/queries/getUserCurrentCarbonAllowance.gql +0 -524
- package/projects/obtservices/graphQL/autogenerated/queries/getUserFavouriteSearches.gql +0 -348
- package/projects/obtservices/graphQL/autogenerated/queries/getUserMIAutoSuggestValues.gql +0 -10
- package/projects/obtservices/graphQL/autogenerated/queries/getUserMessages.gql +0 -10
- package/projects/obtservices/graphQL/autogenerated/queries/getUserPhoneNumbers.gql +0 -13
- package/projects/obtservices/graphQL/autogenerated/queries/getUserRecentSearches.gql +0 -348
- package/projects/obtservices/graphQL/autogenerated/queries/getUserServices.gql +0 -16
- package/projects/obtservices/graphQL/autogenerated/queries/getUserTravelRules.gql +0 -111
- package/projects/obtservices/graphQL/autogenerated/queries/getUserUIConfigs.gql +0 -52
- package/projects/obtservices/graphQL/autogenerated/queries/index.js +0 -64
- package/projects/obtservices/graphQL/autogenerated/queries/isPostcodeValid.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/queries/postcodeAutoSuggest.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/queries/searchAirlines.gql +0 -32
- package/projects/obtservices/graphQL/autogenerated/queries/searchAirports.gql +0 -60
- package/projects/obtservices/graphQL/autogenerated/queries/searchCabHire.gql +0 -63
- package/projects/obtservices/graphQL/autogenerated/queries/searchCarHire.gql +0 -104
- package/projects/obtservices/graphQL/autogenerated/queries/searchCities.gql +0 -14
- package/projects/obtservices/graphQL/autogenerated/queries/searchConfermaCities.gql +0 -11
- package/projects/obtservices/graphQL/autogenerated/queries/searchEurostar.gql +0 -833
- package/projects/obtservices/graphQL/autogenerated/queries/searchFastTrack.gql +0 -46
- package/projects/obtservices/graphQL/autogenerated/queries/searchFlights.gql +0 -23
- package/projects/obtservices/graphQL/autogenerated/queries/searchFlightsV2.gql +0 -833
- package/projects/obtservices/graphQL/autogenerated/queries/searchHotelChains.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/queries/searchHotels.gql +0 -131
- package/projects/obtservices/graphQL/autogenerated/queries/searchIRL.gql +0 -514
- package/projects/obtservices/graphQL/autogenerated/queries/searchIRLSupplierStations.gql +0 -28
- package/projects/obtservices/graphQL/autogenerated/queries/searchLounges.gql +0 -89
- package/projects/obtservices/graphQL/autogenerated/queries/searchParking.gql +0 -70
- package/projects/obtservices/graphQL/autogenerated/queries/searchPostcodes.gql +0 -25
- package/projects/obtservices/graphQL/autogenerated/queries/searchRail.gql +0 -840
- package/projects/obtservices/graphQL/autogenerated/queries/searchRailStations.gql +0 -27
- package/projects/obtservices/graphQL/autogenerated/queries/searchUserCanBookFor.gql +0 -339
- package/projects/obtservices/graphQL/autogenerated/queries/validateBasketItemMI.gql +0 -3
- package/projects/obtservices/graphQL/autogenerated/queries/validateUserMIFreeValue.gql +0 -3
- package/projects/obtservices/graphQL/documents/acceptNewPrice.graphql +0 -5
- package/projects/obtservices/graphQL/documents/addUserToBasketItem.graphql +0 -9
- package/projects/obtservices/graphQL/documents/basket.fragments.graphql +0 -171
- package/projects/obtservices/graphQL/documents/baskets.graphql +0 -111
- package/projects/obtservices/graphQL/documents/bookBasket.graphql +0 -9
- package/projects/obtservices/graphQL/documents/cabhire.graphql +0 -66
- package/projects/obtservices/graphQL/documents/carHireAvailabilityDetailRequest.graphql +0 -44
- package/projects/obtservices/graphQL/documents/carhire.graphql +0 -117
- package/projects/obtservices/graphQL/documents/deleteRecentSearch.graphql +0 -3
- package/projects/obtservices/graphQL/documents/deleteUserAddress.graphql +0 -3
- package/projects/obtservices/graphQL/documents/error.fragments.graphql +0 -10
- package/projects/obtservices/graphQL/documents/flights.graphql +0 -830
- package/projects/obtservices/graphQL/documents/getCarHireDepots.graphql +0 -13
- package/projects/obtservices/graphQL/documents/getConfermaOfficeNames.graphql +0 -11
- package/projects/obtservices/graphQL/documents/getConfermaQuicklist.graphql +0 -108
- package/projects/obtservices/graphQL/documents/getRailStation.graphql +0 -31
- package/projects/obtservices/graphQL/documents/getRailcards.graphql +0 -6
- package/projects/obtservices/graphQL/documents/getRiskAlerts.graphql +0 -24
- package/projects/obtservices/graphQL/documents/getUserAddresses.graphql +0 -14
- package/projects/obtservices/graphQL/documents/getUserCompanyOffices.graphql +0 -18
- package/projects/obtservices/graphQL/documents/getUserCurrentCarbonAllowance.graphql +0 -29
- package/projects/obtservices/graphQL/documents/getUserMIAutoSuggestValues.graphql +0 -10
- package/projects/obtservices/graphQL/documents/getUserPhoneNumbers.graphql +0 -13
- package/projects/obtservices/graphQL/documents/getUserRecentSearches.graphql +0 -20
- package/projects/obtservices/graphQL/documents/hotels.graphql +0 -242
- package/projects/obtservices/graphQL/documents/isPostcodeValid.graphql +0 -3
- package/projects/obtservices/graphQL/documents/lookups.graphql +0 -54
- package/projects/obtservices/graphQL/documents/lounges.graphql +0 -88
- package/projects/obtservices/graphQL/documents/moveItemToADifferentBasket.graphql +0 -9
- package/projects/obtservices/graphQL/documents/parking.graphql +0 -79
- package/projects/obtservices/graphQL/documents/rail.graphql +0 -645
- package/projects/obtservices/graphQL/documents/saveRecentSearch.graphql +0 -5
- package/projects/obtservices/graphQL/documents/saveUserAddress.graphql +0 -14
- package/projects/obtservices/graphQL/documents/searchAirlines.graphql +0 -32
- package/projects/obtservices/graphQL/documents/searchCities.graphql +0 -14
- package/projects/obtservices/graphQL/documents/searchConfermaCities.graphql +0 -11
- package/projects/obtservices/graphQL/documents/searchEurostar.graphql +0 -810
- package/projects/obtservices/graphQL/documents/searchHotelChains.graphql +0 -3
- package/projects/obtservices/graphQL/documents/searchIRL.graphql +0 -521
- package/projects/obtservices/graphQL/documents/searchPostcodes.graphql +0 -7
- package/projects/obtservices/graphQL/documents/searchRailStations.graphql +0 -27
- package/projects/obtservices/graphQL/documents/searchUserAddresses.graphql +0 -14
- package/projects/obtservices/graphQL/documents/set-basker-item-mi-group.graphql +0 -9
- package/projects/obtservices/graphQL/documents/setBasketItemLeadPassenger.graphql +0 -5
- package/projects/obtservices/graphQL/documents/setBasketItemMIValue.graphql +0 -16
- package/projects/obtservices/graphQL/documents/setBasketItemPaymentMethod.graphql +0 -12
- package/projects/obtservices/graphQL/documents/updateBasketNotes.graphql +0 -10
- package/projects/obtservices/graphQL/documents/updateBasketTitle.graphql +0 -10
- package/projects/obtservices/graphQL/documents/user.fragments.graphql +0 -65
- package/projects/obtservices/graphQL/documents/user.graphql +0 -95
- package/projects/obtservices/graphQL/documents/validateUserMIFreeValue.graphql +0 -3
- package/projects/obtservices/graphQL/schema/schema.graphql +0 -2635
- package/projects/obtservices/karma.conf.js +0 -32
- package/projects/obtservices/ng-package.json +0 -7
- package/projects/obtservices/package-lock.json +0 -5
- package/projects/obtservices/package.json +0 -12
- package/projects/obtservices/src/obtservices.ts +0 -0
- package/projects/obtservices/src/public_api.ts +0 -1
- package/projects/obtservices/tsconfig.lib.json +0 -30
- package/projects/obtservices/tsconfig.spec.json +0 -17
- package/projects/obtservices/tslint.json +0 -17
- package/tsconfig.json +0 -36
- package/tslint.json +0 -62
- /package/{projects → dist}/obtservices/README.md +0 -0
- /package/{projects/obtservices/angular/src/classes.ts → dist/obtservices/angular/classes.d.ts} +0 -0
- /package/{projects/obtservices/angular/src/components.ts → dist/obtservices/angular/components.d.ts} +0 -0
- /package/{projects/obtservices/angular/src/public_api.ts → dist/obtservices/angular/public_api.d.ts} +0 -0
- /package/{projects/obtservices/angular/src/services.ts → dist/obtservices/angular/services.d.ts} +0 -0
- /package/{projects/obtservices/angular/src/types.ts → dist/obtservices/angular/types.d.ts} +0 -0
- /package/{projects/obtservices/angular/src/updaters.ts → dist/obtservices/angular/updaters.d.ts} +0 -0
- /package/{projects/obtservices/base/src/classes.ts → dist/obtservices/base/classes.d.ts} +0 -0
- /package/{projects/obtservices/base/src/interfaces.ts → dist/obtservices/base/interfaces.d.ts} +0 -0
- /package/{projects/obtservices/base/src/models.ts → dist/obtservices/base/models.d.ts} +0 -0
- /package/{projects/obtservices/base/src/public_api.ts → dist/obtservices/base/public_api.d.ts} +0 -0
- /package/{projects/obtservices/base/src/services.ts → dist/obtservices/base/services.d.ts} +0 -0
- /package/{projects/obtservices/angular/src/testers.ts → dist/obtservices/base/testers.d.ts} +0 -0
- /package/{projects/obtservices/base/src/types.ts → dist/obtservices/base/types.d.ts} +0 -0
- /package/{projects/obtservices/base/src/updaters.ts → dist/obtservices/base/updaters.d.ts} +0 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { take } from 'rxjs/operators';
|
|
3
|
+
const SESSION_NAME = 'results_hotel_avallibility';
|
|
4
|
+
export class BaseHotelAvalibilityService {
|
|
5
|
+
constructor(avalibilityFethcer, sessionStorage, helpers, environment) {
|
|
6
|
+
this.avalibilityFethcer = avalibilityFethcer;
|
|
7
|
+
this.sessionStorage = sessionStorage;
|
|
8
|
+
this.helpers = helpers;
|
|
9
|
+
this.environment = environment;
|
|
10
|
+
this.data = null;
|
|
11
|
+
this.behaviours = {};
|
|
12
|
+
this.toFetch = [];
|
|
13
|
+
this.fetching = new BehaviorSubject(false);
|
|
14
|
+
this.currencies = {};
|
|
15
|
+
}
|
|
16
|
+
readFromSession() {
|
|
17
|
+
const data = this.sessionStorage.getSessionItem(SESSION_NAME) || {};
|
|
18
|
+
Object.values(data).forEach((item) => {
|
|
19
|
+
this.behaviours[item.hotelId] =
|
|
20
|
+
new BehaviorSubject(item);
|
|
21
|
+
});
|
|
22
|
+
return data;
|
|
23
|
+
}
|
|
24
|
+
reset() {
|
|
25
|
+
this.data = {};
|
|
26
|
+
this.currencies = {};
|
|
27
|
+
this.sessionStorage.removeSessionItem(SESSION_NAME);
|
|
28
|
+
Object.values(this.data).forEach((item) => {
|
|
29
|
+
this.behaviours[item.hotelId].complete();
|
|
30
|
+
delete this.behaviours[item.hotelId];
|
|
31
|
+
});
|
|
32
|
+
this.behaviours = {};
|
|
33
|
+
}
|
|
34
|
+
getAvailabilityForId(hotel) {
|
|
35
|
+
this.data = this.data || this.readFromSession();
|
|
36
|
+
return (this.behaviours[hotel.hotel] ||
|
|
37
|
+
this._getAvailabilityForId(hotel));
|
|
38
|
+
}
|
|
39
|
+
getAvailabilityValue(hotel) {
|
|
40
|
+
var _a;
|
|
41
|
+
this.data = this.data || this.readFromSession();
|
|
42
|
+
return (((_a = this.behaviours[hotel.id]) === null || _a === void 0 ? void 0 : _a.value) ||
|
|
43
|
+
{});
|
|
44
|
+
}
|
|
45
|
+
_getAvailabilityForId(hotel) {
|
|
46
|
+
if (this.timeout) {
|
|
47
|
+
window.clearTimeout(this.timeout);
|
|
48
|
+
this.timeout = 0;
|
|
49
|
+
}
|
|
50
|
+
if (!this.fetching.value) {
|
|
51
|
+
this.timeout = window.setTimeout(this.fetchAvalilbility.bind(this), this.environment.autoFetchHotelTimeout);
|
|
52
|
+
}
|
|
53
|
+
this.toFetch.push(hotel);
|
|
54
|
+
if (!this.fetching.value &&
|
|
55
|
+
this.toFetch.length >= this.environment.numberOfHotelsToFetch) {
|
|
56
|
+
this.fetchAvalilbility();
|
|
57
|
+
}
|
|
58
|
+
this.behaviours[hotel.hotel] =
|
|
59
|
+
new BehaviorSubject(null);
|
|
60
|
+
return this.behaviours[hotel.hotel];
|
|
61
|
+
}
|
|
62
|
+
fetchAvalilbility() {
|
|
63
|
+
this.fetching.next(true);
|
|
64
|
+
if (this.timeout) {
|
|
65
|
+
window.clearTimeout(this.timeout);
|
|
66
|
+
this.timeout = 0;
|
|
67
|
+
}
|
|
68
|
+
const toFetch = this.toFetch.slice(0, this.environment.numberOfHotelsToFetch);
|
|
69
|
+
this.toFetch = this.toFetch.slice(this.environment.numberOfHotelsToFetch);
|
|
70
|
+
console.log('Hotels still to fetch', this.toFetch.length);
|
|
71
|
+
const query = {
|
|
72
|
+
hotel: toFetch.map((hotel) => hotel.hotel),
|
|
73
|
+
currency: toFetch[0].currency,
|
|
74
|
+
endDate: toFetch[0].endDate,
|
|
75
|
+
startDate: toFetch[0].startDate,
|
|
76
|
+
occupants: toFetch[0].occupants,
|
|
77
|
+
rooms: toFetch[0].rooms
|
|
78
|
+
};
|
|
79
|
+
this.avalibilityFethcer
|
|
80
|
+
.fetchList(query)
|
|
81
|
+
.pipe(take(1))
|
|
82
|
+
.subscribe((hotels) => {
|
|
83
|
+
hotels.forEach((hotel) => {
|
|
84
|
+
hotel = this.helpers.clone(hotel);
|
|
85
|
+
hotel.rooms = (hotel.rooms || [])
|
|
86
|
+
.filter((room) => {
|
|
87
|
+
return room.total > 0;
|
|
88
|
+
})
|
|
89
|
+
.map((room) => {
|
|
90
|
+
room = this.helpers.clone(room);
|
|
91
|
+
room.LocalPrice = room.currencyConversion
|
|
92
|
+
? room.currencyConversion.localTotal
|
|
93
|
+
: room.total;
|
|
94
|
+
room.LocalCurrency = room.currencyConversion
|
|
95
|
+
? room.currencyConversion.localCode
|
|
96
|
+
: room.currencyCode;
|
|
97
|
+
return room;
|
|
98
|
+
});
|
|
99
|
+
hotel.currencies = hotel.rooms.reduce((details, room) => {
|
|
100
|
+
if (room.currencyConversion) {
|
|
101
|
+
details[room.currencyConversion.convertedCode] = details[room.currencyConversion.convertedCode] || {
|
|
102
|
+
maxprice: Number.MIN_VALUE,
|
|
103
|
+
minprice: Number.MAX_VALUE
|
|
104
|
+
};
|
|
105
|
+
details[room.currencyConversion.convertedCode].maxprice =
|
|
106
|
+
Math.max(details[room.currencyConversion.convertedCode].maxprice, room.currencyConversion.convertedTotal);
|
|
107
|
+
details[room.currencyConversion.convertedCode].minprice =
|
|
108
|
+
Math.min(details[room.currencyConversion.convertedCode].minprice, room.currencyConversion.convertedTotal);
|
|
109
|
+
this.currencies[room.currencyConversion.convertedCode] = this
|
|
110
|
+
.currencies[room.currencyConversion.convertedCode] || {
|
|
111
|
+
maxprice: Number.MIN_VALUE,
|
|
112
|
+
minprice: Number.MAX_VALUE
|
|
113
|
+
};
|
|
114
|
+
this.currencies[room.currencyConversion.convertedCode].minprice = Math.ceil(Math.min(this.currencies[room.currencyConversion.convertedCode]
|
|
115
|
+
.minprice, room.currencyConversion.convertedTotal));
|
|
116
|
+
this.currencies[room.currencyConversion.convertedCode].maxprice = Math.ceil(Math.max(this.currencies[room.currencyConversion.convertedCode]
|
|
117
|
+
.maxprice, room.currencyConversion.convertedTotal));
|
|
118
|
+
}
|
|
119
|
+
return details;
|
|
120
|
+
}, {});
|
|
121
|
+
const roomPrices = hotel.rooms.map(this.helpers.mapFieldFromObject('total'));
|
|
122
|
+
if (!roomPrices.length)
|
|
123
|
+
roomPrices.push(0);
|
|
124
|
+
hotel.minprice = Math.min(...roomPrices);
|
|
125
|
+
hotel.maxprice = Math.max(...roomPrices);
|
|
126
|
+
hotel.rooms = hotel.rooms;
|
|
127
|
+
if (hotel === null || hotel === void 0 ? void 0 : hotel.hotelId) {
|
|
128
|
+
this.data[hotel.hotelId] = hotel;
|
|
129
|
+
this.behaviours[hotel.hotelId].next(hotel);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
// this.sessionStorage.setSessionItem(SESSION_NAME, this.data);
|
|
133
|
+
this.sessionStorage.setSessionItem(SESSION_NAME, hotels);
|
|
134
|
+
if (this.toFetch.length > 0) {
|
|
135
|
+
setTimeout(() => {
|
|
136
|
+
this.fetchAvalilbility();
|
|
137
|
+
}, this.environment.hotelAvalibilityTimeout);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
this.fetching.next(false);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
maxPriceForCurrency(currency) {
|
|
145
|
+
return (this.currencies[currency] || {
|
|
146
|
+
maxprice: Number.MAX_VALUE,
|
|
147
|
+
minprice: Number.MIN_VALUE
|
|
148
|
+
}).maxprice;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* @description - return the number of hotels that have a price (prpn value)
|
|
152
|
+
*/
|
|
153
|
+
numberOfHotelsWithPrice() {
|
|
154
|
+
let count = 0;
|
|
155
|
+
if (this.data) {
|
|
156
|
+
for (const [key, value] of Object.entries(this.data)) {
|
|
157
|
+
if (value === null || value === void 0 ? void 0 : value.prpn) {
|
|
158
|
+
count++;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return count;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtYXZhbGxpYmlsaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2hvdGVsLWF2YWxsaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBcUJ0QyxNQUFNLFlBQVksR0FBRyw0QkFBNEIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sMkJBQTJCO0lBYXRDLFlBQ1Usa0JBQXVELEVBQ3ZELGNBQWtDLEVBQ2xDLE9BQTJCLEVBQzNCLFdBQTRCO1FBSDVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUM7UUFDdkQsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWQ5QixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLGVBQVUsR0FFZCxFQUFFLENBQUM7UUFFQyxZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUN2QyxhQUFRLEdBQTZCLElBQUksZUFBZSxDQUM3RCxLQUFLLENBQ04sQ0FBQztRQUNGLGVBQVUsR0FBb0IsRUFBRSxDQUFDO0lBTTlCLENBQUM7SUFFSSxlQUFlO1FBQ3JCLE1BQU0sSUFBSSxHQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFhLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWlDLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQzNCLElBQUksZUFBZSxD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QzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBZ0I7UUFDbEMsT0FBTyxDQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUztTQUMzQixDQUNGLENBQUMsUUFBUSxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxFQUFFO29CQUNmLEtBQUssRUFBRSxDQUFDO2lCQUNUO2FBQ0Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VFbnZpcm9ubWVudCB9IGZyb20gJy4uL2NsYXNzZXMvZW52aXJvbWVudCc7XHJcbmltcG9ydCB7IEJhc2VIZWxwZXJSb3V0aW5lcyB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVycyc7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXIsXHJcbiAgSG90ZWxBdmFsaW5pbGl0eUZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvaG90ZWwtYXZhbGlhYmlsaXR5LWZldGNoZXInO1xyXG5pbXBvcnQgeyBIb3RlbERldGFpbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lob3RlbC1lbnRlcnByaXNlLXNlYXJjaCc7XHJcbmltcG9ydCB7IFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzIH0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3VycmVuY3lEZXRhaWxzLFxyXG4gIEhvdGVsQXZhbGliaWxpdHlRdWVyeSxcclxuICBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQsXHJcbiAgSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXksXHJcbiAgSG90ZWxSb29tV2l0aExvY2FsUHJpY2VcclxufSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG50eXBlIFN0b3JlZERhdGEgPSB7IFtrZXk6IHN0cmluZ106IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCB9O1xyXG5cclxuY29uc3QgU0VTU0lPTl9OQU1FID0gJ3Jlc3VsdHNfaG90ZWxfYXZhbGxpYmlsaXR5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlSG90ZWxBdmFsaWJpbGl0eVNlcnZpY2U8XHJcbiAgUSBleHRlbmRzIEhvdGVsQXZhbGluaWxpdHlGZXRjaGVyVHlwZVxyXG4+IHtcclxuICBwcml2YXRlIGRhdGE6IFN0b3JlZERhdGEgPSBudWxsO1xyXG4gIHByaXZhdGUgYmVoYXZpb3Vyczoge1xyXG4gICAgW2tleTogc3RyaW5nXTogQmVoYXZpb3JTdWJqZWN0PEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdD47XHJcbiAgfSA9IHt9O1xyXG4gIHByaXZhdGUgdGltZW91dDogbnVtYmVyO1xyXG4gIHByaXZhdGUgdG9GZXRjaDogSG90ZWxBdmFsaWJpbGl0eVF1ZXJ5W10gPSBbXTtcclxuICBwdWJsaWMgZmV0Y2hpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oXHJcbiAgICBmYWxzZVxyXG4gICk7XHJcbiAgY3VycmVuY2llczogQ3VycmVuY3lEZXRhaWxzID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF2YWxpYmlsaXR5RmV0aGNlcjogQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXI8UT4sXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdG9yYWdlOiBCYXNlU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGhlbHBlcnM6IEJhc2VIZWxwZXJSb3V0aW5lcyxcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnQ6IEJhc2VFbnZpcm9ubWVudFxyXG4gICkge31cclxuXHJcbiAgcHJpdmF0ZSByZWFkRnJvbVNlc3Npb24oKSB7XHJcbiAgICBjb25zdCBkYXRhID1cclxuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRTZXNzaW9uSXRlbTxTdG9yZWREYXRhPihTRVNTSU9OX05BTUUpIHx8IHt9O1xyXG4gICAgT2JqZWN0LnZhbHVlcyhkYXRhKS5mb3JFYWNoKChpdGVtOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5iZWhhdmlvdXJzW2l0ZW0uaG90ZWxJZF0gPVxyXG4gICAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PihpdGVtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuZGF0YSA9IHt9O1xyXG4gICAgdGhpcy5jdXJyZW5jaWVzID0ge307XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZVNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSk7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuZGF0YSkuZm9yRWFjaCgoaXRlbTogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tpdGVtLmhvdGVsSWRdLmNvbXBsZXRlKCk7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLmJlaGF2aW91cnNbaXRlbS5ob3RlbElkXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5iZWhhdmlvdXJzID0ge307XHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgfHwgdGhpcy5yZWFkRnJvbVNlc3Npb24oKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddIHx8XHJcbiAgICAgIHRoaXMuX2dldEF2YWlsYWJpbGl0eUZvcklkKGhvdGVsKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsOiBIb3RlbERldGFpbHMpOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhIHx8IHRoaXMucmVhZEZyb21TZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaWQgYXMgc3RyaW5nXT8udmFsdWUgfHxcclxuICAgICAgKHt9IGFzIEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZmV0Y2hpbmcudmFsdWUpIHtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoXHJcbiAgICAgICAgdGhpcy5mZXRjaEF2YWxpbGJpbGl0eS5iaW5kKHRoaXMpLFxyXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0b0ZldGNoSG90ZWxUaW1lb3V0XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvRmV0Y2gucHVzaChob3RlbCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmZldGNoaW5nLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudG9GZXRjaC5sZW5ndGggPj0gdGhpcy5lbnZpcm9ubWVudC5udW1iZXJPZkhvdGVsc1RvRmV0Y2hcclxuICAgICkge1xyXG4gICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXSA9XHJcbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PihudWxsKTtcclxuICAgIHJldHVybiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmV0Y2hBdmFsaWxiaWxpdHkoKSB7XHJcbiAgICB0aGlzLmZldGNoaW5nLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvRmV0Y2ggPSB0aGlzLnRvRmV0Y2guc2xpY2UoXHJcbiAgICAgIDAsXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoXHJcbiAgICApO1xyXG4gICAgdGhpcy50b0ZldGNoID0gdGhpcy50b0ZldGNoLnNsaWNlKHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZygnSG90ZWxzIHN0aWxsIHRvIGZldGNoJywgdGhpcy50b0ZldGNoLmxlbmd0aCk7XHJcblxyXG4gICAgY29uc3QgcXVlcnk6IFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzID0ge1xyXG4gICAgICBob3RlbDogdG9GZXRjaC5tYXAoKGhvdGVsKSA9PiBob3RlbC5ob3RlbCkgYXMgc3RyaW5nW10sXHJcbiAgICAgIGN1cnJlbmN5OiB0b0ZldGNoWzBdLmN1cnJlbmN5LFxyXG4gICAgICBlbmREYXRlOiB0b0ZldGNoWzBdLmVuZERhdGUsXHJcbiAgICAgIHN0YXJ0RGF0ZTogdG9GZXRjaFswXS5zdGFydERhdGUsXHJcbiAgICAgIG9jY3VwYW50czogdG9GZXRjaFswXS5vY2N1cGFudHMsXHJcbiAgICAgIHJvb21zOiB0b0ZldGNoWzBdLnJvb21zXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYXZhbGliaWxpdHlGZXRoY2VyXHJcbiAgICAgIC5mZXRjaExpc3QocXVlcnkpXHJcbiAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGhvdGVsczogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXkpID0+IHtcclxuICAgICAgICBob3RlbHMuZm9yRWFjaCgoaG90ZWw6IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaG90ZWwgPSB0aGlzLmhlbHBlcnMuY2xvbmUoaG90ZWwpO1xyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSAoaG90ZWwucm9vbXMgfHwgW10pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHJvb206IEhvdGVsUm9vbVdpdGhMb2NhbFByaWNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb20udG90YWwgPiAwO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAubWFwKChyb29tOiBIb3RlbFJvb21XaXRoTG9jYWxQcmljZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJvb20gPSB0aGlzLmhlbHBlcnMuY2xvbmU8SG90ZWxSb29tV2l0aExvY2FsUHJpY2U+KHJvb20pO1xyXG4gICAgICAgICAgICAgIHJvb20uTG9jYWxQcmljZSA9IHJvb20uY3VycmVuY3lDb252ZXJzaW9uXHJcbiAgICAgICAgICAgICAgICA/IHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmxvY2FsVG90YWxcclxuICAgICAgICAgICAgICAgIDogcm9vbS50b3RhbDtcclxuICAgICAgICAgICAgICByb29tLkxvY2FsQ3VycmVuY3kgPSByb29tLmN1cnJlbmN5Q29udmVyc2lvblxyXG4gICAgICAgICAgICAgICAgPyByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5sb2NhbENvZGVcclxuICAgICAgICAgICAgICAgIDogcm9vbS5jdXJyZW5jeUNvZGU7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb207XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaG90ZWwuY3VycmVuY2llcyA9IGhvdGVsLnJvb21zLnJlZHVjZShcclxuICAgICAgICAgICAgKGRldGFpbHM6IEN1cnJlbmN5RGV0YWlscywgcm9vbTogSG90ZWxSb29tV2l0aExvY2FsUHJpY2UpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocm9vbS5jdXJyZW5jeUNvbnZlcnNpb24pIHtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0gPSBkZXRhaWxzW1xyXG4gICAgICAgICAgICAgICAgICByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXHJcbiAgICAgICAgICAgICAgICBdIHx8IHtcclxuICAgICAgICAgICAgICAgICAgbWF4cHJpY2U6IE51bWJlci5NSU5fVkFMVUUsXHJcbiAgICAgICAgICAgICAgICAgIG1pbnByaWNlOiBOdW1iZXIuTUFYX1ZBTFVFXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgZGV0YWlsc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXS5tYXhwcmljZSA9XHJcbiAgICAgICAgICAgICAgICAgIE1hdGgubWF4KFxyXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWlucHJpY2UgPVxyXG4gICAgICAgICAgICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdLm1pbnByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZFRvdGFsXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdID0gdGhpc1xyXG4gICAgICAgICAgICAgICAgICAuY3VycmVuY2llc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIG1heHByaWNlOiBOdW1iZXIuTUlOX1ZBTFVFLFxyXG4gICAgICAgICAgICAgICAgICBtaW5wcmljZTogTnVtYmVyLk1BWF9WQUxVRVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5taW5wcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWlucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5tYXhwcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRldGFpbHM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHt9IGFzIEN1cnJlbmN5RGV0YWlsc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnN0IHJvb21QcmljZXMgPSBob3RlbC5yb29tcy5tYXAoXHJcbiAgICAgICAgICAgIHRoaXMuaGVscGVycy5tYXBGaWVsZEZyb21PYmplY3Q8c3RyaW5nLCBudW1iZXI+KCd0b3RhbCcpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKCFyb29tUHJpY2VzLmxlbmd0aCkgcm9vbVByaWNlcy5wdXNoKDApO1xyXG4gICAgICAgICAgaG90ZWwubWlucHJpY2UgPSBNYXRoLm1pbiguLi5yb29tUHJpY2VzKTtcclxuICAgICAgICAgIGhvdGVsLm1heHByaWNlID0gTWF0aC5tYXgoLi4ucm9vbVByaWNlcyk7XHJcblxyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSBob3RlbC5yb29tcztcclxuICAgICAgICAgIGlmIChob3RlbD8uaG90ZWxJZCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFbaG90ZWwuaG90ZWxJZF0gPSBob3RlbDtcclxuICAgICAgICAgICAgdGhpcy5iZWhhdmlvdXJzW2hvdGVsLmhvdGVsSWRdLm5leHQoaG90ZWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyB0aGlzLnNlc3Npb25TdG9yYWdlLnNldFNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSwgdGhpcy5kYXRhKTtcclxuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnNldFNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSwgaG90ZWxzKTtcclxuICAgICAgICBpZiAodGhpcy50b0ZldGNoLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5KCk7XHJcbiAgICAgICAgICB9LCB0aGlzLmVudmlyb25tZW50LmhvdGVsQXZhbGliaWxpdHlUaW1lb3V0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5mZXRjaGluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbWF4UHJpY2VGb3JDdXJyZW5jeShjdXJyZW5jeTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmN1cnJlbmNpZXNbY3VycmVuY3ldIHx8IHtcclxuICAgICAgICBtYXhwcmljZTogTnVtYmVyLk1BWF9WQUxVRSxcclxuICAgICAgICBtaW5wcmljZTogTnVtYmVyLk1JTl9WQUxVRVxyXG4gICAgICB9XHJcbiAgICApLm1heHByaWNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIC0gcmV0dXJuIHRoZSBudW1iZXIgb2YgaG90ZWxzIHRoYXQgaGF2ZSBhIHByaWNlIChwcnBuIHZhbHVlKVxyXG4gICAqL1xyXG4gIG51bWJlck9mSG90ZWxzV2l0aFByaWNlKCk6IG51bWJlciB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmRhdGEpKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlPy5wcnBuKSB7XHJcbiAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class AbstractHttpCallService {
|
|
2
|
+
/*
|
|
3
|
+
* Using the keys of the given object as parameter names create a parameter string url encoding the values.
|
|
4
|
+
* The function expects the values to be strings.
|
|
5
|
+
* @param obj
|
|
6
|
+
*/
|
|
7
|
+
serialize(obj) {
|
|
8
|
+
return Object.keys(obj).reduce((toReturn, key) => {
|
|
9
|
+
return ((toReturn.length ? toReturn + '&' : '') +
|
|
10
|
+
key +
|
|
11
|
+
'=' +
|
|
12
|
+
encodeURIComponent(typeof obj[key] === 'object' ? JSON.stringify(obj[key]) : obj[key]));
|
|
13
|
+
}, '');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jYWxsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2h0dHAtY2FsbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBZ0IsdUJBQXVCO0lBaUMzQzs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLEdBQThCO1FBQzdDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFnQixFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQy9ELE9BQU8sQ0FDTCxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsR0FBRztnQkFDSCxHQUFHO2dCQUNILGtCQUFrQixDQUNoQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FDbkUsQ0FDRixDQUFDO1FBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVUkxTIH0gZnJvbSAnLi91cmwuc2VydmljZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RIdHRwQ2FsbFNlcnZpY2Uge1xyXG4gIGFic3RyYWN0IGZvcm1FbmNvZGVkUG9zdCh1cmw6IFVSTFMsIGJvZHk/OiBhbnksIHJlc3BvbnNlVHlwZT86ICdqc29uJyB8ICd0ZXh0Jyk6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgYWJzdHJhY3QgdGltZW91dEZvcm1FbmNvZGVkUG9zdChcclxuICAgIHVybDogVVJMUyxcclxuICAgIGJvZHk/OiBhbnksXHJcbiAgICByZVRpbWVvdXQ/OiBudW1iZXJcclxuICApOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIGFic3RyYWN0IGZvcm1FbmNvZGVkUG9zdE5vRXJyb3JIYW5kbGluZyhcclxuICAgIHVybDogVVJMUyxcclxuICAgIGJvZHk/OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIC8qXHJcblx0XHRAZGVzYyAtIGNhbGwgYSB1cmwgdGhyb3VnaCBwb3N0LCB3aXRoIGEgSnNvbiBPYmplY3QgYXMgZGF0YSAoYW5ndWxhciBkZWZhdWx0KVxyXG5cdCoqL1xyXG4gIGFic3RyYWN0IHBvc3QodXJsOiBVUkxTLCBkYXRhPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIC8qXHJcblx0XHRAZGVzYyAtIGNhbGwgYSBBbmd1bGFyIHN0YW5kYXJkIGdldCByZXF1ZXN0IChhcHBsaWNhdGlvbi9qc29uIGhlYWRlcnMpXHJcblx0KiovXHJcbiAgYWJzdHJhY3QgZ2V0KHVybDogVVJMUywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAvKlxyXG5cdFx0QGRlc2MgLSB0aGlzIHdpbGwgZGV0ZXJtaW5lIGlmIHRoZXJlIGlzIGEgbG9naW4gZXJyb3IgZm9yIHRoZSByZXF1ZXN0IG9yIG5vdCwgc2luY2UgdGhpcyBpcyBhIHBvdGVudGlhbCBlcnJvciBmb3IgZXZlcnkgY2FsbFxyXG5cdCoqL1xyXG4gIGFic3RyYWN0IGhhbmRsZVJlc3BvbnNlKGRhdGE6IGFueSk6IGFueTtcclxuICBhYnN0cmFjdCByZXNldExvZ291dCgpOiB2b2lkO1xyXG4gIC8qXHJcblx0XHRAZGVzYyAtIGhhbmRsZSBhbnkgZmF0YWwgZXJyb3JzIDQwNCdzIDUwMCdzIG90aGVyIGdlbmVyaWMgaHR0cCBlcnJvcnNcclxuXHQqKi9cclxuICBhYnN0cmFjdCBoYW5kbGVFcnJvcihlcnJvclZhbDogYW55LCBza2lwVGltZW91dE1lc3NhZ2U/OiBib29sZWFuKTogYW55O1xyXG5cclxuICAvKlxyXG4gICAqIFVzaW5nIHRoZSBrZXlzIG9mIHRoZSBnaXZlbiBvYmplY3QgYXMgcGFyYW1ldGVyIG5hbWVzIGNyZWF0ZSBhIHBhcmFtZXRlciBzdHJpbmcgdXJsIGVuY29kaW5nIHRoZSB2YWx1ZXMuXHJcbiAgICogVGhlIGZ1bmN0aW9uIGV4cGVjdHMgdGhlIHZhbHVlcyB0byBiZSBzdHJpbmdzLlxyXG4gICAqIEBwYXJhbSBvYmpcclxuICAgKi9cclxuICBwdWJsaWMgc2VyaWFsaXplKG9iajogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5yZWR1Y2UoKHRvUmV0dXJuOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgKHRvUmV0dXJuLmxlbmd0aCA/IHRvUmV0dXJuICsgJyYnIDogJycpICtcclxuICAgICAgICBrZXkgK1xyXG4gICAgICAgICc9JyArXHJcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KFxyXG4gICAgICAgICAgdHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KG9ialtrZXldKSA6IG9ialtrZXldXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSwgJycpO1xyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3QgZ2V0SGVhZGVycygpOiBhbnk7XHJcbiAgYWJzdHJhY3QgbWFrZVVybCh1cmw6IFVSTFMpOiBzdHJpbmc7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { USER_SIGNEDOUT } from './user.service';
|
|
2
|
+
import { map, take } from 'rxjs/operators';
|
|
3
|
+
import { URLS } from './url.service';
|
|
4
|
+
import { UserFavorurite } from '../classes/user-favourite.enum';
|
|
5
|
+
import { of } from 'rxjs';
|
|
6
|
+
import { ModalTypes } from '../classes/modal-types.enum';
|
|
7
|
+
export class BaseLogonService {
|
|
8
|
+
constructor(userService, modalService, http, router, eventMessenager, storageService, environment) {
|
|
9
|
+
this.userService = userService;
|
|
10
|
+
this.modalService = modalService;
|
|
11
|
+
this.http = http;
|
|
12
|
+
this.router = router;
|
|
13
|
+
this.eventMessenager = eventMessenager;
|
|
14
|
+
this.storageService = storageService;
|
|
15
|
+
this.environment = environment;
|
|
16
|
+
this.loading = false;
|
|
17
|
+
this.isLoggedIn = false;
|
|
18
|
+
this.redirectUrl = '';
|
|
19
|
+
this.refreshPromise = null;
|
|
20
|
+
}
|
|
21
|
+
checkLogin() {
|
|
22
|
+
return this.refreshToken();
|
|
23
|
+
}
|
|
24
|
+
refreshToken() {
|
|
25
|
+
this.refreshPromise =
|
|
26
|
+
this.refreshPromise ||
|
|
27
|
+
new Promise((resolve, reject) => {
|
|
28
|
+
this.clearRefresh();
|
|
29
|
+
this.http
|
|
30
|
+
.formEncodedPostNoErrorHandling(URLS.Refresh, {})
|
|
31
|
+
.pipe(take(1), map((data) => {
|
|
32
|
+
return this.handleResponse(data);
|
|
33
|
+
}))
|
|
34
|
+
.subscribe((data) => {
|
|
35
|
+
if (typeof data === 'string') {
|
|
36
|
+
resolve(false);
|
|
37
|
+
if (this.router.url !== 'login') {
|
|
38
|
+
const logoutDialog = this.modalService
|
|
39
|
+
.open(ModalTypes.BaseModalComponent, {}, {
|
|
40
|
+
title: 'Auto Logout',
|
|
41
|
+
body: '',
|
|
42
|
+
isLoading: false,
|
|
43
|
+
options: {
|
|
44
|
+
buttonCancel: false,
|
|
45
|
+
buttonOk: true,
|
|
46
|
+
buttonOkText: 'Continue'
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
.then(() => {
|
|
50
|
+
this.logout();
|
|
51
|
+
resolve(false);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
resolve(true);
|
|
57
|
+
this.setRefresh();
|
|
58
|
+
}
|
|
59
|
+
}, (error) => {
|
|
60
|
+
resolve(false);
|
|
61
|
+
});
|
|
62
|
+
})
|
|
63
|
+
.then((data) => {
|
|
64
|
+
this.refreshPromise = null;
|
|
65
|
+
return data;
|
|
66
|
+
})
|
|
67
|
+
.catch((error) => {
|
|
68
|
+
this.refreshPromise = null;
|
|
69
|
+
throw error;
|
|
70
|
+
});
|
|
71
|
+
return this.refreshPromise;
|
|
72
|
+
}
|
|
73
|
+
clearRefresh() {
|
|
74
|
+
if (this.timeoutSubscription) {
|
|
75
|
+
clearTimeout(this.timeoutSubscription);
|
|
76
|
+
this.timeoutSubscription = null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
setRefresh() {
|
|
80
|
+
this.timeoutSubscription = window.setTimeout(this.refreshToken.bind(this), this.environment.authRefreshTimeout * 1000);
|
|
81
|
+
}
|
|
82
|
+
login(username, password, again) {
|
|
83
|
+
this.userService.emptyUserData();
|
|
84
|
+
this.storageService.clearSessionData();
|
|
85
|
+
this.clearRefresh();
|
|
86
|
+
return this.http
|
|
87
|
+
.formEncodedPostNoErrorHandling(URLS.AccessToken, {
|
|
88
|
+
username,
|
|
89
|
+
password
|
|
90
|
+
})
|
|
91
|
+
.pipe(take(1), map((value, index) => {
|
|
92
|
+
this.setRefresh();
|
|
93
|
+
return this.handleResponse(value);
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
/*
|
|
97
|
+
@desc - this will determine if there is a login error for the request or not, since this is a potential error for every call
|
|
98
|
+
**/
|
|
99
|
+
handleResponse(data) {
|
|
100
|
+
if (typeof data === 'object' && data.jwt) {
|
|
101
|
+
this.userService.setUser(data.jwtObject);
|
|
102
|
+
delete data.jwt;
|
|
103
|
+
delete data.jwtObject;
|
|
104
|
+
}
|
|
105
|
+
return data;
|
|
106
|
+
}
|
|
107
|
+
cookieLogin(username) {
|
|
108
|
+
// const sso = sessionStorage.getItem('sso_query');
|
|
109
|
+
/*
|
|
110
|
+
this.userService.emptyUserData();
|
|
111
|
+
this.userService.setUserAgent(username);
|
|
112
|
+
sessionStorage.setItem('sso_query', sso);
|
|
113
|
+
this.authInfo = new AuthInfo(username, '', false);*/
|
|
114
|
+
// return this.http.get(URLS.NUMBER_ONCE_TOKEN_URL);
|
|
115
|
+
return of(null);
|
|
116
|
+
}
|
|
117
|
+
logout() {
|
|
118
|
+
const isSSO = this.userService.isUserFavoriteSet(UserFavorurite.SSO_no_password);
|
|
119
|
+
this.clearRefresh();
|
|
120
|
+
this.isLoggedIn = false;
|
|
121
|
+
this.userService.emptyUserData();
|
|
122
|
+
this.storageService.clearSessionData();
|
|
123
|
+
this.http.post(URLS.LOGOUT_URL).subscribe((data) => {
|
|
124
|
+
if (!data.LogoutSuccess) {
|
|
125
|
+
// tslint:disable-next-line: quotemark
|
|
126
|
+
console.warn("You're not logged in, cannot log out.");
|
|
127
|
+
}
|
|
128
|
+
}, () => {
|
|
129
|
+
this.eventMessenager.emit(USER_SIGNEDOUT, {});
|
|
130
|
+
if (this.userService.isUserFavoriteSet(UserFavorurite.SSO_no_password)) {
|
|
131
|
+
this.router.navigate(['logOutDigitsUser']);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this.router.navigate(['logon']);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
changePassword(authInfo) {
|
|
139
|
+
// return this.http
|
|
140
|
+
// .formEncodedPost(URLS.CHANGE_PASSWORD, authInfo.getChangePassTokenStr())
|
|
141
|
+
// .pipe(
|
|
142
|
+
// map((res: PasswordChangeResponse) => {
|
|
143
|
+
// if (res.success) {
|
|
144
|
+
// return res;
|
|
145
|
+
// } else {
|
|
146
|
+
// throw new LoginError(LoginErrorReason.PASSWORD_CHANGE, res);
|
|
147
|
+
// }
|
|
148
|
+
// })
|
|
149
|
+
// );
|
|
150
|
+
return of(null);
|
|
151
|
+
}
|
|
152
|
+
resetPassword(passwordResetToken, newPassword) {
|
|
153
|
+
return this.http.formEncodedPost(URLS.RESET_PASSWORD, {
|
|
154
|
+
passwordResetToken,
|
|
155
|
+
newPassword
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/*
|
|
159
|
+
@desc - actaually call the backend perl for recover pass
|
|
160
|
+
**/
|
|
161
|
+
recoverPassword(username) {
|
|
162
|
+
return this.http.formEncodedPost(URLS.RECOVER_PASSWORD_URL, {
|
|
163
|
+
username: `${username}`,
|
|
164
|
+
}, 'text');
|
|
165
|
+
}
|
|
166
|
+
/*
|
|
167
|
+
* @desc - error handling, opens a modal with the passed in error message
|
|
168
|
+
**/
|
|
169
|
+
handleError(error) {
|
|
170
|
+
// this.userService.becomingUser = false;
|
|
171
|
+
const modalValues = {
|
|
172
|
+
error
|
|
173
|
+
};
|
|
174
|
+
this.modalService.open(ModalTypes.ModalErrorComponent, {}, modalValues);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbG9nb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVd6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCLFlBQ1UsV0FBaUMsRUFDakMsWUFBb0MsRUFDcEMsSUFBNkIsRUFDN0IsTUFBYyxFQUNkLGVBQW9DLEVBQ3BDLGNBQWtDLEVBQ2xDLFdBQTRCO1FBTjVCLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBZnRDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUlqQixtQkFBYyxHQUFxQixJQUFJLENBQUM7SUFVckMsQ0FBQztJQUVKLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxjQUFjO1lBQ2pCLElBQUksQ0FBQyxjQUFjO2dCQUNuQixJQUFJLE9BQU8sQ0FDVCxDQUFDLE9BQWlDLEVBQUUsTUFBNEIsRUFBRSxFQUFFO29CQUNsRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxJQUFJO3lCQUNOLDhCQUE4QixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO3lCQUNoRCxJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO3dCQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbkMsQ0FBQyxDQUFDLENBQ0g7eUJBQ0EsU0FBUyxDQUNSLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ1AsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7NEJBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDZixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRTtnQ0FDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVk7cUNBQ25DLElBQUksQ0FDSCxVQUFVLENBQUMsa0JBQWtCLEVBQzdCLEVBQUUsRUFDRjtvQ0FDRSxLQUFLLEVBQUUsYUFBYTtvQ0FDcEIsSUFBSSxFQUFFLEVBQUU7b0NBQ1IsU0FBUyxFQUFFLEtBQUs7b0NBQ2hCLE9BQU8sRUFBRTt3Q0FDUCxZQUFZLEVBQUUsS0FBSzt3Q0FDbkIsUUFBUSxFQUFFLElBQUk7d0NBQ2QsWUFBWSxFQUFFLFVBQVU7cUNBQ3pCO2lDQUNGLENBQ0Y7cUNBQ0EsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQ0FDVCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0NBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dDQUNqQixDQUFDLENBQUMsQ0FBQzs2QkFDTjt5QkFDRjs2QkFBTTs0QkFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO3lCQUNuQjtvQkFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDUixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pCLENBQUMsQ0FDRixDQUFDO2dCQUNOLENBQUMsQ0FDRjtxQkFDRSxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7b0JBQzNCLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7b0JBQzNCLE1BQU0sS0FBSyxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO1FBRVAsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQ0gsUUFBZ0IsRUFDaEIsUUFBZ0IsRUFDaEIsS0FBZTtRQUVmLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsOEJBQThCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoRCxRQUFRO1lBQ1IsUUFBUTtTQUNULENBQUM7YUFDRCxJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O1NBRUU7SUFDRixjQUFjLENBQUMsSUFBUztRQUN0QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLG1EQUFtRDtRQUNuRDs7Ozs0REFJb0Q7UUFDcEQsb0RBQW9EO1FBQ3BELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FDOUMsY0FBYyxDQUFDLGVBQWUsQ0FDL0IsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUN2QyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3ZCLHNDQUFzQztnQkFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO2FBQ3ZEO1FBQ0gsQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUU5QyxJQUNFLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUNsRTtnQkFDQSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBa0I7UUFDL0IsbUJBQW1CO1FBQ25CLDZFQUE2RTtRQUM3RSxXQUFXO1FBQ1gsNkNBQTZDO1FBQzdDLDJCQUEyQjtRQUMzQixzQkFBc0I7UUFDdEIsaUJBQWlCO1FBQ2pCLHVFQUF1RTtRQUN2RSxVQUFVO1FBQ1YsU0FBUztRQUNULE9BQU87UUFDUCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsYUFBYSxDQUFDLGtCQUEwQixFQUFFLFdBQW1CO1FBQzNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQzlCLElBQUksQ0FBQyxjQUFjLEVBQ25CO1lBQ0Usa0JBQWtCO1lBQ2xCLFdBQVc7U0FDWixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O1NBRUU7SUFDRixlQUFlLENBQUMsUUFBZ0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FDOUIsSUFBSSxDQUFDLG9CQUFvQixFQUN6QjtZQUNFLFFBQVEsRUFBQyxHQUFHLFFBQVEsRUFBRTtTQUN2QixFQUNELE1BQU0sQ0FDUCxDQUFBO0lBQ0gsQ0FBQztJQUVEOztRQUVJO0lBQ0osV0FBVyxDQUFDLEtBQWE7UUFDdkIseUNBQXlDO1FBQ3pDLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEtBQUs7U0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVU0VSX1NJR05FRE9VVCB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlTW9kYWxPcGVuZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1vcGVuZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IFVSTFMgfSBmcm9tICcuL3VybC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlckZhdm9ydXJpdGUgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItZmF2b3VyaXRlLmVudW0nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCYXNlRXZlbnRNZXNzZW5hZ2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9ldmVudC1tZXNzZW5hZ2VyJztcclxuaW1wb3J0IHsgQmFzZUVudmlyb25tZW50IH0gZnJvbSAnLi4vY2xhc3Nlcy9lbnZpcm9tZW50JztcclxuaW1wb3J0IHsgTW9kYWxUeXBlcyB9IGZyb20gJy4uL2NsYXNzZXMvbW9kYWwtdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7IFVzZXJEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy91c2VyLmRhdGEnO1xyXG5pbXBvcnQge1xyXG4gIEF1dGhJbmZvLFxyXG4gIExvZ2luUmVzcG9uc2UsXHJcbiAgUGFzc3dvcmRDaGFuZ2VSZXNwb25zZVxyXG59IGZyb20gJy4uL21vZGVscy9sb2dpbi5tb2RlbCc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RIdHRwQ2FsbFNlcnZpY2UgfSBmcm9tICcuL2h0dHAtY2FsbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VMb2dvblNlcnZpY2Uge1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpc0xvZ2dlZEluID0gZmFsc2U7XHJcbiAgcmVkaXJlY3RVcmwgPSAnJztcclxuICBhdXRoSW5mbzogQXV0aEluZm87XHJcbiAgbG9naW5SZXNwb25zZTogTG9naW5SZXNwb25zZTtcclxuICB0aW1lb3V0U3Vic2NyaXB0aW9uOiBudW1iZXI7XHJcbiAgcmVmcmVzaFByb21pc2U6IFByb21pc2U8Ym9vbGVhbj4gPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJhc2VNb2RhbE9wZW5lclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHA6IEFic3RyYWN0SHR0cENhbGxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgZXZlbnRNZXNzZW5hZ2VyOiBCYXNlRXZlbnRNZXNzZW5hZ2VyLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogQmFzZVN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudDogQmFzZUVudmlyb25tZW50XHJcbiAgKSB7fVxyXG5cclxuICBjaGVja0xvZ2luKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLnJlZnJlc2hQcm9taXNlID1cclxuICAgICAgdGhpcy5yZWZyZXNoUHJvbWlzZSB8fFxyXG4gICAgICBuZXcgUHJvbWlzZShcclxuICAgICAgICAocmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkLCByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xyXG4gICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5mb3JtRW5jb2RlZFBvc3ROb0Vycm9ySGFuZGxpbmcoVVJMUy5SZWZyZXNoLCB7fSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlKGRhdGEpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyLnVybCAhPT0gJ2xvZ2luJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvZ291dERpYWxvZyA9IHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAub3BlbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgTW9kYWxUeXBlcy5CYXNlTW9kYWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdBdXRvIExvZ291dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25DYW5jZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uT2s6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25Pa1RleHQ6ICdDb250aW51ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dvdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hQcm9taXNlID0gbnVsbDtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hQcm9taXNlID0gbnVsbDtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnJlZnJlc2hQcm9taXNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhclJlZnJlc2goKSB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRTdWJzY3JpcHRpb24pO1xyXG4gICAgICB0aGlzLnRpbWVvdXRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRSZWZyZXNoKCkge1xyXG4gICAgdGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uID0gd2luZG93LnNldFRpbWVvdXQoXHJcbiAgICAgIHRoaXMucmVmcmVzaFRva2VuLmJpbmQodGhpcyksXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0aFJlZnJlc2hUaW1lb3V0ICogMTAwMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvZ2luKFxyXG4gICAgdXNlcm5hbWU6IHN0cmluZyxcclxuICAgIHBhc3N3b3JkOiBzdHJpbmcsXHJcbiAgICBhZ2Fpbj86IGJvb2xlYW5cclxuICApOiBPYnNlcnZhYmxlPFVzZXJEYXRhPiB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmVtcHR5VXNlckRhdGEoKTtcclxuXHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyU2Vzc2lvbkRhdGEoKTtcclxuICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5mb3JtRW5jb2RlZFBvc3ROb0Vycm9ySGFuZGxpbmcoVVJMUy5BY2Nlc3NUb2tlbiwge1xyXG4gICAgICAgIHVzZXJuYW1lLFxyXG4gICAgICAgIHBhc3N3b3JkXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgbWFwKCh2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFJlZnJlc2goKTtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlKHZhbHVlKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuXHRcdEBkZXNjIC0gdGhpcyB3aWxsIGRldGVybWluZSBpZiB0aGVyZSBpcyBhIGxvZ2luIGVycm9yIGZvciB0aGUgcmVxdWVzdCBvciBub3QsIHNpbmNlIHRoaXMgaXMgYSBwb3RlbnRpYWwgZXJyb3IgZm9yIGV2ZXJ5IGNhbGxcclxuXHQqKi9cclxuICBoYW5kbGVSZXNwb25zZShkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhLmp3dCkge1xyXG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldFVzZXIoZGF0YS5qd3RPYmplY3QpO1xyXG4gICAgICBkZWxldGUgZGF0YS5qd3Q7XHJcbiAgICAgIGRlbGV0ZSBkYXRhLmp3dE9iamVjdDtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgY29va2llTG9naW4odXNlcm5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckRhdGE+IHtcclxuICAgIC8vIGNvbnN0IHNzbyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3Nzb19xdWVyeScpO1xyXG4gICAgLypcclxuICAgIHRoaXMudXNlclNlcnZpY2UuZW1wdHlVc2VyRGF0YSgpO1xyXG4gICAgdGhpcy51c2VyU2VydmljZS5zZXRVc2VyQWdlbnQodXNlcm5hbWUpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3NvX3F1ZXJ5Jywgc3NvKTtcclxuICAgIHRoaXMuYXV0aEluZm8gPSBuZXcgQXV0aEluZm8odXNlcm5hbWUsICcnLCBmYWxzZSk7Ki9cclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAuZ2V0KFVSTFMuTlVNQkVSX09OQ0VfVE9LRU5fVVJMKTtcclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIGNvbnN0IGlzU1NPID0gdGhpcy51c2VyU2VydmljZS5pc1VzZXJGYXZvcml0ZVNldChcclxuICAgICAgVXNlckZhdm9ydXJpdGUuU1NPX25vX3Bhc3N3b3JkXHJcbiAgICApO1xyXG4gICAgdGhpcy5jbGVhclJlZnJlc2goKTtcclxuICAgIHRoaXMuaXNMb2dnZWRJbiA9IGZhbHNlO1xyXG4gICAgdGhpcy51c2VyU2VydmljZS5lbXB0eVVzZXJEYXRhKCk7XHJcblxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclNlc3Npb25EYXRhKCk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChVUkxTLkxPR09VVF9VUkwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICBpZiAoIWRhdGEuTG9nb3V0U3VjY2Vzcykge1xyXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBxdW90ZW1hcmtcclxuICAgICAgICAgIGNvbnNvbGUud2FybihcIllvdSdyZSBub3QgbG9nZ2VkIGluLCBjYW5ub3QgbG9nIG91dC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ldmVudE1lc3NlbmFnZXIuZW1pdChVU0VSX1NJR05FRE9VVCwge30pO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzVXNlckZhdm9yaXRlU2V0KFVzZXJGYXZvcnVyaXRlLlNTT19ub19wYXNzd29yZClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9nT3V0RGlnaXRzVXNlciddKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydsb2dvbiddKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYXNzd29yZChhdXRoSW5mbzogQXV0aEluZm8pOiBPYnNlcnZhYmxlPFBhc3N3b3JkQ2hhbmdlUmVzcG9uc2U+IHtcclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC8vICAgLmZvcm1FbmNvZGVkUG9zdChVUkxTLkNIQU5HRV9QQVNTV09SRCwgYXV0aEluZm8uZ2V0Q2hhbmdlUGFzc1Rva2VuU3RyKCkpXHJcbiAgICAvLyAgIC5waXBlKFxyXG4gICAgLy8gICAgIG1hcCgocmVzOiBQYXNzd29yZENoYW5nZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAvLyAgICAgICBpZiAocmVzLnN1Y2Nlc3MpIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRocm93IG5ldyBMb2dpbkVycm9yKExvZ2luRXJyb3JSZWFzb24uUEFTU1dPUkRfQ0hBTkdFLCByZXMpO1xyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgIH0pXHJcbiAgICAvLyAgICk7XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfVxyXG5cclxuICByZXNldFBhc3N3b3JkKHBhc3N3b3JkUmVzZXRUb2tlbjogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQYXNzd29yZENoYW5nZVJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmZvcm1FbmNvZGVkUG9zdChcclxuICAgICAgVVJMUy5SRVNFVF9QQVNTV09SRCxcclxuICAgICAge1xyXG4gICAgICAgIHBhc3N3b3JkUmVzZXRUb2tlbixcclxuICAgICAgICBuZXdQYXNzd29yZFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuXHRcdEBkZXNjIC0gYWN0YXVhbGx5IGNhbGwgdGhlIGJhY2tlbmQgcGVybCBmb3IgcmVjb3ZlciBwYXNzXHJcblx0KiovXHJcbiAgcmVjb3ZlclBhc3N3b3JkKHVzZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5mb3JtRW5jb2RlZFBvc3QoXHJcbiAgICAgIFVSTFMuUkVDT1ZFUl9QQVNTV09SRF9VUkwsXHJcbiAgICAgIHtcclxuICAgICAgICB1c2VybmFtZTpgJHt1c2VybmFtZX1gLFxyXG4gICAgICB9LFxyXG4gICAgICAndGV4dCdcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICpcdEBkZXNjIC0gZXJyb3IgaGFuZGxpbmcsIG9wZW5zIGEgbW9kYWwgd2l0aCB0aGUgcGFzc2VkIGluIGVycm9yIG1lc3NhZ2VcclxuICAgKiovXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IHN0cmluZykge1xyXG4gICAgLy8gdGhpcy51c2VyU2VydmljZS5iZWNvbWluZ1VzZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IG1vZGFsVmFsdWVzID0ge1xyXG4gICAgICBlcnJvclxyXG4gICAgfTtcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oTW9kYWxUeXBlcy5Nb2RhbEVycm9yQ29tcG9uZW50LCB7fSwgbW9kYWxWYWx1ZXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
export class BaseModalOpenerService {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.openModalEvent = new Subject();
|
|
5
|
+
}
|
|
6
|
+
open(type, options = null, data = null) {
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
this.openModalEvent.next({
|
|
9
|
+
type,
|
|
10
|
+
data: data || {},
|
|
11
|
+
options: options || {},
|
|
12
|
+
results: resolve
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
subscribe(next) {
|
|
17
|
+
return this.openModalEvent.subscribe(next);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3BlbmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL21vZGFsLW9wZW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFVL0IsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQztRQUZRLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztJQUVwQyxDQUFDO0lBRWhCLElBQUksQ0FBQyxJQUFnQixFQUFFLFVBQWUsSUFBSSxFQUFFLE9BQVksSUFBSTtRQUMxRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJO2dCQUNKLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDaEIsT0FBTyxFQUFFLE9BQU8sSUFBSSxFQUFFO2dCQUN0QixPQUFPLEVBQUUsT0FBTzthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBeUI7UUFDakMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1vZGFsVHlwZXMgfSBmcm9tICcuLi9jbGFzc2VzL21vZGFsLXR5cGVzLmVudW0nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb2RhbEV2ZW50IHtcclxuICB0eXBlOiBNb2RhbFR5cGVzO1xyXG4gIGRhdGE6IGFueTtcclxuICBvcHRpb25zOiBvYmplY3Q7XHJcbiAgcmVzdWx0czogKGRhdGE6IGFueSkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VNb2RhbE9wZW5lclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgb3Blbk1vZGFsRXZlbnQgPSBuZXcgU3ViamVjdDxNb2RhbEV2ZW50PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG9wZW4odHlwZTogTW9kYWxUeXBlcywgb3B0aW9uczogYW55ID0gbnVsbCwgZGF0YTogYW55ID0gbnVsbCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5Nb2RhbEV2ZW50Lm5leHQoe1xyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgICAgZGF0YTogZGF0YSB8fCB7fSxcclxuICAgICAgICBvcHRpb25zOiBvcHRpb25zIHx8IHt9LFxyXG4gICAgICAgIHJlc3VsdHM6IHJlc29sdmVcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN1YnNjcmliZShuZXh0OiAoZGF0YTogYW55KSA9PiB2b2lkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcGVuTW9kYWxFdmVudC5zdWJzY3JpYmUobmV4dCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { BehaviorSubject, of } from 'rxjs';
|
|
2
|
+
import { map, take } from 'rxjs/operators';
|
|
3
|
+
import { BasketStatus, ServiceType } from '../types/graphql.types';
|
|
4
|
+
export class BaseEnterpriseMyBookingsService {
|
|
5
|
+
constructor(getUserBasketsFetcher, searchUserCanBookFor) {
|
|
6
|
+
this.getUserBasketsFetcher = getUserBasketsFetcher;
|
|
7
|
+
this.searchUserCanBookFor = searchUserCanBookFor;
|
|
8
|
+
this.baskets = new BehaviorSubject([]);
|
|
9
|
+
this._basketStatusIconClasses = {
|
|
10
|
+
[BasketStatus.Approved]: 'ico-tick',
|
|
11
|
+
[BasketStatus.AwaitingApproval]: 'ico-clock',
|
|
12
|
+
[BasketStatus.BookingFailed]: 'ico-deny',
|
|
13
|
+
[BasketStatus.Disapproved]: 'ico-deny',
|
|
14
|
+
[BasketStatus.Open]: 'ico-calendar',
|
|
15
|
+
[BasketStatus.PartiallyBooked]: 'ico-deny',
|
|
16
|
+
[BasketStatus.Booked]: 'ico-deny'
|
|
17
|
+
};
|
|
18
|
+
this._serviceTypeIconClasses = {
|
|
19
|
+
[ServiceType.Cab]: 'ico-m-taxi',
|
|
20
|
+
[ServiceType.Car]: 'ico-car',
|
|
21
|
+
[ServiceType.Coach]: 'ico-bus',
|
|
22
|
+
[ServiceType.Flight]: 'ico-flight',
|
|
23
|
+
[ServiceType.Hotel]: 'ico-bed',
|
|
24
|
+
[ServiceType.FastTrack]: '',
|
|
25
|
+
[ServiceType.InternationalRail]: 'ico-rail',
|
|
26
|
+
[ServiceType.Lounge]: 'ico-material ico-lounge',
|
|
27
|
+
[ServiceType.Parking]: 'ico-material ico-parking',
|
|
28
|
+
[ServiceType.Rail]: 'ico-rail',
|
|
29
|
+
[ServiceType.Eurostar]: 'ico-rail'
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
getUserBaskets(query, isLoading) {
|
|
33
|
+
isLoading.next(true);
|
|
34
|
+
this.getUserBasketsFetcher
|
|
35
|
+
.fetchList(query)
|
|
36
|
+
.pipe(take(1))
|
|
37
|
+
.subscribe((baskets) => {
|
|
38
|
+
this.baskets.next(baskets);
|
|
39
|
+
isLoading.next(false);
|
|
40
|
+
}, (error) => {
|
|
41
|
+
console.error(error);
|
|
42
|
+
isLoading.next(false);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
getSearchUserCanBookFor(search, isLoading) {
|
|
46
|
+
if (search.length > 2) {
|
|
47
|
+
isLoading.next(true);
|
|
48
|
+
return this.searchUserCanBookFor
|
|
49
|
+
.fetchList({
|
|
50
|
+
email: search
|
|
51
|
+
})
|
|
52
|
+
.pipe(take(1), map((results) => {
|
|
53
|
+
isLoading.next(false);
|
|
54
|
+
return results;
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
return of([]);
|
|
58
|
+
}
|
|
59
|
+
getServiceTypeFilters(searchService) {
|
|
60
|
+
const serviceTypeFilters = [];
|
|
61
|
+
for (const [key] of Object.entries(searchService.search_objects)) {
|
|
62
|
+
serviceTypeFilters.push(key);
|
|
63
|
+
}
|
|
64
|
+
return serviceTypeFilters;
|
|
65
|
+
}
|
|
66
|
+
getBasketStatusFilters() {
|
|
67
|
+
const basketStatusFilters = [];
|
|
68
|
+
Object.values(BasketStatus).forEach((basketStatus) => basketStatusFilters.push(basketStatus));
|
|
69
|
+
return basketStatusFilters;
|
|
70
|
+
}
|
|
71
|
+
getServiceTypeFilterVanityName(serviceType) {
|
|
72
|
+
switch (serviceType) {
|
|
73
|
+
case ServiceType.Cab:
|
|
74
|
+
return 'Taxi';
|
|
75
|
+
case ServiceType.InternationalRail:
|
|
76
|
+
return 'European Rail';
|
|
77
|
+
default:
|
|
78
|
+
return serviceType;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
getBasketStatusIconClass(status) {
|
|
82
|
+
return this._basketStatusIconClasses[status] || 'ico-exclamation';
|
|
83
|
+
}
|
|
84
|
+
getServiceTypeIconClass(basketItem) {
|
|
85
|
+
return (this._serviceTypeIconClasses[basketItem.service.type] || 'ico-exclamation');
|
|
86
|
+
}
|
|
87
|
+
getTotalPriceForBasketItems(basketItems) {
|
|
88
|
+
return basketItems.reduce((total, basketItem) => {
|
|
89
|
+
return total + basketItem.price;
|
|
90
|
+
}, 0);
|
|
91
|
+
}
|
|
92
|
+
getTravellerNamesFromBasketItems(basketItems) {
|
|
93
|
+
let travellerNames = [];
|
|
94
|
+
basketItems.map((basketItem) => basketItem.users.map((user) => travellerNames.push(`${user.forename} ${user.surname}`)));
|
|
95
|
+
travellerNames = [...new Set(travellerNames)]; // remove any duplicate traveller names
|
|
96
|
+
return travellerNames;
|
|
97
|
+
}
|
|
98
|
+
allBasketItemsMatchStatus(basketItems, basketItemStatus) {
|
|
99
|
+
return basketItems.every((basketItem) => basketItem.status === basketItemStatus);
|
|
100
|
+
}
|
|
101
|
+
getHotelAddress(hotelAddress) {
|
|
102
|
+
const { county, postcode, streetName, town } = hotelAddress;
|
|
103
|
+
const hotelAddressArr = [];
|
|
104
|
+
if (streetName)
|
|
105
|
+
hotelAddressArr.push(streetName);
|
|
106
|
+
if (town)
|
|
107
|
+
hotelAddressArr.push(town);
|
|
108
|
+
if (county)
|
|
109
|
+
hotelAddressArr.push(county);
|
|
110
|
+
if (postcode)
|
|
111
|
+
hotelAddressArr.push(postcode);
|
|
112
|
+
return hotelAddressArr.join(', ');
|
|
113
|
+
}
|
|
114
|
+
getHotelLocation(hotelAddress) {
|
|
115
|
+
const { county, town } = hotelAddress;
|
|
116
|
+
const hotelAddressArr = [];
|
|
117
|
+
if (town)
|
|
118
|
+
hotelAddressArr.push(town);
|
|
119
|
+
if (county)
|
|
120
|
+
hotelAddressArr.push(county);
|
|
121
|
+
return hotelAddressArr.join(', ');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktYm9va2luZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbXktYm9va2luZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVzNDLE9BQU8sRUFHTCxZQUFZLEVBRVosV0FBVyxFQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFHaEMsTUFBTSxPQUFPLCtCQUErQjtJQWlDMUMsWUFDVSxxQkFBdUQsRUFDdkQsb0JBQStEO1FBRC9ELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBa0M7UUFDdkQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQztRQTlCbEUsWUFBTyxHQUF3QyxJQUFJLGVBQWUsQ0FFdkUsRUFBRSxDQUFDLENBQUM7UUFFRSw2QkFBd0IsR0FBaUM7WUFDL0QsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVTtZQUNuQyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFdBQVc7WUFDNUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsVUFBVTtZQUN4QyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxVQUFVO1lBQ3RDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWM7WUFDbkMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQUUsVUFBVTtZQUMxQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVO1NBQ2xDLENBQUM7UUFFTSw0QkFBdUIsR0FBZ0M7WUFDN0QsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWTtZQUMvQixD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RSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLFlBQXVDO1FBQ3JELE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDNUQsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksVUFBVTtZQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJO1lBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU07WUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUTtZQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUF1QztRQUN0RCxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQztRQUN0QyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJO1lBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU07WUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZU15Qm9va2luZ3NTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JbXlib29raW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBCYXNlU2VhcmNoVXNlcnNDYW5Cb29rRm9yRmV0Y2hlcixcclxuICBTZWFyY2hVc2VyQ2FuQm9va0ZvckZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvc2VhcmNoLXVzZXJzLWNhbi1ib29rLWZvci1mZXRjaGVyJztcclxuaW1wb3J0IHtcclxuICBCYXNlR2V0VXNlckJhc2tldHNGZXRjaGVyLFxyXG4gIEdldFVzZXJCYXNrZXRzRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy9nZXQtdXNlcnMtYmFza2V0cy1mZXRjaGVyJztcclxuaW1wb3J0IHsgVXNlckJhc2tldFJlc3VsdCB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuaW1wb3J0IHtcclxuICBCYXNrZXRJdGVtLFxyXG4gIEJhc2tldEl0ZW1TdGF0dXMsXHJcbiAgQmFza2V0U3RhdHVzLFxyXG4gIFF1ZXJ5R2V0VXNlckJhc2tldHNBcmdzLFxyXG4gIFNlcnZpY2VUeXBlLFxyXG4gIFVzZXJcclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lzZWFyY2guc2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZUVudGVycHJpc2VNeUJvb2tpbmdzU2VydmljZTxcclxuICBHVUJfUSBleHRlbmRzIEdldFVzZXJCYXNrZXRzRmV0Y2hlclR5cGUsXHJcbiAgU1VDQkZfUSBleHRlbmRzIFNlYXJjaFVzZXJDYW5Cb29rRm9yRmV0Y2hlclR5cGVcclxuPiBpbXBsZW1lbnRzIEVudGVycHJpc2VNeUJvb2tpbmdzU2VydmljZUludGVyZmFjZVxyXG57XHJcbiAgcHVibGljIGJhc2tldHM6IEJlaGF2aW9yU3ViamVjdDxVc2VyQmFza2V0UmVzdWx0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIFVzZXJCYXNrZXRSZXN1bHRbXVxyXG4gID4oW10pO1xyXG5cclxuICBwcml2YXRlIF9iYXNrZXRTdGF0dXNJY29uQ2xhc3NlczogUmVjb3JkPEJhc2tldFN0YXR1cywgc3RyaW5nPiA9IHtcclxuICAgIFtCYXNrZXRTdGF0dXMuQXBwcm92ZWRdOiAnaWNvLXRpY2snLFxyXG4gICAgW0Jhc2tldFN0YXR1cy5Bd2FpdGluZ0FwcHJvdmFsXTogJ2ljby1jbG9jaycsXHJcbiAgICBbQmFza2V0U3RhdHVzLkJvb2tpbmdGYWlsZWRdOiAnaWNvLWRlbnknLFxyXG4gICAgW0Jhc2tldFN0YXR1cy5EaXNhcHByb3ZlZF06ICdpY28tZGVueScsXHJcbiAgICBbQmFza2V0U3RhdHVzLk9wZW5dOiAnaWNvLWNhbGVuZGFyJyxcclxuICAgIFtCYXNrZXRTdGF0dXMuUGFydGlhbGx5Qm9va2VkXTogJ2ljby1kZW55JyxcclxuICAgIFtCYXNrZXRTdGF0dXMuQm9va2VkXTogJ2ljby1kZW55J1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX3NlcnZpY2VUeXBlSWNvbkNsYXNzZXM6IFJlY29yZDxTZXJ2aWNlVHlwZSwgc3RyaW5nPiA9IHtcclxuICAgIFtTZXJ2aWNlVHlwZS5DYWJdOiAnaWNvLW0tdGF4aScsXHJcbiAgICBbU2VydmljZVR5cGUuQ2FyXTogJ2ljby1jYXInLFxyXG4gICAgW1NlcnZpY2VUeXBlLkNvYWNoXTogJ2ljby1idXMnLFxyXG4gICAgW1NlcnZpY2VUeXBlLkZsaWdodF06ICdpY28tZmxpZ2h0JyxcclxuICAgIFtTZXJ2aWNlVHlwZS5Ib3RlbF06ICdpY28tYmVkJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5GYXN0VHJhY2tdOiAnJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5JbnRlcm5hdGlvbmFsUmFpbF06ICdpY28tcmFpbCcsXHJcbiAgICBbU2VydmljZVR5cGUuTG91bmdlXTogJ2ljby1tYXRlcmlhbCBpY28tbG91bmdlJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5QYXJraW5nXTogJ2ljby1tYXRlcmlhbCBpY28tcGFya2luZycsXHJcbiAgICBbU2VydmljZVR5cGUuUmFpbF06ICdpY28tcmFpbCcsXHJcbiAgICBbU2VydmljZVR5cGUuRXVyb3N0YXJdOiAnaWNvLXJhaWwnXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdldFVzZXJCYXNrZXRzRmV0Y2hlcjogQmFzZUdldFVzZXJCYXNrZXRzRmV0Y2hlcjxHVUJfUT4sXHJcbiAgICBwcml2YXRlIHNlYXJjaFVzZXJDYW5Cb29rRm9yOiBCYXNlU2VhcmNoVXNlcnNDYW5Cb29rRm9yRmV0Y2hlcjxTVUNCRl9RPlxyXG4gICkge31cclxuXHJcbiAgZ2V0VXNlckJhc2tldHMoXHJcbiAgICBxdWVyeTogUXVlcnlHZXRVc2VyQmFza2V0c0FyZ3MsXHJcbiAgICBpc0xvYWRpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxyXG4gICk6IHZvaWQge1xyXG4gICAgaXNMb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmdldFVzZXJCYXNrZXRzRmV0Y2hlclxyXG4gICAgICAuZmV0Y2hMaXN0KHF1ZXJ5KVxyXG4gICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChiYXNrZXRzOiBVc2VyQmFza2V0UmVzdWx0W10pID0+IHtcclxuICAgICAgICAgIHRoaXMuYmFza2V0cy5uZXh0KGJhc2tldHMpO1xyXG4gICAgICAgICAgaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFVzZXJDYW5Cb29rRm9yKFxyXG4gICAgc2VhcmNoOiBzdHJpbmcsXHJcbiAgICBpc0xvYWRpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxyXG4gICk6IE9ic2VydmFibGU8VXNlcltdPiB7XHJcbiAgICBpZiAoc2VhcmNoLmxlbmd0aCA+IDIpIHtcclxuICAgICAgaXNMb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJDYW5Cb29rRm9yXHJcbiAgICAgICAgLmZldGNoTGlzdCh7XHJcbiAgICAgICAgICBlbWFpbDogc2VhcmNoXHJcbiAgICAgICAgfSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICBtYXAoKHJlc3VsdHM6IFVzZXJbXSkgPT4ge1xyXG4gICAgICAgICAgICBpc0xvYWRpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9mKFtdKTtcclxuICB9XHJcblxyXG4gIGdldFNlcnZpY2VUeXBlRmlsdGVycyhcclxuICAgIHNlYXJjaFNlcnZpY2U6IEVudGVycHJpc2VTZWFyY2hTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc2VydmljZVR5cGVGaWx0ZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBba2V5XSBvZiBPYmplY3QuZW50cmllcyhzZWFyY2hTZXJ2aWNlLnNlYXJjaF9vYmplY3RzKSkge1xyXG4gICAgICBzZXJ2aWNlVHlwZUZpbHRlcnMucHVzaChrZXkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlcnZpY2VUeXBlRmlsdGVycztcclxuICB9XHJcblxyXG4gIGdldEJhc2tldFN0YXR1c0ZpbHRlcnMoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgYmFza2V0U3RhdHVzRmlsdGVyczogc3RyaW5nW10gPSBbXTtcclxuICAgIE9iamVjdC52YWx1ZXMoQmFza2V0U3RhdHVzKS5mb3JFYWNoKChiYXNrZXRTdGF0dXMpID0+XHJcbiAgICAgIGJhc2tldFN0YXR1c0ZpbHRlcnMucHVzaChiYXNrZXRTdGF0dXMpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGJhc2tldFN0YXR1c0ZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBnZXRTZXJ2aWNlVHlwZUZpbHRlclZhbml0eU5hbWUoc2VydmljZVR5cGU6IFNlcnZpY2VUeXBlKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoc2VydmljZVR5cGUpIHtcclxuICAgICAgY2FzZSBTZXJ2aWNlVHlwZS5DYWI6XHJcbiAgICAgICAgcmV0dXJuICdUYXhpJztcclxuICAgICAgY2FzZSBTZXJ2aWNlVHlwZS5JbnRlcm5hdGlvbmFsUmFpbDpcclxuICAgICAgICByZXR1cm4gJ0V1cm9wZWFuIFJhaWwnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBzZXJ2aWNlVHlwZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEJhc2tldFN0YXR1c0ljb25DbGFzcyhzdGF0dXM6IEJhc2tldFN0YXR1cyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYmFza2V0U3RhdHVzSWNvbkNsYXNzZXNbc3RhdHVzXSB8fCAnaWNvLWV4Y2xhbWF0aW9uJztcclxuICB9XHJcblxyXG4gIGdldFNlcnZpY2VUeXBlSWNvbkNsYXNzKGJhc2tldEl0ZW06IEJhc2tldEl0ZW0pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5fc2VydmljZVR5cGVJY29uQ2xhc3Nlc1tiYXNrZXRJdGVtLnNlcnZpY2UudHlwZV0gfHwgJ2ljby1leGNsYW1hdGlvbidcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUb3RhbFByaWNlRm9yQmFza2V0SXRlbXMoYmFza2V0SXRlbXM6IEJhc2tldEl0ZW1bXSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gYmFza2V0SXRlbXMucmVkdWNlKCh0b3RhbCwgYmFza2V0SXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gdG90YWwgKyBiYXNrZXRJdGVtLnByaWNlO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBnZXRUcmF2ZWxsZXJOYW1lc0Zyb21CYXNrZXRJdGVtcyhiYXNrZXRJdGVtczogQmFza2V0SXRlbVtdKTogc3RyaW5nW10ge1xyXG4gICAgbGV0IHRyYXZlbGxlck5hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgYmFza2V0SXRlbXMubWFwKChiYXNrZXRJdGVtKSA9PlxyXG4gICAgICBiYXNrZXRJdGVtLnVzZXJzLm1hcCgodXNlcikgPT5cclxuICAgICAgICB0cmF2ZWxsZXJOYW1lcy5wdXNoKGAke3VzZXIuZm9yZW5hbWV9ICR7dXNlci5zdXJuYW1lfWApXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICB0cmF2ZWxsZXJOYW1lcyA9IFsuLi5uZXcgU2V0KHRyYXZlbGxlck5hbWVzKV07IC8vIHJlbW92ZSBhbnkgZHVwbGljYXRlIHRyYXZlbGxlciBuYW1lc1xyXG4gICAgcmV0dXJuIHRyYXZlbGxlck5hbWVzO1xyXG4gIH1cclxuXHJcbiAgYWxsQmFza2V0SXRlbXNNYXRjaFN0YXR1cyhcclxuICAgIGJhc2tldEl0ZW1zOiBCYXNrZXRJdGVtW10sXHJcbiAgICBiYXNrZXRJdGVtU3RhdHVzOiBCYXNrZXRJdGVtU3RhdHVzXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYmFza2V0SXRlbXMuZXZlcnkoXHJcbiAgICAgIChiYXNrZXRJdGVtKSA9PiBiYXNrZXRJdGVtLnN0YXR1cyA9PT0gYmFza2V0SXRlbVN0YXR1c1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEhvdGVsQWRkcmVzcyhob3RlbEFkZHJlc3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBjb3VudHksIHBvc3Rjb2RlLCBzdHJlZXROYW1lLCB0b3duIH0gPSBob3RlbEFkZHJlc3M7XHJcbiAgICBjb25zdCBob3RlbEFkZHJlc3NBcnIgPSBbXTtcclxuICAgIGlmIChzdHJlZXROYW1lKSBob3RlbEFkZHJlc3NBcnIucHVzaChzdHJlZXROYW1lKTtcclxuICAgIGlmICh0b3duKSBob3RlbEFkZHJlc3NBcnIucHVzaCh0b3duKTtcclxuICAgIGlmIChjb3VudHkpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKGNvdW50eSk7XHJcbiAgICBpZiAocG9zdGNvZGUpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKHBvc3Rjb2RlKTtcclxuICAgIHJldHVybiBob3RlbEFkZHJlc3NBcnIuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIGdldEhvdGVsTG9jYXRpb24oaG90ZWxBZGRyZXNzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgY291bnR5LCB0b3duIH0gPSBob3RlbEFkZHJlc3M7XHJcbiAgICBjb25zdCBob3RlbEFkZHJlc3NBcnIgPSBbXTtcclxuICAgIGlmICh0b3duKSBob3RlbEFkZHJlc3NBcnIucHVzaCh0b3duKTtcclxuICAgIGlmIChjb3VudHkpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKGNvdW50eSk7XHJcbiAgICByZXR1cm4gaG90ZWxBZGRyZXNzQXJyLmpvaW4oJywgJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|