@indice/ng-components 0.3.12 → 0.4.0-beta.1

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 (169) hide show
  1. package/fesm2022/indice-ng-components.mjs +314 -279
  2. package/fesm2022/indice-ng-components.mjs.map +1 -1
  3. package/index.d.ts +1894 -3
  4. package/package.json +8 -10
  5. package/esm2022/indice-ng-components.mjs +0 -5
  6. package/esm2022/lib/controls/advanced-search/advanced-search.component.mjs +0 -161
  7. package/esm2022/lib/controls/advanced-search/models.mjs +0 -109
  8. package/esm2022/lib/controls/avatar-initials/avatar-initials.component.mjs +0 -48
  9. package/esm2022/lib/controls/breadcrumb/breadcrumb-item.mjs +0 -14
  10. package/esm2022/lib/controls/breadcrumb/breadcrumb.component.mjs +0 -26
  11. package/esm2022/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
  12. package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -118
  13. package/esm2022/lib/controls/content-tile/content-tile.component.mjs +0 -91
  14. package/esm2022/lib/controls/date-picker/date-picker.component.mjs +0 -300
  15. package/esm2022/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -72
  16. package/esm2022/lib/controls/enhanced-combobox/enhanced-combobox.component.mjs +0 -115
  17. package/esm2022/lib/controls/kpi-tile/kpi-tile.component.mjs +0 -43
  18. package/esm2022/lib/controls/language-selection/language-selection.component.mjs +0 -31
  19. package/esm2022/lib/controls/list-view/list-column.component.mjs +0 -25
  20. package/esm2022/lib/controls/list-view/list-details-section.component.mjs +0 -17
  21. package/esm2022/lib/controls/list-view/list-tile.component.mjs +0 -17
  22. package/esm2022/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
  23. package/esm2022/lib/controls/list-view/list-view.component.mjs +0 -211
  24. package/esm2022/lib/controls/nav-links-list/nav-links-list.component.mjs +0 -54
  25. package/esm2022/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -79
  26. package/esm2022/lib/controls/pager/pager.component.mjs +0 -130
  27. package/esm2022/lib/controls/progress-bar/progress-bar.component.mjs +0 -46
  28. package/esm2022/lib/controls/side-pane/side-pane.component.mjs +0 -106
  29. package/esm2022/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -29
  30. package/esm2022/lib/controls/stats-grid/stats-grid.component.mjs +0 -49
  31. package/esm2022/lib/controls/stepper/lib-step-info.directive.mjs +0 -16
  32. package/esm2022/lib/controls/stepper/lib-step-label.directive.mjs +0 -16
  33. package/esm2022/lib/controls/stepper/lib-step.component.mjs +0 -81
  34. package/esm2022/lib/controls/stepper/lib-stepper.component.mjs +0 -108
  35. package/esm2022/lib/controls/stepper/types/step-selected-event.mjs +0 -4
  36. package/esm2022/lib/controls/stepper/types/stepper-type.mjs +0 -12
  37. package/esm2022/lib/controls/tabs/lib-tab-group.component.mjs +0 -66
  38. package/esm2022/lib/controls/tabs/lib-tab-label.directive.mjs +0 -16
  39. package/esm2022/lib/controls/tabs/lib-tab.component.mjs +0 -64
  40. package/esm2022/lib/controls/toaster/toaster-container.component.mjs +0 -28
  41. package/esm2022/lib/controls/toaster/toaster.component.mjs +0 -31
  42. package/esm2022/lib/controls/toggle/toggle.component.mjs +0 -64
  43. package/esm2022/lib/controls/toggle-button/toggle-button.component.mjs +0 -87
  44. package/esm2022/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +0 -34
  45. package/esm2022/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -75
  46. package/esm2022/lib/directives/click-outside.directive.mjs +0 -189
  47. package/esm2022/lib/directives/dynamic-component-host.directive.mjs +0 -17
  48. package/esm2022/lib/helpers/base-list.component.mjs +0 -235
  49. package/esm2022/lib/icons.mjs +0 -36
  50. package/esm2022/lib/layouts/shell/shell-footer/shell-footer.component.mjs +0 -19
  51. package/esm2022/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -138
  52. package/esm2022/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -92
  53. package/esm2022/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +0 -54
  54. package/esm2022/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +0 -45
  55. package/esm2022/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +0 -33
  56. package/esm2022/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +0 -24
  57. package/esm2022/lib/layouts/views/form-layout/form-layout.component.mjs +0 -86
  58. package/esm2022/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -103
  59. package/esm2022/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -106
  60. package/esm2022/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
  61. package/esm2022/lib/ng-components.module.mjs +0 -324
  62. package/esm2022/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
  63. package/esm2022/lib/pages/auth/auth-renew/auth-renew.component.mjs +0 -31
  64. package/esm2022/lib/pages/auth/logged-out/logged-out.component.mjs +0 -28
  65. package/esm2022/lib/pages/http-status/error/error.component.mjs +0 -17
  66. package/esm2022/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
  67. package/esm2022/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
  68. package/esm2022/lib/pipes/address.pipe.mjs +0 -21
  69. package/esm2022/lib/pipes/duration-format.pipe.mjs +0 -64
  70. package/esm2022/lib/pipes/short-number.pipe.mjs +0 -43
  71. package/esm2022/lib/services/breadcrumb.service.mjs +0 -181
  72. package/esm2022/lib/services/component-loader/component-loader-options.class.mjs +0 -8
  73. package/esm2022/lib/services/component-loader/component-loader.class.mjs +0 -188
  74. package/esm2022/lib/services/component-loader/component-loader.factory.mjs +0 -32
  75. package/esm2022/lib/services/component-loader/content-ref.class.mjs +0 -13
  76. package/esm2022/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
  77. package/esm2022/lib/services/modal-service/modal-container-component.mjs +0 -126
  78. package/esm2022/lib/services/modal-service/modal-options.class.mjs +0 -35
  79. package/esm2022/lib/services/modal-service/modal-service.mjs +0 -220
  80. package/esm2022/lib/services/modal-service/modal-styles.class.mjs +0 -11
  81. package/esm2022/lib/services/modal-service/modal.class.mjs +0 -27
  82. package/esm2022/lib/services/toaster.service.mjs +0 -26
  83. package/esm2022/lib/services/user-settings.service.mjs +0 -35
  84. package/esm2022/lib/services/utilities.service.mjs +0 -47
  85. package/esm2022/lib/tokens.mjs +0 -8
  86. package/esm2022/lib/types.mjs +0 -143
  87. package/esm2022/public-api.mjs +0 -77
  88. package/lib/controls/advanced-search/advanced-search.component.d.ts +0 -42
  89. package/lib/controls/advanced-search/models.d.ts +0 -92
  90. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +0 -14
  91. package/lib/controls/breadcrumb/breadcrumb-item.d.ts +0 -7
  92. package/lib/controls/breadcrumb/breadcrumb.component.d.ts +0 -12
  93. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +0 -10
  94. package/lib/controls/combobox/combobox.component.d.ts +0 -34
  95. package/lib/controls/content-tile/content-tile.component.d.ts +0 -34
  96. package/lib/controls/date-picker/date-picker.component.d.ts +0 -53
  97. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +0 -26
  98. package/lib/controls/enhanced-combobox/enhanced-combobox.component.d.ts +0 -37
  99. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +0 -15
  100. package/lib/controls/language-selection/language-selection.component.d.ts +0 -14
  101. package/lib/controls/list-view/list-column.component.d.ts +0 -9
  102. package/lib/controls/list-view/list-details-section.component.d.ts +0 -7
  103. package/lib/controls/list-view/list-tile.component.d.ts +0 -7
  104. package/lib/controls/list-view/list-view-empty-state.component.d.ts +0 -11
  105. package/lib/controls/list-view/list-view.component.d.ts +0 -62
  106. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +0 -21
  107. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +0 -22
  108. package/lib/controls/pager/pager.component.d.ts +0 -36
  109. package/lib/controls/progress-bar/progress-bar.component.d.ts +0 -16
  110. package/lib/controls/side-pane/side-pane.component.d.ts +0 -28
  111. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +0 -12
  112. package/lib/controls/stats-grid/stats-grid.component.d.ts +0 -16
  113. package/lib/controls/stepper/lib-step-info.directive.d.ts +0 -8
  114. package/lib/controls/stepper/lib-step-label.directive.d.ts +0 -8
  115. package/lib/controls/stepper/lib-step.component.d.ts +0 -34
  116. package/lib/controls/stepper/lib-stepper.component.d.ts +0 -43
  117. package/lib/controls/stepper/types/step-selected-event.d.ts +0 -12
  118. package/lib/controls/stepper/types/stepper-type.d.ts +0 -10
  119. package/lib/controls/tabs/lib-tab-group.component.d.ts +0 -21
  120. package/lib/controls/tabs/lib-tab-label.directive.d.ts +0 -8
  121. package/lib/controls/tabs/lib-tab.component.d.ts +0 -24
  122. package/lib/controls/toaster/toaster-container.component.d.ts +0 -13
  123. package/lib/controls/toaster/toaster.component.d.ts +0 -15
  124. package/lib/controls/toggle/toggle.component.d.ts +0 -19
  125. package/lib/controls/toggle-button/toggle-button.component.d.ts +0 -25
  126. package/lib/controls/toggle-buttons-list/toggle-buttons-list.component.d.ts +0 -15
  127. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +0 -25
  128. package/lib/directives/click-outside.directive.d.ts +0 -40
  129. package/lib/directives/dynamic-component-host.directive.d.ts +0 -9
  130. package/lib/helpers/base-list.component.d.ts +0 -55
  131. package/lib/icons.d.ts +0 -34
  132. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +0 -8
  133. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +0 -40
  134. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +0 -27
  135. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +0 -20
  136. package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +0 -14
  137. package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +0 -16
  138. package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +0 -11
  139. package/lib/layouts/views/form-layout/form-layout.component.d.ts +0 -26
  140. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +0 -44
  141. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +0 -29
  142. package/lib/layouts/views/view-layout/view-layout.component.d.ts +0 -31
  143. package/lib/ng-components.module.d.ts +0 -70
  144. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +0 -13
  145. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +0 -12
  146. package/lib/pages/auth/logged-out/logged-out.component.d.ts +0 -12
  147. package/lib/pages/http-status/error/error.component.d.ts +0 -8
  148. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +0 -8
  149. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +0 -8
  150. package/lib/pipes/address.pipe.d.ts +0 -8
  151. package/lib/pipes/duration-format.pipe.d.ts +0 -8
  152. package/lib/pipes/short-number.pipe.d.ts +0 -7
  153. package/lib/services/breadcrumb.service.d.ts +0 -29
  154. package/lib/services/component-loader/component-loader-options.class.d.ts +0 -30
  155. package/lib/services/component-loader/component-loader.class.d.ts +0 -92
  156. package/lib/services/component-loader/component-loader.factory.d.ts +0 -24
  157. package/lib/services/component-loader/content-ref.class.d.ts +0 -12
  158. package/lib/services/modal-service/modal-backdrop-component.d.ts +0 -20
  159. package/lib/services/modal-service/modal-container-component.d.ts +0 -33
  160. package/lib/services/modal-service/modal-options.class.d.ts +0 -81
  161. package/lib/services/modal-service/modal-service.d.ts +0 -58
  162. package/lib/services/modal-service/modal-styles.class.d.ts +0 -10
  163. package/lib/services/modal-service/modal.class.d.ts +0 -43
  164. package/lib/services/toaster.service.d.ts +0 -11
  165. package/lib/services/user-settings.service.d.ts +0 -13
  166. package/lib/services/utilities.service.d.ts +0 -11
  167. package/lib/tokens.d.ts +0 -10
  168. package/lib/types.d.ts +0 -188
  169. package/public-api.d.ts +0 -67
