@indice/ng-components 0.2.138-beta → 0.2.139

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 (226) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/README.md +4 -4
  3. package/karma.conf.js +44 -0
  4. package/ng-package.json +10 -0
  5. package/package.json +18 -9
  6. package/scripts/css-bundle.ts +33 -0
  7. package/src/_styles.css +36 -0
  8. package/src/_tests/utilities.service.spec.ts +16 -0
  9. package/src/assets/styles/avatar-initials.css +37 -0
  10. package/src/assets/styles/base.css +46 -0
  11. package/src/assets/styles/cards.css +71 -0
  12. package/src/assets/styles/collapsible-panel.css +25 -0
  13. package/src/assets/styles/components.css +34 -0
  14. package/src/assets/styles/date-picker.component.css +0 -0
  15. package/src/assets/styles/drop-down-menu.css +50 -0
  16. package/src/assets/styles/form-layout.css +49 -0
  17. package/{_styles.css → src/assets/styles/indice-ng-icons-inline.css} +2286 -3504
  18. package/src/assets/styles/list-view-empty-state.css +0 -0
  19. package/src/assets/styles/list-view.css +64 -0
  20. package/{modal.css → src/assets/styles/modal.css} +157 -157
  21. package/src/assets/styles/model-view-layout.css +45 -0
  22. package/src/assets/styles/nav-links.css +35 -0
  23. package/src/assets/styles/notifications-indicator.component.css +43 -0
  24. package/src/assets/styles/pager.css +29 -0
  25. package/src/assets/styles/shell-layout.css +232 -0
  26. package/src/assets/styles/side-pane.css +46 -0
  27. package/src/assets/styles/side-view-layout.css +58 -0
  28. package/src/assets/styles/toast.css +72 -0
  29. package/src/assets/styles/toggle.css +26 -0
  30. package/src/assets/styles/view-layout.css +58 -0
  31. package/src/lib/controls/avatar-initials/avatar-initials.component.html +3 -0
  32. package/src/lib/controls/avatar-initials/avatar-initials.component.ts +47 -0
  33. package/src/lib/controls/collapsible-panel/collapsible-panel.component.html +15 -0
  34. package/src/lib/controls/collapsible-panel/collapsible-panel.component.ts +16 -0
  35. package/src/lib/controls/date-picker/date-picker.component.html +133 -0
  36. package/src/lib/controls/date-picker/date-picker.component.ts +258 -0
  37. package/src/lib/controls/drop-down-menu/drop-down-menu.component.html +61 -0
  38. package/src/lib/controls/drop-down-menu/drop-down-menu.component.ts +59 -0
  39. package/src/lib/controls/kpi-tile/kpi-tile.component.html +18 -0
  40. package/src/lib/controls/kpi-tile/kpi-tile.component.ts +26 -0
  41. package/src/lib/controls/list-view/list-column.component.ts +10 -0
  42. package/src/lib/controls/list-view/list-details-section.component.ts +8 -0
  43. package/src/lib/controls/list-view/list-tile.component.ts +8 -0
  44. package/src/lib/controls/list-view/list-view-empty-state.component.html +20 -0
  45. package/src/lib/controls/list-view/list-view-empty-state.component.ts +19 -0
  46. package/src/lib/controls/list-view/list-view.component.html +151 -0
  47. package/src/lib/controls/list-view/list-view.component.ts +146 -0
  48. package/src/lib/controls/nav-links-list/nav-links-list.component.html +27 -0
  49. package/src/lib/controls/nav-links-list/nav-links-list.component.ts +25 -0
  50. package/src/lib/controls/notifications-indicator/notifications-indicator.component.html +78 -0
  51. package/src/lib/controls/notifications-indicator/notifications-indicator.component.ts +75 -0
  52. package/src/lib/controls/pager/pager.component.html +33 -0
  53. package/src/lib/controls/pager/pager.component.ts +106 -0
  54. package/src/lib/controls/side-pane/side-pane.component.html +10 -0
  55. package/src/lib/controls/side-pane/side-pane.component.ts +59 -0
  56. package/src/lib/controls/skeleton-loader/skeleton-loader.component.html +112 -0
  57. package/src/lib/controls/skeleton-loader/skeleton-loader.component.ts +20 -0
  58. package/src/lib/controls/toaster/toaster-container.component.html +1 -0
  59. package/src/lib/controls/toaster/toaster-container.component.ts +27 -0
  60. package/src/lib/controls/toaster/toaster.component.html +103 -0
  61. package/src/lib/controls/toaster/toaster.component.ts +26 -0
  62. package/src/lib/controls/toggle/toggle.component.html +15 -0
  63. package/src/lib/controls/toggle/toggle.component.ts +58 -0
  64. package/src/lib/directives/click-outside.directive.ts +196 -0
  65. package/src/lib/directives/dynamic-component-host.directive.ts +7 -0
  66. package/src/lib/directives/screen-size.directive.ts +67 -0
  67. package/src/lib/helpers/base-list.component.ts +204 -0
  68. package/src/lib/icons.ts +39 -0
  69. package/src/lib/layouts/shell/shell-footer/shell-footer.component.html +71 -0
  70. package/src/lib/layouts/shell/shell-footer/shell-footer.component.ts +14 -0
  71. package/src/lib/layouts/shell/shell-header/shell-header.component.html +199 -0
  72. package/src/lib/layouts/shell/shell-header/shell-header.component.ts +111 -0
  73. package/src/lib/layouts/shell/shell-layout/shell-layout.component.html +36 -0
  74. package/src/lib/layouts/shell/shell-layout/shell-layout.component.ts +91 -0
  75. package/src/lib/layouts/views/form-layout/form-layout.component.html +67 -0
  76. package/src/lib/layouts/views/form-layout/form-layout.component.ts +66 -0
  77. package/src/lib/layouts/views/model-view-layout/model-view-layout.component.html +43 -0
  78. package/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts +37 -0
  79. package/src/lib/layouts/views/side-view-layout/side-view-layout.component.html +36 -0
  80. package/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts +67 -0
  81. package/src/lib/layouts/views/view-layout/view-layout.component.html +68 -0
  82. package/src/lib/layouts/views/view-layout/view-layout.component.ts +82 -0
  83. package/src/lib/ng-components.module.ts +135 -0
  84. package/src/lib/pages/auth/auth-callback/auth-callback.component.html +1 -0
  85. package/src/lib/pages/auth/auth-callback/auth-callback.component.ts +22 -0
  86. package/src/lib/pages/auth/auth-renew/auth-renew.component.ts +20 -0
  87. package/src/lib/pages/auth/logged-out/logged-out.component.html +1 -0
  88. package/src/lib/pages/auth/logged-out/logged-out.component.ts +22 -0
  89. package/src/lib/pages/http-status/error/error.component.html +13 -0
  90. package/src/lib/pages/http-status/error/error.component.ts +13 -0
  91. package/src/lib/pages/http-status/page-not-found/page-not-found.component.html +14 -0
  92. package/src/lib/pages/http-status/page-not-found/page-not-found.component.ts +14 -0
  93. package/src/lib/pages/http-status/unauthorized/unauthorized.component.html +15 -0
  94. package/src/lib/pages/http-status/unauthorized/unauthorized.component.ts +11 -0
  95. package/src/lib/pipes/address.pipe.ts +17 -0
  96. package/src/lib/pipes/duration-format.pipe.ts +67 -0
  97. package/src/lib/services/component-loader/component-loader-options.class.ts +31 -0
  98. package/src/lib/services/component-loader/component-loader.class.ts +226 -0
  99. package/src/lib/services/component-loader/component-loader.factory.ts +27 -0
  100. package/src/lib/services/component-loader/content-ref.class.ts +10 -0
  101. package/src/lib/services/interceptors/bad-request.interceptor.ts +34 -0
  102. package/src/lib/services/modal-service/modal-backdrop-component.ts +40 -0
  103. package/src/lib/services/modal-service/modal-container-component.ts +125 -0
  104. package/src/lib/services/modal-service/modal-options.class.ts +92 -0
  105. package/src/lib/services/modal-service/modal-service.ts +237 -0
  106. package/src/lib/services/modal-service/modal-styles.class.ts +11 -0
  107. package/src/lib/services/modal-service/modal.class.ts +45 -0
  108. package/src/lib/services/shell-state-service.service.ts +10 -0
  109. package/src/lib/services/toaster.service.ts +23 -0
  110. package/src/lib/services/utilities.service.ts +40 -0
  111. package/src/lib/tokens.ts +6 -0
  112. package/src/lib/types.ts +210 -0
  113. package/{public-api.d.ts → src/public-api.ts} +60 -43
  114. package/src/test.ts +28 -0
  115. package/tsconfig.lib.json +26 -0
  116. package/tsconfig.lib.prod.json +10 -0
  117. package/tsconfig.spec.json +17 -0
  118. package/tslint.json +17 -0
  119. package/webpack.config.js +36 -0
  120. package/bundles/indice-ng-components.umd.js +0 -3784
  121. package/bundles/indice-ng-components.umd.js.map +0 -1
  122. package/esm2015/indice-ng-components.js +0 -5
  123. package/esm2015/lib/controls/avatar-initials/avatar-initials.component.js +0 -51
  124. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -23
  125. package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -269
  126. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +0 -72
  127. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +0 -39
  128. package/esm2015/lib/controls/list-view/list-column.component.js +0 -25
  129. package/esm2015/lib/controls/list-view/list-details-section.component.js +0 -17
  130. package/esm2015/lib/controls/list-view/list-tile.component.js +0 -17
  131. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +0 -32
  132. package/esm2015/lib/controls/list-view/list-view.component.js +0 -186
  133. package/esm2015/lib/controls/pager/pager.component.js +0 -133
  134. package/esm2015/lib/controls/side-pane/side-pane.component.js +0 -76
  135. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +0 -29
  136. package/esm2015/lib/controls/toaster/toaster-container.component.js +0 -31
  137. package/esm2015/lib/controls/toaster/toaster.component.js +0 -34
  138. package/esm2015/lib/controls/toggle/toggle.component.js +0 -68
  139. package/esm2015/lib/directives/click-outside.directive.js +0 -189
  140. package/esm2015/lib/directives/dynamic-component-host.directive.js +0 -17
  141. package/esm2015/lib/helpers/base-list.component.js +0 -182
  142. package/esm2015/lib/icons.js +0 -32
  143. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +0 -22
  144. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +0 -142
  145. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -101
  146. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +0 -86
  147. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +0 -55
  148. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +0 -101
  149. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +0 -110
  150. package/esm2015/lib/ng-components.module.js +0 -220
  151. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +0 -34
  152. package/esm2015/lib/pages/auth/auth-renew/auth-renew.component.js +0 -31
  153. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +0 -32
  154. package/esm2015/lib/pages/http-status/error/error.component.js +0 -20
  155. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +0 -18
  156. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +0 -17
  157. package/esm2015/lib/pipes/address.pipe.js +0 -21
  158. package/esm2015/lib/pipes/duration-format.pipe.js +0 -64
  159. package/esm2015/lib/pipes/obs-with-status.pipe.js +0 -26
  160. package/esm2015/lib/services/component-loader/component-loader-options.class.js +0 -8
  161. package/esm2015/lib/services/component-loader/component-loader.class.js +0 -192
  162. package/esm2015/lib/services/component-loader/component-loader.factory.js +0 -32
  163. package/esm2015/lib/services/component-loader/content-ref.class.js +0 -13
  164. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +0 -44
  165. package/esm2015/lib/services/modal-service/modal-container-component.js +0 -128
  166. package/esm2015/lib/services/modal-service/modal-options.class.js +0 -35
  167. package/esm2015/lib/services/modal-service/modal-service.js +0 -220
  168. package/esm2015/lib/services/modal-service/modal-styles.class.js +0 -11
  169. package/esm2015/lib/services/modal-service/modal.class.js +0 -27
  170. package/esm2015/lib/services/toaster.service.js +0 -24
  171. package/esm2015/lib/tokens.js +0 -4
  172. package/esm2015/lib/types.js +0 -114
  173. package/esm2015/public-api.js +0 -53
  174. package/fesm2015/indice-ng-components.js +0 -3247
  175. package/fesm2015/indice-ng-components.js.map +0 -1
  176. package/indice-ng-components.d.ts +0 -5
  177. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +0 -14
  178. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +0 -10
  179. package/lib/controls/date-picker/date-picker.component.d.ts +0 -48
  180. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +0 -25
  181. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +0 -13
  182. package/lib/controls/list-view/list-column.component.d.ts +0 -9
  183. package/lib/controls/list-view/list-details-section.component.d.ts +0 -7
  184. package/lib/controls/list-view/list-tile.component.d.ts +0 -7
  185. package/lib/controls/list-view/list-view-empty-state.component.d.ts +0 -11
  186. package/lib/controls/list-view/list-view.component.d.ts +0 -55
  187. package/lib/controls/pager/pager.component.d.ts +0 -36
  188. package/lib/controls/side-pane/side-pane.component.d.ts +0 -18
  189. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +0 -11
  190. package/lib/controls/toaster/toaster-container.component.d.ts +0 -13
  191. package/lib/controls/toaster/toaster.component.d.ts +0 -15
  192. package/lib/controls/toggle/toggle.component.d.ts +0 -19
  193. package/lib/directives/click-outside.directive.d.ts +0 -40
  194. package/lib/directives/dynamic-component-host.directive.d.ts +0 -9
  195. package/lib/helpers/base-list.component.d.ts +0 -42
  196. package/lib/icons.d.ts +0 -30
  197. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +0 -8
  198. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +0 -45
  199. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +0 -27
  200. package/lib/layouts/views/form-layout/form-layout.component.d.ts +0 -25
  201. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +0 -25
  202. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +0 -28
  203. package/lib/layouts/views/view-layout/view-layout.component.d.ts +0 -31
  204. package/lib/ng-components.module.d.ts +0 -45
  205. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +0 -13
  206. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +0 -12
  207. package/lib/pages/auth/logged-out/logged-out.component.d.ts +0 -12
  208. package/lib/pages/http-status/error/error.component.d.ts +0 -8
  209. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +0 -8
  210. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +0 -8
  211. package/lib/pipes/address.pipe.d.ts +0 -8
  212. package/lib/pipes/duration-format.pipe.d.ts +0 -8
  213. package/lib/pipes/obs-with-status.pipe.d.ts +0 -13
  214. package/lib/services/component-loader/component-loader-options.class.d.ts +0 -30
  215. package/lib/services/component-loader/component-loader.class.d.ts +0 -92
  216. package/lib/services/component-loader/component-loader.factory.d.ts +0 -24
  217. package/lib/services/component-loader/content-ref.class.d.ts +0 -12
  218. package/lib/services/modal-service/modal-backdrop-component.d.ts +0 -20
  219. package/lib/services/modal-service/modal-container-component.d.ts +0 -33
  220. package/lib/services/modal-service/modal-options.class.d.ts +0 -81
  221. package/lib/services/modal-service/modal-service.d.ts +0 -58
  222. package/lib/services/modal-service/modal-styles.class.d.ts +0 -10
  223. package/lib/services/modal-service/modal.class.d.ts +0 -43
  224. package/lib/services/toaster.service.d.ts +0 -11
  225. package/lib/tokens.d.ts +0 -4
  226. package/lib/types.d.ts +0 -135
@@ -1,101 +0,0 @@
1
- import { SHELL_CONFIG } from './../../../tokens';
2
- import { DefaultShellConfig } from './../../../types';
3
- import { Component, Inject, ViewChildren } from '@angular/core';
4
- import { ActivationStart } from '@angular/router';
5
- import { filter } from 'rxjs/operators';
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 "@angular/common";
10
- import * as i3 from "../../../services/component-loader/component-loader.factory";
11
- import * as i4 from "../shell-header/shell-header.component";
12
- import * as i5 from "../shell-footer/shell-footer.component";
13
- import * as i6 from "../../../controls/side-pane/side-pane.component";
14
- import * as i7 from "../../../controls/toaster/toaster-container.component";
15
- import * as i8 from "../../../directives/dynamic-component-host.directive";
16
- export class ShellLayoutComponent {
17
- constructor(router, location, config, componentLoaderFactory) {
18
- this.router = router;
19
- this.location = location;
20
- this.config = config;
21
- this.componentLoaderFactory = componentLoaderFactory;
22
- this.dynamicComponentHosts = null;
23
- this.routerSub$ = null;
24
- this.showRightPaneSM = false;
25
- this.activeConfig = new DefaultShellConfig();
26
- this.loaded = false;
27
- if (!config) {
28
- config = new DefaultShellConfig();
29
- }
30
- this.activeConfig = config;
31
- }
32
- ngAfterViewChecked() {
33
- setTimeout(() => { this.loaded = true; }, 200);
34
- }
35
- ngOnInit() {
36
- this.routerSub$ = this.router.events.pipe(filter((event) => event instanceof ActivationStart)).subscribe((e) => {
37
- var _a, _b, _c, _d, _e, _f;
38
- // console.log('ShellLayoutComponent ActivationStart', e);
39
- if ((_a = e) === null || _a === void 0 ? void 0 : _a.snapshot) {
40
- // console.log('ShellLayoutComponent ActivationStart snapshot', (e as ActivationStart)?.snapshot);
41
- if ((_c = (_b = e) === null || _b === void 0 ? void 0 : _b.snapshot) === null || _c === void 0 ? void 0 : _c.data) {
42
- // console.log('ShellLayoutComponent ActivationStart snapshot data', (e as ActivationStart)?.snapshot.data);
43
- if ((_e = (_d = e) === null || _d === void 0 ? void 0 : _d.snapshot) === null || _e === void 0 ? void 0 : _e.data.shell) {
44
- // console.log('ShellLayoutComponent ActivationStart snapshot data shell params',
45
- // (e as ActivationStart)?.snapshot.data.shell);
46
- this.activeConfig = (_f = e) === null || _f === void 0 ? void 0 : _f.snapshot.data.shell;
47
- // console.log('ShellLayoutComponent activeConfig from route: ', this.activeConfig);
48
- if (this.activeConfig.customHeaderComponent) {
49
- this.initCustomComponents();
50
- }
51
- }
52
- else {
53
- this.activeConfig = this.config ? this.config : new DefaultShellConfig();
54
- // console.log('ShellLayoutComponent default activeConfig: ', this.activeConfig);
55
- }
56
- }
57
- }
58
- });
59
- }
60
- ngAfterViewInit() {
61
- this.initCustomComponents();
62
- }
63
- initCustomComponents() {
64
- if (this.dynamicComponentHosts && this.dynamicComponentHosts.length > 0) {
65
- this.loadCustomComponent(this.dynamicComponentHosts.find((_) => _.hostName === 'Header'));
66
- // since you're not using it...
67
- // this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Footer'));
68
- }
69
- }
70
- ngOnDestroy() {
71
- if (this.routerSub$) {
72
- this.routerSub$.unsubscribe();
73
- }
74
- }
75
- loadCustomComponent(host) {
76
- if (host) {
77
- const viewContainerRef = host.viewContainerRef;
78
- if (viewContainerRef && this.activeConfig.customHeaderComponent) {
79
- const clf = this.componentLoaderFactory.createLoader(viewContainerRef);
80
- const headerCompRef = clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();
81
- }
82
- }
83
- }
84
- }
85
- ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: i1.Router }, { token: i2.Location }, { token: SHELL_CONFIG }, { token: i3.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
86
- ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"loaded\"\r\n [style.display]=\"!loaded ? 'none':'block'\"\r\n class=\"shell-container active-side-pane\">\r\n <div class=\"shell-header-container\"\r\n *ngIf=\"activeConfig.showHeader\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n\r\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\r\n <div appDynamicComponentHost=\"Header\"></div>\r\n </ng-container>\r\n\r\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\"\r\n [config]=\"activeConfig\"></lib-shell-header>\r\n </div>\r\n </div>\r\n\r\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </main>\r\n\r\n <div class=\"shell-footer-container\"\r\n *ngIf=\"activeConfig.showFooter\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\r\n <div appDynamicComponentHost\r\n hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>\r\n", components: [{ type: i4.ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "notification-links", "all-notifications", "config", "border"] }, { type: i5.ShellFooterComponent, selector: "lib-shell-footer" }, { type: i6.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { type: i7.ToasterContainerComponent, selector: "lib-toaster-container" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, decorators: [{
88
- type: Component,
89
- args: [{
90
- // tslint:disable-next-line:component-selector
91
- selector: 'lib-shell-layout',
92
- templateUrl: './shell-layout.component.html',
93
- }]
94
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.Location }, { type: undefined, decorators: [{
95
- type: Inject,
96
- args: [SHELL_CONFIG]
97
- }] }, { type: i3.ComponentLoaderFactory }]; }, propDecorators: { dynamicComponentHosts: [{
98
- type: ViewChildren,
99
- args: [DynamicComponentHostDirective]
100
- }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWxheW91dC9zaGVsbC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtbGF5b3V0L3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BFLE9BQU8sRUFBaUIsU0FBUyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUUvSCxPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7Ozs7Ozs7O0FBUXJHLE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFBb0IsTUFBYyxFQUFVLFFBQWtCLEVBQWdDLE1BQTJCLEVBQVUsc0JBQThDO1FBQTdKLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQWdDLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQVUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUxqTCwwQkFBcUIsR0FBb0QsSUFBSSxDQUFDO1FBQ3RFLGVBQVUsR0FBd0IsSUFBSSxDQUFDO1FBQ3hDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQWlCLElBQUksa0JB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LG9CQUFvQixnRUFPeUMsWUFBWTtxR0FQekUsb0JBQW9CLGtHQUNqQiw2QkFBNkIsZ0RDaEI3Qyx5eERBMENBOzJGRDNCYSxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO2lCQUM3Qzs7MEJBUWtFLE1BQU07MkJBQUMsWUFBWTtpRkFMcEYscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNIRUxMX0NPTkZJRyB9IGZyb20gJy4vLi4vLi4vLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgSVNoZWxsQ29uZmlnLCBEZWZhdWx0U2hlbGxDb25maWcgfSBmcm9tICcuLy4uLy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0LCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGl2YXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50LWhvc3QuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5mYWN0b3J5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2xpYi1zaGVsbC1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hlbGxMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgQFZpZXdDaGlsZHJlbihEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZSlcclxuICBkeW5hbWljQ29tcG9uZW50SG9zdHM6IFF1ZXJ5TGlzdDxEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHJvdXRlclN1YiQ6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBzaG93UmlnaHRQYW5lU00gPSBmYWxzZTtcclxuICBwdWJsaWMgYWN0aXZlQ29uZmlnOiBJU2hlbGxDb25maWcgPSBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XHJcbiAgcHVibGljIGxvYWRlZCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBASW5qZWN0KFNIRUxMX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IElTaGVsbENvbmZpZyB8IG51bGwsIHByaXZhdGUgY29tcG9uZW50TG9hZGVyRmFjdG9yeTogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSkge1xyXG4gICAgaWYgKCFjb25maWcpIHtcclxuICAgICAgY29uZmlnID0gbmV3IERlZmF1bHRTaGVsbENvbmZpZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVDb25maWcgPSBjb25maWc7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5sb2FkZWQgPSB0cnVlOyB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlclN1YiQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEFjdGl2YXRpb25TdGFydCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0JywgZSk7XHJcbiAgICAgIGlmICgoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBBY3RpdmF0aW9uU3RhcnQgc25hcHNob3QnLCAoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdCk7XHJcbiAgICAgICAgaWYgKChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90Py5kYXRhKSB7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0IHNuYXBzaG90IGRhdGEnLCAoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdC5kYXRhKTtcclxuICAgICAgICAgIGlmICgoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdD8uZGF0YS5zaGVsbCkge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0IHNuYXBzaG90IGRhdGEgc2hlbGwgcGFyYW1zJyxcclxuICAgICAgICAgICAgLy8gKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QuZGF0YS5zaGVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlQ29uZmlnID0gKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QuZGF0YS5zaGVsbCBhcyBJU2hlbGxDb25maWc7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBhY3RpdmVDb25maWcgZnJvbSByb3V0ZTogJywgdGhpcy5hY3RpdmVDb25maWcpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbml0Q3VzdG9tQ29tcG9uZW50cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IHRoaXMuY29uZmlnID8gdGhpcy5jb25maWcgOiBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBkZWZhdWx0IGFjdGl2ZUNvbmZpZzogJywgdGhpcy5hY3RpdmVDb25maWcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRDdXN0b21Db21wb25lbnRzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRDdXN0b21Db21wb25lbnRzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzICYmIHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5sb2FkQ3VzdG9tQ29tcG9uZW50KHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzLmZpbmQoKF8pID0+IF8uaG9zdE5hbWUgPT09ICdIZWFkZXInKSk7XHJcbiAgICAgIC8vIHNpbmNlIHlvdSdyZSBub3QgdXNpbmcgaXQuLi5cclxuICAgICAgLy8gdGhpcy5sb2FkQ3VzdG9tQ29tcG9uZW50KHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzLmZpbmQoXyA9PiBfLmhvc3ROYW1lID09PSAnRm9vdGVyJykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yb3V0ZXJTdWIkKSB7XHJcbiAgICAgIHRoaXMucm91dGVyU3ViJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkQ3VzdG9tQ29tcG9uZW50KGhvc3Q6IER5bmFtaWNDb21wb25lbnRIb3N0RGlyZWN0aXZlIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoaG9zdCkge1xyXG4gICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gaG9zdC52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgICBpZiAodmlld0NvbnRhaW5lclJlZiAmJiB0aGlzLmFjdGl2ZUNvbmZpZy5jdXN0b21IZWFkZXJDb21wb25lbnQpIHtcclxuICAgICAgICBjb25zdCBjbGYgPSB0aGlzLmNvbXBvbmVudExvYWRlckZhY3RvcnkuY3JlYXRlTG9hZGVyKHZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICAgIGNvbnN0IGhlYWRlckNvbXBSZWYgPSBjbGYuYXR0YWNoKHRoaXMuYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudCkudG8odmlld0NvbnRhaW5lclJlZi5lbGVtZW50KS5zaG93KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImxvYWRlZFwiXHJcbiAgICAgW3N0eWxlLmRpc3BsYXldPVwiIWxvYWRlZCA/ICdub25lJzonYmxvY2snXCJcclxuICAgICBjbGFzcz1cInNoZWxsLWNvbnRhaW5lciBhY3RpdmUtc2lkZS1wYW5lXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1jb250YWluZXJcIlxyXG4gICAgICAgKm5nSWY9XCJhY3RpdmVDb25maWcuc2hvd0hlYWRlclwiPlxyXG4gICAgPGRpdiBbY2xhc3NdPVwiYWN0aXZlQ29uZmlnLmZsdWlkID8gJ3NoZWxsLWhlYWRlci1jb250YWluZXItaW5uZXItZmx1aWQnIDogJ3NoZWxsLWhlYWRlci1jb250YWluZXItaW5uZXInXCI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudFwiPlxyXG4gICAgICAgIDxkaXYgYXBwRHluYW1pY0NvbXBvbmVudEhvc3Q9XCJIZWFkZXJcIj48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bGliLXNoZWxsLWhlYWRlciAqbmdJZj1cIiFhY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJhY3RpdmVDb25maWdcIj48L2xpYi1zaGVsbC1oZWFkZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG1haW4gW2NsYXNzXT1cImFjdGl2ZUNvbmZpZy5zaG93SGVhZGVyID8gJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyJyA6ICdzaGVsbC1jb250ZW50LWNvbnRhaW5lci1uby1oZWFkZXInXCI+XHJcbiAgICA8ZGl2IFtjbGFzc109XCJhY3RpdmVDb25maWcuZmx1aWQgPyAnc2hlbGwtY29udGVudC1jb250YWluZXItaW5uZXItZmx1aWQnIDogJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyLWlubmVyJ1wiPlxyXG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L21haW4+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzaGVsbC1mb290ZXItY29udGFpbmVyXCJcclxuICAgICAgICpuZ0lmPVwiYWN0aXZlQ29uZmlnLnNob3dGb290ZXJcIj5cclxuICAgIDxkaXYgW2NsYXNzXT1cImFjdGl2ZUNvbmZpZy5mbHVpZCA/ICdzaGVsbC1mb290ZXItY29udGFpbmVyLWlubmVyLWZsdWlkJyA6ICdzaGVsbC1mb290ZXItY29udGFpbmVyLWlubmVyJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmN1c3RvbUZvb3RlckNvbXBvbmVudFwiPlxyXG4gICAgICAgIDxkaXYgYXBwRHluYW1pY0NvbXBvbmVudEhvc3RcclxuICAgICAgICAgICAgIGhvc3ROYW1lPVwiRm9vdGVyXCI+PC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bGliLXNoZWxsLWZvb3RlciAqbmdJZj1cIiFhY3RpdmVDb25maWcuY3VzdG9tRm9vdGVyQ29tcG9uZW50XCI+PC9saWItc2hlbGwtZm9vdGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxsaWItc2lkZS1wYW5lICNyaWdodFBhbmU+XHJcbiAgICA8cm91dGVyLW91dGxldCBuYW1lPVwicmlnaHRwYW5lXCJcclxuICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJyaWdodFBhbmUub25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIChkZWFjdGl2YXRlKT1cInJpZ2h0UGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPjwvcm91dGVyLW91dGxldD5cclxuICA8L2xpYi1zaWRlLXBhbmU+XHJcblxyXG4gIDxsaWItdG9hc3Rlci1jb250YWluZXI+PC9saWItdG9hc3Rlci1jb250YWluZXI+XHJcblxyXG48L2Rpdj5cclxuIl19
@@ -1,86 +0,0 @@
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 "../../../controls/side-pane/side-pane.component";
7
- import * as i3 from "@angular/common";
8
- export class FormLayoutComponent {
9
- constructor(_router) {
10
- this._router = _router;
11
- this.title = null;
12
- // tslint:disable-next-line:no-input-rename
13
- this.searchPlaceholder = 'αναζήτηση';
14
- this.actions = null;
15
- // tslint:disable-next-line:no-input-rename
16
- this.subTitle = null;
17
- // tslint:disable-next-line:no-output-on-prefix
18
- this.onAction = new EventEmitter();
19
- // tslint:disable-next-line:no-output-on-prefix
20
- this.onSearch = new EventEmitter();
21
- this.onComplete = new EventEmitter();
22
- this.showRightPaneSM = false;
23
- }
24
- ngOnInit() {
25
- var _a;
26
- if ((_a = this.searchInput$) === null || _a === void 0 ? void 0 : _a.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
- var _a;
47
- this.onSearch.emit((_a = this.searchInput$) === null || _a === void 0 ? void 0 : _a.nativeElement.value);
48
- }
49
- routerLinkActionClick(action, relative = false) {
50
- if (action.outlet) {
51
- this._router.navigate(['', { outlets: { formRightPane: action.link } }]);
52
- }
53
- else {
54
- this._router.navigate([action.link]);
55
- }
56
- }
57
- }
58
- FormLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: FormLayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
59
- FormLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: FormLayoutComponent, selector: "lib-form-layout", inputs: { title: "title", 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\">\r\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">\r\n {{ title }}\r\n </h3>\r\n <p class=\"form-subtitle\">\r\n {{ subTitle }}\r\n </p>\r\n </div>\r\n <div class=\"form-header-actions\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"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\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"form-search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\">\r\n </div>\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"btn-form-view-header-search\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"form-content-container\">\r\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\r\n <router-outlet name=\"formRightPane\"\r\n (activate)=\"formPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n</div>\r\n", components: [{ type: i2.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: FormLayoutComponent, decorators: [{
61
- type: Component,
62
- args: [{
63
- selector: 'lib-form-layout',
64
- templateUrl: './form-layout.component.html'
65
- }]
66
- }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { searchInput$: [{
67
- type: ViewChild,
68
- args: ['search']
69
- }], title: [{
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QixZQUFvQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQVoxQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUNyQywyQ0FBMkM7UUFDZCxzQkFBaUIsR0FBa0IsV0FBVyxDQUFBO1FBQ2xFLFlBQU8sR0FBd0IsSUFBSSxDQUFDO1FBQzdDLDJDQUEyQztRQUN2QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUNuRCwrQ0FBK0M7UUFDckMsYUFBUSxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzlFLCtDQUErQztRQUNyQyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ25FLG9CQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ1EsQ0FBQztJQUV4QyxRQUFROztRQUNOLElBQUksTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxhQUFhLEVBQUM7WUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7WUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDdkUsb0VBQW9FO1lBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7WUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7YUFDdkUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFrQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBa0IsRUFBRSxJQUFZO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZOztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBOEIsRUFBRSxXQUFvQixLQUFLO1FBQ3BGLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDMUU7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOztnSEFyRFUsbUJBQW1CO29HQUFuQixtQkFBbUIsdVlDVmhDLGtoR0FtRUE7MkZEekRhLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsOEJBQThCO2lCQUM1Qzs2RkFHOEIsWUFBWTtzQkFBeEMsU0FBUzt1QkFBQyxRQUFRO2dCQUNWLEtBQUs7c0JBQWIsS0FBSztnQkFFdUIsaUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsT0FBTztzQkFBZixLQUFLO2dCQUVjLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsV0FBVztnQkFFUixRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBmaWx0ZXIsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2VhcmNoLXBsYWNlaG9sZGVyJykgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnzrHOvc6xzrbOrs+EzrfPg863J1xyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IFZpZXdBY3Rpb25bXSB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3N1Yi10aXRsZScpIHN1YlRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFjdGlvbjogRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPigpO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvbkNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hJbnB1dCQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7IC8vIEdldCBpbnB1dCB2YWx1ZS5cclxuICAgICAgICB9KSxcclxuICAgICAgICBmaWx0ZXIoaW5wdXRWYWx1ZSA9PiBpbnB1dFZhbHVlLmxlbmd0aCA+PSAzIHx8IGlucHV0VmFsdWUubGVuZ3RoID09PSAwKSxcclxuICAgICAgICAvLyBJZiBjaGFyYWN0ZXIgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBtaW5pbXVtU2VhcmNoQ2hhcmFjdGVycyBzZXR0aW5nLlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDAwKSwgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudC5cclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24pOiB2b2lkIHtcclxuICAgIHRoaXMub25BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEFjdGlvblR5cGUodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb246IFJvdXRlclZpZXdBY3Rpb24gfCBhbnksIHJlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJycsIHsgb3V0bGV0czogeyBmb3JtUmlnaHRQYW5lOiBhY3Rpb24ubGluayB9IH1dKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbYWN0aW9uLmxpbmtdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWxheW91dC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXJcIiAqbmdJZj1cInRpdGxlIHx8IHN1YlRpdGxlIHx8IGFjdGlvbnNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWhlYWRlci1pbm5lclwiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJmb3JtLXRpdGxlXCI+XHJcbiAgICAgICAge3sgdGl0bGUgfX1cclxuICAgICAgPC9oMz5cclxuICAgICAgPHAgY2xhc3M9XCJmb3JtLXN1YnRpdGxlXCI+XHJcbiAgICAgICAge3sgc3ViVGl0bGUgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXItYWN0aW9uc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiIFtuZ1N3aXRjaF09XCJhY3Rpb24udHlwZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWFyY2gnXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoXCIgY2xhc3M9XCJzci1vbmx5XCI+U2VhcmNoPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBsZWZ0LTAgcGwtMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDwhLS08c3ZnIGNsYXNzPVwiaC01IHctNVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04ek0yIDhhNiA2IDAgMTExMC44OSAzLjQ3Nmw0LjgxNyA0LjgxN2ExIDEgMCAwMS0xLjQxNCAxLjQxNGwtNC44MTYtNC44MTZBNiA2IDAgMDEyIDh6XCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgI3NlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlYXJjaC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJzZWFyY2hBY3Rpb25UeXBlKHNlYXJjaC52YWx1ZSlcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1mb3JtLXZpZXctaGVhZGVyLXNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2hBY3Rpb25DbGljayhhY3Rpb24sIHNlYXJjaC52YWx1ZSlcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JvdXRlci1saW5rJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTEgYnRuLWZvcm0tdmlldy1oZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicm91dGVyTGlua0FjdGlvbkNsaWNrKGFjdGlvbilcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xIGJ0bi1mb3JtLXZpZXctaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtaXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnZm9ybS1jb250ZW50LWNvbnRhaW5lci1pbm5lcic6IGFjdGlvbnN9XCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxsaWItc2lkZS1wYW5lICNmb3JtUGFuZSAob25Db21wbGV0ZSk9XCJvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPlxyXG4gICAgPHJvdXRlci1vdXRsZXQgbmFtZT1cImZvcm1SaWdodFBhbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgKGFjdGl2YXRlKT1cImZvcm1QYW5lLm9uU2lkZVBhbmVBY3RpdmF0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAoZGVhY3RpdmF0ZSk9XCJmb3JtUGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPjwvcm91dGVyLW91dGxldD5cclxuICA8L2xpYi1zaWRlLXBhbmU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,55 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../view-layout/view-layout.component";
5
- import * as i3 from "@angular/router";
6
- export class ModelViewLayoutComponent {
7
- constructor(location) {
8
- this.location = location;
9
- this.showRightPaneSM = false;
10
- this.title = 'no title';
11
- // tslint:disable-next-line:no-input-rename
12
- this.primary = null;
13
- // tslint:disable-next-line:no-input-rename
14
- this.secondary = null;
15
- // tslint:disable-next-line:no-input-rename
16
- this.metaItems = [
17
- // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }
18
- ];
19
- }
20
- ngOnInit() {
21
- }
22
- onSidePaneActivated($event) {
23
- //console.log('onSidePaneActivated', $event);
24
- this.showRightPaneSM = true;
25
- }
26
- onSidePaneDeactivated($event) {
27
- //console.log('onSidePaneActivated', $event);
28
- this.showRightPaneSM = false;
29
- }
30
- closeSidePane() {
31
- this.location.back();
32
- }
33
- }
34
- ModelViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModelViewLayoutComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
35
- ModelViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ModelViewLayoutComponent, selector: "lib-model-view-layout", inputs: { title: "title", primary: ["primary-links", "primary"], secondary: ["secondary-links", "secondary"], metaItems: ["meta-items", "metaItems"] }, ngImport: i0, template: "<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\">\r\n <main class=\"model-view-container\">\r\n <div class=\"model-view-container-inner\">\r\n <aside class=\"model-view-aside\">\r\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\r\n <div class=\"model-view-aside-header-container\">\r\n <div class=\"model-view-aside-header-container-inner\">\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container\">\r\n <nav class=\"model-view-menu-nav\">\r\n <div class=\"model-view-menu-item\">\r\n <ng-container *ngFor=\"let section of primary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"model-view-menu-item-far\">\r\n <ng-container *ngFor=\"let section of secondary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </nav>\r\n </div>\r\n </div>\r\n </section>\r\n </aside>\r\n <div class=\"model-view-details-container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </main>\r\n", components: [{ type: i2.ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i3.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModelViewLayoutComponent, decorators: [{
37
- type: Component,
38
- args: [{
39
- // tslint:disable-next-line:component-selector
40
- selector: 'lib-model-view-layout',
41
- templateUrl: './model-view-layout.component.html'
42
- }]
43
- }], ctorParameters: function () { return [{ type: i1.Location }]; }, propDecorators: { title: [{
44
- type: Input
45
- }], primary: [{
46
- type: Input,
47
- args: ['primary-links']
48
- }], secondary: [{
49
- type: Input,
50
- args: ['secondary-links']
51
- }], metaItems: [{
52
- type: Input,
53
- args: ['meta-items']
54
- }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFBcUIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVZoQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN0QixVQUFLLEdBQUcsVUFBVSxDQUFDO1FBQzVCLDJDQUEyQztRQUNuQixZQUFPLEdBQTRDLElBQUksQ0FBQztRQUNoRiwyQ0FBMkM7UUFDakIsY0FBUyxHQUE0QyxJQUFJLENBQUM7UUFDcEYsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEI7UUFDeEQseUVBQXlFO1NBQzFFLENBQUM7SUFDeUMsQ0FBQztJQUU1QyxRQUFRO0lBQ1IsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE1BQVc7UUFDcEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUFXO1FBQ3RDLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O3FIQTVCVSx3QkFBd0I7eUdBQXhCLHdCQUF3QixxTkNUckMsNjNEQTJDQTsyRkRsQ2Esd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsV0FBVyxFQUFFLG9DQUFvQztpQkFDbEQ7K0ZBR1UsS0FBSztzQkFBYixLQUFLO2dCQUVrQixPQUFPO3NCQUE5QixLQUFLO3VCQUFDLGVBQWU7Z0JBRUksU0FBUztzQkFBbEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBRUgsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kZWwtdmlldy1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC12aWV3LWxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGVsVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJ25vIHRpdGxlJztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdwcmltYXJ5LWxpbmtzJykgcHJpbWFyeTogeyB0ZXh0OiBzdHJpbmcsIGxpbms6IHN0cmluZyB9W10gfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzZWNvbmRhcnktbGlua3MnKSBzZWNvbmRhcnk6IHsgdGV4dDogc3RyaW5nLCBsaW5rOiBzdHJpbmcgfVtdIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXHJcbiAgICAvLyB7IGtleTogJ3Rlc3QnLCBpY29uOiBJY29ucy5CYWRnZXMsIHRleHQ6ICfOss+Bzq3OuM63zrrOsc69IDIwMCDOsc+Azr/PhM61zrvOrc+DzrzOsc+EzrEnIH1cclxuICBdO1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2lkZVBhbmVBY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdvblNpZGVQYW5lQWN0aXZhdGVkJywgJGV2ZW50KTtcclxuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdvblNpZGVQYW5lQWN0aXZhdGVkJywgJGV2ZW50KTtcclxuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VTaWRlUGFuZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gIH1cclxufVxyXG4iLCI8bGliLXZpZXctbGF5b3V0IFt0aXRsZV09XCJ0aXRsZVwiIFttZXRhLWl0ZW1zXT1cIm1ldGFJdGVtc1wiPlxyXG4gIDxtYWluIGNsYXNzPVwibW9kZWwtdmlldy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICA8YXNpZGUgY2xhc3M9XCJtb2RlbC12aWV3LWFzaWRlXCI+XHJcbiAgICAgICAgPHNlY3Rpb24gYXJpYS1sYWJlbGxlZGJ5PVwibWVudVwiIGNsYXNzPVwiZGV0YWlscy12aWV3LWFzaWRlLWhlYWRlci1zZWN0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZS1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWFzaWRlLWhlYWRlci1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIG1lbnUgaXRlbXMgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPG5hdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1uYXZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyd2aWV3LW5hdi1saW5rLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzZWN0aW9uLmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtaXRlbS1mYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWNvbmRhcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyd2aWV3LW5hdi1saW5rLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzZWN0aW9uLmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25hdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwvYXNpZGU+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWRldGFpbHMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWFpbj5cclxuIl19
@@ -1,101 +0,0 @@
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
- // @Output() close = new EventEmitter<any>();
25
- this.cancel = new EventEmitter();
26
- this.ok = new EventEmitter();
27
- }
28
- ngOnInit() {
29
- }
30
- closeSidePane() {
31
- if (this.returnPath) {
32
- this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));
33
- }
34
- else {
35
- if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {
36
- this.router.navigateByUrl(this.router.url.split('/(')[0]);
37
- }
38
- else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {
39
- this.router.navigateByUrl(this.router.url.split('(')[0]);
40
- }
41
- else {
42
- this.location.back();
43
- }
44
- }
45
- }
46
- emitClose() {
47
- this.cancel.emit(false);
48
- this.closeSidePane();
49
- }
50
- emitCancel() {
51
- this.cancel.emit(false);
52
- this.closeSidePane();
53
- }
54
- emitOK() {
55
- this.ok.emit(true);
56
- if (this.closeOnOk) {
57
- this.closeSidePane();
58
- }
59
- }
60
- }
61
- SideViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: SideViewLayoutComponent, deps: [{ token: i1.Location }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
62
- SideViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", 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"] }, outputs: { cancel: "cancel", ok: "ok" }, ngImport: i0, template: "<div class=\"side-view-layout-size-box\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\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\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: SideViewLayoutComponent, decorators: [{
64
- type: Component,
65
- args: [{
66
- selector: 'lib-side-view-layout',
67
- templateUrl: './side-view-layout.component.html'
68
- }]
69
- }], ctorParameters: function () { return [{ type: i1.Location }, { type: i2.Router }]; }, propDecorators: { title: [{
70
- type: Input
71
- }], showActions: [{
72
- type: Input
73
- }], disabled: [{
74
- type: Input
75
- }], returnPath: [{
76
- type: Input,
77
- args: ['return-path']
78
- }], okLabel: [{
79
- type: Input,
80
- args: ['ok-label']
81
- }], okShow: [{
82
- type: Input,
83
- args: ['ok-show']
84
- }], closeOnOk: [{
85
- type: Input,
86
- args: ['ok-close-dialog']
87
- }], cancelLabel: [{
88
- type: Input,
89
- args: ['cancel-label']
90
- }], cancelShow: [{
91
- type: Input,
92
- args: ['cancel-show']
93
- }], forceLocationBack: [{
94
- type: Input,
95
- args: ['force-location-back']
96
- }], cancel: [{
97
- type: Output
98
- }], ok: [{
99
- type: Output
100
- }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy92aWV3cy9zaWRlLXZpZXctbGF5b3V0L3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPL0UsTUFBTSxPQUFPLHVCQUF1QjtJQXNCbEMsWUFBb0IsUUFBa0IsRUFBVSxNQUFjO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckJyRCxVQUFLLEdBQWtCLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLDJDQUEyQztRQUN4QixZQUFPLEdBQUcsWUFBWSxDQUFDO1FBQzFDLDJDQUEyQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLDJDQUEyQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLDJDQUEyQztRQUNwQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQywyQ0FBMkM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QywyQ0FBMkM7UUFDYixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDeEQsNkNBQTZDO1FBQ25DLFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxPQUFFLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFUyxDQUFDO0lBRW5FLFFBQVE7SUFDUixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVIO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNEO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDekYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7b0hBeERVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHNlQ1JwQyxtdERBb0NBOzJGRDVCYSx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsV0FBVyxFQUFFLG1DQUFtQztpQkFDakQ7b0hBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFZ0IsVUFBVTtzQkFBL0IsS0FBSzt1QkFBQyxhQUFhO2dCQUVELE9BQU87c0JBQXpCLEtBQUs7dUJBQUMsVUFBVTtnQkFFQyxNQUFNO3NCQUF2QixLQUFLO3VCQUFDLFNBQVM7Z0JBRVUsU0FBUztzQkFBbEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBRUQsV0FBVztzQkFBakMsS0FBSzt1QkFBQyxjQUFjO2dCQUVDLFVBQVU7c0JBQS9CLEtBQUs7dUJBQUMsYUFBYTtnQkFFVSxpQkFBaUI7c0JBQTlDLEtBQUs7dUJBQUMscUJBQXFCO2dCQUVsQixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csRUFBRTtzQkFBWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zaWRlLXZpZXctbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVWaWV3TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9ICfOoM67zrfPgc6/z4bOv8+Bzq/Otc+CJztcclxuICBASW5wdXQoKSBzaG93QWN0aW9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdyZXR1cm4tcGF0aCcpIHJldHVyblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdvay1sYWJlbCcpIG9rTGFiZWwgPSAnzpHPgM6/zrjOrs66zrXPhc+DzrcnO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ29rLXNob3cnKSBva1Nob3cgPSB0cnVlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ29rLWNsb3NlLWRpYWxvZycpIGNsb3NlT25PayA9IHRydWU7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnY2FuY2VsLWxhYmVsJykgY2FuY2VsTGFiZWwgPSAnzpHOus+Nz4HPic+DzrcnO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2NhbmNlbC1zaG93JykgY2FuY2VsU2hvdyA9IHRydWU7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnZm9yY2UtbG9jYXRpb24tYmFjaycpIGZvcmNlTG9jYXRpb25CYWNrID0gZmFsc2U7XHJcbiAgLy8gQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvazogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlU2lkZVBhbmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yZXR1cm5QYXRoKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yZXR1cm5QYXRoIHx8ICcvJykpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCh0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8oJylbMF0gIT09IHRoaXMucm91dGVyLnVybCkgJiYgIXRoaXMuZm9yY2VMb2NhdGlvbkJhY2spIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVyLnVybC5zcGxpdCgnLygnKVswXSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoKHRoaXMucm91dGVyLnVybC5zcGxpdCgnKCcpWzBdICE9PSB0aGlzLnJvdXRlci51cmwpICYmICF0aGlzLmZvcmNlTG9jYXRpb25CYWNrKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlci51cmwuc3BsaXQoJygnKVswXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0Q2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRDYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRPSygpOiB2b2lkIHtcclxuICAgIHRoaXMub2suZW1pdCh0cnVlKTtcclxuICAgIGlmICh0aGlzLmNsb3NlT25Paykge1xyXG4gICAgICB0aGlzLmNsb3NlU2lkZVBhbmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LXNpemUtYm94XCI+XHJcbiAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtaGVhZGVyLW1hcmdpbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWhlYWRlci10aXRsZVwiIGlkPVwic2xpZGUtb3Zlci10aXRsZVwiPlxyXG4gICAgICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jbG9zZS1idXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImVtaXRDbG9zZSgpXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNsb3NlLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkNsb3NlIHBhbmVsPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogb3V0bGluZS94IC0tPlxyXG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNsb3NlLWJ1dHRvbi1pY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDwhLS0gUmVwbGFjZSB3aXRoIHlvdXIgY29udGVudCAtLT5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPCEtLSAvRW5kIHJlcGxhY2UgLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0FjdGlvbnNcIiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtYWN0aW9ucy1jb250YWluZXJcIj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbmNlbFNob3dcIiAoY2xpY2spPVwiZW1pdENhbmNlbCgpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1hY3Rpb24tYnV0dG9uLWNhbmNlbFwiPlxyXG4gICAgICAgIHt7Y2FuY2VsTGFiZWx9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIm9rU2hvd1wiIChjbGljayk9XCJlbWl0T0soKVwiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1hY3Rpb24tYnV0dG9uLXN1Ym1pdFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgIHt7b2tMYWJlbH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
@@ -1,110 +0,0 @@
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
- var _a;
30
- if ((_a = this.searchInput$) === null || _a === void 0 ? void 0 : _a.nativeElement) {
31
- fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(map((event) => {
32
- return event.target.value; // Get input value.
33
- }), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
34
- // If character length greater than minimumSearchCharacters setting.
35
- debounceTime(1000), // Time in milliseconds between key events.
36
- distinctUntilChanged() // If previous query is different from current.
37
- ).subscribe();
38
- }
39
- }
40
- emitActionClick(action) {
41
- this.onAction.emit(action);
42
- }
43
- routerLinkActionClick(action) {
44
- // console.log('routerLinkActionClick', action);
45
- if (action.outlet) {
46
- this.router$.navigate(['', { outlets: { rightpane: action.link } }]);
47
- }
48
- else {
49
- this.router$.navigate([action.link]);
50
- }
51
- }
52
- searchActionClick(action, text) {
53
- this.onSearch.emit(text);
54
- }
55
- searchActionType(text) {
56
- var _a;
57
- this.onSearch.emit((_a = this.searchInput$) === null || _a === void 0 ? void 0 : _a.nativeElement.value);
58
- }
59
- handleClear(event) {
60
- var _a;
61
- console.log('handle clear!!!');
62
- event.stopPropagation();
63
- this.onSearch.emit((_a = event.target) === null || _a === void 0 ? void 0 : _a.value);
64
- }
65
- switchViewActionClick(action) {
66
- // console.log('switchViewActionClick', action);
67
- this.view = action.param;
68
- if (action && action.param) {
69
- this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });
70
- }
71
- }
72
- }
73
- ViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ViewLayoutComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
74
- ViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", 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\" class=\"view-layout-paddings\">\r\n\r\n <div class=\"view-layout-title-container\">\r\n\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex items-center justify-end\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"ml-1 disabled:opacity-50 btn-view-header\" (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\" class=\"selected-view-indicator\"></span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"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\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\" #search class=\"search-input\" [placeholder]=\"searchPlaceholder\"\r\n type=\"search\" name=\"search\" (input)=\"searchActionType(search.value)\" (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\" href=\"#\" class=\"btn-view-header rounded-l-none\" [title]=\"action.tooltip\" (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\" href=\"#\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n\r\n<!-- component -->\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>\r\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ViewLayoutComponent, decorators: [{
76
- type: Component,
77
- args: [{
78
- selector: 'lib-view-layout',
79
- templateUrl: './view-layout.component.html'
80
- }]
81
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }]; }, propDecorators: { searchInput$: [{
82
- type: ViewChild,
83
- args: ['search']
84
- }], header: [{
85
- type: Input,
86
- args: ['show-header']
87
- }], fluid: [{
88
- type: Input
89
- }], title: [{
90
- type: Input
91
- }], icon: [{
92
- type: Input
93
- }], actions: [{
94
- type: Input
95
- }], busy: [{
96
- type: Input
97
- }], searchPlaceholder: [{
98
- type: Input,
99
- args: ['search-placeholder']
100
- }], view: [{
101
- type: Input
102
- }], metaItems: [{
103
- type: Input,
104
- args: ['meta-items']
105
- }], onAction: [{
106
- type: Output
107
- }], onSearch: [{
108
- type: Output
109
- }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU9qRixNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUFvQixNQUFzQixFQUFVLE9BQWU7UUFBL0MsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBakJuRSwyQ0FBMkM7UUFDckIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsVUFBSyxHQUFHLFVBQVUsQ0FBQztRQUNuQixTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixZQUFPLEdBQXdCLElBQUksQ0FBQztRQUNwQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLDJDQUEyQztRQUNkLHNCQUFpQixHQUFrQixXQUFXLENBQUM7UUFDbkUsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBQzdELCtD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QUFDLGFBQWE7Z0JBQ1gsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFdUIsaUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsSUFBSTtzQkFBWixLQUFLO2dCQUVlLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFFVCxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTd2l0Y2hWaWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0sIFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi12aWV3LWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzaG93LWhlYWRlcicpIGhlYWRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgZmx1aWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0aXRsZSA9ICdubyB0aXRsZSc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYWN0aW9uczogVmlld0FjdGlvbltdIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NlYXJjaC1wbGFjZWhvbGRlcicpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gJ86xzr3Osc62zq7PhM63z4POtyc7XHJcbiAgQElucHV0KCkgdmlldzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFjdGlvbjogRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPigpO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlJDogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyJDogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hJbnB1dCQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7IC8vIEdldCBpbnB1dCB2YWx1ZS5cclxuICAgICAgICB9KSxcclxuICAgICAgICBmaWx0ZXIoaW5wdXRWYWx1ZSA9PiBpbnB1dFZhbHVlLmxlbmd0aCA+PSAzIHx8IGlucHV0VmFsdWUubGVuZ3RoID09PSAwKSxcclxuICAgICAgICAvLyBJZiBjaGFyYWN0ZXIgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBtaW5pbXVtU2VhcmNoQ2hhcmFjdGVycyBzZXR0aW5nLlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDAwKSwgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudC5cclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0QWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWN0aW9uLmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uOiBSb3V0ZXJWaWV3QWN0aW9uIHwgYW55KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygncm91dGVyTGlua0FjdGlvbkNsaWNrJywgYWN0aW9uKTtcclxuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XHJcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbJycsIHsgb3V0bGV0czogeyByaWdodHBhbmU6IGFjdGlvbi5saW5rIH0gfV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFthY3Rpb24ubGlua10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEFjdGlvblR5cGUodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsZWFyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdoYW5kbGUgY2xlYXIhISEnKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KGV2ZW50LnRhcmdldD8udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN3aXRjaFZpZXdBY3Rpb25DbGljayhhY3Rpb246IFN3aXRjaFZpZXdBY3Rpb24gfCBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdzd2l0Y2hWaWV3QWN0aW9uQ2xpY2snLCBhY3Rpb24pO1xyXG4gICAgdGhpcy52aWV3ID0gYWN0aW9uLnBhcmFtO1xyXG4gICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ucGFyYW0pIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7IHZpZXc6IGFjdGlvbi5wYXJhbSB9LCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCBza2lwTG9jYXRpb25DaGFuZ2U6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiaGVhZGVyXCIgY2xhc3M9XCJ2aWV3LWxheW91dC1wYWRkaW5nc1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidmlldy1sYXlvdXQtdGl0bGUtY29udGFpbmVyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8aSAqbmdJZj1cImljb25cIiBbY2xhc3NdPVwiaWNvbiArICcgdGl0bGUtaWNvbidcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgPGgxIFtjbGFzc109XCJidXN5ID8gJ3ZpZXctbGF5b3V0LXRpdGxlLWJ1c3knIDogJ3ZpZXctbGF5b3V0LXRpdGxlJ1wiPnt7dGl0bGV9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwibWV0YUl0ZW1zICYmIG1ldGFJdGVtcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtZXRhLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldGEgb2YgbWV0YUl0ZW1zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aSAqbmdJZj1cIm1ldGEuaWNvblwiIFtjbGFzc109XCJtZXRhLmljb24gKyAnIG1ldGEtaWNvbidcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS10ZXh0XCI+e3ttZXRhLnRleHR9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiICBbbmdTd2l0Y2hdPVwiYWN0aW9uLnR5cGVcIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3N3aXRjaC12aWV3J1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidmlldyA9PT0gYWN0aW9uLnBhcmFtXCIgdHlwZT1cImJ1dHRvblwiIGhyZWY9XCIjXCIgY2xhc3M9XCJtbC0xIGRpc2FibGVkOm9wYWNpdHktNTAgYnRuLXZpZXctaGVhZGVyXCIgKGNsaWNrKT1cInN3aXRjaFZpZXdBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5saW5lLWJsb2NrIHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidmlldyA9PT0gYWN0aW9uLnBhcmFtXCIgY2xhc3M9XCJzZWxlY3RlZC12aWV3LWluZGljYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWFyY2gnXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoXCIgY2xhc3M9XCJzci1vbmx5XCI+U2VhcmNoPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBsZWZ0LTAgcGwtMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDwhLS08c3ZnIGNsYXNzPVwiaC01IHctNVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04ek0yIDhhNiA2IDAgMTExMC44OSAzLjQ3Nmw0LjgxNyA0LjgxN2ExIDEgMCAwMS0xLjQxNCAxLjQxNGwtNC44MTYtNC44MTZBNiA2IDAgMDEyIDh6XCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJzZWFyY2hcIiAjc2VhcmNoIGNsYXNzPVwic2VhcmNoLWlucHV0XCIgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIiBuYW1lPVwic2VhcmNoXCIgKGlucHV0KT1cInNlYXJjaEFjdGlvblR5cGUoc2VhcmNoLnZhbHVlKVwiIChvbnNlYXJjaCk9XCJoYW5kbGVDbGVhcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICBocmVmPVwiI1wiIGNsYXNzPVwiYnRuLXZpZXctaGVhZGVyIHJvdW5kZWQtbC1ub25lXCIgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCIgKGNsaWNrKT1cInNlYXJjaEFjdGlvbkNsaWNrKGFjdGlvbiwgc2VhcmNoLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JvdXRlci1saW5rJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgIGhyZWY9XCIjXCIgY2xhc3M9XCJtbC0xIGJ0bi12aWV3LWhlYWRlclwiIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiIChjbGljayk9XCJyb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICBjbGFzcz1cIm1sLTEgYnRuLXZpZXctaGVhZGVyXCIgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCIgKGNsaWNrKT1cImVtaXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2hlYWRlcj5cclxuXHJcbjwhLS0gY29tcG9uZW50IC0tPlxyXG48ZGl2IFtjbGFzc109XCJmbHVpZCA/ICd2aWV3LWNvbnRhaW5lci1mbHVpZCcgOiAndmlldy1jb250YWluZXInXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuIl19