@indice/ng-components 0.2.160-beta.4 → 0.2.160-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/_styles.css +5 -1
  2. package/{esm2015/indice-ng-components.js → esm2020/indice-ng-components.mjs} +0 -0
  3. package/{esm2015/lib/controls/avatar-initials/avatar-initials.component.js → esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs} +5 -8
  4. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
  5. package/{esm2015/lib/controls/combobox/combobox.component.js → esm2020/lib/controls/combobox/combobox.component.mjs} +7 -10
  6. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +292 -0
  7. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +68 -0
  8. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +36 -0
  9. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +31 -0
  10. package/{esm2015/lib/controls/list-view/list-column.component.js → esm2020/lib/controls/list-view/list-column.component.mjs} +4 -4
  11. package/{esm2015/lib/controls/list-view/list-details-section.component.js → esm2020/lib/controls/list-view/list-details-section.component.mjs} +4 -4
  12. package/{esm2015/lib/controls/list-view/list-tile.component.js → esm2020/lib/controls/list-view/list-tile.component.mjs} +4 -4
  13. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
  14. package/esm2020/lib/controls/list-view/list-view.component.mjs +192 -0
  15. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +46 -0
  16. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +77 -0
  17. package/esm2020/lib/controls/pager/pager.component.mjs +130 -0
  18. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +72 -0
  19. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +25 -0
  20. package/{esm2015/lib/controls/stepper/lib-step-info.directive.js → esm2020/lib/controls/stepper/lib-step-info.directive.mjs} +4 -4
  21. package/{esm2015/lib/controls/stepper/lib-step-label.directive.js → esm2020/lib/controls/stepper/lib-step-label.directive.mjs} +4 -4
  22. package/esm2020/lib/controls/stepper/lib-step.component.mjs +81 -0
  23. package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +108 -0
  24. package/{esm2015/lib/controls/stepper/types/step-selected-event.js → esm2020/lib/controls/stepper/types/step-selected-event.mjs} +0 -0
  25. package/{esm2015/lib/controls/stepper/types/stepper-type.js → esm2020/lib/controls/stepper/types/stepper-type.mjs} +0 -0
  26. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +59 -0
  27. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +57 -0
  28. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +28 -0
  29. package/esm2020/lib/controls/toaster/toaster.component.mjs +31 -0
  30. package/esm2020/lib/controls/toggle/toggle.component.mjs +64 -0
  31. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
  32. package/{esm2015/lib/directives/click-outside.directive.js → esm2020/lib/directives/click-outside.directive.mjs} +4 -4
  33. package/{esm2015/lib/directives/dynamic-component-host.directive.js → esm2020/lib/directives/dynamic-component-host.directive.mjs} +4 -4
  34. package/esm2020/lib/helpers/base-list.component.mjs +182 -0
  35. package/{esm2015/lib/icons.js → esm2020/lib/icons.mjs} +0 -0
  36. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
  37. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +130 -0
  38. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +101 -0
  39. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +47 -0
  40. package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -0
  41. package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +25 -0
  42. package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +21 -0
  43. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +80 -0
  44. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +49 -0
  45. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +98 -0
  46. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
  47. package/{esm2015/lib/ng-components.module.js → esm2020/lib/ng-components.module.mjs} +7 -9
  48. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
  49. package/{esm2015/lib/pages/auth/auth-renew/auth-renew.component.js → esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs} +4 -4
  50. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
  51. package/esm2020/lib/pages/http-status/error/error.component.mjs +17 -0
  52. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
  53. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
  54. package/{esm2015/lib/pipes/address.pipe.js → esm2020/lib/pipes/address.pipe.mjs} +4 -4
  55. package/{esm2015/lib/pipes/duration-format.pipe.js → esm2020/lib/pipes/duration-format.pipe.mjs} +4 -4
  56. package/{esm2015/lib/services/component-loader/component-loader-options.class.js → esm2020/lib/services/component-loader/component-loader-options.class.mjs} +0 -0
  57. package/esm2020/lib/services/component-loader/component-loader.class.mjs +188 -0
  58. package/{esm2015/lib/services/component-loader/component-loader.factory.js → esm2020/lib/services/component-loader/component-loader.factory.mjs} +4 -4
  59. package/{esm2015/lib/services/component-loader/content-ref.class.js → esm2020/lib/services/component-loader/content-ref.class.mjs} +0 -0
  60. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
  61. package/esm2020/lib/services/modal-service/modal-container-component.mjs +126 -0
  62. package/{esm2015/lib/services/modal-service/modal-options.class.js → esm2020/lib/services/modal-service/modal-options.class.mjs} +4 -4
  63. package/esm2020/lib/services/modal-service/modal-service.mjs +219 -0
  64. package/{esm2015/lib/services/modal-service/modal-styles.class.js → esm2020/lib/services/modal-service/modal-styles.class.mjs} +0 -0
  65. package/{esm2015/lib/services/modal-service/modal.class.js → esm2020/lib/services/modal-service/modal.class.mjs} +4 -4
  66. package/{esm2015/lib/services/toaster.service.js → esm2020/lib/services/toaster.service.mjs} +4 -4
  67. package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
  68. package/{esm2015/lib/types.js → esm2020/lib/types.mjs} +0 -0
  69. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  70. package/fesm2015/indice-ng-components.mjs +4006 -0
  71. package/fesm2015/indice-ng-components.mjs.map +1 -0
  72. package/fesm2020/indice-ng-components.mjs +3935 -0
  73. package/fesm2020/indice-ng-components.mjs.map +1 -0
  74. package/{indice-ng-components.d.ts → index.d.ts} +0 -0
  75. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +1 -1
  76. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +1 -1
  77. package/lib/controls/combobox/combobox.component.d.ts +1 -1
  78. package/lib/controls/date-picker/date-picker.component.d.ts +1 -1
  79. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +1 -1
  80. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +1 -1
  81. package/lib/controls/language-selection/language-selection.component.d.ts +1 -1
  82. package/lib/controls/list-view/list-column.component.d.ts +1 -1
  83. package/lib/controls/list-view/list-details-section.component.d.ts +1 -1
  84. package/lib/controls/list-view/list-tile.component.d.ts +1 -1
  85. package/lib/controls/list-view/list-view-empty-state.component.d.ts +1 -1
  86. package/lib/controls/list-view/list-view.component.d.ts +1 -1
  87. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +6 -3
  88. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +1 -1
  89. package/lib/controls/pager/pager.component.d.ts +1 -1
  90. package/lib/controls/side-pane/side-pane.component.d.ts +1 -1
  91. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  92. package/lib/controls/stepper/lib-step-info.directive.d.ts +1 -1
  93. package/lib/controls/stepper/lib-step-label.directive.d.ts +1 -1
  94. package/lib/controls/stepper/lib-step.component.d.ts +1 -1
  95. package/lib/controls/stepper/lib-stepper.component.d.ts +1 -1
  96. package/lib/controls/tabs/lib-tab-group.component.d.ts +1 -1
  97. package/lib/controls/tabs/lib-tab.component.d.ts +1 -1
  98. package/lib/controls/toaster/toaster-container.component.d.ts +1 -1
  99. package/lib/controls/toaster/toaster.component.d.ts +1 -1
  100. package/lib/controls/toggle/toggle.component.d.ts +1 -1
  101. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  102. package/lib/directives/click-outside.directive.d.ts +1 -1
  103. package/lib/directives/dynamic-component-host.directive.d.ts +1 -1
  104. package/lib/helpers/base-list.component.d.ts +1 -1
  105. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +1 -1
  106. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -1
  107. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +1 -1
  108. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +1 -1
  109. package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +1 -1
  110. package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +1 -1
  111. package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +1 -1
  112. package/lib/layouts/views/form-layout/form-layout.component.d.ts +1 -1
  113. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +1 -1
  114. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +1 -1
  115. package/lib/layouts/views/view-layout/view-layout.component.d.ts +1 -1
  116. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +1 -1
  117. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +1 -1
  118. package/lib/pages/auth/logged-out/logged-out.component.d.ts +1 -1
  119. package/lib/pages/http-status/error/error.component.d.ts +1 -1
  120. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +1 -1
  121. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +1 -1
  122. package/lib/pipes/address.pipe.d.ts +1 -1
  123. package/lib/pipes/duration-format.pipe.d.ts +1 -1
  124. package/lib/services/modal-service/modal-backdrop-component.d.ts +1 -1
  125. package/lib/services/modal-service/modal-container-component.d.ts +1 -1
  126. package/package.json +21 -8
  127. package/bundles/indice-ng-components.umd.js +0 -4727
  128. package/bundles/indice-ng-components.umd.js.map +0 -1
  129. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -23
  130. package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -301
  131. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +0 -72
  132. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +0 -39
  133. package/esm2015/lib/controls/language-selection/language-selection.component.js +0 -35
  134. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +0 -32
  135. package/esm2015/lib/controls/list-view/list-view.component.js +0 -195
  136. package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +0 -45
  137. package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +0 -82
  138. package/esm2015/lib/controls/pager/pager.component.js +0 -133
  139. package/esm2015/lib/controls/side-pane/side-pane.component.js +0 -76
  140. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +0 -29
  141. package/esm2015/lib/controls/stepper/lib-step.component.js +0 -82
  142. package/esm2015/lib/controls/stepper/lib-stepper.component.js +0 -115
  143. package/esm2015/lib/controls/tabs/lib-tab-group.component.js +0 -66
  144. package/esm2015/lib/controls/tabs/lib-tab.component.js +0 -58
  145. package/esm2015/lib/controls/toaster/toaster-container.component.js +0 -31
  146. package/esm2015/lib/controls/toaster/toaster.component.js +0 -34
  147. package/esm2015/lib/controls/toggle/toggle.component.js +0 -68
  148. package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +0 -75
  149. package/esm2015/lib/helpers/base-list.component.js +0 -183
  150. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +0 -22
  151. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +0 -135
  152. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -106
  153. package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +0 -50
  154. package/esm2015/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.js +0 -48
  155. package/esm2015/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.js +0 -28
  156. package/esm2015/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.js +0 -24
  157. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +0 -85
  158. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +0 -53
  159. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +0 -101
  160. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +0 -110
  161. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +0 -34
  162. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +0 -32
  163. package/esm2015/lib/pages/http-status/error/error.component.js +0 -20
  164. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +0 -18
  165. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +0 -17
  166. package/esm2015/lib/services/component-loader/component-loader.class.js +0 -192
  167. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +0 -44
  168. package/esm2015/lib/services/modal-service/modal-container-component.js +0 -128
  169. package/esm2015/lib/services/modal-service/modal-service.js +0 -220
  170. package/fesm2015/indice-ng-components.js +0 -4085
  171. package/fesm2015/indice-ng-components.js.map +0 -1
