@indice/ng-components 0.2.32 → 0.2.33

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 (111) hide show
  1. package/README.md +4 -4
  2. package/_styles.css +3457 -3457
  3. package/bundles/indice-ng-components.umd.js +3204 -3198
  4. package/bundles/indice-ng-components.umd.js.map +1 -1
  5. package/esm2015/indice-ng-components.js +6 -6
  6. package/esm2015/lib/controls/avatar-initials/avatar-initials.component.js +47 -47
  7. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +20 -20
  8. package/esm2015/lib/controls/date-picker/date-picker.component.js +217 -217
  9. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +62 -62
  10. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +32 -32
  11. package/esm2015/lib/controls/list-view/list-column.component.js +19 -19
  12. package/esm2015/lib/controls/list-view/list-details-section.component.js +14 -14
  13. package/esm2015/lib/controls/list-view/list-tile.component.js +14 -14
  14. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +25 -25
  15. package/esm2015/lib/controls/list-view/list-view.component.js +133 -133
  16. package/esm2015/lib/controls/pager/pager.component.js +114 -114
  17. package/esm2015/lib/controls/side-pane/side-pane.component.js +71 -71
  18. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +25 -25
  19. package/esm2015/lib/controls/toaster/toaster-container.component.js +28 -28
  20. package/esm2015/lib/controls/toaster/toaster.component.js +29 -29
  21. package/esm2015/lib/controls/toggle/toggle.component.js +56 -56
  22. package/esm2015/lib/directives/click-outside.directive.js +181 -181
  23. package/esm2015/lib/directives/dynamic-component-host.directive.js +17 -17
  24. package/esm2015/lib/helpers/base-list.component.js +182 -182
  25. package/esm2015/lib/icons.js +30 -30
  26. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +17 -17
  27. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +98 -98
  28. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +92 -92
  29. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +72 -72
  30. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +47 -47
  31. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +73 -73
  32. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +87 -87
  33. package/esm2015/lib/ng-components.module.js +133 -133
  34. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +74 -74
  35. package/esm2015/lib/pages/auth/auth-renew/auth-renew.component.js +25 -25
  36. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +26 -26
  37. package/esm2015/lib/pages/http-status/error/error.component.js +15 -15
  38. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +14 -14
  39. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +22 -22
  40. package/esm2015/lib/pipes/address.pipe.js +17 -17
  41. package/esm2015/lib/pipes/duration-format.pipe.js +60 -60
  42. package/esm2015/lib/services/component-loader/component-loader-options.class.js +8 -8
  43. package/esm2015/lib/services/component-loader/component-loader.class.js +192 -192
  44. package/esm2015/lib/services/component-loader/component-loader.factory.js +35 -35
  45. package/esm2015/lib/services/component-loader/content-ref.class.js +13 -13
  46. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +44 -44
  47. package/esm2015/lib/services/modal-service/modal-container-component.js +117 -117
  48. package/esm2015/lib/services/modal-service/modal-options.class.js +31 -31
  49. package/esm2015/lib/services/modal-service/modal-service.js +214 -214
  50. package/esm2015/lib/services/modal-service/modal-styles.class.js +11 -11
  51. package/esm2015/lib/services/modal-service/modal.class.js +24 -24
  52. package/esm2015/lib/services/toaster.service.js +23 -23
  53. package/esm2015/lib/tokens.js +4 -4
  54. package/esm2015/lib/types.js +104 -104
  55. package/esm2015/public-api.js +53 -53
  56. package/fesm2015/indice-ng-components.js +2758 -2758
  57. package/fesm2015/indice-ng-components.js.map +1 -1
  58. package/indice-ng-components.d.ts +6 -6
  59. package/indice-ng-components.metadata.json +1 -1
  60. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +11 -11
  61. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +7 -7
  62. package/lib/controls/date-picker/date-picker.component.d.ts +43 -43
  63. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +22 -22
  64. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +10 -10
  65. package/lib/controls/list-view/list-column.component.d.ts +6 -6
  66. package/lib/controls/list-view/list-details-section.component.d.ts +4 -4
  67. package/lib/controls/list-view/list-tile.component.d.ts +4 -4
  68. package/lib/controls/list-view/list-view-empty-state.component.d.ts +8 -8
  69. package/lib/controls/list-view/list-view.component.d.ts +50 -50
  70. package/lib/controls/pager/pager.component.d.ts +32 -32
  71. package/lib/controls/side-pane/side-pane.component.d.ts +15 -15
  72. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +8 -8
  73. package/lib/controls/toaster/toaster-container.component.d.ts +10 -10
  74. package/lib/controls/toaster/toaster.component.d.ts +12 -12
  75. package/lib/controls/toggle/toggle.component.d.ts +16 -16
  76. package/lib/directives/click-outside.directive.d.ts +37 -37
  77. package/lib/directives/dynamic-component-host.directive.d.ts +6 -6
  78. package/lib/helpers/base-list.component.d.ts +39 -39
  79. package/lib/icons.d.ts +28 -28
  80. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +5 -5
  81. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +33 -33
  82. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +23 -23
  83. package/lib/layouts/views/form-layout/form-layout.component.d.ts +21 -21
  84. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +22 -22
  85. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +24 -24
  86. package/lib/layouts/views/view-layout/view-layout.component.d.ts +27 -27
  87. package/lib/ng-components.module.d.ts +7 -7
  88. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +11 -11
  89. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +9 -9
  90. package/lib/pages/auth/logged-out/logged-out.component.d.ts +9 -9
  91. package/lib/pages/http-status/error/error.component.d.ts +5 -5
  92. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +5 -5
  93. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +8 -8
  94. package/lib/pipes/address.pipe.d.ts +5 -5
  95. package/lib/pipes/duration-format.pipe.d.ts +5 -5
  96. package/lib/services/component-loader/component-loader-options.class.d.ts +30 -30
  97. package/lib/services/component-loader/component-loader.class.d.ts +92 -92
  98. package/lib/services/component-loader/component-loader.factory.d.ts +21 -21
  99. package/lib/services/component-loader/content-ref.class.d.ts +12 -12
  100. package/lib/services/modal-service/modal-backdrop-component.d.ts +17 -17
  101. package/lib/services/modal-service/modal-container-component.d.ts +30 -30
  102. package/lib/services/modal-service/modal-options.class.d.ts +77 -77
  103. package/lib/services/modal-service/modal-service.d.ts +55 -55
  104. package/lib/services/modal-service/modal-styles.class.d.ts +10 -10
  105. package/lib/services/modal-service/modal.class.d.ts +40 -40
  106. package/lib/services/toaster.service.d.ts +8 -8
  107. package/lib/tokens.d.ts +4 -4
  108. package/lib/types.d.ts +124 -124
  109. package/modal.css +157 -157
  110. package/package.json +1 -1
  111. package/public-api.d.ts +41 -41
@@ -1,72 +1,72 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { fromEvent } from 'rxjs';
4
- import { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
- export class FormLayoutComponent {
6
- constructor(router$) {
7
- this.router$ = router$;
8
- this.title = null;
9
- // tslint:disable-next-line:no-input-rename
10
- this.searchPlaceholder = 'αναζήτηση';
11
- this.actions = null;
12
- // tslint:disable-next-line:no-input-rename
13
- this.subTitle = null;
14
- // tslint:disable-next-line:no-output-on-prefix
15
- this.onAction = new EventEmitter();
16
- // tslint:disable-next-line:no-output-on-prefix
17
- this.onSearch = new EventEmitter();
18
- this.onComplete = new EventEmitter();
19
- }
20
- ngOnInit() {
21
- }
22
- onSidePaneDeactivated($event) {
23
- this.onComplete.emit(true);
24
- }
25
- emitActionClick(action) {
26
- this.onAction.emit(action);
27
- }
28
- searchActionClick(action, text) {
29
- this.onSearch.emit(text);
30
- }
31
- searchActionType(text) {
32
- var _a;
33
- fromEvent((_a = this.searchInput$) === null || _a === void 0 ? void 0 : _a.nativeElement, 'keyup').pipe(map((event) => {
34
- return event.target.value; // Get input value.
35
- }), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
36
- // If character length greater than minimumSearchCharacters setting.
37
- debounceTime(1000), // Time in milliseconds between key events.
38
- distinctUntilChanged() // If previous query is different from current.
39
- ).subscribe(_ => {
40
- var _a;
41
- this.onSearch.emit((_a = this.searchInput$) === null || _a === void 0 ? void 0 : _a.nativeElement.value);
42
- });
43
- }
44
- routerLinkActionClick(action, relative = false) {
45
- if (action.outlet) {
46
- this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);
47
- }
48
- else {
49
- this.router$.navigate([action.link]);
50
- }
51
- }
52
- }
53
- FormLayoutComponent.decorators = [
54
- { type: Component, args: [{
55
- selector: 'lib-form-layout',
56
- template: "<div class=\"form-layout-container\">\n <div class=\"form-header\">\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\"\n [ngSwitch]=\"action.type\">\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\"\n 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 class=\"form-content-container-inner\">\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"
57
- },] }
58
- ];
59
- FormLayoutComponent.ctorParameters = () => [
60
- { type: Router }
61
- ];
62
- FormLayoutComponent.propDecorators = {
63
- searchInput$: [{ type: ViewChild, args: ['search',] }],
64
- title: [{ type: Input }],
65
- searchPlaceholder: [{ type: Input, args: ['search-placeholder',] }],
66
- actions: [{ type: Input }],
67
- subTitle: [{ type: Input, args: ['sub-title',] }],
68
- onAction: [{ type: Output }],
69
- onSearch: [{ type: Output }],
70
- onComplete: [{ type: Output }]
71
- };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT2pGLE1BQU0sT0FBTyxtQkFBbUI7SUFlOUIsWUFBb0IsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFaMUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDckMsMkNBQTJDO1FBQ2Qsc0JBQWlCLEdBQWtCLFdBQVcsQ0FBQTtRQUNsRSxZQUFPLEdBQXdCLElBQUksQ0FBQztRQUM3QywyQ0FBMkM7UUFDdkIsYUFBUSxHQUFrQixJQUFJLENBQUM7UUFDbkQsK0NBQStDO1FBQ3JDLGFBQVEsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUM5RSwrQ0FBK0M7UUFDckMsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVELGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVuQyxDQUFDO0lBRXhDLFFBQVE7SUFDUixDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBVztRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZSxDQUFDLE1BQWtCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFrQixFQUFFLElBQVk7UUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7O1FBQzNCLFNBQVMsQ0FBQyxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7UUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDdkUsb0VBQW9FO1FBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7UUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7U0FDdkUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBOEIsRUFBRSxXQUFvQixLQUFLO1FBQ3BGLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDMUU7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7WUF4REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHE0RkFBMkM7YUFDNUM7OztZQVJRLE1BQU07OzsyQkFXWixTQUFTLFNBQUMsUUFBUTtvQkFDbEIsS0FBSztnQ0FFTCxLQUFLLFNBQUMsb0JBQW9CO3NCQUMxQixLQUFLO3VCQUVMLEtBQUssU0FBQyxXQUFXO3VCQUVqQixNQUFNO3VCQUVOLE1BQU07eUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBmaWx0ZXIsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSb3V0ZXJWaWV3QWN0aW9uLCBWaWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1MYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc2VhcmNoLXBsYWNlaG9sZGVyJykgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnzrHOvc6xzrbOrs+EzrfPg863J1xuICBASW5wdXQoKSBhY3Rpb25zOiBWaWV3QWN0aW9uW10gfCBudWxsID0gbnVsbDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3N1Yi10aXRsZScpIHN1YlRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1vbi1wcmVmaXhcbiAgQE91dHB1dCgpIG9uQWN0aW9uOiBFdmVudEVtaXR0ZXI8Vmlld0FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+KCk7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XG4gIEBPdXRwdXQoKSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9uQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlciQ6IFJvdXRlcikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgb25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCAge1xuICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIGVtaXRBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLm9uQWN0aW9uLmVtaXQoYWN0aW9uKTtcbiAgfVxuXG4gIHNlYXJjaEFjdGlvbkNsaWNrKGFjdGlvbjogVmlld0FjdGlvbiwgdGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHRleHQpO1xuICB9XG5cbiAgc2VhcmNoQWN0aW9uVHlwZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXG4gICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LnRhcmdldC52YWx1ZTsgLy8gR2V0IGlucHV0IHZhbHVlLlxuICAgICAgfSksXG4gICAgICBmaWx0ZXIoaW5wdXRWYWx1ZSA9PiBpbnB1dFZhbHVlLmxlbmd0aCA+PSAzIHx8IGlucHV0VmFsdWUubGVuZ3RoID09PSAwKSxcbiAgICAgIC8vIElmIGNoYXJhY3RlciBsZW5ndGggZ3JlYXRlciB0aGFuIG1pbmltdW1TZWFyY2hDaGFyYWN0ZXJzIHNldHRpbmcuXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50cy5cbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudC5cbiAgICApLnN1YnNjcmliZShfID0+IHtcbiAgICAgIHRoaXMub25TZWFyY2guZW1pdCh0aGlzLnNlYXJjaElucHV0JD8ubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcm91dGVyTGlua0FjdGlvbkNsaWNrKGFjdGlvbjogUm91dGVyVmlld0FjdGlvbiB8IGFueSwgcmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoWycnLCB7IG91dGxldHM6IHsgZm9ybVJpZ2h0UGFuZTogYWN0aW9uLmxpbmsgfSB9XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbYWN0aW9uLmxpbmtdKTtcbiAgICB9XG4gIH1cblxufVxuIl19
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { fromEvent } from 'rxjs';
4
+ import { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
+ export class FormLayoutComponent {
6
+ constructor(router$) {
7
+ this.router$ = router$;
8
+ this.title = null;
9
+ // tslint:disable-next-line:no-input-rename
10
+ this.searchPlaceholder = 'αναζήτηση';
11
+ this.actions = null;
12
+ // tslint:disable-next-line:no-input-rename
13
+ this.subTitle = null;
14
+ // tslint:disable-next-line:no-output-on-prefix
15
+ this.onAction = new EventEmitter();
16
+ // tslint:disable-next-line:no-output-on-prefix
17
+ this.onSearch = new EventEmitter();
18
+ this.onComplete = new EventEmitter();
19
+ }
20
+ ngOnInit() {
21
+ }
22
+ onSidePaneDeactivated($event) {
23
+ this.onComplete.emit(true);
24
+ }
25
+ emitActionClick(action) {
26
+ this.onAction.emit(action);
27
+ }
28
+ searchActionClick(action, text) {
29
+ this.onSearch.emit(text);
30
+ }
31
+ searchActionType(text) {
32
+ var _a;
33
+ fromEvent((_a = this.searchInput$) === null || _a === void 0 ? void 0 : _a.nativeElement, 'keyup').pipe(map((event) => {
34
+ return event.target.value; // Get input value.
35
+ }), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
36
+ // If character length greater than minimumSearchCharacters setting.
37
+ debounceTime(1000), // Time in milliseconds between key events.
38
+ distinctUntilChanged() // If previous query is different from current.
39
+ ).subscribe(_ => {
40
+ var _a;
41
+ this.onSearch.emit((_a = this.searchInput$) === null || _a === void 0 ? void 0 : _a.nativeElement.value);
42
+ });
43
+ }
44
+ routerLinkActionClick(action, relative = false) {
45
+ if (action.outlet) {
46
+ this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);
47
+ }
48
+ else {
49
+ this.router$.navigate([action.link]);
50
+ }
51
+ }
52
+ }
53
+ FormLayoutComponent.decorators = [
54
+ { type: Component, args: [{
55
+ selector: 'lib-form-layout',
56
+ template: "<div class=\"form-layout-container\">\r\n <div class=\"form-header\">\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">\r\n {{ title }}\r\n </h3>\r\n <p class=\"form-subtitle\">\r\n {{ subTitle }}\r\n </p>\r\n </div>\r\n <div class=\"form-header-actions\">\r\n <ng-container *ngFor=\"let action of actions\"\r\n [ngSwitch]=\"action.type\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"form-search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\">\r\n </div>\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"btn-form-view-header-search\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"form-content-container\">\r\n <div class=\"form-content-container-inner\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\r\n <router-outlet name=\"formRightPane\"\r\n (activate)=\"formPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n</div>\r\n"
57
+ },] }
58
+ ];
59
+ FormLayoutComponent.ctorParameters = () => [
60
+ { type: Router }
61
+ ];
62
+ FormLayoutComponent.propDecorators = {
63
+ searchInput$: [{ type: ViewChild, args: ['search',] }],
64
+ title: [{ type: Input }],
65
+ searchPlaceholder: [{ type: Input, args: ['search-placeholder',] }],
66
+ actions: [{ type: Input }],
67
+ subTitle: [{ type: Input, args: ['sub-title',] }],
68
+ onAction: [{ type: Output }],
69
+ onSearch: [{ type: Output }],
70
+ onComplete: [{ type: Output }]
71
+ };
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT2pGLE1BQU0sT0FBTyxtQkFBbUI7SUFlOUIsWUFBb0IsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFaMUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDckMsMkNBQTJDO1FBQ2Qsc0JBQWlCLEdBQWtCLFdBQVcsQ0FBQTtRQUNsRSxZQUFPLEdBQXdCLElBQUksQ0FBQztRQUM3QywyQ0FBMkM7UUFDdkIsYUFBUSxHQUFrQixJQUFJLENBQUM7UUFDbkQsK0NBQStDO1FBQ3JDLGFBQVEsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUM5RSwrQ0FBK0M7UUFDckMsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVELGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVuQyxDQUFDO0lBRXhDLFFBQVE7SUFDUixDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBVztRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZSxDQUFDLE1BQWtCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFrQixFQUFFLElBQVk7UUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7O1FBQzNCLFNBQVMsQ0FBQyxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7UUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDdkUsb0VBQW9FO1FBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7UUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7U0FDdkUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBOEIsRUFBRSxXQUFvQixLQUFLO1FBQ3BGLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDMUU7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7WUF4REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLCtnR0FBMkM7YUFDNUM7OztZQVJRLE1BQU07OzsyQkFXWixTQUFTLFNBQUMsUUFBUTtvQkFDbEIsS0FBSztnQ0FFTCxLQUFLLFNBQUMsb0JBQW9CO3NCQUMxQixLQUFLO3VCQUVMLEtBQUssU0FBQyxXQUFXO3VCQUVqQixNQUFNO3VCQUVOLE1BQU07eUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBmaWx0ZXIsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2VhcmNoLXBsYWNlaG9sZGVyJykgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnzrHOvc6xzrbOrs+EzrfPg863J1xyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IFZpZXdBY3Rpb25bXSB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3N1Yi10aXRsZScpIHN1YlRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFjdGlvbjogRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPigpO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvbkNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyJDogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCAge1xyXG4gICAgdGhpcy5vbkNvbXBsZXRlLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1pdEFjdGlvbkNsaWNrKGFjdGlvbjogVmlld0FjdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5vbkFjdGlvbi5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24sIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHRleHQpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uVHlwZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGZyb21FdmVudCh0aGlzLnNlYXJjaElucHV0JD8ubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgbWFwKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGV2ZW50LnRhcmdldC52YWx1ZTsgLy8gR2V0IGlucHV0IHZhbHVlLlxyXG4gICAgICB9KSxcclxuICAgICAgZmlsdGVyKGlucHV0VmFsdWUgPT4gaW5wdXRWYWx1ZS5sZW5ndGggPj0gMyB8fCBpbnB1dFZhbHVlLmxlbmd0aCA9PT0gMCksXHJcbiAgICAgIC8vIElmIGNoYXJhY3RlciBsZW5ndGggZ3JlYXRlciB0aGFuIG1pbmltdW1TZWFyY2hDaGFyYWN0ZXJzIHNldHRpbmcuXHJcbiAgICAgIGRlYm91bmNlVGltZSgxMDAwKSwgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzLlxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpIC8vIElmIHByZXZpb3VzIHF1ZXJ5IGlzIGRpZmZlcmVudCBmcm9tIGN1cnJlbnQuXHJcbiAgICApLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KHRoaXMuc2VhcmNoSW5wdXQkPy5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb246IFJvdXRlclZpZXdBY3Rpb24gfCBhbnksIHJlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XHJcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbJycsIHsgb3V0bGV0czogeyBmb3JtUmlnaHRQYW5lOiBhY3Rpb24ubGluayB9IH1dKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbYWN0aW9uLmxpbmtdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,47 +1,47 @@
1
- import { Component, Input } from '@angular/core';
2
- import { Location } from '@angular/common';
3
- export class ModelViewLayoutComponent {
4
- constructor(location) {
5
- this.location = location;
6
- this.showRightPaneSM = false;
7
- this.title = 'no title';
8
- // tslint:disable-next-line:no-input-rename
9
- this.primary = null;
10
- // tslint:disable-next-line:no-input-rename
11
- this.secondary = null;
12
- // tslint:disable-next-line:no-input-rename
13
- this.metaItems = [
14
- // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }
15
- ];
16
- }
17
- ngOnInit() {
18
- }
19
- onSidePaneActivated($event) {
20
- //console.log('onSidePaneActivated', $event);
21
- this.showRightPaneSM = true;
22
- }
23
- onSidePaneDeactivated($event) {
24
- //console.log('onSidePaneActivated', $event);
25
- this.showRightPaneSM = false;
26
- }
27
- closeSidePane() {
28
- this.location.back();
29
- }
30
- }
31
- ModelViewLayoutComponent.decorators = [
32
- { type: Component, args: [{
33
- // tslint:disable-next-line:component-selector
34
- selector: 'lib-model-view-layout',
35
- 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"
36
- },] }
37
- ];
38
- ModelViewLayoutComponent.ctorParameters = () => [
39
- { type: Location }
40
- ];
41
- ModelViewLayoutComponent.propDecorators = {
42
- title: [{ type: Input }],
43
- primary: [{ type: Input, args: ['primary-links',] }],
44
- secondary: [{ type: Input, args: ['secondary-links',] }],
45
- metaItems: [{ type: Input, args: ['meta-items',] }]
46
- };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVEzQyxNQUFNLE9BQU8sd0JBQXdCO0lBV25DLFlBQXFCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFWaEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDdEIsVUFBSyxHQUFHLFVBQVUsQ0FBQztRQUM1QiwyQ0FBMkM7UUFDbkIsWUFBTyxHQUE0QyxJQUFJLENBQUM7UUFDaEYsMkNBQTJDO1FBQ2pCLGNBQVMsR0FBNEMsSUFBSSxDQUFDO1FBQ3BGLDJDQUEyQztRQUN0QixjQUFTLEdBQTRCO1FBQ3hELHlFQUF5RTtTQUMxRSxDQUFDO0lBQ3lDLENBQUM7SUFFNUMsUUFBUTtJQUNSLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxNQUFXO1FBQ3BDLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBVztRQUN0Qyw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7WUFqQ0YsU0FBUyxTQUFDO2dCQUNULDhDQUE4QztnQkFDOUMsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsaXpEQUFpRDthQUNsRDs7O1lBUFEsUUFBUTs7O29CQVVkLEtBQUs7c0JBRUwsS0FBSyxTQUFDLGVBQWU7d0JBRXJCLEtBQUssU0FBQyxpQkFBaUI7d0JBRXZCLEtBQUssU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIZWFkZXJNZXRhSXRlbSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWItbW9kZWwtdmlldy1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBzaG93UmlnaHRQYW5lU00gPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGUgPSAnbm8gdGl0bGUnO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgncHJpbWFyeS1saW5rcycpIHByaW1hcnk6IHsgdGV4dDogc3RyaW5nLCBsaW5rOiBzdHJpbmcgfVtdIHwgbnVsbCA9IG51bGw7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdzZWNvbmRhcnktbGlua3MnKSBzZWNvbmRhcnk6IHsgdGV4dDogc3RyaW5nLCBsaW5rOiBzdHJpbmcgfVtdIHwgbnVsbCA9IG51bGw7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdtZXRhLWl0ZW1zJykgbWV0YUl0ZW1zOiBIZWFkZXJNZXRhSXRlbVtdIHwgbnVsbCA9IFtcbiAgICAvLyB7IGtleTogJ3Rlc3QnLCBpY29uOiBJY29ucy5CYWRnZXMsIHRleHQ6ICfOss+Bzq3OuM63zrrOsc69IDIwMCDOsc+Azr/PhM61zrvOrc+DzrzOsc+EzrEnIH1cbiAgXTtcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBvblNpZGVQYW5lQWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCAge1xuICAgIC8vY29uc29sZS5sb2coJ29uU2lkZVBhbmVBY3RpdmF0ZWQnLCAkZXZlbnQpO1xuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7XG4gICAgLy9jb25zb2xlLmxvZygnb25TaWRlUGFuZUFjdGl2YXRlZCcsICRldmVudCk7XG4gICAgdGhpcy5zaG93UmlnaHRQYW5lU00gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVNpZGVQYW5lKCk6IHZvaWQge1xuICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICB9XG59XG4iXX0=
1
+ import { Component, Input } from '@angular/core';
2
+ import { Location } from '@angular/common';
3
+ export class ModelViewLayoutComponent {
4
+ constructor(location) {
5
+ this.location = location;
6
+ this.showRightPaneSM = false;
7
+ this.title = 'no title';
8
+ // tslint:disable-next-line:no-input-rename
9
+ this.primary = null;
10
+ // tslint:disable-next-line:no-input-rename
11
+ this.secondary = null;
12
+ // tslint:disable-next-line:no-input-rename
13
+ this.metaItems = [
14
+ // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }
15
+ ];
16
+ }
17
+ ngOnInit() {
18
+ }
19
+ onSidePaneActivated($event) {
20
+ //console.log('onSidePaneActivated', $event);
21
+ this.showRightPaneSM = true;
22
+ }
23
+ onSidePaneDeactivated($event) {
24
+ //console.log('onSidePaneActivated', $event);
25
+ this.showRightPaneSM = false;
26
+ }
27
+ closeSidePane() {
28
+ this.location.back();
29
+ }
30
+ }
31
+ ModelViewLayoutComponent.decorators = [
32
+ { type: Component, args: [{
33
+ // tslint:disable-next-line:component-selector
34
+ selector: 'lib-model-view-layout',
35
+ template: "<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\">\r\n <main class=\"model-view-container\">\r\n <div class=\"model-view-container-inner\">\r\n <aside class=\"model-view-aside\">\r\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\r\n <div class=\"model-view-aside-header-container\">\r\n <div class=\"model-view-aside-header-container-inner\">\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container\">\r\n <nav class=\"model-view-menu-nav\">\r\n <div class=\"model-view-menu-item\">\r\n <ng-container *ngFor=\"let section of primary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"model-view-menu-item-far\">\r\n <ng-container *ngFor=\"let section of secondary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </nav>\r\n </div>\r\n </div>\r\n </section>\r\n </aside>\r\n <div class=\"model-view-details-container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </main>\r\n"
36
+ },] }
37
+ ];
38
+ ModelViewLayoutComponent.ctorParameters = () => [
39
+ { type: Location }
40
+ ];
41
+ ModelViewLayoutComponent.propDecorators = {
42
+ title: [{ type: Input }],
43
+ primary: [{ type: Input, args: ['primary-links',] }],
44
+ secondary: [{ type: Input, args: ['secondary-links',] }],
45
+ metaItems: [{ type: Input, args: ['meta-items',] }]
46
+ };
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVEzQyxNQUFNLE9BQU8sd0JBQXdCO0lBV25DLFlBQXFCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFWaEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDdEIsVUFBSyxHQUFHLFVBQVUsQ0FBQztRQUM1QiwyQ0FBMkM7UUFDbkIsWUFBTyxHQUE0QyxJQUFJLENBQUM7UUFDaEYsMkNBQTJDO1FBQ2pCLGNBQVMsR0FBNEMsSUFBSSxDQUFDO1FBQ3BGLDJDQUEyQztRQUN0QixjQUFTLEdBQTRCO1FBQ3hELHlFQUF5RTtTQUMxRSxDQUFDO0lBQ3lDLENBQUM7SUFFNUMsUUFBUTtJQUNSLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxNQUFXO1FBQ3BDLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBVztRQUN0Qyw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7WUFqQ0YsU0FBUyxTQUFDO2dCQUNULDhDQUE4QztnQkFDOUMsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsdTREQUFpRDthQUNsRDs7O1lBUFEsUUFBUTs7O29CQVVkLEtBQUs7c0JBRUwsS0FBSyxTQUFDLGVBQWU7d0JBRXJCLEtBQUssU0FBQyxpQkFBaUI7d0JBRXZCLEtBQUssU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kZWwtdmlldy1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC12aWV3LWxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGVsVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJ25vIHRpdGxlJztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdwcmltYXJ5LWxpbmtzJykgcHJpbWFyeTogeyB0ZXh0OiBzdHJpbmcsIGxpbms6IHN0cmluZyB9W10gfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzZWNvbmRhcnktbGlua3MnKSBzZWNvbmRhcnk6IHsgdGV4dDogc3RyaW5nLCBsaW5rOiBzdHJpbmcgfVtdIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXHJcbiAgICAvLyB7IGtleTogJ3Rlc3QnLCBpY29uOiBJY29ucy5CYWRnZXMsIHRleHQ6ICfOss+Bzq3OuM63zrrOsc69IDIwMCDOsc+Azr/PhM61zrvOrc+DzrzOsc+EzrEnIH1cclxuICBdO1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2lkZVBhbmVBY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdvblNpZGVQYW5lQWN0aXZhdGVkJywgJGV2ZW50KTtcclxuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdvblNpZGVQYW5lQWN0aXZhdGVkJywgJGV2ZW50KTtcclxuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VTaWRlUGFuZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,73 +1,73 @@
1
- import { Router } from '@angular/router';
2
- import { Component, Input, Output, EventEmitter } from '@angular/core';
3
- import { Location } from '@angular/common';
4
- export class SideViewLayoutComponent {
5
- constructor(location, router) {
6
- this.location = location;
7
- this.router = router;
8
- this.title = 'Πληροφορίες';
9
- this.showActions = true;
10
- this.disabled = false;
11
- // tslint:disable-next-line:no-input-rename
12
- this.okLabel = 'Αποθήκευση';
13
- // tslint:disable-next-line:no-input-rename
14
- this.okShow = true;
15
- // tslint:disable-next-line:no-input-rename
16
- this.closeOnOk = true;
17
- // tslint:disable-next-line:no-input-rename
18
- this.cancelLabel = 'Ακύρωση';
19
- // tslint:disable-next-line:no-input-rename
20
- this.cancelShow = true;
21
- // @Output() close = new EventEmitter<any>();
22
- this.cancel = new EventEmitter();
23
- this.ok = new EventEmitter();
24
- }
25
- ngOnInit() {
26
- }
27
- closeSidePane() {
28
- if (this.returnPath) {
29
- this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));
30
- }
31
- else {
32
- this.location.back();
33
- }
34
- }
35
- emitClose() {
36
- this.cancel.emit(false);
37
- this.closeSidePane();
38
- }
39
- emitCancel() {
40
- this.cancel.emit(false);
41
- this.closeSidePane();
42
- }
43
- emitOK() {
44
- this.ok.emit(true);
45
- if (this.closeOnOk) {
46
- this.closeSidePane();
47
- }
48
- }
49
- }
50
- SideViewLayoutComponent.decorators = [
51
- { type: Component, args: [{
52
- selector: 'lib-side-view-layout',
53
- 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\">\n {{cancelLabel}}\n </button>\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-default\" [disabled]=\"disabled\">\n {{okLabel}}\n </button>\n </div>\n </div>\n</div>\n\n"
54
- },] }
55
- ];
56
- SideViewLayoutComponent.ctorParameters = () => [
57
- { type: Location },
58
- { type: Router }
59
- ];
60
- SideViewLayoutComponent.propDecorators = {
61
- title: [{ type: Input }],
62
- showActions: [{ type: Input }],
63
- disabled: [{ type: Input }],
64
- returnPath: [{ type: Input, args: ['return-path',] }],
65
- okLabel: [{ type: Input, args: ['ok-label',] }],
66
- okShow: [{ type: Input, args: ['ok-show',] }],
67
- closeOnOk: [{ type: Input, args: ['ok-close-dialog',] }],
68
- cancelLabel: [{ type: Input, args: ['cancel-label',] }],
69
- cancelShow: [{ type: Input, args: ['cancel-show',] }],
70
- cancel: [{ type: Output }],
71
- ok: [{ type: Output }]
72
- };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy92aWV3cy9zaWRlLXZpZXctbGF5b3V0L3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU0zQyxNQUFNLE9BQU8sdUJBQXVCO0lBb0JsQyxZQUFvQixRQUFrQixFQUFVLE1BQWM7UUFBMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFuQnJELFVBQUssR0FBa0IsYUFBYSxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHMUIsMkNBQTJDO1FBQ3hCLFlBQU8sR0FBRyxZQUFZLENBQUM7UUFDMUMsMkNBQTJDO1FBQ3pCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDaEMsMkNBQTJDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDM0MsMkNBQTJDO1FBQ3BCLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQy9DLDJDQUEyQztRQUNyQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLDZDQUE2QztRQUNuQyxXQUFNLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsT0FBRSxHQUEyQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRVEsQ0FBQztJQUVuRSxRQUFRO0lBQ1IsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFDLGtCQUFrQixFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsSUFBRyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7OztZQXBERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsK29EQUFnRDthQUNqRDs7O1lBTFEsUUFBUTtZQUZSLE1BQU07OztvQkFTWixLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFFTCxLQUFLLFNBQUMsYUFBYTtzQkFFbkIsS0FBSyxTQUFDLFVBQVU7cUJBRWhCLEtBQUssU0FBQyxTQUFTO3dCQUVmLEtBQUssU0FBQyxpQkFBaUI7MEJBRXZCLEtBQUssU0FBQyxjQUFjO3lCQUVwQixLQUFLLFNBQUMsYUFBYTtxQkFFbkIsTUFBTTtpQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXNpZGUtdmlldy1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2lkZVZpZXdMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9ICfOoM67zrfPgc6/z4bOv8+Bzq/Otc+CJztcbiAgQElucHV0KCkgc2hvd0FjdGlvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgncmV0dXJuLXBhdGgnKSByZXR1cm5QYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdvay1sYWJlbCcpIG9rTGFiZWwgPSAnzpHPgM6/zrjOrs66zrXPhc+DzrcnO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2stc2hvdycpIG9rU2hvdyA9IHRydWU7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdvay1jbG9zZS1kaWFsb2cnKSBjbG9zZU9uT2sgPSB0cnVlO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnY2FuY2VsLWxhYmVsJykgY2FuY2VsTGFiZWwgPSAnzpHOus+Nz4HPic+DzrcnO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnY2FuY2VsLXNob3cnKSBjYW5jZWxTaG93ID0gdHJ1ZTtcbiAgLy8gQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWw6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9rOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVNpZGVQYW5lKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJldHVyblBhdGgpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7c2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlfSkudGhlbigoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmV0dXJuUGF0aCB8fCAnLycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVtaXRDbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcbiAgICB0aGlzLmNsb3NlU2lkZVBhbmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xuICB9XG5cbiAgcHVibGljIGVtaXRPSygpOiB2b2lkIHtcbiAgICB0aGlzLm9rLmVtaXQodHJ1ZSk7XG4gICAgaWYodGhpcy5jbG9zZU9uT2spIHtcbiAgICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
1
+ import { Router } from '@angular/router';
2
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
3
+ import { Location } from '@angular/common';
4
+ export class SideViewLayoutComponent {
5
+ constructor(location, router) {
6
+ this.location = location;
7
+ this.router = router;
8
+ this.title = 'Πληροφορίες';
9
+ this.showActions = true;
10
+ this.disabled = false;
11
+ // tslint:disable-next-line:no-input-rename
12
+ this.okLabel = 'Αποθήκευση';
13
+ // tslint:disable-next-line:no-input-rename
14
+ this.okShow = true;
15
+ // tslint:disable-next-line:no-input-rename
16
+ this.closeOnOk = true;
17
+ // tslint:disable-next-line:no-input-rename
18
+ this.cancelLabel = 'Ακύρωση';
19
+ // tslint:disable-next-line:no-input-rename
20
+ this.cancelShow = true;
21
+ // @Output() close = new EventEmitter<any>();
22
+ this.cancel = new EventEmitter();
23
+ this.ok = new EventEmitter();
24
+ }
25
+ ngOnInit() {
26
+ }
27
+ closeSidePane() {
28
+ if (this.returnPath) {
29
+ this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));
30
+ }
31
+ else {
32
+ this.location.back();
33
+ }
34
+ }
35
+ emitClose() {
36
+ this.cancel.emit(false);
37
+ this.closeSidePane();
38
+ }
39
+ emitCancel() {
40
+ this.cancel.emit(false);
41
+ this.closeSidePane();
42
+ }
43
+ emitOK() {
44
+ this.ok.emit(true);
45
+ if (this.closeOnOk) {
46
+ this.closeSidePane();
47
+ }
48
+ }
49
+ }
50
+ SideViewLayoutComponent.decorators = [
51
+ { type: Component, args: [{
52
+ selector: 'lib-side-view-layout',
53
+ template: "<div class=\"side-view-layout-size-box\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-default\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n"
54
+ },] }
55
+ ];
56
+ SideViewLayoutComponent.ctorParameters = () => [
57
+ { type: Location },
58
+ { type: Router }
59
+ ];
60
+ SideViewLayoutComponent.propDecorators = {
61
+ title: [{ type: Input }],
62
+ showActions: [{ type: Input }],
63
+ disabled: [{ type: Input }],
64
+ returnPath: [{ type: Input, args: ['return-path',] }],
65
+ okLabel: [{ type: Input, args: ['ok-label',] }],
66
+ okShow: [{ type: Input, args: ['ok-show',] }],
67
+ closeOnOk: [{ type: Input, args: ['ok-close-dialog',] }],
68
+ cancelLabel: [{ type: Input, args: ['cancel-label',] }],
69
+ cancelShow: [{ type: Input, args: ['cancel-show',] }],
70
+ cancel: [{ type: Output }],
71
+ ok: [{ type: Output }]
72
+ };
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy92aWV3cy9zaWRlLXZpZXctbGF5b3V0L3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU0zQyxNQUFNLE9BQU8sdUJBQXVCO0lBb0JsQyxZQUFvQixRQUFrQixFQUFVLE1BQWM7UUFBMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFuQnJELFVBQUssR0FBa0IsYUFBYSxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHMUIsMkNBQTJDO1FBQ3hCLFlBQU8sR0FBRyxZQUFZLENBQUM7UUFDMUMsMkNBQTJDO1FBQ3pCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDaEMsMkNBQTJDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDM0MsMkNBQTJDO1FBQ3BCLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQy9DLDJDQUEyQztRQUNyQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLDZDQUE2QztRQUNuQyxXQUFNLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsT0FBRSxHQUEyQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRVEsQ0FBQztJQUVuRSxRQUFRO0lBQ1IsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFDLGtCQUFrQixFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsSUFBRyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7OztZQXBERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsdXREQUFnRDthQUNqRDs7O1lBTFEsUUFBUTtZQUZSLE1BQU07OztvQkFTWixLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFFTCxLQUFLLFNBQUMsYUFBYTtzQkFFbkIsS0FBSyxTQUFDLFVBQVU7cUJBRWhCLEtBQUssU0FBQyxTQUFTO3dCQUVmLEtBQUssU0FBQyxpQkFBaUI7MEJBRXZCLEtBQUssU0FBQyxjQUFjO3lCQUVwQixLQUFLLFNBQUMsYUFBYTtxQkFFbkIsTUFBTTtpQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zaWRlLXZpZXctbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVWaWV3TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9ICfOoM67zrfPgc6/z4bOv8+Bzq/Otc+CJztcclxuICBASW5wdXQoKSBzaG93QWN0aW9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdyZXR1cm4tcGF0aCcpIHJldHVyblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdvay1sYWJlbCcpIG9rTGFiZWwgPSAnzpHPgM6/zrjOrs66zrXPhc+DzrcnO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ29rLXNob3cnKSBva1Nob3cgPSB0cnVlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ29rLWNsb3NlLWRpYWxvZycpIGNsb3NlT25PayA9IHRydWU7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnY2FuY2VsLWxhYmVsJykgY2FuY2VsTGFiZWwgPSAnzpHOus+Nz4HPic+DzrcnO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2NhbmNlbC1zaG93JykgY2FuY2VsU2hvdyA9IHRydWU7XHJcbiAgLy8gQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvazogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ICA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVNpZGVQYW5lKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmV0dXJuUGF0aCkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywge3NraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZX0pLnRoZW4oKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJldHVyblBhdGggfHwgJy8nKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0Q2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRDYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRPSygpOiB2b2lkIHtcclxuICAgIHRoaXMub2suZW1pdCh0cnVlKTtcclxuICAgIGlmKHRoaXMuY2xvc2VPbk9rKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19