@@ -1,44 +0,0 @@
1
- import { Component, ViewEncapsulation } from '@angular/core';
2
- import { animationTime, cssClassNames } from './modal-styles.class';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Background layer for modals.
6
- * Override class name to theme it.
7
- * @see {@link cssClassNames}
8
- * @internal
9
- */
10
- export class ModalBackdropComponent {
11
- constructor(element, renderer) {
12
- this.element = element;
13
- this.renderer = renderer;
14
- this.animationsEnabled = false;
15
- }
16
- ngOnInit() {
17
- if (this.animationsEnabled) {
18
- this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);
19
- this.reflow(this.element.nativeElement);
20
- }
21
- this.renderer.addClass(this.element.nativeElement, cssClassNames.show);
22
- }
23
- hide() {
24
- this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);
25
- setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);
26
- }
27
- reflow(element) {
28
- ((bs) => bs)(element.offsetHeight);
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModalBackdropComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ModalBackdropComponent, selector: "lib-modal-backdrop", host: { classAttribute: "modal-backdrop" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModalBackdropComponent, decorators: [{
34
- type: Component,
35
- args: [{
36
- selector: 'lib-modal-backdrop',
37
- encapsulation: ViewEncapsulation.None,
38
- template: '',
39
- host: {
40
- class: cssClassNames.backdrop,
41
- },
42
- }]
43
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvbW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBFOzs7OztHQUtHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFvQixPQUFtQixFQUFVLFFBQW1CO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRjVELHNCQUFpQixHQUFHLEtBQUssQ0FBQztJQUVxQyxDQUFDO0lBRXhFLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBWTtRQUNqQixDQUFDLENBQUMsRUFBTyxFQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FwQlUsc0JBQXNCO2tHQUF0QixzQkFBc0Isc0dBTHZCLEVBQUU7OzJGQUtELHNCQUFzQjtrQkFSbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxhQUFhLENBQUMsUUFBUTtxQkFDOUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIgfSBmcm9tICcuLi9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuY2xhc3MnO1xyXG5pbXBvcnQgeyBhbmltYXRpb25UaW1lLCBjc3NDbGFzc05hbWVzIH0gZnJvbSAnLi9tb2RhbC1zdHlsZXMuY2xhc3MnO1xyXG5cclxuLyoqXHJcbiAqIEJhY2tncm91bmQgbGF5ZXIgZm9yIG1vZGFscy5cclxuICogT3ZlcnJpZGUgY2xhc3MgbmFtZSB0byB0aGVtZSBpdC5cclxuICogQHNlZSB7QGxpbmsgY3NzQ2xhc3NOYW1lc31cclxuICogQGludGVybmFsXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tb2RhbC1iYWNrZHJvcCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6IGNzc0NsYXNzTmFtZXMuYmFja2Ryb3AsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQmFja2Ryb3BDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgYW5pbWF0aW9uc0VuYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIGJhY2tkcm9wTG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxCYWNrZHJvcENvbXBvbmVudD4gfCB1bmRlZmluZWQ7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5mYWRlKTtcclxuICAgICAgdGhpcy5yZWZsb3codGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5zaG93KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoaWRlKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5zaG93KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5iYWNrZHJvcExvYWRlcj8uaGlkZSgpLCB0aGlzLmFuaW1hdGlvbnNFbmFibGVkID8gYW5pbWF0aW9uVGltZS5iYWNrZHJvcCA6IDApO1xyXG4gIH1cclxuXHJcbiAgcmVmbG93KGVsZW1lbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgKChiczogYW55KTogdm9pZCA9PiBicykoZWxlbWVudC5vZmZzZXRIZWlnaHQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i1.ModalOptions }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", 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: `
86
- <div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
87
- <div class="modal-content">
88
- <ng-content></ng-content>
89
- </div>
90
- </div>
91
- `, isInline: true }); }
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", 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: () => [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLWNvbnRhaW5lci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUlwRTs7Ozs7O0dBTUc7QUFtQkgsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFZLE9BQXFCLEVBQVksUUFBb0IsRUFBVSxRQUFtQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp0RixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEUsVUFBVSxDQUNSLEdBQUcsRUFBRTtZQUNI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QyxJQUFJLENBQUMsQ0FBQztRQUMzRSxVQUFVLENBQ1IsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDN0IsQ0FBQyxFQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQzs4R0E3RlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsaWNBaEJ4Qjs7Ozs7O0dBTVQ7OzJGQVVVLHVCQUF1QjtrQkFsQm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7R0FNVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLE9BQU87d0JBQ2QsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLElBQUk7d0JBQ2QsbUJBQW1CLEVBQUUsTUFBTTt3QkFDM0Isd0JBQXdCLEVBQUUsdUJBQXVCO3dCQUNqRCx5QkFBeUIsRUFBRSx3QkFBd0I7cUJBQ3BEO2lCQUNGO2tJQStCQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1yQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVdqQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCO2dCQU0vQixLQUFLO3NCQURKLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhbmltYXRpb25UaW1lLCBjc3NDbGFzc05hbWVzIH0gZnJvbSAnLi9tb2RhbC1zdHlsZXMuY2xhc3MnO1xyXG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMgfSBmcm9tICcuL21vZGFsLW9wdGlvbnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuL21vZGFsLXNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIE1vZGFsIGNvbnRhaW5lciBjb21wb25lbnQuXHJcbiAqIEByZW1hcmtzXHJcbiAqIEFsbCBkeW5hbWljIGNvbnRlbnQgYFRlbXBsYXRlUmVmYCBvciBgQ29tcG9uZW50YCBjYXNlIHdpbGwgYmUgZHJhd24gaW5zaWRlIHRoaXMuXHJcbiAqIFlvdSBjYW4gb3ZlcnJpZGUgY3NzIGNsYXNzZXMgdG8gdGhlbWUgaXQge0BsaW5rIGNzc0NsYXNzTmFtZXN9XHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kYWwtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBbY2xhc3NdPVwiJ21vZGFsLWRpYWxvZycgKyAoY29uZmlnLmNsYXNzID8gJyAnICsgY29uZmlnLmNsYXNzIDogJycpXCIgcm9sZT1cImRvY3VtZW50XCIgZm9jdXNUcmFwPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnbW9kYWwnLFxyXG4gICAgcm9sZTogJ2RpYWxvZycsXHJcbiAgICB0YWJpbmRleDogJy0xJyxcclxuICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICd0cnVlJyxcclxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2NvbmZpZy5hcmlhTGFiZWxsZWRCeScsXHJcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnY29uZmlnLmFyaWFEZXNjcmliZWRieScsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBsZXZlbD86IG51bWJlcjtcclxuICBwdWJsaWMgY29uZmlnOiBNb2RhbE9wdGlvbnM7XHJcbiAgcHVibGljIG1vZGFsU2VydmljZT86IE1vZGFsU2VydmljZTtcclxuICBwcml2YXRlIGlzU2hvd24gPSBmYWxzZTtcclxuICBwcml2YXRlIGFuaW1hdGlvbnNFbmFibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc01vZGFsSGlkaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNb2RhbE9wdGlvbnMsIHByb3RlY3RlZCBfZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5mYWRlKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTaG93biA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzTmFtZXMuc2hvdyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2tTdGFydGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudCA9IGV2ZW50LnRhcmdldCAhPT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2tTdG9wKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5CYWNrZHJvcCA9IGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmICF0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudDtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5pZ25vcmVCYWNrZHJvcENsaWNrIHx8IHRoaXMuY29uZmlnLmJhY2tkcm9wID09PSAnc3RhdGljJyB8fCAhY2xpY2tlZEluQmFja2Ryb3ApIHtcclxuICAgICAgdGhpcy5jbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cG9wc3RhdGUnKVxyXG4gIG9uUG9wU3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmVzYycsIFsnJGV2ZW50J10pXHJcbiAgb25Fc2MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNyB8fCBldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZy5rZXlib2FyZCAmJiB0aGlzLmNvbmZpZy5pZCA9PT0gdGhpcy5tb2RhbFNlcnZpY2U/LmdldEFjdGl2ZU1vZGFsKCkuY29uZmlnLmlkKSB7XHJcbiAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHRoaXMuX2hpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhpZGUocmVzdWx0PzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc01vZGFsSGlkaW5nIHx8ICF0aGlzLmlzU2hvd24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmNsb3NlSW50ZXJjZXB0b3IpIHtcclxuICAgICAgdGhpcy5jb25maWcuY2xvc2VJbnRlcmNlcHRvcigpLnRoZW4oXHJcbiAgICAgICAgKCkgPT4gdGhpcy5faGlkZSgpLFxyXG4gICAgICAgICgpID0+IHVuZGVmaW5lZFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlKHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlKHJlc3VsdD86IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5pc01vZGFsSGlkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlPy5oaWRlKHRoaXMuY29uZmlnLmlkLCByZXN1bHQpO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbEhpZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLmFuaW1hdGlvbnNFbmFibGVkID8gYW5pbWF0aW9uVGltZS5tb2RhbCA6IDBcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { Injectable, InjectionToken } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Modals option can be passed to a specific modal from {@link ModalService.show} or
5
- * set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.
6
- * @remarks
7
- * Modal specific options are merged with global options.
8
- * @see {@link modalConfigDefaults} for defaults.
9
- * @public
10
- */
11
- export class ModalOptions {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModalOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModalOptions }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModalOptions, decorators: [{
16
- type: Injectable
17
- }] });
18
- /**
19
- * Default option values.
20
- */
21
- export const modalConfigDefaults = {
22
- backdrop: true,
23
- keyboard: true,
24
- show: false,
25
- ignoreBackdropClick: false,
26
- class: '',
27
- animated: true,
28
- initialState: {},
29
- closeInterceptor: void 0,
30
- };
31
- /**
32
- * Use this injection token to set global options.
33
- */
34
- export const MODAL_CONFIG_DEFAULT_OVERRIDE = new InjectionToken('override-default-config');
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3B0aW9ucy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLW9wdGlvbnMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDOztBQUUzRTs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVOztBQTJEWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFpQjtJQUMvQyxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLEtBQUs7SUFDWCxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLEtBQUssRUFBRSxFQUFFO0lBQ1QsUUFBUSxFQUFFLElBQUk7SUFDZCxZQUFZLEVBQUUsRUFBRTtJQUNoQixnQkFBZ0IsRUFBRSxLQUFLLENBQUM7Q0FDekIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQWlDLElBQUksY0FBYyxDQUFlLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgU3RhdGljUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBNb2RhbHMgb3B0aW9uIGNhbiBiZSBwYXNzZWQgdG8gYSBzcGVjaWZpYyBtb2RhbCBmcm9tIHtAbGluayBNb2RhbFNlcnZpY2Uuc2hvd30gb3JcclxuICogc2V0IGdsb2JiYWx5IHVzaW5nIHRoZSBpbmplY3Rpb24gdG9rZW4ge0BsaW5rIE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFfS5cclxuICogQHJlbWFya3NcclxuICogTW9kYWwgc3BlY2lmaWMgb3B0aW9ucyBhcmUgbWVyZ2VkIHdpdGggZ2xvYmFsIG9wdGlvbnMuXHJcbiAqIEBzZWUge0BsaW5rIG1vZGFsQ29uZmlnRGVmYXVsdHN9IGZvciBkZWZhdWx0cy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTW9kYWxPcHRpb25zPFQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xyXG4gIC8qKlxyXG4gICAqICBJZCBmb3Igb3BlbmVkIG1vZGFsLiBJZiBub3Qgc2V0IGEgcmFuZG9tIG9uZSBpcyBnZW5lcmF0ZWQuXHJcbiAgICovXHJcbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogSWYgc3RhdGljIGlzIHNldCB0aGUgbW9kYWwgd2lsbCBub3QgY2xvc2Ugd2hlbiBjbGlja2luZyBvdXRzaWRlIG9mIG1vZGFsLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogS2V5Ym9hcmQgZXZlbnQgKGVzY2FwZSBrZXkpIHN0aWxscyBhcHBsaWVzLiBJZiB5b3UgbXVzdCBnZXQgYSByZXN1bHQgdGhlbiBhbHNvIHNldCBrZXlib2FyZCB0byBmYWxzZS5cclxuICAgKi9cclxuICBiYWNrZHJvcD86IGJvb2xlYW4gfCAnc3RhdGljJztcclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIHdoZW4gZXNjYXBlIGtleSBpcyBwcmVzc2VkLlxyXG4gICAqL1xyXG4gIGtleWJvYXJkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgbW9kYWwgd2hlbiBpbml0aWFsaXplZC5cclxuICAgKi9cclxuICBzaG93PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZ25vcmUgdGhlIGJhY2tkcm9wIGNsaWNrLiBQcmV0dHkgbXVjaCB0aGUgc2FtZSBhcyBiYWNrZHJvcCBzdGF0aWMuXHJcbiAgICovXHJcbiAgaWdub3JlQmFja2Ryb3BDbGljaz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQ3NzIGNsYXNzIGZvciBvcGVuZWQgbW9kYWwuXHJcbiAgICovXHJcbiAgY2xhc3M/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIGFuaW1hdGlvbi5cclxuICAgKi9cclxuICBhbmltYXRlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogTW9kYWwgaW5pdGlhbCBkYXRhLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogVGhpcyBkYXRhIG11c3QgYmUga25vd24gcHJvcGVydGllcyBvZiBjb250ZW50IGNvbXBvbmVudC5cclxuICAgKi9cclxuICBpbml0aWFsU3RhdGU/OiBQYXJ0aWFsPFQ+O1xyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIHRvIGludGVyY2VwdCB0aGUgY2xvc3VyZS5cclxuICAgKiBAcmVtYXJrc1xyXG4gICAqIFlvdSBjYW4gdXNlIHRvIGNhdGNoIHRoZSBjbG9zZSBldmVudCBhbmQgZXZlbiBwcmV2ZW50IGl0IGZyb20gY2xvc2luZy5cclxuICAgKi9cclxuICBjbG9zZUludGVyY2VwdG9yPzogQ2xvc2VJbnRlcmNlcHRvckZuO1xyXG4gIC8qKlxyXG4gICAqIE1vZGFsIHN0YXRpYyBwcm92aWRlcnMuXHJcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2dsb3NzYXJ5I2RpLXRva2VuIHwgSW5qZWN0aW9uIFRva2VufVxyXG4gICAqL1xyXG4gIHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107XHJcbiAgLyoqXHJcbiAgICogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBhcmlhRGVzY3JpYmVkYnk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IG9wdGlvbiB2YWx1ZXMuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbW9kYWxDb25maWdEZWZhdWx0czogTW9kYWxPcHRpb25zID0ge1xyXG4gIGJhY2tkcm9wOiB0cnVlLFxyXG4gIGtleWJvYXJkOiB0cnVlLFxyXG4gIHNob3c6IGZhbHNlLFxyXG4gIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IGZhbHNlLFxyXG4gIGNsYXNzOiAnJyxcclxuICBhbmltYXRlZDogdHJ1ZSxcclxuICBpbml0aWFsU3RhdGU6IHt9LFxyXG4gIGNsb3NlSW50ZXJjZXB0b3I6IHZvaWQgMCxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBVc2UgdGhpcyBpbmplY3Rpb24gdG9rZW4gdG8gc2V0IGdsb2JhbCBvcHRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFOiBJbmplY3Rpb25Ub2tlbjxNb2RhbE9wdGlvbnM+ID0gbmV3IEluamVjdGlvblRva2VuPE1vZGFsT3B0aW9ucz4oJ292ZXJyaWRlLWRlZmF1bHQtY29uZmlnJyk7XHJcblxyXG4vKipcclxuICogQ2xvc2UgaW50ZXJjZXB0b3IgcHJvbWlzZS5cclxuICovXHJcbmV4cG9ydCB0eXBlIENsb3NlSW50ZXJjZXB0b3JGbiA9ICgpID0+IFByb21pc2U8dm9pZD47XHJcbiJdfQ==
@@ -1,220 +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
- console.log('show', combinedConfig);
47
- this.createLoaders();
48
- this.addBodyPadding();
49
- if (this.modalsCount === 1) {
50
- this.renderer.addClass(this.document.body, cssClassNames.modalOpen);
51
- }
52
- this.showBackdrop(combinedConfig);
53
- return this.showModal(content, combinedConfig);
54
- }
55
- /**
56
- * Hide an active modal.
57
- * @param id - Id of modal to hide. If not provided all active modals are hidden.
58
- * @param result - A result to be sent to observers.
59
- */
60
- hide(id, result) {
61
- if (this.modalsCount === 1 || id == null) {
62
- this.hideBackdrop();
63
- this.revertScrollbar();
64
- this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);
65
- }
66
- this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;
67
- setTimeout(() => {
68
- this.hideModal(id, result);
69
- this.removeLoaders(id);
70
- },
71
- //Bug
72
- //Should use combined config but for the moment is not possible to pass it this parameter.
73
- //If config is an instance variable then every newly opened modal will override the config
74
- //resulting in opened modals to get a new configuration
75
- this.defaultConfig.animated ? animationTime.backdrop : 0);
76
- }
77
- getActiveModal() {
78
- return this.loaders[this.modalsCount - 1].instance;
79
- }
80
- showModal(content, combinedConfig) {
81
- const modalLoader = this.loaders[this.loaders.length - 1];
82
- if (combinedConfig && combinedConfig.providers) {
83
- combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));
84
- }
85
- const modal = new Modal();
86
- const modalContainerRef = modalLoader
87
- .provide({ provide: ModalOptions, useValue: combinedConfig })
88
- .provide({ provide: Modal, useValue: modal })
89
- .attach(ModalContainerComponent)
90
- .to('body');
91
- modal.setClass = (newClass) => {
92
- if (modalContainerRef.instance) {
93
- modalContainerRef.instance.config.class = newClass;
94
- }
95
- };
96
- modal.onBeforeHide = new Subject();
97
- modal.onHidden = new Subject();
98
- this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);
99
- this.copyEvent(modalLoader.onHidden, modal.onHidden);
100
- modalContainerRef.show({
101
- content,
102
- animationsEnabled: combinedConfig.animated,
103
- initialState: combinedConfig.initialState,
104
- modalService: this,
105
- id: combinedConfig.id,
106
- });
107
- if (modalContainerRef.instance) {
108
- modalContainerRef.instance.level = this.modalsCount;
109
- modal.content = modalLoader.getInnerComponent();
110
- modal.id = modalContainerRef.instance.config?.id;
111
- modal.hide = (res) => modalContainerRef.instance?.hide(res);
112
- }
113
- return modal;
114
- }
115
- hideModal(id, result) {
116
- if (id != null) {
117
- const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);
118
- const modalLoader = this.loaders[indexToRemove];
119
- if (modalLoader) {
120
- modalLoader.hide(id, result);
121
- }
122
- }
123
- else {
124
- this.loaders.forEach((loader) => {
125
- if (loader.instance) {
126
- loader.hide(loader.instance.config.id);
127
- }
128
- });
129
- }
130
- }
131
- showBackdrop(combinedConfig) {
132
- const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';
133
- const isBackdropInDOM = this.backdropRef != null;
134
- if (isBackdropEnabled && !isBackdropInDOM) {
135
- this.backdropLoader
136
- .attach(ModalBackdropComponent)
137
- .to('body')
138
- .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });
139
- this.backdropRef = this.backdropLoader.componentRef;
140
- }
141
- }
142
- hideBackdrop() {
143
- if (!this.backdropRef) {
144
- return;
145
- }
146
- this.backdropRef.instance.hide();
147
- this.backdropRef = void 0;
148
- }
149
- removeLoaders(id) {
150
- if (id != null) {
151
- const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);
152
- if (indexToRemove >= 0) {
153
- this.loaders.splice(indexToRemove, 1);
154
- this.loaders.forEach((loader, i) => {
155
- if (loader.instance) {
156
- loader.instance.level = i + 1;
157
- }
158
- });
159
- }
160
- }
161
- else {
162
- this.loaders.splice(0, this.loaders.length);
163
- }
164
- }
165
- addBodyPadding() {
166
- if (this.modalsCount === 1) {
167
- const width = this.getScrollbarWidth();
168
- if (this.isScrollBarPresent(width)) {
169
- this.initialPadding = this.document.body.style.paddingRight;
170
- const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);
171
- this.document.body.style.paddingRight = `${actualPadding + width}px`;
172
- }
173
- }
174
- }
175
- revertScrollbar() {
176
- this.document.body.style.paddingRight = this.initialPadding;
177
- }
178
- getScrollbarWidth() {
179
- const measurer = this.document.createElement('div');
180
- measurer.className = 'modal-scrollbar-measure';
181
- const body = this.document.body;
182
- body.appendChild(measurer);
183
- const width = measurer.getBoundingClientRect().width - measurer.clientWidth;
184
- body.removeChild(measurer);
185
- return width;
186
- }
187
- isScrollBarPresent(scrollbarWidth) {
188
- const rect = this.document.body.getBoundingClientRect();
189
- const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);
190
- const uncertainty = 0.1 * scrollbarWidth;
191
- return bodyToViewportGap >= scrollbarWidth - uncertainty;
192
- }
193
- createLoaders() {
194
- const loader = this.clf.createLoader();
195
- this.copyEvent(loader.onBeforeShow, this.onBeforeShow);
196
- this.copyEvent(loader.onShown, this.onShown);
197
- this.copyEvent(loader.onBeforeHide, this.onBeforeHide);
198
- this.copyEvent(loader.onHidden, this.onHidden);
199
- this.loaders.push(loader);
200
- }
201
- copyEvent(from, to) {
202
- from.subscribe((data) => {
203
- to.next(data);
204
- });
205
- }
206
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", 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
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModalService }); }
208
- }
209
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModalService, decorators: [{
210
- type: Injectable
211
- }], ctorParameters: () => [{ type: i1.ComponentLoaderFactory }, { type: i0.RendererFactory2 }, { type: undefined, decorators: [{
212
- type: Inject,
213
- args: [DOCUMENT]
214
- }] }, { type: i2.ModalOptions, decorators: [{
215
- type: Optional
216
- }, {
217
- type: Inject,
218
- args: [MODAL_CONFIG_DEFAULT_OVERRIDE]
219
- }] }] });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQTRDLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUd0Qzs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFhdkIsWUFDVSxHQUEyQixFQUNuQyxlQUFpQyxFQUNQLFFBQWEsRUFDWSxrQkFBZ0M7UUFIM0UsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFFVCxhQUFRLEdBQVIsUUFBUSxDQUFLO1FBZmpDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFLekIsWUFBTyxHQUErQyxFQUFFLENBQUM7UUFFekQsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFPN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBMEIsQ0FBQztRQUN0RSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxHQUFHLGtCQUFrQixFQUFFLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLElBQUksQ0FBSSxPQUFnRSxFQUFFLE1BQXdCO1FBQ3ZHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixNQUFNLGNBQWMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQzVELGNBQWMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBSSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUMsRUFBb0IsRUFBRSxNQUFZO1FBQzVDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEYsVUFBVSxDQUNSLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUNELEtBQUs7UUFDTCwwRkFBMEY7UUFDMUYsMEZBQTBGO1FBQzFGLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBbUMsQ0FBQztJQUNoRixDQUFDO0lBRU8sU0FBUyxDQUFJLE9BQVksRUFBRSxjQUE0QjtRQUM3RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxjQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBTyxDQUFDO1FBQy9CLE1BQU0saUJBQWlCLEdBQUcsV0FBVzthQUNsQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQzthQUM1RCxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUM1QyxNQUFNLENBQUMsdUJBQXVCLENBQUM7YUFDL0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWQsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtZQUNwQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNuQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUNyQixPQUFPO1lBQ1AsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLFFBQVE7WUFDMUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxZQUFZO1lBQ3pDLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRTtTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9CLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNwRCxLQUFLLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2hELEtBQUssQ0FBQyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDakQsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sU0FBUyxDQUFDLEVBQW9CLEVBQUUsTUFBWTtRQUNsRCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNmLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDNUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNoRCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQWdELEVBQUUsRUFBRTtnQkFDeEUsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLGNBQTRCO1FBQy9DLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksY0FBYyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7UUFDbkcsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUM7UUFDakQsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjO2lCQUNoQixNQUFNLENBQUMsc0JBQXNCLENBQUM7aUJBQzlCLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ1YsSUFBSSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxFQUFvQjtRQUN4QyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNmLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDNUYsSUFBSSxhQUFhLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFnRCxFQUFFLENBQVMsRUFBRSxFQUFFO29CQUNuRixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDaEMsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUM1RCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsR0FBRyxhQUFhLEdBQUcsS0FBSyxJQUFJLENBQUM7WUFDdkUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDOUQsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxRQUFRLENBQUMsU0FBUyxHQUFHLHlCQUF5QixDQUFDO1FBRS9DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDNUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxjQUFzQjtRQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLEdBQUcsR0FBRyxjQUFjLENBQUM7UUFDekMsT0FBTyxpQkFBaUIsSUFBSSxjQUFjLEdBQUcsV0FBVyxDQUFDO0lBQzNELENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUEyQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFzQixFQUFFLEVBQW9CO1FBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EzTlUsWUFBWSx3RkFnQmIsUUFBUSxhQUNJLDZCQUE2QjtrSEFqQnhDLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7OzBCQWlCTixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsQmFja2Ryb3BDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWJhY2tkcm9wLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXItY29tcG9uZW50JztcclxuaW1wb3J0IHsgbW9kYWxDb25maWdEZWZhdWx0cywgTW9kYWxPcHRpb25zLCBNT0RBTF9DT05GSUdfREVGQVVMVF9PVkVSUklERSB9IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSAnLi9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICcuLi9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuZmFjdG9yeSc7XHJcblxyXG4vKipcclxuICogQSBzZXJ2aWNlIGZvciB1c2luZyBtb2RhbHMuXHJcbiAqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBvbkJlZm9yZVNob3cgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgb25TaG93biA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBvbkJlZm9yZUhpZGUgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgb25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIGJhY2tkcm9wUmVmPzogQ29tcG9uZW50UmVmPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+O1xyXG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogTW9kYWxPcHRpb25zO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PjtcclxuICBwcml2YXRlIGxvYWRlcnM6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD5bXSA9IFtdO1xyXG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxuICBwcml2YXRlIG1vZGFsc0NvdW50ID0gMDtcclxuICBwcml2YXRlIGluaXRpYWxQYWRkaW5nID0gJzBweCc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNsZjogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSxcclxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9EQUxfQ09ORklHX0RFRkFVTFRfT1ZFUlJJREUpIG1vZGFsRGVmYXVsdE9wdGlvbjogTW9kYWxPcHRpb25zXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJhY2tkcm9wTG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+KCk7XHJcbiAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLm1vZGFsQ29uZmlnRGVmYXVsdHMsIC4uLm1vZGFsRGVmYXVsdE9wdGlvbiB9O1xyXG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZXJzLmZvckVhY2goKGxvYWRlcikgPT4gbG9hZGVyLmluc3RhbmNlPy5oaWRlKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBuZXcgbW9kYWwuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29udGVudCAtIGBDb21wb25lbnRgIG9yIGBUZW1wbGF0ZVJlZmAgdHlwZS5cclxuICAgKiBAcGFyYW0gY29uZmlnIC0gU3BlY2lmaWMge0BsaW5rIE1vZGFsT3B0aW9ucyB8IG9wdGlvbnN9ICBmb3IgdGhpcyBtb2RhbC4gR2xvYmFsIGFuZCBzcGVjaWZpYyBvcHRpb25zIGFyZSBtZXJnZWQuXHJcbiAgICogQHJldHVybnMgQW4gaW5zdGFuY2Ugb2Yge0BsaW5rIE1vZGFsfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93PFQ+KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0sIGNvbmZpZz86IE1vZGFsT3B0aW9uczxUPikge1xyXG4gICAgdGhpcy5tb2RhbHNDb3VudCsrO1xyXG4gICAgY29uc3QgY29tYmluZWRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH07XHJcbiAgICBjb21iaW5lZENvbmZpZy5pZCA9IGNvbmZpZz8uaWQgfHwgbmV3IERhdGUoKS5nZXRVVENNaWxsaXNlY29uZHMoKTtcclxuICAgIGNvbnNvbGUubG9nKCdzaG93JywgY29tYmluZWRDb25maWcpO1xyXG4gICAgdGhpcy5jcmVhdGVMb2FkZXJzKCk7XHJcblxyXG4gICAgdGhpcy5hZGRCb2R5UGFkZGluZygpO1xyXG4gICAgaWYgKHRoaXMubW9kYWxzQ291bnQgPT09IDEpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksIGNzc0NsYXNzTmFtZXMubW9kYWxPcGVuKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0JhY2tkcm9wKGNvbWJpbmVkQ29uZmlnKTtcclxuICAgIHJldHVybiB0aGlzLnNob3dNb2RhbDxUPihjb250ZW50LCBjb21iaW5lZENvbmZpZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIaWRlIGFuIGFjdGl2ZSBtb2RhbC5cclxuICAgKiBAcGFyYW0gaWQgLSBJZCBvZiBtb2RhbCB0byBoaWRlLiBJZiBub3QgcHJvdmlkZWQgYWxsIGFjdGl2ZSBtb2RhbHMgYXJlIGhpZGRlbi5cclxuICAgKiBAcGFyYW0gcmVzdWx0IC0gQSByZXN1bHQgdG8gYmUgc2VudCB0byBvYnNlcnZlcnMuXHJcbiAgICovXHJcbiAgcHVibGljIGhpZGUoaWQ/OiBudW1iZXIgfCBzdHJpbmcsIHJlc3VsdD86IGFueSkge1xyXG4gICAgaWYgKHRoaXMubW9kYWxzQ291bnQgPT09IDEgfHwgaWQgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmhpZGVCYWNrZHJvcCgpO1xyXG4gICAgICB0aGlzLnJldmVydFNjcm9sbGJhcigpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgY3NzQ2xhc3NOYW1lcy5tb2RhbE9wZW4pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RhbHNDb3VudCA9IHRoaXMubW9kYWxzQ291bnQgPj0gMSAmJiBpZCAhPSBudWxsID8gdGhpcy5tb2RhbHNDb3VudCAtIDEgOiAwO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZU1vZGFsKGlkLCByZXN1bHQpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlTG9hZGVycyhpZCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8vQnVnXHJcbiAgICAgIC8vU2hvdWxkIHVzZSBjb21iaW5lZCBjb25maWcgYnV0IGZvciB0aGUgbW9tZW50IGlzIG5vdCBwb3NzaWJsZSB0byBwYXNzIGl0IHRoaXMgcGFyYW1ldGVyLlxyXG4gICAgICAvL0lmIGNvbmZpZyBpcyBhbiBpbnN0YW5jZSB2YXJpYWJsZSB0aGVuIGV2ZXJ5IG5ld2x5IG9wZW5lZCBtb2RhbCB3aWxsIG92ZXJyaWRlIHRoZSBjb25maWdcclxuICAgICAgLy9yZXN1bHRpbmcgaW4gb3BlbmVkIG1vZGFscyB0byBnZXQgYSBuZXcgY29uZmlndXJhdGlvblxyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcuYW5pbWF0ZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBY3RpdmVNb2RhbCgpOiBNb2RhbENvbnRhaW5lckNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2FkZXJzW3RoaXMubW9kYWxzQ291bnQgLSAxXS5pbnN0YW5jZSBhcyBNb2RhbENvbnRhaW5lckNvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd01vZGFsPFQ+KGNvbnRlbnQ6IGFueSwgY29tYmluZWRDb25maWc6IE1vZGFsT3B0aW9ucyk6IE1vZGFsPFQ+IHtcclxuICAgIGNvbnN0IG1vZGFsTG9hZGVyID0gdGhpcy5sb2FkZXJzW3RoaXMubG9hZGVycy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChjb21iaW5lZENvbmZpZyAmJiBjb21iaW5lZENvbmZpZy5wcm92aWRlcnMpIHtcclxuICAgICAgY29tYmluZWRDb25maWcucHJvdmlkZXJzLmZvckVhY2goKHByb3ZpZGVyKSA9PiBtb2RhbExvYWRlci5wcm92aWRlKHByb3ZpZGVyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbW9kYWwgPSBuZXcgTW9kYWw8YW55PigpO1xyXG4gICAgY29uc3QgbW9kYWxDb250YWluZXJSZWYgPSBtb2RhbExvYWRlclxyXG4gICAgICAucHJvdmlkZSh7IHByb3ZpZGU6IE1vZGFsT3B0aW9ucywgdXNlVmFsdWU6IGNvbWJpbmVkQ29uZmlnIH0pXHJcbiAgICAgIC5wcm92aWRlKHsgcHJvdmlkZTogTW9kYWwsIHVzZVZhbHVlOiBtb2RhbCB9KVxyXG4gICAgICAuYXR0YWNoKE1vZGFsQ29udGFpbmVyQ29tcG9uZW50KVxyXG4gICAgICAudG8oJ2JvZHknKTtcclxuXHJcbiAgICBtb2RhbC5zZXRDbGFzcyA9IChuZXdDbGFzczogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmIChtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZSkge1xyXG4gICAgICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmNvbmZpZy5jbGFzcyA9IG5ld0NsYXNzO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZGFsLm9uQmVmb3JlSGlkZSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICBtb2RhbC5vbkhpZGRlbiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChtb2RhbExvYWRlci5vbkJlZm9yZUhpZGUsIG1vZGFsLm9uQmVmb3JlSGlkZSk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChtb2RhbExvYWRlci5vbkhpZGRlbiwgbW9kYWwub25IaWRkZW4pO1xyXG4gICAgbW9kYWxDb250YWluZXJSZWYuc2hvdyh7XHJcbiAgICAgIGNvbnRlbnQsXHJcbiAgICAgIGFuaW1hdGlvbnNFbmFibGVkOiBjb21iaW5lZENvbmZpZy5hbmltYXRlZCxcclxuICAgICAgaW5pdGlhbFN0YXRlOiBjb21iaW5lZENvbmZpZy5pbml0aWFsU3RhdGUsXHJcbiAgICAgIG1vZGFsU2VydmljZTogdGhpcyxcclxuICAgICAgaWQ6IGNvbWJpbmVkQ29uZmlnLmlkLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlKSB7XHJcbiAgICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmxldmVsID0gdGhpcy5tb2RhbHNDb3VudDtcclxuICAgICAgbW9kYWwuY29udGVudCA9IG1vZGFsTG9hZGVyLmdldElubmVyQ29tcG9uZW50KCk7XHJcbiAgICAgIG1vZGFsLmlkID0gbW9kYWxDb250YWluZXJSZWYuaW5zdGFuY2UuY29uZmlnPy5pZDtcclxuICAgICAgbW9kYWwuaGlkZSA9IChyZXMpID0+IG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlPy5oaWRlKHJlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1vZGFsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlTW9kYWwoaWQ/OiBudW1iZXIgfCBzdHJpbmcsIHJlc3VsdD86IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGlkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMubG9hZGVycy5maW5kSW5kZXgoKGxvYWRlcikgPT4gbG9hZGVyLmluc3RhbmNlPy5jb25maWcuaWQgPT09IGlkKTtcclxuICAgICAgY29uc3QgbW9kYWxMb2FkZXIgPSB0aGlzLmxvYWRlcnNbaW5kZXhUb1JlbW92ZV07XHJcbiAgICAgIGlmIChtb2RhbExvYWRlcikge1xyXG4gICAgICAgIG1vZGFsTG9hZGVyLmhpZGUoaWQsIHJlc3VsdCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZGVycy5mb3JFYWNoKChsb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD4pID0+IHtcclxuICAgICAgICBpZiAobG9hZGVyLmluc3RhbmNlKSB7XHJcbiAgICAgICAgICBsb2FkZXIuaGlkZShsb2FkZXIuaW5zdGFuY2UuY29uZmlnLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93QmFja2Ryb3AoY29tYmluZWRDb25maWc6IE1vZGFsT3B0aW9ucyk6IHZvaWQge1xyXG4gICAgY29uc3QgaXNCYWNrZHJvcEVuYWJsZWQgPSBjb21iaW5lZENvbmZpZy5iYWNrZHJvcCA9PT0gdHJ1ZSB8fCBjb21iaW5lZENvbmZpZy5iYWNrZHJvcCA9PT0gJ3N0YXRpYyc7XHJcbiAgICBjb25zdCBpc0JhY2tkcm9wSW5ET00gPSB0aGlzLmJhY2tkcm9wUmVmICE9IG51bGw7XHJcbiAgICBpZiAoaXNCYWNrZHJvcEVuYWJsZWQgJiYgIWlzQmFja2Ryb3BJbkRPTSkge1xyXG4gICAgICB0aGlzLmJhY2tkcm9wTG9hZGVyXHJcbiAgICAgICAgLmF0dGFjaChNb2RhbEJhY2tkcm9wQ29tcG9uZW50KVxyXG4gICAgICAgIC50bygnYm9keScpXHJcbiAgICAgICAgLnNob3coeyBhbmltYXRpb25zRW5hYmxlZDogY29tYmluZWRDb25maWcuYW5pbWF0ZWQsIGJhY2tkcm9wTG9hZGVyOiB0aGlzLmJhY2tkcm9wTG9hZGVyIH0pO1xyXG4gICAgICB0aGlzLmJhY2tkcm9wUmVmID0gdGhpcy5iYWNrZHJvcExvYWRlci5jb21wb25lbnRSZWY7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhpZGVCYWNrZHJvcCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5iYWNrZHJvcFJlZikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmJhY2tkcm9wUmVmLmluc3RhbmNlLmhpZGUoKTtcclxuICAgIHRoaXMuYmFja2Ryb3BSZWYgPSB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZUxvYWRlcnMoaWQ/OiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChpZCAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4VG9SZW1vdmUgPSB0aGlzLmxvYWRlcnMuZmluZEluZGV4KChsb2FkZXIpID0+IGxvYWRlci5pbnN0YW5jZT8uY29uZmlnLmlkID09PSBpZCk7XHJcbiAgICAgIGlmIChpbmRleFRvUmVtb3ZlID49IDApIHtcclxuICAgICAgICB0aGlzLmxvYWRlcnMuc3BsaWNlKGluZGV4VG9SZW1vdmUsIDEpO1xyXG4gICAgICAgIHRoaXMubG9hZGVycy5mb3JFYWNoKChsb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD4sIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgaWYgKGxvYWRlci5pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICBsb2FkZXIuaW5zdGFuY2UubGV2ZWwgPSBpICsgMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkZXJzLnNwbGljZSgwLCB0aGlzLmxvYWRlcnMubGVuZ3RoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQm9keVBhZGRpbmcoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RhbHNDb3VudCA9PT0gMSkge1xyXG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuZ2V0U2Nyb2xsYmFyV2lkdGgoKTtcclxuICAgICAgaWYgKHRoaXMuaXNTY3JvbGxCYXJQcmVzZW50KHdpZHRoKSkge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbFBhZGRpbmcgPSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0O1xyXG4gICAgICAgIGNvbnN0IGFjdHVhbFBhZGRpbmcgPSBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSkucGFkZGluZ1JpZ2h0KTtcclxuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYCR7YWN0dWFsUGFkZGluZyArIHdpZHRofXB4YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXZlcnRTY3JvbGxiYXIoKSB7XHJcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gdGhpcy5pbml0aWFsUGFkZGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2Nyb2xsYmFyV2lkdGgoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG1lYXN1cmVyID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIG1lYXN1cmVyLmNsYXNzTmFtZSA9ICdtb2RhbC1zY3JvbGxiYXItbWVhc3VyZSc7XHJcblxyXG4gICAgY29uc3QgYm9keSA9IHRoaXMuZG9jdW1lbnQuYm9keTtcclxuICAgIGJvZHkuYXBwZW5kQ2hpbGQobWVhc3VyZXIpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBtZWFzdXJlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIG1lYXN1cmVyLmNsaWVudFdpZHRoO1xyXG4gICAgYm9keS5yZW1vdmVDaGlsZChtZWFzdXJlcik7XHJcblxyXG4gICAgcmV0dXJuIHdpZHRoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1Njcm9sbEJhclByZXNlbnQoc2Nyb2xsYmFyV2lkdGg6IG51bWJlcikge1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGJvZHlUb1ZpZXdwb3J0R2FwID0gd2luZG93LmlubmVyV2lkdGggLSAocmVjdC5sZWZ0ICsgcmVjdC5yaWdodCk7XHJcbiAgICBjb25zdCB1bmNlcnRhaW50eSA9IDAuMSAqIHNjcm9sbGJhcldpZHRoO1xyXG4gICAgcmV0dXJuIGJvZHlUb1ZpZXdwb3J0R2FwID49IHNjcm9sbGJhcldpZHRoIC0gdW5jZXJ0YWludHk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxvYWRlcnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBsb2FkZXIgPSB0aGlzLmNsZi5jcmVhdGVMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+KCk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25CZWZvcmVTaG93LCB0aGlzLm9uQmVmb3JlU2hvdyk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25TaG93biwgdGhpcy5vblNob3duKTtcclxuICAgIHRoaXMuY29weUV2ZW50KGxvYWRlci5vbkJlZm9yZUhpZGUsIHRoaXMub25CZWZvcmVIaWRlKTtcclxuICAgIHRoaXMuY29weUV2ZW50KGxvYWRlci5vbkhpZGRlbiwgdGhpcy5vbkhpZGRlbik7XHJcbiAgICB0aGlzLmxvYWRlcnMucHVzaChsb2FkZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb3B5RXZlbnQoZnJvbTogU3ViamVjdDx1bmtub3duPiwgdG86IFN1YmplY3Q8dW5rbm93bj4pIHtcclxuICAgIGZyb20uc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRvLm5leHQoZGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,11 +0,0 @@
1
- export const cssClassNames = {
2
- backdrop: 'modal-backdrop',
3
- show: 'show',
4
- fade: 'fade',
5
- modalOpen: 'modal-open'
6
- };
7
- export const animationTime = {
8
- backdrop: 150,
9
- modal: 300,
10
- };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc3R5bGVzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvbW9kYWwtc3R5bGVzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDYixTQUFTLEVBQUUsWUFBWTtDQUN2QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLFFBQVEsRUFBRSxHQUFHO0lBQ2IsS0FBSyxFQUFFLEdBQUc7Q0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGNzc0NsYXNzTmFtZXMgPSB7XHJcbiAgYmFja2Ryb3A6ICdtb2RhbC1iYWNrZHJvcCcsXHJcbiAgc2hvdzogJ3Nob3cnLFxyXG4gIGZhZGU6ICdmYWRlJyxcclxuXHRtb2RhbE9wZW46ICdtb2RhbC1vcGVuJ1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGFuaW1hdGlvblRpbWUgPSB7XHJcbiAgYmFja2Ryb3A6IDE1MCxcclxuICBtb2RhbDogMzAwLFxyXG59O1xyXG4iXX0=
@@ -1,27 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Modal class.
5
- * @remarks
6
- * This is returned from {@link ModalService.show}.
7
- * @public
8
- */
9
- export class Modal {
10
- constructor() {
11
- /**
12
- * Hides the modal
13
- * @param result - A result to the observers.
14
- */
15
- this.hide = () => void 0;
16
- /**
17
- * Sets new class to modal window.
18
- */
19
- this.setClass = () => void 0;
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: Modal, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: Modal }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: Modal, decorators: [{
25
- type: Injectable
26
- }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbW9kYWwtc2VydmljZS9tb2RhbC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyxLQUFLO0lBRGxCO1FBMEJFOzs7V0FHRztRQUNILFNBQUksR0FBMkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUM7O1dBRUc7UUFDSCxhQUFRLEdBQStCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3JEOzhHQWxDWSxLQUFLO2tIQUFMLEtBQUs7OzJGQUFMLEtBQUs7a0JBRGpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBNb2RhbCBjbGFzcy5cclxuICogQHJlbWFya3NcclxuICogVGhpcyBpcyByZXR1cm5lZCBmcm9tIHtAbGluayBNb2RhbFNlcnZpY2Uuc2hvd30uXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1vZGFsPFQgPSBhbnk+IHtcclxuICAvKipcclxuICAgKiBFdmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGJlaGluZCB0aGUgcmVmIHN0YXJ0cyBoaWRpbmcuXHJcbiAgICogQHJldHVybnNcclxuICAgKiBNb2RhbCBjb21wb25lbnQgaW5zdGFuY2UuXHJcbiAgICovXHJcbiAgb25CZWZvcmVIaWRlPzogU3ViamVjdDx1bmtub3duPjtcclxuICAvKipcclxuICAgKiBFdmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGJlaGluZCB0aGUgcmVmIGZpbmlzaGVzIGhpZGluZy5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBpZCBvZiB0aGUgY2xvc2VkIG1vZGFsIGFuZCByZXN1bHQuXHJcbiAgICovXHJcbiAgb25IaWRkZW4/OiBTdWJqZWN0PHVua25vd24+O1xyXG4gIC8qKlxyXG4gICAqICBJZCBvZiB0aGlzIG1vZGFsLlxyXG4gICAqL1xyXG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBSZWZlcmVuY2UgdG8gYSBjb21wb25lbnQgaW5zaWRlIHRoZSBtb2RhbC4gTnVsbCBpZiBtb2RhbCdzIGJlZW4gY3JlYXRlZCB3aXRoIFRlbXBsYXRlUmVmLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogWW91IGNhbiB1c2UgdGhpcyB0byBkbyBuYXN0eSBzdHVmZiB3aXRoIG9wZW5lZCBtb2RhbCBpbnN0YW5jZS5cclxuICAgKi9cclxuICBjb250ZW50PzogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogSGlkZXMgdGhlIG1vZGFsXHJcbiAgICogQHBhcmFtIHJlc3VsdCAtIEEgcmVzdWx0IHRvIHRoZSBvYnNlcnZlcnMuXHJcbiAgICovXHJcbiAgaGlkZTogKHJlc3VsdD86IGFueSkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcclxuICAvKipcclxuICAgKiBTZXRzIG5ldyBjbGFzcyB0byBtb2RhbCB3aW5kb3cuXHJcbiAgICovXHJcbiAgc2V0Q2xhc3M6IChuZXdDbGFzczogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4gdm9pZCAwO1xyXG59XHJcbiJdfQ==
@@ -1,26 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { filter } from 'rxjs/operators';
4
- import { NULL_TOAST } from '../types';
5
- import * as i0 from "@angular/core";
6
- export class ToasterService {
7
- constructor() {
8
- this._subject = new BehaviorSubject(NULL_TOAST);
9
- this.toast$ = this
10
- ._subject
11
- .asObservable()
12
- .pipe(filter((toast) => toast !== null && toast.title !== NULL_TOAST.title));
13
- }
14
- show(type, title, body, delay) {
15
- this._subject.next({ type, title, body, delay });
16
- }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ToasterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ToasterService, providedIn: 'root' }); }
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ToasterService, decorators: [{
21
- type: Injectable,
22
- args: [{
23
- providedIn: 'root'
24
- }]
25
- }], ctorParameters: () => [] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUt4RCxNQUFNLE9BQU8sY0FBYztJQUd6QjtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVEsVUFBVSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJO2FBQ2YsUUFBUTthQUNSLFlBQVksRUFBRTthQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBSU0sSUFBSSxDQUFDLElBQWUsRUFBRSxLQUFjLEVBQUUsSUFBYSxFQUFFLEtBQWM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBZlUsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb2FzdCwgVG9hc3RUeXBlLCBOVUxMX1RPQVNUIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX3N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxUb2FzdD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9hc3Q+KE5VTExfVE9BU1QpO1xyXG4gICAgdGhpcy50b2FzdCQgPSB0aGlzXHJcbiAgICAgIC5fc3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUoZmlsdGVyKCh0b2FzdDogVG9hc3QpID0+IHRvYXN0ICE9PSBudWxsICYmIHRvYXN0LnRpdGxlICE9PSBOVUxMX1RPQVNULnRpdGxlKSk7XHJcbiAgfVxyXG4gIFxyXG4gIHB1YmxpYyB0b2FzdCQ6IE9ic2VydmFibGU8VG9hc3Q+O1xyXG5cclxuICBwdWJsaWMgc2hvdyh0eXBlOiBUb2FzdFR5cGUsIHRpdGxlPzogc3RyaW5nLCBib2R5Pzogc3RyaW5nLCBkZWxheT86IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fc3ViamVjdC5uZXh0KHsgdHlwZSwgdGl0bGUsIGJvZHksIGRlbGF5IH0gYXMgVG9hc3QpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,35 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class UserSettingsService {
4
- constructor() {
5
- this._defaultPreferences = {
6
- 'MobileSideBar': true
7
- };
8
- }
9
- static { this.SETTINGS_KEY = '@indice/ng-components_user-settings'; }
10
- getAll() {
11
- const settingsJson = localStorage.getItem(UserSettingsService.SETTINGS_KEY);
12
- if (settingsJson) {
13
- return JSON.parse(settingsJson);
14
- }
15
- return this._defaultPreferences;
16
- }
17
- get(key) {
18
- const settings = this.getAll();
19
- return settings[key];
20
- }
21
- set(key, value) {
22
- const settings = this.getAll();
23
- settings[key] = value;
24
- localStorage.setItem(UserSettingsService.SETTINGS_KEY, JSON.stringify(settings));
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: UserSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: UserSettingsService, providedIn: 'root' }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: UserSettingsService, decorators: [{
30
- type: Injectable,
31
- args: [{
32
- providedIn: 'root'
33
- }]
34
- }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL3VzZXItc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBTVksd0JBQW1CLEdBQXFDO1lBQzVELGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7S0FvQkw7YUF4QmtCLGlCQUFZLEdBQUcscUNBQXFDLEFBQXhDLENBQXlDO0lBTTdELE1BQU07UUFDVCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVFLElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBbUI7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9CLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBbUIsRUFBRSxLQUFVO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFlBQVksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDOzhHQXhCUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZoQixNQUFNOzsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVXNlclNldHRpbmdLZXkgfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJTZXR0aW5nc1NlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgU0VUVElOR1NfS0VZID0gJ0BpbmRpY2UvbmctY29tcG9uZW50c191c2VyLXNldHRpbmdzJztcclxuXHJcbiAgICBwcml2YXRlIF9kZWZhdWx0UHJlZmVyZW5jZXM6IHsgW2tleSBpbiBVc2VyU2V0dGluZ0tleV06IGFueSB9ID0ge1xyXG4gICAgICAgICdNb2JpbGVTaWRlQmFyJzogdHJ1ZVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0QWxsKCk6IHsgW2tleSBpbiBVc2VyU2V0dGluZ0tleV06IGFueSB9IHtcclxuICAgICAgICBjb25zdCBzZXR0aW5nc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShVc2VyU2V0dGluZ3NTZXJ2aWNlLlNFVFRJTkdTX0tFWSk7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzSnNvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzZXR0aW5nc0pzb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFByZWZlcmVuY2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQoa2V5OiBVc2VyU2V0dGluZ0tleSk6IGFueSB7IFxyXG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy5nZXRBbGwoKTtcclxuICAgICAgICByZXR1cm4gc2V0dGluZ3Nba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0KGtleTogVXNlclNldHRpbmdLZXksIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZ2V0QWxsKCk7XHJcbiAgICAgICAgc2V0dGluZ3Nba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFVzZXJTZXR0aW5nc1NlcnZpY2UuU0VUVElOR1NfS0VZLCBKU09OLnN0cmluZ2lmeShzZXR0aW5ncykpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==