@indice/ng-components 0.2.174 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/_styles.scss +63 -15
  2. package/{esm2020 → esm2022}/indice-ng-components.mjs +4 -4
  3. package/esm2022/lib/controls/advanced-search/advanced-search.component.mjs +156 -0
  4. package/esm2022/lib/controls/advanced-search/models.mjs +109 -0
  5. package/esm2022/lib/controls/avatar-initials/avatar-initials.component.mjs +48 -0
  6. package/{esm2020 → esm2022}/lib/controls/breadcrumb/breadcrumb-item.mjs +14 -14
  7. package/{esm2020 → esm2022}/lib/controls/breadcrumb/breadcrumb.component.mjs +26 -26
  8. package/{esm2020 → esm2022}/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -20
  9. package/esm2022/lib/controls/combobox/combobox.component.mjs +121 -0
  10. package/esm2022/lib/controls/content-tile/content-tile-header/content-tile-header.component.mjs +17 -0
  11. package/esm2022/lib/controls/content-tile/content-tile-item/content-tile-item.component.mjs +19 -0
  12. package/esm2022/lib/controls/content-tile/content-tile.component.mjs +63 -0
  13. package/esm2022/lib/controls/date-picker/date-picker.component.mjs +300 -0
  14. package/esm2022/lib/controls/drop-down-menu/drop-down-menu.component.mjs +72 -0
  15. package/{esm2020 → esm2022}/lib/controls/kpi-tile/kpi-tile.component.mjs +43 -43
  16. package/esm2022/lib/controls/language-selection/language-selection.component.mjs +31 -0
  17. package/{esm2020 → esm2022}/lib/controls/list-view/list-column.component.mjs +25 -25
  18. package/{esm2020 → esm2022}/lib/controls/list-view/list-details-section.component.mjs +17 -17
  19. package/{esm2020 → esm2022}/lib/controls/list-view/list-tile.component.mjs +17 -17
  20. package/esm2022/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
  21. package/esm2022/lib/controls/list-view/list-view.component.mjs +210 -0
  22. package/{esm2020 → esm2022}/lib/controls/nav-links-list/nav-links-list.component.mjs +54 -54
  23. package/esm2022/lib/controls/notifications-indicator/notifications-indicator.component.mjs +79 -0
  24. package/esm2022/lib/controls/pager/pager.component.mjs +130 -0
  25. package/esm2022/lib/controls/progress-bar/progress-bar.component.mjs +46 -0
  26. package/esm2022/lib/controls/side-pane/side-pane.component.mjs +87 -0
  27. package/esm2022/lib/controls/skeleton-loader/skeleton-loader.component.mjs +29 -0
  28. package/esm2022/lib/controls/stats-grid/stats-grid.component.mjs +49 -0
  29. package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-info.directive.mjs +16 -16
  30. package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-label.directive.mjs +16 -16
  31. package/esm2022/lib/controls/stepper/lib-step.component.mjs +81 -0
  32. package/esm2022/lib/controls/stepper/lib-stepper.component.mjs +108 -0
  33. package/{esm2020 → esm2022}/lib/controls/stepper/types/step-selected-event.mjs +3 -3
  34. package/{esm2020 → esm2022}/lib/controls/stepper/types/stepper-type.mjs +11 -11
  35. package/esm2022/lib/controls/tabs/lib-tab-group.component.mjs +66 -0
  36. package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab-label.directive.mjs +16 -16
  37. package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab.component.mjs +57 -57
  38. package/{esm2020 → esm2022}/lib/controls/toaster/toaster-container.component.mjs +28 -28
  39. package/{esm2020 → esm2022}/lib/controls/toaster/toaster.component.mjs +31 -31
  40. package/esm2022/lib/controls/toggle/toggle.component.mjs +64 -0
  41. package/esm2022/lib/controls/toggle-button/toggle-button.component.mjs +87 -0
  42. package/esm2022/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +34 -0
  43. package/esm2022/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
  44. package/esm2022/lib/directives/click-outside.directive.mjs +189 -0
  45. package/{esm2020 → esm2022}/lib/directives/dynamic-component-host.directive.mjs +17 -17
  46. package/esm2022/lib/helpers/base-list.component.mjs +230 -0
  47. package/esm2022/lib/icons.mjs +36 -0
  48. package/{esm2020 → esm2022}/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -19
  49. package/esm2022/lib/layouts/shell/shell-header/shell-header.component.mjs +130 -0
  50. package/esm2022/lib/layouts/shell/shell-layout/shell-layout.component.mjs +90 -0
  51. package/{esm2020 → esm2022}/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +54 -54
  52. package/{esm2020 → esm2022}/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -45
  53. package/esm2022/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +30 -0
  54. package/{esm2020 → esm2022}/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +20 -20
  55. package/esm2022/lib/layouts/views/form-layout/form-layout.component.mjs +86 -0
  56. package/esm2022/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +101 -0
  57. package/esm2022/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +106 -0
  58. package/esm2022/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
  59. package/esm2022/lib/ng-components.module.mjs +320 -0
  60. package/esm2022/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
  61. package/esm2022/lib/pages/auth/auth-renew/auth-renew.component.mjs +31 -0
  62. package/{esm2020 → esm2022}/lib/pages/auth/logged-out/logged-out.component.mjs +28 -28
  63. package/{esm2020 → esm2022}/lib/pages/http-status/error/error.component.mjs +17 -17
  64. package/{esm2020 → esm2022}/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -15
  65. package/{esm2020 → esm2022}/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -14
  66. package/esm2022/lib/pipes/address.pipe.mjs +21 -0
  67. package/esm2022/lib/pipes/duration-format.pipe.mjs +64 -0
  68. package/esm2022/lib/pipes/short-number.pipe.mjs +43 -0
  69. package/esm2022/lib/services/breadcrumb.service.mjs +174 -0
  70. package/{esm2020 → esm2022}/lib/services/component-loader/component-loader-options.class.mjs +7 -7
  71. package/esm2022/lib/services/component-loader/component-loader.class.mjs +188 -0
  72. package/esm2022/lib/services/component-loader/component-loader.factory.mjs +32 -0
  73. package/{esm2020 → esm2022}/lib/services/component-loader/content-ref.class.mjs +12 -12
  74. package/esm2022/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
  75. package/esm2022/lib/services/modal-service/modal-container-component.mjs +126 -0
  76. package/{esm2020 → esm2022}/lib/services/modal-service/modal-options.class.mjs +35 -35
  77. package/esm2022/lib/services/modal-service/modal-service.mjs +220 -0
  78. package/{esm2020 → esm2022}/lib/services/modal-service/modal-styles.class.mjs +10 -10
  79. package/{esm2020 → esm2022}/lib/services/modal-service/modal.class.mjs +27 -27
  80. package/{esm2020 → esm2022}/lib/services/toaster.service.mjs +26 -26
  81. package/esm2022/lib/services/user-settings.service.mjs +35 -0
  82. package/esm2022/lib/services/utilities.service.mjs +47 -0
  83. package/{esm2020 → esm2022}/lib/tokens.mjs +7 -7
  84. package/esm2022/lib/types.mjs +133 -0
  85. package/{esm2020 → esm2022}/public-api.mjs +78 -70
  86. package/{fesm2020 → fesm2022}/indice-ng-components.mjs +4898 -4592
  87. package/fesm2022/indice-ng-components.mjs.map +1 -0
  88. package/index.d.ts +5 -5
  89. package/lib/controls/advanced-search/advanced-search.component.d.ts +40 -40
  90. package/lib/controls/advanced-search/models.d.ts +91 -91
  91. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +14 -14
  92. package/lib/controls/breadcrumb/breadcrumb-item.d.ts +7 -7
  93. package/lib/controls/breadcrumb/breadcrumb.component.d.ts +12 -12
  94. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +10 -10
  95. package/lib/controls/combobox/combobox.component.d.ts +35 -34
  96. package/lib/controls/content-tile/content-tile-header/content-tile-header.component.d.ts +7 -0
  97. package/lib/controls/content-tile/content-tile-item/content-tile-item.component.d.ts +8 -0
  98. package/lib/controls/content-tile/content-tile.component.d.ts +23 -0
  99. package/lib/controls/date-picker/date-picker.component.d.ts +53 -53
  100. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +26 -26
  101. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +15 -15
  102. package/lib/controls/language-selection/language-selection.component.d.ts +14 -14
  103. package/lib/controls/list-view/list-column.component.d.ts +9 -9
  104. package/lib/controls/list-view/list-details-section.component.d.ts +7 -7
  105. package/lib/controls/list-view/list-tile.component.d.ts +7 -7
  106. package/lib/controls/list-view/list-view-empty-state.component.d.ts +11 -11
  107. package/lib/controls/list-view/list-view.component.d.ts +62 -61
  108. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +21 -21
  109. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +22 -22
  110. package/lib/controls/pager/pager.component.d.ts +36 -36
  111. package/lib/controls/progress-bar/progress-bar.component.d.ts +16 -0
  112. package/lib/controls/side-pane/side-pane.component.d.ts +22 -18
  113. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +12 -11
  114. package/lib/controls/stats-grid/stats-grid.component.d.ts +16 -0
  115. package/lib/controls/stepper/lib-step-info.directive.d.ts +8 -8
  116. package/lib/controls/stepper/lib-step-label.directive.d.ts +8 -8
  117. package/lib/controls/stepper/lib-step.component.d.ts +34 -34
  118. package/lib/controls/stepper/lib-stepper.component.d.ts +43 -43
  119. package/lib/controls/stepper/types/step-selected-event.d.ts +12 -12
  120. package/lib/controls/stepper/types/stepper-type.d.ts +10 -10
  121. package/lib/controls/tabs/lib-tab-group.component.d.ts +21 -21
  122. package/lib/controls/tabs/lib-tab-label.directive.d.ts +8 -8
  123. package/lib/controls/tabs/lib-tab.component.d.ts +24 -24
  124. package/lib/controls/toaster/toaster-container.component.d.ts +13 -13
  125. package/lib/controls/toaster/toaster.component.d.ts +15 -15
  126. package/lib/controls/toggle/toggle.component.d.ts +19 -19
  127. package/lib/controls/toggle-button/toggle-button.component.d.ts +25 -25
  128. package/lib/controls/toggle-buttons-list/toggle-buttons-list.component.d.ts +15 -14
  129. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +24 -24
  130. package/lib/directives/click-outside.directive.d.ts +40 -40
  131. package/lib/directives/dynamic-component-host.directive.d.ts +9 -9
  132. package/lib/helpers/base-list.component.d.ts +54 -53
  133. package/lib/icons.d.ts +34 -34
  134. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +8 -8
  135. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +39 -39
  136. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +26 -26
  137. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +20 -20
  138. package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +14 -14
  139. package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +15 -15
  140. package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +10 -10
  141. package/lib/layouts/views/form-layout/form-layout.component.d.ts +26 -24
  142. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +42 -42
  143. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +29 -28
  144. package/lib/layouts/views/view-layout/view-layout.component.d.ts +31 -31
  145. package/lib/ng-components.module.d.ts +71 -65
  146. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +13 -13
  147. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +12 -12
  148. package/lib/pages/auth/logged-out/logged-out.component.d.ts +12 -12
  149. package/lib/pages/http-status/error/error.component.d.ts +8 -8
  150. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +8 -8
  151. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +8 -8
  152. package/lib/pipes/address.pipe.d.ts +8 -8
  153. package/lib/pipes/duration-format.pipe.d.ts +8 -8
  154. package/lib/pipes/short-number.pipe.d.ts +7 -0
  155. package/lib/services/breadcrumb.service.d.ts +29 -29
  156. package/lib/services/component-loader/component-loader-options.class.d.ts +30 -30
  157. package/lib/services/component-loader/component-loader.class.d.ts +92 -92
  158. package/lib/services/component-loader/component-loader.factory.d.ts +24 -24
  159. package/lib/services/component-loader/content-ref.class.d.ts +12 -12
  160. package/lib/services/modal-service/modal-backdrop-component.d.ts +20 -20
  161. package/lib/services/modal-service/modal-container-component.d.ts +33 -33
  162. package/lib/services/modal-service/modal-options.class.d.ts +81 -81
  163. package/lib/services/modal-service/modal-service.d.ts +58 -58
  164. package/lib/services/modal-service/modal-styles.class.d.ts +10 -10
  165. package/lib/services/modal-service/modal.class.d.ts +43 -43
  166. package/lib/services/toaster.service.d.ts +11 -11
  167. package/lib/services/user-settings.service.d.ts +13 -13
  168. package/lib/services/utilities.service.d.ts +11 -11
  169. package/lib/tokens.d.ts +10 -10
  170. package/lib/types.d.ts +179 -177
  171. package/package.json +14 -21
  172. package/public-api.d.ts +68 -60
  173. package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +0 -156
  174. package/esm2020/lib/controls/advanced-search/models.mjs +0 -109
  175. package/esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs +0 -48
  176. package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -117
  177. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -292
  178. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -72
  179. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +0 -31
  180. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
  181. package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -206
  182. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -79
  183. package/esm2020/lib/controls/pager/pager.component.mjs +0 -130
  184. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
  185. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
  186. package/esm2020/lib/controls/stepper/lib-step.component.mjs +0 -81
  187. package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +0 -108
  188. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +0 -66
  189. package/esm2020/lib/controls/toggle/toggle.component.mjs +0 -64
  190. package/esm2020/lib/controls/toggle-button/toggle-button.component.mjs +0 -87
  191. package/esm2020/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +0 -31
  192. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -71
  193. package/esm2020/lib/directives/click-outside.directive.mjs +0 -189
  194. package/esm2020/lib/helpers/base-list.component.mjs +0 -226
  195. package/esm2020/lib/icons.mjs +0 -36
  196. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -130
  197. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -90
  198. package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +0 -30
  199. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
  200. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -101
  201. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -98
  202. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
  203. package/esm2020/lib/ng-components.module.mjs +0 -288
  204. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
  205. package/esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs +0 -31
  206. package/esm2020/lib/pipes/address.pipe.mjs +0 -21
  207. package/esm2020/lib/pipes/duration-format.pipe.mjs +0 -64
  208. package/esm2020/lib/services/breadcrumb.service.mjs +0 -174
  209. package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
  210. package/esm2020/lib/services/component-loader/component-loader.factory.mjs +0 -32
  211. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
  212. package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
  213. package/esm2020/lib/services/modal-service/modal-service.mjs +0 -220
  214. package/esm2020/lib/services/user-settings.service.mjs +0 -35
  215. package/esm2020/lib/services/utilities.service.mjs +0 -47
  216. package/esm2020/lib/types.mjs +0 -132
  217. package/fesm2015/indice-ng-components.mjs +0 -4852
  218. package/fesm2015/indice-ng-components.mjs.map +0 -1
  219. package/fesm2020/indice-ng-components.mjs.map +0 -1
