@esolve/ng-esolve-connect 0.10.3 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/account/esolve-account.service.mjs +52 -61
- package/esm2020/lib/auth/esolve-auth-interceptor.service.mjs +7 -6
- package/esm2020/lib/auth/esolve-auth.service.mjs +36 -37
- package/esm2020/lib/banners/esolve-banner.service.mjs +9 -10
- package/esm2020/lib/cart/esolve-cart.service.mjs +30 -31
- package/esm2020/lib/category-tree/esolve-category-tree.service.mjs +20 -15
- package/esm2020/lib/locations/esolve-locations.service.mjs +10 -9
- package/esm2020/lib/media/esolve-heading-record.mjs +2 -0
- package/esm2020/lib/media/esolve-heading.mjs +7 -0
- package/esm2020/lib/media/esolve-media.service.mjs +58 -23
- package/esm2020/lib/menu/esolve-menu.service.mjs +8 -10
- package/esm2020/lib/news/esolve-news.service.mjs +14 -18
- package/esm2020/lib/ng-esolve-connect.module.mjs +4 -4
- package/esm2020/lib/payment/esolve-payment.service.mjs +65 -76
- package/esm2020/lib/session/esolve-session.mjs +8 -11
- package/esm2020/lib/session/esolve-session.service.mjs +41 -32
- package/esm2020/lib/session/esolve-stored-session.mjs +1 -1
- package/esm2020/lib/shared/cookie/esolve-cookie.service.mjs +106 -0
- package/esm2020/lib/shared/error-handler/esolve-error-handler.service.mjs +3 -3
- package/esm2020/lib/shared/geocoder/esolve-geocode-address-record.mjs +2 -0
- package/esm2020/lib/shared/geocoder/esolve-geocode-address-result.mjs +12 -0
- package/esm2020/lib/shared/geocoder/esolve-geocode-coords-result.mjs +7 -0
- package/esm2020/lib/shared/geocoder/esolve-geocode-result-record.mjs +2 -0
- package/esm2020/lib/shared/geocoder/esolve-geocode-result.mjs +11 -0
- package/esm2020/lib/shared/geocoder/esolve-geocoder.service.mjs +69 -0
- package/esm2020/lib/shared/response-handler/esolve-response-handler.service.mjs +3 -3
- package/esm2020/lib/shared/seo/esolve-seo.service.mjs +4 -4
- package/esm2020/lib/shipping/esolve-shipping.service.mjs +39 -39
- package/esm2020/lib/stock/esolve-stock-item.mjs +6 -1
- package/esm2020/lib/stock/esolve-stock-record.mjs +1 -1
- package/esm2020/lib/stock/esolve-stock.service.mjs +38 -39
- package/esm2020/lib/topics/esolve-topic.service.mjs +6 -10
- package/esm2020/public-api.mjs +8 -1
- package/fesm2015/esolve-ng-esolve-connect.mjs +647 -422
- package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
- package/fesm2020/esolve-ng-esolve-connect.mjs +641 -422
- package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
- package/lib/auth/esolve-auth.service.d.ts +2 -2
- package/lib/cart/esolve-cart.service.d.ts +8 -1
- package/lib/category-tree/esolve-category-tree.service.d.ts +4 -1
- package/lib/locations/esolve-locations.service.d.ts +2 -0
- package/lib/media/esolve-heading-record.d.ts +5 -0
- package/lib/media/esolve-heading.d.ts +5 -0
- package/lib/media/esolve-media.service.d.ts +25 -4
- package/lib/news/esolve-news.service.d.ts +1 -1
- package/lib/payment/esolve-payment.service.d.ts +16 -14
- package/lib/session/esolve-session.d.ts +3 -4
- package/lib/session/esolve-session.service.d.ts +6 -4
- package/lib/session/esolve-stored-session.d.ts +2 -2
- package/lib/shared/cookie/esolve-cookie.service.d.ts +36 -0
- package/lib/shared/geocoder/esolve-geocode-address-record.d.ts +9 -0
- package/lib/shared/geocoder/esolve-geocode-address-result.d.ts +10 -0
- package/lib/shared/geocoder/esolve-geocode-coords-result.d.ts +5 -0
- package/lib/shared/geocoder/esolve-geocode-result-record.d.ts +10 -0
- package/lib/shared/geocoder/esolve-geocode-result.d.ts +11 -0
- package/lib/shared/geocoder/esolve-geocoder.service.d.ts +15 -0
- package/lib/shipping/esolve-shipping.service.d.ts +11 -11
- package/lib/stock/esolve-stock-item.d.ts +8 -0
- package/lib/stock/esolve-stock-record.d.ts +1 -0
- package/lib/stock/esolve-stock.service.d.ts +10 -10
- package/package.json +5 -4
- package/public-api.d.ts +6 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { HttpParams, HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { HttpParams, HttpHeaders, } from '@angular/common/http';
|
|
3
3
|
import { throwError } from 'rxjs';
|
|
4
4
|
import { tap, catchError, map } from 'rxjs/operators';
|
|
5
5
|
import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect.config';
|
|
@@ -7,7 +7,7 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "@angular/common/http";
|
|
8
8
|
import * as i2 from "../session/esolve-session.service";
|
|
9
9
|
import * as i3 from "../shared/error-handler/esolve-error-handler.service";
|
|
10
|
-
import * as i4 from "
|
|
10
|
+
import * as i4 from "../shared/cookie/esolve-cookie.service";
|
|
11
11
|
export class EsolveAuthService {
|
|
12
12
|
constructor(config, http, session, errorHandler, cookieService) {
|
|
13
13
|
this.config = config;
|
|
@@ -19,7 +19,7 @@ export class EsolveAuthService {
|
|
|
19
19
|
getAccessToken(email, password, anonymous = false) {
|
|
20
20
|
let params = new HttpParams();
|
|
21
21
|
if (anonymous) {
|
|
22
|
-
params = params.set('anonymous',
|
|
22
|
+
params = params.set('anonymous', true);
|
|
23
23
|
}
|
|
24
24
|
if (email !== '') {
|
|
25
25
|
params = params.set('email', email);
|
|
@@ -27,25 +27,26 @@ export class EsolveAuthService {
|
|
|
27
27
|
if (password !== '') {
|
|
28
28
|
params = params.set('password', password);
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
return this.http
|
|
31
|
+
.get(`${this.config.api_url}/get-access-token.php`, {
|
|
32
32
|
params,
|
|
33
33
|
headers: new HttpHeaders({
|
|
34
|
-
'Accept-Language': '*'
|
|
35
|
-
})
|
|
36
|
-
})
|
|
34
|
+
'Accept-Language': '*',
|
|
35
|
+
}),
|
|
36
|
+
})
|
|
37
|
+
.pipe(tap((responseData) => {
|
|
37
38
|
if ((responseData.type === 'error') ||
|
|
38
39
|
(responseData.type === 'exception')) {
|
|
39
40
|
throw responseData;
|
|
40
41
|
}
|
|
41
|
-
}), catchError(this.handleError), tap(responseData => {
|
|
42
|
+
}), catchError(this.handleError), tap((responseData) => {
|
|
42
43
|
this.handleAuthentication(responseData);
|
|
43
44
|
}));
|
|
44
45
|
}
|
|
45
46
|
autoLogin() {
|
|
46
47
|
this.session.restore(this.handleExpiration(), () => {
|
|
47
|
-
this.getAccessToken('', '', true).toPromise().then(
|
|
48
|
-
console.
|
|
48
|
+
this.getAccessToken('', '', true).toPromise().then(() => { }, (error) => {
|
|
49
|
+
console.error(error);
|
|
49
50
|
});
|
|
50
51
|
});
|
|
51
52
|
}
|
|
@@ -56,16 +57,15 @@ export class EsolveAuthService {
|
|
|
56
57
|
password
|
|
57
58
|
}
|
|
58
59
|
};
|
|
59
|
-
return this.http
|
|
60
|
+
return this.http
|
|
61
|
+
.post(`${this.config.api_url}/set-login.php`, body, {
|
|
60
62
|
headers: {
|
|
61
63
|
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
|
|
62
64
|
},
|
|
63
|
-
params: {
|
|
64
|
-
ws_id: this.config.wsid
|
|
65
|
-
},
|
|
66
65
|
responseType: 'json',
|
|
67
66
|
observe: 'body'
|
|
68
|
-
})
|
|
67
|
+
})
|
|
68
|
+
.pipe(map((response) => {
|
|
69
69
|
if ((response.responses === undefined) ||
|
|
70
70
|
(response.responses.length <= 0)) {
|
|
71
71
|
throw response;
|
|
@@ -76,7 +76,8 @@ export class EsolveAuthService {
|
|
|
76
76
|
throw login_response;
|
|
77
77
|
}
|
|
78
78
|
for (const response_log of login_response.log) {
|
|
79
|
-
if ((response_log.type === 'success') &&
|
|
79
|
+
if ((response_log.type === 'success') &&
|
|
80
|
+
(response_log.message_code === 'login_success')) {
|
|
80
81
|
this.session.handleUpdateSession(login_response.esolve_id);
|
|
81
82
|
return login_response.esolve_id;
|
|
82
83
|
}
|
|
@@ -94,18 +95,14 @@ export class EsolveAuthService {
|
|
|
94
95
|
checkAccessToken(session) {
|
|
95
96
|
session = session || this.session.currentSession;
|
|
96
97
|
const token = session?.key ?? '';
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
ws_id: this.config.wsid
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
return this.http.get(`${this.config.api_url}/service/get-access-token.php`, {
|
|
104
|
-
params,
|
|
98
|
+
return this.http
|
|
99
|
+
.get(`${this.config.api_url}/get-access-token.php`, {
|
|
100
|
+
params: { key: token },
|
|
105
101
|
headers: new HttpHeaders({
|
|
106
102
|
'Accept-Language': '*'
|
|
107
|
-
})
|
|
108
|
-
})
|
|
103
|
+
}),
|
|
104
|
+
})
|
|
105
|
+
.pipe(map((responseData) => {
|
|
109
106
|
if ((responseData.type === 'error') ||
|
|
110
107
|
(responseData.type === 'exception') ||
|
|
111
108
|
(!responseData.additional_data.key_okay)) {
|
|
@@ -113,7 +110,8 @@ export class EsolveAuthService {
|
|
|
113
110
|
}
|
|
114
111
|
responseData.additional_data.key = token;
|
|
115
112
|
return responseData;
|
|
116
|
-
}))
|
|
113
|
+
}))
|
|
114
|
+
.toPromise();
|
|
117
115
|
}
|
|
118
116
|
// Handlers
|
|
119
117
|
handleExpiration() {
|
|
@@ -126,14 +124,15 @@ export class EsolveAuthService {
|
|
|
126
124
|
};
|
|
127
125
|
}
|
|
128
126
|
handleAuthentication(responseData) {
|
|
129
|
-
if (responseData.additional_data.key) {
|
|
130
|
-
|
|
127
|
+
if (!responseData.additional_data.key) {
|
|
128
|
+
return;
|
|
131
129
|
}
|
|
130
|
+
this.session.handleSession(responseData.additional_data.user_id, responseData.additional_data.key, +responseData.additional_data.expiry_time, +responseData.additional_data.expires, this.handleExpiration());
|
|
132
131
|
}
|
|
133
132
|
handleError(errorRes) {
|
|
134
133
|
const error = {
|
|
135
134
|
message: 'An unknown error occurred',
|
|
136
|
-
data: {}
|
|
135
|
+
data: {},
|
|
137
136
|
};
|
|
138
137
|
if ((!errorRes.type) ||
|
|
139
138
|
(!errorRes.service_type) ||
|
|
@@ -149,15 +148,15 @@ export class EsolveAuthService {
|
|
|
149
148
|
return throwError(error);
|
|
150
149
|
}
|
|
151
150
|
}
|
|
152
|
-
EsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
153
|
-
EsolveAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
151
|
+
EsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveAuthService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveSessionService }, { token: i3.EsolveErrorHandlerService }, { token: i4.EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
152
|
+
EsolveAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveAuthService, providedIn: 'root' });
|
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveAuthService, decorators: [{
|
|
155
154
|
type: Injectable,
|
|
156
155
|
args: [{
|
|
157
|
-
providedIn: 'root'
|
|
156
|
+
providedIn: 'root',
|
|
158
157
|
}]
|
|
159
158
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
160
159
|
type: Inject,
|
|
161
160
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
162
|
-
}] }, { type: i1.HttpClient }, { type: i2.EsolveSessionService }, { type: i3.EsolveErrorHandlerService }, { type: i4.
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYXV0aC9lc29sdmUtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFFSCxVQUFVLEVBRVYsV0FBVyxFQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl0RCxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQXNCdEYsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixPQUE2QixFQUM3QixZQUF1QyxFQUN2QyxhQUE0QjtRQUpHLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ3BDLENBQUM7SUFFRSxjQUFjLENBQ2pCLEtBQWEsRUFDYixRQUFnQixFQUNoQixZQUFxQixLQUFLO1FBRTFCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFOUIsSUFBSSxTQUFTLEVBQUU7WUFDWCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDZCxNQUFNLEdBQUcsTUFBTSxDQUFD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ZUFBZSxDQUFDLE9BQU8sRUFDckMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQzFCLENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTyxXQUFXLENBQUMsUUFBZ0M7UUFDaEQsTUFBTSxLQUFLLEdBQUc7WUFDVixPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLElBQUksRUFBRSxFQUFFO1NBQ1gsQ0FBQztRQUVGLElBQ0ksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDeEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFDckI7WUFDRSxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtRQUVELElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDaEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxRQUFRLENBQUMsZUFBZSxFQUFFO1lBQzFCLEtBQUssQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztTQUN6QztRQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzhHQXhOUSxpQkFBaUIsa0JBRWQscUJBQXFCO2tIQUZ4QixpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBIdHRwQ2xpZW50LFxyXG4gICAgSHR0cFBhcmFtcyxcclxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgSHR0cEhlYWRlcnNcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnLCBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uIH0gZnJvbSAnLi4vc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbic7XHJcbmltcG9ydCB7IEVzb2x2ZVNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlU2V0UmVzcG9uc2UsIEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0gfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9lcnJvci1oYW5kbGVyL2Vzb2x2ZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5cclxuaW50ZXJmYWNlIEVzb2x2ZUF1dGhSZXNwb25zZURhdGEge1xyXG4gICAgc2VydmljZV90eXBlOiBzdHJpbmc7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBhZGRpdGlvbmFsX2RhdGE6IHtcclxuICAgICAgICBleHBpcmVzOiBudW1iZXIsXHJcbiAgICAgICAgZXhwaXJ5X3RpbWU6IG51bWJlcixcclxuICAgICAgICB1c2VyX2lkOiBudW1iZXIsXHJcbiAgICAgICAga2V5Pzogc3RyaW5nLFxyXG4gICAgICAgIGtleV9va2F5PzogYm9vbGVhbixcclxuICAgIH07XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQXV0aFNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIHNlc3Npb246IEVzb2x2ZVNlc3Npb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY29va2llU2VydmljZTogQ29va2llU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0QWNjZXNzVG9rZW4oXHJcbiAgICAgICAgZW1haWw6IHN0cmluZyxcclxuICAgICAgICBwYXNzd29yZDogc3RyaW5nLFxyXG4gICAgICAgIGFub255bW91czogYm9vbGVhbiA9IGZhbHNlXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUF1dGhSZXNwb25zZURhdGE+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKGFub255bW91cykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdhbm9ueW1vdXMnLCAnMScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVtYWlsICE9PSAnJykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdlbWFpbCcsIGVtYWlsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChwYXNzd29yZCAhPT0gJycpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFzc3dvcmQnLCBwYXNzd29yZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd3c19pZCcsIHRoaXMuY29uZmlnLndzaWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVBdXRoUmVzcG9uc2VEYXRhPihcclxuICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2VydmljZS9nZXQtYWNjZXNzLXRva2VuLnBocGAsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICcqJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgdGFwKHJlc3BvbnNlRGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlRGF0YS50eXBlID09PSAnZXJyb3InKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2V4Y2VwdGlvbicpXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZURhdGE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpLFxyXG4gICAgICAgICAgICB0YXAocmVzcG9uc2VEYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQXV0aGVudGljYXRpb24ocmVzcG9uc2VEYXRhKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdXRvTG9naW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uLnJlc3RvcmUoXHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXhwaXJhdGlvbigpLFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldEFjY2Vzc1Rva2VuKCcnLCAnJywgdHJ1ZSkudG9Qcm9taXNlKCkudGhlbihcclxuICAgICAgICAgICAgICAgICAgICBfID0+IHsgfSxcclxuICAgICAgICAgICAgICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbG9naW4oZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgbG9naW46IHtcclxuICAgICAgICAgICAgICAgIGVtYWlsLFxyXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVQb3N0UmVzcG9uc2VJdGVtPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NlcnZpY2Uvc2V0LWxvZ2luLnBocGAsXHJcbiAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OydcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICB3c19pZDogdGhpcy5jb25maWcud3NpZFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZXNwb25zZXMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBsb2dpbl9yZXNwb25zZSA9IHJlc3BvbnNlLnJlc3BvbnNlc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKGxvZ2luX3Jlc3BvbnNlLnN0YXR1cy5zdGF0ZSAhPT0gJ3N1Y2Nlc3MnKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIChsb2dpbl9yZXNwb25zZS5zdGF0dXMuc3RhdGUgIT09ICd3YXJuaW5nJylcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGxvZ2luX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVzcG9uc2VfbG9nIG9mIGxvZ2luX3Jlc3BvbnNlLmxvZykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgocmVzcG9uc2VfbG9nLnR5cGUgPT09ICdzdWNjZXNzJykgJiYgKHJlc3BvbnNlX2xvZy5tZXNzYWdlX2NvZGUgPT09ICdsb2dpbl9zdWNjZXNzJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmhhbmRsZVVwZGF0ZVNlc3Npb24obG9naW5fcmVzcG9uc2UuZXNvbHZlX2lkIGFzIG51bWJlcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9naW5fcmVzcG9uc2UuZXNvbHZlX2lkIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhyb3cgbG9naW5fcmVzcG9uc2U7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKCdzZXQtbG9naW4nLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbG9nb3V0KCk6IFByb21pc2U8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4ge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5jbGVhclRpbWVyKCk7XHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZSgnX3dzX2lkJyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKCcnLCAnJywgdHJ1ZSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0FjY2Vzc1Rva2VuKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKTogUHJvbWlzZTxFc29sdmVBdXRoUmVzcG9uc2VEYXRhPiB7XHJcbiAgICAgICAgc2Vzc2lvbiA9IHNlc3Npb24gfHwgdGhpcy5zZXNzaW9uLmN1cnJlbnRTZXNzaW9uO1xyXG5cclxuICAgICAgICBjb25zdCB0b2tlbiA9IHNlc3Npb24/LmtleSA/PyAnJztcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICBrZXk6IHRva2VuLFxyXG4gICAgICAgICAgICAgICAgd3NfaWQ6IHRoaXMuY29uZmlnLndzaWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVBdXRoUmVzcG9uc2VEYXRhPihcclxuICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2VydmljZS9nZXQtYWNjZXNzLXRva2VuLnBocGAsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICcqJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlRGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlRGF0YS50eXBlID09PSAnZXJyb3InKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2V4Y2VwdGlvbicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKCFyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleV9va2F5KVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2VEYXRhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEua2V5ID0gdG9rZW47XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhhbmRsZXJzXHJcbiAgICBwcml2YXRlIGhhbmRsZUV4cGlyYXRpb24oKTogKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKSA9PiB2b2lkIHtcclxuICAgICAgICByZXR1cm4gKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tBY2Nlc3NUb2tlbihzZXNzaW9uKS50aGVuKFxyXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBdXRoZW50aWNhdGlvbihyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUF1dGhlbnRpY2F0aW9uKHJlc3BvbnNlRGF0YTogRXNvbHZlQXV0aFJlc3BvbnNlRGF0YSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlc3Npb24uaGFuZGxlU2Vzc2lvbihcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEudXNlcl9pZCxcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEua2V5LFxyXG4gICAgICAgICAgICAgICAgK3Jlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEuZXhwaXJ5X3RpbWUsXHJcbiAgICAgICAgICAgICAgICArcmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YS5leHBpcmVzLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHBpcmF0aW9uKClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvclJlczogRXNvbHZlQXV0aFJlc3BvbnNlRGF0YSk6IE9ic2VydmFibGU8bmV2ZXI+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHtcclxuICAgICAgICAgICAgbWVzc2FnZTogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnLFxyXG4gICAgICAgICAgICBkYXRhOiB7fVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgKCFlcnJvclJlcy50eXBlKSB8fFxyXG4gICAgICAgICAgICAoIWVycm9yUmVzLnNlcnZpY2VfdHlwZSkgfHxcclxuICAgICAgICAgICAgKCFlcnJvclJlcy5tZXNzYWdlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXJyb3JSZXMubWVzc2FnZS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBlcnJvclJlcy5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVycm9yUmVzLmFkZGl0aW9uYWxfZGF0YSkge1xyXG4gICAgICAgICAgICBlcnJvci5kYXRhID0gZXJyb3JSZXMuYWRkaXRpb25hbF9kYXRhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
161
|
+
}] }, { type: i1.HttpClient }, { type: i2.EsolveSessionService }, { type: i3.EsolveErrorHandlerService }, { type: i4.EsolveCookieService }]; } });
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYXV0aC9lc29sdmUtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFFSCxVQUFVLEVBRVYsV0FBVyxHQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQXVCdEYsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixPQUE2QixFQUM3QixZQUF1QyxFQUN2QyxhQUFrQztRQUpILFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtJQUMxQyxDQUFDO0lBRUUsY0FBYyxDQUNqQixLQUFhLEVBQ2IsUUFBZ0IsRUFDaEIsWUFBcUIsS0FBSztRQUUxQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLElBQUksU0FBUyxFQUFFO1lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FB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QixDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUN4QixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUNyQjtZQUNFLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBRUQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7U0FDcEM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxlQUFlLEVBQUU7WUFDMUIsS0FBSyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7OEdBeE5RLGlCQUFpQixrQkFFZCxxQkFBcUI7a0hBRnhCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEh0dHBDbGllbnQsXHJcbiAgICBIdHRwUGFyYW1zLFxyXG4gICAgSHR0cEVycm9yUmVzcG9uc2UsXHJcbiAgICBIdHRwSGVhZGVycyxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZywgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRXNvbHZlU2Vzc2lvbiB9IGZyb20gJy4uL3Nlc3Npb24vZXNvbHZlLXNlc3Npb24nO1xyXG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24vZXNvbHZlLXNlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVNldFJlc3BvbnNlLCBFc29sdmVQb3N0UmVzcG9uc2VJdGVtIH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3ItaGFuZGxlci9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ29va2llU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9jb29raWUvZXNvbHZlLWNvb2tpZS5zZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBFc29sdmVBdXRoUmVzcG9uc2VEYXRhIHtcclxuICAgIHNlcnZpY2VfdHlwZTogc3RyaW5nO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgYWRkaXRpb25hbF9kYXRhOiB7XHJcbiAgICAgICAgZXhwaXJlczogbnVtYmVyLFxyXG4gICAgICAgIGV4cGlyeV90aW1lOiBudW1iZXIsXHJcbiAgICAgICAgdXNlcl9pZDogbnVtYmVyLFxyXG4gICAgICAgIGtleT86IHN0cmluZyxcclxuICAgICAgICBrZXlfb2theT86IGJvb2xlYW4sXHJcbiAgICB9O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVBdXRoU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbjogRXNvbHZlU2Vzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBFc29sdmVDb29raWVTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRBY2Nlc3NUb2tlbihcclxuICAgICAgICBlbWFpbDogc3RyaW5nLFxyXG4gICAgICAgIHBhc3N3b3JkOiBzdHJpbmcsXHJcbiAgICAgICAgYW5vbnltb3VzOiBib29sZWFuID0gZmFsc2VcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAoYW5vbnltb3VzKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2Fub255bW91cycsIHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVtYWlsICE9PSAnJykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdlbWFpbCcsIGVtYWlsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChwYXNzd29yZCAhPT0gJycpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFzc3dvcmQnLCBwYXNzd29yZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtYWNjZXNzLXRva2VuLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiAnKicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAoKHJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlRGF0YS50eXBlID09PSAnZXJyb3InKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLnR5cGUgPT09ICdleGNlcHRpb24nKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZURhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpLFxyXG4gICAgICAgICAgICAgICAgdGFwKChyZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUF1dGhlbnRpY2F0aW9uKHJlc3BvbnNlRGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdXRvTG9naW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uLnJlc3RvcmUoXHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXhwaXJhdGlvbigpLFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldEFjY2Vzc1Rva2VuKCcnLCAnJywgdHJ1ZSkudG9Qcm9taXNlKCkudGhlbihcclxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBsb2dpbihlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBsb2dpbjoge1xyXG4gICAgICAgICAgICAgICAgZW1haWwsXHJcbiAgICAgICAgICAgICAgICBwYXNzd29yZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVQb3N0UmVzcG9uc2VJdGVtPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtbG9naW4ucGhwYCxcclxuICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OydcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5J1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVzcG9uc2VzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvZ2luX3Jlc3BvbnNlID0gcmVzcG9uc2UucmVzcG9uc2VzWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2dpbl9yZXNwb25zZS5zdGF0dXMuc3RhdGUgIT09ICdzdWNjZXNzJykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ2luX3Jlc3BvbnNlLnN0YXR1cy5zdGF0ZSAhPT0gJ3dhcm5pbmcnKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBsb2dpbl9yZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVzcG9uc2VfbG9nIG9mIGxvZ2luX3Jlc3BvbnNlLmxvZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VfbG9nLnR5cGUgPT09ICdzdWNjZXNzJykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZV9sb2cubWVzc2FnZV9jb2RlID09PSAnbG9naW5fc3VjY2VzcycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmhhbmRsZVVwZGF0ZVNlc3Npb24obG9naW5fcmVzcG9uc2UuZXNvbHZlX2lkIGFzIG51bWJlcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvZ2luX3Jlc3BvbnNlLmVzb2x2ZV9pZCBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGxvZ2luX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LWxvZ2luJywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbG9nb3V0KCk6IFByb21pc2U8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4ge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5jbGVhclRpbWVyKCk7XHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZSgnX3dzX2lkJyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKCcnLCAnJywgdHJ1ZSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0FjY2Vzc1Rva2VuKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKTogUHJvbWlzZTxFc29sdmVBdXRoUmVzcG9uc2VEYXRhPiB7XHJcbiAgICAgICAgc2Vzc2lvbiA9IHNlc3Npb24gfHwgdGhpcy5zZXNzaW9uLmN1cnJlbnRTZXNzaW9uO1xyXG5cclxuICAgICAgICBjb25zdCB0b2tlbiA9IHNlc3Npb24/LmtleSA/PyAnJztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUF1dGhSZXNwb25zZURhdGE+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWFjY2Vzcy10b2tlbi5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBrZXk6IHRva2VuIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICcqJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2Vycm9yJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlRGF0YS50eXBlID09PSAnZXhjZXB0aW9uJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKCFyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleV9va2F5KVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZURhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleSA9IHRva2VuO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VEYXRhO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSGFuZGxlcnNcclxuICAgIHByaXZhdGUgaGFuZGxlRXhwaXJhdGlvbigpOiAoc2Vzc2lvbj86IEVzb2x2ZVNlc3Npb24pID0+IHZvaWQge1xyXG4gICAgICAgIHJldHVybiAoc2Vzc2lvbj86IEVzb2x2ZVNlc3Npb24pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0FjY2Vzc1Rva2VuKHNlc3Npb24pLnRoZW4oXHJcbiAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUF1dGhlbnRpY2F0aW9uKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dvdXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlQXV0aGVudGljYXRpb24ocmVzcG9uc2VEYXRhOiBFc29sdmVBdXRoUmVzcG9uc2VEYXRhKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlc3Npb24uaGFuZGxlU2Vzc2lvbihcclxuICAgICAgICAgICAgcmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YS51c2VyX2lkLFxyXG4gICAgICAgICAgICByZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleSxcclxuICAgICAgICAgICAgK3Jlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEuZXhwaXJ5X3RpbWUsXHJcbiAgICAgICAgICAgICtyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmV4cGlyZXMsXHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXhwaXJhdGlvbigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yUmVzOiBFc29sdmVBdXRoUmVzcG9uc2VEYXRhKTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0ge1xyXG4gICAgICAgICAgICBtZXNzYWdlOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHt9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgKCFlcnJvclJlcy50eXBlKSB8fFxyXG4gICAgICAgICAgICAoIWVycm9yUmVzLnNlcnZpY2VfdHlwZSkgfHxcclxuICAgICAgICAgICAgKCFlcnJvclJlcy5tZXNzYWdlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXJyb3JSZXMubWVzc2FnZS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBlcnJvclJlcy5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVycm9yUmVzLmFkZGl0aW9uYWxfZGF0YSkge1xyXG4gICAgICAgICAgICBlcnJvci5kYXRhID0gZXJyb3JSZXMuYWRkaXRpb25hbF9kYXRhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -19,10 +19,7 @@ export class EsolveBannerService {
|
|
|
19
19
|
*/
|
|
20
20
|
getBanners(identifier, banner_display_container, enable_date_filter = false) {
|
|
21
21
|
let params = new HttpParams({
|
|
22
|
-
fromObject: {
|
|
23
|
-
ws_id: this.config.wsid,
|
|
24
|
-
enable_date_filter
|
|
25
|
-
}
|
|
22
|
+
fromObject: { enable_date_filter }
|
|
26
23
|
});
|
|
27
24
|
if (identifier) {
|
|
28
25
|
params = params.set('identifier', identifier);
|
|
@@ -30,7 +27,9 @@ export class EsolveBannerService {
|
|
|
30
27
|
if (banner_display_container) {
|
|
31
28
|
params = params.set('banner_display_container', banner_display_container);
|
|
32
29
|
}
|
|
33
|
-
return this.http
|
|
30
|
+
return this.http
|
|
31
|
+
.get(`${this.config.api_url}/get-banners.php`, { params })
|
|
32
|
+
.pipe(map((response) => {
|
|
34
33
|
if (response.records === undefined) {
|
|
35
34
|
throw response;
|
|
36
35
|
}
|
|
@@ -90,15 +89,15 @@ export class EsolveBannerService {
|
|
|
90
89
|
return banners;
|
|
91
90
|
}
|
|
92
91
|
}
|
|
93
|
-
EsolveBannerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
94
|
-
EsolveBannerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
92
|
+
EsolveBannerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveBannerService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
93
|
+
EsolveBannerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveBannerService, providedIn: 'root' });
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveBannerService, decorators: [{
|
|
96
95
|
type: Injectable,
|
|
97
96
|
args: [{
|
|
98
|
-
providedIn: 'root'
|
|
97
|
+
providedIn: 'root',
|
|
99
98
|
}]
|
|
100
99
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
101
100
|
type: Inject,
|
|
102
101
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
103
102
|
}] }, { type: i1.HttpClient }]; } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWJhbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9iYW5uZXJzL2Vzb2x2ZS1iYW5uZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd0RixPQUFPLEVBQUUsWUFBWSxFQUF3QixNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFRekUsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSSxVQUFVLENBQ2IsVUFBbUIsRUFDbkIsd0JBQWlDLEVBQ2pDLHFCQUE4QixLQUFLO1FBRW5DLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dCQUN2QixrQkFBa0I7YUFDckI7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsRUFBRTtZQUNaLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNqRDtRQUVE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QyxJQUFJLENBQUMsQ0FBQztpQkFDbkY7Z0JBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsVUFBVSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM3RTtnQkFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksQ0FDM0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUNWLE1BQU0sQ0FBQyx3QkFBd0IsRUFDL0IsTUFBTSxDQUFDLFVBQVUsRUFDakIsTUFBTSxDQUFDLElBQUksRUFDWCxNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxPQUFPLEVBQ2QsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUNyQjtvQkFDSSxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHO29CQUNwQixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNO2lCQUM3QixFQUNELFVBQVUsQ0FDYixDQUFDO2dCQUVGLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDeEI7U0FDSjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7O2dIQXhJUSxtQkFBbUIsa0JBRWhCLHFCQUFxQjtvSEFGeEIsbUJBQW1CLGNBRmhCLE1BQU07MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnLCBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJUeXBlIH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLXR5cGUnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXIsIEVzb2x2ZUJhbm5lckltYWdlU2V0IH0gZnJvbSAnLi9lc29sdmUtYmFubmVyJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2UgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJJbWFnZUhvdHNwb3QgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UtaG90c3BvdCc7XHJcbmltcG9ydCB7IEVzb2x2ZUJhbm5lclJlY29yZCB9IGZyb20gJy4vZXNvbHZlLWJhbm5lci1yZWNvcmQnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJJbWFnZUhvdHNwb3RSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UtaG90c3BvdC1yZWNvcmQnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJJbWFnZVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLWJhbm5lci1pbWFnZS1yZWNvcmQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVCYW5uZXJTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYmFubmVycyByZWNvcmRzIGZyb20gZVNvbHZlIGluc3RhbmNlXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiBlU29sdmUgYmFubmVycy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEJhbm5lcnMoXHJcbiAgICAgICAgaWRlbnRpZmllcj86IHN0cmluZyxcclxuICAgICAgICBiYW5uZXJfZGlzcGxheV9jb250YWluZXI/OiBzdHJpbmcsXHJcbiAgICAgICAgZW5hYmxlX2RhdGVfZmlsdGVyOiBib29sZWFuID0gZmFsc2VcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQmFubmVyW10+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICB3c19pZDogdGhpcy5jb25maWcud3NpZCxcclxuICAgICAgICAgICAgICAgIGVuYWJsZV9kYXRlX2ZpbHRlclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChpZGVudGlmaWVyKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2lkZW50aWZpZXInLCBpZGVudGlmaWVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChiYW5uZXJfZGlzcGxheV9jb250YWluZXIpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnYmFubmVyX2Rpc3BsYXlfY29udGFpbmVyJywgYmFubmVyX2Rpc3BsYXlfY29udGFpbmVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUJhbm5lclJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NlcnZpY2UvZ2V0LWJhbm5lcnMucGhwYCxcclxuICAgICAgICAgICAgeyBwYXJhbXMgfVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmFubmVycyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc0Jhbm5lckltYWdlSG90c3BvdHMoaG90c3BvdF9yZWNvcmRzOiBFc29sdmVCYW5uZXJJbWFnZUhvdHNwb3RSZWNvcmRbXSk6IEVzb2x2ZUJhbm5lckltYWdlSG90c3BvdFtdIHtcclxuICAgICAgICBjb25zdCBob3RzcG90czogRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKGhvdHNwb3RfcmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaG90c3BvdF9yZWNvcmQgb2YgaG90c3BvdF9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBob3RzcG90ID0gbmV3IEVzb2x2ZUJhbm5lckltYWdlSG90c3BvdChcclxuICAgICAgICAgICAgICAgICAgICBob3RzcG90X3JlY29yZC51cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgaG90c3BvdF9yZWNvcmQudGFyZ2V0LFxyXG4gICAgICAgICAgICAgICAgICAgIGhvdHNwb3RfcmVjb3JkLmNvb3JkcyxcclxuICAgICAgICAgICAgICAgICAgICBob3RzcG90X3JlY29yZC5jb29yZHNfc3RyaW5nXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIGhvdHNwb3RzLnB1c2goaG90c3BvdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBob3RzcG90cztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NCYW5uZXJJbWFnZXMoXHJcbiAgICAgICAgaW1hZ2VfcmVjb3JkczogRXNvbHZlQmFubmVySW1hZ2VSZWNvcmRbXSxcclxuICAgICAgICBiYW5uZXJfdHlwZTogRXNvbHZlQmFubmVyVHlwZVxyXG4gICAgKTogRXNvbHZlQmFubmVySW1hZ2VbXSB7XHJcbiAgICAgICAgY29uc3QgaW1hZ2VzOiBFc29sdmVCYW5uZXJJbWFnZVtdID0gW107XHJcblxyXG4gICAgICAgIGlmIChpbWFnZV9yZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBpbWFnZV9yZWNvcmQgb2YgaW1hZ2VfcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgRXNvbHZlQmFubmVySW1hZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgK2ltYWdlX3JlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZV9yZWNvcmQuaW1hZ2VfdHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAraW1hZ2VfcmVjb3JkLndpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICtpbWFnZV9yZWNvcmQuaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlX3JlY29yZC5maWxlbmFtZVxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKGJhbm5lcl90eXBlID09PSAnaG90c3BvdCcpICYmIChpbWFnZV9yZWNvcmQuaG90c3BvdHMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaG90c3BvdHMgPSB0aGlzLnByb2Nlc3NCYW5uZXJJbWFnZUhvdHNwb3RzKGltYWdlX3JlY29yZC5ob3RzcG90cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2UuaG90c3BvdHMgPSBob3RzcG90cztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpbWFnZXMucHVzaChpbWFnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBpbWFnZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzIGJhbm5lciByZWNvcmRzIGludG8gYmFubmVyIG9iamVjdHNcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIEFycmF5IG9mIHJlY29yZHNcclxuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgYmFubmVyc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NCYW5uZXJzKHJlY29yZHM6IEVzb2x2ZUJhbm5lclJlY29yZFtdKTogRXNvbHZlQmFubmVyW10ge1xyXG4gICAgICAgIGNvbnN0IGJhbm5lcnM6IEVzb2x2ZUJhbm5lcltdID0gW107XHJcblxyXG4gICAgICAgIGlmICgocmVjb3JkcykgJiYgKHJlY29yZHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW1hZ2Vfc2V0czogRXNvbHZlQmFubmVySW1hZ2VTZXQgPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocmVjb3JkLmltYWdlcy5kZXNrdG9wKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vfc2V0cy5kZXNrdG9wID0gdGhpcy5wcm9jZXNzQmFubmVySW1hZ2VzKHJlY29yZC5pbWFnZXMuZGVza3RvcCwgcmVjb3JkLnR5cGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQuaW1hZ2VzLm1vYmlsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlX3NldHMubW9iaWxlID0gdGhpcy5wcm9jZXNzQmFubmVySW1hZ2VzKHJlY29yZC5pbWFnZXMubW9iaWxlLCByZWNvcmQudHlwZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5pbWFnZXMuc3ViKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vfc2V0cy5zdWIgPSB0aGlzLnByb2Nlc3NCYW5uZXJJbWFnZXMocmVjb3JkLmltYWdlcy5zdWIsIHJlY29yZC50eXBlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBiYW5uZXIgPSBuZXcgRXNvbHZlQmFubmVyKFxyXG4gICAgICAgICAgICAgICAgICAgICtyZWNvcmQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmJhbm5lcl9kaXNwbGF5X2NvbnRhaW5lcixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuaWRlbnRpZmllcixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmFydGljbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiByZWNvcmQubGluay51cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogcmVjb3JkLmxpbmsudGFyZ2V0XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZV9zZXRzXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIGJhbm5lcnMucHVzaChiYW5uZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYmFubmVycztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWJhbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9iYW5uZXJzL2Vzb2x2ZS1iYW5uZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd0RixPQUFPLEVBQUUsWUFBWSxFQUF3QixNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFRekUsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSSxVQUFVLENBQ2IsVUFBbUIsRUFDbkIsd0JBQWlDLEVBQ2pDLHFCQUE4QixLQUFLO1FBRW5DLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQ3hCLFVBQVUsRUFBRSxFQUFFLGtCQUFrQixFQUFFO1NBQ3JDLENBQUMsQ0FBQztRQUVILElBQUksVUFBVSxFQUFFO1lBQ1osTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSx3QkFBd0IsRUFBRTtZQUMxQixNQUFNLEdBQUcsTUFBTSxDQUFD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QUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsVUFBVSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUNqQixNQUFNLENBQUMsSUFBSSxDQUNkLENBQUM7aUJBQ0w7Z0JBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQzNCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFDVixNQUFNLENBQUMsd0JBQXdCLEVBQy9CLE1BQU0sQ0FBQyxVQUFVLEVBQ2pCLE1BQU0sQ0FBQyxJQUFJLEVBQ1gsTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNLENBQUMsT0FBTyxFQUNkLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFDckI7b0JBQ0ksR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRztvQkFDcEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTTtpQkFDN0IsRUFDRCxVQUFVLENBQ2IsQ0FBQztnQkFFRixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hCO1NBQ0o7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDOztnSEFsSlEsbUJBQW1CLGtCQUVoQixxQkFBcUI7b0hBRnhCLG1CQUFtQixjQUZoQixNQUFNOzJGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZywgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVyVHlwZSB9IGZyb20gJy4vZXNvbHZlLWJhbm5lci10eXBlJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVyLCBFc29sdmVCYW5uZXJJbWFnZVNldCB9IGZyb20gJy4vZXNvbHZlLWJhbm5lcic7XHJcbmltcG9ydCB7IEVzb2x2ZUJhbm5lckltYWdlIH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90IH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLWhvdHNwb3QnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItcmVjb3JkJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90UmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLWhvdHNwb3QtcmVjb3JkJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2VSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UtcmVjb3JkJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUJhbm5lclNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBiYW5uZXJzIHJlY29yZHMgZnJvbSBlU29sdmUgaW5zdGFuY2VcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIGVTb2x2ZSBiYW5uZXJzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0QmFubmVycyhcclxuICAgICAgICBpZGVudGlmaWVyPzogc3RyaW5nLFxyXG4gICAgICAgIGJhbm5lcl9kaXNwbGF5X2NvbnRhaW5lcj86IHN0cmluZyxcclxuICAgICAgICBlbmFibGVfZGF0ZV9maWx0ZXI6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVCYW5uZXJbXT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHsgZW5hYmxlX2RhdGVfZmlsdGVyIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGlkZW50aWZpZXIpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnaWRlbnRpZmllcicsIGlkZW50aWZpZXIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGJhbm5lcl9kaXNwbGF5X2NvbnRhaW5lcikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdiYW5uZXJfZGlzcGxheV9jb250YWluZXInLCBiYW5uZXJfZGlzcGxheV9jb250YWluZXIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUJhbm5lclJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtYmFubmVycy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmFubmVycyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQmFubmVySW1hZ2VIb3RzcG90cyhcclxuICAgICAgICBob3RzcG90X3JlY29yZHM6IEVzb2x2ZUJhbm5lckltYWdlSG90c3BvdFJlY29yZFtdXHJcbiAgICApOiBFc29sdmVCYW5uZXJJbWFnZUhvdHNwb3RbXSB7XHJcbiAgICAgICAgY29uc3QgaG90c3BvdHM6IEVzb2x2ZUJhbm5lckltYWdlSG90c3BvdFtdID0gW107XHJcblxyXG4gICAgICAgIGlmIChob3RzcG90X3JlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGhvdHNwb3RfcmVjb3JkIG9mIGhvdHNwb3RfcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaG90c3BvdCA9IG5ldyBFc29sdmVCYW5uZXJJbWFnZUhvdHNwb3QoXHJcbiAgICAgICAgICAgICAgICAgICAgaG90c3BvdF9yZWNvcmQudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIGhvdHNwb3RfcmVjb3JkLnRhcmdldCxcclxuICAgICAgICAgICAgICAgICAgICBob3RzcG90X3JlY29yZC5jb29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgaG90c3BvdF9yZWNvcmQuY29vcmRzX3N0cmluZ1xyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBob3RzcG90cy5wdXNoKGhvdHNwb3QpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaG90c3BvdHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQmFubmVySW1hZ2VzKFxyXG4gICAgICAgIGltYWdlX3JlY29yZHM6IEVzb2x2ZUJhbm5lckltYWdlUmVjb3JkW10sXHJcbiAgICAgICAgYmFubmVyX3R5cGU6IEVzb2x2ZUJhbm5lclR5cGVcclxuICAgICk6IEVzb2x2ZUJhbm5lckltYWdlW10ge1xyXG4gICAgICAgIGNvbnN0IGltYWdlczogRXNvbHZlQmFubmVySW1hZ2VbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoaW1hZ2VfcmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaW1hZ2VfcmVjb3JkIG9mIGltYWdlX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlID0gbmV3IEVzb2x2ZUJhbm5lckltYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICtpbWFnZV9yZWNvcmQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VfcmVjb3JkLmltYWdlX3R5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgK2ltYWdlX3JlY29yZC53aWR0aCxcclxuICAgICAgICAgICAgICAgICAgICAraW1hZ2VfcmVjb3JkLmhlaWdodCxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZV9yZWNvcmQuZmlsZW5hbWVcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKChiYW5uZXJfdHlwZSA9PT0gJ2hvdHNwb3QnKSAmJiAoaW1hZ2VfcmVjb3JkLmhvdHNwb3RzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhvdHNwb3RzID0gdGhpcy5wcm9jZXNzQmFubmVySW1hZ2VIb3RzcG90cyhpbWFnZV9yZWNvcmQuaG90c3BvdHMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlLmhvdHNwb3RzID0gaG90c3BvdHM7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaW1hZ2VzLnB1c2goaW1hZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaW1hZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2VzcyBiYW5uZXIgcmVjb3JkcyBpbnRvIGJhbm5lciBvYmplY3RzXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBBcnJheSBvZiByZWNvcmRzXHJcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIGJhbm5lcnNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQmFubmVycyhyZWNvcmRzOiBFc29sdmVCYW5uZXJSZWNvcmRbXSk6IEVzb2x2ZUJhbm5lcltdIHtcclxuICAgICAgICBjb25zdCBiYW5uZXJzOiBFc29sdmVCYW5uZXJbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoKHJlY29yZHMpICYmIChyZWNvcmRzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlX3NldHM6IEVzb2x2ZUJhbm5lckltYWdlU2V0ID0ge307XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5pbWFnZXMuZGVza3RvcCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlX3NldHMuZGVza3RvcCA9IHRoaXMucHJvY2Vzc0Jhbm5lckltYWdlcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmltYWdlcy5kZXNrdG9wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQudHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5pbWFnZXMubW9iaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vfc2V0cy5tb2JpbGUgPSB0aGlzLnByb2Nlc3NCYW5uZXJJbWFnZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pbWFnZXMubW9iaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQudHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5pbWFnZXMuc3ViKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vfc2V0cy5zdWIgPSB0aGlzLnByb2Nlc3NCYW5uZXJJbWFnZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pbWFnZXMuc3ViLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQudHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgYmFubmVyID0gbmV3IEVzb2x2ZUJhbm5lcihcclxuICAgICAgICAgICAgICAgICAgICArcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5iYW5uZXJfZGlzcGxheV9jb250YWluZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5hcnRpY2xlLFxyXG4gICAgICAgICAgICAgICAgICAgICtyZWNvcmQuc29ydF9wcmlvcml0eSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogcmVjb3JkLmxpbmsudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHJlY29yZC5saW5rLnRhcmdldFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vfc2V0c1xyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBiYW5uZXJzLnB1c2goYmFubmVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGJhbm5lcnM7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -20,14 +20,13 @@ export class EsolveCartService {
|
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Retrieves the current cart
|
|
23
|
+
*
|
|
23
24
|
* @returns An `Observable` with an array of cart items
|
|
24
25
|
*/
|
|
25
26
|
getCart() {
|
|
26
|
-
return this.http
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
}).pipe(map(response => {
|
|
27
|
+
return this.http
|
|
28
|
+
.get(`${this.config.api_url}/get-cart.php`)
|
|
29
|
+
.pipe(map((response) => {
|
|
31
30
|
if (response.records === undefined) {
|
|
32
31
|
throw response;
|
|
33
32
|
}
|
|
@@ -36,6 +35,7 @@ export class EsolveCartService {
|
|
|
36
35
|
}
|
|
37
36
|
/**
|
|
38
37
|
* Updates the cart by preforming various actions, such as adding, editing or removing items from the cart.
|
|
38
|
+
*
|
|
39
39
|
* @param items An array of options to update the cart
|
|
40
40
|
* @param action The default action to preform
|
|
41
41
|
* @returns An `Observable` with an array of responses that gives feedback on the requested changes
|
|
@@ -45,16 +45,15 @@ export class EsolveCartService {
|
|
|
45
45
|
items,
|
|
46
46
|
action
|
|
47
47
|
};
|
|
48
|
-
return this.http
|
|
48
|
+
return this.http
|
|
49
|
+
.post(`${this.config.api_url}/set-cart-item.php`, body, {
|
|
49
50
|
headers: {
|
|
50
51
|
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
|
|
51
52
|
},
|
|
52
|
-
params: {
|
|
53
|
-
ws_id: this.config.wsid
|
|
54
|
-
},
|
|
55
53
|
responseType: 'json',
|
|
56
54
|
observe: 'body'
|
|
57
|
-
})
|
|
55
|
+
})
|
|
56
|
+
.pipe(map(response => {
|
|
58
57
|
if (response.responses === undefined) {
|
|
59
58
|
throw response;
|
|
60
59
|
}
|
|
@@ -63,14 +62,13 @@ export class EsolveCartService {
|
|
|
63
62
|
}
|
|
64
63
|
/**
|
|
65
64
|
* Retrieves the totals of the cart with all the totals calculated
|
|
65
|
+
*
|
|
66
66
|
* @returns An `Observable` with an object containing cart totals
|
|
67
67
|
*/
|
|
68
68
|
getTotals() {
|
|
69
|
-
return this.http
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
}).pipe(map(response => {
|
|
69
|
+
return this.http
|
|
70
|
+
.get(`${this.config.api_url}/get-cart-totals.php`)
|
|
71
|
+
.pipe(map((response) => {
|
|
74
72
|
if (response.records === undefined) {
|
|
75
73
|
throw response;
|
|
76
74
|
}
|
|
@@ -79,14 +77,13 @@ export class EsolveCartService {
|
|
|
79
77
|
}
|
|
80
78
|
/**
|
|
81
79
|
* Retrieves a tracking code for the cart
|
|
80
|
+
*
|
|
82
81
|
* @returns An `Observable` with the cart tracking code
|
|
83
82
|
*/
|
|
84
83
|
getTrackingCode() {
|
|
85
|
-
return iif(() => this._cached_tracking > 0, of(this._cached_tracking), this.http
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
}).pipe(map(response => {
|
|
84
|
+
return iif(() => this._cached_tracking > 0, of(this._cached_tracking), this.http
|
|
85
|
+
.get(`${this.config.api_url}/get-checkout-tracking.php`)
|
|
86
|
+
.pipe(map((response) => {
|
|
90
87
|
if (response.records === undefined) {
|
|
91
88
|
throw response;
|
|
92
89
|
}
|
|
@@ -96,6 +93,7 @@ export class EsolveCartService {
|
|
|
96
93
|
}
|
|
97
94
|
/**
|
|
98
95
|
* Initiates checkout of the cart items
|
|
96
|
+
*
|
|
99
97
|
* @param type The cart type that needs to be checked out
|
|
100
98
|
* @param addresses_id The ID of the delivery address
|
|
101
99
|
* @param shipping_id The ID of the shipping method
|
|
@@ -119,16 +117,15 @@ export class EsolveCartService {
|
|
|
119
117
|
throw tracking;
|
|
120
118
|
}
|
|
121
119
|
body.tracking = tracking;
|
|
122
|
-
return this.http
|
|
120
|
+
return this.http
|
|
121
|
+
.post(`${this.config.api_url}/set-checkout.php`, body, {
|
|
123
122
|
headers: {
|
|
124
123
|
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
|
|
125
124
|
},
|
|
126
|
-
params: {
|
|
127
|
-
ws_id: this.config.wsid
|
|
128
|
-
},
|
|
129
125
|
responseType: 'json',
|
|
130
126
|
observe: 'body'
|
|
131
|
-
})
|
|
127
|
+
})
|
|
128
|
+
.pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
|
|
132
129
|
this._cached_tracking = 0;
|
|
133
130
|
return new EsolveCheckoutResult(response);
|
|
134
131
|
})), catchError((errorRes) => {
|
|
@@ -137,7 +134,8 @@ export class EsolveCartService {
|
|
|
137
134
|
}));
|
|
138
135
|
}
|
|
139
136
|
/**
|
|
140
|
-
* Processes the eSolve tree records
|
|
137
|
+
* Processes the eSolve tree records
|
|
138
|
+
*
|
|
141
139
|
* @param cart_item_records Records to process
|
|
142
140
|
* @returns An array of processed cart items
|
|
143
141
|
*/
|
|
@@ -153,6 +151,7 @@ export class EsolveCartService {
|
|
|
153
151
|
}
|
|
154
152
|
/**
|
|
155
153
|
* Processes the eSolve cart totals
|
|
154
|
+
*
|
|
156
155
|
* @param record Data to process
|
|
157
156
|
* @returns Processed cart totals
|
|
158
157
|
*/
|
|
@@ -161,15 +160,15 @@ export class EsolveCartService {
|
|
|
161
160
|
return cart_totals;
|
|
162
161
|
}
|
|
163
162
|
}
|
|
164
|
-
EsolveCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
165
|
-
EsolveCartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
163
|
+
EsolveCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCartService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveErrorHandlerService }, { token: i3.EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
164
|
+
EsolveCartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCartService, providedIn: 'root' });
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCartService, decorators: [{
|
|
167
166
|
type: Injectable,
|
|
168
167
|
args: [{
|
|
169
|
-
providedIn: 'root'
|
|
168
|
+
providedIn: 'root',
|
|
170
169
|
}]
|
|
171
170
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
172
171
|
type: Inject,
|
|
173
172
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
174
173
|
}] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }]; } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9lc29sdmUtY2FydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl0RixPQUFPLEVBRUgsY0FBYyxFQUdqQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUtoRSxNQUFNLE9BQU8saUJBQWlCO0lBRzFCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCLEVBQ2hCLFlBQXVDLEVBQ3ZDLGVBQTZDO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsb0JBQWUsR0FBZixlQUFlLENBQThCO1FBTmpELHFCQUFnQixHQUFHLENBQUMsQ0FBQztJQU96QixDQUFDO0lBRUw7OztPQUdHO0lBQ0ksT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHVCQUF1QixFQUM3QztZ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QUMsVUFBVSxFQUM1QixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDcEMsQ0FBQyxDQUFDO2FBQ047U0FDSjtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssaUJBQWlCLENBQUMsTUFBOEI7UUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDcEMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUNmLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDYixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2IsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUNYLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDbkIsQ0FBQztRQUVGLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7OzhHQTdQUSxpQkFBaUIsa0JBSWQscUJBQXFCO2tIQUp4QixpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgaWlmLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcsIEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlLCBFc29sdmVTZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9yLWhhbmRsZXIvZXNvbHZlLWVycm9yLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UtaGFuZGxlci9lc29sdmUtcmVzcG9uc2UtaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZUNhcnQsXHJcbiAgICBFc29sdmVDYXJ0SXRlbSxcclxuICAgIEVzb2x2ZUNhcnRTZXRBY3Rpb24sXHJcbiAgICBFc29sdmVDYXJ0U2V0SXRlbVxyXG59IGZyb20gJy4vZXNvbHZlLWNhcnQtaXRlbSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnRTdG9ja0l0ZW0gfSBmcm9tICcuL2Vzb2x2ZS1jYXJ0LXN0b2NrLWl0ZW0nO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0SXRlbVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLWNhcnQtaXRlbS1yZWNvcmQnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0SXRlbVJlc3BvbnNlIH0gZnJvbSAnLi9lc29sdmUtY2FydC1pdGVtLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydFRvdGFscyB9IGZyb20gJy4vZXNvbHZlLWNhcnQtdG90YWxzJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydFRvdGFsc1JlY29yZCB9IGZyb20gJy4vZXNvbHZlLWNhcnQtdG90YWxzLXJlY29yZCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNoZWNrb3V0UmVzcG9uc2UsIEVzb2x2ZVRyYWNraW5nQ29kZSB9IGZyb20gJy4vZXNvbHZlLWNoZWNrb3V0JztcclxuaW1wb3J0IHsgRXNvbHZlQ2hlY2tvdXRSZXN1bHQgfSBmcm9tICcuL2Vzb2x2ZS1jaGVja291dC1yZXN1bHQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVDYXJ0U2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9jYWNoZWRfdHJhY2tpbmcgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZXNwb25zZUhhbmRsZXI6IEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY2FydFxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgY2FydCBpdGVtc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Q2FydCgpOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0SXRlbVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NlcnZpY2UvZ2V0LWNhcnQucGhwYCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgd3NfaWQ6IHRoaXMuY29uZmlnLndzaWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydChyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgY2FydCBieSBwcmVmb3JtaW5nIHZhcmlvdXMgYWN0aW9ucywgc3VjaCBhcyBhZGRpbmcsIGVkaXRpbmcgb3IgcmVtb3ZpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC5cclxuICAgICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBvcHRpb25zIHRvIHVwZGF0ZSB0aGUgY2FydFxyXG4gICAgICogQHBhcmFtIGFjdGlvbiBUaGUgZGVmYXVsdCBhY3Rpb24gdG8gcHJlZm9ybVxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgcmVzcG9uc2VzIHRoYXQgZ2l2ZXMgZmVlZGJhY2sgb24gdGhlIHJlcXVlc3RlZCBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRDYXJ0KFxyXG4gICAgICAgIGl0ZW1zOiBFc29sdmVDYXJ0U2V0SXRlbVtdLFxyXG4gICAgICAgIGFjdGlvbjogRXNvbHZlQ2FydFNldEFjdGlvbiA9ICdhZGQnXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2VbXT4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIGl0ZW1zLFxyXG4gICAgICAgICAgICBhY3Rpb25cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEl0ZW1SZXNwb25zZT4+KFxyXG4gICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXJ2aWNlL3NldC1jYXJ0LWl0ZW0ucGhwYCxcclxuICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7J1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHdzX2lkOiB0aGlzLmNvbmZpZy53c2lkXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keSdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXNwb25zZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZXNwb25zZXM7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgdG90YWxzIG9mIHRoZSBjYXJ0IHdpdGggYWxsIHRoZSB0b3RhbHMgY2FsY3VsYXRlZFxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFRvdGFscygpOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnRUb3RhbHM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0VG90YWxzUmVjb3JkPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NlcnZpY2UvZ2V0LWNhcnQtdG90YWxzLnBocGAsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHdzX2lkOiB0aGlzLmNvbmZpZy53c2lkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NhcnRUb3RhbHMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIHRyYWNraW5nIGNvZGUgZm9yIHRoZSBjYXJ0XHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgY2FydCB0cmFja2luZyBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUcmFja2luZ0NvZGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgICAgICByZXR1cm4gaWlmKFxyXG4gICAgICAgICAgICAoKSA9PiB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPiAwLFxyXG4gICAgICAgICAgICBvZih0aGlzLl9jYWNoZWRfdHJhY2tpbmcpLFxyXG4gICAgICAgICAgICB0aGlzLmh0dHAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVRyYWNraW5nQ29kZT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2VydmljZS9nZXQtY2hlY2tvdXQtdHJhY2tpbmcucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3NfaWQ6IHRoaXMuY29uZmlnLndzaWRcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IHJlc3BvbnNlLnJlY29yZHMudHJhY2tpbmc7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWF0ZXMgY2hlY2tvdXQgb2YgdGhlIGNhcnQgaXRlbXNcclxuICAgICAqIEBwYXJhbSB0eXBlIFRoZSBjYXJ0IHR5cGUgdGhhdCBuZWVkcyB0byBiZSBjaGVja2VkIG91dFxyXG4gICAgICogQHBhcmFtIGFkZHJlc3Nlc19pZCBUaGUgSUQgb2YgdGhlIGRlbGl2ZXJ5IGFkZHJlc3NcclxuICAgICAqIEBwYXJhbSBzaGlwcGluZ19pZCBUaGUgSUQgb2YgdGhlIHNoaXBwaW5nIG1ldGhvZFxyXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kX2lkIFRoZSBJRCBvZiB0aGUgc2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcclxuICAgICAqIEBwYXJhbSBsb2NhdGlvbl9pZCBUaGUgSUQgb2YgdGhlIHNlbGVjdGVkIGJyYW5jaCBmcm9tIHdpdGggc2hpcHBpbmcgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZFxyXG4gICAgICogQHBhcmFtIGNvbW1lbnRzIEFkZGl0aW9uYWwgY29tbWVudHMgb24gdGhlIGNhcnRcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSB0cmFuc2FjdGlvbiBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hlY2tvdXQoXHJcbiAgICAgICAgdHlwZTogJ29yZGVyJyB8ICdxdW90ZScsXHJcbiAgICAgICAgYWRkcmVzc2VzX2lkOiBudW1iZXIsXHJcbiAgICAgICAgc2hpcHBpbmdfaWQ6IG51bWJlcixcclxuICAgICAgICBwYXltZW50X21ldGhvZF9pZCA9IDAsXHJcbiAgICAgICAgbG9jYXRpb25faWQgPSAwLFxyXG4gICAgICAgIGNvbW1lbnRzID0gJydcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2hlY2tvdXRSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICBhZGRyZXNzZXNfaWQsXHJcbiAgICAgICAgICAgIHNoaXBwaW5nX2lkLFxyXG4gICAgICAgICAgICBwYXltZW50X21ldGhvZF9pZCxcclxuICAgICAgICAgICAgbG9jYXRpb25faWQsXHJcbiAgICAgICAgICAgIGNvbW1lbnRzLFxyXG4gICAgICAgICAgICB0cmFja2luZzogMFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNraW5nQ29kZSgpLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodHJhY2tpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0cmFja2luZyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgdHJhY2tpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgYm9keS50cmFja2luZyA9IHRyYWNraW5nO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDaGVja291dFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2VydmljZS9zZXQtY2hlY2tvdXQucGhwYCxcclxuICAgICAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3NfaWQ6IHRoaXMuY29uZmlnLndzaWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtYXAoaHR0cF9yZXNwb25zZSA9PiB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlQ2hlY2tvdXRSZXN1bHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKCdzZXQtY2hlY2tvdXQnLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHRyZWUgcmVjb3Jkcy5cclxuICAgICAqIEBwYXJhbSBjYXJ0X2l0ZW1fcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBjYXJ0IGl0ZW1zXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnQoY2FydF9pdGVtX3JlY29yZHM6IEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10pOiBFc29sdmVDYXJ0IHtcclxuICAgICAgICBjb25zdCBjYXJ0X2l0ZW1zOiBFc29sdmVDYXJ0SXRlbVtdID0gW107XHJcblxyXG4gICAgICAgIGlmIChjYXJ0X2l0ZW1fcmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcnRfaXRlbV9yZWNvcmQgb2YgY2FydF9pdGVtX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNhcnRfc3RvY2tfaXRlbSA9IG5ldyBFc29sdmVDYXJ0U3RvY2tJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuY29kZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5zZWZfbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuaXNfYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLml0ZW1zX2luX3BhY2ssXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5kZWxpdmVyeV9jYXRlZ29yeSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmltYWdlX25hbWVcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FydF9pdGVtcy5wdXNoKG5ldyBFc29sdmVDYXJ0SXRlbShcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X3N0b2NrX2l0ZW0sXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQucXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5wcmljZSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5kaXNjb3VudCxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5kaXNjb3VudF9pbnRlcnZhbCxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnZhdF9yYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuYWxsb3dfcXVvdGVzLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuYWxsb3dfb3JkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQubXVzdF9jb2xsZWN0LFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQucmVxdWVzdGVkX2Fzc2VtYmx5LFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLnByaWNlX2luY2wsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfcHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfcHJpY2VfaW5jbCxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5kaXNjb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC52YXRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQubGluZV90b3RhbCxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5saW5lX3RvdGFsX2luY2xcclxuICAgICAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY2FydF9pdGVtcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIGNhcnQgdG90YWxzXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkIERhdGEgdG8gcHJvY2Vzc1xyXG4gICAgICogQHJldHVybnMgUHJvY2Vzc2VkIGNhcnQgdG90YWxzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnRUb3RhbHMocmVjb3JkOiBFc29sdmVDYXJ0VG90YWxzUmVjb3JkKTogRXNvbHZlQ2FydFRvdGFscyB7XHJcbiAgICAgICAgY29uc3QgY2FydF90b3RhbHMgPSBuZXcgRXNvbHZlQ2FydFRvdGFscyhcclxuICAgICAgICAgICAgK3JlY29yZC5yZWNvcmRzLFxyXG4gICAgICAgICAgICArcmVjb3JkLml0ZW1zLFxyXG4gICAgICAgICAgICArcmVjb3JkLnRvdGFsLFxyXG4gICAgICAgICAgICArcmVjb3JkLnZhdCxcclxuICAgICAgICAgICAgK3JlY29yZC5kaXNjb3VudFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBjYXJ0X3RvdGFscztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9lc29sdmUtY2FydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl0RixPQUFPLEVBRUgsY0FBYyxFQUdqQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUtoRSxNQUFNLE9BQU8saUJBQWlCO0lBRzFCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCLEVBQ2hCLFlBQXVDLEVBQ3ZDLGVBQTZDO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsb0JBQWUsR0FBZixlQUFlLENBQThCO1FBTmpELHFCQUFnQixHQUFHLENBQUMsQ0FBQztJQU96QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGVBQWUsQ0FDeEM7YUFD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SUFDdkIsQ0FBQzs7OEdBelBRLGlCQUFpQixrQkFJZCxxQkFBcUI7a0hBSnhCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBS1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBpaWYsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZywgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UsIEVzb2x2ZVNldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3ItaGFuZGxlci9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZS1oYW5kbGVyL2Vzb2x2ZS1yZXNwb25zZS1oYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlQ2FydCxcclxuICAgIEVzb2x2ZUNhcnRJdGVtLFxyXG4gICAgRXNvbHZlQ2FydFNldEFjdGlvbixcclxuICAgIEVzb2x2ZUNhcnRTZXRJdGVtXHJcbn0gZnJvbSAnLi9lc29sdmUtY2FydC1pdGVtJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydFN0b2NrSXRlbSB9IGZyb20gJy4vZXNvbHZlLWNhcnQtc3RvY2staXRlbSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnRJdGVtUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtY2FydC1pdGVtLXJlY29yZCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2UgfSBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWl0ZW0tcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0VG90YWxzIH0gZnJvbSAnLi9lc29sdmUtY2FydC10b3RhbHMnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0VG90YWxzUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtY2FydC10b3RhbHMtcmVjb3JkJztcclxuaW1wb3J0IHsgRXNvbHZlQ2hlY2tvdXRSZXNwb25zZSwgRXNvbHZlVHJhY2tpbmdDb2RlIH0gZnJvbSAnLi9lc29sdmUtY2hlY2tvdXQnO1xyXG5pbXBvcnQgeyBFc29sdmVDaGVja291dFJlc3VsdCB9IGZyb20gJy4vZXNvbHZlLWNoZWNrb3V0LXJlc3VsdCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVDYXJ0U2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9jYWNoZWRfdHJhY2tpbmcgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZXNwb25zZUhhbmRsZXI6IEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY2FydFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIGNhcnQgaXRlbXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldENhcnQoKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LnBocGBcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NhcnQocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgY2FydCBieSBwcmVmb3JtaW5nIHZhcmlvdXMgYWN0aW9ucywgc3VjaCBhcyBhZGRpbmcsIGVkaXRpbmcgb3IgcmVtb3ZpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2Ygb3B0aW9ucyB0byB1cGRhdGUgdGhlIGNhcnRcclxuICAgICAqIEBwYXJhbSBhY3Rpb24gVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHByZWZvcm1cclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHJlc3BvbnNlcyB0aGF0IGdpdmVzIGZlZWRiYWNrIG9uIHRoZSByZXF1ZXN0ZWQgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0Q2FydChcclxuICAgICAgICBpdGVtczogRXNvbHZlQ2FydFNldEl0ZW1bXSxcclxuICAgICAgICBhY3Rpb246IEVzb2x2ZUNhcnRTZXRBY3Rpb24gPSAnYWRkJ1xyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlW10+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBpdGVtcyxcclxuICAgICAgICAgICAgYWN0aW9uXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1pdGVtLnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keSdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3BvbnNlcztcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHRvdGFscyBvZiB0aGUgY2FydCB3aXRoIGFsbCB0aGUgdG90YWxzIGNhbGN1bGF0ZWRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBjYXJ0IHRvdGFsc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0VG90YWxzKCk6IE9ic2VydmFibGU8RXNvbHZlQ2FydFRvdGFscz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0VG90YWxzUmVjb3JkPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC10b3RhbHMucGhwYFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydFRvdGFscyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSB0cmFja2luZyBjb2RlIGZvciB0aGUgY2FydFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBjYXJ0IHRyYWNraW5nIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFRyYWNraW5nQ29kZSgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgICAgIHJldHVybiBpaWYoXHJcbiAgICAgICAgICAgICgpID0+IHRoaXMuX2NhY2hlZF90cmFja2luZyA+IDAsXHJcbiAgICAgICAgICAgIG9mKHRoaXMuX2NhY2hlZF90cmFja2luZyksXHJcbiAgICAgICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFja2luZ0NvZGU+PihcclxuICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2hlY2tvdXQtdHJhY2tpbmcucGhwYFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gcmVzcG9uc2UucmVjb3Jkcy50cmFja2luZztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYXRlcyBjaGVja291dCBvZiB0aGUgY2FydCBpdGVtc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0eXBlIFRoZSBjYXJ0IHR5cGUgdGhhdCBuZWVkcyB0byBiZSBjaGVja2VkIG91dFxyXG4gICAgICogQHBhcmFtIGFkZHJlc3Nlc19pZCBUaGUgSUQgb2YgdGhlIGRlbGl2ZXJ5IGFkZHJlc3NcclxuICAgICAqIEBwYXJhbSBzaGlwcGluZ19pZCBUaGUgSUQgb2YgdGhlIHNoaXBwaW5nIG1ldGhvZFxyXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kX2lkIFRoZSBJRCBvZiB0aGUgc2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcclxuICAgICAqIEBwYXJhbSBsb2NhdGlvbl9pZCBUaGUgSUQgb2YgdGhlIHNlbGVjdGVkIGJyYW5jaCBmcm9tIHdpdGggc2hpcHBpbmcgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZFxyXG4gICAgICogQHBhcmFtIGNvbW1lbnRzIEFkZGl0aW9uYWwgY29tbWVudHMgb24gdGhlIGNhcnRcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSB0cmFuc2FjdGlvbiBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hlY2tvdXQoXHJcbiAgICAgICAgdHlwZTogJ29yZGVyJyB8ICdxdW90ZScsXHJcbiAgICAgICAgYWRkcmVzc2VzX2lkOiBudW1iZXIsXHJcbiAgICAgICAgc2hpcHBpbmdfaWQ6IG51bWJlcixcclxuICAgICAgICBwYXltZW50X21ldGhvZF9pZCA9IDAsXHJcbiAgICAgICAgbG9jYXRpb25faWQgPSAwLFxyXG4gICAgICAgIGNvbW1lbnRzID0gJydcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2hlY2tvdXRSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICBhZGRyZXNzZXNfaWQsXHJcbiAgICAgICAgICAgIHNoaXBwaW5nX2lkLFxyXG4gICAgICAgICAgICBwYXltZW50X21ldGhvZF9pZCxcclxuICAgICAgICAgICAgbG9jYXRpb25faWQsXHJcbiAgICAgICAgICAgIGNvbW1lbnRzLFxyXG4gICAgICAgICAgICB0cmFja2luZzogMFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNraW5nQ29kZSgpLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodHJhY2tpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0cmFja2luZyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgdHJhY2tpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgYm9keS50cmFja2luZyA9IHRyYWNraW5nO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDaGVja291dFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jaGVja291dC5waHBgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUNoZWNrb3V0UmVzdWx0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1jaGVja291dCcsIGVycm9yUmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2FydF9pdGVtX3JlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgY2FydCBpdGVtc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NDYXJ0KGNhcnRfaXRlbV9yZWNvcmRzOiBFc29sdmVDYXJ0SXRlbVJlY29yZFtdKTogRXNvbHZlQ2FydCB7XHJcbiAgICAgICAgY29uc3QgY2FydF9pdGVtczogRXNvbHZlQ2FydEl0ZW1bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoY2FydF9pdGVtX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJ0X2l0ZW1fcmVjb3JkIG9mIGNhcnRfaXRlbV9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYXJ0X3N0b2NrX2l0ZW0gPSBuZXcgRXNvbHZlQ2FydFN0b2NrSXRlbShcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuc2VmX25hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmlzX2FjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5pdGVtc19pbl9wYWNrLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuZGVsaXZlcnlfY2F0ZWdvcnksXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5pbWFnZV9uYW1lXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhcnRfaXRlbXMucHVzaChuZXcgRXNvbHZlQ2FydEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9zdG9ja19pdGVtLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLnF0eSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfaW50ZXJ2YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC52YXRfcmF0ZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmFsbG93X3F1b3RlcyxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmFsbG93X29yZGVycyxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLm11c3RfY29sbGVjdCxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnJlcXVlc3RlZF9hc3NlbWJseSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5wcmljZV9pbmNsLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmRpc2NvdW50X3ByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmRpc2NvdW50X3ByaWNlX2luY2wsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQudmF0X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmxpbmVfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQubGluZV90b3RhbF9pbmNsXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNhcnRfaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IHRvdGFsc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmQgRGF0YSB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ2FydFRvdGFscyhyZWNvcmQ6IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQpOiBFc29sdmVDYXJ0VG90YWxzIHtcclxuICAgICAgICBjb25zdCBjYXJ0X3RvdGFscyA9IG5ldyBFc29sdmVDYXJ0VG90YWxzKFxyXG4gICAgICAgICAgICArcmVjb3JkLnJlY29yZHMsXHJcbiAgICAgICAgICAgICtyZWNvcmQuaXRlbXMsXHJcbiAgICAgICAgICAgICtyZWNvcmQudG90YWwsXHJcbiAgICAgICAgICAgICtyZWNvcmQudmF0LFxyXG4gICAgICAgICAgICArcmVjb3JkLmRpc2NvdW50XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNhcnRfdG90YWxzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|