@indice/ng-components 0.2.175 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/README.md +4 -4
  2. package/_styles.scss +4323 -4275
  3. package/{esm2020 → esm2022}/indice-ng-components.mjs +4 -4
  4. package/esm2022/lib/controls/advanced-search/advanced-search.component.mjs +156 -0
  5. package/esm2022/lib/controls/advanced-search/models.mjs +109 -0
  6. package/esm2022/lib/controls/avatar-initials/avatar-initials.component.mjs +48 -0
  7. package/{esm2020 → esm2022}/lib/controls/breadcrumb/breadcrumb-item.mjs +14 -14
  8. package/esm2022/lib/controls/breadcrumb/breadcrumb.component.mjs +26 -0
  9. package/esm2022/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
  10. package/esm2022/lib/controls/combobox/combobox.component.mjs +121 -0
  11. package/esm2022/lib/controls/content-tile/content-tile-header/content-tile-header.component.mjs +17 -0
  12. package/esm2022/lib/controls/content-tile/content-tile-item/content-tile-item.component.mjs +19 -0
  13. package/esm2022/lib/controls/content-tile/content-tile.component.mjs +63 -0
  14. package/esm2022/lib/controls/date-picker/date-picker.component.mjs +300 -0
  15. package/esm2022/lib/controls/drop-down-menu/drop-down-menu.component.mjs +72 -0
  16. package/esm2022/lib/controls/kpi-tile/kpi-tile.component.mjs +43 -0
  17. package/esm2022/lib/controls/language-selection/language-selection.component.mjs +31 -0
  18. package/{esm2020 → esm2022}/lib/controls/list-view/list-column.component.mjs +25 -25
  19. package/esm2022/lib/controls/list-view/list-details-section.component.mjs +17 -0
  20. package/{esm2020 → esm2022}/lib/controls/list-view/list-tile.component.mjs +17 -17
  21. package/esm2022/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
  22. package/esm2022/lib/controls/list-view/list-view.component.mjs +210 -0
  23. package/esm2022/lib/controls/nav-links-list/nav-links-list.component.mjs +54 -0
  24. package/esm2022/lib/controls/notifications-indicator/notifications-indicator.component.mjs +79 -0
  25. package/esm2022/lib/controls/pager/pager.component.mjs +130 -0
  26. package/esm2022/lib/controls/progress-bar/progress-bar.component.mjs +46 -0
  27. package/esm2022/lib/controls/side-pane/side-pane.component.mjs +87 -0
  28. package/esm2022/lib/controls/skeleton-loader/skeleton-loader.component.mjs +29 -0
  29. package/esm2022/lib/controls/stats-grid/stats-grid.component.mjs +49 -0
  30. package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-info.directive.mjs +16 -16
  31. package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-label.directive.mjs +16 -16
  32. package/esm2022/lib/controls/stepper/lib-step.component.mjs +81 -0
  33. package/esm2022/lib/controls/stepper/lib-stepper.component.mjs +108 -0
  34. package/esm2022/lib/controls/stepper/types/step-selected-event.mjs +4 -0
  35. package/{esm2020 → esm2022}/lib/controls/stepper/types/stepper-type.mjs +12 -12
  36. package/esm2022/lib/controls/tabs/lib-tab-group.component.mjs +66 -0
  37. package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab-label.directive.mjs +16 -16
  38. package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab.component.mjs +64 -64
  39. package/esm2022/lib/controls/toaster/toaster-container.component.mjs +28 -0
  40. package/esm2022/lib/controls/toaster/toaster.component.mjs +31 -0
  41. package/esm2022/lib/controls/toggle/toggle.component.mjs +64 -0
  42. package/esm2022/lib/controls/toggle-button/toggle-button.component.mjs +87 -0
  43. package/esm2022/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +34 -0
  44. package/esm2022/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
  45. package/esm2022/lib/directives/click-outside.directive.mjs +189 -0
  46. package/esm2022/lib/directives/dynamic-component-host.directive.mjs +17 -0
  47. package/esm2022/lib/helpers/base-list.component.mjs +230 -0
  48. package/esm2022/lib/icons.mjs +36 -0
  49. package/esm2022/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
  50. package/esm2022/lib/layouts/shell/shell-header/shell-header.component.mjs +130 -0
  51. package/esm2022/lib/layouts/shell/shell-layout/shell-layout.component.mjs +90 -0
  52. package/esm2022/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +54 -0
  53. package/esm2022/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -0
  54. package/esm2022/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +30 -0
  55. package/esm2022/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +20 -0
  56. package/esm2022/lib/layouts/views/form-layout/form-layout.component.mjs +86 -0
  57. package/esm2022/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +101 -0
  58. package/esm2022/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +106 -0
  59. package/esm2022/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
  60. package/esm2022/lib/ng-components.module.mjs +320 -0
  61. package/esm2022/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
  62. package/esm2022/lib/pages/auth/auth-renew/auth-renew.component.mjs +31 -0
  63. package/esm2022/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
  64. package/esm2022/lib/pages/http-status/error/error.component.mjs +17 -0
  65. package/esm2022/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
  66. package/esm2022/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
  67. package/esm2022/lib/pipes/address.pipe.mjs +21 -0
  68. package/esm2022/lib/pipes/duration-format.pipe.mjs +64 -0
  69. package/esm2022/lib/pipes/short-number.pipe.mjs +43 -0
  70. package/esm2022/lib/services/breadcrumb.service.mjs +174 -0
  71. package/esm2022/lib/services/component-loader/component-loader-options.class.mjs +8 -0
  72. package/esm2022/lib/services/component-loader/component-loader.class.mjs +188 -0
  73. package/esm2022/lib/services/component-loader/component-loader.factory.mjs +32 -0
  74. package/{esm2020 → esm2022}/lib/services/component-loader/content-ref.class.mjs +13 -13
  75. package/esm2022/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
  76. package/esm2022/lib/services/modal-service/modal-container-component.mjs +126 -0
  77. package/esm2022/lib/services/modal-service/modal-options.class.mjs +35 -0
  78. package/esm2022/lib/services/modal-service/modal-service.mjs +220 -0
  79. package/{esm2020 → esm2022}/lib/services/modal-service/modal-styles.class.mjs +11 -11
  80. package/esm2022/lib/services/modal-service/modal.class.mjs +27 -0
  81. package/{esm2020 → esm2022}/lib/services/toaster.service.mjs +26 -26
  82. package/esm2022/lib/services/user-settings.service.mjs +35 -0
  83. package/esm2022/lib/services/utilities.service.mjs +47 -0
  84. package/{esm2020 → esm2022}/lib/tokens.mjs +8 -8
  85. package/esm2022/lib/types.mjs +133 -0
  86. package/esm2022/public-api.mjs +78 -0
  87. package/fesm2022/indice-ng-components.mjs +5069 -0
  88. package/fesm2022/indice-ng-components.mjs.map +1 -0
  89. package/index.d.ts +5 -5
  90. package/lib/controls/advanced-search/advanced-search.component.d.ts +40 -40
  91. package/lib/controls/advanced-search/models.d.ts +91 -91
  92. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +14 -14
  93. package/lib/controls/breadcrumb/breadcrumb-item.d.ts +7 -7
  94. package/lib/controls/breadcrumb/breadcrumb.component.d.ts +12 -12
  95. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +10 -10
  96. package/lib/controls/combobox/combobox.component.d.ts +35 -34
  97. package/lib/controls/content-tile/content-tile-header/content-tile-header.component.d.ts +7 -0
  98. package/lib/controls/content-tile/content-tile-item/content-tile-item.component.d.ts +8 -0
  99. package/lib/controls/content-tile/content-tile.component.d.ts +23 -0
  100. package/lib/controls/date-picker/date-picker.component.d.ts +53 -53
  101. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +26 -26
  102. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +15 -15
  103. package/lib/controls/language-selection/language-selection.component.d.ts +14 -14
  104. package/lib/controls/list-view/list-column.component.d.ts +9 -9
  105. package/lib/controls/list-view/list-details-section.component.d.ts +7 -7
  106. package/lib/controls/list-view/list-tile.component.d.ts +7 -7
  107. package/lib/controls/list-view/list-view-empty-state.component.d.ts +11 -11
  108. package/lib/controls/list-view/list-view.component.d.ts +62 -61
  109. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +21 -21
  110. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +22 -22
  111. package/lib/controls/pager/pager.component.d.ts +36 -36
  112. package/lib/controls/progress-bar/progress-bar.component.d.ts +16 -0
  113. package/lib/controls/side-pane/side-pane.component.d.ts +22 -18
  114. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +12 -11
  115. package/lib/controls/stats-grid/stats-grid.component.d.ts +16 -0
  116. package/lib/controls/stepper/lib-step-info.directive.d.ts +8 -8
  117. package/lib/controls/stepper/lib-step-label.directive.d.ts +8 -8
  118. package/lib/controls/stepper/lib-step.component.d.ts +34 -34
  119. package/lib/controls/stepper/lib-stepper.component.d.ts +43 -43
  120. package/lib/controls/stepper/types/step-selected-event.d.ts +12 -12
  121. package/lib/controls/stepper/types/stepper-type.d.ts +10 -10
  122. package/lib/controls/tabs/lib-tab-group.component.d.ts +21 -21
  123. package/lib/controls/tabs/lib-tab-label.directive.d.ts +8 -8
  124. package/lib/controls/tabs/lib-tab.component.d.ts +24 -24
  125. package/lib/controls/toaster/toaster-container.component.d.ts +13 -13
  126. package/lib/controls/toaster/toaster.component.d.ts +15 -15
  127. package/lib/controls/toggle/toggle.component.d.ts +19 -19
  128. package/lib/controls/toggle-button/toggle-button.component.d.ts +25 -25
  129. package/lib/controls/toggle-buttons-list/toggle-buttons-list.component.d.ts +15 -14
  130. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +24 -24
  131. package/lib/directives/click-outside.directive.d.ts +40 -40
  132. package/lib/directives/dynamic-component-host.directive.d.ts +9 -9
  133. package/lib/helpers/base-list.component.d.ts +54 -53
  134. package/lib/icons.d.ts +34 -34
  135. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +8 -8
  136. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +39 -39
  137. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +26 -26
  138. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +20 -20
  139. package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +14 -14
  140. package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +15 -15
  141. package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +10 -10
  142. package/lib/layouts/views/form-layout/form-layout.component.d.ts +26 -24
  143. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +42 -42
  144. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +29 -28
  145. package/lib/layouts/views/view-layout/view-layout.component.d.ts +31 -31
  146. package/lib/ng-components.module.d.ts +71 -65
  147. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +13 -13
  148. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +12 -12
  149. package/lib/pages/auth/logged-out/logged-out.component.d.ts +12 -12
  150. package/lib/pages/http-status/error/error.component.d.ts +8 -8
  151. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +8 -8
  152. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +8 -8
  153. package/lib/pipes/address.pipe.d.ts +8 -8
  154. package/lib/pipes/duration-format.pipe.d.ts +8 -8
  155. package/lib/pipes/short-number.pipe.d.ts +7 -0
  156. package/lib/services/breadcrumb.service.d.ts +29 -29
  157. package/lib/services/component-loader/component-loader-options.class.d.ts +30 -30
  158. package/lib/services/component-loader/component-loader.class.d.ts +92 -92
  159. package/lib/services/component-loader/component-loader.factory.d.ts +24 -24
  160. package/lib/services/component-loader/content-ref.class.d.ts +12 -12
  161. package/lib/services/modal-service/modal-backdrop-component.d.ts +20 -20
  162. package/lib/services/modal-service/modal-container-component.d.ts +33 -33
  163. package/lib/services/modal-service/modal-options.class.d.ts +81 -81
  164. package/lib/services/modal-service/modal-service.d.ts +58 -58
  165. package/lib/services/modal-service/modal-styles.class.d.ts +10 -10
  166. package/lib/services/modal-service/modal.class.d.ts +43 -43
  167. package/lib/services/toaster.service.d.ts +11 -11
  168. package/lib/services/user-settings.service.d.ts +13 -13
  169. package/lib/services/utilities.service.d.ts +11 -11
  170. package/lib/tokens.d.ts +10 -10
  171. package/lib/types.d.ts +179 -177
  172. package/modal.css +157 -157
  173. package/package.json +13 -19
  174. package/public-api.d.ts +68 -60
  175. package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +0 -156
  176. package/esm2020/lib/controls/advanced-search/models.mjs +0 -109
  177. package/esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs +0 -48
  178. package/esm2020/lib/controls/breadcrumb/breadcrumb.component.mjs +0 -26
  179. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
  180. package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -117
  181. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -292
  182. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -72
  183. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +0 -43
  184. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +0 -31
  185. package/esm2020/lib/controls/list-view/list-details-section.component.mjs +0 -17
  186. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
  187. package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -206
  188. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +0 -54
  189. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -79
  190. package/esm2020/lib/controls/pager/pager.component.mjs +0 -130
  191. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
  192. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
  193. package/esm2020/lib/controls/stepper/lib-step.component.mjs +0 -81
  194. package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +0 -108
  195. package/esm2020/lib/controls/stepper/types/step-selected-event.mjs +0 -4
  196. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +0 -66
  197. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +0 -28
  198. package/esm2020/lib/controls/toaster/toaster.component.mjs +0 -31
  199. package/esm2020/lib/controls/toggle/toggle.component.mjs +0 -64
  200. package/esm2020/lib/controls/toggle-button/toggle-button.component.mjs +0 -87
  201. package/esm2020/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +0 -31
  202. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -71
  203. package/esm2020/lib/directives/click-outside.directive.mjs +0 -189
  204. package/esm2020/lib/directives/dynamic-component-host.directive.mjs +0 -17
  205. package/esm2020/lib/helpers/base-list.component.mjs +0 -226
  206. package/esm2020/lib/icons.mjs +0 -36
  207. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +0 -19
  208. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -130
  209. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -90
  210. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +0 -54
  211. package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +0 -45
  212. package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +0 -30
  213. package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +0 -20
  214. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
  215. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -101
  216. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -98
  217. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
  218. package/esm2020/lib/ng-components.module.mjs +0 -288
  219. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
  220. package/esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs +0 -31
  221. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +0 -28
  222. package/esm2020/lib/pages/http-status/error/error.component.mjs +0 -17
  223. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
  224. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
  225. package/esm2020/lib/pipes/address.pipe.mjs +0 -21
  226. package/esm2020/lib/pipes/duration-format.pipe.mjs +0 -64
  227. package/esm2020/lib/services/breadcrumb.service.mjs +0 -174
  228. package/esm2020/lib/services/component-loader/component-loader-options.class.mjs +0 -8
  229. package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
  230. package/esm2020/lib/services/component-loader/component-loader.factory.mjs +0 -32
  231. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
  232. package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
  233. package/esm2020/lib/services/modal-service/modal-options.class.mjs +0 -35
  234. package/esm2020/lib/services/modal-service/modal-service.mjs +0 -220
  235. package/esm2020/lib/services/modal-service/modal.class.mjs +0 -27
  236. package/esm2020/lib/services/user-settings.service.mjs +0 -35
  237. package/esm2020/lib/services/utilities.service.mjs +0 -47
  238. package/esm2020/lib/types.mjs +0 -132
  239. package/esm2020/public-api.mjs +0 -70
  240. package/fesm2015/indice-ng-components.mjs +0 -4852
  241. package/fesm2015/indice-ng-components.mjs.map +0 -1
  242. package/fesm2020/indice-ng-components.mjs +0 -4763
  243. package/fesm2020/indice-ng-components.mjs.map +0 -1
