@indice/ng-components 0.2.159 → 0.2.160-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/README.md +4 -4
  2. package/_styles.css +3643 -3634
  3. package/bundles/indice-ng-components.umd.js +4597 -0
  4. package/bundles/indice-ng-components.umd.js.map +1 -0
  5. package/{esm2020/indice-ng-components.mjs → esm2015/indice-ng-components.js} +0 -0
  6. package/{esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs → esm2015/lib/controls/avatar-initials/avatar-initials.component.js} +8 -5
  7. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +23 -0
  8. package/esm2015/lib/controls/combobox/combobox.component.js +99 -0
  9. package/esm2015/lib/controls/date-picker/date-picker.component.js +301 -0
  10. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +72 -0
  11. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +39 -0
  12. package/esm2015/lib/controls/language-selection/language-selection.component.js +35 -0
  13. package/{esm2020/lib/controls/list-view/list-column.component.mjs → esm2015/lib/controls/list-view/list-column.component.js} +4 -4
  14. package/{esm2020/lib/controls/list-view/list-details-section.component.mjs → esm2015/lib/controls/list-view/list-details-section.component.js} +4 -4
  15. package/{esm2020/lib/controls/list-view/list-tile.component.mjs → esm2015/lib/controls/list-view/list-tile.component.js} +4 -4
  16. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +32 -0
  17. package/esm2015/lib/controls/list-view/list-view.component.js +195 -0
  18. package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +45 -0
  19. package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +76 -0
  20. package/esm2015/lib/controls/pager/pager.component.js +133 -0
  21. package/esm2015/lib/controls/side-pane/side-pane.component.js +76 -0
  22. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +29 -0
  23. package/{esm2020/lib/controls/stepper/lib-step-info.directive.mjs → esm2015/lib/controls/stepper/lib-step-info.directive.js} +4 -4
  24. package/{esm2020/lib/controls/stepper/lib-step-label.directive.mjs → esm2015/lib/controls/stepper/lib-step-label.directive.js} +4 -4
  25. package/esm2015/lib/controls/stepper/lib-step.component.js +84 -0
  26. package/esm2015/lib/controls/stepper/lib-stepper.component.js +90 -0
  27. package/esm2015/lib/controls/stepper/types/step-selected-event.js +4 -0
  28. package/{esm2020/lib/controls/stepper/types/stepper-type.mjs → esm2015/lib/controls/stepper/types/stepper-type.js} +1 -1
  29. package/esm2015/lib/controls/tabs/lib-tab-group.component.js +66 -0
  30. package/esm2015/lib/controls/tabs/lib-tab.component.js +58 -0
  31. package/esm2015/lib/controls/toaster/toaster-container.component.js +31 -0
  32. package/esm2015/lib/controls/toaster/toaster.component.js +34 -0
  33. package/esm2015/lib/controls/toggle/toggle.component.js +68 -0
  34. package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +75 -0
  35. package/{esm2020/lib/directives/click-outside.directive.mjs → esm2015/lib/directives/click-outside.directive.js} +4 -4
  36. package/{esm2020/lib/directives/dynamic-component-host.directive.mjs → esm2015/lib/directives/dynamic-component-host.directive.js} +4 -4
  37. package/esm2015/lib/helpers/base-list.component.js +183 -0
  38. package/{esm2020/lib/icons.mjs → esm2015/lib/icons.js} +1 -1
  39. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +22 -0
  40. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +136 -0
  41. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +108 -0
  42. package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +50 -0
  43. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +85 -0
  44. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +53 -0
  45. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +101 -0
  46. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +110 -0
  47. package/{esm2020/lib/ng-components.module.mjs → esm2015/lib/ng-components.module.js} +9 -7
  48. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +35 -0
  49. package/{esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs → esm2015/lib/pages/auth/auth-renew/auth-renew.component.js} +4 -4
  50. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +32 -0
  51. package/esm2015/lib/pages/http-status/error/error.component.js +20 -0
  52. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +18 -0
  53. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +17 -0
  54. package/{esm2020/lib/pipes/address.pipe.mjs → esm2015/lib/pipes/address.pipe.js} +4 -4
  55. package/{esm2020/lib/pipes/duration-format.pipe.mjs → esm2015/lib/pipes/duration-format.pipe.js} +4 -4
  56. package/esm2015/lib/services/component-loader/component-loader-options.class.js +8 -0
  57. package/esm2015/lib/services/component-loader/component-loader.class.js +192 -0
  58. package/{esm2020/lib/services/component-loader/component-loader.factory.mjs → esm2015/lib/services/component-loader/component-loader.factory.js} +4 -4
  59. package/{esm2020/lib/services/component-loader/content-ref.class.mjs → esm2015/lib/services/component-loader/content-ref.class.js} +1 -1
  60. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +44 -0
  61. package/esm2015/lib/services/modal-service/modal-container-component.js +128 -0
  62. package/esm2015/lib/services/modal-service/modal-options.class.js +35 -0
  63. package/esm2015/lib/services/modal-service/modal-service.js +220 -0
  64. package/{esm2020/lib/services/modal-service/modal-styles.class.mjs → esm2015/lib/services/modal-service/modal-styles.class.js} +1 -1
  65. package/esm2015/lib/services/modal-service/modal.class.js +27 -0
  66. package/{esm2020/lib/services/toaster.service.mjs → esm2015/lib/services/toaster.service.js} +4 -4
  67. package/{esm2020/lib/tokens.mjs → esm2015/lib/tokens.js} +1 -1
  68. package/esm2015/lib/types.js +129 -0
  69. package/{esm2020/public-api.mjs → esm2015/public-api.js} +1 -1
  70. package/fesm2015/indice-ng-components.js +3977 -0
  71. package/fesm2015/indice-ng-components.js.map +1 -0
  72. package/{index.d.ts → indice-ng-components.d.ts} +0 -0
  73. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +1 -1
  74. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +1 -1
  75. package/lib/controls/combobox/combobox.component.d.ts +1 -1
  76. package/lib/controls/date-picker/date-picker.component.d.ts +1 -1
  77. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +1 -1
  78. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +1 -1
  79. package/lib/controls/language-selection/language-selection.component.d.ts +1 -1
  80. package/lib/controls/list-view/list-column.component.d.ts +1 -1
  81. package/lib/controls/list-view/list-details-section.component.d.ts +1 -1
  82. package/lib/controls/list-view/list-tile.component.d.ts +1 -1
  83. package/lib/controls/list-view/list-view-empty-state.component.d.ts +1 -1
  84. package/lib/controls/list-view/list-view.component.d.ts +17 -16
  85. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +1 -1
  86. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +1 -1
  87. package/lib/controls/pager/pager.component.d.ts +1 -1
  88. package/lib/controls/side-pane/side-pane.component.d.ts +1 -1
  89. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  90. package/lib/controls/stepper/lib-step-info.directive.d.ts +1 -1
  91. package/lib/controls/stepper/lib-step-label.directive.d.ts +1 -1
  92. package/lib/controls/stepper/lib-step.component.d.ts +1 -1
  93. package/lib/controls/stepper/lib-stepper.component.d.ts +1 -1
  94. package/lib/controls/tabs/lib-tab-group.component.d.ts +1 -1
  95. package/lib/controls/tabs/lib-tab.component.d.ts +1 -1
  96. package/lib/controls/toaster/toaster-container.component.d.ts +1 -1
  97. package/lib/controls/toaster/toaster.component.d.ts +1 -1
  98. package/lib/controls/toggle/toggle.component.d.ts +1 -1
  99. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  100. package/lib/directives/click-outside.directive.d.ts +1 -1
  101. package/lib/directives/dynamic-component-host.directive.d.ts +1 -1
  102. package/lib/helpers/base-list.component.d.ts +1 -1
  103. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +1 -1
  104. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -1
  105. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +1 -1
  106. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +1 -1
  107. package/lib/layouts/views/form-layout/form-layout.component.d.ts +1 -1
  108. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +1 -1
  109. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +1 -1
  110. package/lib/layouts/views/view-layout/view-layout.component.d.ts +1 -1
  111. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +1 -1
  112. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +1 -1
  113. package/lib/pages/auth/logged-out/logged-out.component.d.ts +1 -1
  114. package/lib/pages/http-status/error/error.component.d.ts +1 -1
  115. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +1 -1
  116. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +1 -1
  117. package/lib/pipes/address.pipe.d.ts +1 -1
  118. package/lib/pipes/duration-format.pipe.d.ts +1 -1
  119. package/lib/services/modal-service/modal-backdrop-component.d.ts +1 -1
  120. package/lib/services/modal-service/modal-container-component.d.ts +1 -1
  121. package/lib/types.d.ts +5 -0
  122. package/modal.css +157 -157
  123. package/package.json +8 -21
  124. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
  125. package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -96
  126. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -292
  127. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -68
  128. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +0 -36
  129. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +0 -31
  130. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
  131. package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -183
  132. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +0 -42
  133. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -73
  134. package/esm2020/lib/controls/pager/pager.component.mjs +0 -130
  135. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
  136. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
  137. package/esm2020/lib/controls/stepper/lib-step.component.mjs +0 -81
  138. package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +0 -85
  139. package/esm2020/lib/controls/stepper/types/step-selected-event.mjs +0 -4
  140. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +0 -59
  141. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +0 -57
  142. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +0 -28
  143. package/esm2020/lib/controls/toaster/toaster.component.mjs +0 -31
  144. package/esm2020/lib/controls/toggle/toggle.component.mjs +0 -64
  145. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -71
  146. package/esm2020/lib/helpers/base-list.component.mjs +0 -181
  147. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +0 -19
  148. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -131
  149. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -103
  150. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +0 -47
  151. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
  152. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -49
  153. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -98
  154. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
  155. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -31
  156. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +0 -28
  157. package/esm2020/lib/pages/http-status/error/error.component.mjs +0 -17
  158. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
  159. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
  160. package/esm2020/lib/services/component-loader/component-loader-options.class.mjs +0 -8
  161. package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
  162. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
  163. package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
  164. package/esm2020/lib/services/modal-service/modal-options.class.mjs +0 -35
  165. package/esm2020/lib/services/modal-service/modal-service.mjs +0 -219
  166. package/esm2020/lib/services/modal-service/modal.class.mjs +0 -27
  167. package/esm2020/lib/types.mjs +0 -123
  168. package/fesm2015/indice-ng-components.mjs +0 -3883
  169. package/fesm2015/indice-ng-components.mjs.map +0 -1
  170. package/fesm2020/indice-ng-components.mjs +0 -3818
  171. package/fesm2020/indice-ng-components.mjs.map +0 -1
