ng-easycommerce-v18 0.3.17 → 0.3.18-beta.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/README.md +3 -0
- package/esm2022/lib/constants/api.constants.service.mjs +19 -15
- package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +4 -2
- package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +31 -21
- package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +2 -2
- package/esm2022/lib/ec-services/base-api.service.mjs +148 -0
- package/esm2022/lib/ec-services/checkout.service.mjs +4 -2
- package/esm2022/lib/ec-services/index.mjs +3 -1
- package/esm2022/lib/ec-services/runtime-config.service.mjs +149 -0
- package/esm2022/lib/interfaces/environment.mjs +1 -1
- package/esm2022/lib/interfaces/index.mjs +2 -1
- package/esm2022/lib/interfaces/runtime-config.mjs +2 -0
- package/esm2022/lib/providers/index.mjs +2 -1
- package/esm2022/lib/providers/provideRuntimeConfig.mjs +39 -0
- package/fesm2022/ng-easycommerce-v18.mjs +435 -95
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/constants/api.constants.service.d.ts +1 -0
- package/lib/ec-services/base-api.service.d.ts +64 -0
- package/lib/ec-services/index.d.ts +2 -0
- package/lib/ec-services/runtime-config.service.d.ts +56 -0
- package/lib/interfaces/environment.d.ts +1 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/interfaces/runtime-config.d.ts +22 -0
- package/lib/providers/index.d.ts +1 -0
- package/lib/providers/provideRuntimeConfig.d.ts +12 -0
- package/package.json +1 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
+
import { switchMap } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
import * as i2 from "./runtime-config.service";
|
|
7
|
+
/**
|
|
8
|
+
* Servicio base para realizar peticiones HTTP usando configuración dinámica
|
|
9
|
+
* Todos los servicios de la aplicación deben extender este servicio o usar sus métodos
|
|
10
|
+
*/
|
|
11
|
+
export class BaseApiService {
|
|
12
|
+
http;
|
|
13
|
+
runtimeConfigService;
|
|
14
|
+
constructor(http, runtimeConfigService) {
|
|
15
|
+
this.http = http;
|
|
16
|
+
this.runtimeConfigService = runtimeConfigService;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Construye una URL completa usando la API_URL del runtime
|
|
20
|
+
*/
|
|
21
|
+
buildApiUrl(endpoint) {
|
|
22
|
+
return this.runtimeConfigService.buildApiUrl(endpoint);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Obtiene headers comunes que incluyen información del runtime
|
|
26
|
+
*/
|
|
27
|
+
getCommonHeaders() {
|
|
28
|
+
const config = this.runtimeConfigService.getConfig();
|
|
29
|
+
let headers = new HttpHeaders({
|
|
30
|
+
'Content-Type': 'application/json'
|
|
31
|
+
});
|
|
32
|
+
if (config) {
|
|
33
|
+
headers = headers
|
|
34
|
+
.set('X-Channel', config.channel)
|
|
35
|
+
.set('X-Locale', config.locale)
|
|
36
|
+
.set('X-Environment', config.appEnv);
|
|
37
|
+
}
|
|
38
|
+
return headers;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Método GET genérico
|
|
42
|
+
*/
|
|
43
|
+
get(endpoint, options = {}) {
|
|
44
|
+
const url = this.buildApiUrl(endpoint);
|
|
45
|
+
const headers = this.mergeHeaders(options.headers);
|
|
46
|
+
return this.http.get(url, {
|
|
47
|
+
...options,
|
|
48
|
+
headers
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Método POST genérico
|
|
53
|
+
*/
|
|
54
|
+
post(endpoint, data, options = {}) {
|
|
55
|
+
const url = this.buildApiUrl(endpoint);
|
|
56
|
+
const headers = this.mergeHeaders(options.headers);
|
|
57
|
+
return this.http.post(url, data, {
|
|
58
|
+
...options,
|
|
59
|
+
headers
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Método PUT genérico
|
|
64
|
+
*/
|
|
65
|
+
put(endpoint, data, options = {}) {
|
|
66
|
+
const url = this.buildApiUrl(endpoint);
|
|
67
|
+
const headers = this.mergeHeaders(options.headers);
|
|
68
|
+
return this.http.put(url, data, {
|
|
69
|
+
...options,
|
|
70
|
+
headers
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Método PATCH genérico
|
|
75
|
+
*/
|
|
76
|
+
patch(endpoint, data, options = {}) {
|
|
77
|
+
const url = this.buildApiUrl(endpoint);
|
|
78
|
+
const headers = this.mergeHeaders(options.headers);
|
|
79
|
+
return this.http.patch(url, data, {
|
|
80
|
+
...options,
|
|
81
|
+
headers
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Método DELETE genérico
|
|
86
|
+
*/
|
|
87
|
+
delete(endpoint, options = {}) {
|
|
88
|
+
const url = this.buildApiUrl(endpoint);
|
|
89
|
+
const headers = this.mergeHeaders(options.headers);
|
|
90
|
+
return this.http.delete(url, {
|
|
91
|
+
...options,
|
|
92
|
+
headers
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Método para peticiones que necesitan esperar a que la config esté cargada
|
|
97
|
+
*/
|
|
98
|
+
getWithConfig(endpoint, options = {}) {
|
|
99
|
+
return this.runtimeConfigService.config$.pipe(switchMap(config => {
|
|
100
|
+
if (!config) {
|
|
101
|
+
throw new Error('Runtime config not loaded');
|
|
102
|
+
}
|
|
103
|
+
return this.get(endpoint, options);
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Método para POST que necesitan esperar a que la config esté cargada
|
|
108
|
+
*/
|
|
109
|
+
postWithConfig(endpoint, data, options = {}) {
|
|
110
|
+
return this.runtimeConfigService.config$.pipe(switchMap(config => {
|
|
111
|
+
if (!config) {
|
|
112
|
+
throw new Error('Runtime config not loaded');
|
|
113
|
+
}
|
|
114
|
+
return this.post(endpoint, data, options);
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Combina headers personalizados con los headers comunes
|
|
119
|
+
*/
|
|
120
|
+
mergeHeaders(customHeaders) {
|
|
121
|
+
let headers = this.getCommonHeaders();
|
|
122
|
+
if (customHeaders) {
|
|
123
|
+
if (customHeaders instanceof HttpHeaders) {
|
|
124
|
+
customHeaders.keys().forEach(key => {
|
|
125
|
+
const values = customHeaders.getAll(key);
|
|
126
|
+
if (values) {
|
|
127
|
+
headers = headers.set(key, values);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
Object.keys(customHeaders).forEach(key => {
|
|
133
|
+
headers = headers.set(key, customHeaders[key]);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return headers;
|
|
138
|
+
}
|
|
139
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseApiService, deps: [{ token: i1.HttpClient }, { token: i2.RuntimeConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
140
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseApiService, providedIn: 'root' });
|
|
141
|
+
}
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseApiService, decorators: [{
|
|
143
|
+
type: Injectable,
|
|
144
|
+
args: [{
|
|
145
|
+
providedIn: 'root'
|
|
146
|
+
}]
|
|
147
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.RuntimeConfigService }] });
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9iYXNlLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFTN0M7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFHYjtJQUNBO0lBRlosWUFDWSxJQUFnQixFQUNoQixvQkFBMEM7UUFEMUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ25ELENBQUM7SUFFSjs7T0FFRztJQUNPLFdBQVcsQ0FBQyxRQUFnQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyRCxJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM1QixjQUFjLEVBQUUsa0JBQWtCO1NBQ25DLENBQUMsQ0FBQztRQUVILElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPLEdBQUcsT0FBTztpQkFDZCxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7aUJBQ2hDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDOUIsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMs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SlUsY0FBYzs0R0FBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUnVudGltZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL3J1bnRpbWUtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXF1ZXN0T3B0aW9ucyB7XHJcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzIHwgeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xyXG4gIHBhcmFtcz86IEh0dHBQYXJhbXMgfCB7IFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfTtcclxuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljaW8gYmFzZSBwYXJhIHJlYWxpemFyIHBldGljaW9uZXMgSFRUUCB1c2FuZG8gY29uZmlndXJhY2nDs24gZGluw6FtaWNhXHJcbiAqIFRvZG9zIGxvcyBzZXJ2aWNpb3MgZGUgbGEgYXBsaWNhY2nDs24gZGViZW4gZXh0ZW5kZXIgZXN0ZSBzZXJ2aWNpbyBvIHVzYXIgc3VzIG3DqXRvZG9zXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlQXBpU2VydmljZSB7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByb3RlY3RlZCBydW50aW1lQ29uZmlnU2VydmljZTogUnVudGltZUNvbmZpZ1NlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnV5ZSB1bmEgVVJMIGNvbXBsZXRhIHVzYW5kbyBsYSBBUElfVVJMIGRlbCBydW50aW1lXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGJ1aWxkQXBpVXJsKGVuZHBvaW50OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucnVudGltZUNvbmZpZ1NlcnZpY2UuYnVpbGRBcGlVcmwoZW5kcG9pbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0aWVuZSBoZWFkZXJzIGNvbXVuZXMgcXVlIGluY2x1eWVuIGluZm9ybWFjacOzbiBkZWwgcnVudGltZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDb21tb25IZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMucnVudGltZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XHJcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgaGVhZGVycyA9IGhlYWRlcnNcclxuICAgICAgICAuc2V0KCdYLUNoYW5uZWwnLCBjb25maWcuY2hhbm5lbClcclxuICAgICAgICAuc2V0KCdYLUxvY2FsZScsIGNvbmZpZy5sb2NhbGUpXHJcbiAgICAgICAgLnNldCgnWC1FbnZpcm9ubWVudCcsIGNvbmZpZy5hcHBFbnYpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBoZWFkZXJzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBHRVQgZ2Vuw6lyaWNvXHJcbiAgICovXHJcbiAgZ2V0PFQ+KGVuZHBvaW50OiBzdHJpbmcsIG9wdGlvbnM6IEFwaVJlcXVlc3RPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYnVpbGRBcGlVcmwoZW5kcG9pbnQpO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMubWVyZ2VIZWFkZXJzKG9wdGlvbnMuaGVhZGVycyk7XHJcbiAgICBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybCwge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gUE9TVCBnZW7DqXJpY29cclxuICAgKi9cclxuICBwb3N0PFQ+KGVuZHBvaW50OiBzdHJpbmcsIGRhdGE6IGFueSwgb3B0aW9uczogQXBpUmVxdWVzdE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5idWlsZEFwaVVybChlbmRwb2ludCk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5tZXJnZUhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odXJsLCBkYXRhLCB7XHJcbiAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBQVVQgZ2Vuw6lyaWNvXHJcbiAgICovXHJcbiAgcHV0PFQ+KGVuZHBvaW50OiBzdHJpbmcsIGRhdGE6IGFueSwgb3B0aW9uczogQXBpUmVxdWVzdE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5idWlsZEFwaVVybChlbmRwb2ludCk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5tZXJnZUhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPih1cmwsIGRhdGEsIHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgaGVhZGVyc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIFBBVENIIGdlbsOpcmljb1xyXG4gICAqL1xyXG4gIHBhdGNoPFQ+KGVuZHBvaW50OiBzdHJpbmcsIGRhdGE6IGFueSwgb3B0aW9uczogQXBpUmVxdWVzdE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5idWlsZEFwaVVybChlbmRwb2ludCk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5tZXJnZUhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPFQ+KHVybCwgZGF0YSwge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gREVMRVRFIGdlbsOpcmljb1xyXG4gICAqL1xyXG4gIGRlbGV0ZTxUPihlbmRwb2ludDogc3RyaW5nLCBvcHRpb25zOiBBcGlSZXF1ZXN0T3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJ1aWxkQXBpVXJsKGVuZHBvaW50KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLm1lcmdlSGVhZGVycyhvcHRpb25zLmhlYWRlcnMpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFQ+KHVybCwge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcGFyYSBwZXRpY2lvbmVzIHF1ZSBuZWNlc2l0YW4gZXNwZXJhciBhIHF1ZSBsYSBjb25maWcgZXN0w6kgY2FyZ2FkYVxyXG4gICAqL1xyXG4gIGdldFdpdGhDb25maWc8VD4oZW5kcG9pbnQ6IHN0cmluZywgb3B0aW9uczogQXBpUmVxdWVzdE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMucnVudGltZUNvbmZpZ1NlcnZpY2UuY29uZmlnJC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoY29uZmlnID0+IHtcclxuICAgICAgICBpZiAoIWNvbmZpZykge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSdW50aW1lIGNvbmZpZyBub3QgbG9hZGVkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldDxUPihlbmRwb2ludCwgb3B0aW9ucyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBwYXJhIFBPU1QgcXVlIG5lY2VzaXRhbiBlc3BlcmFyIGEgcXVlIGxhIGNvbmZpZyBlc3TDqSBjYXJnYWRhXHJcbiAgICovXHJcbiAgcG9zdFdpdGhDb25maWc8VD4oZW5kcG9pbnQ6IHN0cmluZywgZGF0YTogYW55LCBvcHRpb25zOiBBcGlSZXF1ZXN0T3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lQ29uZmlnU2VydmljZS5jb25maWckLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcChjb25maWcgPT4ge1xyXG4gICAgICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1J1bnRpbWUgY29uZmlnIG5vdCBsb2FkZWQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdDxUPihlbmRwb2ludCwgZGF0YSwgb3B0aW9ucyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tYmluYSBoZWFkZXJzIHBlcnNvbmFsaXphZG9zIGNvbiBsb3MgaGVhZGVycyBjb211bmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtZXJnZUhlYWRlcnMoY3VzdG9tSGVhZGVycz86IEh0dHBIZWFkZXJzIHwgeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9KTogSHR0cEhlYWRlcnMge1xyXG4gICAgbGV0IGhlYWRlcnMgPSB0aGlzLmdldENvbW1vbkhlYWRlcnMoKTtcclxuXHJcbiAgICBpZiAoY3VzdG9tSGVhZGVycykge1xyXG4gICAgICBpZiAoY3VzdG9tSGVhZGVycyBpbnN0YW5jZW9mIEh0dHBIZWFkZXJzKSB7XHJcbiAgICAgICAgY3VzdG9tSGVhZGVycy5rZXlzKCkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gY3VzdG9tSGVhZGVycy5nZXRBbGwoa2V5KTtcclxuICAgICAgICAgIGlmICh2YWx1ZXMpIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdmFsdWVzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhjdXN0b21IZWFkZXJzKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCBjdXN0b21IZWFkZXJzW2tleV0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGhlYWRlcnM7XHJcbiAgfVxyXG59Il19
|
|
@@ -81,7 +81,9 @@ export class CheckoutService {
|
|
|
81
81
|
this.complete().then(res => {
|
|
82
82
|
if (res.ok) {
|
|
83
83
|
this._router.navigate(['checkout/order_success']);
|
|
84
|
-
|
|
84
|
+
if (typeof window !== 'undefined') {
|
|
85
|
+
window.scrollTo(0, 0);
|
|
86
|
+
}
|
|
85
87
|
}
|
|
86
88
|
else {
|
|
87
89
|
this._toastService.show('operation-error');
|
|
@@ -213,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
213
215
|
providedIn: 'root'
|
|
214
216
|
}]
|
|
215
217
|
}], ctorParameters: () => [] });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9jaGVja291dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQVEsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxlQUFlO0lBRW5CLFlBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELFdBQVcsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0QsWUFBWSxHQUFn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QUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQztRQUNyRixPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUE7SUFFRCxXQUFXLEdBQUcsQ0FBQyxTQUFtQixFQUFFLElBQVMsRUFBRSxFQUFFO1FBQ2hELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQztRQUM5RSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCOzs7WUFHSTtJQUNMLENBQUMsQ0FBQTtJQUVELHNEQUFzRDtJQUM5QyxrQkFBa0IsR0FBRyxHQUFHLEVBQUU7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQTt3R0F6TlcsZUFBZTs0R0FBZixlQUFlLGNBRmYsTUFBTTs7NEZBRU4sZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4vY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hlY2tvdXREYXRhLCBJU3RlcCwgU3RlcFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3MnO1xyXG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgU3RlcCwgVXNlciB9IGZyb20gJy4uL2NsYXNzZXMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3JkZXJVdGlsaXR5U2VydmljZSB9IGZyb20gJy4vb3JkZXItdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrb3V0U2VydmljZSB7XHJcblxyXG5cdHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XHJcblx0cHJpdmF0ZSBfY29ubmVjdGlvbjogQ29ubmVjdGlvblNlcnZpY2UgPSBpbmplY3QoQ29ubmVjdGlvblNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX2FuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UgPSBpbmplY3QoQW5hbHl0aWNzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfY29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfb3JkZXJVdGlsaXR5U2VydmljZTogT3JkZXJVdGlsaXR5U2VydmljZSA9IGluamVjdChPcmRlclV0aWxpdHlTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cdHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XHJcblxyXG5cdHByaXZhdGUgX2NhbkNoZWNrb3V0U3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblx0cHJpdmF0ZSBfc3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdGVwW10+KFtdKVxyXG5cdHByaXZhdGUgX2xhc3RTdGVwU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHByaXZhdGUgX2xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblx0cHJpdmF0ZSBfb3JkZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG5cdHByaXZhdGUgX2Fzc29jaWF0ZWREYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2hlY2tvdXREYXRhW10gfCBudWxsPihudWxsKTtcclxuXHRwcml2YXRlIF9sb2FkaW5nU3RlcFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0cHVibGljIGNhbkNoZWNrb3V0JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2NhbkNoZWNrb3V0U3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHRwdWJsaWMgc3RhdGUkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9zdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHVibGljIGlzTGFzdFN0ZXAkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fbGFzdFN0ZXBTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHB1YmxpYyBhc3NvY2lhdGVkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX2Fzc29jaWF0ZWREYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHRwdWJsaWMgb3JkZXIkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9vcmRlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHVibGljIGxvYWRpbmdTdGVwJDpPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fbG9hZGluZ1N0ZXBTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRwdWJsaWMgdG90YWw6IGFueTtcclxuXHRwdWJsaWMgY2FydExvY2FsOiBhbnk7XHJcblx0cHJpdmF0ZSBjaGVja291dERhdGE6IGFueSA9IHt9O1xyXG5cdHByaXZhdGUgb3JkZXI6IGFueTtcclxuXHJcblx0Ly9BUEkgTWV0aG9kc1xyXG5cdGJhc2VBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuX2NvbnN0cy5DSEFOTkVMICsgJy9jaGVja291dC8nICsgdGhpcy5fY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCk7XHJcblx0Z2V0SGFzUHVyY2hhc2VDb25kaXRpb25zKCkgeyByZXR1cm4gJ3Nob3AtYXBpLycgKyB0aGlzLl9jb25zdHMuQ0hBTk5FTCArICcvY2FydHMvJyArIHRoaXMuX2NhcnRTZXJ2aWNlLmdldENhcnRUb2tlbigpICsgJy9oYXNfcHVyY2hhc2VfY29uZGl0aW9ucycgfTtcclxuXHRjb21wbGV0ZUFwaSgpIHsgcmV0dXJuIHRoaXMuYmFzZUFwaSgpICsgJy9jb21wbGV0ZScgfTtcclxuXHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0Y29tYmluZUxhdGVzdChbdGhpcy5fY2FydFNlcnZpY2UuY2FydEl0ZW1zJCwgdGhpcy5fY2FydFNlcnZpY2UubG9hZGluZyRdKS5zdWJzY3JpYmUoKFtpdGVtcywgbG9hZGluZ10pID0+IHtcclxuXHRcdFx0aWYgKCFsb2FkaW5nICYmIGl0ZW1zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHR0aGlzLl9jYW5DaGVja291dFN1YmplY3QubmV4dCh0cnVlKTtcclxuXHRcdFx0XHR0aGlzLl9jYXJ0U2VydmljZS5nZXRUb3RhbEFtb3VudCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMudG90YWwgPSByZXM7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fVxyXG5cdFx0fSlcclxuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmNhcnQkLnN1YnNjcmliZShjYXJ0ID0+IGNhcnQgJiYgKHRoaXMuY2FydExvY2FsID0gY2FydCkgJiYgdGhpcy51cGRhdGVBc29jaWF0ZWREYXRhKGNhcnQpKTtcclxuXHRcdHRoaXMub3JkZXIkLnN1YnNjcmliZShvcmRlciA9PiBvcmRlciAmJiB0aGlzLnVwZGF0ZUFzb2NpYXRlZERhdGEob3JkZXIpKVxyXG5cdH1cclxuXHJcblx0c2V0U3RlcHMoc3RlcHM6IElTdGVwW10pIHtcclxuXHRcdGxldCBmaW5hbF9zdGVwczogU3RlcFtdID0gW107XHJcblx0XHRzdGVwcy5mb3JFYWNoKChzdGVwLCBpKSA9PiBmaW5hbF9zdGVwcy5wdXNoKG5ldyBTdGVwKHN0ZXAubmFtZSwgc3RlcC5wcmlvcml0eSB8fCAoaSArIDEpLCBzdGVwLmxhYmVsLCBzdGVwLnN0YXRlKSkpO1xyXG5cdFx0dGhpcy5fc3RhdGVTdWJqZWN0Lm5leHQoZmluYWxfc3RlcHMpO1xyXG5cdFx0aWYgKGZpbmFsX3N0ZXBzLmxlbmd0aCA9PSAxKSB7XHJcblx0XHRcdHRoaXMuX2xhc3RTdGVwU3ViamVjdC5uZXh0KHRydWUpO1xyXG5cdFx0fVxyXG5cdFx0Ly8gY29uc29sZS5sb2coZmluYWxfc3RlcHMpO1xyXG5cdFx0Zmlyc3RWYWx1ZUZyb20odGhpcy5fY29ubmVjdGlvbi5nZXQodGhpcy5nZXRIYXNQdXJjaGFzZUNvbmRpdGlvbnMoKSkpLnRoZW4oXHJcblx0XHRcdHJlcyA9PiB7XHJcblx0XHRcdFx0dGhpcy5fYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ2NoZWNrb3V0X2luaXQnLCB7IC4uLnRoaXMuY2FydExvY2FsLCBjdXJyZW5jeTogdGhpcy5jYXJ0TG9jYWw/LmN1cnJlbmN5LCB2YWx1ZTogdGhpcy5jYXJ0TG9jYWw/LnRvdGFsIH0pXHJcblx0XHRcdH1cclxuXHRcdClcclxuXHR9XHJcblxyXG5cdG5leHQoKSB7XHJcblx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dCh0cnVlKTtcclxuXHRcdGNvbnN0IHN0ZXBzID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKClcclxuXHRcdGNvbnN0IHJlYWR5U3RlcCA9IHN0ZXBzLmZpbmRJbmRleChzdGVwID0+IHN0ZXAuc3RhdGUgPT09ICdyZWFkeScpO1xyXG5cdFx0aWYgKHN0ZXBzW3JlYWR5U3RlcCArIDFdKSB7XHJcblx0XHRcdHN0ZXBzW3JlYWR5U3RlcF0uc3RhdGUgPSAnZG9pbmcnXHJcblx0XHRcdHN0ZXBzW3JlYWR5U3RlcCArIDFdLnN0YXRlID0gJ3JlYWR5JztcclxuXHRcdFx0aWYgKCFzdGVwc1tyZWFkeVN0ZXAgKyAyXSkgdGhpcy5fbGFzdFN0ZXBTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcblx0XHRcdHRoaXMuX2xvYWRpbmdTdGVwU3ViamVjdC5uZXh0KGZhbHNlKVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jb21wbGV0ZSgpLnRoZW4oXHJcblx0XHRcdFx0cmVzID0+IHtcclxuXHRcdFx0XHRcdGlmIChyZXMub2spIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY2hlY2tvdXQvb3JkZXJfc3VjY2VzcyddKVxyXG5cdFx0XHRcdFx0XHQgd2luZG93LnNjcm9sbFRvKDAsIDApO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dChmYWxzZSlcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVyciA9PiB7XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIpXHJcblx0XHRcdFx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dChmYWxzZSlcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdvcGVyYXRpb24tZXJyb3InKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YmFjaygpIHtcclxuXHRcdGNvbnN0IHN0ZXBzID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKClcclxuXHRcdGNvbnN0IHJlYWR5U3RlcCA9IHN0ZXBzLmZpbmRJbmRleChzdGVwID0+IHN0ZXAuc3RhdGUgPT09ICdyZWFkeScpO1xyXG5cdFx0dGhpcy5fbGFzdFN0ZXBTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG5cdFx0aWYgKHN0ZXBzW3JlYWR5U3RlcCAtIDFdKSB7XHJcblx0XHRcdHN0ZXBzW3JlYWR5U3RlcF0uc3RhdGUgPSAncGVuZGluZydcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwIC0gMV0uc3RhdGUgPSAncmVhZHknO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2V0T3JkZXIgPSAob3JkZXI6IGFueSkgPT4geyB0aGlzLm9yZGVyID0gb3JkZXIsIHRoaXMuX29yZGVyU3ViamVjdC5uZXh0KG9yZGVyKSB9O1xyXG5cdC8vZ2V0T3JkZXIgPSAoKSA9PiB0aGlzLm9yZGVyIHx8IHRoaXMub3JkZXJTdWJqZWN0LnZhbHVlO1xyXG5cclxuXHRwcml2YXRlIGNvbXBsZXRlT3JkZXIgPSAoKSA9PiBmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLnB1dCh0aGlzLmNvbXBsZXRlQXBpKCksIHsgZW1haWw6IHRoaXMuY2hlY2tvdXREYXRhLmVtYWlsLCBub3RlczogdGhpcy5jaGVja291dERhdGEubm90ZXMgfHwgJycgfSkpO1xyXG5cclxuXHRjb21wbGV0ZSA9IGFzeW5jICgpID0+IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHRoaXMuX2xvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcblx0XHRcdGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbXBsZXRlT3JkZXIoKTtcclxuXHRcdFx0XHJcblx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LmVycm9yKSB7XHJcblx0XHRcdFx0dGhpcy5fY2FydFNlcnZpY2UuY2hhbmdlSGF2ZVRvVXBkYXRlKGZhbHNlKTtcclxuXHRcdFx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0XHRyZXR1cm4gKHsgb2s6IGZhbHNlLCByZXF1aXJlX2xvZ2luOiB0cnVlLCBtZXNzYWdlOiAnbm90LWNvbXBsZXRlZCcgfSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuc2V0T3JkZXIocmVzdWx0KTtcclxuXHRcdFx0dGhpcy5fYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3B1cmNoYXNlJywgeyAuLi5yZXN1bHQsIGN1cnJlbmN5OiByZXN1bHQuY3VycmVuY3ksIHZhbHVlOiByZXN1bHQudG90YWwgfSk7XHJcblx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmNsZWFyQW5kUmVzZXRDYXJ0KCk7XHJcblx0XHRcdHRoaXMuX2NhbkNoZWNrb3V0U3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0Ly90aGlzLl9vblJlYWR5U3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XHJcblx0XHRcdFxyXG5cdFx0XHQvLyDimqDvuI8gRklYOiBSZXNldCBjaGVja291dCBkYXRhIGFmdGVyIG9yZGVyIGNvbXBsZXRpb25cclxuXHRcdFx0dGhpcy5yZXNldENoZWNrb3V0U3RhdGUoKTtcclxuXHJcblx0XHRcdHJldHVybiAoeyBvazogdHJ1ZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICcnIH0pO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGNvbXBsZXRlOicsIGVycm9yKTtcclxuXHJcblx0XHRcdHJldHVybiB7IG9rOiBmYWxzZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICdBbiBlcnJvciBvY2N1cnJlZCcgfTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHQvLyB1cGRhdGVBc29jaWF0ZWREYXRhID0gKGNhcnQ6IGFueSkgPT4ge1xyXG5cdC8vIFx0bGV0IHJlc3VsdCA9IHRoaXMuX29yZGVyVXRpbGl0eVNlcnZpY2UuZ2V0UHJvbW90aW9ucyhjYXJ0KTtcclxuXHQvLyBcdGNvbnN0IHVzZXJQcm9maWxlOiBVc2VyID0gVXNlci5mcm9tSnNvbih0aGlzLl9hdXRoU2VydmljZS5nZXRVc2VyUHJvZmlsZUFzVXNlcigpKTtcclxuXHQvLyBcdGlmIChyZXN1bHQpIHtcclxuXHQvLyBcdFx0aWYgKHVzZXJQcm9maWxlLmlzV2hvbGVzYWxlcigpICYmIGNhcnQudG90YWxzLnRheGVzICE9IDApIHtcclxuXHQvLyBcdFx0XHRsZXQgdG90YWwgPSB7IC4uLnJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gfTtcclxuXHQvLyBcdFx0XHRyZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0ge1xyXG5cdC8vIFx0XHRcdFx0dHlwZTogJ3RheGVzJyxcclxuXHQvLyBcdFx0XHRcdG5hbWU6ICd0YXhlcycsXHJcblx0Ly8gXHRcdFx0XHRhbW91bnQ6IGNhcnQudG90YWxzLnRheGVzXHJcblx0Ly8gXHRcdFx0fVxyXG5cdC8vIFx0XHRcdHJlc3VsdC5wdXNoKHRvdGFsKTtcclxuXHQvLyBcdFx0fVxyXG5cdC8vIFx0XHRsZXQgc2hpcG1lbnQgPSByZXN1bHQ/LmZpbmQoKHByb21vdGlvbjogYW55KSA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xyXG5cdC8vIFx0XHRpZiAoIXNoaXBtZW50ICYmIGNhcnQudG90YWxzLnNoaXBwaW5nICE9IDApIHtcclxuXHJcblx0Ly8gXHRcdFx0aWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtLnR5cGUgPT09IFwic2hpcG1lbnRcIikpIHtcclxuXHQvLyBcdFx0XHRcdGxldCB0b3RhbCA9IHsgLi4ucmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSB9O1xyXG5cdC8vIFx0XHRcdFx0cmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSA9IHtcclxuXHQvLyBcdFx0XHRcdFx0dHlwZTogJ3NoaXBtZW50JyxcclxuXHQvLyBcdFx0XHRcdFx0bmFtZTogJ3NoaXBtZW50JyxcclxuXHQvLyBcdFx0XHRcdFx0YW1vdW50OiBjYXJ0LnRvdGFscy5zaGlwcGluZ1xyXG5cdC8vIFx0XHRcdFx0fVxyXG5cdC8vIFx0XHRcdFx0cmVzdWx0LnB1c2godG90YWwpO1xyXG5cdC8vIFx0XHRcdH1cclxuXHQvLyBcdFx0fVxyXG5cdC8vIFx0XHR0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QubmV4dChyZXN1bHQpO1xyXG5cdC8vIFx0fVxyXG5cdC8vIH1cclxuXHR1cGRhdGVBc29jaWF0ZWREYXRhID0gKGNhcnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9vcmRlclV0aWxpdHlTZXJ2aWNlLmdldFByb21vdGlvbnMoY2FydCk7XHJcblx0XHRpZiAoY2FydC50b3RhbHMudGF4ZXMgIT0gMCAmJiByZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0bGV0IHRvdGFsID0geyAuLi5yZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdIH07XHJcblx0XHRcdHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gPSB7XHJcblx0XHRcdFx0dHlwZTogJ3RheGVzJyxcclxuXHRcdFx0XHRuYW1lOiAndGF4ZXMnLFxyXG5cdFx0XHRcdGFtb3VudDogY2FydC50b3RhbHMudGF4ZXNcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXN1bHQucHVzaCh0b3RhbCk7XHJcblx0XHR9XHJcbiAgICAgICAgbGV0IHNoaXBtZW50ID0gcmVzdWx0Py5maW5kKHByb21vdGlvbiA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xyXG4gICAgICAgIGlmICghc2hpcG1lbnQgJiYgY2FydC50b3RhbHMuc2hpcHBpbmcgIT0gMCkge1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZChpdGVtID0+IGl0ZW0udHlwZSA9PT0gXCJzaGlwbWVudFwiKSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsID0geyAuLi5yZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdIH07XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzaGlwbWVudCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NoaXBtZW50JyxcclxuICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IGNhcnQudG90YWxzLnNoaXBwaW5nXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0b3RhbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblx0XHR0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QubmV4dChyZXN1bHQgPz8gbnVsbCk7XHJcbiAgICB9XHJcblxyXG5cdGdldFN0ZXBEYXRhID0gKHN0ZXBfbmFtZTogU3RlcFR5cGUpID0+IHtcclxuXHRcdGxldCBzdGVwX3Jlc3VsdCA9IHRoaXMuX3N0YXRlU3ViamVjdC5nZXRWYWx1ZSgpLmZpbmQoc3RlcCA9PiBzdGVwLm5hbWUgPT0gc3RlcF9uYW1lKTtcclxuXHRcdHJldHVybiAoc3RlcF9yZXN1bHQgJiYgc3RlcF9yZXN1bHQuZGF0YSk7XHJcblx0fVxyXG5cclxuXHRzZXRTdGVwRGF0YSA9IChzdGVwX25hbWU6IFN0ZXBUeXBlLCBkYXRhOiBhbnkpID0+IHtcclxuXHRcdGxldCBzdGVwID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKCkuZmluZChzdGVwID0+IHN0ZXAubmFtZSA9PSBzdGVwX25hbWUpO1xyXG5cdFx0c3RlcD8ucmVhZHkoZGF0YSk7XHJcblx0XHQvKiBpZiAoZGF0YSkge1xyXG5cdFx0XHR0aGlzLl9vcmRlclN1YmplY3QubmV4dChkYXRhKTtcclxuXHRcdFx0dGhpcy50b3RhbCA9IGRhdGEudG90YWxzLnRvdGFsO1xyXG5cdFx0fSAqL1xyXG5cdH1cclxuXHJcblx0Ly8g4pqg77iPIEZJWDogUmVzZXQgY2hlY2tvdXQgc3RhdGUgYWZ0ZXIgb3JkZXIgY29tcGxldGlvblxyXG5cdHByaXZhdGUgcmVzZXRDaGVja291dFN0YXRlID0gKCkgPT4ge1xyXG5cdFx0dGhpcy5jaGVja291dERhdGEgPSB7fTtcclxuXHRcdHRoaXMub3JkZXIgPSBudWxsO1xyXG5cdFx0dGhpcy5fc3RhdGVTdWJqZWN0Lm5leHQoW10pO1xyXG5cdFx0dGhpcy5fYXNzb2NpYXRlZERhdGFTdWJqZWN0Lm5leHQobnVsbCk7XHJcblx0XHR0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dChmYWxzZSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9jaGVja291dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQVEsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxlQUFlO0lBRW5CLFlBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELFdBQVcsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0QsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsb0JBQW9CLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsYUFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFbkQsbUJBQW1CLEdBQUcsSUFBSSxhQUFhLEVBQVcsQ0FBQztJQUNuRCxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUE7SUFDL0MsZ0JBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDdkQsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3RELGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUMvQyxzQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUM7SUFDMUUsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFM0QsWUFBWSxHQUF3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUUsTUFBTSxHQUFvQixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVELFdBQVcsR0FBd0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hFLGVBQWUsR0FBb0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlFLE1BQU0sR0FBb0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1RCxZQUFZLEdBQXVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUzRSxLQUFLLENBQU07SUFDWCxTQUFTLENBQU07SUFDZCxZQUFZLEdBQVEsRUFBRSxDQUFDO0lBQ3ZCLEtBQUssQ0FBTTtJQUVuQixhQUFhO0lBQ2IsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyRyx3QkFBd0IsS0FBSyxPQUFPLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsR0FBRywwQkFBMEIsQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3JKLFdBQVcsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUEsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUd0RDtRQUNDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ3hHLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtvQkFDekQsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQyxDQUFBO1lBQ0gsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWM7UUFDdEIsSUFBSSxXQUFXLEdBQVcsRUFBRSxDQUFDO1FBQzdCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELDRCQUE0QjtRQUM1QixjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDekUsR0FBRyxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUMzSSxDQUFDLENBQ0QsQ0FBQTtJQUNGLENBQUM7SUFFRCxJQUFJO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQzNDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLElBQUksS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFBO1lBQ2hDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDbkIsR0FBRyxDQUFDLEVBQUU7Z0JBQ0wsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUE7b0JBQ2hELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7d0JBQ2xDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN4QixDQUFDO2dCQUNILENBQUM7cUJBQU0sQ0FBQztvQkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO2dCQUMzQyxDQUFDO2dCQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDckMsQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFO2dCQUNMLG1CQUFtQjtnQkFDbkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtZQUMzQyxDQUFDLENBQ0QsQ0FBQTtRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBSTtRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDM0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQTtZQUNsQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDdEMsQ0FBQztJQUNGLENBQUM7SUFFRCxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLHlEQUF5RDtJQUVqRCxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWpLLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRTtRQUNyQixJQUFJLENBQUM7WUFDSixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUV4QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDdkUsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDNUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsbUNBQW1DO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpDLHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUUxQixPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUUzQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1FBQzFFLENBQUM7SUFFRixDQUFDLENBQUE7SUFFRCx5Q0FBeUM7SUFDekMsK0RBQStEO0lBQy9ELHNGQUFzRjtJQUN0RixpQkFBaUI7SUFDakIsZ0VBQWdFO0lBQ2hFLG1EQUFtRDtJQUNuRCxtQ0FBbUM7SUFDbkMscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQixnQ0FBZ0M7SUFDaEMsT0FBTztJQUNQLHlCQUF5QjtJQUN6QixNQUFNO0lBQ04sbUZBQW1GO0lBQ25GLGtEQUFrRDtJQUVsRCxvRkFBb0Y7SUFDcEYsb0RBQW9EO0lBQ3BELG9DQUFvQztJQUNwQyx5QkFBeUI7SUFDekIseUJBQXlCO0lBQ3pCLG9DQUFvQztJQUNwQyxRQUFRO0lBQ1IsMEJBQTBCO0lBQzFCLE9BQU87SUFDUCxNQUFNO0lBQ04sOENBQThDO0lBQzlDLEtBQUs7SUFDTCxJQUFJO0lBQ0osbUJBQW1CLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtRQUM3QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksS0FBSyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHO2dCQUMzQixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTztnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO2FBQ3pCLENBQUE7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFDSyxJQUFJLFFBQVEsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBRXpDLElBQUksTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLElBQUksS0FBSyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRztvQkFDeEIsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRSxVQUFVO29CQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2lCQUMvQixDQUFBO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNMLENBQUM7UUFDUCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUE7SUFFSixXQUFXLEdBQUcsQ0FBQyxTQUFtQixFQUFFLEVBQUU7UUFDckMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQTtJQUVELFdBQVcsR0FBRyxDQUFDLFNBQW1CLEVBQUUsSUFBUyxFQUFFLEVBQUU7UUFDaEQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQzlFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEI7OztZQUdJO0lBQ0wsQ0FBQyxDQUFBO0lBRUQsc0RBQXNEO0lBQzlDLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFBO3dHQTNOVyxlQUFlOzRHQUFmLGVBQWUsY0FGZixNQUFNOzs0RkFFTixlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi9jYXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGVja291dERhdGEsIElTdGVwLCBTdGVwVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuL2FuYWx5dGljcyc7XHJcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBTdGVwLCBVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmRlclV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi9vcmRlci11dGlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTZXJ2aWNlIHtcclxuXHJcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSA9IGluamVjdChBbmFseXRpY3NTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9jb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9vcmRlclV0aWxpdHlTZXJ2aWNlOiBPcmRlclV0aWxpdHlTZXJ2aWNlID0gaW5qZWN0KE9yZGVyVXRpbGl0eVNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuXHJcblx0cHJpdmF0ZSBfY2FuQ2hlY2tvdXRTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHRwcml2YXRlIF9zdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0ZXBbXT4oW10pXHJcblx0cHJpdmF0ZSBfbGFzdFN0ZXBTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblx0cHJpdmF0ZSBfbG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRwcml2YXRlIF9vcmRlclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcblx0cHJpdmF0ZSBfYXNzb2NpYXRlZERhdGFTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDaGVja291dERhdGFbXSB8IG51bGw+KG51bGwpO1xyXG5cdHByaXZhdGUgX2xvYWRpbmdTdGVwU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRwdWJsaWMgY2FuQ2hlY2tvdXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fY2FuQ2hlY2tvdXRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHB1YmxpYyBzdGF0ZSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHRwdWJsaWMgaXNMYXN0U3RlcCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9sYXN0U3RlcFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHVibGljIGFzc29jaWF0ZWREYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fYXNzb2NpYXRlZERhdGFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHB1YmxpYyBvcmRlciQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX29yZGVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHRwdWJsaWMgbG9hZGluZ1N0ZXAkOk9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHB1YmxpYyB0b3RhbDogYW55O1xyXG5cdHB1YmxpYyBjYXJ0TG9jYWw6IGFueTtcclxuXHRwcml2YXRlIGNoZWNrb3V0RGF0YTogYW55ID0ge307XHJcblx0cHJpdmF0ZSBvcmRlcjogYW55O1xyXG5cclxuXHQvL0FQSSBNZXRob2RzXHJcblx0YmFzZUFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5fY29uc3RzLkNIQU5ORUwgKyAnL2NoZWNrb3V0LycgKyB0aGlzLl9jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKTtcclxuXHRnZXRIYXNQdXJjaGFzZUNvbmRpdGlvbnMoKSB7IHJldHVybiAnc2hvcC1hcGkvJyArIHRoaXMuX2NvbnN0cy5DSEFOTkVMICsgJy9jYXJ0cy8nICsgdGhpcy5fY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCkgKyAnL2hhc19wdXJjaGFzZV9jb25kaXRpb25zJyB9O1xyXG5cdGNvbXBsZXRlQXBpKCkgeyByZXR1cm4gdGhpcy5iYXNlQXBpKCkgKyAnL2NvbXBsZXRlJyB9O1xyXG5cclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLl9jYXJ0U2VydmljZS5jYXJ0SXRlbXMkLCB0aGlzLl9jYXJ0U2VydmljZS5sb2FkaW5nJF0pLnN1YnNjcmliZSgoW2l0ZW1zLCBsb2FkaW5nXSkgPT4ge1xyXG5cdFx0XHRpZiAoIWxvYWRpbmcgJiYgaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdHRoaXMuX2NhbkNoZWNrb3V0U3ViamVjdC5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmdldFRvdGFsQW1vdW50KCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlcztcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdFx0dGhpcy5fY2FydFNlcnZpY2UuY2FydCQuc3Vic2NyaWJlKGNhcnQgPT4gY2FydCAmJiAodGhpcy5jYXJ0TG9jYWwgPSBjYXJ0KSAmJiB0aGlzLnVwZGF0ZUFzb2NpYXRlZERhdGEoY2FydCkpO1xyXG5cdFx0dGhpcy5vcmRlciQuc3Vic2NyaWJlKG9yZGVyID0+IG9yZGVyICYmIHRoaXMudXBkYXRlQXNvY2lhdGVkRGF0YShvcmRlcikpXHJcblx0fVxyXG5cclxuXHRzZXRTdGVwcyhzdGVwczogSVN0ZXBbXSkge1xyXG5cdFx0bGV0IGZpbmFsX3N0ZXBzOiBTdGVwW10gPSBbXTtcclxuXHRcdHN0ZXBzLmZvckVhY2goKHN0ZXAsIGkpID0+IGZpbmFsX3N0ZXBzLnB1c2gobmV3IFN0ZXAoc3RlcC5uYW1lLCBzdGVwLnByaW9yaXR5IHx8IChpICsgMSksIHN0ZXAubGFiZWwsIHN0ZXAuc3RhdGUpKSk7XHJcblx0XHR0aGlzLl9zdGF0ZVN1YmplY3QubmV4dChmaW5hbF9zdGVwcyk7XHJcblx0XHRpZiAoZmluYWxfc3RlcHMubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0dGhpcy5fbGFzdFN0ZXBTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcblx0XHR9XHJcblx0XHQvLyBjb25zb2xlLmxvZyhmaW5hbF9zdGVwcyk7XHJcblx0XHRmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmdldEhhc1B1cmNoYXNlQ29uZGl0aW9ucygpKSkudGhlbihcclxuXHRcdFx0cmVzID0+IHtcclxuXHRcdFx0XHR0aGlzLl9hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgnY2hlY2tvdXRfaW5pdCcsIHsgLi4udGhpcy5jYXJ0TG9jYWwsIGN1cnJlbmN5OiB0aGlzLmNhcnRMb2NhbD8uY3VycmVuY3ksIHZhbHVlOiB0aGlzLmNhcnRMb2NhbD8udG90YWwgfSlcclxuXHRcdFx0fVxyXG5cdFx0KVxyXG5cdH1cclxuXHJcblx0bmV4dCgpIHtcclxuXHRcdHRoaXMuX2xvYWRpbmdTdGVwU3ViamVjdC5uZXh0KHRydWUpO1xyXG5cdFx0Y29uc3Qgc3RlcHMgPSB0aGlzLl9zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKVxyXG5cdFx0Y29uc3QgcmVhZHlTdGVwID0gc3RlcHMuZmluZEluZGV4KHN0ZXAgPT4gc3RlcC5zdGF0ZSA9PT0gJ3JlYWR5Jyk7XHJcblx0XHRpZiAoc3RlcHNbcmVhZHlTdGVwICsgMV0pIHtcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwXS5zdGF0ZSA9ICdkb2luZydcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwICsgMV0uc3RhdGUgPSAncmVhZHknO1xyXG5cdFx0XHRpZiAoIXN0ZXBzW3JlYWR5U3RlcCArIDJdKSB0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dCh0cnVlKTtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N0ZXBTdWJqZWN0Lm5leHQoZmFsc2UpXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmNvbXBsZXRlKCkudGhlbihcclxuXHRcdFx0XHRyZXMgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHJlcy5vaykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjaGVja291dC9vcmRlcl9zdWNjZXNzJ10pXHJcblx0XHRcdFx0XHRcdCBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0XHRcdFx0ICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xyXG5cdFx0XHRcdFx0XHQgfVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dChmYWxzZSlcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVyciA9PiB7XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIpXHJcblx0XHRcdFx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dChmYWxzZSlcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdvcGVyYXRpb24tZXJyb3InKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YmFjaygpIHtcclxuXHRcdGNvbnN0IHN0ZXBzID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKClcclxuXHRcdGNvbnN0IHJlYWR5U3RlcCA9IHN0ZXBzLmZpbmRJbmRleChzdGVwID0+IHN0ZXAuc3RhdGUgPT09ICdyZWFkeScpO1xyXG5cdFx0dGhpcy5fbGFzdFN0ZXBTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG5cdFx0aWYgKHN0ZXBzW3JlYWR5U3RlcCAtIDFdKSB7XHJcblx0XHRcdHN0ZXBzW3JlYWR5U3RlcF0uc3RhdGUgPSAncGVuZGluZydcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwIC0gMV0uc3RhdGUgPSAncmVhZHknO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2V0T3JkZXIgPSAob3JkZXI6IGFueSkgPT4geyB0aGlzLm9yZGVyID0gb3JkZXIsIHRoaXMuX29yZGVyU3ViamVjdC5uZXh0KG9yZGVyKSB9O1xyXG5cdC8vZ2V0T3JkZXIgPSAoKSA9PiB0aGlzLm9yZGVyIHx8IHRoaXMub3JkZXJTdWJqZWN0LnZhbHVlO1xyXG5cclxuXHRwcml2YXRlIGNvbXBsZXRlT3JkZXIgPSAoKSA9PiBmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLnB1dCh0aGlzLmNvbXBsZXRlQXBpKCksIHsgZW1haWw6IHRoaXMuY2hlY2tvdXREYXRhLmVtYWlsLCBub3RlczogdGhpcy5jaGVja291dERhdGEubm90ZXMgfHwgJycgfSkpO1xyXG5cclxuXHRjb21wbGV0ZSA9IGFzeW5jICgpID0+IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHRoaXMuX2xvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcblx0XHRcdGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbXBsZXRlT3JkZXIoKTtcclxuXHRcdFx0XHJcblx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LmVycm9yKSB7XHJcblx0XHRcdFx0dGhpcy5fY2FydFNlcnZpY2UuY2hhbmdlSGF2ZVRvVXBkYXRlKGZhbHNlKTtcclxuXHRcdFx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0XHRyZXR1cm4gKHsgb2s6IGZhbHNlLCByZXF1aXJlX2xvZ2luOiB0cnVlLCBtZXNzYWdlOiAnbm90LWNvbXBsZXRlZCcgfSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuc2V0T3JkZXIocmVzdWx0KTtcclxuXHRcdFx0dGhpcy5fYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3B1cmNoYXNlJywgeyAuLi5yZXN1bHQsIGN1cnJlbmN5OiByZXN1bHQuY3VycmVuY3ksIHZhbHVlOiByZXN1bHQudG90YWwgfSk7XHJcblx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmNsZWFyQW5kUmVzZXRDYXJ0KCk7XHJcblx0XHRcdHRoaXMuX2NhbkNoZWNrb3V0U3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0Ly90aGlzLl9vblJlYWR5U3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XHJcblx0XHRcdFxyXG5cdFx0XHQvLyDimqDvuI8gRklYOiBSZXNldCBjaGVja291dCBkYXRhIGFmdGVyIG9yZGVyIGNvbXBsZXRpb25cclxuXHRcdFx0dGhpcy5yZXNldENoZWNrb3V0U3RhdGUoKTtcclxuXHJcblx0XHRcdHJldHVybiAoeyBvazogdHJ1ZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICcnIH0pO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGNvbXBsZXRlOicsIGVycm9yKTtcclxuXHJcblx0XHRcdHJldHVybiB7IG9rOiBmYWxzZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICdBbiBlcnJvciBvY2N1cnJlZCcgfTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHQvLyB1cGRhdGVBc29jaWF0ZWREYXRhID0gKGNhcnQ6IGFueSkgPT4ge1xyXG5cdC8vIFx0bGV0IHJlc3VsdCA9IHRoaXMuX29yZGVyVXRpbGl0eVNlcnZpY2UuZ2V0UHJvbW90aW9ucyhjYXJ0KTtcclxuXHQvLyBcdGNvbnN0IHVzZXJQcm9maWxlOiBVc2VyID0gVXNlci5mcm9tSnNvbih0aGlzLl9hdXRoU2VydmljZS5nZXRVc2VyUHJvZmlsZUFzVXNlcigpKTtcclxuXHQvLyBcdGlmIChyZXN1bHQpIHtcclxuXHQvLyBcdFx0aWYgKHVzZXJQcm9maWxlLmlzV2hvbGVzYWxlcigpICYmIGNhcnQudG90YWxzLnRheGVzICE9IDApIHtcclxuXHQvLyBcdFx0XHRsZXQgdG90YWwgPSB7IC4uLnJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gfTtcclxuXHQvLyBcdFx0XHRyZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0ge1xyXG5cdC8vIFx0XHRcdFx0dHlwZTogJ3RheGVzJyxcclxuXHQvLyBcdFx0XHRcdG5hbWU6ICd0YXhlcycsXHJcblx0Ly8gXHRcdFx0XHRhbW91bnQ6IGNhcnQudG90YWxzLnRheGVzXHJcblx0Ly8gXHRcdFx0fVxyXG5cdC8vIFx0XHRcdHJlc3VsdC5wdXNoKHRvdGFsKTtcclxuXHQvLyBcdFx0fVxyXG5cdC8vIFx0XHRsZXQgc2hpcG1lbnQgPSByZXN1bHQ/LmZpbmQoKHByb21vdGlvbjogYW55KSA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xyXG5cdC8vIFx0XHRpZiAoIXNoaXBtZW50ICYmIGNhcnQudG90YWxzLnNoaXBwaW5nICE9IDApIHtcclxuXHJcblx0Ly8gXHRcdFx0aWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtLnR5cGUgPT09IFwic2hpcG1lbnRcIikpIHtcclxuXHQvLyBcdFx0XHRcdGxldCB0b3RhbCA9IHsgLi4ucmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSB9O1xyXG5cdC8vIFx0XHRcdFx0cmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSA9IHtcclxuXHQvLyBcdFx0XHRcdFx0dHlwZTogJ3NoaXBtZW50JyxcclxuXHQvLyBcdFx0XHRcdFx0bmFtZTogJ3NoaXBtZW50JyxcclxuXHQvLyBcdFx0XHRcdFx0YW1vdW50OiBjYXJ0LnRvdGFscy5zaGlwcGluZ1xyXG5cdC8vIFx0XHRcdFx0fVxyXG5cdC8vIFx0XHRcdFx0cmVzdWx0LnB1c2godG90YWwpO1xyXG5cdC8vIFx0XHRcdH1cclxuXHQvLyBcdFx0fVxyXG5cdC8vIFx0XHR0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QubmV4dChyZXN1bHQpO1xyXG5cdC8vIFx0fVxyXG5cdC8vIH1cclxuXHR1cGRhdGVBc29jaWF0ZWREYXRhID0gKGNhcnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9vcmRlclV0aWxpdHlTZXJ2aWNlLmdldFByb21vdGlvbnMoY2FydCk7XHJcblx0XHRpZiAoY2FydC50b3RhbHMudGF4ZXMgIT0gMCAmJiByZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0bGV0IHRvdGFsID0geyAuLi5yZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdIH07XHJcblx0XHRcdHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gPSB7XHJcblx0XHRcdFx0dHlwZTogJ3RheGVzJyxcclxuXHRcdFx0XHRuYW1lOiAndGF4ZXMnLFxyXG5cdFx0XHRcdGFtb3VudDogY2FydC50b3RhbHMudGF4ZXNcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXN1bHQucHVzaCh0b3RhbCk7XHJcblx0XHR9XHJcbiAgICAgICAgbGV0IHNoaXBtZW50ID0gcmVzdWx0Py5maW5kKHByb21vdGlvbiA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xyXG4gICAgICAgIGlmICghc2hpcG1lbnQgJiYgY2FydC50b3RhbHMuc2hpcHBpbmcgIT0gMCkge1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZChpdGVtID0+IGl0ZW0udHlwZSA9PT0gXCJzaGlwbWVudFwiKSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsID0geyAuLi5yZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdIH07XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzaGlwbWVudCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NoaXBtZW50JyxcclxuICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IGNhcnQudG90YWxzLnNoaXBwaW5nXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0b3RhbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblx0XHR0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QubmV4dChyZXN1bHQgPz8gbnVsbCk7XHJcbiAgICB9XHJcblxyXG5cdGdldFN0ZXBEYXRhID0gKHN0ZXBfbmFtZTogU3RlcFR5cGUpID0+IHtcclxuXHRcdGxldCBzdGVwX3Jlc3VsdCA9IHRoaXMuX3N0YXRlU3ViamVjdC5nZXRWYWx1ZSgpLmZpbmQoc3RlcCA9PiBzdGVwLm5hbWUgPT0gc3RlcF9uYW1lKTtcclxuXHRcdHJldHVybiAoc3RlcF9yZXN1bHQgJiYgc3RlcF9yZXN1bHQuZGF0YSk7XHJcblx0fVxyXG5cclxuXHRzZXRTdGVwRGF0YSA9IChzdGVwX25hbWU6IFN0ZXBUeXBlLCBkYXRhOiBhbnkpID0+IHtcclxuXHRcdGxldCBzdGVwID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKCkuZmluZChzdGVwID0+IHN0ZXAubmFtZSA9PSBzdGVwX25hbWUpO1xyXG5cdFx0c3RlcD8ucmVhZHkoZGF0YSk7XHJcblx0XHQvKiBpZiAoZGF0YSkge1xyXG5cdFx0XHR0aGlzLl9vcmRlclN1YmplY3QubmV4dChkYXRhKTtcclxuXHRcdFx0dGhpcy50b3RhbCA9IGRhdGEudG90YWxzLnRvdGFsO1xyXG5cdFx0fSAqL1xyXG5cdH1cclxuXHJcblx0Ly8g4pqg77iPIEZJWDogUmVzZXQgY2hlY2tvdXQgc3RhdGUgYWZ0ZXIgb3JkZXIgY29tcGxldGlvblxyXG5cdHByaXZhdGUgcmVzZXRDaGVja291dFN0YXRlID0gKCkgPT4ge1xyXG5cdFx0dGhpcy5jaGVja291dERhdGEgPSB7fTtcclxuXHRcdHRoaXMub3JkZXIgPSBudWxsO1xyXG5cdFx0dGhpcy5fc3RhdGVTdWJqZWN0Lm5leHQoW10pO1xyXG5cdFx0dGhpcy5fYXNzb2NpYXRlZERhdGFTdWJqZWN0Lm5leHQobnVsbCk7XHJcblx0XHR0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dChmYWxzZSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -24,4 +24,6 @@ export * from './order-utility.service';
|
|
|
24
24
|
export * from './payment.service';
|
|
25
25
|
export * from './test.service';
|
|
26
26
|
export * from './orders.service';
|
|
27
|
-
|
|
27
|
+
export * from './runtime-config.service';
|
|
28
|
+
export * from './base-api.service';
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFyYW1ldGVycy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9ibG9ja3Muc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmxvY2tzLXJlcG9zaXRvcnkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYW5hbHl0aWNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9jdXJyZW5jeS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGFubmVsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlLWNhcHRjaGEuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmd4LWxvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tvdXQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWRkcmVzc2luZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnN0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2hpcG1lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItdXRpbGl0eS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Rlc3Quc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUtY29uZmlnLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtYXBpLnNlcnZpY2UnOyJdfQ==
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { of, BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { catchError, tap } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common/http";
|
|
7
|
+
export class RuntimeConfigService {
|
|
8
|
+
platformId;
|
|
9
|
+
http;
|
|
10
|
+
configSubject = new BehaviorSubject(null);
|
|
11
|
+
config$ = this.configSubject.asObservable();
|
|
12
|
+
_config = null;
|
|
13
|
+
constructor(platformId, http) {
|
|
14
|
+
this.platformId = platformId;
|
|
15
|
+
this.http = http;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Carga la configuración en runtime
|
|
19
|
+
* - En SSR: Lee desde el objeto window inyectado por el servidor
|
|
20
|
+
* - En Browser: Hace petición HTTP a /runtime-config.json
|
|
21
|
+
*/
|
|
22
|
+
loadConfig() {
|
|
23
|
+
// Si ya tenemos la config cargada, la devolvemos
|
|
24
|
+
if (this._config) {
|
|
25
|
+
return of(this._config);
|
|
26
|
+
}
|
|
27
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
28
|
+
// En el navegador, primero intentamos obtener la config desde window
|
|
29
|
+
if (window.__RUNTIME_CONFIG__) {
|
|
30
|
+
this._config = window.__RUNTIME_CONFIG__;
|
|
31
|
+
this.configSubject.next(this._config);
|
|
32
|
+
return of(this._config);
|
|
33
|
+
}
|
|
34
|
+
// Si no está en window, hacemos petición HTTP
|
|
35
|
+
return this.http.get('/runtime-config.json').pipe(tap(config => {
|
|
36
|
+
this._config = config;
|
|
37
|
+
this.configSubject.next(config);
|
|
38
|
+
// Guardamos en window para siguientes accesos
|
|
39
|
+
window.__RUNTIME_CONFIG__ = config;
|
|
40
|
+
}), catchError(error => {
|
|
41
|
+
console.error('Error loading runtime config:', error);
|
|
42
|
+
// Fallback config si falla la carga
|
|
43
|
+
const fallbackConfig = {
|
|
44
|
+
apiUrl: 'https://elden-preprod.backend.easycommerce.com.ar/',
|
|
45
|
+
appEnv: 'preprod',
|
|
46
|
+
production: false,
|
|
47
|
+
locale: 'es_AR',
|
|
48
|
+
channel: 'minorista'
|
|
49
|
+
};
|
|
50
|
+
this._config = fallbackConfig;
|
|
51
|
+
this.configSubject.next(fallbackConfig);
|
|
52
|
+
return of(fallbackConfig);
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// En SSR, leemos desde window que fue inyectado por el servidor
|
|
57
|
+
if (typeof window !== 'undefined' && window.__RUNTIME_CONFIG__) {
|
|
58
|
+
this._config = window.__RUNTIME_CONFIG__;
|
|
59
|
+
this.configSubject.next(this._config);
|
|
60
|
+
return of(this._config);
|
|
61
|
+
}
|
|
62
|
+
// Fallback para SSR si no hay config inyectada
|
|
63
|
+
// En el servidor, las variables de entorno se configuran desde el server.ts
|
|
64
|
+
const fallbackConfig = {
|
|
65
|
+
apiUrl: 'https://elden-preprod.backend.easycommerce.com.ar/',
|
|
66
|
+
appEnv: 'preprod',
|
|
67
|
+
production: false,
|
|
68
|
+
locale: 'es_AR',
|
|
69
|
+
channel: 'minorista'
|
|
70
|
+
};
|
|
71
|
+
this._config = fallbackConfig;
|
|
72
|
+
this.configSubject.next(fallbackConfig);
|
|
73
|
+
return of(fallbackConfig);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Obtiene la configuración actual (síncrono)
|
|
78
|
+
*/
|
|
79
|
+
getConfig() {
|
|
80
|
+
return this._config;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Obtiene la API URL actual
|
|
84
|
+
*/
|
|
85
|
+
getApiUrl() {
|
|
86
|
+
return this._config?.apiUrl || 'https://elden-preprod.backend.easycommerce.com.ar/';
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Obtiene la Frontend URL actual
|
|
90
|
+
*/
|
|
91
|
+
getFrontendUrl() {
|
|
92
|
+
return this._config?.frontendUrl;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Obtiene el entorno actual
|
|
96
|
+
*/
|
|
97
|
+
getAppEnv() {
|
|
98
|
+
return this._config?.appEnv || 'development';
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Verifica si estamos en producción
|
|
102
|
+
*/
|
|
103
|
+
isProduction() {
|
|
104
|
+
return this._config?.production || false;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Obtiene el locale actual
|
|
108
|
+
*/
|
|
109
|
+
getLocale() {
|
|
110
|
+
return this._config?.locale || 'es_AR';
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Obtiene el canal actual
|
|
114
|
+
*/
|
|
115
|
+
getChannel() {
|
|
116
|
+
return this._config?.channel || 'minorista';
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Método helper para construir URLs de API
|
|
120
|
+
*/
|
|
121
|
+
buildApiUrl(endpoint) {
|
|
122
|
+
const apiUrl = this.getApiUrl();
|
|
123
|
+
const cleanEndpoint = endpoint.startsWith('/') ? endpoint.slice(1) : endpoint;
|
|
124
|
+
return `${apiUrl}${cleanEndpoint}`;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Método helper para construir URLs del frontend
|
|
128
|
+
*/
|
|
129
|
+
buildFrontendUrl(path) {
|
|
130
|
+
const frontendUrl = this.getFrontendUrl();
|
|
131
|
+
if (!frontendUrl) {
|
|
132
|
+
return path;
|
|
133
|
+
}
|
|
134
|
+
const cleanPath = path.startsWith('/') ? path.slice(1) : path;
|
|
135
|
+
return `${frontendUrl}${cleanPath}`;
|
|
136
|
+
}
|
|
137
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, deps: [{ token: PLATFORM_ID }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
138
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, providedIn: 'root' });
|
|
139
|
+
}
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, decorators: [{
|
|
141
|
+
type: Injectable,
|
|
142
|
+
args: [{
|
|
143
|
+
providedIn: 'root'
|
|
144
|
+
}]
|
|
145
|
+
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
146
|
+
type: Inject,
|
|
147
|
+
args: [PLATFORM_ID]
|
|
148
|
+
}] }, { type: i1.HttpClient }] });
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9ydW50aW1lLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQWMsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRakQsTUFBTSxPQUFPLG9CQUFvQjtJQU9BO0lBQ3JCO0lBUEYsYUFBYSxHQUFHLElBQUksZUFBZSxDQUF1QixJQUFJLENBQUMsQ0FBQztJQUNqRSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUzQyxPQUFPLEdBQXlCLElBQUksQ0FBQztJQUU3QyxZQUMrQixVQUFrQixFQUN2QyxJQUFnQjtRQURLLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUo7Ozs7T0FJRztJQUNILFVBQVU7UUFDUixpREFBaUQ7UUFDakQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxxRUFBcUU7WUFDckUsSUFBSSxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFD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ICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUnVudGltZUNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcnVudGltZS1jb25maWcnO1xyXG5cclxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVDb25maWdTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNvbmZpZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJ1bnRpbWVDb25maWcgfCBudWxsPihudWxsKTtcclxuICBwdWJsaWMgY29uZmlnJCA9IHRoaXMuY29uZmlnU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICBcclxuICBwcml2YXRlIF9jb25maWc6IFJ1bnRpbWVDb25maWcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FyZ2EgbGEgY29uZmlndXJhY2nDs24gZW4gcnVudGltZVxyXG4gICAqIC0gRW4gU1NSOiBMZWUgZGVzZGUgZWwgb2JqZXRvIHdpbmRvdyBpbnllY3RhZG8gcG9yIGVsIHNlcnZpZG9yXHJcbiAgICogLSBFbiBCcm93c2VyOiBIYWNlIHBldGljacOzbiBIVFRQIGEgL3J1bnRpbWUtY29uZmlnLmpzb25cclxuICAgKi9cclxuICBsb2FkQ29uZmlnKCk6IE9ic2VydmFibGU8UnVudGltZUNvbmZpZz4ge1xyXG4gICAgLy8gU2kgeWEgdGVuZW1vcyBsYSBjb25maWcgY2FyZ2FkYSwgbGEgZGV2b2x2ZW1vc1xyXG4gICAgaWYgKHRoaXMuX2NvbmZpZykge1xyXG4gICAgICByZXR1cm4gb2YodGhpcy5fY29uZmlnIGFzIFJ1bnRpbWVDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIC8vIEVuIGVsIG5hdmVnYWRvciwgcHJpbWVybyBpbnRlbnRhbW9zIG9idGVuZXIgbGEgY29uZmlnIGRlc2RlIHdpbmRvd1xyXG4gICAgICBpZiAod2luZG93Ll9fUlVOVElNRV9DT05GSUdfXykge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX187XHJcbiAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQodGhpcy5fY29uZmlnKTtcclxuICAgICAgICByZXR1cm4gb2YodGhpcy5fY29uZmlnIGFzIFJ1bnRpbWVDb25maWcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBTaSBubyBlc3TDoSBlbiB3aW5kb3csIGhhY2Vtb3MgcGV0aWNpw7NuIEhUVFBcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UnVudGltZUNvbmZpZz4oJy9ydW50aW1lLWNvbmZpZy5qc29uJykucGlwZShcclxuICAgICAgICB0YXAoY29uZmlnID0+IHtcclxuICAgICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuICAgICAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KGNvbmZpZyk7XHJcbiAgICAgICAgICAvLyBHdWFyZGFtb3MgZW4gd2luZG93IHBhcmEgc2lndWllbnRlcyBhY2Nlc29zXHJcbiAgICAgICAgICB3aW5kb3cuX19SVU5USU1FX0NPTkZJR19fID0gY29uZmlnO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBydW50aW1lIGNvbmZpZzonLCBlcnJvcik7XHJcbiAgICAgICAgICAvLyBGYWxsYmFjayBjb25maWcgc2kgZmFsbGEgbGEgY2FyZ2FcclxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrQ29uZmlnOiBSdW50aW1lQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBhcGlVcmw6ICdodHRwczovL2VsZGVuLXByZXByb2QuYmFja2VuZC5lYXN5Y29tbWVyY2UuY29tLmFyLycsXHJcbiAgICAgICAgICAgIGFwcEVudjogJ3ByZXByb2QnLFxyXG4gICAgICAgICAgICBwcm9kdWN0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgbG9jYWxlOiAnZXNfQVInLFxyXG4gICAgICAgICAgICBjaGFubmVsOiAnbWlub3Jpc3RhJ1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMuX2NvbmZpZyA9IGZhbGxiYWNrQ29uZmlnO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQoZmFsbGJhY2tDb25maWcpO1xyXG4gICAgICAgICAgcmV0dXJuIG9mKGZhbGxiYWNrQ29uZmlnKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gRW4gU1NSLCBsZWVtb3MgZGVzZGUgd2luZG93IHF1ZSBmdWUgaW55ZWN0YWRvIHBvciBlbCBzZXJ2aWRvclxyXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXykge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX187XHJcbiAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQodGhpcy5fY29uZmlnKTtcclxuICAgICAgICByZXR1cm4gb2YodGhpcy5fY29uZmlnIGFzIFJ1bnRpbWVDb25maWcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBGYWxsYmFjayBwYXJhIFNTUiBzaSBubyBoYXkgY29uZmlnIGlueWVjdGFkYVxyXG4gICAgICAvLyBFbiBlbCBzZXJ2aWRvciwgbGFzIHZhcmlhYmxlcyBkZSBlbnRvcm5vIHNlIGNvbmZpZ3VyYW4gZGVzZGUgZWwgc2VydmVyLnRzXHJcbiAgICAgIGNvbnN0IGZhbGxiYWNrQ29uZmlnOiBSdW50aW1lQ29uZmlnID0ge1xyXG4gICAgICAgIGFwaVVybDogJ2h0dHBzOi8vZWxkZW4tcHJlcHJvZC5iYWNrZW5kLmVhc3ljb21tZXJjZS5jb20uYXIvJyxcclxuICAgICAgICBhcHBFbnY6ICdwcmVwcm9kJyxcclxuICAgICAgICBwcm9kdWN0aW9uOiBmYWxzZSxcclxuICAgICAgICBsb2NhbGU6ICdlc19BUicsXHJcbiAgICAgICAgY2hhbm5lbDogJ21pbm9yaXN0YSdcclxuICAgICAgfTtcclxuICAgICAgXHJcbiAgICAgIHRoaXMuX2NvbmZpZyA9IGZhbGxiYWNrQ29uZmlnO1xyXG4gICAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dChmYWxsYmFja0NvbmZpZyk7XHJcbiAgICAgIHJldHVybiBvZihmYWxsYmFja0NvbmZpZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGxhIGNvbmZpZ3VyYWNpw7NuIGFjdHVhbCAoc8OtbmNyb25vKVxyXG4gICAqL1xyXG4gIGdldENvbmZpZygpOiBSdW50aW1lQ29uZmlnIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0aWVuZSBsYSBBUEkgVVJMIGFjdHVhbFxyXG4gICAqL1xyXG4gIGdldEFwaVVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZz8uYXBpVXJsIHx8ICdodHRwczovL2VsZGVuLXByZXByb2QuYmFja2VuZC5lYXN5Y29tbWVyY2UuY29tLmFyLyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGxhIEZyb250ZW5kIFVSTCBhY3R1YWxcclxuICAgKi9cclxuICBnZXRGcm9udGVuZFVybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZz8uZnJvbnRlbmRVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGVsIGVudG9ybm8gYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0QXBwRW52KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5hcHBFbnYgfHwgJ2RldmVsb3BtZW50JztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWNhIHNpIGVzdGFtb3MgZW4gcHJvZHVjY2nDs25cclxuICAgKi9cclxuICBpc1Byb2R1Y3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5wcm9kdWN0aW9uIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0aWVuZSBlbCBsb2NhbGUgYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5sb2NhbGUgfHwgJ2VzX0FSJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgZWwgY2FuYWwgYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0Q2hhbm5lbCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZz8uY2hhbm5lbCB8fCAnbWlub3Jpc3RhJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gaGVscGVyIHBhcmEgY29uc3RydWlyIFVSTHMgZGUgQVBJXHJcbiAgICovXHJcbiAgYnVpbGRBcGlVcmwoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmdldEFwaVVybCgpO1xyXG4gICAgY29uc3QgY2xlYW5FbmRwb2ludCA9IGVuZHBvaW50LnN0YXJ0c1dpdGgoJy8nKSA/IGVuZHBvaW50LnNsaWNlKDEpIDogZW5kcG9pbnQ7XHJcbiAgICByZXR1cm4gYCR7YXBpVXJsfSR7Y2xlYW5FbmRwb2ludH1gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBoZWxwZXIgcGFyYSBjb25zdHJ1aXIgVVJMcyBkZWwgZnJvbnRlbmRcclxuICAgKi9cclxuICBidWlsZEZyb250ZW5kVXJsKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBmcm9udGVuZFVybCA9IHRoaXMuZ2V0RnJvbnRlbmRVcmwoKTtcclxuICAgIGlmICghZnJvbnRlbmRVcmwpIHtcclxuICAgICAgcmV0dXJuIHBhdGg7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjbGVhblBhdGggPSBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGguc2xpY2UoMSkgOiBwYXRoO1xyXG4gICAgcmV0dXJuIGAke2Zyb250ZW5kVXJsfSR7Y2xlYW5QYXRofWA7XHJcbiAgfVxyXG59Il19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvaW50ZXJmYWNlcy9lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XHJcbiAgICBwcm9kdWN0aW9uOiBib29sZWFuO1xyXG4gICAgYXBpVXJsPzogc3RyaW5nOyAvLyDihpAgQWhvcmEgZXMgb3BjaW9uYWwsIHNlIG9idGllbmUgZGVsIHJ1bnRpbWUgY29uZmlnXHJcbiAgICBmcm9udGVuZFVybD86IHN0cmluZzsgLy8g4oaQIE51ZXZhIHByb3BpZWRhZCBwYXJhIGxhIFVSTCBkZWwgZnJvbnRlbmRcclxuICAgIGxvY2FsZTogc3RyaW5nO1xyXG4gICAgY2hhbm5lbDogc3RyaW5nO1xyXG4gICAgYXBwRW52Pzogc3RyaW5nOyAvLyDihpAgTnVldmEgcHJvcGllZGFkIHBhcmEgZWwgZW50b3JubyBkZSBsYSBhcHBcclxufVxyXG4iXX0=
|
|
@@ -18,4 +18,5 @@ export * from './coupon';
|
|
|
18
18
|
export * from './step';
|
|
19
19
|
export * from './checkout';
|
|
20
20
|
export * from './faqs';
|
|
21
|
-
|
|
21
|
+
export * from './runtime-config';
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPO0FBQ1AsY0FBZSxTQUFTLENBQUM7QUFDekIsWUFBWTtBQUNaLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vVHlwZXNcclxuZXhwb3J0ICogIGZyb20gJy4vdHlwZXMnO1xyXG4vL0ludGVyZmFjZXNcclxuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFyYW1ldGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9ibG9ja3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FuYWx5dGljcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3knO1xyXG5leHBvcnQgKiBmcm9tICcuL2Rlc2VyaWFsaXphYmxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdG9yZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb3Vwb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0ZXAnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoZWNrb3V0JztcclxuZXhwb3J0ICogZnJvbSAnLi9mYXFzJztcclxuZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lLWNvbmZpZyc7Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvaW50ZXJmYWNlcy9ydW50aW1lLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSdW50aW1lQ29uZmlnIHtcclxuICBhcGlVcmw6IHN0cmluZztcclxuICBmcm9udGVuZFVybD86IHN0cmluZztcclxuICAvKiogQW1iaWVudGUgZGUgbGEgYXBsaWNhY2nDs24uIFZhbG9yZXMgdsOhbGlkb3M6ICdwcm9kJywgJ3ByZXByb2QnLCAndGVzdCcgKi9cclxuICBhcHBFbnY6ICdwcm9kJyB8ICdwcmVwcm9kJyB8ICd0ZXN0JztcclxuICBwcm9kdWN0aW9uOiBib29sZWFuO1xyXG4gIGxvY2FsZTogc3RyaW5nO1xyXG4gIGNoYW5uZWw6IHN0cmluZztcclxuICBwb3J0PzogbnVtYmVyO1xyXG4gIGhvc3Q/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyRW52aXJvbm1lbnRWYXJpYWJsZXMge1xyXG4gIEFQSV9VUkw/OiBzdHJpbmc7XHJcbiAgRlJPTlRFTkRfVVJMPzogc3RyaW5nO1xyXG4gIC8qKiBBbWJpZW50ZSBkZSBsYSBhcGxpY2FjacOzbi4gVmFsb3JlcyB2w6FsaWRvczogJ3Byb2QnLCAncHJlcHJvZCcsICd0ZXN0JyAqL1xyXG4gIEFQUF9FTlY/OiAncHJvZCcgfCAncHJlcHJvZCcgfCAndGVzdCc7XHJcbiAgUE9SVD86IHN0cmluZztcclxuICBIT1NUPzogc3RyaW5nO1xyXG4gIE5PREVfRU5WPzogJ2RldmVsb3BtZW50JyB8ICdwcm9kdWN0aW9uJztcclxuICBMT0NBTEU/OiBzdHJpbmc7XHJcbiAgQ0hBTk5FTD86IHN0cmluZztcclxufSJdfQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './provideEnvironment';
|
|
2
|
-
|
|
2
|
+
export * from './provideRuntimeConfig';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZUVudmlyb25tZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlUnVudGltZUNvbmZpZyc7Il19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { RuntimeConfigService } from '../ec-services/runtime-config.service';
|
|
3
|
+
/**
|
|
4
|
+
* Factory function para APP_INITIALIZER
|
|
5
|
+
* Carga la configuración runtime antes de que Angular bootstrap la aplicación
|
|
6
|
+
*/
|
|
7
|
+
export function initializeRuntimeConfig(runtimeConfigService) {
|
|
8
|
+
return () => {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
runtimeConfigService.loadConfig().subscribe({
|
|
11
|
+
next: (config) => {
|
|
12
|
+
console.log('🔧 Runtime config loaded:', config);
|
|
13
|
+
resolve(config);
|
|
14
|
+
},
|
|
15
|
+
error: (error) => {
|
|
16
|
+
console.error('❌ Failed to load runtime config:', error);
|
|
17
|
+
// Aún en caso de error, resolvemos para no bloquear la app
|
|
18
|
+
resolve(null);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Función que configura el RuntimeConfigService y su inicialización
|
|
26
|
+
* Debe ser usado en app.config.ts junto con provideEnvironment
|
|
27
|
+
*/
|
|
28
|
+
export function provideRuntimeConfig() {
|
|
29
|
+
return makeEnvironmentProviders([
|
|
30
|
+
RuntimeConfigService,
|
|
31
|
+
{
|
|
32
|
+
provide: APP_INITIALIZER,
|
|
33
|
+
useFactory: initializeRuntimeConfig,
|
|
34
|
+
deps: [RuntimeConfigService],
|
|
35
|
+
multi: true
|
|
36
|
+
}
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZVJ1bnRpbWVDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvcHJvdmlkZXJzL3Byb3ZpZGVSdW50aW1lQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXdCLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTdFOzs7R0FHRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxvQkFBMEM7SUFDaEYsT0FBTyxHQUFpQixFQUFFO1FBQ3hCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO2dCQUMxQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDekQsMkRBQTJEO29CQUMzRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hCLENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsb0JBQW9CO1FBQ3BCO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QixLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSdW50aW1lQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2VjLXNlcnZpY2VzL3J1bnRpbWUtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEZhY3RvcnkgZnVuY3Rpb24gcGFyYSBBUFBfSU5JVElBTElaRVJcclxuICogQ2FyZ2EgbGEgY29uZmlndXJhY2nDs24gcnVudGltZSBhbnRlcyBkZSBxdWUgQW5ndWxhciBib290c3RyYXAgbGEgYXBsaWNhY2nDs25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplUnVudGltZUNvbmZpZyhydW50aW1lQ29uZmlnU2VydmljZTogUnVudGltZUNvbmZpZ1NlcnZpY2UpOiAoKSA9PiBQcm9taXNlPGFueT4ge1xyXG4gIHJldHVybiAoKTogUHJvbWlzZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHJ1bnRpbWVDb25maWdTZXJ2aWNlLmxvYWRDb25maWcoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChjb25maWcpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCfwn5SnIFJ1bnRpbWUgY29uZmlnIGxvYWRlZDonLCBjb25maWcpO1xyXG4gICAgICAgICAgcmVzb2x2ZShjb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcign4p2MIEZhaWxlZCB0byBsb2FkIHJ1bnRpbWUgY29uZmlnOicsIGVycm9yKTtcclxuICAgICAgICAgIC8vIEHDum4gZW4gY2FzbyBkZSBlcnJvciwgcmVzb2x2ZW1vcyBwYXJhIG5vIGJsb3F1ZWFyIGxhIGFwcFxyXG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bmNpw7NuIHF1ZSBjb25maWd1cmEgZWwgUnVudGltZUNvbmZpZ1NlcnZpY2UgeSBzdSBpbmljaWFsaXphY2nDs25cclxuICogRGViZSBzZXIgdXNhZG8gZW4gYXBwLmNvbmZpZy50cyBqdW50byBjb24gcHJvdmlkZUVudmlyb25tZW50XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVJ1bnRpbWVDb25maWcoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xyXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xyXG4gICAgUnVudGltZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgdXNlRmFjdG9yeTogaW5pdGlhbGl6ZVJ1bnRpbWVDb25maWcsXHJcbiAgICAgIGRlcHM6IFtSdW50aW1lQ29uZmlnU2VydmljZV0sXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSk7XHJcbn0iXX0=
|