@indice/ng-components 0.2.153-beta.2 → 0.2.153-beta.20

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 (153) hide show
  1. package/README.md +4 -4
  2. package/bundles/indice-ng-components.umd.js +4298 -0
  3. package/bundles/indice-ng-components.umd.js.map +1 -0
  4. package/{esm2020/indice-ng-components.mjs → esm2015/indice-ng-components.js} +0 -0
  5. package/{esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs → esm2015/lib/controls/avatar-initials/avatar-initials.component.js} +8 -5
  6. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +23 -0
  7. package/{esm2020/lib/controls/combobox/combobox.component.mjs → esm2015/lib/controls/combobox/combobox.component.js} +10 -7
  8. package/esm2015/lib/controls/date-picker/date-picker.component.js +269 -0
  9. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +72 -0
  10. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +39 -0
  11. package/esm2015/lib/controls/language-selection/language-selection.component.js +35 -0
  12. package/{esm2020/lib/controls/list-view/list-column.component.mjs → esm2015/lib/controls/list-view/list-column.component.js} +4 -4
  13. package/{esm2020/lib/controls/list-view/list-details-section.component.mjs → esm2015/lib/controls/list-view/list-details-section.component.js} +4 -4
  14. package/{esm2020/lib/controls/list-view/list-tile.component.mjs → esm2015/lib/controls/list-view/list-tile.component.js} +4 -4
  15. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +32 -0
  16. package/esm2015/lib/controls/list-view/list-view.component.js +186 -0
  17. package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +45 -0
  18. package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +76 -0
  19. package/esm2015/lib/controls/pager/pager.component.js +133 -0
  20. package/esm2015/lib/controls/side-pane/side-pane.component.js +76 -0
  21. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +29 -0
  22. package/esm2015/lib/controls/tabs/lib-tab-group.component.js +66 -0
  23. package/esm2015/lib/controls/tabs/lib-tab.component.js +58 -0
  24. package/esm2015/lib/controls/toaster/toaster-container.component.js +31 -0
  25. package/esm2015/lib/controls/toaster/toaster.component.js +34 -0
  26. package/esm2015/lib/controls/toggle/toggle.component.js +68 -0
  27. package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +75 -0
  28. package/{esm2020/lib/directives/click-outside.directive.mjs → esm2015/lib/directives/click-outside.directive.js} +4 -4
  29. package/{esm2020/lib/directives/dynamic-component-host.directive.mjs → esm2015/lib/directives/dynamic-component-host.directive.js} +4 -4
  30. package/esm2015/lib/helpers/base-list.component.js +182 -0
  31. package/{esm2020/lib/icons.mjs → esm2015/lib/icons.js} +0 -0
  32. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +22 -0
  33. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +136 -0
  34. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +108 -0
  35. package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +50 -0
  36. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +85 -0
  37. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +53 -0
  38. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +101 -0
  39. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +110 -0
  40. package/{esm2020/lib/ng-components.module.mjs → esm2015/lib/ng-components.module.js} +13 -11
  41. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +34 -0
  42. package/{esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs → esm2015/lib/pages/auth/auth-renew/auth-renew.component.js} +4 -4
  43. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +32 -0
  44. package/esm2015/lib/pages/http-status/error/error.component.js +20 -0
  45. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +18 -0
  46. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +17 -0
  47. package/{esm2020/lib/pipes/address.pipe.mjs → esm2015/lib/pipes/address.pipe.js} +4 -4
  48. package/{esm2020/lib/pipes/duration-format.pipe.mjs → esm2015/lib/pipes/duration-format.pipe.js} +4 -4
  49. package/{esm2020/lib/services/component-loader/component-loader-options.class.mjs → esm2015/lib/services/component-loader/component-loader-options.class.js} +0 -0
  50. package/esm2015/lib/services/component-loader/component-loader.class.js +192 -0
  51. package/{esm2020/lib/services/component-loader/component-loader.factory.mjs → esm2015/lib/services/component-loader/component-loader.factory.js} +4 -4
  52. package/{esm2020/lib/services/component-loader/content-ref.class.mjs → esm2015/lib/services/component-loader/content-ref.class.js} +0 -0
  53. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +44 -0
  54. package/esm2015/lib/services/modal-service/modal-container-component.js +128 -0
  55. package/{esm2020/lib/services/modal-service/modal-options.class.mjs → esm2015/lib/services/modal-service/modal-options.class.js} +4 -4
  56. package/esm2015/lib/services/modal-service/modal-service.js +220 -0
  57. package/{esm2020/lib/services/modal-service/modal-styles.class.mjs → esm2015/lib/services/modal-service/modal-styles.class.js} +0 -0
  58. package/{esm2020/lib/services/modal-service/modal.class.mjs → esm2015/lib/services/modal-service/modal.class.js} +4 -4
  59. package/{esm2020/lib/services/toaster.service.mjs → esm2015/lib/services/toaster.service.js} +4 -4
  60. package/esm2015/lib/tokens.js +7 -0
  61. package/{esm2020/lib/types.mjs → esm2015/lib/types.js} +0 -0
  62. package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
  63. package/fesm2015/indice-ng-components.js +3707 -0
  64. package/fesm2015/indice-ng-components.js.map +1 -0
  65. package/{index.d.ts → indice-ng-components.d.ts} +0 -0
  66. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +1 -1
  67. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +1 -1
  68. package/lib/controls/combobox/combobox.component.d.ts +1 -1
  69. package/lib/controls/date-picker/date-picker.component.d.ts +1 -1
  70. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +1 -1
  71. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +1 -1
  72. package/lib/controls/language-selection/language-selection.component.d.ts +1 -1
  73. package/lib/controls/list-view/list-column.component.d.ts +1 -1
  74. package/lib/controls/list-view/list-details-section.component.d.ts +1 -1
  75. package/lib/controls/list-view/list-tile.component.d.ts +1 -1
  76. package/lib/controls/list-view/list-view-empty-state.component.d.ts +1 -1
  77. package/lib/controls/list-view/list-view.component.d.ts +1 -1
  78. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +1 -1
  79. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +1 -1
  80. package/lib/controls/pager/pager.component.d.ts +1 -1
  81. package/lib/controls/side-pane/side-pane.component.d.ts +1 -1
  82. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  83. package/lib/controls/tabs/lib-tab-group.component.d.ts +1 -1
  84. package/lib/controls/tabs/lib-tab.component.d.ts +4 -5
  85. package/lib/controls/toaster/toaster-container.component.d.ts +1 -1
  86. package/lib/controls/toaster/toaster.component.d.ts +1 -1
  87. package/lib/controls/toggle/toggle.component.d.ts +1 -1
  88. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  89. package/lib/directives/click-outside.directive.d.ts +1 -1
  90. package/lib/directives/dynamic-component-host.directive.d.ts +1 -1
  91. package/lib/helpers/base-list.component.d.ts +1 -1
  92. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +1 -1
  93. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -1
  94. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +1 -1
  95. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +1 -1
  96. package/lib/layouts/views/form-layout/form-layout.component.d.ts +1 -1
  97. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +1 -1
  98. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +1 -1
  99. package/lib/layouts/views/view-layout/view-layout.component.d.ts +1 -1
  100. package/lib/ng-components.module.d.ts +3 -3
  101. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +1 -1
  102. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +1 -1
  103. package/lib/pages/auth/logged-out/logged-out.component.d.ts +1 -1
  104. package/lib/pages/http-status/error/error.component.d.ts +1 -1
  105. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +1 -1
  106. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +1 -1
  107. package/lib/pipes/address.pipe.d.ts +1 -1
  108. package/lib/pipes/duration-format.pipe.d.ts +1 -1
  109. package/lib/services/modal-service/modal-backdrop-component.d.ts +1 -1
  110. package/lib/services/modal-service/modal-container-component.d.ts +1 -1
  111. package/lib/tokens.d.ts +2 -0
  112. package/package.json +9 -22
  113. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
  114. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -260
  115. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -68
  116. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +0 -36
  117. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +0 -31
  118. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
  119. package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -183
  120. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +0 -42
  121. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -73
  122. package/esm2020/lib/controls/pager/pager.component.mjs +0 -130
  123. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
  124. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
  125. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +0 -54
  126. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +0 -56
  127. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +0 -28
  128. package/esm2020/lib/controls/toaster/toaster.component.mjs +0 -31
  129. package/esm2020/lib/controls/toggle/toggle.component.mjs +0 -64
  130. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -71
  131. package/esm2020/lib/helpers/base-list.component.mjs +0 -181
  132. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +0 -19
  133. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -131
  134. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -103
  135. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +0 -47
  136. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
  137. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -49
  138. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -98
  139. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
  140. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
  141. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +0 -28
  142. package/esm2020/lib/pages/http-status/error/error.component.mjs +0 -17
  143. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
  144. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
  145. package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
  146. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
  147. package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
  148. package/esm2020/lib/services/modal-service/modal-service.mjs +0 -219
  149. package/esm2020/lib/tokens.mjs +0 -6
  150. package/fesm2015/indice-ng-components.mjs +0 -3622
  151. package/fesm2015/indice-ng-components.mjs.map +0 -1
  152. package/fesm2020/indice-ng-components.mjs +0 -3565
  153. package/fesm2020/indice-ng-components.mjs.map +0 -1
@@ -1,126 +0,0 @@
1
- import { Component, HostListener } from '@angular/core';
2
- import { animationTime, cssClassNames } from './modal-styles.class';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./modal-options.class";
5
- /**
6
- * Modal container component.
7
- * @remarks
8
- * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.
9
- * You can override css classes to theme it {@link cssClassNames}
10
- * @internal
11
- */
12
- export class ModalContainerComponent {
13
- constructor(options, _element, renderer) {
14
- this._element = _element;
15
- this.renderer = renderer;
16
- this.isShown = false;
17
- this.animationsEnabled = false;
18
- this.isModalHiding = false;
19
- this.clickStartedInContent = false;
20
- this.config = Object.assign({}, options);
21
- }
22
- ngOnInit() {
23
- if (this.animationsEnabled) {
24
- this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);
25
- }
26
- this.renderer.setStyle(this._element.nativeElement, 'display', 'block');
27
- setTimeout(() => {
28
- this.isShown = true;
29
- this.renderer.addClass(this._element.nativeElement, cssClassNames.show);
30
- }, this.animationsEnabled ? animationTime.backdrop : 0);
31
- if (this._element.nativeElement) {
32
- this._element.nativeElement.focus();
33
- }
34
- }
35
- onClickStarted(event) {
36
- this.clickStartedInContent = event.target !== this._element.nativeElement;
37
- }
38
- onClickStop(event) {
39
- const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;
40
- if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {
41
- this.clickStartedInContent = false;
42
- return;
43
- }
44
- this.hide();
45
- }
46
- onPopState() {
47
- this.hide();
48
- }
49
- onEsc(event) {
50
- if (!this.isShown) {
51
- return;
52
- }
53
- if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {
54
- event.preventDefault();
55
- }
56
- if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {
57
- this.hide();
58
- }
59
- }
60
- ngOnDestroy() {
61
- if (this.isShown) {
62
- this._hide();
63
- }
64
- }
65
- hide(result) {
66
- if (this.isModalHiding || !this.isShown) {
67
- return;
68
- }
69
- if (this.config.closeInterceptor) {
70
- this.config.closeInterceptor().then(() => this._hide(), () => undefined);
71
- return;
72
- }
73
- this._hide(result);
74
- }
75
- _hide(result) {
76
- this.isModalHiding = true;
77
- this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);
78
- setTimeout(() => {
79
- this.isShown = false;
80
- this.modalService?.hide(this.config.id, result);
81
- this.isModalHiding = false;
82
- }, this.animationsEnabled ? animationTime.modal : 0);
83
- }
84
- }
85
- ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i1.ModalOptions }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
86
- ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ModalContainerComponent, selector: "lib-modal-container", host: { attributes: { "role": "dialog", "tabindex": "-1" }, listeners: { "mousedown": "onClickStarted($event)", "click": "onClickStop($event)", "window:popstate": "onPopState()", "window:keydown.esc": "onEsc($event)" }, properties: { "attr.aria-modal": "true", "attr.aria-labelledby": "config.ariaLabelledBy", "attr.aria-describedby": "config.ariaDescribedby" }, classAttribute: "modal" }, ngImport: i0, template: `
87
- <div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
88
- <div class="modal-content">
89
- <ng-content></ng-content>
90
- </div>
91
- </div>
92
- `, isInline: true });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalContainerComponent, decorators: [{
94
- type: Component,
95
- args: [{
96
- selector: 'lib-modal-container',
97
- template: `
98
- <div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
99
- <div class="modal-content">
100
- <ng-content></ng-content>
101
- </div>
102
- </div>
103
- `,
104
- host: {
105
- class: 'modal',
106
- role: 'dialog',
107
- tabindex: '-1',
108
- '[attr.aria-modal]': 'true',
109
- '[attr.aria-labelledby]': 'config.ariaLabelledBy',
110
- '[attr.aria-describedby]': 'config.ariaDescribedby',
111
- },
112
- }]
113
- }], ctorParameters: function () { return [{ type: i1.ModalOptions }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { onClickStarted: [{
114
- type: HostListener,
115
- args: ['mousedown', ['$event']]
116
- }], onClickStop: [{
117
- type: HostListener,
118
- args: ['click', ['$event']]
119
- }], onPopState: [{
120
- type: HostListener,
121
- args: ['window:popstate']
122
- }], onEsc: [{
123
- type: HostListener,
124
- args: ['window:keydown.esc', ['$event']]
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLWNvbnRhaW5lci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUlwRTs7Ozs7O0dBTUc7QUFtQkgsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFZLE9BQXFCLEVBQVksUUFBb0IsRUFBVSxRQUFtQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp0RixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RSxVQUFVLENBQ1IsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFD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QUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDN0IsQ0FBQyxFQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQzs7b0hBN0ZVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGljQWhCeEI7Ozs7OztHQU1UOzJGQVVVLHVCQUF1QjtrQkFsQm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7R0FNVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLE9BQU87d0JBQ2QsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLElBQUk7d0JBQ2QsbUJBQW1CLEVBQUUsTUFBTTt3QkFDM0Isd0JBQXdCLEVBQUUsdUJBQXVCO3dCQUNqRCx5QkFBeUIsRUFBRSx3QkFBd0I7cUJBQ3BEO2lCQUNGO29KQStCQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1yQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVdqQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCO2dCQU0vQixLQUFLO3NCQURKLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhbmltYXRpb25UaW1lLCBjc3NDbGFzc05hbWVzIH0gZnJvbSAnLi9tb2RhbC1zdHlsZXMuY2xhc3MnO1xyXG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMgfSBmcm9tICcuL21vZGFsLW9wdGlvbnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuL21vZGFsLXNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIE1vZGFsIGNvbnRhaW5lciBjb21wb25lbnQuXHJcbiAqIEByZW1hcmtzXHJcbiAqIEFsbCBkeW5hbWljIGNvbnRlbnQgYFRlbXBsYXRlUmVmYCBvciBgQ29tcG9uZW50YCBjYXNlIHdpbGwgYmUgZHJhd24gaW5zaWRlIHRoaXMuXHJcbiAqIFlvdSBjYW4gb3ZlcnJpZGUgY3NzIGNsYXNzZXMgdG8gdGhlbWUgaXQge0BsaW5rIGNzc0NsYXNzTmFtZXN9XHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kYWwtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBbY2xhc3NdPVwiJ21vZGFsLWRpYWxvZycgKyAoY29uZmlnLmNsYXNzID8gJyAnICsgY29uZmlnLmNsYXNzIDogJycpXCIgcm9sZT1cImRvY3VtZW50XCIgZm9jdXNUcmFwPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnbW9kYWwnLFxyXG4gICAgcm9sZTogJ2RpYWxvZycsXHJcbiAgICB0YWJpbmRleDogJy0xJyxcclxuICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICd0cnVlJyxcclxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2NvbmZpZy5hcmlhTGFiZWxsZWRCeScsXHJcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnY29uZmlnLmFyaWFEZXNjcmliZWRieScsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBsZXZlbD86IG51bWJlcjtcclxuICBwdWJsaWMgY29uZmlnOiBNb2RhbE9wdGlvbnM7XHJcbiAgcHVibGljIG1vZGFsU2VydmljZT86IE1vZGFsU2VydmljZTtcclxuICBwcml2YXRlIGlzU2hvd24gPSBmYWxzZTtcclxuICBwcml2YXRlIGFuaW1hdGlvbnNFbmFibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc01vZGFsSGlkaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNb2RhbE9wdGlvbnMsIHByb3RlY3RlZCBfZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5mYWRlKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTaG93biA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzTmFtZXMuc2hvdyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2tTdGFydGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudCA9IGV2ZW50LnRhcmdldCAhPT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2tTdG9wKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5CYWNrZHJvcCA9IGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmICF0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudDtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5pZ25vcmVCYWNrZHJvcENsaWNrIHx8IHRoaXMuY29uZmlnLmJhY2tkcm9wID09PSAnc3RhdGljJyB8fCAhY2xpY2tlZEluQmFja2Ryb3ApIHtcclxuICAgICAgdGhpcy5jbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cG9wc3RhdGUnKVxyXG4gIG9uUG9wU3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmVzYycsIFsnJGV2ZW50J10pXHJcbiAgb25Fc2MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNyB8fCBldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZy5rZXlib2FyZCAmJiB0aGlzLmNvbmZpZy5pZCA9PT0gdGhpcy5tb2RhbFNlcnZpY2U/LmdldEFjdGl2ZU1vZGFsKCkuY29uZmlnLmlkKSB7XHJcbiAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHRoaXMuX2hpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhpZGUocmVzdWx0PzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc01vZGFsSGlkaW5nIHx8ICF0aGlzLmlzU2hvd24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmNsb3NlSW50ZXJjZXB0b3IpIHtcclxuICAgICAgdGhpcy5jb25maWcuY2xvc2VJbnRlcmNlcHRvcigpLnRoZW4oXHJcbiAgICAgICAgKCkgPT4gdGhpcy5faGlkZSgpLFxyXG4gICAgICAgICgpID0+IHVuZGVmaW5lZFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlKHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlKHJlc3VsdD86IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5pc01vZGFsSGlkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlPy5oaWRlKHRoaXMuY29uZmlnLmlkLCByZXN1bHQpO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbEhpZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLmFuaW1hdGlvbnNFbmFibGVkID8gYW5pbWF0aW9uVGltZS5tb2RhbCA6IDBcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,219 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Inject, Injectable, Optional } from '@angular/core';
3
- import { Subject } from 'rxjs';
4
- import { animationTime, cssClassNames } from './modal-styles.class';
5
- import { ModalBackdropComponent } from './modal-backdrop-component';
6
- import { ModalContainerComponent } from './modal-container-component';
7
- import { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';
8
- import { Modal } from './modal.class';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../component-loader/component-loader.factory";
11
- import * as i2 from "./modal-options.class";
12
- /**
13
- * A service for using modals.
14
- *
15
- * @public
16
- */
17
- export class ModalService {
18
- constructor(clf, rendererFactory, document, modalDefaultOption) {
19
- this.clf = clf;
20
- this.document = document;
21
- this.onBeforeShow = new Subject();
22
- this.onShown = new Subject();
23
- this.onBeforeHide = new Subject();
24
- this.onHidden = new Subject();
25
- this.loaders = [];
26
- this.modalsCount = 0;
27
- this.initialPadding = '0px';
28
- this.backdropLoader = this.clf.createLoader();
29
- this.defaultConfig = { ...modalConfigDefaults, ...modalDefaultOption };
30
- this.renderer = rendererFactory.createRenderer(null, null);
31
- }
32
- ngOnDestroy() {
33
- this.loaders.forEach((loader) => loader.instance?.hide());
34
- }
35
- /**
36
- * Opens a new modal.
37
- *
38
- * @param content - `Component` or `TemplateRef` type.
39
- * @param config - Specific {@link ModalOptions | options} for this modal. Global and specific options are merged.
40
- * @returns An instance of {@link Modal}
41
- */
42
- show(content, config) {
43
- this.modalsCount++;
44
- const combinedConfig = { ...this.defaultConfig, ...config };
45
- combinedConfig.id = config?.id || new Date().getUTCMilliseconds();
46
- this.createLoaders();
47
- this.addBodyPadding();
48
- if (this.modalsCount === 1) {
49
- this.renderer.addClass(this.document.body, cssClassNames.modalOpen);
50
- }
51
- this.showBackdrop(combinedConfig);
52
- return this.showModal(content, combinedConfig);
53
- }
54
- /**
55
- * Hide an active modal.
56
- * @param id - Id of modal to hide. If not provided all active modals are hidden.
57
- * @param result - A result to be sent to observers.
58
- */
59
- hide(id, result) {
60
- if (this.modalsCount === 1 || id == null) {
61
- this.hideBackdrop();
62
- this.revertScrollbar();
63
- this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);
64
- }
65
- this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;
66
- setTimeout(() => {
67
- this.hideModal(id, result);
68
- this.removeLoaders(id);
69
- },
70
- //Bug
71
- //Should use combined config but for the moment is not possible to pass it this parameter.
72
- //If config is an instance variable then every newly opened modal will override the config
73
- //resulting in opened modals to get a new configuration
74
- this.defaultConfig.animated ? animationTime.backdrop : 0);
75
- }
76
- getActiveModal() {
77
- return this.loaders[this.modalsCount - 1].instance;
78
- }
79
- showModal(content, combinedConfig) {
80
- const modalLoader = this.loaders[this.loaders.length - 1];
81
- if (combinedConfig && combinedConfig.providers) {
82
- combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));
83
- }
84
- const modal = new Modal();
85
- const modalContainerRef = modalLoader
86
- .provide({ provide: ModalOptions, useValue: combinedConfig })
87
- .provide({ provide: Modal, useValue: modal })
88
- .attach(ModalContainerComponent)
89
- .to('body');
90
- modal.setClass = (newClass) => {
91
- if (modalContainerRef.instance) {
92
- modalContainerRef.instance.config.class = newClass;
93
- }
94
- };
95
- modal.onBeforeHide = new Subject();
96
- modal.onHidden = new Subject();
97
- this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);
98
- this.copyEvent(modalLoader.onHidden, modal.onHidden);
99
- modalContainerRef.show({
100
- content,
101
- animationsEnabled: combinedConfig.animated,
102
- initialState: combinedConfig.initialState,
103
- modalService: this,
104
- id: combinedConfig.id,
105
- });
106
- if (modalContainerRef.instance) {
107
- modalContainerRef.instance.level = this.modalsCount;
108
- modal.content = modalLoader.getInnerComponent();
109
- modal.id = modalContainerRef.instance.config?.id;
110
- modal.hide = (res) => modalContainerRef.instance?.hide(res);
111
- }
112
- return modal;
113
- }
114
- hideModal(id, result) {
115
- if (id != null) {
116
- const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);
117
- const modalLoader = this.loaders[indexToRemove];
118
- if (modalLoader) {
119
- modalLoader.hide(id, result);
120
- }
121
- }
122
- else {
123
- this.loaders.forEach((loader) => {
124
- if (loader.instance) {
125
- loader.hide(loader.instance.config.id);
126
- }
127
- });
128
- }
129
- }
130
- showBackdrop(combinedConfig) {
131
- const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';
132
- const isBackdropInDOM = this.backdropRef != null;
133
- if (isBackdropEnabled && !isBackdropInDOM) {
134
- this.backdropLoader
135
- .attach(ModalBackdropComponent)
136
- .to('body')
137
- .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });
138
- this.backdropRef = this.backdropLoader.componentRef;
139
- }
140
- }
141
- hideBackdrop() {
142
- if (!this.backdropRef) {
143
- return;
144
- }
145
- this.backdropRef.instance.hide();
146
- this.backdropRef = void 0;
147
- }
148
- removeLoaders(id) {
149
- if (id != null) {
150
- const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);
151
- if (indexToRemove >= 0) {
152
- this.loaders.splice(indexToRemove, 1);
153
- this.loaders.forEach((loader, i) => {
154
- if (loader.instance) {
155
- loader.instance.level = i + 1;
156
- }
157
- });
158
- }
159
- }
160
- else {
161
- this.loaders.splice(0, this.loaders.length);
162
- }
163
- }
164
- addBodyPadding() {
165
- if (this.modalsCount === 1) {
166
- const width = this.getScrollbarWidth();
167
- if (this.isScrollBarPresent(width)) {
168
- this.initialPadding = this.document.body.style.paddingRight;
169
- const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);
170
- this.document.body.style.paddingRight = `${actualPadding + width}px`;
171
- }
172
- }
173
- }
174
- revertScrollbar() {
175
- this.document.body.style.paddingRight = this.initialPadding;
176
- }
177
- getScrollbarWidth() {
178
- const measurer = this.document.createElement('div');
179
- measurer.className = 'modal-scrollbar-measure';
180
- const body = this.document.body;
181
- body.appendChild(measurer);
182
- const width = measurer.getBoundingClientRect().width - measurer.clientWidth;
183
- body.removeChild(measurer);
184
- return width;
185
- }
186
- isScrollBarPresent(scrollbarWidth) {
187
- const rect = this.document.body.getBoundingClientRect();
188
- const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);
189
- const uncertainty = 0.1 * scrollbarWidth;
190
- return bodyToViewportGap >= scrollbarWidth - uncertainty;
191
- }
192
- createLoaders() {
193
- const loader = this.clf.createLoader();
194
- this.copyEvent(loader.onBeforeShow, this.onBeforeShow);
195
- this.copyEvent(loader.onShown, this.onShown);
196
- this.copyEvent(loader.onBeforeHide, this.onBeforeHide);
197
- this.copyEvent(loader.onHidden, this.onHidden);
198
- this.loaders.push(loader);
199
- }
200
- copyEvent(from, to) {
201
- from.subscribe((data) => {
202
- to.next(data);
203
- });
204
- }
205
- }
206
- ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalService, deps: [{ token: i1.ComponentLoaderFactory }, { token: i0.RendererFactory2 }, { token: DOCUMENT }, { token: MODAL_CONFIG_DEFAULT_OVERRIDE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
207
- ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalService });
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalService, decorators: [{
209
- type: Injectable
210
- }], ctorParameters: function () { return [{ type: i1.ComponentLoaderFactory }, { type: i0.RendererFactory2 }, { type: undefined, decorators: [{
211
- type: Inject,
212
- args: [DOCUMENT]
213
- }] }, { type: i2.ModalOptions, decorators: [{
214
- type: Optional
215
- }, {
216
- type: Inject,
217
- args: [MODAL_CONFIG_DEFAULT_OVERRIDE]
218
- }] }]; } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQTRDLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUd0Qzs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFhdkIsWUFDVSxHQUEyQixFQUNuQyxlQUFpQyxFQUNQLFFBQWEsRUFDWSxrQkFBZ0M7UUFIM0UsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFFVCxhQUFRLEdBQVIsUUFBUSxDQUFLO1FBZmpDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFLekIsWUFBTyxHQUErQyxFQUFFLENBQUM7UUFFekQsZ0JB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QUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFzQixFQUFFLEVBQW9CO1FBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUdBMU5VLFlBQVksd0ZBZ0JiLFFBQVEsYUFDSSw2QkFBNkI7NkdBakJ4QyxZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7OzBCQWlCTixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsQmFja2Ryb3BDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWJhY2tkcm9wLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXItY29tcG9uZW50JztcclxuaW1wb3J0IHsgbW9kYWxDb25maWdEZWZhdWx0cywgTW9kYWxPcHRpb25zLCBNT0RBTF9DT05GSUdfREVGQVVMVF9PVkVSUklERSB9IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSAnLi9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICcuLi9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuZmFjdG9yeSc7XHJcblxyXG4vKipcclxuICogQSBzZXJ2aWNlIGZvciB1c2luZyBtb2RhbHMuXHJcbiAqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBvbkJlZm9yZVNob3cgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgb25TaG93biA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBvbkJlZm9yZUhpZGUgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgb25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIGJhY2tkcm9wUmVmPzogQ29tcG9uZW50UmVmPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+O1xyXG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogTW9kYWxPcHRpb25zO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PjtcclxuICBwcml2YXRlIGxvYWRlcnM6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD5bXSA9IFtdO1xyXG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxuICBwcml2YXRlIG1vZGFsc0NvdW50ID0gMDtcclxuICBwcml2YXRlIGluaXRpYWxQYWRkaW5nID0gJzBweCc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNsZjogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSxcclxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9EQUxfQ09ORklHX0RFRkFVTFRfT1ZFUlJJREUpIG1vZGFsRGVmYXVsdE9wdGlvbjogTW9kYWxPcHRpb25zXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJhY2tkcm9wTG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+KCk7XHJcbiAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLm1vZGFsQ29uZmlnRGVmYXVsdHMsIC4uLm1vZGFsRGVmYXVsdE9wdGlvbiB9O1xyXG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZXJzLmZvckVhY2goKGxvYWRlcikgPT4gbG9hZGVyLmluc3RhbmNlPy5oaWRlKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBuZXcgbW9kYWwuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29udGVudCAtIGBDb21wb25lbnRgIG9yIGBUZW1wbGF0ZVJlZmAgdHlwZS5cclxuICAgKiBAcGFyYW0gY29uZmlnIC0gU3BlY2lmaWMge0BsaW5rIE1vZGFsT3B0aW9ucyB8IG9wdGlvbnN9ICBmb3IgdGhpcyBtb2RhbC4gR2xvYmFsIGFuZCBzcGVjaWZpYyBvcHRpb25zIGFyZSBtZXJnZWQuXHJcbiAgICogQHJldHVybnMgQW4gaW5zdGFuY2Ugb2Yge0BsaW5rIE1vZGFsfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93PFQ+KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0sIGNvbmZpZz86IE1vZGFsT3B0aW9uczxUPikge1xyXG4gICAgdGhpcy5tb2RhbHNDb3VudCsrO1xyXG4gICAgY29uc3QgY29tYmluZWRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH07XHJcbiAgICBjb21iaW5lZENvbmZpZy5pZCA9IGNvbmZpZz8uaWQgfHwgbmV3IERhdGUoKS5nZXRVVENNaWxsaXNlY29uZHMoKTtcclxuICAgIHRoaXMuY3JlYXRlTG9hZGVycygpO1xyXG5cclxuICAgIHRoaXMuYWRkQm9keVBhZGRpbmcoKTtcclxuICAgIGlmICh0aGlzLm1vZGFsc0NvdW50ID09PSAxKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCBjc3NDbGFzc05hbWVzLm1vZGFsT3Blbik7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dCYWNrZHJvcChjb21iaW5lZENvbmZpZyk7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93TW9kYWw8VD4oY29udGVudCwgY29tYmluZWRDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGlkZSBhbiBhY3RpdmUgbW9kYWwuXHJcbiAgICogQHBhcmFtIGlkIC0gSWQgb2YgbW9kYWwgdG8gaGlkZS4gSWYgbm90IHByb3ZpZGVkIGFsbCBhY3RpdmUgbW9kYWxzIGFyZSBoaWRkZW4uXHJcbiAgICogQHBhcmFtIHJlc3VsdCAtIEEgcmVzdWx0IHRvIGJlIHNlbnQgdG8gb2JzZXJ2ZXJzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBoaWRlKGlkPzogbnVtYmVyIHwgc3RyaW5nLCByZXN1bHQ/OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm1vZGFsc0NvdW50ID09PSAxIHx8IGlkID09IG51bGwpIHtcclxuICAgICAgdGhpcy5oaWRlQmFja2Ryb3AoKTtcclxuICAgICAgdGhpcy5yZXZlcnRTY3JvbGxiYXIoKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksIGNzc0NsYXNzTmFtZXMubW9kYWxPcGVuKTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kYWxzQ291bnQgPSB0aGlzLm1vZGFsc0NvdW50ID49IDEgJiYgaWQgIT0gbnVsbCA/IHRoaXMubW9kYWxzQ291bnQgLSAxIDogMDtcclxuICAgIHNldFRpbWVvdXQoXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLmhpZGVNb2RhbChpZCwgcmVzdWx0KTtcclxuICAgICAgICB0aGlzLnJlbW92ZUxvYWRlcnMoaWQpO1xyXG4gICAgICB9LFxyXG4gICAgICAvL0J1Z1xyXG4gICAgICAvL1Nob3VsZCB1c2UgY29tYmluZWQgY29uZmlnIGJ1dCBmb3IgdGhlIG1vbWVudCBpcyBub3QgcG9zc2libGUgdG8gcGFzcyBpdCB0aGlzIHBhcmFtZXRlci5cclxuICAgICAgLy9JZiBjb25maWcgaXMgYW4gaW5zdGFuY2UgdmFyaWFibGUgdGhlbiBldmVyeSBuZXdseSBvcGVuZWQgbW9kYWwgd2lsbCBvdmVycmlkZSB0aGUgY29uZmlnXHJcbiAgICAgIC8vcmVzdWx0aW5nIGluIG9wZW5lZCBtb2RhbHMgdG8gZ2V0IGEgbmV3IGNvbmZpZ3VyYXRpb25cclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnLmFuaW1hdGVkID8gYW5pbWF0aW9uVGltZS5iYWNrZHJvcCA6IDBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QWN0aXZlTW9kYWwoKTogTW9kYWxDb250YWluZXJDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMubG9hZGVyc1t0aGlzLm1vZGFsc0NvdW50IC0gMV0uaW5zdGFuY2UgYXMgTW9kYWxDb250YWluZXJDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dNb2RhbDxUPihjb250ZW50OiBhbnksIGNvbWJpbmVkQ29uZmlnOiBNb2RhbE9wdGlvbnMpOiBNb2RhbDxUPiB7XHJcbiAgICBjb25zdCBtb2RhbExvYWRlciA9IHRoaXMubG9hZGVyc1t0aGlzLmxvYWRlcnMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoY29tYmluZWRDb25maWcgJiYgY29tYmluZWRDb25maWcucHJvdmlkZXJzKSB7XHJcbiAgICAgIGNvbWJpbmVkQ29uZmlnLnByb3ZpZGVycy5mb3JFYWNoKChwcm92aWRlcikgPT4gbW9kYWxMb2FkZXIucHJvdmlkZShwcm92aWRlcikpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1vZGFsID0gbmV3IE1vZGFsPGFueT4oKTtcclxuICAgIGNvbnN0IG1vZGFsQ29udGFpbmVyUmVmID0gbW9kYWxMb2FkZXJcclxuICAgICAgLnByb3ZpZGUoeyBwcm92aWRlOiBNb2RhbE9wdGlvbnMsIHVzZVZhbHVlOiBjb21iaW5lZENvbmZpZyB9KVxyXG4gICAgICAucHJvdmlkZSh7IHByb3ZpZGU6IE1vZGFsLCB1c2VWYWx1ZTogbW9kYWwgfSlcclxuICAgICAgLmF0dGFjaChNb2RhbENvbnRhaW5lckNvbXBvbmVudClcclxuICAgICAgLnRvKCdib2R5Jyk7XHJcblxyXG4gICAgbW9kYWwuc2V0Q2xhc3MgPSAobmV3Q2xhc3M6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAobW9kYWxDb250YWluZXJSZWYuaW5zdGFuY2UpIHtcclxuICAgICAgICBtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZS5jb25maWcuY2xhc3MgPSBuZXdDbGFzcztcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBtb2RhbC5vbkJlZm9yZUhpZGUgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgbW9kYWwub25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQobW9kYWxMb2FkZXIub25CZWZvcmVIaWRlLCBtb2RhbC5vbkJlZm9yZUhpZGUpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQobW9kYWxMb2FkZXIub25IaWRkZW4sIG1vZGFsLm9uSGlkZGVuKTtcclxuICAgIG1vZGFsQ29udGFpbmVyUmVmLnNob3coe1xyXG4gICAgICBjb250ZW50LFxyXG4gICAgICBhbmltYXRpb25zRW5hYmxlZDogY29tYmluZWRDb25maWcuYW5pbWF0ZWQsXHJcbiAgICAgIGluaXRpYWxTdGF0ZTogY29tYmluZWRDb25maWcuaW5pdGlhbFN0YXRlLFxyXG4gICAgICBtb2RhbFNlcnZpY2U6IHRoaXMsXHJcbiAgICAgIGlkOiBjb21iaW5lZENvbmZpZy5pZCxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZSkge1xyXG4gICAgICBtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZS5sZXZlbCA9IHRoaXMubW9kYWxzQ291bnQ7XHJcbiAgICAgIG1vZGFsLmNvbnRlbnQgPSBtb2RhbExvYWRlci5nZXRJbm5lckNvbXBvbmVudCgpO1xyXG4gICAgICBtb2RhbC5pZCA9IG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmNvbmZpZz8uaWQ7XHJcbiAgICAgIG1vZGFsLmhpZGUgPSAocmVzKSA9PiBtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZT8uaGlkZShyZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtb2RhbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZU1vZGFsKGlkPzogbnVtYmVyIHwgc3RyaW5nLCByZXN1bHQ/OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChpZCAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4VG9SZW1vdmUgPSB0aGlzLmxvYWRlcnMuZmluZEluZGV4KChsb2FkZXIpID0+IGxvYWRlci5pbnN0YW5jZT8uY29uZmlnLmlkID09PSBpZCk7XHJcbiAgICAgIGNvbnN0IG1vZGFsTG9hZGVyID0gdGhpcy5sb2FkZXJzW2luZGV4VG9SZW1vdmVdO1xyXG4gICAgICBpZiAobW9kYWxMb2FkZXIpIHtcclxuICAgICAgICBtb2RhbExvYWRlci5oaWRlKGlkLCByZXN1bHQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRlcnMuZm9yRWFjaCgobG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+KSA9PiB7XHJcbiAgICAgICAgaWYgKGxvYWRlci5pbnN0YW5jZSkge1xyXG4gICAgICAgICAgbG9hZGVyLmhpZGUobG9hZGVyLmluc3RhbmNlLmNvbmZpZy5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd0JhY2tkcm9wKGNvbWJpbmVkQ29uZmlnOiBNb2RhbE9wdGlvbnMpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlzQmFja2Ryb3BFbmFibGVkID0gY29tYmluZWRDb25maWcuYmFja2Ryb3AgPT09IHRydWUgfHwgY29tYmluZWRDb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnO1xyXG4gICAgY29uc3QgaXNCYWNrZHJvcEluRE9NID0gdGhpcy5iYWNrZHJvcFJlZiAhPSBudWxsO1xyXG4gICAgaWYgKGlzQmFja2Ryb3BFbmFibGVkICYmICFpc0JhY2tkcm9wSW5ET00pIHtcclxuICAgICAgdGhpcy5iYWNrZHJvcExvYWRlclxyXG4gICAgICAgIC5hdHRhY2goTW9kYWxCYWNrZHJvcENvbXBvbmVudClcclxuICAgICAgICAudG8oJ2JvZHknKVxyXG4gICAgICAgIC5zaG93KHsgYW5pbWF0aW9uc0VuYWJsZWQ6IGNvbWJpbmVkQ29uZmlnLmFuaW1hdGVkLCBiYWNrZHJvcExvYWRlcjogdGhpcy5iYWNrZHJvcExvYWRlciB9KTtcclxuICAgICAgdGhpcy5iYWNrZHJvcFJlZiA9IHRoaXMuYmFja2Ryb3BMb2FkZXIuY29tcG9uZW50UmVmO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlQmFja2Ryb3AoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYmFja2Ryb3BSZWYpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5iYWNrZHJvcFJlZi5pbnN0YW5jZS5oaWRlKCk7XHJcbiAgICB0aGlzLmJhY2tkcm9wUmVmID0gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVMb2FkZXJzKGlkPzogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoaWQgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBpbmRleFRvUmVtb3ZlID0gdGhpcy5sb2FkZXJzLmZpbmRJbmRleCgobG9hZGVyKSA9PiBsb2FkZXIuaW5zdGFuY2U/LmNvbmZpZy5pZCA9PT0gaWQpO1xyXG4gICAgICBpZiAoaW5kZXhUb1JlbW92ZSA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkZXJzLnNwbGljZShpbmRleFRvUmVtb3ZlLCAxKTtcclxuICAgICAgICB0aGlzLmxvYWRlcnMuZm9yRWFjaCgobG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGlmIChsb2FkZXIuaW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgbG9hZGVyLmluc3RhbmNlLmxldmVsID0gaSArIDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZGVycy5zcGxpY2UoMCwgdGhpcy5sb2FkZXJzLmxlbmd0aCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEJvZHlQYWRkaW5nKCkge1xyXG4gICAgaWYgKHRoaXMubW9kYWxzQ291bnQgPT09IDEpIHtcclxuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmdldFNjcm9sbGJhcldpZHRoKCk7XHJcbiAgICAgIGlmICh0aGlzLmlzU2Nyb2xsQmFyUHJlc2VudCh3aWR0aCkpIHtcclxuICAgICAgICB0aGlzLmluaXRpYWxQYWRkaW5nID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodDtcclxuICAgICAgICBjb25zdCBhY3R1YWxQYWRkaW5nID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHkpLnBhZGRpbmdSaWdodCk7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IGAke2FjdHVhbFBhZGRpbmcgKyB3aWR0aH1weGA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmV2ZXJ0U2Nyb2xsYmFyKCkge1xyXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IHRoaXMuaW5pdGlhbFBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNjcm9sbGJhcldpZHRoKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBtZWFzdXJlciA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBtZWFzdXJlci5jbGFzc05hbWUgPSAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnO1xyXG5cclxuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmRvY3VtZW50LmJvZHk7XHJcbiAgICBib2R5LmFwcGVuZENoaWxkKG1lYXN1cmVyKTtcclxuICAgIGNvbnN0IHdpZHRoID0gbWVhc3VyZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggLSBtZWFzdXJlci5jbGllbnRXaWR0aDtcclxuICAgIGJvZHkucmVtb3ZlQ2hpbGQobWVhc3VyZXIpO1xyXG5cclxuICAgIHJldHVybiB3aWR0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTY3JvbGxCYXJQcmVzZW50KHNjcm9sbGJhcldpZHRoOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBib2R5VG9WaWV3cG9ydEdhcCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gKHJlY3QubGVmdCArIHJlY3QucmlnaHQpO1xyXG4gICAgY29uc3QgdW5jZXJ0YWludHkgPSAwLjEgKiBzY3JvbGxiYXJXaWR0aDtcclxuICAgIHJldHVybiBib2R5VG9WaWV3cG9ydEdhcCA+PSBzY3JvbGxiYXJXaWR0aCAtIHVuY2VydGFpbnR5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMb2FkZXJzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PigpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQobG9hZGVyLm9uQmVmb3JlU2hvdywgdGhpcy5vbkJlZm9yZVNob3cpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQobG9hZGVyLm9uU2hvd24sIHRoaXMub25TaG93bik7XHJcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25CZWZvcmVIaWRlLCB0aGlzLm9uQmVmb3JlSGlkZSk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25IaWRkZW4sIHRoaXMub25IaWRkZW4pO1xyXG4gICAgdGhpcy5sb2FkZXJzLnB1c2gobG9hZGVyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29weUV2ZW50KGZyb206IFN1YmplY3Q8dW5rbm93bj4sIHRvOiBTdWJqZWN0PHVua25vd24+KSB7XHJcbiAgICBmcm9tLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICB0by5uZXh0KGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,6 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const APP_LINKS = new InjectionToken('APP_LINKS');
3
- export const APP_NOTIFICATIONS = new InjectionToken('APP_NOTIFICATIONS');
4
- export const SHELL_CONFIG = new InjectionToken('SHELL_CONFIG');
5
- export const APP_LANGUAGES = new InjectionToken('APP_LANGUAGES');
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3Rva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBWSxXQUFXLENBQUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBb0IsbUJBQW1CLENBQUMsQ0FBQztBQUM1RixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWUsY0FBYyxDQUFDLENBQUM7QUFDN0UsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUF1QixlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElBcHBMaW5rcywgSUFwcExhbmd1YWdlc1NlcnZpY2UsIElBcHBOb3RpZmljYXRpb25zLCBJU2hlbGxDb25maWcgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbmV4cG9ydCBjb25zdCBBUFBfTElOS1MgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUFwcExpbmtzPignQVBQX0xJTktTJyk7XHJcbmV4cG9ydCBjb25zdCBBUFBfTk9USUZJQ0FUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQXBwTm90aWZpY2F0aW9ucz4oJ0FQUF9OT1RJRklDQVRJT05TJyk7XHJcbmV4cG9ydCBjb25zdCBTSEVMTF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVNoZWxsQ29uZmlnPignU0hFTExfQ09ORklHJyk7XHJcbmV4cG9ydCBjb25zdCBBUFBfTEFOR1VBR0VTID0gbmV3IEluamVjdGlvblRva2VuPElBcHBMYW5ndWFnZXNTZXJ2aWNlPignQVBQX0xBTkdVQUdFUycpO1xyXG4iXX0=