@sabstravtech/obtservices 0.0.19020100 → 0.0.22041208
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/angular/components/with-component.d.ts +2 -1
- package/angular/fetchers.d.ts +17 -12
- package/angular/lib/vendor/classes/helpers.d.ts +8 -0
- package/angular/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/apply-jit-flight-rules.d.ts +7 -0
- package/angular/lib/vendor/fetchers/basket-fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/conferma-office.fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/flight-fare-rules.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/flight-quote.fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/get-conferma-room-images.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-covid-microsite-token.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-flight-seat-map-fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-rail-live-departures.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-user-favourite-searches.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/irl-discount-card-fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/search-airlines-fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/search-airports-fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/search-conferma-cities.fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/user-fetcher.d.ts +2 -1
- package/angular/lib/vendor/services/my-bookings.service.d.ts +4 -3
- package/angular/lib/vendor/services/search.service.d.ts +15 -3
- package/angular/lib/vendor/services/user.service.d.ts +4 -3
- package/angular/lib/vendor/types/graphql.angular.types.d.ts +1062 -1062
- package/angular/lib/vendor/updaters/cancel-booking-updater.d.ts +6 -0
- package/angular/lib/vendor/updaters/confirm-messages-updater.d.ts +6 -0
- package/angular/lib/vendor/updaters/remove-favourite-search.updater.d.ts +6 -0
- package/angular/lib/vendor/updaters/save-favourite-search.updater.d.ts +6 -0
- package/angular/sabstravtech-obtservices-angular.d.ts +14 -9
- package/angular/sabstravtech-obtservices-angular.metadata.json +1 -1
- package/angular/updaters.d.ts +3 -0
- package/base/classes.d.ts +1 -0
- package/base/fetchers.d.ts +27 -3
- package/base/interfaces.d.ts +3 -3
- package/base/lib/vendor/classes/base-enterprise.d.ts +5 -2
- package/base/lib/vendor/classes/bookable-basket.d.ts +1 -1
- package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +8 -7
- package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +11 -2
- package/base/lib/vendor/classes/enviroment.d.ts +2 -0
- package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +26 -69
- package/base/lib/vendor/classes/flight-enterprise-search.d.ts +39 -22
- package/base/lib/vendor/classes/helpers.d.ts +49 -6
- package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +19 -8
- package/base/lib/vendor/classes/irl-direction.enum.d.ts +4 -0
- package/base/lib/vendor/classes/irl-enterprise-search.d.ts +285 -30
- package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +7 -3
- package/base/lib/vendor/classes/management-info-and-valid.d.ts +1 -0
- package/base/lib/vendor/classes/modal-types.enum.d.ts +4 -0
- package/base/lib/vendor/classes/parking-enterprise-search.d.ts +7 -3
- package/base/lib/vendor/classes/rail-direction.enum.d.ts +2 -2
- package/base/lib/vendor/classes/rail-enterprise-search.d.ts +83 -54
- package/base/lib/vendor/classes/rail-index-to-ticket.d.ts +9 -0
- package/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +1 -0
- package/base/lib/vendor/classes/user-favourite.enum.d.ts +3 -0
- package/base/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.d.ts +23 -0
- package/base/lib/vendor/fetchers/apply-jit-flight-rules.d.ts +21 -0
- package/base/lib/vendor/fetchers/basket-fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/conferma-office.fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/flight-fare-rules.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/flight-quote.fetcher.d.ts +6 -2
- package/base/lib/vendor/fetchers/get-conferma-room-images.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-covid-microsite-token.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-flight-seat-map-fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-rail-live-departures.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-user-favourite-searches.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/irl-discount-card-fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/list-fetchable-enterprise.d.ts +1 -1
- package/base/lib/vendor/fetchers/object-fetchable-enterprise.d.ts +3 -1
- package/base/lib/vendor/fetchers/search-airlines.fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/search-airports-fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/search-conferma-cities.fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/user-fetcher.d.ts +2 -1
- package/base/lib/vendor/interfaces/Icabhire-enterprise-search.d.ts +3 -2
- package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +4 -1
- package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +4 -3
- package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +8 -4
- package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +15 -4
- package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +8 -22
- package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +15 -10
- package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +4 -2
- package/base/lib/vendor/interfaces/Imybookings.service.d.ts +2 -1
- package/base/lib/vendor/interfaces/Iparking-enterprise-search.d.ts +3 -2
- package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +31 -31
- package/base/lib/vendor/interfaces/Isearch.service.d.ts +12 -3
- package/base/lib/vendor/interfaces/Iuser.service.d.ts +3 -1
- package/base/lib/vendor/interfaces/cab-hire-search-arg.interface.d.ts +10 -0
- package/base/lib/vendor/interfaces/car-hire-search-arg.interface.d.ts +42 -0
- package/base/lib/vendor/interfaces/enable-fresh-chat-interface.d.ts +7 -0
- package/base/lib/vendor/interfaces/eurostar-search-arg.interface.d.ts +6 -0
- package/base/lib/vendor/interfaces/flight-filters.interface.d.ts +1 -0
- package/base/lib/vendor/interfaces/flight-search-args.interface.d.ts +8 -0
- package/base/lib/vendor/interfaces/hotel-recent-search-args.interface.d.ts +4 -0
- package/base/lib/vendor/interfaces/irl-search-arg.interface.d.ts +5 -0
- package/base/lib/vendor/interfaces/rail-basket-item.interface.d.ts +11 -5
- package/base/lib/vendor/interfaces/rail-recent-search-args.interface.d.ts +16 -11
- package/base/lib/vendor/interfaces/rail-selected-ticket.interface.d.ts +4 -9
- package/base/lib/vendor/interfaces/summary-interface.d.ts +23 -0
- package/base/lib/vendor/interfaces/terms-and-conditions.interface.d.ts +4 -0
- package/base/lib/vendor/interfaces/user.data.d.ts +1 -0
- package/base/lib/vendor/services/enterprise-basket.service.d.ts +5 -3
- package/base/lib/vendor/services/hotel-avallibility.service.d.ts +5 -3
- package/base/lib/vendor/services/my-bookings.service.d.ts +6 -3
- package/base/lib/vendor/services/search.service.d.ts +46 -10
- package/base/lib/vendor/services/user.service.d.ts +9 -4
- package/base/lib/vendor/types/graphql.types.d.ts +982 -1051
- package/base/lib/vendor/types/types.d.ts +187 -14
- package/base/lib/vendor/updaters/cancel-booking-updater.d.ts +20 -0
- package/base/lib/vendor/updaters/confirm-messages-updater.d.ts +19 -0
- package/base/lib/vendor/updaters/remove-favourite-search-updater.d.ts +19 -0
- package/base/lib/vendor/updaters/save-favourite-search-updater.d.ts +20 -0
- package/base/sabstravtech-obtservices-base.metadata.json +1 -1
- package/base/updaters.d.ts +4 -0
- package/bundles/sabstravtech-obtservices-angular.umd.js +763 -158
- package/bundles/sabstravtech-obtservices-angular.umd.js.map +1 -1
- package/bundles/sabstravtech-obtservices-angular.umd.min.js +1 -1
- package/bundles/sabstravtech-obtservices-angular.umd.min.js.map +1 -1
- package/bundles/sabstravtech-obtservices-base.umd.js +8805 -7342
- package/bundles/sabstravtech-obtservices-base.umd.js.map +1 -1
- package/bundles/sabstravtech-obtservices-base.umd.min.js +2 -2
- package/bundles/sabstravtech-obtservices-base.umd.min.js.map +1 -1
- package/esm2015/angular/components/basket-panel.js +9 -5
- package/esm2015/angular/components/with-component.js +7 -4
- package/esm2015/angular/fetchers.js +18 -13
- package/esm2015/angular/lib/vendor/classes/helpers.js +21 -4
- package/esm2015/angular/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/apply-jit-flight-rules.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/basket-fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/conferma-office.fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/flight-fare-rules.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/flight-quote.fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/get-conferma-room-images.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-covid-microsite-token.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-flight-seat-map-fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-rail-live-departures.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-user-favourite-searches.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/irl-discount-card-fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/search-airlines-fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/search-airports-fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/search-conferma-cities.fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/user-fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/services/my-bookings.service.js +8 -5
- package/esm2015/angular/lib/vendor/services/search.service.js +69 -33
- package/esm2015/angular/lib/vendor/services/user.service.js +9 -6
- package/esm2015/angular/lib/vendor/types/graphql.angular.types.js +1467 -2520
- package/esm2015/angular/lib/vendor/updaters/cancel-booking-updater.js +22 -0
- package/esm2015/angular/lib/vendor/updaters/confirm-messages-updater.js +22 -0
- package/esm2015/angular/lib/vendor/updaters/remove-favourite-search.updater.js +22 -0
- package/esm2015/angular/lib/vendor/updaters/save-favourite-search.updater.js +22 -0
- package/esm2015/angular/obtservices.module.js +17 -1
- package/esm2015/angular/sabstravtech-obtservices-angular.js +15 -10
- package/esm2015/angular/updaters.js +4 -1
- package/esm2015/base/classes.js +2 -1
- package/esm2015/base/fetchers.js +28 -4
- package/esm2015/base/interfaces.js +4 -4
- package/esm2015/base/lib/vendor/classes/base-enterprise.js +14 -14
- package/esm2015/base/lib/vendor/classes/bookable-basket.js +11 -6
- package/esm2015/base/lib/vendor/classes/cabhire-enterprise-search.js +76 -103
- package/esm2015/base/lib/vendor/classes/carhire-enterprise-search.js +121 -18
- package/esm2015/base/lib/vendor/classes/enviroment.js +3 -1
- package/esm2015/base/lib/vendor/classes/eurostar-enterprise-search.js +540 -677
- package/esm2015/base/lib/vendor/classes/flight-enterprise-search.js +676 -298
- package/esm2015/base/lib/vendor/classes/helpers.js +260 -70
- package/esm2015/base/lib/vendor/classes/hotel-enterprise-search.js +289 -123
- package/esm2015/base/lib/vendor/classes/irl-direction.enum.js +6 -0
- package/esm2015/base/lib/vendor/classes/irl-enterprise-search.js +412 -694
- package/esm2015/base/lib/vendor/classes/lounges-enterprise-search.js +98 -5
- package/esm2015/base/lib/vendor/classes/management-info-and-valid.js +49 -30
- package/esm2015/base/lib/vendor/classes/modal-types.enum.js +5 -1
- package/esm2015/base/lib/vendor/classes/parking-enterprise-search.js +61 -5
- package/esm2015/base/lib/vendor/classes/rail-direction.enum.js +3 -3
- package/esm2015/base/lib/vendor/classes/rail-enterprise-search.js +1024 -682
- package/esm2015/base/lib/vendor/classes/rail-index-to-ticket.js +48 -0
- package/esm2015/base/lib/vendor/classes/supplementary-booking-info-impl.js +16 -4
- package/esm2015/base/lib/vendor/classes/user-favourite.enum.js +4 -1
- package/esm2015/base/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.js +22 -0
- package/esm2015/base/lib/vendor/fetchers/apply-jit-flight-rules.js +10 -0
- package/esm2015/base/lib/vendor/fetchers/basket-fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/conferma-office.fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/flight-fare-rules.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/flight-quote.fetcher.js +12 -4
- package/esm2015/base/lib/vendor/fetchers/get-conferma-room-images.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-covid-microsite-token.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-flight-seat-map-fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-rail-live-departures.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-user-favourite-searches.fetcher.js +10 -0
- package/esm2015/base/lib/vendor/fetchers/irl-discount-card-fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/list-fetchable-enterprise.js +5 -3
- package/esm2015/base/lib/vendor/fetchers/object-fetchable-enterprise.js +4 -3
- package/esm2015/base/lib/vendor/fetchers/search-airlines.fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/search-airports-fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/search-conferma-cities.fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/user-fetcher.js +3 -3
- package/esm2015/base/lib/vendor/interfaces/Icabhire-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Icarhire-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ienterprise-basket.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ieurostar-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iflight-enterprise-search.js +7 -1
- package/esm2015/base/lib/vendor/interfaces/Ihotel-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iirl-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ilounges-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Imybookings.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iparking-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Irail-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Isearch.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iuser.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/cab-hire-search-arg.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/car-hire-search-arg.interface.js +3 -0
- package/esm2015/base/lib/vendor/interfaces/enable-fresh-chat-interface.js +3 -0
- package/esm2015/base/lib/vendor/interfaces/eurostar-search-arg.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/flight-filters.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/flight-search-args.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/hotel-recent-search-args.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/irl-search-arg.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/rail-basket-item.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/rail-recent-search-args.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/rail-selected-ticket.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/summary-interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/terms-and-conditions.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/user.data.js +1 -1
- package/esm2015/base/lib/vendor/services/enterprise-basket.service.js +107 -57
- package/esm2015/base/lib/vendor/services/hotel-avallibility.service.js +43 -5
- package/esm2015/base/lib/vendor/services/my-bookings.service.js +6 -2
- package/esm2015/base/lib/vendor/services/search.service.js +110 -46
- package/esm2015/base/lib/vendor/services/user.service.js +13 -2
- package/esm2015/base/lib/vendor/types/graphql.types.js +35 -28
- package/esm2015/base/lib/vendor/types/types.js +35 -2
- package/esm2015/base/lib/vendor/updaters/cancel-booking-updater.js +11 -0
- package/esm2015/base/lib/vendor/updaters/confirm-messages-updater.js +11 -0
- package/esm2015/base/lib/vendor/updaters/remove-favourite-search-updater.js +11 -0
- package/esm2015/base/lib/vendor/updaters/save-favourite-search-updater.js +11 -0
- package/esm2015/base/updaters.js +5 -1
- package/fesm2015/sabstravtech-obtservices-angular.js +1554 -2350
- package/fesm2015/sabstravtech-obtservices-angular.js.map +1 -1
- package/fesm2015/sabstravtech-obtservices-base.js +8088 -6752
- package/fesm2015/sabstravtech-obtservices-base.js.map +1 -1
- package/package.json +1 -1
- package/base/lib/vendor/interfaces/rail-journey-leg.interface.d.ts +0 -6
- package/base/lib/vendor/interfaces/rail-ticket-group.interface.d.ts +0 -26
- package/base/lib/vendor/interfaces/rail-ticket-groups.interface.d.ts +0 -4
- package/esm2015/base/lib/vendor/interfaces/rail-journey-leg.interface.js +0 -2
- package/esm2015/base/lib/vendor/interfaces/rail-ticket-group.interface.js +0 -2
- package/esm2015/base/lib/vendor/interfaces/rail-ticket-groups.interface.js +0 -2
|
@@ -16,14 +16,15 @@ export class BaseHotelAvalibilityService {
|
|
|
16
16
|
readFromSession() {
|
|
17
17
|
const data = this.sessionStorage.getSessionItem(SESSION_NAME) || {};
|
|
18
18
|
Object.values(data).forEach((item) => {
|
|
19
|
-
this.behaviours[item.hotelId] =
|
|
20
|
-
new BehaviorSubject(item);
|
|
19
|
+
this.behaviours[item.hotelId] = new BehaviorSubject(item);
|
|
21
20
|
});
|
|
22
21
|
return data;
|
|
23
22
|
}
|
|
24
23
|
reset() {
|
|
25
24
|
this.data = {};
|
|
26
25
|
this.currencies = {};
|
|
26
|
+
this.toFetch = [];
|
|
27
|
+
this.fetching.next(false);
|
|
27
28
|
this.sessionStorage.removeSessionItem(SESSION_NAME);
|
|
28
29
|
Object.values(this.data).forEach((item) => {
|
|
29
30
|
this.behaviours[item.hotelId].complete();
|
|
@@ -31,7 +32,23 @@ export class BaseHotelAvalibilityService {
|
|
|
31
32
|
});
|
|
32
33
|
this.behaviours = {};
|
|
33
34
|
}
|
|
34
|
-
getAvailabilityForId(hotel) {
|
|
35
|
+
getAvailabilityForId(hotel, fullHotel) {
|
|
36
|
+
// console.log('+++ Fetching with full hotel data: ', fullHotel, ' +++');
|
|
37
|
+
var _a;
|
|
38
|
+
if ((_a = fullHotel === null || fullHotel === void 0 ? void 0 : fullHotel.availableRates) === null || _a === void 0 ? void 0 : _a.rooms) {
|
|
39
|
+
// add this data to the behaviours array and return it (if it dosen't already exist)
|
|
40
|
+
if (this.behaviours[hotel.hotel]) {
|
|
41
|
+
return (this.behaviours[hotel.hotel]);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// add the data to the array
|
|
45
|
+
this.behaviours[hotel.hotel] = new BehaviorSubject(null);
|
|
46
|
+
const newBehaviourObject = fullHotel.availableRates;
|
|
47
|
+
newBehaviourObject.minprice = fullHotel.availableRates.rooms[0] ? fullHotel.availableRates.rooms[0].total : 0;
|
|
48
|
+
this.behaviours[hotel.hotel].next(newBehaviourObject);
|
|
49
|
+
return (this.behaviours[hotel.hotel]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
35
52
|
this.data = this.data || this.readFromSession();
|
|
36
53
|
return (this.behaviours[hotel.hotel] ||
|
|
37
54
|
this._getAvailabilityForId(hotel));
|
|
@@ -42,7 +59,23 @@ export class BaseHotelAvalibilityService {
|
|
|
42
59
|
return (((_a = this.behaviours[hotel.id]) === null || _a === void 0 ? void 0 : _a.value) ||
|
|
43
60
|
{});
|
|
44
61
|
}
|
|
62
|
+
updateHotel(hotel) {
|
|
63
|
+
if (!hotel.availableRates) {
|
|
64
|
+
hotel.availableRates = this.getAvailabilityValue(hotel);
|
|
65
|
+
}
|
|
66
|
+
return hotel;
|
|
67
|
+
}
|
|
68
|
+
setHotelAvalability(hotel) {
|
|
69
|
+
if (!hotel.availableRates) {
|
|
70
|
+
if (hotel === null || hotel === void 0 ? void 0 : hotel.availableRates.hotelId) {
|
|
71
|
+
this.data[hotel.availableRates.hotelId] = hotel.availableRates;
|
|
72
|
+
this.behaviours[hotel.availableRates.hotelId].next(hotel.availableRates);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return hotel;
|
|
76
|
+
}
|
|
45
77
|
_getAvailabilityForId(hotel) {
|
|
78
|
+
// console.log('+++ Fetching availabilty for: ', hotel, ' +++');
|
|
46
79
|
if (this.timeout) {
|
|
47
80
|
window.clearTimeout(this.timeout);
|
|
48
81
|
this.timeout = 0;
|
|
@@ -124,7 +157,7 @@ export class BaseHotelAvalibilityService {
|
|
|
124
157
|
hotel.minprice = Math.min(...roomPrices);
|
|
125
158
|
hotel.maxprice = Math.max(...roomPrices);
|
|
126
159
|
hotel.rooms = hotel.rooms;
|
|
127
|
-
if (hotel === null || hotel === void 0 ? void 0 : hotel.hotelId) {
|
|
160
|
+
if ((hotel === null || hotel === void 0 ? void 0 : hotel.hotelId) && this.behaviours[hotel.hotelId]) {
|
|
128
161
|
this.data[hotel.hotelId] = hotel;
|
|
129
162
|
this.behaviours[hotel.hotelId].next(hotel);
|
|
130
163
|
}
|
|
@@ -139,6 +172,11 @@ export class BaseHotelAvalibilityService {
|
|
|
139
172
|
else {
|
|
140
173
|
this.fetching.next(false);
|
|
141
174
|
}
|
|
175
|
+
}, error => {
|
|
176
|
+
console.error(`+++ Error recovering hotel availabilty: ${error} - reseting availabilty +++`);
|
|
177
|
+
this.fetching.next(false);
|
|
178
|
+
return null;
|
|
179
|
+
// this.reset();
|
|
142
180
|
});
|
|
143
181
|
}
|
|
144
182
|
maxPriceForCurrency(currency) {
|
|
@@ -162,4 +200,4 @@ export class BaseHotelAvalibilityService {
|
|
|
162
200
|
return count;
|
|
163
201
|
}
|
|
164
202
|
}
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtYXZhbGxpYmlsaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2hvdGVsLWF2YWxsaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBcUJ0QyxNQUFNLFlBQVksR0FBRyw0QkFBNEIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sMkJBQTJCO0lBYXRDLFlBQ1Usa0JBQXVELEVBQ3ZELGNBQWtDLEVBQ2xDLE9BQTJCLEVBQzNCLFdBQTRCO1FBSDVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUM7UUFDdkQsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWQ5QixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLGVBQVUsR0FFZCxFQUFFLENBQUM7UUFFQyxZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUN2QyxhQUFRLEdBQTZCLElBQUksZUFBZSxDQUM3RCxLQUFLLENBQ04sQ0FBQztRQUNGLGVBQVUsR0FBb0IsRUFBRSxDQUFDO0lBTTlCLENBQUM7SUFFSSxlQUFlO1FBQ3JCLE1BQU0sSUFBSSxHQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFhLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWlDLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQzNCLElBQUksZUFBZSxD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QzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBZ0I7UUFDbEMsT0FBTyxDQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUztTQUMzQixDQUNGLENBQUMsUUFBUSxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxFQUFFO29CQUNmLEtBQUssRUFBRSxDQUFDO2lCQUNUO2FBQ0Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VFbnZpcm9ubWVudCB9IGZyb20gJy4uL2NsYXNzZXMvZW52aXJvbWVudCc7XHJcbmltcG9ydCB7IEJhc2VIZWxwZXJSb3V0aW5lcyB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVycyc7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXIsXHJcbiAgSG90ZWxBdmFsaW5pbGl0eUZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvaG90ZWwtYXZhbGlhYmlsaXR5LWZldGNoZXInO1xyXG5pbXBvcnQgeyBIb3RlbERldGFpbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lob3RlbC1lbnRlcnByaXNlLXNlYXJjaCc7XHJcbmltcG9ydCB7IFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzIH0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3VycmVuY3lEZXRhaWxzLFxyXG4gIEhvdGVsQXZhbGliaWxpdHlRdWVyeSxcclxuICBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQsXHJcbiAgSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXksXHJcbiAgSG90ZWxSb29tV2l0aExvY2FsUHJpY2VcclxufSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG50eXBlIFN0b3JlZERhdGEgPSB7IFtrZXk6IHN0cmluZ106IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCB9O1xyXG5cclxuY29uc3QgU0VTU0lPTl9OQU1FID0gJ3Jlc3VsdHNfaG90ZWxfYXZhbGxpYmlsaXR5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlSG90ZWxBdmFsaWJpbGl0eVNlcnZpY2U8XHJcbiAgUSBleHRlbmRzIEhvdGVsQXZhbGluaWxpdHlGZXRjaGVyVHlwZVxyXG4+IHtcclxuICBwcml2YXRlIGRhdGE6IFN0b3JlZERhdGEgPSBudWxsO1xyXG4gIHByaXZhdGUgYmVoYXZpb3Vyczoge1xyXG4gICAgW2tleTogc3RyaW5nXTogQmVoYXZpb3JTdWJqZWN0PEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdD47XHJcbiAgfSA9IHt9O1xyXG4gIHByaXZhdGUgdGltZW91dDogbnVtYmVyO1xyXG4gIHByaXZhdGUgdG9GZXRjaDogSG90ZWxBdmFsaWJpbGl0eVF1ZXJ5W10gPSBbXTtcclxuICBwdWJsaWMgZmV0Y2hpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oXHJcbiAgICBmYWxzZVxyXG4gICk7XHJcbiAgY3VycmVuY2llczogQ3VycmVuY3lEZXRhaWxzID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF2YWxpYmlsaXR5RmV0aGNlcjogQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXI8UT4sXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdG9yYWdlOiBCYXNlU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGhlbHBlcnM6IEJhc2VIZWxwZXJSb3V0aW5lcyxcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnQ6IEJhc2VFbnZpcm9ubWVudFxyXG4gICkge31cclxuXHJcbiAgcHJpdmF0ZSByZWFkRnJvbVNlc3Npb24oKSB7XHJcbiAgICBjb25zdCBkYXRhID1cclxuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRTZXNzaW9uSXRlbTxTdG9yZWREYXRhPihTRVNTSU9OX05BTUUpIHx8IHt9O1xyXG4gICAgT2JqZWN0LnZhbHVlcyhkYXRhKS5mb3JFYWNoKChpdGVtOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5iZWhhdmlvdXJzW2l0ZW0uaG90ZWxJZF0gPVxyXG4gICAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PihpdGVtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuZGF0YSA9IHt9O1xyXG4gICAgdGhpcy5jdXJyZW5jaWVzID0ge307XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZVNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSk7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuZGF0YSkuZm9yRWFjaCgoaXRlbTogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tpdGVtLmhvdGVsSWRdLmNvbXBsZXRlKCk7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLmJlaGF2aW91cnNbaXRlbS5ob3RlbElkXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5iZWhhdmlvdXJzID0ge307XHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgfHwgdGhpcy5yZWFkRnJvbVNlc3Npb24oKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddIHx8XHJcbiAgICAgIHRoaXMuX2dldEF2YWlsYWJpbGl0eUZvcklkKGhvdGVsKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsOiBIb3RlbERldGFpbHMpOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhIHx8IHRoaXMucmVhZEZyb21TZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaWQgYXMgc3RyaW5nXT8udmFsdWUgfHxcclxuICAgICAgKHt9IGFzIEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZmV0Y2hpbmcudmFsdWUpIHtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoXHJcbiAgICAgICAgdGhpcy5mZXRjaEF2YWxpbGJpbGl0eS5iaW5kKHRoaXMpLFxyXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0b0ZldGNoSG90ZWxUaW1lb3V0XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvRmV0Y2gucHVzaChob3RlbCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmZldGNoaW5nLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudG9GZXRjaC5sZW5ndGggPj0gdGhpcy5lbnZpcm9ubWVudC5udW1iZXJPZkhvdGVsc1RvRmV0Y2hcclxuICAgICkge1xyXG4gICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXSA9XHJcbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PihudWxsKTtcclxuICAgIHJldHVybiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmV0Y2hBdmFsaWxiaWxpdHkoKSB7XHJcbiAgICB0aGlzLmZldGNoaW5nLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvRmV0Y2ggPSB0aGlzLnRvRmV0Y2guc2xpY2UoXHJcbiAgICAgIDAsXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoXHJcbiAgICApO1xyXG4gICAgdGhpcy50b0ZldGNoID0gdGhpcy50b0ZldGNoLnNsaWNlKHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZygnSG90ZWxzIHN0aWxsIHRvIGZldGNoJywgdGhpcy50b0ZldGNoLmxlbmd0aCk7XHJcblxyXG4gICAgY29uc3QgcXVlcnk6IFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzID0ge1xyXG4gICAgICBob3RlbDogdG9GZXRjaC5tYXAoKGhvdGVsKSA9PiBob3RlbC5ob3RlbCkgYXMgc3RyaW5nW10sXHJcbiAgICAgIGN1cnJlbmN5OiB0b0ZldGNoWzBdLmN1cnJlbmN5LFxyXG4gICAgICBlbmREYXRlOiB0b0ZldGNoWzBdLmVuZERhdGUsXHJcbiAgICAgIHN0YXJ0RGF0ZTogdG9GZXRjaFswXS5zdGFydERhdGUsXHJcbiAgICAgIG9jY3VwYW50czogdG9GZXRjaFswXS5vY2N1cGFudHMsXHJcbiAgICAgIHJvb21zOiB0b0ZldGNoWzBdLnJvb21zXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYXZhbGliaWxpdHlGZXRoY2VyXHJcbiAgICAgIC5mZXRjaExpc3QocXVlcnkpXHJcbiAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGhvdGVsczogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXkpID0+IHtcclxuICAgICAgICBob3RlbHMuZm9yRWFjaCgoaG90ZWw6IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaG90ZWwgPSB0aGlzLmhlbHBlcnMuY2xvbmUoaG90ZWwpO1xyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSAoaG90ZWwucm9vbXMgfHwgW10pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHJvb206IEhvdGVsUm9vbVdpdGhMb2NhbFByaWNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb20udG90YWwgPiAwO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAubWFwKChyb29tOiBIb3RlbFJvb21XaXRoTG9jYWxQcmljZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJvb20gPSB0aGlzLmhlbHBlcnMuY2xvbmU8SG90ZWxSb29tV2l0aExvY2FsUHJpY2U+KHJvb20pO1xyXG4gICAgICAgICAgICAgIHJvb20uTG9jYWxQcmljZSA9IHJvb20uY3VycmVuY3lDb252ZXJzaW9uXHJcbiAgICAgICAgICAgICAgICA/IHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmxvY2FsVG90YWxcclxuICAgICAgICAgICAgICAgIDogcm9vbS50b3RhbDtcclxuICAgICAgICAgICAgICByb29tLkxvY2FsQ3VycmVuY3kgPSByb29tLmN1cnJlbmN5Q29udmVyc2lvblxyXG4gICAgICAgICAgICAgICAgPyByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5sb2NhbENvZGVcclxuICAgICAgICAgICAgICAgIDogcm9vbS5jdXJyZW5jeUNvZGU7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb207XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaG90ZWwuY3VycmVuY2llcyA9IGhvdGVsLnJvb21zLnJlZHVjZShcclxuICAgICAgICAgICAgKGRldGFpbHM6IEN1cnJlbmN5RGV0YWlscywgcm9vbTogSG90ZWxSb29tV2l0aExvY2FsUHJpY2UpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocm9vbS5jdXJyZW5jeUNvbnZlcnNpb24pIHtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0gPSBkZXRhaWxzW1xyXG4gICAgICAgICAgICAgICAgICByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXHJcbiAgICAgICAgICAgICAgICBdIHx8IHtcclxuICAgICAgICAgICAgICAgICAgbWF4cHJpY2U6IE51bWJlci5NSU5fVkFMVUUsXHJcbiAgICAgICAgICAgICAgICAgIG1pbnByaWNlOiBOdW1iZXIuTUFYX1ZBTFVFXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgZGV0YWlsc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXS5tYXhwcmljZSA9XHJcbiAgICAgICAgICAgICAgICAgIE1hdGgubWF4KFxyXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWlucHJpY2UgPVxyXG4gICAgICAgICAgICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdLm1pbnByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZFRvdGFsXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdID0gdGhpc1xyXG4gICAgICAgICAgICAgICAgICAuY3VycmVuY2llc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIG1heHByaWNlOiBOdW1iZXIuTUlOX1ZBTFVFLFxyXG4gICAgICAgICAgICAgICAgICBtaW5wcmljZTogTnVtYmVyLk1BWF9WQUxVRVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5taW5wcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWlucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5tYXhwcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRldGFpbHM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHt9IGFzIEN1cnJlbmN5RGV0YWlsc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnN0IHJvb21QcmljZXMgPSBob3RlbC5yb29tcy5tYXAoXHJcbiAgICAgICAgICAgIHRoaXMuaGVscGVycy5tYXBGaWVsZEZyb21PYmplY3Q8c3RyaW5nLCBudW1iZXI+KCd0b3RhbCcpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKCFyb29tUHJpY2VzLmxlbmd0aCkgcm9vbVByaWNlcy5wdXNoKDApO1xyXG4gICAgICAgICAgaG90ZWwubWlucHJpY2UgPSBNYXRoLm1pbiguLi5yb29tUHJpY2VzKTtcclxuICAgICAgICAgIGhvdGVsLm1heHByaWNlID0gTWF0aC5tYXgoLi4ucm9vbVByaWNlcyk7XHJcblxyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSBob3RlbC5yb29tcztcclxuICAgICAgICAgIGlmIChob3RlbD8uaG90ZWxJZCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFbaG90ZWwuaG90ZWxJZF0gPSBob3RlbDtcclxuICAgICAgICAgICAgdGhpcy5iZWhhdmlvdXJzW2hvdGVsLmhvdGVsSWRdLm5leHQoaG90ZWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyB0aGlzLnNlc3Npb25TdG9yYWdlLnNldFNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSwgdGhpcy5kYXRhKTtcclxuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnNldFNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSwgaG90ZWxzKTtcclxuICAgICAgICBpZiAodGhpcy50b0ZldGNoLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5KCk7XHJcbiAgICAgICAgICB9LCB0aGlzLmVudmlyb25tZW50LmhvdGVsQXZhbGliaWxpdHlUaW1lb3V0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5mZXRjaGluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbWF4UHJpY2VGb3JDdXJyZW5jeShjdXJyZW5jeTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmN1cnJlbmNpZXNbY3VycmVuY3ldIHx8IHtcclxuICAgICAgICBtYXhwcmljZTogTnVtYmVyLk1BWF9WQUxVRSxcclxuICAgICAgICBtaW5wcmljZTogTnVtYmVyLk1JTl9WQUxVRVxyXG4gICAgICB9XHJcbiAgICApLm1heHByaWNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIC0gcmV0dXJuIHRoZSBudW1iZXIgb2YgaG90ZWxzIHRoYXQgaGF2ZSBhIHByaWNlIChwcnBuIHZhbHVlKVxyXG4gICAqL1xyXG4gIG51bWJlck9mSG90ZWxzV2l0aFByaWNlKCk6IG51bWJlciB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmRhdGEpKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlPy5wcnBuKSB7XHJcbiAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtYXZhbGxpYmlsaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2hvdGVsLWF2YWxsaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBeUJ0QyxNQUFNLFlBQVksR0FBRyw0QkFBNEIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sMkJBQTJCO0lBYXRDLFlBQ1Usa0JBQXVELEVBQ3ZELGNBQWtDLEVBQ2xDLE9BQTJCLEVBQzNCLFdBQTRCO1FBSDVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUM7UUFDdkQsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWQ5QixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLGVBQVUsR0FFZCxFQUFFLENBQUM7UUFFQyxZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUN2QyxhQUFRLEdBQTZCLElBQUksZUFBZSxDQUM3RCxLQUFLLENBQ04sQ0FBQztRQUNGLGVBQVUsR0FBb0IsRUFBRSxDQUFDO0lBTTlCLENBQUM7SUFFSSxlQUFlO1FBQ3JCLE1BQU0sSUFBSSxHQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFhLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FD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YixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BELElBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksRUFBRTtvQkFDZixLQUFLLEVBQUUsQ0FBQztpQkFDVDthQUNGO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlRW52aXJvbm1lbnQgfSBmcm9tICcuLi9jbGFzc2VzL2Vudmlyb21lbnQnO1xyXG5pbXBvcnQgeyBCYXNlSGVscGVyUm91dGluZXMgfSBmcm9tICcuLi9jbGFzc2VzL2hlbHBlcnMnO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VIb3RlbEF2YWxpYmlsaXR5UXVvdGVGZXRjaGVyLFxyXG4gIEhvdGVsQXZhbGluaWxpdHlGZXRjaGVyVHlwZVxyXG59IGZyb20gJy4uL2ZldGNoZXJzL2hvdGVsLWF2YWxpYWJpbGl0eS1mZXRjaGVyJztcclxuaW1wb3J0IHtcclxuICBIb3RlbEF2YWlsYWJpbGl0eSxcclxuICBIb3RlbEl0aW5lcmFyeSxcclxuICBRdWVyeUdldE11bHRpcGxlSG90ZWxzQXZhaWxhYmlsaXR5QXJnc1xyXG59IGZyb20gJy4uL3R5cGVzL2dyYXBocWwudHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gIEN1cnJlbmN5RGV0YWlscyxcclxuICBIb3RlbEF2YWxpYmlsaXR5UXVlcnksXHJcbiAgSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0LFxyXG4gIEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdEFycmF5LFxyXG4gIEhvdGVsRGV0YWlscyxcclxuICBIb3RlbFJvb21XaXRoTG9jYWxQcmljZVxyXG59IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuXHJcbmltcG9ydCB7IEJhc2VTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbnR5cGUgU3RvcmVkRGF0YSA9IHsgW2tleTogc3RyaW5nXTogSG90ZWxBdmFpbGFiaWxpdHkgfTtcclxuXHJcbmNvbnN0IFNFU1NJT05fTkFNRSA9ICdyZXN1bHRzX2hvdGVsX2F2YWxsaWJpbGl0eSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZUhvdGVsQXZhbGliaWxpdHlTZXJ2aWNlPFxyXG4gIFEgZXh0ZW5kcyBIb3RlbEF2YWxpbmlsaXR5RmV0Y2hlclR5cGVcclxuPiB7XHJcbiAgcHJpdmF0ZSBkYXRhOiBTdG9yZWREYXRhID0gbnVsbDtcclxuICBwcml2YXRlIGJlaGF2aW91cnM6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IEJlaGF2aW9yU3ViamVjdDxIb3RlbEF2YWlsYWJpbGl0eT47XHJcbiAgfSA9IHt9O1xyXG4gIHByaXZhdGUgdGltZW91dDogbnVtYmVyO1xyXG4gIHByaXZhdGUgdG9GZXRjaDogSG90ZWxBdmFsaWJpbGl0eVF1ZXJ5W10gPSBbXTtcclxuICBwdWJsaWMgZmV0Y2hpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oXHJcbiAgICBmYWxzZVxyXG4gICk7XHJcbiAgY3VycmVuY2llczogQ3VycmVuY3lEZXRhaWxzID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF2YWxpYmlsaXR5RmV0aGNlcjogQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXI8UT4sXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdG9yYWdlOiBCYXNlU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGhlbHBlcnM6IEJhc2VIZWxwZXJSb3V0aW5lcyxcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnQ6IEJhc2VFbnZpcm9ubWVudCxcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgcmVhZEZyb21TZXNzaW9uKCkge1xyXG4gICAgY29uc3QgZGF0YSA9XHJcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0U2Vzc2lvbkl0ZW08U3RvcmVkRGF0YT4oU0VTU0lPTl9OQU1FKSB8fCB7fTtcclxuICAgIE9iamVjdC52YWx1ZXMoZGF0YSkuZm9yRWFjaCgoaXRlbTogSG90ZWxBdmFpbGFiaWxpdHkpID0+IHtcclxuICAgICAgdGhpcy5iZWhhdmlvdXJzW2l0ZW0uaG90ZWxJZF0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhvdGVsQXZhaWxhYmlsaXR5PihcclxuICAgICAgICBpdGVtXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmRhdGEgPSB7fTtcclxuICAgIHRoaXMuY3VycmVuY2llcyA9IHt9O1xyXG4gICAgdGhpcy50b0ZldGNoID0gW107XHJcbiAgICB0aGlzLmZldGNoaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVTZXNzaW9uSXRlbShTRVNTSU9OX05BTUUpO1xyXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmRhdGEpLmZvckVhY2goKGl0ZW06IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCkgPT4ge1xyXG4gICAgICB0aGlzLmJlaGF2aW91cnNbaXRlbS5ob3RlbElkXS5jb21wbGV0ZSgpO1xyXG4gICAgICBkZWxldGUgdGhpcy5iZWhhdmlvdXJzW2l0ZW0uaG90ZWxJZF07XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYmVoYXZpb3VycyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgZ2V0QXZhaWxhYmlsaXR5Rm9ySWQoXHJcbiAgICBob3RlbDogSG90ZWxBdmFsaWJpbGl0eVF1ZXJ5LFxyXG4gICAgZnVsbEhvdGVsPzogSG90ZWxJdGluZXJhcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnKysrIEZldGNoaW5nIHdpdGggZnVsbCBob3RlbCBkYXRhOiAnLCBmdWxsSG90ZWwsICcgKysrJyk7XHJcblxyXG4gICAgaWYgKGZ1bGxIb3RlbD8uYXZhaWxhYmxlUmF0ZXM/LnJvb21zKSB7XHJcbiAgICAgIC8vIGFkZCB0aGlzIGRhdGEgdG8gdGhlIGJlaGF2aW91cnMgYXJyYXkgYW5kIHJldHVybiBpdCAoaWYgaXQgZG9zZW4ndCBhbHJlYWR5IGV4aXN0KVxyXG5cclxuICAgICAgaWYgKHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddKSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gYWRkIHRoZSBkYXRhIHRvIHRoZSBhcnJheVxyXG4gICAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQ+KG51bGwpO1xyXG5cclxuICAgICAgICBjb25zdCBuZXdCZWhhdmlvdXJPYmplY3Q6IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCA9IGZ1bGxIb3RlbC5hdmFpbGFibGVSYXRlcztcclxuICAgICAgICBuZXdCZWhhdmlvdXJPYmplY3QubWlucHJpY2UgPSBmdWxsSG90ZWwuYXZhaWxhYmxlUmF0ZXMucm9vbXNbMF0gPyAgZnVsbEhvdGVsLmF2YWlsYWJsZVJhdGVzLnJvb21zWzBdLnRvdGFsIDogIDA7XHJcblxyXG4gICAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddLm5leHQobmV3QmVoYXZpb3VyT2JqZWN0KTtcclxuICAgICAgICByZXR1cm4gKHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgfHwgdGhpcy5yZWFkRnJvbVNlc3Npb24oKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddIHx8XHJcbiAgICAgIHRoaXMuX2dldEF2YWlsYWJpbGl0eUZvcklkKGhvdGVsKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsOiBIb3RlbERldGFpbHMpOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhIHx8IHRoaXMucmVhZEZyb21TZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaWQgYXMgc3RyaW5nXT8udmFsdWUgfHxcclxuICAgICAgKHt9IGFzIEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVIb3RlbChob3RlbDogSG90ZWxEZXRhaWxzKTogSG90ZWxEZXRhaWxzIHtcclxuICAgIGlmICghaG90ZWwuYXZhaWxhYmxlUmF0ZXMpIHtcclxuICAgICAgaG90ZWwuYXZhaWxhYmxlUmF0ZXMgPSB0aGlzLmdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsKTtcclxuICAgIH1cclxuICAgIHJldHVybiBob3RlbDtcclxuICB9XHJcblxyXG4gIHNldEhvdGVsQXZhbGFiaWxpdHkoaG90ZWw6IEhvdGVsRGV0YWlscyk6IEhvdGVsRGV0YWlscyB7XHJcbiAgICBpZiAoIWhvdGVsLmF2YWlsYWJsZVJhdGVzKSB7XHJcbiAgICAgIGlmIChob3RlbD8uYXZhaWxhYmxlUmF0ZXMuaG90ZWxJZCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVtob3RlbC5hdmFpbGFibGVSYXRlcy5ob3RlbElkXSA9IGhvdGVsLmF2YWlsYWJsZVJhdGVzO1xyXG4gICAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5hdmFpbGFibGVSYXRlcy5ob3RlbElkXS5uZXh0KFxyXG4gICAgICAgICAgaG90ZWwuYXZhaWxhYmxlUmF0ZXNcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaG90ZWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnKysrIEZldGNoaW5nIGF2YWlsYWJpbHR5IGZvcjogJywgaG90ZWwsICcgKysrJyk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZmV0Y2hpbmcudmFsdWUpIHtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoXHJcbiAgICAgICAgdGhpcy5mZXRjaEF2YWxpbGJpbGl0eS5iaW5kKHRoaXMpLFxyXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0b0ZldGNoSG90ZWxUaW1lb3V0XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvRmV0Y2gucHVzaChob3RlbCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmZldGNoaW5nLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudG9GZXRjaC5sZW5ndGggPj0gdGhpcy5lbnZpcm9ubWVudC5udW1iZXJPZkhvdGVsc1RvRmV0Y2hcclxuICAgICkge1xyXG4gICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXSA9XHJcbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PihudWxsKTtcclxuICAgIHJldHVybiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmV0Y2hBdmFsaWxiaWxpdHkoKSB7XHJcbiAgICB0aGlzLmZldGNoaW5nLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvRmV0Y2ggPSB0aGlzLnRvRmV0Y2guc2xpY2UoXHJcbiAgICAgIDAsXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoXHJcbiAgICApO1xyXG4gICAgdGhpcy50b0ZldGNoID0gdGhpcy50b0ZldGNoLnNsaWNlKHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZygnSG90ZWxzIHN0aWxsIHRvIGZldGNoJywgdGhpcy50b0ZldGNoLmxlbmd0aCk7XHJcblxyXG4gICAgY29uc3QgcXVlcnk6IFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzID0ge1xyXG4gICAgICBob3RlbDogdG9GZXRjaC5tYXAoKGhvdGVsKSA9PiBob3RlbC5ob3RlbCkgYXMgc3RyaW5nW10sXHJcbiAgICAgIGN1cnJlbmN5OiB0b0ZldGNoWzBdLmN1cnJlbmN5LFxyXG4gICAgICBlbmREYXRlOiB0b0ZldGNoWzBdLmVuZERhdGUsXHJcbiAgICAgIHN0YXJ0RGF0ZTogdG9GZXRjaFswXS5zdGFydERhdGUsXHJcbiAgICAgIG9jY3VwYW50czogdG9GZXRjaFswXS5vY2N1cGFudHMsXHJcbiAgICAgIHJvb21zOiB0b0ZldGNoWzBdLnJvb21zXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYXZhbGliaWxpdHlGZXRoY2VyXHJcbiAgICAgIC5mZXRjaExpc3QocXVlcnkpXHJcbiAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGhvdGVsczogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXkpID0+IHtcclxuICAgICAgICBob3RlbHMuZm9yRWFjaCgoaG90ZWw6IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaG90ZWwgPSB0aGlzLmhlbHBlcnMuY2xvbmUoaG90ZWwpO1xyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSAoaG90ZWwucm9vbXMgfHwgW10pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHJvb206IEhvdGVsUm9vbVdpdGhMb2NhbFByaWNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb20udG90YWwgPiAwO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAubWFwKChyb29tOiBIb3RlbFJvb21XaXRoTG9jYWxQcmljZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJvb20gPSB0aGlzLmhlbHBlcnMuY2xvbmU8SG90ZWxSb29tV2l0aExvY2FsUHJpY2U+KHJvb20pO1xyXG4gICAgICAgICAgICAgIHJvb20uTG9jYWxQcmljZSA9IHJvb20uY3VycmVuY3lDb252ZXJzaW9uXHJcbiAgICAgICAgICAgICAgICA/IHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmxvY2FsVG90YWxcclxuICAgICAgICAgICAgICAgIDogcm9vbS50b3RhbDtcclxuICAgICAgICAgICAgICByb29tLkxvY2FsQ3VycmVuY3kgPSByb29tLmN1cnJlbmN5Q29udmVyc2lvblxyXG4gICAgICAgICAgICAgICAgPyByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5sb2NhbENvZGVcclxuICAgICAgICAgICAgICAgIDogcm9vbS5jdXJyZW5jeUNvZGU7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb207XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaG90ZWwuY3VycmVuY2llcyA9IGhvdGVsLnJvb21zLnJlZHVjZShcclxuICAgICAgICAgICAgKGRldGFpbHM6IEN1cnJlbmN5RGV0YWlscywgcm9vbTogSG90ZWxSb29tV2l0aExvY2FsUHJpY2UpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocm9vbS5jdXJyZW5jeUNvbnZlcnNpb24pIHtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0gPSBkZXRhaWxzW1xyXG4gICAgICAgICAgICAgICAgICByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXHJcbiAgICAgICAgICAgICAgICBdIHx8IHtcclxuICAgICAgICAgICAgICAgICAgbWF4cHJpY2U6IE51bWJlci5NSU5fVkFMVUUsXHJcbiAgICAgICAgICAgICAgICAgIG1pbnByaWNlOiBOdW1iZXIuTUFYX1ZBTFVFXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgZGV0YWlsc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXS5tYXhwcmljZSA9XHJcbiAgICAgICAgICAgICAgICAgIE1hdGgubWF4KFxyXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWlucHJpY2UgPVxyXG4gICAgICAgICAgICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdLm1pbnByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZFRvdGFsXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdID0gdGhpc1xyXG4gICAgICAgICAgICAgICAgICAuY3VycmVuY2llc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIG1heHByaWNlOiBOdW1iZXIuTUlOX1ZBTFVFLFxyXG4gICAgICAgICAgICAgICAgICBtaW5wcmljZTogTnVtYmVyLk1BWF9WQUxVRVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5taW5wcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWlucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5tYXhwcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRldGFpbHM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHt9IGFzIEN1cnJlbmN5RGV0YWlsc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnN0IHJvb21QcmljZXMgPSBob3RlbC5yb29tcy5tYXAoXHJcbiAgICAgICAgICAgIHRoaXMuaGVscGVycy5tYXBGaWVsZEZyb21PYmplY3Q8c3RyaW5nLCBudW1iZXI+KCd0b3RhbCcpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKCFyb29tUHJpY2VzLmxlbmd0aCkgcm9vbVByaWNlcy5wdXNoKDApO1xyXG4gICAgICAgICAgaG90ZWwubWlucHJpY2UgPSBNYXRoLm1pbiguLi5yb29tUHJpY2VzKTtcclxuICAgICAgICAgIGhvdGVsLm1heHByaWNlID0gTWF0aC5tYXgoLi4ucm9vbVByaWNlcyk7XHJcblxyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSBob3RlbC5yb29tcztcclxuICAgICAgICAgIGlmIChob3RlbD8uaG90ZWxJZCAmJiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWxJZF0pIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhW2hvdGVsLmhvdGVsSWRdID0gaG90ZWw7XHJcbiAgICAgICAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbElkXS5uZXh0KGhvdGVsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRTZXNzaW9uSXRlbShTRVNTSU9OX05BTUUsIHRoaXMuZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRTZXNzaW9uSXRlbShTRVNTSU9OX05BTUUsIGhvdGVscyk7XHJcbiAgICAgICAgaWYgKHRoaXMudG9GZXRjaC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaEF2YWxpbGJpbGl0eSgpO1xyXG4gICAgICAgICAgfSwgdGhpcy5lbnZpcm9ubWVudC5ob3RlbEF2YWxpYmlsaXR5VGltZW91dCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCBlcnJvciA9PiB7IC8vIG1pZ2h0IG5lZWQgdG8gcmVmaW5lIHRoaXNcclxuICAgICAgICBjb25zb2xlLmVycm9yKGArKysgRXJyb3IgcmVjb3ZlcmluZyBob3RlbCBhdmFpbGFiaWx0eTogJHtlcnJvcn0gLSByZXNldGluZyBhdmFpbGFiaWx0eSArKytgKTtcclxuICAgICAgICB0aGlzLmZldGNoaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIC8vIHRoaXMucmVzZXQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBtYXhQcmljZUZvckN1cnJlbmN5KGN1cnJlbmN5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuY3VycmVuY2llc1tjdXJyZW5jeV0gfHwge1xyXG4gICAgICAgIG1heHByaWNlOiBOdW1iZXIuTUFYX1ZBTFVFLFxyXG4gICAgICAgIG1pbnByaWNlOiBOdW1iZXIuTUlOX1ZBTFVFXHJcbiAgICAgIH1cclxuICAgICkubWF4cHJpY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gLSByZXR1cm4gdGhlIG51bWJlciBvZiBob3RlbHMgdGhhdCBoYXZlIGEgcHJpY2UgKHBycG4gdmFsdWUpXHJcbiAgICovXHJcbiAgbnVtYmVyT2ZIb3RlbHNXaXRoUHJpY2UoKTogbnVtYmVyIHtcclxuICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICBpZiAodGhpcy5kYXRhKSB7XHJcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuZGF0YSkpIHtcclxuICAgICAgICBpZiAodmFsdWU/LnBycG4pIHtcclxuICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG4gIFxyXG59XHJcbiJdfQ==
|
|
@@ -2,9 +2,10 @@ import { BehaviorSubject, of } from 'rxjs';
|
|
|
2
2
|
import { map, take } from 'rxjs/operators';
|
|
3
3
|
import { BasketStatus, ServiceType } from '../types/graphql.types';
|
|
4
4
|
export class BaseEnterpriseMyBookingsService {
|
|
5
|
-
constructor(getUserBasketsFetcher, searchUserCanBookFor) {
|
|
5
|
+
constructor(getUserBasketsFetcher, searchUserCanBookFor, cancelBookingUpdater) {
|
|
6
6
|
this.getUserBasketsFetcher = getUserBasketsFetcher;
|
|
7
7
|
this.searchUserCanBookFor = searchUserCanBookFor;
|
|
8
|
+
this.cancelBookingUpdater = cancelBookingUpdater;
|
|
8
9
|
this.baskets = new BehaviorSubject([]);
|
|
9
10
|
this._basketStatusIconClasses = {
|
|
10
11
|
[BasketStatus.Approved]: 'ico-tick',
|
|
@@ -120,5 +121,8 @@ export class BaseEnterpriseMyBookingsService {
|
|
|
120
121
|
hotelAddressArr.push(county);
|
|
121
122
|
return hotelAddressArr.join(', ');
|
|
122
123
|
}
|
|
124
|
+
cancelBooking(basketItemId) {
|
|
125
|
+
return this.cancelBookingUpdater.updateOne({ basketItem: basketItemId });
|
|
126
|
+
}
|
|
123
127
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktYm9va2luZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbXktYm9va2luZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVzNDLE9BQU8sRUFHTCxZQUFZLEVBRVosV0FBVyxFQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFHaEMsTUFBTSxPQUFPLCtCQUErQjtJQWlDMUMsWUFDVSxxQkFBdUQsRUFDdkQsb0JBQStEO1FBRC9ELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBa0M7UUFDdkQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQztRQTlCbEUsWUFBTyxHQUF3QyxJQUFJLGVBQWUsQ0FFdkUsRUFBRSxDQUFDLENBQUM7UUFFRSw2QkFBd0IsR0FBaUM7WUFDL0QsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVTtZQUNuQyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFdBQVc7WUFDNUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsVUFBVTtZQUN4QyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxVQUFVO1lBQ3RDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWM7WUFDbkMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQUUsVUFBVTtZQUMxQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVO1NBQ2xDLENBQUM7UUFFTSw0QkFBdUIsR0FBZ0M7WUFDN0QsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWTtZQUMvQixD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RSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLFlBQXVDO1FBQ3JELE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDNUQsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksVUFBVTtZQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJO1lBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU07WUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUTtZQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUF1QztRQUN0RCxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQztRQUN0QyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJO1lBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU07WUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZU15Qm9va2luZ3NTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JbXlib29raW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBCYXNlU2VhcmNoVXNlcnNDYW5Cb29rRm9yRmV0Y2hlcixcclxuICBTZWFyY2hVc2VyQ2FuQm9va0ZvckZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvc2VhcmNoLXVzZXJzLWNhbi1ib29rLWZvci1mZXRjaGVyJztcclxuaW1wb3J0IHtcclxuICBCYXNlR2V0VXNlckJhc2tldHNGZXRjaGVyLFxyXG4gIEdldFVzZXJCYXNrZXRzRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy9nZXQtdXNlcnMtYmFza2V0cy1mZXRjaGVyJztcclxuaW1wb3J0IHsgVXNlckJhc2tldFJlc3VsdCB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuaW1wb3J0IHtcclxuICBCYXNrZXRJdGVtLFxyXG4gIEJhc2tldEl0ZW1TdGF0dXMsXHJcbiAgQmFza2V0U3RhdHVzLFxyXG4gIFF1ZXJ5R2V0VXNlckJhc2tldHNBcmdzLFxyXG4gIFNlcnZpY2VUeXBlLFxyXG4gIFVzZXJcclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lzZWFyY2guc2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZUVudGVycHJpc2VNeUJvb2tpbmdzU2VydmljZTxcclxuICBHVUJfUSBleHRlbmRzIEdldFVzZXJCYXNrZXRzRmV0Y2hlclR5cGUsXHJcbiAgU1VDQkZfUSBleHRlbmRzIFNlYXJjaFVzZXJDYW5Cb29rRm9yRmV0Y2hlclR5cGVcclxuPiBpbXBsZW1lbnRzIEVudGVycHJpc2VNeUJvb2tpbmdzU2VydmljZUludGVyZmFjZVxyXG57XHJcbiAgcHVibGljIGJhc2tldHM6IEJlaGF2aW9yU3ViamVjdDxVc2VyQmFza2V0UmVzdWx0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIFVzZXJCYXNrZXRSZXN1bHRbXVxyXG4gID4oW10pO1xyXG5cclxuICBwcml2YXRlIF9iYXNrZXRTdGF0dXNJY29uQ2xhc3NlczogUmVjb3JkPEJhc2tldFN0YXR1cywgc3RyaW5nPiA9IHtcclxuICAgIFtCYXNrZXRTdGF0dXMuQXBwcm92ZWRdOiAnaWNvLXRpY2snLFxyXG4gICAgW0Jhc2tldFN0YXR1cy5Bd2FpdGluZ0FwcHJvdmFsXTogJ2ljby1jbG9jaycsXHJcbiAgICBbQmFza2V0U3RhdHVzLkJvb2tpbmdGYWlsZWRdOiAnaWNvLWRlbnknLFxyXG4gICAgW0Jhc2tldFN0YXR1cy5EaXNhcHByb3ZlZF06ICdpY28tZGVueScsXHJcbiAgICBbQmFza2V0U3RhdHVzLk9wZW5dOiAnaWNvLWNhbGVuZGFyJyxcclxuICAgIFtCYXNrZXRTdGF0dXMuUGFydGlhbGx5Qm9va2VkXTogJ2ljby1kZW55JyxcclxuICAgIFtCYXNrZXRTdGF0dXMuQm9va2VkXTogJ2ljby1kZW55J1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX3NlcnZpY2VUeXBlSWNvbkNsYXNzZXM6IFJlY29yZDxTZXJ2aWNlVHlwZSwgc3RyaW5nPiA9IHtcclxuICAgIFtTZXJ2aWNlVHlwZS5DYWJdOiAnaWNvLW0tdGF4aScsXHJcbiAgICBbU2VydmljZVR5cGUuQ2FyXTogJ2ljby1jYXInLFxyXG4gICAgW1NlcnZpY2VUeXBlLkNvYWNoXTogJ2ljby1idXMnLFxyXG4gICAgW1NlcnZpY2VUeXBlLkZsaWdodF06ICdpY28tZmxpZ2h0JyxcclxuICAgIFtTZXJ2aWNlVHlwZS5Ib3RlbF06ICdpY28tYmVkJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5GYXN0VHJhY2tdOiAnJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5JbnRlcm5hdGlvbmFsUmFpbF06ICdpY28tcmFpbCcsXHJcbiAgICBbU2VydmljZVR5cGUuTG91bmdlXTogJ2ljby1tYXRlcmlhbCBpY28tbG91bmdlJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5QYXJraW5nXTogJ2ljby1tYXRlcmlhbCBpY28tcGFya2luZycsXHJcbiAgICBbU2VydmljZVR5cGUuUmFpbF06ICdpY28tcmFpbCcsXHJcbiAgICBbU2VydmljZVR5cGUuRXVyb3N0YXJdOiAnaWNvLXJhaWwnXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdldFVzZXJCYXNrZXRzRmV0Y2hlcjogQmFzZUdldFVzZXJCYXNrZXRzRmV0Y2hlcjxHVUJfUT4sXHJcbiAgICBwcml2YXRlIHNlYXJjaFVzZXJDYW5Cb29rRm9yOiBCYXNlU2VhcmNoVXNlcnNDYW5Cb29rRm9yRmV0Y2hlcjxTVUNCRl9RPlxyXG4gICkge31cclxuXHJcbiAgZ2V0VXNlckJhc2tldHMoXHJcbiAgICBxdWVyeTogUXVlcnlHZXRVc2VyQmFza2V0c0FyZ3MsXHJcbiAgICBpc0xvYWRpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxyXG4gICk6IHZvaWQge1xyXG4gICAgaXNMb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmdldFVzZXJCYXNrZXRzRmV0Y2hlclxyXG4gICAgICAuZmV0Y2hMaXN0KHF1ZXJ5KVxyXG4gICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChiYXNrZXRzOiBVc2VyQmFza2V0UmVzdWx0W10pID0+IHtcclxuICAgICAgICAgIHRoaXMuYmFza2V0cy5uZXh0KGJhc2tldHMpO1xyXG4gICAgICAgICAgaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFVzZXJDYW5Cb29rRm9yKFxyXG4gICAgc2VhcmNoOiBzdHJpbmcsXHJcbiAgICBpc0xvYWRpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxyXG4gICk6IE9ic2VydmFibGU8VXNlcltdPiB7XHJcbiAgICBpZiAoc2VhcmNoLmxlbmd0aCA+IDIpIHtcclxuICAgICAgaXNMb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJDYW5Cb29rRm9yXHJcbiAgICAgICAgLmZldGNoTGlzdCh7XHJcbiAgICAgICAgICBlbWFpbDogc2VhcmNoXHJcbiAgICAgICAgfSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICBtYXAoKHJlc3VsdHM6IFVzZXJbXSkgPT4ge1xyXG4gICAgICAgICAgICBpc0xvYWRpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9mKFtdKTtcclxuICB9XHJcblxyXG4gIGdldFNlcnZpY2VUeXBlRmlsdGVycyhcclxuICAgIHNlYXJjaFNlcnZpY2U6IEVudGVycHJpc2VTZWFyY2hTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc2VydmljZVR5cGVGaWx0ZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBba2V5XSBvZiBPYmplY3QuZW50cmllcyhzZWFyY2hTZXJ2aWNlLnNlYXJjaF9vYmplY3RzKSkge1xyXG4gICAgICBzZXJ2aWNlVHlwZUZpbHRlcnMucHVzaChrZXkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlcnZpY2VUeXBlRmlsdGVycztcclxuICB9XHJcblxyXG4gIGdldEJhc2tldFN0YXR1c0ZpbHRlcnMoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgYmFza2V0U3RhdHVzRmlsdGVyczogc3RyaW5nW10gPSBbXTtcclxuICAgIE9iamVjdC52YWx1ZXMoQmFza2V0U3RhdHVzKS5mb3JFYWNoKChiYXNrZXRTdGF0dXMpID0+XHJcbiAgICAgIGJhc2tldFN0YXR1c0ZpbHRlcnMucHVzaChiYXNrZXRTdGF0dXMpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGJhc2tldFN0YXR1c0ZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBnZXRTZXJ2aWNlVHlwZUZpbHRlclZhbml0eU5hbWUoc2VydmljZVR5cGU6IFNlcnZpY2VUeXBlKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoc2VydmljZVR5cGUpIHtcclxuICAgICAgY2FzZSBTZXJ2aWNlVHlwZS5DYWI6XHJcbiAgICAgICAgcmV0dXJuICdUYXhpJztcclxuICAgICAgY2FzZSBTZXJ2aWNlVHlwZS5JbnRlcm5hdGlvbmFsUmFpbDpcclxuICAgICAgICByZXR1cm4gJ0V1cm9wZWFuIFJhaWwnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBzZXJ2aWNlVHlwZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEJhc2tldFN0YXR1c0ljb25DbGFzcyhzdGF0dXM6IEJhc2tldFN0YXR1cyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYmFza2V0U3RhdHVzSWNvbkNsYXNzZXNbc3RhdHVzXSB8fCAnaWNvLWV4Y2xhbWF0aW9uJztcclxuICB9XHJcblxyXG4gIGdldFNlcnZpY2VUeXBlSWNvbkNsYXNzKGJhc2tldEl0ZW06IEJhc2tldEl0ZW0pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5fc2VydmljZVR5cGVJY29uQ2xhc3Nlc1tiYXNrZXRJdGVtLnNlcnZpY2UudHlwZV0gfHwgJ2ljby1leGNsYW1hdGlvbidcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUb3RhbFByaWNlRm9yQmFza2V0SXRlbXMoYmFza2V0SXRlbXM6IEJhc2tldEl0ZW1bXSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gYmFza2V0SXRlbXMucmVkdWNlKCh0b3RhbCwgYmFza2V0SXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gdG90YWwgKyBiYXNrZXRJdGVtLnByaWNlO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBnZXRUcmF2ZWxsZXJOYW1lc0Zyb21CYXNrZXRJdGVtcyhiYXNrZXRJdGVtczogQmFza2V0SXRlbVtdKTogc3RyaW5nW10ge1xyXG4gICAgbGV0IHRyYXZlbGxlck5hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgYmFza2V0SXRlbXMubWFwKChiYXNrZXRJdGVtKSA9PlxyXG4gICAgICBiYXNrZXRJdGVtLnVzZXJzLm1hcCgodXNlcikgPT5cclxuICAgICAgICB0cmF2ZWxsZXJOYW1lcy5wdXNoKGAke3VzZXIuZm9yZW5hbWV9ICR7dXNlci5zdXJuYW1lfWApXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICB0cmF2ZWxsZXJOYW1lcyA9IFsuLi5uZXcgU2V0KHRyYXZlbGxlck5hbWVzKV07IC8vIHJlbW92ZSBhbnkgZHVwbGljYXRlIHRyYXZlbGxlciBuYW1lc1xyXG4gICAgcmV0dXJuIHRyYXZlbGxlck5hbWVzO1xyXG4gIH1cclxuXHJcbiAgYWxsQmFza2V0SXRlbXNNYXRjaFN0YXR1cyhcclxuICAgIGJhc2tldEl0ZW1zOiBCYXNrZXRJdGVtW10sXHJcbiAgICBiYXNrZXRJdGVtU3RhdHVzOiBCYXNrZXRJdGVtU3RhdHVzXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYmFza2V0SXRlbXMuZXZlcnkoXHJcbiAgICAgIChiYXNrZXRJdGVtKSA9PiBiYXNrZXRJdGVtLnN0YXR1cyA9PT0gYmFza2V0SXRlbVN0YXR1c1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEhvdGVsQWRkcmVzcyhob3RlbEFkZHJlc3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBjb3VudHksIHBvc3Rjb2RlLCBzdHJlZXROYW1lLCB0b3duIH0gPSBob3RlbEFkZHJlc3M7XHJcbiAgICBjb25zdCBob3RlbEFkZHJlc3NBcnIgPSBbXTtcclxuICAgIGlmIChzdHJlZXROYW1lKSBob3RlbEFkZHJlc3NBcnIucHVzaChzdHJlZXROYW1lKTtcclxuICAgIGlmICh0b3duKSBob3RlbEFkZHJlc3NBcnIucHVzaCh0b3duKTtcclxuICAgIGlmIChjb3VudHkpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKGNvdW50eSk7XHJcbiAgICBpZiAocG9zdGNvZGUpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKHBvc3Rjb2RlKTtcclxuICAgIHJldHVybiBob3RlbEFkZHJlc3NBcnIuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIGdldEhvdGVsTG9jYXRpb24oaG90ZWxBZGRyZXNzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgY291bnR5LCB0b3duIH0gPSBob3RlbEFkZHJlc3M7XHJcbiAgICBjb25zdCBob3RlbEFkZHJlc3NBcnIgPSBbXTtcclxuICAgIGlmICh0b3duKSBob3RlbEFkZHJlc3NBcnIucHVzaCh0b3duKTtcclxuICAgIGlmIChjb3VudHkpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKGNvdW50eSk7XHJcbiAgICByZXR1cm4gaG90ZWxBZGRyZXNzQXJyLmpvaW4oJywgJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktYm9va2luZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbXktYm9va2luZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBZ0IzQyxPQUFPLEVBR0wsWUFBWSxFQUVaLFdBQVcsRUFFWixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE1BQU0sT0FBTywrQkFBK0I7SUFrQzFDLFlBQ1UscUJBQXVELEVBQ3ZELG9CQUErRCxFQUMvRCxvQkFBcUQ7UUFGckQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFrQztRQUN2RCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTJDO1FBQy9ELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBaUM7UUEvQnhELFlBQU8sR0FBd0MsSUFBSSxlQUFlLENBRXZFLEVBQUUsQ0FBQyxDQUFDO1FBRUUsNkJBQXdCLEdBQWlDO1lBQy9ELENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7WUFDbkMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxXQUFXO1lBQzVDLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFVBQVU7WUFDeEMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVTtZQUN0QyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjO1lBQ25DLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFLFVBQVU7WUFDMUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsVUFBVTtTQUNsQyxDQUFDO1FBRU0sNEJBQXVCLEdBQWdDO1lB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZU15Qm9va2luZ3NTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JbXlib29raW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBCYXNlU2VhcmNoVXNlcnNDYW5Cb29rRm9yRmV0Y2hlcixcclxuICBTZWFyY2hVc2VyQ2FuQm9va0ZvckZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvc2VhcmNoLXVzZXJzLWNhbi1ib29rLWZvci1mZXRjaGVyJztcclxuaW1wb3J0IHtcclxuICBCYXNlR2V0VXNlckJhc2tldHNGZXRjaGVyLFxyXG4gIEdldFVzZXJCYXNrZXRzRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy9nZXQtdXNlcnMtYmFza2V0cy1mZXRjaGVyJztcclxuaW1wb3J0IHtcclxuICBCYXNlQ2FuY2VsQm9va2luZ1VwZGF0ZXIsXHJcbiAgQ2FuY2VsQm9va2luZ0ZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vdXBkYXRlcnMvY2FuY2VsLWJvb2tpbmctdXBkYXRlcic7XHJcblxyXG5pbXBvcnQgeyBDYW5jZWxVc2VyQm9va2luZ1Jlc3VsdCwgVXNlckJhc2tldFJlc3VsdCB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuaW1wb3J0IHtcclxuICBCYXNrZXRJdGVtLFxyXG4gIEJhc2tldEl0ZW1TdGF0dXMsXHJcbiAgQmFza2V0U3RhdHVzLFxyXG4gIFF1ZXJ5R2V0VXNlckJhc2tldHNBcmdzLFxyXG4gIFNlcnZpY2VUeXBlLFxyXG4gIFVzZXJcclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lzZWFyY2guc2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZUVudGVycHJpc2VNeUJvb2tpbmdzU2VydmljZTxcclxuICBHVUJfUSBleHRlbmRzIEdldFVzZXJCYXNrZXRzRmV0Y2hlclR5cGUsXHJcbiAgU1VDQkZfUSBleHRlbmRzIFNlYXJjaFVzZXJDYW5Cb29rRm9yRmV0Y2hlclR5cGUsXHJcbiAgQ0JGX1EgZXh0ZW5kcyBDYW5jZWxCb29raW5nRmV0Y2hlclR5cGVcclxuPiBpbXBsZW1lbnRzIEVudGVycHJpc2VNeUJvb2tpbmdzU2VydmljZUludGVyZmFjZVxyXG57XHJcbiAgcHVibGljIGJhc2tldHM6IEJlaGF2aW9yU3ViamVjdDxVc2VyQmFza2V0UmVzdWx0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIFVzZXJCYXNrZXRSZXN1bHRbXVxyXG4gID4oW10pO1xyXG5cclxuICBwcml2YXRlIF9iYXNrZXRTdGF0dXNJY29uQ2xhc3NlczogUmVjb3JkPEJhc2tldFN0YXR1cywgc3RyaW5nPiA9IHtcclxuICAgIFtCYXNrZXRTdGF0dXMuQXBwcm92ZWRdOiAnaWNvLXRpY2snLFxyXG4gICAgW0Jhc2tldFN0YXR1cy5Bd2FpdGluZ0FwcHJvdmFsXTogJ2ljby1jbG9jaycsXHJcbiAgICBbQmFza2V0U3RhdHVzLkJvb2tpbmdGYWlsZWRdOiAnaWNvLWRlbnknLFxyXG4gICAgW0Jhc2tldFN0YXR1cy5EaXNhcHByb3ZlZF06ICdpY28tZGVueScsXHJcbiAgICBbQmFza2V0U3RhdHVzLk9wZW5dOiAnaWNvLWNhbGVuZGFyJyxcclxuICAgIFtCYXNrZXRTdGF0dXMuUGFydGlhbGx5Qm9va2VkXTogJ2ljby1kZW55JyxcclxuICAgIFtCYXNrZXRTdGF0dXMuQm9va2VkXTogJ2ljby1kZW55J1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX3NlcnZpY2VUeXBlSWNvbkNsYXNzZXM6IFJlY29yZDxTZXJ2aWNlVHlwZSwgc3RyaW5nPiA9IHtcclxuICAgIFtTZXJ2aWNlVHlwZS5DYWJdOiAnaWNvLW0tdGF4aScsXHJcbiAgICBbU2VydmljZVR5cGUuQ2FyXTogJ2ljby1jYXInLFxyXG4gICAgW1NlcnZpY2VUeXBlLkNvYWNoXTogJ2ljby1idXMnLFxyXG4gICAgW1NlcnZpY2VUeXBlLkZsaWdodF06ICdpY28tZmxpZ2h0JyxcclxuICAgIFtTZXJ2aWNlVHlwZS5Ib3RlbF06ICdpY28tYmVkJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5GYXN0VHJhY2tdOiAnJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5JbnRlcm5hdGlvbmFsUmFpbF06ICdpY28tcmFpbCcsXHJcbiAgICBbU2VydmljZVR5cGUuTG91bmdlXTogJ2ljby1tYXRlcmlhbCBpY28tbG91bmdlJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5QYXJraW5nXTogJ2ljby1tYXRlcmlhbCBpY28tcGFya2luZycsXHJcbiAgICBbU2VydmljZVR5cGUuUmFpbF06ICdpY28tcmFpbCcsXHJcbiAgICBbU2VydmljZVR5cGUuRXVyb3N0YXJdOiAnaWNvLXJhaWwnXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdldFVzZXJCYXNrZXRzRmV0Y2hlcjogQmFzZUdldFVzZXJCYXNrZXRzRmV0Y2hlcjxHVUJfUT4sXHJcbiAgICBwcml2YXRlIHNlYXJjaFVzZXJDYW5Cb29rRm9yOiBCYXNlU2VhcmNoVXNlcnNDYW5Cb29rRm9yRmV0Y2hlcjxTVUNCRl9RPixcclxuICAgIHByaXZhdGUgY2FuY2VsQm9va2luZ1VwZGF0ZXI6IEJhc2VDYW5jZWxCb29raW5nVXBkYXRlcjxDQkZfUT5cclxuICApIHt9XHJcblxyXG4gIGdldFVzZXJCYXNrZXRzKFxyXG4gICAgcXVlcnk6IFF1ZXJ5R2V0VXNlckJhc2tldHNBcmdzLFxyXG4gICAgaXNMb2FkaW5nOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj5cclxuICApOiB2b2lkIHtcclxuICAgIGlzTG9hZGluZy5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5nZXRVc2VyQmFza2V0c0ZldGNoZXJcclxuICAgICAgLmZldGNoTGlzdChxdWVyeSlcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoYmFza2V0czogVXNlckJhc2tldFJlc3VsdFtdKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmJhc2tldHMubmV4dChiYXNrZXRzKTtcclxuICAgICAgICAgIGlzTG9hZGluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgIGlzTG9hZGluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWFyY2hVc2VyQ2FuQm9va0ZvcihcclxuICAgIHNlYXJjaDogc3RyaW5nLFxyXG4gICAgaXNMb2FkaW5nOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj5cclxuICApOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xyXG4gICAgaWYgKHNlYXJjaC5sZW5ndGggPiAyKSB7XHJcbiAgICAgIGlzTG9hZGluZy5uZXh0KHRydWUpO1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hVc2VyQ2FuQm9va0ZvclxyXG4gICAgICAgIC5mZXRjaExpc3Qoe1xyXG4gICAgICAgICAgZW1haWw6IHNlYXJjaFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgbWFwKChyZXN1bHRzOiBVc2VyW10pID0+IHtcclxuICAgICAgICAgICAgaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvZihbXSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXJ2aWNlVHlwZUZpbHRlcnMoXHJcbiAgICBzZWFyY2hTZXJ2aWNlOiBFbnRlcnByaXNlU2VhcmNoU2VydmljZUludGVyZmFjZVxyXG4gICk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IHNlcnZpY2VUeXBlRmlsdGVyczogc3RyaW5nW10gPSBbXTtcclxuICAgIGZvciAoY29uc3QgW2tleV0gb2YgT2JqZWN0LmVudHJpZXMoc2VhcmNoU2VydmljZS5zZWFyY2hfb2JqZWN0cykpIHtcclxuICAgICAgc2VydmljZVR5cGVGaWx0ZXJzLnB1c2goa2V5KTtcclxuICAgIH1cclxuICAgIHJldHVybiBzZXJ2aWNlVHlwZUZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBnZXRCYXNrZXRTdGF0dXNGaWx0ZXJzKCk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGJhc2tldFN0YXR1c0ZpbHRlcnM6IHN0cmluZ1tdID0gW107XHJcbiAgICBPYmplY3QudmFsdWVzKEJhc2tldFN0YXR1cykuZm9yRWFjaCgoYmFza2V0U3RhdHVzKSA9PlxyXG4gICAgICBiYXNrZXRTdGF0dXNGaWx0ZXJzLnB1c2goYmFza2V0U3RhdHVzKVxyXG4gICAgKTtcclxuICAgIHJldHVybiBiYXNrZXRTdGF0dXNGaWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VydmljZVR5cGVGaWx0ZXJWYW5pdHlOYW1lKHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZSk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHNlcnZpY2VUeXBlKSB7XHJcbiAgICAgIGNhc2UgU2VydmljZVR5cGUuQ2FiOlxyXG4gICAgICAgIHJldHVybiAnVGF4aSc7XHJcbiAgICAgIGNhc2UgU2VydmljZVR5cGUuSW50ZXJuYXRpb25hbFJhaWw6XHJcbiAgICAgICAgcmV0dXJuICdFdXJvcGVhbiBSYWlsJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gc2VydmljZVR5cGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRCYXNrZXRTdGF0dXNJY29uQ2xhc3Moc3RhdHVzOiBCYXNrZXRTdGF0dXMpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Jhc2tldFN0YXR1c0ljb25DbGFzc2VzW3N0YXR1c10gfHwgJ2ljby1leGNsYW1hdGlvbic7XHJcbiAgfVxyXG5cclxuICBnZXRTZXJ2aWNlVHlwZUljb25DbGFzcyhiYXNrZXRJdGVtOiBCYXNrZXRJdGVtKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VUeXBlSWNvbkNsYXNzZXNbYmFza2V0SXRlbS5zZXJ2aWNlLnR5cGVdIHx8ICdpY28tZXhjbGFtYXRpb24nXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG90YWxQcmljZUZvckJhc2tldEl0ZW1zKGJhc2tldEl0ZW1zOiBCYXNrZXRJdGVtW10pOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGJhc2tldEl0ZW1zLnJlZHVjZSgodG90YWwsIGJhc2tldEl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIHRvdGFsICsgYmFza2V0SXRlbS5wcmljZTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHJhdmVsbGVyTmFtZXNGcm9tQmFza2V0SXRlbXMoYmFza2V0SXRlbXM6IEJhc2tldEl0ZW1bXSk6IHN0cmluZ1tdIHtcclxuICAgIGxldCB0cmF2ZWxsZXJOYW1lczogc3RyaW5nW10gPSBbXTtcclxuICAgIGJhc2tldEl0ZW1zLm1hcCgoYmFza2V0SXRlbSkgPT5cclxuICAgICAgYmFza2V0SXRlbS51c2Vycy5tYXAoKHVzZXIpID0+XHJcbiAgICAgICAgdHJhdmVsbGVyTmFtZXMucHVzaChgJHt1c2VyLmZvcmVuYW1lfSAke3VzZXIuc3VybmFtZX1gKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gICAgdHJhdmVsbGVyTmFtZXMgPSBbLi4ubmV3IFNldCh0cmF2ZWxsZXJOYW1lcyldOyAvLyByZW1vdmUgYW55IGR1cGxpY2F0ZSB0cmF2ZWxsZXIgbmFtZXNcclxuICAgIHJldHVybiB0cmF2ZWxsZXJOYW1lcztcclxuICB9XHJcblxyXG4gIGFsbEJhc2tldEl0ZW1zTWF0Y2hTdGF0dXMoXHJcbiAgICBiYXNrZXRJdGVtczogQmFza2V0SXRlbVtdLFxyXG4gICAgYmFza2V0SXRlbVN0YXR1czogQmFza2V0SXRlbVN0YXR1c1xyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGJhc2tldEl0ZW1zLmV2ZXJ5KFxyXG4gICAgICAoYmFza2V0SXRlbSkgPT4gYmFza2V0SXRlbS5zdGF0dXMgPT09IGJhc2tldEl0ZW1TdGF0dXNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRIb3RlbEFkZHJlc3MoaG90ZWxBZGRyZXNzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgY291bnR5LCBwb3N0Y29kZSwgc3RyZWV0TmFtZSwgdG93biB9ID0gaG90ZWxBZGRyZXNzO1xyXG4gICAgY29uc3QgaG90ZWxBZGRyZXNzQXJyID0gW107XHJcbiAgICBpZiAoc3RyZWV0TmFtZSkgaG90ZWxBZGRyZXNzQXJyLnB1c2goc3RyZWV0TmFtZSk7XHJcbiAgICBpZiAodG93bikgaG90ZWxBZGRyZXNzQXJyLnB1c2godG93bik7XHJcbiAgICBpZiAoY291bnR5KSBob3RlbEFkZHJlc3NBcnIucHVzaChjb3VudHkpO1xyXG4gICAgaWYgKHBvc3Rjb2RlKSBob3RlbEFkZHJlc3NBcnIucHVzaChwb3N0Y29kZSk7XHJcbiAgICByZXR1cm4gaG90ZWxBZGRyZXNzQXJyLmpvaW4oJywgJyk7XHJcbiAgfVxyXG5cclxuICBnZXRIb3RlbExvY2F0aW9uKGhvdGVsQWRkcmVzczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB7IGNvdW50eSwgdG93biB9ID0gaG90ZWxBZGRyZXNzO1xyXG4gICAgY29uc3QgaG90ZWxBZGRyZXNzQXJyID0gW107XHJcbiAgICBpZiAodG93bikgaG90ZWxBZGRyZXNzQXJyLnB1c2godG93bik7XHJcbiAgICBpZiAoY291bnR5KSBob3RlbEFkZHJlc3NBcnIucHVzaChjb3VudHkpO1xyXG4gICAgcmV0dXJuIGhvdGVsQWRkcmVzc0Fyci5qb2luKCcsICcpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsQm9va2luZyhiYXNrZXRJdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FuY2VsVXNlckJvb2tpbmdSZXN1bHQ+e1xyXG4gICAgcmV0dXJuIHRoaXMuY2FuY2VsQm9va2luZ1VwZGF0ZXIudXBkYXRlT25lKHsgYmFza2V0SXRlbTogYmFza2V0SXRlbUlkfSlcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
|