@@ -0,0 +1,90 @@
1
+ import { Component, Inject, ViewChildren, Input } from '@angular/core';
2
+ import { ActivationStart } from '@angular/router';
3
+ import { filter } from 'rxjs/operators';
4
+ import { SHELL_CONFIG } from './../../../tokens';
5
+ import { DefaultShellConfig } from './../../../types';
6
+ import { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/router";
9
+ import * as i2 from "../../../services/component-loader/component-loader.factory";
10
+ import * as i3 from "@angular/common";
11
+ import * as i4 from "../shell-sidebar-layout/shell-sidebar-layout.component";
12
+ import * as i5 from "../shell-stacked-layout/shell-stacked-layout.component";
13
+ import * as i6 from "../../../controls/side-pane/side-pane.component";
14
+ import * as i7 from "../../../controls/toaster/toaster-container.component";
15
+ export class ShellLayoutComponent {
16
+ constructor(_router, _componentLoaderFactory, _config) {
17
+ this._router = _router;
18
+ this._componentLoaderFactory = _componentLoaderFactory;
19
+ this._config = _config;
20
+ this._dynamicComponentHosts = null;
21
+ this._routerSub$ = null;
22
+ this.showRightPaneSM = false;
23
+ this.activeConfig = new DefaultShellConfig();
24
+ this.loaded = false;
25
+ this.hideSidebar = false;
26
+ if (!_config) {
27
+ _config = new DefaultShellConfig();
28
+ }
29
+ this.activeConfig = _config;
30
+ }
31
+ ngAfterViewChecked() {
32
+ setTimeout(() => { this.loaded = true; }, 200);
33
+ }
34
+ ngOnInit() {
35
+ this._routerSub$ = this._router
36
+ .events
37
+ .pipe(filter((event) => event instanceof ActivationStart)).subscribe((event) => {
38
+ if (event?.snapshot) {
39
+ if (event?.snapshot?.data) {
40
+ if (event?.snapshot?.data.shell) {
41
+ this.activeConfig = event?.snapshot.data.shell;
42
+ if (this.activeConfig.customHeaderComponent) {
43
+ this.initCustomComponents();
44
+ }
45
+ }
46
+ else {
47
+ this.activeConfig = this._config ? this._config : new DefaultShellConfig();
48
+ }
49
+ }
50
+ }
51
+ });
52
+ }
53
+ ngAfterViewInit() {
54
+ this.initCustomComponents();
55
+ }
56
+ initCustomComponents() {
57
+ if (this._dynamicComponentHosts && this._dynamicComponentHosts.length > 0) {
58
+ this.loadCustomComponent(this._dynamicComponentHosts.find((_) => _.hostName === 'Header'));
59
+ }
60
+ }
61
+ ngOnDestroy() {
62
+ if (this._routerSub$) {
63
+ this._routerSub$.unsubscribe();
64
+ }
65
+ }
66
+ loadCustomComponent(host) {
67
+ if (host) {
68
+ const viewContainerRef = host.viewContainerRef;
69
+ if (viewContainerRef && this.activeConfig.customHeaderComponent) {
70
+ const clf = this._componentLoaderFactory.createLoader(viewContainerRef);
71
+ clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();
72
+ }
73
+ }
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: i1.Router }, { token: i2.ComponentLoaderFactory }, { token: SHELL_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ShellLayoutComponent, selector: "lib-shell-layout", inputs: { sidebarFooterTemplate: "sidebarFooterTemplate" }, viewQueries: [{ propertyName: "_dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div [class.hidden]=\"!loaded\"\n [class.block]=\"loaded\">\n <!-- STACKED LAYOUT -->\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\"\n class=\"shell-container active-side-pane\">\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\n </div>\n <!-- SIDEBAR LAYOUT -->\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\"\n class=\"sidebar shell-container active-side-pane\">\n <lib-shell-sidebar-layout [config]=\"activeConfig\"\n [sidebarFooterTemplate]=\"sidebarFooterTemplate\">\n </lib-shell-sidebar-layout>\n </div>\n <lib-side-pane #rightPane>\n <router-outlet name=\"rightpane\"\n (activate)=\"rightPane.onSidePaneActivated($event)\"\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\">\n </router-outlet>\n </lib-side-pane>\n <lib-toaster-container></lib-toaster-container>\n</div>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i4.ShellSidebarLayoutComponent, selector: "lib-shell-sidebar-layout", inputs: ["config", "sidebarFooterTemplate"] }, { kind: "component", type: i5.ShellStackedLayoutComponent, selector: "lib-shell-stacked-layout", inputs: ["config"] }, { kind: "component", type: i6.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete", "onOpen", "onClose"] }, { kind: "component", type: i7.ToasterContainerComponent, selector: "lib-toaster-container" }] }); }
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellLayoutComponent, decorators: [{
79
+ type: Component,
80
+ args: [{ selector: 'lib-shell-layout', template: "<div [class.hidden]=\"!loaded\"\n [class.block]=\"loaded\">\n <!-- STACKED LAYOUT -->\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\"\n class=\"shell-container active-side-pane\">\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\n </div>\n <!-- SIDEBAR LAYOUT -->\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\"\n class=\"sidebar shell-container active-side-pane\">\n <lib-shell-sidebar-layout [config]=\"activeConfig\"\n [sidebarFooterTemplate]=\"sidebarFooterTemplate\">\n </lib-shell-sidebar-layout>\n </div>\n <lib-side-pane #rightPane>\n <router-outlet name=\"rightpane\"\n (activate)=\"rightPane.onSidePaneActivated($event)\"\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\">\n </router-outlet>\n </lib-side-pane>\n <lib-toaster-container></lib-toaster-container>\n</div>" }]
81
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.ComponentLoaderFactory }, { type: undefined, decorators: [{
82
+ type: Inject,
83
+ args: [SHELL_CONFIG]
84
+ }] }], propDecorators: { _dynamicComponentHosts: [{
85
+ type: ViewChildren,
86
+ args: [DynamicComponentHostDirective]
87
+ }], sidebarFooterTemplate: [{
88
+ type: Input
89
+ }] } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWxheW91dC9zaGVsbC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtbGF5b3V0L3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBNEMsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlKLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7O0FBT3JHLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsWUFDVSxPQUFlLEVBQ2YsdUJBQStDLEVBQ3pCLE9BQWlDO1FBRnZELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBTlosMkJBQXNCLEdBQW9ELElBQUksQ0FBQztRQUM1SCxnQkFBVyxHQUF3QixJQUFJLENBQUM7UUFjekMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsaUJBQVksR0FBaUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVZ6QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBUU0sa0JBQWtCO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDNUIsTUFBTTthQUNOLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsQ0FDcEQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQixJQUFLLEtBQXlCLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3pDLElBQUssS0FBeUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7b0JBQy9DLElBQUssS0FBeUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFJLEtBQXlCLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFxQixDQUFDO3dCQUNwRixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQzs0QkFDNUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7d0JBQzlCLENBQUM7b0JBQ0gsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO29CQUM3RSxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM3RixDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLElBQStDO1FBQ3pFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUMvQyxJQUFJLGdCQUFnQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDaEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN4RSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQXRFVSxvQkFBb0IsOEVBT3JCLFlBQVk7a0dBUFgsb0JBQW9CLCtKQUNqQiw2QkFBNkIsZ0RDZjdDLCs3QkFxQk07OzJGRFBPLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQVV6QixNQUFNOzJCQUFDLFlBQVk7eUNBTitCLHNCQUFzQjtzQkFBMUUsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBYzNCLHFCQUFxQjtzQkFBcEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIEluamVjdCwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyVmlld0NoZWNrZWQsIFRlbXBsYXRlUmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU0hFTExfQ09ORklHIH0gZnJvbSAnLi8uLi8uLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgSVNoZWxsQ29uZmlnLCBEZWZhdWx0U2hlbGxDb25maWcgfSBmcm9tICcuLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9keW5hbWljLWNvbXBvbmVudC1ob3N0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tcG9uZW50LWxvYWRlci9jb21wb25lbnQtbG9hZGVyLmZhY3RvcnknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc2hlbGwtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNoZWxsTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBAVmlld0NoaWxkcmVuKER5bmFtaWNDb21wb25lbnRIb3N0RGlyZWN0aXZlKSBwcml2YXRlIF9keW5hbWljQ29tcG9uZW50SG9zdHM6IFF1ZXJ5TGlzdDxEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcm91dGVyU3ViJDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50TG9hZGVyRmFjdG9yeTogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSxcbiAgICBASW5qZWN0KFNIRUxMX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBJU2hlbGxDb25maWcgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgaWYgKCFfY29uZmlnKSB7XG4gICAgICBfY29uZmlnID0gbmV3IERlZmF1bHRTaGVsbENvbmZpZygpO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IF9jb25maWc7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgc2lkZWJhckZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xuICBwdWJsaWMgYWN0aXZlQ29uZmlnOiBJU2hlbGxDb25maWcgPSBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XG4gIHB1YmxpYyBsb2FkZWQgPSBmYWxzZTtcbiAgcHVibGljIGhpZGVTaWRlYmFyID0gZmFsc2U7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5sb2FkZWQgPSB0cnVlOyB9LCAyMDApO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3JvdXRlclN1YiQgPSB0aGlzLl9yb3V0ZXJcbiAgICAgIC5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEFjdGl2YXRpb25TdGFydClcbiAgICAgICkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoKGV2ZW50IGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90KSB7XG4gICAgICAgICAgaWYgKChldmVudCBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdD8uZGF0YSkge1xuICAgICAgICAgICAgaWYgKChldmVudCBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdD8uZGF0YS5zaGVsbCkge1xuICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IChldmVudCBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdC5kYXRhLnNoZWxsIGFzIElTaGVsbENvbmZpZztcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEN1c3RvbUNvbXBvbmVudHMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVDb25maWcgPSB0aGlzLl9jb25maWcgPyB0aGlzLl9jb25maWcgOiBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q3VzdG9tQ29tcG9uZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q3VzdG9tQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZHluYW1pY0NvbXBvbmVudEhvc3RzICYmIHRoaXMuX2R5bmFtaWNDb21wb25lbnRIb3N0cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmxvYWRDdXN0b21Db21wb25lbnQodGhpcy5fZHluYW1pY0NvbXBvbmVudEhvc3RzLmZpbmQoKF8pID0+IF8uaG9zdE5hbWUgPT09ICdIZWFkZXInKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yb3V0ZXJTdWIkKSB7XG4gICAgICB0aGlzLl9yb3V0ZXJTdWIkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQ3VzdG9tQ29tcG9uZW50KGhvc3Q6IER5bmFtaWNDb21wb25lbnRIb3N0RGlyZWN0aXZlIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKGhvc3QpIHtcbiAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSBob3N0LnZpZXdDb250YWluZXJSZWY7XG4gICAgICBpZiAodmlld0NvbnRhaW5lclJlZiAmJiB0aGlzLmFjdGl2ZUNvbmZpZy5jdXN0b21IZWFkZXJDb21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgY2xmID0gdGhpcy5fY29tcG9uZW50TG9hZGVyRmFjdG9yeS5jcmVhdGVMb2FkZXIodmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIGNsZi5hdHRhY2godGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KS50byh2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQpLnNob3coKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2NsYXNzLmhpZGRlbl09XCIhbG9hZGVkXCJcbiAgICAgW2NsYXNzLmJsb2NrXT1cImxvYWRlZFwiPlxuICA8IS0tIFNUQUNLRUQgTEFZT1VUIC0tPlxuICA8ZGl2ICpuZ0lmPVwiKGFjdGl2ZUNvbmZpZy5sYXlvdXQgPT09ICdTdGFja2VkJyB8fCAhYWN0aXZlQ29uZmlnLmxheW91dClcIlxuICAgICAgIGNsYXNzPVwic2hlbGwtY29udGFpbmVyIGFjdGl2ZS1zaWRlLXBhbmVcIj5cbiAgICA8bGliLXNoZWxsLXN0YWNrZWQtbGF5b3V0IFtjb25maWddPVwiYWN0aXZlQ29uZmlnXCI+PC9saWItc2hlbGwtc3RhY2tlZC1sYXlvdXQ+XG4gIDwvZGl2PlxuICA8IS0tIFNJREVCQVIgTEFZT1VUIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmxheW91dCA9PT0gJ1NpZGViYXInXCJcbiAgICAgICBjbGFzcz1cInNpZGViYXIgc2hlbGwtY29udGFpbmVyIGFjdGl2ZS1zaWRlLXBhbmVcIj5cbiAgICA8bGliLXNoZWxsLXNpZGViYXItbGF5b3V0IFtjb25maWddPVwiYWN0aXZlQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaWRlYmFyRm9vdGVyVGVtcGxhdGVdPVwic2lkZWJhckZvb3RlclRlbXBsYXRlXCI+XG4gICAgPC9saWItc2hlbGwtc2lkZWJhci1sYXlvdXQ+XG4gIDwvZGl2PlxuICA8bGliLXNpZGUtcGFuZSAjcmlnaHRQYW5lPlxuICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJyaWdodHBhbmVcIlxuICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJyaWdodFBhbmUub25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAoZGVhY3RpdmF0ZSk9XCJyaWdodFBhbmUub25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudClcIj5cbiAgICA8L3JvdXRlci1vdXRsZXQ+XG4gIDwvbGliLXNpZGUtcGFuZT5cbiAgPGxpYi10b2FzdGVyLWNvbnRhaW5lcj48L2xpYi10b2FzdGVyLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { Component, Inject, Input } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { APP_LINKS } from '../../../tokens';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
+ import { share } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../controls/nav-links-list/nav-links-list.component";
8
+ import * as i2 from "@angular/router";
9
+ export class ShellSidebarComponent {
10
+ constructor(router, route, links) {
11
+ this.router = router;
12
+ this.route = route;
13
+ this.links = links;
14
+ this.sectionLinksPath = 'main';
15
+ this.shellConfig = undefined;
16
+ this.sticky = false;
17
+ this.sectionLinks = of([]);
18
+ this.activeFragment = null;
19
+ }
20
+ get activeNavLinkClass() {
21
+ const linkClasses = 'sidebar ' + (this.sticky ? 'nav-link-active-b' : 'nav-link-active-l') + ' group';
22
+ console.log('activeNavLinkClass getter ', linkClasses);
23
+ return linkClasses;
24
+ }
25
+ ngOnInit() {
26
+ this.activeFragment = this.route.fragment.pipe(share());
27
+ this.sectionLinks = this.links[this.sectionLinksPath];
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellSidebarComponent, deps: [{ token: Router }, { token: ActivatedRoute }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], shellConfig: ["config", "shellConfig"], sticky: "sticky" }, ngImport: i0, template: "<!-- Sidebar component, swap this element with another sidebar if you like -->\n<div class=\"shell-sidebar-component-container\">\n <div class=\"shell-sidebar-component-links-container sidebar\">\n <lib-nav-links-list [show-icons]=\"true\"\n [show-text]=\"!sticky\"\n [large-icons]=\"sticky\"\n [links]=\"sectionLinks\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'sidebar nav-link group'\"\n [link-active-class]=\"'sidebar nav-link-active-b group'\">\n </lib-nav-links-list>\n </div>\n</div>", dependencies: [{ kind: "component", type: i1.NavLinksListComponent, selector: "lib-nav-links-list", inputs: ["links", "active-fragment", "link-class", "link-active-class", "container-class", "show-icons", "show-text", "large-icons"] }] }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellSidebarComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'lib-shell-sidebar', template: "<!-- Sidebar component, swap this element with another sidebar if you like -->\n<div class=\"shell-sidebar-component-container\">\n <div class=\"shell-sidebar-component-links-container sidebar\">\n <lib-nav-links-list [show-icons]=\"true\"\n [show-text]=\"!sticky\"\n [large-icons]=\"sticky\"\n [links]=\"sectionLinks\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'sidebar nav-link group'\"\n [link-active-class]=\"'sidebar nav-link-active-b group'\">\n </lib-nav-links-list>\n </div>\n</div>" }]
35
+ }], ctorParameters: () => [{ type: i2.Router, decorators: [{
36
+ type: Inject,
37
+ args: [Router]
38
+ }] }, { type: i2.ActivatedRoute, decorators: [{
39
+ type: Inject,
40
+ args: [ActivatedRoute]
41
+ }] }, { type: undefined, decorators: [{
42
+ type: Inject,
43
+ args: [APP_LINKS]
44
+ }] }], propDecorators: { sectionLinksPath: [{
45
+ type: Input,
46
+ args: ['section-links']
47
+ }], shellConfig: [{
48
+ type: Input,
49
+ args: ['config']
50
+ }], sticky: [{
51
+ type: Input,
52
+ args: ['sticky']
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy9zaGVsbC9zaGVsbC1zaWRlYmFyL3NoZWxsLXNpZGViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci9zaGVsbC1zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU12QyxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQzRCLE1BQWMsRUFDTixLQUFxQixFQUM3QixLQUFVO1FBRlYsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNOLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQUs7UUFHZCxxQkFBZ0IsR0FBRyxNQUFNLENBQUM7UUFDakMsZ0JBQVcsR0FBNkIsU0FBUyxDQUFDO1FBQ2xELFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDbEMsaUJBQVksR0FBMEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLG1CQUFjLEdBQWUsSUFBSSxDQUFDO0lBTnJDLENBQUM7SUFRTCxJQUFXLGtCQUFrQjtRQUMzQixNQUFNLFdBQVcsR0FBRyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDdEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN2RCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBMEIsQ0FBQztJQUNqRixDQUFDOzhHQXRCVSxxQkFBcUIsa0JBRXRCLE1BQU0sYUFDTixjQUFjLGFBQ2QsU0FBUztrR0FKUixxQkFBcUIsd0xDWmxDLDRvQkFZTTs7MkZEQU8scUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLG1CQUFtQjs7MEJBSzFCLE1BQU07MkJBQUMsTUFBTTs7MEJBQ2IsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxTQUFTO3lDQUdLLGdCQUFnQjtzQkFBdkMsS0FBSzt1QkFBQyxlQUFlO2dCQUNMLFdBQVc7c0JBQTNCLEtBQUs7dUJBQUMsUUFBUTtnQkFDRSxNQUFNO3NCQUF0QixLQUFLO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU2hlbGxDb25maWcsIE5hdkxpbmsgfSBmcm9tICcuLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9PYnNlcnZhYmxlJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUFBfTElOS1MgfSBmcm9tICcuLi8uLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXNoZWxsLXNpZGViYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2hlbGwtc2lkZWJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2hlbGxTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChSb3V0ZXIpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcbiAgICBASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIEBJbmplY3QoQVBQX0xJTktTKSBwdWJsaWMgbGlua3M6IGFueVxuICApIHsgfVxuXG4gIEBJbnB1dCgnc2VjdGlvbi1saW5rcycpIHNlY3Rpb25MaW5rc1BhdGggPSAnbWFpbic7XG4gIEBJbnB1dCgnY29uZmlnJykgc2hlbGxDb25maWc6IElTaGVsbENvbmZpZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgQElucHV0KCdzdGlja3knKSBzdGlja3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlY3Rpb25MaW5rczogT2JzZXJ2YWJsZTxOYXZMaW5rW10+ID0gb2YoW10pO1xuICBwdWJsaWMgYWN0aXZlRnJhZ21lbnQ6IGFueSB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgYWN0aXZlTmF2TGlua0NsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGlua0NsYXNzZXMgPSAnc2lkZWJhciAnICsgKHRoaXMuc3RpY2t5ID8gJ25hdi1saW5rLWFjdGl2ZS1iJyA6ICduYXYtbGluay1hY3RpdmUtbCcpICsgJyBncm91cCc7XG4gICAgY29uc29sZS5sb2coJ2FjdGl2ZU5hdkxpbmtDbGFzcyBnZXR0ZXIgJywgbGlua0NsYXNzZXMpO1xuICAgIHJldHVybiBsaW5rQ2xhc3NlcztcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUZyYWdtZW50ID0gdGhpcy5yb3V0ZS5mcmFnbWVudC5waXBlKHNoYXJlKCkpO1xuICAgIHRoaXMuc2VjdGlvbkxpbmtzID0gdGhpcy5saW5rc1t0aGlzLnNlY3Rpb25MaW5rc1BhdGhdIGFzIE9ic2VydmFibGU8TmF2TGlua1tdPjtcbiAgfVxufVxuIiwiPCEtLSBTaWRlYmFyIGNvbXBvbmVudCwgc3dhcCB0aGlzIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNpZGViYXIgaWYgeW91IGxpa2UgLS0+XG48ZGl2IGNsYXNzPVwic2hlbGwtc2lkZWJhci1jb21wb25lbnQtY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJzaGVsbC1zaWRlYmFyLWNvbXBvbmVudC1saW5rcy1jb250YWluZXIgc2lkZWJhclwiPlxuICAgIDxsaWItbmF2LWxpbmtzLWxpc3QgW3Nob3ctaWNvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvdy10ZXh0XT1cIiFzdGlja3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhcmdlLWljb25zXT1cInN0aWNreVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua3NdPVwic2VjdGlvbkxpbmtzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmUtZnJhZ21lbnRdPVwiYWN0aXZlRnJhZ21lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmstY2xhc3NdPVwiJ3NpZGViYXIgbmF2LWxpbmsgZ3JvdXAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rLWFjdGl2ZS1jbGFzc109XCInc2lkZWJhciBuYXYtbGluay1hY3RpdmUtYiBncm91cCdcIj5cbiAgICA8L2xpYi1uYXYtbGlua3MtbGlzdD5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,45 @@
1
+ import { AuthService } from '@indice/ng-auth';
2
+ import { Component, Inject } from '@angular/core';
3
+ import { ActivatedRoute, Router } from '@angular/router';
4
+ import { APP_LINKS, SHELL_CONFIG } from '../../../tokens';
5
+ import { ShellHeaderComponent } from '../shell-header/shell-header.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "../../../directives/click-outside.directive";
9
+ import * as i3 from "../../../controls/language-selection/language-selection.component";
10
+ import * as i4 from "../../../controls/notifications-indicator/notifications-indicator.component";
11
+ import * as i5 from "../../../controls/user-profile-menu/user-profile-menu.component";
12
+ import * as i6 from "@indice/ng-auth";
13
+ import * as i7 from "@angular/router";
14
+ export class ShellSidebarHeaderComponent extends ShellHeaderComponent {
15
+ constructor(authService, router, route, config, links) {
16
+ super(authService, router, route, config, links);
17
+ this.authService = authService;
18
+ this.router = router;
19
+ this.route = route;
20
+ this.config = config;
21
+ this.links = links;
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellSidebarHeaderComponent, deps: [{ token: AuthService }, { token: Router }, { token: ActivatedRoute }, { token: SHELL_CONFIG }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ShellSidebarHeaderComponent, selector: "lib-shell-sidebar-header", usesInheritance: true, ngImport: i0, template: "<div class=\"shell-header-paddings\">\n <div class=\"shell-header-border\">\n <div class=\"shell-header-menu-container\">\n <div class=\"shell-header-md-visible\">\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\n <!-- Profile dropdown -->\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\n </div>\n <!-- Notifications dropdown -->\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\n <lib-notifications-indicator></lib-notifications-indicator>\n </div>\n <!-- languages dropdown -->\n <div *ngIf=\"showLangs\" class=\"ml-4\">\n <lib-language-selection></lib-language-selection>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n \n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "component", type: i3.LanguageSelectionComponent, selector: "lib-language-selection" }, { kind: "component", type: i4.NotificationsIndicatorComponent, selector: "lib-notifications-indicator" }, { kind: "component", type: i5.UserProfileMenuComponent, selector: "lib-user-profile-menu", inputs: ["show-user-name"] }] }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellSidebarHeaderComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'lib-shell-sidebar-header', template: "<div class=\"shell-header-paddings\">\n <div class=\"shell-header-border\">\n <div class=\"shell-header-menu-container\">\n <div class=\"shell-header-md-visible\">\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\n <!-- Profile dropdown -->\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\n </div>\n <!-- Notifications dropdown -->\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\n <lib-notifications-indicator></lib-notifications-indicator>\n </div>\n <!-- languages dropdown -->\n <div *ngIf=\"showLangs\" class=\"ml-4\">\n <lib-language-selection></lib-language-selection>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n \n" }]
29
+ }], ctorParameters: () => [{ type: i6.AuthService, decorators: [{
30
+ type: Inject,
31
+ args: [AuthService]
32
+ }] }, { type: i7.Router, decorators: [{
33
+ type: Inject,
34
+ args: [Router]
35
+ }] }, { type: i7.ActivatedRoute, decorators: [{
36
+ type: Inject,
37
+ args: [ActivatedRoute]
38
+ }] }, { type: undefined, decorators: [{
39
+ type: Inject,
40
+ args: [SHELL_CONFIG]
41
+ }] }, { type: undefined, decorators: [{
42
+ type: Inject,
43
+ args: [APP_LINKS]
44
+ }] }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtc2lkZWJhci1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1oZWFkZXIvc2hlbGwtc2lkZWJhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1oZWFkZXIvc2hlbGwtc2lkZWJhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7OztBQU85RSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsb0JBQW9CO0lBQ25FLFlBQTJDLFdBQXdCLEVBQ3pDLE1BQWMsRUFDTixLQUFxQixFQUMxQixNQUFXLEVBQ2QsS0FBVTtRQUNsQyxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBTFIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNOLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQUs7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFLO0lBRXBDLENBQUM7OEdBUFUsMkJBQTJCLGtCQUNsQixXQUFXLGFBQ3ZCLE1BQU0sYUFDTixjQUFjLGFBQ2QsWUFBWSxhQUNaLFNBQVM7a0dBTE4sMkJBQTJCLHVGQ1p4QyxtaENBdUJBOzsyRkRYYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsMEJBQTBCOzswQkFJdkIsTUFBTTsyQkFBQyxXQUFXOzswQkFDOUIsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGluZGljZS9uZy1hdXRoJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEV2ZW50LCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBUFBfTElOS1MsIFNIRUxMX0NPTkZJRyB9IGZyb20gJy4uLy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBTaGVsbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3NoZWxsLWhlYWRlci9zaGVsbC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNoZWxsTGF5b3V0VHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXNoZWxsLXNpZGViYXItaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoZWxsLXNpZGViYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaGVsbFNpZGViYXJIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBTaGVsbEhlYWRlckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQXV0aFNlcnZpY2UpIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gIEBJbmplY3QoUm91dGVyKSBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gIEBJbmplY3QoQWN0aXZhdGVkUm91dGUpIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gIEBJbmplY3QoU0hFTExfQ09ORklHKSBwdWJsaWMgY29uZmlnOiBhbnksXG4gIEBJbmplY3QoQVBQX0xJTktTKSBwdWJsaWMgbGlua3M6IGFueSkge1xuICAgIHN1cGVyKGF1dGhTZXJ2aWNlLCByb3V0ZXIsIHJvdXRlLCBjb25maWcsIGxpbmtzKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLXBhZGRpbmdzXCI+XG4gICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1ib3JkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1tZW51LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1tZC12aXNpYmxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1saW5rcy1mYXItY29udGFpbmVyXCIgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBQcm9maWxlIGRyb3Bkb3duIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9maWxlTWVudVZpc2libGVcIiBjbGFzcz1cIm1sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi11c2VyLXByb2ZpbGUtbWVudSBbc2hvdy11c2VyLW5hbWVdPVwic2hvd1VzZXJOYW1lT25IZWFkZXJcIj48L2xpYi11c2VyLXByb2ZpbGUtbWVudT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8IS0tIE5vdGlmaWNhdGlvbnMgZHJvcGRvd24gLS0+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dBbGVydHMgJiYgdXNlclwiIGNsYXNzPVwibWwtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLW5vdGlmaWNhdGlvbnMtaW5kaWNhdG9yPjwvbGliLW5vdGlmaWNhdGlvbnMtaW5kaWNhdG9yPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0gbGFuZ3VhZ2VzIGRyb3Bkb3duIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93TGFuZ3NcIiBjbGFzcz1cIm1sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1sYW5ndWFnZS1zZWxlY3Rpb24+PC9saWItbGFuZ3VhZ2Utc2VsZWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4gXG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../services/user-settings.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/router";
6
+ import * as i4 from "../../../controls/breadcrumb/breadcrumb.component";
7
+ import * as i5 from "../shell-sidebar/shell-sidebar.component";
8
+ import * as i6 from "../shell-sidebar-header/shell-sidebar-header.component";
9
+ export class ShellSidebarLayoutComponent {
10
+ constructor(_userSettings) {
11
+ this._userSettings = _userSettings;
12
+ this.showMobileSidebar = this._userSettings.get('MobileSideBar');
13
+ }
14
+ ngOnInit() { }
15
+ toggleMobileSidebar() {
16
+ this.showMobileSidebar = !this.showMobileSidebar;
17
+ this._userSettings.set('MobileSideBar', this.showMobileSidebar);
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellSidebarLayoutComponent, deps: [{ token: i1.UserSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ShellSidebarLayoutComponent, selector: "lib-shell-sidebar-layout", inputs: { config: "config", sidebarFooterTemplate: "sidebarFooterTemplate" }, ngImport: i0, template: "<div>\n <div class=\"sidebar-off-canvas-menu-container\"\n role=\"dialog\"\n aria-modal=\"true\">\n <div class=\"sidebar-off-canvas-menu-backdrop\"\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\n </div>\n <div class=\"sidebar-off-canvas-menu-container-inner\"\n [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\n <div class=\"sidebar-off-canvas-layout-container\">\n <div class=\"sidebar-off-canvas-toggle-button-container\">\n <button type=\"button\"\n class=\"sidebar-off-canvas-toggle-button\"\n (click)=\"toggleMobileSidebar()\">\n <span class=\"sr-only\">Close sidebar</span>\n <svg class=\"h-6 w-6 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n <div class=\"sidebar-off-canvas-app-logo-container\">\n <img alt=\"image\" class=\"shell-sidebar-logo\"\n [src]=\"config?.appLogo\"\n [alt]=\"config?.appLogoAlt\">\n </div>\n <lib-shell-sidebar></lib-shell-sidebar>\n </div>\n <div class=\"sidebar-dummy-element\"\n aria-hidden=\"true\">\n </div>\n </div>\n </div>\n <div class=\"sidebar-static-menu-outer-container\">\n <div class=\"sidebar-static-menu-container\"\n [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\n [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\n <div class=\"sidebar-static-menu-container-inner\">\n <div class=\"sidebar-static-menu-app-logo-container\">\n <img alt=\"image\" *ngIf=\"!showMobileSidebar\"\n class=\"shell-sidebar-logo\"\n [src]=\"config?.appLogo\"\n [alt]=\"config?.appLogoAlt\">\n <button *ngIf=\"showMobileSidebar\"\n type=\"button\"\n class=\"sidebar-static-menu-toggle-button\"\n (click)=\"toggleMobileSidebar()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n <svg class=\"h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n </div>\n <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\n </div>\n <div class=\"flex flex-shrink-0 bg-gray-700 p-4\"\n *ngIf=\"!showMobileSidebar && sidebarFooterTemplate\">\n <div class=\"group block flex-shrink-0\">\n <div class=\"flex items-center\">\n <div>\n <p class=\"text-sm font-medium text-gray-400\">\n <ng-container [ngTemplateOutlet]=\"sidebarFooterTemplate\"></ng-container>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sidebar-static-menu-wrapper\"\n [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\n <div class=\"sidebar-static-menu-sticky-header-container\"\n *ngIf=\"config?.showHeader\">\n <button *ngIf=\"showMobileSidebar\"\n type=\"button\"\n class=\"sidebar-static-menu-toggle-button-md\"\n (click)=\"toggleMobileSidebar()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n <svg class=\"h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n <button *ngIf=\"!showMobileSidebar\"\n type=\"button\"\n class=\"sidebar-static-menu-toggle-button\"\n (click)=\"toggleMobileSidebar()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n <svg class=\"h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n <div class=\"sidebar-static-menu-header-container\">\n <div class=\"sidebar-static-menu-header-near-container\">\n <div class=\"sidebar-static-menu-header-app-logo-container\"\n *ngIf=\"showMobileSidebar\">\n <img alt=\"image\" class=\"shell-sidebar-logo\"\n [src]=\"config?.appLogo\"\n [alt]=\"config?.appLogoAlt\">\n </div>\n </div>\n <div class=\"sidebar-static-menu-header-far-container\">\n <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\n [show-alerts]=\"config?.showAlertsOnHeader\"\n [show-langs]=\"config?.showLangsOnHeader\">\n </lib-shell-sidebar-header>\n </div>\n </div>\n </div>\n <div flex-1>\n <main class=\"shell-content-container-fluid\">\n <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\n <div class=\"shell-content-container-inner\">\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\n </div>\n </main>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i4.BreadcrumbComponent, selector: "lib-breadcrumb" }, { kind: "component", type: i5.ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: ["section-links", "config", "sticky"] }, { kind: "component", type: i6.ShellSidebarHeaderComponent, selector: "lib-shell-sidebar-header" }] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellSidebarLayoutComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'lib-shell-sidebar-layout', template: "<div>\n <div class=\"sidebar-off-canvas-menu-container\"\n role=\"dialog\"\n aria-modal=\"true\">\n <div class=\"sidebar-off-canvas-menu-backdrop\"\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\n </div>\n <div class=\"sidebar-off-canvas-menu-container-inner\"\n [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\n <div class=\"sidebar-off-canvas-layout-container\">\n <div class=\"sidebar-off-canvas-toggle-button-container\">\n <button type=\"button\"\n class=\"sidebar-off-canvas-toggle-button\"\n (click)=\"toggleMobileSidebar()\">\n <span class=\"sr-only\">Close sidebar</span>\n <svg class=\"h-6 w-6 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n <div class=\"sidebar-off-canvas-app-logo-container\">\n <img alt=\"image\" class=\"shell-sidebar-logo\"\n [src]=\"config?.appLogo\"\n [alt]=\"config?.appLogoAlt\">\n </div>\n <lib-shell-sidebar></lib-shell-sidebar>\n </div>\n <div class=\"sidebar-dummy-element\"\n aria-hidden=\"true\">\n </div>\n </div>\n </div>\n <div class=\"sidebar-static-menu-outer-container\">\n <div class=\"sidebar-static-menu-container\"\n [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\n [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\n <div class=\"sidebar-static-menu-container-inner\">\n <div class=\"sidebar-static-menu-app-logo-container\">\n <img alt=\"image\" *ngIf=\"!showMobileSidebar\"\n class=\"shell-sidebar-logo\"\n [src]=\"config?.appLogo\"\n [alt]=\"config?.appLogoAlt\">\n <button *ngIf=\"showMobileSidebar\"\n type=\"button\"\n class=\"sidebar-static-menu-toggle-button\"\n (click)=\"toggleMobileSidebar()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n <svg class=\"h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n </div>\n <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\n </div>\n <div class=\"flex flex-shrink-0 bg-gray-700 p-4\"\n *ngIf=\"!showMobileSidebar && sidebarFooterTemplate\">\n <div class=\"group block flex-shrink-0\">\n <div class=\"flex items-center\">\n <div>\n <p class=\"text-sm font-medium text-gray-400\">\n <ng-container [ngTemplateOutlet]=\"sidebarFooterTemplate\"></ng-container>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sidebar-static-menu-wrapper\"\n [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\n <div class=\"sidebar-static-menu-sticky-header-container\"\n *ngIf=\"config?.showHeader\">\n <button *ngIf=\"showMobileSidebar\"\n type=\"button\"\n class=\"sidebar-static-menu-toggle-button-md\"\n (click)=\"toggleMobileSidebar()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n <svg class=\"h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n <button *ngIf=\"!showMobileSidebar\"\n type=\"button\"\n class=\"sidebar-static-menu-toggle-button\"\n (click)=\"toggleMobileSidebar()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n <svg class=\"h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n <div class=\"sidebar-static-menu-header-container\">\n <div class=\"sidebar-static-menu-header-near-container\">\n <div class=\"sidebar-static-menu-header-app-logo-container\"\n *ngIf=\"showMobileSidebar\">\n <img alt=\"image\" class=\"shell-sidebar-logo\"\n [src]=\"config?.appLogo\"\n [alt]=\"config?.appLogoAlt\">\n </div>\n </div>\n <div class=\"sidebar-static-menu-header-far-container\">\n <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\n [show-alerts]=\"config?.showAlertsOnHeader\"\n [show-langs]=\"config?.showLangsOnHeader\">\n </lib-shell-sidebar-header>\n </div>\n </div>\n </div>\n <div flex-1>\n <main class=\"shell-content-container-fluid\">\n <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\n <div class=\"shell-content-container-inner\">\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\n </div>\n </main>\n </div>\n </div>\n</div>" }]
25
+ }], ctorParameters: () => [{ type: i1.UserSettingsService }], propDecorators: { config: [{
26
+ type: Input
27
+ }], sidebarFooterTemplate: [{
28
+ type: Input
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1sYXlvdXQvc2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1sYXlvdXQvc2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWlDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVN4RixNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQ1UsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBRTFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBTU0sUUFBUSxLQUFXLENBQUM7SUFFcEIsbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEUsQ0FBQzs4R0FoQlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsOElDVHhDLDR2TUFxSk07OzJGRDVJTywyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsMEJBQTBCO3dGQVUzQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ1UscUJBQXFCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJU2hlbGxDb25maWcgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXNlci1zZXR0aW5ncy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXNoZWxsLXNpZGViYXItbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoZWxsLXNpZGViYXItbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaGVsbFNpZGViYXJMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF91c2VyU2V0dGluZ3M6IFVzZXJTZXR0aW5nc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zaG93TW9iaWxlU2lkZWJhciA9IHRoaXMuX3VzZXJTZXR0aW5ncy5nZXQoJ01vYmlsZVNpZGVCYXInKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGNvbmZpZzogSVNoZWxsQ29uZmlnIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgc2lkZWJhckZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHVibGljIHNob3dNb2JpbGVTaWRlYmFyOiBib29sZWFuO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHsgfVxuXG4gIHB1YmxpYyB0b2dnbGVNb2JpbGVTaWRlYmFyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vYmlsZVNpZGViYXIgPSAhdGhpcy5zaG93TW9iaWxlU2lkZWJhcjtcbiAgICB0aGlzLl91c2VyU2V0dGluZ3Muc2V0KCdNb2JpbGVTaWRlQmFyJywgdGhpcy5zaG93TW9iaWxlU2lkZWJhcik7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXYgY2xhc3M9XCJzaWRlYmFyLW9mZi1jYW52YXMtbWVudS1jb250YWluZXJcIlxuICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItb2ZmLWNhbnZhcy1tZW51LWJhY2tkcm9wXCJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLW9mZi1jYW52YXMtbWVudS1iYWNrZHJvcC1vcGFjaXR5LTEwMF09XCIhc2hvd01vYmlsZVNpZGViYXJcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLW1lbnUtY29udGFpbmVyLWlubmVyXCJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLW9mZi1jYW52YXMtbWVudS1jb250YWluZXItaW5uZXItYWN0aXZlXT1cIiFzaG93TW9iaWxlU2lkZWJhclwiXG4gICAgICAgICBbY2xhc3Muc2lkZWJhci1vZmYtY2FudmFzLW1lbnUtY29udGFpbmVyLWlubmVyLW5vdC1hY3RpdmVdPVwic2hvd01vYmlsZVNpZGViYXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLW9mZi1jYW52YXMtbGF5b3V0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLXRvZ2dsZS1idXR0b24tY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLXRvZ2dsZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vYmlsZVNpZGViYXIoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2Ugc2lkZWJhcjwvc3Bhbj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoLTYgdy02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLWFwcC1sb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbWcgYWx0PVwiaW1hZ2VcIiBjbGFzcz1cInNoZWxsLXNpZGViYXItbG9nb1wiXG4gICAgICAgICAgICAgICBbc3JjXT1cImNvbmZpZz8uYXBwTG9nb1wiXG4gICAgICAgICAgICAgICBbYWx0XT1cImNvbmZpZz8uYXBwTG9nb0FsdFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGxpYi1zaGVsbC1zaWRlYmFyPjwvbGliLXNoZWxsLXNpZGViYXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLWR1bW15LWVsZW1lbnRcIlxuICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtb3V0ZXItY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtY29udGFpbmVyXCJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLXN0YXRpYy1tZW51LWNvbnRhaW5lci1hY3RpdmVdPVwiIXNob3dNb2JpbGVTaWRlYmFyXCJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLXN0YXRpYy1tZW51LWNvbnRhaW5lci1ub3QtYWN0aXZlXT1cInNob3dNb2JpbGVTaWRlYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1zdGF0aWMtbWVudS1jb250YWluZXItaW5uZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtYXBwLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBhbHQ9XCJpbWFnZVwiICpuZ0lmPVwiIXNob3dNb2JpbGVTaWRlYmFyXCJcbiAgICAgICAgICAgICAgIGNsYXNzPVwic2hlbGwtc2lkZWJhci1sb2dvXCJcbiAgICAgICAgICAgICAgIFtzcmNdPVwiY29uZmlnPy5hcHBMb2dvXCJcbiAgICAgICAgICAgICAgIFthbHRdPVwiY29uZmlnPy5hcHBMb2dvQWx0XCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dNb2JpbGVTaWRlYmFyXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LXRvZ2dsZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vYmlsZVNpZGViYXIoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+VG9nZ2xlIHNpZGViYXI8L3NwYW4+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaC02IHctNlwiXG4gICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGg3XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGxpYi1zaGVsbC1zaWRlYmFyIFtzdGlja3ldPVwic2hvd01vYmlsZVNpZGViYXJcIj48L2xpYi1zaGVsbC1zaWRlYmFyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXNocmluay0wIGJnLWdyYXktNzAwIHAtNFwiXG4gICAgICAgICAgICpuZ0lmPVwiIXNob3dNb2JpbGVTaWRlYmFyICYmIHNpZGViYXJGb290ZXJUZW1wbGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAgYmxvY2sgZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNpZGViYXJGb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LXdyYXBwZXJcIlxuICAgICAgIFtjbGFzcy5zaWRlYmFyLXN0YXRpYy1tZW51LXdyYXBwZXItZXhwYW5kZWRdPVwiIXNob3dNb2JpbGVTaWRlYmFyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtc3RpY2t5LWhlYWRlci1jb250YWluZXJcIlxuICAgICAgICAgKm5nSWY9XCJjb25maWc/LnNob3dIZWFkZXJcIj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93TW9iaWxlU2lkZWJhclwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtdG9nZ2xlLWJ1dHRvbi1tZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNb2JpbGVTaWRlYmFyKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+VG9nZ2xlIHNpZGViYXI8L3NwYW4+XG4gICAgICAgIDxzdmcgY2xhc3M9XCJoLTYgdy02XCJcbiAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDdcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzaG93TW9iaWxlU2lkZWJhclwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtdG9nZ2xlLWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNb2JpbGVTaWRlYmFyKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+VG9nZ2xlIHNpZGViYXI8L3NwYW4+XG4gICAgICAgIDxzdmcgY2xhc3M9XCJoLTYgdy02XCJcbiAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDdcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1zdGF0aWMtbWVudS1oZWFkZXItbmVhci1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1zdGF0aWMtbWVudS1oZWFkZXItYXBwLWxvZ28tY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd01vYmlsZVNpZGViYXJcIj5cbiAgICAgICAgICAgIDxpbWcgYWx0PVwiaW1hZ2VcIiBjbGFzcz1cInNoZWxsLXNpZGViYXItbG9nb1wiXG4gICAgICAgICAgICAgICAgIFtzcmNdPVwiY29uZmlnPy5hcHBMb2dvXCJcbiAgICAgICAgICAgICAgICAgW2FsdF09XCJjb25maWc/LmFwcExvZ29BbHRcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWhlYWRlci1mYXItY29udGFpbmVyXCI+XG4gICAgICAgICAgPGxpYi1zaGVsbC1zaWRlYmFyLWhlYWRlciBbc2hvdy11c2VyTmFtZV09XCJjb25maWc/LnNob3dVc2VyTmFtZU9uSGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93LWFsZXJ0c109XCJjb25maWc/LnNob3dBbGVydHNPbkhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdy1sYW5nc109XCJjb25maWc/LnNob3dMYW5nc09uSGVhZGVyXCI+XG4gICAgICAgICAgPC9saWItc2hlbGwtc2lkZWJhci1oZWFkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBmbGV4LTE+XG4gICAgICA8bWFpbiBjbGFzcz1cInNoZWxsLWNvbnRlbnQtY29udGFpbmVyLWZsdWlkXCI+XG4gICAgICAgIDxsaWItYnJlYWRjcnVtYiAqbmdJZj1cImNvbmZpZz8uYnJlYWRjcnVtYiB8fCBmYWxzZVwiPjwvbGliLWJyZWFkY3J1bWI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1jb250ZW50LWNvbnRhaW5lci1pbm5lclwiPlxuICAgICAgICAgIDxyb3V0ZXItb3V0bGV0ICpuZ0lmPVwiKGNvbmZpZyAmJiBjb25maWcubGF5b3V0ID09PSAnU2lkZWJhcicpXCI+PC9yb3V0ZXItb3V0bGV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWFpbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/router";
5
+ import * as i3 from "../../../directives/dynamic-component-host.directive";
6
+ import * as i4 from "../shell-footer/shell-footer.component";
7
+ import * as i5 from "../shell-header/shell-header.component";
8
+ export class ShellStackedLayoutComponent {
9
+ constructor() { }
10
+ ngOnInit() { }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellStackedLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ShellStackedLayoutComponent, selector: "lib-shell-stacked-layout", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"shell-header-container\"\n *ngIf=\"config?.showHeader\">\n <div [class]=\"config?.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\n <ng-container *ngIf=\"config?.customHeaderComponent\">\n <div appDynamicComponentHost=\"Header\"></div>\n </ng-container>\n <lib-shell-header *ngIf=\"!config?.customHeaderComponent\"\n [show-userName]=\"config?.showUserNameOnHeader\"\n [show-alerts]=\"config?.showAlertsOnHeader\"\n [show-langs]=\"config?.showLangsOnHeader\">\n </lib-shell-header>\n </div>\n</div>\n<main [class]=\"config?.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\n <div [class]=\"config?.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\n <router-outlet *ngIf=\"(!config || config.layout === 'Stacked' || !config.layout)\"></router-outlet>\n </div>\n</main>\n<div class=\"shell-footer-container\"\n *ngIf=\"config?.showFooter\">\n <div [class]=\"config?.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\n <ng-container *ngIf=\"config?.customFooterComponent\">\n <div appDynamicComponentHost\n hostName=\"Footer\"></div>\n </ng-container>\n <lib-shell-footer *ngIf=\"!config?.customFooterComponent\"></lib-shell-footer>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i3.DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { kind: "component", type: i4.ShellFooterComponent, selector: "lib-shell-footer" }, { kind: "component", type: i5.ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "profile-menu", "show-userName", "show-alerts", "show-langs", "border"] }] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ShellStackedLayoutComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'lib-shell-stacked-layout', template: "<div class=\"shell-header-container\"\n *ngIf=\"config?.showHeader\">\n <div [class]=\"config?.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\n <ng-container *ngIf=\"config?.customHeaderComponent\">\n <div appDynamicComponentHost=\"Header\"></div>\n </ng-container>\n <lib-shell-header *ngIf=\"!config?.customHeaderComponent\"\n [show-userName]=\"config?.showUserNameOnHeader\"\n [show-alerts]=\"config?.showAlertsOnHeader\"\n [show-langs]=\"config?.showLangsOnHeader\">\n </lib-shell-header>\n </div>\n</div>\n<main [class]=\"config?.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\n <div [class]=\"config?.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\n <router-outlet *ngIf=\"(!config || config.layout === 'Stacked' || !config.layout)\"></router-outlet>\n </div>\n</main>\n<div class=\"shell-footer-container\"\n *ngIf=\"config?.showFooter\">\n <div [class]=\"config?.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\n <ng-container *ngIf=\"config?.customFooterComponent\">\n <div appDynamicComponentHost\n hostName=\"Footer\"></div>\n </ng-container>\n <lib-shell-footer *ngIf=\"!config?.customFooterComponent\"></lib-shell-footer>\n </div>\n</div>" }]
17
+ }], ctorParameters: () => [], propDecorators: { config: [{
18
+ type: Input
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtc3RhY2tlZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc3RhY2tlZC1sYXlvdXQvc2hlbGwtc3RhY2tlZC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc3RhY2tlZC1sYXlvdXQvc2hlbGwtc3RhY2tlZC1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxnQkFBZ0IsQ0FBQztJQUlWLFFBQVEsS0FBVyxDQUFDOzhHQUxoQiwyQkFBMkI7a0dBQTNCLDJCQUEyQiw4RkNSeEMsNDhDQTJCTTs7MkZEbkJPLDJCQUEyQjtrQkFKdkMsU0FBUzsrQkFDRSwwQkFBMEI7d0RBTTNCLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJU2hlbGxDb25maWcgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zaGVsbC1zdGFja2VkLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1zdGFja2VkLWxheW91dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2hlbGxTdGFja2VkTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBASW5wdXQoKSBjb25maWc6IElTaGVsbENvbmZpZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7IH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItY29udGFpbmVyXCJcbiAgICAgKm5nSWY9XCJjb25maWc/LnNob3dIZWFkZXJcIj5cbiAgICA8ZGl2IFtjbGFzc109XCJjb25maWc/LmZsdWlkID8gJ3NoZWxsLWhlYWRlci1jb250YWluZXItaW5uZXItZmx1aWQnIDogJ3NoZWxsLWhlYWRlci1jb250YWluZXItaW5uZXInXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWc/LmN1c3RvbUhlYWRlckNvbXBvbmVudFwiPlxuICAgICAgICAgICAgPGRpdiBhcHBEeW5hbWljQ29tcG9uZW50SG9zdD1cIkhlYWRlclwiPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGxpYi1zaGVsbC1oZWFkZXIgKm5nSWY9XCIhY29uZmlnPy5jdXN0b21IZWFkZXJDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdy11c2VyTmFtZV09XCJjb25maWc/LnNob3dVc2VyTmFtZU9uSGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3ctYWxlcnRzXT1cImNvbmZpZz8uc2hvd0FsZXJ0c09uSGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3ctbGFuZ3NdPVwiY29uZmlnPy5zaG93TGFuZ3NPbkhlYWRlclwiPlxuICAgICAgICA8L2xpYi1zaGVsbC1oZWFkZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxtYWluIFtjbGFzc109XCJjb25maWc/LnNob3dIZWFkZXIgPyAnc2hlbGwtY29udGVudC1jb250YWluZXInIDogJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyLW5vLWhlYWRlcidcIj5cbiAgICA8ZGl2IFtjbGFzc109XCJjb25maWc/LmZsdWlkID8gJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyLWlubmVyLWZsdWlkJyA6ICdzaGVsbC1jb250ZW50LWNvbnRhaW5lci1pbm5lcidcIj5cbiAgICAgICAgPHJvdXRlci1vdXRsZXQgKm5nSWY9XCIoIWNvbmZpZyB8fCBjb25maWcubGF5b3V0ID09PSAnU3RhY2tlZCcgfHwgIWNvbmZpZy5sYXlvdXQpXCI+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvZGl2PlxuPC9tYWluPlxuPGRpdiBjbGFzcz1cInNoZWxsLWZvb3Rlci1jb250YWluZXJcIlxuICAgICAqbmdJZj1cImNvbmZpZz8uc2hvd0Zvb3RlclwiPlxuICAgIDxkaXYgW2NsYXNzXT1cImNvbmZpZz8uZmx1aWQgPyAnc2hlbGwtZm9vdGVyLWNvbnRhaW5lci1pbm5lci1mbHVpZCcgOiAnc2hlbGwtZm9vdGVyLWNvbnRhaW5lci1pbm5lcidcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZz8uY3VzdG9tRm9vdGVyQ29tcG9uZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGFwcER5bmFtaWNDb21wb25lbnRIb3N0XG4gICAgICAgICAgICAgICAgIGhvc3ROYW1lPVwiRm9vdGVyXCI+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bGliLXNoZWxsLWZvb3RlciAqbmdJZj1cIiFjb25maWc/LmN1c3RvbUZvb3RlckNvbXBvbmVudFwiPjwvbGliLXNoZWxsLWZvb3Rlcj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,86 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { fromEvent } from 'rxjs';
3
+ import { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../../../controls/side-pane/side-pane.component";
8
+ export class FormLayoutComponent {
9
+ constructor(router$) {
10
+ this.router$ = router$;
11
+ this.title = null;
12
+ this.image = null;
13
+ this.icon = null;
14
+ // tslint:disable-next-line:no-input-rename
15
+ this.searchPlaceholder = 'αναζήτηση';
16
+ this.actions = null;
17
+ // tslint:disable-next-line:no-input-rename
18
+ this.subTitle = null;
19
+ // tslint:disable-next-line:no-output-on-prefix
20
+ this.onAction = new EventEmitter();
21
+ // tslint:disable-next-line:no-output-on-prefix
22
+ this.onSearch = new EventEmitter();
23
+ this.onComplete = new EventEmitter();
24
+ }
25
+ ngOnInit() {
26
+ if (this.searchInput$?.nativeElement) {
27
+ fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(map((event) => {
28
+ return event.target.value; // Get input value.
29
+ }), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
30
+ // If character length greater than minimumSearchCharacters setting.
31
+ debounceTime(1000), // Time in milliseconds between key events.
32
+ distinctUntilChanged() // If previous query is different from current.
33
+ ).subscribe();
34
+ }
35
+ }
36
+ onSidePaneDeactivated($event) {
37
+ this.onComplete.emit(true);
38
+ }
39
+ emitActionClick(action) {
40
+ this.onAction.emit(action);
41
+ }
42
+ searchActionClick(action, text) {
43
+ this.onSearch.emit(text);
44
+ }
45
+ searchActionType(text) {
46
+ this.onSearch.emit(this.searchInput$?.nativeElement.value);
47
+ }
48
+ routerLinkActionClick(action, relative = false) {
49
+ if (action.outlet) {
50
+ this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);
51
+ }
52
+ else {
53
+ this.router$.navigate([action.link]);
54
+ }
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FormLayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: FormLayoutComponent, selector: "lib-form-layout", inputs: { title: "title", image: "image", icon: "icon", searchPlaceholder: ["search-placeholder", "searchPlaceholder"], actions: "actions", subTitle: ["sub-title", "subTitle"] }, outputs: { onAction: "onAction", onSearch: "onSearch", onComplete: "onComplete" }, viewQueries: [{ propertyName: "searchInput$", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<div class=\"form-layout-container\">\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\n <div class=\"flex\">\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"image\">\n <img alt=\"form tab image\" class=\"form-header-image\" [src]=\"image\">\n </div>\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"icon\">\n <i [class]=\"icon\" class=\"form-header-icon\"></i>\n </div>\n <div class=\"form-header-inner\">\n <h3 class=\"form-title\">{{ title }}</h3>\n <p class=\"form-subtitle\">{{ subTitle }}</p>\n </div>\n </div>\n \n <div class=\"form-header-actions\">\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\" class=\"sr-only\">Search</label>\n <div class=\"search-container\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\n </svg>-->\n </div>\n <input id=\"search\"\n #search\n class=\"form-search-input\"\n [placeholder]=\"searchPlaceholder\"\n type=\"search\"\n name=\"search\"\n (input)=\"searchActionType(search.value)\">\n </div>\n <button type=\"button\"\n href=\"#\"\n class=\"btn-form-view-header-search\"\n [title]=\"action.tooltip\"\n (click)=\"searchActionClick(action, search.value)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"'router-link'\">\n <button type=\"button\"\n href=\"#\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"routerLinkActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button type=\"button\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"emitActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"form-content-container\">\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\n <ng-content></ng-content>\n </div>\n </div>\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\n <router-outlet name=\"formRightPane\"\n (activate)=\"formPane.onSidePaneActivated($event)\"\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i3.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete", "onOpen", "onClose"] }] }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FormLayoutComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'lib-form-layout', template: "<div class=\"form-layout-container\">\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\n <div class=\"flex\">\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"image\">\n <img alt=\"form tab image\" class=\"form-header-image\" [src]=\"image\">\n </div>\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"icon\">\n <i [class]=\"icon\" class=\"form-header-icon\"></i>\n </div>\n <div class=\"form-header-inner\">\n <h3 class=\"form-title\">{{ title }}</h3>\n <p class=\"form-subtitle\">{{ subTitle }}</p>\n </div>\n </div>\n \n <div class=\"form-header-actions\">\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\" class=\"sr-only\">Search</label>\n <div class=\"search-container\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\n </svg>-->\n </div>\n <input id=\"search\"\n #search\n class=\"form-search-input\"\n [placeholder]=\"searchPlaceholder\"\n type=\"search\"\n name=\"search\"\n (input)=\"searchActionType(search.value)\">\n </div>\n <button type=\"button\"\n href=\"#\"\n class=\"btn-form-view-header-search\"\n [title]=\"action.tooltip\"\n (click)=\"searchActionClick(action, search.value)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"'router-link'\">\n <button type=\"button\"\n href=\"#\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"routerLinkActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button type=\"button\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"emitActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"form-content-container\">\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\n <ng-content></ng-content>\n </div>\n </div>\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\n <router-outlet name=\"formRightPane\"\n (activate)=\"formPane.onSidePaneActivated($event)\"\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n</div>\n" }]
62
+ }], ctorParameters: () => [{ type: i1.Router }], propDecorators: { searchInput$: [{
63
+ type: ViewChild,
64
+ args: ['search']
65
+ }], title: [{
66
+ type: Input
67
+ }], image: [{
68
+ type: Input
69
+ }], icon: [{
70
+ type: Input
71
+ }], searchPlaceholder: [{
72
+ type: Input,
73
+ args: ['search-placeholder']
74
+ }], actions: [{
75
+ type: Input
76
+ }], subTitle: [{
77
+ type: Input,
78
+ args: ['sub-title']
79
+ }], onAction: [{
80
+ type: Output
81
+ }], onSearch: [{
82
+ type: Output
83
+ }], onComplete: [{
84
+ type: Output
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLG1CQUFtQjtJQWlCOUIsWUFBb0IsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFkMUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDNUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDNUIsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ2Qsc0JBQWlCLEdBQWtCLFdBQVcsQ0FBQTtRQUNsRSxZQUFPLEdBQXdCLElBQUksQ0FBQztRQUM3QywyQ0FBMkM7UUFDdkIsYUFBUSxHQUFrQixJQUFJLENBQUM7UUFDbkQsK0NBQStDO1FBQ3JDLGFBQVEsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUM5RSwrQ0FBK0M7UUFDckMsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVELGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVuQyxDQUFDO0lBRXhDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLENBQUM7WUFDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7WUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDdkUsb0VBQW9FO1lBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7WUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7YUFDdkUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFrQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBa0IsRUFBRSxJQUFZO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUE4QixFQUFFLFdBQW9CLEtBQUs7UUFDcEYsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQzs4R0F2RFUsbUJBQW1CO2tHQUFuQixtQkFBbUIscWFDVmhDLDByR0F3RUE7OzJGRDlEYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsaUJBQWlCOzJFQUtFLFlBQVk7c0JBQXhDLFNBQVM7dUJBQUMsUUFBUTtnQkFDVixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFdUIsaUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsT0FBTztzQkFBZixLQUFLO2dCQUVjLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsV0FBVztnQkFFUixRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBmaWx0ZXIsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSb3V0ZXJWaWV3QWN0aW9uLCBWaWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1MYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbWFnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc2VhcmNoLXBsYWNlaG9sZGVyJykgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnzrHOvc6xzrbOrs+EzrfPg863J1xuICBASW5wdXQoKSBhY3Rpb25zOiBWaWV3QWN0aW9uW10gfCBudWxsID0gbnVsbDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3N1Yi10aXRsZScpIHN1YlRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1vbi1wcmVmaXhcbiAgQE91dHB1dCgpIG9uQWN0aW9uOiBFdmVudEVtaXR0ZXI8Vmlld0FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+KCk7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XG4gIEBPdXRwdXQoKSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9uQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlciQ6IFJvdXRlcikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQkPy5uYXRpdmVFbGVtZW50KXtcbiAgICAgIGZyb21FdmVudCh0aGlzLnNlYXJjaElucHV0JC5uYXRpdmVFbGVtZW50LCAna2V5dXAnKS5waXBlKFxuICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZXZlbnQudGFyZ2V0LnZhbHVlOyAvLyBHZXQgaW5wdXQgdmFsdWUuXG4gICAgICAgIH0pLFxuICAgICAgICBmaWx0ZXIoaW5wdXRWYWx1ZSA9PiBpbnB1dFZhbHVlLmxlbmd0aCA+PSAzIHx8IGlucHV0VmFsdWUubGVuZ3RoID09PSAwKSxcbiAgICAgICAgLy8gSWYgY2hhcmFjdGVyIGxlbmd0aCBncmVhdGVyIHRoYW4gbWluaW11bVNlYXJjaENoYXJhY3RlcnMgc2V0dGluZy5cbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMDApLCAvLyBUaW1lIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIGtleSBldmVudHMuXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudC5cbiAgICAgICkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIGVtaXRBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLm9uQWN0aW9uLmVtaXQoYWN0aW9uKTtcbiAgfVxuXG4gIHNlYXJjaEFjdGlvbkNsaWNrKGFjdGlvbjogVmlld0FjdGlvbiwgdGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHRleHQpO1xuICB9XG5cbiAgc2VhcmNoQWN0aW9uVHlwZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb246IFJvdXRlclZpZXdBY3Rpb24gfCBhbnksIHJlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoYWN0aW9uLm91dGxldCkge1xuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFsnJywgeyBvdXRsZXRzOiB7IGZvcm1SaWdodFBhbmU6IGFjdGlvbi5saW5rIH0gfV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoW2FjdGlvbi5saW5rXSk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWxheW91dC1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyXCIgKm5nSWY9XCJ0aXRsZSB8fCBzdWJUaXRsZSB8fCBhY3Rpb25zXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtci00IGZsZXgtc2hyaW5rLTBcIiAqbmdJZj1cImltYWdlXCI+XG4gICAgICAgIDxpbWcgYWx0PVwiZm9ybSB0YWIgaW1hZ2VcIiBjbGFzcz1cImZvcm0taGVhZGVyLWltYWdlXCIgW3NyY109XCJpbWFnZVwiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibXItNCBmbGV4LXNocmluay0wXCIgKm5nSWY9XCJpY29uXCI+XG4gICAgICAgIDxpIFtjbGFzc109XCJpY29uXCIgY2xhc3M9XCJmb3JtLWhlYWRlci1pY29uXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXItaW5uZXJcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiZm9ybS10aXRsZVwiPnt7IHRpdGxlIH19PC9oMz5cbiAgICAgICAgPHAgY2xhc3M9XCJmb3JtLXN1YnRpdGxlXCI+e3sgc3ViVGl0bGUgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIiBbbmdTd2l0Y2hdPVwiYWN0aW9uLnR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoXCIgY2xhc3M9XCJzci1vbmx5XCI+U2VhcmNoPC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQteS0wIGxlZnQtMCBwbC0zIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDwhLS08c3ZnIGNsYXNzPVwiaC01IHctNVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggNGE0IDQgMCAxMDAgOCA0IDQgMCAwMDAtOHpNMiA4YTYgNiAwIDExMTAuODkgMy40NzZsNC44MTcgNC44MTdhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQuODE2LTQuODE2QTYgNiAwIDAxMiA4elwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4tLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGlucHV0IGlkPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAjc2VhcmNoXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2VhcmNoQWN0aW9uVHlwZShzZWFyY2gudmFsdWUpXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWZvcm0tdmlldy1oZWFkZXItc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uLCBzZWFyY2gudmFsdWUpXCI+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncm91dGVyLWxpbmsnXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMSBidG4tZm9ybS12aWV3LWhlYWRlclwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMSBidG4tZm9ybS12aWV3LWhlYWRlclwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtaXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydmb3JtLWNvbnRlbnQtY29udGFpbmVyLWlubmVyJzogYWN0aW9uc31cIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxsaWItc2lkZS1wYW5lICNmb3JtUGFuZSAob25Db21wbGV0ZSk9XCJvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPlxuICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJmb3JtUmlnaHRQYW5lXCJcbiAgICAgICAgICAgICAgICAgICAoYWN0aXZhdGUpPVwiZm9ybVBhbmUub25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAoZGVhY3RpdmF0ZSk9XCJmb3JtUGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPjwvcm91dGVyLW91dGxldD5cbiAgPC9saWItc2lkZS1wYW5lPlxuPC9kaXY+XG4iXX0=