@@ -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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: LanguageSelectionComponent, deps: [{ token: APP_LANGUAGES }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: LanguageSelectionComponent, selector: "lib-language-selection", ngImport: i0, template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"langs-button\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <span *ngIf=\"lang.value === langsService?.selected\">{{lang.text}}</span>\r\n </ng-container>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'langs-menu-expanded':'langs-menu-collapsed'\" 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" }] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", 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=\"langs-button\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <span *ngIf=\"lang.value === langsService?.selected\">{{lang.text}}</span>\r\n </ng-container>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'langs-menu-expanded':'langs-menu-collapsed'\" 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: () => [{ type: undefined, decorators: [{
28
+ type: Inject,
29
+ args: [APP_LANGUAGES]
30
+ }] }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9sYW5ndWFnZS1zZWxlY3Rpb24vbGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9sYW5ndWFnZS1zZWxlY3Rpb24vbGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFPN0MsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUEwQyxZQUE4QztRQUE5QyxpQkFBWSxHQUFaLFlBQVksQ0FBa0M7UUFEakYsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFDZ0UsQ0FBQztJQUU3RixRQUFRO0lBQ1IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFrQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQVc7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzs4R0FoQlUsMEJBQTBCLGtCQUdqQixhQUFhO2tHQUh0QiwwQkFBMEIsOERDVHZDLDhpQ0FvQkE7OzJGRFhhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSx3QkFBd0I7OzBCQU1yQixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZW51T3B0aW9uIH0gZnJvbSAnLi8uLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVBQX0xBTkdVQUdFUyB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IElBcHBMYW5ndWFnZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbGFuZ3VhZ2Utc2VsZWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VTZWxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgbWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUFBfTEFOR1VBR0VTKSBwdWJsaWMgbGFuZ3NTZXJ2aWNlOiBJQXBwTGFuZ3VhZ2VzU2VydmljZSB8IHVuZGVmaW5lZCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdExhbmcob3B0aW9uOiBNZW51T3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sYW5nc1NlcnZpY2U/LnNldFNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMubGFuZ3NTZXJ2aWNlLnNldFNlbGVjdGVkKG9wdGlvbi52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGlja091dHNpZGUoJGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoJGV2ZW50KVwiPlxyXG4gIDxidXR0b24gY2xhc3M9XCJsYW5ncy1idXR0b25cIiAoY2xpY2spPVwibWVudUV4cGFuZGVkID0gIW1lbnVFeHBhbmRlZFwiPlxyXG4gICAgPGkgY2xhc3M9XCJ0ZXh0LXhzIG1yLTEgbXMtSWNvbiBtcy1JY29uLS1HbG9iZVwiPjwvaT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxhbmcgb2YgbGFuZ3NTZXJ2aWNlPy5vcHRpb25zIHwgYXN5bmNcIj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJsYW5nLnZhbHVlID09PSBsYW5nc1NlcnZpY2U/LnNlbGVjdGVkXCI+e3tsYW5nLnRleHR9fTwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8ZGl2XHJcbiAgICBbY2xhc3NdPVwibWVudUV4cGFuZGVkID8gJ2xhbmdzLW1lbnUtZXhwYW5kZWQnOidsYW5ncy1tZW51LWNvbGxhcHNlZCdcIiByb2xlPVwibWVudVwiIGFyaWEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiIGFyaWEtbGFiZWxsZWRieT1cIm1lbnUtYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInB5LTFcIiByb2xlPVwibm9uZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsYW5nIG9mIGxhbmdzU2VydmljZT8ub3B0aW9ucyB8IGFzeW5jXCI+XHJcbiAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdExhbmcobGFuZylcIiAqbmdJZj1cImxhbmcudmFsdWUgIT0gbGFuZ3NTZXJ2aWNlPy5zZWxlY3RlZFwiIGNsYXNzPVwibmF2LWxpbmstcHJvZmlsZVwiIHJvbGU9XCJtZW51aXRlbVwiIHRhYmluZGV4PVwiLTFcIiBpZD1cIm1lbnUtaXRlbS0wXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cInRleHQteHMgbXItMSBtcy1JY29uIG1zLUljb24tLUdsb2JlRmF2b3JpdGVcIj48L2k+XHJcbiAgICAgICAgICB7e2xhbmcuZGVzY3JpcHRpb259fVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,25 +1,25 @@
1
- import { Component, ContentChild, Input, TemplateRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ListColumnComponent {
4
- constructor() {
5
- this.title = null;
6
- // tslint:disable-next-line:no-input-rename
7
- this.fullWidth = false;
8
- this.template = null;
9
- }
10
- }
11
- ListColumnComponentfac = 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
- type: Component,
15
- args: [{ selector: 'lib-list-column', template: '<ng-content></ng-content>' }]
16
- }], ctorParameters: function () { return []; }, propDecorators: { title: [{
17
- type: Input
18
- }], fullWidth: [{
19
- type: Input,
20
- args: ['full-width']
21
- }], template: [{
22
- type: ContentChild,
23
- args: [TemplateRef]
24
- }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QjtRQUpTLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLDJDQUEyQztRQUN0QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ1osYUFBUSxHQUFlLElBQUksQ0FBQztJQUN2QyxDQUFDOztnSEFMTixtQkFBbUI7b0dBQW5CLG1CQUFtQixpS0FJaEIsV0FBVyxnREFMd0IsMkJBQTJCOzJGQUNqRSxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFDOzBFQUVwRSxLQUFLO3NCQUFiLEtBQUs7Z0JBRWUsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNRLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7c2VsZWN0b3I6ICdsaWItbGlzdC1jb2x1bW4nLCB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nfSlcclxuZXhwb3J0IGNsYXNzIExpc3RDb2x1bW5Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdmdWxsLXdpZHRoJykgZnVsbFdpZHRoID0gZmFsc2U7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
1
+ import { Component, ContentChild, Input, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ListColumnComponent {
4
+ constructor() {
5
+ this.title = null;
6
+ // tslint:disable-next-line:no-input-rename
7
+ this.fullWidth = false;
8
+ this.template = null;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", 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 }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListColumnComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'lib-list-column', template: '<ng-content></ng-content>' }]
16
+ }], ctorParameters: () => [], propDecorators: { title: [{
17
+ type: Input
18
+ }], fullWidth: [{
19
+ type: Input,
20
+ args: ['full-width']
21
+ }], template: [{
22
+ type: ContentChild,
23
+ args: [TemplateRef]
24
+ }] } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QjtRQUpTLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLDJDQUEyQztRQUN0QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ1osYUFBUSxHQUFlLElBQUksQ0FBQztJQUN2QyxDQUFDOzhHQUxOLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlLQUloQixXQUFXLGdEQUx3QiwyQkFBMkI7OzJGQUNqRSxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFDO3dEQUVwRSxLQUFLO3NCQUFiLEtBQUs7Z0JBRWUsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNRLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7c2VsZWN0b3I6ICdsaWItbGlzdC1jb2x1bW4nLCB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nfSlcclxuZXhwb3J0IGNsYXNzIExpc3RDb2x1bW5Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdmdWxsLXdpZHRoJykgZnVsbFdpZHRoID0gZmFsc2U7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
@@ -1,17 +1,17 @@
1
- import { Component, ContentChild, TemplateRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ListDetailsSectionComponent {
4
- constructor() {
5
- this.template = null;
6
- }
7
- }
8
- ListDetailsSectionComponentfac = 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
- type: Component,
12
- args: [{ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' }]
13
- }], ctorParameters: function () { return []; }, propDecorators: { template: [{
14
- type: ContentChild,
15
- args: [TemplateRef]
16
- }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QztRQUQyQixhQUFRLEdBQWUsSUFBSSxDQUFDO0lBRXZELENBQUM7O3dIQUhVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHNHQUN4QixXQUFXLGdEQUZrQywyQkFBMkI7MkZBQzNFLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUU7MEVBRTdELFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAnbGliLWxpc3QtZGV0YWlscy1zZWN0aW9uJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyB9KVxyXG5leHBvcnQgY2xhc3MgTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50e1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlOiBhbnkgfCBudWxsID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
1
+ import { Component, ContentChild, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ListDetailsSectionComponent {
4
+ constructor() {
5
+ this.template = null;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListDetailsSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", 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 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListDetailsSectionComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' }]
13
+ }], ctorParameters: () => [], propDecorators: { template: [{
14
+ type: ContentChild,
15
+ args: [TemplateRef]
16
+ }] } });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QztRQUQyQixhQUFRLEdBQWUsSUFBSSxDQUFDO0lBRXZELENBQUM7OEdBSFUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsc0dBQ3hCLFdBQVcsZ0RBRmtDLDJCQUEyQjs7MkZBQzNFLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUU7d0RBRTdELFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAnbGliLWxpc3QtZGV0YWlscy1zZWN0aW9uJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyB9KVxyXG5leHBvcnQgY2xhc3MgTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50e1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlOiBhbnkgfCBudWxsID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
@@ -1,17 +1,17 @@
1
- import { Component, ContentChild, TemplateRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ListTileComponent {
4
- constructor() {
5
- this.template = null;
6
- }
7
- }
8
- ListTileComponentfac = 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
- type: Component,
12
- args: [{ selector: 'lib-list-tile', template: '<ng-content></ng-content>' }]
13
- }], ctorParameters: function () { return []; }, propDecorators: { template: [{
14
- type: ContentChild,
15
- args: [TemplateRef]
16
- }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdwRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCO1FBRDJCLGFBQVEsR0FBZSxJQUFJLENBQUM7SUFFdkQsQ0FBQzs7OEdBSFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkZBQ2QsV0FBVyxnREFGdUIsMkJBQTJCOzJGQUNoRSxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTswRUFFbEQsUUFBUTtzQkFBbEMsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6ICdsaWItbGlzdC10aWxlJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyB9KVxyXG5leHBvcnQgY2xhc3MgTGlzdFRpbGVDb21wb25lbnR7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Component, ContentChild, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ListTileComponent {
4
+ constructor() {
5
+ this.template = null;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ListTileComponent, selector: "lib-list-tile", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListTileComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'lib-list-tile', template: '<ng-content></ng-content>' }]
13
+ }], ctorParameters: () => [], propDecorators: { template: [{
14
+ type: ContentChild,
15
+ args: [TemplateRef]
16
+ }] } });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdwRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCO1FBRDJCLGFBQVEsR0FBZSxJQUFJLENBQUM7SUFFdkQsQ0FBQzs4R0FIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwyRkFDZCxXQUFXLGdEQUZ1QiwyQkFBMkI7OzJGQUNoRSxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTt3REFFbEQsUUFBUTtzQkFBbEMsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6ICdsaWItbGlzdC10aWxlJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListViewEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", 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=\"py-20\">\r\n <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</div>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListViewEmptyStateComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'lib-list-view-empty-state', template: "<div class=\"py-20\">\r\n <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</div>" }]
20
+ }], ctorParameters: () => [], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFNekQsTUFBTSxPQUFPLDJCQUEyQjtJQU90QztRQUxTLFVBQUssR0FBRyx3QkFBd0IsQ0FBQztRQUMxQywyQ0FBMkM7UUFDdkIsYUFBUSxHQUFHLHNGQUFzRixDQUFDO1FBQ3RILDJDQUEyQztRQUNsQixpQkFBWSxHQUFHLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzhHQVZVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLG9MQ054QyxtOUNBcUJNOzsyRkRmTywyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsMkJBQTJCO3dEQUs1QixLQUFLO3NCQUFiLEtBQUs7Z0JBRWMsUUFBUTtzQkFBM0IsS0FBSzt1QkFBQyxXQUFXO2dCQUVPLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saXN0LXZpZXctZW1wdHktc3RhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXZpZXctZW1wdHktc3RhdGUuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld0VtcHR5U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSB0aXRsZSA9ICfOlM61zr0gzrLPgc6tzrjOt866zrHOvSDOtc6zzrPPgc6xz4bOrc+CLic7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc3ViLXRpdGxlJykgc3ViVGl0bGUgPSAnzqDOsc+BzrHOus6xzrvPjiDOsc67zrvOrM6+z4TOtSDPhM6xIM66z4HOuc+Ezq7Pgc65zrEgzrHOvc6xzrbOrs+EzrfPg863z4Igz4POsc+CIM6uIM6+zrXOus65zr3Ors+Dz4TOtSDPgM+Bzr/Pg864zq3PhM6/zr3PhM6xz4IgzrzOuc6xIM69zq3OsSDOtc6zzrPPgc6xz4bOric7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbmV3LWl0ZW0tbGFiZWwnKSBuZXdJdGVtTGFiZWwgPSAnzp3Orc6xIM61zrPOs8+BzrHPhs6uJztcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJweS0yMFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwLTIwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcC0yXCI+XHJcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwibXgtYXV0byBoLTEyIHctMTIgdGV4dC1ncmF5LTQwMFwiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTQgN3YxMGMwIDIuMjEgMy41ODIgNCA4IDRzOC0xLjc5IDgtNFY3TTQgN2MwIDIuMjEgMy41ODIgNCA4IDRzOC0xLjc5IDgtNE00IDdjMC0yLjIxIDMuNTgyLTQgOC00czggMS43OSA4IDRtMCA1YzAgMi4yMS0zLjU4MiA0LTggNHMtOC0xLjc5LTgtNFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgICA8aDMgY2xhc3M9XCJtdC0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPnt7dGl0bGV9fTwvaDM+XHJcbiAgICAgIDxwIGNsYXNzPVwibXQtMSB0ZXh0LXNtIHRleHQtZ3JheS01MDBcIj5cclxuICAgICAgICB7e3N1YlRpdGxlfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtNlwiICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBweC00IHB5LTIgYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBzaGFkb3ctc20gdGV4dC1zbSBmb250LW1lZGl1bSByb3VuZGVkLW1kIHRleHQtd2hpdGUgYmctZ3JheS02MDAgaG92ZXI6YmctZ3JheS03MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLW9mZnNldC0xIGZvY3VzOnJpbmctZ3JheS01MDBcIj5cclxuICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogc29saWQvcGx1cyAtLT5cclxuICAgICAgICAgIDxzdmcgY2xhc3M9XCItbWwtMSBtci0yIGgtNiB3LTZcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPHBhdGggdmVjdG9yLWVmZmVjdD1cIm5vbi1zY2FsaW5nLXN0cm9rZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTkgMTNoNm0tMy0zdjZtLTkgMVY3YTIgMiAwIDAxMi0yaDZsMiAyaDZhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJ6XCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAge3tuZXdJdGVtTGFiZWx9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,210 @@
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 "../advanced-search/advanced-search.component";
10
+ import * as i3 from "./list-view-empty-state.component";
11
+ import * as i4 from "../pager/pager.component";
12
+ import * as i5 from "../skeleton-loader/skeleton-loader.component";
13
+ export class ListViewComponent {
14
+ // COLUMNS
15
+ set cols(refs) {
16
+ this.columns = refs?.toArray();
17
+ if (this.columns && this.columns.length > 0) {
18
+ this.tableViewSupported = true;
19
+ }
20
+ this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;
21
+ this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';
22
+ this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';
23
+ }
24
+ // tslint:disable-next-line:no-input-rename
25
+ set tiles(ref) {
26
+ this.tileTemplate = ref;
27
+ if (this.tileTemplate) {
28
+ this.tilesViewSupported = true;
29
+ }
30
+ }
31
+ set details(ref) {
32
+ this.detailsTemplate = ref;
33
+ if (this.detailsTemplate) {
34
+ this.detailsSectionSupported = true;
35
+ }
36
+ }
37
+ constructor() {
38
+ this.searchOptions = [];
39
+ this.filters = [];
40
+ // BUSY STATE
41
+ this.busy = false;
42
+ // PAGING - pass through for pager component
43
+ this.count = null;
44
+ this.page = 1;
45
+ this.view = ListViewType.Table;
46
+ this.sort = null;
47
+ // tslint:disable-next-line:no-input-rename
48
+ this.pageSize = 20;
49
+ // tslint:disable-next-line:no-input-rename
50
+ this.pageSizeOptions = [];
51
+ // SORTING - pass through for pager component
52
+ // tslint:disable-next-line:no-input-rename
53
+ this.sortOptions = [];
54
+ this.operatorsDisabled = false;
55
+ // tslint:disable-next-line:no-input-rename
56
+ this.sortdir = '-';
57
+ // tslint:disable-next-line:no-input-rename
58
+ this.tilesCount = 4;
59
+ // tslint:disable-next-line:no-input-rename
60
+ this.showPager = true;
61
+ // tslint:disable-next-line:no-input-rename
62
+ this.pagerPosition = PagerPosition.Top;
63
+ // DETAILS SECTION
64
+ // Check if details section and button should be displayed according to the count of the value given
65
+ // tslint:disable-next-line:no-input-rename
66
+ this.detailsSectionPropertyCount = null;
67
+ this.pageChanged = new EventEmitter();
68
+ this.pageSizeChanged = new EventEmitter();
69
+ this.detailsOpened = new EventEmitter();
70
+ this.sortChanged = new EventEmitter();
71
+ this.sortdirChanged = new EventEmitter();
72
+ this.advancedSearchChanged = new EventEmitter();
73
+ this.multipleFullWidth = false;
74
+ this.expandIcon = Icons.Expand;
75
+ this.collapseIcon = Icons.Collapse;
76
+ this.tableViewSupported = false;
77
+ this.fullWidthTHClass = 'list-view-th-full';
78
+ this.fullWidthTDClass = 'list-view-td-full';
79
+ this.tilesViewSupported = false;
80
+ this.detailsSectionSupported = false;
81
+ this.loaderItems = [];
82
+ this.columns = [];
83
+ this.tilesDeckClass = 'cards-deck-4';
84
+ this.tileTemplate = null;
85
+ this.detailsTemplate = null;
86
+ for (let i = 0; i < 9; i++) {
87
+ this.loaderItems.push({});
88
+ }
89
+ if (this.pagerPosition) {
90
+ this.pagerPosition = this.pagerPosition;
91
+ }
92
+ }
93
+ ngOnChanges(changes) {
94
+ const tilesCountChange = changes['tiles-count'] || changes.tilesCount;
95
+ if (tilesCountChange) {
96
+ this.setTilesDeckClass(tilesCountChange.currentValue);
97
+ }
98
+ }
99
+ // events
100
+ emitPageChanged($event) {
101
+ this.pageChanged.emit($event);
102
+ }
103
+ emitPageSizeChanged($event) {
104
+ this.pageSizeChanged.emit($event);
105
+ }
106
+ emitSortChanged($event) {
107
+ this.sortChanged.emit($event);
108
+ }
109
+ emitSortdirChanged($event) {
110
+ this.sortdirChanged.emit($event);
111
+ }
112
+ emitAdvancedSearchChanged($event) {
113
+ this.advancedSearchChanged.emit($event);
114
+ }
115
+ toggleDetails(item) {
116
+ item.detailsExpanded = !item.detailsExpanded;
117
+ this.detailsOpened.emit({ item, open: item.detailsExpanded });
118
+ }
119
+ // helpers
120
+ setTilesDeckClass(tiles) {
121
+ if (tiles >= 1 && tiles <= 4) {
122
+ this.tilesDeckClass =
123
+ this.view !== ListViewType.Gallery
124
+ ? `cards-deck-${tiles}`
125
+ : this.items && this.items.length > 0
126
+ ? `gallery-deck-${tiles}`
127
+ : 'gallery-deck';
128
+ }
129
+ else {
130
+ this.tilesDeckClass =
131
+ this.view !== ListViewType.Gallery
132
+ ? 'cards-deck-3'
133
+ : this.items && this.items.length > 0
134
+ ? 'gallery-deck-3'
135
+ : 'gallery-deck';
136
+ }
137
+ }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ListViewComponent, selector: "lib-list-view", inputs: { searchOptions: ["search-options", "searchOptions"], filters: "filters", 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"], operatorsDisabled: ["operators-disabled", "operatorsDisabled"], 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", advancedSearchChanged: "advancedSearchChanged" }, 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>\r\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\r\n [search-options]=\"searchOptions\"\r\n [operators-disabled]=\"operatorsDisabled\"\r\n [filters]=\"filters\"\r\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\">\r\n </lib-advanced-search>\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 <ng-content select=\"[pager-near-content]\" ngProjectAs=\"[pager-near-content]\"></ng-content>\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]=\"busy ? 'cards-deck-1' : tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [deck-class]=\"tilesDeckClass\" [count]=\"7\" [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\" [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\" 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\" role=\"listitem\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\" [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\"\r\n *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 title=\"expand-collapse\"\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\"\r\n *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 title=\"toggleDetails\"\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=\"px-2 mt-2\"\r\n *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\">\r\n <lib-pager [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>", 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.AdvancedSearchComponent, selector: "lib-advanced-search", inputs: ["search-options", "operators-disabled", "filters"], outputs: ["advancedSearchChanged"] }, { kind: "component", type: i3.ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: ["title", "sub-title", "new-item-label"] }, { kind: "component", type: i4.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: i5.SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: ["count", "type", "deck-class"] }] }); }
140
+ }
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ListViewComponent, decorators: [{
142
+ type: Component,
143
+ args: [{ selector: 'lib-list-view', template: "<div>\r\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\r\n [search-options]=\"searchOptions\"\r\n [operators-disabled]=\"operatorsDisabled\"\r\n [filters]=\"filters\"\r\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\">\r\n </lib-advanced-search>\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 <ng-content select=\"[pager-near-content]\" ngProjectAs=\"[pager-near-content]\"></ng-content>\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]=\"busy ? 'cards-deck-1' : tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [deck-class]=\"tilesDeckClass\" [count]=\"7\" [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\" [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\" 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\" role=\"listitem\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\" [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\"\r\n *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 title=\"expand-collapse\"\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\"\r\n *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 title=\"toggleDetails\"\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=\"px-2 mt-2\"\r\n *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\">\r\n <lib-pager [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>" }]
144
+ }], ctorParameters: () => [], propDecorators: { searchOptions: [{
145
+ type: Input,
146
+ args: ['search-options']
147
+ }], filters: [{
148
+ type: Input
149
+ }], busy: [{
150
+ type: Input
151
+ }], items: [{
152
+ type: Input
153
+ }], count: [{
154
+ type: Input
155
+ }], page: [{
156
+ type: Input
157
+ }], view: [{
158
+ type: Input
159
+ }], sort: [{
160
+ type: Input
161
+ }], pageSize: [{
162
+ type: Input,
163
+ args: ['page-size']
164
+ }], pageSizeOptions: [{
165
+ type: Input,
166
+ args: ['page-size-options']
167
+ }], sortOptions: [{
168
+ type: Input,
169
+ args: ['sort-options']
170
+ }], operatorsDisabled: [{
171
+ type: Input,
172
+ args: ['operators-disabled']
173
+ }], sortdir: [{
174
+ type: Input,
175
+ args: ['sort-dir']
176
+ }], tilesCount: [{
177
+ type: Input,
178
+ args: ['tiles-count']
179
+ }], showPager: [{
180
+ type: Input,
181
+ args: ['show-pager']
182
+ }], pagerPosition: [{
183
+ type: Input,
184
+ args: ['pager-position']
185
+ }], detailsSectionPropertyCount: [{
186
+ type: Input,
187
+ args: ['details-section-property-count']
188
+ }], cols: [{
189
+ type: ContentChildren,
190
+ args: [ListColumnComponent, { read: ListColumnComponent }]
191
+ }], tiles: [{
192
+ type: ContentChild,
193
+ args: [ListTileComponent, { read: ListTileComponent }]
194
+ }], details: [{
195
+ type: ContentChild,
196
+ args: [ListDetailsSectionComponent, { read: ListDetailsSectionComponent }]
197
+ }], pageChanged: [{
198
+ type: Output
199
+ }], pageSizeChanged: [{
200
+ type: Output
201
+ }], detailsOpened: [{
202
+ type: Output
203
+ }], sortChanged: [{
204
+ type: Output
205
+ }], sortdirChanged: [{
206
+ type: Output
207
+ }], advancedSearchChanged: [{
208
+ type: Output
209
+ }] } });
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFjLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8saUJBQWlCO0lBZ0M1QixVQUFVO0lBQ1YsSUFDSSxJQUFJLENBQUMsSUFBb0M7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FB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LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudU9wdGlvbiwgTGlzdFZpZXdUeXBlLCBQYWdlclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBMaXN0VGlsZUNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi9pY29ucyc7XHJcbmltcG9ydCB7IEZpbHRlckNsYXVzZSwgU2VhcmNoT3B0aW9uIH0gZnJvbSAnLi4vYWR2YW5jZWQtc2VhcmNoL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saXN0LXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCdzZWFyY2gtb3B0aW9ucycpIHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbltdID0gW107XHJcbiAgQElucHV0KCkgZmlsdGVyczogRmlsdGVyQ2xhdXNlW10gPSBbXTtcclxuICAvLyBCVVNZIFNUQVRFXHJcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xyXG4gIC8vIERBVEEgU09VUkNFIVxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXSB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgLy8gUEFHSU5HIC0gcGFzcyB0aHJvdWdoIGZvciBwYWdlciBjb21wb25lbnRcclxuICBASW5wdXQoKSBjb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgcGFnZSA9IDE7XHJcbiAgQElucHV0KCkgdmlldyA9IExpc3RWaWV3VHlwZS5UYWJsZTtcclxuICBASW5wdXQoKSBzb3J0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdwYWdlLXNpemUnKSBwYWdlU2l6ZSA9IDIwO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3BhZ2Utc2l6ZS1vcHRpb25zJykgcGFnZVNpemVPcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICAvLyBTT1JUSU5HIC0gcGFzcyB0aHJvdWdoIGZvciBwYWdlciBjb21wb25lbnRcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzb3J0LW9wdGlvbnMnKSBzb3J0T3B0aW9uczogTWVudU9wdGlvbltdID0gW107XHJcbiAgQElucHV0KCdvcGVyYXRvcnMtZGlzYWJsZWQnKSBvcGVyYXRvcnNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NvcnQtZGlyJykgc29ydGRpcjogc3RyaW5nIHwgbnVsbCA9ICctJztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCd0aWxlcy1jb3VudCcpIHRpbGVzQ291bnQgPSA0O1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3Nob3ctcGFnZXInKSBzaG93UGFnZXIgPSB0cnVlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3BhZ2VyLXBvc2l0aW9uJykgcGFnZXJQb3NpdGlvbjogYW55IHwgdW5kZWZpbmVkID0gUGFnZXJQb3NpdGlvbi5Ub3A7XHJcbiAgLy8gREVUQUlMUyBTRUNUSU9OXHJcbiAgLy8gQ2hlY2sgaWYgZGV0YWlscyBzZWN0aW9uIGFuZCBidXR0b24gc2hvdWxkIGJlIGRpc3BsYXllZCBhY2NvcmRpbmcgdG8gdGhlIGNvdW50IG9mIHRoZSB2YWx1ZSBnaXZlblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2RldGFpbHMtc2VjdGlvbi1wcm9wZXJ0eS1jb3VudCcpIGRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gQ09MVU1OU1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdENvbHVtbkNvbXBvbmVudCwgeyByZWFkOiBMaXN0Q29sdW1uQ29tcG9uZW50IH0pXHJcbiAgc2V0IGNvbHMocmVmczogUXVlcnlMaXN0PExpc3RDb2x1bW5Db21wb25lbnQ+KSB7XHJcbiAgICB0aGlzLmNvbHVtbnMgPSByZWZzPy50b0FycmF5KCk7XHJcbiAgICBpZiAodGhpcy5jb2x1bW5zICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMudGFibGVWaWV3U3VwcG9ydGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMubXVsdGlwbGVGdWxsV2lkdGggPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGMgPT4gYy5mdWxsV2lkdGgpLmxlbmd0aCA+IDE7XHJcbiAgICB0aGlzLmZ1bGxXaWR0aFRIQ2xhc3MgPSB0aGlzLm11bHRpcGxlRnVsbFdpZHRoID8gJ2xpc3Qtdmlldy10aC1oYWxmJyA6ICdsaXN0LXZpZXctdGgtZnVsbCc7XHJcbiAgICB0aGlzLmZ1bGxXaWR0aFREQ2xhc3MgPSB0aGlzLm11bHRpcGxlRnVsbFdpZHRoID8gJ2xpc3Qtdmlldy10ZC1oYWxmJyA6ICdsaXN0LXZpZXctdGQtZnVsbCc7XHJcbiAgfVxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBAQ29udGVudENoaWxkKExpc3RUaWxlQ29tcG9uZW50LCB7IHJlYWQ6IExpc3RUaWxlQ29tcG9uZW50IH0pXHJcbiAgc2V0IHRpbGVzKHJlZjogTGlzdFRpbGVDb21wb25lbnQpIHtcclxuICAgIHRoaXMudGlsZVRlbXBsYXRlID0gcmVmO1xyXG4gICAgaWYgKHRoaXMudGlsZVRlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMudGlsZXNWaWV3U3VwcG9ydGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50LCB7IHJlYWQ6IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9KVxyXG4gIHNldCBkZXRhaWxzKHJlZjogTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50KSB7XHJcbiAgICB0aGlzLmRldGFpbHNUZW1wbGF0ZSA9IHJlZjtcclxuICAgIGlmICh0aGlzLmRldGFpbHNUZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLmRldGFpbHNTZWN0aW9uU3VwcG9ydGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgcGFnZVNpemVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIEBPdXRwdXQoKSBkZXRhaWxzT3BlbmVkOiBFdmVudEVtaXR0ZXI8eyBpdGVtOiBhbnksIG9wZW46IGJvb2xlYW4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogYW55LCBvcGVuOiBib29sZWFuIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzb3J0ZGlyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYWR2YW5jZWRTZWFyY2hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8RmlsdGVyQ2xhdXNlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDbGF1c2VbXT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBtdWx0aXBsZUZ1bGxXaWR0aCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBleHBhbmRJY29uID0gSWNvbnMuRXhwYW5kO1xyXG4gIHB1YmxpYyBjb2xsYXBzZUljb24gPSBJY29ucy5Db2xsYXBzZTtcclxuICBwdWJsaWMgdGFibGVWaWV3U3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGZ1bGxXaWR0aFRIQ2xhc3MgPSAnbGlzdC12aWV3LXRoLWZ1bGwnO1xyXG4gIHB1YmxpYyBmdWxsV2lkdGhURENsYXNzID0gJ2xpc3Qtdmlldy10ZC1mdWxsJztcclxuICBwdWJsaWMgdGlsZXNWaWV3U3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGRldGFpbHNTZWN0aW9uU3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGxvYWRlckl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyB0aWxlc0RlY2tDbGFzcyA9ICdjYXJkcy1kZWNrLTQnO1xyXG4gIHB1YmxpYyB0aWxlVGVtcGxhdGU6IGFueSB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xyXG4gIHB1YmxpYyBkZXRhaWxzVGVtcGxhdGU6IGFueSB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgOTsgaSsrKSB7XHJcbiAgICAgIHRoaXMubG9hZGVySXRlbXMucHVzaCh7fSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wYWdlclBvc2l0aW9uKSB7XHJcbiAgICAgIHRoaXMucGFnZXJQb3NpdGlvbiA9IHRoaXMucGFnZXJQb3NpdGlvbiBhcyBQYWdlclBvc2l0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgdGlsZXNDb3VudENoYW5nZSA9IGNoYW5nZXNbJ3RpbGVzLWNvdW50J10gfHwgY2hhbmdlcy50aWxlc0NvdW50O1xyXG4gICAgaWYgKHRpbGVzQ291bnRDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5zZXRUaWxlc0RlY2tDbGFzcyh0aWxlc0NvdW50Q2hhbmdlLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBldmVudHNcclxuICBwdWJsaWMgZW1pdFBhZ2VDaGFuZ2VkKCRldmVudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VTaXplQ2hhbmdlZC5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1pdFNvcnRDaGFuZ2VkKCRldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNvcnRDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcbiAgcHVibGljIGVtaXRTb3J0ZGlyQ2hhbmdlZCgkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zb3J0ZGlyQ2hhbmdlZC5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBlbWl0QWR2YW5jZWRTZWFyY2hDaGFuZ2VkKCRldmVudDogRmlsdGVyQ2xhdXNlW10pOiB2b2lkIHtcclxuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVEZXRhaWxzKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgaXRlbS5kZXRhaWxzRXhwYW5kZWQgPSAhaXRlbS5kZXRhaWxzRXhwYW5kZWQ7XHJcbiAgICB0aGlzLmRldGFpbHNPcGVuZWQuZW1pdCh7IGl0ZW0sIG9wZW46IGl0ZW0uZGV0YWlsc0V4cGFuZGVkIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gaGVscGVyc1xyXG4gIHByaXZhdGUgc2V0VGlsZXNEZWNrQ2xhc3ModGlsZXM6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRpbGVzID49IDEgJiYgdGlsZXMgPD0gNCkge1xyXG4gICAgICB0aGlzLnRpbGVzRGVja0NsYXNzID1cclxuICAgICAgICB0aGlzLnZpZXcgIT09IExpc3RWaWV3VHlwZS5HYWxsZXJ5XHJcbiAgICAgICAgICA/IGBjYXJkcy1kZWNrLSR7dGlsZXN9YFxyXG4gICAgICAgICAgOiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICA/IGBnYWxsZXJ5LWRlY2stJHt0aWxlc31gXHJcbiAgICAgICAgICAgIDogJ2dhbGxlcnktZGVjayc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRpbGVzRGVja0NsYXNzID1cclxuICAgICAgICB0aGlzLnZpZXcgIT09IExpc3RWaWV3VHlwZS5HYWxsZXJ5XHJcbiAgICAgICAgICA/ICdjYXJkcy1kZWNrLTMnXHJcbiAgICAgICAgICA6IHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgID8gJ2dhbGxlcnktZGVjay0zJ1xyXG4gICAgICAgICAgICA6ICdnYWxsZXJ5LWRlY2snO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdj5cclxuICA8bGliLWFkdmFuY2VkLXNlYXJjaCAqbmdJZj1cInNlYXJjaE9wdGlvbnMgJiYgc2VhcmNoT3B0aW9ucy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoLW9wdGlvbnNdPVwic2VhcmNoT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW29wZXJhdG9ycy1kaXNhYmxlZF09XCJvcGVyYXRvcnNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGFkdmFuY2VkU2VhcmNoQ2hhbmdlZCk9XCJlbWl0QWR2YW5jZWRTZWFyY2hDaGFuZ2VkKCRldmVudClcIj5cclxuICA8L2xpYi1hZHZhbmNlZC1zZWFyY2g+XHJcblxyXG4gIDxsaWItcGFnZXIgKm5nSWY9XCJzaG93UGFnZXIgJiYgKHBhZ2VyUG9zaXRpb24gPT0gJ3RvcCcgfHwgcGFnZXJQb3NpdGlvbiA9PSAnYm90aCcpXCJcclxuICAgICAgICAgICAgIFtwYWdlXT1cInBhZ2VcIlxyXG4gICAgICAgICAgICAgW3BhZ2Utc2l6ZV09XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICAgICBbY291bnRdPVwiY291bnRcIlxyXG4gICAgICAgICAgICAgW3NvcnQtb3B0aW9uc109XCJzb3J0T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcclxuICAgICAgICAgICAgIFtzb3J0LWRpcl09XCJzb3J0ZGlyXCJcclxuICAgICAgICAgICAgIFtidXN5XT1cImJ1c3lcIlxyXG4gICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cImVtaXRQYWdlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZWQpPVwiZW1pdFBhZ2VTaXplQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChzb3J0Q2hhbmdlZCk9XCJlbWl0U29ydENoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAoc29ydGRpckNoYW5nZWQpPVwiZW1pdFNvcnRkaXJDaGFuZ2VkKCRldmVudClcIj5cclxuICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwYWdlci1uZWFyLWNvbnRlbnRdXCIgbmdQcm9qZWN0QXM9XCJbcGFnZXItbmVhci1jb250ZW50XVwiPjwvbmctY29udGVudD5cclxuICA8L2xpYi1wYWdlcj5cclxuPC9kaXY+XHJcblxyXG48bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ2aWV3XCI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0aWxlcydcIj5cclxuICAgIDxkaXYgW2NsYXNzXT1cImJ1c3kgPyAnY2FyZHMtZGVjay0xJyA6IHRpbGVzRGVja0NsYXNzXCI+XHJcblxyXG4gICAgICA8bGliLXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImJ1c3lcIiBbZGVjay1jbGFzc109XCJ0aWxlc0RlY2tDbGFzc1wiIFtjb3VudF09XCI3XCIgW3R5cGVdPVwiJ3RpbGVzJ1wiPjwvbGliLXNrZWxldG9uLWxvYWRlcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYnVzeSAmJiBpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGlsZVRlbXBsYXRlIHx8ICF0aWxlVGVtcGxhdGUudGVtcGxhdGVcIj50ZW1wbGF0ZSBtaXNzaW5nLi48L3NwYW4+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGlsZVRlbXBsYXRlLnRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gIDwhLS0gKm5nU3dpdGNoQ2FzZT1cIidnYWxsZXJ5J1wiIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidnYWxsZXJ5J1wiPlxyXG4gICAgPHVsIHJvbGU9XCJsaXN0XCIgcm9sZT1cImxpc3RcIiBbY2xhc3NdPVwidGlsZXNEZWNrQ2xhc3NcIj5cclxuXHJcbiAgICAgIDxsaWItc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiYnVzeVwiIFtjb3VudF09XCI1XCIgW3R5cGVdPVwiJ3RpbGVzJ1wiPjwvbGliLXNrZWxldG9uLWxvYWRlcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYnVzeSAmJiBpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiIHJvbGU9XCJsaXN0aXRlbVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGlsZVRlbXBsYXRlIHx8ICF0aWxlVGVtcGxhdGUudGVtcGxhdGVcIj50ZW1wbGF0ZSBtaXNzaW5nLi48L3NwYW4+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGlsZVRlbXBsYXRlLnRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdWw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gKm5nU3dpdGNoQ2FzZT1cIid0YWJsZSdcIiAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImxpc3Qtdmlldy1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxpc3Qtdmlldy1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJsaXN0LXZpZXctdGFibGVcIj5cclxuICAgICAgICAgIDx0aGVhZCBjbGFzcz1cImxpc3Qtdmlldy10aGVhZFwiPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJsaXN0LXZpZXctdGgtZGV0YWlsc1wiPjwvdGg+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5mdWxsV2lkdGggPyBmdWxsV2lkdGhUSENsYXNzIDogJ2xpc3Qtdmlldy10aCdcIj5cclxuICAgICAgICAgICAgICAgICAge3tjb2wudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJsaXN0LXZpZXctdGJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwiYnVzeVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxvYWRlckl0ZW1zO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwibGlzdC12aWV3LXRyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblByb3BlcnR5Q291bnQgIT09IG51bGwgPyBpdGVtW2RldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudF0gIT09IDAgOiB0cnVlOyBlbHNlIGhpZGRlbkRldGFpbHNCdXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGRpc2FibGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cImV4cGFuZC1jb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWNvbGxhcHNlLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBzb2xpZC9wbHVzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkID8gY29sbGFwc2VJY29uIDogZXhwYW5kSWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoaWRkZW5EZXRhaWxzQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCI+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5mdWxsV2lkdGggPyBmdWxsV2lkdGhURENsYXNzIDogJ2xpc3Qtdmlldy10ZCdcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBhbmltYXRlLXB1bHNlIGgtOCBiZy1ncmF5LTIwMCByb3VuZGVkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJpdGVtLmRldGFpbHNFeHBhbmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC12aWV3LXRkIGJnLWdyYXktMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRldGFpbHNUZW1wbGF0ZS50ZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImxpc3Qtdmlldy10Ym9keVwiXHJcbiAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYnVzeVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwibGlzdC12aWV3LXRyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblByb3BlcnR5Q291bnQgIT09IG51bGwgPyBpdGVtW2RldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudF0gIT09IDAgOiB0cnVlOyBlbHNlIGhpZGRlbkRldGFpbHNCdXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVEZXRhaWxzKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwidG9nZ2xlRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWNvbGxhcHNlLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBzb2xpZC9wbHVzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkID8gY29sbGFwc2VJY29uIDogZXhwYW5kSWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoaWRkZW5EZXRhaWxzQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCI+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5mdWxsV2lkdGggPyBmdWxsV2lkdGhURENsYXNzIDogJ2xpc3Qtdmlldy10ZCdcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbC50ZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJpdGVtLmRldGFpbHNFeHBhbmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC12aWV3LXRkIGJnLWdyYXktMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRldGFpbHNUZW1wbGF0ZS50ZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJ1c3kgJiYgaXRlbXMgJiYgaXRlbXMubGVuZ3RoID09PSAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZHMtZGVjay0xXCI+XHJcbiAgICAgIDxsaWItbGlzdC12aWV3LWVtcHR5LXN0YXRlPjwvbGliLWxpc3Qtdmlldy1lbXB0eS1zdGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuXHJcbjxkaXYgY2xhc3M9XCJweC0yIG10LTJcIlxyXG4gICAgICpuZ0lmPVwiaXRlbXMgJiYgaXRlbXMubGVuZ3RoICE9PSAwICYmIHNob3dQYWdlciAmJiAocGFnZXJQb3NpdGlvbiA9PSAnYm90dG9tJyB8fCBwYWdlclBvc2l0aW9uID09ICdib3RoJylcIj5cclxuICA8bGliLXBhZ2VyIFtwYWdlXT1cInBhZ2VcIlxyXG4gICAgICAgICAgICAgW3BhZ2Utc2l6ZV09XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICAgICBbY291bnRdPVwiY291bnRcIlxyXG4gICAgICAgICAgICAgW3NvcnQtb3B0aW9uc109XCJzb3J0T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcclxuICAgICAgICAgICAgIFtzb3J0LWRpcl09XCJzb3J0ZGlyXCJcclxuICAgICAgICAgICAgIFtidXN5XT1cImJ1c3lcIlxyXG4gICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cImVtaXRQYWdlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZWQpPVwiZW1pdFBhZ2VTaXplQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChzb3J0Q2hhbmdlZCk9XCJlbWl0U29ydENoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAoc29ydGRpckNoYW5nZWQpPVwiZW1pdFNvcnRkaXJDaGFuZ2VkKCRldmVudClcIj5cclxuICA8L2xpYi1wYWdlcj5cclxuPC9kaXY+Il19