@indice/ng-components 0.2.151-beta → 0.2.152-beta.2

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 (149) hide show
  1. package/README.md +4 -4
  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} +3 -3
  12. package/{esm2015/lib/controls/list-view/list-tile.component.js → esm2020/lib/controls/list-view/list-tile.component.mjs} +3 -3
  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 +54 -0
  21. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +56 -0
  22. package/{esm2015/lib/controls/toaster/toaster-container.component.js → esm2020/lib/controls/toaster/toaster-container.component.mjs} +7 -10
  23. package/esm2020/lib/controls/toaster/toaster.component.mjs +31 -0
  24. package/{esm2015/lib/controls/toggle/toggle.component.js → esm2020/lib/controls/toggle/toggle.component.mjs} +7 -11
  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} +3 -3
  27. package/{esm2015/lib/directives/dynamic-component-host.directive.js → esm2020/lib/directives/dynamic-component-host.directive.mjs} +3 -3
  28. package/esm2020/lib/helpers/base-list.component.mjs +181 -0
  29. package/esm2020/lib/icons.mjs +34 -0
  30. package/{esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js → esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs} +5 -8
  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/{esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js → esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs} +7 -13
  36. package/{esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js → esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs} +5 -8
  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} +3 -3
  41. package/{esm2015/lib/pages/auth/logged-out/logged-out.component.js → esm2020/lib/pages/auth/logged-out/logged-out.component.mjs} +5 -9
  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} +3 -3
  46. package/{esm2015/lib/pipes/duration-format.pipe.js → esm2020/lib/pipes/duration-format.pipe.mjs} +3 -3
  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} +3 -3
  50. package/{esm2015/lib/services/component-loader/content-ref.class.js → esm2020/lib/services/component-loader/content-ref.class.mjs} +0 -0
  51. package/{esm2015/lib/services/modal-service/modal-backdrop-component.js → esm2020/lib/services/modal-service/modal-backdrop-component.mjs} +5 -5
  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} +3 -3
  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} +3 -3
  57. package/{esm2015/lib/services/toaster.service.js → esm2020/lib/services/toaster.service.mjs} +4 -4
  58. package/esm2020/lib/tokens.mjs +6 -0
  59. package/esm2020/lib/types.mjs +123 -0
  60. package/esm2020/public-api.mjs +56 -0
  61. package/fesm2015/{indice-ng-components.js → indice-ng-components.mjs} +875 -510
  62. package/fesm2015/indice-ng-components.mjs.map +1 -0
  63. package/fesm2020/indice-ng-components.mjs +3565 -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 +14 -0
  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 +16 -0
  79. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +22 -0
  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 +21 -0
  84. package/lib/controls/tabs/lib-tab.component.d.ts +23 -0
  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 +24 -0
  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 +20 -28
  95. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +5 -3
  96. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +18 -0
  97. package/lib/layouts/views/form-layout/form-layout.component.d.ts +3 -4
  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 +31 -24
  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 +3 -1
  113. package/lib/types.d.ts +42 -11
  114. package/package.json +31 -17
  115. package/public-api.d.ts +4 -1
  116. package/_styles.css +0 -3504
  117. package/bundles/indice-ng-components.umd.js +0 -3799
  118. package/bundles/indice-ng-components.umd.js.map +0 -1
  119. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -23
  120. package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -269
  121. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +0 -72
  122. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +0 -39
  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/pager/pager.component.js +0 -133
  126. package/esm2015/lib/controls/side-pane/side-pane.component.js +0 -76
  127. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +0 -29
  128. package/esm2015/lib/controls/toaster/toaster.component.js +0 -34
  129. package/esm2015/lib/helpers/base-list.component.js +0 -182
  130. package/esm2015/lib/icons.js +0 -32
  131. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +0 -152
  132. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -101
  133. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +0 -86
  134. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +0 -110
  135. package/esm2015/lib/ng-components.module.js +0 -220
  136. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +0 -34
  137. package/esm2015/lib/pages/http-status/error/error.component.js +0 -20
  138. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +0 -18
  139. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +0 -17
  140. package/esm2015/lib/pipes/obs-with-status.pipe.js +0 -26
  141. package/esm2015/lib/services/component-loader/component-loader.class.js +0 -192
  142. package/esm2015/lib/services/modal-service/modal-container-component.js +0 -128
  143. package/esm2015/lib/services/modal-service/modal-service.js +0 -220
  144. package/esm2015/lib/tokens.js +0 -4
  145. package/esm2015/lib/types.js +0 -114
  146. package/esm2015/public-api.js +0 -53
  147. package/fesm2015/indice-ng-components.js.map +0 -1
  148. package/lib/pipes/obs-with-status.pipe.d.ts +0 -13
  149. package/modal.css +0 -157
@@ -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\">\r\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">\r\n {{ title }}\r\n </h3>\r\n <p class=\"form-subtitle\">\r\n {{ subTitle }}\r\n </p>\r\n </div>\r\n <div class=\"form-header-actions\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"form-search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\">\r\n </div>\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"btn-form-view-header-search\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"form-content-container\">\r\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\r\n <router-outlet name=\"formRightPane\"\r\n (activate)=\"formPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n</div>\r\n", 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\">\r\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">\r\n {{ title }}\r\n </h3>\r\n <p class=\"form-subtitle\">\r\n {{ subTitle }}\r\n </p>\r\n </div>\r\n <div class=\"form-header-actions\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"form-search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\">\r\n </div>\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"btn-form-view-header-search\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"form-content-container\">\r\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\r\n <router-outlet name=\"formRightPane\"\r\n (activate)=\"formPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n</div>\r\n" }]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QixZQUFvQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQVoxQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUNyQywyQ0FBMkM7UUFDZCxzQkFBaUIsR0FBa0IsV0FBVyxDQUFBO1FBQ2xFLFlBQU8sR0FBd0IsSUFBSSxDQUFDO1FBQzdDLDJDQUEyQztRQUN2QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUNuRCwrQ0FBK0M7UUFDckMsYUFBUSxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzlFLCtDQUErQztRQUNyQyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRW5DLENBQUM7SUFFeEMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUM7WUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7WUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDdkUsb0VBQW9FO1lBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7WUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7YUFDdkUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFrQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBa0IsRUFBRSxJQUFZO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUE4QixFQUFFLFdBQW9CLEtBQUs7UUFDcEYsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxRTthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7O2dIQXJEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix1WUNWaEMsa2hHQW1FQTsyRkR6RGEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQjs2RkFLRSxZQUFZO3NCQUF4QyxTQUFTO3VCQUFDLFFBQVE7Z0JBQ1YsS0FBSztzQkFBYixLQUFLO2dCQUV1QixpQkFBaUI7c0JBQTdDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUNsQixPQUFPO3NCQUFmLEtBQUs7Z0JBRWMsUUFBUTtzQkFBM0IsS0FBSzt1QkFBQyxXQUFXO2dCQUVSLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIGZpbHRlciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUm91dGVyVmlld0FjdGlvbiwgVmlld0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0tbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoJykgcHJpdmF0ZSBzZWFyY2hJbnB1dCQ/OiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzZWFyY2gtcGxhY2Vob2xkZXInKSBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9ICfOsc69zrHOts6uz4TOt8+DzrcnXHJcbiAgQElucHV0KCkgYWN0aW9uczogVmlld0FjdGlvbltdIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc3ViLXRpdGxlJykgc3ViVGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uQWN0aW9uOiBFdmVudEVtaXR0ZXI8Vmlld0FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+KCk7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1vbi1wcmVmaXhcclxuICBAT3V0cHV0KCkgb25TZWFyY2g6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXIkOiBSb3V0ZXIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaElucHV0JD8ubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgIGZyb21FdmVudCh0aGlzLnNlYXJjaElucHV0JC5uYXRpdmVFbGVtZW50LCAna2V5dXAnKS5waXBlKFxyXG4gICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGV2ZW50LnRhcmdldC52YWx1ZTsgLy8gR2V0IGlucHV0IHZhbHVlLlxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGZpbHRlcihpbnB1dFZhbHVlID0+IGlucHV0VmFsdWUubGVuZ3RoID49IDMgfHwgaW5wdXRWYWx1ZS5sZW5ndGggPT09IDApLFxyXG4gICAgICAgIC8vIElmIGNoYXJhY3RlciBsZW5ndGggZ3JlYXRlciB0aGFuIG1pbmltdW1TZWFyY2hDaGFyYWN0ZXJzIHNldHRpbmcuXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMDApLCAvLyBUaW1lIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIGtleSBldmVudHMuXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSAvLyBJZiBwcmV2aW91cyBxdWVyeSBpcyBkaWZmZXJlbnQgZnJvbSBjdXJyZW50LlxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNvbXBsZXRlLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1pdEFjdGlvbkNsaWNrKGFjdGlvbjogVmlld0FjdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5vbkFjdGlvbi5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24sIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHRleHQpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uVHlwZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCh0aGlzLnNlYXJjaElucHV0JD8ubmF0aXZlRWxlbWVudC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcm91dGVyTGlua0FjdGlvbkNsaWNrKGFjdGlvbjogUm91dGVyVmlld0FjdGlvbiB8IGFueSwgcmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGFjdGlvbi5vdXRsZXQpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFsnJywgeyBvdXRsZXRzOiB7IGZvcm1SaWdodFBhbmU6IGFjdGlvbi5saW5rIH0gfV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFthY3Rpb24ubGlua10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0tbGF5b3V0LWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWhlYWRlclwiICpuZ0lmPVwidGl0bGUgfHwgc3ViVGl0bGUgfHwgYWN0aW9uc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyLWlubmVyXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cImZvcm0tdGl0bGVcIj5cclxuICAgICAgICB7eyB0aXRsZSB9fVxyXG4gICAgICA8L2gzPlxyXG4gICAgICA8cCBjbGFzcz1cImZvcm0tc3VidGl0bGVcIj5cclxuICAgICAgICB7eyBzdWJUaXRsZSB9fVxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWhlYWRlci1hY3Rpb25zXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCIgW25nU3dpdGNoXT1cImFjdGlvbi50eXBlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZWFyY2hcIiBjbGFzcz1cInNyLW9ubHlcIj5TZWFyY2g8L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQteS0wIGxlZnQtMCBwbC0zIGZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPCEtLTxzdmcgY2xhc3M9XCJoLTUgdy01XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDRhNCA0IDAgMTAwIDggNCA0IDAgMDAwLTh6TTIgOGE2IDYgMCAxMTEwLjg5IDMuNDc2bDQuODE3IDQuODE3YTEgMSAwIDAxLTEuNDE0IDEuNDE0bC00LjgxNi00LjgxNkE2IDYgMCAwMTIgOHpcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4tLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAjc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VhcmNoLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInNlYXJjaEFjdGlvblR5cGUoc2VhcmNoLnZhbHVlKVwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWZvcm0tdmlldy1oZWFkZXItc2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlYXJjaEFjdGlvbkNsaWNrKGFjdGlvbiwgc2VhcmNoLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncm91dGVyLWxpbmsnXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMSBidG4tZm9ybS12aWV3LWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTEgYnRuLWZvcm0tdmlldy1oZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW1pdEFjdGlvbkNsaWNrKGFjdGlvbilcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tY29udGVudC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydmb3JtLWNvbnRlbnQtY29udGFpbmVyLWlubmVyJzogYWN0aW9uc31cIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGxpYi1zaWRlLXBhbmUgI2Zvcm1QYW5lIChvbkNvbXBsZXRlKT1cIm9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQpXCI+XHJcbiAgICA8cm91dGVyLW91dGxldCBuYW1lPVwiZm9ybVJpZ2h0UGFuZVwiXHJcbiAgICAgICAgICAgICAgICAgICAoYWN0aXZhdGUpPVwiZm9ybVBhbmUub25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIChkZWFjdGl2YXRlKT1cImZvcm1QYW5lLm9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQpXCI+PC9yb3V0ZXItb3V0bGV0PlxyXG4gIDwvbGliLXNpZGUtcGFuZT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
- import * as i2 from "../view-layout/view-layout.component";
5
- import * as i3 from "@angular/router";
4
+ import * as i2 from "@angular/router";
5
+ import * as i3 from "../view-layout/view-layout.component";
6
6
  export class ModelViewLayoutComponent {
7
7
  constructor(location) {
8
8
  this.location = location;
@@ -20,26 +20,20 @@ export class ModelViewLayoutComponent {
20
20
  ngOnInit() {
21
21
  }
22
22
  onSidePaneActivated($event) {
23
- //console.log('onSidePaneActivated', $event);
24
23
  this.showRightPaneSM = true;
25
24
  }
26
25
  onSidePaneDeactivated($event) {
27
- //console.log('onSidePaneActivated', $event);
28
26
  this.showRightPaneSM = false;
29
27
  }
30
28
  closeSidePane() {
31
29
  this.location.back();
32
30
  }
33
31
  }
34
- ModelViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModelViewLayoutComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
35
- ModelViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ModelViewLayoutComponent, selector: "lib-model-view-layout", inputs: { title: "title", primary: ["primary-links", "primary"], secondary: ["secondary-links", "secondary"], metaItems: ["meta-items", "metaItems"] }, ngImport: i0, template: "<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\">\r\n <main class=\"model-view-container\">\r\n <div class=\"model-view-container-inner\">\r\n <aside class=\"model-view-aside\">\r\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\r\n <div class=\"model-view-aside-header-container\">\r\n <div class=\"model-view-aside-header-container-inner\">\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container\">\r\n <nav class=\"model-view-menu-nav\">\r\n <div class=\"model-view-menu-item\">\r\n <ng-container *ngFor=\"let section of primary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"model-view-menu-item-far\">\r\n <ng-container *ngFor=\"let section of secondary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </nav>\r\n </div>\r\n </div>\r\n </section>\r\n </aside>\r\n <div class=\"model-view-details-container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </main>\r\n", components: [{ type: i2.ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i3.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModelViewLayoutComponent, decorators: [{
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\">\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", 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: [{
37
35
  type: Component,
38
- args: [{
39
- // tslint:disable-next-line:component-selector
40
- selector: 'lib-model-view-layout',
41
- templateUrl: './model-view-layout.component.html'
42
- }]
36
+ args: [{ selector: 'lib-model-view-layout', 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" }]
43
37
  }], ctorParameters: function () { return [{ type: i1.Location }]; }, propDecorators: { title: [{
44
38
  type: Input
45
39
  }], primary: [{
@@ -52,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
52
46
  type: Input,
53
47
  args: ['meta-items']
54
48
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFBcUIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVZoQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN0QixVQUFLLEdBQUcsVUFBVSxDQUFDO1FBQzVCLDJDQUEyQztRQUNuQixZQUFPLEdBQTRDLElBQUksQ0FBQztRQUNoRiwyQ0FBMkM7UUFDakIsY0FBUyxHQUE0QyxJQUFJLENBQUM7UUFDcEYsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEI7UUFDeEQseUVBQXlFO1NBQzFFLENBQUM7SUFDeUMsQ0FBQztJQUU1QyxRQUFRO0lBQ1IsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE1BQVc7UUFDcEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUFXO1FBQ3RDLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O3FIQTVCVSx3QkFBd0I7eUdBQXhCLHdCQUF3QixxTkNUckMsNjNEQTJDQTsyRkRsQ2Esd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsV0FBVyxFQUFFLG9DQUFvQztpQkFDbEQ7K0ZBR1UsS0FBSztzQkFBYixLQUFLO2dCQUVrQixPQUFPO3NCQUE5QixLQUFLO3VCQUFDLGVBQWU7Z0JBRUksU0FBUztzQkFBbEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBRUgsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kZWwtdmlldy1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC12aWV3LWxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGVsVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJ25vIHRpdGxlJztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdwcmltYXJ5LWxpbmtzJykgcHJpbWFyeTogeyB0ZXh0OiBzdHJpbmcsIGxpbms6IHN0cmluZyB9W10gfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzZWNvbmRhcnktbGlua3MnKSBzZWNvbmRhcnk6IHsgdGV4dDogc3RyaW5nLCBsaW5rOiBzdHJpbmcgfVtdIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXHJcbiAgICAvLyB7IGtleTogJ3Rlc3QnLCBpY29uOiBJY29ucy5CYWRnZXMsIHRleHQ6ICfOss+Bzq3OuM63zrrOsc69IDIwMCDOsc+Azr/PhM61zrvOrc+DzrzOsc+EzrEnIH1cclxuICBdO1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2lkZVBhbmVBY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdvblNpZGVQYW5lQWN0aXZhdGVkJywgJGV2ZW50KTtcclxuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdvblNpZGVQYW5lQWN0aXZhdGVkJywgJGV2ZW50KTtcclxuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VTaWRlUGFuZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gIH1cclxufVxyXG4iLCI8bGliLXZpZXctbGF5b3V0IFt0aXRsZV09XCJ0aXRsZVwiIFttZXRhLWl0ZW1zXT1cIm1ldGFJdGVtc1wiPlxyXG4gIDxtYWluIGNsYXNzPVwibW9kZWwtdmlldy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICA8YXNpZGUgY2xhc3M9XCJtb2RlbC12aWV3LWFzaWRlXCI+XHJcbiAgICAgICAgPHNlY3Rpb24gYXJpYS1sYWJlbGxlZGJ5PVwibWVudVwiIGNsYXNzPVwiZGV0YWlscy12aWV3LWFzaWRlLWhlYWRlci1zZWN0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZS1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWFzaWRlLWhlYWRlci1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIG1lbnUgaXRlbXMgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPG5hdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1uYXZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyd2aWV3LW5hdi1saW5rLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzZWN0aW9uLmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtaXRlbS1mYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWNvbmRhcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyd2aWV3LW5hdi1saW5rLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzZWN0aW9uLmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25hdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwvYXNpZGU+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWRldGFpbHMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWFpbj5cclxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFBcUIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVZoQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN0QixVQUFLLEdBQUcsVUFBVSxDQUFDO1FBQzVCLDJDQUEyQztRQUNuQixZQUFPLEdBQTRDLElBQUksQ0FBQztRQUNoRiwyQ0FBMkM7UUFDakIsY0FBUyxHQUE0QyxJQUFJLENBQUM7UUFDcEYsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEI7UUFDeEQseUVBQXlFO1NBQzFFLENBQUM7SUFDeUMsQ0FBQztJQUU1QyxRQUFRO0lBQ1IsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE1BQVc7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOztxSEExQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IscU5DVHJDLDYzREEyQ0E7MkZEbENhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFFRSx1QkFBdUI7K0ZBS3hCLEtBQUs7c0JBQWIsS0FBSztnQkFFa0IsT0FBTztzQkFBOUIsS0FBSzt1QkFBQyxlQUFlO2dCQUVJLFNBQVM7c0JBQWxDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVILFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEhlYWRlck1ldGFJdGVtIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGVsLXZpZXctbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RlbFZpZXdMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBzaG93UmlnaHRQYW5lU00gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0aXRsZSA9ICdubyB0aXRsZSc7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgncHJpbWFyeS1saW5rcycpIHByaW1hcnk6IHsgdGV4dDogc3RyaW5nLCBsaW5rOiBzdHJpbmcgfVtdIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2Vjb25kYXJ5LWxpbmtzJykgc2Vjb25kYXJ5OiB7IHRleHQ6IHN0cmluZywgbGluazogc3RyaW5nIH1bXSB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ21ldGEtaXRlbXMnKSBtZXRhSXRlbXM6IEhlYWRlck1ldGFJdGVtW10gfCBudWxsID0gW1xyXG4gICAgLy8geyBrZXk6ICd0ZXN0JywgaWNvbjogSWNvbnMuQmFkZ2VzLCB0ZXh0OiAnzrLPgc6tzrjOt866zrHOvSAyMDAgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xJyB9XHJcbiAgXTtcclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24pIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNpZGVQYW5lQWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCAge1xyXG4gICAgdGhpcy5zaG93UmlnaHRQYW5lU00gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQ6IGFueSk6IHZvaWQgIHtcclxuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VTaWRlUGFuZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gIH1cclxufVxyXG4iLCI8bGliLXZpZXctbGF5b3V0IFt0aXRsZV09XCJ0aXRsZVwiIFttZXRhLWl0ZW1zXT1cIm1ldGFJdGVtc1wiPlxyXG4gIDxtYWluIGNsYXNzPVwibW9kZWwtdmlldy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICA8YXNpZGUgY2xhc3M9XCJtb2RlbC12aWV3LWFzaWRlXCI+XHJcbiAgICAgICAgPHNlY3Rpb24gYXJpYS1sYWJlbGxlZGJ5PVwibWVudVwiIGNsYXNzPVwiZGV0YWlscy12aWV3LWFzaWRlLWhlYWRlci1zZWN0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1hc2lkZS1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWFzaWRlLWhlYWRlci1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIG1lbnUgaXRlbXMgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPG5hdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1uYXZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyd2aWV3LW5hdi1saW5rLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzZWN0aW9uLmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtaXRlbS1mYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWNvbmRhcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyd2aWV3LW5hdi1saW5rLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzZWN0aW9uLmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25hdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwvYXNpZGU+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWRldGFpbHMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWFpbj5cclxuIl19
@@ -58,14 +58,11 @@ export class SideViewLayoutComponent {
58
58
  }
59
59
  }
60
60
  }
61
- SideViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: SideViewLayoutComponent, deps: [{ token: i1.Location }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
62
- SideViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: SideViewLayoutComponent, selector: "lib-side-view-layout", inputs: { title: "title", showActions: "showActions", disabled: "disabled", returnPath: ["return-path", "returnPath"], okLabel: ["ok-label", "okLabel"], okShow: ["ok-show", "okShow"], closeOnOk: ["ok-close-dialog", "closeOnOk"], cancelLabel: ["cancel-label", "cancelLabel"], cancelShow: ["cancel-show", "cancelShow"], forceLocationBack: ["force-location-back", "forceLocationBack"] }, outputs: { cancel: "cancel", ok: "ok" }, ngImport: i0, template: "<div class=\"side-view-layout-size-box\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: SideViewLayoutComponent, decorators: [{
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\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", 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
64
  type: Component,
65
- args: [{
66
- selector: 'lib-side-view-layout',
67
- templateUrl: './side-view-layout.component.html'
68
- }]
65
+ args: [{ selector: 'lib-side-view-layout', template: "<div class=\"side-view-layout-size-box\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n" }]
69
66
  }], ctorParameters: function () { return [{ type: i1.Location }, { type: i2.Router }]; }, propDecorators: { title: [{
70
67
  type: Input
71
68
  }], showActions: [{
@@ -98,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
98
95
  }], ok: [{
99
96
  type: Output
100
97
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy92aWV3cy9zaWRlLXZpZXctbGF5b3V0L3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPL0UsTUFBTSxPQUFPLHVCQUF1QjtJQXNCbEMsWUFBb0IsUUFBa0IsRUFBVSxNQUFjO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckJyRCxVQUFLLEdBQWtCLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLDJDQUEyQztRQUN4QixZQUFPLEdBQUcsWUFBWSxDQUFDO1FBQzFDLDJDQUEyQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLDJDQUEyQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLDJDQUEyQztRQUNwQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQywyQ0FBMkM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QywyQ0FBMkM7UUFDYixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDeEQsNkNBQTZDO1FBQ25DLFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxPQUFFLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFUyxDQUFDO0lBRW5FLFFBQVE7SUFDUixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVIO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNEO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDekYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7b0hBeERVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHNlQ1JwQyxtdERBb0NBOzJGRDVCYSx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsV0FBVyxFQUFFLG1DQUFtQztpQkFDakQ7b0hBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFZ0IsVUFBVTtzQkFBL0IsS0FBSzt1QkFBQyxhQUFhO2dCQUVELE9BQU87c0JBQXpCLEtBQUs7dUJBQUMsVUFBVTtnQkFFQyxNQUFNO3NCQUF2QixLQUFLO3VCQUFDLFNBQVM7Z0JBRVUsU0FBUztzQkFBbEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBRUQsV0FBVztzQkFBakMsS0FBSzt1QkFBQyxjQUFjO2dCQUVDLFVBQVU7c0JBQS9CLEtBQUs7dUJBQUMsYUFBYTtnQkFFVSxpQkFBaUI7c0JBQTlDLEtBQUs7dUJBQUMscUJBQXFCO2dCQUVsQixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csRUFBRTtzQkFBWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zaWRlLXZpZXctbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVWaWV3TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9ICfOoM67zrfPgc6/z4bOv8+Bzq/Otc+CJztcclxuICBASW5wdXQoKSBzaG93QWN0aW9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdyZXR1cm4tcGF0aCcpIHJldHVyblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdvay1sYWJlbCcpIG9rTGFiZWwgPSAnzpHPgM6/zrjOrs66zrXPhc+DzrcnO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ29rLXNob3cnKSBva1Nob3cgPSB0cnVlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ29rLWNsb3NlLWRpYWxvZycpIGNsb3NlT25PayA9IHRydWU7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnY2FuY2VsLWxhYmVsJykgY2FuY2VsTGFiZWwgPSAnzpHOus+Nz4HPic+DzrcnO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2NhbmNlbC1zaG93JykgY2FuY2VsU2hvdyA9IHRydWU7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnZm9yY2UtbG9jYXRpb24tYmFjaycpIGZvcmNlTG9jYXRpb25CYWNrID0gZmFsc2U7XHJcbiAgLy8gQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvazogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlU2lkZVBhbmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yZXR1cm5QYXRoKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yZXR1cm5QYXRoIHx8ICcvJykpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCh0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8oJylbMF0gIT09IHRoaXMucm91dGVyLnVybCkgJiYgIXRoaXMuZm9yY2VMb2NhdGlvbkJhY2spIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVyLnVybC5zcGxpdCgnLygnKVswXSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoKHRoaXMucm91dGVyLnVybC5zcGxpdCgnKCcpWzBdICE9PSB0aGlzLnJvdXRlci51cmwpICYmICF0aGlzLmZvcmNlTG9jYXRpb25CYWNrKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlci51cmwuc3BsaXQoJygnKVswXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0Q2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRDYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRPSygpOiB2b2lkIHtcclxuICAgIHRoaXMub2suZW1pdCh0cnVlKTtcclxuICAgIGlmICh0aGlzLmNsb3NlT25Paykge1xyXG4gICAgICB0aGlzLmNsb3NlU2lkZVBhbmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LXNpemUtYm94XCI+XHJcbiAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtaGVhZGVyLW1hcmdpbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWhlYWRlci10aXRsZVwiIGlkPVwic2xpZGUtb3Zlci10aXRsZVwiPlxyXG4gICAgICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jbG9zZS1idXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImVtaXRDbG9zZSgpXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNsb3NlLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkNsb3NlIHBhbmVsPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogb3V0bGluZS94IC0tPlxyXG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNsb3NlLWJ1dHRvbi1pY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDwhLS0gUmVwbGFjZSB3aXRoIHlvdXIgY29udGVudCAtLT5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPCEtLSAvRW5kIHJlcGxhY2UgLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0FjdGlvbnNcIiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtYWN0aW9ucy1jb250YWluZXJcIj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbmNlbFNob3dcIiAoY2xpY2spPVwiZW1pdENhbmNlbCgpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1hY3Rpb24tYnV0dG9uLWNhbmNlbFwiPlxyXG4gICAgICAgIHt7Y2FuY2VsTGFiZWx9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIm9rU2hvd1wiIChjbGljayk9XCJlbWl0T0soKVwiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1hY3Rpb24tYnV0dG9uLXN1Ym1pdFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgIHt7b2tMYWJlbH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy92aWV3cy9zaWRlLXZpZXctbGF5b3V0L3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPL0UsTUFBTSxPQUFPLHVCQUF1QjtJQXNCbEMsWUFBb0IsUUFBa0IsRUFBVSxNQUFjO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckJyRCxVQUFLLEdBQWtCLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLDJDQUEyQztRQUN4QixZQUFPLEdBQUcsWUFBWSxDQUFDO1FBQzFDLDJDQUEyQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLDJDQUEyQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLDJDQUEyQztRQUNwQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQywyQ0FBMkM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QywyQ0FBMkM7UUFDYixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDeEQsNkNBQTZDO1FBQ25DLFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxPQUFFLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFUyxDQUFDO0lBRW5FLFFBQVE7SUFDUixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVIO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNEO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDekYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7b0hBeERVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHNlQ1JwQyxtdERBb0NBOzJGRDVCYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0Usc0JBQXNCO29IQUl2QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVnQixVQUFVO3NCQUEvQixLQUFLO3VCQUFDLGFBQWE7Z0JBRUQsT0FBTztzQkFBekIsS0FBSzt1QkFBQyxVQUFVO2dCQUVDLE1BQU07c0JBQXZCLEtBQUs7dUJBQUMsU0FBUztnQkFFVSxTQUFTO3NCQUFsQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFFRCxXQUFXO3NCQUFqQyxLQUFLO3VCQUFDLGNBQWM7Z0JBRUMsVUFBVTtzQkFBL0IsS0FBSzt1QkFBQyxhQUFhO2dCQUVVLGlCQUFpQjtzQkFBOUMsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBRWxCLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxFQUFFO3NCQUFYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpZGUtdmlldy1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZVZpZXdMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gJ86gzrvOt8+Bzr/Phs6/z4HOr861z4InO1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb25zID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3JldHVybi1wYXRoJykgcmV0dXJuUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ29rLWxhYmVsJykgb2tMYWJlbCA9ICfOkc+Azr/OuM6uzrrOtc+Fz4POtyc7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnb2stc2hvdycpIG9rU2hvdyA9IHRydWU7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnb2stY2xvc2UtZGlhbG9nJykgY2xvc2VPbk9rID0gdHJ1ZTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdjYW5jZWwtbGFiZWwnKSBjYW5jZWxMYWJlbCA9ICfOkc66z43Pgc+Jz4POtyc7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnY2FuY2VsLXNob3cnKSBjYW5jZWxTaG93ID0gdHJ1ZTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdmb3JjZS1sb2NhdGlvbi1iYWNrJykgZm9yY2VMb2NhdGlvbkJhY2sgPSBmYWxzZTtcclxuICAvLyBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2FuY2VsOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9rOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VTaWRlUGFuZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJldHVyblBhdGgpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJldHVyblBhdGggfHwgJy8nKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKHRoaXMucm91dGVyLnVybC5zcGxpdCgnLygnKVswXSAhPT0gdGhpcy5yb3V0ZXIudXJsKSAmJiAhdGhpcy5mb3JjZUxvY2F0aW9uQmFjaykge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcvKCcpWzBdKTtcclxuICAgICAgfSBlbHNlIGlmICgodGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcoJylbMF0gIT09IHRoaXMucm91dGVyLnVybCkgJiYgIXRoaXMuZm9yY2VMb2NhdGlvbkJhY2spIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVyLnVybC5zcGxpdCgnKCcpWzBdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRDbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FuY2VsLmVtaXQoZmFsc2UpO1xyXG4gICAgdGhpcy5jbG9zZVNpZGVQYW5lKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1pdENhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FuY2VsLmVtaXQoZmFsc2UpO1xyXG4gICAgdGhpcy5jbG9zZVNpZGVQYW5lKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1pdE9LKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vay5lbWl0KHRydWUpO1xyXG4gICAgaWYgKHRoaXMuY2xvc2VPbk9rKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VTaWRlUGFuZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtc2l6ZS1ib3hcIj5cclxuICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1oZWFkZXItbWFyZ2luc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtaGVhZGVyLXRpdGxlXCIgaWQ9XCJzbGlkZS1vdmVyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7dGl0bGV9fVxyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNsb3NlLWJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZW1pdENsb3NlKClcIiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtY2xvc2UtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2UgcGFuZWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBvdXRsaW5lL3ggLS0+XHJcbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtY2xvc2UtYnV0dG9uLWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIyXCIgZD1cIk02IDE4TDE4IDZNNiA2bDEyIDEyXCIgLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPCEtLSBSZXBsYWNlIHdpdGggeW91ciBjb250ZW50IC0tPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8IS0tIC9FbmQgcmVwbGFjZSAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93QWN0aW9uc1wiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1hY3Rpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiY2FuY2VsU2hvd1wiIChjbGljayk9XCJlbWl0Q2FuY2VsKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWFjdGlvbi1idXR0b24tY2FuY2VsXCI+XHJcbiAgICAgICAge3tjYW5jZWxMYWJlbH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwib2tTaG93XCIgKGNsaWNrKT1cImVtaXRPSygpXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWFjdGlvbi1idXR0b24tc3VibWl0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAge3tva0xhYmVsfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -0,0 +1,104 @@
1
+ import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
2
+ import { fromEvent } from 'rxjs';
3
+ import { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "@angular/common";
7
+ export class ViewLayoutComponent {
8
+ constructor(route$, router$) {
9
+ this.route$ = route$;
10
+ this.router$ = router$;
11
+ // tslint:disable-next-line:no-input-rename
12
+ this.header = true;
13
+ this.fluid = false;
14
+ this.title = 'no title';
15
+ this.icon = null;
16
+ this.actions = null;
17
+ this.busy = false;
18
+ // tslint:disable-next-line:no-input-rename
19
+ this.searchPlaceholder = 'αναζήτηση';
20
+ this.view = null;
21
+ // tslint:disable-next-line:no-input-rename
22
+ this.metaItems = [];
23
+ // tslint:disable-next-line:no-output-on-prefix
24
+ this.onAction = new EventEmitter();
25
+ // tslint:disable-next-line:no-output-on-prefix
26
+ this.onSearch = new EventEmitter();
27
+ }
28
+ ngOnInit() {
29
+ if (this.searchInput$?.nativeElement) {
30
+ fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(map((event) => {
31
+ return event.target.value; // Get input value.
32
+ }), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
33
+ // If character length greater than minimumSearchCharacters setting.
34
+ debounceTime(1000), // Time in milliseconds between key events.
35
+ distinctUntilChanged() // If previous query is different from current.
36
+ ).subscribe();
37
+ }
38
+ }
39
+ emitActionClick(action) {
40
+ this.onAction.emit(action);
41
+ }
42
+ routerLinkActionClick(action) {
43
+ // console.log('routerLinkActionClick', action);
44
+ if (action.outlet) {
45
+ this.router$.navigate(['', { outlets: { rightpane: action.link } }]);
46
+ }
47
+ else {
48
+ this.router$.navigate([action.link]);
49
+ }
50
+ }
51
+ searchActionClick(action, text) {
52
+ this.onSearch.emit(text);
53
+ }
54
+ searchActionType(text) {
55
+ this.onSearch.emit(this.searchInput$?.nativeElement.value);
56
+ }
57
+ handleClear(event) {
58
+ console.log('handle clear!!!');
59
+ event.stopPropagation();
60
+ this.onSearch.emit(event.target?.value);
61
+ }
62
+ switchViewActionClick(action) {
63
+ // console.log('switchViewActionClick', action);
64
+ this.view = action.param;
65
+ if (action && action.param) {
66
+ this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });
67
+ }
68
+ }
69
+ }
70
+ ViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ViewLayoutComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
71
+ ViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ViewLayoutComponent, selector: "lib-view-layout", inputs: { header: ["show-header", "header"], fluid: "fluid", title: "title", icon: "icon", actions: "actions", busy: "busy", searchPlaceholder: ["search-placeholder", "searchPlaceholder"], view: "view", metaItems: ["meta-items", "metaItems"] }, outputs: { onAction: "onAction", onSearch: "onSearch" }, viewQueries: [{ propertyName: "searchInput$", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<header *ngIf=\"header\" class=\"view-layout-paddings\">\r\n\r\n <div class=\"view-layout-title-container\">\r\n\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex items-center justify-end\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"ml-1 disabled:opacity-50 btn-view-header\" (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\" class=\"selected-view-indicator\"></span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\" #search class=\"search-input\" [placeholder]=\"searchPlaceholder\"\r\n type=\"search\" name=\"search\" (input)=\"searchActionType(search.value)\" (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\" href=\"#\" class=\"btn-view-header rounded-l-none\" [title]=\"action.tooltip\" (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\" href=\"#\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n\r\n<!-- component -->\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>\r\n", dependencies: [{ 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]" }] });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ViewLayoutComponent, decorators: [{
73
+ type: Component,
74
+ args: [{ selector: 'lib-view-layout', template: "<header *ngIf=\"header\" class=\"view-layout-paddings\">\r\n\r\n <div class=\"view-layout-title-container\">\r\n\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex items-center justify-end\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"ml-1 disabled:opacity-50 btn-view-header\" (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\" class=\"selected-view-indicator\"></span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\" #search class=\"search-input\" [placeholder]=\"searchPlaceholder\"\r\n type=\"search\" name=\"search\" (input)=\"searchActionType(search.value)\" (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\" href=\"#\" class=\"btn-view-header rounded-l-none\" [title]=\"action.tooltip\" (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\" href=\"#\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n\r\n<!-- component -->\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
75
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }]; }, propDecorators: { searchInput$: [{
76
+ type: ViewChild,
77
+ args: ['search']
78
+ }], header: [{
79
+ type: Input,
80
+ args: ['show-header']
81
+ }], fluid: [{
82
+ type: Input
83
+ }], title: [{
84
+ type: Input
85
+ }], icon: [{
86
+ type: Input
87
+ }], actions: [{
88
+ type: Input
89
+ }], busy: [{
90
+ type: Input
91
+ }], searchPlaceholder: [{
92
+ type: Input,
93
+ args: ['search-placeholder']
94
+ }], view: [{
95
+ type: Input
96
+ }], metaItems: [{
97
+ type: Input,
98
+ args: ['meta-items']
99
+ }], onAction: [{
100
+ type: Output
101
+ }], onSearch: [{
102
+ type: Output
103
+ }] } });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU9qRixNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUFvQixNQUFzQixFQUFVLE9BQWU7UUFBL0MsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBakJuRSwyQ0FBMkM7UUFDckIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsVUFBSyxHQUFHLFVBQVUsQ0FBQztRQUNuQixTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixZQUFPLEdBQXdCLElBQUksQ0FBQztRQUNwQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLDJDQUEyQztRQUNkLHNCQUFpQixHQUFrQixXQUFXLENBQUM7UUFDbkUsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBQzdELCtDQUErQztRQUNyQyxhQUFRLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFDOUUsK0NBQStDO1FBQ3JDLGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVDLENBQUM7SUFFeEUsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUM7WUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7WUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDdkUsb0VBQW9FO1lBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7WUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7YUFDdkUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFrQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBOEI7UUFDekQsZ0RBQWdEO1FBQ2hELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdEU7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBa0IsRUFBRSxJQUFZO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxXQUFXLENBQUMsS0FBVTtRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQThCO1FBQ3pELGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzdIO0lBQ0gsQ0FBQzs7Z0hBckVVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDZjQ1hoQyx3NUdBb0VBOzJGRHpEYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsaUJBQWlCOzBIQUtFLFlBQVk7c0JBQXhDLFNBQVM7dUJBQUMsUUFBUTtnQkFFRyxNQUFNO3NCQUEzQixLQUFLO3VCQUFDLGFBQWE7Z0JBQ1gsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFdUIsaUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsSUFBSTtzQkFBWixLQUFLO2dCQUVlLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFFVCxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTd2l0Y2hWaWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0sIFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi12aWV3LWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzaG93LWhlYWRlcicpIGhlYWRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgZmx1aWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0aXRsZSA9ICdubyB0aXRsZSc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYWN0aW9uczogVmlld0FjdGlvbltdIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NlYXJjaC1wbGFjZWhvbGRlcicpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gJ86xzr3Osc62zq7PhM63z4POtyc7XHJcbiAgQElucHV0KCkgdmlldzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFjdGlvbjogRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPigpO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlJDogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyJDogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hJbnB1dCQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7IC8vIEdldCBpbnB1dCB2YWx1ZS5cclxuICAgICAgICB9KSxcclxuICAgICAgICBmaWx0ZXIoaW5wdXRWYWx1ZSA9PiBpbnB1dFZhbHVlLmxlbmd0aCA+PSAzIHx8IGlucHV0VmFsdWUubGVuZ3RoID09PSAwKSxcclxuICAgICAgICAvLyBJZiBjaGFyYWN0ZXIgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBtaW5pbXVtU2VhcmNoQ2hhcmFjdGVycyBzZXR0aW5nLlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDAwKSwgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudC5cclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0QWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWN0aW9uLmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uOiBSb3V0ZXJWaWV3QWN0aW9uIHwgYW55KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygncm91dGVyTGlua0FjdGlvbkNsaWNrJywgYWN0aW9uKTtcclxuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XHJcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbJycsIHsgb3V0bGV0czogeyByaWdodHBhbmU6IGFjdGlvbi5saW5rIH0gfV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFthY3Rpb24ubGlua10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEFjdGlvblR5cGUodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsZWFyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdoYW5kbGUgY2xlYXIhISEnKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KGV2ZW50LnRhcmdldD8udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN3aXRjaFZpZXdBY3Rpb25DbGljayhhY3Rpb246IFN3aXRjaFZpZXdBY3Rpb24gfCBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdzd2l0Y2hWaWV3QWN0aW9uQ2xpY2snLCBhY3Rpb24pO1xyXG4gICAgdGhpcy52aWV3ID0gYWN0aW9uLnBhcmFtO1xyXG4gICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ucGFyYW0pIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7IHZpZXc6IGFjdGlvbi5wYXJhbSB9LCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCBza2lwTG9jYXRpb25DaGFuZ2U6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiaGVhZGVyXCIgY2xhc3M9XCJ2aWV3LWxheW91dC1wYWRkaW5nc1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidmlldy1sYXlvdXQtdGl0bGUtY29udGFpbmVyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8aSAqbmdJZj1cImljb25cIiBbY2xhc3NdPVwiaWNvbiArICcgdGl0bGUtaWNvbidcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgPGgxIFtjbGFzc109XCJidXN5ID8gJ3ZpZXctbGF5b3V0LXRpdGxlLWJ1c3knIDogJ3ZpZXctbGF5b3V0LXRpdGxlJ1wiPnt7dGl0bGV9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwibWV0YUl0ZW1zICYmIG1ldGFJdGVtcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtZXRhLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldGEgb2YgbWV0YUl0ZW1zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aSAqbmdJZj1cIm1ldGEuaWNvblwiIFtjbGFzc109XCJtZXRhLmljb24gKyAnIG1ldGEtaWNvbidcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS10ZXh0XCI+e3ttZXRhLnRleHR9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiICBbbmdTd2l0Y2hdPVwiYWN0aW9uLnR5cGVcIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3N3aXRjaC12aWV3J1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidmlldyA9PT0gYWN0aW9uLnBhcmFtXCIgdHlwZT1cImJ1dHRvblwiIGhyZWY9XCIjXCIgY2xhc3M9XCJtbC0xIGRpc2FibGVkOm9wYWNpdHktNTAgYnRuLXZpZXctaGVhZGVyXCIgKGNsaWNrKT1cInN3aXRjaFZpZXdBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5saW5lLWJsb2NrIHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidmlldyA9PT0gYWN0aW9uLnBhcmFtXCIgY2xhc3M9XCJzZWxlY3RlZC12aWV3LWluZGljYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWFyY2gnXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoXCIgY2xhc3M9XCJzci1vbmx5XCI+U2VhcmNoPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBsZWZ0LTAgcGwtMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDwhLS08c3ZnIGNsYXNzPVwiaC01IHctNVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04ek0yIDhhNiA2IDAgMTExMC44OSAzLjQ3Nmw0LjgxNyA0LjgxN2ExIDEgMCAwMS0xLjQxNCAxLjQxNGwtNC44MTYtNC44MTZBNiA2IDAgMDEyIDh6XCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJzZWFyY2hcIiAjc2VhcmNoIGNsYXNzPVwic2VhcmNoLWlucHV0XCIgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIiBuYW1lPVwic2VhcmNoXCIgKGlucHV0KT1cInNlYXJjaEFjdGlvblR5cGUoc2VhcmNoLnZhbHVlKVwiIChvbnNlYXJjaCk9XCJoYW5kbGVDbGVhcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICBocmVmPVwiI1wiIGNsYXNzPVwiYnRuLXZpZXctaGVhZGVyIHJvdW5kZWQtbC1ub25lXCIgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCIgKGNsaWNrKT1cInNlYXJjaEFjdGlvbkNsaWNrKGFjdGlvbiwgc2VhcmNoLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JvdXRlci1saW5rJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgIGhyZWY9XCIjXCIgY2xhc3M9XCJtbC0xIGJ0bi12aWV3LWhlYWRlclwiIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiIChjbGljayk9XCJyb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICBjbGFzcz1cIm1sLTEgYnRuLXZpZXctaGVhZGVyXCIgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCIgKGNsaWNrKT1cImVtaXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2hlYWRlcj5cclxuXHJcbjwhLS0gY29tcG9uZW50IC0tPlxyXG48ZGl2IFtjbGFzc109XCJmbHVpZCA/ICd2aWV3LWNvbnRhaW5lci1mbHVpZCcgOiAndmlldy1jb250YWluZXInXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuIl19