@sabstravtech/obtservices 0.0.0 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +1 -1
- 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/{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,696 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
import { BaseEnterpriseSearch } from './base-enterprise';
|
|
4
|
+
import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
|
|
5
|
+
import { LocationTypes } from '../types/types';
|
|
6
|
+
import { CabHireVehicleType, ServiceType } from '../types/graphql.types';
|
|
7
|
+
import { AirportSearchMode, TaxiFormMode } from '../interfaces/Icabhire-enterprise-search';
|
|
8
|
+
import { map, take } from 'rxjs/operators';
|
|
9
|
+
export class CabHireEnterpriseSearch extends BaseEnterpriseSearch {
|
|
10
|
+
constructor(cabfetcher, helpers, storageService, searchService, basketService) {
|
|
11
|
+
super(storageService);
|
|
12
|
+
this.cabfetcher = cabfetcher;
|
|
13
|
+
this.helpers = helpers;
|
|
14
|
+
this.searchService = searchService;
|
|
15
|
+
this.basketService = basketService;
|
|
16
|
+
this.type = ServiceType.Cab;
|
|
17
|
+
this.airportChange = new Subject();
|
|
18
|
+
this.transTypes = [
|
|
19
|
+
{ key: CabHireVehicleType.Any, value: 'Any (1-8 Passengers)', id: 8 },
|
|
20
|
+
{
|
|
21
|
+
key: CabHireVehicleType.StandardCar,
|
|
22
|
+
value: 'Saloon Car (1-4 Passengers)',
|
|
23
|
+
id: 4
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
key: CabHireVehicleType.BlackCab,
|
|
27
|
+
value: 'Hackney Carriage (1-4 Passengers)',
|
|
28
|
+
id: 4
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: CabHireVehicleType.DdaCar,
|
|
32
|
+
value: 'Dda - wheelchair accessible (1-4 Passengers)',
|
|
33
|
+
id: 4
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
key: CabHireVehicleType.MediumMpv,
|
|
37
|
+
value: 'People Carrier (1-7 Passengers)',
|
|
38
|
+
id: 7
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
key: CabHireVehicleType.ExecutiveCar,
|
|
42
|
+
value: 'Executive (1-4 Passengers)',
|
|
43
|
+
id: 4
|
|
44
|
+
}
|
|
45
|
+
];
|
|
46
|
+
this.attributes = [
|
|
47
|
+
{ enabled: false, key: 'wheelchair', value: 'Wheelchair (On Request)' },
|
|
48
|
+
{ enabled: false, key: 'call_on_arrival', value: 'Call On Arrival' },
|
|
49
|
+
{
|
|
50
|
+
enabled: false,
|
|
51
|
+
key: 'meet_and_greet',
|
|
52
|
+
value: 'Meet And Greet (Charge Applies)'
|
|
53
|
+
},
|
|
54
|
+
{ enabled: false, key: 'wait_and_return', value: 'Wait And Return' }
|
|
55
|
+
];
|
|
56
|
+
this.searchTypes = [
|
|
57
|
+
'One-way'
|
|
58
|
+
// , 'Return'
|
|
59
|
+
];
|
|
60
|
+
this.airportSearchTypes = ['Airport drop off', 'Airport Pick Up'];
|
|
61
|
+
this.criteria = ['Pick Up Time'];
|
|
62
|
+
this.mode = TaxiFormMode.ADDRESS;
|
|
63
|
+
this.minSelectDate = moment();
|
|
64
|
+
// getters and setters
|
|
65
|
+
this._date = null;
|
|
66
|
+
this.selectedPlaces = [];
|
|
67
|
+
this._vias = [null, null, null, null];
|
|
68
|
+
/*
|
|
69
|
+
* searchType
|
|
70
|
+
*/
|
|
71
|
+
this._searchType = this.searchTypes[0];
|
|
72
|
+
/*
|
|
73
|
+
* airpoirt searchType
|
|
74
|
+
*/
|
|
75
|
+
this._airportSearchType = AirportSearchMode.DROPOFF;
|
|
76
|
+
/*
|
|
77
|
+
* searchCriteria
|
|
78
|
+
*/
|
|
79
|
+
this._searchCriteria = this.criteria[0];
|
|
80
|
+
/*
|
|
81
|
+
* outboundDateTime
|
|
82
|
+
*/
|
|
83
|
+
this._outboundDateTime = this.helpers.round(moment(), moment.duration(15, 'minutes'));
|
|
84
|
+
/*
|
|
85
|
+
* returnDateTime
|
|
86
|
+
*/
|
|
87
|
+
this._returnDateTime = this.helpers.round(moment(), moment.duration(15, 'minutes'));
|
|
88
|
+
/*
|
|
89
|
+
* flightNumber
|
|
90
|
+
*/
|
|
91
|
+
this._flightNumber = '';
|
|
92
|
+
/*
|
|
93
|
+
* terminal
|
|
94
|
+
*/
|
|
95
|
+
this._terminal = null;
|
|
96
|
+
this._time = null;
|
|
97
|
+
this.resultsSessionName = CabHireEnterpriseSearch.STORAGE_SESSION_RESULTS;
|
|
98
|
+
this.getPassengers = () => {
|
|
99
|
+
const adults = this.adults;
|
|
100
|
+
const children = this.children;
|
|
101
|
+
let passengers = `${adults} Adult`;
|
|
102
|
+
if (Number(adults) !== 1) {
|
|
103
|
+
passengers += 's';
|
|
104
|
+
}
|
|
105
|
+
if (Number(children) === 1) {
|
|
106
|
+
passengers += `, ${children} Child`;
|
|
107
|
+
}
|
|
108
|
+
if (Number(children) > 1) {
|
|
109
|
+
passengers += `, ${children} Children`;
|
|
110
|
+
}
|
|
111
|
+
return passengers;
|
|
112
|
+
return '';
|
|
113
|
+
};
|
|
114
|
+
const data = storageService.getSessionItem(CabHireEnterpriseSearch.STORAGE_SESSION_PARAMS) || {
|
|
115
|
+
tempParams: {}
|
|
116
|
+
};
|
|
117
|
+
// const momentDateTime = data.query.departs
|
|
118
|
+
// ? moment(data.query.departs)
|
|
119
|
+
// : moment();
|
|
120
|
+
this.updateTempParams(searchService.makeCabHireQuery(data.tempParams));
|
|
121
|
+
if (data.tempParams.fromAddress) {
|
|
122
|
+
this.fromAddress = data.tempParams.fromAddress;
|
|
123
|
+
}
|
|
124
|
+
if (data.tempParams.toAddress) {
|
|
125
|
+
this.toAddress = data.tempParams.toAddress;
|
|
126
|
+
}
|
|
127
|
+
if (searchService.shouldAddTravellerSubscription()) {
|
|
128
|
+
searchService.travellerInformation.subscribe((travellers) => {
|
|
129
|
+
this.travellers = travellers;
|
|
130
|
+
const splitTravellers = this.helpers.selectedTravellers(travellers, ServiceType.Cab);
|
|
131
|
+
this.tempParams.adults = splitTravellers.adults.length;
|
|
132
|
+
this.tempParams.children = splitTravellers.children.length;
|
|
133
|
+
this._isValid();
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
const results = storageService.getSessionItemAsList(this.resultsSessionName) || [];
|
|
137
|
+
this.fullResults = results;
|
|
138
|
+
this._cheapestResultPrice = this.updateLowestPrice(results);
|
|
139
|
+
this.results.next(results || []);
|
|
140
|
+
this._isValid();
|
|
141
|
+
this.outboundVisibility = new BehaviorSubject(false);
|
|
142
|
+
this.inboundVisibility = new BehaviorSubject(false);
|
|
143
|
+
}
|
|
144
|
+
get fromLocation() {
|
|
145
|
+
return this._fromLocation;
|
|
146
|
+
}
|
|
147
|
+
get toLocation() {
|
|
148
|
+
return this._toLocation;
|
|
149
|
+
}
|
|
150
|
+
get date() {
|
|
151
|
+
return this._date;
|
|
152
|
+
}
|
|
153
|
+
set date(value) {
|
|
154
|
+
this._date = value;
|
|
155
|
+
this._updateDateTime();
|
|
156
|
+
}
|
|
157
|
+
get searchType() {
|
|
158
|
+
return this._searchType;
|
|
159
|
+
}
|
|
160
|
+
set searchType(value) {
|
|
161
|
+
this._searchType = value;
|
|
162
|
+
}
|
|
163
|
+
get airportSearchType() {
|
|
164
|
+
return this._airportSearchType;
|
|
165
|
+
}
|
|
166
|
+
set airportSearchType(mode) {
|
|
167
|
+
this._airportSearchType = mode;
|
|
168
|
+
if (this.fromAddress || this.toAddress) {
|
|
169
|
+
this.switchFromAndToLocation();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/*
|
|
173
|
+
* airpoirt and train station searchType
|
|
174
|
+
*/
|
|
175
|
+
get fromLocationType() {
|
|
176
|
+
return this.tempParams.fromLocationType;
|
|
177
|
+
}
|
|
178
|
+
set fromLocationType(mode) {
|
|
179
|
+
this.tempParams.fromLocationType = mode;
|
|
180
|
+
}
|
|
181
|
+
get toLocationType() {
|
|
182
|
+
return this.tempParams.toLocationType;
|
|
183
|
+
}
|
|
184
|
+
set toLocationType(mode) {
|
|
185
|
+
this.tempParams.toLocationType = mode;
|
|
186
|
+
}
|
|
187
|
+
get searchCriteria() {
|
|
188
|
+
return this._searchCriteria;
|
|
189
|
+
}
|
|
190
|
+
set searchCriteria(value) {
|
|
191
|
+
this._searchCriteria = value;
|
|
192
|
+
}
|
|
193
|
+
get outboundDateTime() {
|
|
194
|
+
return this._outboundDateTime;
|
|
195
|
+
}
|
|
196
|
+
set outboundDateTime(value) {
|
|
197
|
+
this._outboundDateTime = value;
|
|
198
|
+
}
|
|
199
|
+
get returnDateTime() {
|
|
200
|
+
return this._returnDateTime;
|
|
201
|
+
}
|
|
202
|
+
set returnDateTime(value) {
|
|
203
|
+
this._returnDateTime = value;
|
|
204
|
+
}
|
|
205
|
+
get flightNumber() {
|
|
206
|
+
return this._flightNumber;
|
|
207
|
+
}
|
|
208
|
+
set flightNumber(value) {
|
|
209
|
+
this._flightNumber = value;
|
|
210
|
+
}
|
|
211
|
+
/*
|
|
212
|
+
* airport
|
|
213
|
+
*/
|
|
214
|
+
get airport() {
|
|
215
|
+
return this.tempParams.airport;
|
|
216
|
+
}
|
|
217
|
+
set airport(value) {
|
|
218
|
+
this.tempParams.airport = value;
|
|
219
|
+
}
|
|
220
|
+
get terminal() {
|
|
221
|
+
return this._terminal;
|
|
222
|
+
}
|
|
223
|
+
set terminal(value) {
|
|
224
|
+
this._terminal = value;
|
|
225
|
+
}
|
|
226
|
+
get time() {
|
|
227
|
+
return this._time;
|
|
228
|
+
}
|
|
229
|
+
set time(value) {
|
|
230
|
+
this._time = value;
|
|
231
|
+
this._updateDateTime();
|
|
232
|
+
}
|
|
233
|
+
get departs() {
|
|
234
|
+
return this.tempParams.departs;
|
|
235
|
+
}
|
|
236
|
+
set departs(value) {
|
|
237
|
+
this.tempParams.departs = value.isValid ? value : null;
|
|
238
|
+
if (value && value.isValid()) {
|
|
239
|
+
this._date = this.helpers.momentToNgDate(value);
|
|
240
|
+
this._time = this.helpers.formatTimeColon(value);
|
|
241
|
+
}
|
|
242
|
+
this._isValid();
|
|
243
|
+
}
|
|
244
|
+
// get fromLocation(): CabHireLocation {
|
|
245
|
+
// return this._fromLocation;
|
|
246
|
+
// }
|
|
247
|
+
// set fromLocation(value: CabHireLocation) {
|
|
248
|
+
// this._fromLocation = value;
|
|
249
|
+
// this._isValid();
|
|
250
|
+
// }
|
|
251
|
+
// get toLocation(): CabHireLocation {
|
|
252
|
+
// return this._toLocation;
|
|
253
|
+
// }
|
|
254
|
+
// set toLocation(value: CabHireLocation) {
|
|
255
|
+
// this._toLocation = value;
|
|
256
|
+
// this._isValid();
|
|
257
|
+
// }
|
|
258
|
+
get adults() {
|
|
259
|
+
return this.tempParams.adults;
|
|
260
|
+
}
|
|
261
|
+
set adults(value) {
|
|
262
|
+
this.tempParams.adults = value;
|
|
263
|
+
this._isValid();
|
|
264
|
+
}
|
|
265
|
+
get children() {
|
|
266
|
+
return this.tempParams.children;
|
|
267
|
+
}
|
|
268
|
+
set children(value) {
|
|
269
|
+
this.tempParams.children = value;
|
|
270
|
+
this._isValid();
|
|
271
|
+
}
|
|
272
|
+
get infants() {
|
|
273
|
+
return this.tempParams.infants;
|
|
274
|
+
}
|
|
275
|
+
set infants(value) {
|
|
276
|
+
this.tempParams.infants = value;
|
|
277
|
+
this._isValid();
|
|
278
|
+
}
|
|
279
|
+
get countryCode() {
|
|
280
|
+
return this.tempParams.countryCode;
|
|
281
|
+
}
|
|
282
|
+
set countryCode(value) {
|
|
283
|
+
this.tempParams.countryCode = value;
|
|
284
|
+
this._isValid();
|
|
285
|
+
}
|
|
286
|
+
get vias() {
|
|
287
|
+
return this._vias;
|
|
288
|
+
}
|
|
289
|
+
set vias(value) {
|
|
290
|
+
this._vias = value;
|
|
291
|
+
this._isValid();
|
|
292
|
+
}
|
|
293
|
+
get viasFrom() {
|
|
294
|
+
return this.tempParams.viasFrom;
|
|
295
|
+
}
|
|
296
|
+
set viasFrom(value) {
|
|
297
|
+
this.tempParams.viasFrom = value;
|
|
298
|
+
this._vias[0] = value ? this.createCabHireLocation(value) : null;
|
|
299
|
+
this._isValid();
|
|
300
|
+
}
|
|
301
|
+
get viasTo() {
|
|
302
|
+
return this.tempParams.viasTo;
|
|
303
|
+
}
|
|
304
|
+
set viasTo(value) {
|
|
305
|
+
this.tempParams.viasTo = value;
|
|
306
|
+
this._vias[1] = value ? this.createCabHireLocation(value) : null;
|
|
307
|
+
this._isValid();
|
|
308
|
+
}
|
|
309
|
+
get vehicleType() {
|
|
310
|
+
return this.tempParams.vehicleType;
|
|
311
|
+
}
|
|
312
|
+
set vehicleType(value) {
|
|
313
|
+
this.tempParams.vehicleType = value;
|
|
314
|
+
this._isValid();
|
|
315
|
+
}
|
|
316
|
+
get fromAddress() {
|
|
317
|
+
return this.tempParams.fromAddress;
|
|
318
|
+
}
|
|
319
|
+
set fromAddress(value) {
|
|
320
|
+
this.tempParams.fromAddress = value;
|
|
321
|
+
this._fromLocation = value ? this.createCabHireLocation(value) : null;
|
|
322
|
+
this._isValid();
|
|
323
|
+
}
|
|
324
|
+
get fromStation() {
|
|
325
|
+
return this.tempParams.fromStation;
|
|
326
|
+
}
|
|
327
|
+
set fromStation(value) {
|
|
328
|
+
this.tempParams.fromStation = value;
|
|
329
|
+
this._fromLocation = value
|
|
330
|
+
? {
|
|
331
|
+
address: value.destination,
|
|
332
|
+
postcode: value.postcode
|
|
333
|
+
}
|
|
334
|
+
: null;
|
|
335
|
+
this._isValid();
|
|
336
|
+
}
|
|
337
|
+
get toAddress() {
|
|
338
|
+
return this.tempParams.toAddress;
|
|
339
|
+
}
|
|
340
|
+
set toAddress(value) {
|
|
341
|
+
this.tempParams.toAddress = value;
|
|
342
|
+
this._toLocation = value ? this.createCabHireLocation(value) : null;
|
|
343
|
+
this._isValid();
|
|
344
|
+
}
|
|
345
|
+
get toStation() {
|
|
346
|
+
return this.tempParams.toStation;
|
|
347
|
+
}
|
|
348
|
+
set toStation(value) {
|
|
349
|
+
this.tempParams.toStation = value;
|
|
350
|
+
this._toLocation = value
|
|
351
|
+
? {
|
|
352
|
+
address: value.destination,
|
|
353
|
+
postcode: value.postcode
|
|
354
|
+
}
|
|
355
|
+
: null;
|
|
356
|
+
this._isValid();
|
|
357
|
+
}
|
|
358
|
+
resetQuery() {
|
|
359
|
+
this.updateTempParams(this.searchService.makeCabHireQuery());
|
|
360
|
+
this._isValid();
|
|
361
|
+
}
|
|
362
|
+
resetParams() {
|
|
363
|
+
this.reset();
|
|
364
|
+
this.resetQuery();
|
|
365
|
+
this.results.next([]);
|
|
366
|
+
}
|
|
367
|
+
_isValid() {
|
|
368
|
+
if (!this.doChecks) {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
this.storageService.setSessionItem(CabHireEnterpriseSearch.STORAGE_SESSION_PARAMS, {
|
|
372
|
+
tempParams: this.tempParams
|
|
373
|
+
});
|
|
374
|
+
this.validationMessages = [];
|
|
375
|
+
if (!this.tempParams.fromAddress) {
|
|
376
|
+
this.validationMessages.push('From - Enter a location or postcode.');
|
|
377
|
+
}
|
|
378
|
+
if (!this.tempParams.toAddress) {
|
|
379
|
+
this.validationMessages.push('To - Enter a location or postcode.');
|
|
380
|
+
}
|
|
381
|
+
if (this.tempParams.departs.unix() < moment().unix()) {
|
|
382
|
+
this.validationMessages.push('Taxi journey cannot be in the past.');
|
|
383
|
+
}
|
|
384
|
+
if (this.tempParams.adults + this.tempParams.children < 1) {
|
|
385
|
+
this.validationMessages.push('There must be at least 1 traveller');
|
|
386
|
+
}
|
|
387
|
+
this.isValid.next(this.validationMessages.length === 0);
|
|
388
|
+
this.messages.next(this.validationMessages);
|
|
389
|
+
}
|
|
390
|
+
_updateDateTime() {
|
|
391
|
+
if (this._date && this._time) {
|
|
392
|
+
this.departs = this.helpers.ngDateToMoment(this._date, this._time);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
startSearch() {
|
|
396
|
+
this.results.next([]);
|
|
397
|
+
if (this.isValid.value) {
|
|
398
|
+
const query = this.getSearchQuery();
|
|
399
|
+
this.searchService.saveRecentSearch(this.getRecentSearchQuery(query));
|
|
400
|
+
return this._startSearch(this.cabfetcher.fetchList(this.helpers.removeNulls(query)));
|
|
401
|
+
}
|
|
402
|
+
else {
|
|
403
|
+
return Promise.resolve(false);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
getRecentSearchQuery(query) {
|
|
407
|
+
return {
|
|
408
|
+
serviceType: ServiceType.Cab,
|
|
409
|
+
searchArgs: query,
|
|
410
|
+
travelDate: this.departs.format(),
|
|
411
|
+
travellers: this.helpers.getTravellersId(this.travellers)
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
startRecentSearch(recentSearch) {
|
|
415
|
+
this.departs = moment(recentSearch.searchArgs.departs);
|
|
416
|
+
this.vehicleType = recentSearch.searchArgs.vehicleType;
|
|
417
|
+
combineLatest([
|
|
418
|
+
this.getStationOrAirport(recentSearch.searchArgs.fromLocation.address),
|
|
419
|
+
this.getStationOrAirport(recentSearch.searchArgs.toLocation.address)
|
|
420
|
+
]).subscribe(([fromStationOrAirport, toStationOrAirport]) => {
|
|
421
|
+
if (fromStationOrAirport.length) {
|
|
422
|
+
this.fromStation = this.getStationOrAirportAdress(fromStationOrAirport[0]);
|
|
423
|
+
this.fromAddress = this.convertStationOrAirportLocation(recentSearch.searchArgs.fromLocation.address, recentSearch.searchArgs.fromLocation.postcode);
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
this.fromAddress = this.convertAddressLocation(recentSearch.searchArgs.fromLocation.address, recentSearch.searchArgs.fromLocation.postcode);
|
|
427
|
+
}
|
|
428
|
+
if (toStationOrAirport.length) {
|
|
429
|
+
this.toStation = this.getStationOrAirportAdress(toStationOrAirport[0]);
|
|
430
|
+
this.toAddress = this.convertStationOrAirportLocation(recentSearch.searchArgs.toLocation.address, recentSearch.searchArgs.toLocation.postcode);
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
this.toAddress = this.convertAddressLocation(recentSearch.searchArgs.toLocation.address, recentSearch.searchArgs.toLocation.postcode);
|
|
434
|
+
}
|
|
435
|
+
if (recentSearch.searchArgs.vias[0]) {
|
|
436
|
+
this.getStationOrAirport(recentSearch.searchArgs.vias[0].address).subscribe((viaFromStationOrAirport) => {
|
|
437
|
+
if (viaFromStationOrAirport.length) {
|
|
438
|
+
this.viasFrom = this.convertStationOrAirportLocation(recentSearch.searchArgs.vias[0].address, recentSearch.searchArgs.vias[0].postcode);
|
|
439
|
+
}
|
|
440
|
+
else {
|
|
441
|
+
this.viasFrom = this.convertAddressLocation(recentSearch.searchArgs.vias[0].address, recentSearch.searchArgs.vias[0].postcode);
|
|
442
|
+
}
|
|
443
|
+
this.searchService.startSearches();
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
if (recentSearch.searchArgs.vias[1]) {
|
|
447
|
+
this.getStationOrAirport(recentSearch.searchArgs.vias[1].address).subscribe((viaToStationOrAirport) => {
|
|
448
|
+
if (viaToStationOrAirport.length) {
|
|
449
|
+
this.viasTo = this.convertStationOrAirportLocation(recentSearch.searchArgs.vias[1].address, recentSearch.searchArgs.vias[1].postcode);
|
|
450
|
+
}
|
|
451
|
+
else {
|
|
452
|
+
this.viasTo = this.convertAddressLocation(recentSearch.searchArgs.vias[1].address, recentSearch.searchArgs.vias[1].postcode);
|
|
453
|
+
}
|
|
454
|
+
this.searchService.startSearches();
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
this.searchService.startSearches();
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
getSearchQuery() {
|
|
461
|
+
const query = {
|
|
462
|
+
adults: this.tempParams.adults,
|
|
463
|
+
children: this.tempParams.children,
|
|
464
|
+
departs: this.tempParams.departs,
|
|
465
|
+
fromLocation: this.createCabHireLocation(this.tempParams.fromAddress),
|
|
466
|
+
toLocation: this.createCabHireLocation(this.tempParams.toAddress),
|
|
467
|
+
infants: 0,
|
|
468
|
+
vehicleType: this.vehicleType,
|
|
469
|
+
vias: this._vias,
|
|
470
|
+
};
|
|
471
|
+
return this.helpers.removeNulls(query);
|
|
472
|
+
}
|
|
473
|
+
updateOutboundAddress(location, placeDescription) {
|
|
474
|
+
this.tempParams.fromAddress = this.getAddressFormat(location, placeDescription);
|
|
475
|
+
}
|
|
476
|
+
updateInboundAddress(location, placeDescription) {
|
|
477
|
+
this.tempParams.toAddress = this.getAddressFormat(location, placeDescription);
|
|
478
|
+
}
|
|
479
|
+
createCabHireLocation(location) {
|
|
480
|
+
return {
|
|
481
|
+
address: [
|
|
482
|
+
location === null || location === void 0 ? void 0 : location.Terminal,
|
|
483
|
+
location === null || location === void 0 ? void 0 : location.House,
|
|
484
|
+
location === null || location === void 0 ? void 0 : location.Street,
|
|
485
|
+
location === null || location === void 0 ? void 0 : location.Town,
|
|
486
|
+
location === null || location === void 0 ? void 0 : location.Country
|
|
487
|
+
]
|
|
488
|
+
.filter((item) => !!item)
|
|
489
|
+
.join(','),
|
|
490
|
+
postcode: location === null || location === void 0 ? void 0 : location.PostCode
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
matchAddresses() {
|
|
494
|
+
this._toLocation = this.createCabHireLocation(this.tempParams.toAddress);
|
|
495
|
+
this._fromLocation = this.createCabHireLocation(this.tempParams.fromAddress);
|
|
496
|
+
this._isValid();
|
|
497
|
+
}
|
|
498
|
+
sortBy(asc) {
|
|
499
|
+
let results = this.helpers.clone(this.fullResults);
|
|
500
|
+
if (asc) {
|
|
501
|
+
results = results.sort((a, b) => b.price - a.price);
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
results = results.sort((a, b) => a.price - b.price);
|
|
505
|
+
}
|
|
506
|
+
this.results.next(results);
|
|
507
|
+
}
|
|
508
|
+
// ! stuff to go in a postcode servie
|
|
509
|
+
getAddressFormat(location, placeDescription) {
|
|
510
|
+
return {
|
|
511
|
+
House: this.getAddressFromPlaceDetails(location, [
|
|
512
|
+
'floor',
|
|
513
|
+
'street_number',
|
|
514
|
+
'premise'
|
|
515
|
+
]),
|
|
516
|
+
Street: this.getAddressFromPlaceDetails(location, [
|
|
517
|
+
'route',
|
|
518
|
+
'street_name',
|
|
519
|
+
'establishment'
|
|
520
|
+
]),
|
|
521
|
+
Town: this.getAddressFromPlaceDetails(location, [
|
|
522
|
+
'postal_town',
|
|
523
|
+
'administrative_area_level_2',
|
|
524
|
+
'locality'
|
|
525
|
+
]),
|
|
526
|
+
PostCode: this.getAddressFromPlaceDetails(location, ['postal_code']),
|
|
527
|
+
Country: this.getAddressFromPlaceDetails(location, ['country']),
|
|
528
|
+
placeDescription
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
getAddressFromPlaceDetails(placeDetails, types) {
|
|
532
|
+
let addressProp = null;
|
|
533
|
+
if (placeDetails && Array.isArray(placeDetails)) {
|
|
534
|
+
for (const type of types) {
|
|
535
|
+
const prop = placeDetails.filter((pd) => {
|
|
536
|
+
return Array.isArray(pd.types) && pd.types.includes(type);
|
|
537
|
+
})[0];
|
|
538
|
+
if (prop) {
|
|
539
|
+
addressProp = prop.long_name;
|
|
540
|
+
break;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
return addressProp;
|
|
545
|
+
}
|
|
546
|
+
getAddressFromAirportDetails(airportDetails, airportName) {
|
|
547
|
+
console.log(airportDetails);
|
|
548
|
+
let address = null;
|
|
549
|
+
if (airportDetails) {
|
|
550
|
+
address = {
|
|
551
|
+
Country: airportDetails.country,
|
|
552
|
+
Street: airportDetails.road,
|
|
553
|
+
PostCode: airportDetails.postcode,
|
|
554
|
+
Town: airportDetails.city,
|
|
555
|
+
placeDescription: airportName,
|
|
556
|
+
House: airportName
|
|
557
|
+
};
|
|
558
|
+
}
|
|
559
|
+
return address;
|
|
560
|
+
}
|
|
561
|
+
setLocationFromAirport(airportDetails, airportName) {
|
|
562
|
+
const address = this.getAddressFromAirportDetails(airportDetails, airportName);
|
|
563
|
+
if (this.mode === TaxiFormMode.STATION) {
|
|
564
|
+
if (this.airportSearchType === AirportSearchMode.PICKUP) {
|
|
565
|
+
this.fromAddress = address;
|
|
566
|
+
}
|
|
567
|
+
else {
|
|
568
|
+
this.toAddress = address;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
addToSelectedPlaces(address) {
|
|
573
|
+
this.selectedPlaces.push(address);
|
|
574
|
+
}
|
|
575
|
+
setOutboundFormVisibility(showForm) {
|
|
576
|
+
this.outboundVisibility.next(showForm);
|
|
577
|
+
}
|
|
578
|
+
setInboundFormVisibility(showForm) {
|
|
579
|
+
this.inboundVisibility.next(showForm);
|
|
580
|
+
}
|
|
581
|
+
getOutboundFormVisibility() {
|
|
582
|
+
return this.outboundVisibility;
|
|
583
|
+
}
|
|
584
|
+
getInboundFormVisibility() {
|
|
585
|
+
return this.inboundVisibility;
|
|
586
|
+
}
|
|
587
|
+
updateFromPreviousSearches(previousItems) {
|
|
588
|
+
var _a;
|
|
589
|
+
const flightItem = (_a = previousItems[ServiceType.Flight]) === null || _a === void 0 ? void 0 : _a.searchQuery;
|
|
590
|
+
if (flightItem) {
|
|
591
|
+
// TODO flights haven't been done yet.
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
getTransType() {
|
|
595
|
+
var _a;
|
|
596
|
+
const transTypeIndex = this.tempParams.vehicleType;
|
|
597
|
+
return ((_a = this.transTypes.find((x) => x.key === transTypeIndex)) === null || _a === void 0 ? void 0 : _a.value) || '';
|
|
598
|
+
}
|
|
599
|
+
getStationOrAirport(text) {
|
|
600
|
+
return this.searchService.getStationsAndAirportsList(text, null, this.isLoading).pipe(take(1), map((res) => {
|
|
601
|
+
return res;
|
|
602
|
+
}));
|
|
603
|
+
}
|
|
604
|
+
;
|
|
605
|
+
getStationOrAirportAdress(stationOrAirport) {
|
|
606
|
+
if (stationOrAirport.type === LocationTypes.Airport) {
|
|
607
|
+
return {
|
|
608
|
+
name: stationOrAirport.name
|
|
609
|
+
};
|
|
610
|
+
}
|
|
611
|
+
else if (stationOrAirport.type === LocationTypes.TrainStation) {
|
|
612
|
+
return {
|
|
613
|
+
name: stationOrAirport.name
|
|
614
|
+
};
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
convertStationOrAirportLocation(address, postcode) {
|
|
618
|
+
return {
|
|
619
|
+
House: address,
|
|
620
|
+
PostCode: postcode,
|
|
621
|
+
};
|
|
622
|
+
}
|
|
623
|
+
convertAddressLocation(address, postcode) {
|
|
624
|
+
let locationArray = address.split(',');
|
|
625
|
+
let street = '';
|
|
626
|
+
let town = locationArray[locationArray.length - 2];
|
|
627
|
+
for (let index = 1; index < locationArray.length - 2; index++) {
|
|
628
|
+
street += locationArray[index] + ' ';
|
|
629
|
+
}
|
|
630
|
+
return {
|
|
631
|
+
Country: address.slice(-2),
|
|
632
|
+
House: locationArray[0],
|
|
633
|
+
PostCode: postcode,
|
|
634
|
+
Street: street,
|
|
635
|
+
Town: town
|
|
636
|
+
};
|
|
637
|
+
}
|
|
638
|
+
addCabHireToBasket(cabHireQuote, cabHireQuery) {
|
|
639
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
640
|
+
if (cabHireQuote.unavailable) {
|
|
641
|
+
return Promise.resolve(false);
|
|
642
|
+
}
|
|
643
|
+
const intBasket = yield this.basketService.getDefaultBasket();
|
|
644
|
+
const basket = intBasket === null || intBasket === void 0 ? void 0 : intBasket.subject.value;
|
|
645
|
+
if (basket) {
|
|
646
|
+
return this.basketService.addToBasket({
|
|
647
|
+
adults: cabHireQuery.adults,
|
|
648
|
+
basket: basket.id,
|
|
649
|
+
service: cabHireQuote.sourceId.toString(),
|
|
650
|
+
detail: {
|
|
651
|
+
id: cabHireQuote.id,
|
|
652
|
+
departs: cabHireQuery.departs.format(),
|
|
653
|
+
supplierName: cabHireQuote.supplierName,
|
|
654
|
+
estimatedCO2: cabHireQuote.estimatedCO2,
|
|
655
|
+
fromLocation: {
|
|
656
|
+
address: cabHireQuery.fromLocation.address,
|
|
657
|
+
postcode: cabHireQuery.fromLocation.postcode
|
|
658
|
+
},
|
|
659
|
+
toLocation: {
|
|
660
|
+
address: cabHireQuery.toLocation.address,
|
|
661
|
+
postcode: cabHireQuery.toLocation.postcode
|
|
662
|
+
},
|
|
663
|
+
vehicleType: cabHireQuery.vehicleType
|
|
664
|
+
},
|
|
665
|
+
price: cabHireQuote.price,
|
|
666
|
+
currency: cabHireQuote.currency,
|
|
667
|
+
searchQuery: cabHireQuery,
|
|
668
|
+
co2PerItem: cabHireQuote.co2PerItem,
|
|
669
|
+
co2PerPassenger: cabHireQuote.co2PerPassenger,
|
|
670
|
+
outboundDate: cabHireQuery.departs.format()
|
|
671
|
+
}, intBasket, this.searchService, this.travellers);
|
|
672
|
+
}
|
|
673
|
+
return Promise.resolve(false); // TODO should this throw an error?
|
|
674
|
+
});
|
|
675
|
+
}
|
|
676
|
+
switchFromAndToLocation() {
|
|
677
|
+
const newFromAddress = Object.assign({}, this.toAddress);
|
|
678
|
+
const newToAddress = Object.assign({}, this.fromAddress);
|
|
679
|
+
this.fromAddress = newFromAddress;
|
|
680
|
+
this.toAddress = newToAddress;
|
|
681
|
+
}
|
|
682
|
+
updateLowestPrice(results) {
|
|
683
|
+
if (!results.length)
|
|
684
|
+
return null;
|
|
685
|
+
const currency = results[0].currency;
|
|
686
|
+
return results.reduce((cheapestPrice, result) => {
|
|
687
|
+
const price = result.price;
|
|
688
|
+
if (cheapestPrice.amount > price)
|
|
689
|
+
cheapestPrice.amount = price;
|
|
690
|
+
return cheapestPrice;
|
|
691
|
+
}, { amount: Number.MAX_SAFE_INTEGER, currencyCode: currency });
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
CabHireEnterpriseSearch.STORAGE_SESSION_PARAMS = 'search_cab';
|
|
695
|
+
CabHireEnterpriseSearch.STORAGE_SESSION_RESULTS = 'results_cab';
|
|
696
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FiaGlyZS1lbnRlcnByaXNlLXNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9jYWJoaXJlLWVudGVycHJpc2Utc2VhcmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNFLE9BQU8sRUFPTCxhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQU14QixPQUFPLEVBSUwsa0JBQWtCLEVBTWxCLFdBQVcsRUFDWixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxpQkFBaUIsRUFLakIsWUFBWSxFQUViLE1BQU0sMENBQTBDLENBQUM7QUFNbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLE9BQU8sdUJBQ1gsU0FBUSxvQkFJUDtJQWdYRCxZQUNVLFVBQXlDLEVBQ3pDLE9BQTJCLEVBQ25DLGNBQWtDLEVBQzFCLGFBQStDLEVBQy9DLGFBQStDO1FBRXZELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQU5kLGVBQVUsR0FBVixVQUFVLENBQStCO1FBQ3pDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBRTNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQztRQUMvQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUE5V2xELFNBQUksR0FBZ0IsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUczQyxrQkFBYSxHQUF5QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTNDLGVBQVUsR0FBZ0I7WUFDakMsRUFBRSxHQUFHLEVBQUUs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LFdBQVcsQ0FBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUF1QjtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUNqQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQyxhQUE2QixFQUFFLE1BQW9CLEVBQUUsRUFBRTtZQUN0RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLO2dCQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQy9ELE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsRUFDRCxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxDQUM1RCxDQUFDO0lBQ0osQ0FBQzs7QUFqMUJlLDhDQUFzQixHQUFHLFlBQVksQ0FBQztBQUN0QywrQ0FBdUIsR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEJhc2VFbnRlcnByaXNlU2VhcmNoIH0gZnJvbSAnLi9iYXNlLWVudGVycHJpc2UnO1xyXG5pbXBvcnQgeyBCYXNlU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlSGVscGVyUm91dGluZXMgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJhdmVsbGVyIH0gZnJvbSAnLi4vbW9kZWxzL3RyYXZlbGxlci5vYmplY3QnO1xyXG5pbXBvcnQge1xyXG4gIEFkZHJlc3NGb3JtLFxyXG4gIENhYmhpcmVRdW90ZVJlc3VsdEFycmF5LFxyXG4gIE5nYkRhdGVTdHJ1Y3QsXHJcbiAgUmFpbEFpcnBvcnQsXHJcbiAgUmVjZW50U2VhcmNoLFxyXG4gIExvY2F0aW9uRGV0YWlscyxcclxuICBMb2NhdGlvblR5cGVzXHJcbn0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xyXG5pbXBvcnQgeyBFbnRlcnByaXNlU2VhcmNoU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSXNlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBCYXNlQ2FiaGlyZVF1b3RlRmV0Y2hlcixcclxuICBDYWJoaXJlUXVvdGVGZXRjaGVyVHlwZVxyXG59IGZyb20gJy4uL2ZldGNoZXJzL2NhYmhpcmUtcXVvdGUtZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgQmFza2V0SXRlbSxcclxuICBDYWJIaXJlTG9jYXRpb24sXHJcbiAgQ2FiSGlyZVF1b3RlLFxyXG4gIENhYkhpcmVWZWhpY2xlVHlwZSxcclxuICBMb2NhdGlvbkRldGFpbCxcclxuICBRdWVyeVNlYXJjaENhYkhpcmVBcmdzLFxyXG4gIFNhdmVSZWNlbnRTZWFyY2hNdXRhdGlvblZhcmlhYmxlcyxcclxuICBTZWFyY2hDYWJIaXJlUXVlcnlWYXJpYWJsZXMsXHJcbiAgU2VhcmNoRmxpZ2h0c1YyUXVlcnlWYXJpYWJsZXMsXHJcbiAgU2VydmljZVR5cGVcclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHtcclxuICBBaXJwb3J0U2VhcmNoTW9kZSxcclxuICBDYWJIaXJlRW50ZXJwcmlzZVNlYXJjaEludGVyZmFjZSxcclxuICBDYWJIaXJlVGVtcFBhcmFtcyxcclxuICBUYXhpQWlycG9ydCxcclxuICBUYXhpQXR0cmlidXRlLFxyXG4gIFRheGlGb3JtTW9kZSxcclxuICBUcmFuc1R5cGVcclxufSBmcm9tICcuLi9pbnRlcmZhY2VzL0ljYWJoaXJlLWVudGVycHJpc2Utc2VhcmNoJztcclxuaW1wb3J0IHtcclxuICBFbnRlcnByaXNlQmFza2V0U2VydmljZUludGVyZmFjZSxcclxuICBJbnRlcm5hbEJhc2tldEludGVyZmFjZVxyXG59IGZyb20gJy4uL2ludGVyZmFjZXMvSWVudGVycHJpc2UtYmFza2V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJQ2hlYXBlc3RQcmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2hlYXBlc3QtcHJpY2UnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FiSGlyZUVudGVycHJpc2VTZWFyY2g8Q0hfUSBleHRlbmRzIENhYmhpcmVRdW90ZUZldGNoZXJUeXBlPlxyXG4gIGV4dGVuZHMgQmFzZUVudGVycHJpc2VTZWFyY2g8XHJcbiAgICBDYWJIaXJlVGVtcFBhcmFtcyxcclxuICAgIENhYmhpcmVRdW90ZVJlc3VsdEFycmF5LFxyXG4gICAgQ2FiaGlyZVF1b3RlUmVzdWx0QXJyYXlcclxuICA+XHJcbiAgaW1wbGVtZW50cyBDYWJIaXJlRW50ZXJwcmlzZVNlYXJjaEludGVyZmFjZVxyXG57XHJcbiAgc3RhdGljIHJlYWRvbmx5IFNUT1JBR0VfU0VTU0lPTl9QQVJBTVMgPSAnc2VhcmNoX2NhYic7XHJcbiAgc3RhdGljIHJlYWRvbmx5IFNUT1JBR0VfU0VTU0lPTl9SRVNVTFRTID0gJ3Jlc3VsdHNfY2FiJztcclxuICBwcml2YXRlIG91dGJvdW5kVmlzaWJpbGl0eTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xyXG4gIHByaXZhdGUgaW5ib3VuZFZpc2liaWxpdHk6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcclxuICBwdWJsaWMgdHlwZTogU2VydmljZVR5cGUgPSBTZXJ2aWNlVHlwZS5DYWI7XHJcbiAgcHJpdmF0ZSB0cmF2ZWxsZXJzOiBUcmF2ZWxsZXJbXTtcclxuXHJcbiAgYWlycG9ydENoYW5nZTogU3ViamVjdDxUYXhpQWlycG9ydD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICByZWFkb25seSB0cmFuc1R5cGVzOiBUcmFuc1R5cGVbXSA9IFtcclxuICAgIHsga2V5OiBDYWJIaXJlVmVoaWNsZVR5cGUuQW55LCB2YWx1ZTogJ0FueSAoMS04IFBhc3NlbmdlcnMpJywgaWQ6IDggfSxcclxuICAgIHtcclxuICAgICAga2V5OiBDYWJIaXJlVmVoaWNsZVR5cGUuU3RhbmRhcmRDYXIsXHJcbiAgICAgIHZhbHVlOiAnU2Fsb29uIENhciAoMS00IFBhc3NlbmdlcnMpJyxcclxuICAgICAgaWQ6IDRcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGtleTogQ2FiSGlyZVZlaGljbGVUeXBlLkJsYWNrQ2FiLFxyXG4gICAgICB2YWx1ZTogJ0hhY2tuZXkgQ2FycmlhZ2UgKDEtNCBQYXNzZW5nZXJzKScsXHJcbiAgICAgIGlkOiA0XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBrZXk6IENhYkhpcmVWZWhpY2xlVHlwZS5EZGFDYXIsXHJcbiAgICAgIHZhbHVlOiAnRGRhIC0gd2hlZWxjaGFpciBhY2Nlc3NpYmxlICgxLTQgUGFzc2VuZ2VycyknLFxyXG4gICAgICBpZDogNFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAga2V5OiBDYWJIaXJlVmVoaWNsZVR5cGUuTWVkaXVtTXB2LFxyXG4gICAgICB2YWx1ZTogJ1Blb3BsZSBDYXJyaWVyICgxLTcgUGFzc2VuZ2VycyknLFxyXG4gICAgICBpZDogN1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAga2V5OiBDYWJIaXJlVmVoaWNsZVR5cGUuRXhlY3V0aXZlQ2FyLFxyXG4gICAgICB2YWx1ZTogJ0V4ZWN1dGl2ZSAoMS00IFBhc3NlbmdlcnMpJyxcclxuICAgICAgaWQ6IDRcclxuICAgIH1cclxuICBdO1xyXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IFRheGlBdHRyaWJ1dGVbXSA9IFtcclxuICAgIHsgZW5hYmxlZDogZmFsc2UsIGtleTogJ3doZWVsY2hhaXInLCB2YWx1ZTogJ1doZWVsY2hhaXIgKE9uIFJlcXVlc3QpJyB9LFxyXG4gICAgeyBlbmFibGVkOiBmYWxzZSwga2V5OiAnY2FsbF9vbl9hcnJpdmFsJywgdmFsdWU6ICdDYWxsIE9uIEFycml2YWwnIH0sXHJcbiAgICB7XHJcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICBrZXk6ICdtZWV0X2FuZF9ncmVldCcsXHJcbiAgICAgIHZhbHVlOiAnTWVldCBBbmQgR3JlZXQgKENoYXJnZSBBcHBsaWVzKSdcclxuICAgIH0sXHJcbiAgICB7IGVuYWJsZWQ6IGZhbHNlLCBrZXk6ICd3YWl0X2FuZF9yZXR1cm4nLCB2YWx1ZTogJ1dhaXQgQW5kIFJldHVybicgfVxyXG4gIF07XHJcbiAgcmVhZG9ubHkgc2VhcmNoVHlwZXMgPSBbXHJcbiAgICAnT25lLXdheSdcclxuICAgIC8vICwgJ1JldHVybidcclxuICBdO1xyXG5cclxuICByZWFkb25seSBhaXJwb3J0U2VhcmNoVHlwZXMgPSBbJ0FpcnBvcnQgZHJvcCBvZmYnLCAnQWlycG9ydCBQaWNrIFVwJ107XHJcbiAgcmVhZG9ubHkgY3JpdGVyaWEgPSBbJ1BpY2sgVXAgVGltZSddO1xyXG5cclxuICBtb2RlOiBUYXhpRm9ybU1vZGUgPSBUYXhpRm9ybU1vZGUuQUREUkVTUztcclxuICBtaW5TZWxlY3REYXRlOiBtb21lbnQuTW9tZW50ID0gbW9tZW50KCk7XHJcblxyXG4gIC8vIGdldHRlcnMgYW5kIHNldHRlcnNcclxuICBwcml2YXRlIF9kYXRlOiBOZ2JEYXRlU3RydWN0ID0gbnVsbDtcclxuICBzZWxlY3RlZFBsYWNlczogYW55ID0gW107XHJcbiAgcHJpdmF0ZSBfZnJvbUxvY2F0aW9uOiBDYWJIaXJlTG9jYXRpb247XHJcbiAgcHJpdmF0ZSBfdG9Mb2NhdGlvbjogQ2FiSGlyZUxvY2F0aW9uO1xyXG4gIHByaXZhdGUgX3ZpYXM6IENhYkhpcmVMb2NhdGlvbltdID0gW251bGwsIG51bGwsIG51bGwsIG51bGxdO1xyXG5cclxuICBnZXQgZnJvbUxvY2F0aW9uKCk6IENhYkhpcmVMb2NhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnJvbUxvY2F0aW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRvTG9jYXRpb24oKTogQ2FiSGlyZUxvY2F0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl90b0xvY2F0aW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRhdGUoKTogTmdiRGF0ZVN0cnVjdCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0ZTtcclxuICB9XHJcblxyXG4gIHNldCBkYXRlKHZhbHVlOiBOZ2JEYXRlU3RydWN0KSB7XHJcbiAgICB0aGlzLl9kYXRlID0gdmFsdWU7XHJcbiAgICB0aGlzLl91cGRhdGVEYXRlVGltZSgpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBzZWFyY2hUeXBlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc2VhcmNoVHlwZSA9IHRoaXMuc2VhcmNoVHlwZXNbMF07XHJcbiAgZ2V0IHNlYXJjaFR5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoVHlwZTtcclxuICB9XHJcblxyXG4gIHNldCBzZWFyY2hUeXBlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlYXJjaFR5cGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogYWlycG9pcnQgc2VhcmNoVHlwZVxyXG4gICAqL1xyXG5cclxuICBfYWlycG9ydFNlYXJjaFR5cGU6IEFpcnBvcnRTZWFyY2hNb2RlID0gQWlycG9ydFNlYXJjaE1vZGUuRFJPUE9GRjtcclxuICBnZXQgYWlycG9ydFNlYXJjaFR5cGUoKTogQWlycG9ydFNlYXJjaE1vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FpcnBvcnRTZWFyY2hUeXBlO1xyXG4gIH1cclxuICBzZXQgYWlycG9ydFNlYXJjaFR5cGUobW9kZTogQWlycG9ydFNlYXJjaE1vZGUpIHtcclxuICAgIHRoaXMuX2FpcnBvcnRTZWFyY2hUeXBlID0gbW9kZTtcclxuICAgIGlmICh0aGlzLmZyb21BZGRyZXNzIHx8IHRoaXMudG9BZGRyZXNzKSB7XHJcbiAgICAgIHRoaXMuc3dpdGNoRnJvbUFuZFRvTG9jYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcbiAgLypcclxuICAgKiBhaXJwb2lydCBhbmQgdHJhaW4gc3RhdGlvbiBzZWFyY2hUeXBlXHJcbiAgICovXHJcblxyXG4gIGdldCBmcm9tTG9jYXRpb25UeXBlKCk6IFRheGlGb3JtTW9kZSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLmZyb21Mb2NhdGlvblR5cGU7XHJcbiAgfVxyXG4gIHNldCBmcm9tTG9jYXRpb25UeXBlKG1vZGU6IFRheGlGb3JtTW9kZSkge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmZyb21Mb2NhdGlvblR5cGUgPSBtb2RlO1xyXG4gIH1cclxuICBnZXQgdG9Mb2NhdGlvblR5cGUoKTogVGF4aUZvcm1Nb2RlIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMudG9Mb2NhdGlvblR5cGU7XHJcbiAgfVxyXG4gIHNldCB0b0xvY2F0aW9uVHlwZShtb2RlOiBUYXhpRm9ybU1vZGUpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy50b0xvY2F0aW9uVHlwZSA9IG1vZGU7XHJcbiAgfVxyXG4gIC8qXHJcbiAgICogc2VhcmNoQ3JpdGVyaWFcclxuICAgKi9cclxuICBwcml2YXRlIF9zZWFyY2hDcml0ZXJpYSA9IHRoaXMuY3JpdGVyaWFbMF07XHJcbiAgZ2V0IHNlYXJjaENyaXRlcmlhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaENyaXRlcmlhO1xyXG4gIH1cclxuXHJcbiAgc2V0IHNlYXJjaENyaXRlcmlhKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlYXJjaENyaXRlcmlhID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIG91dGJvdW5kRGF0ZVRpbWVcclxuICAgKi9cclxuICBwcml2YXRlIF9vdXRib3VuZERhdGVUaW1lOiBtb21lbnQuTW9tZW50ID0gdGhpcy5oZWxwZXJzLnJvdW5kKFxyXG4gICAgbW9tZW50KCksXHJcbiAgICBtb21lbnQuZHVyYXRpb24oMTUsICdtaW51dGVzJylcclxuICApO1xyXG4gIGdldCBvdXRib3VuZERhdGVUaW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX291dGJvdW5kRGF0ZVRpbWU7XHJcbiAgfVxyXG5cclxuICBzZXQgb3V0Ym91bmREYXRlVGltZSh2YWx1ZTogbW9tZW50Lk1vbWVudCkge1xyXG4gICAgdGhpcy5fb3V0Ym91bmREYXRlVGltZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiByZXR1cm5EYXRlVGltZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3JldHVybkRhdGVUaW1lOiBtb21lbnQuTW9tZW50ID0gdGhpcy5oZWxwZXJzLnJvdW5kKFxyXG4gICAgbW9tZW50KCksXHJcbiAgICBtb21lbnQuZHVyYXRpb24oMTUsICdtaW51dGVzJylcclxuICApO1xyXG4gIGdldCByZXR1cm5EYXRlVGltZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXR1cm5EYXRlVGltZTtcclxuICB9XHJcblxyXG4gIHNldCByZXR1cm5EYXRlVGltZSh2YWx1ZTogbW9tZW50Lk1vbWVudCkge1xyXG4gICAgdGhpcy5fcmV0dXJuRGF0ZVRpbWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogZmxpZ2h0TnVtYmVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZmxpZ2h0TnVtYmVyOiBzdHJpbmcgPSAnJztcclxuICBnZXQgZmxpZ2h0TnVtYmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZsaWdodE51bWJlcjtcclxuICB9XHJcbiAgc2V0IGZsaWdodE51bWJlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9mbGlnaHROdW1iZXIgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogYWlycG9ydFxyXG4gICAqL1xyXG5cclxuICBnZXQgYWlycG9ydCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMuYWlycG9ydDtcclxuICB9XHJcbiAgc2V0IGFpcnBvcnQodmFsdWU6IFRheGlBaXJwb3J0KSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuYWlycG9ydCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiB0ZXJtaW5hbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3Rlcm1pbmFsOiBzdHJpbmcgPSBudWxsO1xyXG4gIGdldCB0ZXJtaW5hbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXJtaW5hbDtcclxuICB9XHJcbiAgc2V0IHRlcm1pbmFsKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Rlcm1pbmFsID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90aW1lOiBzdHJpbmcgPSBudWxsO1xyXG4gIGdldCB0aW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGltZTtcclxuICB9XHJcblxyXG4gIHNldCB0aW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RpbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3VwZGF0ZURhdGVUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVwYXJ0cygpOiBtb21lbnQuTW9tZW50IHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMuZGVwYXJ0cztcclxuICB9XHJcblxyXG4gIHNldCBkZXBhcnRzKHZhbHVlOiBtb21lbnQuTW9tZW50KSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuZGVwYXJ0cyA9IHZhbHVlLmlzVmFsaWQgPyB2YWx1ZSA6IG51bGw7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuX2RhdGUgPSB0aGlzLmhlbHBlcnMubW9tZW50VG9OZ0RhdGUodmFsdWUpO1xyXG4gICAgICB0aGlzLl90aW1lID0gdGhpcy5oZWxwZXJzLmZvcm1hdFRpbWVDb2xvbih2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICAvLyBnZXQgZnJvbUxvY2F0aW9uKCk6IENhYkhpcmVMb2NhdGlvbiB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5fZnJvbUxvY2F0aW9uO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gc2V0IGZyb21Mb2NhdGlvbih2YWx1ZTogQ2FiSGlyZUxvY2F0aW9uKSB7XHJcbiAgLy8gICB0aGlzLl9mcm9tTG9jYXRpb24gPSB2YWx1ZTtcclxuICAvLyAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICAvLyB9XHJcblxyXG4gIC8vIGdldCB0b0xvY2F0aW9uKCk6IENhYkhpcmVMb2NhdGlvbiB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5fdG9Mb2NhdGlvbjtcclxuICAvLyB9XHJcblxyXG4gIC8vIHNldCB0b0xvY2F0aW9uKHZhbHVlOiBDYWJIaXJlTG9jYXRpb24pIHtcclxuICAvLyAgIHRoaXMuX3RvTG9jYXRpb24gPSB2YWx1ZTtcclxuICAvLyAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICAvLyB9XHJcblxyXG4gIGdldCBhZHVsdHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMuYWR1bHRzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGFkdWx0cyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuYWR1bHRzID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY2hpbGRyZW4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW47XHJcbiAgfVxyXG5cclxuICBzZXQgY2hpbGRyZW4odmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmNoaWxkcmVuID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaW5mYW50cygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5pbmZhbnRzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGluZmFudHModmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmluZmFudHMgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCBjb3VudHJ5Q29kZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5jb3VudHJ5Q29kZTtcclxuICB9XHJcblxyXG4gIHNldCBjb3VudHJ5Q29kZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuY291bnRyeUNvZGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCB2aWFzKCk6IENhYkhpcmVMb2NhdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLl92aWFzO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZpYXModmFsdWU6IENhYkhpcmVMb2NhdGlvbltdKSB7XHJcbiAgICB0aGlzLl92aWFzID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmlhc0Zyb20oKTogQWRkcmVzc0Zvcm0ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy52aWFzRnJvbTtcclxuICB9XHJcblxyXG4gIHNldCB2aWFzRnJvbSh2YWx1ZTogQWRkcmVzc0Zvcm0pIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy52aWFzRnJvbSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fdmlhc1swXSA9IHZhbHVlID8gdGhpcy5jcmVhdGVDYWJIaXJlTG9jYXRpb24odmFsdWUpIDogbnVsbDtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCB2aWFzVG8oKTogQWRkcmVzc0Zvcm0ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy52aWFzVG87XHJcbiAgfVxyXG5cclxuICBzZXQgdmlhc1RvKHZhbHVlOiBBZGRyZXNzRm9ybSkge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLnZpYXNUbyA9IHZhbHVlO1xyXG4gICAgdGhpcy5fdmlhc1sxXSA9IHZhbHVlID8gdGhpcy5jcmVhdGVDYWJIaXJlTG9jYXRpb24odmFsdWUpIDogbnVsbDtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCB2ZWhpY2xlVHlwZSgpOiBDYWJIaXJlVmVoaWNsZVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy52ZWhpY2xlVHlwZTtcclxuICB9XHJcblxyXG4gIHNldCB2ZWhpY2xlVHlwZSh2YWx1ZTogQ2FiSGlyZVZlaGljbGVUeXBlKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMudmVoaWNsZVR5cGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCBmcm9tQWRkcmVzcygpOiBBZGRyZXNzRm9ybSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLmZyb21BZGRyZXNzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGZyb21BZGRyZXNzKHZhbHVlOiBBZGRyZXNzRm9ybSkge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmZyb21BZGRyZXNzID0gdmFsdWU7XHJcbiAgICB0aGlzLl9mcm9tTG9jYXRpb24gPSB2YWx1ZSA/IHRoaXMuY3JlYXRlQ2FiSGlyZUxvY2F0aW9uKHZhbHVlKSA6IG51bGw7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZnJvbVN0YXRpb24oKTogUmFpbEFpcnBvcnQge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5mcm9tU3RhdGlvbjtcclxuICB9XHJcblxyXG4gIHNldCBmcm9tU3RhdGlvbih2YWx1ZTogUmFpbEFpcnBvcnQpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy5mcm9tU3RhdGlvbiA9IHZhbHVlO1xyXG5cclxuICAgIHRoaXMuX2Zyb21Mb2NhdGlvbiA9IHZhbHVlXHJcbiAgICAgID8ge1xyXG4gICAgICAgICAgYWRkcmVzczogdmFsdWUuZGVzdGluYXRpb24sXHJcbiAgICAgICAgICBwb3N0Y29kZTogdmFsdWUucG9zdGNvZGVcclxuICAgICAgICB9XHJcbiAgICAgIDogbnVsbDtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCB0b0FkZHJlc3MoKTogQWRkcmVzc0Zvcm0ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy50b0FkZHJlc3M7XHJcbiAgfVxyXG5cclxuICBzZXQgdG9BZGRyZXNzKHZhbHVlOiBBZGRyZXNzRm9ybSkge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLnRvQWRkcmVzcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5fdG9Mb2NhdGlvbiA9IHZhbHVlID8gdGhpcy5jcmVhdGVDYWJIaXJlTG9jYXRpb24odmFsdWUpIDogbnVsbDtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCB0b1N0YXRpb24oKTogUmFpbEFpcnBvcnQge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy50b1N0YXRpb247XHJcbiAgfVxyXG5cclxuICBzZXQgdG9TdGF0aW9uKHZhbHVlOiBSYWlsQWlycG9ydCkge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLnRvU3RhdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5fdG9Mb2NhdGlvbiA9IHZhbHVlXHJcbiAgICAgID8ge1xyXG4gICAgICAgICAgYWRkcmVzczogdmFsdWUuZGVzdGluYXRpb24sXHJcbiAgICAgICAgICBwb3N0Y29kZTogdmFsdWUucG9zdGNvZGVcclxuICAgICAgICB9XHJcbiAgICAgIDogbnVsbDtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjYWJmZXRjaGVyOiBCYXNlQ2FiaGlyZVF1b3RlRmV0Y2hlcjxDSF9RPixcclxuICAgIHByaXZhdGUgaGVscGVyczogQmFzZUhlbHBlclJvdXRpbmVzLFxyXG4gICAgc3RvcmFnZVNlcnZpY2U6IEJhc2VTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2UsXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzdG9yYWdlU2VydmljZSk7XHJcbiAgICBjb25zdCBkYXRhOiB7XHJcbiAgICAgIHRlbXBQYXJhbXM6IENhYkhpcmVUZW1wUGFyYW1zO1xyXG4gICAgfSA9IHN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25JdGVtKFxyXG4gICAgICBDYWJIaXJlRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUEFSQU1TXHJcbiAgICApIHx8IHtcclxuICAgICAgdGVtcFBhcmFtczoge30gYXMgQ2FiSGlyZVRlbXBQYXJhbXNcclxuICAgIH07XHJcblxyXG4gICAgLy8gY29uc3QgbW9tZW50RGF0ZVRpbWUgPSBkYXRhLnF1ZXJ5LmRlcGFydHNcclxuICAgIC8vICAgPyBtb21lbnQoZGF0YS5xdWVyeS5kZXBhcnRzKVxyXG4gICAgLy8gICA6IG1vbWVudCgpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlVGVtcFBhcmFtcyhzZWFyY2hTZXJ2aWNlLm1ha2VDYWJIaXJlUXVlcnkoZGF0YS50ZW1wUGFyYW1zKSk7XHJcblxyXG4gICAgaWYgKGRhdGEudGVtcFBhcmFtcy5mcm9tQWRkcmVzcykge1xyXG4gICAgICB0aGlzLmZyb21BZGRyZXNzID0gZGF0YS50ZW1wUGFyYW1zLmZyb21BZGRyZXNzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRhLnRlbXBQYXJhbXMudG9BZGRyZXNzKSB7XHJcbiAgICAgIHRoaXMudG9BZGRyZXNzID0gZGF0YS50ZW1wUGFyYW1zLnRvQWRkcmVzcztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2VhcmNoU2VydmljZS5zaG91bGRBZGRUcmF2ZWxsZXJTdWJzY3JpcHRpb24oKSkge1xyXG4gICAgICBzZWFyY2hTZXJ2aWNlLnRyYXZlbGxlckluZm9ybWF0aW9uLnN1YnNjcmliZShcclxuICAgICAgICAodHJhdmVsbGVyczogVHJhdmVsbGVyW10pID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhdmVsbGVycyA9IHRyYXZlbGxlcnM7XHJcbiAgICAgICAgICBjb25zdCBzcGxpdFRyYXZlbGxlcnMgPSB0aGlzLmhlbHBlcnMuc2VsZWN0ZWRUcmF2ZWxsZXJzKFxyXG4gICAgICAgICAgICB0cmF2ZWxsZXJzLFxyXG4gICAgICAgICAgICBTZXJ2aWNlVHlwZS5DYWJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnRlbXBQYXJhbXMuYWR1bHRzID0gc3BsaXRUcmF2ZWxsZXJzLmFkdWx0cy5sZW5ndGg7XHJcbiAgICAgICAgICB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW4gPSBzcGxpdFRyYXZlbGxlcnMuY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXN1bHRzID1cclxuICAgICAgc3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvbkl0ZW1Bc0xpc3Q8Q2FiaGlyZVF1b3RlUmVzdWx0QXJyYXk+KFxyXG4gICAgICAgIHRoaXMucmVzdWx0c1Nlc3Npb25OYW1lXHJcbiAgICAgICkgfHwgW107XHJcbiAgICB0aGlzLmZ1bGxSZXN1bHRzID0gcmVzdWx0cztcclxuICAgIHRoaXMuX2NoZWFwZXN0UmVzdWx0UHJpY2UgPSB0aGlzLnVwZGF0ZUxvd2VzdFByaWNlKHJlc3VsdHMpO1xyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQocmVzdWx0cyB8fCBbXSk7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICB0aGlzLm91dGJvdW5kVmlzaWJpbGl0eSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgdGhpcy5pbmJvdW5kVmlzaWJpbGl0eSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlc3VsdHNTZXNzaW9uTmFtZSA9XHJcbiAgICBDYWJIaXJlRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUkVTVUxUUztcclxuXHJcbiAgcHJvdGVjdGVkIHJlc2V0UXVlcnkoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZVRlbXBQYXJhbXModGhpcy5zZWFyY2hTZXJ2aWNlLm1ha2VDYWJIaXJlUXVlcnkoKSk7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRQYXJhbXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlc2V0UXVlcnkoKTtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KFtdKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzVmFsaWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9DaGVja3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRTZXNzaW9uSXRlbShcclxuICAgICAgQ2FiSGlyZUVudGVycHJpc2VTZWFyY2guU1RPUkFHRV9TRVNTSU9OX1BBUkFNUyxcclxuICAgICAge1xyXG4gICAgICAgIHRlbXBQYXJhbXM6IHRoaXMudGVtcFBhcmFtc1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzID0gW107XHJcbiAgICBpZiAoIXRoaXMudGVtcFBhcmFtcy5mcm9tQWRkcmVzcykge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5wdXNoKCdGcm9tIC0gRW50ZXIgYSBsb2NhdGlvbiBvciBwb3N0Y29kZS4nKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMudGVtcFBhcmFtcy50b0FkZHJlc3MpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZXMucHVzaCgnVG8gLSBFbnRlciBhIGxvY2F0aW9uIG9yIHBvc3Rjb2RlLicpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnRlbXBQYXJhbXMuZGVwYXJ0cy51bml4KCkgPCBtb21lbnQoKS51bml4KCkpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZXMucHVzaCgnVGF4aSBqb3VybmV5IGNhbm5vdCBiZSBpbiB0aGUgcGFzdC4nKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50ZW1wUGFyYW1zLmFkdWx0cyArIHRoaXMudGVtcFBhcmFtcy5jaGlsZHJlbiA8IDEpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZXMucHVzaCgnVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCAxIHRyYXZlbGxlcicpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNWYWxpZC5uZXh0KHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzLmxlbmd0aCA9PT0gMCk7XHJcbiAgICB0aGlzLm1lc3NhZ2VzLm5leHQodGhpcy52YWxpZGF0aW9uTWVzc2FnZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlRGF0ZVRpbWUoKSB7XHJcbiAgICBpZiAodGhpcy5fZGF0ZSAmJiB0aGlzLl90aW1lKSB7XHJcbiAgICAgIHRoaXMuZGVwYXJ0cyA9IHRoaXMuaGVscGVycy5uZ0RhdGVUb01vbWVudCh0aGlzLl9kYXRlLCB0aGlzLl90aW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXJ0U2VhcmNoKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQoW10pO1xyXG4gICAgaWYgKHRoaXMuaXNWYWxpZC52YWx1ZSkge1xyXG4gICAgICBjb25zdCBxdWVyeSA9IHRoaXMuZ2V0U2VhcmNoUXVlcnkoKTtcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNhdmVSZWNlbnRTZWFyY2godGhpcy5nZXRSZWNlbnRTZWFyY2hRdWVyeShxdWVyeSkpO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0U2VhcmNoKFxyXG4gICAgICAgIHRoaXMuY2FiZmV0Y2hlci5mZXRjaExpc3QoXHJcbiAgICAgICAgICB0aGlzLmhlbHBlcnMucmVtb3ZlTnVsbHM8UXVlcnlTZWFyY2hDYWJIaXJlQXJncz4ocXVlcnkpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSZWNlbnRTZWFyY2hRdWVyeShxdWVyeTogUXVlcnlTZWFyY2hDYWJIaXJlQXJncyk6IFNhdmVSZWNlbnRTZWFyY2hNdXRhdGlvblZhcmlhYmxlcyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUuQ2FiLFxyXG4gICAgICBzZWFyY2hBcmdzOiBxdWVyeSxcclxuICAgICAgdHJhdmVsRGF0ZTogdGhpcy5kZXBhcnRzLmZvcm1hdCgpLFxyXG4gICAgICB0cmF2ZWxsZXJzOiB0aGlzLmhlbHBlcnMuZ2V0VHJhdmVsbGVyc0lkKHRoaXMudHJhdmVsbGVycylcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzdGFydFJlY2VudFNlYXJjaChyZWNlbnRTZWFyY2g6IFJlY2VudFNlYXJjaCk6IHZvaWR7XHJcbiAgICB0aGlzLmRlcGFydHMgPSBtb21lbnQocmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MuZGVwYXJ0cyk7XHJcbiAgICB0aGlzLnZlaGljbGVUeXBlID0gcmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MudmVoaWNsZVR5cGU7XHJcblxyXG4gICAgY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuZ2V0U3RhdGlvbk9yQWlycG9ydChyZWNlbnRTZWFyY2guc2VhcmNoQXJncy5mcm9tTG9jYXRpb24uYWRkcmVzcyksXHJcbiAgICAgIHRoaXMuZ2V0U3RhdGlvbk9yQWlycG9ydChyZWNlbnRTZWFyY2guc2VhcmNoQXJncy50b0xvY2F0aW9uLmFkZHJlc3MpXHJcbiAgICBdKS5zdWJzY3JpYmUoKFtmcm9tU3RhdGlvbk9yQWlycG9ydCwgdG9TdGF0aW9uT3JBaXJwb3J0XSkgPT4ge1xyXG4gICAgICBpZiAoZnJvbVN0YXRpb25PckFpcnBvcnQubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5mcm9tU3RhdGlvbiA9IHRoaXMuZ2V0U3RhdGlvbk9yQWlycG9ydEFkcmVzcyhmcm9tU3RhdGlvbk9yQWlycG9ydFswXSk7XHJcbiAgICAgICAgdGhpcy5mcm9tQWRkcmVzcyA9IHRoaXMuY29udmVydFN0YXRpb25PckFpcnBvcnRMb2NhdGlvbihyZWNlbnRTZWFyY2guc2VhcmNoQXJncy5mcm9tTG9jYXRpb24uYWRkcmVzcywgcmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MuZnJvbUxvY2F0aW9uLnBvc3Rjb2RlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZyb21BZGRyZXNzID0gdGhpcy5jb252ZXJ0QWRkcmVzc0xvY2F0aW9uKHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLmZyb21Mb2NhdGlvbi5hZGRyZXNzLCByZWNlbnRTZWFyY2guc2VhcmNoQXJncy5mcm9tTG9jYXRpb24ucG9zdGNvZGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0b1N0YXRpb25PckFpcnBvcnQubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy50b1N0YXRpb24gPSB0aGlzLmdldFN0YXRpb25PckFpcnBvcnRBZHJlc3ModG9TdGF0aW9uT3JBaXJwb3J0WzBdKTtcclxuICAgICAgICB0aGlzLnRvQWRkcmVzcyA9IHRoaXMuY29udmVydFN0YXRpb25PckFpcnBvcnRMb2NhdGlvbihyZWNlbnRTZWFyY2guc2VhcmNoQXJncy50b0xvY2F0aW9uLmFkZHJlc3MsIHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnRvTG9jYXRpb24ucG9zdGNvZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9BZGRyZXNzID0gdGhpcy5jb252ZXJ0QWRkcmVzc0xvY2F0aW9uKHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnRvTG9jYXRpb24uYWRkcmVzcywgcmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MudG9Mb2NhdGlvbi5wb3N0Y29kZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYocmVjZW50U2VhcmNoLnNlYXJjaEFyZ3Mudmlhc1swXSkge1xyXG4gICAgICAgIHRoaXMuZ2V0U3RhdGlvbk9yQWlycG9ydChyZWNlbnRTZWFyY2guc2VhcmNoQXJncy52aWFzWzBdLmFkZHJlc3MpLnN1YnNjcmliZSgodmlhRnJvbVN0YXRpb25PckFpcnBvcnQpID0+IHtcclxuICAgICAgICBpZiAodmlhRnJvbVN0YXRpb25PckFpcnBvcnQubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnZpYXNGcm9tID0gdGhpcy5jb252ZXJ0U3RhdGlvbk9yQWlycG9ydExvY2F0aW9uKHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnZpYXNbMF0uYWRkcmVzcywgcmVjZW50U2VhcmNoLnNlYXJjaEFyZ3Mudmlhc1swXS5wb3N0Y29kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlhc0Zyb20gPSB0aGlzLmNvbnZlcnRBZGRyZXNzTG9jYXRpb24ocmVjZW50U2VhcmNoLnNlYXJjaEFyZ3Mudmlhc1swXS5hZGRyZXNzLCByZWNlbnRTZWFyY2guc2VhcmNoQXJncy52aWFzWzBdLnBvc3Rjb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZihyZWNlbnRTZWFyY2guc2VhcmNoQXJncy52aWFzWzFdKSB7XHJcbiAgICAgIHRoaXMuZ2V0U3RhdGlvbk9yQWlycG9ydChyZWNlbnRTZWFyY2guc2VhcmNoQXJncy52aWFzWzFdLmFkZHJlc3MpLnN1YnNjcmliZSgodmlhVG9TdGF0aW9uT3JBaXJwb3J0KSA9PiB7XHJcbiAgICAgICAgaWYgKHZpYVRvU3RhdGlvbk9yQWlycG9ydC5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMudmlhc1RvID0gdGhpcy5jb252ZXJ0U3RhdGlvbk9yQWlycG9ydExvY2F0aW9uKHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnZpYXNbMV0uYWRkcmVzcywgcmVjZW50U2VhcmNoLnNlYXJjaEFyZ3Mudmlhc1sxXS5wb3N0Y29kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlhc1RvID0gdGhpcy5jb252ZXJ0QWRkcmVzc0xvY2F0aW9uKHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnZpYXNbMV0uYWRkcmVzcywgcmVjZW50U2VhcmNoLnNlYXJjaEFyZ3Mudmlhc1sxXS5wb3N0Y29kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zdGFydFNlYXJjaGVzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFF1ZXJ5KCk6IFF1ZXJ5U2VhcmNoQ2FiSGlyZUFyZ3Mge1xyXG4gICAgY29uc3QgcXVlcnk6IFF1ZXJ5U2VhcmNoQ2FiSGlyZUFyZ3MgPSB7XHJcbiAgICAgIGFkdWx0czogdGhpcy50ZW1wUGFyYW1zLmFkdWx0cyxcclxuICAgICAgY2hpbGRyZW46IHRoaXMudGVtcFBhcmFtcy5jaGlsZHJlbixcclxuICAgICAgZGVwYXJ0czogdGhpcy50ZW1wUGFyYW1zLmRlcGFydHMsXHJcbiAgICAgIGZyb21Mb2NhdGlvbjogdGhpcy5jcmVhdGVDYWJIaXJlTG9jYXRpb24odGhpcy50ZW1wUGFyYW1zLmZyb21BZGRyZXNzKSxcclxuICAgICAgdG9Mb2NhdGlvbjogdGhpcy5jcmVhdGVDYWJIaXJlTG9jYXRpb24odGhpcy50ZW1wUGFyYW1zLnRvQWRkcmVzcyksXHJcbiAgICAgIGluZmFudHM6IDAsXHJcbiAgICAgIHZlaGljbGVUeXBlOiB0aGlzLnZlaGljbGVUeXBlLFxyXG4gICAgICB2aWFzOiB0aGlzLl92aWFzLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmhlbHBlcnMucmVtb3ZlTnVsbHM8UXVlcnlTZWFyY2hDYWJIaXJlQXJncz4ocXVlcnkpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlT3V0Ym91bmRBZGRyZXNzKGxvY2F0aW9uOiBhbnksIHBsYWNlRGVzY3JpcHRpb24/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy5mcm9tQWRkcmVzcyA9IHRoaXMuZ2V0QWRkcmVzc0Zvcm1hdChcclxuICAgICAgbG9jYXRpb24sXHJcbiAgICAgIHBsYWNlRGVzY3JpcHRpb25cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVJbmJvdW5kQWRkcmVzcyhsb2NhdGlvbjogYW55LCBwbGFjZURlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMudG9BZGRyZXNzID0gdGhpcy5nZXRBZGRyZXNzRm9ybWF0KFxyXG4gICAgICBsb2NhdGlvbixcclxuICAgICAgcGxhY2VEZXNjcmlwdGlvblxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2FiSGlyZUxvY2F0aW9uKGxvY2F0aW9uOiBBZGRyZXNzRm9ybSk6IENhYkhpcmVMb2NhdGlvbiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhZGRyZXNzOiBbXHJcbiAgICAgICAgbG9jYXRpb24/LlRlcm1pbmFsLFxyXG4gICAgICAgIGxvY2F0aW9uPy5Ib3VzZSxcclxuICAgICAgICBsb2NhdGlvbj8uU3RyZWV0LFxyXG4gICAgICAgIGxvY2F0aW9uPy5Ub3duLFxyXG4gICAgICAgIGxvY2F0aW9uPy5Db3VudHJ5XHJcbiAgICAgIF1cclxuICAgICAgICAuZmlsdGVyKChpdGVtOiBzdHJpbmcpOiBib29sZWFuID0+ICEhaXRlbSlcclxuICAgICAgICAuam9pbignLCcpLFxyXG4gICAgICBwb3N0Y29kZTogbG9jYXRpb24/LlBvc3RDb2RlXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbWF0Y2hBZGRyZXNzZXMoKSB7XHJcbiAgICB0aGlzLl90b0xvY2F0aW9uID0gdGhpcy5jcmVhdGVDYWJIaXJlTG9jYXRpb24odGhpcy50ZW1wUGFyYW1zLnRvQWRkcmVzcyk7XHJcbiAgICB0aGlzLl9mcm9tTG9jYXRpb24gPSB0aGlzLmNyZWF0ZUNhYkhpcmVMb2NhdGlvbihcclxuICAgICAgdGhpcy50ZW1wUGFyYW1zLmZyb21BZGRyZXNzXHJcbiAgICApO1xyXG4gICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gIH1cclxuXHJcbiAgc29ydEJ5KGFzYz86IGJvb2xlYW4pIHtcclxuICAgIGxldCByZXN1bHRzID0gdGhpcy5oZWxwZXJzLmNsb25lKHRoaXMuZnVsbFJlc3VsdHMpO1xyXG4gICAgaWYgKGFzYykge1xyXG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5zb3J0KFxyXG4gICAgICAgIChhOiBDYWJIaXJlUXVvdGUsIGI6IENhYkhpcmVRdW90ZSkgPT4gYi5wcmljZSAtIGEucHJpY2VcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdHMgPSByZXN1bHRzLnNvcnQoXHJcbiAgICAgICAgKGE6IENhYkhpcmVRdW90ZSwgYjogQ2FiSGlyZVF1b3RlKSA9PiBhLnByaWNlIC0gYi5wcmljZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQocmVzdWx0cyk7XHJcbiAgfVxyXG5cclxuICAvLyAhIHN0dWZmIHRvIGdvIGluIGEgcG9zdGNvZGUgc2VydmllXHJcblxyXG4gIGdldEFkZHJlc3NGb3JtYXQobG9jYXRpb246IGFueSwgcGxhY2VEZXNjcmlwdGlvbj86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgSG91c2U6IHRoaXMuZ2V0QWRkcmVzc0Zyb21QbGFjZURldGFpbHMobG9jYXRpb24sIFtcclxuICAgICAgICAnZmxvb3InLFxyXG4gICAgICAgICdzdHJlZXRfbnVtYmVyJyxcclxuICAgICAgICAncHJlbWlzZSdcclxuICAgICAgXSksXHJcbiAgICAgIFN0cmVldDogdGhpcy5nZXRBZGRyZXNzRnJvbVBsYWNlRGV0YWlscyhsb2NhdGlvbiwgW1xyXG4gICAgICAgICdyb3V0ZScsXHJcbiAgICAgICAgJ3N0cmVldF9uYW1lJyxcclxuICAgICAgICAnZXN0YWJsaXNobWVudCdcclxuICAgICAgXSksXHJcbiAgICAgIFRvd246IHRoaXMuZ2V0QWRkcmVzc0Zyb21QbGFjZURldGFpbHMobG9jYXRpb24sIFtcclxuICAgICAgICAncG9zdGFsX3Rvd24nLFxyXG4gICAgICAgICdhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzInLFxyXG4gICAgICAgICdsb2NhbGl0eSdcclxuICAgICAgXSksXHJcbiAgICAgIFBvc3RDb2RlOiB0aGlzLmdldEFkZHJlc3NGcm9tUGxhY2VEZXRhaWxzKGxvY2F0aW9uLCBbJ3Bvc3RhbF9jb2RlJ10pLFxyXG4gICAgICBDb3VudHJ5OiB0aGlzLmdldEFkZHJlc3NGcm9tUGxhY2VEZXRhaWxzKGxvY2F0aW9uLCBbJ2NvdW50cnknXSksXHJcbiAgICAgIHBsYWNlRGVzY3JpcHRpb25cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRBZGRyZXNzRnJvbVBsYWNlRGV0YWlscyhwbGFjZURldGFpbHM6IGFueSwgdHlwZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIGxldCBhZGRyZXNzUHJvcCA9IG51bGw7XHJcbiAgICBpZiAocGxhY2VEZXRhaWxzICYmIEFycmF5LmlzQXJyYXkocGxhY2VEZXRhaWxzKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXMpIHtcclxuICAgICAgICBjb25zdCBwcm9wID0gcGxhY2VEZXRhaWxzLmZpbHRlcigocGQpID0+IHtcclxuICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBkLnR5cGVzKSAmJiBwZC50eXBlcy5pbmNsdWRlcyh0eXBlKTtcclxuICAgICAgICB9KVswXTtcclxuXHJcbiAgICAgICAgaWYgKHByb3ApIHtcclxuICAgICAgICAgIGFkZHJlc3NQcm9wID0gcHJvcC5sb25nX25hbWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBhZGRyZXNzUHJvcDtcclxuICB9XHJcblxyXG4gIGdldEFkZHJlc3NGcm9tQWlycG9ydERldGFpbHMoXHJcbiAgICBhaXJwb3J0RGV0YWlsczogTG9jYXRpb25EZXRhaWwsXHJcbiAgICBhaXJwb3J0TmFtZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBjb25zb2xlLmxvZyhhaXJwb3J0RGV0YWlscyk7XHJcbiAgICBsZXQgYWRkcmVzczogQWRkcmVzc0Zvcm0gPSBudWxsO1xyXG4gICAgaWYgKGFpcnBvcnREZXRhaWxzKSB7XHJcbiAgICAgIGFkZHJlc3MgPSB7XHJcbiAgICAgICAgQ291bnRyeTogYWlycG9ydERldGFpbHMuY291bnRyeSxcclxuICAgICAgICBTdHJlZXQ6IGFpcnBvcnREZXRhaWxzLnJvYWQsXHJcbiAgICAgICAgUG9zdENvZGU6IGFpcnBvcnREZXRhaWxzLnBvc3Rjb2RlLFxyXG4gICAgICAgIFRvd246IGFpcnBvcnREZXRhaWxzLmNpdHksXHJcbiAgICAgICAgcGxhY2VEZXNjcmlwdGlvbjogYWlycG9ydE5hbWUsXHJcbiAgICAgICAgSG91c2U6IGFpcnBvcnROYW1lXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWRkcmVzcztcclxuICB9XHJcblxyXG4gIHNldExvY2F0aW9uRnJvbUFpcnBvcnQoYWlycG9ydERldGFpbHM6IExvY2F0aW9uRGV0YWlsLCBhaXJwb3J0TmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy5nZXRBZGRyZXNzRnJvbUFpcnBvcnREZXRhaWxzKFxyXG4gICAgICBhaXJwb3J0RGV0YWlscyxcclxuICAgICAgYWlycG9ydE5hbWVcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSBUYXhpRm9ybU1vZGUuU1RBVElPTikge1xyXG4gICAgICBpZiAodGhpcy5haXJwb3J0U2VhcmNoVHlwZSA9PT0gQWlycG9ydFNlYXJjaE1vZGUuUElDS1VQKSB7XHJcbiAgICAgICAgdGhpcy5mcm9tQWRkcmVzcyA9IGFkZHJlc3M7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b0FkZHJlc3MgPSBhZGRyZXNzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRUb1NlbGVjdGVkUGxhY2VzKGFkZHJlc3M6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBsYWNlcy5wdXNoKGFkZHJlc3MpO1xyXG4gIH1cclxuXHJcbiAgc2V0T3V0Ym91bmRGb3JtVmlzaWJpbGl0eShzaG93Rm9ybTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5vdXRib3VuZFZpc2liaWxpdHkubmV4dChzaG93Rm9ybSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbmJvdW5kRm9ybVZpc2liaWxpdHkoc2hvd0Zvcm06IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaW5ib3VuZFZpc2liaWxpdHkubmV4dChzaG93Rm9ybSk7XHJcbiAgfVxyXG5cclxuICBnZXRPdXRib3VuZEZvcm1WaXNpYmlsaXR5KCk6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5vdXRib3VuZFZpc2liaWxpdHk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmJvdW5kRm9ybVZpc2liaWxpdHkoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmluYm91bmRWaXNpYmlsaXR5O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRnJvbVByZXZpb3VzU2VhcmNoZXMoXHJcbiAgICBwcmV2aW91c0l0ZW1zOiBSZWNvcmQ8U2VydmljZVR5cGUsIEJhc2tldEl0ZW0+XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBmbGlnaHRJdGVtOiBTZWFyY2hGbGlnaHRzVjJRdWVyeVZhcmlhYmxlcyA9XHJcbiAgICAgIHByZXZpb3VzSXRlbXNbU2VydmljZVR5cGUuRmxpZ2h0XT8uc2VhcmNoUXVlcnk7XHJcbiAgICBpZiAoZmxpZ2h0SXRlbSkge1xyXG4gICAgICAvLyBUT0RPIGZsaWdodHMgaGF2ZW4ndCBiZWVuIGRvbmUgeWV0LlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VHJhbnNUeXBlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0cmFuc1R5cGVJbmRleCA9IHRoaXMudGVtcFBhcmFtcy52ZWhpY2xlVHlwZTtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zVHlwZXMuZmluZCgoeCkgPT4geC5rZXkgPT09IHRyYW5zVHlwZUluZGV4KT8udmFsdWUgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBnZXRQYXNzZW5nZXJzID0gKCk6IHN0cmluZyA9PiB7XHJcbiAgICBjb25zdCBhZHVsdHMgPSB0aGlzLmFkdWx0cztcclxuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgIGxldCBwYXNzZW5nZXJzID0gYCR7YWR1bHRzfSBBZHVsdGA7XHJcblxyXG4gICAgaWYgKE51bWJlcihhZHVsdHMpICE9PSAxKSB7XHJcbiAgICAgIHBhc3NlbmdlcnMgKz0gJ3MnO1xyXG4gICAgfVxyXG4gICAgaWYgKE51bWJlcihjaGlsZHJlbikgPT09IDEpIHtcclxuICAgICAgcGFzc2VuZ2VycyArPSBgLCAke2NoaWxkcmVufSBDaGlsZGA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKE51bWJlcihjaGlsZHJlbikgPiAxKSB7XHJcbiAgICAgIHBhc3NlbmdlcnMgKz0gYCwgJHtjaGlsZHJlbn0gQ2hpbGRyZW5gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhc3NlbmdlcnM7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGF0aW9uT3JBaXJwb3J0KHRleHQ6IHN0cmluZyk6IE9ic2VydmFibGU8TG9jYXRpb25EZXRhaWxzW10+e1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS5nZXRTdGF0aW9uc0FuZEFpcnBvcnRzTGlzdCh0ZXh0LCBudWxsLCB0aGlzLmlzTG9hZGluZykucGlwZShcclxuICAgICAgdGFrZSgxKSxcclxuICAgICAgbWFwKChyZXM6IExvY2F0aW9uRGV0YWlsc1tdKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGF0aW9uT3JBaXJwb3J0QWRyZXNzKHN0YXRpb25PckFpcnBvcnQ6IExvY2F0aW9uRGV0YWlscyk6IGFueSB7XHJcbiAgICBpZiAoc3RhdGlvbk9yQWlycG9ydC50eXBlID09PSBMb2NhdGlvblR5cGVzLkFpcnBvcnQpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBzdGF0aW9uT3JBaXJwb3J0Lm5hbWVcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAoc3RhdGlvbk9yQWlycG9ydC50eXBlID09PSBMb2NhdGlvblR5cGVzLlRyYWluU3RhdGlvbikge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IHN0YXRpb25PckFpcnBvcnQubmFtZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRTdGF0aW9uT3JBaXJwb3J0TG9jYXRpb24oYWRkcmVzczogc3RyaW5nLCBwb3N0Y29kZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBIb3VzZTogYWRkcmVzcyxcclxuICAgICAgUG9zdENvZGU6IHBvc3Rjb2RlLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0QWRkcmVzc0xvY2F0aW9uKGFkZHJlc3M6IHN0cmluZywgcG9zdGNvZGU6IHN0cmluZykge1xyXG4gICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBhZGRyZXNzLnNwbGl0KCcsJyk7XHJcbiAgICBsZXQgc3RyZWV0ID0gJyc7XHJcbiAgICBsZXQgdG93biA9IGxvY2F0aW9uQXJyYXlbbG9jYXRpb25BcnJheS5sZW5ndGgtMl07XHJcbiAgICBcclxuICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCBsb2NhdGlvbkFycmF5Lmxlbmd0aC0yOyBpbmRleCsrKSB7XHJcbiAgICAgIHN0cmVldCArPSBsb2NhdGlvbkFycmF5W2luZGV4XSArICcgJztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIENvdW50cnk6IGFkZHJlc3Muc2xpY2UoLTIpLFxyXG4gICAgICBIb3VzZTogbG9jYXRpb25BcnJheVswXSxcclxuICAgICAgUG9zdENvZGU6IHBvc3Rjb2RlLFxyXG4gICAgICBTdHJlZXQ6IHN0cmVldCxcclxuICAgICAgVG93bjogdG93blxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkQ2FiSGlyZVRvQmFza2V0KFxyXG4gICAgY2FiSGlyZVF1b3RlOiBDYWJIaXJlUXVvdGUsXHJcbiAgICBjYWJIaXJlUXVlcnk6IFNlYXJjaENhYkhpcmVRdWVyeVZhcmlhYmxlc1xyXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKGNhYkhpcmVRdW90ZS51bmF2YWlsYWJsZSkge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGludEJhc2tldDogSW50ZXJuYWxCYXNrZXRJbnRlcmZhY2UgPVxyXG4gICAgICBhd2FpdCB0aGlzLmJhc2tldFNlcnZpY2UuZ2V0RGVmYXVsdEJhc2tldCgpO1xyXG4gICAgY29uc3QgYmFza2V0ID0gaW50QmFza2V0Py5zdWJqZWN0LnZhbHVlO1xyXG4gICAgaWYgKGJhc2tldCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5iYXNrZXRTZXJ2aWNlLmFkZFRvQmFza2V0KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGFkdWx0czogY2FiSGlyZVF1ZXJ5LmFkdWx0cyxcclxuICAgICAgICAgIGJhc2tldDogYmFza2V0LmlkLFxyXG4gICAgICAgICAgc2VydmljZTogY2FiSGlyZVF1b3RlLnNvdXJjZUlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBkZXRhaWw6IHtcclxuICAgICAgICAgICAgaWQ6IGNhYkhpcmVRdW90ZS5pZCxcclxuICAgICAgICAgICAgZGVwYXJ0czogY2FiSGlyZVF1ZXJ5LmRlcGFydHMuZm9ybWF0KCksXHJcbiAgICAgICAgICAgIHN1cHBsaWVyTmFtZTogY2FiSGlyZVF1b3RlLnN1cHBsaWVyTmFtZSxcclxuICAgICAgICAgICAgZXN0aW1hdGVkQ08yOiBjYWJIaXJlUXVvdGUuZXN0aW1hdGVkQ08yLFxyXG4gICAgICAgICAgICBmcm9tTG9jYXRpb246IHtcclxuICAgICAgICAgICAgICBhZGRyZXNzOiBjYWJIaXJlUXVlcnkuZnJvbUxvY2F0aW9uLmFkZHJlc3MsXHJcbiAgICAgICAgICAgICAgcG9zdGNvZGU6IGNhYkhpcmVRdWVyeS5mcm9tTG9jYXRpb24ucG9zdGNvZGVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdG9Mb2NhdGlvbjoge1xyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IGNhYkhpcmVRdWVyeS50b0xvY2F0aW9uLmFkZHJlc3MsXHJcbiAgICAgICAgICAgICAgcG9zdGNvZGU6IGNhYkhpcmVRdWVyeS50b0xvY2F0aW9uLnBvc3Rjb2RlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHZlaGljbGVUeXBlOiBjYWJIaXJlUXVlcnkudmVoaWNsZVR5cGVcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBwcmljZTogY2FiSGlyZVF1b3RlLnByaWNlLFxyXG4gICAgICAgICAgY3VycmVuY3k6IGNhYkhpcmVRdW90ZS5jdXJyZW5jeSxcclxuICAgICAgICAgIHNlYXJjaFF1ZXJ5OiBjYWJIaXJlUXVlcnksXHJcbiAgICAgICAgICBjbzJQZXJJdGVtOiBjYWJIaXJlUXVvdGUuY28yUGVySXRlbSxcclxuICAgICAgICAgIGNvMlBlclBhc3NlbmdlcjogY2FiSGlyZVF1b3RlLmNvMlBlclBhc3NlbmdlcixcclxuICAgICAgICAgIG91dGJvdW5kRGF0ZTogY2FiSGlyZVF1ZXJ5LmRlcGFydHMuZm9ybWF0KClcclxuICAgICAgICB9LFxyXG4gICAgICAgIGludEJhc2tldCxcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2UsXHJcbiAgICAgICAgdGhpcy50cmF2ZWxsZXJzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTsgLy8gVE9ETyBzaG91bGQgdGhpcyB0aHJvdyBhbiBlcnJvcj9cclxuICB9XHJcblxyXG4gIHN3aXRjaEZyb21BbmRUb0xvY2F0aW9uKCkge1xyXG4gICAgY29uc3QgbmV3RnJvbUFkZHJlc3MgPSB7IC4uLnRoaXMudG9BZGRyZXNzIH07XHJcbiAgICBjb25zdCBuZXdUb0FkZHJlc3MgPSB7IC4uLnRoaXMuZnJvbUFkZHJlc3MgfTtcclxuICAgIHRoaXMuZnJvbUFkZHJlc3MgPSBuZXdGcm9tQWRkcmVzcztcclxuICAgIHRoaXMudG9BZGRyZXNzID0gbmV3VG9BZGRyZXNzO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTG93ZXN0UHJpY2UocmVzdWx0czogQ2FiSGlyZVF1b3RlW10pOiBJQ2hlYXBlc3RQcmljZSB7XHJcbiAgICBpZiAoIXJlc3VsdHMubGVuZ3RoKSByZXR1cm4gbnVsbDtcclxuICAgIGNvbnN0IGN1cnJlbmN5ID0gcmVzdWx0c1swXS5jdXJyZW5jeTtcclxuICAgIHJldHVybiByZXN1bHRzLnJlZHVjZShcclxuICAgICAgKGNoZWFwZXN0UHJpY2U6IElDaGVhcGVzdFByaWNlLCByZXN1bHQ6IENhYkhpcmVRdW90ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByaWNlID0gcmVzdWx0LnByaWNlO1xyXG4gICAgICAgIGlmIChjaGVhcGVzdFByaWNlLmFtb3VudCA+IHByaWNlKSBjaGVhcGVzdFByaWNlLmFtb3VudCA9IHByaWNlO1xyXG4gICAgICAgIHJldHVybiBjaGVhcGVzdFByaWNlO1xyXG4gICAgICB9LFxyXG4gICAgICB7IGFtb3VudDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsIGN1cnJlbmN5Q29kZTogY3VycmVuY3kgfVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|