@@ -1,59 +0,0 @@
1
- import { Component, ContentChildren, EventEmitter, forwardRef, Output } from '@angular/core';
2
- import { LIBTABGROUP_ACCESSOR } from '../../tokens';
3
- import { LibTabComponent } from './lib-tab.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- export class LibTabGroupComponent {
7
- constructor() {
8
- /** The inner tabs of the group. */
9
- this.tabs = undefined;
10
- /** Emmited when a step change occurs. */
11
- this.tabChanged = new EventEmitter();
12
- }
13
- /** The current tab. */
14
- get currentTab() {
15
- return this.tabs?.find(x => x.isActive);
16
- }
17
- /** The index (starting from zero) of the current tab. */
18
- get currentΤabIndex() {
19
- return this.currentTab?.index || undefined;
20
- }
21
- ngOnInit() { }
22
- ngAfterContentInit() {
23
- if (!this.tabs) {
24
- return;
25
- }
26
- }
27
- ngAfterContentChecked() {
28
- if (this.tabs && this.tabs.length > 0) {
29
- const anyActive = this.tabs.filter(x => x.isActive).length > 0;
30
- if (!anyActive) {
31
- this.tabs.get(0).isActive = true;
32
- }
33
- }
34
- }
35
- onTabChanged(selectedTab) {
36
- this.tabs.forEach((tab) => tab.isActive = tab.id === selectedTab.id);
37
- this.tabChanged.emit(selectedTab);
38
- }
39
- onTabSelectChanged(selectedTabIndex) {
40
- this.tabs.forEach((tab, index) => tab.isActive = index === selectedTabIndex);
41
- this.tabChanged.emit(this.tabs?.get(selectedTabIndex));
42
- }
43
- }
44
- LibTabGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LibTabGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
- LibTabGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: LibTabGroupComponent, selector: "lib-tab-group", outputs: { tabChanged: "tabChanged" }, providers: [
46
- { provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }
47
- ], queries: [{ propertyName: "tabs", predicate: LibTabComponent, descendants: true }], ngImport: i0, template: "<div class=\"sm:hidden\">\n <label for=\"tabs\" class=\"sr-only\">Select a tab</label>\n <select id=\"tabs\" name=\"tabs\" (change)=\"onTabSelectChanged(+tabsSelect.value)\" class=\"tab-group-select\" #tabsSelect>\n <option [value]=\"i\" *ngFor=\"let tab of tabs; let i = index\">{{ tab.label }}</option>\n </select>\n</div>\n<div class=\"hidden sm:block\">\n <div class=\"tab-group-container\">\n <nav class=\"-mb-px flex space-x-8\" aria-label=\"Tabs\">\n <a *ngFor=\"let tab of tabs\" href=\"javascript:void(0)\" [class.tab]=\"!tab.isActive\" [class.tab-active]=\"tab.isActive\" (click)=\"onTabChanged(tab)\">\n {{ tab.label }}\n </a>\n </nav>\n </div>\n</div>\n<div *ngIf=\"currentTab?.content\">\n <ng-container [ngTemplateOutlet]=\"currentTab!.content\"></ng-container>\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LibTabGroupComponent, decorators: [{
49
- type: Component,
50
- args: [{ selector: 'lib-tab-group', providers: [
51
- { provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }
52
- ], template: "<div class=\"sm:hidden\">\n <label for=\"tabs\" class=\"sr-only\">Select a tab</label>\n <select id=\"tabs\" name=\"tabs\" (change)=\"onTabSelectChanged(+tabsSelect.value)\" class=\"tab-group-select\" #tabsSelect>\n <option [value]=\"i\" *ngFor=\"let tab of tabs; let i = index\">{{ tab.label }}</option>\n </select>\n</div>\n<div class=\"hidden sm:block\">\n <div class=\"tab-group-container\">\n <nav class=\"-mb-px flex space-x-8\" aria-label=\"Tabs\">\n <a *ngFor=\"let tab of tabs\" href=\"javascript:void(0)\" [class.tab]=\"!tab.isActive\" [class.tab-active]=\"tab.isActive\" (click)=\"onTabChanged(tab)\">\n {{ tab.label }}\n </a>\n </nav>\n </div>\n</div>\n<div *ngIf=\"currentTab?.content\">\n <ng-container [ngTemplateOutlet]=\"currentTab!.content\"></ng-container>\n</div>" }]
53
- }], ctorParameters: function () { return []; }, propDecorators: { tabs: [{
54
- type: ContentChildren,
55
- args: [LibTabComponent, { descendants: true }]
56
- }], tabChanged: [{
57
- type: Output
58
- }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXRhYi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvdGFicy9saWItdGFiLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy90YWJzL2xpYi10YWItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QyxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXZKLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVN0RCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCO1FBRUEsbUNBQW1DO1FBQzZCLFNBQUksR0FBMkMsU0FBUyxDQUFDO1FBQ3pILHlDQUF5QztRQUN4QixlQUFVLEdBQWtDLElBQUksWUFBWSxFQUFtQixDQUFDO0lBTGpGLENBQUM7SUFPakIsdUJBQXVCO0lBQ3ZCLElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLElBQUksU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFFTSxRQUFRLEtBQVcsQ0FBQztJQUVwQixrQkFBa0I7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDckM7U0FDSjtJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsV0FBNEI7UUFDNUMsSUFBSSxDQUFDLElBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFvQixFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxnQkFBd0I7UUFDOUMsSUFBSSxDQUFDLElBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFvQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLEtBQUssZ0JBQWdCLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7aUhBM0NRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtFQUpsQjtRQUNQLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRTtLQUN6RiwrQ0FNZ0IsZUFBZSxnRENoQnBDLDYxQkFpQk07MkZETE8sb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNJLGVBQWUsYUFFZDt3QkFDUCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFO3FCQUN6RjswRUFNK0QsSUFBSTtzQkFBbkUsZUFBZTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUV0QyxVQUFVO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMSUJUQUJHUk9VUF9BQ0NFU1NPUiB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBMaWJUYWJDb21wb25lbnQgfSBmcm9tICcuL2xpYi10YWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItdGFiLWdyb3VwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGliLXRhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTElCVEFCR1JPVVBfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYlRhYkdyb3VwQ29tcG9uZW50KSB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaWJUYWJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIC8qKiBUaGUgaW5uZXIgdGFicyBvZiB0aGUgZ3JvdXAuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihMaWJUYWJDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcHVibGljIHRhYnM6IFF1ZXJ5TGlzdDxMaWJUYWJDb21wb25lbnQ+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBFbW1pdGVkIHdoZW4gYSBzdGVwIGNoYW5nZSBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyB0YWJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8TGliVGFiQ29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TGliVGFiQ29tcG9uZW50PigpO1xuXG4gICAgLyoqIFRoZSBjdXJyZW50IHRhYi4gKi9cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbnRUYWIoKTogTGliVGFiQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFicz8uZmluZCh4ID0+IHguaXNBY3RpdmUpO1xuICAgIH1cblxuICAgIC8qKiBUaGUgaW5kZXggKHN0YXJ0aW5nIGZyb20gemVybykgb2YgdGhlIGN1cnJlbnQgdGFiLiAqL1xuICAgIHB1YmxpYyBnZXQgY3VycmVudM6kYWJJbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFiPy5pbmRleCB8fCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGFicykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGFicyAmJiB0aGlzLnRhYnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYW55QWN0aXZlID0gdGhpcy50YWJzLmZpbHRlcih4ID0+IHguaXNBY3RpdmUpLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICBpZiAoIWFueUFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFicy5nZXQoMCkhLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYkNoYW5nZWQoc2VsZWN0ZWRUYWI6IExpYlRhYkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYnMhLmZvckVhY2goKHRhYjogTGliVGFiQ29tcG9uZW50KSA9PiB0YWIuaXNBY3RpdmUgPSB0YWIuaWQgPT09IHNlbGVjdGVkVGFiLmlkKTtcbiAgICAgICAgdGhpcy50YWJDaGFuZ2VkLmVtaXQoc2VsZWN0ZWRUYWIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYlNlbGVjdENoYW5nZWQoc2VsZWN0ZWRUYWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFicyEuZm9yRWFjaCgodGFiOiBMaWJUYWJDb21wb25lbnQsIGluZGV4OiBudW1iZXIpID0+IHRhYi5pc0FjdGl2ZSA9IGluZGV4ID09PSBzZWxlY3RlZFRhYkluZGV4KTtcbiAgICAgICAgdGhpcy50YWJDaGFuZ2VkLmVtaXQodGhpcy50YWJzPy5nZXQoc2VsZWN0ZWRUYWJJbmRleCkpO1xuICAgIH1cbn0iLCI8ZGl2IGNsYXNzPVwic206aGlkZGVuXCI+XG4gICAgPGxhYmVsIGZvcj1cInRhYnNcIiBjbGFzcz1cInNyLW9ubHlcIj5TZWxlY3QgYSB0YWI8L2xhYmVsPlxuICAgIDxzZWxlY3QgaWQ9XCJ0YWJzXCIgbmFtZT1cInRhYnNcIiAoY2hhbmdlKT1cIm9uVGFiU2VsZWN0Q2hhbmdlZCgrdGFic1NlbGVjdC52YWx1ZSlcIiBjbGFzcz1cInRhYi1ncm91cC1zZWxlY3RcIiAjdGFic1NlbGVjdD5cbiAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaVwiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPnt7IHRhYi5sYWJlbCB9fTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiaGlkZGVuIHNtOmJsb2NrXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYi1ncm91cC1jb250YWluZXJcIj5cbiAgICAgICAgPG5hdiBjbGFzcz1cIi1tYi1weCBmbGV4IHNwYWNlLXgtOFwiIGFyaWEtbGFiZWw9XCJUYWJzXCI+XG4gICAgICAgICAgICA8YSAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgW2NsYXNzLnRhYl09XCIhdGFiLmlzQWN0aXZlXCIgW2NsYXNzLnRhYi1hY3RpdmVdPVwidGFiLmlzQWN0aXZlXCIgKGNsaWNrKT1cIm9uVGFiQ2hhbmdlZCh0YWIpXCI+XG4gICAgICAgICAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbmF2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiY3VycmVudFRhYj8uY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VycmVudFRhYiEuY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
@@ -1,57 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Inject, Input, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import * as uuid from 'uuid';
3
- import { LIBTABGROUP_ACCESSOR } from '../../tokens';
4
- import * as i0 from "@angular/core";
5
- export class LibTabComponent {
6
- constructor(_tabGroup) {
7
- this._tabGroup = _tabGroup;
8
- this._isActive = false;
9
- }
10
- /** Indicates the index of the tab. */
11
- get index() {
12
- return this._tabGroup?.tabs?.toArray().indexOf(this) || undefined;
13
- }
14
- /** Indicates whether the tab is active. */
15
- get isActive() {
16
- return this._isActive;
17
- }
18
- /** Setter for LibTabComponent isActive property. */
19
- set isActive(isActive) {
20
- this._isActive = isActive;
21
- }
22
- ngOnInit() {
23
- this.id = this.id || uuid.v4();
24
- }
25
- }
26
- LibTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LibTabComponent, deps: [{ token: LIBTABGROUP_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Component });
27
- LibTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: LibTabComponent, selector: "lib-tab", inputs: { label: "label", id: "id" }, viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: `
28
- <ng-template>
29
- <ng-content></ng-content>
30
- </ng-template>
31
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LibTabComponent, decorators: [{
33
- type: Component,
34
- args: [{
35
- selector: 'lib-tab',
36
- template: `
37
- <ng-template>
38
- <ng-content></ng-content>
39
- </ng-template>
40
- `,
41
- encapsulation: ViewEncapsulation.None,
42
- changeDetection: ChangeDetectionStrategy.OnPush
43
- }]
44
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
45
- type: Optional
46
- }, {
47
- type: Inject,
48
- args: [LIBTABGROUP_ACCESSOR]
49
- }] }]; }, propDecorators: { content: [{
50
- type: ViewChild,
51
- args: [TemplateRef, { static: true }]
52
- }], label: [{
53
- type: Input
54
- }], id: [{
55
- type: Input
56
- }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvdGFicy9saWItdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0ksT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQVlwRCxNQUFNLE9BQU8sZUFBZTtJQUd4QixZQUM4RCxTQUFlO1FBQWYsY0FBUyxHQUFULFNBQVMsQ0FBTTtRQUhyRSxjQUFTLEdBQVksS0FBSyxDQUFDO0lBSS9CLENBQUM7SUFTTCxzQ0FBc0M7SUFDdEMsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDO0lBQ3RFLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBVyxRQUFRLENBQUMsUUFBaUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ25DLENBQUM7OzRHQS9CUSxlQUFlLGtCQUlBLG9CQUFvQjtnR0FKbkMsZUFBZSw4SEFRYixXQUFXLDhEQWhCWjs7OztLQUlUOzJGQUlRLGVBQWU7a0JBVjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQUtRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9COzRDQUlLLE9BQU87c0JBQXZELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFeEIsS0FBSztzQkFBcEIsS0FBSztnQkFFVSxFQUFFO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB7IExJQlRBQkdST1VQX0FDQ0VTU09SIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItdGFiJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpYlRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBfaXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExJQlRBQkdST1VQX0FDQ0VTU09SKSBwdWJsaWMgcmVhZG9ubHkgX3RhYkdyb3VwPzogYW55XG4gICAgKSB7IH1cblxuICAgIC8qKiBUaGUgY29udGVudCBwcm92aWRlZCBmb3IgdGhlIHRhYi4gKi9cbiAgICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgY29udGVudCE6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSB0YWIgaGVhZGVyLiAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIHVuaXF1ZSBpZCBhc3NpZ25lZCBpbiB0aGUgdGFiLiAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpZCE6IHN0cmluZztcblxuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIGluZGV4IG9mIHRoZSB0YWIuICovXG4gICAgcHVibGljIGdldCBpbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiR3JvdXA/LnRhYnM/LnRvQXJyYXkoKS5pbmRleE9mKHRoaXMpIHx8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRhYiBpcyBhY3RpdmUuICovXG4gICAgcHVibGljIGdldCBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQWN0aXZlO1xuICAgIH1cblxuICAgIC8qKiBTZXR0ZXIgZm9yIExpYlRhYkNvbXBvbmVudCBpc0FjdGl2ZSBwcm9wZXJ0eS4gKi9cbiAgICBwdWJsaWMgc2V0IGlzQWN0aXZlKGlzQWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzQWN0aXZlID0gaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCB1dWlkLnY0KCk7XG4gICAgfVxufSJdfQ==
@@ -1,28 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/toaster.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "./toaster.component";
6
- export class ToasterContainerComponent {
7
- constructor(toaster) {
8
- this.toaster = toaster;
9
- this.toasts = [];
10
- }
11
- ngOnInit() {
12
- this.toaster.toast$
13
- .subscribe(toast => {
14
- this.toasts = [toast, ...this.toasts];
15
- setTimeout(() => this.toasts.pop(), toast.delay || 6000);
16
- });
17
- }
18
- remove(index) {
19
- this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));
20
- }
21
- }
22
- ToasterContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToasterContainerComponent, deps: [{ token: i1.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
23
- ToasterContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ToasterContainerComponent, selector: "lib-toaster-container", ngImport: i0, template: "<lib-toaster *ngFor=\"let toast of toasts; let i=index\" [toast]=\"toast\" [i]=\"i\" (remove)=\"remove($event)\"></lib-toaster>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ToasterComponent, selector: "lib-toaster", inputs: ["toast", "i"], outputs: ["remove"] }] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToasterContainerComponent, decorators: [{
25
- type: Component,
26
- args: [{ selector: 'lib-toaster-container', template: "<lib-toaster *ngFor=\"let toast of toasts; let i=index\" [toast]=\"toast\" [i]=\"i\" (remove)=\"remove($event)\"></lib-toaster>\n" }]
27
- }], ctorParameters: function () { return [{ type: i1.ToasterService }]; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL3RvYXN0ZXIvdG9hc3Rlci1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL3RvYXN0ZXIvdG9hc3Rlci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUlwQyxZQUFvQixPQUF1QjtRQUF2QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUYzQyxXQUFNLEdBQVksRUFBRSxDQUFDO0lBRTBCLENBQUM7SUFFaEQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTthQUNoQixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDOztzSEFoQlUseUJBQXlCOzBHQUF6Qix5QkFBeUIsNkRDUnRDLG1JQUNBOzJGRE9hLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10b2FzdGVyLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90b2FzdGVyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RlckNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgdG9hc3RzOiBUb2FzdFtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdGVyLnRvYXN0JFxuICAgICAgLnN1YnNjcmliZSh0b2FzdCA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RzID0gW3RvYXN0LCAuLi50aGlzLnRvYXN0c107XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50b2FzdHMucG9wKCksIHRvYXN0LmRlbGF5IHx8IDYwMDApO1xuICAgICAgfSk7XG4gIH1cblxuICByZW1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudG9hc3RzID0gdGhpcy50b2FzdHMuc2xpY2UoMCwgaW5kZXgpLmNvbmNhdCh0aGlzLnRvYXN0cy5zbGljZShpbmRleCArIDEpKTtcbiAgfVxuXG59XG4iLCI8bGliLXRvYXN0ZXIgKm5nRm9yPVwibGV0IHRvYXN0IG9mIHRvYXN0czsgbGV0IGk9aW5kZXhcIiBbdG9hc3RdPVwidG9hc3RcIiBbaV09XCJpXCIgKHJlbW92ZSk9XCJyZW1vdmUoJGV2ZW50KVwiPjwvbGliLXRvYXN0ZXI+XG4iXX0=
@@ -1,31 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- export class ToasterComponent {
5
- constructor() {
6
- this.i = 0;
7
- this.remove = new EventEmitter();
8
- this.isMobile = false;
9
- this.closed = false;
10
- }
11
- ngOnInit() {
12
- window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;
13
- }
14
- closeToast(index) {
15
- this.closed = true;
16
- setTimeout(() => this.remove.emit(index), 100);
17
- }
18
- }
19
- ToasterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToasterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- ToasterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ToasterComponent, selector: "lib-toaster", inputs: { toast: "toast", i: "i" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div aria-live=\"assertive\"\n [ngClass]=\"closed ? 'toast-closed': 'toast z-50'\"\n [ngStyle]=\"isMobile ? { 'margin-bottom.px': i * 85 } : {'margin-top.px': i * 85 }\">\n <div class=\"toast-container\">\n <div class=\"toast-pill\">\n <div class=\"toast-context-padding\">\n <div class=\"toast-context\"\n [ngSwitch]=\"toast?.type\">\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'info'\">\n <svg class=\"h-5 w-5 text-blue-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'success'\">\n <svg class=\"h-5 w-5 text-green-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'error'\">\n <svg class=\"h-5 w-5 text-red-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'warning'\">\n <svg class=\"h-5 w-5 text-yellow-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchDefault>\n <svg class=\"h-5 w-5 text-green-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n </div>\n\n <div class=\"ml-3 w-0 flex-1\">\n <p class=\"toast-title\"\n *ngIf=\"toast?.title\">\n {{toast?.title}}\n </p>\n <p class=\"toast-body\">\n {{toast?.body}}\n </p>\n </div>\n <div class=\"toast-close-icon\">\n <button class=\"toast-close-button\"\n (click)=\"closeToast(i)\">\n <span class=\"sr-only\">Close</span>\n <!-- Heroicon name: solid/x -->\n <svg class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToasterComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'lib-toaster', template: "<div aria-live=\"assertive\"\n [ngClass]=\"closed ? 'toast-closed': 'toast z-50'\"\n [ngStyle]=\"isMobile ? { 'margin-bottom.px': i * 85 } : {'margin-top.px': i * 85 }\">\n <div class=\"toast-container\">\n <div class=\"toast-pill\">\n <div class=\"toast-context-padding\">\n <div class=\"toast-context\"\n [ngSwitch]=\"toast?.type\">\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'info'\">\n <svg class=\"h-5 w-5 text-blue-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'success'\">\n <svg class=\"h-5 w-5 text-green-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'error'\">\n <svg class=\"h-5 w-5 text-red-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'warning'\">\n <svg class=\"h-5 w-5 text-yellow-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchDefault>\n <svg class=\"h-5 w-5 text-green-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n </div>\n\n <div class=\"ml-3 w-0 flex-1\">\n <p class=\"toast-title\"\n *ngIf=\"toast?.title\">\n {{toast?.title}}\n </p>\n <p class=\"toast-body\">\n {{toast?.body}}\n </p>\n </div>\n <div class=\"toast-close-icon\">\n <button class=\"toast-close-button\"\n (click)=\"closeToast(i)\">\n <span class=\"sr-only\">Close</span>\n <!-- Heroicon name: solid/x -->\n <svg class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>" }]
24
- }], ctorParameters: function () { return []; }, propDecorators: { toast: [{
25
- type: Input
26
- }], i: [{
27
- type: Input
28
- }], remove: [{
29
- type: Output
30
- }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvdG9hc3Rlci90b2FzdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy90b2FzdGVyL3RvYXN0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTy9FLE1BQU0sT0FBTyxnQkFBZ0I7SUFRM0I7UUFMUyxNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ0wsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdkMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsS0FBSyxDQUFDO0lBRU4sQ0FBQztJQUVqQixRQUFRO1FBQ04sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDM0UsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs2R0FqQlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isc0hDUDdCLDZpSkFzR007MkZEL0ZPLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxhQUFhOzBFQUtkLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxDQUFDO3NCQUFULEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10b2FzdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRvYXN0OiBUb2FzdCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaSA9IDA7XG4gIEBPdXRwdXQoKSByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgcHVibGljIGlzTW9iaWxlID0gZmFsc2U7XG4gIHB1YmxpYyBjbG9zZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHdpbmRvdy5zY3JlZW4ud2lkdGggPiA2NDAgPyB0aGlzLmlzTW9iaWxlID0gZmFsc2UgOiB0aGlzLmlzTW9iaWxlID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVRvYXN0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZS5lbWl0KGluZGV4KSwgMTAwKTtcbiAgfVxufVxuIiwiPGRpdiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICBbbmdDbGFzc109XCJjbG9zZWQgPyAndG9hc3QtY2xvc2VkJzogJ3RvYXN0IHotNTAnXCJcbiAgICAgW25nU3R5bGVdPVwiaXNNb2JpbGUgPyB7ICdtYXJnaW4tYm90dG9tLnB4JzogaSAqIDg1IH0gOiB7J21hcmdpbi10b3AucHgnOiBpICogODUgfVwiPlxuICA8ZGl2IGNsYXNzPVwidG9hc3QtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInRvYXN0LXBpbGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1jb250ZXh0LXBhZGRpbmdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWNvbnRleHRcIlxuICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJ0b2FzdD8udHlwZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1pY29uXCJcbiAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInaW5mbydcIj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoLTUgdy01IHRleHQtYmx1ZS00MDBcIlxuICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6bS03LTRhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwek05IDlhMSAxIDAgMDAwIDJ2M2ExIDEgMCAwMDEgMWgxYTEgMSAwIDEwMC0ydi0zYTEgMSAwIDAwLTEtMUg5elwiXG4gICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWljb25cIlxuICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImgtNSB3LTUgdGV4dC1ncmVlbi00MDBcIlxuICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBkPVwiTTkgMTJsMiAyIDQtNG02IDJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1pY29uXCJcbiAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZXJyb3InXCI+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaC01IHctNSB0ZXh0LXJlZC00MDBcIlxuICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNOC43MDcgNy4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRMOC41ODYgMTBsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTEuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTEuNDE0IDEwbDEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEwIDguNTg2IDguNzA3IDcuMjkzelwiXG4gICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWljb25cIlxuICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIid3YXJuaW5nJ1wiPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImgtNSB3LTUgdGV4dC15ZWxsb3ctNDAwXCJcbiAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICBkPVwiTTguMjU3IDMuMDk5Yy43NjUtMS4zNiAyLjcyMi0xLjM2IDMuNDg2IDBsNS41OCA5LjkyYy43NSAxLjMzNC0uMjEzIDIuOTgtMS43NDIgMi45OEg0LjQyYy0xLjUzIDAtMi40OTMtMS42NDYtMS43NDMtMi45OGw1LjU4LTkuOTJ6TTExIDEzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTEtOGExIDEgMCAwMC0xIDF2M2ExIDEgMCAwMDIgMFY2YTEgMSAwIDAwLTEtMXpcIlxuICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1pY29uXCJcbiAgICAgICAgICAgICAgICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaC01IHctNSB0ZXh0LWdyZWVuLTQwMFwiXG4gICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNOSAxMmwyIDIgNC00bTYgMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMyB3LTAgZmxleC0xXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRvYXN0LXRpdGxlXCJcbiAgICAgICAgICAgICAgICpuZ0lmPVwidG9hc3Q/LnRpdGxlXCI+XG4gICAgICAgICAgICAgIHt7dG9hc3Q/LnRpdGxlfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidG9hc3QtYm9keVwiPlxuICAgICAgICAgICAgICB7e3RvYXN0Py5ib2R5fX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtY2xvc2UtaWNvblwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvYXN0LWNsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVRvYXN0KGkpXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkNsb3NlPC9zcGFuPlxuICAgICAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IHNvbGlkL3ggLS0+XG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoLTUgdy01XCJcbiAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuMjkzIDQuMjkzYTEgMSAwIDAxMS40MTQgMEwxMCA4LjU4Nmw0LjI5My00LjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDExLjQxNCAxMGw0LjI5MyA0LjI5M2ExIDEgMCAwMS0xLjQxNCAxLjQxNEwxMCAxMS40MTRsLTQuMjkzIDQuMjkzYTEgMSAwIDAxLTEuNDE0LTEuNDE0TDguNTg2IDEwIDQuMjkzIDUuNzA3YTEgMSAwIDAxMC0xLjQxNHpcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -1,64 +0,0 @@
1
- import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class ToggleComponent {
6
- constructor() {
7
- this.valueChange = new EventEmitter();
8
- this.onChange$ = undefined;
9
- this.onTouched$ = undefined;
10
- }
11
- writeValue(obj) {
12
- if (obj) {
13
- this.value = obj || false;
14
- }
15
- }
16
- registerOnChange(fn) {
17
- this.onChange$ = fn;
18
- }
19
- registerOnTouched(fn) {
20
- this.onTouched$ = fn;
21
- }
22
- onBlur(event) {
23
- if (this.onTouched$) {
24
- this.onTouched$();
25
- }
26
- }
27
- ngOnInit() {
28
- }
29
- changeValue() {
30
- this.value = !this.value;
31
- this.valueChange.emit(this.value);
32
- if (this.onChange$) {
33
- this.onChange$(this.value);
34
- }
35
- if (this.onTouched$) {
36
- this.onTouched$();
37
- }
38
- }
39
- }
40
- ToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ToggleComponent, selector: "lib-toggle", inputs: { value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, providers: [
42
- {
43
- provide: NG_VALUE_ACCESSOR,
44
- useExisting: forwardRef(() => ToggleComponent),
45
- multi: true
46
- }
47
- ], ngImport: i0, template: "<button type=\"button\"\n [ngClass]=\"value ? (disabled ? 'on disabled' : 'on') : 'off'\"\n class=\"toggle-button\"\n role=\"switch\"\n aria-checked=\"false\"\n aria-labelledby=\"isPrivate\"\n (click)=\"changeValue()\"\n (blur)=\"onBlur($event)\"\n value=\"{{value}}\"\n [disabled]=\"disabled\"\n [title]=\"disabled ? '\u03A4\u03BF \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B9\u03B4\u03C9\u03C4\u03B9\u03BA\u03CC' : '\u0399\u03B4\u03B9\u03C9\u03C4\u03B9\u03BA\u03CC'\">\n <span aria-hidden=\"true\"\n [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\n class=\"toggle-span\"></span>\n</button>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToggleComponent, decorators: [{
49
- type: Component,
50
- args: [{ selector: 'lib-toggle', providers: [
51
- {
52
- provide: NG_VALUE_ACCESSOR,
53
- useExisting: forwardRef(() => ToggleComponent),
54
- multi: true
55
- }
56
- ], template: "<button type=\"button\"\n [ngClass]=\"value ? (disabled ? 'on disabled' : 'on') : 'off'\"\n class=\"toggle-button\"\n role=\"switch\"\n aria-checked=\"false\"\n aria-labelledby=\"isPrivate\"\n (click)=\"changeValue()\"\n (blur)=\"onBlur($event)\"\n value=\"{{value}}\"\n [disabled]=\"disabled\"\n [title]=\"disabled ? '\u03A4\u03BF \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B9\u03B4\u03C9\u03C4\u03B9\u03BA\u03CC' : '\u0399\u03B4\u03B9\u03C9\u03C4\u03B9\u03BA\u03CC'\">\n <span aria-hidden=\"true\"\n [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\n class=\"toggle-span\"></span>\n</button>" }]
57
- }], ctorParameters: function () { return []; }, propDecorators: { value: [{
58
- type: Input
59
- }], disabled: [{
60
- type: Input
61
- }], valueChange: [{
62
- type: Output
63
- }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBYXpFLE1BQU0sT0FBTyxlQUFlO0lBVTFCO1FBTFUsZ0JBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVuRSxjQUFTLEdBQW9CLFNBQVMsQ0FBQztRQUN2QyxlQUFVLEdBQW9CLFNBQVMsQ0FBQztJQUVoQyxDQUFDO0lBRWpCLFVBQVUsQ0FBQyxHQUFRO1FBQ2pCLElBQUcsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFVO1FBQ3RCLElBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7UUFDRCxJQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7NEdBMUNVLGVBQWU7Z0dBQWYsZUFBZSxnSUFSZjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUM5QyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDWkgsbXdCQWNTOzJGREFJLGVBQWU7a0JBWDNCLFNBQVM7K0JBQ0UsWUFBWSxhQUVYO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFJTSxLQUFLO3NCQURYLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUb2dnbGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YWx1ZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDpib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Qm9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPEJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZSQ6IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQkOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbiAgXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZihvYmopIHtcbiAgICAgIHRoaXMudmFsdWUgPSBvYmogfHwgZmFsc2U7XG4gICAgfVxuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UkID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkJCA9IGZuO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cihldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYodGhpcy5vblRvdWNoZWQkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VWYWx1ZSgpe1xuICAgIHRoaXMudmFsdWUgPSAhdGhpcy52YWx1ZTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgaWYodGhpcy5vbkNoYW5nZSQpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UkKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBpZih0aGlzLm9uVG91Y2hlZCQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkJCgpO1xuICAgIH1cbiAgfVxufSIsIjxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInZhbHVlID8gKGRpc2FibGVkID8gJ29uIGRpc2FibGVkJyA6ICdvbicpIDogJ29mZidcIlxuICAgICAgICBjbGFzcz1cInRvZ2dsZS1idXR0b25cIlxuICAgICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgICAgYXJpYS1jaGVja2VkPVwiZmFsc2VcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJpc1ByaXZhdGVcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlVmFsdWUoKVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgdmFsdWU9XCJ7e3ZhbHVlfX1cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbdGl0bGVdPVwiZGlzYWJsZWQgPyAnzqTOvyDOsc+Bz4fOtc6vzr8gz4DPgc6tz4DOtc65IM69zrEgzrXOr869zrHOuSDOuc60z4nPhM65zrrPjCcgOiAnzpnOtM65z4nPhM65zrrPjCdcIj5cbiAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInZhbHVlID8gJ2VuYWJsZWQtYW5pbScgOiAnZGlzYWJsZWQtYW5pbSdcIlxuICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLXNwYW5cIj48L3NwYW4+XG48L2J1dHRvbj4iXX0=
@@ -1,71 +0,0 @@
1
- import { Component, Inject, Input } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { AuthService } from '@indice/ng-auth';
4
- import { APP_LINKS } from '../../tokens';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../../directives/click-outside.directive";
8
- import * as i3 from "../nav-links-list/nav-links-list.component";
9
- import * as i4 from "@indice/ng-auth";
10
- import * as i5 from "@angular/router";
11
- export class UserProfileMenuComponent {
12
- constructor(authService, router, links) {
13
- this.authService = authService;
14
- this.router = router;
15
- this.links = links;
16
- // tslint:disable-next-line:no-input-rename
17
- this.showUserName = false;
18
- this.userSub$ = null;
19
- this.statusSub$ = null;
20
- this.user = null;
21
- this.avatarName = null;
22
- this.userMenuExpanded = false;
23
- }
24
- ngOnInit() {
25
- this.authService.loadUser().subscribe((user) => {
26
- this.setCurrentUser(user);
27
- }, error => {
28
- console.error(error);
29
- });
30
- // Detect user changes and display / or not user info accordingly...
31
- this.userSub$ = this.authService.user$.subscribe((user) => {
32
- // console.log('ShellHeaderComponent user subscription');
33
- this.setCurrentUser(user);
34
- });
35
- }
36
- signin(event) {
37
- if (event) {
38
- event.preventDefault();
39
- }
40
- this.authService.signinRedirect();
41
- }
42
- setCurrentUser(user) {
43
- this.user = user;
44
- if (this.user && this.user.profile) {
45
- this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`.toUpperCase();
46
- }
47
- }
48
- // tslint:disable-next-line:typedef
49
- onClickOutside($event) {
50
- this.userMenuExpanded = false;
51
- }
52
- }
53
- UserProfileMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UserProfileMenuComponent, deps: [{ token: AuthService }, { token: Router }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component });
54
- UserProfileMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: UserProfileMenuComponent, selector: "lib-user-profile-menu", inputs: { showUserName: ["show-user-name", "showUserName"] }, ngImport: i0, template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\" (click)=\"userMenuExpanded = !userMenuExpanded\">\n\n <div class=\"inline-flex\">\n <!-- Username -->\n <div [ngClass]=\"{'shell-header-profile': showUserName}\">\n <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\n {{ user.profile.name }}\n </div>\n </div>\n\n <div [class.ml-2]=\"showUserName\">\n <button type=\"button\" *ngIf=\"user\"\n class=\"shell-header-profile-dropdown-button\"\n id=\"user-menu\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">Open user menu</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\">{{this.avatarName}}</span>\n </span>\n </button>\n\n <button type=\"button\"\n *ngIf=\"!user\"\n (click)=\"signin(null)\"\n class=\"shell-header-profile-dropdown-button\"\n id=\"user-menu\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">sign in</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\n </span>\n </button>\n </div>\n </div>\n\n <div [class]=\"userMenuExpanded ?\n 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\n :\n 'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\"\n role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n <lib-nav-links-list\n [links]=\"links.profile\"\n [link-class]=\"'nav-link-profile'\"\n [link-active-class]=\"'nav-link-profile-active'\">\n </lib-nav-links-list>\n </div>\n\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "component", type: i3.NavLinksListComponent, selector: "lib-nav-links-list", inputs: ["links", "active-fragment", "link-class", "link-active-class", "container-class", "show-icons"] }] });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UserProfileMenuComponent, decorators: [{
56
- type: Component,
57
- args: [{ selector: 'lib-user-profile-menu', template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\" (click)=\"userMenuExpanded = !userMenuExpanded\">\n\n <div class=\"inline-flex\">\n <!-- Username -->\n <div [ngClass]=\"{'shell-header-profile': showUserName}\">\n <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\n {{ user.profile.name }}\n </div>\n </div>\n\n <div [class.ml-2]=\"showUserName\">\n <button type=\"button\" *ngIf=\"user\"\n class=\"shell-header-profile-dropdown-button\"\n id=\"user-menu\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">Open user menu</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\">{{this.avatarName}}</span>\n </span>\n </button>\n\n <button type=\"button\"\n *ngIf=\"!user\"\n (click)=\"signin(null)\"\n class=\"shell-header-profile-dropdown-button\"\n id=\"user-menu\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">sign in</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\n </span>\n </button>\n </div>\n </div>\n\n <div [class]=\"userMenuExpanded ?\n 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\n :\n 'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\"\n role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n <lib-nav-links-list\n [links]=\"links.profile\"\n [link-class]=\"'nav-link-profile'\"\n [link-active-class]=\"'nav-link-profile-active'\">\n </lib-nav-links-list>\n </div>\n\n</div>\n\n" }]
58
- }], ctorParameters: function () { return [{ type: i4.AuthService, decorators: [{
59
- type: Inject,
60
- args: [AuthService]
61
- }] }, { type: i5.Router, decorators: [{
62
- type: Inject,
63
- args: [Router]
64
- }] }, { type: undefined, decorators: [{
65
- type: Inject,
66
- args: [APP_LINKS]
67
- }] }]; }, propDecorators: { showUserName: [{
68
- type: Input,
69
- args: ['show-user-name']
70
- }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL3VzZXItcHJvZmlsZS1tZW51L3VzZXItcHJvZmlsZS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy91c2VyLXByb2ZpbGUtbWVudS91c2VyLXByb2ZpbGUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBTXpDLE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsWUFBMkMsV0FBd0IsRUFDN0IsTUFBYyxFQUNkLEtBQVU7UUFGTCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBSztRQVZoRCwyQ0FBMkM7UUFDbEIsaUJBQVksR0FBd0IsS0FBSyxDQUFDO1FBQ3pELGFBQVEsR0FBd0IsSUFBSSxDQUFDO1FBQ3JDLGVBQVUsR0FBd0IsSUFBSSxDQUFDO1FBQzFDLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ2pDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQUlvQixDQUFDO0lBRXJELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzdELHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUE2QjtRQUN6QyxJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFTO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekg7SUFDSCxDQUFDO0lBRUQsbUNBQW1DO0lBQzVCLGNBQWMsQ0FBQyxNQUFXO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQzs7cUhBNUNVLHdCQUF3QixrQkFVZixXQUFXLGFBQ1gsTUFBTSxhQUNOLFNBQVM7eUdBWmxCLHdCQUF3QiwySENYckMsd2hFQW1EQTsyRkR4Q2Esd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHVCQUF1Qjs7MEJBYXBCLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsTUFBTTs7MEJBQ2IsTUFBTTsyQkFBQyxTQUFTOzRDQVRKLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BpbmRpY2UvbmctYXV0aCc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnb2lkYy1jbGllbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUFBfTElOS1MgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdXNlci1wcm9maWxlLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1wcm9maWxlLW1lbnUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJQcm9maWxlTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3Nob3ctdXNlci1uYW1lJykgc2hvd1VzZXJOYW1lOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCB1c2VyU3ViJDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBzdGF0dXNTdWIkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHVzZXI6IFVzZXIgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGF2YXRhck5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgdXNlck1lbnVFeHBhbmRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQXV0aFNlcnZpY2UpIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgICAgICAgICAgIEBJbmplY3QoUm91dGVyKSBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIEBJbmplY3QoQVBQX0xJTktTKSBwdWJsaWMgbGlua3M6IGFueSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2FkVXNlcigpLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgdGhpcy5zZXRDdXJyZW50VXNlcih1c2VyKTtcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9KTtcbiAgICAvLyBEZXRlY3QgdXNlciBjaGFuZ2VzIGFuZCBkaXNwbGF5IC8gb3Igbm90IHVzZXIgaW5mbyBhY2NvcmRpbmdseS4uLlxuICAgIHRoaXMudXNlclN1YiQgPSB0aGlzLmF1dGhTZXJ2aWNlLnVzZXIkLnN1YnNjcmliZSgodXNlcjogYW55KSA9PiB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxIZWFkZXJDb21wb25lbnQgdXNlciBzdWJzY3JpcHRpb24nKTtcbiAgICAgIHRoaXMuc2V0Q3VycmVudFVzZXIodXNlcik7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2lnbmluKGV2ZW50OiBhbnkgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnNpZ25pblJlZGlyZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldEN1cnJlbnRVc2VyKHVzZXI6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgaWYgKHRoaXMudXNlciAmJiB0aGlzLnVzZXIucHJvZmlsZSkge1xuICAgICAgdGhpcy5hdmF0YXJOYW1lID0gYCR7dGhpcy51c2VyLnByb2ZpbGUuZ2l2ZW5fbmFtZT8uY2hhckF0KDApfSR7dGhpcy51c2VyLnByb2ZpbGUuZmFtaWx5X25hbWU/LmNoYXJBdCgwKX1gLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnR5cGVkZWZcbiAgcHVibGljIG9uQ2xpY2tPdXRzaWRlKCRldmVudDogYW55KSB7XG4gICAgdGhpcy51c2VyTWVudUV4cGFuZGVkID0gZmFsc2U7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlXCIgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCIgKGNsaWNrKT1cInVzZXJNZW51RXhwYW5kZWQgPSAhdXNlck1lbnVFeHBhbmRlZFwiPlxuXG4gIDxkaXYgY2xhc3M9XCJpbmxpbmUtZmxleFwiPlxuICAgIDwhLS0gVXNlcm5hbWUgLS0+XG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J3NoZWxsLWhlYWRlci1wcm9maWxlJzogc2hvd1VzZXJOYW1lfVwiPlxuICAgICAgPGRpdiAqbmdJZj1cInVzZXIgJiYgc2hvd1VzZXJOYW1lXCIgY2xhc3M9XCJzaGVsbC1oZWFkZXItcHJvZmlsZS11c2VyTmFtZVwiPlxuICAgICAgICB7eyB1c2VyLnByb2ZpbGUubmFtZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IFtjbGFzcy5tbC0yXT1cInNob3dVc2VyTmFtZVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJ1c2VyXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzaGVsbC1oZWFkZXItcHJvZmlsZS1kcm9wZG93bi1idXR0b25cIlxuICAgICAgICAgICAgICBpZD1cInVzZXItbWVudVwiXG4gICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPk9wZW4gdXNlciBtZW51PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci10ZXh0XCI+e3t0aGlzLmF2YXRhck5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXVzZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2lnbmluKG51bGwpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzaGVsbC1oZWFkZXItcHJvZmlsZS1kcm9wZG93bi1idXR0b25cIlxuICAgICAgICAgICAgICBpZD1cInVzZXItbWVudVwiXG4gICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnNpZ24gaW48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyLXRleHRcIj48aSBjbGFzcz1cIm1zLUljb24gbXMtSWNvbi0tU2lnbmluXCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgW2NsYXNzXT1cInVzZXJNZW51RXhwYW5kZWQgP1xuICAgICd0cmFuc2l0aW9uIGVhc2Utb3V0IGR1cmF0aW9uLTIwMCBvcmlnaW4tdG9wLXJpZ2h0IHotMzAgYWJzb2x1dGUgcmlnaHQtMCBtdC0yIHctNTYgcm91bmRlZC1zbSBzaGFkb3ctbGcgYmctd2hpdGUgcmluZy0xIHJpbmctYmxhY2sgcmluZy1vcGFjaXR5LTUgZm9jdXM6b3V0bGluZS1ub25lJ1xuICAgIDpcbiAgICAnaGlkZGVuIHRyYW5zaXRpb24gZWFzZS1pbiBkdXJhdGlvbi03NSBvcmlnaW4tdG9wLXJpZ2h0IHotMzAgcmlnaHQtMCBtdC0yIHctNTYgcm91bmRlZC1zbSBzaGFkb3ctbGcgYmctd2hpdGUgcmluZy0xIHJpbmctYmxhY2sgcmluZy1vcGFjaXR5LTUgZm9jdXM6b3V0bGluZS1ub25lJ1wiXG4gICAgcm9sZT1cIm1lbnVcIiBhcmlhLW9yaWVudGF0aW9uPVwidmVydGljYWxcIiBhcmlhLWxhYmVsbGVkYnk9XCJtZW51LWJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgIDxsaWItbmF2LWxpbmtzLWxpc3RcbiAgICAgICAgICAgIFtsaW5rc109XCJsaW5rcy5wcm9maWxlXCJcbiAgICAgICAgICAgIFtsaW5rLWNsYXNzXT1cIiduYXYtbGluay1wcm9maWxlJ1wiXG4gICAgICAgICAgICBbbGluay1hY3RpdmUtY2xhc3NdPVwiJ25hdi1saW5rLXByb2ZpbGUtYWN0aXZlJ1wiPlxuICAgICAgICAgPC9saWItbmF2LWxpbmtzLWxpc3Q+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuIl19