@indice/ng-components 0.2.146 → 0.2.147

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 (159) hide show
  1. package/_styles.css +1 -1
  2. package/{esm2015/indice-ng-components.js → esm2020/indice-ng-components.mjs} +0 -0
  3. package/{esm2015/lib/controls/avatar-initials/avatar-initials.component.js → esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs} +5 -8
  4. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
  5. package/esm2020/lib/controls/combobox/combobox.component.mjs +96 -0
  6. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +260 -0
  7. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +68 -0
  8. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +36 -0
  9. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +31 -0
  10. package/{esm2015/lib/controls/list-view/list-column.component.js → esm2020/lib/controls/list-view/list-column.component.mjs} +4 -4
  11. package/{esm2015/lib/controls/list-view/list-details-section.component.js → esm2020/lib/controls/list-view/list-details-section.component.mjs} +4 -4
  12. package/{esm2015/lib/controls/list-view/list-tile.component.js → esm2020/lib/controls/list-view/list-tile.component.mjs} +4 -4
  13. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
  14. package/esm2020/lib/controls/list-view/list-view.component.mjs +183 -0
  15. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +42 -0
  16. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +73 -0
  17. package/esm2020/lib/controls/pager/pager.component.mjs +130 -0
  18. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +72 -0
  19. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +25 -0
  20. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +59 -0
  21. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +57 -0
  22. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +28 -0
  23. package/esm2020/lib/controls/toaster/toaster.component.mjs +31 -0
  24. package/esm2020/lib/controls/toggle/toggle.component.mjs +64 -0
  25. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
  26. package/{esm2015/lib/directives/click-outside.directive.js → esm2020/lib/directives/click-outside.directive.mjs} +4 -4
  27. package/{esm2015/lib/directives/dynamic-component-host.directive.js → esm2020/lib/directives/dynamic-component-host.directive.mjs} +4 -4
  28. package/esm2020/lib/helpers/base-list.component.mjs +181 -0
  29. package/esm2020/lib/icons.mjs +34 -0
  30. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
  31. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +131 -0
  32. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +103 -0
  33. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +47 -0
  34. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +80 -0
  35. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +49 -0
  36. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +98 -0
  37. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
  38. package/esm2020/lib/ng-components.module.mjs +245 -0
  39. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
  40. package/{esm2015/lib/pages/auth/auth-renew/auth-renew.component.js → esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs} +4 -4
  41. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
  42. package/esm2020/lib/pages/http-status/error/error.component.mjs +17 -0
  43. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
  44. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
  45. package/{esm2015/lib/pipes/address.pipe.js → esm2020/lib/pipes/address.pipe.mjs} +4 -4
  46. package/{esm2015/lib/pipes/duration-format.pipe.js → esm2020/lib/pipes/duration-format.pipe.mjs} +4 -4
  47. package/{esm2015/lib/services/component-loader/component-loader-options.class.js → esm2020/lib/services/component-loader/component-loader-options.class.mjs} +0 -0
  48. package/esm2020/lib/services/component-loader/component-loader.class.mjs +188 -0
  49. package/{esm2015/lib/services/component-loader/component-loader.factory.js → esm2020/lib/services/component-loader/component-loader.factory.mjs} +4 -4
  50. package/{esm2015/lib/services/component-loader/content-ref.class.js → esm2020/lib/services/component-loader/content-ref.class.mjs} +0 -0
  51. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
  52. package/esm2020/lib/services/modal-service/modal-container-component.mjs +126 -0
  53. package/{esm2015/lib/services/modal-service/modal-options.class.js → esm2020/lib/services/modal-service/modal-options.class.mjs} +4 -4
  54. package/esm2020/lib/services/modal-service/modal-service.mjs +219 -0
  55. package/{esm2015/lib/services/modal-service/modal-styles.class.js → esm2020/lib/services/modal-service/modal-styles.class.mjs} +0 -0
  56. package/{esm2015/lib/services/modal-service/modal.class.js → esm2020/lib/services/modal-service/modal.class.mjs} +4 -4
  57. package/{esm2015/lib/services/toaster.service.js → esm2020/lib/services/toaster.service.mjs} +4 -4
  58. package/esm2020/lib/tokens.mjs +7 -0
  59. package/{esm2015/lib/types.js → esm2020/lib/types.mjs} +1 -1
  60. package/esm2020/public-api.mjs +56 -0
  61. package/fesm2015/indice-ng-components.mjs +3629 -0
  62. package/fesm2015/indice-ng-components.mjs.map +1 -0
  63. package/fesm2020/indice-ng-components.mjs +3572 -0
  64. package/fesm2020/indice-ng-components.mjs.map +1 -0
  65. package/{indice-ng-components.d.ts → index.d.ts} +0 -0
  66. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +1 -1
  67. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +1 -1
  68. package/lib/controls/combobox/combobox.component.d.ts +29 -0
  69. package/lib/controls/date-picker/date-picker.component.d.ts +1 -1
  70. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +1 -1
  71. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +1 -1
  72. package/lib/controls/language-selection/language-selection.component.d.ts +1 -1
  73. package/lib/controls/list-view/list-column.component.d.ts +1 -1
  74. package/lib/controls/list-view/list-details-section.component.d.ts +1 -1
  75. package/lib/controls/list-view/list-tile.component.d.ts +1 -1
  76. package/lib/controls/list-view/list-view-empty-state.component.d.ts +1 -1
  77. package/lib/controls/list-view/list-view.component.d.ts +1 -1
  78. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +1 -1
  79. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +1 -1
  80. package/lib/controls/pager/pager.component.d.ts +1 -1
  81. package/lib/controls/side-pane/side-pane.component.d.ts +1 -1
  82. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  83. package/lib/controls/tabs/lib-tab-group.component.d.ts +1 -1
  84. package/lib/controls/tabs/lib-tab.component.d.ts +4 -5
  85. package/lib/controls/toaster/toaster-container.component.d.ts +1 -1
  86. package/lib/controls/toaster/toaster.component.d.ts +1 -1
  87. package/lib/controls/toggle/toggle.component.d.ts +1 -1
  88. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  89. package/lib/directives/click-outside.directive.d.ts +1 -1
  90. package/lib/directives/dynamic-component-host.directive.d.ts +1 -1
  91. package/lib/helpers/base-list.component.d.ts +1 -1
  92. package/lib/icons.d.ts +2 -0
  93. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +1 -1
  94. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -1
  95. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +1 -1
  96. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +1 -1
  97. package/lib/layouts/views/form-layout/form-layout.component.d.ts +1 -1
  98. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +1 -1
  99. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +1 -1
  100. package/lib/layouts/views/view-layout/view-layout.component.d.ts +1 -1
  101. package/lib/ng-components.module.d.ts +28 -27
  102. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +1 -1
  103. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +1 -1
  104. package/lib/pages/auth/logged-out/logged-out.component.d.ts +1 -1
  105. package/lib/pages/http-status/error/error.component.d.ts +1 -1
  106. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +1 -1
  107. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +1 -1
  108. package/lib/pipes/address.pipe.d.ts +1 -1
  109. package/lib/pipes/duration-format.pipe.d.ts +1 -1
  110. package/lib/services/modal-service/modal-backdrop-component.d.ts +1 -1
  111. package/lib/services/modal-service/modal-container-component.d.ts +1 -1
  112. package/lib/tokens.d.ts +2 -0
  113. package/lib/types.d.ts +2 -0
  114. package/package.json +25 -12
  115. package/public-api.d.ts +2 -1
  116. package/bundles/indice-ng-components.umd.js +0 -4181
  117. package/bundles/indice-ng-components.umd.js.map +0 -1
  118. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -23
  119. package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -269
  120. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +0 -72
  121. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +0 -39
  122. package/esm2015/lib/controls/language-selection/language-selection.component.js +0 -35
  123. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +0 -32
  124. package/esm2015/lib/controls/list-view/list-view.component.js +0 -186
  125. package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +0 -45
  126. package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +0 -76
  127. package/esm2015/lib/controls/pager/pager.component.js +0 -133
  128. package/esm2015/lib/controls/side-pane/side-pane.component.js +0 -76
  129. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +0 -29
  130. package/esm2015/lib/controls/tabs/lib-tab-group.component.js +0 -60
  131. package/esm2015/lib/controls/tabs/lib-tab.component.js +0 -57
  132. package/esm2015/lib/controls/toaster/toaster-container.component.js +0 -31
  133. package/esm2015/lib/controls/toaster/toaster.component.js +0 -34
  134. package/esm2015/lib/controls/toggle/toggle.component.js +0 -68
  135. package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +0 -75
  136. package/esm2015/lib/helpers/base-list.component.js +0 -182
  137. package/esm2015/lib/icons.js +0 -32
  138. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +0 -22
  139. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +0 -136
  140. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -108
  141. package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +0 -50
  142. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +0 -85
  143. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +0 -53
  144. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +0 -101
  145. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +0 -110
  146. package/esm2015/lib/ng-components.module.js +0 -242
  147. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +0 -34
  148. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +0 -32
  149. package/esm2015/lib/pages/http-status/error/error.component.js +0 -20
  150. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +0 -18
  151. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +0 -17
  152. package/esm2015/lib/services/component-loader/component-loader.class.js +0 -192
  153. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +0 -44
  154. package/esm2015/lib/services/modal-service/modal-container-component.js +0 -128
  155. package/esm2015/lib/services/modal-service/modal-service.js +0 -220
  156. package/esm2015/lib/tokens.js +0 -6
  157. package/esm2015/public-api.js +0 -55
  158. package/fesm2015/indice-ng-components.js +0 -3600
  159. package/fesm2015/indice-ng-components.js.map +0 -1
@@ -0,0 +1,103 @@
1
+ import { SHELL_CONFIG } from './../../../tokens';
2
+ import { DefaultShellConfig } from './../../../types';
3
+ import { Component, Inject, ViewChildren } from '@angular/core';
4
+ import { DOCUMENT } from '@angular/common';
5
+ import { ActivationStart } from '@angular/router';
6
+ import { filter } from 'rxjs/operators';
7
+ import { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/router";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "../../../services/component-loader/component-loader.factory";
12
+ import * as i4 from "../../../directives/dynamic-component-host.directive";
13
+ import * as i5 from "../../../controls/side-pane/side-pane.component";
14
+ import * as i6 from "../../../controls/toaster/toaster-container.component";
15
+ import * as i7 from "../shell-header/shell-header.component";
16
+ import * as i8 from "../shell-footer/shell-footer.component";
17
+ import * as i9 from "../shell-sidebar/shell-sidebar.component";
18
+ export class ShellLayoutComponent {
19
+ constructor(document, router, location, config, componentLoaderFactory) {
20
+ this.document = document;
21
+ this.router = router;
22
+ this.location = location;
23
+ this.config = config;
24
+ this.componentLoaderFactory = componentLoaderFactory;
25
+ this.dynamicComponentHosts = null;
26
+ this.showRightPaneSM = false;
27
+ this.routerSub$ = null;
28
+ this.activeConfig = new DefaultShellConfig();
29
+ this.loaded = false;
30
+ this.hideSidebar = false;
31
+ if (!config) {
32
+ config = new DefaultShellConfig();
33
+ }
34
+ this.activeConfig = config;
35
+ }
36
+ ngAfterViewChecked() {
37
+ setTimeout(() => { this.loaded = true; }, 200);
38
+ }
39
+ ngOnInit() {
40
+ this.routerSub$ = this.router.events.pipe(filter((event) => event instanceof ActivationStart)).subscribe((e) => {
41
+ // console.log('ShellLayoutComponent ActivationStart', e);
42
+ if (e?.snapshot) {
43
+ // console.log('ShellLayoutComponent ActivationStart snapshot', (e as ActivationStart)?.snapshot);
44
+ if (e?.snapshot?.data) {
45
+ // console.log('ShellLayoutComponent ActivationStart snapshot data', (e as ActivationStart)?.snapshot.data);
46
+ if (e?.snapshot?.data.shell) {
47
+ // console.log('ShellLayoutComponent ActivationStart snapshot data shell params',
48
+ // (e as ActivationStart)?.snapshot.data.shell);
49
+ this.activeConfig = e?.snapshot.data.shell;
50
+ // console.log('ShellLayoutComponent activeConfig from route: ', this.activeConfig);
51
+ if (this.activeConfig.customHeaderComponent) {
52
+ this.initCustomComponents();
53
+ }
54
+ }
55
+ else {
56
+ this.activeConfig = this.config ? this.config : new DefaultShellConfig();
57
+ // console.log('ShellLayoutComponent default activeConfig: ', this.activeConfig);
58
+ }
59
+ }
60
+ }
61
+ });
62
+ }
63
+ ngAfterViewInit() {
64
+ this.initCustomComponents();
65
+ }
66
+ initCustomComponents() {
67
+ if (this.dynamicComponentHosts && this.dynamicComponentHosts.length > 0) {
68
+ this.loadCustomComponent(this.dynamicComponentHosts.find((_) => _.hostName === 'Header'));
69
+ // since you're not using it...
70
+ // this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Footer'));
71
+ }
72
+ }
73
+ ngOnDestroy() {
74
+ if (this.routerSub$) {
75
+ this.routerSub$.unsubscribe();
76
+ }
77
+ }
78
+ loadCustomComponent(host) {
79
+ if (host) {
80
+ const viewContainerRef = host.viewContainerRef;
81
+ if (viewContainerRef && this.activeConfig.customHeaderComponent) {
82
+ const clf = this.componentLoaderFactory.createLoader(viewContainerRef);
83
+ const headerCompRef = clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();
84
+ }
85
+ }
86
+ }
87
+ }
88
+ ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: DOCUMENT }, { token: i1.Router }, { token: i2.Location }, { token: SHELL_CONFIG }, { token: i3.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
89
+ ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"loaded && (activeConfig.layout === 'Stacked' || !activeConfig.layout)\" [style.display]=\"!loaded ? 'none':'block'\" class=\"shell-container active-side-pane\">\n\n <div class=\"shell-header-container\" *ngIf=\"activeConfig.showHeader\">\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\n <div appDynamicComponentHost =\"Header\"></div>\n </ng-container>\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\" [show-userName]=\"activeConfig.showUserNameOnHeader\"\n [show-alerts]=\"activeConfig.showAlertsOnHeader\">\n </lib-shell-header>\n </div>\n </div>\n\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\n <router-outlet *ngIf=\"loaded && (activeConfig.layout === 'Stacked' || !activeConfig.layout)\"></router-outlet>\n </div>\n </main>\n\n <div class=\"shell-footer-container\" *ngIf=\"activeConfig.showFooter\">\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\n <div appDynamicComponentHost hostName=\"Footer\"></div>\n </ng-container>\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\n </div>\n </div>\n\n <lib-side-pane #rightPane>\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n\n <lib-toaster-container></lib-toaster-container>\n</div>\n\n<!-- SIDEBAR LAYOUT -->\n\n<div *ngIf=\"loaded && activeConfig.layout === 'Sidebar'\" [style.display]=\"!loaded ? 'none':'block'\" class=\"sidebar shell-container active-side-pane\">\n\n <!-- Static sidebar for desktop -->\n <div class=\"hidden w-0 sm:w-64 flex-col inset-y-0 bg-gray-800\" [class.hidden]=\"hideSidebar\" [class.fixed]=\"!hideSidebar\">\n <lib-shell-sidebar [config]=\"activeConfig\" ></lib-shell-sidebar>\n </div>\n\n <div class=\"flex flex-col\" [class.pl-64]=\"!hideSidebar\">\n <div class=\"sticky top-0 z-10 flex-shrink-0 flex h-16 bg-gray-800\">\n\n <button type=\"button\" class=\"hidden sm:block px-4 border-0 text-white focus:outline-none\" (click)=\"hideSidebar = !hideSidebar\">\n <span class=\"sr-only\">Open sidebar</span>\n <!-- Heroicon name: outline/menu-alt-2 -->\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n\n <button type=\"button\" class=\"block sm:hidden px-4 border-0 text-gray-200 focus:outline-none\" (click)=\"hideSidebar = !hideSidebar\">\n <span class=\"sr-only\">Open sidebar</span>\n <!-- Heroicon name: outline/menu-alt-2 --> 111\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n\n <div class=\"flex-1\">\n <div class=\"shell-header-container\">\n <lib-shell-header [shell-layout]=\"activeConfig.layout\" [show-userName]=\"activeConfig.showUserNameOnHeader\" [show-alerts]=\"activeConfig.showAlertsOnHeader\"></lib-shell-header>\n </div>\n </div>\n </div>\n\n <main class=\"shell-content-container-sidebar\">\n <div class=\"shell-content-container-inner\">\n <router-outlet *ngIf=\"loaded && activeConfig.layout === 'Sidebar'\"></router-outlet>\n </div>\n </main>\n </div>\n\n <lib-side-pane #rightPane>\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n\n <lib-toaster-container></lib-toaster-container>\n\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { kind: "component", type: i5.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { kind: "component", type: i6.ToasterContainerComponent, selector: "lib-toaster-container" }, { kind: "component", type: i7.ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "profile-menu", "show-userName", "show-alerts", "shell-layout", "border"] }, { kind: "component", type: i8.ShellFooterComponent, selector: "lib-shell-footer" }, { kind: "component", type: i9.ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: ["section-links", "config"] }] });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellLayoutComponent, decorators: [{
91
+ type: Component,
92
+ args: [{ selector: 'lib-shell-layout', template: "<div *ngIf=\"loaded && (activeConfig.layout === 'Stacked' || !activeConfig.layout)\" [style.display]=\"!loaded ? 'none':'block'\" class=\"shell-container active-side-pane\">\n\n <div class=\"shell-header-container\" *ngIf=\"activeConfig.showHeader\">\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\n <div appDynamicComponentHost =\"Header\"></div>\n </ng-container>\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\" [show-userName]=\"activeConfig.showUserNameOnHeader\"\n [show-alerts]=\"activeConfig.showAlertsOnHeader\">\n </lib-shell-header>\n </div>\n </div>\n\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\n <router-outlet *ngIf=\"loaded && (activeConfig.layout === 'Stacked' || !activeConfig.layout)\"></router-outlet>\n </div>\n </main>\n\n <div class=\"shell-footer-container\" *ngIf=\"activeConfig.showFooter\">\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\n <div appDynamicComponentHost hostName=\"Footer\"></div>\n </ng-container>\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\n </div>\n </div>\n\n <lib-side-pane #rightPane>\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n\n <lib-toaster-container></lib-toaster-container>\n</div>\n\n<!-- SIDEBAR LAYOUT -->\n\n<div *ngIf=\"loaded && activeConfig.layout === 'Sidebar'\" [style.display]=\"!loaded ? 'none':'block'\" class=\"sidebar shell-container active-side-pane\">\n\n <!-- Static sidebar for desktop -->\n <div class=\"hidden w-0 sm:w-64 flex-col inset-y-0 bg-gray-800\" [class.hidden]=\"hideSidebar\" [class.fixed]=\"!hideSidebar\">\n <lib-shell-sidebar [config]=\"activeConfig\" ></lib-shell-sidebar>\n </div>\n\n <div class=\"flex flex-col\" [class.pl-64]=\"!hideSidebar\">\n <div class=\"sticky top-0 z-10 flex-shrink-0 flex h-16 bg-gray-800\">\n\n <button type=\"button\" class=\"hidden sm:block px-4 border-0 text-white focus:outline-none\" (click)=\"hideSidebar = !hideSidebar\">\n <span class=\"sr-only\">Open sidebar</span>\n <!-- Heroicon name: outline/menu-alt-2 -->\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n\n <button type=\"button\" class=\"block sm:hidden px-4 border-0 text-gray-200 focus:outline-none\" (click)=\"hideSidebar = !hideSidebar\">\n <span class=\"sr-only\">Open sidebar</span>\n <!-- Heroicon name: outline/menu-alt-2 --> 111\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n\n <div class=\"flex-1\">\n <div class=\"shell-header-container\">\n <lib-shell-header [shell-layout]=\"activeConfig.layout\" [show-userName]=\"activeConfig.showUserNameOnHeader\" [show-alerts]=\"activeConfig.showAlertsOnHeader\"></lib-shell-header>\n </div>\n </div>\n </div>\n\n <main class=\"shell-content-container-sidebar\">\n <div class=\"shell-content-container-inner\">\n <router-outlet *ngIf=\"loaded && activeConfig.layout === 'Sidebar'\"></router-outlet>\n </div>\n </main>\n </div>\n\n <lib-side-pane #rightPane>\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n\n <lib-toaster-container></lib-toaster-container>\n\n</div>\n" }]
93
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
94
+ type: Inject,
95
+ args: [DOCUMENT]
96
+ }] }, { type: i1.Router }, { type: i2.Location }, { type: undefined, decorators: [{
97
+ type: Inject,
98
+ args: [SHELL_CONFIG]
99
+ }] }, { type: i3.ComponentLoaderFactory }]; }, propDecorators: { dynamicComponentHosts: [{
100
+ type: ViewChildren,
101
+ args: [DynamicComponentHostDirective]
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWxheW91dC9zaGVsbC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtbGF5b3V0L3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BFLE9BQU8sRUFBaUIsU0FBUyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFTckcsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUM0QixRQUFhLEVBQy9CLE1BQWMsRUFDZCxRQUFrQixFQUNJLE1BQWdDLEVBQ3RELHNCQUE4QztRQUo1QixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBQy9CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0ksV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFDdEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQVh4RCwwQkFBcUIsR0FBb0QsSUFBSSxDQUFDO1FBQ3ZFLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGVBQVUsR0FBd0IsSUFBSSxDQUFDO1FBQ3hDLGlCQUFZLEdBQWlCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN0RCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFRekIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDN0csMERBQTBEO1lBQzFELElBQUssQ0FBcUIsRUFBRSxRQUFRLEVBQUU7Z0JBQ3BDLGtHQUFrRztnQkFDbEcsSUFBSyxDQUFxQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7b0JBQzFDLDRHQUE0RztvQkFDNUcsSUFBSyxDQUFxQixFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO3dCQUNoRCxpRkFBaUY7d0JBQ2pGLGdEQUFnRDt3QkFDaEQsSUFBSSxDQUFDLFlBQVksR0FBSSxDQUFxQixFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBcUIsQ0FBQzt3QkFDaEYsb0ZBQW9GO3dCQUNwRixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUU7NEJBQzNDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO3lCQUM3QjtxQkFDRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksa0JBQWtCLEVBQUUsQ0FBQzt3QkFDekUsaUZBQWlGO3FCQUNsRjtpQkFDRjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxRiwrQkFBK0I7WUFDL0IsMkZBQTJGO1NBQzVGO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUErQztRQUN6RSxJQUFJLElBQUksRUFBRTtZQUNSLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQy9DLElBQUksZ0JBQWdCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDL0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN2RSxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDL0c7U0FDRjtJQUNILENBQUM7O2lIQTNFVSxvQkFBb0Isa0JBU3JCLFFBQVEsMkRBR1IsWUFBWTtxR0FaWCxvQkFBb0Isa0dBQ2pCLDZCQUE2QixnRENqQjdDLHN5SUFvRkE7MkZEcEVhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFFRSxrQkFBa0I7OzBCQVl6QixNQUFNOzJCQUFDLFFBQVE7OzBCQUdmLE1BQU07MkJBQUMsWUFBWTtpRkFWdEIscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNIRUxMX0NPTkZJRyB9IGZyb20gJy4vLi4vLi4vLi4vdG9rZW5zJztcbmltcG9ydCB7IElTaGVsbENvbmZpZywgRGVmYXVsdFNoZWxsQ29uZmlnIH0gZnJvbSAnLi8uLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBBZnRlclZpZXdDaGVja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWN0aXZhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50LWhvc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuZmFjdG9yeSc7XG5cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWItc2hlbGwtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNoZWxsTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBAVmlld0NoaWxkcmVuKER5bmFtaWNDb21wb25lbnRIb3N0RGlyZWN0aXZlKVxuICBkeW5hbWljQ29tcG9uZW50SG9zdHM6IFF1ZXJ5TGlzdDxEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xuICBwcml2YXRlIHJvdXRlclN1YiQ6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgYWN0aXZlQ29uZmlnOiBJU2hlbGxDb25maWcgPSBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XG4gIHB1YmxpYyBsb2FkZWQgPSBmYWxzZTtcbiAgcHVibGljIGhpZGVTaWRlYmFyID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIEBJbmplY3QoU0hFTExfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogSVNoZWxsQ29uZmlnIHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgY29tcG9uZW50TG9hZGVyRmFjdG9yeTogQ29tcG9uZW50TG9hZGVyRmFjdG9yeVxuICApIHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uZmlnID0gbmV3IERlZmF1bHRTaGVsbENvbmZpZygpO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IGNvbmZpZztcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5sb2FkZWQgPSB0cnVlOyB9LCAyMDApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXJTdWIkID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uU3RhcnQpKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBBY3RpdmF0aW9uU3RhcnQnLCBlKTtcbiAgICAgIGlmICgoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdCkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0IHNuYXBzaG90JywgKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QpO1xuICAgICAgICBpZiAoKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3Q/LmRhdGEpIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0IHNuYXBzaG90IGRhdGEnLCAoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdC5kYXRhKTtcbiAgICAgICAgICBpZiAoKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3Q/LmRhdGEuc2hlbGwpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBBY3RpdmF0aW9uU3RhcnQgc25hcHNob3QgZGF0YSBzaGVsbCBwYXJhbXMnLFxuICAgICAgICAgICAgLy8gKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QuZGF0YS5zaGVsbCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90LmRhdGEuc2hlbGwgYXMgSVNoZWxsQ29uZmlnO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsTGF5b3V0Q29tcG9uZW50IGFjdGl2ZUNvbmZpZyBmcm9tIHJvdXRlOiAnLCB0aGlzLmFjdGl2ZUNvbmZpZyk7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuaW5pdEN1c3RvbUNvbXBvbmVudHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVDb25maWcgPSB0aGlzLmNvbmZpZyA/IHRoaXMuY29uZmlnIDogbmV3IERlZmF1bHRTaGVsbENvbmZpZygpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsTGF5b3V0Q29tcG9uZW50IGRlZmF1bHQgYWN0aXZlQ29uZmlnOiAnLCB0aGlzLmFjdGl2ZUNvbmZpZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q3VzdG9tQ29tcG9uZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q3VzdG9tQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5keW5hbWljQ29tcG9uZW50SG9zdHMgJiYgdGhpcy5keW5hbWljQ29tcG9uZW50SG9zdHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2FkQ3VzdG9tQ29tcG9uZW50KHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzLmZpbmQoKF8pID0+IF8uaG9zdE5hbWUgPT09ICdIZWFkZXInKSk7XG4gICAgICAvLyBzaW5jZSB5b3UncmUgbm90IHVzaW5nIGl0Li4uXG4gICAgICAvLyB0aGlzLmxvYWRDdXN0b21Db21wb25lbnQodGhpcy5keW5hbWljQ29tcG9uZW50SG9zdHMuZmluZChfID0+IF8uaG9zdE5hbWUgPT09ICdGb290ZXInKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucm91dGVyU3ViJCkge1xuICAgICAgdGhpcy5yb3V0ZXJTdWIkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQ3VzdG9tQ29tcG9uZW50KGhvc3Q6IER5bmFtaWNDb21wb25lbnRIb3N0RGlyZWN0aXZlIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKGhvc3QpIHtcbiAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSBob3N0LnZpZXdDb250YWluZXJSZWY7XG4gICAgICBpZiAodmlld0NvbnRhaW5lclJlZiAmJiB0aGlzLmFjdGl2ZUNvbmZpZy5jdXN0b21IZWFkZXJDb21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgY2xmID0gdGhpcy5jb21wb25lbnRMb2FkZXJGYWN0b3J5LmNyZWF0ZUxvYWRlcih2aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgY29uc3QgaGVhZGVyQ29tcFJlZiA9IGNsZi5hdHRhY2godGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KS50byh2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQpLnNob3coKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJsb2FkZWQgJiYgKGFjdGl2ZUNvbmZpZy5sYXlvdXQgPT09ICdTdGFja2VkJyB8fCAhYWN0aXZlQ29uZmlnLmxheW91dClcIiBbc3R5bGUuZGlzcGxheV09XCIhbG9hZGVkID8gJ25vbmUnOidibG9jaydcIiBjbGFzcz1cInNoZWxsLWNvbnRhaW5lciBhY3RpdmUtc2lkZS1wYW5lXCI+XG5cbiAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1jb250YWluZXJcIiAqbmdJZj1cImFjdGl2ZUNvbmZpZy5zaG93SGVhZGVyXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwiYWN0aXZlQ29uZmlnLmZsdWlkID8gJ3NoZWxsLWhlYWRlci1jb250YWluZXItaW5uZXItZmx1aWQnIDogJ3NoZWxsLWhlYWRlci1jb250YWluZXItaW5uZXInXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudFwiPlxuICAgICAgICA8ZGl2IGFwcER5bmFtaWNDb21wb25lbnRIb3N0ID1cIkhlYWRlclwiPjwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bGliLXNoZWxsLWhlYWRlciAqbmdJZj1cIiFhY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50XCIgW3Nob3ctdXNlck5hbWVdPVwiYWN0aXZlQ29uZmlnLnNob3dVc2VyTmFtZU9uSGVhZGVyXCJcbiAgICAgICAgW3Nob3ctYWxlcnRzXT1cImFjdGl2ZUNvbmZpZy5zaG93QWxlcnRzT25IZWFkZXJcIj5cbiAgICAgIDwvbGliLXNoZWxsLWhlYWRlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG1haW4gW2NsYXNzXT1cImFjdGl2ZUNvbmZpZy5zaG93SGVhZGVyID8gJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyJyA6ICdzaGVsbC1jb250ZW50LWNvbnRhaW5lci1uby1oZWFkZXInXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwiYWN0aXZlQ29uZmlnLmZsdWlkID8gJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyLWlubmVyLWZsdWlkJyA6ICdzaGVsbC1jb250ZW50LWNvbnRhaW5lci1pbm5lcidcIj5cbiAgICAgIDxyb3V0ZXItb3V0bGV0ICpuZ0lmPVwibG9hZGVkICYmIChhY3RpdmVDb25maWcubGF5b3V0ID09PSAnU3RhY2tlZCcgfHwgIWFjdGl2ZUNvbmZpZy5sYXlvdXQpXCI+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvZGl2PlxuICA8L21haW4+XG5cbiAgPGRpdiBjbGFzcz1cInNoZWxsLWZvb3Rlci1jb250YWluZXJcIiAqbmdJZj1cImFjdGl2ZUNvbmZpZy5zaG93Rm9vdGVyXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwiYWN0aXZlQ29uZmlnLmZsdWlkID8gJ3NoZWxsLWZvb3Rlci1jb250YWluZXItaW5uZXItZmx1aWQnIDogJ3NoZWxsLWZvb3Rlci1jb250YWluZXItaW5uZXInXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmN1c3RvbUZvb3RlckNvbXBvbmVudFwiPlxuICAgICAgICA8ZGl2IGFwcER5bmFtaWNDb21wb25lbnRIb3N0IGhvc3ROYW1lPVwiRm9vdGVyXCI+PC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxsaWItc2hlbGwtZm9vdGVyICpuZ0lmPVwiIWFjdGl2ZUNvbmZpZy5jdXN0b21Gb290ZXJDb21wb25lbnRcIj48L2xpYi1zaGVsbC1mb290ZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxsaWItc2lkZS1wYW5lICNyaWdodFBhbmU+XG4gICAgPHJvdXRlci1vdXRsZXQgbmFtZT1cInJpZ2h0cGFuZVwiIChhY3RpdmF0ZSk9XCJyaWdodFBhbmUub25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQpXCIgKGRlYWN0aXZhdGUpPVwicmlnaHRQYW5lLm9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQpXCI+PC9yb3V0ZXItb3V0bGV0PlxuICA8L2xpYi1zaWRlLXBhbmU+XG5cbiAgPGxpYi10b2FzdGVyLWNvbnRhaW5lcj48L2xpYi10b2FzdGVyLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48IS0tIFNJREVCQVIgTEFZT1VUIC0tPlxuXG48ZGl2ICpuZ0lmPVwibG9hZGVkICYmIGFjdGl2ZUNvbmZpZy5sYXlvdXQgPT09ICdTaWRlYmFyJ1wiIFtzdHlsZS5kaXNwbGF5XT1cIiFsb2FkZWQgPyAnbm9uZSc6J2Jsb2NrJ1wiIGNsYXNzPVwic2lkZWJhciBzaGVsbC1jb250YWluZXIgYWN0aXZlLXNpZGUtcGFuZVwiPlxuXG4gIDwhLS0gU3RhdGljIHNpZGViYXIgZm9yIGRlc2t0b3AgLS0+XG4gIDxkaXYgY2xhc3M9XCJoaWRkZW4gdy0wIHNtOnctNjQgZmxleC1jb2wgaW5zZXQteS0wIGJnLWdyYXktODAwXCIgW2NsYXNzLmhpZGRlbl09XCJoaWRlU2lkZWJhclwiIFtjbGFzcy5maXhlZF09XCIhaGlkZVNpZGViYXJcIj5cbiAgICA8bGliLXNoZWxsLXNpZGViYXIgW2NvbmZpZ109XCJhY3RpdmVDb25maWdcIiA+PC9saWItc2hlbGwtc2lkZWJhcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIiBbY2xhc3MucGwtNjRdPVwiIWhpZGVTaWRlYmFyXCI+XG4gICAgPGRpdiBjbGFzcz1cInN0aWNreSB0b3AtMCB6LTEwIGZsZXgtc2hyaW5rLTAgZmxleCBoLTE2IGJnLWdyYXktODAwXCI+XG5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaGlkZGVuIHNtOmJsb2NrIHB4LTQgYm9yZGVyLTAgdGV4dC13aGl0ZSBmb2N1czpvdXRsaW5lLW5vbmVcIiAoY2xpY2spPVwiaGlkZVNpZGViYXIgPSAhaGlkZVNpZGViYXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+T3BlbiBzaWRlYmFyPC9zcGFuPlxuICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IG91dGxpbmUvbWVudS1hbHQtMiAtLT5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImgtNiB3LTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGg3XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJibG9jayBzbTpoaWRkZW4gcHgtNCBib3JkZXItMCB0ZXh0LWdyYXktMjAwIGZvY3VzOm91dGxpbmUtbm9uZVwiIChjbGljayk9XCJoaWRlU2lkZWJhciA9ICFoaWRlU2lkZWJhclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5PcGVuIHNpZGViYXI8L3NwYW4+XG4gICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogb3V0bGluZS9tZW51LWFsdC0yIC0tPiAxMTFcbiAgICAgICAgPHN2ZyBjbGFzcz1cImgtNiB3LTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGg3XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGxpYi1zaGVsbC1oZWFkZXIgW3NoZWxsLWxheW91dF09XCJhY3RpdmVDb25maWcubGF5b3V0XCIgIFtzaG93LXVzZXJOYW1lXT1cImFjdGl2ZUNvbmZpZy5zaG93VXNlck5hbWVPbkhlYWRlclwiIFtzaG93LWFsZXJ0c109XCJhY3RpdmVDb25maWcuc2hvd0FsZXJ0c09uSGVhZGVyXCI+PC9saWItc2hlbGwtaGVhZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG1haW4gY2xhc3M9XCJzaGVsbC1jb250ZW50LWNvbnRhaW5lci1zaWRlYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtY29udGVudC1jb250YWluZXItaW5uZXJcIj5cbiAgICAgICAgPHJvdXRlci1vdXRsZXQgKm5nSWY9XCJsb2FkZWQgJiYgYWN0aXZlQ29uZmlnLmxheW91dCA9PT0gJ1NpZGViYXInXCI+PC9yb3V0ZXItb3V0bGV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cblxuICA8bGliLXNpZGUtcGFuZSAjcmlnaHRQYW5lPlxuICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJyaWdodHBhbmVcIiAoYWN0aXZhdGUpPVwicmlnaHRQYW5lLm9uU2lkZVBhbmVBY3RpdmF0ZWQoJGV2ZW50KVwiIChkZWFjdGl2YXRlKT1cInJpZ2h0UGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPjwvcm91dGVyLW91dGxldD5cbiAgPC9saWItc2lkZS1wYW5lPlxuXG4gIDxsaWItdG9hc3Rlci1jb250YWluZXI+PC9saWItdG9hc3Rlci1jb250YWluZXI+XG5cbjwvZGl2PlxuIl19
@@ -0,0 +1,47 @@
1
+ import { Component, Inject, Input } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { APP_LINKS } from '../../../tokens';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
+ import { share } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ import * as i2 from "../../../controls/nav-links-list/nav-links-list.component";
9
+ export class ShellSidebarComponent {
10
+ constructor(router, route, links) {
11
+ this.router = router;
12
+ this.route = route;
13
+ this.links = links;
14
+ // tslint:disable-next-line:no-input-rename
15
+ this.sectionLinksPath = 'main';
16
+ this.sectionLinks = of([]);
17
+ // tslint:disable-next-line:no-input-rename
18
+ this.shellConfig = undefined;
19
+ this.activeFragment = null;
20
+ }
21
+ ngOnInit() {
22
+ this.activeFragment = this.route.fragment.pipe(share());
23
+ this.sectionLinks = this.links[this.sectionLinksPath];
24
+ }
25
+ }
26
+ ShellSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellSidebarComponent, deps: [{ token: Router }, { token: ActivatedRoute }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component });
27
+ ShellSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], shellConfig: ["config", "shellConfig"] }, ngImport: i0, template: "<!-- Sidebar component, swap this element with another sidebar if you like -->\n<div class=\"flex w-full flex-col h-full min-h-0 bg-gray-800\">\n <div class=\"flex items-center h-16 flex-shrink-0 px-4 bg-gray-900\">\n <!-- <img class=\"h-8 w-auto\" src=\"https://tailwindui.com/img/logos/workflow-logo-indigo-500-mark-white-text.svg\" alt=\"Workflow\"> -->\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"shellConfig?.appLogo\" [alt]=\"shellConfig?.appLogoAlt\" /></a>\n </div>\n <div class=\"pt-4 px-2 sidebar\">\n <lib-nav-links-list\n [show-icons]=\"true\"\n [links]=\"sectionLinks\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'sidebar nav-link'\"\n [link-active-class]=\"'sidebar nav-link-active'\">\n </lib-nav-links-list>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "component", type: i2.NavLinksListComponent, selector: "lib-nav-links-list", inputs: ["links", "active-fragment", "link-class", "link-active-class", "container-class", "show-icons"] }] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellSidebarComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'lib-shell-sidebar', template: "<!-- Sidebar component, swap this element with another sidebar if you like -->\n<div class=\"flex w-full flex-col h-full min-h-0 bg-gray-800\">\n <div class=\"flex items-center h-16 flex-shrink-0 px-4 bg-gray-900\">\n <!-- <img class=\"h-8 w-auto\" src=\"https://tailwindui.com/img/logos/workflow-logo-indigo-500-mark-white-text.svg\" alt=\"Workflow\"> -->\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"shellConfig?.appLogo\" [alt]=\"shellConfig?.appLogoAlt\" /></a>\n </div>\n <div class=\"pt-4 px-2 sidebar\">\n <lib-nav-links-list\n [show-icons]=\"true\"\n [links]=\"sectionLinks\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'sidebar nav-link'\"\n [link-active-class]=\"'sidebar nav-link-active'\">\n </lib-nav-links-list>\n </div>\n</div>\n" }]
31
+ }], ctorParameters: function () { return [{ type: i1.Router, decorators: [{
32
+ type: Inject,
33
+ args: [Router]
34
+ }] }, { type: i1.ActivatedRoute, decorators: [{
35
+ type: Inject,
36
+ args: [ActivatedRoute]
37
+ }] }, { type: undefined, decorators: [{
38
+ type: Inject,
39
+ args: [APP_LINKS]
40
+ }] }]; }, propDecorators: { sectionLinksPath: [{
41
+ type: Input,
42
+ args: ['section-links']
43
+ }], shellConfig: [{
44
+ type: Input,
45
+ args: ['config']
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy9zaGVsbC9zaGVsbC1zaWRlYmFyL3NoZWxsLXNpZGViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci9zaGVsbC1zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU12QyxNQUFNLE9BQU8scUJBQXFCO0lBT2hDLFlBQXNDLE1BQWMsRUFDTixLQUFxQixFQUM3QixLQUFVO1FBRlYsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNOLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQUs7UUFSaEQsMkNBQTJDO1FBQ25CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQztRQUMzQyxpQkFBWSxHQUEwQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEQsMkNBQTJDO1FBQzFCLGdCQUFXLEdBQTZCLFNBQVMsQ0FBQztRQUM1RCxtQkFBYyxHQUFlLElBQUksQ0FBQztJQUdXLENBQUM7SUFFckQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBMEIsQ0FBQztJQUNqRixDQUFDOztrSEFkVSxxQkFBcUIsa0JBT1osTUFBTSxhQUNOLGNBQWMsYUFDZCxTQUFTO3NHQVRsQixxQkFBcUIsc0tDWmxDLHl6QkFnQkE7MkZESmEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLG1CQUFtQjs7MEJBVWhCLE1BQU07MkJBQUMsTUFBTTs7MEJBQ2IsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxTQUFTOzRDQVBMLGdCQUFnQjtzQkFBdkMsS0FBSzt1QkFBQyxlQUFlO2dCQUdMLFdBQVc7c0JBQTNCLEtBQUs7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTaGVsbENvbmZpZywgTmF2TGluayB9IGZyb20gJy4vLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFQUF9MSU5LUyB9IGZyb20gJy4uLy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHNoYXJlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc2hlbGwtc2lkZWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1zaWRlYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaGVsbFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc2VjdGlvbi1saW5rcycpIHNlY3Rpb25MaW5rc1BhdGggPSAnbWFpbic7XG4gIHB1YmxpYyBzZWN0aW9uTGlua3M6IE9ic2VydmFibGU8TmF2TGlua1tdPiA9IG9mKFtdKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NvbmZpZycpIHNoZWxsQ29uZmlnOiBJU2hlbGxDb25maWcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHB1YmxpYyBhY3RpdmVGcmFnbWVudDogYW55IHwgbnVsbCA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUm91dGVyKSBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIEBJbmplY3QoQWN0aXZhdGVkUm91dGUpIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICAgIEBJbmplY3QoQVBQX0xJTktTKSBwdWJsaWMgbGlua3M6IGFueSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVGcmFnbWVudCA9IHRoaXMucm91dGUuZnJhZ21lbnQucGlwZShzaGFyZSgpKTtcbiAgICB0aGlzLnNlY3Rpb25MaW5rcyA9IHRoaXMubGlua3NbdGhpcy5zZWN0aW9uTGlua3NQYXRoXSBhcyBPYnNlcnZhYmxlPE5hdkxpbmtbXT47XG4gIH1cblxufVxuIiwiPCEtLSBTaWRlYmFyIGNvbXBvbmVudCwgc3dhcCB0aGlzIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNpZGViYXIgaWYgeW91IGxpa2UgLS0+XG48ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgZmxleC1jb2wgaC1mdWxsIG1pbi1oLTAgYmctZ3JheS04MDBcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGgtMTYgZmxleC1zaHJpbmstMCBweC00IGJnLWdyYXktOTAwXCI+XG4gICAgPCEtLSA8aW1nIGNsYXNzPVwiaC04IHctYXV0b1wiIHNyYz1cImh0dHBzOi8vdGFpbHdpbmR1aS5jb20vaW1nL2xvZ29zL3dvcmtmbG93LWxvZ28taW5kaWdvLTUwMC1tYXJrLXdoaXRlLXRleHQuc3ZnXCIgYWx0PVwiV29ya2Zsb3dcIj4gLS0+XG4gICAgPGEgaHJlZj1cIiNcIiBbcm91dGVyTGlua109XCJbJy8nXVwiPjxpbWcgY2xhc3M9XCJhcHAtbG9nb1wiIFtzcmNdPVwic2hlbGxDb25maWc/LmFwcExvZ29cIiBbYWx0XT1cInNoZWxsQ29uZmlnPy5hcHBMb2dvQWx0XCIgLz48L2E+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHQtNCBweC0yIHNpZGViYXJcIj5cbiAgICA8bGliLW5hdi1saW5rcy1saXN0XG4gICAgICBbc2hvdy1pY29uc109XCJ0cnVlXCJcbiAgICAgIFtsaW5rc109XCJzZWN0aW9uTGlua3NcIlxuICAgICAgW2FjdGl2ZS1mcmFnbWVudF09XCJhY3RpdmVGcmFnbWVudFwiXG4gICAgICBbbGluay1jbGFzc109XCInc2lkZWJhciBuYXYtbGluaydcIlxuICAgICAgW2xpbmstYWN0aXZlLWNsYXNzXT1cIidzaWRlYmFyIG5hdi1saW5rLWFjdGl2ZSdcIj5cbiAgICA8L2xpYi1uYXYtbGlua3MtbGlzdD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,80 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { fromEvent } from 'rxjs';
3
+ import { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../../../controls/side-pane/side-pane.component";
8
+ export class FormLayoutComponent {
9
+ constructor(router$) {
10
+ this.router$ = router$;
11
+ this.title = null;
12
+ // 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
+ }
23
+ ngOnInit() {
24
+ if (this.searchInput$?.nativeElement) {
25
+ fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(map((event) => {
26
+ return event.target.value; // Get input value.
27
+ }), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
28
+ // If character length greater than minimumSearchCharacters setting.
29
+ debounceTime(1000), // Time in milliseconds between key events.
30
+ distinctUntilChanged() // If previous query is different from current.
31
+ ).subscribe();
32
+ }
33
+ }
34
+ onSidePaneDeactivated($event) {
35
+ this.onComplete.emit(true);
36
+ }
37
+ emitActionClick(action) {
38
+ this.onAction.emit(action);
39
+ }
40
+ searchActionClick(action, text) {
41
+ this.onSearch.emit(text);
42
+ }
43
+ searchActionType(text) {
44
+ this.onSearch.emit(this.searchInput$?.nativeElement.value);
45
+ }
46
+ routerLinkActionClick(action, relative = false) {
47
+ if (action.outlet) {
48
+ this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);
49
+ }
50
+ else {
51
+ this.router$.navigate([action.link]);
52
+ }
53
+ }
54
+ }
55
+ FormLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: FormLayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
56
+ FormLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", 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\">\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\n <div class=\"form-header-inner\">\n <h3 class=\"form-title\">\n {{ title }}\n </h3>\n <p class=\"form-subtitle\">\n {{ subTitle }}\n </p>\n </div>\n <div class=\"form-header-actions\">\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\" class=\"sr-only\">Search</label>\n <div class=\"search-container\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\n </svg>-->\n </div>\n <input id=\"search\"\n #search\n class=\"form-search-input\"\n [placeholder]=\"searchPlaceholder\"\n type=\"search\"\n name=\"search\"\n (input)=\"searchActionType(search.value)\">\n </div>\n <button type=\"button\"\n href=\"#\"\n class=\"btn-form-view-header-search\"\n [title]=\"action.tooltip\"\n (click)=\"searchActionClick(action, search.value)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"'router-link'\">\n <button type=\"button\"\n href=\"#\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"routerLinkActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button type=\"button\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"emitActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"form-content-container\">\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\n <ng-content></ng-content>\n </div>\n </div>\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\n <router-outlet name=\"formRightPane\"\n (activate)=\"formPane.onSidePaneActivated($event)\"\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i3.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }] });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: FormLayoutComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'lib-form-layout', template: "<div class=\"form-layout-container\">\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\n <div class=\"form-header-inner\">\n <h3 class=\"form-title\">\n {{ title }}\n </h3>\n <p class=\"form-subtitle\">\n {{ subTitle }}\n </p>\n </div>\n <div class=\"form-header-actions\">\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\" class=\"sr-only\">Search</label>\n <div class=\"search-container\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\n </svg>-->\n </div>\n <input id=\"search\"\n #search\n class=\"form-search-input\"\n [placeholder]=\"searchPlaceholder\"\n type=\"search\"\n name=\"search\"\n (input)=\"searchActionType(search.value)\">\n </div>\n <button type=\"button\"\n href=\"#\"\n class=\"btn-form-view-header-search\"\n [title]=\"action.tooltip\"\n (click)=\"searchActionClick(action, search.value)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"'router-link'\">\n <button type=\"button\"\n href=\"#\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"routerLinkActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button type=\"button\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"emitActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"form-content-container\">\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\n <ng-content></ng-content>\n </div>\n </div>\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\n <router-outlet name=\"formRightPane\"\n (activate)=\"formPane.onSidePaneActivated($event)\"\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n</div>\n" }]
60
+ }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { searchInput$: [{
61
+ type: ViewChild,
62
+ args: ['search']
63
+ }], title: [{
64
+ type: Input
65
+ }], searchPlaceholder: [{
66
+ type: Input,
67
+ args: ['search-placeholder']
68
+ }], actions: [{
69
+ type: Input
70
+ }], subTitle: [{
71
+ type: Input,
72
+ args: ['sub-title']
73
+ }], onAction: [{
74
+ type: Output
75
+ }], onSearch: [{
76
+ type: Output
77
+ }], onComplete: [{
78
+ type: Output
79
+ }] } });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QixZQUFvQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQVoxQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUNyQywyQ0FBMkM7UUFDZCxzQkFBaUIsR0FBa0IsV0FBVyxDQUFBO1FBQ2xFLFlBQU8sR0FBd0IsSUFBSSxDQUFDO1FBQzdDLDJDQUEyQztRQUN2QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUNuRCwrQ0FBK0M7UUFDckMsYUFBUSxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzlFLCtDQUErQztRQUNyQyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRW5DLENBQUM7SUFFeEMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUM7WUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7WUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDdkUsb0VBQW9FO1lBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7WUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7YUFDdkUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFrQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBa0IsRUFBRSxJQUFZO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUE4QixFQUFFLFdBQW9CLEtBQUs7UUFDcEYsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxRTthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7O2dIQXJEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix1WUNWaEMsNDRGQW1FQTsyRkR6RGEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQjs2RkFLRSxZQUFZO3NCQUF4QyxTQUFTO3VCQUFDLFFBQVE7Z0JBQ1YsS0FBSztzQkFBYixLQUFLO2dCQUV1QixpQkFBaUI7c0JBQTdDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUNsQixPQUFPO3NCQUFmLEtBQUs7Z0JBRWMsUUFBUTtzQkFBM0IsS0FBSzt1QkFBQyxXQUFXO2dCQUVSLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIGZpbHRlciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWxheW91dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQFZpZXdDaGlsZCgnc2VhcmNoJykgcHJpdmF0ZSBzZWFyY2hJbnB1dCQ/OiBFbGVtZW50UmVmO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdzZWFyY2gtcGxhY2Vob2xkZXInKSBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9ICfOsc69zrHOts6uz4TOt8+DzrcnXG4gIEBJbnB1dCgpIGFjdGlvbnM6IFZpZXdBY3Rpb25bXSB8IG51bGwgPSBudWxsO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc3ViLXRpdGxlJykgc3ViVGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxuICBAT3V0cHV0KCkgb25BY3Rpb246IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld0FjdGlvbj4oKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1vbi1wcmVmaXhcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25Db21wbGV0ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyJDogUm91dGVyKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQpe1xuICAgICAgZnJvbUV2ZW50KHRoaXMuc2VhcmNoSW5wdXQkLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXG4gICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7IC8vIEdldCBpbnB1dCB2YWx1ZS5cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcihpbnB1dFZhbHVlID0+IGlucHV0VmFsdWUubGVuZ3RoID49IDMgfHwgaW5wdXRWYWx1ZS5sZW5ndGggPT09IDApLFxuICAgICAgICAvLyBJZiBjaGFyYWN0ZXIgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBtaW5pbXVtU2VhcmNoQ2hhcmFjdGVycyBzZXR0aW5nLlxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50cy5cbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSAvLyBJZiBwcmV2aW91cyBxdWVyeSBpcyBkaWZmZXJlbnQgZnJvbSBjdXJyZW50LlxuICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNvbXBsZXRlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZW1pdEFjdGlvbkNsaWNrKGFjdGlvbjogVmlld0FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMub25BY3Rpb24uZW1pdChhY3Rpb24pO1xuICB9XG5cbiAgc2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGV4dCk7XG4gIH1cblxuICBzZWFyY2hBY3Rpb25UeXBlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25TZWFyY2guZW1pdCh0aGlzLnNlYXJjaElucHV0JD8ubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcm91dGVyTGlua0FjdGlvbkNsaWNrKGFjdGlvbjogUm91dGVyVmlld0FjdGlvbiB8IGFueSwgcmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoWycnLCB7IG91dGxldHM6IHsgZm9ybVJpZ2h0UGFuZTogYWN0aW9uLmxpbmsgfSB9XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbYWN0aW9uLmxpbmtdKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tbGF5b3V0LWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXJcIiAqbmdJZj1cInRpdGxlIHx8IHN1YlRpdGxlIHx8IGFjdGlvbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXItaW5uZXJcIj5cbiAgICAgIDxoMyBjbGFzcz1cImZvcm0tdGl0bGVcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvaDM+XG4gICAgICA8cCBjbGFzcz1cImZvcm0tc3VidGl0bGVcIj5cbiAgICAgICAge3sgc3ViVGl0bGUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIiBbbmdTd2l0Y2hdPVwiYWN0aW9uLnR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoXCIgY2xhc3M9XCJzci1vbmx5XCI+U2VhcmNoPC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQteS0wIGxlZnQtMCBwbC0zIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDwhLS08c3ZnIGNsYXNzPVwiaC01IHctNVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggNGE0IDQgMCAxMDAgOCA0IDQgMCAwMDAtOHpNMiA4YTYgNiAwIDExMTAuODkgMy40NzZsNC44MTcgNC44MTdhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQuODE2LTQuODE2QTYgNiAwIDAxMiA4elwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4tLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGlucHV0IGlkPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAjc2VhcmNoXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2VhcmNoQWN0aW9uVHlwZShzZWFyY2gudmFsdWUpXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWZvcm0tdmlldy1oZWFkZXItc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uLCBzZWFyY2gudmFsdWUpXCI+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncm91dGVyLWxpbmsnXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMSBidG4tZm9ybS12aWV3LWhlYWRlclwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMSBidG4tZm9ybS12aWV3LWhlYWRlclwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtaXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydmb3JtLWNvbnRlbnQtY29udGFpbmVyLWlubmVyJzogYWN0aW9uc31cIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxsaWItc2lkZS1wYW5lICNmb3JtUGFuZSAob25Db21wbGV0ZSk9XCJvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPlxuICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJmb3JtUmlnaHRQYW5lXCJcbiAgICAgICAgICAgICAgICAgICAoYWN0aXZhdGUpPVwiZm9ybVBhbmUub25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAoZGVhY3RpdmF0ZSk9XCJmb3JtUGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPjwvcm91dGVyLW91dGxldD5cbiAgPC9saWItc2lkZS1wYW5lPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/router";
5
+ import * as i3 from "../view-layout/view-layout.component";
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
+ this.showRightPaneSM = true;
24
+ }
25
+ onSidePaneDeactivated($event) {
26
+ this.showRightPaneSM = false;
27
+ }
28
+ closeSidePane() {
29
+ this.location.back();
30
+ }
31
+ }
32
+ ModelViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModelViewLayoutComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
33
+ ModelViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", 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\">\n <main class=\"model-view-container\">\n <div class=\"model-view-container-inner\">\n <aside class=\"model-view-aside\">\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\n <div class=\"model-view-aside-header-container\">\n <div class=\"model-view-aside-header-container-inner\">\n <ng-content></ng-content>\n </div>\n <!-- menu items -->\n <div class=\"model-view-menu-container\">\n <nav class=\"model-view-menu-nav\">\n <div class=\"model-view-menu-item\">\n <ng-container *ngFor=\"let section of primary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLink]=\"section.link\"\n class=\"view-nav-link\">\n {{section.text}}\n </a>\n </ng-container>\n </div>\n <div class=\"model-view-menu-item-far\">\n <ng-container *ngFor=\"let section of secondary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [routerLink]=\"section.link\"\n class=\"view-nav-link\">\n {{section.text}}\n </a>\n </ng-container>\n </div>\n </nav>\n </div>\n </div>\n </section>\n </aside>\n <div class=\"model-view-details-container\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </main>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i3.ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModelViewLayoutComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'lib-model-view-layout', template: "<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\">\n <main class=\"model-view-container\">\n <div class=\"model-view-container-inner\">\n <aside class=\"model-view-aside\">\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\n <div class=\"model-view-aside-header-container\">\n <div class=\"model-view-aside-header-container-inner\">\n <ng-content></ng-content>\n </div>\n <!-- menu items -->\n <div class=\"model-view-menu-container\">\n <nav class=\"model-view-menu-nav\">\n <div class=\"model-view-menu-item\">\n <ng-container *ngFor=\"let section of primary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLink]=\"section.link\"\n class=\"view-nav-link\">\n {{section.text}}\n </a>\n </ng-container>\n </div>\n <div class=\"model-view-menu-item-far\">\n <ng-container *ngFor=\"let section of secondary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [routerLink]=\"section.link\"\n class=\"view-nav-link\">\n {{section.text}}\n </a>\n </ng-container>\n </div>\n </nav>\n </div>\n </div>\n </section>\n </aside>\n <div class=\"model-view-details-container\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </main>\n" }]
37
+ }], ctorParameters: function () { return [{ type: i1.Location }]; }, propDecorators: { title: [{
38
+ type: Input
39
+ }], primary: [{
40
+ type: Input,
41
+ args: ['primary-links']
42
+ }], secondary: [{
43
+ type: Input,
44
+ args: ['secondary-links']
45
+ }], metaItems: [{
46
+ type: Input,
47
+ args: ['meta-items']
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFBcUIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVZoQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN0QixVQUFLLEdBQUcsVUFBVSxDQUFDO1FBQzVCLDJDQUEyQztRQUNuQixZQUFPLEdBQTRDLElBQUksQ0FBQztRQUNoRiwyQ0FBMkM7UUFDakIsY0FBUyxHQUE0QyxJQUFJLENBQUM7UUFDcEYsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEI7UUFDeEQseUVBQXlFO1NBQzFFLENBQUM7SUFDeUMsQ0FBQztJQUU1QyxRQUFRO0lBQ1IsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE1BQVc7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOztxSEExQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IscU5DVHJDLHV5REEyQ0E7MkZEbENhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFFRSx1QkFBdUI7K0ZBS3hCLEtBQUs7c0JBQWIsS0FBSztnQkFFa0IsT0FBTztzQkFBOUIsS0FBSzt1QkFBQyxlQUFlO2dCQUVJLFNBQVM7c0JBQWxDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVILFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGliLW1vZGVsLXZpZXctbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNb2RlbFZpZXdMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlID0gJ25vIHRpdGxlJztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3ByaW1hcnktbGlua3MnKSBwcmltYXJ5OiB7IHRleHQ6IHN0cmluZywgbGluazogc3RyaW5nIH1bXSB8IG51bGwgPSBudWxsO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc2Vjb25kYXJ5LWxpbmtzJykgc2Vjb25kYXJ5OiB7IHRleHQ6IHN0cmluZywgbGluazogc3RyaW5nIH1bXSB8IG51bGwgPSBudWxsO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXG4gICAgLy8geyBrZXk6ICd0ZXN0JywgaWNvbjogSWNvbnMuQmFkZ2VzLCB0ZXh0OiAnzrLPgc6tzrjOt866zrHOvSAyMDAgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xJyB9XG4gIF07XG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgb25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQ6IGFueSk6IHZvaWQgIHtcbiAgICB0aGlzLnNob3dSaWdodFBhbmVTTSA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgb25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCAge1xuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VTaWRlUGFuZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgfVxufVxuIiwiPGxpYi12aWV3LWxheW91dCBbdGl0bGVdPVwidGl0bGVcIiBbbWV0YS1pdGVtc109XCJtZXRhSXRlbXNcIj5cbiAgPG1haW4gY2xhc3M9XCJtb2RlbC12aWV3LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWNvbnRhaW5lci1pbm5lclwiPlxuICAgICAgPGFzaWRlIGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZVwiPlxuICAgICAgICA8c2VjdGlvbiBhcmlhLWxhYmVsbGVkYnk9XCJtZW51XCIgY2xhc3M9XCJkZXRhaWxzLXZpZXctYXNpZGUtaGVhZGVyLXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZS1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZS1oZWFkZXItY29udGFpbmVyLWlubmVyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPCEtLSBtZW51IGl0ZW1zIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPG5hdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1uYXZcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1tZW51LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgcHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIlsndmlldy1uYXYtbGluay1hY3RpdmUnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInNlY3Rpb24ubGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7c2VjdGlvbi50ZXh0fX1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1pdGVtLWZhclwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJbJ3ZpZXctbmF2LWxpbmstYWN0aXZlJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwic2VjdGlvbi5saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2aWV3LW5hdi1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnRleHR9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9hc2lkZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWRldGFpbHMtY29udGFpbmVyXCI+XG4gICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21haW4+XG4iXX0=
@@ -0,0 +1,98 @@
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: "14.0.0", ngImport: i0, type: SideViewLayoutComponent, deps: [{ token: i1.Location }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
62
+ SideViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", 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\">\n <div class=\"side-view-layout-container\">\n <div class=\"side-view-layout-container-inner\">\n <div class=\"side-view-layout-header-margins\">\n <div class=\"side-view-layout-header-container\">\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\n {{title}}\n </h2>\n <div class=\"side-view-layout-close-button-container\">\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\n <span class=\"sr-only\">Close panel</span>\n <!-- Heroicon name: outline/x -->\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n <div class=\"side-view-layout-content-container\">\n <!-- Replace with your content -->\n <ng-content></ng-content>\n <!-- /End replace -->\n </div>\n </div>\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\n {{cancelLabel}}\n </button>\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\n {{okLabel}}\n </button>\n </div>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: SideViewLayoutComponent, decorators: [{
64
+ type: Component,
65
+ args: [{ selector: 'lib-side-view-layout', template: "<div class=\"side-view-layout-size-box\">\n <div class=\"side-view-layout-container\">\n <div class=\"side-view-layout-container-inner\">\n <div class=\"side-view-layout-header-margins\">\n <div class=\"side-view-layout-header-container\">\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\n {{title}}\n </h2>\n <div class=\"side-view-layout-close-button-container\">\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\n <span class=\"sr-only\">Close panel</span>\n <!-- Heroicon name: outline/x -->\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n <div class=\"side-view-layout-content-container\">\n <!-- Replace with your content -->\n <ng-content></ng-content>\n <!-- /End replace -->\n </div>\n </div>\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\n {{cancelLabel}}\n </button>\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\n {{okLabel}}\n </button>\n </div>\n </div>\n</div>\n\n" }]
66
+ }], ctorParameters: function () { return [{ type: i1.Location }, { type: i2.Router }]; }, propDecorators: { title: [{
67
+ type: Input
68
+ }], showActions: [{
69
+ type: Input
70
+ }], disabled: [{
71
+ type: Input
72
+ }], returnPath: [{
73
+ type: Input,
74
+ args: ['return-path']
75
+ }], okLabel: [{
76
+ type: Input,
77
+ args: ['ok-label']
78
+ }], okShow: [{
79
+ type: Input,
80
+ args: ['ok-show']
81
+ }], closeOnOk: [{
82
+ type: Input,
83
+ args: ['ok-close-dialog']
84
+ }], cancelLabel: [{
85
+ type: Input,
86
+ args: ['cancel-label']
87
+ }], cancelShow: [{
88
+ type: Input,
89
+ args: ['cancel-show']
90
+ }], forceLocationBack: [{
91
+ type: Input,
92
+ args: ['force-location-back']
93
+ }], cancel: [{
94
+ type: Output
95
+ }], ok: [{
96
+ type: Output
97
+ }] } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy92aWV3cy9zaWRlLXZpZXctbGF5b3V0L3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPL0UsTUFBTSxPQUFPLHVCQUF1QjtJQXNCbEMsWUFBb0IsUUFBa0IsRUFBVSxNQUFjO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckJyRCxVQUFLLEdBQWtCLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLDJDQUEyQztRQUN4QixZQUFPLEdBQUcsWUFBWSxDQUFDO1FBQzFDLDJDQUEyQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLDJDQUEyQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLDJDQUEyQztRQUNwQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQywyQ0FBMkM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QywyQ0FBMkM7UUFDYixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDeEQsNkNBQTZDO1FBQ25DLFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxPQUFFLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFUyxDQUFDO0lBRW5FLFFBQVE7SUFDUixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVIO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNEO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDekYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7b0hBeERVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHNlQ1JwQywyb0RBb0NBOzJGRDVCYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0Usc0JBQXNCO29IQUl2QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVnQixVQUFVO3NCQUEvQixLQUFLO3VCQUFDLGFBQWE7Z0JBRUQsT0FBTztzQkFBekIsS0FBSzt1QkFBQyxVQUFVO2dCQUVDLE1BQU07c0JBQXZCLEtBQUs7dUJBQUMsU0FBUztnQkFFVSxTQUFTO3NCQUFsQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFFRCxXQUFXO3NCQUFqQyxLQUFLO3VCQUFDLGNBQWM7Z0JBRUMsVUFBVTtzQkFBL0IsS0FBSzt1QkFBQyxhQUFhO2dCQUVVLGlCQUFpQjtzQkFBOUMsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBRWxCLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxFQUFFO3NCQUFYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc2lkZS12aWV3LWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaWRlVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gJ86gzrvOt8+Bzr/Phs6/z4HOr861z4InO1xuICBASW5wdXQoKSBzaG93QWN0aW9ucyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdyZXR1cm4tcGF0aCcpIHJldHVyblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29rLWxhYmVsJykgb2tMYWJlbCA9ICfOkc+Azr/OuM6uzrrOtc+Fz4POtyc7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdvay1zaG93Jykgb2tTaG93ID0gdHJ1ZTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29rLWNsb3NlLWRpYWxvZycpIGNsb3NlT25PayA9IHRydWU7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjYW5jZWwtbGFiZWwnKSBjYW5jZWxMYWJlbCA9ICfOkc66z43Pgc+Jz4POtyc7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjYW5jZWwtc2hvdycpIGNhbmNlbFNob3cgPSB0cnVlO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnZm9yY2UtbG9jYXRpb24tYmFjaycpIGZvcmNlTG9jYXRpb25CYWNrID0gZmFsc2U7XG4gIC8vIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgY2FuY2VsOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvazogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVNpZGVQYW5lKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJldHVyblBhdGgpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yZXR1cm5QYXRoIHx8ICcvJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoKHRoaXMucm91dGVyLnVybC5zcGxpdCgnLygnKVswXSAhPT0gdGhpcy5yb3V0ZXIudXJsKSAmJiAhdGhpcy5mb3JjZUxvY2F0aW9uQmFjaykge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVyLnVybC5zcGxpdCgnLygnKVswXSk7XG4gICAgICB9IGVsc2UgaWYgKCh0aGlzLnJvdXRlci51cmwuc3BsaXQoJygnKVswXSAhPT0gdGhpcy5yb3V0ZXIudXJsKSAmJiAhdGhpcy5mb3JjZUxvY2F0aW9uQmFjaykge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVyLnVybC5zcGxpdCgnKCcpWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5jbG9zZVNpZGVQYW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcbiAgICB0aGlzLmNsb3NlU2lkZVBhbmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0T0soKTogdm9pZCB7XG4gICAgdGhpcy5vay5lbWl0KHRydWUpO1xuICAgIGlmICh0aGlzLmNsb3NlT25Paykge1xuICAgICAgdGhpcy5jbG9zZVNpZGVQYW5lKCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LXNpemUtYm94XCI+XG4gIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNvbnRhaW5lci1pbm5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtaGVhZGVyLW1hcmdpbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtaGVhZGVyLXRpdGxlXCIgaWQ9XCJzbGlkZS1vdmVyLXRpdGxlXCI+XG4gICAgICAgICAgICB7e3RpdGxlfX1cbiAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNsb3NlLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImVtaXRDbG9zZSgpXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNsb3NlLWJ1dHRvblwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5DbG9zZSBwYW5lbDwvc3Bhbj5cbiAgICAgICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBvdXRsaW5lL3ggLS0+XG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNsb3NlLWJ1dHRvbi1pY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtY29udGVudC1jb250YWluZXJcIj5cbiAgICAgICAgPCEtLSBSZXBsYWNlIHdpdGggeW91ciBjb250ZW50IC0tPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwhLS0gL0VuZCByZXBsYWNlIC0tPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dBY3Rpb25zXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwiY2FuY2VsU2hvd1wiIChjbGljayk9XCJlbWl0Q2FuY2VsKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWFjdGlvbi1idXR0b24tY2FuY2VsXCI+XG4gICAgICAgIHt7Y2FuY2VsTGFiZWx9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwib2tTaG93XCIgKGNsaWNrKT1cImVtaXRPSygpXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWFjdGlvbi1idXR0b24tc3VibWl0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgIHt7b2tMYWJlbH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19