@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,101 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { MenuOption } from '../../../types';
3
+ import { NavigationEnd } from '@angular/router';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/router";
7
+ import * as i3 from "../../../controls/drop-down-menu/drop-down-menu.component";
8
+ import * as i4 from "../view-layout/view-layout.component";
9
+ export class ModelViewLayoutComponent {
10
+ get tabsOptions() {
11
+ if (!this.optionsLoaded) {
12
+ this.optionsLoaded = true;
13
+ if (this.primary) {
14
+ this.primary.forEach(p => {
15
+ this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));
16
+ });
17
+ }
18
+ if (this.secondary) {
19
+ this.secondary.forEach(p => {
20
+ this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));
21
+ });
22
+ }
23
+ this.selectedTab = this._options[0].value;
24
+ }
25
+ return this._options;
26
+ }
27
+ constructor(location, router, route) {
28
+ this.location = location;
29
+ this.router = router;
30
+ this.route = route;
31
+ this.showRightPaneSM = false;
32
+ this.title = 'no title';
33
+ // tslint:disable-next-line:no-input-rename
34
+ this.primary = null;
35
+ // tslint:disable-next-line:no-input-rename
36
+ this.secondary = null;
37
+ // tslint:disable-next-line:no-input-rename
38
+ this.metaItems = [
39
+ // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }
40
+ ];
41
+ this.icon = null;
42
+ this.busy = false;
43
+ this.actions = null;
44
+ this.optionsLoaded = false;
45
+ this._options = [];
46
+ }
47
+ ngOnInit() {
48
+ this.selectedTabSub$ = this.router.events.subscribe(event => {
49
+ if (event instanceof NavigationEnd) {
50
+ if (event.urlAfterRedirects) {
51
+ var urlParts = event.urlAfterRedirects.split('/');
52
+ if (urlParts && urlParts.length > 0) {
53
+ const lastPart = urlParts[urlParts.length - 1];
54
+ this.selectedTab = lastPart.split('?')[0];
55
+ }
56
+ }
57
+ }
58
+ });
59
+ }
60
+ ngOnDestroy() {
61
+ if (this.selectedTabSub$) {
62
+ this.selectedTabSub$.unsubscribe();
63
+ }
64
+ }
65
+ onSidePaneActivated($event) {
66
+ this.showRightPaneSM = true;
67
+ }
68
+ onSidePaneDeactivated($event) {
69
+ this.showRightPaneSM = false;
70
+ }
71
+ closeSidePane() {
72
+ this.location.back();
73
+ }
74
+ navigateLink(link) {
75
+ this.router.navigate([link], { relativeTo: this.route });
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModelViewLayoutComponent, deps: [{ token: i1.Location }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ModelViewLayoutComponent, selector: "lib-model-view-layout", inputs: { title: "title", primary: ["primary-links", "primary"], secondary: ["secondary-links", "secondary"], metaItems: ["meta-items", "metaItems"], icon: "icon", busy: "busy", actions: "actions" }, ngImport: i0, template: "<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\" [actions]=\"actions\" [icon]=\"icon\" [busy]=\"busy\">\n <main class=\"model-view-container\">\n <div class=\"model-view-container-inner\">\n <aside class=\"model-view-aside\">\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\n <div class=\"model-view-aside-header-container\">\n <div class=\"model-view-aside-header-container-inner\">\n <ng-content></ng-content>\n </div>\n <!-- menu items -->\n <div class=\"model-view-menu-container-mobile\">\n <lib-drop-down-menu [options]=\"tabsOptions\" [selected]=\"selectedTab\" (selectedChange)=\"navigateLink($event)\"></lib-drop-down-menu>\n </div>\n <div class=\"model-view-menu-container\">\n <nav class=\"model-view-menu-nav\">\n <div class=\"model-view-menu-item\">\n <ng-container *ngFor=\"let section of primary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLink]=\"section.link\"\n [routerLinkActiveOptions]=\"{ exact: false }\"\n class=\"view-nav-link\">\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\n {{section.text}}\n </a>\n </ng-container>\n </div>\n <div class=\"model-view-menu-item-far\">\n <ng-container *ngFor=\"let section of secondary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLink]=\"section.link\"\n [routerLinkActiveOptions]=\"{ exact: false }\"\n class=\"view-nav-link\">\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\n {{section.text}}\n </a>\n </ng-container>\n </div>\n </nav>\n </div>\n </div>\n </section>\n </aside>\n <div class=\"model-view-details-container\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </main>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i3.DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: ["options", "selected", "multiple", "placeholder", "show-icons"], outputs: ["selectedChange", "selectedChanged"] }, { kind: "component", type: i4.ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }] }); }
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModelViewLayoutComponent, decorators: [{
81
+ type: Component,
82
+ args: [{ selector: 'lib-model-view-layout', template: "<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\" [actions]=\"actions\" [icon]=\"icon\" [busy]=\"busy\">\n <main class=\"model-view-container\">\n <div class=\"model-view-container-inner\">\n <aside class=\"model-view-aside\">\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\n <div class=\"model-view-aside-header-container\">\n <div class=\"model-view-aside-header-container-inner\">\n <ng-content></ng-content>\n </div>\n <!-- menu items -->\n <div class=\"model-view-menu-container-mobile\">\n <lib-drop-down-menu [options]=\"tabsOptions\" [selected]=\"selectedTab\" (selectedChange)=\"navigateLink($event)\"></lib-drop-down-menu>\n </div>\n <div class=\"model-view-menu-container\">\n <nav class=\"model-view-menu-nav\">\n <div class=\"model-view-menu-item\">\n <ng-container *ngFor=\"let section of primary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLink]=\"section.link\"\n [routerLinkActiveOptions]=\"{ exact: false }\"\n class=\"view-nav-link\">\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\n {{section.text}}\n </a>\n </ng-container>\n </div>\n <div class=\"model-view-menu-item-far\">\n <ng-container *ngFor=\"let section of secondary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLink]=\"section.link\"\n [routerLinkActiveOptions]=\"{ exact: false }\"\n class=\"view-nav-link\">\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\n {{section.text}}\n </a>\n </ng-container>\n </div>\n </nav>\n </div>\n </div>\n </section>\n </aside>\n <div class=\"model-view-details-container\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </main>\n" }]
83
+ }], ctorParameters: () => [{ type: i1.Location }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { title: [{
84
+ type: Input
85
+ }], primary: [{
86
+ type: Input,
87
+ args: ['primary-links']
88
+ }], secondary: [{
89
+ type: Input,
90
+ args: ['secondary-links']
91
+ }], metaItems: [{
92
+ type: Input,
93
+ args: ['meta-items']
94
+ }], icon: [{
95
+ type: Input
96
+ }], busy: [{
97
+ type: Input
98
+ }], actions: [{
99
+ type: Input
100
+ }] } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBa0IsVUFBVSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFrQixhQUFhLEVBQTJCLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVF6RixNQUFNLE9BQU8sd0JBQXdCO0lBa0JuQyxJQUFXLFdBQVc7UUFDcEIsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztn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UzsrQkFFRSx1QkFBdUI7K0hBS3hCLEtBQUs7c0JBQWIsS0FBSztnQkFFa0IsT0FBTztzQkFBOUIsS0FBSzt1QkFBQyxlQUFlO2dCQUVJLFNBQVM7c0JBQWxDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVILFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFHVixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIZWFkZXJNZXRhSXRlbSwgTWVudU9wdGlvbiwgVmlld0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWItbW9kZWwtdmlldy1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xuICBASW5wdXQoKSB0aXRsZSA9ICdubyB0aXRsZSc7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdwcmltYXJ5LWxpbmtzJykgcHJpbWFyeTogeyB0ZXh0OiBzdHJpbmcsIGxpbms6IHN0cmluZywgaWNvbj86IHN0cmluZywgZXhhY3Q/IDogYm9vbGVhbiB9W10gfCBudWxsID0gbnVsbDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlY29uZGFyeS1saW5rcycpIHNlY29uZGFyeTogeyB0ZXh0OiBzdHJpbmcsIGxpbms6IHN0cmluZywgaWNvbj86IHN0cmluZywgZXhhY3Q/IDogYm9vbGVhbiB9W10gfCBudWxsID0gbnVsbDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ21ldGEtaXRlbXMnKSBtZXRhSXRlbXM6IEhlYWRlck1ldGFJdGVtW10gfCBudWxsID0gW1xuICAgIC8vIHsga2V5OiAndGVzdCcsIGljb246IEljb25zLkJhZGdlcywgdGV4dDogJ86yz4HOrc64zrfOus6xzr0gMjAwIM6xz4DOv8+EzrXOu86tz4POvM6xz4TOsScgfVxuICBdO1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xuICBASW5wdXQoKSBhY3Rpb25zOiBWaWV3QWN0aW9uW10gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvcHRpb25zTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX29wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgc2VsZWN0ZWRUYWI6IGFueTtcbiAgcHJpdmF0ZSBzZWxlY3RlZFRhYlN1YiQ6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGdldCB0YWJzT3B0aW9ucygpOiBNZW51T3B0aW9uW10ge1xuICAgIGlmKCF0aGlzLm9wdGlvbnNMb2FkZWQpIHtcbiAgICAgIHRoaXMub3B0aW9uc0xvYWRlZCA9IHRydWU7XG4gICAgICBpZih0aGlzLnByaW1hcnkpIHtcbiAgICAgICAgdGhpcy5wcmltYXJ5LmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgdGhpcy5fb3B0aW9ucy5wdXNoKG5ldyBNZW51T3B0aW9uKHAudGV4dCwgcC5saW5rLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcC5pY29uKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZih0aGlzLnNlY29uZGFyeSkge1xuICAgICAgICB0aGlzLnNlY29uZGFyeS5mb3JFYWNoKHAgPT4ge1xuICAgICAgICAgIHRoaXMuX29wdGlvbnMucHVzaChuZXcgTWVudU9wdGlvbihwLnRleHQsIHAubGluaywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHAuaWNvbikpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLl9vcHRpb25zWzBdLnZhbHVlOyBcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cbiAgY29uc3RydWN0b3IoIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgeyB9XG4gIFxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVGFiU3ViJCA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICkge1xuICAgICAgICBpZihldmVudC51cmxBZnRlclJlZGlyZWN0cykge1xuICAgICAgICAgIHZhciB1cmxQYXJ0cyA9IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzLnNwbGl0KCcvJyk7XG4gICAgICAgICAgaWYodXJsUGFydHMgJiYgdXJsUGFydHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbGFzdFBhcnQgPSB1cmxQYXJ0c1t1cmxQYXJ0cy5sZW5ndGgtMV07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gbGFzdFBhcnQuc3BsaXQoJz8nKVswXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmKHRoaXMuc2VsZWN0ZWRUYWJTdWIkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFiU3ViJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIG9uU2lkZVBhbmVBY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7XG4gICAgdGhpcy5zaG93UmlnaHRQYW5lU00gPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQ6IGFueSk6IHZvaWQgIHtcbiAgICB0aGlzLnNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGNsb3NlU2lkZVBhbmUoKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVMaW5rKGxpbms6IGFueSk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaW5rXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGV9KTtcbiAgfVxufVxuIiwiPGxpYi12aWV3LWxheW91dCBbdGl0bGVdPVwidGl0bGVcIiBbbWV0YS1pdGVtc109XCJtZXRhSXRlbXNcIiBbYWN0aW9uc109XCJhY3Rpb25zXCIgW2ljb25dPVwiaWNvblwiIFtidXN5XT1cImJ1c3lcIj5cbiAgPG1haW4gY2xhc3M9XCJtb2RlbC12aWV3LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWNvbnRhaW5lci1pbm5lclwiPlxuICAgICAgPGFzaWRlIGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZVwiPlxuICAgICAgICA8c2VjdGlvbiBhcmlhLWxhYmVsbGVkYnk9XCJtZW51XCIgY2xhc3M9XCJkZXRhaWxzLXZpZXctYXNpZGUtaGVhZGVyLXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZS1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZS1oZWFkZXItY29udGFpbmVyLWlubmVyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPCEtLSBtZW51IGl0ZW1zIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1jb250YWluZXItbW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPGxpYi1kcm9wLWRvd24tbWVudSBbb3B0aW9uc109XCJ0YWJzT3B0aW9uc1wiIFtzZWxlY3RlZF09XCJzZWxlY3RlZFRhYlwiIChzZWxlY3RlZENoYW5nZSk9XCJuYXZpZ2F0ZUxpbmsoJGV2ZW50KVwiPjwvbGliLWRyb3AtZG93bi1tZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1tZW51LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8bmF2IGNsYXNzPVwibW9kZWwtdmlldy1tZW51LW5hdlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBwcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyd2aWV3LW5hdi1saW5rLWFjdGl2ZSddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwic2VjdGlvbi5saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IGZhbHNlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZpZXctbmF2LWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInNlY3Rpb24uaWNvblwiIFtjbGFzc109XCJzZWN0aW9uLmljb24gKyAnIG1yLTInXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIHt7c2VjdGlvbi50ZXh0fX1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1pdGVtLWZhclwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJbJ3ZpZXctbmF2LWxpbmstYWN0aXZlJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzZWN0aW9uLmxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogZmFsc2UgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwic2VjdGlvbi5pY29uXCIgW2NsYXNzXT1cInNlY3Rpb24uaWNvbiArICcgbXItMidcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnRleHR9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9hc2lkZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWRldGFpbHMtY29udGFpbmVyXCI+XG4gICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21haW4+XG4iXX0=
@@ -0,0 +1,106 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/router";
5
+ export class SideViewLayoutComponent {
6
+ constructor(location, router) {
7
+ this.location = location;
8
+ this.router = router;
9
+ this.title = 'Πληροφορίες';
10
+ this.showActions = true;
11
+ this.disabled = false;
12
+ // tslint:disable-next-line:no-input-rename
13
+ this.okLabel = 'Αποθήκευση';
14
+ // tslint:disable-next-line:no-input-rename
15
+ this.okShow = true;
16
+ // tslint:disable-next-line:no-input-rename
17
+ this.closeOnOk = true;
18
+ // tslint:disable-next-line:no-input-rename
19
+ this.cancelLabel = 'Ακύρωση';
20
+ // tslint:disable-next-line:no-input-rename
21
+ this.cancelShow = true;
22
+ // tslint:disable-next-line:no-input-rename
23
+ this.forceLocationBack = false;
24
+ this.redirectOnClose = true;
25
+ // @Output() close = new EventEmitter<any>();
26
+ this.cancel = new EventEmitter();
27
+ this.ok = new EventEmitter();
28
+ }
29
+ ngOnInit() {
30
+ }
31
+ closeSidePane() {
32
+ if (this.returnPath) {
33
+ this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));
34
+ }
35
+ else {
36
+ if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {
37
+ this.router.navigateByUrl(this.router.url.split('/(')[0]);
38
+ }
39
+ else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {
40
+ this.router.navigateByUrl(this.router.url.split('(')[0]);
41
+ }
42
+ else {
43
+ this.location.back();
44
+ }
45
+ }
46
+ }
47
+ emitClose() {
48
+ this.cancel.emit(false);
49
+ if (this.redirectOnClose) {
50
+ this.closeSidePane();
51
+ }
52
+ }
53
+ emitCancel() {
54
+ this.cancel.emit(false);
55
+ if (this.redirectOnClose) {
56
+ this.closeSidePane();
57
+ }
58
+ }
59
+ emitOK() {
60
+ this.ok.emit(true);
61
+ if (this.closeOnOk && this.redirectOnClose) {
62
+ this.closeSidePane();
63
+ }
64
+ }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SideViewLayoutComponent, deps: [{ token: i1.Location }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: SideViewLayoutComponent, selector: "lib-side-view-layout", inputs: { title: "title", showActions: "showActions", disabled: "disabled", returnPath: ["return-path", "returnPath"], okLabel: ["ok-label", "okLabel"], okShow: ["ok-show", "okShow"], closeOnOk: ["ok-close-dialog", "closeOnOk"], cancelLabel: ["cancel-label", "cancelLabel"], cancelShow: ["cancel-show", "cancelShow"], forceLocationBack: ["force-location-back", "forceLocationBack"], redirectOnClose: ["redirect-on-close", "redirectOnClose"] }, outputs: { cancel: "cancel", ok: "ok" }, ngImport: i0, template: "<div class=\"side-view-layout-size-box\">\n <div class=\"side-view-layout-container\">\n <div class=\"side-view-layout-container-inner\">\n <div class=\"side-view-layout-header-margins\">\n <div class=\"side-view-layout-header-container\">\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\n {{title}}\n </h2>\n <div class=\"side-view-layout-close-button-container\">\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\n <span class=\"sr-only\">Close panel</span>\n <!-- Heroicon name: outline/x -->\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n <div class=\"side-view-layout-content-container\">\n <!-- Replace with your content -->\n <ng-content></ng-content>\n <!-- /End replace -->\n </div>\n </div>\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\n {{cancelLabel}}\n </button>\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\n {{okLabel}}\n </button>\n </div>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SideViewLayoutComponent, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: 'lib-side-view-layout', template: "<div class=\"side-view-layout-size-box\">\n <div class=\"side-view-layout-container\">\n <div class=\"side-view-layout-container-inner\">\n <div class=\"side-view-layout-header-margins\">\n <div class=\"side-view-layout-header-container\">\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\n {{title}}\n </h2>\n <div class=\"side-view-layout-close-button-container\">\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\n <span class=\"sr-only\">Close panel</span>\n <!-- Heroicon name: outline/x -->\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n <div class=\"side-view-layout-content-container\">\n <!-- Replace with your content -->\n <ng-content></ng-content>\n <!-- /End replace -->\n </div>\n </div>\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\n {{cancelLabel}}\n </button>\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\n {{okLabel}}\n </button>\n </div>\n </div>\n</div>\n\n" }]
71
+ }], ctorParameters: () => [{ type: i1.Location }, { type: i2.Router }], propDecorators: { title: [{
72
+ type: Input
73
+ }], showActions: [{
74
+ type: Input
75
+ }], disabled: [{
76
+ type: Input
77
+ }], returnPath: [{
78
+ type: Input,
79
+ args: ['return-path']
80
+ }], okLabel: [{
81
+ type: Input,
82
+ args: ['ok-label']
83
+ }], okShow: [{
84
+ type: Input,
85
+ args: ['ok-show']
86
+ }], closeOnOk: [{
87
+ type: Input,
88
+ args: ['ok-close-dialog']
89
+ }], cancelLabel: [{
90
+ type: Input,
91
+ args: ['cancel-label']
92
+ }], cancelShow: [{
93
+ type: Input,
94
+ args: ['cancel-show']
95
+ }], forceLocationBack: [{
96
+ type: Input,
97
+ args: ['force-location-back']
98
+ }], redirectOnClose: [{
99
+ type: Input,
100
+ args: ['redirect-on-close']
101
+ }], cancel: [{
102
+ type: Output
103
+ }], ok: [{
104
+ type: Output
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy92aWV3cy9zaWRlLXZpZXctbGF5b3V0L3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPL0UsTUFBTSxPQUFPLHVCQUF1QjtJQXVCbEMsWUFBb0IsUUFBa0IsRUFBVSxNQUFjO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdEJyRCxVQUFLLEdBQWtCLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLDJDQUEyQztRQUN4QixZQUFPLEdBQUcsWUFBWSxDQUFDO1FBQzFDLDJDQUEyQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLDJDQUEyQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLDJDQUEyQztRQUNwQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQywyQ0FBMkM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QywyQ0FBMkM7UUFDYixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDbkQsNkNBQTZDO1FBQ25DLFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQUUs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O3VCQUFDLHFCQUFxQjtnQkFDQSxlQUFlO3NCQUExQyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFFaEIsTUFBTTtzQkFBZixNQUFNO2dCQUNHLEVBQUU7c0JBQVgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zaWRlLXZpZXctbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNpZGVWaWV3TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IG51bGwgPSAnzqDOu863z4HOv8+Gzr/Pgc6vzrXPgic7XG4gIEBJbnB1dCgpIHNob3dBY3Rpb25zID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3JldHVybi1wYXRoJykgcmV0dXJuUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2stbGFiZWwnKSBva0xhYmVsID0gJ86Rz4DOv864zq7Ous61z4XPg863JztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29rLXNob3cnKSBva1Nob3cgPSB0cnVlO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2stY2xvc2UtZGlhbG9nJykgY2xvc2VPbk9rID0gdHJ1ZTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NhbmNlbC1sYWJlbCcpIGNhbmNlbExhYmVsID0gJ86RzrrPjc+Bz4nPg863JztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NhbmNlbC1zaG93JykgY2FuY2VsU2hvdyA9IHRydWU7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdmb3JjZS1sb2NhdGlvbi1iYWNrJykgZm9yY2VMb2NhdGlvbkJhY2sgPSBmYWxzZTtcbiAgQElucHV0KCdyZWRpcmVjdC1vbi1jbG9zZScpIHJlZGlyZWN0T25DbG9zZSA9IHRydWU7XG4gIC8vIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgY2FuY2VsOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvazogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVNpZGVQYW5lKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJldHVyblBhdGgpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yZXR1cm5QYXRoIHx8ICcvJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoKHRoaXMucm91dGVyLnVybC5zcGxpdCgnLygnKVswXSAhPT0gdGhpcy5yb3V0ZXIudXJsKSAmJiAhdGhpcy5mb3JjZUxvY2F0aW9uQmFjaykge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVyLnVybC5zcGxpdCgnLygnKVswXSk7XG4gICAgICB9IGVsc2UgaWYgKCh0aGlzLnJvdXRlci51cmwuc3BsaXQoJygnKVswXSAhPT0gdGhpcy5yb3V0ZXIudXJsKSAmJiAhdGhpcy5mb3JjZUxvY2F0aW9uQmFjaykge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVyLnVybC5zcGxpdCgnKCcpWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdChmYWxzZSk7XG4gICAgaWYodGhpcy5yZWRpcmVjdE9uQ2xvc2UpIHtcbiAgICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoZmFsc2UpO1xuICAgIGlmKHRoaXMucmVkaXJlY3RPbkNsb3NlKSB7XG4gICAgICB0aGlzLmNsb3NlU2lkZVBhbmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdE9LKCk6IHZvaWQge1xuICAgIHRoaXMub2suZW1pdCh0cnVlKTtcbiAgICBpZiAodGhpcy5jbG9zZU9uT2sgJiYgdGhpcy5yZWRpcmVjdE9uQ2xvc2UpIHtcbiAgICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1zaXplLWJveFwiPlxuICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jb250YWluZXItaW5uZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWhlYWRlci1tYXJnaW5zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWhlYWRlci10aXRsZVwiIGlkPVwic2xpZGUtb3Zlci10aXRsZVwiPlxuICAgICAgICAgICAge3t0aXRsZX19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jbG9zZS1idXR0b24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlbWl0Q2xvc2UoKVwiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jbG9zZS1idXR0b25cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2UgcGFuZWw8L3NwYW4+XG4gICAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogb3V0bGluZS94IC0tPlxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jbG9zZS1idXR0b24taWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIyXCIgZD1cIk02IDE4TDE4IDZNNiA2bDEyIDEyXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICAgIDwhLS0gUmVwbGFjZSB3aXRoIHlvdXIgY29udGVudCAtLT5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8IS0tIC9FbmQgcmVwbGFjZSAtLT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93QWN0aW9uc1wiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1hY3Rpb25zLWNvbnRhaW5lclwiPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbmNlbFNob3dcIiAoY2xpY2spPVwiZW1pdENhbmNlbCgpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1hY3Rpb24tYnV0dG9uLWNhbmNlbFwiPlxuICAgICAgICB7e2NhbmNlbExhYmVsfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIm9rU2hvd1wiIChjbGljayk9XCJlbWl0T0soKVwiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1hY3Rpb24tYnV0dG9uLXN1Ym1pdFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICB7e29rTGFiZWx9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
@@ -0,0 +1,104 @@
1
+ import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
2
+ import { fromEvent } from 'rxjs';
3
+ import { debounceTime, distinctUntilChanged, filter, map } 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
+ export class ViewLayoutComponent {
8
+ constructor(route$, router$) {
9
+ this.route$ = route$;
10
+ this.router$ = router$;
11
+ // tslint:disable-next-line:no-input-rename
12
+ this.header = true;
13
+ this.fluid = false;
14
+ this.title = 'no title';
15
+ this.icon = null;
16
+ this.actions = null;
17
+ this.busy = false;
18
+ // tslint:disable-next-line:no-input-rename
19
+ this.searchPlaceholder = 'αναζήτηση';
20
+ this.view = null;
21
+ // tslint:disable-next-line:no-input-rename
22
+ this.metaItems = [];
23
+ // tslint:disable-next-line:no-output-on-prefix
24
+ this.onAction = new EventEmitter();
25
+ // tslint:disable-next-line:no-output-on-prefix
26
+ this.onSearch = new EventEmitter();
27
+ }
28
+ ngOnInit() {
29
+ if (this.searchInput$?.nativeElement) {
30
+ fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(map((event) => {
31
+ return event.target.value; // Get input value.
32
+ }), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
33
+ // If character length greater than minimumSearchCharacters setting.
34
+ debounceTime(1000), // Time in milliseconds between key events.
35
+ distinctUntilChanged() // If previous query is different from current.
36
+ ).subscribe();
37
+ }
38
+ }
39
+ emitActionClick(action) {
40
+ this.onAction.emit(action);
41
+ }
42
+ routerLinkActionClick(action) {
43
+ // console.log('routerLinkActionClick', action);
44
+ if (action.outlet) {
45
+ this.router$.navigate(['', { outlets: { rightpane: action.link } }]);
46
+ }
47
+ else {
48
+ this.router$.navigate([action.link]);
49
+ }
50
+ }
51
+ searchActionClick(action, text) {
52
+ this.onSearch.emit(text);
53
+ }
54
+ searchActionType(text) {
55
+ this.onSearch.emit(this.searchInput$?.nativeElement.value);
56
+ }
57
+ handleClear(event) {
58
+ console.log('handle clear!!!');
59
+ event.stopPropagation();
60
+ this.onSearch.emit(event.target?.value);
61
+ }
62
+ switchViewActionClick(action) {
63
+ // console.log('switchViewActionClick', action);
64
+ this.view = action.param;
65
+ if (action && action.param) {
66
+ this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });
67
+ }
68
+ }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ViewLayoutComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ViewLayoutComponent, selector: "lib-view-layout", inputs: { header: ["show-header", "header"], fluid: "fluid", title: "title", icon: "icon", actions: "actions", busy: "busy", searchPlaceholder: ["search-placeholder", "searchPlaceholder"], view: "view", metaItems: ["meta-items", "metaItems"] }, outputs: { onAction: "onAction", onSearch: "onSearch" }, viewQueries: [{ propertyName: "searchInput$", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<header *ngIf=\"header\"\n class=\"view-layout-paddings\">\n <div class=\"view-layout-title-container\">\n <div class=\"view-layout-title-container-inner\">\n <div class=\"flex items-center\">\n <i *ngIf=\"icon\"\n [class]=\"icon + ' title-icon'\"\n aria-hidden=\"true\"></i>\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\n </div>\n <div *ngIf=\"metaItems && metaItems.length > 0\"\n class=\"meta-container\">\n <ng-container *ngFor=\"let meta of metaItems\">\n <div class=\"meta-item-container\">\n <i *ngIf=\"meta.icon\"\n [class]=\"meta.icon + ' meta-icon'\"\n aria-hidden=\"true\">\n </i>\n <span class=\"meta-text\">{{meta.text}}</span>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"view-layout-title-container-far\">\n <ng-container *ngFor=\"let action of actions\"\n [ngSwitch]=\"action.type\">\n\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\"\n class=\"sr-only\">\n Search\n </label>\n <div class=\"search-container mr-1\">\n <input id=\"text\"\n #search\n class=\"search-input\"\n [placeholder]=\"searchPlaceholder\"\n name=\"search\"\n (input)=\"searchActionType(search.value)\"\n (onsearch)=\"handleClear($event)\">\n <button type=\"button\"\n href=\"#\"\n class=\"search-button\"\n [title]=\"action.tooltip\"\n (click)=\"searchActionClick(action, search.value)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'switch-view'\">\n <button [disabled]=\"view === action.param\"\n type=\"button\"\n href=\"#\"\n class=\"p-2 disabled:opacity-75 btn-view-header\"\n (click)=\"switchViewActionClick(action)\">\n <span class=\"inline-block relative\">\n <i [class]=\"action.icon\"></i>\n <span *ngIf=\"view === action.param\"\n class=\"selected-view-indicator\">\n </span>\n </span>\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'router-link'\">\n <button type=\"button\"\n href=\"#\"\n class=\"p-2 btn-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"routerLinkActionClick(action)\">\n <i [class]=\"action.icon\"\n [ngClass]=\"{'pr-1': action.text}\"></i>\n {{ action.text }}\n </button>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button type=\"button\"\n class=\"p-2 btn-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"emitActionClick(action)\">\n <i [class]=\"action.icon\"\n [ngClass]=\"{'pr-1': action.text}\"></i>\n {{ action.text }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</header>\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\n <ng-content></ng-content>\n</div>", 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]" }] }); }
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ViewLayoutComponent, decorators: [{
73
+ type: Component,
74
+ args: [{ selector: 'lib-view-layout', template: "<header *ngIf=\"header\"\n class=\"view-layout-paddings\">\n <div class=\"view-layout-title-container\">\n <div class=\"view-layout-title-container-inner\">\n <div class=\"flex items-center\">\n <i *ngIf=\"icon\"\n [class]=\"icon + ' title-icon'\"\n aria-hidden=\"true\"></i>\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\n </div>\n <div *ngIf=\"metaItems && metaItems.length > 0\"\n class=\"meta-container\">\n <ng-container *ngFor=\"let meta of metaItems\">\n <div class=\"meta-item-container\">\n <i *ngIf=\"meta.icon\"\n [class]=\"meta.icon + ' meta-icon'\"\n aria-hidden=\"true\">\n </i>\n <span class=\"meta-text\">{{meta.text}}</span>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"view-layout-title-container-far\">\n <ng-container *ngFor=\"let action of actions\"\n [ngSwitch]=\"action.type\">\n\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\"\n class=\"sr-only\">\n Search\n </label>\n <div class=\"search-container mr-1\">\n <input id=\"text\"\n #search\n class=\"search-input\"\n [placeholder]=\"searchPlaceholder\"\n name=\"search\"\n (input)=\"searchActionType(search.value)\"\n (onsearch)=\"handleClear($event)\">\n <button type=\"button\"\n href=\"#\"\n class=\"search-button\"\n [title]=\"action.tooltip\"\n (click)=\"searchActionClick(action, search.value)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'switch-view'\">\n <button [disabled]=\"view === action.param\"\n type=\"button\"\n href=\"#\"\n class=\"p-2 disabled:opacity-75 btn-view-header\"\n (click)=\"switchViewActionClick(action)\">\n <span class=\"inline-block relative\">\n <i [class]=\"action.icon\"></i>\n <span *ngIf=\"view === action.param\"\n class=\"selected-view-indicator\">\n </span>\n </span>\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'router-link'\">\n <button type=\"button\"\n href=\"#\"\n class=\"p-2 btn-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"routerLinkActionClick(action)\">\n <i [class]=\"action.icon\"\n [ngClass]=\"{'pr-1': action.text}\"></i>\n {{ action.text }}\n </button>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button type=\"button\"\n class=\"p-2 btn-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"emitActionClick(action)\">\n <i [class]=\"action.icon\"\n [ngClass]=\"{'pr-1': action.text}\"></i>\n {{ action.text }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</header>\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\n <ng-content></ng-content>\n</div>" }]
75
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }], propDecorators: { searchInput$: [{
76
+ type: ViewChild,
77
+ args: ['search']
78
+ }], header: [{
79
+ type: Input,
80
+ args: ['show-header']
81
+ }], fluid: [{
82
+ type: Input
83
+ }], title: [{
84
+ type: Input
85
+ }], icon: [{
86
+ type: Input
87
+ }], actions: [{
88
+ type: Input
89
+ }], busy: [{
90
+ type: Input
91
+ }], searchPlaceholder: [{
92
+ type: Input,
93
+ args: ['search-placeholder']
94
+ }], view: [{
95
+ type: Input
96
+ }], metaItems: [{
97
+ type: Input,
98
+ args: ['meta-items']
99
+ }], onAction: [{
100
+ type: Output
101
+ }], onSearch: [{
102
+ type: Output
103
+ }] } });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU9qRixNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUFvQixNQUFzQixFQUFVLE9BQWU7UUFBL0MsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBakJuRSwyQ0FBMkM7UUFDckIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsVUFBSyxHQUFHLFVBQVUsQ0FBQztRQUNuQixTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixZQUFPLEdBQXdCLElBQUksQ0FBQztRQUNwQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLDJDQUEyQztRQUNkLHNCQUFpQixHQUFrQixXQUFXLENBQUM7UUFDbkUsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBQzdELCtD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QUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUV1QixpQkFBaUI7c0JBQTdDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUNsQixJQUFJO3NCQUFaLEtBQUs7Z0JBRWUsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUVULFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN3aXRjaFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEhlYWRlck1ldGFJdGVtLCBSb3V0ZXJWaWV3QWN0aW9uLCBWaWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdmlldy1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3Nob3ctaGVhZGVyJykgaGVhZGVyID0gdHJ1ZTtcbiAgQElucHV0KCkgZmx1aWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGUgPSAnbm8gdGl0bGUnO1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWN0aW9uczogVmlld0FjdGlvbltdIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGJ1c3kgPSBmYWxzZTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlYXJjaC1wbGFjZWhvbGRlcicpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gJ86xzr3Osc62zq7PhM63z4POtyc7XG4gIEBJbnB1dCgpIHZpZXc6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1vbi1wcmVmaXhcbiAgQE91dHB1dCgpIG9uQWN0aW9uOiBFdmVudEVtaXR0ZXI8Vmlld0FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+KCk7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XG4gIEBPdXRwdXQoKSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlJDogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyJDogUm91dGVyKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQpe1xuICAgICAgZnJvbUV2ZW50KHRoaXMuc2VhcmNoSW5wdXQkLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXG4gICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7IC8vIEdldCBpbnB1dCB2YWx1ZS5cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcihpbnB1dFZhbHVlID0+IGlucHV0VmFsdWUubGVuZ3RoID49IDMgfHwgaW5wdXRWYWx1ZS5sZW5ndGggPT09IDApLFxuICAgICAgICAvLyBJZiBjaGFyYWN0ZXIgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBtaW5pbXVtU2VhcmNoQ2hhcmFjdGVycyBzZXR0aW5nLlxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50cy5cbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSAvLyBJZiBwcmV2aW91cyBxdWVyeSBpcyBkaWZmZXJlbnQgZnJvbSBjdXJyZW50LlxuICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdEFjdGlvbkNsaWNrKGFjdGlvbjogVmlld0FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMub25BY3Rpb24uZW1pdChhY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIHJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb246IFJvdXRlclZpZXdBY3Rpb24gfCBhbnkpOiB2b2lkIHtcbiAgICAvLyBjb25zb2xlLmxvZygncm91dGVyTGlua0FjdGlvbkNsaWNrJywgYWN0aW9uKTtcbiAgICBpZiAoYWN0aW9uLm91dGxldCkge1xuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFsnJywgeyBvdXRsZXRzOiB7IHJpZ2h0cGFuZTogYWN0aW9uLmxpbmsgfSB9XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbYWN0aW9uLmxpbmtdKTtcbiAgICB9XG4gIH1cblxuICBzZWFyY2hBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24sIHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXh0KTtcbiAgfVxuXG4gIHNlYXJjaEFjdGlvblR5cGUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHRoaXMuc2VhcmNoSW5wdXQkPy5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbGVhcihldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ2hhbmRsZSBjbGVhciEhIScpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub25TZWFyY2guZW1pdChldmVudC50YXJnZXQ/LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzd2l0Y2hWaWV3QWN0aW9uQ2xpY2soYWN0aW9uOiBTd2l0Y2hWaWV3QWN0aW9uIHwgYW55KTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5sb2coJ3N3aXRjaFZpZXdBY3Rpb25DbGljaycsIGFjdGlvbik7XG4gICAgdGhpcy52aWV3ID0gYWN0aW9uLnBhcmFtO1xuICAgIGlmIChhY3Rpb24gJiYgYWN0aW9uLnBhcmFtKSB7XG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IHsgdmlldzogYWN0aW9uLnBhcmFtIH0sIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsIHNraXBMb2NhdGlvbkNoYW5nZTogZmFsc2UgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8aGVhZGVyICpuZ0lmPVwiaGVhZGVyXCJcbiAgICAgICAgY2xhc3M9XCJ2aWV3LWxheW91dC1wYWRkaW5nc1wiPlxuICA8ZGl2IGNsYXNzPVwidmlldy1sYXlvdXQtdGl0bGUtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lci1pbm5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxpICpuZ0lmPVwiaWNvblwiXG4gICAgICAgICAgIFtjbGFzc109XCJpY29uICsgJyB0aXRsZS1pY29uJ1wiXG4gICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPGgxIFtjbGFzc109XCJidXN5ID8gJ3ZpZXctbGF5b3V0LXRpdGxlLWJ1c3knIDogJ3ZpZXctbGF5b3V0LXRpdGxlJ1wiPnt7dGl0bGV9fTwvaDE+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJtZXRhSXRlbXMgJiYgbWV0YUl0ZW1zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICBjbGFzcz1cIm1ldGEtY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldGEgb2YgbWV0YUl0ZW1zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwibWV0YS5pY29uXCJcbiAgICAgICAgICAgICAgIFtjbGFzc109XCJtZXRhLmljb24gKyAnIG1ldGEtaWNvbidcIlxuICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdGV4dFwiPnt7bWV0YS50ZXh0fX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lci1mYXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3dpdGNoXT1cImFjdGlvbi50eXBlXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAgICBTZWFyY2hcbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyIG1yLTFcIj5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICNzZWFyY2hcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2VhcmNoQWN0aW9uVHlwZShzZWFyY2gudmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAob25zZWFyY2gpPVwiaGFuZGxlQ2xlYXIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uLCBzZWFyY2gudmFsdWUpXCI+XG4gICAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3dpdGNoLXZpZXcnXCI+XG4gICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidmlldyA9PT0gYWN0aW9uLnBhcmFtXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLTIgZGlzYWJsZWQ6b3BhY2l0eS03NSBidG4tdmlldy1oZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN3aXRjaFZpZXdBY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1ibG9jayByZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidmlldyA9PT0gYWN0aW9uLnBhcmFtXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC12aWV3LWluZGljYXRvclwiPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyb3V0ZXItbGluaydcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLTIgYnRuLXZpZXctaGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicm91dGVyTGlua0FjdGlvbkNsaWNrKGFjdGlvbilcIj5cbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3ByLTEnOiBhY3Rpb24udGV4dH1cIj48L2k+XG4gICAgICAgICAgICB7eyBhY3Rpb24udGV4dCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC0yIGJ0bi12aWV3LWhlYWRlclwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtaXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydwci0xJzogYWN0aW9uLnRleHR9XCI+PC9pPlxuICAgICAgICAgICAge3sgYWN0aW9uLnRleHQgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2hlYWRlcj5cbjxkaXYgW2NsYXNzXT1cImZsdWlkID8gJ3ZpZXctY29udGFpbmVyLWZsdWlkJyA6ICd2aWV3LWNvbnRhaW5lcidcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+Il19