taxtank-core 0.17.14 → 0.18.0

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.
Files changed (116) hide show
  1. package/bundles/taxtank-core.umd.js +5717 -5317
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/account-setup-item.collection.js +2 -2
  4. package/esm2015/lib/collections/bank.collection.js +15 -0
  5. package/esm2015/lib/collections/collection-dictionary.js +1 -1
  6. package/esm2015/lib/collections/collection.js +41 -56
  7. package/esm2015/lib/collections/exportable.collection.js +1 -1
  8. package/esm2015/lib/collections/property/property.collection.js +3 -3
  9. package/esm2015/lib/collections/vehicle-logbook.collection.js +2 -2
  10. package/esm2015/lib/db/Models/abstract-model.js +1 -1
  11. package/esm2015/lib/db/Models/bank/bank.js +1 -1
  12. package/esm2015/lib/forms/abstract.form.js +18 -3
  13. package/esm2015/lib/forms/bank/bank-account-add-manual.form.js +19 -0
  14. package/esm2015/lib/forms/bank/bank-account-loan.form.js +20 -0
  15. package/esm2015/lib/forms/bank/bank-account-migrate.form.js +15 -0
  16. package/esm2015/lib/forms/bank/bank-account-properties.form.js +15 -0
  17. package/esm2015/lib/forms/bank/bank-account-property.form.js +13 -0
  18. package/esm2015/lib/forms/bank/bank-account.form.js +53 -0
  19. package/esm2015/lib/forms/bank/bank-login.form.js +19 -0
  20. package/esm2015/lib/forms/client/client-income-types.form.js +2 -8
  21. package/esm2015/lib/forms/index.js +8 -1
  22. package/esm2015/lib/forms/login/login.form.js +1 -1
  23. package/esm2015/lib/forms/register/register-client.form.js +4 -3
  24. package/esm2015/lib/forms/register/register-firm.form.js +2 -9
  25. package/esm2015/lib/forms/user/password.form.js +6 -6
  26. package/esm2015/lib/forms/user/reset-password.form.js +1 -1
  27. package/esm2015/lib/forms/vehicle/vehicle-claim.form.js +2 -2
  28. package/esm2015/lib/forms/vehicle/vehicle.form.js +6 -12
  29. package/esm2015/lib/interceptors/basiq.interceptor.js +35 -0
  30. package/esm2015/lib/interceptors/financial-year-interceptor.js +15 -4
  31. package/esm2015/lib/interceptors/interceptors.module.js +12 -1
  32. package/esm2015/lib/models/account-setup/account-setup-item.js +4 -2
  33. package/esm2015/lib/models/bank/bank-account-property.js +6 -2
  34. package/esm2015/lib/models/bank/bank-account.js +2 -1
  35. package/esm2015/lib/models/bank/bank-connection.js +18 -3
  36. package/esm2015/lib/models/bank/bank-login-data.js +6 -0
  37. package/esm2015/lib/models/bank/bank.js +6 -1
  38. package/esm2015/lib/models/client/client-portfolio-report.js +3 -2
  39. package/esm2015/lib/models/endpoint/endpoints.const.js +3 -1
  40. package/esm2015/lib/models/event/app-event-type.enum.js +39 -37
  41. package/esm2015/lib/models/loan/loan-payment.js +3 -2
  42. package/esm2015/lib/models/loan/loan.js +1 -6
  43. package/esm2015/lib/models/report/property/property-report-item.js +4 -2
  44. package/esm2015/lib/models/report/vehicle-expense/vehicle-expense.js +4 -2
  45. package/esm2015/lib/models/tax-summary/report-item-details.js +3 -2
  46. package/esm2015/lib/models/tax-summary/report-item.js +3 -2
  47. package/esm2015/lib/services/account-setup/account-setup.service.js +2 -2
  48. package/esm2015/lib/services/auth/auth.service.js +20 -4
  49. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +2 -5
  50. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +57 -2
  51. package/esm2015/lib/services/http/bank/basiq/basiq-connections-response.interface.js +2 -0
  52. package/esm2015/lib/services/http/bank/basiq/basiq-token-response.interface.js +2 -0
  53. package/esm2015/lib/services/http/bank/basiq/basiq-token.service.js +42 -0
  54. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +35 -44
  55. package/esm2015/lib/services/http/rest/rest.service.js +1 -12
  56. package/esm2015/lib/services/http/user/user.service.js +7 -15
  57. package/esm2015/lib/validators/date-range.validator.js +22 -0
  58. package/esm2015/lib/validators/index.js +2 -1
  59. package/esm2015/lib/validators/password.validator.js +16 -3
  60. package/esm2015/lib/validators/require-autocomplete.js +14 -0
  61. package/esm2015/public-api.js +7 -1
  62. package/fesm2015/taxtank-core.js +6088 -5763
  63. package/fesm2015/taxtank-core.js.map +1 -1
  64. package/lib/collections/bank.collection.d.ts +7 -0
  65. package/lib/collections/collection-dictionary.d.ts +2 -1
  66. package/lib/collections/collection.d.ts +18 -31
  67. package/lib/collections/exportable.collection.d.ts +2 -1
  68. package/lib/db/Models/abstract-model.d.ts +1 -0
  69. package/lib/db/Models/bank/bank.d.ts +4 -0
  70. package/lib/forms/abstract.form.d.ts +18 -3
  71. package/lib/forms/bank/bank-account-add-manual.form.d.ts +10 -0
  72. package/lib/forms/bank/bank-account-loan.form.d.ts +5 -0
  73. package/lib/forms/bank/bank-account-migrate.form.d.ts +9 -0
  74. package/lib/forms/bank/bank-account-properties.form.d.ts +8 -0
  75. package/lib/forms/bank/bank-account-property.form.d.ts +5 -0
  76. package/lib/forms/bank/bank-account.form.d.ts +21 -0
  77. package/lib/forms/bank/bank-login.form.d.ts +11 -0
  78. package/lib/forms/client/client-income-types.form.d.ts +1 -2
  79. package/lib/forms/index.d.ts +7 -0
  80. package/lib/forms/login/login.form.d.ts +4 -1
  81. package/lib/forms/register/register-client.form.d.ts +1 -1
  82. package/lib/forms/register/register-firm.form.d.ts +2 -2
  83. package/lib/forms/user/password.form.d.ts +4 -1
  84. package/lib/forms/user/reset-password.form.d.ts +3 -1
  85. package/lib/forms/vehicle/vehicle-claim.form.d.ts +1 -1
  86. package/lib/forms/vehicle/vehicle.form.d.ts +3 -7
  87. package/lib/interceptors/basiq.interceptor.d.ts +15 -0
  88. package/lib/interceptors/financial-year-interceptor.d.ts +2 -0
  89. package/lib/models/account-setup/account-setup-item.d.ts +2 -1
  90. package/lib/models/bank/bank-account-property.d.ts +1 -0
  91. package/lib/models/bank/bank-account.d.ts +2 -0
  92. package/lib/models/bank/bank-connection.d.ts +8 -1
  93. package/lib/models/bank/bank-login-data.d.ts +17 -0
  94. package/lib/models/bank/bank.d.ts +1 -0
  95. package/lib/models/client/client-portfolio-report.d.ts +2 -1
  96. package/lib/models/event/app-event-type.enum.d.ts +38 -36
  97. package/lib/models/loan/loan-payment.d.ts +2 -1
  98. package/lib/models/loan/loan.d.ts +0 -2
  99. package/lib/models/report/property/property-report-item.d.ts +2 -1
  100. package/lib/models/report/vehicle-expense/vehicle-expense.d.ts +2 -1
  101. package/lib/models/tax-summary/report-item-details.d.ts +2 -1
  102. package/lib/models/tax-summary/report-item.d.ts +2 -1
  103. package/lib/services/auth/auth.service.d.ts +13 -2
  104. package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts +13 -1
  105. package/lib/services/http/bank/basiq/basiq-connections-response.interface.d.ts +9 -0
  106. package/lib/services/http/bank/basiq/basiq-token-response.interface.d.ts +9 -0
  107. package/lib/services/http/bank/basiq/basiq-token.service.d.ts +17 -0
  108. package/lib/services/http/bank/basiq/basiq.service.d.ts +20 -11
  109. package/lib/services/http/rest/rest.service.d.ts +0 -5
  110. package/lib/services/http/user/user.service.d.ts +0 -1
  111. package/lib/validators/date-range.validator.d.ts +5 -0
  112. package/lib/validators/index.d.ts +1 -0
  113. package/lib/validators/password.validator.d.ts +6 -0
  114. package/lib/validators/require-autocomplete.d.ts +5 -0
  115. package/package.json +1 -1
  116. package/public-api.d.ts +6 -0
@@ -1,16 +1,32 @@
1
1
  import { BehaviorSubject } from 'rxjs';
2
2
  import { Inject, Injectable } from '@angular/core';
3
3
  import { map } from 'rxjs/operators';
4
+ import { AppEventTypeEnum } from "../../models/event/app-event-type.enum";
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/common/http";
6
7
  import * as i2 from "./jwt.service";
8
+ import * as i3 from "../event/event-dispatcher.service";
7
9
  export class AuthService {
8
- constructor(http, jwtService, environment) {
10
+ constructor(http, jwtService, eventDispatcherService, environment) {
9
11
  this.http = http;
10
12
  this.jwtService = jwtService;
13
+ this.eventDispatcherService = eventDispatcherService;
11
14
  this.environment = environment;
15
+ this.listenEvents();
12
16
  this.isLoggedInSubject = new BehaviorSubject(!this.jwtService.isTokenExpired());
13
17
  }
18
+ /**
19
+ * Listen to Event Dispatcher events
20
+ */
21
+ listenEvents() {
22
+ this.listenUserGetFailed();
23
+ }
24
+ /**
25
+ * User logout if failed current user get
26
+ */
27
+ listenUserGetFailed() {
28
+ this.eventDispatcherService.on(AppEventTypeEnum.CURRENT_USER_GET_FAILED).subscribe(() => this.logoutFront());
29
+ }
14
30
  setAuth(response) {
15
31
  this.jwtService.saveTokens(response);
16
32
  this.isLoggedInSubject.next(true);
@@ -32,15 +48,15 @@ export class AuthService {
32
48
  location.replace(url);
33
49
  }
34
50
  }
35
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
51
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: i3.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
36
52
  AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: AuthService, providedIn: 'root' });
37
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: AuthService, decorators: [{
38
54
  type: Injectable,
39
55
  args: [{
40
56
  providedIn: 'root'
41
57
  }]
42
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.JwtService }, { type: undefined, decorators: [{
58
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.JwtService }, { type: i3.EventDispatcherService }, { type: undefined, decorators: [{
43
59
  type: Inject,
44
60
  args: ['environment']
45
61
  }] }]; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBS3JDLE1BQU0sT0FBTyxXQUFXO0lBR3RCLFlBQ1UsSUFBZ0IsRUFDaEIsVUFBc0IsRUFDQyxXQUFnQjtRQUZ2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDQyxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUUvQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFhO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssY0FBYyxFQUFFLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUN2RixHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQW9CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssZ0JBQWdCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckYsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLFFBQVE7UUFDaEMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7eUdBckNVLFdBQVcsc0VBTVosYUFBYTs2R0FOWixXQUFXLGNBRlYsTUFBTTs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBKd3RTZXJ2aWNlIH0gZnJvbSAnLi9qd3Quc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgaXNMb2dnZWRJblN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBqd3RTZXJ2aWNlOiBKd3RTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHRoaXMuaXNMb2dnZWRJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCF0aGlzLmp3dFNlcnZpY2UuaXNUb2tlbkV4cGlyZWQoKSk7XG4gIH1cblxuICBzZXRBdXRoKHJlc3BvbnNlOiBhbnkpIHtcbiAgICB0aGlzLmp3dFNlcnZpY2Uuc2F2ZVRva2VucyhyZXNwb25zZSk7XG4gICAgdGhpcy5pc0xvZ2dlZEluU3ViamVjdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgbG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9sb2dpbl9jaGVja2AsIHt1c2VybmFtZSwgcGFzc3dvcmR9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0QXV0aChyZXNwb25zZSk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJlZnJlc2gocmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdG9rZW4vcmVmcmVzaGAsIHsgcmVmcmVzaFRva2VuIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zZXRBdXRoKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbG9nb3V0RnJvbnQodXJsOiBzdHJpbmcgPSAnL2xvZ2luJyk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgIGxvY2F0aW9uLnJlcGxhY2UodXJsKTtcbiAgfVxufVxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR25DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQUt4RSxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNVLElBQWdCLEVBQ2hCLFVBQXNCLEVBQ3RCLHNCQUE4QyxFQUN2QixXQUFnQjtRQUh2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUUvQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQWE7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxjQUFjLEVBQUUsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQUMsWUFBb0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxnQkFBZ0IsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNyRixHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsUUFBUTtRQUNoQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDOzt5R0FyRFUsV0FBVyw0R0FPWixhQUFhOzZHQVBaLFdBQVcsY0FGVixNQUFNOzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Snd0U2VydmljZX0gZnJvbSAnLi9qd3Quc2VydmljZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJRXZlbnRMaXN0ZW5lcn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQge0V2ZW50RGlzcGF0Y2hlclNlcnZpY2V9IGZyb20gXCIuLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7QXBwRXZlbnRUeXBlRW51bX0gZnJvbSBcIi4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXJ7XG4gIGlzTG9nZ2VkSW5TdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgand0U2VydmljZTogSnd0U2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgICB0aGlzLmlzTG9nZ2VkSW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCghdGhpcy5qd3RTZXJ2aWNlLmlzVG9rZW5FeHBpcmVkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudCBEaXNwYXRjaGVyIGV2ZW50c1xuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVXNlckdldEZhaWxlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXIgbG9nb3V0IGlmIGZhaWxlZCBjdXJyZW50IHVzZXIgZ2V0XG4gICAqL1xuICBsaXN0ZW5Vc2VyR2V0RmFpbGVkKCkge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkNVUlJFTlRfVVNFUl9HRVRfRkFJTEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sb2dvdXRGcm9udCgpKTtcbiAgfVxuXG4gIHNldEF1dGgocmVzcG9uc2U6IGFueSkge1xuICAgIHRoaXMuand0U2VydmljZS5zYXZlVG9rZW5zKHJlc3BvbnNlKTtcbiAgICB0aGlzLmlzTG9nZ2VkSW5TdWJqZWN0Lm5leHQodHJ1ZSk7XG4gIH1cblxuICBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2xvZ2luX2NoZWNrYCwge3VzZXJuYW1lLCBwYXNzd29yZH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zZXRBdXRoKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVmcmVzaChyZWZyZXNoVG9rZW46IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS90b2tlbi9yZWZyZXNoYCwgeyByZWZyZXNoVG9rZW4gfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNldEF1dGgocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2dvdXRGcm9udCh1cmw6IHN0cmluZyA9ICcvbG9naW4nKTogdm9pZCB7XG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgbG9jYXRpb24ucmVwbGFjZSh1cmwpO1xuICB9XG59XG4iXX0=
@@ -91,10 +91,7 @@ export class BankAccountService extends RestService {
91
91
  AppEventTypeEnum.LOAN_PAYOUT_UPDATED,
92
92
  AppEventTypeEnum.BANK_CONNECTION_ADDED
93
93
  ]).subscribe(() => {
94
- this.fetch().subscribe((bankAccounts) => {
95
- this.cache = bankAccounts;
96
- this.updateCache();
97
- });
94
+ this.resetCache();
98
95
  });
99
96
  }
100
97
  }
@@ -106,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
106
103
  providedIn: 'root'
107
104
  }]
108
105
  }] });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1hY2NvdW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFHaEY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBeUM7SUFIakY7O1FBSUUsc0NBQXNDO1FBQ3RDLFFBQUcsR0FBVyxlQUFlLENBQUM7UUFDOUIsZUFBVSxHQUFHLFdBQVcsQ0FBQztLQW9HMUI7SUFsR0M7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsWUFBMkIsRUFBRSxjQUFzQixFQUFFO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENB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QUFDLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUM5RyxPQUFPLGtCQUFrQixDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTthQUNkLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxZQUEyQixFQUFFLEVBQUU7WUFDbEMsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyw4QkFBOEI7UUFDcEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztZQUM3QixnQkFBZ0IsQ0FBQyxzQkFBc0I7WUFDdkMsZ0JBQWdCLENBQUMsbUJBQW1CO1lBQ3BDLGdCQUFnQixDQUFDLHFCQUFxQjtTQUN2QyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMkIsRUFBRSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztnSEF0R1Usa0JBQWtCO29IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgYXMgQmFua0FjY291bnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgaGFuZGxpbmcgdXNlcidzIGJhbmsgYWNjb3VudHMgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFua0FjY291bnRTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0FjY291bnRCYXNlLCBCYW5rQWNjb3VudD4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIC8vIGFwaSB1cmwgcGFyYW1ldGVyIGZvciBiYW5rIGFjY291bnRzXG4gIHVybDogc3RyaW5nID0gJ2JhbmstYWNjb3VudHMnO1xuICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG5cbiAgLyoqXG4gICAqIExpc3RlbiBzeXN0ZW0gbm90aWZpY2F0aW9ucyBhbmQgdXBkYXRlIGNhY2hlIHdoZW4gZ290IGJhc2lxIG5vdGlmaWNhdGlvbiByZWNlaXZlZFxuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9FdmVudERpc3BhdGNoZXJDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlZCBtYW51YWwgYmFuayBhY2NvdW50XG4gICAqIEBwYXJhbSBiYW5rQWNjb3VudHNcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zXG4gICAqL1xuICBhZGRCYXRjaChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8QmFua0FjY291bnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGJhbmtBY2NvdW50cylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld0JhbmtBY2NvdW50c0Jhc2U6IEJhbmtBY2NvdW50QmFzZVtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3QmFua0FjY291bnRzOiBCYW5rQWNjb3VudFtdID0gbmV3QmFua0FjY291bnRzQmFzZS5tYXAoKGJhbmtBY2NvdW50QmFzZTogQmFua0FjY291bnRCYXNlKTogQmFua0FjY291bnQgPT4gcGxhaW5Ub0NsYXNzKEJhbmtBY2NvdW50LCBiYW5rQWNjb3VudEJhc2UpKTtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFOS19BQ0NPVU5UX0NSRUFURUQsIG5ld0JhbmtBY2NvdW50cykpO1xuICAgICAgICAgIGNvbnN0IHRlbXBDYWNoZTogQmFua0FjY291bnRbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgIHRlbXBDYWNoZS5wdXNoKC4uLm5ld0JhbmtBY2NvdW50cyk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIG5ld0JhbmtBY2NvdW50cztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGJhbmsgYWNjb3VudCBhbmQgZmlyZSBldmVudFxuICAgKi9cbiAgdXBkYXRlKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCk6IE9ic2VydmFibGU8QmFua0FjY291bnQ+IHtcbiAgICByZXR1cm4gc3VwZXIudXBkYXRlKGJhbmtBY2NvdW50KS5waXBlKFxuICAgICAgbWFwKCh1cGRhdGVkQmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQU5LX0FDQ09VTlRfVVBEQVRFRCwgdXBkYXRlZEJhbmtBY2NvdW50KSk7XG4gICAgICAgIHJldHVybiB1cGRhdGVkQmFua0FjY291bnQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGJhbmsgYWNjb3VudCBvcGVuaW5nIGJhbGFuY2VcbiAgICogQHBhcmFtIGJhbmtBY2NvdW50IEJhbmsgYWNjb3VudCBmb3IgYmFsYW5jZSB1cGRhdGluZ1xuICAgKi9cbiAgdXBkYXRlT3BlbmluZ0JhbGFuY2UoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2JhbmtBY2NvdW50LmlkfS9vcGVuaW5nLWJhbGFuY2VzLyR7YmFua0FjY291bnQuZ2V0Q3VycmVudFllYXJCYWxhbmNlKCkuaWR9YCwgYmFua0FjY291bnQuZ2V0Q3VycmVudFllYXJCYWxhbmNlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBCYW5rQWNjb3VudFtdID0gXy5jbG9uZURlZXAodGhpcy5jYWNoZSk7XG5cbiAgICAgICAgICByZXBsYWNlKHRlbXBDYWNoZVt0ZW1wQ2FjaGUuZmluZEluZGV4KChiYTogQmFua0FjY291bnQpID0+IGJhLmlkID09PSBiYW5rQWNjb3VudC5pZCldLmJhbGFuY2VzLCByZXNwb25zZSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBiYW5rIGFjY291bnQgY3VycmVudCBiYWxhbmNlXG4gICAqL1xuICB1cGRhdGVDdXJyZW50QmFsYW5jZShiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtiYW5rQWNjb3VudC5pZH0vYmFsYW5jZWAsIGJhbmtBY2NvdW50KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCYW5rQWNjb3VudDogQmFua0FjY291bnQgPSBwbGFpblRvQ2xhc3MoQmFua0FjY291bnQsIHJlc3BvbnNlKTtcblxuICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdXBkYXRlZEJhbmtBY2NvdW50KTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFOS19BQ0NPVU5UX1VQREFURUQsIHVwZGF0ZWRCYW5rQWNjb3VudCkpO1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkQmFua0FjY291bnQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0T3duKCk6IE9ic2VydmFibGU8QmFua0FjY291bnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbiAgICAgICAgICByZXR1cm4gYmFua0FjY291bnRzLmZpbHRlcigoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiBiYW5rQWNjb3VudC5pc093bmVyKCtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnRzXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblRvRXZlbnREaXNwYXRjaGVyQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW1xuICAgICAgQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9TSEFSRV9VUERBVEVELFxuICAgICAgQXBwRXZlbnRUeXBlRW51bS5MT0FOX1BBWU9VVF9VUERBVEVELFxuICAgICAgQXBwRXZlbnRUeXBlRW51bS5CQU5LX0NPTk5FQ1RJT05fQURERURcbiAgICBdKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgoYmFua0FjY291bnRzOiBCYW5rQWNjb3VudFtdKSA9PiB7XG4gICAgICAgIHRoaXMuY2FjaGUgPSBiYW5rQWNjb3VudHM7XG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1hY2NvdW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFHaEY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBeUM7SUFIakY7O1FBSUUsc0NBQXNDO1FBQ3RDLFFBQUcsR0FBVyxlQUFlLENBQUM7UUFDOUIsZUFBVSxHQUFHLFdBQVcsQ0FBQztLQWlHMUI7SUEvRkM7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsWUFBMkIsRUFBRSxjQUFzQixFQUFFO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENB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QUFDLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUM5RyxPQUFPLGtCQUFrQixDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTthQUNkLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxZQUEyQixFQUFFLEVBQUU7WUFDbEMsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyw4QkFBOEI7UUFDcEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztZQUM3QixnQkFBZ0IsQ0FBQyxzQkFBc0I7WUFDdkMsZ0JBQWdCLENBQUMsbUJBQW1CO1lBQ3BDLGdCQUFnQixDQUFDLHFCQUFxQjtTQUN2QyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztnSEFuR1Usa0JBQWtCO29IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgYXMgQmFua0FjY291bnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgaGFuZGxpbmcgdXNlcidzIGJhbmsgYWNjb3VudHMgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFua0FjY291bnRTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0FjY291bnRCYXNlLCBCYW5rQWNjb3VudD4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIC8vIGFwaSB1cmwgcGFyYW1ldGVyIGZvciBiYW5rIGFjY291bnRzXG4gIHVybDogc3RyaW5nID0gJ2JhbmstYWNjb3VudHMnO1xuICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG5cbiAgLyoqXG4gICAqIExpc3RlbiBzeXN0ZW0gbm90aWZpY2F0aW9ucyBhbmQgdXBkYXRlIGNhY2hlIHdoZW4gZ290IGJhc2lxIG5vdGlmaWNhdGlvbiByZWNlaXZlZFxuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9FdmVudERpc3BhdGNoZXJDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlZCBtYW51YWwgYmFuayBhY2NvdW50XG4gICAqIEBwYXJhbSBiYW5rQWNjb3VudHNcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zXG4gICAqL1xuICBhZGRCYXRjaChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8QmFua0FjY291bnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGJhbmtBY2NvdW50cylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld0JhbmtBY2NvdW50c0Jhc2U6IEJhbmtBY2NvdW50QmFzZVtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3QmFua0FjY291bnRzOiBCYW5rQWNjb3VudFtdID0gbmV3QmFua0FjY291bnRzQmFzZS5tYXAoKGJhbmtBY2NvdW50QmFzZTogQmFua0FjY291bnRCYXNlKTogQmFua0FjY291bnQgPT4gcGxhaW5Ub0NsYXNzKEJhbmtBY2NvdW50LCBiYW5rQWNjb3VudEJhc2UpKTtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFOS19BQ0NPVU5UX0NSRUFURUQsIG5ld0JhbmtBY2NvdW50cykpO1xuICAgICAgICAgIGNvbnN0IHRlbXBDYWNoZTogQmFua0FjY291bnRbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgIHRlbXBDYWNoZS5wdXNoKC4uLm5ld0JhbmtBY2NvdW50cyk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIG5ld0JhbmtBY2NvdW50cztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGJhbmsgYWNjb3VudCBhbmQgZmlyZSBldmVudFxuICAgKi9cbiAgdXBkYXRlKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCk6IE9ic2VydmFibGU8QmFua0FjY291bnQ+IHtcbiAgICByZXR1cm4gc3VwZXIudXBkYXRlKGJhbmtBY2NvdW50KS5waXBlKFxuICAgICAgbWFwKCh1cGRhdGVkQmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQU5LX0FDQ09VTlRfVVBEQVRFRCwgdXBkYXRlZEJhbmtBY2NvdW50KSk7XG4gICAgICAgIHJldHVybiB1cGRhdGVkQmFua0FjY291bnQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGJhbmsgYWNjb3VudCBvcGVuaW5nIGJhbGFuY2VcbiAgICogQHBhcmFtIGJhbmtBY2NvdW50IEJhbmsgYWNjb3VudCBmb3IgYmFsYW5jZSB1cGRhdGluZ1xuICAgKi9cbiAgdXBkYXRlT3BlbmluZ0JhbGFuY2UoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2JhbmtBY2NvdW50LmlkfS9vcGVuaW5nLWJhbGFuY2VzLyR7YmFua0FjY291bnQuZ2V0Q3VycmVudFllYXJCYWxhbmNlKCkuaWR9YCwgYmFua0FjY291bnQuZ2V0Q3VycmVudFllYXJCYWxhbmNlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBCYW5rQWNjb3VudFtdID0gXy5jbG9uZURlZXAodGhpcy5jYWNoZSk7XG5cbiAgICAgICAgICByZXBsYWNlKHRlbXBDYWNoZVt0ZW1wQ2FjaGUuZmluZEluZGV4KChiYTogQmFua0FjY291bnQpID0+IGJhLmlkID09PSBiYW5rQWNjb3VudC5pZCldLmJhbGFuY2VzLCByZXNwb25zZSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBiYW5rIGFjY291bnQgY3VycmVudCBiYWxhbmNlXG4gICAqL1xuICB1cGRhdGVDdXJyZW50QmFsYW5jZShiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtiYW5rQWNjb3VudC5pZH0vYmFsYW5jZWAsIGJhbmtBY2NvdW50KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCYW5rQWNjb3VudDogQmFua0FjY291bnQgPSBwbGFpblRvQ2xhc3MoQmFua0FjY291bnQsIHJlc3BvbnNlKTtcblxuICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdXBkYXRlZEJhbmtBY2NvdW50KTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFOS19BQ0NPVU5UX1VQREFURUQsIHVwZGF0ZWRCYW5rQWNjb3VudCkpO1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkQmFua0FjY291bnQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0T3duKCk6IE9ic2VydmFibGU8QmFua0FjY291bnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbiAgICAgICAgICByZXR1cm4gYmFua0FjY291bnRzLmZpbHRlcigoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiBiYW5rQWNjb3VudC5pc093bmVyKCtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnRzXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblRvRXZlbnREaXNwYXRjaGVyQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW1xuICAgICAgQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9TSEFSRV9VUERBVEVELFxuICAgICAgQXBwRXZlbnRUeXBlRW51bS5MT0FOX1BBWU9VVF9VUERBVEVELFxuICAgICAgQXBwRXZlbnRUeXBlRW51bS5CQU5LX0NPTk5FQ1RJT05fQURERURcbiAgICBdKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -5,6 +5,9 @@ import { BankConnection } from '../../../../models/bank/bank-connection';
5
5
  import { RestService } from '../../rest/rest.service';
6
6
  import { AppEvent } from '../../../../models/event/app-event';
7
7
  import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
8
+ import cloneDeep from 'lodash/cloneDeep';
9
+ import { replace } from '../../../../functions/array';
10
+ import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
8
11
  import * as i0 from "@angular/core";
9
12
  /**
10
13
  * BankConnection means user account at specific bank (usually each user has only one at the same bank)
@@ -18,8 +21,11 @@ export class BankConnectionService extends RestService {
18
21
  }
19
22
  listenEvents() {
20
23
  this.listenToAddedBankAccounts();
24
+ this.listenBasiqJobCreated();
25
+ this.listenConnectionUpdated();
26
+ this.listenNotifications();
21
27
  }
22
- post(bankConnection) {
28
+ add(bankConnection) {
23
29
  return this.http.post(`${this.environment.apiV2}/${this.url}`, bankConnection)
24
30
  .pipe(map((bankConnectionBase) => {
25
31
  this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BANK_CONNECTION_ADDED, null));
@@ -31,6 +37,55 @@ export class BankConnectionService extends RestService {
31
37
  this.resetCache();
32
38
  });
33
39
  }
40
+ /**
41
+ * When user log in to bank, basiq create a job. We create a bank connection with based on this job
42
+ */
43
+ listenBasiqJobCreated() {
44
+ this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_JOB_CREATED).subscribe((result) => {
45
+ // push connection to cache temporary to show it to user directly with pending status and not wait until backend loaded
46
+ const tempCache = cloneDeep(this.cache);
47
+ result.connection.setPending();
48
+ tempCache.push(result.connection);
49
+ this.cache = tempCache;
50
+ this.cacheSubject.next(tempCache);
51
+ this.add(plainToClass(BankConnection, { basiqJob: { externalId: result.jobId } })).subscribe((newConnection) => {
52
+ // replace temporary connection with real saved connection
53
+ // no replace() because connection does not have id yet
54
+ tempCache.splice(-1, 1, newConnection);
55
+ this.cache = cloneDeep(tempCache);
56
+ this.cacheSubject.next(tempCache);
57
+ });
58
+ });
59
+ }
60
+ /**
61
+ * When basiq connection disconnected we create a basiq job and update this connection
62
+ */
63
+ listenConnectionUpdated() {
64
+ this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_CONNECTION_UPDATED).subscribe((result) => {
65
+ // replace connection to cache temporary to show pending status until backend loaded
66
+ const tempCache = cloneDeep(this.cache);
67
+ result.connection.setPending();
68
+ replace(tempCache, result.connection);
69
+ this.cache = tempCache;
70
+ this.cacheSubject.next(tempCache);
71
+ this.add(plainToClass(BankConnection, { basiqJob: { externalId: result.jobId } })).subscribe((updatedConnection) => {
72
+ // replace temporary connection again with real updated connection
73
+ replace(tempCache, updatedConnection);
74
+ this.cache = cloneDeep(tempCache);
75
+ this.cacheSubject.next(tempCache);
76
+ });
77
+ });
78
+ }
79
+ /**
80
+ * Update cache when basiq login failed to get actual connections statuses
81
+ */
82
+ listenNotifications() {
83
+ this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
84
+ if (!notification.isRead && notification.eventType === UserEventTypeClientTypeEnum.BASIQ_AUTHORIZATION_FAIL) {
85
+ this.resetCache();
86
+ }
87
+ });
88
+ }
34
89
  }
35
90
  BankConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankConnectionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
36
91
  BankConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankConnectionService, providedIn: 'root' });
@@ -40,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
40
95
  providedIn: 'root'
41
96
  }]
