@xsolla/payment-client-core 0.1.14-test10 → 0.1.14-test12

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.
@@ -17,16 +17,48 @@ export class SavePaymentMethodStatusService {
17
17
  this.nextActionService = nextActionService;
18
18
  }
19
19
  async getStatus(params) {
20
+ console.log('getStatus', params);
20
21
  this.statusRequestService.setRequestParams(params);
21
- this.startWaitingStatusUpdates(params.invoice);
22
+ // todo: get account
23
+ const accountData = await this.getPaymentAccountData(params.invoice);
24
+ // this.startWaitingStatusUpdates(params.invoice);
22
25
  this.statusRequestService.request();
23
26
  const statusResponse = await firstValueFrom(this.statusRequestService.response$);
24
- if (!this.savePaymentMethodStatus) {
27
+ // const savingFailedOrCancel = statusResponse.status?.titleClass === TitleClass.cancel || statusResponse.status?.titleClass === TitleClass.cancelUser;
28
+ // const savingSuccessful = statusResponse.status?.titleClass === TitleClass.done && accountData?.new_account;
29
+ if (!this.savingFailedOrCancel(statusResponse?.status) && !this.savingSuccessful(accountData, statusResponse?.status)) {
30
+ // todo is proccessing
31
+ this.startWaitingStatusUpdates(params.invoice);
25
32
  statusResponse.status.statusState = StatusEnum.processing;
26
33
  }
34
+ statusResponse.status.isSavePaymentAccount = true;
27
35
  return statusResponse.status;
36
+ // if (!this.savePaymentMethodStatus) {
37
+ // statusResponse.status.statusState = StatusEnum.processing;
38
+ // }
39
+ // statusResponse.status.isSavePaymentAccount = true;
40
+ // return statusResponse.status;
41
+ }
42
+ savingFailedOrCancel(status) {
43
+ return status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
44
+ }
45
+ savingSuccessful(accountData, status) {
46
+ return !!(status?.titleClass === TitleClass.done && accountData?.new_account);
47
+ }
48
+ getPaymentAccountData(invoice) {
49
+ return this.savedPaymentAccountChangesService
50
+ .request(invoice);
51
+ // .then((accountChanges: SavedPaymentAccountChanges) => {
52
+ // if (accountChanges) {
53
+ // this.handleSavingStatus(status, accountChanges.new_account);
54
+ // }
55
+ // });
28
56
  }
29
57
  startWaitingStatusUpdates(invoice) {
58
+ if (this.listenStatusSubscription) {
59
+ this.listenStatusSubscription.unsubscribe();
60
+ this.listenStatusService.stopListening();
61
+ }
30
62
  this.listenStatusService.listen(invoice);
31
63
  this.listenStatusSubscription = this.listenStatusService.statusUpdated$
32
64
  .subscribe(({ statusResponse }) => {
@@ -43,20 +75,22 @@ export class SavePaymentMethodStatusService {
43
75
  .request(status.invoice)
44
76
  .then((accountChanges) => {
45
77
  if (accountChanges) {
46
- this.handleSavingStatus(status, accountChanges.new_account);
78
+ this.handleSavingStatus(status, accountChanges);
47
79
  }
48
80
  });
49
81
  }
50
82
  handleSavingStatus(status, account) {
51
- this.listenStatusService.stopListening();
52
- this.listenStatusSubscription.unsubscribe();
53
- const updatingIsProcessing = status?.titleClass !== TitleClass.cancel && status?.titleClass !== TitleClass.cancelUser && !account;
54
- if (updatingIsProcessing) {
83
+ // const savingFailedOrCancel = status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
84
+ //
85
+ // const savingSuccessful = status?.titleClass === TitleClass.done && account;
86
+ if (!this.savingFailedOrCancel(status) && !this.savingSuccessful(account, status)) {
55
87
  return;
56
88
  }
57
- const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
89
+ this.listenStatusService.stopListening();
90
+ this.listenStatusSubscription.unsubscribe();
91
+ // const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
58
92
  const isSavePaymentMethod = true;
59
- this.savePaymentMethodStatus = paymentAccountWasSaved ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
93
+ this.savePaymentMethodStatus = this.savingFailedOrCancel(status) ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
60
94
  this.nextActionService.emitFlowUpdates(new StatusUpdatedAction(status, isSavePaymentMethod, this.savePaymentMethodStatus));
61
95
  }
62
96
  }
@@ -68,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
68
102
  providedIn: 'root'
69
103
  }]
70
104
  }], ctorParameters: function () { return [{ type: i1.StatusRequestService }, { type: i2.ListenStatusService }, { type: i3.SavedPaymentAccountChangesService }, { type: i4.NextActionService }]; } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1wYXltZW50LW1ldGhvZC1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUsvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFLNUUsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNtQixvQkFBMEMsRUFDMUMsbUJBQXdDLEVBQ3hDLGlDQUFvRSxFQUNwRSxpQkFBb0M7UUFIcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFDcEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUVoRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFcEMsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQ3BDLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2pDLGNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7U0FDM0Q7UUFDRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQWU7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWM7YUFDcEUsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1lBRWhDLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRTtnQkFDekIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUN0RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE1BQWM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBQ0QsS0FBSyxJQUFJLENBQUMsaUNBQWlDO2FBQ3hDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxDQUFDLGNBQTBDLEVBQUUsRUFBRTtZQUNuRCxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDN0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsTUFBYyxFQUNkLE9BQW1DO1FBRW5DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFNUMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLEVBQUUsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFLFVBQVUsS0FBSyxVQUFVLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRWxJLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsT0FBTztTQUNSO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLEVBQUUsVUFBVSxLQUFLLFVBQVUsQ0FBQyxJQUFJLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQztRQUMxRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDO1FBRXpILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3BDLElBQUksbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUNuRixDQUFDO0lBQ0osQ0FBQzs7MkhBekVVLDhCQUE4QjsrSEFBOUIsOEJBQThCLGNBRjdCLE1BQU07MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXR1c1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4uL3N0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIHNraXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1VwZGF0ZWRBY3Rpb24gfSBmcm9tICcuLi8uLi9hY3Rpb25zL3N0YXR1cy11cGRhdGVkL3N0YXR1cy11cGRhdGVkLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBMaXN0ZW5TdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vbGlzdGVuLXN0YXR1cy9saXN0ZW4tc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMgfSBmcm9tICcuL2FwaS9zYXZlZC1wYXltZW50LWFjY291bnQtY2hhbmdlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlZFBheW1lbnRBY2NvdW50IH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaXRsZUNsYXNzIH0gZnJvbSAnLi4vdGl0bGUtY2xhc3MuZW51bSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNFbnVtIH0gZnJvbSAnLi4vc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgU2F2ZVBheW1lbnRNZXRob2RTdGF0dXMgfSBmcm9tICcuL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTYXZlUGF5bWVudE1ldGhvZFN0YXR1c1NlcnZpY2Uge1xuICBwcml2YXRlIHNhdmVQYXltZW50TWV0aG9kU3RhdHVzPzogU2F2ZVBheW1lbnRNZXRob2RTdGF0dXM7XG4gIHByaXZhdGUgbGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1JlcXVlc3RTZXJ2aWNlOiBTdGF0dXNSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlblN0YXR1c1NlcnZpY2U6IExpc3RlblN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlc1NlcnZpY2U6IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSkgeyB9XG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMocGFyYW1zOiBTdGF0dXNSZXF1ZXN0UGFyYW1zKTogUHJvbWlzZTxTdGF0dXM+IHtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2Uuc2V0UmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuXG4gICAgdGhpcy5zdGFydFdhaXRpbmdTdGF0dXNVcGRhdGVzKHBhcmFtcy5pbnZvaWNlKTtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVxdWVzdCgpO1xuXG4gICAgY29uc3Qgc3RhdHVzUmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVzcG9uc2UkXG4gICAgKTtcblxuICAgIGlmICghdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cykge1xuICAgICAgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnN0YXR1c1N0YXRlID0gU3RhdHVzRW51bS5wcm9jZXNzaW5nO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdHVzUmVzcG9uc2Uuc3RhdHVzO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFdhaXRpbmdTdGF0dXNVcGRhdGVzKGludm9pY2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuU3RhdHVzU2VydmljZS5saXN0ZW4oaW52b2ljZSk7XG5cbiAgICB0aGlzLmxpc3RlblN0YXR1c1N1YnNjcmlwdGlvbiA9IHRoaXMubGlzdGVuU3RhdHVzU2VydmljZS5zdGF0dXNVcGRhdGVkJFxuICAgICAgLnN1YnNjcmliZSgoeyBzdGF0dXNSZXNwb25zZSB9KSA9PiB7XG5cbiAgICAgICAgaWYgKHN0YXR1c1Jlc3BvbnNlLnN0YXR1cykge1xuICAgICAgICAgIHRoaXMubG9hZE5ld1BheW1lbnRBY2NvdW50RGF0YShzdGF0dXNSZXNwb25zZS5zdGF0dXMpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTmV3UGF5bWVudEFjY291bnREYXRhKHN0YXR1czogU3RhdHVzKTogdm9pZCB7XG4gICAgaWYgKCFzdGF0dXMuaW52b2ljZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2b2lkIHRoaXMuc2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlXG4gICAgICAucmVxdWVzdChzdGF0dXMuaW52b2ljZSlcbiAgICAgIC50aGVuKChhY2NvdW50Q2hhbmdlczogU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMpID0+IHtcbiAgICAgICAgaWYgKGFjY291bnRDaGFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVTYXZpbmdTdGF0dXMoc3RhdHVzLCBhY2NvdW50Q2hhbmdlcy5uZXdfYWNjb3VudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTYXZpbmdTdGF0dXMoXG4gICAgc3RhdHVzOiBTdGF0dXMsXG4gICAgYWNjb3VudDogU2F2ZWRQYXltZW50QWNjb3VudCB8IG51bGxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLnN0b3BMaXN0ZW5pbmcoKTtcbiAgICB0aGlzLmxpc3RlblN0YXR1c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgY29uc3QgdXBkYXRpbmdJc1Byb2Nlc3NpbmcgPSBzdGF0dXM/LnRpdGxlQ2xhc3MgIT09IFRpdGxlQ2xhc3MuY2FuY2VsICYmIHN0YXR1cz8udGl0bGVDbGFzcyAhPT0gVGl0bGVDbGFzcy5jYW5jZWxVc2VyICYmICFhY2NvdW50O1xuXG4gICAgaWYgKHVwZGF0aW5nSXNQcm9jZXNzaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bWVudEFjY291bnRXYXNTYXZlZCA9IHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5kb25lICYmIGFjY291bnQgIT09IG51bGw7XG4gICAgY29uc3QgaXNTYXZlUGF5bWVudE1ldGhvZCA9IHRydWU7XG5cbiAgICB0aGlzLnNhdmVQYXltZW50TWV0aG9kU3RhdHVzID0gcGF5bWVudEFjY291bnRXYXNTYXZlZCA/IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzLnN1Y2Nlc3MgOiBTYXZlUGF5bWVudE1ldGhvZFN0YXR1cy5mYWlsZWQ7XG5cbiAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgIG5ldyBTdGF0dXNVcGRhdGVkQWN0aW9uKHN0YXR1cywgaXNTYXZlUGF5bWVudE1ldGhvZCwgdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cylcbiAgICApO1xuICB9XG59XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1wYXltZW50LW1ldGhvZC1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUVwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUsvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFLNUUsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNtQixvQkFBMEMsRUFDMUMsbUJBQXdDLEVBQ3hDLGlDQUFvRSxFQUNwRSxpQkFBb0M7UUFIcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFDcEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsb0JBQW9CO1FBQ3BCLE1B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QUNGLDhFQUE4RTtRQUc5RSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNqRixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTVDLDZGQUE2RjtRQUM3RixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztRQUVwSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUNwQyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FDbkYsQ0FBQztJQUNKLENBQUM7OzJIQTFIVSw4QkFBOEI7K0hBQTlCLDhCQUE4QixjQUY3QixNQUFNOzJGQUVQLDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi4vc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3QtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXMgfSBmcm9tICcuLi9zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0YXR1c1JlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNVcGRhdGVkQWN0aW9uIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9zdGF0dXMtdXBkYXRlZC9zdGF0dXMtdXBkYXRlZC5hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgTGlzdGVuU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL2xpc3Rlbi1zdGF0dXMvbGlzdGVuLXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzIH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LWNoYW5nZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzU2VydmljZSB9IGZyb20gJy4vYXBpL3NhdmVkLXBheW1lbnQtYWNjb3VudC1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudCB9IGZyb20gJy4vYXBpL3NhdmVkLXBheW1lbnQtYWNjb3VudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGl0bGVDbGFzcyB9IGZyb20gJy4uL3RpdGxlLWNsYXNzLmVudW0nO1xuaW1wb3J0IHsgTmV4dEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hY3Rpb25zL25leHQtYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzRW51bSB9IGZyb20gJy4uL3N0YXR1cy5lbnVtJztcbmltcG9ydCB7IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzIH0gZnJvbSAnLi9zYXZlLXBheW1lbnQtbWV0aG9kLXN0YXR1cy5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2F2ZVBheW1lbnRNZXRob2RTdGF0dXNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzYXZlUGF5bWVudE1ldGhvZFN0YXR1cz86IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzO1xuICBwcml2YXRlIGxpc3RlblN0YXR1c1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNSZXF1ZXN0U2VydmljZTogU3RhdHVzUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5TdGF0dXNTZXJ2aWNlOiBMaXN0ZW5TdGF0dXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlOiBTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UpIHsgfVxuICBwdWJsaWMgYXN5bmMgZ2V0U3RhdHVzKHBhcmFtczogU3RhdHVzUmVxdWVzdFBhcmFtcyk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgY29uc29sZS5sb2coJ2dldFN0YXR1cycsIHBhcmFtcyk7XG5cbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTZXJ2aWNlLnNldFJlcXVlc3RQYXJhbXMocGFyYW1zKTtcblxuICAgIC8vIHRvZG86IGdldCBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudERhdGEgPSBhd2FpdCB0aGlzLmdldFBheW1lbnRBY2NvdW50RGF0YShwYXJhbXMuaW52b2ljZSk7XG4gICAgLy8gdGhpcy5zdGFydFdhaXRpbmdTdGF0dXNVcGRhdGVzKHBhcmFtcy5pbnZvaWNlKTtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVxdWVzdCgpO1xuXG4gICAgY29uc3Qgc3RhdHVzUmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVzcG9uc2UkXG4gICAgKTtcblxuXG5cbiAgICAvLyBjb25zdCBzYXZpbmdGYWlsZWRPckNhbmNlbCA9IHN0YXR1c1Jlc3BvbnNlLnN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5jYW5jZWwgfHwgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmNhbmNlbFVzZXI7XG5cbiAgICAvLyBjb25zdCBzYXZpbmdTdWNjZXNzZnVsID0gc3RhdHVzUmVzcG9uc2Uuc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmRvbmUgJiYgYWNjb3VudERhdGE/Lm5ld19hY2NvdW50O1xuXG4gICAgaWYgKCF0aGlzLnNhdmluZ0ZhaWxlZE9yQ2FuY2VsKHN0YXR1c1Jlc3BvbnNlPy5zdGF0dXMpICYmICF0aGlzLnNhdmluZ1N1Y2Nlc3NmdWwoYWNjb3VudERhdGEsIHN0YXR1c1Jlc3BvbnNlPy5zdGF0dXMpKSB7XG4gICAgICAvLyB0b2RvIGlzIHByb2NjZXNzaW5nXG5cbiAgICAgIHRoaXMuc3RhcnRXYWl0aW5nU3RhdHVzVXBkYXRlcyhwYXJhbXMuaW52b2ljZSk7XG4gICAgICBzdGF0dXNSZXNwb25zZS5zdGF0dXMuc3RhdHVzU3RhdGUgPSBTdGF0dXNFbnVtLnByb2Nlc3Npbmc7XG4gICAgfVxuICAgIHN0YXR1c1Jlc3BvbnNlLnN0YXR1cy5pc1NhdmVQYXltZW50QWNjb3VudCA9IHRydWU7XG4gICAgcmV0dXJuIHN0YXR1c1Jlc3BvbnNlLnN0YXR1cztcblxuICAgIC8vIGlmICghdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cykge1xuICAgIC8vICAgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnN0YXR1c1N0YXRlID0gU3RhdHVzRW51bS5wcm9jZXNzaW5nO1xuICAgIC8vIH1cbiAgICAvLyBzdGF0dXNSZXNwb25zZS5zdGF0dXMuaXNTYXZlUGF5bWVudEFjY291bnQgPSB0cnVlO1xuICAgIC8vIHJldHVybiBzdGF0dXNSZXNwb25zZS5zdGF0dXM7XG4gIH1cblxuICBwcml2YXRlIHNhdmluZ0ZhaWxlZE9yQ2FuY2VsKHN0YXR1cz86IFN0YXR1cyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuY2FuY2VsIHx8IHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5jYW5jZWxVc2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZpbmdTdWNjZXNzZnVsKGFjY291bnREYXRhOiBTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlcywgc3RhdHVzPzogU3RhdHVzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5kb25lICYmIGFjY291bnREYXRhPy5uZXdfYWNjb3VudCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBheW1lbnRBY2NvdW50RGF0YShpbnZvaWNlOiBudW1iZXIpOiBQcm9taXNlPFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlXG4gICAgICAucmVxdWVzdChpbnZvaWNlKVxuICAgICAgLy8gLnRoZW4oKGFjY291bnRDaGFuZ2VzOiBTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlcykgPT4ge1xuICAgICAgLy8gICBpZiAoYWNjb3VudENoYW5nZXMpIHtcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZVNhdmluZ1N0YXR1cyhzdGF0dXMsIGFjY291bnRDaGFuZ2VzLm5ld19hY2NvdW50KTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0V2FpdGluZ1N0YXR1c1VwZGF0ZXMoaW52b2ljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmxpc3RlblN0YXR1c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLnN0b3BMaXN0ZW5pbmcoKTtcbiAgICB9XG4gICAgdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLmxpc3RlbihpbnZvaWNlKTtcblxuICAgIHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uID0gdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLnN0YXR1c1VwZGF0ZWQkXG4gICAgICAuc3Vic2NyaWJlKCh7IHN0YXR1c1Jlc3BvbnNlIH0pID0+IHtcblxuICAgICAgICBpZiAoc3RhdHVzUmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgdGhpcy5sb2FkTmV3UGF5bWVudEFjY291bnREYXRhKHN0YXR1c1Jlc3BvbnNlLnN0YXR1cylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWROZXdQYXltZW50QWNjb3VudERhdGEoc3RhdHVzOiBTdGF0dXMpOiB2b2lkIHtcblxuXG4gICAgaWYgKCFzdGF0dXMuaW52b2ljZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2b2lkIHRoaXMuc2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlXG4gICAgICAucmVxdWVzdChzdGF0dXMuaW52b2ljZSlcbiAgICAgIC50aGVuKChhY2NvdW50Q2hhbmdlczogU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMpID0+IHtcblxuXG4gICAgICAgIGlmIChhY2NvdW50Q2hhbmdlcykge1xuXG4gICAgICAgICAgdGhpcy5oYW5kbGVTYXZpbmdTdGF0dXMoc3RhdHVzLCBhY2NvdW50Q2hhbmdlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTYXZpbmdTdGF0dXMoXG4gICAgc3RhdHVzOiBTdGF0dXMsXG4gICAgYWNjb3VudDogU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNcbiAgKTogdm9pZCB7XG5cbiAgICAvLyBjb25zdCBzYXZpbmdGYWlsZWRPckNhbmNlbCA9IHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5jYW5jZWwgfHwgc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmNhbmNlbFVzZXI7XG4gICAgLy9cbiAgICAvLyBjb25zdCBzYXZpbmdTdWNjZXNzZnVsID0gc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmRvbmUgJiYgYWNjb3VudDtcblxuXG4gICAgaWYgKCF0aGlzLnNhdmluZ0ZhaWxlZE9yQ2FuY2VsKHN0YXR1cykgJiYgIXRoaXMuc2F2aW5nU3VjY2Vzc2Z1bChhY2NvdW50LCBzdGF0dXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGlzdGVuU3RhdHVzU2VydmljZS5zdG9wTGlzdGVuaW5nKCk7XG4gICAgdGhpcy5saXN0ZW5TdGF0dXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIC8vIGNvbnN0IHBheW1lbnRBY2NvdW50V2FzU2F2ZWQgPSBzdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuZG9uZSAmJiBhY2NvdW50ICE9PSBudWxsO1xuICAgIGNvbnN0IGlzU2F2ZVBheW1lbnRNZXRob2QgPSB0cnVlO1xuXG4gICAgdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cyA9IHRoaXMuc2F2aW5nRmFpbGVkT3JDYW5jZWwoc3RhdHVzKSA/IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzLnN1Y2Nlc3MgOiBTYXZlUGF5bWVudE1ldGhvZFN0YXR1cy5mYWlsZWQ7XG5cbiAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgIG5ldyBTdGF0dXNVcGRhdGVkQWN0aW9uKHN0YXR1cywgaXNTYXZlUGF5bWVudE1ldGhvZCwgdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cylcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3RhdHVzL3N0YXR1cy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXR1c0ZpbmFuY2VJbmZvIH0gZnJvbSAnLi9zdGF0dXMtZmluYW5jZS1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNPcmRlciB9IGZyb20gJy4vc3RhdHVzLW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNFbnVtIH0gZnJvbSAnLi9zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBUaXRsZUNsYXNzIH0gZnJvbSAnLi90aXRsZS1jbGFzcy5lbnVtJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudFR5cGUgfSBmcm9tICcuL3dlYi1zb2NrZXQtY2xpZW50LXR5cGUuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdHVzIHtcbiAgcG9zdE1lc3NhZ2VTdGF0dXM6IHN0cmluZztcbiAgdmlydHVhbEN1cnJlbmN5QW1vdW50OiBudW1iZXI7XG4gIHN0YXR1c1N0YXRlOiBTdGF0dXNFbnVtO1xuICBlbWFpbDogc3RyaW5nO1xuICB3ZWJTb2NrZXRVcmw6IHN0cmluZztcbiAgd2ViU29ja2V0Q2hhbm5lbE5hbWU6IHN0cmluZztcbiAgd2ViU29ja2V0Q2xpZW50VHlwZTogV2ViU29ja2V0Q2xpZW50VHlwZTtcbiAgZmluYW5jZUluZm86IFN0YXR1c0ZpbmFuY2VJbmZvO1xuICBpc0NhbmNlbFVzZXI6IGJvb2xlYW47XG4gIGJhY2tVcmxTZXR0aW5nczoge1xuICAgIGJhY2tVcmw6IHN0cmluZztcbiAgICBiYWNrVXJsQWN0aW9uPzogc3RyaW5nO1xuICAgIGJhY2tVcmxDYXB0aW9uOiBzdHJpbmc7XG4gICAgcmV0dXJuUmVnaW9uOiBzdHJpbmc7XG4gICAgc2hvd0JhY2tCdXR0b24/OiBib29sZWFuO1xuICB9O1xuICBhZGRpdGlvbmFsQmFja0J1dHRvbjoge1xuICAgIGxpbms6IHN0cmluZztcbiAgICBhY3Rpb246IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHJlZ2lvbjogc3RyaW5nO1xuICAgIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgfTtcbiAgZ3JvdXA6IHN0cmluZztcbiAgbmVlZFRvQ2hlY2s6IGJvb2xlYW47XG4gIGF1dG9SZWRpcmVjdD86IHsgdGltZTogbnVtYmVyIH07XG4gIHVzZXJSZXR1cm5TdGF0dXM/OiBzdHJpbmc7XG4gIHN0YXR1c01lc3NhZ2U6IHN0cmluZztcbiAgZGlzY291bnQ6IG51bWJlciB8IG51bGw7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgaW52b2ljZT86IG51bWJlcjtcbiAgcGlkPzogbnVtYmVyO1xuICBwcm9qZWN0QW1vdW50Pzoge1xuICAgIGFtb3VudDogc3RyaW5nO1xuICAgIGN1cnJlbmN5OiBzdHJpbmc7XG4gIH07XG4gIHRpdGxlQ2xhc3M6IFRpdGxlQ2xhc3M7XG4gIGlzU3VjY2Vzcz86IGJvb2xlYW47XG4gIGlzQ2FuY2VsZWQ/OiBib29sZWFuO1xuICBwYXltZW50Q291bnRyeUlzbzogc3RyaW5nO1xuICBvcmRlcj86IFN0YXR1c09yZGVyO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3RhdHVzL3N0YXR1cy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXR1c0ZpbmFuY2VJbmZvIH0gZnJvbSAnLi9zdGF0dXMtZmluYW5jZS1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNPcmRlciB9IGZyb20gJy4vc3RhdHVzLW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNFbnVtIH0gZnJvbSAnLi9zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBUaXRsZUNsYXNzIH0gZnJvbSAnLi90aXRsZS1jbGFzcy5lbnVtJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudFR5cGUgfSBmcm9tICcuL3dlYi1zb2NrZXQtY2xpZW50LXR5cGUuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdHVzIHtcbiAgcG9zdE1lc3NhZ2VTdGF0dXM6IHN0cmluZztcbiAgdmlydHVhbEN1cnJlbmN5QW1vdW50OiBudW1iZXI7XG4gIHN0YXR1c1N0YXRlOiBTdGF0dXNFbnVtO1xuICBlbWFpbDogc3RyaW5nO1xuICB3ZWJTb2NrZXRVcmw6IHN0cmluZztcbiAgd2ViU29ja2V0Q2hhbm5lbE5hbWU6IHN0cmluZztcbiAgd2ViU29ja2V0Q2xpZW50VHlwZTogV2ViU29ja2V0Q2xpZW50VHlwZTtcbiAgZmluYW5jZUluZm86IFN0YXR1c0ZpbmFuY2VJbmZvO1xuICBpc0NhbmNlbFVzZXI6IGJvb2xlYW47XG4gIGJhY2tVcmxTZXR0aW5nczoge1xuICAgIGJhY2tVcmw6IHN0cmluZztcbiAgICBiYWNrVXJsQWN0aW9uPzogc3RyaW5nO1xuICAgIGJhY2tVcmxDYXB0aW9uOiBzdHJpbmc7XG4gICAgcmV0dXJuUmVnaW9uOiBzdHJpbmc7XG4gICAgc2hvd0JhY2tCdXR0b24/OiBib29sZWFuO1xuICB9O1xuICBhZGRpdGlvbmFsQmFja0J1dHRvbjoge1xuICAgIGxpbms6IHN0cmluZztcbiAgICBhY3Rpb246IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHJlZ2lvbjogc3RyaW5nO1xuICAgIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgfTtcbiAgZ3JvdXA6IHN0cmluZztcbiAgbmVlZFRvQ2hlY2s6IGJvb2xlYW47XG4gIGF1dG9SZWRpcmVjdD86IHsgdGltZTogbnVtYmVyIH07XG4gIHVzZXJSZXR1cm5TdGF0dXM/OiBzdHJpbmc7XG4gIHN0YXR1c01lc3NhZ2U6IHN0cmluZztcbiAgZGlzY291bnQ6IG51bWJlciB8IG51bGw7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgaW52b2ljZT86IG51bWJlcjtcbiAgcGlkPzogbnVtYmVyO1xuICBwcm9qZWN0QW1vdW50Pzoge1xuICAgIGFtb3VudDogc3RyaW5nO1xuICAgIGN1cnJlbmN5OiBzdHJpbmc7XG4gIH07XG4gIHRpdGxlQ2xhc3M6IFRpdGxlQ2xhc3M7XG4gIGlzU3VjY2Vzcz86IGJvb2xlYW47XG4gIGlzQ2FuY2VsZWQ/OiBib29sZWFuO1xuICBwYXltZW50Q291bnRyeUlzbzogc3RyaW5nO1xuICBvcmRlcj86IFN0YXR1c09yZGVyO1xuICBpc1NhdmVQYXltZW50QWNjb3VudD86IGJvb2xlYW47XG59XG4iXX0=
@@ -4745,17 +4745,49 @@ class SavePaymentMethodStatusService {
4745
4745
  }
4746
4746
  getStatus(params) {
4747
4747
  return __awaiter(this, void 0, void 0, function* () {
4748
+ console.log('getStatus', params);
4748
4749
  this.statusRequestService.setRequestParams(params);
4749
- this.startWaitingStatusUpdates(params.invoice);
4750
+ // todo: get account
4751
+ const accountData = yield this.getPaymentAccountData(params.invoice);
4752
+ // this.startWaitingStatusUpdates(params.invoice);
4750
4753
  this.statusRequestService.request();
4751
4754
  const statusResponse = yield firstValueFrom(this.statusRequestService.response$);
4752
- if (!this.savePaymentMethodStatus) {
4755
+ // const savingFailedOrCancel = statusResponse.status?.titleClass === TitleClass.cancel || statusResponse.status?.titleClass === TitleClass.cancelUser;
4756
+ // const savingSuccessful = statusResponse.status?.titleClass === TitleClass.done && accountData?.new_account;
4757
+ if (!this.savingFailedOrCancel(statusResponse === null || statusResponse === void 0 ? void 0 : statusResponse.status) && !this.savingSuccessful(accountData, statusResponse === null || statusResponse === void 0 ? void 0 : statusResponse.status)) {
4758
+ // todo is proccessing
4759
+ this.startWaitingStatusUpdates(params.invoice);
4753
4760
  statusResponse.status.statusState = StatusEnum.processing;
4754
4761
  }
4762
+ statusResponse.status.isSavePaymentAccount = true;
4755
4763
  return statusResponse.status;
4764
+ // if (!this.savePaymentMethodStatus) {
4765
+ // statusResponse.status.statusState = StatusEnum.processing;
4766
+ // }
4767
+ // statusResponse.status.isSavePaymentAccount = true;
4768
+ // return statusResponse.status;
4756
4769
  });
4757
4770
  }
4771
+ savingFailedOrCancel(status) {
4772
+ return (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.cancel || (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.cancelUser;
4773
+ }
4774
+ savingSuccessful(accountData, status) {
4775
+ return !!((status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.done && (accountData === null || accountData === void 0 ? void 0 : accountData.new_account));
4776
+ }
4777
+ getPaymentAccountData(invoice) {
4778
+ return this.savedPaymentAccountChangesService
4779
+ .request(invoice);
4780
+ // .then((accountChanges: SavedPaymentAccountChanges) => {
4781
+ // if (accountChanges) {
4782
+ // this.handleSavingStatus(status, accountChanges.new_account);
4783
+ // }
4784
+ // });
4785
+ }
4758
4786
  startWaitingStatusUpdates(invoice) {
4787
+ if (this.listenStatusSubscription) {
4788
+ this.listenStatusSubscription.unsubscribe();
4789
+ this.listenStatusService.stopListening();
4790
+ }
4759
4791
  this.listenStatusService.listen(invoice);
4760
4792
  this.listenStatusSubscription = this.listenStatusService.statusUpdated$
4761
4793
  .subscribe(({ statusResponse }) => {
@@ -4772,20 +4804,22 @@ class SavePaymentMethodStatusService {
4772
4804
  .request(status.invoice)
4773
4805
  .then((accountChanges) => {
4774
4806
  if (accountChanges) {
4775
- this.handleSavingStatus(status, accountChanges.new_account);
4807
+ this.handleSavingStatus(status, accountChanges);
4776
4808
  }
4777
4809
  });
4778
4810
  }
4779
4811
  handleSavingStatus(status, account) {
4780
- this.listenStatusService.stopListening();
4781
- this.listenStatusSubscription.unsubscribe();
4782
- const updatingIsProcessing = (status === null || status === void 0 ? void 0 : status.titleClass) !== TitleClass.cancel && (status === null || status === void 0 ? void 0 : status.titleClass) !== TitleClass.cancelUser && !account;
4783
- if (updatingIsProcessing) {
4812
+ // const savingFailedOrCancel = status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
4813
+ //
4814
+ // const savingSuccessful = status?.titleClass === TitleClass.done && account;
4815
+ if (!this.savingFailedOrCancel(status) && !this.savingSuccessful(account, status)) {
4784
4816
  return;
4785
4817
  }
4786
- const paymentAccountWasSaved = (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.done && account !== null;
4818
+ this.listenStatusService.stopListening();
4819
+ this.listenStatusSubscription.unsubscribe();
4820
+ // const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
4787
4821
  const isSavePaymentMethod = true;
4788
- this.savePaymentMethodStatus = paymentAccountWasSaved ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
4822
+ this.savePaymentMethodStatus = this.savingFailedOrCancel(status) ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
4789
4823
  this.nextActionService.emitFlowUpdates(new StatusUpdatedAction(status, isSavePaymentMethod, this.savePaymentMethodStatus));
4790
4824
  }
4791
4825
  }