@hmcts/ccd-case-ui-toolkit 7.1.33-accesible-errors2 → 7.1.33-accesible-errors-v4

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 (82) hide show
  1. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +39 -17
  2. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +4 -4
  3. package/esm2022/lib/shared/components/case-editor/case-edit-utils/case-edit.utils.mjs +13 -1
  4. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +3 -2
  5. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +4 -3
  6. package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +4 -3
  7. package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +18 -5
  8. package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +5 -1
  9. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +10 -5
  10. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +16 -6
  11. package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +3 -3
  12. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +9 -5
  13. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +36 -48
  14. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +5 -3
  15. package/esm2022/lib/shared/components/pagination/pagination.component.mjs +3 -3
  16. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +6 -6
  17. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +9 -10
  18. package/esm2022/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.mjs +2 -2
  19. package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +42 -38
  20. package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +2 -2
  21. package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +9 -9
  22. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +17 -17
  23. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +10 -10
  24. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +30 -13
  25. package/esm2022/lib/shared/components/palette/palette.module.mjs +3 -2
  26. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +12 -10
  27. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +50 -29
  28. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +158 -104
  29. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +3 -3
  30. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +7 -7
  31. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +114 -103
  32. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +120 -47
  33. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +4 -21
  34. package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +4 -3
  35. package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +2 -2
  36. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +39 -35
  37. package/esm2022/lib/shared/domain/work-allocation/Task.mjs +1 -1
  38. package/esm2022/lib/shared/services/http/http-error.service.mjs +11 -4
  39. package/esm2022/lib/shared/services/loading/loading.service.mjs +13 -1
  40. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +1448 -1215
  41. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  42. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +6 -2
  43. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  44. package/lib/shared/components/case-editor/case-edit-utils/case-edit.utils.d.ts +2 -0
  45. package/lib/shared/components/case-editor/case-edit-utils/case-edit.utils.d.ts.map +1 -1
  46. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  47. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  48. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  49. package/lib/shared/components/case-editor/services/event-completion-state-machine.service.d.ts.map +1 -1
  50. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts.map +1 -1
  51. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +3 -2
  52. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  53. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +4 -2
  54. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  55. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts +3 -1
  56. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -1
  57. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +2 -3
  58. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  59. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts.map +1 -1
  60. package/lib/shared/components/palette/document/write-document-field.component.d.ts +3 -1
  61. package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -1
  62. package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts.map +1 -1
  63. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -1
  64. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
  65. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts.map +1 -1
  66. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +5 -1
  67. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  68. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +17 -5
  69. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  70. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +2 -1
  71. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  72. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +18 -5
  73. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -1
  74. package/lib/shared/components/palette/unsupported-field.component.d.ts +1 -1
  75. package/lib/shared/components/palette/unsupported-field.component.d.ts.map +1 -1
  76. package/lib/shared/domain/work-allocation/Task.d.ts +1 -0
  77. package/lib/shared/domain/work-allocation/Task.d.ts.map +1 -1
  78. package/lib/shared/services/http/http-error.service.d.ts +3 -1
  79. package/lib/shared/services/http/http-error.service.d.ts.map +1 -1
  80. package/lib/shared/services/loading/loading.service.d.ts +4 -0
  81. package/lib/shared/services/loading/loading.service.d.ts.map +1 -1
  82. package/package.json +1 -1
@@ -3,12 +3,16 @@ import { Injectable } from '@angular/core';
3
3
  import { throwError } from 'rxjs';
4
4
  import { HttpError } from '../../domain/http/http-error.model';
5
5
  import { AuthService } from '../auth/auth.service';
6
+ import { LoadingService } from '../loading';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../auth/auth.service";
9
+ import * as i2 from "../loading";
8
10
  export class HttpErrorService {
9
11
  authService;
10
- constructor(authService) {
12
+ loadingService;
13
+ constructor(authService, loadingService) {
11
14
  this.authService = authService;
15
+ this.loadingService = loadingService;
12
16
  }
13
17
  static CONTENT_TYPE = 'Content-Type';
14
18
  static JSON = 'json';
@@ -52,16 +56,19 @@ export class HttpErrorService {
52
56
  handle(error, redirectIfNotAuthorised = true) {
53
57
  console.error('Handling error in http error service.');
54
58
  console.error(error);
59
+ if (this.loadingService.hasSharedSpinner()) {
60
+ this.loadingService.unregisterSharedSpinner();
61
+ }
55
62
  const httpError = HttpErrorService.convertToHttpError(error);
56
63
  if (redirectIfNotAuthorised && httpError.status === 401) {
57
64
  this.authService.signIn();
58
65
  }
59
66
  return throwError(httpError);
60
67
  }
61
- static ɵfac = function HttpErrorService_Factory(t) { return new (t || HttpErrorService)(i0.ɵɵinject(i1.AuthService)); };
68
+ static ɵfac = function HttpErrorService_Factory(t) { return new (t || HttpErrorService)(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.LoadingService)); };
62
69
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: HttpErrorService, factory: HttpErrorService.ɵfac });
63
70
  }
64
71
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HttpErrorService, [{
65
72
  type: Injectable
66
- }], () => [{ type: i1.AuthService }], null); })();
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9odHRwL2h0dHAtZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBSW5ELE1BQU0sT0FBTyxnQkFBZ0I7SUFFRTtJQUE3QixZQUE2QixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFakQsTUFBTSxDQUFVLFlBQVksR0FBRyxjQUFjLENBQUM7SUFDOUMsTUFBTSxDQUFVLElBQUksR0FBRyxNQUFNLENBQUM7SUFFOUIsS0FBSyxDQUFZO0lBQ2xCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUE4QjtRQUM3RCxJQUFJLEtBQUssWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFLENBQUM7WUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDNUYsSUFBSSxDQUFDO29CQUNILFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNwQyxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBZ0I7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBOEIsRUFBRSx1QkFBdUIsR0FBRyxJQUFJO1FBQzFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxHQUFjLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hFLElBQUksdUJBQXVCLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDOzBFQXJEVSxnQkFBZ0I7Z0VBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0I7O2lGQUFoQixnQkFBZ0I7Y0FENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cEVycm9yIH0gZnJvbSAnLi4vLi4vZG9tYWluL2h0dHAvaHR0cC1lcnJvci5tb2RlbCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHR0cEVycm9yU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHt9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ09OVEVOVF9UWVBFID0gJ0NvbnRlbnQtVHlwZSc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEpTT04gPSAnanNvbic7XG5cbiAgcHJpdmF0ZSBlcnJvcjogSHR0cEVycm9yO1xuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRUb0h0dHBFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpOiBIdHRwRXJyb3Ige1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvcikge1xuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cbiAgICBsZXQgaHR0cEVycm9yID0gbmV3IEh0dHBFcnJvcigpO1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICBpZiAoZXJyb3IuaGVhZGVycz8uZ2V0KEh0dHBFcnJvclNlcnZpY2UuQ09OVEVOVF9UWVBFKS5pbmRleE9mKEh0dHBFcnJvclNlcnZpY2UuSlNPTikgIT09IC0xKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaHR0cEVycm9yID0gSHR0cEVycm9yLmZyb20oZXJyb3IpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlLCBlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWh0dHBFcnJvci5zdGF0dXMpIHtcbiAgICAgICAgaHR0cEVycm9yLnN0YXR1cyA9IGVycm9yLnN0YXR1cztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IubWVzc2FnZSkge1xuICAgICAgICBodHRwRXJyb3IubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICB9XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgIGh0dHBFcnJvci5zdGF0dXMgPSBlcnJvci5zdGF0dXM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBodHRwRXJyb3I7XG4gIH1cblxuICBwdWJsaWMgc2V0RXJyb3IoZXJyb3I6IEh0dHBFcnJvcikge1xuICAgIHRoaXMuZXJyb3IgPSBlcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVFcnJvcigpOiBIdHRwRXJyb3Ige1xuICAgIGNvbnN0IGVycm9yID0gdGhpcy5lcnJvcjtcbiAgICB0aGlzLmVycm9yID0gbnVsbDtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSwgcmVkaXJlY3RJZk5vdEF1dGhvcmlzZWQgPSB0cnVlKTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0hhbmRsaW5nIGVycm9yIGluIGh0dHAgZXJyb3Igc2VydmljZS4nKTtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICBjb25zdCBodHRwRXJyb3I6IEh0dHBFcnJvciA9IEh0dHBFcnJvclNlcnZpY2UuY29udmVydFRvSHR0cEVycm9yKGVycm9yKTtcbiAgICBpZiAocmVkaXJlY3RJZk5vdEF1dGhvcmlzZWQgJiYgaHR0cEVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnNpZ25JbigpO1xuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihodHRwRXJyb3IpO1xuICB9XG59XG4iXX0=
73
+ }], () => [{ type: i1.AuthService }, { type: i2.LoadingService }], null); })();
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9odHRwL2h0dHAtZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBSTVDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFRTtJQUNOO0lBRHZCLFlBQTZCLFdBQXdCLEVBQzlCLGNBQThCO1FBRHhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUNsRCxDQUFDO0lBRUksTUFBTSxDQUFVLFlBQVksR0FBRyxjQUFjLENBQUM7SUFDOUMsTUFBTSxDQUFVLElBQUksR0FBRyxNQUFNLENBQUM7SUFFOUIsS0FBSyxDQUFZO0lBQ2xCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUE4QjtRQUM3RCxJQUFJLEtBQUssWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFLENBQUM7WUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDNUYsSUFBSSxDQUFDO29CQUNILFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNwQyxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBZ0I7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBOEIsRUFBRSx1QkFBdUIsR0FBRyxJQUFJO1FBQzFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBYyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RSxJQUFJLHVCQUF1QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQzswRUExRFUsZ0JBQWdCO2dFQUFoQixnQkFBZ0IsV0FBaEIsZ0JBQWdCOztpRkFBaEIsZ0JBQWdCO2NBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBFcnJvciB9IGZyb20gJy4uLy4uL2RvbWFpbi9odHRwL2h0dHAtZXJyb3IubW9kZWwnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBMb2FkaW5nU2VydmljZSB9IGZyb20gJy4uL2xvYWRpbmcnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwRXJyb3JTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENPTlRFTlRfVFlQRSA9ICdDb250ZW50LVR5cGUnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBKU09OID0gJ2pzb24nO1xuXG4gIHByaXZhdGUgZXJyb3I6IEh0dHBFcnJvcjtcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0VG9IdHRwRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KTogSHR0cEVycm9yIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3IpIHtcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG4gICAgbGV0IGh0dHBFcnJvciA9IG5ldyBIdHRwRXJyb3IoKTtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgaWYgKGVycm9yLmhlYWRlcnM/LmdldChIdHRwRXJyb3JTZXJ2aWNlLkNPTlRFTlRfVFlQRSkuaW5kZXhPZihIdHRwRXJyb3JTZXJ2aWNlLkpTT04pICE9PSAtMSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGh0dHBFcnJvciA9IEh0dHBFcnJvci5mcm9tKGVycm9yKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSwgZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFodHRwRXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgIGh0dHBFcnJvci5zdGF0dXMgPSBlcnJvci5zdGF0dXM7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yLm1lc3NhZ2UpIHtcbiAgICAgICAgaHR0cEVycm9yLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgfVxuICAgICAgaWYgKGVycm9yLnN0YXR1cykge1xuICAgICAgICBodHRwRXJyb3Iuc3RhdHVzID0gZXJyb3Iuc3RhdHVzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHR0cEVycm9yO1xuICB9XG5cbiAgcHVibGljIHNldEVycm9yKGVycm9yOiBIdHRwRXJyb3IpIHtcbiAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRXJyb3IoKTogSHR0cEVycm9yIHtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuZXJyb3I7XG4gICAgdGhpcy5lcnJvciA9IG51bGw7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnksIHJlZGlyZWN0SWZOb3RBdXRob3Jpc2VkID0gdHJ1ZSk6IE9ic2VydmFibGU8bmV2ZXI+IHtcbiAgICBjb25zb2xlLmVycm9yKCdIYW5kbGluZyBlcnJvciBpbiBodHRwIGVycm9yIHNlcnZpY2UuJyk7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgaWYgKHRoaXMubG9hZGluZ1NlcnZpY2UuaGFzU2hhcmVkU3Bpbm5lcigpKXtcbiAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UudW5yZWdpc3RlclNoYXJlZFNwaW5uZXIoKTtcbiAgICB9XG4gICAgY29uc3QgaHR0cEVycm9yOiBIdHRwRXJyb3IgPSBIdHRwRXJyb3JTZXJ2aWNlLmNvbnZlcnRUb0h0dHBFcnJvcihlcnJvcik7XG4gICAgaWYgKHJlZGlyZWN0SWZOb3RBdXRob3Jpc2VkICYmIGh0dHBFcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgdGhpcy5hdXRoU2VydmljZS5zaWduSW4oKTtcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoaHR0cEVycm9yKTtcbiAgfVxufVxuIl19
@@ -5,6 +5,7 @@ import * as i0 from "@angular/core";
5
5
  export class LoadingService {
6
6
  registered = new Map();
7
7
  loading = new BehaviorSubject(false);
8
+ sharedSpinners = [];
8
9
  get isLoading() {
9
10
  return this.loading.pipe(distinctUntilChanged());
10
11
  }
@@ -18,6 +19,17 @@ export class LoadingService {
18
19
  this.registered.delete(token);
19
20
  this.loading.next(this.registered.size > 0);
20
21
  }
22
+ addSharedSpinner(spinnerId) {
23
+ this.sharedSpinners.push(spinnerId);
24
+ }
25
+ hasSharedSpinner() {
26
+ return this.sharedSpinners.length > 0;
27
+ }
28
+ unregisterSharedSpinner() {
29
+ this.registered.delete(this.sharedSpinners[0]);
30
+ this.sharedSpinners.shift();
31
+ this.loading.next(this.registered.size > 0);
32
+ }
21
33
  generateToken() {
22
34
  const timestamp = window.performance.now();
23
35
  return `toolkit-loading-${timestamp}`; // format: [source-library]-[unique incrementing number]
@@ -28,4 +40,4 @@ export class LoadingService {
28
40
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoadingService, [{
29
41
  type: Injectable
30
42
  }], null, null); })();
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9sb2FkaW5nL2xvYWRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3RELE1BQU0sT0FBTyxjQUFjO0lBQ1IsVUFBVSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBQ3ZDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUUvRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDM0MsT0FBTyxtQkFBbUIsU0FBUyxFQUFFLENBQUMsQ0FBQyx3REFBd0Q7SUFDakcsQ0FBQzt3RUF2QlUsY0FBYztnRUFBZCxjQUFjLFdBQWQsY0FBYzs7aUZBQWQsY0FBYztjQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvYWRpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RlcmVkID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIGdldCBpc0xvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmdlbmVyYXRlVG9rZW4oKTtcbiAgICB0aGlzLnJlZ2lzdGVyZWQuc2V0KHRva2VuLCB0b2tlbik7XG4gICAgdGhpcy5sb2FkaW5nLm5leHQodHJ1ZSk7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgcHVibGljIHVucmVnaXN0ZXIodG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJlZC5kZWxldGUodG9rZW4pO1xuICAgIHRoaXMubG9hZGluZy5uZXh0KHRoaXMucmVnaXN0ZXJlZC5zaXplID4gMCk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVG9rZW4oKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7XG4gICAgcmV0dXJuIGB0b29sa2l0LWxvYWRpbmctJHt0aW1lc3RhbXB9YDsgLy8gZm9ybWF0OiBbc291cmNlLWxpYnJhcnldLVt1bmlxdWUgaW5jcmVtZW50aW5nIG51bWJlcl1cbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9sb2FkaW5nL2xvYWRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3RELE1BQU0sT0FBTyxjQUFjO0lBQ1IsVUFBVSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBQ3ZDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUM5QyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBRXJDLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sUUFBUTtRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFNBQWlCO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLHVCQUF1QjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNDLE9BQU8sbUJBQW1CLFNBQVMsRUFBRSxDQUFDLENBQUMsd0RBQXdEO0lBQ2pHLENBQUM7d0VBdENVLGNBQWM7Z0VBQWQsY0FBYyxXQUFkLGNBQWM7O2lGQUFkLGNBQWM7Y0FEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2FkaW5nU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0ZXJlZCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNoYXJlZFNwaW5uZXJzID0gW107XG5cbiAgcHVibGljIGdldCBpc0xvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmdlbmVyYXRlVG9rZW4oKTtcbiAgICB0aGlzLnJlZ2lzdGVyZWQuc2V0KHRva2VuLCB0b2tlbik7XG4gICAgdGhpcy5sb2FkaW5nLm5leHQodHJ1ZSk7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgcHVibGljIHVucmVnaXN0ZXIodG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJlZC5kZWxldGUodG9rZW4pO1xuICAgIHRoaXMubG9hZGluZy5uZXh0KHRoaXMucmVnaXN0ZXJlZC5zaXplID4gMCk7XG4gIH1cblxuICBwdWJsaWMgYWRkU2hhcmVkU3Bpbm5lcihzcGlubmVySWQ6IHN0cmluZyl7XG4gICAgdGhpcy5zaGFyZWRTcGlubmVycy5wdXNoKHNwaW5uZXJJZCk7XG4gIH1cblxuICBwdWJsaWMgaGFzU2hhcmVkU3Bpbm5lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZWRTcGlubmVycy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIHVucmVnaXN0ZXJTaGFyZWRTcGlubmVyKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJlZC5kZWxldGUodGhpcy5zaGFyZWRTcGlubmVyc1swXSk7XG4gICAgdGhpcy5zaGFyZWRTcGlubmVycy5zaGlmdCgpO1xuICAgIHRoaXMubG9hZGluZy5uZXh0KHRoaXMucmVnaXN0ZXJlZC5zaXplID4gMCk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVG9rZW4oKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7XG4gICAgcmV0dXJuIGB0b29sa2l0LWxvYWRpbmctJHt0aW1lc3RhbXB9YDsgLy8gZm9ybWF0OiBbc291cmNlLWxpYnJhcnldLVt1bmlxdWUgaW5jcmVtZW50aW5nIG51bWJlcl1cbiAgfVxufVxuIl19