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

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 (150) hide show
  1. package/README.md +4 -4
  2. package/bundles/indice-ng-components.umd.js +4289 -0
  3. package/bundles/indice-ng-components.umd.js.map +1 -0
  4. package/{esm2020/indice-ng-components.mjs → esm2015/indice-ng-components.js} +0 -0
  5. package/{esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs → esm2015/lib/controls/avatar-initials/avatar-initials.component.js} +8 -5
  6. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +23 -0
  7. package/{esm2020/lib/controls/combobox/combobox.component.mjs → esm2015/lib/controls/combobox/combobox.component.js} +10 -7
  8. package/esm2015/lib/controls/date-picker/date-picker.component.js +269 -0
  9. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +72 -0
  10. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +39 -0
  11. package/esm2015/lib/controls/language-selection/language-selection.component.js +35 -0
  12. package/{esm2020/lib/controls/list-view/list-column.component.mjs → esm2015/lib/controls/list-view/list-column.component.js} +4 -4
  13. package/{esm2020/lib/controls/list-view/list-details-section.component.mjs → esm2015/lib/controls/list-view/list-details-section.component.js} +4 -4
  14. package/{esm2020/lib/controls/list-view/list-tile.component.mjs → esm2015/lib/controls/list-view/list-tile.component.js} +4 -4
  15. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +32 -0
  16. package/esm2015/lib/controls/list-view/list-view.component.js +186 -0
  17. package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +45 -0
  18. package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +76 -0
  19. package/esm2015/lib/controls/pager/pager.component.js +133 -0
  20. package/esm2015/lib/controls/side-pane/side-pane.component.js +76 -0
  21. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +29 -0
  22. package/esm2015/lib/controls/tabs/lib-tab-group.component.js +60 -0
  23. package/esm2015/lib/controls/tabs/lib-tab.component.js +57 -0
  24. package/esm2015/lib/controls/toaster/toaster-container.component.js +31 -0
  25. package/esm2015/lib/controls/toaster/toaster.component.js +34 -0
  26. package/esm2015/lib/controls/toggle/toggle.component.js +68 -0
  27. package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +75 -0
  28. package/{esm2020/lib/directives/click-outside.directive.mjs → esm2015/lib/directives/click-outside.directive.js} +4 -4
  29. package/{esm2020/lib/directives/dynamic-component-host.directive.mjs → esm2015/lib/directives/dynamic-component-host.directive.js} +4 -4
  30. package/esm2015/lib/helpers/base-list.component.js +182 -0
  31. package/{esm2020/lib/icons.mjs → esm2015/lib/icons.js} +0 -0
  32. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +22 -0
  33. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +136 -0
  34. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +108 -0
  35. package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +50 -0
  36. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +85 -0
  37. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +53 -0
  38. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +101 -0
  39. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +110 -0
  40. package/{esm2020/lib/ng-components.module.mjs → esm2015/lib/ng-components.module.js} +9 -7
  41. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +34 -0
  42. package/{esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs → esm2015/lib/pages/auth/auth-renew/auth-renew.component.js} +4 -4
  43. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +32 -0
  44. package/esm2015/lib/pages/http-status/error/error.component.js +20 -0
  45. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +18 -0
  46. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +17 -0
  47. package/{esm2020/lib/pipes/address.pipe.mjs → esm2015/lib/pipes/address.pipe.js} +4 -4
  48. package/{esm2020/lib/pipes/duration-format.pipe.mjs → esm2015/lib/pipes/duration-format.pipe.js} +4 -4
  49. package/{esm2020/lib/services/component-loader/component-loader-options.class.mjs → esm2015/lib/services/component-loader/component-loader-options.class.js} +0 -0
  50. package/esm2015/lib/services/component-loader/component-loader.class.js +192 -0
  51. package/{esm2020/lib/services/component-loader/component-loader.factory.mjs → esm2015/lib/services/component-loader/component-loader.factory.js} +4 -4
  52. package/{esm2020/lib/services/component-loader/content-ref.class.mjs → esm2015/lib/services/component-loader/content-ref.class.js} +0 -0
  53. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +44 -0
  54. package/esm2015/lib/services/modal-service/modal-container-component.js +128 -0
  55. package/{esm2020/lib/services/modal-service/modal-options.class.mjs → esm2015/lib/services/modal-service/modal-options.class.js} +4 -4
  56. package/esm2015/lib/services/modal-service/modal-service.js +220 -0
  57. package/{esm2020/lib/services/modal-service/modal-styles.class.mjs → esm2015/lib/services/modal-service/modal-styles.class.js} +0 -0
  58. package/{esm2020/lib/services/modal-service/modal.class.mjs → esm2015/lib/services/modal-service/modal.class.js} +4 -4
  59. package/{esm2020/lib/services/toaster.service.mjs → esm2015/lib/services/toaster.service.js} +4 -4
  60. package/{esm2020/lib/tokens.mjs → esm2015/lib/tokens.js} +0 -0
  61. package/{esm2020/lib/types.mjs → esm2015/lib/types.js} +0 -0
  62. package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
  63. package/fesm2015/indice-ng-components.js +3699 -0
  64. package/fesm2015/indice-ng-components.js.map +1 -0
  65. package/{index.d.ts → indice-ng-components.d.ts} +0 -0
  66. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +1 -1
  67. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +1 -1
  68. package/lib/controls/combobox/combobox.component.d.ts +1 -1
  69. package/lib/controls/date-picker/date-picker.component.d.ts +1 -1
  70. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +1 -1
  71. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +1 -1
  72. package/lib/controls/language-selection/language-selection.component.d.ts +1 -1
  73. package/lib/controls/list-view/list-column.component.d.ts +1 -1
  74. package/lib/controls/list-view/list-details-section.component.d.ts +1 -1
  75. package/lib/controls/list-view/list-tile.component.d.ts +1 -1
  76. package/lib/controls/list-view/list-view-empty-state.component.d.ts +1 -1
  77. package/lib/controls/list-view/list-view.component.d.ts +1 -1
  78. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +1 -1
  79. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +1 -1
  80. package/lib/controls/pager/pager.component.d.ts +1 -1
  81. package/lib/controls/side-pane/side-pane.component.d.ts +1 -1
  82. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  83. package/lib/controls/tabs/lib-tab-group.component.d.ts +1 -1
  84. package/lib/controls/tabs/lib-tab.component.d.ts +1 -1
  85. package/lib/controls/toaster/toaster-container.component.d.ts +1 -1
  86. package/lib/controls/toaster/toaster.component.d.ts +1 -1
  87. package/lib/controls/toggle/toggle.component.d.ts +1 -1
  88. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  89. package/lib/directives/click-outside.directive.d.ts +1 -1
  90. package/lib/directives/dynamic-component-host.directive.d.ts +1 -1
  91. package/lib/helpers/base-list.component.d.ts +1 -1
  92. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +1 -1
  93. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -1
  94. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +1 -1
  95. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +1 -1
  96. package/lib/layouts/views/form-layout/form-layout.component.d.ts +1 -1
  97. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +1 -1
  98. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +1 -1
  99. package/lib/layouts/views/view-layout/view-layout.component.d.ts +1 -1
  100. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +1 -1
  101. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +1 -1
  102. package/lib/pages/auth/logged-out/logged-out.component.d.ts +1 -1
  103. package/lib/pages/http-status/error/error.component.d.ts +1 -1
  104. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +1 -1
  105. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +1 -1
  106. package/lib/pipes/address.pipe.d.ts +1 -1
  107. package/lib/pipes/duration-format.pipe.d.ts +1 -1
  108. package/lib/services/modal-service/modal-backdrop-component.d.ts +1 -1
  109. package/lib/services/modal-service/modal-container-component.d.ts +1 -1
  110. package/package.json +9 -22
  111. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
  112. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -260
  113. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -68
  114. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +0 -36
  115. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +0 -31
  116. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
  117. package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -183
  118. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +0 -42
  119. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -73
  120. package/esm2020/lib/controls/pager/pager.component.mjs +0 -130
  121. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
  122. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
  123. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +0 -54
  124. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +0 -56
  125. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +0 -28
  126. package/esm2020/lib/controls/toaster/toaster.component.mjs +0 -31
  127. package/esm2020/lib/controls/toggle/toggle.component.mjs +0 -64
  128. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -71
  129. package/esm2020/lib/helpers/base-list.component.mjs +0 -181
  130. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +0 -19
  131. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -131
  132. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -103
  133. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +0 -47
  134. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
  135. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -49
  136. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -98
  137. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
  138. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
  139. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +0 -28
  140. package/esm2020/lib/pages/http-status/error/error.component.mjs +0 -17
  141. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
  142. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
  143. package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
  144. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
  145. package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
  146. package/esm2020/lib/services/modal-service/modal-service.mjs +0 -219
  147. package/fesm2015/indice-ng-components.mjs +0 -3622
  148. package/fesm2015/indice-ng-components.mjs.map +0 -1
  149. package/fesm2020/indice-ng-components.mjs +0 -3565
  150. package/fesm2020/indice-ng-components.mjs.map +0 -1
@@ -1,183 +0,0 @@
1
- import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
2
- import { ListViewType } from '../../types';
3
- import { ListTileComponent } from './list-tile.component';
4
- import { ListColumnComponent } from './list-column.component';
5
- import { ListDetailsSectionComponent } from './list-details-section.component';
6
- import { Icons } from '../../icons';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- import * as i2 from "../pager/pager.component";
10
- import * as i3 from "./list-view-empty-state.component";
11
- import * as i4 from "../skeleton-loader/skeleton-loader.component";
12
- export class ListViewComponent {
13
- constructor() {
14
- // BUSY STATE
15
- this.busy = false;
16
- this.expandIcon = Icons.Expand;
17
- this.collapseIcon = Icons.Collapse;
18
- // tslint:disable-next-line:no-input-rename
19
- this.showPager = true;
20
- // PAGING - pass through for pager component
21
- this.count = null;
22
- this.page = 1;
23
- // tslint:disable-next-line:no-input-rename
24
- this.pageSize = 20;
25
- // tslint:disable-next-line:no-input-rename
26
- this.pageSizeOptions = [];
27
- this.pageChanged = new EventEmitter();
28
- this.pageSizeChanged = new EventEmitter();
29
- this.detailsOpened = new EventEmitter();
30
- this.tableViewSupported = false;
31
- this.multipleFullWidth = false;
32
- this.fullWidthTHClass = 'list-view-th-full';
33
- this.fullWidthTDClass = 'list-view-td-full';
34
- this.tilesViewSupported = false;
35
- this.detailsSectionSupported = false;
36
- this.loaderItems = [];
37
- // DETAILS SECTION
38
- // Check if details section and button should be displayed according to the count of the value given
39
- // tslint:disable-next-line:no-input-rename
40
- this.detailsSectionPropertyCount = null;
41
- // SORTING - pass through for pager component
42
- // tslint:disable-next-line:no-input-rename
43
- this.sortOptions = [];
44
- this.sort = null;
45
- // tslint:disable-next-line:no-input-rename
46
- this.sortdir = '-';
47
- this.sortChanged = new EventEmitter();
48
- this.sortdirChanged = new EventEmitter();
49
- this.view = ListViewType.Table;
50
- // COLUMNS
51
- this.columns = [];
52
- this.tilesDeckClass = 'cards-deck-4';
53
- // tslint:disable-next-line:no-input-rename
54
- this.tilesCount = 4;
55
- this.tileTemplate = null;
56
- this.detailsTemplate = null;
57
- for (let i = 0; i < 5; i++) {
58
- this.loaderItems.push({});
59
- }
60
- }
61
- set cols(refs) {
62
- this.columns = refs?.toArray();
63
- if (this.columns && this.columns.length > 0) {
64
- this.tableViewSupported = true;
65
- }
66
- this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;
67
- this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';
68
- this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';
69
- }
70
- set tiles(ref) {
71
- this.tileTemplate = ref;
72
- if (this.tileTemplate) {
73
- this.tilesViewSupported = true;
74
- }
75
- }
76
- set details(ref) {
77
- this.detailsTemplate = ref;
78
- if (this.detailsTemplate) {
79
- this.detailsSectionSupported = true;
80
- }
81
- }
82
- ngOnChanges(changes) {
83
- const tilesCountChange = changes['tiles-count'] || changes.tilesCount;
84
- if (tilesCountChange) {
85
- this.setTilesDeckClass(tilesCountChange.currentValue);
86
- }
87
- }
88
- // events
89
- emitPageChanged($event) {
90
- this.pageChanged.emit($event);
91
- }
92
- emitPageSizeChanged($event) {
93
- this.pageSizeChanged.emit($event);
94
- }
95
- emitSortChanged($event) {
96
- this.sortChanged.emit($event);
97
- }
98
- emitSortdirChanged($event) {
99
- this.sortdirChanged.emit($event);
100
- }
101
- toggleDetails(item) {
102
- item.detailsExpanded = !item.detailsExpanded;
103
- this.detailsOpened.emit({ item, open: item.detailsExpanded });
104
- }
105
- // helpers
106
- setTilesDeckClass(tiles) {
107
- if (tiles >= 1 && tiles <= 4) {
108
- this.tilesDeckClass =
109
- this.view !== ListViewType.Gallery
110
- ? `cards-deck-${tiles}`
111
- : this.items && this.items.length > 0
112
- ? `gallery-deck-${tiles}`
113
- : 'gallery-deck';
114
- }
115
- else {
116
- this.tilesDeckClass =
117
- this.view !== ListViewType.Gallery
118
- ? 'cards-deck-3'
119
- : this.items && this.items.length > 0
120
- ? 'gallery-deck-3'
121
- : 'gallery-deck';
122
- }
123
- }
124
- }
125
- ListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
126
- ListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListViewComponent, selector: "lib-list-view", inputs: { busy: "busy", items: "items", showPager: ["show-pager", "showPager"], count: "count", page: "page", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], detailsSectionPropertyCount: ["details-section-property-count", "detailsSectionPropertyCount"], sortOptions: ["sort-options", "sortOptions"], sort: "sort", sortdir: ["sort-dir", "sortdir"], view: "view", tilesCount: ["tiles-count", "tilesCount"] }, outputs: { pageChanged: "pageChanged", pageSizeChanged: "pageSizeChanged", detailsOpened: "detailsOpened", sortChanged: "sortChanged", sortdirChanged: "sortdirChanged" }, queries: [{ propertyName: "tiles", first: true, predicate: ListTileComponent, descendants: true, read: ListTileComponent }, { propertyName: "details", first: true, predicate: ListDetailsSectionComponent, descendants: true, read: ListDetailsSectionComponent }, { propertyName: "cols", predicate: ListColumnComponent, read: ListColumnComponent }], usesOnChanges: true, ngImport: i0, template: "<div class=\"px-2\">\r\n\r\n <lib-pager *ngIf=\"showPager\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>\r\n\r\n<ng-container [ngSwitch]=\"view\">\r\n\r\n <ng-container *ngSwitchCase=\"'tiles'\">\r\n <div [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- *ngSwitchCase=\"'gallery'\" -->\r\n <ng-container *ngSwitchCase=\"'gallery'\">\r\n <ul role=\"list\" [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n\r\n <!-- *ngSwitchCase=\"'table'\" -->\r\n <ng-container *ngSwitchDefault>\r\n\r\n <div class=\"list-view-container\">\r\n <div class=\"list-view-container-inner\">\r\n <table class=\"list-view-table\">\r\n <thead class=\"list-view-thead\">\r\n <tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <th class=\"list-view-th-details\"></th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\"\r\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\r\n {{col.title}}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\r\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button disabled\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n <tbody class=\"list-view-tbody\" *ngIf=\"!busy\">\r\n <ng-container *ngFor=\"let item of items;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button (click)=\"toggleDetails(item)\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <ng-template [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\r\n <div class=\"cards-deck-1\">\r\n <lib-list-view-empty-state></lib-list-view-empty-state>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n", 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"] }, { 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]" }, { kind: "component", type: i2.PagerComponent, selector: "lib-pager", inputs: ["busy", "count", "page", "page-size", "page-size-options", "sort-options", "sort", "sort-dir"], outputs: ["pageChanged", "pageSizeChanged", "sortChanged", "sortdirChanged"] }, { kind: "component", type: i3.ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: ["title", "sub-title", "new-item-label"] }, { kind: "component", type: i4.SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: ["count", "type"] }] });
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewComponent, decorators: [{
128
- type: Component,
129
- args: [{ selector: 'lib-list-view', template: "<div class=\"px-2\">\r\n\r\n <lib-pager *ngIf=\"showPager\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>\r\n\r\n<ng-container [ngSwitch]=\"view\">\r\n\r\n <ng-container *ngSwitchCase=\"'tiles'\">\r\n <div [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- *ngSwitchCase=\"'gallery'\" -->\r\n <ng-container *ngSwitchCase=\"'gallery'\">\r\n <ul role=\"list\" [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n\r\n <!-- *ngSwitchCase=\"'table'\" -->\r\n <ng-container *ngSwitchDefault>\r\n\r\n <div class=\"list-view-container\">\r\n <div class=\"list-view-container-inner\">\r\n <table class=\"list-view-table\">\r\n <thead class=\"list-view-thead\">\r\n <tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <th class=\"list-view-th-details\"></th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\"\r\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\r\n {{col.title}}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\r\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button disabled\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n <tbody class=\"list-view-tbody\" *ngIf=\"!busy\">\r\n <ng-container *ngFor=\"let item of items;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button (click)=\"toggleDetails(item)\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <ng-template [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\r\n <div class=\"cards-deck-1\">\r\n <lib-list-view-empty-state></lib-list-view-empty-state>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n" }]
130
- }], ctorParameters: function () { return []; }, propDecorators: { busy: [{
131
- type: Input
132
- }], items: [{
133
- type: Input
134
- }], showPager: [{
135
- type: Input,
136
- args: ['show-pager']
137
- }], count: [{
138
- type: Input
139
- }], page: [{
140
- type: Input
141
- }], pageSize: [{
142
- type: Input,
143
- args: ['page-size']
144
- }], pageSizeOptions: [{
145
- type: Input,
146
- args: ['page-size-options']
147
- }], pageChanged: [{
148
- type: Output
149
- }], pageSizeChanged: [{
150
- type: Output
151
- }], detailsOpened: [{
152
- type: Output
153
- }], detailsSectionPropertyCount: [{
154
- type: Input,
155
- args: ['details-section-property-count']
156
- }], sortOptions: [{
157
- type: Input,
158
- args: ['sort-options']
159
- }], sort: [{
160
- type: Input
161
- }], sortdir: [{
162
- type: Input,
163
- args: ['sort-dir']
164
- }], sortChanged: [{
165
- type: Output
166
- }], sortdirChanged: [{
167
- type: Output
168
- }], view: [{
169
- type: Input
170
- }], cols: [{
171
- type: ContentChildren,
172
- args: [ListColumnComponent, { read: ListColumnComponent }]
173
- }], tilesCount: [{
174
- type: Input,
175
- args: ['tiles-count']
176
- }], tiles: [{
177
- type: ContentChild,
178
- args: [ListTileComponent, { read: ListTileComponent }]
179
- }], details: [{
180
- type: ContentChild,
181
- args: [ListDetailsSectionComponent, { read: ListDetailsSectionComponent }]
182
- }] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFNcEMsTUFBTSxPQUFPLGlCQUFpQjtJQWlGNUI7UUFoRkEsYUFBYTtRQUNKLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQixpQkFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFHckMsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEMsNENBQTRDO1FBQ25DLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQzVCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDbEIsMkNBQTJDO1FBQ3ZCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEMsMkNBQTJDO1FBQ2Ysb0JB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S0FBSztnQkFLRixJQUFJO3NCQURQLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7Z0JBYTdDLFVBQVU7c0JBQS9CLEtBQUs7dUJBQUMsYUFBYTtnQkFJaEIsS0FBSztzQkFEUixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO2dCQVV4RCxPQUFPO3NCQURWLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVPcHRpb24sIExpc3RWaWV3VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgTGlzdFRpbGVDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtdGlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vaWNvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbGlzdC12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC12aWV3LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlzdFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIC8vIEJVU1kgU1RBVEVcclxuICBASW5wdXQoKSBidXN5ID0gZmFsc2U7XHJcbiAgcHVibGljIGV4cGFuZEljb24gPSBJY29ucy5FeHBhbmQ7XHJcbiAgcHVibGljIGNvbGxhcHNlSWNvbiA9IEljb25zLkNvbGxhcHNlO1xyXG4gIC8vIERBVEEgU09VUkNFIVxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXSB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2hvdy1wYWdlcicpIHNob3dQYWdlciA9IHRydWU7XHJcblxyXG4gIC8vIFBBR0lORyAtIHBhc3MgdGhyb3VnaCBmb3IgcGFnZXIgY29tcG9uZW50XHJcbiAgQElucHV0KCkgY291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHBhZ2UgPSAxO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3BhZ2Utc2l6ZScpIHBhZ2VTaXplID0gMjA7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgncGFnZS1zaXplLW9wdGlvbnMnKSBwYWdlU2l6ZU9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgcGFnZVNpemVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIEBPdXRwdXQoKSBkZXRhaWxzT3BlbmVkOiBFdmVudEVtaXR0ZXI8eyBpdGVtOiBhbnksIG9wZW46IGJvb2xlYW4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogYW55LCBvcGVuOiBib29sZWFuIH0+KCk7XHJcblxyXG4gIHB1YmxpYyB0YWJsZVZpZXdTdXBwb3J0ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIG11bHRpcGxlRnVsbFdpZHRoID0gZmFsc2U7XHJcbiAgcHVibGljIGZ1bGxXaWR0aFRIQ2xhc3MgPSAnbGlzdC12aWV3LXRoLWZ1bGwnO1xyXG4gIHB1YmxpYyBmdWxsV2lkdGhURENsYXNzID0gJ2xpc3Qtdmlldy10ZC1mdWxsJztcclxuICBwdWJsaWMgdGlsZXNWaWV3U3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGRldGFpbHNTZWN0aW9uU3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGxvYWRlckl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvLyBERVRBSUxTIFNFQ1RJT05cclxuICAvLyBDaGVjayBpZiBkZXRhaWxzIHNlY3Rpb24gYW5kIGJ1dHRvbiBzaG91bGQgYmUgZGlzcGxheWVkIGFjY29yZGluZyB0byB0aGUgY291bnQgb2YgdGhlIHZhbHVlIGdpdmVuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnZGV0YWlscy1zZWN0aW9uLXByb3BlcnR5LWNvdW50JykgZGV0YWlsc1NlY3Rpb25Qcm9wZXJ0eUNvdW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gIC8vIFNPUlRJTkcgLSBwYXNzIHRocm91Z2ggZm9yIHBhZ2VyIGNvbXBvbmVudFxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NvcnQtb3B0aW9ucycpIHNvcnRPcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICAgIEBJbnB1dCgpIHNvcnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NvcnQtZGlyJykgc29ydGRpcjogc3RyaW5nIHwgbnVsbCA9ICctJztcclxuICBAT3V0cHV0KCkgc29ydENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHNvcnRkaXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBASW5wdXQoKSB2aWV3ID0gTGlzdFZpZXdUeXBlLlRhYmxlO1xyXG5cclxuICAvLyBDT0xVTU5TXHJcbiAgcHVibGljIGNvbHVtbnM6IGFueVtdID0gW107XHJcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0Q29sdW1uQ29tcG9uZW50LCB7IHJlYWQ6IExpc3RDb2x1bW5Db21wb25lbnQgfSlcclxuICBzZXQgY29scyhyZWZzOiBRdWVyeUxpc3Q8TGlzdENvbHVtbkNvbXBvbmVudD4pIHtcclxuICAgIHRoaXMuY29sdW1ucyA9IHJlZnM/LnRvQXJyYXkoKTtcclxuICAgIGlmICh0aGlzLmNvbHVtbnMgJiYgdGhpcy5jb2x1bW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy50YWJsZVZpZXdTdXBwb3J0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tdWx0aXBsZUZ1bGxXaWR0aCA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLmZ1bGxXaWR0aCkubGVuZ3RoID4gMTtcclxuICAgIHRoaXMuZnVsbFdpZHRoVEhDbGFzcyA9IHRoaXMubXVsdGlwbGVGdWxsV2lkdGggPyAnbGlzdC12aWV3LXRoLWhhbGYnIDogJ2xpc3Qtdmlldy10aC1mdWxsJztcclxuICAgIHRoaXMuZnVsbFdpZHRoVERDbGFzcyA9IHRoaXMubXVsdGlwbGVGdWxsV2lkdGggPyAnbGlzdC12aWV3LXRkLWhhbGYnIDogJ2xpc3Qtdmlldy10ZC1mdWxsJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0aWxlc0RlY2tDbGFzcyA9ICdjYXJkcy1kZWNrLTQnO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3RpbGVzLWNvdW50JykgdGlsZXNDb3VudCA9IDQ7XHJcblxyXG4gIHB1YmxpYyB0aWxlVGVtcGxhdGU6IGFueSB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xyXG4gIEBDb250ZW50Q2hpbGQoTGlzdFRpbGVDb21wb25lbnQsIHsgcmVhZDogTGlzdFRpbGVDb21wb25lbnQgfSlcclxuICBzZXQgdGlsZXMocmVmOiBMaXN0VGlsZUNvbXBvbmVudCkge1xyXG4gICAgdGhpcy50aWxlVGVtcGxhdGUgPSByZWY7XHJcbiAgICBpZiAodGhpcy50aWxlVGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy50aWxlc1ZpZXdTdXBwb3J0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRldGFpbHNUZW1wbGF0ZTogYW55IHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XHJcbiAgQENvbnRlbnRDaGlsZChMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQsIHsgcmVhZDogTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50IH0pXHJcbiAgc2V0IGRldGFpbHMocmVmOiBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQpIHtcclxuICAgIHRoaXMuZGV0YWlsc1RlbXBsYXRlID0gcmVmO1xyXG4gICAgaWYgKHRoaXMuZGV0YWlsc1RlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMuZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xyXG4gICAgICB0aGlzLmxvYWRlckl0ZW1zLnB1c2goe30pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgdGlsZXNDb3VudENoYW5nZSA9IGNoYW5nZXNbJ3RpbGVzLWNvdW50J10gfHwgY2hhbmdlcy50aWxlc0NvdW50O1xyXG4gICAgaWYgKHRpbGVzQ291bnRDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5zZXRUaWxlc0RlY2tDbGFzcyh0aWxlc0NvdW50Q2hhbmdlLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBldmVudHNcclxuICBwdWJsaWMgZW1pdFBhZ2VDaGFuZ2VkKCRldmVudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VTaXplQ2hhbmdlZC5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1pdFNvcnRDaGFuZ2VkKCRldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNvcnRDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcbiAgcHVibGljIGVtaXRTb3J0ZGlyQ2hhbmdlZCgkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zb3J0ZGlyQ2hhbmdlZC5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlRGV0YWlscyhpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgIGl0ZW0uZGV0YWlsc0V4cGFuZGVkID0gIWl0ZW0uZGV0YWlsc0V4cGFuZGVkO1xyXG4gICAgdGhpcy5kZXRhaWxzT3BlbmVkLmVtaXQoeyBpdGVtLCBvcGVuOiBpdGVtLmRldGFpbHNFeHBhbmRlZCB9KTtcclxuICB9XHJcblxyXG4gIC8vIGhlbHBlcnNcclxuICBwcml2YXRlIHNldFRpbGVzRGVja0NsYXNzKHRpbGVzOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aWxlcyA+PSAxICYmIHRpbGVzIDw9IDQpIHtcclxuICAgICAgdGhpcy50aWxlc0RlY2tDbGFzcyA9XHJcbiAgICAgICAgdGhpcy52aWV3ICE9PSBMaXN0Vmlld1R5cGUuR2FsbGVyeVxyXG4gICAgICAgID8gYGNhcmRzLWRlY2stJHt0aWxlc31gXHJcbiAgICAgICAgOiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMFxyXG4gICAgICAgICAgPyBgZ2FsbGVyeS1kZWNrLSR7dGlsZXN9YFxyXG4gICAgICAgICAgOiAnZ2FsbGVyeS1kZWNrJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGlsZXNEZWNrQ2xhc3MgPVxyXG4gICAgICAgIHRoaXMudmlldyAhPT0gTGlzdFZpZXdUeXBlLkdhbGxlcnlcclxuICAgICAgICA/ICdjYXJkcy1kZWNrLTMnXHJcbiAgICAgICAgOiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMFxyXG4gICAgICAgICAgPyAnZ2FsbGVyeS1kZWNrLTMnXHJcbiAgICAgICAgICA6ICdnYWxsZXJ5LWRlY2snO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInB4LTJcIj5cclxuXHJcbiAgPGxpYi1wYWdlciAqbmdJZj1cInNob3dQYWdlclwiXHJcbiAgICAgICAgICAgICBbcGFnZV09XCJwYWdlXCJcclxuICAgICAgICAgICAgIFtwYWdlLXNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgICAgICAgW2NvdW50XT1cImNvdW50XCJcclxuICAgICAgICAgICAgIFtzb3J0LW9wdGlvbnNdPVwic29ydE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgW3NvcnRdPVwic29ydFwiXHJcbiAgICAgICAgICAgICBbc29ydC1kaXJdPVwic29ydGRpclwiXHJcbiAgICAgICAgICAgICBbYnVzeV09XCJidXN5XCJcclxuICAgICAgICAgICAgIChwYWdlQ2hhbmdlZCk9XCJlbWl0UGFnZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2VkKT1cImVtaXRQYWdlU2l6ZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAoc29ydENoYW5nZWQpPVwiZW1pdFNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKHNvcnRkaXJDaGFuZ2VkKT1cImVtaXRTb3J0ZGlyQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgPC9saWItcGFnZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidmlld1wiPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGlsZXMnXCI+XHJcbiAgICA8ZGl2IFtjbGFzc109XCJ0aWxlc0RlY2tDbGFzc1wiPlxyXG5cclxuICAgICAgPGxpYi1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJidXN5XCIgW2NvdW50XT1cIjVcIiBbdHlwZV09XCIndGlsZXMnXCI+PC9saWItc2tlbGV0b24tbG9hZGVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiF0aWxlVGVtcGxhdGUgfHwgIXRpbGVUZW1wbGF0ZS50ZW1wbGF0ZVwiPnRlbXBsYXRlIG1pc3NpbmcuLjwvc3Bhbj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aWxlVGVtcGxhdGUudGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICA8IS0tICpuZ1N3aXRjaENhc2U9XCInZ2FsbGVyeSdcIiAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZ2FsbGVyeSdcIj5cclxuICAgIDx1bCByb2xlPVwibGlzdFwiIFtjbGFzc109XCJ0aWxlc0RlY2tDbGFzc1wiPlxyXG5cclxuICAgICAgPGxpYi1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJidXN5XCIgW2NvdW50XT1cIjVcIiBbdHlwZV09XCIndGlsZXMnXCI+PC9saWItc2tlbGV0b24tbG9hZGVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFidXN5ICYmIGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiF0aWxlVGVtcGxhdGUgfHwgIXRpbGVUZW1wbGF0ZS50ZW1wbGF0ZVwiPnRlbXBsYXRlIG1pc3NpbmcuLjwvc3Bhbj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aWxlVGVtcGxhdGUudGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3VsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8IS0tICpuZ1N3aXRjaENhc2U9XCIndGFibGUnXCIgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LXZpZXctY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LXZpZXctY29udGFpbmVyLWlubmVyXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwibGlzdC12aWV3LXRhYmxlXCI+XHJcbiAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJsaXN0LXZpZXctdGhlYWRcIj5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGlzdC12aWV3LXRoLWRldGFpbHNcIj48L3RoPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2wuZnVsbFdpZHRoID8gZnVsbFdpZHRoVEhDbGFzcyA6ICdsaXN0LXZpZXctdGgnXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7Y29sLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5IGNsYXNzPVwibGlzdC12aWV3LXRib2R5XCIgKm5nSWY9XCJidXN5XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbG9hZGVySXRlbXM7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJsaXN0LXZpZXctdHJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsaXN0LXZpZXctdGQtZGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudCAhPT0gbnVsbCA/IGl0ZW1bZGV0YWlsc1NlY3Rpb25Qcm9wZXJ0eUNvdW50XSAhPT0gMCA6IHRydWU7IGVsc2UgaGlkZGVuRGV0YWlsc0J1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZGlzYWJsZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtY29sbGFwc2UtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IHNvbGlkL3BsdXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWQgPyBjb2xsYXBzZUljb24gOiBleHBhbmRJY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hpZGRlbkRldGFpbHNCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sLmZ1bGxXaWR0aCA/IGZ1bGxXaWR0aFREQ2xhc3MgOiAnbGlzdC12aWV3LXRkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgYW5pbWF0ZS1wdWxzZSBoLTggYmctZ3JheS0yMDAgcm91bmRlZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIFtjb2xTcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3Qtdmlldy10ZCBiZy1ncmF5LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXRhaWxzVGVtcGxhdGUudGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJsaXN0LXZpZXctdGJvZHlcIiAqbmdJZj1cIiFidXN5XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJsaXN0LXZpZXctdHJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsaXN0LXZpZXctdGQtZGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudCAhPT0gbnVsbCA/IGl0ZW1bZGV0YWlsc1NlY3Rpb25Qcm9wZXJ0eUNvdW50XSAhPT0gMCA6IHRydWU7IGVsc2UgaGlkZGVuRGV0YWlsc0J1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZURldGFpbHMoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4cGFuZC1jb2xsYXBzZS1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogc29saWQvcGx1cyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJpdGVtLmRldGFpbHNFeHBhbmRlZCA/IGNvbGxhcHNlSWNvbiA6IGV4cGFuZEljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGlkZGVuRGV0YWlsc0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsaXN0LXZpZXctdGQtZGV0YWlsc1wiPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2wuZnVsbFdpZHRoID8gZnVsbFdpZHRoVERDbGFzcyA6ICdsaXN0LXZpZXctdGQnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2wudGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIFtjb2xTcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3Qtdmlldy10ZCBiZy1ncmF5LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXRhaWxzVGVtcGxhdGUudGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFidXN5ICYmIGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRzLWRlY2stMVwiPlxyXG4gICAgICA8bGliLWxpc3Qtdmlldy1lbXB0eS1zdGF0ZT48L2xpYi1saXN0LXZpZXctZW1wdHktc3RhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiJdfQ==
@@ -1,42 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/router";
5
- export class NavLinksListComponent {
6
- constructor() {
7
- // tslint:disable-next-line:no-input-rename
8
- this.navLinkClass = 'nav-link';
9
- // tslint:disable-next-line:no-input-rename
10
- this.navLinkActiveClass = 'nav-link-active';
11
- // tslint:disable-next-line:no-input-rename
12
- this.containerClass = undefined;
13
- // tslint:disable-next-line:no-input-rename
14
- this.showIcons = false;
15
- }
16
- ngOnInit() {
17
- }
18
- }
19
- NavLinksListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavLinksListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- NavLinksListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: { links: "links", activeFragment: ["active-fragment", "activeFragment"], navLinkClass: ["link-class", "navLinkClass"], navLinkActiveClass: ["link-active-class", "navLinkActiveClass"], containerClass: ["container-class", "containerClass"], showIcons: ["show-icons", "showIcons"] }, ngImport: i0, template: "\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\n <div class=\"nav-link-list-container-inner\">\n <ng-container *ngFor=\"let link of links | async\">\n <ng-container [ngSwitch]=\"link.type\">\n <a *ngSwitchCase=\"'router'\"\n href=\"#\"\n [routerLink]=\"[link.path]\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'external'\"\n [href]=\"link.path\"\n [attr.target]=\"link.external ? '_blank' : '_self'\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'fragment'\"\n routerLink=\".\"\n [fragment]=\"link.path\"\n [class.active]=\"(activeFragment | async) === link.path\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", 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.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavLinksListComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'lib-nav-links-list', template: "\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\n <div class=\"nav-link-list-container-inner\">\n <ng-container *ngFor=\"let link of links | async\">\n <ng-container [ngSwitch]=\"link.type\">\n <a *ngSwitchCase=\"'router'\"\n href=\"#\"\n [routerLink]=\"[link.path]\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'external'\"\n [href]=\"link.path\"\n [attr.target]=\"link.external ? '_blank' : '_self'\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'fragment'\"\n routerLink=\".\"\n [fragment]=\"link.path\"\n [class.active]=\"(activeFragment | async) === link.path\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n </ng-container>\n </ng-container>\n </div>\n</div>\n" }]
24
- }], ctorParameters: function () { return []; }, propDecorators: { links: [{
25
- type: Input
26
- }], activeFragment: [{
27
- type: Input,
28
- args: ['active-fragment']
29
- }], navLinkClass: [{
30
- type: Input,
31
- args: ['link-class']
32
- }], navLinkActiveClass: [{
33
- type: Input,
34
- args: ['link-active-class']
35
- }], containerClass: [{
36
- type: Input,
37
- args: ['container-class']
38
- }], showIcons: [{
39
- type: Input,
40
- args: ['show-icons']
41
- }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWxpbmtzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL25hdi1saW5rcy1saXN0L25hdi1saW5rcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9uYXYtbGlua3MtbGlzdC9uYXYtbGlua3MtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQU96RCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDO1FBUkEsMkNBQTJDO1FBQ3RCLGlCQUFZLEdBQW9CLFVBQVUsQ0FBQztRQUNoRSwyQ0FBMkM7UUFDZix1QkFBa0IsR0FBc0IsaUJBQWlCLENBQUM7UUFDdEYsMkNBQTJDO1FBQ2pCLG1CQUFjLEdBQWtDLFNBQVMsQ0FBQztRQUNwRiwyQ0FBMkM7UUFDdEIsY0FBUyxHQUF3QixLQUFLLENBQUM7SUFDNUMsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7a0hBaEJVLHFCQUFxQjtzR0FBckIscUJBQXFCLDJWQ1JsQywreENBK0JBOzJGRHZCYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0Usb0JBQW9COzBFQUtyQixLQUFLO3NCQUFiLEtBQUs7Z0JBRW9CLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVILFlBQVk7c0JBQWhDLEtBQUs7dUJBQUMsWUFBWTtnQkFFUyxrQkFBa0I7c0JBQTdDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUVBLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVILFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5hdi1saW5rcy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdi1saW5rcy1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZMaW5rc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGxpbmtzOiBPYnNlcnZhYmxlPE5hdkxpbmtbXT4gfCB1bmRlZmluZWQ7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdhY3RpdmUtZnJhZ21lbnQnKSBhY3RpdmVGcmFnbWVudDogT2JzZXJ2YWJsZTxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbGluay1jbGFzcycpIG5hdkxpbmtDbGFzczogc3RyaW5nIHwgc3RyaW5nID0gJ25hdi1saW5rJztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2xpbmstYWN0aXZlLWNsYXNzJykgbmF2TGlua0FjdGl2ZUNsYXNzOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICduYXYtbGluay1hY3RpdmUnO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnY29udGFpbmVyLWNsYXNzJykgY29udGFpbmVyQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc2hvdy1pY29ucycpIHNob3dJY29uczogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiIsIlxuPGRpdiBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3MgPz8gJ25hdi1saW5rLWxpc3QtY29udGFpbmVyJ1wiPlxuICA8ZGl2IGNsYXNzPVwibmF2LWxpbmstbGlzdC1jb250YWluZXItaW5uZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIGxpbmtzIHwgYXN5bmNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImxpbmsudHlwZVwiPlxuICAgICAgICA8YSAqbmdTd2l0Y2hDYXNlPVwiJ3JvdXRlcidcIlxuICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbbGluay5wYXRoXVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwibmF2TGlua0FjdGl2ZUNsYXNzXCJcbiAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogbGluay5leGFjdCB9XCJcbiAgICAgICAgICBbY2xhc3NdPVwibmF2TGlua0NsYXNzXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJzaG93SWNvbnMgJiYgbGluay5pY29uXCIgW2NsYXNzXT1cImxpbmsuaWNvbiArICcgbXItMydcIj48L2k+e3sgbGluay50ZXh0IH19XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGEgKm5nU3dpdGNoQ2FzZT1cIidleHRlcm5hbCdcIlxuICAgICAgICAgIFtocmVmXT1cImxpbmsucGF0aFwiXG4gICAgICAgICAgW2F0dHIudGFyZ2V0XT1cImxpbmsuZXh0ZXJuYWwgPyAnX2JsYW5rJyA6ICdfc2VsZidcIlxuICAgICAgICAgIFtjbGFzc109XCJuYXZMaW5rQ2xhc3NcIj5cbiAgICAgICAgICA8aSAqbmdJZj1cInNob3dJY29ucyAmJiBsaW5rLmljb25cIiBbY2xhc3NdPVwibGluay5pY29uKyAnIG1yLTMnXCI+PC9pPnt7IGxpbmsudGV4dCB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxhICpuZ1N3aXRjaENhc2U9XCInZnJhZ21lbnQnXCJcbiAgICAgICAgICByb3V0ZXJMaW5rPVwiLlwiXG4gICAgICAgICAgW2ZyYWdtZW50XT1cImxpbmsucGF0aFwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIoYWN0aXZlRnJhZ21lbnQgfCBhc3luYykgPT09IGxpbmsucGF0aFwiXG4gICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwibmF2TGlua0FjdGl2ZUNsYXNzXCJcbiAgICAgICAgICBbY2xhc3NdPVwibmF2TGlua0NsYXNzXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJzaG93SWNvbnMgJiYgbGluay5pY29uXCIgW2NsYXNzXT1cImxpbmsuaWNvbisgJyBtci0zJ1wiPjwvaT57eyBsaW5rLnRleHQgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,73 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { APP_LINKS, APP_NOTIFICATIONS } from '../../tokens';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/router";
6
- import * as i3 from "../../directives/click-outside.directive";
7
- export class NotificationsIndicatorComponent {
8
- constructor(notifications, links) {
9
- this.notifications = notifications;
10
- this.links = links;
11
- this.menuExpanded = false;
12
- this.unreadCount = 0;
13
- this.items = [];
14
- this.inboxAction = undefined;
15
- this.newArrival = false;
16
- }
17
- ngOnDestroy() {
18
- if (this.notificationsSub$) {
19
- this.notificationsSub$.unsubscribe();
20
- }
21
- }
22
- ngOnInit() {
23
- this.links['notifications'].subscribe(notificationsLink => {
24
- this.allNotificationsLink = notificationsLink;
25
- });
26
- this.notificationsSub$ = this.notifications.messages.subscribe(result => {
27
- if (result.items) {
28
- this.newArrival = true;
29
- this.unreadCount = result.count;
30
- this.items = result.items;
31
- setTimeout(() => { this.newArrival = false; }, 1000);
32
- }
33
- });
34
- }
35
- doInboxAction() {
36
- if (this.notifications.inboxAction) {
37
- this.notifications.inboxAction();
38
- }
39
- else {
40
- this.menuExpanded = !this.menuExpanded;
41
- }
42
- this.unreadCount = 0;
43
- }
44
- removeItem(index) {
45
- this.items.splice(index, 1);
46
- }
47
- // this.notificationsSub$ = this.links.notifications?.pipe(map(result => {
48
- // this.allItemsLink = result.allNotifications;
49
- // this.items = result.items;
50
- // this.unreadCount = result.count;
51
- // }));
52
- // [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;
53
- // this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;
54
- // this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;
55
- // this.getUnreadNotificationsCount();
56
- // tslint:disable-next-line:typedef
57
- onClickOutside($event) {
58
- this.menuExpanded = false;
59
- }
60
- }
61
- NotificationsIndicatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NotificationsIndicatorComponent, deps: [{ token: APP_NOTIFICATIONS }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component });
62
- NotificationsIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NotificationsIndicatorComponent, selector: "lib-notifications-indicator", ngImport: i0, template: "<div class=\"relative\"\r\n(clickOutside)=\"onClickOutside($event)\">\r\n <!-- Notifications Button -->\r\n <button type=\"button\"\r\n (click)=\"doInboxAction()\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">\r\n <i class=\"ms-Icon hover:text-blue-400\"\r\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\r\n [class.text-sky-400]=\"unreadCount > 0\"\r\n [class.animate-notification]=\"newArrival\"\r\n [class.ms-Icon--Message]=\"unreadCount === 0\">\r\n </i>\r\n </span>\r\n <span\r\n *ngIf=\"unreadCount > 0\"\r\n [class.animate-pulse]=\"newArrival\"\r\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\r\n {{ unreadCount }}\r\n </span>\r\n </span>\r\n </button>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2</div>\r\n </ng-container>\r\n <ng-template #messagesDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"items; else loading\">\r\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2</div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let message of items; let i = index\">\r\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\r\n <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a\r\n [routerLink]=\"message.path\"\r\n (click)=\"removeItem(i)\"\r\n class=\"notifications-nav-link grid\"\r\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\r\n >\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ message.data.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"allNotificationsLink!.path\">\r\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i3.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NotificationsIndicatorComponent, decorators: [{
64
- type: Component,
65
- args: [{ selector: 'lib-notifications-indicator', template: "<div class=\"relative\"\r\n(clickOutside)=\"onClickOutside($event)\">\r\n <!-- Notifications Button -->\r\n <button type=\"button\"\r\n (click)=\"doInboxAction()\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">\r\n <i class=\"ms-Icon hover:text-blue-400\"\r\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\r\n [class.text-sky-400]=\"unreadCount > 0\"\r\n [class.animate-notification]=\"newArrival\"\r\n [class.ms-Icon--Message]=\"unreadCount === 0\">\r\n </i>\r\n </span>\r\n <span\r\n *ngIf=\"unreadCount > 0\"\r\n [class.animate-pulse]=\"newArrival\"\r\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\r\n {{ unreadCount }}\r\n </span>\r\n </span>\r\n </button>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2</div>\r\n </ng-container>\r\n <ng-template #messagesDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"items; else loading\">\r\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2</div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let message of items; let i = index\">\r\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\r\n <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a\r\n [routerLink]=\"message.path\"\r\n (click)=\"removeItem(i)\"\r\n class=\"notifications-nav-link grid\"\r\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\r\n >\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ message.data.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"allNotificationsLink!.path\">\r\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
66
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
67
- type: Inject,
68
- args: [APP_NOTIFICATIONS]
69
- }] }, { type: undefined, decorators: [{
70
- type: Inject,
71
- args: [APP_LINKS]
72
- }] }]; } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1pbmRpY2F0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9ub3RpZmljYXRpb25zLWluZGljYXRvci9ub3RpZmljYXRpb25zLWluZGljYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLCtCQUErQjtJQVMxQyxZQUE4QyxhQUFnQyxFQUE0QixLQUFVO1FBQXRFLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUE0QixVQUFLLEdBQUwsS0FBSyxDQUFLO1FBUDdHLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFHakIsZ0JBQVcsR0FBb0IsU0FBUyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFDOEYsQ0FBQztJQUV6SCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBeUIsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUNqRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RFLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQztnQkFDZixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLFVBQVUsQ0FBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUUsQ0FBQzthQUN4RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUN4QztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBWTtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVDLDBFQUEwRTtJQUMxRSxpREFBaUQ7SUFDakQsK0JBQStCO0lBQy9CLHFDQUFxQztJQUNyQyxPQUFPO0lBRVAsc0VBQXNFO0lBQ3RFLGdHQUFnRztJQUNoRywyR0FBMkc7SUFDM0csc0NBQXNDO0lBRXhDLG1DQUFtQztJQUM1QixjQUFjLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOzs0SEExRFUsK0JBQStCLGtCQVN0QixpQkFBaUIsYUFBbUQsU0FBUztnSEFUdEYsK0JBQStCLG1FQ1Q1Qyw2ekhBOEVBOzJGRHJFYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsNkJBQTZCOzswQkFZMUIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUE0QyxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQXBwTm90aWZpY2F0aW9ucywgTmF2TGluayB9IGZyb20gJy4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBUFBfTElOS1MsIEFQUF9OT1RJRklDQVRJT05TIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW5vdGlmaWNhdGlvbnMtaW5kaWNhdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9ucy1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zSW5kaWNhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgbWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgcHVibGljIHVucmVhZENvdW50ID0gMDtcclxuICBwdWJsaWMgaXRlbXM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGFsbE5vdGlmaWNhdGlvbnNMaW5rPzogTmF2TGluaztcclxuICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTdWIkOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBpbmJveEFjdGlvbjogYW55IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBuZXdBcnJpdmFsID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUFBfTk9USUZJQ0FUSU9OUykgcHVibGljIG5vdGlmaWNhdGlvbnM6IElBcHBOb3RpZmljYXRpb25zLCBASW5qZWN0KEFQUF9MSU5LUykgcHVibGljIGxpbmtzOiBhbnkpIHsgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbnNTdWIkKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1N1YiQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgKHRoaXMubGlua3NbJ25vdGlmaWNhdGlvbnMnXSBhcyBPYnNlcnZhYmxlPE5hdkxpbms+KS5zdWJzY3JpYmUobm90aWZpY2F0aW9uc0xpbmsgPT4ge1xyXG4gICAgICB0aGlzLmFsbE5vdGlmaWNhdGlvbnNMaW5rID0gbm90aWZpY2F0aW9uc0xpbms7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1N1YiQgPSB0aGlzLm5vdGlmaWNhdGlvbnMubWVzc2FnZXMuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQuaXRlbXMpe1xyXG4gICAgICAgIHRoaXMubmV3QXJyaXZhbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy51bnJlYWRDb3VudCA9IHJlc3VsdC5jb3VudDtcclxuICAgICAgICB0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xyXG4gICAgICAgIHNldFRpbWVvdXQoICgpID0+IHsgdGhpcy5uZXdBcnJpdmFsID0gZmFsc2U7IH0sIDEwMDAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG9JbmJveEFjdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbnMuaW5ib3hBY3Rpb24pIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zLmluYm94QWN0aW9uKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1lbnVFeHBhbmRlZCA9ICF0aGlzLm1lbnVFeHBhbmRlZDtcclxuICAgIH1cclxuICAgIHRoaXMudW5yZWFkQ291bnQgPSAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUl0ZW0oaW5kZXg6bnVtYmVyKXtcclxuICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluZGV4LDEpO1xyXG4gIH1cclxuXHJcbiAgICAvLyB0aGlzLm5vdGlmaWNhdGlvbnNTdWIkID0gdGhpcy5saW5rcy5ub3RpZmljYXRpb25zPy5waXBlKG1hcChyZXN1bHQgPT4ge1xyXG4gICAgLy8gICB0aGlzLmFsbEl0ZW1zTGluayA9IHJlc3VsdC5hbGxOb3RpZmljYXRpb25zO1xyXG4gICAgLy8gICB0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xyXG4gICAgLy8gICB0aGlzLnVucmVhZENvdW50ID0gcmVzdWx0LmNvdW50O1xyXG4gICAgLy8gfSkpO1xyXG5cclxuICAgIC8vIFt0aGlzLm5vdGlmaWNhdGlvbnNMaW5rc1BhdGhdIGFzIE9ic2VydmFibGU8Tm90aWZpY2F0aW9uTmF2TGlua1tdPjtcclxuICAgIC8vIHRoaXMuYWxsTm90aWZpY2F0aW9uc0xpbmsgPSB0aGlzLmxpbmtzW3RoaXMuYWxsTm90aWZpY2F0aW9uc0xpbmtQYXRoXSBhcyBPYnNlcnZhYmxlPE5hdkxpbms+O1xyXG4gICAgLy8gdGhpcy51bnJlYWROb3RpZmljYXRpb25zQ291bnRPYnMgPSB0aGlzLmxpbmtzW3RoaXMubm90aWZpY2F0aW9uc0NvdW50ZXJMaW5rc1BhdGhdIGFzIE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIC8vIHRoaXMuZ2V0VW5yZWFkTm90aWZpY2F0aW9uc0NvdW50KCk7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXHJcbiAgcHVibGljIG9uQ2xpY2tPdXRzaWRlKCRldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm1lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlXCJcclxuKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCI+XHJcbiAgPCEtLSBOb3RpZmljYXRpb25zIEJ1dHRvbiAtLT5cclxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImRvSW5ib3hBY3Rpb24oKVwiXHJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlZpZXcgbm90aWZpY2F0aW9uczwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci10ZXh0XCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJtcy1JY29uIGhvdmVyOnRleHQtYmx1ZS00MDBcIlxyXG4gICAgICAgICAgW2NsYXNzLm1zLUljb24tLU1lc3NhZ2VGaWxsXT1cInVucmVhZENvdW50ID4gMFwiXHJcbiAgICAgICAgICBbY2xhc3MudGV4dC1za3ktNDAwXT1cInVucmVhZENvdW50ID4gMFwiXHJcbiAgICAgICAgICBbY2xhc3MuYW5pbWF0ZS1ub3RpZmljYXRpb25dPVwibmV3QXJyaXZhbFwiXHJcbiAgICAgICAgICBbY2xhc3MubXMtSWNvbi0tTWVzc2FnZV09XCJ1bnJlYWRDb3VudCA9PT0gMFwiPlxyXG4gICAgICAgIDwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgICpuZ0lmPVwidW5yZWFkQ291bnQgPiAwXCJcclxuICAgICAgICBbY2xhc3MuYW5pbWF0ZS1wdWxzZV09XCJuZXdBcnJpdmFsXCJcclxuICAgICAgICBjbGFzcz1cImFic29sdXRlIHRvcC0wIHJpZ2h0LTAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIC1tdC0xIG1sLTEgdGV4dC14cyBsZWFkaW5nLW5vbmUgdGV4dC1ncmF5LTEwMCBvcmRpbmFsXCI+XHJcbiAgICAgICAge3sgdW5yZWFkQ291bnQgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8IS0tIE5vdGlmaWNhdGlvbnMgZHJvcGRvd24gLS0+XHJcbiAgPGRpdiAqbmdJZj1cIm1lbnVFeHBhbmRlZFwiIGNsYXNzPVwiaGVhZGVyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24td2l0aC11c2VybmFtZVwiIHJvbGU9XCJtZW51XCIgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgYXJpYS1sYWJlbGxlZGJ5PVwibWVzc2FnZXMtbWVudVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1heC1oLTY0IG92ZXJmbG93LXktYXV0byBub3RpZmljYXRpb24tbWVzc2FnZXMgbWluLWhcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtczsgZWxzZSBtZXNzYWdlc0Ryb3BEb3duXCIgY2xhc3M9XCJweS01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbmF2LWxpbmsgaG92ZXI6YmctdHJhbnNwYXJlbnRcIj7OlM61zr0gzq3Ph861z4TOtSDOvc6tzrXPgiDOtc65zrTOv8+Azr/Ouc6uz4POtc65z4I8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbWVzc2FnZXNEcm9wRG93bj5cclxuICAgICAgICA8dWwgY2xhc3M9XCJwci0xLjVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtczsgZWxzZSBsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcy5sZW5ndGggPD0gMFwiIGNsYXNzPVwicHktNVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb25zLW5hdi1saW5rIGhvdmVyOmJnLXRyYW5zcGFyZW50XCI+zpTOtc69IM6tz4fOtc+EzrUgzr3Orc61z4IgzrXOuc60zr/PgM6/zrnOrs+DzrXOuc+CPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIGl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWItMlwiIFtuZ0NsYXNzXT1cInsgJ2JvcmRlci1sLTIgYm9yZGVyLWJsdWUtNTAwIGJnLWJsdWUtNTAgaG92ZXI6YmctYmx1ZS01MCc6ICFtZXNzYWdlLmRhdGEuaXNSZWFkIH1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm1lc3NhZ2UucGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbmF2LWxpbmsgZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIhbWVzc2FnZS5kYXRhLmlzUmVhZCA/ICcgaG92ZXI6YmctYmx1ZS01MCcgOiAnYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtdGhpbiB0cmFja2luZy10aWdodGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5kYXRhLmNyZWF0aW9uRGF0ZSB8IGRhdGU6IFwiRUVFLCBkIE1NTU1cIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UuZGF0YS50ZXh0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0zMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlLXB1bHNlIHRleHQtcyB0ZXh0LWdyYXktNjAwXCI+TG9hZGluZy4uLjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInAtMSByb3VuZGVkLXNtXCI+XHJcbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImFsbE5vdGlmaWNhdGlvbnNMaW5rIS5wYXRoXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJoZWFkZXItbm90aWZpY2F0aW9ucy1kcm9wZG93bi12aWV3LWFsbC1idXR0b25cIj57e2FsbE5vdGlmaWNhdGlvbnNMaW5rIS50ZXh0fX08L2J1dHRvbj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,130 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { Icons } from '../../icons';
3
- import { MenuOption } from '../../types';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/router";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "../drop-down-menu/drop-down-menu.component";
8
- export class PagerComponent {
9
- constructor(router) {
10
- this.router = router;
11
- // BUSY STATE
12
- this.busy = false;
13
- // PAGING
14
- this.count = null;
15
- this.page = 1;
16
- // tslint:disable-next-line:no-input-rename
17
- this.pageSize = 20;
18
- // tslint:disable-next-line:no-input-rename
19
- this.pageSizeOptions = [
20
- new MenuOption('10', 10),
21
- new MenuOption('20', 20),
22
- new MenuOption('30', 30),
23
- new MenuOption('50', 50),
24
- new MenuOption('100', 100)
25
- ];
26
- this.pages = [];
27
- this.pageChanged = new EventEmitter();
28
- this.pageSizeChanged = new EventEmitter();
29
- this.canPreviousPage = false;
30
- this.canNextPage = false;
31
- // SORTING
32
- // tslint:disable-next-line:no-input-rename
33
- this.sortOptions = [];
34
- // tslint:disable-next-line:no-input-rename
35
- this.sort = null;
36
- // tslint:disable-next-line:no-input-rename
37
- this.sortdir = 'desc';
38
- this.sortChanged = new EventEmitter();
39
- this.sortdirChanged = new EventEmitter();
40
- this.sortdirIcon = Icons.SortDesc;
41
- }
42
- ngOnChanges(changes) {
43
- this.calcPages();
44
- }
45
- ngOnInit() {
46
- }
47
- calcPages() {
48
- this.pages = [];
49
- if (this.count && this.count > 0) {
50
- const pageCount = this.count / this.pageSize;
51
- for (let i = 0; i < pageCount; i++) {
52
- this.pages.push(new MenuOption(i + 1 + '', i + 1));
53
- }
54
- }
55
- this.canPreviousPage = this.page > 1;
56
- this.canNextPage = this.page < this.pages.length;
57
- }
58
- nextPage() {
59
- const next = this.page + 1;
60
- this.gotoPage(next);
61
- }
62
- previousPage() {
63
- const previous = this.page - 1;
64
- this.gotoPage(previous);
65
- }
66
- gotoPage(page) {
67
- this.page = page;
68
- this.pageChanged.emit(page);
69
- this.calcPages();
70
- }
71
- pageSizeOptionChanged(pageSize) {
72
- this.pageSizeChanged.emit(pageSize);
73
- this.calcPages();
74
- }
75
- pageOptionChanged(page) {
76
- this.pageChanged.emit(page);
77
- this.calcPages();
78
- }
79
- sortOptionChanged(sort) {
80
- this.sortChanged.emit(sort);
81
- }
82
- toggleSortdir() {
83
- let sortdir = 'desc';
84
- if (this.sortdir === 'desc') {
85
- sortdir = 'asc';
86
- this.sortdirIcon = Icons.SortAsc;
87
- }
88
- else {
89
- sortdir = 'desc';
90
- this.sortdirIcon = Icons.SortDesc;
91
- }
92
- this.sortdirChanged.emit(sortdir);
93
- }
94
- }
95
- PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: PagerComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
96
- PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: PagerComponent, selector: "lib-pager", inputs: { busy: "busy", count: "count", page: "page", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], sortOptions: ["sort-options", "sortOptions"], sort: "sort", sortdir: ["sort-dir", "sortdir"] }, outputs: { pageChanged: "pageChanged", pageSizeChanged: "pageSizeChanged", sortChanged: "sortChanged", sortdirChanged: "sortdirChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pager-container\">\r\n <div class=\"pager-container-inner\">\r\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\r\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\r\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\r\n <span class=\"sr-only\">sort direction</span>\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"sortdirIcon\"></i>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"pager-pages-container\">\r\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\r\n <div class=\"mx-2\" *ngIf=\"count !== null && count > pageSize\">\r\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\r\n class=\"pager-arrow-button-left\">\r\n <span class=\"sr-only\">Previous</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\r\n class=\"pager-arrow-button-right\">\r\n <span class=\"sr-only\">Next</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-drop-down-menu *ngIf=\"(pages && pages.length > 0) && (count !== null && count > pageSize)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: ["options", "selected", "multiple", "placeholder"], outputs: ["selectedChange", "selectedChanged"] }] });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: PagerComponent, decorators: [{
98
- type: Component,
99
- args: [{ selector: 'lib-pager', template: "<div class=\"pager-container\">\r\n <div class=\"pager-container-inner\">\r\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\r\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\r\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\r\n <span class=\"sr-only\">sort direction</span>\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"sortdirIcon\"></i>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"pager-pages-container\">\r\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\r\n <div class=\"mx-2\" *ngIf=\"count !== null && count > pageSize\">\r\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\r\n class=\"pager-arrow-button-left\">\r\n <span class=\"sr-only\">Previous</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\r\n class=\"pager-arrow-button-right\">\r\n <span class=\"sr-only\">Next</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-drop-down-menu *ngIf=\"(pages && pages.length > 0) && (count !== null && count > pageSize)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
100
- }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { busy: [{
101
- type: Input
102
- }], count: [{
103
- type: Input
104
- }], page: [{
105
- type: Input
106
- }], pageSize: [{
107
- type: Input,
108
- args: ['page-size']
109
- }], pageSizeOptions: [{
110
- type: Input,
111
- args: ['page-size-options']
112
- }], pageChanged: [{
113
- type: Output
114
- }], pageSizeChanged: [{
115
- type: Output
116
- }], sortOptions: [{
117
- type: Input,
118
- args: ['sort-options']
119
- }], sort: [{
120
- type: Input,
121
- args: ['sort']
122
- }], sortdir: [{
123
- type: Input,
124
- args: ['sort-dir']
125
- }], sortChanged: [{
126
- type: Output
127
- }], sortdirChanged: [{
128
- type: Output
129
- }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL3BhZ2VyL3BhZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9wYWdlci9wYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQU16QyxNQUFNLE9BQU8sY0FBYztJQWlDekIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoQ2xDLGFBQWE7UUFDSixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFNBQVM7UUFDQSxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLDJDQUEyQztRQUN2QixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLDJDQUEyQztRQUNmLG9CQUFlLEdBQWlCO1lBQzFELElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4QixJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztTQUMzQixDQUFDO1FBQ0ssVUFBSyxHQUFpQixFQUFFLENBQUM7UUFD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LE9BQU8sQ0FBQztTQUNsQzthQUFNO1lBQ0wsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOzsyR0E5RlUsY0FBYzsrRkFBZCxjQUFjLHVjQ1QzQixvdUVBaUNBOzJGRHhCYSxjQUFjO2tCQUoxQixTQUFTOytCQUNFLFdBQVc7NkZBS1osSUFBSTtzQkFBWixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRWMsUUFBUTtzQkFBM0IsS0FBSzt1QkFBQyxXQUFXO2dCQUVVLGVBQWU7c0JBQTFDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVFoQixXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBTWdCLFdBQVc7c0JBQWpDLEtBQUs7dUJBQUMsY0FBYztnQkFFTixJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBRU0sT0FBTztzQkFBekIsS0FBSzt1QkFBQyxVQUFVO2dCQUNQLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uL2ljb25zJztcclxuaW1wb3J0IHsgTWVudU9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXBhZ2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZXIuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAvLyBCVVNZIFNUQVRFXHJcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xyXG4gIC8vIFBBR0lOR1xyXG4gIEBJbnB1dCgpIGNvdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBwYWdlID0gMTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdwYWdlLXNpemUnKSBwYWdlU2l6ZSA9IDIwO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3BhZ2Utc2l6ZS1vcHRpb25zJykgcGFnZVNpemVPcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXHJcbiAgICBuZXcgTWVudU9wdGlvbignMTAnLCAxMCksXHJcbiAgICBuZXcgTWVudU9wdGlvbignMjAnLCAyMCksXHJcbiAgICBuZXcgTWVudU9wdGlvbignMzAnLCAzMCksXHJcbiAgICBuZXcgTWVudU9wdGlvbignNTAnLCA1MCksXHJcbiAgICBuZXcgTWVudU9wdGlvbignMTAwJywgMTAwKVxyXG4gIF07XHJcbiAgcHVibGljIHBhZ2VzOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBwdWJsaWMgY2FuUHJldmlvdXNQYWdlID0gZmFsc2U7XHJcbiAgcHVibGljIGNhbk5leHRQYWdlID0gZmFsc2U7XHJcblxyXG4gIC8vIFNPUlRJTkdcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzb3J0LW9wdGlvbnMnKSBzb3J0T3B0aW9uczogTWVudU9wdGlvbltdID0gW107XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc29ydCcpIHNvcnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NvcnQtZGlyJykgc29ydGRpcjogc3RyaW5nIHwgbnVsbCA9ICdkZXNjJztcclxuICBAT3V0cHV0KCkgc29ydENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHNvcnRkaXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIHB1YmxpYyBzb3J0ZGlySWNvbiA9IEljb25zLlNvcnREZXNjO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxjUGFnZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjUGFnZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VzID0gW107XHJcbiAgICBpZiAodGhpcy5jb3VudCAmJiB0aGlzLmNvdW50ID4gMCkge1xyXG4gICAgICBjb25zdCBwYWdlQ291bnQgPSB0aGlzLmNvdW50IC8gdGhpcy5wYWdlU2l6ZTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYWdlQ291bnQ7IGkrKykge1xyXG4gICAgICAgIHRoaXMucGFnZXMucHVzaChuZXcgTWVudU9wdGlvbihpICsgMSArICcnLCBpICsgMSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhblByZXZpb3VzUGFnZSA9IHRoaXMucGFnZSA+IDE7XHJcbiAgICB0aGlzLmNhbk5leHRQYWdlID0gdGhpcy5wYWdlIDwgdGhpcy5wYWdlcy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmV4dFBhZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5wYWdlICsgMTtcclxuICAgIHRoaXMuZ290b1BhZ2UobmV4dCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJldmlvdXNQYWdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnBhZ2UgLSAxO1xyXG4gICAgdGhpcy5nb3RvUGFnZShwcmV2aW91cyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ290b1BhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2UgPSBwYWdlO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KHBhZ2UpO1xyXG4gICAgdGhpcy5jYWxjUGFnZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbkNoYW5nZWQocGFnZVNpemU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdlU2l6ZUNoYW5nZWQuZW1pdChwYWdlU2l6ZSk7XHJcbiAgICB0aGlzLmNhbGNQYWdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBhZ2VPcHRpb25DaGFuZ2VkKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KHBhZ2UpO1xyXG4gICAgdGhpcy5jYWxjUGFnZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzb3J0T3B0aW9uQ2hhbmdlZChzb3J0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdChzb3J0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVTb3J0ZGlyKCk6IHZvaWQge1xyXG4gICAgbGV0IHNvcnRkaXIgPSAnZGVzYyc7XHJcbiAgICBpZiAodGhpcy5zb3J0ZGlyID09PSAnZGVzYycpIHtcclxuICAgICAgc29ydGRpciA9ICdhc2MnO1xyXG4gICAgICB0aGlzLnNvcnRkaXJJY29uID0gSWNvbnMuU29ydEFzYztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNvcnRkaXIgPSAnZGVzYyc7XHJcbiAgICAgIHRoaXMuc29ydGRpckljb24gPSBJY29ucy5Tb3J0RGVzYztcclxuICAgIH1cclxuICAgIHRoaXMuc29ydGRpckNoYW5nZWQuZW1pdChzb3J0ZGlyKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwYWdlci1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwicGFnZXItY29udGFpbmVyLWlubmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXhcIiAqbmdJZj1cInNvcnRPcHRpb25zICYmIHNvcnRPcHRpb25zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgPGxpYi1kcm9wLWRvd24tbWVudSBbb3B0aW9uc109XCJzb3J0T3B0aW9uc1wiIFtzZWxlY3RlZF09XCJzb3J0XCIgKHNlbGVjdGVkQ2hhbmdlZCk9XCJzb3J0T3B0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+PC9saWItZHJvcC1kb3duLW1lbnU+XHJcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVNvcnRkaXIoKVwiIFtkaXNhYmxlZF09XCIhc29ydCB8fCBidXN5XCIgY2xhc3M9XCJwYWdlci1pY29uLWJ1dHRvblwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnNvcnQgZGlyZWN0aW9uPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW5saW5lLWJsb2NrIHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICA8aSBbY2xhc3NdPVwic29ydGRpckljb25cIj48L2k+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VyLXBhZ2VzLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bGliLWRyb3AtZG93bi1tZW51IFtvcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiIFtzZWxlY3RlZF09XCJwYWdlU2l6ZVwiIChzZWxlY3RlZENoYW5nZWQpPVwicGFnZVNpemVPcHRpb25DaGFuZ2VkKCRldmVudClcIj48L2xpYi1kcm9wLWRvd24tbWVudT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAgKm5nSWY9XCJjb3VudCAhPT0gbnVsbCAmJiBjb3VudCA+IHBhZ2VTaXplXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWNhblByZXZpb3VzUGFnZSB8fCBidXN5XCIgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBhZ2VyLWFycm93LWJ1dHRvbi1sZWZ0XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5QcmV2aW91czwvc3Bhbj5cclxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJoLTUgdy01XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyLjcwNyA1LjI5M2ExIDEgMCAwMTAgMS40MTRMOS40MTQgMTBsMy4yOTMgMy4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQtNGExIDEgMCAwMTAtMS40MTRsNC00YTEgMSAwIDAxMS40MTQgMHpcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFjYW5OZXh0UGFnZSB8fCBidXN5XCIgIChjbGljayk9XCJuZXh0UGFnZSgpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicGFnZXItYXJyb3ctYnV0dG9uLXJpZ2h0XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5OZXh0PC9zcGFuPlxyXG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImgtNSB3LTVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4yOTMgMTQuNzA3YTEgMSAwIDAxMC0xLjQxNEwxMC41ODYgMTAgNy4yOTMgNi43MDdhMSAxIDAgMDExLjQxNC0xLjQxNGw0IDRhMSAxIDAgMDEwIDEuNDE0bC00IDRhMSAxIDAgMDEtMS40MTQgMHpcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGxpYi1kcm9wLWRvd24tbWVudSAqbmdJZj1cIihwYWdlcyAmJiBwYWdlcy5sZW5ndGggPiAwKSAmJiAoY291bnQgIT09IG51bGwgJiYgY291bnQgPiBwYWdlU2l6ZSlcIiBbb3B0aW9uc109XCJwYWdlc1wiIFtzZWxlY3RlZF09XCJwYWdlXCIgKHNlbGVjdGVkQ2hhbmdlZCk9XCJwYWdlT3B0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+PC9saWItZHJvcC1kb3duLW1lbnU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==