42
97
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBR2hGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxXQUErQztJQUgxRjs7UUFJRSxlQUFVLEdBQUcsY0FBYyxDQUFDO1FBQzVCLFFBQUcsR0FBVyxrQkFBa0IsQ0FBQztLQXNCbEM7SUFwQkMsWUFBWTtRQUNWLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLENBQUMsY0FBOEI7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLENBQUM7YUFDM0UsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGtCQUFzQyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRWpHLE9BQU8sWUFBWSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25GLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O21IQXZCVSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYW5rQ29ubmVjdGlvbiBhcyBCYW5rQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvYmFuay9iYW5rLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEJhbmtDb25uZWN0aW9uIG1lYW5zIHVzZXIgYWNjb3VudCBhdCBzcGVjaWZpYyBiYW5rICh1c3VhbGx5IGVhY2ggdXNlciBoYXMgb25seSBvbmUgYXQgdGhlIHNhbWUgYmFuaylcbiAqIHNlcnZpY2UgaGFuZGxlcyBCYW5rQ29ubmVjdGlvbiBtYW5hZ2VtZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhbmtDb25uZWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtDb25uZWN0aW9uQmFzZSwgQmFua0Nvbm5lY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBtb2RlbENsYXNzID0gQmFua0Nvbm5lY3Rpb247XG4gIHVybDogc3RyaW5nID0gJ2JhbmstY29ubmVjdGlvbnMnO1xuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQWRkZWRCYW5rQWNjb3VudHMoKTtcbiAgfVxuXG4gIHBvc3QoYmFua0Nvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKTogT2JzZXJ2YWJsZTxCYW5rQ29ubmVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGJhbmtDb25uZWN0aW9uKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoYmFua0Nvbm5lY3Rpb25CYXNlOiBCYW5rQ29ubmVjdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFOS19DT05ORUNUSU9OX0FEREVELCBudWxsKSk7XG5cbiAgICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKEJhbmtDb25uZWN0aW9uLCBiYW5rQ29ubmVjdGlvbkJhc2UpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGxpc3RlblRvQWRkZWRCYW5rQWNjb3VudHMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uQkFOS19BQ0NPVU5UX0NSRUFURUQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFaEYsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOztBQUVwRzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBK0M7SUFIMUY7O1FBSUUsZUFBVSxHQUFHLGNBQWMsQ0FBQztRQUM1QixRQUFHLEdBQVcsa0JBQWtCLENBQUM7S0FtRmxDO0lBakZDLFlBQVk7UUFDVixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFD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QUUsRUFBRTtnQkFDN0gsa0VBQWtFO2dCQUNsRSxPQUFPLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBRXRDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUU7WUFDM0csSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSywyQkFBMkIsQ0FBQyx3QkFBd0IsRUFBRTtnQkFDM0csSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzttSEFwRlUscUJBQXFCO3VIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb24gYXMgQmFua0Nvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL0VudW1zL3VzZXItZXZlbnQtdHlwZS1jbGllbnQtdHlwZS5lbnVtJztcblxuLyoqXG4gKiBCYW5rQ29ubmVjdGlvbiBtZWFucyB1c2VyIGFjY291bnQgYXQgc3BlY2lmaWMgYmFuayAodXN1YWxseSBlYWNoIHVzZXIgaGFzIG9ubHkgb25lIGF0IHRoZSBzYW1lIGJhbmspXG4gKiBzZXJ2aWNlIGhhbmRsZXMgQmFua0Nvbm5lY3Rpb24gbWFuYWdlbWVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYW5rQ29ubmVjdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxCYW5rQ29ubmVjdGlvbkJhc2UsIEJhbmtDb25uZWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgbW9kZWxDbGFzcyA9IEJhbmtDb25uZWN0aW9uO1xuICB1cmw6IHN0cmluZyA9ICdiYW5rLWNvbm5lY3Rpb25zJztcblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub0FkZGVkQmFua0FjY291bnRzKCk7XG4gICAgdGhpcy5saXN0ZW5CYXNpcUpvYkNyZWF0ZWQoKTtcbiAgICB0aGlzLmxpc3RlbkNvbm5lY3Rpb25VcGRhdGVkKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBhZGQoYmFua0Nvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKTogT2JzZXJ2YWJsZTxCYW5rQ29ubmVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGJhbmtDb25uZWN0aW9uKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoYmFua0Nvbm5lY3Rpb25CYXNlOiBCYW5rQ29ubmVjdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFOS19DT05ORUNUSU9OX0FEREVELCBudWxsKSk7XG5cbiAgICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKEJhbmtDb25uZWN0aW9uLCBiYW5rQ29ubmVjdGlvbkJhc2UpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGxpc3RlblRvQWRkZWRCYW5rQWNjb3VudHMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uQkFOS19BQ0NPVU5UX0NSRUFURUQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHVzZXIgbG9nIGluIHRvIGJhbmssIGJhc2lxIGNyZWF0ZSBhIGpvYi4gV2UgY3JlYXRlIGEgYmFuayBjb25uZWN0aW9uIHdpdGggYmFzZWQgb24gdGhpcyBqb2JcbiAgICovXG4gIGxpc3RlbkJhc2lxSm9iQ3JlYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9KT0JfQ1JFQVRFRCkuc3Vic2NyaWJlKChyZXN1bHQ6IHsgam9iSWQ6IHN0cmluZywgY29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24gfSkgPT4ge1xuICAgICAgLy8gcHVzaCBjb25uZWN0aW9uIHRvIGNhY2hlIHRlbXBvcmFyeSB0byBzaG93IGl0IHRvIHVzZXIgZGlyZWN0bHkgd2l0aCBwZW5kaW5nIHN0YXR1cyBhbmQgbm90IHdhaXQgdW50aWwgYmFja2VuZCBsb2FkZWRcbiAgICAgIGNvbnN0IHRlbXBDYWNoZTogQmFua0Nvbm5lY3Rpb25bXSA9IGNsb25lRGVlcCh0aGlzLmNhY2hlKTtcbiAgICAgIHJlc3VsdC5jb25uZWN0aW9uLnNldFBlbmRpbmcoKTtcbiAgICAgIHRlbXBDYWNoZS5wdXNoKHJlc3VsdC5jb25uZWN0aW9uKTtcblxuICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGVtcENhY2hlKTtcblxuICAgICAgdGhpcy5hZGQocGxhaW5Ub0NsYXNzKEJhbmtDb25uZWN0aW9uLCB7YmFzaXFKb2I6IHtleHRlcm5hbElkOiByZXN1bHQuam9iSWR9fSkpLnN1YnNjcmliZSgobmV3Q29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pID0+IHtcbiAgICAgICAgLy8gcmVwbGFjZSB0ZW1wb3JhcnkgY29ubmVjdGlvbiB3aXRoIHJlYWwgc2F2ZWQgY29ubmVjdGlvblxuICAgICAgICAvLyBubyByZXBsYWNlKCkgYmVjYXVzZSBjb25uZWN0aW9uIGRvZXMgbm90IGhhdmUgaWQgeWV0XG4gICAgICAgIHRlbXBDYWNoZS5zcGxpY2UoLTEsIDEsIG5ld0Nvbm5lY3Rpb24pXG5cbiAgICAgICAgdGhpcy5jYWNoZSA9IGNsb25lRGVlcCh0ZW1wQ2FjaGUpO1xuICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRlbXBDYWNoZSk7XG4gICAgICB9KTtcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYmFzaXEgY29ubmVjdGlvbiBkaXNjb25uZWN0ZWQgd2UgY3JlYXRlIGEgYmFzaXEgam9iIGFuZCB1cGRhdGUgdGhpcyBjb25uZWN0aW9uXG4gICAqL1xuICBsaXN0ZW5Db25uZWN0aW9uVXBkYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9DT05ORUNUSU9OX1VQREFURUQpLnN1YnNjcmliZSgocmVzdWx0OiB7IGpvYklkOiBzdHJpbmcsIGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uIH0pID0+IHtcbiAgICAgIC8vIHJlcGxhY2UgY29ubmVjdGlvbiB0byBjYWNoZSB0ZW1wb3JhcnkgdG8gc2hvdyBwZW5kaW5nIHN0YXR1cyB1bnRpbCBiYWNrZW5kIGxvYWRlZFxuICAgICAgY29uc3QgdGVtcENhY2hlOiBCYW5rQ29ubmVjdGlvbltdID0gY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgcmVzdWx0LmNvbm5lY3Rpb24uc2V0UGVuZGluZygpO1xuICAgICAgcmVwbGFjZSh0ZW1wQ2FjaGUsIHJlc3VsdC5jb25uZWN0aW9uKTtcblxuICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGVtcENhY2hlKTtcblxuICAgICAgdGhpcy5hZGQocGxhaW5Ub0NsYXNzKEJhbmtDb25uZWN0aW9uLCB7YmFzaXFKb2I6IHtleHRlcm5hbElkOiByZXN1bHQuam9iSWR9fSkpLnN1YnNjcmliZSgodXBkYXRlZENvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKSA9PiB7XG4gICAgICAgIC8vIHJlcGxhY2UgdGVtcG9yYXJ5IGNvbm5lY3Rpb24gYWdhaW4gd2l0aCByZWFsIHVwZGF0ZWQgY29ubmVjdGlvblxuICAgICAgICByZXBsYWNlKHRlbXBDYWNoZSwgdXBkYXRlZENvbm5lY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuY2FjaGUgPSBjbG9uZURlZXAodGVtcENhY2hlKTtcbiAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0ZW1wQ2FjaGUpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY2FjaGUgd2hlbiBiYXNpcSBsb2dpbiBmYWlsZWQgdG8gZ2V0IGFjdHVhbCBjb25uZWN0aW9ucyBzdGF0dXNlc1xuICAgKi9cbiAgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiBub3RpZmljYXRpb24uZXZlbnRUeXBlID09PSBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0uQkFTSVFfQVVUSE9SSVpBVElPTl9GQUlMKSB7XG4gICAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtY29ubmVjdGlvbnMtcmVzcG9uc2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvYmFuay9iYXNpcS9iYXNpcS1jb25uZWN0aW9ucy1yZXNwb25zZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzcG9uc2UgZnJvbSBCYXNpcSBhcGkgd2l0aCBkYXRhIHRvIGNyZWF0ZSBhIEJhbmsgQ29ubmVjdGlvblxuICogaHR0cHM6Ly9hcGkuYmFzaXEuaW8vdjIuMC9kb2NzL2J1aWxkLXlvdXItb3duLTEjc3RlcC0zLWNyZWF0ZS1hLWNvbm5lY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNpcUNvbm5lY3Rpb25zUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBsaW5rczogb2JqZWN0O1xuICB0eXBlOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtdG9rZW4tcmVzcG9uc2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvYmFuay9iYXNpcS9iYXNpcS10b2tlbi1yZXNwb25zZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzcG9uc2UgY29udGFpbnMgQmFzaXEgdG9rZW5cbiAqIGh0dHA6Ly90dC5zZXJ2aWNlL2FwaS9kb2MgKEdFVCAvYXBpL2Jhc2lxL3Rva2VucylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNpcVRva2VuUmVzcG9uc2Uge1xuICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { BasiqToken } from '../../../../models/bank/basiq-token';
3
+ import { ReplaySubject } from 'rxjs';
4
+ import { map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ export class BasiqTokenService {
8
+ constructor(http, environment) {
9
+ this.http = http;
10
+ this.environment = environment;
11
+ this.cacheSubject = new ReplaySubject(1);
12
+ }
13
+ /**
14
+ * Access token to use basiq flow
15
+ */
16
+ get() {
17
+ if (!this.cache || this.cache.isExpired()) {
18
+ this.http.get(`${this.environment.apiV2}/basiq/tokens`)
19
+ .pipe(map((response) => {
20
+ const now = new Date().getTime();
21
+ return new BasiqToken(response.access_token, new Date(now + response.expires_in * 1000));
22
+ }))
23
+ .subscribe((token) => {
24
+ this.cache = token;
25
+ this.cacheSubject.next(token);
26
+ });
27
+ }
28
+ return this.cacheSubject.asObservable();
29
+ }
30
+ }
31
+ BasiqTokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
32
+ BasiqTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenService, providedIn: 'root' });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenService, decorators: [{
34
+ type: Injectable,
35
+ args: [{
36
+ providedIn: 'root'
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
39
+ type: Inject,
40
+ args: ['environment']
41
+ }] }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtdG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEtdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU9yQyxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQ1ksSUFBZ0IsRUFDTyxXQUFnQjtRQUR2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ08sZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFKbkQsaUJBQVksR0FBOEIsSUFBSSxhQUFhLENBQWEsQ0FBQyxDQUFDLENBQUM7SUFLdkUsQ0FBQztJQUVMOztPQUVHO0lBQ0gsR0FBRztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssZUFBZSxDQUFDO2lCQUNwRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBNEIsRUFBYyxFQUFFO2dCQUUvQyxNQUFNLEdBQUcsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN6QyxPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRixDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7OytHQTdCVSxpQkFBaUIsNENBTWxCLGFBQWE7bUhBTlosaUJBQWlCLGNBRmhCLE1BQU07NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNpcVRva2VuIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFzaXEtdG9rZW4nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzaXFUb2tlblJlc3BvbnNlIH0gZnJvbSAnLi9iYXNpcS10b2tlbi1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFzaXFUb2tlblNlcnZpY2Uge1xuICBjYWNoZTogQmFzaXFUb2tlbjtcbiAgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEJhc2lxVG9rZW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHsgfVxuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdG9rZW4gdG8gdXNlIGJhc2lxIGZsb3dcbiAgICovXG4gIGdldCgpOiBPYnNlcnZhYmxlPEJhc2lxVG9rZW4+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUgfHwgdGhpcy5jYWNoZS5pc0V4cGlyZWQoKSkge1xuICAgICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9iYXNpcS90b2tlbnNgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNpcVRva2VuUmVzcG9uc2UpOiBCYXNpcVRva2VuID0+IHtcblxuICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFzaXFUb2tlbihyZXNwb25zZS5hY2Nlc3NfdG9rZW4sIG5ldyBEYXRlKG5vdyArIHJlc3BvbnNlLmV4cGlyZXNfaW4gKiAxMDAwKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogQmFzaXFUb2tlbikgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0b2tlbjtcbiAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRva2VuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=
@@ -1,21 +1,29 @@
1
- // @TODO Basiq 1.0 remove if we will use basiq 2.0 or refactor if we stay with basiq 1.0
2
- import { Injectable } from '@angular/core';
3
- import { ReplaySubject } from 'rxjs';
1
+ import { Inject, Injectable } from '@angular/core';
4
2
  import { map } from 'rxjs/operators';
5
- import { BankAccount } from '../../../../models/bank/bank-account';
3
+ import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
6
4
  import { RestService } from '../../rest/rest.service';
7
- import { BasiqToken } from '../../../../models/bank/basiq-token';
5
+ import { BankAccount } from '../../../../models/bank/bank-account';
8
6
  import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
9
- import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
7
+ import { AppEvent } from '../../../../models/event/app-event';
10
8
  import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common/http";
10
+ import * as i2 from "../../../event/event-dispatcher.service";
11
+ import * as i3 from "../../../toast/toast.service";
12
+ import * as i4 from "../bank-connection/bank-connection.service";
11
13
  /**
12
14
  * basiq is a middleman between bank and user
13
15
  * service is responsible for fetching bank related information
14
16
  */
15
17
  export class BasiqService extends RestService {
16
- constructor() {
17
- super(...arguments);
18
- this.tokenSubject = new ReplaySubject();
18
+ constructor(http, eventDispatcherService, environment, toastService,
19
+ // init BankConnectionService to listen events
20
+ bankConnectionService) {
21
+ super(http, eventDispatcherService, environment, toastService);
22
+ this.http = http;
23
+ this.eventDispatcherService = eventDispatcherService;
24
+ this.environment = environment;
25
+ this.toastService = toastService;
26
+ this.bankConnectionService = bankConnectionService;
19
27
  this.url = 'basiq/accounts';
20
28
  this.modelClass = BankAccount;
21
29
  }
@@ -23,45 +31,25 @@ export class BasiqService extends RestService {
23
31
  * Listen events from Event Dispatcher service
24
32
  */
25
33
  listenEvents() {
26
- this.listenToBankConnectionAdded();
27
34
  this.listenNotifications();
28
35
  }
29
36
  /**
30
- * access token to use basiq connect ui iframe
37
+ * Create Basiq job for the new bank connection creation
31
38
  */
32
- getToken() {
33
- if (!this.token || this.token.isExpired()) {
34
- this.http.get(`${this.environment.apiV2}/basiq/tokens`)
35
- .pipe(map((response) => {
36
- const now = new Date().getTime();
37
- return new BasiqToken(response['access_token'], new Date(now + response['expires_in'] * 1000));
38
- }))
39
- .subscribe((token) => {
40
- this.tokenSubject.next(token);
41
- });
42
- }
43
- return this.tokenSubject.asObservable();
44
- }
45
- getConnections() {
46
- return this.get().pipe(map((bankAccounts) => {
47
- // get all connections
48
- const connections = bankAccounts.map((bankAccount) => {
49
- return bankAccount.bankConnection;
50
- });
51
- // return without duplicates
52
- return [...new Map(connections.map((connection) => [connection.id, connection])).values()];
39
+ createConnection(data, userId, connection) {
40
+ return this.http.post(`${BasiqService.basiqApiUrl}/users/${userId}/connections`, data).pipe(map((response) => {
41
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_JOB_CREATED, { jobId: response.id, connection }));
42
+ return response.id;
53
43
  }));
54
44
  }
55
45
  /**
56
- * Listen to EventDispatcherService event related to added Bank connection
46
+ * Update disconnected bank connection
57
47
  */
58
- listenToBankConnectionAdded() {
59
- this.eventDispatcherService.on(AppEventTypeEnum.BANK_CONNECTION_ADDED).subscribe(() => {
60
- this.fetch().subscribe((bankAccounts) => {
61
- this.cache = bankAccounts;
62
- this.updateCache();
63
- });
64
- });
48
+ updateConnection(data, userId, connection) {
49
+ return this.http.post(`${BasiqService.basiqApiUrl}/users/${userId}/connections`, Object.assign(data, { id: connection.externalId })).pipe(map((response) => {
50
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_CONNECTION_UPDATED, { jobId: response.id, connection }));
51
+ return response.id;
52
+ }));
65
53
  }
66
54
  /**
67
55
  * listen to notifications to update basiq accounts list
@@ -70,17 +58,20 @@ export class BasiqService extends RestService {
70
58
  this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
71
59
  if (!notification.isRead && notification.eventType === UserEventTypeClientTypeEnum.BASIQ_NEW_ACCOUNTS) {
72
60
  this.resetCache();
73
- this.get().subscribe();
74
61
  }
75
62
  });
76
63
  }
77
64
  }
78
- BasiqService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
65
+ BasiqService.basiqApiUrl = 'https://au-api.basiq.io';
66
+ BasiqService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }, { token: i3.ToastService }, { token: i4.BankConnectionService }], target: i0.ɵɵFactoryTarget.Injectable });
79
67
  BasiqService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, providedIn: 'root' });
80
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, decorators: [{
81
69
  type: Injectable,
82
70
  args: [{
83
71
  providedIn: 'root'
84
72
  }]
85
- }] });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RkFBd0Y7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFFcEc7OztHQUdHO0FBSUgsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUF5QztJQUgzRTs7UUFLRSxpQkFBWSxHQUE4QixJQUFJLGFBQWEsRUFBYyxDQUFDO1FBQzFFLFFBQUcsR0FBVyxnQkFBZ0IsQ0FBQztRQUMvQixlQUFVLEdBQUcsV0FBVyxDQUFDO0tBb0UxQjtJQWxFQzs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxlQUFlLENBQUM7aUJBQ3BELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQ3ZCLE1BQU0sR0FBRyxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBRXpDLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNqRyxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3BCLEdBQUcsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRTtZQUNsQyxzQkFBc0I7WUFDdEIsTUFBTSxXQUFXLEdBQXFCLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUU7Z0JBQ2xGLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztZQUVILDRCQUE0QjtZQUM1QixPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUEwQixFQUFRLEVBQUU7WUFDakgsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSywyQkFBMkIsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDckcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzBHQXZFVSxZQUFZOzhHQUFaLFlBQVksY0FGWCxNQUFNOzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQFRPRE8gQmFzaXEgMS4wIHJlbW92ZSBpZiB3ZSB3aWxsIHVzZSBiYXNpcSAyLjAgb3IgcmVmYWN0b3IgaWYgd2Ugc3RheSB3aXRoIGJhc2lxIDEuMFxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgYXMgQmFua0FjY291bnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzaXFUb2tlbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2Jhc2lxLXRva2VuJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtY2xpZW50LXR5cGUuZW51bSc7XG5cbi8qKlxuICogYmFzaXEgaXMgYSBtaWRkbGVtYW4gYmV0d2VlbiBiYW5rIGFuZCB1c2VyXG4gKiBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIGZvciBmZXRjaGluZyBiYW5rIHJlbGF0ZWQgaW5mb3JtYXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFzaXFTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0FjY291bnRCYXNlLCBCYW5rQWNjb3VudD4ge1xuICB0b2tlbjogQmFzaXFUb2tlbjtcbiAgdG9rZW5TdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEJhc2lxVG9rZW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4oKTtcbiAgdXJsOiBzdHJpbmcgPSAnYmFzaXEvYWNjb3VudHMnO1xuICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG5cbiAgLyoqXG4gICAqIExpc3RlbiBldmVudHMgZnJvbSBFdmVudCBEaXNwYXRjaGVyIHNlcnZpY2VcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQmFua0Nvbm5lY3Rpb25BZGRlZCgpO1xuICAgIHRoaXMubGlzdGVuTm90aWZpY2F0aW9ucygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFjY2VzcyB0b2tlbiB0byB1c2UgYmFzaXEgY29ubmVjdCB1aSBpZnJhbWVcbiAgICovXG4gIGdldFRva2VuKCk6IE9ic2VydmFibGU8QmFzaXFUb2tlbj4ge1xuICAgIGlmICghdGhpcy50b2tlbiB8fCB0aGlzLnRva2VuLmlzRXhwaXJlZCgpKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL3Rva2Vuc2ApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgICAgICAgcmV0dXJuIG5ldyBCYXNpcVRva2VuKHJlc3BvbnNlWydhY2Nlc3NfdG9rZW4nXSwgbmV3IERhdGUobm93ICsgcmVzcG9uc2VbJ2V4cGlyZXNfaW4nXSAqIDEwMDApKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHRva2VuOiBCYXNpcVRva2VuKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2tlblN1YmplY3QubmV4dCh0b2tlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldENvbm5lY3Rpb25zKCk6IE9ic2VydmFibGU8QmFua0Nvbm5lY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICAvLyBnZXQgYWxsIGNvbm5lY3Rpb25zXG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25zOiBCYW5rQ29ubmVjdGlvbltdID0gYmFua0FjY291bnRzLm1hcCgoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGJhbmtBY2NvdW50LmJhbmtDb25uZWN0aW9uO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyByZXR1cm4gd2l0aG91dCBkdXBsaWNhdGVzXG4gICAgICAgIHJldHVybiBbLi4ubmV3IE1hcChjb25uZWN0aW9ucy5tYXAoKGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKSA9PiBbY29ubmVjdGlvbi5pZCwgY29ubmVjdGlvbl0pKS52YWx1ZXMoKV07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBhZGRlZCBCYW5rIGNvbm5lY3Rpb25cbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBTktfQ09OTkVDVElPTl9BRERFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gYmFua0FjY291bnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuXG4vLyBAVE9ETyBCYXNpcSAzLjAgZnVuY3Rpb25hbGl0eSByZW1vdmUgd2hlbiB3ZSBkZWNpZGUgd2hhdCBiYXNpcSB2ZXJzaW9uIHdlIHdpbGwgdXNlICgxIG9yIDIpXG4vLyBpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBpbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG4vLyBpbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG4vLyBpbXBvcnQgeyBCYW5rQWNjb3VudCBhcyBCYW5rQWNjb3VudEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuLy8gaW1wb3J0IHsgVXNlckV2ZW50VHlwZUNsaWVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLWNsaWVudC10eXBlLmVudW0nO1xuLy8gaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Quc2VydmljZSc7XG4vLyBpbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG4vLyBpbXBvcnQgeyBCYXNpcVRva2VuIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFzaXEtdG9rZW4nO1xuLy8gaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbi8vIGltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbi8vIGltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uJztcbi8vIGltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuLy8gaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50Jztcbi8vIGltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvdXNlci91c2VyJztcbi8vIGltcG9ydCB7IEJhbmtDb25uZWN0aW9uIGFzIEJhbmtDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG4vL1xuLy8gLyoqXG4vLyAgKiBCYXNpcSBjb25zZW50IFVJIGluaXRpYWwgVVJMLiBSZXBsYWNlIFVTRVJfSUQgYW5kIFRPS0VOIGJ5IHVzZXIgZGF0YSArIGhhbmRsZSBhY3Rpb24gcGFyYW1ldGVyXG4vLyAgKi9cbi8vIGNvbnN0IEJBU0lRX0NPTlNFTlRfVVJMID0gJ2h0dHBzOi8vY29uc2VudC5iYXNpcS5pby9ob21lP3VzZXJJZD1VU0VSX0lEJnRva2VuPVRPS0VOJmFjdGlvbj1jb25uZWN0Jztcbi8vXG4vLyAvKipcbi8vICAqIEV2ZW50IG1lc3NhZ2UgbmFtZSB3ZSBsaXN0ZW4gdG8gaGFuZGxlIGJhc2lxIFVJIHJlc3VsdFxuLy8gICovXG4vLyBjb25zdCBGSU5JU0hfQkFTSVFfRVZFTlQgPSAnZmluaXNoLWJhc2lxJztcbi8vXG4vLyAvKipcbi8vICAqIGJhc2lxIGlzIGEgbWlkZGxlbWFuIGJldHdlZW4gYmFuayBhbmQgdXNlclxuLy8gICogc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgZmV0Y2hpbmcgYmFuayByZWxhdGVkIGluZm9ybWF0aW9uXG4vLyAgKi9cbi8vIEBJbmplY3RhYmxlKHtcbi8vICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4vLyB9KVxuLy8gZXhwb3J0IGNsYXNzIEJhc2lxU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtBY2NvdW50QmFzZSwgQmFua0FjY291bnQ+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuLy8gICB0b2tlbjogQmFzaXFUb2tlbjtcbi8vICAgdG9rZW5TdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEJhc2lxVG9rZW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4oKTtcbi8vICAgdXJsOiBzdHJpbmcgPSAnYmFzaXEvYWNjb3VudHMnO1xuLy8gICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG4vL1xuLy8gICAvKipcbi8vICAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZVxuLy8gICAgKi9cbi8vICAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuLy8gICAgIHRoaXMubGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk7XG4vLyAgICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4vLyAgICAgdGhpcy5saXN0ZW5CYXNpcUNvbmNlbnRVcGRhdGVkKCk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBVcGRhdGUgdXNlcidzIGJhc2lxIGNvbnNlbnRzIGRhdGEgb24gYmFja2VuZFxuLy8gICAgKi9cbi8vICAgY29uZmlybUNvbnNlbnRzKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuLy8gICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL2NvbnNlbnRzYCwge30pLnBpcGUoXG4vLyAgICAgICBtYXAoKGlzQ29uZmlybWVkOiBib29sZWFuKSA9PiB7XG4vLyAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9DT05TRU5UX1VQREFURUQsIGlzQ29uZmlybWVkKSk7XG4vLyAgICAgICB9KVxuLy8gICAgICk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBOb3RpZnkgYmFja2VuZCB0byB1cGRhdGUgY29ubmVjdGlvbnNcbi8vICAgICovXG4vLyAgIHVwZGF0ZUNvbm5lY3Rpb25zKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuLy8gICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9iYXNpcS9jb25uZWN0aW9uc2AsIHt9KS5waXBlKFxuLy8gICAgICAgbWFwKChjb25uZWN0aW9uczogQmFua0Nvbm5lY3Rpb25CYXNlW10pID0+IHtcbi8vICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0NPTk5FQ1RJT05fVVBEQVRFRCwgISFjb25uZWN0aW9ucykpO1xuLy8gICAgICAgfSlcbi8vICAgICApO1xuLy8gICB9XG4vL1xuLy8gICAvKipcbi8vICAgICogYWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBjb25uZWN0IHVpIGlmcmFtZVxuLy8gICAgKi9cbi8vICAgZ2V0VG9rZW4oKTogT2JzZXJ2YWJsZTxCYXNpcVRva2VuPiB7XG4vLyAgICAgaWYgKCF0aGlzLnRva2VuIHx8IHRoaXMudG9rZW4uaXNFeHBpcmVkKCkpIHtcbi8vICAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vYmFzaXEvdG9rZW5zYClcbi8vICAgICAgICAgLnBpcGUoXG4vLyAgICAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KTogQmFzaXFUb2tlbiA9PiB7XG4vL1xuLy8gICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbi8vICAgICAgICAgICAgIHJldHVybiBuZXcgQmFzaXFUb2tlbihyZXNwb25zZVsnYWNjZXNzX3Rva2VuJ10sIG5ldyBEYXRlKG5vdyArIHJlc3BvbnNlWydleHBpcmVzX2luJ10gKiAxMDAwKSk7XG4vLyAgICAgICAgICAgfSlcbi8vICAgICAgICAgKVxuLy8gICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogQmFzaXFUb2tlbikgPT4ge1xuLy8gICAgICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbi8vICAgICAgICAgICB0aGlzLnRva2VuU3ViamVjdC5uZXh0KHRva2VuKTtcbi8vICAgICAgICAgfSk7XG4vLyAgICAgfVxuLy9cbi8vICAgICByZXR1cm4gdGhpcy50b2tlblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBHZXQgbGlzdCBvZiB1c2VyJ3MgYmFuayBjb25lY3Rpb25zXG4vLyAgICAqL1xuLy8gICBnZXRDb25uZWN0aW9ucygpOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uW10+IHtcbi8vICAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuLy8gICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbi8vICAgICAgICAgLy8gZ2V0IGFsbCBjb25uZWN0aW9uc1xuLy8gICAgICAgICBjb25zdCBjb25uZWN0aW9uczogQmFua0Nvbm5lY3Rpb25bXSA9IGJhbmtBY2NvdW50cy5tYXAoKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCkgPT4ge1xuLy8gICAgICAgICAgIHJldHVybiBiYW5rQWNjb3VudC5iYW5rQ29ubmVjdGlvbjtcbi8vICAgICAgICAgfSk7XG4vL1xuLy8gICAgICAgICAvLyByZXR1cm4gd2l0aG91dCBkdXBsaWNhdGVzXG4vLyAgICAgICAgIHJldHVybiBbLi4ubmV3IE1hcChjb25uZWN0aW9ucy5tYXAoKGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKSA9PiBbY29ubmVjdGlvbi5pZCwgY29ubmVjdGlvbl0pKS52YWx1ZXMoKV07XG4vLyAgICAgICB9KVxuLy8gICAgICk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBMaXN0ZW4gcmVzcG9uc2UgZnJvbSBiYXNpcSBVSSB0byBoYW5kbGUgcmVzdWx0LlxuLy8gICAgKiBAcGFyYW0gaXNCYXNpcUNvbnNlbnRFeGlzdCBmbGFnIGZyb20gVXNlci5DbGllbnREZXRhaWxzIC0gdHJ1ZSBpZiB1c2VyIGNvbmZpcm1lZCBiYXNpcSBjb25zZW50XG4vLyAgICAqIEBwYXJhbSBjYWxsYmFjayBmdW5jdGlvbiB3ZSBydW4gYWZ0ZXIgYmFzaXEgVUkgd29yayBpcyBmaW5pc2hlZFxuLy8gICAgKi9cbi8vICAgbGlzdGVuQmFzaXFSZXNwb25zZShpc0Jhc2lxQ29uc2VudEV4aXN0OiBib29sZWFuLCBjYWxsYmFjazogKCkgPT4gYW55KTogdm9pZCB7XG4vLyAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAobWVzc2FnZTogTWVzc2FnZUV2ZW50KSA9PiB7XG4vLyAgICAgICBpZiAobWVzc2FnZS5kYXRhICE9PSBGSU5JU0hfQkFTSVFfRVZFTlQpIHtcbi8vICAgICAgICAgcmV0dXJuO1xuLy8gICAgICAgfVxuLy9cbi8vICAgICAgIC8vIHVwZGF0ZSB1c2VyJ3MgYmFzaXEgY29uc2VudCBjb25maXJtYXRpb24gc3RhdHVzIGZvciB0aGUgZmlyc3QgYmFzaXEgdWkgcnVuXG4vLyAgICAgICBpZiAoaXNCYXNpcUNvbnNlbnRFeGlzdCkge1xuLy8gICAgICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25zKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbi8vICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgIHRoaXMuY29uZmlybUNvbnNlbnRzKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbi8vICAgICAgIH1cbi8vXG4vLyAgICAgICBjYWxsYmFjaygpO1xuLy8gICAgIH0sIHtvbmNlOiB0cnVlfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBHZXQgVVJMIHdpdGggZmlsbGVkIHBhcmFtcyB0byBydW4gYmFzaXEgVUkgaWZyYW1lXG4vLyAgICAqL1xuLy8gICBnZW5lcmF0ZUJhc2lxQ29uc2VudFVybCh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbi8vICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbigpLnBpcGUoXG4vLyAgICAgICBtYXAoKHRva2VuOiBCYXNpcVRva2VuKTogc3RyaW5nID0+IHtcbi8vICAgICAgICAgbGV0IHVybDogc3RyaW5nID0gQkFTSVFfQ09OU0VOVF9VUkw7XG4vLyAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCdVU0VSX0lEJywgdXNlci5iYXNpcUlkKTtcbi8vICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ1RPS0VOJywgdG9rZW4udmFsdWUpO1xuLy9cbi8vICAgICAgICAgaWYgKCF1c2VyLmNsaWVudERldGFpbHMuYmFzaXFDb25zZW50RXhpc3QpIHtcbi8vICAgICAgICAgICB1cmwgPSB1cmwuc3BsaXQoJyZhY3Rpb24nKVswXTtcbi8vICAgICAgICAgfVxuLy9cbi8vICAgICAgICAgcmV0dXJuIHVybDtcbi8vICAgICAgIH0pXG4vLyAgICAgKTtcbi8vICAgfVxuLy9cbi8vICAgLyoqXG4vLyAgICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gYWRkZWQgQmFuayBjb25uZWN0aW9uXG4vLyAgICAqL1xuLy8gICBwcml2YXRlIGxpc3RlblRvQmFua0Nvbm5lY3Rpb25BZGRlZCgpOiB2b2lkIHtcbi8vICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQU5LX0NPTk5FQ1RJT05fQURERUQpLnN1YnNjcmliZSgoKSA9PiB7XG4vLyAgICAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbi8vICAgICAgICAgdGhpcy5jYWNoZSA9IGJhbmtBY2NvdW50cztcbi8vICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuLy8gICAgICAgfSk7XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuLy8gICAgKi9cbi8vICAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuLy8gICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuLy8gICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbi8vICAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4vLyAgICAgICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKCk7XG4vLyAgICAgICB9XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBVcGRhdGUgdXNlcidzIGJhc2lxIGNvbm5lY3Rpb25zIHdoZW4gdXNlciBjb25maXJtZWQgYmFzaXEgY29uc2VudFxuLy8gICAgKi9cbi8vICAgcHJpdmF0ZSBsaXN0ZW5CYXNpcUNvbmNlbnRVcGRhdGVkKCk6IHZvaWQge1xuLy8gICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0NPTlNFTlRfVVBEQVRFRCkuc3Vic2NyaWJlKChpc0NvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuLy8gICAgICAgaWYgKCFpc0NvbmZpcm1lZCkge1xuLy8gICAgICAgICByZXR1cm47XG4vLyAgICAgICB9XG4vL1xuLy8gICAgICAgdGhpcy51cGRhdGVDb25uZWN0aW9ucygpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCk7XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vIH1cbiJdfQ==
73
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
74
+ type: Inject,
75
+ args: ['environment']
76
+ }] }, { type: i3.ToastService }, { type: i4.BankConnectionService }]; } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQVNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7OztBQUc5RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sWUFBYSxTQUFRLFdBQXlDO0lBTXpFLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3ZDLFlBQTBCO0lBQ3BDLDhDQUE4QztJQUN0QyxxQkFBNEM7UUFFcEQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFQckQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRTVCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFUdEQsUUFBRyxHQUFXLGdCQUFnQixDQUFDO1FBQy9CLGVBQVUsR0FBRyxXQUFXLENBQUM7SUFXekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLElBQW1CLEVBQUUsTUFBYyxFQUFFLFVBQTBCO1FBQzlFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxVQUFVLE1BQU0sY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDekYsR0FBRyxDQUFDLENBQUMsUUFBa0MsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekgsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsTUFBYyxFQUFFLFVBQTBCO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxVQUFVLE1BQU0sY0FBYyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNySSxHQUFHLENBQUMsQ0FBQyxRQUFrQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxFQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQTtZQUUvSCxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBUSxFQUFFO1lBQ2pILElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUssMkJBQTJCLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3JHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUExRE0sd0JBQVcsR0FBVyx5QkFBeUIsQ0FBQzswR0FENUMsWUFBWSxrRkFTYixhQUFhOzhHQVRaLFlBQVksY0FGWCxNQUFNOzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtBY2NvdW50IGFzIEJhbmtBY2NvdW50QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtY2xpZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QvcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCYW5rQ29ubmVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2lxQ29ubmVjdGlvbnNSZXNwb25zZSB9IGZyb20gJy4vYmFzaXEtY29ubmVjdGlvbnMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQgeyBCYW5rTG9naW5EYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1sb2dpbi1kYXRhJztcblxuLyoqXG4gKiBiYXNpcSBpcyBhIG1pZGRsZW1hbiBiZXR3ZWVuIGJhbmsgYW5kIHVzZXJcbiAqIHNlcnZpY2UgaXMgcmVzcG9uc2libGUgZm9yIGZldGNoaW5nIGJhbmsgcmVsYXRlZCBpbmZvcm1hdGlvblxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNpcVNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxCYW5rQWNjb3VudEJhc2UsIEJhbmtBY2NvdW50PiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgc3RhdGljIGJhc2lxQXBpVXJsOiBzdHJpbmcgPSAnaHR0cHM6Ly9hdS1hcGkuYmFzaXEuaW8nO1xuXG4gIHVybDogc3RyaW5nID0gJ2Jhc2lxL2FjY291bnRzJztcbiAgbW9kZWxDbGFzcyA9IEJhbmtBY2NvdW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIC8vIGluaXQgQmFua0Nvbm5lY3Rpb25TZXJ2aWNlIHRvIGxpc3RlbiBldmVudHNcbiAgICBwcml2YXRlIGJhbmtDb25uZWN0aW9uU2VydmljZTogQmFua0Nvbm5lY3Rpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50LCB0b2FzdFNlcnZpY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBldmVudHMgZnJvbSBFdmVudCBEaXNwYXRjaGVyIHNlcnZpY2VcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgQmFzaXEgam9iIGZvciB0aGUgbmV3IGJhbmsgY29ubmVjdGlvbiBjcmVhdGlvblxuICAgKi9cbiAgY3JlYXRlQ29ubmVjdGlvbihkYXRhOiBCYW5rTG9naW5EYXRhLCB1c2VySWQ6IHN0cmluZywgY29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtCYXNpcVNlcnZpY2UuYmFzaXFBcGlVcmx9L3VzZXJzLyR7dXNlcklkfS9jb25uZWN0aW9uc2AsIGRhdGEpLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBCYXNpcUNvbm5lY3Rpb25zUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0pPQl9DUkVBVEVELCB7am9iSWQ6IHJlc3BvbnNlLmlkLCBjb25uZWN0aW9ufSkpO1xuXG4gICAgICAgIHJldHVybiByZXNwb25zZS5pZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZGlzY29ubmVjdGVkIGJhbmsgY29ubmVjdGlvblxuICAgKi9cbiAgdXBkYXRlQ29ubmVjdGlvbihkYXRhOiBvYmplY3QsIHVzZXJJZDogc3RyaW5nLCBjb25uZWN0aW9uOiBCYW5rQ29ubmVjdGlvbik6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke0Jhc2lxU2VydmljZS5iYXNpcUFwaVVybH0vdXNlcnMvJHt1c2VySWR9L2Nvbm5lY3Rpb25zYCwgT2JqZWN0LmFzc2lnbihkYXRhLCB7aWQ6IGNvbm5lY3Rpb24uZXh0ZXJuYWxJZH0pKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogQmFzaXFDb25uZWN0aW9uc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9DT05ORUNUSU9OX1VQREFURUQsIHtqb2JJZDogcmVzcG9uc2UuaWQsIGNvbm5lY3Rpb259KSlcblxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuaWQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogbGlzdGVuIHRvIG5vdGlmaWNhdGlvbnMgdG8gdXBkYXRlIGJhc2lxIGFjY291bnRzIGxpc3RcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiBub3RpZmljYXRpb24uZXZlbnRUeXBlID09PSBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0uQkFTSVFfTkVXX0FDQ09VTlRTKSB7XG4gICAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -45,17 +45,6 @@ export class RestService {
45
45
  return items.find((item) => item['id'] === id);
46
46
  }));
47
47
  }
48
- /**
49
- * get list of items filtered by id.
50
- * @param models Array of objects contains required items ids
51
- */
52
- getByIds(models) {
53
- const idsArray = models.map((model) => model['id']);
54
- return this.get()
55
- .pipe(map((items) => {
56
- return items.filter((item) => idsArray.includes(item['id']));
57
- }));
58
- }
59
48
  /**
60
49
  * add new instance and update cache
61
50
  * @TODO rename to post
@@ -215,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
215
204
  type: Inject,
216
205
  args: ['environment']
217
206
  }] }, { type: i3.ToastService }]; } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBSS9EOzs7Ozs7O0dBT0c7QUFJSCxNQUFNLE9BQWdCLFdBQVc7SUFtQi9CLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3ZDLFlBQTBCO1FBSDFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWZ0Qyw0QkFBNEI7UUFDbEIsaUJBQVksR0FBMkIsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFnQjdFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDMUI7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENB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QUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2lCQUN4RSxHQUFHLENBQUMsQ0FBQyxJQUFlLEVBQVMsRUFBRTtnQkFDOUIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDTyxXQUFXO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLG1CQUFtQixDQUFDLEtBQWtDLEVBQUUsU0FBb0I7UUFDcEYsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLEtBQVUsQ0FBQzs7eUdBelBILFdBQVcsa0ZBc0JyQixhQUFhOzZHQXRCSCxXQUFXLGNBRm5CLE1BQU07NEZBRUUsV0FBVztrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXVCSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2Ugc2VydmljZSB0aGF0IGltcGxlbWVudHMgY29tbW9uIHNlcnZpY2VzIGZ1bmN0aW9uYWxpdHlcbiAqIGFuZCBkZXNjcmliZSBhYnN0cmFjdCBtZXRob2RzL3Byb3BlcnRpZXMgdGhhdCBoYXZlIHRvIGJlIGltcGxlbWVudGVkIGluIGNoaWxkIHNlcnZpY2VzXG4gKiBNb2RlbCAtIGVudGl0eSBzZXJ2aWNlIGlzIHdvcmtpbmcgd2l0aFxuICogQmFzZU1vZGVsIC0gYmFzZSBlbnRpdHkgbW9kZWwgdGhhdCBleHRlbmRzIGJ5IE1vZGVsXG4gKiBAVE9ETyBBbGV4OiByZWZhY3RvciBhbGwgc2VydmljZXMgZm9yIHdvcmsgd2l0aCBjb2xsZWN0aW9ucyBpbnN0ZWFkIG9mIGFycmF5c1xuICogQFRPRE8gQWxleDogaW1wbGVtZW50IHNtYXJ0IHN5c3RlbSBvZiBkZWZhdWx0IHRvYXN0IG1lc3NhZ2VzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBCYXNlTW9kZWw+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICAvLyB1cmwgcGFydCBmb3Igc2VydmljZSBlbnRpdHkgQVBJLiBIYXZlIHRvIGJlIGRlZmluZWQgaW4gZXh0ZW5kZWQgY2xhc3Nlc1xuICBhYnN0cmFjdCB1cmw6IHN0cmluZztcbiAgLy8gTW9kZWwgY2xhc3MgZm9yIGluc3RhbmNlcyBjcmVhdGluZ1xuICBhYnN0cmFjdCBtb2RlbENsYXNzO1xuICAvLyBAVE9ETyBNYWtlIGNhY2hlIFJlYWRvbmx5XG4gIC8vIGNhY2hlZCBhcnJheSBvZiBzZXJ2aWNlIGNsYXNzIGluc3RhbmNlc1xuICBwcm90ZWN0ZWQgY2FjaGU6IE1vZGVsW107XG4gIC8vIHN1YmplY3QgZm9yIHNlcnZpY2UgY2FjaGVcbiAgcHJvdGVjdGVkIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxNb2RlbFtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PE1vZGVsW10+KDEpO1xuICAvLyBmbGFnIGZvciB3b3JrIHdpdGggQVBJIHBsYXRmb3JtXG4gIHByb3RlY3RlZCBpc0h5ZHJhOiBib29sZWFuO1xuICBtZXNzYWdlQ3JlYXRlZDogc3RyaW5nO1xuICBtZXNzYWdlQ3JlYXRlZEJhdGNoOiBzdHJpbmc7XG4gIG1lc3NhZ2VVcGRhdGVkOiBzdHJpbmc7XG4gIG1lc3NhZ2VVcGRhdGVkQmF0Y2g6IHN0cmluZztcbiAgbWVzc2FnZURlbGV0ZWQ6IHN0cmluZztcbiAgbWVzc2FnZURlbGV0ZWRCYXRjaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGNhY2hlZCBsaXN0IG9mIGFsbCBpbnN0YW5jZXNcbiAgICovXG4gIGdldCgpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUgPSBbXTtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGluc3RhbmNlIGJ5IGlkIGZyb20gY2FjaGVcbiAgICogQHBhcmFtIGlkIElEIG9mIHJlcXVpcmVkIGl0ZW1cbiAgICovXG4gIGZpbmRCeUlkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGl0ZW1zOiBNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddID09PSBpZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIGl0ZW1zIGZpbHRlcmVkIGJ5IGlkLlxuICAgKiBAcGFyYW0gbW9kZWxzIEFycmF5IG9mIG9iamVjdHMgY29udGFpbnMgcmVxdWlyZWQgaXRlbXMgaWRzXG4gICAqL1xuICBnZXRCeUlkcyhtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICBjb25zdCBpZHNBcnJheTogbnVtYmVyW10gPSBtb2RlbHMubWFwKChtb2RlbDogTW9kZWwpID0+IG1vZGVsWydpZCddKTtcblxuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChpdGVtczogTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBpZHNBcnJheS5pbmNsdWRlcyhpdGVtWydpZCddKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZCBuZXcgaW5zdGFuY2UgYW5kIHVwZGF0ZSBjYWNoZVxuICAgKiBAVE9ETyByZW5hbWUgdG8gcG9zdFxuICAgKi9cbiAgYWRkKG1vZGVsOiBNb2RlbCwgc2hvdWxkVXBkYXRlQ2FjaGU6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihtb2RlbCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBpZiAoIXNob3VsZFVwZGF0ZUNhY2hlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld0luc3RhbmNlOiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh0aGlzLm1vZGVsQ2xhc3MsIG5ld0l0ZW0pO1xuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2gobmV3SW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VDcmVhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZUNyZWF0ZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXdJbnN0YW5jZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHNldmVyYWwgbmV3IGl0ZW1zXG4gICAqIEBwYXJhbSBtb2RlbHMgQXJyYXkgb2YgbmV3IGl0ZW1zIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogQFRPRE8gcmVuYW1lIHRvIHBvc3RCYXRjaFxuICAgKi9cbiAgYWRkQmF0Y2gobW9kZWxzOiBNb2RlbFtdLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4obW9kZWxzKSwgcXVlcnlQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdJdGVtczogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdJbnN0YW5jZXM6IE1vZGVsW10gPSBuZXdJdGVtcy5tYXAoKGl0ZW06IEJhc2VNb2RlbCkgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHRoaXMubW9kZWxDbGFzcywgaXRlbSkpO1xuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2goLi4ubmV3SW5zdGFuY2VzKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlQ3JlYXRlZEJhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZUNyZWF0ZWRCYXRjaCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5ld0luc3RhbmNlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGl0ZW1cbiAgICogQHBhcmFtIG1vZGVsIEV4aXN0aW5nIGluc3RhbmNlIGZvciB1cGRhdGluZ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxuICAgKiBAVE9ETyByZW5hbWUgdG8gcHV0XG4gICAqL1xuICB1cGRhdGUobW9kZWw6IE1vZGVsLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbFsnaWQnXX1gLCBjbGFzc1RvUGxhaW4obW9kZWwpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2U6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHRoaXMubW9kZWxDbGFzcywgdXBkYXRlZEl0ZW0pO1xuICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdXBkYXRlZEluc3RhbmNlKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlVXBkYXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VVcGRhdGVkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEluc3RhbmNlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgc2V2ZXJhbCBpdGVtc1xuICAgKiBAcGFyYW0gbW9kZWxzIEFycmF5IG9mIGl0ZW1zIGZvciB1cGRhdGluZ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxuICAgKiBUT0RPIHJlbmFtZSB0byBwdXRCYXRjaFxuICAgKi9cbiAgdXBkYXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtczogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2VzOiBNb2RlbFtdID0gdXBkYXRlZEl0ZW1zLm1hcCgoaXRlbTogQmFzZU1vZGVsKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodGhpcy5tb2RlbENsYXNzLCBpdGVtKSk7XG4gICAgICAgICAgdXBkYXRlZEluc3RhbmNlcy5mb3JFYWNoKChpbnN0YW5jZTogTW9kZWwpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgaW5zdGFuY2UpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VVcGRhdGVkQmF0Y2gpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEluc3RhbmNlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZGVsZXRlIGluc3RhbmNlIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbCBDbGFzcyBpbnN0YW5jZSBmb3IgZGVsZXRpbmdcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsWydpZCddfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddICE9PSBtb2RlbFsnaWQnXSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZURlbGV0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlRGVsZXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbHMgQ2xhc3MgaW5zdGFuY2VzIGFycmF5IGZvciBkZWxldGluZ1xuICAgKi9cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9L2RlbGV0ZWAsIG1vZGVscylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSBtb2RlbHMubWFwKChtb2RlbDogTW9kZWwpOiBudW1iZXIgPT4gbW9kZWxbJ2lkJ10pO1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLmZpbHRlcigoaXRlbTogTW9kZWwpID0+ICFpZHMuaW5jbHVkZXMoaXRlbVsnaWQnXSkpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VEZWxldGVkQmF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlRGVsZXRlZEJhdGNoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsZWFyIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHJlc2V0Q2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIGJhc2UgY2xhc3MgaW5zdGFuY2VzIGRpcmVjdGx5IGZyb20gYmFja2VuZFxuICAgKi9cbiAgcHJvdGVjdGVkIGZldGNoKCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSk6IE1vZGVsW10gPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW1zOiBNb2RlbFtdID0gKHRoaXMuaXNIeWRyYSA/IHJlc3BvbnNlWydoeWRyYTptZW1iZXInXSA6IHJlc3BvbnNlKVxuICAgICAgICAgICAgLm1hcCgoaXRlbTogQmFzZU1vZGVsKTogTW9kZWwgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHRoaXMubW9kZWxDbGFzcywgaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gaXRlbXM7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHN1YmplY3Qgd2l0aCBjdXJyZW50IGNhY2hlIGFycmF5IHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlLnNsaWNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgaW5zdGFuY2Ugb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVsIFRoZSBjbGFzcyBmb3Igd2hpY2ggeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlXG4gICAqIEBwYXJhbSBiYXNlTW9kZWwgYmFzZSBtb2RlbCBpbnN0YW5jZSB0aGF0IHdlIHdpbGwgdXNlIGFzIGNvbnN0cnVjdG9yIG9wdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbEluc3RhbmNlKG1vZGVsOiBuZXcoYm06IEJhc2VNb2RlbCkgPT4gTW9kZWwsIGJhc2VNb2RlbDogQmFzZU1vZGVsKTogTW9kZWwge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MobW9kZWwsIGJhc2VNb2RlbCwgeyBleGNsdWRlUHJlZml4ZXM6IFsnQCddIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IGNhbGwgYWxsIGxpc3RlbmVycy4gRW1wdHkgYnkgZGVmYXVsdC4gU2hvdWxkIGJlIHJlZGVmaW5lZCBieSBjaGlsZCBzZXJ2aWNlcyBpZiByZXF1aXJlZFxuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge31cbn1cbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBSS9EOzs7Ozs7O0dBT0c7QUFJSCxNQUFNLE9BQWdCLFdBQVc7SUFtQi9CLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3ZDLFlBQTBCO1FBSDFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWZ0Qyw0QkFBNEI7UUFDbEIsaUJBQVksR0FBMkIsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFnQjdFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDMUI7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENB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QUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLG1CQUFtQixDQUFDLEtBQWtDLEVBQUUsU0FBb0I7UUFDcEYsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLEtBQVUsQ0FBQzs7eUdBMU9ILFdBQVcsa0ZBc0JyQixhQUFhOzZHQXRCSCxXQUFXLGNBRm5CLE1BQU07NEZBRUUsV0FBVztrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXVCSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2Ugc2VydmljZSB0aGF0IGltcGxlbWVudHMgY29tbW9uIHNlcnZpY2VzIGZ1bmN0aW9uYWxpdHlcbiAqIGFuZCBkZXNjcmliZSBhYnN0cmFjdCBtZXRob2RzL3Byb3BlcnRpZXMgdGhhdCBoYXZlIHRvIGJlIGltcGxlbWVudGVkIGluIGNoaWxkIHNlcnZpY2VzXG4gKiBNb2RlbCAtIGVudGl0eSBzZXJ2aWNlIGlzIHdvcmtpbmcgd2l0aFxuICogQmFzZU1vZGVsIC0gYmFzZSBlbnRpdHkgbW9kZWwgdGhhdCBleHRlbmRzIGJ5IE1vZGVsXG4gKiBAVE9ETyBBbGV4OiByZWZhY3RvciBhbGwgc2VydmljZXMgZm9yIHdvcmsgd2l0aCBjb2xsZWN0aW9ucyBpbnN0ZWFkIG9mIGFycmF5c1xuICogQFRPRE8gQWxleDogaW1wbGVtZW50IHNtYXJ0IHN5c3RlbSBvZiBkZWZhdWx0IHRvYXN0IG1lc3NhZ2VzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBCYXNlTW9kZWw+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICAvLyB1cmwgcGFydCBmb3Igc2VydmljZSBlbnRpdHkgQVBJLiBIYXZlIHRvIGJlIGRlZmluZWQgaW4gZXh0ZW5kZWQgY2xhc3Nlc1xuICBhYnN0cmFjdCB1cmw6IHN0cmluZztcbiAgLy8gTW9kZWwgY2xhc3MgZm9yIGluc3RhbmNlcyBjcmVhdGluZ1xuICBhYnN0cmFjdCBtb2RlbENsYXNzO1xuICAvLyBAVE9ETyBNYWtlIGNhY2hlIFJlYWRvbmx5XG4gIC8vIGNhY2hlZCBhcnJheSBvZiBzZXJ2aWNlIGNsYXNzIGluc3RhbmNlc1xuICBwcm90ZWN0ZWQgY2FjaGU6IE1vZGVsW107XG4gIC8vIHN1YmplY3QgZm9yIHNlcnZpY2UgY2FjaGVcbiAgcHJvdGVjdGVkIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxNb2RlbFtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PE1vZGVsW10+KDEpO1xuICAvLyBmbGFnIGZvciB3b3JrIHdpdGggQVBJIHBsYXRmb3JtXG4gIHByb3RlY3RlZCBpc0h5ZHJhOiBib29sZWFuO1xuICBtZXNzYWdlQ3JlYXRlZDogc3RyaW5nO1xuICBtZXNzYWdlQ3JlYXRlZEJhdGNoOiBzdHJpbmc7XG4gIG1lc3NhZ2VVcGRhdGVkOiBzdHJpbmc7XG4gIG1lc3NhZ2VVcGRhdGVkQmF0Y2g6IHN0cmluZztcbiAgbWVzc2FnZURlbGV0ZWQ6IHN0cmluZztcbiAgbWVzc2FnZURlbGV0ZWRCYXRjaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGNhY2hlZCBsaXN0IG9mIGFsbCBpbnN0YW5jZXNcbiAgICovXG4gIGdldCgpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUgPSBbXTtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGluc3RhbmNlIGJ5IGlkIGZyb20gY2FjaGVcbiAgICogQHBhcmFtIGlkIElEIG9mIHJlcXVpcmVkIGl0ZW1cbiAgICovXG4gIGZpbmRCeUlkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGl0ZW1zOiBNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddID09PSBpZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZCBuZXcgaW5zdGFuY2UgYW5kIHVwZGF0ZSBjYWNoZVxuICAgKiBAVE9ETyByZW5hbWUgdG8gcG9zdFxuICAgKi9cbiAgYWRkKG1vZGVsOiBNb2RlbCwgc2hvdWxkVXBkYXRlQ2FjaGU6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihtb2RlbCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBpZiAoIXNob3VsZFVwZGF0ZUNhY2hlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld0luc3RhbmNlOiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh0aGlzLm1vZGVsQ2xhc3MsIG5ld0l0ZW0pO1xuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2gobmV3SW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VDcmVhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZUNyZWF0ZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXdJbnN0YW5jZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHNldmVyYWwgbmV3IGl0ZW1zXG4gICAqIEBwYXJhbSBtb2RlbHMgQXJyYXkgb2YgbmV3IGl0ZW1zIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogQFRPRE8gcmVuYW1lIHRvIHBvc3RCYXRjaFxuICAgKi9cbiAgYWRkQmF0Y2gobW9kZWxzOiBNb2RlbFtdLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4obW9kZWxzKSwgcXVlcnlQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdJdGVtczogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdJbnN0YW5jZXM6IE1vZGVsW10gPSBuZXdJdGVtcy5tYXAoKGl0ZW06IEJhc2VNb2RlbCkgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHRoaXMubW9kZWxDbGFzcywgaXRlbSkpO1xuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2goLi4ubmV3SW5zdGFuY2VzKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlQ3JlYXRlZEJhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZUNyZWF0ZWRCYXRjaCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5ld0luc3RhbmNlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGl0ZW1cbiAgICogQHBhcmFtIG1vZGVsIEV4aXN0aW5nIGluc3RhbmNlIGZvciB1cGRhdGluZ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxuICAgKiBAVE9ETyByZW5hbWUgdG8gcHV0XG4gICAqL1xuICB1cGRhdGUobW9kZWw6IE1vZGVsLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbFsnaWQnXX1gLCBjbGFzc1RvUGxhaW4obW9kZWwpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2U6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHRoaXMubW9kZWxDbGFzcywgdXBkYXRlZEl0ZW0pO1xuICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdXBkYXRlZEluc3RhbmNlKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlVXBkYXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VVcGRhdGVkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEluc3RhbmNlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgc2V2ZXJhbCBpdGVtc1xuICAgKiBAcGFyYW0gbW9kZWxzIEFycmF5IG9mIGl0ZW1zIGZvciB1cGRhdGluZ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxuICAgKiBUT0RPIHJlbmFtZSB0byBwdXRCYXRjaFxuICAgKi9cbiAgdXBkYXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtczogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2VzOiBNb2RlbFtdID0gdXBkYXRlZEl0ZW1zLm1hcCgoaXRlbTogQmFzZU1vZGVsKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodGhpcy5tb2RlbENsYXNzLCBpdGVtKSk7XG4gICAgICAgICAgdXBkYXRlZEluc3RhbmNlcy5mb3JFYWNoKChpbnN0YW5jZTogTW9kZWwpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgaW5zdGFuY2UpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VVcGRhdGVkQmF0Y2gpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEluc3RhbmNlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZGVsZXRlIGluc3RhbmNlIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbCBDbGFzcyBpbnN0YW5jZSBmb3IgZGVsZXRpbmdcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsWydpZCddfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddICE9PSBtb2RlbFsnaWQnXSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZURlbGV0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlRGVsZXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbHMgQ2xhc3MgaW5zdGFuY2VzIGFycmF5IGZvciBkZWxldGluZ1xuICAgKi9cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9L2RlbGV0ZWAsIG1vZGVscylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSBtb2RlbHMubWFwKChtb2RlbDogTW9kZWwpOiBudW1iZXIgPT4gbW9kZWxbJ2lkJ10pO1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLmZpbHRlcigoaXRlbTogTW9kZWwpID0+ICFpZHMuaW5jbHVkZXMoaXRlbVsnaWQnXSkpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VEZWxldGVkQmF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlRGVsZXRlZEJhdGNoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsZWFyIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHJlc2V0Q2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIGJhc2UgY2xhc3MgaW5zdGFuY2VzIGRpcmVjdGx5IGZyb20gYmFja2VuZFxuICAgKi9cbiAgcHJvdGVjdGVkIGZldGNoKCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSk6IE1vZGVsW10gPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW1zOiBNb2RlbFtdID0gKHRoaXMuaXNIeWRyYSA/IHJlc3BvbnNlWydoeWRyYTptZW1iZXInXSA6IHJlc3BvbnNlKVxuICAgICAgICAgICAgLm1hcCgoaXRlbTogQmFzZU1vZGVsKTogTW9kZWwgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHRoaXMubW9kZWxDbGFzcywgaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gaXRlbXM7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHN1YmplY3Qgd2l0aCBjdXJyZW50IGNhY2hlIGFycmF5IHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlLnNsaWNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgaW5zdGFuY2Ugb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVsIFRoZSBjbGFzcyBmb3Igd2hpY2ggeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlXG4gICAqIEBwYXJhbSBiYXNlTW9kZWwgYmFzZSBtb2RlbCBpbnN0YW5jZSB0aGF0IHdlIHdpbGwgdXNlIGFzIGNvbnN0cnVjdG9yIG9wdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbEluc3RhbmNlKG1vZGVsOiBuZXcoYm06IEJhc2VNb2RlbCkgPT4gTW9kZWwsIGJhc2VNb2RlbDogQmFzZU1vZGVsKTogTW9kZWwge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MobW9kZWwsIGJhc2VNb2RlbCwgeyBleGNsdWRlUHJlZml4ZXM6IFsnQCddIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IGNhbGwgYWxsIGxpc3RlbmVycy4gRW1wdHkgYnkgZGVmYXVsdC4gU2hvdWxkIGJlIHJlZGVmaW5lZCBieSBjaGlsZCBzZXJ2aWNlcyBpZiByZXF1aXJlZFxuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge31cbn1cbiJdfQ==