@xsolla/payment-client-core 0.2.11 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/core/extended-window.interface.mjs +1 -1
- package/esm2020/lib/core/payment/field-names.enum.mjs +4 -1
- package/esm2020/lib/core/payment/form/control-status.interface.mjs +2 -0
- package/esm2020/lib/core/payment/initialize/initialize.service.mjs +17 -7
- package/esm2020/lib/core/payment/payment.interface.mjs +1 -1
- package/esm2020/lib/core/payment/payment.service.mjs +12 -1
- package/esm2020/lib/core/payment/status/listen-status/listen-status.service.mjs +16 -4
- package/esm2020/lib/core/payment/submit/submit.service.mjs +21 -4
- package/esm2020/lib/core/payment/sync/sync.service.mjs +14 -4
- package/esm2020/lib/core/payment/xps-api/xps-api.service.mjs +7 -5
- package/esm2020/lib/core/performance/performance.service.mjs +111 -0
- package/esm2020/lib/core/performance/xhr-action.interface.mjs +2 -0
- package/esm2020/lib/core/performance/xhr-action.service.mjs +114 -0
- package/esm2020/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +10 -10
- package/esm2020/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +3 -3
- package/esm2020/lib/core/sdk-payment-systems/sdk-payment-systems.interface.mjs +1 -1
- package/esm2020/lib/core/settings/configuration.interface.mjs +1 -1
- package/esm2020/lib/core/settings/settings.service.mjs +4 -6
- package/esm2020/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +144 -0
- package/esm2020/lib/core/user-behaviour-analytics/event-builder/event-parameter-types.mjs +9 -0
- package/esm2020/lib/core/user-behaviour-analytics/event-builder/invoice.interface.mjs +2 -0
- package/esm2020/lib/core/user-behaviour-analytics/event-builder/purchase.type.mjs +2 -0
- package/esm2020/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.mjs +2 -0
- package/esm2020/lib/core/user-behaviour-analytics/one-time-analytics-events.const.mjs +5 -0
- package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.mjs +2 -0
- package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +158 -0
- package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories.mjs +5 -0
- package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types.mjs +8 -0
- package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-event-name.enum.mjs +8 -0
- package/esm2020/lib/core/user-behaviour-analytics/user-session-options.mjs +2 -0
- package/esm2020/lib/core-library.service.mjs +14 -21
- package/esm2020/public-api.mjs +6 -1
- package/fesm2015/xsolla-payment-client-core.mjs +6789 -6204
- package/fesm2015/xsolla-payment-client-core.mjs.map +1 -1
- package/fesm2020/xsolla-payment-client-core.mjs +6222 -5649
- package/fesm2020/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/extended-window.interface.d.ts +1 -0
- package/lib/core/payment/field-names.enum.d.ts +3 -0
- package/lib/core/payment/form/control-status.interface.d.ts +7 -0
- package/lib/core/payment/initialize/initialize.service.d.ts +3 -1
- package/lib/core/payment/payment.interface.d.ts +3 -0
- package/lib/core/payment/payment.service.d.ts +3 -0
- package/lib/core/payment/status/listen-status/listen-status.service.d.ts +3 -1
- package/lib/core/payment/submit/submit.service.d.ts +4 -1
- package/lib/core/payment/sync/sync.service.d.ts +3 -1
- package/lib/core/payment/xps-api/xps-api.service.d.ts +3 -1
- package/lib/core/performance/performance.service.d.ts +24 -0
- package/lib/core/performance/xhr-action.interface.d.ts +8 -0
- package/lib/core/performance/xhr-action.service.d.ts +25 -0
- package/lib/core/sdk-payment-systems/google-pay/google-pay.service.d.ts +2 -2
- package/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.d.ts +1 -1
- package/lib/core/sdk-payment-systems/sdk-payment-systems.interface.d.ts +0 -16
- package/lib/core/settings/configuration.interface.d.ts +0 -1
- package/lib/core/settings/settings.service.d.ts +1 -2
- package/lib/core/user-behaviour-analytics/event-builder/event-builder.service.d.ts +22 -0
- package/lib/core/user-behaviour-analytics/event-builder/event-parameter-types.d.ts +7 -0
- package/lib/core/user-behaviour-analytics/event-builder/invoice.interface.d.ts +14 -0
- package/lib/core/user-behaviour-analytics/event-builder/purchase.type.d.ts +1 -0
- package/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.d.ts +52 -0
- package/lib/core/user-behaviour-analytics/one-time-analytics-events.const.d.ts +1 -0
- package/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.d.ts +36 -0
- package/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.d.ts +43 -0
- package/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories.d.ts +4 -0
- package/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types.d.ts +7 -0
- package/lib/core/user-behaviour-analytics/user-behaviour-event-name.enum.d.ts +6 -0
- package/lib/core/user-behaviour-analytics/user-session-options.d.ts +15 -0
- package/lib/core-library.service.d.ts +8 -5
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
- package/xsolla-payment-client-core-0.2.12.tgz +0 -0
- package/xsolla-payment-client-core-0.2.11.tgz +0 -0
|
@@ -4,6 +4,8 @@ import { Subject } from 'rxjs';
|
|
|
4
4
|
import { EmitDataService } from '../emit-data.service.abstract';
|
|
5
5
|
import { syncRequestFactoryToken, } from './request/sync-request.token';
|
|
6
6
|
import { syncResponseFactoryToken, } from './response/sync-response.token';
|
|
7
|
+
import { UserBehaviourEventName } from '../../user-behaviour-analytics/user-behaviour-event-name.enum';
|
|
8
|
+
import { userBehaviourEventTypes } from '../../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
import * as i1 from "../xps-api/xps-api.service";
|
|
9
11
|
import * as i2 from "../actions/next-action.service";
|
|
@@ -11,8 +13,9 @@ import * as i3 from "../../settings/settings.service";
|
|
|
11
13
|
import * as i4 from "../../errors-mapping/xps-response-errors-mapping.service";
|
|
12
14
|
import * as i5 from "../../encrypt-credit-card/encrypt-credit-card.service";
|
|
13
15
|
import * as i6 from "../actions/show-errors/show-errors.action.class";
|
|
16
|
+
import * as i7 from "../../user-behaviour-analytics/user-behaviour-analytics.service";
|
|
14
17
|
export class SyncService extends EmitDataService {
|
|
15
|
-
constructor(requestFactory, responseFactory, xpsApiService, nextActionService, settingsService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator) {
|
|
18
|
+
constructor(requestFactory, responseFactory, xpsApiService, nextActionService, settingsService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, userBehaviourAnalyticsService) {
|
|
16
19
|
super();
|
|
17
20
|
this.requestFactory = requestFactory;
|
|
18
21
|
this.responseFactory = responseFactory;
|
|
@@ -22,6 +25,7 @@ export class SyncService extends EmitDataService {
|
|
|
22
25
|
this.xpsResponseErrorsMappingService = xpsResponseErrorsMappingService;
|
|
23
26
|
this.encryptCreditCardService = encryptCreditCardService;
|
|
24
27
|
this.showErrorsActionCreator = showErrorsActionCreator;
|
|
28
|
+
this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
|
|
25
29
|
this.prevFieldSyncStates = {};
|
|
26
30
|
this.form = new UntypedFormGroup({});
|
|
27
31
|
this.fields = [];
|
|
@@ -117,6 +121,12 @@ export class SyncService extends EmitDataService {
|
|
|
117
121
|
this.prevFieldSyncStates[field.name] = { value, result };
|
|
118
122
|
}
|
|
119
123
|
emitFormErrors(response) {
|
|
124
|
+
if (response.errors) {
|
|
125
|
+
const logError = (error) => {
|
|
126
|
+
this.userBehaviourAnalyticsService.send(UserBehaviourEventName.showErrorMessage, userBehaviourEventTypes.manual, { value: String(error.code), extraValue: error.message });
|
|
127
|
+
};
|
|
128
|
+
response.errors.forEach(logError);
|
|
129
|
+
}
|
|
120
130
|
const formErrors = response.errors?.filter((error) => !error.element_name);
|
|
121
131
|
if (formErrors?.length) {
|
|
122
132
|
this.nextActionService.emitFlowUpdates(this.showErrorsActionCreator.getActionData(formErrors));
|
|
@@ -130,7 +140,7 @@ export class SyncService extends EmitDataService {
|
|
|
130
140
|
this.fieldSyncTimers[field.name] = timerId;
|
|
131
141
|
}
|
|
132
142
|
}
|
|
133
|
-
SyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SyncService, deps: [{ token: syncRequestFactoryToken }, { token: syncResponseFactoryToken }, { token: i1.XpsApiService }, { token: i2.NextActionService }, { token: i3.SettingsService }, { token: i4.XpsResponseErrorsMappingService }, { token: i5.EncryptCreditCardService }, { token: i6.ShowErrorsActionCreator }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
143
|
+
SyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SyncService, deps: [{ token: syncRequestFactoryToken }, { token: syncResponseFactoryToken }, { token: i1.XpsApiService }, { token: i2.NextActionService }, { token: i3.SettingsService }, { token: i4.XpsResponseErrorsMappingService }, { token: i5.EncryptCreditCardService }, { token: i6.ShowErrorsActionCreator }, { token: i7.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
134
144
|
SyncService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SyncService, providedIn: 'root' });
|
|
135
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SyncService, decorators: [{
|
|
136
146
|
type: Injectable,
|
|
@@ -143,5 +153,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
143
153
|
}] }, { type: undefined, decorators: [{
|
|
144
154
|
type: Inject,
|
|
145
155
|
args: [syncResponseFactoryToken]
|
|
146
|
-
}] }, { type: i1.XpsApiService }, { type: i2.NextActionService }, { type: i3.SettingsService }, { type: i4.XpsResponseErrorsMappingService }, { type: i5.EncryptCreditCardService }, { type: i6.ShowErrorsActionCreator }]; } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUsT0FBTyxFQUVMLHVCQUF1QixHQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7QUFZeEMsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUE0QjtJQU8zRCxZQUVtQixjQUFrQyxFQUVsQyxlQUFvQyxFQUNwQyxhQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsZUFBZ0MsRUFDaEMsK0JBQWdFLEVBQ2hFLHdCQUFrRCxFQUNsRCx1QkFBZ0Q7UUFFakUsS0FBSyxFQUFFLENBQUM7UUFWUyxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFFbEMsb0JBQWUsR0FBZixlQUFlLENBQXFCO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFDaEUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBaEIzRCx3QkFBbUIsR0FBNEMsRUFBRSxDQUFDO1FBQ2xFLFNBQUks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RSxPQUFlO1FBQ3ZELE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELElBQUksV0FBVyxFQUFFO1lBQ2YsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQzdDLENBQUM7O3dHQTNLVSxXQUFXLGtCQVFaLHVCQUF1QixhQUV2Qix3QkFBd0I7NEdBVnZCLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBRTlCLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBFbWl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9lbWl0LWRhdGEuc2VydmljZS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGRTeW5jU3RhdGUgfSBmcm9tICcuL2ZpZWxkLXN5bmMtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIFN5bmNSZXF1ZXN0RmFjdG9yeSxcbiAgc3luY1JlcXVlc3RGYWN0b3J5VG9rZW4sXG59IGZyb20gJy4vcmVxdWVzdC9zeW5jLXJlcXVlc3QudG9rZW4nO1xuaW1wb3J0IHsgU3luY1Jlc3BvbnNlIH0gZnJvbSAnLi9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7XG4gIFN5bmNSZXNwb25zZUZhY3RvcnksXG4gIHN5bmNSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IE5leHRBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNob3dFcnJvcnNBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi4vYWN0aW9ucy9zaG93LWVycm9ycy9zaG93LWVycm9ycy5hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgWHBzQXBpU2VydmljZSB9IGZyb20gJy4uL3hwcy1hcGkveHBzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkQXN5bmNWYWxpZGF0aW9uIH0gZnJvbSAnLi9maWVsZC1hc3luYy12YWxpZGF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmNyeXB0LWNyZWRpdC1jYXJkL2VuY3J5cHQtY3JlZGl0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBTeW5jUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdC9zeW5jLXJlcXVlc3QuY2xhc3MnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL2Vycm9ycy1tYXBwaW5nL3hwcy1yZXNwb25zZS1lcnJvcnMtbWFwcGluZy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFN5bmNTZXJ2aWNlIGV4dGVuZHMgRW1pdERhdGFTZXJ2aWNlPFhwc1Jlc3BvbnNlPiB7XG4gIHByaXZhdGUgcHJldkZpZWxkU3luY1N0YXRlczogeyBbZmllbGROYW1lOiBzdHJpbmddOiBGaWVsZFN5bmNTdGF0ZSB9ID0ge307XG4gIHByaXZhdGUgZm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgcHJpdmF0ZSBmaWVsZHM6IEZpZWxkW10gPSBbXTtcbiAgcHJpdmF0ZSBmaWVsZFN5bmNUaW1lcnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZEFzeW5jVmFsaWRhdGlvbiA9IG5ldyBTdWJqZWN0PEZpZWxkQXN5bmNWYWxpZGF0aW9uPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHN5bmNSZXF1ZXN0RmFjdG9yeVRva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdEZhY3Rvcnk6IFN5bmNSZXF1ZXN0RmFjdG9yeSxcbiAgICBASW5qZWN0KHN5bmNSZXNwb25zZUZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlRmFjdG9yeTogU3luY1Jlc3BvbnNlRmFjdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc0FwaVNlcnZpY2U6IFhwc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2U6IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2U6IEVuY3J5cHRDcmVkaXRDYXJkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNob3dFcnJvcnNBY3Rpb25DcmVhdG9yOiBTaG93RXJyb3JzQWN0aW9uQ3JlYXRvclxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWVsZEFzeW5jVmFsaWRhdGlvbiQoKTogT2JzZXJ2YWJsZTxGaWVsZEFzeW5jVmFsaWRhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkQXN5bmNWYWxpZGF0aW9uLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldHVwKGZvcm06IFVudHlwZWRGb3JtR3JvdXAsIGZpZWxkczogRmllbGRbXSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXQoKTtcblxuICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgdGhpcy5maWVsZHMgPSBmaWVsZHM7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzID0ge307XG4gICAgdGhpcy5mb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgIHRoaXMuZmllbGRzID0gW107XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoXG4gICAgZmllbGQ6IEZpZWxkLFxuICAgIGRlbGF5ID0gTnVtYmVyKCc3NTAnKVxuICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XG4gICAgaWYgKCF0aGlzLmlzUmVhZHlGaWVsZChmaWVsZCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sPy52YWx1ZTtcbiAgICBjb25zdCBwcmV2RmllbGRTdGF0ZSA9IHRoaXMuZ2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkKTtcblxuICAgIGNvbnN0IGlzSW5pdGlhbFZhbHVlID0gdmFsdWUgPT09IGZpZWxkLnZhbHVlICYmICFwcmV2RmllbGRTdGF0ZTtcblxuICAgIGlmIChpc0luaXRpYWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICB9XG5cbiAgICBpZiAocHJldkZpZWxkU3RhdGUgJiYgdmFsdWUgPT09IHByZXZGaWVsZFN0YXRlLnZhbHVlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByZXZGaWVsZFN0YXRlLnJlc3VsdCkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlPy5lcnJvciA/PyBudWxsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlRmllbGRTdGF0ZSA9IGFzeW5jICgpOiBQcm9taXNlPFxuICAgICAgc3RyaW5nIHwgVmFsaWRhdGlvbkVycm9ycyB8IG51bGxcbiAgICA+ID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RQcm9taXNlID0gdGhpcy5yZXF1ZXN0KGZpZWxkKTtcblxuICAgICAgdGhpcy5zZXRQcmV2RmllbGRTeW5jU3RhdGUoZmllbGQsIHZhbHVlLCByZXF1ZXN0UHJvbWlzZSk7XG5cbiAgICAgIHJldHVybiByZXF1ZXN0UHJvbWlzZS50aGVuKChyZXNwb25zZTogU3luY1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZmllbGRBc3luY1ZhbGlkYXRpb24ubmV4dCh7XG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXNwb25zZS5lcnJvciA/PyBudWxsO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKGRlbGF5KSB7XG4gICAgICAgIGNvbnN0IHRpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IGNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2b2lkIHVwZGF0ZUZpZWxkU3RhdGUoKS50aGVuKFxuICAgICAgICAgICAgKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgfCBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIHJlc29sdmUoZXJyb3JzIGFzIFZhbGlkYXRpb25FcnJvcnMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSwgZGVsYXkpO1xuXG4gICAgICAgIHRoaXMucmVzZXRGaWVsZFN5bmNUaW1lcihmaWVsZCwgTnVtYmVyKHRpbWVySWQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZvaWQgdXBkYXRlRmllbGRTdGF0ZSgpLnRoZW4oXG4gICAgICAgICAgKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgfCBzdHJpbmcpID0+XG4gICAgICAgICAgICByZXNvbHZlKGVycm9ycyBhcyBWYWxpZGF0aW9uRXJyb3JzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFN5bmNWYWxpZGF0aW9uRXJyb3JzKGZpZWxkOiBGaWVsZCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChmaWVsZC5uYW1lKTtcbiAgICByZXR1cm4gY29udHJvbD8uZXJyb3JzID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVxdWVzdChmaWVsZDogRmllbGQpOiBQcm9taXNlPFN5bmNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLnJlcXVlc3RGYWN0b3J5KHtcbiAgICAgIHRva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICAgIGNoYW5nZWRGaWVsZDogZmllbGQsXG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLFxuICAgICAgZm9ybTogdGhpcy5mb3JtLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZW5jcnlwdGVkUmVxdWVzdCA9XG4gICAgICB0aGlzLmVuY3J5cHRDcmVkaXRDYXJkU2VydmljZS5lbmNyeXB0Q3JlZGl0Q2FyZDxTeW5jUmVxdWVzdD4oXG4gICAgICAgIHJlcXVlc3RQYXJhbXNcbiAgICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy54cHNBcGlTZXJ2aWNlXG4gICAgICAuZGlyZWN0UGF5bWVudFJlcXVlc3QoZW5jcnlwdGVkUmVxdWVzdClcbiAgICAgIC50aGVuKCh4cHNSZXNwb25zZTogWHBzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMueHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZS5tYXBFcnJvcnMoeHBzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuZW1pdEZvcm1FcnJvcnMocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZUZhY3RvcnkoZmllbGQsIHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1JlYWR5RmllbGQoZmllbGQ6IEZpZWxkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNTeW5jRW5hYmxlZCA9ICEhZmllbGQuamF2YXNjcmlwdD8uY2hhbmdlO1xuICAgIGNvbnN0IGlzRXhpc3RzSW5Gb3JtID0gISF0aGlzLmZvcm0/LmdldChmaWVsZC5uYW1lKTtcblxuICAgIHJldHVybiBpc1N5bmNFbmFibGVkICYmIGlzRXhpc3RzSW5Gb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcmV2RmllbGRTeW5jU3RhdGUoZmllbGQ6IEZpZWxkKTogRmllbGRTeW5jU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnByZXZGaWVsZFN5bmNTdGF0ZXNbZmllbGQubmFtZV07XG4gIH1cblxuICBwcml2YXRlIHNldFByZXZGaWVsZFN5bmNTdGF0ZShcbiAgICBmaWVsZDogRmllbGQsXG4gICAgdmFsdWU6IHVua25vd24sXG4gICAgcmVzdWx0OiBQcm9taXNlPFN5bmNSZXNwb25zZT5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzW2ZpZWxkLm5hbWVdID0geyB2YWx1ZSwgcmVzdWx0IH07XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtRXJyb3JzKHJlc3BvbnNlOiBYcHNSZXNwb25zZSk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1FcnJvcnMgPSByZXNwb25zZS5lcnJvcnM/LmZpbHRlcigoZXJyb3IpID0+ICFlcnJvci5lbGVtZW50X25hbWUpO1xuXG4gICAgaWYgKGZvcm1FcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICAgIHRoaXMuc2hvd0Vycm9yc0FjdGlvbkNyZWF0b3IuZ2V0QWN0aW9uRGF0YShmb3JtRXJyb3JzKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RmllbGRTeW5jVGltZXIoZmllbGQ6IEZpZWxkLCB0aW1lcklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwcmV2VGltZXJJZDogbnVtYmVyID0gdGhpcy5maWVsZFN5bmNUaW1lcnNbZmllbGQubmFtZV07XG5cbiAgICBpZiAocHJldlRpbWVySWQpIHtcbiAgICAgIGNsZWFyVGltZW91dChwcmV2VGltZXJJZCk7XG4gICAgfVxuXG4gICAgdGhpcy5maWVsZFN5bmNUaW1lcnNbZmllbGQubmFtZV0gPSB0aW1lcklkO1xuICB9XG59XG4iXX0=
|
|
156
|
+
}] }, { type: i1.XpsApiService }, { type: i2.NextActionService }, { type: i3.SettingsService }, { type: i4.XpsResponseErrorsMappingService }, { type: i5.EncryptCreditCardService }, { type: i6.ShowErrorsActionCreator }, { type: i7.UserBehaviourAnalyticsService }]; } });
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUsT0FBTyxFQUVMLHVCQUF1QixHQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSxnQ0FBZ0MsQ0FBQztBQVN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7O0FBS3pILE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBNEI7SUFPM0QsWUFFbUIsY0FBa0MsRUFFbEMsZUFBb0MsRUFDcEMsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLCtCQUFnRSxFQUNoRSx3QkFBa0QsRUFDbEQsdUJBQWdELEVBQ2hELDZCQUE0RDtRQUU3RSxLQUFLLEVBQUUsQ0FBQztRQVhTLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQUVsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztR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RUFDdkMsdUJBQXVCLENBQUMsTUFBTSxFQUM5QixFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3pELENBQUM7WUFDSixDQUFDLENBQUM7WUFFRixRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuQztRQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUzRSxJQUFJLFVBQVUsRUFBRSxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDcEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FDdkQsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQVksRUFBRSxPQUFlO1FBQ3ZELE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELElBQUksV0FBVyxFQUFFO1lBQ2YsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQzdDLENBQUM7O3dHQXhMVSxXQUFXLGtCQVFaLHVCQUF1QixhQUV2Qix3QkFBd0I7NEdBVnZCLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBRTlCLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBFbWl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9lbWl0LWRhdGEuc2VydmljZS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGRTeW5jU3RhdGUgfSBmcm9tICcuL2ZpZWxkLXN5bmMtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIFN5bmNSZXF1ZXN0RmFjdG9yeSxcbiAgc3luY1JlcXVlc3RGYWN0b3J5VG9rZW4sXG59IGZyb20gJy4vcmVxdWVzdC9zeW5jLXJlcXVlc3QudG9rZW4nO1xuaW1wb3J0IHsgU3luY1Jlc3BvbnNlIH0gZnJvbSAnLi9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7XG4gIFN5bmNSZXNwb25zZUZhY3RvcnksXG4gIHN5bmNSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IE5leHRBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNob3dFcnJvcnNBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi4vYWN0aW9ucy9zaG93LWVycm9ycy9zaG93LWVycm9ycy5hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgWHBzQXBpU2VydmljZSB9IGZyb20gJy4uL3hwcy1hcGkveHBzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkQXN5bmNWYWxpZGF0aW9uIH0gZnJvbSAnLi9maWVsZC1hc3luYy12YWxpZGF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmNyeXB0LWNyZWRpdC1jYXJkL2VuY3J5cHQtY3JlZGl0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBTeW5jUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdC9zeW5jLXJlcXVlc3QuY2xhc3MnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL2Vycm9ycy1tYXBwaW5nL3hwcy1yZXNwb25zZS1lcnJvcnMtbWFwcGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFN5bmNTZXJ2aWNlIGV4dGVuZHMgRW1pdERhdGFTZXJ2aWNlPFhwc1Jlc3BvbnNlPiB7XG4gIHByaXZhdGUgcHJldkZpZWxkU3luY1N0YXRlczogeyBbZmllbGROYW1lOiBzdHJpbmddOiBGaWVsZFN5bmNTdGF0ZSB9ID0ge307XG4gIHByaXZhdGUgZm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgcHJpdmF0ZSBmaWVsZHM6IEZpZWxkW10gPSBbXTtcbiAgcHJpdmF0ZSBmaWVsZFN5bmNUaW1lcnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZEFzeW5jVmFsaWRhdGlvbiA9IG5ldyBTdWJqZWN0PEZpZWxkQXN5bmNWYWxpZGF0aW9uPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHN5bmNSZXF1ZXN0RmFjdG9yeVRva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdEZhY3Rvcnk6IFN5bmNSZXF1ZXN0RmFjdG9yeSxcbiAgICBASW5qZWN0KHN5bmNSZXNwb25zZUZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlRmFjdG9yeTogU3luY1Jlc3BvbnNlRmFjdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc0FwaVNlcnZpY2U6IFhwc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2U6IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2U6IEVuY3J5cHRDcmVkaXRDYXJkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNob3dFcnJvcnNBY3Rpb25DcmVhdG9yOiBTaG93RXJyb3JzQWN0aW9uQ3JlYXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWVsZEFzeW5jVmFsaWRhdGlvbiQoKTogT2JzZXJ2YWJsZTxGaWVsZEFzeW5jVmFsaWRhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkQXN5bmNWYWxpZGF0aW9uLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldHVwKGZvcm06IFVudHlwZWRGb3JtR3JvdXAsIGZpZWxkczogRmllbGRbXSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXQoKTtcblxuICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgdGhpcy5maWVsZHMgPSBmaWVsZHM7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzID0ge307XG4gICAgdGhpcy5mb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgIHRoaXMuZmllbGRzID0gW107XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoXG4gICAgZmllbGQ6IEZpZWxkLFxuICAgIGRlbGF5ID0gTnVtYmVyKCc3NTAnKVxuICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XG4gICAgaWYgKCF0aGlzLmlzUmVhZHlGaWVsZChmaWVsZCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sPy52YWx1ZTtcbiAgICBjb25zdCBwcmV2RmllbGRTdGF0ZSA9IHRoaXMuZ2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkKTtcblxuICAgIGNvbnN0IGlzSW5pdGlhbFZhbHVlID0gdmFsdWUgPT09IGZpZWxkLnZhbHVlICYmICFwcmV2RmllbGRTdGF0ZTtcblxuICAgIGlmIChpc0luaXRpYWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICB9XG5cbiAgICBpZiAocHJldkZpZWxkU3RhdGUgJiYgdmFsdWUgPT09IHByZXZGaWVsZFN0YXRlLnZhbHVlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByZXZGaWVsZFN0YXRlLnJlc3VsdCkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlPy5lcnJvciA/PyBudWxsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlRmllbGRTdGF0ZSA9IGFzeW5jICgpOiBQcm9taXNlPFxuICAgICAgc3RyaW5nIHwgVmFsaWRhdGlvbkVycm9ycyB8IG51bGxcbiAgICA+ID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RQcm9taXNlID0gdGhpcy5yZXF1ZXN0KGZpZWxkKTtcblxuICAgICAgdGhpcy5zZXRQcmV2RmllbGRTeW5jU3RhdGUoZmllbGQsIHZhbHVlLCByZXF1ZXN0UHJvbWlzZSk7XG5cbiAgICAgIHJldHVybiByZXF1ZXN0UHJvbWlzZS50aGVuKChyZXNwb25zZTogU3luY1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZmllbGRBc3luY1ZhbGlkYXRpb24ubmV4dCh7XG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXNwb25zZS5lcnJvciA/PyBudWxsO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKGRlbGF5KSB7XG4gICAgICAgIGNvbnN0IHRpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IGNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2b2lkIHVwZGF0ZUZpZWxkU3RhdGUoKS50aGVuKFxuICAgICAgICAgICAgKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgfCBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIHJlc29sdmUoZXJyb3JzIGFzIFZhbGlkYXRpb25FcnJvcnMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSwgZGVsYXkpO1xuXG4gICAgICAgIHRoaXMucmVzZXRGaWVsZFN5bmNUaW1lcihmaWVsZCwgTnVtYmVyKHRpbWVySWQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZvaWQgdXBkYXRlRmllbGRTdGF0ZSgpLnRoZW4oXG4gICAgICAgICAgKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgfCBzdHJpbmcpID0+XG4gICAgICAgICAgICByZXNvbHZlKGVycm9ycyBhcyBWYWxpZGF0aW9uRXJyb3JzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFN5bmNWYWxpZGF0aW9uRXJyb3JzKGZpZWxkOiBGaWVsZCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChmaWVsZC5uYW1lKTtcbiAgICByZXR1cm4gY29udHJvbD8uZXJyb3JzID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVxdWVzdChmaWVsZDogRmllbGQpOiBQcm9taXNlPFN5bmNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLnJlcXVlc3RGYWN0b3J5KHtcbiAgICAgIHRva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICAgIGNoYW5nZWRGaWVsZDogZmllbGQsXG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLFxuICAgICAgZm9ybTogdGhpcy5mb3JtLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZW5jcnlwdGVkUmVxdWVzdCA9XG4gICAgICB0aGlzLmVuY3J5cHRDcmVkaXRDYXJkU2VydmljZS5lbmNyeXB0Q3JlZGl0Q2FyZDxTeW5jUmVxdWVzdD4oXG4gICAgICAgIHJlcXVlc3RQYXJhbXNcbiAgICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy54cHNBcGlTZXJ2aWNlXG4gICAgICAuZGlyZWN0UGF5bWVudFJlcXVlc3QoZW5jcnlwdGVkUmVxdWVzdClcbiAgICAgIC50aGVuKCh4cHNSZXNwb25zZTogWHBzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMueHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZS5tYXBFcnJvcnMoeHBzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuZW1pdEZvcm1FcnJvcnMocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZUZhY3RvcnkoZmllbGQsIHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1JlYWR5RmllbGQoZmllbGQ6IEZpZWxkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNTeW5jRW5hYmxlZCA9ICEhZmllbGQuamF2YXNjcmlwdD8uY2hhbmdlO1xuICAgIGNvbnN0IGlzRXhpc3RzSW5Gb3JtID0gISF0aGlzLmZvcm0/LmdldChmaWVsZC5uYW1lKTtcblxuICAgIHJldHVybiBpc1N5bmNFbmFibGVkICYmIGlzRXhpc3RzSW5Gb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcmV2RmllbGRTeW5jU3RhdGUoZmllbGQ6IEZpZWxkKTogRmllbGRTeW5jU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnByZXZGaWVsZFN5bmNTdGF0ZXNbZmllbGQubmFtZV07XG4gIH1cblxuICBwcml2YXRlIHNldFByZXZGaWVsZFN5bmNTdGF0ZShcbiAgICBmaWVsZDogRmllbGQsXG4gICAgdmFsdWU6IHVua25vd24sXG4gICAgcmVzdWx0OiBQcm9taXNlPFN5bmNSZXNwb25zZT5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzW2ZpZWxkLm5hbWVdID0geyB2YWx1ZSwgcmVzdWx0IH07XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtRXJyb3JzKHJlc3BvbnNlOiBYcHNSZXNwb25zZSk6IHZvaWQge1xuICAgIGlmIChyZXNwb25zZS5lcnJvcnMpIHtcbiAgICAgIGNvbnN0IGxvZ0Vycm9yID0gKGVycm9yOiB7IGNvZGU6IG51bWJlcjsgbWVzc2FnZTogc3RyaW5nIH0pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuc2hvd0Vycm9yTWVzc2FnZSxcbiAgICAgICAgICB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICAgICAgeyB2YWx1ZTogU3RyaW5nKGVycm9yLmNvZGUpLCBleHRyYVZhbHVlOiBlcnJvci5tZXNzYWdlIH1cbiAgICAgICAgKTtcbiAgICAgIH07XG5cbiAgICAgIHJlc3BvbnNlLmVycm9ycy5mb3JFYWNoKGxvZ0Vycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtRXJyb3JzID0gcmVzcG9uc2UuZXJyb3JzPy5maWx0ZXIoKGVycm9yKSA9PiAhZXJyb3IuZWxlbWVudF9uYW1lKTtcblxuICAgIGlmIChmb3JtRXJyb3JzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZW1pdEZsb3dVcGRhdGVzKFxuICAgICAgICB0aGlzLnNob3dFcnJvcnNBY3Rpb25DcmVhdG9yLmdldEFjdGlvbkRhdGEoZm9ybUVycm9ycylcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZpZWxkU3luY1RpbWVyKGZpZWxkOiBGaWVsZCwgdGltZXJJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlRpbWVySWQ6IG51bWJlciA9IHRoaXMuZmllbGRTeW5jVGltZXJzW2ZpZWxkLm5hbWVdO1xuXG4gICAgaWYgKHByZXZUaW1lcklkKSB7XG4gICAgICBjbGVhclRpbWVvdXQocHJldlRpbWVySWQpO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRTeW5jVGltZXJzW2ZpZWxkLm5hbWVdID0gdGltZXJJZDtcbiAgfVxufVxuIl19
|
|
@@ -7,12 +7,14 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "../../http/secure-api/secure-api.service";
|
|
8
8
|
import * as i2 from "../../settings/settings.service";
|
|
9
9
|
import * as i3 from "../../country/country.service";
|
|
10
|
+
import * as i4 from "../../user-agent/user-agent.service";
|
|
10
11
|
export class XpsApiService {
|
|
11
|
-
constructor(window, secureApiClient, settingsService, countryService) {
|
|
12
|
+
constructor(window, secureApiClient, settingsService, countryService, userAgentService) {
|
|
12
13
|
this.window = window;
|
|
13
14
|
this.secureApiClient = secureApiClient;
|
|
14
15
|
this.settingsService = settingsService;
|
|
15
16
|
this.countryService = countryService;
|
|
17
|
+
this.userAgentService = userAgentService;
|
|
16
18
|
this.directPaymentApiRoute = 'directpayment';
|
|
17
19
|
}
|
|
18
20
|
async directPaymentRequest(parameters) {
|
|
@@ -28,7 +30,7 @@ export class XpsApiService {
|
|
|
28
30
|
country: this.countryService.getCountry(),
|
|
29
31
|
...parameters,
|
|
30
32
|
};
|
|
31
|
-
if (this.
|
|
33
|
+
if (this.userAgentService.isMobileDevice) {
|
|
32
34
|
requestParams.mobile = "1" /* XpsBoolean.true */;
|
|
33
35
|
}
|
|
34
36
|
return lastValueFrom(this.secureApiClient.post(this.directPaymentApiRoute, new URLSearchParams({ ...requestParams }), {
|
|
@@ -68,7 +70,7 @@ export class XpsApiService {
|
|
|
68
70
|
return parameters;
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
|
-
XpsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XpsApiService, deps: [{ token: windowToken }, { token: i1.SecureApiClient }, { token: i2.SettingsService }, { token: i3.CountryService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
73
|
+
XpsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XpsApiService, deps: [{ token: windowToken }, { token: i1.SecureApiClient }, { token: i2.SettingsService }, { token: i3.CountryService }, { token: i4.UserAgentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
74
|
XpsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XpsApiService, providedIn: 'root' });
|
|
73
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XpsApiService, decorators: [{
|
|
74
76
|
type: Injectable,
|
|
@@ -78,5 +80,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
78
80
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
79
81
|
type: Inject,
|
|
80
82
|
args: [windowToken]
|
|
81
|
-
}] }, { type: i1.SecureApiClient }, { type: i2.SettingsService }, { type: i3.CountryService }]; } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
}] }, { type: i1.SecureApiClient }, { type: i2.SettingsService }, { type: i3.CountryService }, { type: i4.UserAgentService }]; } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHBzLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC94cHMtYXBpL3hwcy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7QUFPMUUsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFFbUIsTUFBc0IsRUFDdEIsZUFBZ0MsRUFDaEMsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsZ0JBQWtDO1FBSmxDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFScEMsMEJBQXFCLEdBQUcsZUFBZSxDQUFDO0lBU3RELENBQUM7SUFFRyxLQUFLLENBQUMsb0JBQW9CLENBQy9CLFVBQXNCO1FBRXRCLE1BQU0sR0FBRyxHQUNQLFVBQVUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFO1lBQ3pCLFVBQVUsQ0FBQyxXQUFrQztZQUM5QyxFQUFFLENBQUM7UUFDTCxNQUFNLHNCQUFzQixHQUMxQixVQUFVLENBQUMsc0JBQXNCO1lBQ2hDLFVBQVUsQ0FBQywwQkFBaUQ7WUFDN0QsRUFBRSxDQUFDO1FBRUwsTUFBTSxh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b20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTZWN1cmVBcGlDbGllbnQgfSBmcm9tICcuLi8uLi9odHRwL3NlY3VyZS1hcGkvc2VjdXJlLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc0Jvb2xlYW4gfSBmcm9tICcuLi8uLi94cHMtYm9vbGVhbi5lbnVtJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc1JlcXVlc3QgfSBmcm9tICcuLi94cHMtcmVxdWVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi94cHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi94cHMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IGNhcmRzV2l0aDNkcyB9IGZyb20gJy4uL2NyZWRpdC1jYXJkLXBheW1lbnQtbWV0aG9kcy1pZC52YXJpYWJsZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvdW50cnkvY291bnRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJBZ2VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLWFnZW50L3VzZXItYWdlbnQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBYcHNBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXJlY3RQYXltZW50QXBpUm91dGUgPSAnZGlyZWN0cGF5bWVudCc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VjdXJlQXBpQ2xpZW50OiBTZWN1cmVBcGlDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdW50cnlTZXJ2aWNlOiBDb3VudHJ5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJBZ2VudFNlcnZpY2U6IFVzZXJBZ2VudFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBkaXJlY3RQYXltZW50UmVxdWVzdChcbiAgICBwYXJhbWV0ZXJzOiBYcHNSZXF1ZXN0XG4gICk6IFByb21pc2U8WHBzUmVzcG9uc2U+IHtcbiAgICBjb25zdCBwaWQgPVxuICAgICAgcGFyYW1ldGVycy5waWQ/LnRvU3RyaW5nKCkgPz9cbiAgICAgIChwYXJhbWV0ZXJzLnhwc19maXhfcGlkIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz9cbiAgICAgICcnO1xuICAgIGNvbnN0IHBheW1lbnRXaXRoU2F2ZWRNZXRob2QgPVxuICAgICAgcGFyYW1ldGVycy5wYXltZW50V2l0aFNhdmVkTWV0aG9kID8/XG4gICAgICAocGFyYW1ldGVycy54cHNfcGF5bWVudFdpdGhTYXZlZE1ldGhvZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/XG4gICAgICAnJztcblxuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXM6IFhwc1JlcXVlc3RQYXJhbXMgPSB7XG4gICAgICAuLi50aGlzLmNvbGxlY3RBbmFseXRpY3NQYXJhbWV0ZXJzKHBpZCwgcGF5bWVudFdpdGhTYXZlZE1ldGhvZCksXG4gICAgICAuLi50aGlzLmNvbGxlY3RVc2VyU2Vzc2lvbklkKCksXG4gICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnlTZXJ2aWNlLmdldENvdW50cnkoKSxcbiAgICAgIC4uLnBhcmFtZXRlcnMsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnVzZXJBZ2VudFNlcnZpY2UuaXNNb2JpbGVEZXZpY2UpIHtcbiAgICAgIHJlcXVlc3RQYXJhbXMubW9iaWxlID0gWHBzQm9vbGVhbi50cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5zZWN1cmVBcGlDbGllbnQucG9zdDxYcHNSZXNwb25zZT4oXG4gICAgICAgIHRoaXMuZGlyZWN0UGF5bWVudEFwaVJvdXRlLFxuICAgICAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgLi4ucmVxdWVzdFBhcmFtcyB9IGFzIHVua25vd24gYXMge1xuICAgICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTgnXG4gICAgICAgICAgKSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RBbmFseXRpY3NQYXJhbWV0ZXJzKFxuICAgIHBheW1lbnRNZXRob2RJZD86IHN0cmluZyxcbiAgICBwYXltZW50V2l0aFNhdmVkTWV0aG9kPzogWHBzQm9vbGVhbiB8IHN0cmluZ1xuICApOiB7XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgfSB7XG4gICAgY29uc3QgcGFyYW1ldGVyczogWHBzUmVxdWVzdFBhcmFtcyA9IHt9O1xuXG4gICAgcGFyYW1ldGVycy5wYXltZW50V2l0aFNhdmVkTWV0aG9kID0gcGF5bWVudFdpdGhTYXZlZE1ldGhvZFxuICAgICAgPyBwYXltZW50V2l0aFNhdmVkTWV0aG9kXG4gICAgICA6IFhwc0Jvb2xlYW4uZmFsc2U7XG5cbiAgICBpZiAoIXBheW1lbnRNZXRob2RJZCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgLyogSWYgcGF5bWVudCBtZXRob2Qgd2l0aCAzRFNlY3VyZSAqL1xuICAgIGlmIChjYXJkc1dpdGgzZHMuaW5jbHVkZXMoTnVtYmVyKHBheW1lbnRNZXRob2RJZCkpKSB7XG4gICAgICBwYXJhbWV0ZXJzLmNvbnRhaW5lcjNEUyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgYnJvd3NlcmphdmFlbmFibGVkOiB0aGlzLndpbmRvdy5uYXZpZ2F0b3IuamF2YUVuYWJsZWQoKSxcbiAgICAgICAgYnJvd3Nlcmxhbmd1YWdlOiB0aGlzLndpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2UsXG4gICAgICAgIGJyb3dzZXJjb2xvcmRlcHRoOiB0aGlzLndpbmRvdy5zY3JlZW4uY29sb3JEZXB0aCxcbiAgICAgICAgYnJvd3NlcnNjcmVlbmhlaWdodDogdGhpcy53aW5kb3cuc2NyZWVuLmF2YWlsSGVpZ2h0LFxuICAgICAgICBicm93c2Vyc2NyZWVud2lkdGg6IHRoaXMud2luZG93LnNjcmVlbi5hdmFpbFdpZHRoLFxuICAgICAgICBicm93c2VydHo6IG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKSxcbiAgICAgICAgYnJvd3NlcmFwcG5hbWU6IHRoaXMud2luZG93Lm5hdmlnYXRvci5hcHBOYW1lLFxuICAgICAgICBicm93c2VybG9jYWx0aW1lOiBuZXcgRGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICAgIGJyb3dzZXJwbGF0Zm9ybTogdGhpcy53aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtIHx8ICcnLFxuICAgICAgICBicm93c2VyY29va2llc2VuYWJsZWQ6IHRoaXMud2luZG93Lm5hdmlnYXRvci5jb29raWVFbmFibGVkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RVc2VyU2Vzc2lvbklkKCk6IFhwc1JlcXVlc3RQYXJhbXMge1xuICAgIGNvbnN0IHBhcmFtZXRlcnM6IFhwc1JlcXVlc3RQYXJhbXMgPSB7fTtcblxuICAgIHBhcmFtZXRlcnMueHBzX2lkVXNlclNlc3Npb24gPSB0aGlzLnNldHRpbmdzU2VydmljZS51c2VyLnNlc3Npb25faWQgPz8gJyc7XG4gICAgcGFyYW1ldGVycy51c2VyX3Nlc3Npb25faWQgPSB0aGlzLnNldHRpbmdzU2VydmljZS51c2VyLnNlc3Npb25faWQgPz8gJyc7XG5cbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { userBehaviourEventTypes } from '../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
|
|
3
|
+
import { eventCategories } from '../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories';
|
|
4
|
+
import { windowToken } from '../window.token';
|
|
5
|
+
import { defaultApiUrl } from '../http/secure-api/api-url.const';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../user-behaviour-analytics/user-behaviour-analytics.service";
|
|
8
|
+
import * as i2 from "./xhr-action.service";
|
|
9
|
+
export class PerformanceService {
|
|
10
|
+
get network() {
|
|
11
|
+
return this.navigationPerformance?.responseEnd;
|
|
12
|
+
}
|
|
13
|
+
get runApp() {
|
|
14
|
+
const domComplete = this.navigationPerformance?.domComplete;
|
|
15
|
+
if (domComplete == null || this.network == null) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return domComplete - this.network;
|
|
19
|
+
}
|
|
20
|
+
constructor(userBehaviourAnalyticsService, xhrActionService, window, zone) {
|
|
21
|
+
this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
|
|
22
|
+
this.xhrActionService = xhrActionService;
|
|
23
|
+
this.window = window;
|
|
24
|
+
this.zone = zone;
|
|
25
|
+
this.navigationPerformance = this.window.performance?.getEntriesByType('navigation')?.[0];
|
|
26
|
+
this.resourcesPerformance = this.window.performance?.getEntriesByType('resource');
|
|
27
|
+
}
|
|
28
|
+
init() {
|
|
29
|
+
if (!this.window?.performance) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.zone.runOutsideAngular(() => {
|
|
33
|
+
this.measureInitialValues();
|
|
34
|
+
this.listenXhrActions();
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
getInitRequest() {
|
|
38
|
+
if (!this.navigationPerformance || !this.resourcesPerformance) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const utilsTiming = this.resourcesPerformance.find((performance) => performance.name.includes(`${defaultApiUrl}utils`));
|
|
42
|
+
if (!utilsTiming) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
duration: utilsTiming.fetchStart - utilsTiming.responseEnd,
|
|
47
|
+
timeReserve: this.navigationPerformance.domComplete - utilsTiming.responseEnd,
|
|
48
|
+
utilsDuration: utilsTiming.duration,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
sendMeasurement(name, value, additional) {
|
|
52
|
+
if (value == null) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const eventOptions = {
|
|
56
|
+
value: value.toString(),
|
|
57
|
+
};
|
|
58
|
+
if (additional) {
|
|
59
|
+
Object.keys(additional).forEach((optionName) => {
|
|
60
|
+
const optionValue = additional[optionName];
|
|
61
|
+
if (optionValue != null) {
|
|
62
|
+
eventOptions[optionName] =
|
|
63
|
+
optionValue.toString();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
void this.userBehaviourAnalyticsService.send(name, userBehaviourEventTypes.manual, eventOptions);
|
|
68
|
+
}
|
|
69
|
+
measureRunApp() {
|
|
70
|
+
const sendRunApp = () => void setTimeout(() => this.sendMeasurement('run-app', this.runApp));
|
|
71
|
+
if (document.readyState === 'complete') {
|
|
72
|
+
sendRunApp();
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this.window.addEventListener('load', () => sendRunApp());
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
measureInitialValues() {
|
|
79
|
+
const initRequest = this.getInitRequest();
|
|
80
|
+
if (initRequest) {
|
|
81
|
+
this.sendMeasurement('utils', initRequest.duration, {
|
|
82
|
+
extraValue: initRequest.timeReserve,
|
|
83
|
+
dimension1: initRequest.utilsDuration,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
this.sendMeasurement('network', this.network);
|
|
87
|
+
this.measureRunApp();
|
|
88
|
+
}
|
|
89
|
+
listenXhrActions() {
|
|
90
|
+
const xhrAction = this.xhrActionService.getXhrAction();
|
|
91
|
+
xhrAction.subscribe((event) => {
|
|
92
|
+
void this.userBehaviourAnalyticsService.send(`xhr-action:${event.name}`, userBehaviourEventTypes.manual, {
|
|
93
|
+
value: event.duration.toString(),
|
|
94
|
+
eventCategory: eventCategories.withoutInvoice,
|
|
95
|
+
extraValue: JSON.stringify(event),
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
PerformanceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PerformanceService, deps: [{ token: i1.UserBehaviourAnalyticsService }, { token: i2.XhrActionService }, { token: windowToken }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
101
|
+
PerformanceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PerformanceService, providedIn: 'root' });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PerformanceService, decorators: [{
|
|
103
|
+
type: Injectable,
|
|
104
|
+
args: [{
|
|
105
|
+
providedIn: 'root',
|
|
106
|
+
}]
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i1.UserBehaviourAnalyticsService }, { type: i2.XhrActionService }, { type: undefined, decorators: [{
|
|
108
|
+
type: Inject,
|
|
109
|
+
args: [windowToken]
|
|
110
|
+
}] }, { type: i0.NgZone }]; } });
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFDdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBR25ILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFNakUsTUFBTSxPQUFPLGtCQUFrQjtJQVc3QixJQUFZLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFZLE1BQU07UUFDaEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQztRQUU1RCxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQ21CLDZCQUE0RCxFQUM1RCxnQkFBa0MsRUFFbEMsTUFBc0IsRUFDdEIsSUFBWTtRQUpaLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7UUFDNUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUVsQyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBN0JkLDBCQUFxQixHQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FFOUMsQ0FBQztRQUVDLHlCQUFvQixHQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVLENBRXZDLENBQUM7SUFzQmIsQ0FBQztJQUVHLElBQUk7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUtwQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBc0MsRUFBRSxFQUFFLENBQ3hFLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsYUFBYSxPQUFPLENBQUMsQ0FDbkQsQ0FBQztRQUVKLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU87WUFDTCxRQUFRLEVBQUUsV0FBVyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVztZQUMxRCxXQUFXLEVBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVztZQUNsRSxhQUFhLEVBQUUsV0FBVyxDQUFDLFFBQVE7U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlLENBQ3JCLElBQVksRUFDWixLQUFnQyxFQUNoQyxVQUlDO1FBRUQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFvQztZQUNwRCxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRTtTQUN4QixDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUU7WUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWtCLEVBQVEsRUFBRTtnQkFDM0QsTUFBTSxXQUFXLEdBQ2YsVUFBVSxDQUFDLFVBQXFDLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO29CQUN2QixZQUFZLENBQUMsVUFBcUMsQ0FBQzt3QkFDakQsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUMxQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxLQUFLLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQzFDLElBQUksRUFDSix1QkFBdUIsQ0FBQyxNQUFNLEVBQzlCLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxVQUFVLEdBQUcsR0FBUyxFQUFFLENBQzVCLEtBQUssVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksUUFBUSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDdEMsVUFBVSxFQUFFLENBQUM7U0FDZDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFDLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRTtnQkFDbEQsVUFBVSxFQUFFLFdBQVcsQ0FBQyxXQUFXO2dCQUNuQyxVQUFVLEVBQUUsV0FBVyxDQUFDLGFBQWE7YUFDdEMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXZDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDdkMsS0FBSyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUMxQyxjQUFjLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFDMUIsdUJBQXVCLENBQUMsTUFBTSxFQUM5QjtnQkFDRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLGFBQWEsRUFBRSxlQUFlLENBQUMsY0FBYztnQkFDN0MsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ2xDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBL0lVLGtCQUFrQiwrRkE0Qm5CLFdBQVc7bUhBNUJWLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTZCSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWGhyQWN0aW9uU2VydmljZSB9IGZyb20gJy4veGhyLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFhockFjdGlvbiB9IGZyb20gJy4veGhyLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQvdXNlci1iZWhhdmlvdXItZXZlbnQtdHlwZXMnO1xuaW1wb3J0IHsgZXZlbnRDYXRlZ29yaWVzIH0gZnJvbSAnLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LWNhdGVnb3JpZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IGRlZmF1bHRBcGlVcmwgfSBmcm9tICcuLi9odHRwL3NlY3VyZS1hcGkvYXBpLXVybC5jb25zdCc7XG5pbXBvcnQgeyBTZW5kRXZlbnRNZXRob2RPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVyZm9ybWFuY2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBuYXZpZ2F0aW9uUGVyZm9ybWFuY2UgPVxuICAgIHRoaXMud2luZG93LnBlcmZvcm1hbmNlPy5nZXRFbnRyaWVzQnlUeXBlKCduYXZpZ2F0aW9uJyk/LlswXSBhc1xuICAgICAgfCBQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmdcbiAgICAgIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VzUGVyZm9ybWFuY2UgPVxuICAgIHRoaXMud2luZG93LnBlcmZvcm1hbmNlPy5nZXRFbnRyaWVzQnlUeXBlKCdyZXNvdXJjZScpIGFzXG4gICAgICB8IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmdbXVxuICAgICAgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQgbmV0d29yaygpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25QZXJmb3JtYW5jZT8ucmVzcG9uc2VFbmQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBydW5BcHAoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3QgZG9tQ29tcGxldGUgPSB0aGlzLm5hdmlnYXRpb25QZXJmb3JtYW5jZT8uZG9tQ29tcGxldGU7XG5cbiAgICBpZiAoZG9tQ29tcGxldGUgPT0gbnVsbCB8fCB0aGlzLm5ldHdvcmsgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvbUNvbXBsZXRlIC0gdGhpcy5uZXR3b3JrO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2U6IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgeGhyQWN0aW9uU2VydmljZTogWGhyQWN0aW9uU2VydmljZSxcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBFeHRlbmRlZFdpbmRvdyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgcHVibGljIGluaXQoKTogdW5kZWZpbmVkIHwgdm9pZCB7XG4gICAgaWYgKCF0aGlzLndpbmRvdz8ucGVyZm9ybWFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5tZWFzdXJlSW5pdGlhbFZhbHVlcygpO1xuICAgICAgdGhpcy5saXN0ZW5YaHJBY3Rpb25zKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRSZXF1ZXN0KCk6IHtcbiAgICBkdXJhdGlvbjogbnVtYmVyO1xuICAgIHRpbWVSZXNlcnZlOiBudW1iZXI7XG4gICAgdXRpbHNEdXJhdGlvbjogbnVtYmVyO1xuICB9IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLm5hdmlnYXRpb25QZXJmb3JtYW5jZSB8fCAhdGhpcy5yZXNvdXJjZXNQZXJmb3JtYW5jZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgdXRpbHNUaW1pbmc6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy5yZXNvdXJjZXNQZXJmb3JtYW5jZS5maW5kKChwZXJmb3JtYW5jZTogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZykgPT5cbiAgICAgICAgcGVyZm9ybWFuY2UubmFtZS5pbmNsdWRlcyhgJHtkZWZhdWx0QXBpVXJsfXV0aWxzYClcbiAgICAgICk7XG5cbiAgICBpZiAoIXV0aWxzVGltaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZHVyYXRpb246IHV0aWxzVGltaW5nLmZldGNoU3RhcnQgLSB1dGlsc1RpbWluZy5yZXNwb25zZUVuZCxcbiAgICAgIHRpbWVSZXNlcnZlOlxuICAgICAgICB0aGlzLm5hdmlnYXRpb25QZXJmb3JtYW5jZS5kb21Db21wbGV0ZSAtIHV0aWxzVGltaW5nLnJlc3BvbnNlRW5kLFxuICAgICAgdXRpbHNEdXJhdGlvbjogdXRpbHNUaW1pbmcuZHVyYXRpb24sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZE1lYXN1cmVtZW50KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBhZGRpdGlvbmFsPzoge1xuICAgICAgZXh0cmFWYWx1ZT86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICBkaW1lbnNpb24xPzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGRpbWVuc2lvbjI/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBldmVudE9wdGlvbnM6IFNlbmRFdmVudE1ldGhvZE9wdGlvbnNJbnRlcmZhY2UgPSB7XG4gICAgICB2YWx1ZTogdmFsdWUudG9TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgaWYgKGFkZGl0aW9uYWwpIHtcbiAgICAgIE9iamVjdC5rZXlzKGFkZGl0aW9uYWwpLmZvckVhY2goKG9wdGlvbk5hbWU6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25WYWx1ZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgYWRkaXRpb25hbFtvcHRpb25OYW1lIGFzIGtleW9mIHR5cGVvZiBhZGRpdGlvbmFsXTtcbiAgICAgICAgaWYgKG9wdGlvblZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICBldmVudE9wdGlvbnNbb3B0aW9uTmFtZSBhcyBrZXlvZiB0eXBlb2YgYWRkaXRpb25hbF0gPVxuICAgICAgICAgICAgb3B0aW9uVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdm9pZCB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICBuYW1lLFxuICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgZXZlbnRPcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVhc3VyZVJ1bkFwcCgpOiB2b2lkIHtcbiAgICBjb25zdCBzZW5kUnVuQXBwID0gKCk6IHZvaWQgPT5cbiAgICAgIHZvaWQgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbmRNZWFzdXJlbWVudCgncnVuLWFwcCcsIHRoaXMucnVuQXBwKSk7XG5cbiAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgc2VuZFJ1bkFwcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gc2VuZFJ1bkFwcCgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lYXN1cmVJbml0aWFsVmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGluaXRSZXF1ZXN0ID0gdGhpcy5nZXRJbml0UmVxdWVzdCgpO1xuICAgIGlmIChpbml0UmVxdWVzdCkge1xuICAgICAgdGhpcy5zZW5kTWVhc3VyZW1lbnQoJ3V0aWxzJywgaW5pdFJlcXVlc3QuZHVyYXRpb24sIHtcbiAgICAgICAgZXh0cmFWYWx1ZTogaW5pdFJlcXVlc3QudGltZVJlc2VydmUsXG4gICAgICAgIGRpbWVuc2lvbjE6IGluaXRSZXF1ZXN0LnV0aWxzRHVyYXRpb24sXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zZW5kTWVhc3VyZW1lbnQoJ25ldHdvcmsnLCB0aGlzLm5ldHdvcmspO1xuICAgIHRoaXMubWVhc3VyZVJ1bkFwcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5YaHJBY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHhockFjdGlvbjogT2JzZXJ2YWJsZTxYaHJBY3Rpb24+ID1cbiAgICAgIHRoaXMueGhyQWN0aW9uU2VydmljZS5nZXRYaHJBY3Rpb24oKTtcblxuICAgIHhockFjdGlvbi5zdWJzY3JpYmUoKGV2ZW50OiBYaHJBY3Rpb24pID0+IHtcbiAgICAgIHZvaWQgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICBgeGhyLWFjdGlvbjoke2V2ZW50Lm5hbWV9YCxcbiAgICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IGV2ZW50LmR1cmF0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgZXZlbnRDYXRlZ29yeTogZXZlbnRDYXRlZ29yaWVzLndpdGhvdXRJbnZvaWNlLFxuICAgICAgICAgIGV4dHJhVmFsdWU6IEpTT04uc3RyaW5naWZ5KGV2ZW50KSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLWFjdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wZXJmb3JtYW5jZS94aHItYWN0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBYaHJBY3Rpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGR1cmF0aW9uOiBudW1iZXI7XG4gIGFwaVJlcXVlc3RDb3VudDogbnVtYmVyO1xuICBhcGlSZXF1ZXN0RHVyYXRpb246IG51bWJlcjtcbiAgY2RuUmVxdWVzdENvdW50OiBudW1iZXI7XG4gIGNkblJlcXVlc3REdXJhdGlvbjogbnVtYmVyO1xufVxuIl19
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { interval, of, Subject } from 'rxjs';
|
|
3
|
+
import { debounce, filter, map } from 'rxjs/operators';
|
|
4
|
+
import { windowToken } from '../window.token';
|
|
5
|
+
import { defaultApiUrl, sandboxApiUrl } from '../http/secure-api/api-url.const';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class XhrActionService {
|
|
8
|
+
constructor(window) {
|
|
9
|
+
this.window = window;
|
|
10
|
+
this.pauseTime = 1000;
|
|
11
|
+
this.userInputEventNames = ['click', 'change'];
|
|
12
|
+
this.isXhrActionStarted = false;
|
|
13
|
+
this.apiRequestEntries = [];
|
|
14
|
+
this.cdnRequestEntries = [];
|
|
15
|
+
this.entriesSubject = new Subject();
|
|
16
|
+
}
|
|
17
|
+
getXhrAction() {
|
|
18
|
+
if (!this.window.performance || !this.window.PerformanceObserver) {
|
|
19
|
+
return of();
|
|
20
|
+
}
|
|
21
|
+
this.getUserInput().subscribe(() => this.window.performance.mark('userInput'));
|
|
22
|
+
this.getPerformance().subscribe((entry) => this.processEntry(entry));
|
|
23
|
+
return this.getPauseEvent().pipe(map(() => {
|
|
24
|
+
const event = {
|
|
25
|
+
name: this.getApiRequestName(),
|
|
26
|
+
duration: this.getDuration([
|
|
27
|
+
...this.apiRequestEntries,
|
|
28
|
+
...this.cdnRequestEntries,
|
|
29
|
+
]),
|
|
30
|
+
apiRequestCount: this.apiRequestEntries.length,
|
|
31
|
+
apiRequestDuration: this.getDuration(this.apiRequestEntries),
|
|
32
|
+
cdnRequestCount: this.cdnRequestEntries.length,
|
|
33
|
+
cdnRequestDuration: this.getDuration(this.cdnRequestEntries),
|
|
34
|
+
};
|
|
35
|
+
this.stopXhrAction();
|
|
36
|
+
return event;
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
processEntry(entry) {
|
|
40
|
+
const isApiRequest = entry.name.includes(defaultApiUrl || sandboxApiUrl);
|
|
41
|
+
const cdnUrl = '';
|
|
42
|
+
const isCdnRequest = !isApiRequest && entry.name.startsWith(cdnUrl);
|
|
43
|
+
if (this.isXhrActionStarted && isApiRequest) {
|
|
44
|
+
this.apiRequestEntries.push(entry);
|
|
45
|
+
}
|
|
46
|
+
if (this.isXhrActionStarted && isCdnRequest) {
|
|
47
|
+
this.cdnRequestEntries.push(entry);
|
|
48
|
+
}
|
|
49
|
+
if (isApiRequest && !this.isXhrActionStarted) {
|
|
50
|
+
const userInputEntries = this.window.performance.getEntriesByName('userInput', 'mark');
|
|
51
|
+
const userInputEntry = userInputEntries[userInputEntries.length - 1];
|
|
52
|
+
if (userInputEntry) {
|
|
53
|
+
this.startXhrAction(entry);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (isApiRequest || isCdnRequest) {
|
|
57
|
+
this.entriesSubject.next(entry);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
startXhrAction(xhrEntry) {
|
|
61
|
+
this.isXhrActionStarted = true;
|
|
62
|
+
this.apiRequestEntries.push(xhrEntry);
|
|
63
|
+
}
|
|
64
|
+
stopXhrAction() {
|
|
65
|
+
this.isXhrActionStarted = false;
|
|
66
|
+
this.apiRequestEntries = [];
|
|
67
|
+
this.cdnRequestEntries = [];
|
|
68
|
+
}
|
|
69
|
+
getUserInput() {
|
|
70
|
+
const userInputSubject = new Subject();
|
|
71
|
+
this.userInputEventNames.forEach((eventName) => {
|
|
72
|
+
this.window.addEventListener(eventName, () => userInputSubject.next());
|
|
73
|
+
});
|
|
74
|
+
return userInputSubject;
|
|
75
|
+
}
|
|
76
|
+
getPerformance() {
|
|
77
|
+
const performanceSubject = new Subject();
|
|
78
|
+
if (this.window.PerformanceObserver) {
|
|
79
|
+
const observer = new this.window.PerformanceObserver((list) => {
|
|
80
|
+
list.getEntries().forEach((entry) => {
|
|
81
|
+
return performanceSubject.next(entry);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
observer.observe({ entryTypes: ['resource'] });
|
|
85
|
+
}
|
|
86
|
+
return performanceSubject;
|
|
87
|
+
}
|
|
88
|
+
getApiRequestName() {
|
|
89
|
+
return this.apiRequestEntries[0].name.split(defaultApiUrl)[1].split('?')[0];
|
|
90
|
+
}
|
|
91
|
+
getDuration(entries) {
|
|
92
|
+
if (!entries.length) {
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
const firstApiRequestEntry = entries.reduce((prev, current) => (prev.startTime < current.startTime ? prev : current));
|
|
96
|
+
const lastApiRequestEntry = entries.reduce((prev, current) => prev.responseEnd > current.responseEnd ? prev : current);
|
|
97
|
+
return Math.round(lastApiRequestEntry.responseEnd - firstApiRequestEntry.startTime);
|
|
98
|
+
}
|
|
99
|
+
getPauseEvent() {
|
|
100
|
+
return this.entriesSubject.pipe(debounce(() => interval(this.pauseTime)), filter(() => this.isXhrActionStarted));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
XhrActionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XhrActionService, deps: [{ token: windowToken }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
104
|
+
XhrActionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XhrActionService, providedIn: 'root' });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XhrActionService, decorators: [{
|
|
106
|
+
type: Injectable,
|
|
107
|
+
args: [{
|
|
108
|
+
providedIn: 'root',
|
|
109
|
+
}]
|
|
110
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
111
|
+
type: Inject,
|
|
112
|
+
args: [windowToken]
|
|
113
|
+
}] }]; } });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLWFjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGVyZm9ybWFuY2UveGhyLWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLGdCQUFnQjtJQVEzQixZQUVtQixNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQVR4QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLHdCQUFtQixHQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdELHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixzQkFBaUIsR0FBZ0MsRUFBRSxDQUFDO1FBQ3BELHNCQUFpQixHQUFnQyxFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztJQUt4RSxDQUFDO0lBRUcsWUFBWTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFO1lBQ2hFLE9BQU8sRUFBRSxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDMUMsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFnQyxFQUFFLEVBQUUsQ0FDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FDekIsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDOUIsR0FBRyxDQUF1QyxHQUFHLEVBQUU7WUFDN0MsTUFBTSxLQUFLLEdBQWM7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDO29CQUN6QixHQUFHLElBQUksQ0FBQyxpQkFBaUI7b0JBQ3pCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtpQkFDMUIsQ0FBQztnQkFDRixlQUFlLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07Z0JBQzlDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2dCQUM1RCxlQUFlLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07Z0JBQzlDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQzdELENBQUM7WUFFRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFckIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFnQztRQUNuRCxNQUFNLFlBQVksR0FBWSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDL0MsYUFBYSxJQUFJLGFBQWEsQ0FDL0IsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLFlBQVksR0FDaEIsQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksWUFBWSxFQUFFO1lBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEM7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxZQUFZLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVDLE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRSxNQUFNLGNBQWMsR0FDbEIsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWhELElBQUksY0FBYyxFQUFFO2dCQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVCO1NBQ0Y7UUFFRCxJQUFJLFlBQVksSUFBSSxZQUFZLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQW1DO1FBQ3hELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sWUFBWTtRQUNsQixNQUFNLGdCQUFnQixHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXRELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxrQkFBa0IsR0FDdEIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUU7WUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUNsRCxDQUFDLElBQWtDLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQXVCLEVBQVEsRUFBRTtvQkFDMUQsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBa0MsQ0FBQyxDQUFDO2dCQUNyRSxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FDRixDQUFDO1lBRUYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNoRDtRQUVELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQW9DO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxNQUFNLG9CQUFvQixHQUE4QixPQUFPLENBQUMsTUFBTSxDQUNwRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUN6RSxDQUFDO1FBQ0YsTUFBTSxtQkFBbUIsR0FBOEIsT0FBTyxDQUFDLE1BQU0sQ0FDbkUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDMUQsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUNqRSxDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDN0IsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDeEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQzs7NkdBbkpVLGdCQUFnQixrQkFTakIsV0FBVztpSEFUVixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBYaHJBY3Rpb24gfSBmcm9tICcuL3hoci1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uL3dpbmRvdy50b2tlbic7XG5pbXBvcnQgeyBkZWZhdWx0QXBpVXJsLCBzYW5kYm94QXBpVXJsIH0gZnJvbSAnLi4vaHR0cC9zZWN1cmUtYXBpL2FwaS11cmwuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgWGhyQWN0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGF1c2VUaW1lID0gMTAwMDtcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VySW5wdXRFdmVudE5hbWVzOiBzdHJpbmdbXSA9IFsnY2xpY2snLCAnY2hhbmdlJ107XG4gIHByaXZhdGUgaXNYaHJBY3Rpb25TdGFydGVkID0gZmFsc2U7XG4gIHByaXZhdGUgYXBpUmVxdWVzdEVudHJpZXM6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmdbXSA9IFtdO1xuICBwcml2YXRlIGNkblJlcXVlc3RFbnRyaWVzOiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRyaWVzU3ViamVjdCA9IG5ldyBTdWJqZWN0PFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93XG4gICkge31cblxuICBwdWJsaWMgZ2V0WGhyQWN0aW9uKCk6IE9ic2VydmFibGU8WGhyQWN0aW9uPiB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5wZXJmb3JtYW5jZSB8fCAhdGhpcy53aW5kb3cuUGVyZm9ybWFuY2VPYnNlcnZlcikge1xuICAgICAgcmV0dXJuIG9mKCk7XG4gICAgfVxuXG4gICAgdGhpcy5nZXRVc2VySW5wdXQoKS5zdWJzY3JpYmUoKCkgPT5cbiAgICAgIHRoaXMud2luZG93LnBlcmZvcm1hbmNlLm1hcmsoJ3VzZXJJbnB1dCcpXG4gICAgKTtcblxuICAgIHRoaXMuZ2V0UGVyZm9ybWFuY2UoKS5zdWJzY3JpYmUoKGVudHJ5OiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKSA9PlxuICAgICAgdGhpcy5wcm9jZXNzRW50cnkoZW50cnkpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmdldFBhdXNlRXZlbnQoKS5waXBlKFxuICAgICAgbWFwPFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcsIFhockFjdGlvbj4oKCkgPT4ge1xuICAgICAgICBjb25zdCBldmVudDogWGhyQWN0aW9uID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0QXBpUmVxdWVzdE5hbWUoKSxcbiAgICAgICAgICBkdXJhdGlvbjogdGhpcy5nZXREdXJhdGlvbihbXG4gICAgICAgICAgICAuLi50aGlzLmFwaVJlcXVlc3RFbnRyaWVzLFxuICAgICAgICAgICAgLi4udGhpcy5jZG5SZXF1ZXN0RW50cmllcyxcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBhcGlSZXF1ZXN0Q291bnQ6IHRoaXMuYXBpUmVxdWVzdEVudHJpZXMubGVuZ3RoLFxuICAgICAgICAgIGFwaVJlcXVlc3REdXJhdGlvbjogdGhpcy5nZXREdXJhdGlvbih0aGlzLmFwaVJlcXVlc3RFbnRyaWVzKSxcbiAgICAgICAgICBjZG5SZXF1ZXN0Q291bnQ6IHRoaXMuY2RuUmVxdWVzdEVudHJpZXMubGVuZ3RoLFxuICAgICAgICAgIGNkblJlcXVlc3REdXJhdGlvbjogdGhpcy5nZXREdXJhdGlvbih0aGlzLmNkblJlcXVlc3RFbnRyaWVzKSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnN0b3BYaHJBY3Rpb24oKTtcblxuICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NFbnRyeShlbnRyeTogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzQXBpUmVxdWVzdDogYm9vbGVhbiA9IGVudHJ5Lm5hbWUuaW5jbHVkZXMoXG4gICAgICBkZWZhdWx0QXBpVXJsIHx8IHNhbmRib3hBcGlVcmxcbiAgICApO1xuXG4gICAgY29uc3QgY2RuVXJsID0gJyc7XG4gICAgY29uc3QgaXNDZG5SZXF1ZXN0OiBib29sZWFuID1cbiAgICAgICFpc0FwaVJlcXVlc3QgJiYgZW50cnkubmFtZS5zdGFydHNXaXRoKGNkblVybCk7XG5cbiAgICBpZiAodGhpcy5pc1hockFjdGlvblN0YXJ0ZWQgJiYgaXNBcGlSZXF1ZXN0KSB7XG4gICAgICB0aGlzLmFwaVJlcXVlc3RFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZCAmJiBpc0NkblJlcXVlc3QpIHtcbiAgICAgIHRoaXMuY2RuUmVxdWVzdEVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfVxuXG4gICAgaWYgKGlzQXBpUmVxdWVzdCAmJiAhdGhpcy5pc1hockFjdGlvblN0YXJ0ZWQpIHtcbiAgICAgIGNvbnN0IHVzZXJJbnB1dEVudHJpZXM6IFBlcmZvcm1hbmNlRW50cnlbXSA9XG4gICAgICAgIHRoaXMud2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ3VzZXJJbnB1dCcsICdtYXJrJyk7XG4gICAgICBjb25zdCB1c2VySW5wdXRFbnRyeTogUGVyZm9ybWFuY2VFbnRyeSA9XG4gICAgICAgIHVzZXJJbnB1dEVudHJpZXNbdXNlcklucHV0RW50cmllcy5sZW5ndGggLSAxXTtcblxuICAgICAgaWYgKHVzZXJJbnB1dEVudHJ5KSB7XG4gICAgICAgIHRoaXMuc3RhcnRYaHJBY3Rpb24oZW50cnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0FwaVJlcXVlc3QgfHwgaXNDZG5SZXF1ZXN0KSB7XG4gICAgICB0aGlzLmVudHJpZXNTdWJqZWN0Lm5leHQoZW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRYaHJBY3Rpb24oeGhyRW50cnk6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZCA9IHRydWU7XG4gICAgdGhpcy5hcGlSZXF1ZXN0RW50cmllcy5wdXNoKHhockVudHJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcFhockFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMuYXBpUmVxdWVzdEVudHJpZXMgPSBbXTtcbiAgICB0aGlzLmNkblJlcXVlc3RFbnRyaWVzID0gW107XG4gIH1cblxuICBwcml2YXRlIGdldFVzZXJJbnB1dCgpOiBTdWJqZWN0PHZvaWQ+IHtcbiAgICBjb25zdCB1c2VySW5wdXRTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHRoaXMudXNlcklucHV0RXZlbnROYW1lcy5mb3JFYWNoKChldmVudE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsICgpID0+IHVzZXJJbnB1dFN1YmplY3QubmV4dCgpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB1c2VySW5wdXRTdWJqZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQZXJmb3JtYW5jZSgpOiBTdWJqZWN0PFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+IHtcbiAgICBjb25zdCBwZXJmb3JtYW5jZVN1YmplY3Q6IFN1YmplY3Q8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4gPVxuICAgICAgbmV3IFN1YmplY3QoKTtcblxuICAgIGlmICh0aGlzLndpbmRvdy5QZXJmb3JtYW5jZU9ic2VydmVyKSB7XG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyB0aGlzLndpbmRvdy5QZXJmb3JtYW5jZU9ic2VydmVyKFxuICAgICAgICAobGlzdDogUGVyZm9ybWFuY2VPYnNlcnZlckVudHJ5TGlzdCkgPT4ge1xuICAgICAgICAgIGxpc3QuZ2V0RW50cmllcygpLmZvckVhY2goKGVudHJ5OiBQZXJmb3JtYW5jZUVudHJ5KTogdm9pZCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcGVyZm9ybWFuY2VTdWJqZWN0Lm5leHQoZW50cnkgYXMgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIG9ic2VydmVyLm9ic2VydmUoeyBlbnRyeVR5cGVzOiBbJ3Jlc291cmNlJ10gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBlcmZvcm1hbmNlU3ViamVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXBpUmVxdWVzdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hcGlSZXF1ZXN0RW50cmllc1swXS5uYW1lLnNwbGl0KGRlZmF1bHRBcGlVcmwpWzFdLnNwbGl0KCc/JylbMF07XG4gIH1cblxuICBwcml2YXRlIGdldER1cmF0aW9uKGVudHJpZXM6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmdbXSk6IG51bWJlciB7XG4gICAgaWYgKCFlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RBcGlSZXF1ZXN0RW50cnk6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgPSBlbnRyaWVzLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyZW50KSA9PiAocHJldi5zdGFydFRpbWUgPCBjdXJyZW50LnN0YXJ0VGltZSA/IHByZXYgOiBjdXJyZW50KVxuICAgICk7XG4gICAgY29uc3QgbGFzdEFwaVJlcXVlc3RFbnRyeTogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyA9IGVudHJpZXMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnJlbnQpID0+XG4gICAgICAgIHByZXYucmVzcG9uc2VFbmQgPiBjdXJyZW50LnJlc3BvbnNlRW5kID8gcHJldiA6IGN1cnJlbnRcbiAgICApO1xuXG4gICAgcmV0dXJuIE1hdGgucm91bmQoXG4gICAgICBsYXN0QXBpUmVxdWVzdEVudHJ5LnJlc3BvbnNlRW5kIC0gZmlyc3RBcGlSZXF1ZXN0RW50cnkuc3RhcnRUaW1lXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF1c2VFdmVudCgpOiBPYnNlcnZhYmxlPFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRyaWVzU3ViamVjdC5waXBlKFxuICAgICAgZGVib3VuY2UoKCkgPT4gaW50ZXJ2YWwodGhpcy5wYXVzZVRpbWUpKSxcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZClcbiAgICApO1xuICB9XG59XG4iXX0=
|