@@ -0,0 +1,68 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../directives/click-outside.directive";
5
+ export class DropDownMenuComponent {
6
+ constructor() {
7
+ this.options = [];
8
+ // tslint:disable-next-line:no-input-rename
9
+ this.selectedValue = null;
10
+ this.multiple = false;
11
+ this.placeholder = 'Παρακαλώ επιλέξτε...';
12
+ this.selectedOption$ = null;
13
+ this.selectedChange = new EventEmitter();
14
+ this.selectedChanged = new EventEmitter();
15
+ this.expanded$ = false;
16
+ }
17
+ get selectedOption() {
18
+ return this.selectedOption$;
19
+ }
20
+ set selectedOption(option) {
21
+ this.selectedOption$ = option;
22
+ this.selectedValue = option ? option.value : null;
23
+ this.expanded = false;
24
+ }
25
+ get expanded() {
26
+ return this.expanded$;
27
+ }
28
+ set expanded(value) {
29
+ this.expanded$ = value;
30
+ }
31
+ ngOnChanges(changes) {
32
+ if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {
33
+ this.selectedOption$ = this.options.filter((o) => o.value === this.selectedValue)[0];
34
+ }
35
+ }
36
+ ngOnInit() { }
37
+ isSelected(option) {
38
+ return option != null && this.selectedValue != null && option.value === this.selectedValue;
39
+ }
40
+ onClickOutside($event) {
41
+ this.expanded = false;
42
+ }
43
+ selectOption(option) {
44
+ this.selectedOption = option;
45
+ this.selectedChange.emit(option.value);
46
+ this.selectedChanged.emit(option.value);
47
+ }
48
+ }
49
+ DropDownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DropDownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
+ DropDownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: { options: "options", selectedValue: ["selected", "selectedValue"], multiple: "multiple", placeholder: "placeholder" }, outputs: { selectedChange: "selectedChange", selectedChanged: "selectedChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\"\r\n >\r\n <span class=\"dropdown-selected-text\">\r\n {{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n {{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\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: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DropDownMenuComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'lib-drop-down-menu', template: "<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\"\r\n >\r\n <span class=\"dropdown-selected-text\">\r\n {{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n {{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n" }]
54
+ }], ctorParameters: function () { return []; }, propDecorators: { options: [{
55
+ type: Input
56
+ }], selectedValue: [{
57
+ type: Input,
58
+ args: ['selected']
59
+ }], multiple: [{
60
+ type: Input
61
+ }], placeholder: [{
62
+ type: Input
63
+ }], selectedChange: [{
64
+ type: Output
65
+ }], selectedChanged: [{
66
+ type: Output
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2Ryb3AtZG93bi1tZW51L2Ryb3AtZG93bi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7QUFRekcsTUFBTSxPQUFPLHFCQUFxQjtJQTJCaEM7UUExQlMsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3hCLGtCQUFhLEdBQWUsSUFBSSxDQUFDO1FBQzNDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBVyxzQkFBc0IsQ0FBQztRQUU5QyxvQkFBZSxHQUFzQixJQUFJLENBQUM7UUFVeEMsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM1RCxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRS9ELGNBQVMsR0FBRyxLQUFLLENBQUM7SUFPWCxDQUFDO0lBbkJoQixJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFXLGNBQWMsQ0FBQyxNQUF5QjtRQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFNRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFHRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUM5RyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RjtJQUNILENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVaLFVBQVUsQ0FBQyxNQUFrQjtRQUNsQyxPQUFPLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzdGLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWtCO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7a0hBakRVLHFCQUFxQjtzR0FBckIscUJBQXFCLGtTQ1JsQyxrNUVBNkRBOzJGRHJEYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBRUUsb0JBQW9COzBFQUlyQixPQUFPO3NCQUFmLEtBQUs7Z0JBRWEsYUFBYTtzQkFBL0IsS0FBSzt1QkFBQyxVQUFVO2dCQUNSLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFZSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudU9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2xpYi1kcm9wLWRvd24tbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3AtZG93bi1tZW51LmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3BEb3duTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBvcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzZWxlY3RlZCcpIHNlbGVjdGVkVmFsdWU6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICfOoM6xz4HOsc66zrHOu8+OIM61z4DOuc67zq3Ovs+EzrUuLi4nO1xyXG5cclxuICBwcml2YXRlIHNlbGVjdGVkT3B0aW9uJDogTWVudU9wdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRPcHRpb24oKTogTWVudU9wdGlvbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24kO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkT3B0aW9uKG9wdGlvbjogTWVudU9wdGlvbiB8IG51bGwpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24kID0gb3B0aW9uO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gb3B0aW9uID8gb3B0aW9uLnZhbHVlIDogbnVsbDtcclxuICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIGV4cGFuZGVkJCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5leHBhbmRlZCQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZXhwYW5kZWQkID0gdmFsdWU7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkVmFsdWUgIT09IG51bGwgJiYgdGhpcy5zZWxlY3RlZFZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiQgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvKSA9PiBvLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkVmFsdWUpWzBdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICBwdWJsaWMgaXNTZWxlY3RlZChvcHRpb246IE1lbnVPcHRpb24pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBvcHRpb24gIT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkVmFsdWUgIT0gbnVsbCAmJiBvcHRpb24udmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrT3V0c2lkZSgkZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb246IE1lbnVPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQob3B0aW9uLnZhbHVlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2VkLmVtaXQob3B0aW9uLnZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRhaW5lclwiIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoJGV2ZW50KVwiPlxyXG4gIDxidXR0b25cclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgKGNsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkXCJcclxuICAgIGNsYXNzPVwiZHJvcGRvd24tYnV0dG9uXCJcclxuICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcclxuICAgIGFyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJcclxuICAgIGFyaWEtbGFiZWxsZWRieT1cImxpc3Rib3gtbGFiZWxcIlxyXG4gID5cclxuICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tc2VsZWN0ZWQtdGV4dFwiPlxyXG4gICAgICB7eyBzZWxlY3RlZE9wdGlvbj8udGV4dCB8fCBwbGFjZWhvbGRlciB9fVxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1idXR0b24taWNvblwiPlxyXG4gICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IHNvbGlkL3NlbGVjdG9yIC0tPlxyXG4gICAgICA8c3ZnIGNsYXNzPVwiZHJvcGRvd24tYXJyb3dcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICBkPVwiTTEwIDNhMSAxIDAgMDEuNzA3LjI5M2wzIDNhMSAxIDAgMDEtMS40MTQgMS40MTRMMTAgNS40MTQgNy43MDcgNy43MDdhMSAxIDAgMDEtMS40MTQtMS40MTRsMy0zQTEgMSAwIDAxMTAgM3ptLTMuNzA3IDkuMjkzYTEgMSAwIDAxMS40MTQgMEwxMCAxNC41ODZsMi4yOTMtMi4yOTNhMSAxIDAgMDExLjQxNCAxLjQxNGwtMyAzYTEgMSAwIDAxLTEuNDE0IDBsLTMtM2ExIDEgMCAwMTAtMS40MTR6XCJcclxuICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDx1bFxyXG4gICAgKm5nSWY9XCJleHBhbmRlZCAmJiBvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoID4gMFwiXHJcbiAgICBjbGFzcz1cImRyb3Bkb3duLXVsXCJcclxuICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgcm9sZT1cImxpc3Rib3hcIlxyXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwibGlzdGJveC1sYWJlbFwiXHJcbiAgICBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9XCJsaXN0Ym94LW9wdGlvbi0zXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiPlxyXG4gICAgICA8bGlcclxuICAgICAgICBbY2xhc3NdPVwiaXNTZWxlY3RlZChvcHRpb24pID8gJ2Ryb3Bkb3duLWxpLXNlbGVjdGVkJyA6ICdkcm9wZG93bi1saSdcIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RPcHRpb24ob3B0aW9uKVwiXHJcbiAgICAgICAgaWQ9XCJsaXN0Ym94LW9wdGlvbi0wXCJcclxuICAgICAgICByb2xlPVwib3B0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIFtjbGFzc109XCJpc1NlbGVjdGVkKG9wdGlvbikgPyAnZHJvcGRvd24tbGktc2VsZWN0ZWQtdGV4dCcgOiAnZHJvcGRvd24tbGktdGV4dCdcIj5cclxuICAgICAgICAgIHt7IG9wdGlvbi50ZXh0IH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXNTZWxlY3RlZChvcHRpb24pXCIgY2xhc3M9XCJkcm9wZG93bi1saS1zZWxlY3RlZC1pbmRpY2F0b3ItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IHNvbGlkL2NoZWNrIC0tPlxyXG4gICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWxpLXNlbGVjdGVkLWluZGljYXRvclwiXHJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgZD1cIk0xNi43MDcgNS4yOTNhMSAxIDAgMDEwIDEuNDE0bC04IDhhMSAxIDAgMDEtMS40MTQgMGwtNC00YTEgMSAwIDAxMS40MTQtMS40MTRMOCAxMi41ODZsNy4yOTMtNy4yOTNhMSAxIDAgMDExLjQxNCAwelwiXHJcbiAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L3VsPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,36 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class KpiTileComponent {
5
+ constructor() {
6
+ this.title = undefined;
7
+ this.busy = false;
8
+ this.kpi = undefined;
9
+ // tslint:disable-next-line:no-output-rename
10
+ this.tileAction = new EventEmitter();
11
+ }
12
+ ngOnInit() {
13
+ }
14
+ emitTileAction($event) {
15
+ $event.preventDefault();
16
+ $event.stopPropagation();
17
+ this.tileAction.emit($event);
18
+ return false;
19
+ }
20
+ }
21
+ KpiTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: KpiTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ KpiTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: KpiTileComponent, selector: "lib-kpi-tile", inputs: { title: "title", busy: "busy", kpi: "kpi" }, outputs: { tileAction: "tile-action" }, ngImport: i0, template: "<div class=\"card\"\r\n [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: KpiTileComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'lib-kpi-tile', template: "<div class=\"card\"\r\n [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
26
+ }], ctorParameters: function () { return []; }, propDecorators: { title: [{
27
+ type: Input
28
+ }], busy: [{
29
+ type: Input
30
+ }], kpi: [{
31
+ type: Input
32
+ }], tileAction: [{
33
+ type: Output,
34
+ args: ['tile-action']
35
+ }] } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3BpLXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2twaS10aWxlL2twaS10aWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9rcGktdGlsZS9rcGktdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNL0UsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQjtRQUxTLFVBQUssR0FBdUIsU0FBUyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixRQUFHLEdBQW9CLFNBQVMsQ0FBQztRQUMxQyw0Q0FBNEM7UUFDckIsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQy9ELENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBVztRQUMvQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NkdBakJVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLGtKQ043Qiw0b0JBaUJNOzJGRFhPLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxjQUFjOzBFQUtmLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUVpQixVQUFVO3NCQUFoQyxNQUFNO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1rcGktdGlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2twaS10aWxlLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgS3BpVGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGtwaTogYW55IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtcmVuYW1lXHJcbiAgQE91dHB1dCgndGlsZS1hY3Rpb24nKSB0aWxlQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRUaWxlQWN0aW9uKCRldmVudDogYW55KTogYm9vbGVhbiB7XHJcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMudGlsZUFjdGlvbi5lbWl0KCRldmVudCk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiXHJcbiAgICAgW25nQ2xhc3NdPVwieydjYXJkLWRlY2stYnVzeScgOiBidXN5IH1cIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwia3BpLXRpbGUtdGl0bGUtY29udGFpbmVyXCI+XHJcbiAgICAgIDxhIGhyZWY9XCIjXCJcclxuICAgICAgICAgY2xhc3M9XCJrcGktdGlsZS1hY3Rpb25cIlxyXG4gICAgICAgICAoY2xpY2spPVwiZW1pdFRpbGVBY3Rpb24oJGV2ZW50KVwiPnt7dGl0bGUgfHwgJy0nfX08L2E+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxwIGNsYXNzPVwia3BpLXRpbGUtdmFsdWVcIj57e2twaSB8fCAnLSd9fTwvcD5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC14c1wiPlxyXG4gICAgICAgIDxhIGhyZWY9XCIjXCJcclxuICAgICAgICAgICBjbGFzcz1cImtwaS10aWxlLWFjdGlvblwiXHJcbiAgICAgICAgICAgKGNsaWNrKT1cImVtaXRUaWxlQWN0aW9uKCRldmVudClcIj7OoM61z4HOuc+Dz4PPjM+EzrXPgc6xPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,31 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { APP_LANGUAGES } from '../../tokens';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../../directives/click-outside.directive";
6
+ export class LanguageSelectionComponent {
7
+ constructor(langsService) {
8
+ this.langsService = langsService;
9
+ this.menuExpanded = false;
10
+ }
11
+ ngOnInit() {
12
+ }
13
+ selectLang(option) {
14
+ if (this.langsService?.setSelected) {
15
+ this.langsService.setSelected(option.value);
16
+ }
17
+ }
18
+ onClickOutside($event) {
19
+ this.menuExpanded = false;
20
+ }
21
+ }
22
+ LanguageSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LanguageSelectionComponent, deps: [{ token: APP_LANGUAGES }], target: i0.ɵɵFactoryTarget.Component });
23
+ LanguageSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: LanguageSelectionComponent, selector: "lib-language-selection", ngImport: i0, template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"text-blue-300 hover:text-blue-400\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <span>{{langsService?.selected || langsService?.default}}</span>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none':'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\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: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LanguageSelectionComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'lib-language-selection', template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"text-blue-300 hover:text-blue-400\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <span>{{langsService?.selected || langsService?.default}}</span>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none':'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
27
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
28
+ type: Inject,
29
+ args: [APP_LANGUAGES]
30
+ }] }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9sYW5ndWFnZS1zZWxlY3Rpb24vbGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9sYW5ndWFnZS1zZWxlY3Rpb24vbGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFPN0MsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUEwQyxZQUE4QztRQUE5QyxpQkFBWSxHQUFaLFlBQVksQ0FBa0M7UUFEakYsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFDZ0UsQ0FBQztJQUU3RixRQUFRO0lBQ1IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFrQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOzt1SEFoQlUsMEJBQTBCLGtCQUdqQixhQUFhOzJHQUh0QiwwQkFBMEIsOERDVHZDLGd2Q0FrQkE7MkZEVGEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHdCQUF3Qjs7MEJBTXJCLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lbnVPcHRpb24gfSBmcm9tICcuLy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBUFBfTEFOR1VBR0VTIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgSUFwcExhbmd1YWdlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1sYW5ndWFnZS1zZWxlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYW5ndWFnZS1zZWxlY3Rpb24uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVNlbGVjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBtZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQUF9MQU5HVUFHRVMpIHB1YmxpYyBsYW5nc1NlcnZpY2U6IElBcHBMYW5ndWFnZXNTZXJ2aWNlIHwgdW5kZWZpbmVkKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0TGFuZyhvcHRpb246IE1lbnVPcHRpb24pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmxhbmdzU2VydmljZT8uc2V0U2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5sYW5nc1NlcnZpY2Uuc2V0U2VsZWN0ZWQob3B0aW9uLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrT3V0c2lkZSgkZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5tZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlXCIgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCI+XHJcbiAgPGJ1dHRvbiBjbGFzcz1cInRleHQtYmx1ZS0zMDAgaG92ZXI6dGV4dC1ibHVlLTQwMFwiIChjbGljayk9XCJtZW51RXhwYW5kZWQgPSAhbWVudUV4cGFuZGVkXCI+XHJcbiAgICA8aSBjbGFzcz1cInRleHQteHMgbXItMSBtcy1JY29uIG1zLUljb24tLUdsb2JlXCI+PC9pPlxyXG4gICAgPHNwYW4+e3tsYW5nc1NlcnZpY2U/LnNlbGVjdGVkIHx8IGxhbmdzU2VydmljZT8uZGVmYXVsdH19PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8ZGl2XHJcbiAgICBbY2xhc3NdPVwibWVudUV4cGFuZGVkID8gJ3RyYW5zaXRpb24gZWFzZS1vdXQgZHVyYXRpb24tMjAwIG9yaWdpbi10b3AtcmlnaHQgei0zMCBhYnNvbHV0ZSByaWdodC0wIG10LTIgdy01NiByb3VuZGVkLXNtIHNoYWRvdy1sZyBiZy13aGl0ZSByaW5nLTEgcmluZy1ibGFjayByaW5nLW9wYWNpdHktNSBmb2N1czpvdXRsaW5lLW5vbmUnOidoaWRkZW4gdHJhbnNpdGlvbiBlYXNlLWluIGR1cmF0aW9uLTc1IG9yaWdpbi10b3AtcmlnaHQgei0zMCByaWdodC0wIG10LTIgdy01NiByb3VuZGVkLXNtIHNoYWRvdy1sZyBiZy13aGl0ZSByaW5nLTEgcmluZy1ibGFjayByaW5nLW9wYWNpdHktNSBmb2N1czpvdXRsaW5lLW5vbmUnXCIgcm9sZT1cIm1lbnVcIiBhcmlhLW9yaWVudGF0aW9uPVwidmVydGljYWxcIiBhcmlhLWxhYmVsbGVkYnk9XCJtZW51LWJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJweS0xXCIgcm9sZT1cIm5vbmVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5nc1NlcnZpY2U/Lm9wdGlvbnMgfCBhc3luY1wiPlxyXG4gICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RMYW5nKGxhbmcpXCIgKm5nSWY9XCJsYW5nLnZhbHVlICE9IGxhbmdzU2VydmljZT8uc2VsZWN0ZWRcIiBjbGFzcz1cIm5hdi1saW5rLXByb2ZpbGVcIiByb2xlPVwibWVudWl0ZW1cIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJtZW51LWl0ZW0tMFwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJ0ZXh0LXhzIG1yLTEgbXMtSWNvbiBtcy1JY29uLS1HbG9iZUZhdm9yaXRlXCI+PC9pPlxyXG4gICAgICAgICAge3tsYW5nLmRlc2NyaXB0aW9ufX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -8,9 +8,9 @@ export class ListColumnComponent {
8
8
  this.template = null;
9
9
  }
10
10
  }
11
- ListColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ListColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- ListColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListColumnComponent, selector: "lib-list-column", inputs: { title: "title", fullWidth: ["full-width", "fullWidth"] }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ListColumnComponent, decorators: [{
11
+ ListColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ ListColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListColumnComponent, selector: "lib-list-column", inputs: { title: "title", fullWidth: ["full-width", "fullWidth"] }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListColumnComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'lib-list-column', template: '<ng-content></ng-content>' }]
16
16
  }], ctorParameters: function () { return []; }, propDecorators: { title: [{
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
22
22
  type: ContentChild,
23
23
  args: [TemplateRef]
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QjtRQUpTLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLDJDQUEyQztRQUN0QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ1osYUFBUSxHQUFlLElBQUksQ0FBQztJQUN2QyxDQUFDOztpSEFMTixtQkFBbUI7cUdBQW5CLG1CQUFtQixpS0FJaEIsV0FBVyxnREFMd0IsMkJBQTJCOzRGQUNqRSxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFDOzBFQUVwRSxLQUFLO3NCQUFiLEtBQUs7Z0JBRWUsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNRLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7c2VsZWN0b3I6ICdsaWItbGlzdC1jb2x1bW4nLCB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nfSlcclxuZXhwb3J0IGNsYXNzIExpc3RDb2x1bW5Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdmdWxsLXdpZHRoJykgZnVsbFdpZHRoID0gZmFsc2U7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QjtRQUpTLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLDJDQUEyQztRQUN0QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ1osYUFBUSxHQUFlLElBQUksQ0FBQztJQUN2QyxDQUFDOztnSEFMTixtQkFBbUI7b0dBQW5CLG1CQUFtQixpS0FJaEIsV0FBVyxnREFMd0IsMkJBQTJCOzJGQUNqRSxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFDOzBFQUVwRSxLQUFLO3NCQUFiLEtBQUs7Z0JBRWUsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNRLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7c2VsZWN0b3I6ICdsaWItbGlzdC1jb2x1bW4nLCB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nfSlcclxuZXhwb3J0IGNsYXNzIExpc3RDb2x1bW5Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdmdWxsLXdpZHRoJykgZnVsbFdpZHRoID0gZmFsc2U7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
@@ -5,13 +5,13 @@ export class ListDetailsSectionComponent {
5
5
  this.template = null;
6
6
  }
7
7
  }
8
- ListDetailsSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ListDetailsSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- ListDetailsSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListDetailsSectionComponent, selector: "lib-list-details-section", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ListDetailsSectionComponent, decorators: [{
8
+ ListDetailsSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListDetailsSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ ListDetailsSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListDetailsSectionComponent, selector: "lib-list-details-section", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListDetailsSectionComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' }]
13
13
  }], ctorParameters: function () { return []; }, propDecorators: { template: [{
14
14
  type: ContentChild,
15
15
  args: [TemplateRef]
16
16
  }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QztRQUQyQixhQUFRLEdBQWUsSUFBSSxDQUFDO0lBRXZELENBQUM7O3lIQUhVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLHNHQUN4QixXQUFXLGdEQUZrQywyQkFBMkI7NEZBQzNFLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUU7MEVBRTdELFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAnbGliLWxpc3QtZGV0YWlscy1zZWN0aW9uJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyB9KVxyXG5leHBvcnQgY2xhc3MgTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50e1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlOiBhbnkgfCBudWxsID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QztRQUQyQixhQUFRLEdBQWUsSUFBSSxDQUFDO0lBRXZELENBQUM7O3dIQUhVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHNHQUN4QixXQUFXLGdEQUZrQywyQkFBMkI7MkZBQzNFLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUU7MEVBRTdELFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAnbGliLWxpc3QtZGV0YWlscy1zZWN0aW9uJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyB9KVxyXG5leHBvcnQgY2xhc3MgTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50e1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlOiBhbnkgfCBudWxsID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
@@ -5,13 +5,13 @@ export class ListTileComponent {
5
5
  this.template = null;
6
6
  }
7
7
  }
8
- ListTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ListTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- ListTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListTileComponent, selector: "lib-list-tile", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ListTileComponent, decorators: [{
8
+ ListTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ ListTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListTileComponent, selector: "lib-list-tile", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListTileComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'lib-list-tile', template: '<ng-content></ng-content>' }]
13
13
  }], ctorParameters: function () { return []; }, propDecorators: { template: [{
14
14
  type: ContentChild,
15
15
  args: [TemplateRef]
16
16
  }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdwRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCO1FBRDJCLGFBQVEsR0FBZSxJQUFJLENBQUM7SUFFdkQsQ0FBQzs7K0dBSFUsaUJBQWlCO21HQUFqQixpQkFBaUIsMkZBQ2QsV0FBVyxnREFGdUIsMkJBQTJCOzRGQUNoRSxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTswRUFFbEQsUUFBUTtzQkFBbEMsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6ICdsaWItbGlzdC10aWxlJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyB9KVxyXG5leHBvcnQgY2xhc3MgTGlzdFRpbGVDb21wb25lbnR7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxufVxyXG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdwRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCO1FBRDJCLGFBQVEsR0FBZSxJQUFJLENBQUM7SUFFdkQsQ0FBQzs7OEdBSFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkZBQ2QsV0FBVyxnREFGdUIsMkJBQTJCOzJGQUNoRSxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTswRUFFbEQsUUFBUTtzQkFBbEMsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6ICdsaWItbGlzdC10aWxlJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyB9KVxyXG5leHBvcnQgY2xhc3MgTGlzdFRpbGVDb21wb25lbnR7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class ListViewEmptyStateComponent {
5
+ constructor() {
6
+ this.title = 'Δεν βρέθηκαν εγγραφές.';
7
+ // tslint:disable-next-line:no-input-rename
8
+ this.subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';
9
+ // tslint:disable-next-line:no-input-rename
10
+ this.newItemLabel = 'Νέα εγγραφή';
11
+ }
12
+ ngOnInit() {
13
+ }
14
+ }
15
+ ListViewEmptyStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ ListViewEmptyStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: { title: "title", subTitle: ["sub-title", "subTitle"], newItemLabel: ["new-item-label", "newItemLabel"] }, ngImport: i0, template: "<div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewEmptyStateComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'lib-list-view-empty-state', template: "<div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
20
+ }], ctorParameters: function () { return []; }, propDecorators: { title: [{
21
+ type: Input
22
+ }], subTitle: [{
23
+ type: Input,
24
+ args: ['sub-title']
25
+ }], newItemLabel: [{
26
+ type: Input,
27
+ args: ['new-item-label']
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFNekQsTUFBTSxPQUFPLDJCQUEyQjtJQU90QztRQUxTLFVBQUssR0FBRyx3QkFBd0IsQ0FBQztRQUMxQywyQ0FBMkM7UUFDdkIsYUFBUSxHQUFHLHNGQUFzRixDQUFDO1FBQ3RILDJDQUEyQztRQUNsQixpQkFBWSxHQUFHLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzt3SEFWVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixvTENOeEMsNDRDQW9CQTsyRkRkYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsMkJBQTJCOzBFQUs1QixLQUFLO3NCQUFiLEtBQUs7Z0JBRWMsUUFBUTtzQkFBM0IsS0FBSzt1QkFBQyxXQUFXO2dCQUVPLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saXN0LXZpZXctZW1wdHktc3RhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXZpZXctZW1wdHktc3RhdGUuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld0VtcHR5U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSB0aXRsZSA9ICfOlM61zr0gzrLPgc6tzrjOt866zrHOvSDOtc6zzrPPgc6xz4bOrc+CLic7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc3ViLXRpdGxlJykgc3ViVGl0bGUgPSAnzqDOsc+BzrHOus6xzrvPjiDOsc67zrvOrM6+z4TOtSDPhM6xIM66z4HOuc+Ezq7Pgc65zrEgzrHOvc6xzrbOrs+EzrfPg863z4Igz4POsc+CIM6uIM6+zrXOus65zr3Ors+Dz4TOtSDPgM+Bzr/Pg864zq3PhM6/zr3PhM6xz4IgzrzOuc6xIM69zq3OsSDOtc6zzrPPgc6xz4bOric7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbmV3LWl0ZW0tbGFiZWwnKSBuZXdJdGVtTGFiZWwgPSAnzp3Orc6xIM61zrPOs8+BzrHPhs6uJztcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwLTIwXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHAtMlwiPlxyXG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJteC1hdXRvIGgtMTIgdy0xMiB0ZXh0LWdyYXktNDAwXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTQgN3YxMGMwIDIuMjEgMy41ODIgNCA4IDRzOC0xLjc5IDgtNFY3TTQgN2MwIDIuMjEgMy41ODIgNCA4IDRzOC0xLjc5IDgtNE00IDdjMC0yLjIxIDMuNTgyLTQgOC00czggMS43OSA4IDRtMCA1YzAgMi4yMS0zLjU4MiA0LTggNHMtOC0xLjc5LTgtNFwiIC8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxoMyBjbGFzcz1cIm10LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+e3t0aXRsZX19PC9oMz5cclxuICAgIDxwIGNsYXNzPVwibXQtMSB0ZXh0LXNtIHRleHQtZ3JheS01MDBcIj5cclxuICAgICAge3tzdWJUaXRsZX19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXQtNlwiICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgcHgtNCBweS0yIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgc2hhZG93LXNtIHRleHQtc20gZm9udC1tZWRpdW0gcm91bmRlZC1tZCB0ZXh0LXdoaXRlIGJnLWdyYXktNjAwIGhvdmVyOmJnLWdyYXktNzAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMSBmb2N1czpyaW5nLWdyYXktNTAwXCI+XHJcbiAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBzb2xpZC9wbHVzIC0tPlxyXG4gICAgICAgIDxzdmcgY2xhc3M9XCItbWwtMSBtci0yIGgtNiB3LTZcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgIDxwYXRoIHZlY3Rvci1lZmZlY3Q9XCJub24tc2NhbGluZy1zdHJva2VcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIyXCIgZD1cIk05IDEzaDZtLTMtM3Y2bS05IDFWN2EyIDIgMCAwMTItMmg2bDIgMmg2YTIgMiAwIDAxMiAydjhhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0yelwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgICAge3tuZXdJdGVtTGFiZWx9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,192 @@
1
+ import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ListViewType, PagerPosition } 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
+ // PAGING - pass through for pager component
17
+ this.count = null;
18
+ this.page = 1;
19
+ this.view = ListViewType.Table;
20
+ this.sort = null;
21
+ // tslint:disable-next-line:no-input-rename
22
+ this.pageSize = 20;
23
+ // tslint:disable-next-line:no-input-rename
24
+ this.pageSizeOptions = [];
25
+ // SORTING - pass through for pager component
26
+ // tslint:disable-next-line:no-input-rename
27
+ this.sortOptions = [];
28
+ // tslint:disable-next-line:no-input-rename
29
+ this.sortdir = '-';
30
+ // tslint:disable-next-line:no-input-rename
31
+ this.tilesCount = 4;
32
+ // tslint:disable-next-line:no-input-rename
33
+ this.showPager = true;
34
+ // tslint:disable-next-line:no-input-rename
35
+ this.pagerPosition = PagerPosition.Top;
36
+ // DETAILS SECTION
37
+ // Check if details section and button should be displayed according to the count of the value given
38
+ // tslint:disable-next-line:no-input-rename
39
+ this.detailsSectionPropertyCount = null;
40
+ this.pageChanged = new EventEmitter();
41
+ this.pageSizeChanged = new EventEmitter();
42
+ this.detailsOpened = new EventEmitter();
43
+ this.sortChanged = new EventEmitter();
44
+ this.sortdirChanged = new EventEmitter();
45
+ this.multipleFullWidth = false;
46
+ this.expandIcon = Icons.Expand;
47
+ this.collapseIcon = Icons.Collapse;
48
+ this.tableViewSupported = false;
49
+ this.fullWidthTHClass = 'list-view-th-full';
50
+ this.fullWidthTDClass = 'list-view-td-full';
51
+ this.tilesViewSupported = false;
52
+ this.detailsSectionSupported = false;
53
+ this.loaderItems = [];
54
+ this.columns = [];
55
+ this.tilesDeckClass = 'cards-deck-4';
56
+ this.tileTemplate = null;
57
+ this.detailsTemplate = null;
58
+ for (let i = 0; i < 5; i++) {
59
+ this.loaderItems.push({});
60
+ }
61
+ if (this.pagerPosition) {
62
+ this.pagerPosition = this.pagerPosition;
63
+ }
64
+ }
65
+ // COLUMNS
66
+ set cols(refs) {
67
+ this.columns = refs?.toArray();
68
+ if (this.columns && this.columns.length > 0) {
69
+ this.tableViewSupported = true;
70
+ }
71
+ this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;
72
+ this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';
73
+ this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';
74
+ }
75
+ // tslint:disable-next-line:no-input-rename
76
+ set tiles(ref) {
77
+ this.tileTemplate = ref;
78
+ if (this.tileTemplate) {
79
+ this.tilesViewSupported = true;
80
+ }
81
+ }
82
+ set details(ref) {
83
+ this.detailsTemplate = ref;
84
+ if (this.detailsTemplate) {
85
+ this.detailsSectionSupported = true;
86
+ }
87
+ }
88
+ ngOnChanges(changes) {
89
+ const tilesCountChange = changes['tiles-count'] || changes.tilesCount;
90
+ if (tilesCountChange) {
91
+ this.setTilesDeckClass(tilesCountChange.currentValue);
92
+ }
93
+ }
94
+ // events
95
+ emitPageChanged($event) {
96
+ this.pageChanged.emit($event);
97
+ }
98
+ emitPageSizeChanged($event) {
99
+ this.pageSizeChanged.emit($event);
100
+ }
101
+ emitSortChanged($event) {
102
+ this.sortChanged.emit($event);
103
+ }
104
+ emitSortdirChanged($event) {
105
+ this.sortdirChanged.emit($event);
106
+ }
107
+ toggleDetails(item) {
108
+ item.detailsExpanded = !item.detailsExpanded;
109
+ this.detailsOpened.emit({ item, open: item.detailsExpanded });
110
+ }
111
+ // helpers
112
+ setTilesDeckClass(tiles) {
113
+ if (tiles >= 1 && tiles <= 4) {
114
+ this.tilesDeckClass =
115
+ this.view !== ListViewType.Gallery
116
+ ? `cards-deck-${tiles}`
117
+ : this.items && this.items.length > 0
118
+ ? `gallery-deck-${tiles}`
119
+ : 'gallery-deck';
120
+ }
121
+ else {
122
+ this.tilesDeckClass =
123
+ this.view !== ListViewType.Gallery
124
+ ? 'cards-deck-3'
125
+ : this.items && this.items.length > 0
126
+ ? 'gallery-deck-3'
127
+ : 'gallery-deck';
128
+ }
129
+ }
130
+ }
131
+ ListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
132
+ ListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListViewComponent, selector: "lib-list-view", inputs: { busy: "busy", items: "items", count: "count", page: "page", view: "view", sort: "sort", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], sortOptions: ["sort-options", "sortOptions"], sortdir: ["sort-dir", "sortdir"], tilesCount: ["tiles-count", "tilesCount"], showPager: ["show-pager", "showPager"], pagerPosition: ["pager-position", "pagerPosition"], detailsSectionPropertyCount: ["details-section-property-count", "detailsSectionPropertyCount"] }, 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 && (pagerPosition == 'top' || pagerPosition == 'both')\"\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\r\n<div class=\"pt-2 px-2\">\r\n\r\n <lib-pager *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\"\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", 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"] }] });
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ selector: 'lib-list-view', template: "<div class=\"px-2\">\r\n\r\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\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\r\n<div class=\"pt-2 px-2\">\r\n\r\n <lib-pager *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\"\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" }]
136
+ }], ctorParameters: function () { return []; }, propDecorators: { busy: [{
137
+ type: Input
138
+ }], items: [{
139
+ type: Input
140
+ }], count: [{
141
+ type: Input
142
+ }], page: [{
143
+ type: Input
144
+ }], view: [{
145
+ type: Input
146
+ }], sort: [{
147
+ type: Input
148
+ }], pageSize: [{
149
+ type: Input,
150
+ args: ['page-size']
151
+ }], pageSizeOptions: [{
152
+ type: Input,
153
+ args: ['page-size-options']
154
+ }], sortOptions: [{
155
+ type: Input,
156
+ args: ['sort-options']
157
+ }], sortdir: [{
158
+ type: Input,
159
+ args: ['sort-dir']
160
+ }], tilesCount: [{
161
+ type: Input,
162
+ args: ['tiles-count']
163
+ }], showPager: [{
164
+ type: Input,
165
+ args: ['show-pager']
166
+ }], pagerPosition: [{
167
+ type: Input,
168
+ args: ['pager-position']
169
+ }], detailsSectionPropertyCount: [{
170
+ type: Input,
171
+ args: ['details-section-property-count']
172
+ }], cols: [{
173
+ type: ContentChildren,
174
+ args: [ListColumnComponent, { read: ListColumnComponent }]
175
+ }], tiles: [{
176
+ type: ContentChild,
177
+ args: [ListTileComponent, { read: ListTileComponent }]
178
+ }], details: [{
179
+ type: ContentChild,
180
+ args: [ListDetailsSectionComponent, { read: ListDetailsSectionComponent }]
181
+ }], pageChanged: [{
182
+ type: Output
183
+ }], pageSizeChanged: [{
184
+ type: Output
185
+ }], detailsOpened: [{
186
+ type: Output
187
+ }], sortChanged: [{
188
+ type: Output
189
+ }], sortdirChanged: [{
190
+ type: Output
191
+ }] } });
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFjLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBTXBDLE1BQU0sT0FBTyxpQkFBaUI7SUE2RTVCO1FBNUVBLGFBQWE7UUFDSixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBR3RCLDRDQUE0QztRQUNuQyxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsU0FBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3ZCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEMsMkNBQTJDO1FBQ2Ysb0JBQWUsR0FBaUIsRUFBRSxDQUFDO1FBQy9ELDZDQUE2QztRQUM3Qywy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QUMsYUFBYTtnQkFFQyxTQUFTO3NCQUE3QixLQUFLO3VCQUFDLFlBQVk7Z0JBRU0sYUFBYTtzQkFBckMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSWtCLDJCQUEyQjtzQkFBbkUsS0FBSzt1QkFBQyxnQ0FBZ0M7Z0JBR25DLElBQUk7c0JBRFAsZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRTtnQkFZL0QsS0FBSztzQkFEUixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO2dCQVN4RCxPQUFPO3NCQURWLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUU7Z0JBUXRFLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudU9wdGlvbiwgTGlzdFZpZXdUeXBlLCBQYWdlclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBMaXN0VGlsZUNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi9pY29ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saXN0LXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgLy8gQlVTWSBTVEFURVxyXG4gIEBJbnB1dCgpIGJ1c3kgPSBmYWxzZTtcclxuICAvLyBEQVRBIFNPVVJDRSFcclxuICBASW5wdXQoKSBpdGVtczogYW55W10gfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIC8vIFBBR0lORyAtIHBhc3MgdGhyb3VnaCBmb3IgcGFnZXIgY29tcG9uZW50XHJcbiAgQElucHV0KCkgY291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHBhZ2UgPSAxO1xyXG4gIEBJbnB1dCgpIHZpZXcgPSBMaXN0Vmlld1R5cGUuVGFibGU7XHJcbiAgQElucHV0KCkgc29ydDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgncGFnZS1zaXplJykgcGFnZVNpemUgPSAyMDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdwYWdlLXNpemUtb3B0aW9ucycpIHBhZ2VTaXplT3B0aW9uczogTWVudU9wdGlvbltdID0gW107XHJcbiAgLy8gU09SVElORyAtIHBhc3MgdGhyb3VnaCBmb3IgcGFnZXIgY29tcG9uZW50XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc29ydC1vcHRpb25zJykgc29ydE9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NvcnQtZGlyJykgc29ydGRpcjogc3RyaW5nIHwgbnVsbCA9ICctJztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCd0aWxlcy1jb3VudCcpIHRpbGVzQ291bnQgPSA0O1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3Nob3ctcGFnZXInKSBzaG93UGFnZXIgPSB0cnVlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3BhZ2VyLXBvc2l0aW9uJykgcGFnZXJQb3NpdGlvbjogYW55IHwgdW5kZWZpbmVkID0gUGFnZXJQb3NpdGlvbi5Ub3A7XHJcbiAgLy8gREVUQUlMUyBTRUNUSU9OXHJcbiAgLy8gQ2hlY2sgaWYgZGV0YWlscyBzZWN0aW9uIGFuZCBidXR0b24gc2hvdWxkIGJlIGRpc3BsYXllZCBhY2NvcmRpbmcgdG8gdGhlIGNvdW50IG9mIHRoZSB2YWx1ZSBnaXZlblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2RldGFpbHMtc2VjdGlvbi1wcm9wZXJ0eS1jb3VudCcpIGRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gQ09MVU1OU1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdENvbHVtbkNvbXBvbmVudCwgeyByZWFkOiBMaXN0Q29sdW1uQ29tcG9uZW50IH0pXHJcbiAgc2V0IGNvbHMocmVmczogUXVlcnlMaXN0PExpc3RDb2x1bW5Db21wb25lbnQ+KSB7XHJcbiAgICB0aGlzLmNvbHVtbnMgPSByZWZzPy50b0FycmF5KCk7XHJcbiAgICBpZiAodGhpcy5jb2x1bW5zICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMudGFibGVWaWV3U3VwcG9ydGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMubXVsdGlwbGVGdWxsV2lkdGggPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGMgPT4gYy5mdWxsV2lkdGgpLmxlbmd0aCA+IDE7XHJcbiAgICB0aGlzLmZ1bGxXaWR0aFRIQ2xhc3MgPSB0aGlzLm11bHRpcGxlRnVsbFdpZHRoID8gJ2xpc3Qtdmlldy10aC1oYWxmJyA6ICdsaXN0LXZpZXctdGgtZnVsbCc7XHJcbiAgICB0aGlzLmZ1bGxXaWR0aFREQ2xhc3MgPSB0aGlzLm11bHRpcGxlRnVsbFdpZHRoID8gJ2xpc3Qtdmlldy10ZC1oYWxmJyA6ICdsaXN0LXZpZXctdGQtZnVsbCc7XHJcbiAgfVxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBAQ29udGVudENoaWxkKExpc3RUaWxlQ29tcG9uZW50LCB7IHJlYWQ6IExpc3RUaWxlQ29tcG9uZW50IH0pXHJcbiAgc2V0IHRpbGVzKHJlZjogTGlzdFRpbGVDb21wb25lbnQpIHtcclxuICAgIHRoaXMudGlsZVRlbXBsYXRlID0gcmVmO1xyXG4gICAgaWYgKHRoaXMudGlsZVRlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMudGlsZXNWaWV3U3VwcG9ydGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50LCB7IHJlYWQ6IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9KVxyXG4gIHNldCBkZXRhaWxzKHJlZjogTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50KSB7XHJcbiAgICB0aGlzLmRldGFpbHNUZW1wbGF0ZSA9IHJlZjtcclxuICAgIGlmICh0aGlzLmRldGFpbHNUZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLmRldGFpbHNTZWN0aW9uU3VwcG9ydGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgcGFnZVNpemVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIEBPdXRwdXQoKSBkZXRhaWxzT3BlbmVkOiBFdmVudEVtaXR0ZXI8eyBpdGVtOiBhbnksIG9wZW46IGJvb2xlYW4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogYW55LCBvcGVuOiBib29sZWFuIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzb3J0ZGlyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgcHJpdmF0ZSBtdWx0aXBsZUZ1bGxXaWR0aCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBleHBhbmRJY29uID0gSWNvbnMuRXhwYW5kO1xyXG4gIHB1YmxpYyBjb2xsYXBzZUljb24gPSBJY29ucy5Db2xsYXBzZTtcclxuICBwdWJsaWMgdGFibGVWaWV3U3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGZ1bGxXaWR0aFRIQ2xhc3MgPSAnbGlzdC12aWV3LXRoLWZ1bGwnO1xyXG4gIHB1YmxpYyBmdWxsV2lkdGhURENsYXNzID0gJ2xpc3Qtdmlldy10ZC1mdWxsJztcclxuICBwdWJsaWMgdGlsZXNWaWV3U3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGRldGFpbHNTZWN0aW9uU3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGxvYWRlckl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyB0aWxlc0RlY2tDbGFzcyA9ICdjYXJkcy1kZWNrLTQnO1xyXG4gIHB1YmxpYyB0aWxlVGVtcGxhdGU6IGFueSB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xyXG4gIHB1YmxpYyBkZXRhaWxzVGVtcGxhdGU6IGFueSB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XHJcbiAgICAgIHRoaXMubG9hZGVySXRlbXMucHVzaCh7fSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wYWdlclBvc2l0aW9uKXtcclxuICAgICAgdGhpcy5wYWdlclBvc2l0aW9uID0gdGhpcy5wYWdlclBvc2l0aW9uIGFzIFBhZ2VyUG9zaXRpb247XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB0aWxlc0NvdW50Q2hhbmdlID0gY2hhbmdlc1sndGlsZXMtY291bnQnXSB8fCBjaGFuZ2VzLnRpbGVzQ291bnQ7XHJcbiAgICBpZiAodGlsZXNDb3VudENoYW5nZSkge1xyXG4gICAgICB0aGlzLnNldFRpbGVzRGVja0NsYXNzKHRpbGVzQ291bnRDaGFuZ2UuY3VycmVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGV2ZW50c1xyXG4gIHB1YmxpYyBlbWl0UGFnZUNoYW5nZWQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRQYWdlU2l6ZUNoYW5nZWQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZVNpemVDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0U29ydENoYW5nZWQoJGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxuICBwdWJsaWMgZW1pdFNvcnRkaXJDaGFuZ2VkKCRldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNvcnRkaXJDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVEZXRhaWxzKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgaXRlbS5kZXRhaWxzRXhwYW5kZWQgPSAhaXRlbS5kZXRhaWxzRXhwYW5kZWQ7XHJcbiAgICB0aGlzLmRldGFpbHNPcGVuZWQuZW1pdCh7IGl0ZW0sIG9wZW46IGl0ZW0uZGV0YWlsc0V4cGFuZGVkIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gaGVscGVyc1xyXG4gIHByaXZhdGUgc2V0VGlsZXNEZWNrQ2xhc3ModGlsZXM6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRpbGVzID49IDEgJiYgdGlsZXMgPD0gNCkge1xyXG4gICAgICB0aGlzLnRpbGVzRGVja0NsYXNzID1cclxuICAgICAgICB0aGlzLnZpZXcgIT09IExpc3RWaWV3VHlwZS5HYWxsZXJ5XHJcbiAgICAgICAgICA/IGBjYXJkcy1kZWNrLSR7dGlsZXN9YFxyXG4gICAgICAgICAgOiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICA/IGBnYWxsZXJ5LWRlY2stJHt0aWxlc31gXHJcbiAgICAgICAgICAgIDogJ2dhbGxlcnktZGVjayc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRpbGVzRGVja0NsYXNzID1cclxuICAgICAgICB0aGlzLnZpZXcgIT09IExpc3RWaWV3VHlwZS5HYWxsZXJ5XHJcbiAgICAgICAgICA/ICdjYXJkcy1kZWNrLTMnXHJcbiAgICAgICAgICA6IHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgID8gJ2dhbGxlcnktZGVjay0zJ1xyXG4gICAgICAgICAgICA6ICdnYWxsZXJ5LWRlY2snO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInB4LTJcIj5cclxuXHJcbiAgPGxpYi1wYWdlciAqbmdJZj1cInNob3dQYWdlciAmJiAocGFnZXJQb3NpdGlvbiA9PSAndG9wJyB8fCBwYWdlclBvc2l0aW9uID09ICdib3RoJylcIlxyXG4gICAgICAgICAgICAgW3BhZ2VdPVwicGFnZVwiXHJcbiAgICAgICAgICAgICBbcGFnZS1zaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgICAgIFtjb3VudF09XCJjb3VudFwiXHJcbiAgICAgICAgICAgICBbc29ydC1vcHRpb25zXT1cInNvcnRPcHRpb25zXCJcclxuICAgICAgICAgICAgIFtzb3J0XT1cInNvcnRcIlxyXG4gICAgICAgICAgICAgW3NvcnQtZGlyXT1cInNvcnRkaXJcIlxyXG4gICAgICAgICAgICAgW2J1c3ldPVwiYnVzeVwiXHJcbiAgICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwiZW1pdFBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlZCk9XCJlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKHNvcnRDaGFuZ2VkKT1cImVtaXRTb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChzb3J0ZGlyQ2hhbmdlZCk9XCJlbWl0U29ydGRpckNoYW5nZWQoJGV2ZW50KVwiPlxyXG4gIDwvbGliLXBhZ2VyPlxyXG48L2Rpdj5cclxuXHJcbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInZpZXdcIj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RpbGVzJ1wiPlxyXG4gICAgPGRpdiBbY2xhc3NdPVwidGlsZXNEZWNrQ2xhc3NcIj5cclxuXHJcbiAgICAgIDxsaWItc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiYnVzeVwiIFtjb3VudF09XCI1XCIgW3R5cGVdPVwiJ3RpbGVzJ1wiPjwvbGliLXNrZWxldG9uLWxvYWRlcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGlsZVRlbXBsYXRlIHx8ICF0aWxlVGVtcGxhdGUudGVtcGxhdGVcIj50ZW1wbGF0ZSBtaXNzaW5nLi48L3NwYW4+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGlsZVRlbXBsYXRlLnRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgPCEtLSAqbmdTd2l0Y2hDYXNlPVwiJ2dhbGxlcnknXCIgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2dhbGxlcnknXCI+XHJcbiAgICA8dWwgcm9sZT1cImxpc3RcIiBbY2xhc3NdPVwidGlsZXNEZWNrQ2xhc3NcIj5cclxuXHJcbiAgICAgIDxsaWItc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiYnVzeVwiIFtjb3VudF09XCI1XCIgW3R5cGVdPVwiJ3RpbGVzJ1wiPjwvbGliLXNrZWxldG9uLWxvYWRlcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYnVzeSAmJiBpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGlsZVRlbXBsYXRlIHx8ICF0aWxlVGVtcGxhdGUudGVtcGxhdGVcIj50ZW1wbGF0ZSBtaXNzaW5nLi48L3NwYW4+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGlsZVRlbXBsYXRlLnRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC91bD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSAqbmdTd2l0Y2hDYXNlPVwiJ3RhYmxlJ1wiIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibGlzdC12aWV3LWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdC12aWV3LWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cImxpc3Qtdmlldy10YWJsZVwiPlxyXG4gICAgICAgICAgPHRoZWFkIGNsYXNzPVwibGlzdC12aWV3LXRoZWFkXCI+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImxpc3Qtdmlldy10aC1kZXRhaWxzXCI+PC90aD5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sLmZ1bGxXaWR0aCA/IGZ1bGxXaWR0aFRIQ2xhc3MgOiAnbGlzdC12aWV3LXRoJ1wiPlxyXG4gICAgICAgICAgICAgICAgICB7e2NvbC50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImxpc3Qtdmlldy10Ym9keVwiICpuZ0lmPVwiYnVzeVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxvYWRlckl0ZW1zO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwibGlzdC12aWV3LXRyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblByb3BlcnR5Q291bnQgIT09IG51bGwgPyBpdGVtW2RldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudF0gIT09IDAgOiB0cnVlOyBlbHNlIGhpZGRlbkRldGFpbHNCdXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGRpc2FibGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWNvbGxhcHNlLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBzb2xpZC9wbHVzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkID8gY29sbGFwc2VJY29uIDogZXhwYW5kSWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoaWRkZW5EZXRhaWxzQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCI+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5mdWxsV2lkdGggPyBmdWxsV2lkdGhURENsYXNzIDogJ2xpc3Qtdmlldy10ZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGFuaW1hdGUtcHVsc2UgaC04IGJnLWdyYXktMjAwIHJvdW5kZWRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cclxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LXZpZXctdGQgYmctZ3JheS0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGV0YWlsc1RlbXBsYXRlLnRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgPHRib2R5IGNsYXNzPVwibGlzdC12aWV3LXRib2R5XCIgKm5nSWY9XCIhYnVzeVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwibGlzdC12aWV3LXRyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblByb3BlcnR5Q291bnQgIT09IG51bGwgPyBpdGVtW2RldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudF0gIT09IDAgOiB0cnVlOyBlbHNlIGhpZGRlbkRldGFpbHNCdXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVEZXRhaWxzKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtY29sbGFwc2UtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IHNvbGlkL3BsdXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWQgPyBjb2xsYXBzZUljb24gOiBleHBhbmRJY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hpZGRlbkRldGFpbHNCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sLmZ1bGxXaWR0aCA/IGZ1bGxXaWR0aFREQ2xhc3MgOiAnbGlzdC12aWV3LXRkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sLnRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cclxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LXZpZXctdGQgYmctZ3JheS0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGV0YWlsc1RlbXBsYXRlLnRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYnVzeSAmJiBpdGVtcyAmJiBpdGVtcy5sZW5ndGggPT09IDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkcy1kZWNrLTFcIj5cclxuICAgICAgPGxpYi1saXN0LXZpZXctZW1wdHktc3RhdGU+PC9saWItbGlzdC12aWV3LWVtcHR5LXN0YXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuPGRpdiBjbGFzcz1cInB0LTIgcHgtMlwiPlxyXG5cclxuICA8bGliLXBhZ2VyICpuZ0lmPVwiaXRlbXMgJiYgaXRlbXMubGVuZ3RoICE9PSAwICYmIHNob3dQYWdlciAmJiAocGFnZXJQb3NpdGlvbiA9PSAnYm90dG9tJyB8fCBwYWdlclBvc2l0aW9uID09ICdib3RoJylcIlxyXG4gICAgICAgICAgICAgW3BhZ2VdPVwicGFnZVwiXHJcbiAgICAgICAgICAgICBbcGFnZS1zaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgICAgIFtjb3VudF09XCJjb3VudFwiXHJcbiAgICAgICAgICAgICBbc29ydC1vcHRpb25zXT1cInNvcnRPcHRpb25zXCJcclxuICAgICAgICAgICAgIFtzb3J0XT1cInNvcnRcIlxyXG4gICAgICAgICAgICAgW3NvcnQtZGlyXT1cInNvcnRkaXJcIlxyXG4gICAgICAgICAgICAgW2J1c3ldPVwiYnVzeVwiXHJcbiAgICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwiZW1pdFBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlZCk9XCJlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKHNvcnRDaGFuZ2VkKT1cImVtaXRTb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChzb3J0ZGlyQ2hhbmdlZCk9XCJlbWl0U29ydGRpckNoYW5nZWQoJGV2ZW50KVwiPlxyXG4gIDwvbGliLXBhZ2VyPlxyXG48L2Rpdj5cclxuIl19