ng-easycommerce 0.0.601 → 0.0.603
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 +4 -0
- package/bundles/ng-easycommerce.umd.js +218 -62
- package/bundles/ng-easycommerce.umd.js.map +1 -1
- package/bundles/ng-easycommerce.umd.min.js +1 -1
- package/bundles/ng-easycommerce.umd.min.js.map +1 -1
- package/esm2015/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +3 -2
- package/esm2015/lib/ec-component/index.js +4 -1
- package/esm2015/lib/ec-component/widgets-ec/place-to-pay-ec/place-to-pay-ec.component.js +125 -0
- package/esm2015/lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.js +1 -1
- package/esm2015/lib/ng-easycommerce.module.js +3 -1
- package/esm2015/lib/services/auth.service.js +17 -4
- package/esm2015/lib/services/checkout/payment.service.js +3 -1
- package/esm2015/ng-easycommerce.js +22 -21
- package/esm5/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +3 -2
- package/esm5/lib/ec-component/index.js +4 -1
- package/esm5/lib/ec-component/widgets-ec/place-to-pay-ec/place-to-pay-ec.component.js +143 -0
- package/esm5/lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.js +1 -1
- package/esm5/lib/ng-easycommerce.module.js +3 -1
- package/esm5/lib/services/auth.service.js +17 -4
- package/esm5/lib/services/checkout/payment.service.js +5 -1
- package/esm5/ng-easycommerce.js +22 -21
- package/fesm2015/ng-easycommerce.js +178 -43
- package/fesm2015/ng-easycommerce.js.map +1 -1
- package/fesm5/ng-easycommerce.js +198 -43
- package/fesm5/ng-easycommerce.js.map +1 -1
- package/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.d.ts +1 -0
- package/lib/ec-component/index.d.ts +1 -0
- package/lib/ec-component/widgets-ec/place-to-pay-ec/place-to-pay-ec.component.d.ts +34 -0
- package/lib/services/checkout/payment.service.d.ts +2 -0
- package/ng-easycommerce.d.ts +21 -20
- package/ng-easycommerce.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -120,7 +120,13 @@ let AuthService = class AuthService {
|
|
|
120
120
|
return of(err.toString());
|
|
121
121
|
})).toPromise();
|
|
122
122
|
};
|
|
123
|
-
this.signUp = (data) =>
|
|
123
|
+
this.signUp = (data) => {
|
|
124
|
+
// Convertir el email a minúsculas si existe
|
|
125
|
+
if (data.email) {
|
|
126
|
+
data = Object.assign(Object.assign({}, data), { email: data.email.toLowerCase() });
|
|
127
|
+
}
|
|
128
|
+
return this.connection.post(this.registerApi(), data);
|
|
129
|
+
};
|
|
124
130
|
this.confirmAccount = (token) => this.connection.get(this.confirmAccountApi(token));
|
|
125
131
|
this.passwordReset = (new_password, token) => {
|
|
126
132
|
const data = { password: { first: new_password, second: new_password } };
|
|
@@ -134,7 +140,13 @@ let AuthService = class AuthService {
|
|
|
134
140
|
};
|
|
135
141
|
this.getExpiratesAt = () => localStorage.getItem(this.EXPIRATES_IN);
|
|
136
142
|
this.hasToRefresh = () => this.getRefreshToken();
|
|
137
|
-
this.signUpWholesaler = (data) =>
|
|
143
|
+
this.signUpWholesaler = (data) => {
|
|
144
|
+
// Convertir el email a minúsculas si existe
|
|
145
|
+
if (data.email) {
|
|
146
|
+
data = Object.assign(Object.assign({}, data), { email: data.email.toLowerCase() });
|
|
147
|
+
}
|
|
148
|
+
return this.connection.post(this.registerWholesalerApi(), data);
|
|
149
|
+
};
|
|
138
150
|
this.getCountriesData = () => __awaiter(this, void 0, void 0, function* () { return this.connection.get(this.countriesApi()).pipe(map(res => res._embedded.items)).toPromise(); });
|
|
139
151
|
this.setActiveChannelChange = (activelyChangeChannelsOnLogin) => this.activeChannelChange = activelyChangeChannelsOnLogin;
|
|
140
152
|
this.isAllowedRole = (allowedRoles, role) => {
|
|
@@ -230,7 +242,8 @@ let AuthService = class AuthService {
|
|
|
230
242
|
this.injector.get(ChannelConfigService).channelConfig$.subscribe(ch => this.channel = ch);
|
|
231
243
|
this.injector.get(ChannelConfigService).channels.subscribe(ch => this.channels = ch);
|
|
232
244
|
this.loggingInSubject.next(true);
|
|
233
|
-
|
|
245
|
+
// Convertir el username a minúsculas
|
|
246
|
+
user = Object.assign(Object.assign(Object.assign({}, user), { username: user.username.toLowerCase() }), this.constants.loginExtraData());
|
|
234
247
|
let result = this.connection.post(this.tokenApi(), user).pipe(map(res => {
|
|
235
248
|
if (this.channelAccessPermission(Object.assign(Object.assign({}, user), res)) && this.isAllowedRole(withRoles, res.type)) {
|
|
236
249
|
this.doLoginUser(Object.assign(Object.assign({}, user), res));
|
|
@@ -336,4 +349,4 @@ AuthService = __decorate([
|
|
|
336
349
|
})
|
|
337
350
|
], AuthService);
|
|
338
351
|
export { AuthService };
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTzdDLElBQWEsV0FBVyxHQUF4QixNQUFhLFdBQVc7SUEwQ3BCLFlBQW9CLFVBQTZCLEVBQ3JDLGFBQTRCLEVBQzVCLFNBQW9CLEVBQ3BCLFFBQWtCO1FBSFYsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0NiLGNBQVMsR0FBRyxXQUFXLENBQUE7UUFDdkIsa0JBQWEsR0FBRyxlQUFlLENBQUE7UUFD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QUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRU8sZUFBZTtRQUNuQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0EwR0osQ0FBQTs7WUFuVG1DLGlCQUFpQjtZQUN0QixhQUFhO1lBQ2pCLFNBQVM7WUFDVixRQUFROzs7QUE3Q3JCLFdBQVc7SUFIdkIsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztHQUNXLFdBQVcsQ0E2VnZCO1NBN1ZZLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGkvY29ubmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXInO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL29mJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IG1hcCwgbWFwVG8sIGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4vY2hhbm5lbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy1jb21wYXQvb3BlcmF0b3IvdGFrZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4vY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVc2VyUm9sZVR5cGUgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItcm9sZS10eXBlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IEpXVF9UT0tFTiA9ICdKV1RfVE9LRU4nXG4gICAgcHJpdmF0ZSByZWFkb25seSBSRUZSRVNIX1RPS0VOID0gJ1JFRlJFU0hfVE9LRU4nXG4gICAgcHJpdmF0ZSByZWFkb25seSBFWFBJUkFURVNfSU4gPSAnRVhQSVJBVEVTX0lOJ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVVNFUiA9ICdVU0VSJ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgTUFJTCA9ICdtYWlsJ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgTE9DQUxFID0gJ0xPQ0FMRSdcbiAgICBwcml2YXRlIHJlYWRvbmx5IENIQU5ORUwgPSAnQ0hBTk5FTCdcbiAgICBwcml2YXRlIHJlYWRvbmx5IENVU1RPTUVSID0gJ0NVU1RPTUVSJ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQ0hBTk5FTFNFTExFUiA9ICdDSEFOTkVMU0VMTEVSJ1xuXG4gICAgLyogYWN0aXZlQ2hhbm5lbFN3aXRjaD8gKi9cbiAgICBwcml2YXRlIGFjdGl2ZUNoYW5uZWxDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZVxuICAgIHByaXZhdGUgbG9nZ2VkSW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KGZhbHNlKVxuICAgIHByaXZhdGUgbG9nZ2luZ0luU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihmYWxzZSlcbiAgICBwcml2YXRlIHVzZXJJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXI+KG51bGwpXG4gICAgcHJpdmF0ZSBjaGFubmVsc1VzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pXG4gICAgLyogcHJpdmF0ZSBjdXN0b21lclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCkgKi9cbiAgICBwcml2YXRlIHVzZXI6IFVzZXIgPSBudWxsXG5cbiAgICAvLyBBUElTXG4gICAgcHVibGljIHRva2VuQXBpID0gKCkgPT4gJ3Nob3AtYXBpL2xvZ2luX2NoZWNrJztcbiAgICBwdWJsaWMgcmVnaXN0ZXJBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcmVnaXN0ZXInO1xuICAgIHB1YmxpYyByZWdpc3Rlcldob2xlc2FsZXJBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcmVnaXN0ZXItd2hvbGVzYWxlcic7XG4gICAgcHVibGljIGNvbmZpcm1BY2NvdW50QXBpID0gKHRva2VuKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvdmVyaWZ5LWFjY291bnQ/dG9rZW49JyArIHRva2VuO1xuICAgIHB1YmxpYyByZXNldFBhc3N3b3JkQXBpID0gKHRva2VuKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcGFzc3dvcmQtcmVzZXQvJyArIHRva2VuO1xuICAgIHB1YmxpYyByZWNvdmVyUGFzc3dvcmRBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcmVxdWVzdC1wYXNzd29yZC1yZXNldCc7XG4gICAgcHVibGljIGNvdW50cmllc0FwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9jb3VudHJpZXMnO1xuXG4gICAgLy8gQXRyaWJ1dG9zIHV0aWxlc1xuICAgIHB1YmxpYyB3YWl0aW5nID0gZmFsc2U7XG4gICAgcHVibGljIGxvZ2dlZEluID0gdGhpcy5sb2dnZWRJblN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICBwdWJsaWMgbG9nZ2luZ0luID0gdGhpcy5sb2dnaW5nSW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG4gICAgcHVibGljIHVzZXJBdXRoID0gdGhpcy51c2VySW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG4gICAgcHVibGljIGNoYW5uZWxzVXNlciA9IHRoaXMuY2hhbm5lbHNVc2VyU3ViamVjdC5hc09ic2VydmFibGUoKVxuICAgIC8qIHByaXZhdGUgY3VzdG9tZXIgPSB0aGlzLmNoYW5uZWxzVXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCkgKi9cbiAgICBwcml2YXRlIGN1c3RvbWVyID0gbnVsbFxuICAgIHB1YmxpYyBjaGFubmVsID0gbnVsbFxuICAgIHB1YmxpYyBjaGFubmVscyA9IFtdXG4gICAgcHJpdmF0ZSBob21lUmVzb2x2ZXIgPSBudWxsXG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uc3RhbnRzOiBDb25zdGFudHMsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkKCkgJiYgdGhpcy5sb2dnZWRJblN1YmplY3QubmV4dCh0cnVlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjIERldnVlbHZlIHVuIG9ic2VydmFibGVcbiAgICAgKiBAcGFyYW0gdXNlciBPYmpldG8gcXVlIGNvbnRpZW5lIHVzZXJuYW1lIHkgcGFzc3dvcmQgXG4gICAgICovXG4gICAgbG9naW4odXNlcjogeyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH0sIHdpdGhSb2xlczogVXNlclJvbGVUeXBlW10gPSBbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxDb25maWdTZXJ2aWNlKS5jaGFubmVsQ29uZmlnJC5zdWJzY3JpYmUoY2ggPT4gdGhpcy5jaGFubmVsID0gY2gpXG4gICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxDb25maWdTZXJ2aWNlKS5jaGFubmVscy5zdWJzY3JpYmUoY2ggPT4gdGhpcy5jaGFubmVscyA9IGNoKVxuICAgICAgICB0aGlzLmxvZ2dpbmdJblN1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgdXNlciA9IHsgLi4udXNlciwgLi4udGhpcy5jb25zdGFudHMubG9naW5FeHRyYURhdGEoKSB9O1xuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5jb25uZWN0aW9uLnBvc3QodGhpcy50b2tlbkFwaSgpLCB1c2VyKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hhbm5lbEFjY2Vzc1Blcm1pc3Npb24oeyAuLi51c2VyLCAuLi5yZXMgfSkgJiYgdGhpcy5pc0FsbG93ZWRSb2xlKHdpdGhSb2xlcywgcmVzLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9Mb2dpblVzZXIoeyAuLi51c2VyLCAuLi5yZXMgfSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdvaydcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2luZ0luU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZXJyLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNoYW5uZWxBY2Nlc3NQZXJtaXNzaW9uID0gKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmNoYW5uZWxzVXNlclN1YmplY3QubmV4dChbXSlcblxuICAgICAgICAvKiBQbGVhc2UgcmVtb3ZlIHRoaXMgQVNBUCAtIE5lZWRzICpjaGFubmVscyogYXJyYXkgaW4gdXNlciBvYmplY3QgQUxXQVlTICovXG4gICAgICAgIC8qIGlmIChVc2VyUm9sZVR5cGUuU0VMTEVSID09IHJlcy50eXBlIGFzIFVzZXJSb2xlVHlwZSkgcmV0dXJuIHRydWUgKi9cblxuICAgICAgICAvKiBObyBhdXRob3JpemVkIGNoYW5uZWxzICovXG4gICAgICAgIGlmIChyZXMuY2hhbm5lbHM/Lmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICAvKiBTb21lIGF1dGhvcml6ZWQgY2hhbm5lbChzKSBpbmNsdWRpbmcgY3VycmVudCBjaGFubmVsICovXG4gICAgICAgIGlmIChyZXMuY2hhbm5lbHMuZmluZCh1c2VyY2hhbm5lbCA9PiB1c2VyY2hhbm5lbC5jb2RlID09PSB0aGlzLmNoYW5uZWwuY29kZSkpIHtcbiAgICAgICAgICAgIC8qIE11bHRpcGxlIGF1dGhvcml6ZWQgY2hhbm5lbHMgaW5jbHVkaW5nIGN1cnJlbnQgY2hhbm5lbCAqL1xuICAgICAgICAgICAgaWYgKHJlcy5jaGFubmVscz8ubGVuZ3RoID4gMSAmJiB0aGlzLmFjdGl2ZUNoYW5uZWxDaGFuZ2UpXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFubmVsc1VzZXJTdWJqZWN0Lm5leHQocmVzLmNoYW5uZWxzKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgICAvKiBPbmUgYXV0aG9yaXplZCBjaGFubmVsIG5vdCBpbmNsdWRpbmcgY3VycmVudCBjaGFubmVsICovXG4gICAgICAgIGlmIChyZXMuY2hhbm5lbHM/Lmxlbmd0aCA9PSAxICYmIHRoaXMuYWN0aXZlQ2hhbm5lbENoYW5nZSkge1xuICAgICAgICAgICAgZGVsZXRlIHJlcy5wYXNzd29yZFxuICAgICAgICAgICAgdGhpcy5jaGFubmVsQWNjZXNzKHJlcy5jaGFubmVsc1swXSwgcmVzKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgICAvKiBNdWx0aXBsZSBhdXRob3JpemVkIGNoYW5uZWxzIG5vdCBpbmNsdWRpbmcgY3VycmVudCBjaGFubmVsICovXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUNoYW5uZWxDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbm5lbHNVc2VyU3ViamVjdC5uZXh0KHJlcy5jaGFubmVscylcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY2hhbm5lbEFjY2VzcyA9IChjaGFubmVsLCB1c2VyID0gbnVsbCkgPT4ge1xuICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICE9IGNoYW5uZWwuaG9zdG5hbWUpIHtcbiAgICAgICAgICAgIGxldCBlbmNvZGVkID0gYnRvYShKU09OLnN0cmluZ2lmeSh1c2VyICE9IG51bGwgPyB1c2VyIDogdGhpcy51c2VyKSlcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGAke3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7Y2hhbm5lbC5ob3N0bmFtZX0vYXV0aC9yZWRpcmVjdC8ke2VuY29kZWR9YClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3RhbnRzLm1vZGlmeUNoYW5uZWxDb25maWcoY2hhbm5lbClcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGV2dWVsdmUgdW5hIHByb21lc2FcbiAgICAgKiBAcGFyYW0gdXNlciBPYmpldG8gcXVlIGNvbnRpZW5lIHVzZXJuYW1lIHkgcGFzc3dvcmQgXG4gICAgICovXG4gICAgZG9Mb2dpbiA9ICh1c2VyOiB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dpbmdJblN1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgdXNlciA9IHsgLi4udXNlciwgLi4udGhpcy5jb25zdGFudHMubG9naW5FeHRyYURhdGEoKSB9O1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLnBvc3QodGhpcy50b2tlbkFwaSgpLCB1c2VyKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiB0aGlzLmRvTG9naW5Vc2VyKHJlcykpLFxuICAgICAgICAgICAgbWFwVG8oJ29rJyksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnaW5nSW5TdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihlcnIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApLnRvUHJvbWlzZSgpO1xuICAgIH1cblxuICAgIGdldFVzZXJQcm9maWxlKCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgICAgICByZXR1cm4gKHRoaXMudXNlciAmJiBPYnNlcnZhYmxlLm9mKHRoaXMudXNlcikpIHx8IHRoaXMuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICB9XG5cbiAgICBnZXRVc2VyUHJvZmlsZUFzVXNlcigpOiBVc2VyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciB8fCB0aGlzLmdldEN1cnJlbnRVc2VyQXNVc2VyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50VXNlckFzVXNlcigpOiBVc2VyIHtcbiAgICAgICAgdGhpcy51c2VyID0gbmV3IFVzZXIoKTtcbiAgICAgICAgaWYgKCF0aGlzLnVzZXIubG9hZEZyb21TdG9yYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMudXNlciA9IG51bGxcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnVzZXI/LmNoYW5uZWxzLmZpbmQodXNlcmNoYW5uZWwgPT4gdXNlcmNoYW5uZWw/LmNvZGUgPT09IHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ291dCgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1cnJlbnRVc2VyKCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgICAgICB0aGlzLnVzZXIgPSBuZXcgVXNlcigpO1xuICAgICAgICBpZiAoIXRoaXMudXNlci5sb2FkRnJvbVN0b3JhZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy51c2VyID0gbnVsbFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKHRoaXMudXNlcik7XG4gICAgfVxuXG4gICAgc2lnblVwID0gKGRhdGEpID0+IHRoaXMuY29ubmVjdGlvbi5wb3N0KHRoaXMucmVnaXN0ZXJBcGkoKSwgZGF0YSk7XG5cbiAgICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmlzVG9rZW5FeHBpcmVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZG9Mb2dvdXRVc2VyKClcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldEN1cnJlbnRVc2VyQXNVc2VyKClcbiAgICAgICAgdGhpcy51c2VySW5TdWJqZWN0Lm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW4oKSAmJiAhdGhpcy5pc1Rva2VuRXhwaXJlZCgpICYmIHRoaXMudXNlciAhPSBudWxsO1xuICAgIH1cblxuICAgIGNvbmZpcm1BY2NvdW50ID0gKHRva2VuOiBzdHJpbmcpID0+XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5jb25maXJtQWNjb3VudEFwaSh0b2tlbikpO1xuXG4gICAgcGFzc3dvcmRSZXNldCA9IChuZXdfcGFzc3dvcmQsIHRva2VuKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IHBhc3N3b3JkOiB7IGZpcnN0OiBuZXdfcGFzc3dvcmQsIHNlY29uZDogbmV3X3Bhc3N3b3JkIH0gfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5wdXQodGhpcy5yZXNldFBhc3N3b3JkQXBpKHRva2VuKSwgZGF0YSk7XG4gICAgfVxuXG4gICAgcmVjb3ZlclBhc3N3b3JkID0gKGVtYWlsOiBzdHJpbmcpID0+XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5wdXQodGhpcy5yZWNvdmVyUGFzc3dvcmRBcGkoKSwgeyBlbWFpbCB9KTtcblxuICAgIC8qIFRPS0VOICovXG5cbiAgICBsb2dvdXQoKSB7XG4gICAgICAgIHRoaXMuZG9Mb2dvdXRVc2VyKCk7XG4gICAgfVxuXG4gICAgcmVmcmVzaFRva2VuKCkge1xuICAgICAgICBsZXQgZGF0YSA9IHsgLi4udGhpcy5jb25zdGFudHMubG9naW5FeHRyYURhdGEoKSwgcmVmcmVzaF90b2tlbjogdGhpcy5nZXRSZWZyZXNoVG9rZW4oKSB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucG9zdCh0aGlzLnRva2VuQXBpKCksIGRhdGEpLnBpcGUobWFwKFxuICAgICAgICAgICAgcmVzID0+IHRoaXMuZG9Mb2dpblVzZXIocmVzKVxuICAgICAgICApKVxuICAgIH1cblxuICAgIGdldFRva2VuKCkge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5KV1RfVE9LRU4pO1xuICAgIH1cblxuICAgIGlzVG9rZW5FeHBpcmVkID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBmZWNoYV9leHBpcmFjaW9uID0gdGhpcy5nZXRFeHBpcmF0ZXNBdCgpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBtb21lbnQoKSA+PSBtb21lbnQoZmVjaGFfZXhwaXJhY2lvbik7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0RXhwaXJhdGVzQXQgPSAoKSA9PiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkVYUElSQVRFU19JTik7XG5cbiAgICBwdWJsaWMgZG9Mb2dpblVzZXIodG9rZW5zKSB7XG4gICAgICAgIHRoaXMudXNlciA9IG5ldyBVc2VyKClcbiAgICAgICAgdGhpcy51c2VyLmluaXRpbGl6ZWQodG9rZW5zKVxuICAgICAgICB0aGlzLmZvcmNlQ2hhbm5lbHNGb3JTZWxsZXIodG9rZW5zKVxuICAgICAgICB0aGlzLnVzZXIucGVyc2lzdEluU3RvcmFnZSgpXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuRVhQSVJBVEVTX0lOLCBtb21lbnQodG9rZW5zLmV4cGlyZXNfaW4pLmFkZCgxLCAnaCcpLmZvcm1hdCgpKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5SRUZSRVNIX1RPS0VOLCBtb21lbnQodG9rZW5zLmV4cGlyZXNfaW4pLmFkZCgxLCAnaCcpLmZvcm1hdCgpKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5KV1RfVE9LRU4sIHRva2Vucy50b2tlbik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuTUFJTCwgdG9rZW5zLnVzZXJuYW1lKTtcbiAgICAgICAgdGhpcy51c2VySW5TdWJqZWN0Lm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgdGhpcy5sb2dnZWRJblN1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5sb2dnaW5nSW5TdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkb0xvZ291dFVzZXIoKSB7XG4gICAgICAgIHRoaXMudXNlciA9IG51bGxcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5VU0VSKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5FWFBJUkFURVNfSU4pO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLkpXVF9UT0tFTik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuUkVGUkVTSF9UT0tFTik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjYXJ0X3Rva2VuJyk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuTUFJTCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuQ0hBTk5FTCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuQ0hBTk5FTFNFTExFUik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuTE9DQUxFKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5DVVNUT01FUik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdNQVNURVJfQ0hBTk5FTCcpO1xuICAgICAgICB0aGlzLmxvZ2dlZEluU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy51c2VySW5TdWJqZWN0Lm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgdGhpcy5jaGFubmVsc1VzZXJTdWJqZWN0Lm5leHQoW10pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSZWZyZXNoVG9rZW4oKSB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlJFRlJFU0hfVE9LRU4pO1xuICAgIH1cblxuICAgIGhhc1RvUmVmcmVzaCA9ICgpID0+IHRoaXMuZ2V0UmVmcmVzaFRva2VuKCk7XG5cbiAgICBzaWduVXBXaG9sZXNhbGVyID0gKGRhdGEpID0+IHRoaXMuY29ubmVjdGlvbi5wb3N0KHRoaXMucmVnaXN0ZXJXaG9sZXNhbGVyQXBpKCksIGRhdGEpO1xuXG4gICAgZ2V0Q291bnRyaWVzRGF0YSA9IGFzeW5jICgpID0+XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5jb3VudHJpZXNBcGkoKSkucGlwZShtYXAocmVzID0+IHJlcy5fZW1iZWRkZWQuaXRlbXMpKS50b1Byb21pc2UoKTtcblxuICAgIHB1YmxpYyBzZXRBY3RpdmVDaGFubmVsQ2hhbmdlID0gKGFjdGl2ZWx5Q2hhbmdlQ2hhbm5lbHNPbkxvZ2luOiBib29sZWFuKSA9PiB0aGlzLmFjdGl2ZUNoYW5uZWxDaGFuZ2UgPSBhY3RpdmVseUNoYW5nZUNoYW5uZWxzT25Mb2dpblxuXG4gICAgcHJpdmF0ZSBpc0FsbG93ZWRSb2xlID0gKGFsbG93ZWRSb2xlczogVXNlclJvbGVUeXBlW10sIHJvbGU6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gYWxsb3dlZFJvbGVzLmxlbmd0aFxuICAgICAgICAgICAgPyBhbGxvd2VkUm9sZXMuaW5jbHVkZXMocm9sZSBhcyBVc2VyUm9sZVR5cGUpXG4gICAgICAgICAgICA6IHRydWVcbiAgICB9XG5cbiAgICAvKiBQbGVhc2UgcmVtb3ZlIHRoaXMgQVNBUCAtIE5lZWRzICpjaGFubmVscyogYXJyYXkgaW4gdXNlciBvYmplY3QgQUxXQVlTICovXG4gICAgcHJpdmF0ZSBmb3JjZUNoYW5uZWxzRm9yU2VsbGVyID0gdG9rZW5zID0+IHtcbiAgICAgICAgaWYgKFVzZXJSb2xlVHlwZS5TRUxMRVIgPT0gdG9rZW5zLnR5cGUgYXMgVXNlclJvbGVUeXBlKVxuICAgICAgICAgICAgdGhpcy5jaGFubmVscz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgPyB0aGlzLnVzZXIuc2V0Q2hhbm5lbHMoLi4udGhpcy5jaGFubmVscylcbiAgICAgICAgICAgICAgICA6IHRoaXMudXNlci5zZXRDaGFubmVscyh0aGlzLmNoYW5uZWwpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbWJpYSBkZSBjYW5hbFxuICAgICAqIEBwYXJhbSBjaGFubmVsQ29uZmlnIGRlYmUgc2VyIHVuIG9iamV0byBxdWUgY29udGVuZ2EgYWwgbWVub3MgbGFzIGtleXMgY2hhbm5lbCB5IGxvY2FsZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNoYW5nZUNoYW5uZWwgPSAoY2hhbm5lbENvbmZpZzphbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb25zdGFudHMubW9kaWZ5Q2hhbm5lbENvbmZpZyh7XG4gICAgICAgICAgICBjaGFubmVsOiBjaGFubmVsQ29uZmlnLmNoYW5uZWwsXG4gICAgICAgICAgICBsb2NhbGU6IGNoYW5uZWxDb25maWcubG9jYWxlXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhcmdhIGVsIGNsaWVudGUgY29uIGVsIHF1ZSBzZSByZWFsaXphcmFuIHBlZGlkb3MuIFNpIHJlY2liZSBlbCB2YWxvciBudWxsXG4gICAgICogc2UgdnVlbHZlIGEgY2FyZ2FyIGVsIHZlbmRlZG9yIHBhcmEgc3UgdXNvLiAgXG4gICAgICogQHBhcmFtIGN1c3RvbWVyIFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDdXN0b21lciA9IGN1c3RvbWVyID0+IHtcbiAgICAgICAgbGV0IHJlZnJlc2hQYWdlID0gZmFsc2VcbiAgICAgICAgdGhpcy5jdXN0b21lciA9IGN1c3RvbWVyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuQ1VTVE9NRVIsIEpTT04uc3RyaW5naWZ5KGN1c3RvbWVyKSlcbiAgICAgICAgXG4gICAgICAgIGxldCBzYW1lQ2hhbm5lbCA9IGN1c3RvbWVyID8gdGhpcy5zYW1lQ2hhbm5lbChjdXN0b21lci5jaGFubmVsc1swXS5jb2RlLCBjdXN0b21lci5jaGFubmVsc1swXS5sb2NhbGVzLmNvZGUpIDogbnVsbFxuICAgICAgICBcbiAgICAgICAgaWYgKGN1c3RvbWVyKSB7XG4gICAgICAgICAgICBpZighc2FtZUNoYW5uZWwpe1xuICAgICAgICAgICAgICAgICFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNIQU5ORUxTRUxMRVIpID9cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DSEFOTkVMU0VMTEVSLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsOiB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMuY29uc3RhbnRzLmdldExvY2FsZSgpXG4gICAgICAgICAgICAgICAgICAgIH0pKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VDaGFubmVsKHtcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbDogY3VzdG9tZXIuY2hhbm5lbHNbMF0uY29kZSxcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiBjdXN0b21lci5jaGFubmVsc1swXS5sb2NhbGVzLmNvZGVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJlcyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5DSEFOTkVMU0VMTEVSKSlcbiAgICAgICAgICAgIGlmKHJlcyl7XG4gICAgICAgICAgICAgICAgaWYoIXRoaXMuc2FtZUNoYW5uZWwocmVzLmNoYW5uZWwsIHJlcy5sb2NhbGUpKXtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VDaGFubmVsKHJlcylcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UgPSB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuQ0hBTk5FTFNFTExFUik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQ2FydFNlcnZpY2UpLmNsZWFyQW5kUmVzZXRDdXN0b21lckNhcnQoKVxuICAgICAgICByZWZyZXNoUGFnZSA/IGxvY2F0aW9uLmhyZWYgPSBsb2NhdGlvbi5ocmVmIDogbnVsbFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wcnVlYmEgc2kgbG9zIHZhbG9yZXMgZGVsIGNhbmFsIGFjdHVhbCBzb24gaWd1YWxlcyBhIGxvcyBpbmdyZXNhZG8gcG9yIHBhcmFtZXRyb3MuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYW5uZWwgTm9tYnJlIGRlbCBjYW5hbFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbGUgIExvY2FsZSBkZWwgY2FuYWxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBzaSBlcyBlbCBtaXNtbyBjYW5hbCwgRmFsc2UgY2FzbyBjb250cmFyaW8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBzYW1lQ2hhbm5lbCA9IChjaGFubmVsOnN0cmluZywgbG9jYWxlOnN0cmluZyk6Ym9vbGVhbiA9PiAoY2hhbm5lbCA9PSB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkpICYmIChsb2NhbGUgPT0gdGhpcy5jb25zdGFudHMuZ2V0TG9jYWxlKCkpXG5cbiAgICAvKiBwdWJsaWMgZ2V0Q3VzdG9tZXIgPSAoKSA9PiBPYnNlcnZhYmxlLm9mKEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5DVVNUT01FUikpKSAqL1xuXG4gICAgcHVibGljIGdldEN1c3RvbWVyID0gKCkgPT4ge1xuICAgICAgICAvKiB0aGlzLmN1c3RvbWVyU3ViamVjdC5uZXh0KEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5DVVNUT01FUikpKVxuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21lciAqL1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21lciB8fCBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuQ1VTVE9NRVIpKVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRIb21lUmVzb2x2ZXIgPSByZXNvbHZlckZ1bmN0aW9uID0+IHRoaXMuaG9tZVJlc29sdmVyID0gcmVzb2x2ZXJGdW5jdGlvblxuXG4gICAgcHVibGljIGdldEhvbWVSZXNvbHZlciA9ICgpID0+IHRoaXMuaG9tZVJlc29sdmVyXG5cbiAgICBwdWJsaWMgaXNBYmxlVG9CdXkgPSAoKTogYm9vbGVhbiA9PiAhdGhpcy5nZXRVc2VyUHJvZmlsZUFzVXNlcigpPy5pc1NlbGxlcigpIHx8ICEhdGhpcy5nZXRDdXN0b21lcigpXG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZhbHVhIHNpIGVsIHZhbG9yIHF1ZSBpbmdyZXNhIHBvciBwYXLDoW1ldHJvIGVzIG1heW9yIG8gaWd1YWwgYWwgbcOtbmltbyBkZSBjb21wcmFcbiAgICAgKiBxdWUgZWwgdXN1YXJpbyB0aWVuZSBhc2lnbmFkbyBhIGVzZSBjYW5hbCwgZGlmZXJlbmNpYW5kbyBzaSBlcyBtYXlvcmlzdGEgbyBtaW5vcmlzdGEuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIHNpIGV4Y2VkZSBlbCBtb250bywgZmFsc2UgY2FzbyBjb250cmFyaW9cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhjZWVkc01pbmltdW1BbW91bnQgPSAodmFsdWU6bnVtYmVyPTApOmJvb2xlYW4gPT4gIFxuICAgICAgICB0aGlzLnVzZXIuaXNXaG9sZXNhbGVyKCkgPyB0aGlzLnVzZXIuY2hhbm5lbHMuZmluZCggY2hhbm5lbCA9PiB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgPT0gY2hhbm5lbC5jb2RlKS53aG9sZXNhbGVyTWluaW11bVB1cmNoYXNlQW1vdW50IDw9IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMudXNlci5jaGFubmVscy5maW5kKCBjaGFubmVsID0+IHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSA9PSBjaGFubmVsLmNvZGUpLnJldGFpbGVyTWluaW11bVB1cmNoYXNlQW1vdW50IDw9IHZhbHVlXG59Il19
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTzdDLElBQWEsV0FBVyxHQUF4QixNQUFhLFdBQVc7SUEwQ3BCLFlBQW9CLFVBQTZCLEVBQ3JDLGFBQTRCLEVBQzVCLFNBQW9CLEVBQ3BCLFFBQWtCO1FBSFYsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0NiLGNBQVMsR0FBRyxXQUFXLENBQUE7UUFDdkIsa0JBQWEsR0FBRyxlQUFlLENBQUE7UUFD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VSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxZQUFZLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLFlBQVksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRU8sZUFBZTtRQUNuQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FnSEosQ0FBQTs7WUFsVW1DLGlCQUFpQjtZQUN0QixhQUFhO1lBQ2pCLFNBQVM7WUFDVixRQUFROzs7QUE3Q3JCLFdBQVc7SUFIdkIsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztHQUNXLFdBQVcsQ0E0V3ZCO1NBNVdZLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGkvY29ubmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXInO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL29mJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IG1hcCwgbWFwVG8sIGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4vY2hhbm5lbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy1jb21wYXQvb3BlcmF0b3IvdGFrZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4vY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVc2VyUm9sZVR5cGUgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItcm9sZS10eXBlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IEpXVF9UT0tFTiA9ICdKV1RfVE9LRU4nXG4gICAgcHJpdmF0ZSByZWFkb25seSBSRUZSRVNIX1RPS0VOID0gJ1JFRlJFU0hfVE9LRU4nXG4gICAgcHJpdmF0ZSByZWFkb25seSBFWFBJUkFURVNfSU4gPSAnRVhQSVJBVEVTX0lOJ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVVNFUiA9ICdVU0VSJ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgTUFJTCA9ICdtYWlsJ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgTE9DQUxFID0gJ0xPQ0FMRSdcbiAgICBwcml2YXRlIHJlYWRvbmx5IENIQU5ORUwgPSAnQ0hBTk5FTCdcbiAgICBwcml2YXRlIHJlYWRvbmx5IENVU1RPTUVSID0gJ0NVU1RPTUVSJ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQ0hBTk5FTFNFTExFUiA9ICdDSEFOTkVMU0VMTEVSJ1xuXG4gICAgLyogYWN0aXZlQ2hhbm5lbFN3aXRjaD8gKi9cbiAgICBwcml2YXRlIGFjdGl2ZUNoYW5uZWxDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZVxuICAgIHByaXZhdGUgbG9nZ2VkSW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KGZhbHNlKVxuICAgIHByaXZhdGUgbG9nZ2luZ0luU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihmYWxzZSlcbiAgICBwcml2YXRlIHVzZXJJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXI+KG51bGwpXG4gICAgcHJpdmF0ZSBjaGFubmVsc1VzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pXG4gICAgLyogcHJpdmF0ZSBjdXN0b21lclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCkgKi9cbiAgICBwcml2YXRlIHVzZXI6IFVzZXIgPSBudWxsXG5cbiAgICAvLyBBUElTXG4gICAgcHVibGljIHRva2VuQXBpID0gKCkgPT4gJ3Nob3AtYXBpL2xvZ2luX2NoZWNrJztcbiAgICBwdWJsaWMgcmVnaXN0ZXJBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcmVnaXN0ZXInO1xuICAgIHB1YmxpYyByZWdpc3Rlcldob2xlc2FsZXJBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcmVnaXN0ZXItd2hvbGVzYWxlcic7XG4gICAgcHVibGljIGNvbmZpcm1BY2NvdW50QXBpID0gKHRva2VuKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvdmVyaWZ5LWFjY291bnQ/dG9rZW49JyArIHRva2VuO1xuICAgIHB1YmxpYyByZXNldFBhc3N3b3JkQXBpID0gKHRva2VuKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcGFzc3dvcmQtcmVzZXQvJyArIHRva2VuO1xuICAgIHB1YmxpYyByZWNvdmVyUGFzc3dvcmRBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcmVxdWVzdC1wYXNzd29yZC1yZXNldCc7XG4gICAgcHVibGljIGNvdW50cmllc0FwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9jb3VudHJpZXMnO1xuXG4gICAgLy8gQXRyaWJ1dG9zIHV0aWxlc1xuICAgIHB1YmxpYyB3YWl0aW5nID0gZmFsc2U7XG4gICAgcHVibGljIGxvZ2dlZEluID0gdGhpcy5sb2dnZWRJblN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICBwdWJsaWMgbG9nZ2luZ0luID0gdGhpcy5sb2dnaW5nSW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG4gICAgcHVibGljIHVzZXJBdXRoID0gdGhpcy51c2VySW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG4gICAgcHVibGljIGNoYW5uZWxzVXNlciA9IHRoaXMuY2hhbm5lbHNVc2VyU3ViamVjdC5hc09ic2VydmFibGUoKVxuICAgIC8qIHByaXZhdGUgY3VzdG9tZXIgPSB0aGlzLmNoYW5uZWxzVXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCkgKi9cbiAgICBwcml2YXRlIGN1c3RvbWVyID0gbnVsbFxuICAgIHB1YmxpYyBjaGFubmVsID0gbnVsbFxuICAgIHB1YmxpYyBjaGFubmVscyA9IFtdXG4gICAgcHJpdmF0ZSBob21lUmVzb2x2ZXIgPSBudWxsXG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uc3RhbnRzOiBDb25zdGFudHMsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkKCkgJiYgdGhpcy5sb2dnZWRJblN1YmplY3QubmV4dCh0cnVlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjIERldnVlbHZlIHVuIG9ic2VydmFibGVcbiAgICAgKiBAcGFyYW0gdXNlciBPYmpldG8gcXVlIGNvbnRpZW5lIHVzZXJuYW1lIHkgcGFzc3dvcmQgXG4gICAgICovXG4gICAgbG9naW4odXNlcjogeyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH0sIHdpdGhSb2xlczogVXNlclJvbGVUeXBlW10gPSBbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxDb25maWdTZXJ2aWNlKS5jaGFubmVsQ29uZmlnJC5zdWJzY3JpYmUoY2ggPT4gdGhpcy5jaGFubmVsID0gY2gpO1xuICAgICAgICB0aGlzLmluamVjdG9yLmdldChDaGFubmVsQ29uZmlnU2VydmljZSkuY2hhbm5lbHMuc3Vic2NyaWJlKGNoID0+IHRoaXMuY2hhbm5lbHMgPSBjaCk7XG4gICAgICAgIHRoaXMubG9nZ2luZ0luU3ViamVjdC5uZXh0KHRydWUpO1xuXG4gICAgICAgIC8vIENvbnZlcnRpciBlbCB1c2VybmFtZSBhIG1pbsO6c2N1bGFzXG4gICAgICAgIHVzZXIgPSB7IC4uLnVzZXIsIHVzZXJuYW1lOiB1c2VyLnVzZXJuYW1lLnRvTG93ZXJDYXNlKCksIC4uLnRoaXMuY29uc3RhbnRzLmxvZ2luRXh0cmFEYXRhKCkgfTtcblxuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5jb25uZWN0aW9uLnBvc3QodGhpcy50b2tlbkFwaSgpLCB1c2VyKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hhbm5lbEFjY2Vzc1Blcm1pc3Npb24oeyAuLi51c2VyLCAuLi5yZXMgfSkgJiYgdGhpcy5pc0FsbG93ZWRSb2xlKHdpdGhSb2xlcywgcmVzLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9Mb2dpblVzZXIoeyAuLi51c2VyLCAuLi5yZXMgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnb2snO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2luZ0luU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZXJyLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjaGFubmVsQWNjZXNzUGVybWlzc2lvbiA9IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5jaGFubmVsc1VzZXJTdWJqZWN0Lm5leHQoW10pXG5cbiAgICAgICAgLyogUGxlYXNlIHJlbW92ZSB0aGlzIEFTQVAgLSBOZWVkcyAqY2hhbm5lbHMqIGFycmF5IGluIHVzZXIgb2JqZWN0IEFMV0FZUyAqL1xuICAgICAgICAvKiBpZiAoVXNlclJvbGVUeXBlLlNFTExFUiA9PSByZXMudHlwZSBhcyBVc2VyUm9sZVR5cGUpIHJldHVybiB0cnVlICovXG5cbiAgICAgICAgLyogTm8gYXV0aG9yaXplZCBjaGFubmVscyAqL1xuICAgICAgICBpZiAocmVzLmNoYW5uZWxzPy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgLyogU29tZSBhdXRob3JpemVkIGNoYW5uZWwocykgaW5jbHVkaW5nIGN1cnJlbnQgY2hhbm5lbCAqL1xuICAgICAgICBpZiAocmVzLmNoYW5uZWxzLmZpbmQodXNlcmNoYW5uZWwgPT4gdXNlcmNoYW5uZWwuY29kZSA9PT0gdGhpcy5jaGFubmVsLmNvZGUpKSB7XG4gICAgICAgICAgICAvKiBNdWx0aXBsZSBhdXRob3JpemVkIGNoYW5uZWxzIGluY2x1ZGluZyBjdXJyZW50IGNoYW5uZWwgKi9cbiAgICAgICAgICAgIGlmIChyZXMuY2hhbm5lbHM/Lmxlbmd0aCA+IDEgJiYgdGhpcy5hY3RpdmVDaGFubmVsQ2hhbmdlKVxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbm5lbHNVc2VyU3ViamVjdC5uZXh0KHJlcy5jaGFubmVscylcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgLyogT25lIGF1dGhvcml6ZWQgY2hhbm5lbCBub3QgaW5jbHVkaW5nIGN1cnJlbnQgY2hhbm5lbCAqL1xuICAgICAgICBpZiAocmVzLmNoYW5uZWxzPy5sZW5ndGggPT0gMSAmJiB0aGlzLmFjdGl2ZUNoYW5uZWxDaGFuZ2UpIHtcbiAgICAgICAgICAgIGRlbGV0ZSByZXMucGFzc3dvcmRcbiAgICAgICAgICAgIHRoaXMuY2hhbm5lbEFjY2VzcyhyZXMuY2hhbm5lbHNbMF0sIHJlcylcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgLyogTXVsdGlwbGUgYXV0aG9yaXplZCBjaGFubmVscyBub3QgaW5jbHVkaW5nIGN1cnJlbnQgY2hhbm5lbCAqL1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVDaGFubmVsQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWxzVXNlclN1YmplY3QubmV4dChyZXMuY2hhbm5lbHMpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNoYW5uZWxBY2Nlc3MgPSAoY2hhbm5lbCwgdXNlciA9IG51bGwpID0+IHtcbiAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSAhPSBjaGFubmVsLmhvc3RuYW1lKSB7XG4gICAgICAgICAgICBsZXQgZW5jb2RlZCA9IGJ0b2EoSlNPTi5zdHJpbmdpZnkodXNlciAhPSBudWxsID8gdXNlciA6IHRoaXMudXNlcikpXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZShgJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2NoYW5uZWwuaG9zdG5hbWV9L2F1dGgvcmVkaXJlY3QvJHtlbmNvZGVkfWApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cy5tb2RpZnlDaGFubmVsQ29uZmlnKGNoYW5uZWwpXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjIERldnVlbHZlIHVuYSBwcm9tZXNhXG4gICAgICogQHBhcmFtIHVzZXIgT2JqZXRvIHF1ZSBjb250aWVuZSB1c2VybmFtZSB5IHBhc3N3b3JkIFxuICAgICAqL1xuICAgIGRvTG9naW4gPSAodXNlcjogeyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgdGhpcy5sb2dnaW5nSW5TdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgIHVzZXIgPSB7IC4uLnVzZXIsIC4uLnRoaXMuY29uc3RhbnRzLmxvZ2luRXh0cmFEYXRhKCkgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5wb3N0KHRoaXMudG9rZW5BcGkoKSwgdXNlcikucGlwZShcbiAgICAgICAgICAgIG1hcChyZXMgPT4gdGhpcy5kb0xvZ2luVXNlcihyZXMpKSxcbiAgICAgICAgICAgIG1hcFRvKCdvaycpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2luZ0luU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZXJyLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKS50b1Byb21pc2UoKTtcbiAgICB9XG5cbiAgICBnZXRVc2VyUHJvZmlsZSgpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnVzZXIgJiYgT2JzZXJ2YWJsZS5vZih0aGlzLnVzZXIpKSB8fCB0aGlzLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgfVxuXG4gICAgZ2V0VXNlclByb2ZpbGVBc1VzZXIoKTogVXNlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXIgfHwgdGhpcy5nZXRDdXJyZW50VXNlckFzVXNlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3VycmVudFVzZXJBc1VzZXIoKTogVXNlciB7XG4gICAgICAgIHRoaXMudXNlciA9IG5ldyBVc2VyKCk7XG4gICAgICAgIGlmICghdGhpcy51c2VyLmxvYWRGcm9tU3RvcmFnZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIgPSBudWxsXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy51c2VyPy5jaGFubmVscy5maW5kKHVzZXJjaGFubmVsID0+IHVzZXJjaGFubmVsPy5jb2RlID09PSB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2dvdXQoKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50VXNlcigpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICAgICAgdGhpcy51c2VyID0gbmV3IFVzZXIoKTtcbiAgICAgICAgaWYgKCF0aGlzLnVzZXIubG9hZEZyb21TdG9yYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMudXNlciA9IG51bGxcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5vZih0aGlzLnVzZXIpO1xuICAgIH1cblxuICAgIHNpZ25VcCA9IChkYXRhKSA9PiB7XG4gICAgICAgIC8vIENvbnZlcnRpciBlbCBlbWFpbCBhIG1pbsO6c2N1bGFzIHNpIGV4aXN0ZVxuICAgICAgICBpZiAoZGF0YS5lbWFpbCkge1xuICAgICAgICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZW1haWw6IGRhdGEuZW1haWwudG9Mb3dlckNhc2UoKSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucG9zdCh0aGlzLnJlZ2lzdGVyQXBpKCksIGRhdGEpO1xuICAgIH07XG5cbiAgICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmlzVG9rZW5FeHBpcmVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZG9Mb2dvdXRVc2VyKClcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldEN1cnJlbnRVc2VyQXNVc2VyKClcbiAgICAgICAgdGhpcy51c2VySW5TdWJqZWN0Lm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW4oKSAmJiAhdGhpcy5pc1Rva2VuRXhwaXJlZCgpICYmIHRoaXMudXNlciAhPSBudWxsO1xuICAgIH1cblxuICAgIGNvbmZpcm1BY2NvdW50ID0gKHRva2VuOiBzdHJpbmcpID0+XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5jb25maXJtQWNjb3VudEFwaSh0b2tlbikpO1xuXG4gICAgcGFzc3dvcmRSZXNldCA9IChuZXdfcGFzc3dvcmQsIHRva2VuKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IHBhc3N3b3JkOiB7IGZpcnN0OiBuZXdfcGFzc3dvcmQsIHNlY29uZDogbmV3X3Bhc3N3b3JkIH0gfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5wdXQodGhpcy5yZXNldFBhc3N3b3JkQXBpKHRva2VuKSwgZGF0YSk7XG4gICAgfVxuXG4gICAgcmVjb3ZlclBhc3N3b3JkID0gKGVtYWlsOiBzdHJpbmcpID0+XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5wdXQodGhpcy5yZWNvdmVyUGFzc3dvcmRBcGkoKSwgeyBlbWFpbCB9KTtcblxuICAgIC8qIFRPS0VOICovXG5cbiAgICBsb2dvdXQoKSB7XG4gICAgICAgIHRoaXMuZG9Mb2dvdXRVc2VyKCk7XG4gICAgfVxuXG4gICAgcmVmcmVzaFRva2VuKCkge1xuICAgICAgICBsZXQgZGF0YSA9IHsgLi4udGhpcy5jb25zdGFudHMubG9naW5FeHRyYURhdGEoKSwgcmVmcmVzaF90b2tlbjogdGhpcy5nZXRSZWZyZXNoVG9rZW4oKSB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucG9zdCh0aGlzLnRva2VuQXBpKCksIGRhdGEpLnBpcGUobWFwKFxuICAgICAgICAgICAgcmVzID0+IHRoaXMuZG9Mb2dpblVzZXIocmVzKVxuICAgICAgICApKVxuICAgIH1cblxuICAgIGdldFRva2VuKCkge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5KV1RfVE9LRU4pO1xuICAgIH1cblxuICAgIGlzVG9rZW5FeHBpcmVkID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBmZWNoYV9leHBpcmFjaW9uID0gdGhpcy5nZXRFeHBpcmF0ZXNBdCgpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBtb21lbnQoKSA+PSBtb21lbnQoZmVjaGFfZXhwaXJhY2lvbik7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0RXhwaXJhdGVzQXQgPSAoKSA9PiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkVYUElSQVRFU19JTik7XG5cbiAgICBwdWJsaWMgZG9Mb2dpblVzZXIodG9rZW5zKSB7XG4gICAgICAgIHRoaXMudXNlciA9IG5ldyBVc2VyKClcbiAgICAgICAgdGhpcy51c2VyLmluaXRpbGl6ZWQodG9rZW5zKVxuICAgICAgICB0aGlzLmZvcmNlQ2hhbm5lbHNGb3JTZWxsZXIodG9rZW5zKVxuICAgICAgICB0aGlzLnVzZXIucGVyc2lzdEluU3RvcmFnZSgpXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuRVhQSVJBVEVTX0lOLCBtb21lbnQodG9rZW5zLmV4cGlyZXNfaW4pLmFkZCgxLCAnaCcpLmZvcm1hdCgpKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5SRUZSRVNIX1RPS0VOLCBtb21lbnQodG9rZW5zLmV4cGlyZXNfaW4pLmFkZCgxLCAnaCcpLmZvcm1hdCgpKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5KV1RfVE9LRU4sIHRva2Vucy50b2tlbik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuTUFJTCwgdG9rZW5zLnVzZXJuYW1lKTtcbiAgICAgICAgdGhpcy51c2VySW5TdWJqZWN0Lm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgdGhpcy5sb2dnZWRJblN1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5sb2dnaW5nSW5TdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkb0xvZ291dFVzZXIoKSB7XG4gICAgICAgIHRoaXMudXNlciA9IG51bGxcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5VU0VSKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5FWFBJUkFURVNfSU4pO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLkpXVF9UT0tFTik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuUkVGUkVTSF9UT0tFTik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjYXJ0X3Rva2VuJyk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuTUFJTCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuQ0hBTk5FTCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuQ0hBTk5FTFNFTExFUik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuTE9DQUxFKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5DVVNUT01FUik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdNQVNURVJfQ0hBTk5FTCcpO1xuICAgICAgICB0aGlzLmxvZ2dlZEluU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy51c2VySW5TdWJqZWN0Lm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgdGhpcy5jaGFubmVsc1VzZXJTdWJqZWN0Lm5leHQoW10pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSZWZyZXNoVG9rZW4oKSB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlJFRlJFU0hfVE9LRU4pO1xuICAgIH1cblxuICAgIGhhc1RvUmVmcmVzaCA9ICgpID0+IHRoaXMuZ2V0UmVmcmVzaFRva2VuKCk7XG5cbiAgICBzaWduVXBXaG9sZXNhbGVyID0gKGRhdGEpID0+IHtcbiAgICAgICAgLy8gQ29udmVydGlyIGVsIGVtYWlsIGEgbWluw7pzY3VsYXMgc2kgZXhpc3RlXG4gICAgICAgIGlmIChkYXRhLmVtYWlsKSB7XG4gICAgICAgICAgICBkYXRhID0geyAuLi5kYXRhLCBlbWFpbDogZGF0YS5lbWFpbC50b0xvd2VyQ2FzZSgpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5wb3N0KHRoaXMucmVnaXN0ZXJXaG9sZXNhbGVyQXBpKCksIGRhdGEpO1xuICAgIH07XG5cbiAgICBnZXRDb3VudHJpZXNEYXRhID0gYXN5bmMgKCkgPT5cbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmNvdW50cmllc0FwaSgpKS5waXBlKG1hcChyZXMgPT4gcmVzLl9lbWJlZGRlZC5pdGVtcykpLnRvUHJvbWlzZSgpO1xuXG4gICAgcHVibGljIHNldEFjdGl2ZUNoYW5uZWxDaGFuZ2UgPSAoYWN0aXZlbHlDaGFuZ2VDaGFubmVsc09uTG9naW46IGJvb2xlYW4pID0+IHRoaXMuYWN0aXZlQ2hhbm5lbENoYW5nZSA9IGFjdGl2ZWx5Q2hhbmdlQ2hhbm5lbHNPbkxvZ2luXG5cbiAgICBwcml2YXRlIGlzQWxsb3dlZFJvbGUgPSAoYWxsb3dlZFJvbGVzOiBVc2VyUm9sZVR5cGVbXSwgcm9sZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBhbGxvd2VkUm9sZXMubGVuZ3RoXG4gICAgICAgICAgICA/IGFsbG93ZWRSb2xlcy5pbmNsdWRlcyhyb2xlIGFzIFVzZXJSb2xlVHlwZSlcbiAgICAgICAgICAgIDogdHJ1ZVxuICAgIH1cblxuICAgIC8qIFBsZWFzZSByZW1vdmUgdGhpcyBBU0FQIC0gTmVlZHMgKmNoYW5uZWxzKiBhcnJheSBpbiB1c2VyIG9iamVjdCBBTFdBWVMgKi9cbiAgICBwcml2YXRlIGZvcmNlQ2hhbm5lbHNGb3JTZWxsZXIgPSB0b2tlbnMgPT4ge1xuICAgICAgICBpZiAoVXNlclJvbGVUeXBlLlNFTExFUiA9PSB0b2tlbnMudHlwZSBhcyBVc2VyUm9sZVR5cGUpXG4gICAgICAgICAgICB0aGlzLmNoYW5uZWxzPy5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHRoaXMudXNlci5zZXRDaGFubmVscyguLi50aGlzLmNoYW5uZWxzKVxuICAgICAgICAgICAgICAgIDogdGhpcy51c2VyLnNldENoYW5uZWxzKHRoaXMuY2hhbm5lbClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FtYmlhIGRlIGNhbmFsXG4gICAgICogQHBhcmFtIGNoYW5uZWxDb25maWcgZGViZSBzZXIgdW4gb2JqZXRvIHF1ZSBjb250ZW5nYSBhbCBtZW5vcyBsYXMga2V5cyBjaGFubmVsIHkgbG9jYWxlLlxuICAgICAqL1xuICAgIHByaXZhdGUgY2hhbmdlQ2hhbm5lbCA9IChjaGFubmVsQ29uZmlnOmFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnN0YW50cy5tb2RpZnlDaGFubmVsQ29uZmlnKHtcbiAgICAgICAgICAgIGNoYW5uZWw6IGNoYW5uZWxDb25maWcuY2hhbm5lbCxcbiAgICAgICAgICAgIGxvY2FsZTogY2hhbm5lbENvbmZpZy5sb2NhbGVcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FyZ2EgZWwgY2xpZW50ZSBjb24gZWwgcXVlIHNlIHJlYWxpemFyYW4gcGVkaWRvcy4gU2kgcmVjaWJlIGVsIHZhbG9yIG51bGxcbiAgICAgKiBzZSB2dWVsdmUgYSBjYXJnYXIgZWwgdmVuZGVkb3IgcGFyYSBzdSB1c28uICBcbiAgICAgKiBAcGFyYW0gY3VzdG9tZXIgXG4gICAgICovXG4gICAgcHVibGljIHNldEN1c3RvbWVyID0gY3VzdG9tZXIgPT4ge1xuICAgICAgICBsZXQgcmVmcmVzaFBhZ2UgPSBmYWxzZVxuICAgICAgICB0aGlzLmN1c3RvbWVyID0gY3VzdG9tZXJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DVVNUT01FUiwgSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXIpKVxuICAgICAgICBcbiAgICAgICAgbGV0IHNhbWVDaGFubmVsID0gY3VzdG9tZXIgPyB0aGlzLnNhbWVDaGFubmVsKGN1c3RvbWVyLmNoYW5uZWxzWzBdLmNvZGUsIGN1c3RvbWVyLmNoYW5uZWxzWzBdLmxvY2FsZXMuY29kZSkgOiBudWxsXG4gICAgICAgIFxuICAgICAgICBpZiAoY3VzdG9tZXIpIHtcbiAgICAgICAgICAgIGlmKCFzYW1lQ2hhbm5lbCl7XG4gICAgICAgICAgICAgICAgIWxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuQ0hBTk5FTFNFTExFUikgP1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkNIQU5ORUxTRUxMRVIsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdGhpcy5jb25zdGFudHMuZ2V0TG9jYWxlKClcbiAgICAgICAgICAgICAgICAgICAgfSkpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUNoYW5uZWwoe1xuICAgICAgICAgICAgICAgICAgICBjaGFubmVsOiBjdXN0b21lci5jaGFubmVsc1swXS5jb2RlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IGN1c3RvbWVyLmNoYW5uZWxzWzBdLmxvY2FsZXMuY29kZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UgPSB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgcmVzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNIQU5ORUxTRUxMRVIpKVxuICAgICAgICAgICAgaWYocmVzKXtcbiAgICAgICAgICAgICAgICBpZighdGhpcy5zYW1lQ2hhbm5lbChyZXMuY2hhbm5lbCwgcmVzLmxvY2FsZSkpe1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUNoYW5uZWwocmVzKVxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSA9IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5DSEFOTkVMU0VMTEVSKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluamVjdG9yLmdldChDYXJ0U2VydmljZSkuY2xlYXJBbmRSZXNldEN1c3RvbWVyQ2FydCgpXG4gICAgICAgIHJlZnJlc2hQYWdlID8gbG9jYXRpb24uaHJlZiA9IGxvY2F0aW9uLmhyZWYgOiBudWxsXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXBydWViYSBzaSBsb3MgdmFsb3JlcyBkZWwgY2FuYWwgYWN0dWFsIHNvbiBpZ3VhbGVzIGEgbG9zIGluZ3Jlc2FkbyBwb3IgcGFyYW1ldHJvcy5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhbm5lbCBOb21icmUgZGVsIGNhbmFsXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGxvY2FsZSAgTG9jYWxlIGRlbCBjYW5hbFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIHNpIGVzIGVsIG1pc21vIGNhbmFsLCBGYWxzZSBjYXNvIGNvbnRyYXJpby5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNhbWVDaGFubmVsID0gKGNoYW5uZWw6c3RyaW5nLCBsb2NhbGU6c3RyaW5nKTpib29sZWFuID0+IChjaGFubmVsID09IHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSkgJiYgKGxvY2FsZSA9PSB0aGlzLmNvbnN0YW50cy5nZXRMb2NhbGUoKSlcblxuICAgIC8qIHB1YmxpYyBnZXRDdXN0b21lciA9ICgpID0+IE9ic2VydmFibGUub2YoSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNVU1RPTUVSKSkpICovXG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tZXIgPSAoKSA9PiB7XG4gICAgICAgIC8qIHRoaXMuY3VzdG9tZXJTdWJqZWN0Lm5leHQoSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNVU1RPTUVSKSkpXG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbWVyICovXG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbWVyIHx8IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5DVVNUT01FUikpXG4gICAgfVxuXG4gICAgcHVibGljIHNldEhvbWVSZXNvbHZlciA9IHJlc29sdmVyRnVuY3Rpb24gPT4gdGhpcy5ob21lUmVzb2x2ZXIgPSByZXNvbHZlckZ1bmN0aW9uXG5cbiAgICBwdWJsaWMgZ2V0SG9tZVJlc29sdmVyID0gKCkgPT4gdGhpcy5ob21lUmVzb2x2ZXJcblxuICAgIHB1YmxpYyBpc0FibGVUb0J1eSA9ICgpOiBib29sZWFuID0+ICF0aGlzLmdldFVzZXJQcm9maWxlQXNVc2VyKCk/LmlzU2VsbGVyKCkgfHwgISF0aGlzLmdldEN1c3RvbWVyKClcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFdmFsdWEgc2kgZWwgdmFsb3IgcXVlIGluZ3Jlc2EgcG9yIHBhcsOhbWV0cm8gZXMgbWF5b3IgbyBpZ3VhbCBhbCBtw61uaW1vIGRlIGNvbXByYVxuICAgICAqIHF1ZSBlbCB1c3VhcmlvIHRpZW5lIGFzaWduYWRvIGEgZXNlIGNhbmFsLCBkaWZlcmVuY2lhbmRvIHNpIGVzIG1heW9yaXN0YSBvIG1pbm9yaXN0YS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgc2kgZXhjZWRlIGVsIG1vbnRvLCBmYWxzZSBjYXNvIGNvbnRyYXJpb1xuICAgICAqL1xuICAgIHB1YmxpYyBleGNlZWRzTWluaW11bUFtb3VudCA9ICh2YWx1ZTpudW1iZXI9MCk6Ym9vbGVhbiA9PiAgXG4gICAgICAgIHRoaXMudXNlci5pc1dob2xlc2FsZXIoKSA/IHRoaXMudXNlci5jaGFubmVscy5maW5kKCBjaGFubmVsID0+IHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSA9PSBjaGFubmVsLmNvZGUpLndob2xlc2FsZXJNaW5pbXVtUHVyY2hhc2VBbW91bnQgPD0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy51c2VyLmNoYW5uZWxzLmZpbmQoIGNoYW5uZWwgPT4gdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpID09IGNoYW5uZWwuY29kZSkucmV0YWlsZXJNaW5pbXVtUHVyY2hhc2VBbW91bnQgPD0gdmFsdWVcbn0iXX0=
|
|
@@ -40,6 +40,7 @@ let PaymentService = class PaymentService extends StepService {
|
|
|
40
40
|
this.getCheckoutMobbexApi = () => 'shop-api/' + this.consts.getChannel() + '/mobbex/' + this.cartService.getCartToken() + '/process-payment';
|
|
41
41
|
this.getCheckoutBancardApi = () => 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.getCartToken() + '/process-payment'; //?testOrderNumber=' + this.getRandomArbitrary()
|
|
42
42
|
this.getCheckoutBambooApi = () => 'shop-api/' + this.consts.getChannel() + '/bamboo/' + this.cartService.getCartToken() + '/process-payment';
|
|
43
|
+
this.getCheckoutPlaceToPayApi = () => 'shop-api/' + this.consts.getChannel() + '/place-to-pay/' + this.cartService.getCartToken() + '/process-payment';
|
|
43
44
|
this.putPaymentApi = (method) => this.baseApi() + '/payment/' + method;
|
|
44
45
|
this.getPaymentMethods = () => __awaiter(this, void 0, void 0, function* () {
|
|
45
46
|
return this.connection.get(this.getPaymentMethodsApi()).toPromise().then(res => { var _a; return ((_a = res.payments) === null || _a === void 0 ? void 0 : _a.length) && this.paymentMethodsSubject.next(Object.keys(res.payments[0].methods).map(key => res.payments[0].methods[key])); }, err => this.toastrService.show('operation-error'));
|
|
@@ -58,6 +59,7 @@ let PaymentService = class PaymentService extends StepService {
|
|
|
58
59
|
this.getCheckoutMobbex = (shipment_data) => this.connection.post(this.getCheckoutMobbexApi(), shipment_data).toPromise();
|
|
59
60
|
this.getCheckoutBancard = (shipment_data) => this.connection.get(this.getCheckoutBancardApi(), shipment_data).toPromise();
|
|
60
61
|
this.getCheckoutBamboo = (shipment_data) => this.connection.get(this.getCheckoutBambooApi(), shipment_data).toPromise();
|
|
62
|
+
this.getCheckoutPlaceToPay = (shipment_data) => this.connection.post(this.getCheckoutPlaceToPayApi(), shipment_data).toPromise();
|
|
61
63
|
this.getRandomArbitrary = () => Math.round(Math.random() * (Number(9999999) - Number(2000003)) + Number(2000003));
|
|
62
64
|
this.getPaymentMethods();
|
|
63
65
|
}
|
|
@@ -74,4 +76,4 @@ PaymentService = __decorate([
|
|
|
74
76
|
Injectable()
|
|
75
77
|
], PaymentService);
|
|
76
78
|
export { PaymentService };
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2NoZWNrb3V0L3BheW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hELElBQWEsY0FBYyxHQUEzQixNQUFhLGNBQWUsU0FBUSxXQUFXO0lBYTNDLFlBQW9CLFVBQTZCLEVBQVUsYUFBMkIsRUFBVSxXQUF3QixFQUFVLE1BQWlCLEVBQ3ZJLGVBQWdDLEVBQVUsZ0JBQWtDO1FBQ3BGLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUZQLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDdkksb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUscUJBQWdCLEdBQWhCLGdC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LE9BQU8sQ0FBQyxDQUFDLENBQUE7UUEvQmhILElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0ErQkosQ0FBQTs7WUFuQ21DLGlCQUFpQjtZQUF5QixZQUFZO1lBQXVCLFdBQVc7WUFBa0IsU0FBUztZQUN0SCxlQUFlO1lBQTRCLGdCQUFnQjs7QUFkL0UsY0FBYztJQUQxQixVQUFVLEVBQUU7R0FDQSxjQUFjLENBZ0QxQjtTQWhEWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvY29ubmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb3JlLmNvbnN0cyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuL2NoZWNrb3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RlcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NoZWNrb3V0L3N0ZXAtc2VydmljZSc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vYW5hbHl0aWNzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGF5bWVudFNlcnZpY2UgZXh0ZW5kcyBTdGVwU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHBheW1lbnRNZXRob2RzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcbiAgICBwdWJsaWMgbWV0aG9kcyQgPSB0aGlzLnBheW1lbnRNZXRob2RzU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIGJhc2VBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvJyArICdjaGVja291dC8nICsgdGhpcy5jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKTtcbiAgICBnZXRQYXltZW50TWV0aG9kc0FwaSA9ICgpID0+IHRoaXMuYmFzZUFwaSgpICsgJy9wYXltZW50JztcbiAgICBnZXRQcmVmZXJlbmNlQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnL21lcmNhZG8tcGFnby8nICsgdGhpcy5jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKSArICcvcHJlZmVyZW5jZSc7XG4gICAgZ2V0Q2hlY2tvdXRNb2JiZXhBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvbW9iYmV4LycgKyB0aGlzLmNhcnRTZXJ2aWNlLmdldENhcnRUb2tlbigpICsgJy9wcm9jZXNzLXBheW1lbnQnXG4gICAgZ2V0Q2hlY2tvdXRCYW5jYXJkQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnL2JhbmNhcmQvJyArIHRoaXMuY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCkgKyAnL3Byb2Nlc3MtcGF5bWVudCcgLy8/dGVzdE9yZGVyTnVtYmVyPScgKyB0aGlzLmdldFJhbmRvbUFyYml0cmFyeSgpXG4gICAgZ2V0Q2hlY2tvdXRCYW1ib29BcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvYmFtYm9vLycgKyB0aGlzLmNhcnRTZXJ2aWNlLmdldENhcnRUb2tlbigpICsgJy9wcm9jZXNzLXBheW1lbnQnIFxuICAgIHB1dFBheW1lbnRBcGkgPSAobWV0aG9kKSA9PiB0aGlzLmJhc2VBcGkoKSArICcvcGF5bWVudC8nICsgbWV0aG9kO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSwgcHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsIHByaXZhdGUgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLCBwcml2YXRlIGNvbnN0czogQ29uc3RhbnRzLFxuICAgICAgICBwcml2YXRlIGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLCBwcml2YXRlIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoY2hlY2tvdXRTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5nZXRQYXltZW50TWV0aG9kcygpO1xuICAgIH1cblxuICAgIGdldFBheW1lbnRNZXRob2RzID0gYXN5bmMgKCkgPT4gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmdldFBheW1lbnRNZXRob2RzQXBpKCkpLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAgIHJlcyA9PiByZXMucGF5bWVudHM/Lmxlbmd0aCAmJiB0aGlzLnBheW1lbnRNZXRob2RzU3ViamVjdC5uZXh0KE9iamVjdC5rZXlzKHJlcy5wYXltZW50c1swXS5tZXRob2RzKS5tYXAoa2V5ID0+IHJlcy5wYXltZW50c1swXS5tZXRob2RzW2tleV0pKSxcbiAgICAgICAgZXJyID0+IHRoaXMudG9hc3RyU2VydmljZS5zaG93KCdvcGVyYXRpb24tZXJyb3InKVxuICAgICk7XG5cbiAgICAvLyBwdXRQYXltZW50ID0gKG1ldGhvZCkgPT4gdGhpcy5jb25uZWN0aW9uLnB1dCh0aGlzLnB1dFBheW1lbnRBcGkobWV0aG9kKSwgeyBtZXRob2QgfSkudG9Qcm9taXNlKCk7XG4gICAgcHV0UGF5bWVudCA9IChtZXRob2QpID0+XG4gICAgICAgIHRoaXMuY29ubmVjdGlvblxuICAgICAgICAgICAgLnB1dCh0aGlzLnB1dFBheW1lbnRBcGkobWV0aG9kKSwgeyBtZXRob2QgfSlcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgnYWRkX3BheW1lbnRfaW5mbycsIHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZWplY3QobmV3IEVycm9yKGVyci5lcnJvcikpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgKS5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpKVxuXG4gICAgZ2V0UHJlZmVyZW5jZSA9IChzaGlwbWVudF9kYXRhKSA9PiB0aGlzLmNvbm5lY3Rpb24ucG9zdCh0aGlzLmdldFByZWZlcmVuY2VBcGkoKSwgc2hpcG1lbnRfZGF0YSkucGlwZShtYXAocmVzID0+IChyZXMucHJlZmVyZW5jZSB8fCByZXMpKSkudG9Qcm9taXNlKCk7XG5cbiAgICBnZXRDaGVja291dE1vYmJleCA9IChzaGlwbWVudF9kYXRhKSA9PiB0aGlzLmNvbm5lY3Rpb24ucG9zdCh0aGlzLmdldENoZWNrb3V0TW9iYmV4QXBpKCksIHNoaXBtZW50X2RhdGEpLnRvUHJvbWlzZSgpO1xuXG4gICAgZ2V0Q2hlY2tvdXRCYW5jYXJkID0gKHNoaXBtZW50X2RhdGEpID0+IHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5nZXRDaGVja291dEJhbmNhcmRBcGkoKSwgc2hpcG1lbnRfZGF0YSkudG9Qcm9taXNlKCk7XG5cbiAgICBnZXRDaGVja291dEJhbWJvbyA9IChzaGlwbWVudF9kYXRhKSA9PiB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0Q2hlY2tvdXRCYW1ib29BcGkoKSwgc2hpcG1lbnRfZGF0YSkudG9Qcm9taXNlKCk7XG5cbiAgICBwcml2YXRlIGdldFJhbmRvbUFyYml0cmFyeSA9ICgpID0+IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIChOdW1iZXIoOTk5OTk5OSkgLSBOdW1iZXIoMjAwMDAwMykpICsgTnVtYmVyKDIwMDAwMDMpKVxufSJdfQ==
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2NoZWNrb3V0L3BheW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hELElBQWEsY0FBYyxHQUEzQixNQUFhLGNBQWUsU0FBUSxXQUFXO0lBYzNDLFlBQW9CLFVBQTZCLEVBQVUsYUFBMkIsRUFBVSxXQUF3QixFQUFVLE1BQWlCLEVBQ3ZJLGVBQWdDLEVBQVUsZ0JBQWtDO1FBQ3BGLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUZQLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDdkksb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUscUJBQWdCLEdBQWhCLGdC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cUIsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRTdFLHVCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBbENoSCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBa0NKLENBQUE7O1lBdENtQyxpQkFBaUI7WUFBeUIsWUFBWTtZQUF1QixXQUFXO1lBQWtCLFNBQVM7WUFDdEgsZUFBZTtZQUE0QixnQkFBZ0I7O0FBZi9FLGNBQWM7SUFEMUIsVUFBVSxFQUFFO0dBQ0EsY0FBYyxDQW9EMUI7U0FwRFksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nvbm5lY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi9jaGVja291dC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0ZXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jaGVja291dC9zdGVwLXNlcnZpY2UnO1xuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uL2FuYWx5dGljcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBheW1lbnRTZXJ2aWNlIGV4dGVuZHMgU3RlcFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBwYXltZW50TWV0aG9kc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG4gICAgcHVibGljIG1ldGhvZHMkID0gdGhpcy5wYXltZW50TWV0aG9kc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBiYXNlQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnLycgKyAnY2hlY2tvdXQvJyArIHRoaXMuY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCk7XG4gICAgZ2V0UGF5bWVudE1ldGhvZHNBcGkgPSAoKSA9PiB0aGlzLmJhc2VBcGkoKSArICcvcGF5bWVudCc7XG4gICAgZ2V0UHJlZmVyZW5jZUFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9tZXJjYWRvLXBhZ28vJyArIHRoaXMuY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCkgKyAnL3ByZWZlcmVuY2UnO1xuICAgIGdldENoZWNrb3V0TW9iYmV4QXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnL21vYmJleC8nICsgdGhpcy5jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKSArICcvcHJvY2Vzcy1wYXltZW50J1xuICAgIGdldENoZWNrb3V0QmFuY2FyZEFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9iYW5jYXJkLycgKyB0aGlzLmNhcnRTZXJ2aWNlLmdldENhcnRUb2tlbigpICsgJy9wcm9jZXNzLXBheW1lbnQnIC8vP3Rlc3RPcmRlck51bWJlcj0nICsgdGhpcy5nZXRSYW5kb21BcmJpdHJhcnkoKVxuICAgIGdldENoZWNrb3V0QmFtYm9vQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnL2JhbWJvby8nICsgdGhpcy5jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKSArICcvcHJvY2Vzcy1wYXltZW50J1xuICAgIGdldENoZWNrb3V0UGxhY2VUb1BheUFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9wbGFjZS10by1wYXkvJyArIHRoaXMuY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCkgKyAnL3Byb2Nlc3MtcGF5bWVudCc7XG4gICAgcHV0UGF5bWVudEFwaSA9IChtZXRob2QpID0+IHRoaXMuYmFzZUFwaSgpICsgJy9wYXltZW50LycgKyBtZXRob2Q7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlLCBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSwgcHJpdmF0ZSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsIHByaXZhdGUgY29uc3RzOiBDb25zdGFudHMsXG4gICAgICAgIHByaXZhdGUgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsIHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSkge1xuICAgICAgICBzdXBlcihjaGVja291dFNlcnZpY2UpO1xuICAgICAgICB0aGlzLmdldFBheW1lbnRNZXRob2RzKCk7XG4gICAgfVxuXG4gICAgZ2V0UGF5bWVudE1ldGhvZHMgPSBhc3luYyAoKSA9PiB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0UGF5bWVudE1ldGhvZHNBcGkoKSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgICAgcmVzID0+IHJlcy5wYXltZW50cz8ubGVuZ3RoICYmIHRoaXMucGF5bWVudE1ldGhvZHNTdWJqZWN0Lm5leHQoT2JqZWN0LmtleXMocmVzLnBheW1lbnRzWzBdLm1ldGhvZHMpLm1hcChrZXkgPT4gcmVzLnBheW1lbnRzWzBdLm1ldGhvZHNba2V5XSkpLFxuICAgICAgICBlcnIgPT4gdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXG4gICAgKTtcblxuICAgIC8vIHB1dFBheW1lbnQgPSAobWV0aG9kKSA9PiB0aGlzLmNvbm5lY3Rpb24ucHV0KHRoaXMucHV0UGF5bWVudEFwaShtZXRob2QpLCB7IG1ldGhvZCB9KS50b1Byb21pc2UoKTtcbiAgICBwdXRQYXltZW50ID0gKG1ldGhvZCkgPT5cbiAgICAgICAgdGhpcy5jb25uZWN0aW9uXG4gICAgICAgICAgICAucHV0KHRoaXMucHV0UGF5bWVudEFwaShtZXRob2QpLCB7IG1ldGhvZCB9KVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCdhZGRfcGF5bWVudF9pbmZvJywgcmVzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJlamVjdChuZXcgRXJyb3IoZXJyLmVycm9yKSkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKS5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpKVxuXG4gICAgZ2V0UHJlZmVyZW5jZSA9IChzaGlwbWVudF9kYXRhKSA9PiB0aGlzLmNvbm5lY3Rpb24ucG9zdCh0aGlzLmdldFByZWZlcmVuY2VBcGkoKSwgc2hpcG1lbnRfZGF0YSkucGlwZShtYXAocmVzID0+IChyZXMucHJlZmVyZW5jZSB8fCByZXMpKSkudG9Qcm9taXNlKCk7XG5cbiAgICBnZXRDaGVja291dE1vYmJleCA9IChzaGlwbWVudF9kYXRhKSA9PiB0aGlzLmNvbm5lY3Rpb24ucG9zdCh0aGlzLmdldENoZWNrb3V0TW9iYmV4QXBpKCksIHNoaXBtZW50X2RhdGEpLnRvUHJvbWlzZSgpO1xuXG4gICAgZ2V0Q2hlY2tvdXRCYW5jYXJkID0gKHNoaXBtZW50X2RhdGEpID0+IHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5nZXRDaGVja291dEJhbmNhcmRBcGkoKSwgc2hpcG1lbnRfZGF0YSkudG9Qcm9taXNlKCk7XG5cbiAgICBnZXRDaGVja291dEJhbWJvbyA9IChzaGlwbWVudF9kYXRhKSA9PiB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0Q2hlY2tvdXRCYW1ib29BcGkoKSwgc2hpcG1lbnRfZGF0YSkudG9Qcm9taXNlKCk7XG5cbiAgICBnZXRDaGVja291dFBsYWNlVG9QYXkgPSAoc2hpcG1lbnRfZGF0YSkgPT5cbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLnBvc3QodGhpcy5nZXRDaGVja291dFBsYWNlVG9QYXlBcGkoKSwgc2hpcG1lbnRfZGF0YSkudG9Qcm9taXNlKCk7XG5cbiAgICBwcml2YXRlIGdldFJhbmRvbUFyYml0cmFyeSA9ICgpID0+IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIChOdW1iZXIoOTk5OTk5OSkgLSBOdW1iZXIoMjAwMDAwMykpICsgTnVtYmVyKDIwMDAwMDMpKVxufSJdfQ==
|
|
@@ -2,33 +2,34 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './public-api';
|
|
5
|
-
export { StepService as
|
|
6
|
-
export { ComponentHelper as
|
|
5
|
+
export { StepService as ɵs } from './lib/classes/checkout/step-service';
|
|
6
|
+
export { ComponentHelper as ɵk } from './lib/classes/component-helper';
|
|
7
7
|
export { StepEcComponent as ɵg } from './lib/ec-component/checkout-ec/step-ec/step-ec.component';
|
|
8
8
|
export { ComparedProductsEcComponent as ɵf } from './lib/ec-component/compared-products-ec/compared-products-ec.component';
|
|
9
9
|
export { components as ɵb } from './lib/ec-component/index';
|
|
10
10
|
export { SellerDashboardContainerEcComponent as ɵc } from './lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component';
|
|
11
11
|
export { BancardCatastroEcComponent as ɵi } from './lib/ec-component/widgets-ec/bancard-catastro-ec/bancard-catastro-ec.component';
|
|
12
12
|
export { CulqiEcComponent as ɵh } from './lib/ec-component/widgets-ec/culqi-ec/culqi-ec.component';
|
|
13
|
+
export { PlaceToPayEcComponent as ɵj } from './lib/ec-component/widgets-ec/place-to-pay-ec/place-to-pay-ec.component';
|
|
13
14
|
export { RecaptchaEcComponent as ɵe } from './lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component';
|
|
14
15
|
export { MagnizoomComponent as ɵd } from './lib/ec-component/widgets-ec/zoom-ec/magnizoom.component';
|
|
15
|
-
export { directives as
|
|
16
|
-
export { ProductOffDirective as
|
|
17
|
-
export { ReloadViewDirective as
|
|
18
|
-
export { pipes as
|
|
19
|
-
export { CustomerInterceptor as
|
|
16
|
+
export { directives as ɵx } from './lib/ec-directive/index';
|
|
17
|
+
export { ProductOffDirective as ɵy } from './lib/ec-directive/product-off.directive';
|
|
18
|
+
export { ReloadViewDirective as ɵz } from './lib/ec-directive/reload-view.directive';
|
|
19
|
+
export { pipes as ɵba } from './lib/ec-pipe/index';
|
|
20
|
+
export { CustomerInterceptor as ɵbd } from './lib/interceptors/customer.interceptor';
|
|
20
21
|
export { OrderByPipe as ɵa } from './lib/pipes/order-by.pipe';
|
|
21
|
-
export { BlocksRepositoryService as
|
|
22
|
-
export { ErrorHandlerService as
|
|
23
|
-
export { CookiesService as
|
|
24
|
-
export { IpService as
|
|
25
|
-
export { DopplerService as
|
|
26
|
-
export { FacebookPixelService as
|
|
27
|
-
export { GoogleAnalyticsService as
|
|
28
|
-
export { GTMService as
|
|
29
|
-
export { MetricoolPixelService as
|
|
30
|
-
export { OptionsOfProductListDataReceiverService as
|
|
31
|
-
export { OrderUtilityService as
|
|
32
|
-
export { PaymentUtils as
|
|
33
|
-
export { ShipmentDataTransformer as
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
export { BlocksRepositoryService as ɵl } from './lib/services/blocks/blocks-repository.service';
|
|
23
|
+
export { ErrorHandlerService as ɵt } from './lib/services/checkout/error-handler.service';
|
|
24
|
+
export { CookiesService as ɵw } from './lib/services/cookies.service';
|
|
25
|
+
export { IpService as ɵu } from './lib/services/ip-address.service';
|
|
26
|
+
export { DopplerService as ɵq } from './lib/utils/analytics/doppler.service';
|
|
27
|
+
export { FacebookPixelService as ɵm } from './lib/utils/analytics/facebook-pixel.service';
|
|
28
|
+
export { GoogleAnalyticsService as ɵn } from './lib/utils/analytics/google-analytics.service';
|
|
29
|
+
export { GTMService as ɵo } from './lib/utils/analytics/gtm.service';
|
|
30
|
+
export { MetricoolPixelService as ɵp } from './lib/utils/analytics/metricool-pixel.service';
|
|
31
|
+
export { OptionsOfProductListDataReceiverService as ɵbb } from './lib/utils/options-of-product-list-data.service';
|
|
32
|
+
export { OrderUtilityService as ɵr } from './lib/utils/order-util.service';
|
|
33
|
+
export { PaymentUtils as ɵbc } from './lib/utils/payment-utils.service';
|
|
34
|
+
export { ShipmentDataTransformer as ɵv } from './lib/utils/shipment-transformer.service';
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZWFzeWNvbW1lcmNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibmctZWFzeWNvbW1lcmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDL0YsT0FBTyxFQUFDLDJCQUEyQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3pILE9BQU8sRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFDLG1DQUFtQyxJQUFJLEVBQUUsRUFBQyxNQUFNLDBGQUEwRixDQUFDO0FBQ25KLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUNqSSxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQ3BILE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUMvRyxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDbkcsT0FBTyxFQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxLQUFLLElBQUksR0FBRyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEdBQUcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxTQUFTLElBQUksRUFBRSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1Q0FBdUMsSUFBSSxHQUFHLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUNoSCxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLFlBQVksSUFBSSxHQUFHLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7U3RlcFNlcnZpY2UgYXMgybVzfSBmcm9tICcuL2xpYi9jbGFzc2VzL2NoZWNrb3V0L3N0ZXAtc2VydmljZSc7XG5leHBvcnQge0NvbXBvbmVudEhlbHBlciBhcyDJtWt9IGZyb20gJy4vbGliL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5leHBvcnQge1N0ZXBFY0NvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vbGliL2VjLWNvbXBvbmVudC9jaGVja291dC1lYy9zdGVwLWVjL3N0ZXAtZWMuY29tcG9uZW50JztcbmV4cG9ydCB7Q29tcGFyZWRQcm9kdWN0c0VjQ29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvZWMtY29tcG9uZW50L2NvbXBhcmVkLXByb2R1Y3RzLWVjL2NvbXBhcmVkLXByb2R1Y3RzLWVjLmNvbXBvbmVudCc7XG5leHBvcnQge2NvbXBvbmVudHMgYXMgybVifSBmcm9tICcuL2xpYi9lYy1jb21wb25lbnQvaW5kZXgnO1xuZXhwb3J0IHtTZWxsZXJEYXNoYm9hcmRDb250YWluZXJFY0NvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2VjLWNvbXBvbmVudC9zZWxsZXItZGFzaGJvYXJkLWNvbnRhaW5lci1lYy9zZWxsZXItZGFzaGJvYXJkLWNvbnRhaW5lci1lYy5jb21wb25lbnQnO1xuZXhwb3J0IHtCYW5jYXJkQ2F0YXN0cm9FY0NvbXBvbmVudCBhcyDJtWl9IGZyb20gJy4vbGliL2VjLWNvbXBvbmVudC93aWRnZXRzLWVjL2JhbmNhcmQtY2F0YXN0cm8tZWMvYmFuY2FyZC1jYXRhc3Ryby1lYy5jb21wb25lbnQnO1xuZXhwb3J0IHtDdWxxaUVjQ29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9saWIvZWMtY29tcG9uZW50L3dpZGdldHMtZWMvY3VscWktZWMvY3VscWktZWMuY29tcG9uZW50JztcbmV4cG9ydCB7UGxhY2VUb1BheUVjQ29tcG9uZW50IGFzIMm1an0gZnJvbSAnLi9saWIvZWMtY29tcG9uZW50L3dpZGdldHMtZWMvcGxhY2UtdG8tcGF5LWVjL3BsYWNlLXRvLXBheS1lYy5jb21wb25lbnQnO1xuZXhwb3J0IHtSZWNhcHRjaGFFY0NvbXBvbmVudCBhcyDJtWV9IGZyb20gJy4vbGliL2VjLWNvbXBvbmVudC93aWRnZXRzLWVjL3JlLWNhcHRjaGEtZWMvcmUtY2FwdGNoYS1lYy5jb21wb25lbnQnO1xuZXhwb3J0IHtNYWduaXpvb21Db21wb25lbnQgYXMgybVkfSBmcm9tICcuL2xpYi9lYy1jb21wb25lbnQvd2lkZ2V0cy1lYy96b29tLWVjL21hZ25pem9vbS5jb21wb25lbnQnO1xuZXhwb3J0IHtkaXJlY3RpdmVzIGFzIMm1eH0gZnJvbSAnLi9saWIvZWMtZGlyZWN0aXZlL2luZGV4JztcbmV4cG9ydCB7UHJvZHVjdE9mZkRpcmVjdGl2ZSBhcyDJtXl9IGZyb20gJy4vbGliL2VjLWRpcmVjdGl2ZS9wcm9kdWN0LW9mZi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtSZWxvYWRWaWV3RGlyZWN0aXZlIGFzIMm1en0gZnJvbSAnLi9saWIvZWMtZGlyZWN0aXZlL3JlbG9hZC12aWV3LmRpcmVjdGl2ZSc7XG5leHBvcnQge3BpcGVzIGFzIMm1YmF9IGZyb20gJy4vbGliL2VjLXBpcGUvaW5kZXgnO1xuZXhwb3J0IHtDdXN0b21lckludGVyY2VwdG9yIGFzIMm1YmR9IGZyb20gJy4vbGliL2ludGVyY2VwdG9ycy9jdXN0b21lci5pbnRlcmNlcHRvcic7XG5leHBvcnQge09yZGVyQnlQaXBlIGFzIMm1YX0gZnJvbSAnLi9saWIvcGlwZXMvb3JkZXItYnkucGlwZSc7XG5leHBvcnQge0Jsb2Nrc1JlcG9zaXRvcnlTZXJ2aWNlIGFzIMm1bH0gZnJvbSAnLi9saWIvc2VydmljZXMvYmxvY2tzL2Jsb2Nrcy1yZXBvc2l0b3J5LnNlcnZpY2UnO1xuZXhwb3J0IHtFcnJvckhhbmRsZXJTZXJ2aWNlIGFzIMm1dH0gZnJvbSAnLi9saWIvc2VydmljZXMvY2hlY2tvdXQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcbmV4cG9ydCB7Q29va2llc1NlcnZpY2UgYXMgybV3fSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jb29raWVzLnNlcnZpY2UnO1xuZXhwb3J0IHtJcFNlcnZpY2UgYXMgybV1fSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pcC1hZGRyZXNzLnNlcnZpY2UnO1xuZXhwb3J0IHtEb3BwbGVyU2VydmljZSBhcyDJtXF9IGZyb20gJy4vbGliL3V0aWxzL2FuYWx5dGljcy9kb3BwbGVyLnNlcnZpY2UnO1xuZXhwb3J0IHtGYWNlYm9va1BpeGVsU2VydmljZSBhcyDJtW19IGZyb20gJy4vbGliL3V0aWxzL2FuYWx5dGljcy9mYWNlYm9vay1waXhlbC5zZXJ2aWNlJztcbmV4cG9ydCB7R29vZ2xlQW5hbHl0aWNzU2VydmljZSBhcyDJtW59IGZyb20gJy4vbGliL3V0aWxzL2FuYWx5dGljcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UnO1xuZXhwb3J0IHtHVE1TZXJ2aWNlIGFzIMm1b30gZnJvbSAnLi9saWIvdXRpbHMvYW5hbHl0aWNzL2d0bS5zZXJ2aWNlJztcbmV4cG9ydCB7TWV0cmljb29sUGl4ZWxTZXJ2aWNlIGFzIMm1cH0gZnJvbSAnLi9saWIvdXRpbHMvYW5hbHl0aWNzL21ldHJpY29vbC1waXhlbC5zZXJ2aWNlJztcbmV4cG9ydCB7T3B0aW9uc09mUHJvZHVjdExpc3REYXRhUmVjZWl2ZXJTZXJ2aWNlIGFzIMm1YmJ9IGZyb20gJy4vbGliL3V0aWxzL29wdGlvbnMtb2YtcHJvZHVjdC1saXN0LWRhdGEuc2VydmljZSc7XG5leHBvcnQge09yZGVyVXRpbGl0eVNlcnZpY2UgYXMgybVyfSBmcm9tICcuL2xpYi91dGlscy9vcmRlci11dGlsLnNlcnZpY2UnO1xuZXhwb3J0IHtQYXltZW50VXRpbHMgYXMgybViY30gZnJvbSAnLi9saWIvdXRpbHMvcGF5bWVudC11dGlscy5zZXJ2aWNlJztcbmV4cG9ydCB7U2hpcG1lbnREYXRhVHJhbnNmb3JtZXIgYXMgybV2fSBmcm9tICcuL2xpYi91dGlscy9zaGlwbWVudC10cmFuc2Zvcm1lci5zZXJ2aWNlJzsiXX0=
|
|
@@ -156,6 +156,7 @@ var PaymentEcComponent = /** @class */ (function (_super) {
|
|
|
156
156
|
_this.isBankTransfer = function (code) { return code && code.toLocaleLowerCase().includes('bank_transfer'); };
|
|
157
157
|
_this.isCatastro = function (code) { return code && code.toLocaleLowerCase().includes('catastro'); };
|
|
158
158
|
_this.isBamboo = function (code) { return code && code.toLocaleLowerCase().includes('bamboo'); };
|
|
159
|
+
_this.isPlaceToPay = function (code) { return code && code.toLocaleLowerCase().includes('place_to_pay'); };
|
|
159
160
|
_this.getPKCulqi = function (method) {
|
|
160
161
|
return window.location.href.includes('easycommercetech')
|
|
161
162
|
? method.config.public_testing_key
|
|
@@ -206,7 +207,7 @@ var PaymentEcComponent = /** @class */ (function (_super) {
|
|
|
206
207
|
PaymentEcComponent = __decorate([
|
|
207
208
|
Component({
|
|
208
209
|
selector: 'app-payment-ec',
|
|
209
|
-
template: "<div class=\"container-fluid\" *ngIf=\"(paymentService.methods$ | async) as methods\">\n\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"card \">\n <div class=\"card-header text-dark text-center\">\n <h4>{{ 'select-method' | translate }}</h4>\n <div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n <div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n <div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n <button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\"\n *ngFor=\"let method of methods; let x = index\"\n (click)=\"setMethod(method) ; setActive($event)\">\n {{ method.name | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-body text-center\">\n <div class=\"row justify-content-center\" *ngIf=\"(method_data$ | async) as method\">\n <ng-container *ngIf=\"!loading_internal ; else loading\">\n <div class=\"method-container text-dark\" *ngIf=\"isMP(method.code)\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <app-mp-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [paymentServiceInst]=\"paymentService\" [allData]=\"allData()\"></app-mp-redirect-ec>\n </div>\n <div class=\"method-container text-dark text-left\" *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <div app-mp-credit-ec (ready)=\"verifyValidate()\" [public_key]=\"getPK(method)\"\n [user_data]=\"allData()\" [total_amount]=\"total_amount\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\"\n *ngIf=\"isRedirectRedsys(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <ng-container *ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n <app-redsys-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\">\n </app-redsys-redirect-ec>\n </ng-container>\n <ng-container *ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n <app-redsys-redirect-out-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\">\n </app-redsys-redirect-out-ec>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectCecaBank(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <app-ceca-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\">\n </app-ceca-redirect-ec>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-paypal-express-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\"\n [total_amount]=\"total_amount\">\n </app-paypal-express-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\">\n </app-mobbex-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bancard-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\"\n [paymentServiceInst]=\"paymentService\" [total_amount]=\"total_amount\">\n </app-bancard-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\">\n </app-decidir-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isMethodOffline(method.code)\">\n <p id=\"faqs\" class=\"qt px-5\">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading() && verifyValidate()\">{{ ('pay-with-offline'| translate) }}</button>\n </div>\n <ng-container *ngIf=\"(loading$ | async) as load\">\n <div class=\"mt-2\" *ngIf=\"load\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <!-- <app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\">\n </app-mobbex-ec> -->\n <app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\" [amount]=\"total_amount\" [customStyle]=\"true\" (ready)=\"verifyValidate()\"></app-culqi-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bancard-catastro-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\"\n [paymentServiceInst]=\"paymentService\" [total_amount]=\"total_amount\"></app-bancard-catastro-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bamboo-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\"\n [paymentServiceInst]=\"paymentService\" [total_amount]=\"total_amount\"></app-bamboo-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isBankTransfer(method.code)\">\n <div class=\"row px-0 description-cont\">\n <ng-container *ngFor=\"let line of method.description.split('\\r\\n'); let i=index\">\n <p [id]=\"'faqs-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n </ng-container>\n </div>\n <hr *ngIf=\"method.instructions\">\n <div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n <h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n <ng-container *ngFor=\"let line of method.instructions.split('\\r\\n'); let i=index\">\n <p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n </ng-container>\n </div>\n\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading() && verifyValidate()\">{{\n ('pay-with-transfer'\n | translate) }}</button>\n </div>\n <ng-container *ngIf=\"(loading$ | async) as load\">\n <div class=\"mt-2\" *ngIf=\"load\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #mercadoPago>\n <div class=\"row \">\n <div class=\"col-12 text-center\">\n <app-loading-inline-ec *ngIf=\"loading_internal_mp\"></app-loading-inline-ec>\n <form action=\"javascript:void(0)\" #formContainer></form>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <app-loading-inline-ec></app-loading-inline-ec>\n</ng-template>\n",
|
|
210
|
+
template: "<div class=\"container-fluid\" *ngIf=\"(paymentService.methods$ | async) as methods\">\n\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"card \">\n <div class=\"card-header text-dark text-center\">\n <h4>{{ 'select-method' | translate }}</h4>\n <div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n <div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n <div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n <button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\"\n *ngFor=\"let method of methods; let x = index\"\n (click)=\"setMethod(method) ; setActive($event)\">\n {{ method.name | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-body text-center\">\n <div class=\"row justify-content-center\" *ngIf=\"(method_data$ | async) as method\">\n <ng-container *ngIf=\"!loading_internal ; else loading\">\n <div class=\"method-container text-dark\" *ngIf=\"isMP(method.code)\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <app-mp-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [paymentServiceInst]=\"paymentService\" [allData]=\"allData()\"></app-mp-redirect-ec>\n </div>\n <div class=\"method-container text-dark text-left\" *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <div app-mp-credit-ec (ready)=\"verifyValidate()\" [public_key]=\"getPK(method)\"\n [user_data]=\"allData()\" [total_amount]=\"total_amount\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectRedsys(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <ng-container\n *ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n <app-redsys-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [user_data]=\"allData()\">\n </app-redsys-redirect-ec>\n </ng-container>\n <ng-container\n *ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n <app-redsys-redirect-out-ec (ready)=\"verifyValidate($event)\"\n [method]=\"method\" [user_data]=\"allData()\">\n </app-redsys-redirect-out-ec>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectCecaBank(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <app-ceca-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [user_data]=\"allData()\">\n </app-ceca-redirect-ec>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-paypal-express-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [total_amount]=\"total_amount\">\n </app-paypal-express-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\">\n </app-mobbex-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bancard-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\">\n </app-bancard-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\">\n </app-decidir-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isMethodOffline(method.code)\">\n <p id=\"faqs\" class=\"qt px-5\">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading() && verifyValidate()\">{{\n ('pay-with-offline'| translate) }}</button>\n </div>\n <ng-container *ngIf=\"(loading$ | async) as load\">\n <div class=\"mt-2\" *ngIf=\"load\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <!-- <app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\" [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\">\n </app-mobbex-ec> -->\n <app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\"\n [amount]=\"total_amount\" [customStyle]=\"true\"\n (ready)=\"verifyValidate()\"></app-culqi-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bancard-catastro-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\"></app-bancard-catastro-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bamboo-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n [total_amount]=\"total_amount\"></app-bamboo-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isBankTransfer(method.code)\">\n <div class=\"row px-0 description-cont\">\n <ng-container *ngFor=\"let line of method.description.split('\\r\\n'); let i=index\">\n <p [id]=\"'faqs-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n </ng-container>\n </div>\n <hr *ngIf=\"method.instructions\">\n <div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n <h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n <ng-container *ngFor=\"let line of method.instructions.split('\\r\\n'); let i=index\">\n <p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n </ng-container>\n </div>\n\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading() && verifyValidate()\">{{\n ('pay-with-transfer'\n | translate) }}</button>\n </div>\n <ng-container *ngIf=\"(loading$ | async) as load\">\n <div class=\"mt-2\" *ngIf=\"load\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isPlaceToPay(method.code)\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <app-place-to-pay-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n [paymentServiceInst]=\"paymentService\" [allData]=\"allData()\">\n </app-place-to-pay-ec>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #mercadoPago>\n <div class=\"row \">\n <div class=\"col-12 text-center\">\n <app-loading-inline-ec *ngIf=\"loading_internal_mp\"></app-loading-inline-ec>\n <form action=\"javascript:void(0)\" #formContainer></form>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <app-loading-inline-ec></app-loading-inline-ec>\n</ng-template>",
|
|
210
211
|
providers: [PaymentService],
|
|
211
212
|
styles: ["div.col-12 form{text-align:center}.option-container>div{margin-bottom:15px}@media only screen and (min-width:600px){.option-container{display:flex;justify-content:space-between;margin-top:20px}}.method-container{width:100%}.active{background-color:#000!important;color:#fff!important}.comprar{background:#000;color:#fff;display:inline-block;font-size:18px;font-weight:600;padding:10px 25px;text-decoration:none;text-transform:uppercase}"]
|
|
212
213
|
})
|
|
@@ -214,4 +215,4 @@ var PaymentEcComponent = /** @class */ (function (_super) {
|
|
|
214
215
|
return PaymentEcComponent;
|
|
215
216
|
}(ComponentHelper));
|
|
216
217
|
export { PaymentEcComponent };
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2NoZWNrb3V0LWVjL3BheW1lbnQtZWMvcGF5bWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLGVBQWUsRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUzVEO0lBQXdDLHNDQUFlO0lBbUJuRCw0QkFBc0IsUUFBbUIsRUFBWSxNQUFvQixFQUM5RCxjQUE4QixFQUFTLGVBQWdDO1FBRGxGLFlBRUksaUJBQU8sU0FFVjtRQUpxQixjQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVksWUFBTSxHQUFOLE1BQU0sQ0FBYztRQUM5RCxvQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQnhFLHVCQUFpQixHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3JELG9CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFJdEQsc0JB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QUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7O1lBQy9DLEtBQXFCLElBQUEsV0FBQSxTQUFBLE1BQU0sQ0FBQSw4QkFBQSxrREFBRTtnQkFBeEIsSUFBTSxNQUFNLG1CQUFBO2dCQUNiLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2lCQUNwQzthQUNKOzs7Ozs7Ozs7UUFDRCxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEMsQ0FBQzs7Z0JBdkQrQixTQUFTO2dCQUFvQixZQUFZO2dCQUM5QyxjQUFjO2dCQUEwQixlQUFlOztJQWxCekU7UUFBUixLQUFLLEVBQUU7dURBQVM7SUFDVztRQUEzQixTQUFTLENBQUMsZUFBZSxDQUFDO2tFQUEwQztJQUg1RCxrQkFBa0I7UUFQOUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQiw2emFBQXdDO1lBRXhDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQzs7U0FFOUIsQ0FBQztPQUNXLGtCQUFrQixDQXdIOUI7SUFBRCx5QkFBQztDQUFBLEFBeEhELENBQXdDLGVBQWUsR0F3SHREO1NBeEhZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENoZWNrb3V0RGF0YSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvY2hlY2tvdXQtZGF0YSc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGVja291dC9jaGVja291dC5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hlY2tvdXQvcGF5bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1wYXltZW50LWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BheW1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydwYXltZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUGF5bWVudFNlcnZpY2VdXG5cbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudEVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gICAgQElucHV0KCkgc3RlcF9pZDtcbiAgICBAVmlld0NoaWxkKCdmb3JtQ29udGFpbmVyJykgcHJvdGVjdGVkIG1lcmNhZG9wYWdvX2J1dHRvbjogRWxlbWVudFJlZjtcbiAgICBwcm90ZWN0ZWQgbWV0aG9kRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByb3RlY3RlZCBwcmVmZXJlbmNlO1xuXG5cbiAgICBwdWJsaWMgbG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgIHB1YmxpYyBvcmRlcl9pZDtcbiAgICBwdWJsaWMgZXJyb3I7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICAgIHB1YmxpYyBsb2FkaW5nX2ludGVybmFsX21wID0gZmFsc2U7XG4gICAgcHVibGljIG1ldGhvZF9kYXRhJCA9IHRoaXMubWV0aG9kRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGxvYWRpbmckID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgdG90YWxfYW1vdW50O1xuXG4gICAgXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByb3RlY3RlZCB0b2FzdHI6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIHBheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSwgcHVibGljIGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmluaXRpYWxpemUodGhpcy5zdGVwX2lkKTtcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuYXNvY2lhdGVkRGF0YSQuc3Vic2NyaWJlKChkYXRhOiBDaGVja291dERhdGFbXSkgPT4gdGhpcy50b3RhbF9hbW91bnQgPSAoZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS50eXBlID09ICd0b3RhbCcpKS5hbW91bnQpXG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuXG4gICAgfVxuXG4gICAgYWxsRGF0YSA9ICgpID0+ICh7XG4gICAgICAgIC4uLnRoaXMucGF5bWVudFNlcnZpY2UuZ2V0VXNlckRhdGEoKS5zaGlwcGluZ0FkZHJlc3MsXG4gICAgICAgIC4uLnRoaXMucGF5bWVudFNlcnZpY2UuZ2V0U2hpcG1lbnREYXRhKCksXG4gICAgfSk7XG5cbiAgICBzZXRFcnJvciA9IChtZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBtZXNzYWdlO1xuICAgIH1cblxuICAgIGVtaXRSZXN1bHQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2Uuc2V0U3RlcFJlYWR5KHRoaXMubWV0aG9kRGF0YVN1YmplY3QuZ2V0VmFsdWUoKSwgbnVsbCkudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nID0gKGVzdGFkbyA9IHRydWUpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGVzdGFkbyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZlcmlmeVZhbGlkYXRlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldExvYWRpbmcoKVxuICAgICAgICBzZXRUaW1lb3V0KHIgPT4gdGhpcy5lbWl0UmVzdWx0KCksIDEwMDApO1xuICAgIH1cblxuICAgIHNldE1ldGhvZCA9IGFzeW5jIChtZXRob2QpID0+IHtcbiAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5wYXltZW50U2VydmljZS5wdXRQYXltZW50KG1ldGhvZC5jb2RlKTtcbiAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG1ldGhvZCk7XG4gICAgICAgIC8vIHRoaXMuaXNNUChtZXRob2QuY29kZSkgJiYgdGhpcy5nZXRQcmVmZXJlbmNlKCk7XG4gICAgfVxuXG4gICAgc2V0QWN0aXZlKGUpIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcbiAgICAgICAgZm9yIChjb25zdCBidXR0b24gb2YgcGFyZW50KSB7XG4gICAgICAgICAgICBpZiAoYnV0dG9uLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpIHtcbiAgICAgICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpXG4gICAgfVxuXG4gICAgc3VibWl0Rm9ybSA9IChldmVudCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkVWRU5UXCIsIGV2ZW50KTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ1NFIFJPTU9QSU8gRUwgUFJFVkVOVCBERUZBVUxUJylcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgZ2V0UEsgPSAobWV0aG9kKSA9PiAobWV0aG9kLmNvbmZpZy5wdWJsaWNfa2V5IHx8IG1ldGhvZC5wdWJsaWNfa2V5KTtcblxuICAgIGlzUmVkaXJlY3RSZWRzeXMgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncmVkc3lzX3JlZGlyZWN0Jyk7XG5cbiAgICBpc1JlZGlyZWN0Q2VjYUJhbmsgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnY2VjYV9iYW5rX3JlZGlyZWN0Jyk7XG5cbiAgICBpc01QID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ21lcmNhZG9fcGFnbycpICYmICFjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NyZWRpdCcpIDtcbiAgICBcbiAgICBpc01QVGFyamV0YURlQ3JlZGl0byA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjcmVkaXQnKTtcblxuICAgIGlzTWV0aG9kT2ZmbGluZSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdvZmZsaW5lJyk7XG5cbiAgICBpc1BleVBhbEV4cHJlc3MgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGF5cGFsJykgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdleHByZXNzJyk7XG5cbiAgICBpc01vYmJleCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdtb2JiZXgnKTtcblxuICAgIGlzQmFuY2FyZCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5jYXJkJyk7XG5cbiAgICBpc0RlY2lkaXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnZGVjaWRpcicpO1xuXG4gICAgaXNDdWxxaSA9IChjb2RlOnN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2N1bHFpJyk7XG5cbiAgICBpc0JhbmtUcmFuc2ZlciA9IChjb2RlOnN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbmtfdHJhbnNmZXInKVxuICAgIFxuICAgIGlzQ2F0YXN0cm8gPSAoY29kZTpzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjYXRhc3RybycpXG5cbiAgICBpc0JhbWJvbyA9IChjb2RlOnN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbWJvbycpXG5cbiAgICBnZXRQS0N1bHFpID0gbWV0aG9kID0+IHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdlYXN5Y29tbWVyY2V0ZWNoJylcbiAgICAgICAgICAgID8gbWV0aG9kLmNvbmZpZy5wdWJsaWNfdGVzdGluZ19rZXlcbiAgICAgICAgICAgIDogbWV0aG9kLmNvbmZpZy5wdWJsaWNfcHJvZHVjdGlvbl9rZXlcbiAgICB9XG59Il19
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2NoZWNrb3V0LWVjL3BheW1lbnQtZWMvcGF5bWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLGVBQWUsRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUzVEO0lBQXdDLHNDQUFlO0lBbUJuRCw0QkFBc0IsUUFBbUIsRUFBWSxNQUFvQixFQUM5RCxjQUE4QixFQUFTLGVBQWdDO1FBRGxGLFlBRUksaUJBQU8sU0FFVjtRQUpxQixjQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVksWUFBTSxHQUFOLE1BQU0sQ0FBYztRQUM5RCxvQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQnhFLHVCQUFpQixHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3JELG9CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFJdEQsc0JB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QW9FLENBQUMsQ0FBQTtRQUM3SSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFFbkIsQ0FBQztJQWtDRCxzQ0FBUyxHQUFULFVBQVUsQ0FBQzs7UUFDUCxJQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7O1lBQy9DLEtBQXFCLElBQUEsV0FBQSxTQUFBLE1BQU0sQ0FBQSw4QkFBQSxrREFBRTtnQkFBeEIsSUFBTSxNQUFNLG1CQUFBO2dCQUNiLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2lCQUNwQzthQUNKOzs7Ozs7Ozs7UUFDRCxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEMsQ0FBQzs7Z0JBdkQrQixTQUFTO2dCQUFvQixZQUFZO2dCQUM5QyxjQUFjO2dCQUEwQixlQUFlOztJQWxCekU7UUFBUixLQUFLLEVBQUU7dURBQVM7SUFDVztRQUEzQixTQUFTLENBQUMsZUFBZSxDQUFDO2tFQUEwQztJQUg1RCxrQkFBa0I7UUFQOUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQiwrL2NBQXdDO1lBRXhDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQzs7U0FFOUIsQ0FBQztPQUNXLGtCQUFrQixDQTBIOUI7SUFBRCx5QkFBQztDQUFBLEFBMUhELENBQXdDLGVBQWUsR0EwSHREO1NBMUhZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENoZWNrb3V0RGF0YSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvY2hlY2tvdXQtZGF0YSc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGVja291dC9jaGVja291dC5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hlY2tvdXQvcGF5bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1wYXltZW50LWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BheW1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydwYXltZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUGF5bWVudFNlcnZpY2VdXG5cbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudEVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gICAgQElucHV0KCkgc3RlcF9pZDtcbiAgICBAVmlld0NoaWxkKCdmb3JtQ29udGFpbmVyJykgcHJvdGVjdGVkIG1lcmNhZG9wYWdvX2J1dHRvbjogRWxlbWVudFJlZjtcbiAgICBwcm90ZWN0ZWQgbWV0aG9kRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByb3RlY3RlZCBwcmVmZXJlbmNlO1xuXG5cbiAgICBwdWJsaWMgbG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgIHB1YmxpYyBvcmRlcl9pZDtcbiAgICBwdWJsaWMgZXJyb3I7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICAgIHB1YmxpYyBsb2FkaW5nX2ludGVybmFsX21wID0gZmFsc2U7XG4gICAgcHVibGljIG1ldGhvZF9kYXRhJCA9IHRoaXMubWV0aG9kRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGxvYWRpbmckID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgdG90YWxfYW1vdW50O1xuXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJvdGVjdGVkIHRvYXN0cjogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcGF5bWVudFNlcnZpY2U6IFBheW1lbnRTZXJ2aWNlLCBwdWJsaWMgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLnN0ZXBfaWQpO1xuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5hc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoKGRhdGE6IENoZWNrb3V0RGF0YVtdKSA9PiB0aGlzLnRvdGFsX2Ftb3VudCA9IChkYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnR5cGUgPT0gJ3RvdGFsJykpLmFtb3VudClcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG5cbiAgICB9XG5cbiAgICBhbGxEYXRhID0gKCkgPT4gKHtcbiAgICAgICAgLi4udGhpcy5wYXltZW50U2VydmljZS5nZXRVc2VyRGF0YSgpLnNoaXBwaW5nQWRkcmVzcyxcbiAgICAgICAgLi4udGhpcy5wYXltZW50U2VydmljZS5nZXRTaGlwbWVudERhdGEoKSxcbiAgICB9KTtcblxuICAgIHNldEVycm9yID0gKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvciA9IG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgZW1pdFJlc3VsdCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZS5zZXRTdGVwUmVhZHkodGhpcy5tZXRob2REYXRhU3ViamVjdC5nZXRWYWx1ZSgpLCBudWxsKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldExvYWRpbmcoZmFsc2UpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldExvYWRpbmcgPSAoZXN0YWRvID0gdHJ1ZSkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZXN0YWRvKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmVyaWZ5VmFsaWRhdGUgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0TG9hZGluZygpXG4gICAgICAgIHNldFRpbWVvdXQociA9PiB0aGlzLmVtaXRSZXN1bHQoKSwgMTAwMCk7XG4gICAgfVxuXG4gICAgc2V0TWV0aG9kID0gYXN5bmMgKG1ldGhvZCkgPT4ge1xuICAgICAgICB0aGlzLm1ldGhvZERhdGFTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLnBheW1lbnRTZXJ2aWNlLnB1dFBheW1lbnQobWV0aG9kLmNvZGUpO1xuICAgICAgICB0aGlzLm1ldGhvZERhdGFTdWJqZWN0Lm5leHQobWV0aG9kKTtcbiAgICAgICAgLy8gdGhpcy5pc01QKG1ldGhvZC5jb2RlKSAmJiB0aGlzLmdldFByZWZlcmVuY2UoKTtcbiAgICB9XG5cbiAgICBzZXRBY3RpdmUoZSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcbiAgICB9XG5cbiAgICBzdWJtaXRGb3JtID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiRVZFTlRcIiwgZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnU0UgUk9NT1BJTyBFTCBQUkVWRU5UIERFRkFVTFQnKVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBnZXRQSyA9IChtZXRob2QpID0+IChtZXRob2QuY29uZmlnLnB1YmxpY19rZXkgfHwgbWV0aG9kLnB1YmxpY19rZXkpO1xuXG4gICAgaXNSZWRpcmVjdFJlZHN5cyA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdyZWRzeXNfcmVkaXJlY3QnKTtcblxuICAgIGlzUmVkaXJlY3RDZWNhQmFuayA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjZWNhX2JhbmtfcmVkaXJlY3QnKTtcblxuICAgIGlzTVAgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnbWVyY2Fkb19wYWdvJykgJiYgIWNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnY3JlZGl0Jyk7XG5cbiAgICBpc01QVGFyamV0YURlQ3JlZGl0byA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjcmVkaXQnKTtcblxuICAgIGlzTWV0aG9kT2ZmbGluZSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdvZmZsaW5lJyk7XG5cbiAgICBpc1BleVBhbEV4cHJlc3MgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGF5cGFsJykgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdleHByZXNzJyk7XG5cbiAgICBpc01vYmJleCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdtb2JiZXgnKTtcblxuICAgIGlzQmFuY2FyZCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5jYXJkJyk7XG5cbiAgICBpc0RlY2lkaXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnZGVjaWRpcicpO1xuXG4gICAgaXNDdWxxaSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjdWxxaScpO1xuXG4gICAgaXNCYW5rVHJhbnNmZXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnYmFua190cmFuc2ZlcicpXG5cbiAgICBpc0NhdGFzdHJvID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NhdGFzdHJvJylcblxuICAgIGlzQmFtYm9vID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbWJvbycpXG5cbiAgICBpc1BsYWNlVG9QYXkgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGxhY2VfdG9fcGF5JylcblxuICAgIGdldFBLQ3VscWkgPSBtZXRob2QgPT4ge1xuICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2Vhc3ljb21tZXJjZXRlY2gnKVxuICAgICAgICAgICAgPyBtZXRob2QuY29uZmlnLnB1YmxpY190ZXN0aW5nX2tleVxuICAgICAgICAgICAgOiBtZXRob2QuY29uZmlnLnB1YmxpY19wcm9kdWN0aW9uX2tleVxuICAgIH1cbn0iXX0=
|