@indice/ng-components 0.3.12 → 0.4.0-beta.0
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.
- package/fesm2022/indice-ng-components.mjs +314 -279
- package/fesm2022/indice-ng-components.mjs.map +1 -1
- package/index.d.ts +1894 -3
- package/package.json +7 -9
- package/esm2022/indice-ng-components.mjs +0 -5
- package/esm2022/lib/controls/advanced-search/advanced-search.component.mjs +0 -161
- package/esm2022/lib/controls/advanced-search/models.mjs +0 -109
- package/esm2022/lib/controls/avatar-initials/avatar-initials.component.mjs +0 -48
- package/esm2022/lib/controls/breadcrumb/breadcrumb-item.mjs +0 -14
- package/esm2022/lib/controls/breadcrumb/breadcrumb.component.mjs +0 -26
- package/esm2022/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
- package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -118
- package/esm2022/lib/controls/content-tile/content-tile.component.mjs +0 -91
- package/esm2022/lib/controls/date-picker/date-picker.component.mjs +0 -300
- package/esm2022/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -72
- package/esm2022/lib/controls/enhanced-combobox/enhanced-combobox.component.mjs +0 -115
- package/esm2022/lib/controls/kpi-tile/kpi-tile.component.mjs +0 -43
- package/esm2022/lib/controls/language-selection/language-selection.component.mjs +0 -31
- package/esm2022/lib/controls/list-view/list-column.component.mjs +0 -25
- package/esm2022/lib/controls/list-view/list-details-section.component.mjs +0 -17
- package/esm2022/lib/controls/list-view/list-tile.component.mjs +0 -17
- package/esm2022/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
- package/esm2022/lib/controls/list-view/list-view.component.mjs +0 -211
- package/esm2022/lib/controls/nav-links-list/nav-links-list.component.mjs +0 -54
- package/esm2022/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -79
- package/esm2022/lib/controls/pager/pager.component.mjs +0 -130
- package/esm2022/lib/controls/progress-bar/progress-bar.component.mjs +0 -46
- package/esm2022/lib/controls/side-pane/side-pane.component.mjs +0 -106
- package/esm2022/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -29
- package/esm2022/lib/controls/stats-grid/stats-grid.component.mjs +0 -49
- package/esm2022/lib/controls/stepper/lib-step-info.directive.mjs +0 -16
- package/esm2022/lib/controls/stepper/lib-step-label.directive.mjs +0 -16
- package/esm2022/lib/controls/stepper/lib-step.component.mjs +0 -81
- package/esm2022/lib/controls/stepper/lib-stepper.component.mjs +0 -108
- package/esm2022/lib/controls/stepper/types/step-selected-event.mjs +0 -4
- package/esm2022/lib/controls/stepper/types/stepper-type.mjs +0 -12
- package/esm2022/lib/controls/tabs/lib-tab-group.component.mjs +0 -66
- package/esm2022/lib/controls/tabs/lib-tab-label.directive.mjs +0 -16
- package/esm2022/lib/controls/tabs/lib-tab.component.mjs +0 -64
- package/esm2022/lib/controls/toaster/toaster-container.component.mjs +0 -28
- package/esm2022/lib/controls/toaster/toaster.component.mjs +0 -31
- package/esm2022/lib/controls/toggle/toggle.component.mjs +0 -64
- package/esm2022/lib/controls/toggle-button/toggle-button.component.mjs +0 -87
- package/esm2022/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +0 -34
- package/esm2022/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -75
- package/esm2022/lib/directives/click-outside.directive.mjs +0 -189
- package/esm2022/lib/directives/dynamic-component-host.directive.mjs +0 -17
- package/esm2022/lib/helpers/base-list.component.mjs +0 -235
- package/esm2022/lib/icons.mjs +0 -36
- package/esm2022/lib/layouts/shell/shell-footer/shell-footer.component.mjs +0 -19
- package/esm2022/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -138
- package/esm2022/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -92
- package/esm2022/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +0 -54
- package/esm2022/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +0 -45
- package/esm2022/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +0 -33
- package/esm2022/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +0 -24
- package/esm2022/lib/layouts/views/form-layout/form-layout.component.mjs +0 -86
- package/esm2022/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -103
- package/esm2022/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -106
- package/esm2022/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
- package/esm2022/lib/ng-components.module.mjs +0 -324
- package/esm2022/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
- package/esm2022/lib/pages/auth/auth-renew/auth-renew.component.mjs +0 -31
- package/esm2022/lib/pages/auth/logged-out/logged-out.component.mjs +0 -28
- package/esm2022/lib/pages/http-status/error/error.component.mjs +0 -17
- package/esm2022/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
- package/esm2022/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
- package/esm2022/lib/pipes/address.pipe.mjs +0 -21
- package/esm2022/lib/pipes/duration-format.pipe.mjs +0 -64
- package/esm2022/lib/pipes/short-number.pipe.mjs +0 -43
- package/esm2022/lib/services/breadcrumb.service.mjs +0 -181
- package/esm2022/lib/services/component-loader/component-loader-options.class.mjs +0 -8
- package/esm2022/lib/services/component-loader/component-loader.class.mjs +0 -188
- package/esm2022/lib/services/component-loader/component-loader.factory.mjs +0 -32
- package/esm2022/lib/services/component-loader/content-ref.class.mjs +0 -13
- package/esm2022/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
- package/esm2022/lib/services/modal-service/modal-container-component.mjs +0 -126
- package/esm2022/lib/services/modal-service/modal-options.class.mjs +0 -35
- package/esm2022/lib/services/modal-service/modal-service.mjs +0 -220
- package/esm2022/lib/services/modal-service/modal-styles.class.mjs +0 -11
- package/esm2022/lib/services/modal-service/modal.class.mjs +0 -27
- package/esm2022/lib/services/toaster.service.mjs +0 -26
- package/esm2022/lib/services/user-settings.service.mjs +0 -35
- package/esm2022/lib/services/utilities.service.mjs +0 -47
- package/esm2022/lib/tokens.mjs +0 -8
- package/esm2022/lib/types.mjs +0 -143
- package/esm2022/public-api.mjs +0 -77
- package/lib/controls/advanced-search/advanced-search.component.d.ts +0 -42
- package/lib/controls/advanced-search/models.d.ts +0 -92
- package/lib/controls/avatar-initials/avatar-initials.component.d.ts +0 -14
- package/lib/controls/breadcrumb/breadcrumb-item.d.ts +0 -7
- package/lib/controls/breadcrumb/breadcrumb.component.d.ts +0 -12
- package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +0 -10
- package/lib/controls/combobox/combobox.component.d.ts +0 -34
- package/lib/controls/content-tile/content-tile.component.d.ts +0 -34
- package/lib/controls/date-picker/date-picker.component.d.ts +0 -53
- package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +0 -26
- package/lib/controls/enhanced-combobox/enhanced-combobox.component.d.ts +0 -37
- package/lib/controls/kpi-tile/kpi-tile.component.d.ts +0 -15
- package/lib/controls/language-selection/language-selection.component.d.ts +0 -14
- package/lib/controls/list-view/list-column.component.d.ts +0 -9
- package/lib/controls/list-view/list-details-section.component.d.ts +0 -7
- package/lib/controls/list-view/list-tile.component.d.ts +0 -7
- package/lib/controls/list-view/list-view-empty-state.component.d.ts +0 -11
- package/lib/controls/list-view/list-view.component.d.ts +0 -62
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +0 -21
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +0 -22
- package/lib/controls/pager/pager.component.d.ts +0 -36
- package/lib/controls/progress-bar/progress-bar.component.d.ts +0 -16
- package/lib/controls/side-pane/side-pane.component.d.ts +0 -28
- package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +0 -12
- package/lib/controls/stats-grid/stats-grid.component.d.ts +0 -16
- package/lib/controls/stepper/lib-step-info.directive.d.ts +0 -8
- package/lib/controls/stepper/lib-step-label.directive.d.ts +0 -8
- package/lib/controls/stepper/lib-step.component.d.ts +0 -34
- package/lib/controls/stepper/lib-stepper.component.d.ts +0 -43
- package/lib/controls/stepper/types/step-selected-event.d.ts +0 -12
- package/lib/controls/stepper/types/stepper-type.d.ts +0 -10
- package/lib/controls/tabs/lib-tab-group.component.d.ts +0 -21
- package/lib/controls/tabs/lib-tab-label.directive.d.ts +0 -8
- package/lib/controls/tabs/lib-tab.component.d.ts +0 -24
- package/lib/controls/toaster/toaster-container.component.d.ts +0 -13
- package/lib/controls/toaster/toaster.component.d.ts +0 -15
- package/lib/controls/toggle/toggle.component.d.ts +0 -19
- package/lib/controls/toggle-button/toggle-button.component.d.ts +0 -25
- package/lib/controls/toggle-buttons-list/toggle-buttons-list.component.d.ts +0 -15
- package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +0 -25
- package/lib/directives/click-outside.directive.d.ts +0 -40
- package/lib/directives/dynamic-component-host.directive.d.ts +0 -9
- package/lib/helpers/base-list.component.d.ts +0 -55
- package/lib/icons.d.ts +0 -34
- package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +0 -8
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +0 -40
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +0 -27
- package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +0 -20
- package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +0 -14
- package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +0 -16
- package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +0 -11
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +0 -26
- package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +0 -44
- package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +0 -29
- package/lib/layouts/views/view-layout/view-layout.component.d.ts +0 -31
- package/lib/ng-components.module.d.ts +0 -70
- package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +0 -13
- package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +0 -12
- package/lib/pages/auth/logged-out/logged-out.component.d.ts +0 -12
- package/lib/pages/http-status/error/error.component.d.ts +0 -8
- package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +0 -8
- package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +0 -8
- package/lib/pipes/address.pipe.d.ts +0 -8
- package/lib/pipes/duration-format.pipe.d.ts +0 -8
- package/lib/pipes/short-number.pipe.d.ts +0 -7
- package/lib/services/breadcrumb.service.d.ts +0 -29
- package/lib/services/component-loader/component-loader-options.class.d.ts +0 -30
- package/lib/services/component-loader/component-loader.class.d.ts +0 -92
- package/lib/services/component-loader/component-loader.factory.d.ts +0 -24
- package/lib/services/component-loader/content-ref.class.d.ts +0 -12
- package/lib/services/modal-service/modal-backdrop-component.d.ts +0 -20
- package/lib/services/modal-service/modal-container-component.d.ts +0 -33
- package/lib/services/modal-service/modal-options.class.d.ts +0 -81
- package/lib/services/modal-service/modal-service.d.ts +0 -58
- package/lib/services/modal-service/modal-styles.class.d.ts +0 -10
- package/lib/services/modal-service/modal.class.d.ts +0 -43
- package/lib/services/toaster.service.d.ts +0 -11
- package/lib/services/user-settings.service.d.ts +0 -13
- package/lib/services/utilities.service.d.ts +0 -11
- package/lib/tokens.d.ts +0 -10
- package/lib/types.d.ts +0 -188
- package/public-api.d.ts +0 -67
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { fromEvent } from 'rxjs';
|
|
3
|
-
import { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
import * as i2 from "@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
|
-
this.image = null;
|
|
13
|
-
this.icon = null;
|
|
14
|
-
// tslint:disable-next-line:no-input-rename
|
|
15
|
-
this.searchPlaceholder = 'αναζήτηση';
|
|
16
|
-
this.actions = null;
|
|
17
|
-
// tslint:disable-next-line:no-input-rename
|
|
18
|
-
this.subTitle = null;
|
|
19
|
-
// tslint:disable-next-line:no-output-on-prefix
|
|
20
|
-
this.onAction = new EventEmitter();
|
|
21
|
-
// tslint:disable-next-line:no-output-on-prefix
|
|
22
|
-
this.onSearch = new EventEmitter();
|
|
23
|
-
this.onComplete = new EventEmitter();
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
if (this.searchInput$?.nativeElement) {
|
|
27
|
-
fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(map((event) => {
|
|
28
|
-
return event.target.value; // Get input value.
|
|
29
|
-
}), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
|
|
30
|
-
// If character length greater than minimumSearchCharacters setting.
|
|
31
|
-
debounceTime(1000), // Time in milliseconds between key events.
|
|
32
|
-
distinctUntilChanged() // If previous query is different from current.
|
|
33
|
-
).subscribe();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
onSidePaneDeactivated($event) {
|
|
37
|
-
this.onComplete.emit(true);
|
|
38
|
-
}
|
|
39
|
-
emitActionClick(action) {
|
|
40
|
-
this.onAction.emit(action);
|
|
41
|
-
}
|
|
42
|
-
searchActionClick(action, text) {
|
|
43
|
-
this.onSearch.emit(text);
|
|
44
|
-
}
|
|
45
|
-
searchActionType(text) {
|
|
46
|
-
this.onSearch.emit(this.searchInput$?.nativeElement.value);
|
|
47
|
-
}
|
|
48
|
-
routerLinkActionClick(action, relative = false) {
|
|
49
|
-
if (action.outlet) {
|
|
50
|
-
this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
this.router$.navigate([action.link]);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FormLayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: FormLayoutComponent, selector: "lib-form-layout", inputs: { title: "title", image: "image", icon: "icon", 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=\"flex\">\r\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"image\">\r\n <img alt=\"form tab image\" class=\"form-header-image\" [src]=\"image\">\r\n </div>\r\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"icon\">\r\n <i [class]=\"icon\" class=\"form-header-icon\"></i>\r\n </div>\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">{{ title }}</h3>\r\n <p class=\"form-subtitle\">{{ subTitle }}</p>\r\n </div>\r\n </div>\r\n \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", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i3.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible", "pane-size"], outputs: ["onComplete", "onOpen", "onClose"] }] }); }
|
|
58
|
-
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FormLayoutComponent, decorators: [{
|
|
60
|
-
type: Component,
|
|
61
|
-
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=\"flex\">\r\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"image\">\r\n <img alt=\"form tab image\" class=\"form-header-image\" [src]=\"image\">\r\n </div>\r\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"icon\">\r\n <i [class]=\"icon\" class=\"form-header-icon\"></i>\r\n </div>\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">{{ title }}</h3>\r\n <p class=\"form-subtitle\">{{ subTitle }}</p>\r\n </div>\r\n </div>\r\n \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" }]
|
|
62
|
-
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { searchInput$: [{
|
|
63
|
-
type: ViewChild,
|
|
64
|
-
args: ['search']
|
|
65
|
-
}], title: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], image: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], icon: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], searchPlaceholder: [{
|
|
72
|
-
type: Input,
|
|
73
|
-
args: ['search-placeholder']
|
|
74
|
-
}], actions: [{
|
|
75
|
-
type: Input
|
|
76
|
-
}], subTitle: [{
|
|
77
|
-
type: Input,
|
|
78
|
-
args: ['sub-title']
|
|
79
|
-
}], onAction: [{
|
|
80
|
-
type: Output
|
|
81
|
-
}], onSearch: [{
|
|
82
|
-
type: Output
|
|
83
|
-
}], onComplete: [{
|
|
84
|
-
type: Output
|
|
85
|
-
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLG1CQUFtQjtJQWlCOUIsWUFBb0IsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFkMUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDNUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDNUIsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ2Qsc0JBQWlCLEdBQWtCLFdBQVcsQ0FBQTtRQUNsRSxZQUFPLEdBQXdCLElBQUksQ0FBQztRQUM3QywyQ0FBMkM7UUFDdkIsYUFBUSxHQUFrQixJQUFJLENBQUM7UUFDbkQsK0NBQStDO1FBQ3JDLGFBQVEsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUM5RSwrQ0FBK0M7UUFDckMsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVELGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVuQyxDQUFDO0lBRXhDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLENBQUM7WUFDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7WUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDdkUsb0VBQW9FO1lBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7WUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7YUFDdkUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFrQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBa0IsRUFBRSxJQUFZO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUE4QixFQUFFLFdBQW9CLEtBQUs7UUFDcEYsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQzs4R0F2RFUsbUJBQW1CO2tHQUFuQixtQkFBbUIscWFDVmhDLDAwR0F3RUE7OzJGRDlEYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsaUJBQWlCOzJFQUtFLFlBQVk7c0JBQXhDLFNBQVM7dUJBQUMsUUFBUTtnQkFDVixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFdUIsaUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsT0FBTztzQkFBZixLQUFLO2dCQUVjLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsV0FBVztnQkFFUixRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBmaWx0ZXIsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgaW1hZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NlYXJjaC1wbGFjZWhvbGRlcicpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gJ86xzr3Osc62zq7PhM63z4POtydcclxuICBASW5wdXQoKSBhY3Rpb25zOiBWaWV3QWN0aW9uW10gfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzdWItdGl0bGUnKSBzdWJUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1vbi1wcmVmaXhcclxuICBAT3V0cHV0KCkgb25BY3Rpb246IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld0FjdGlvbj4oKTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgb25Db21wbGV0ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlciQ6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQkPy5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgZnJvbUV2ZW50KHRoaXMuc2VhcmNoSW5wdXQkLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXHJcbiAgICAgICAgbWFwKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZXZlbnQudGFyZ2V0LnZhbHVlOyAvLyBHZXQgaW5wdXQgdmFsdWUuXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmlsdGVyKGlucHV0VmFsdWUgPT4gaW5wdXRWYWx1ZS5sZW5ndGggPj0gMyB8fCBpbnB1dFZhbHVlLmxlbmd0aCA9PT0gMCksXHJcbiAgICAgICAgLy8gSWYgY2hhcmFjdGVyIGxlbmd0aCBncmVhdGVyIHRoYW4gbWluaW11bVNlYXJjaENoYXJhY3RlcnMgc2V0dGluZy5cclxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50cy5cclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpIC8vIElmIHByZXZpb3VzIHF1ZXJ5IGlzIGRpZmZlcmVudCBmcm9tIGN1cnJlbnQuXHJcbiAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ29tcGxldGUuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0QWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWN0aW9uLmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEFjdGlvbkNsaWNrKGFjdGlvbjogVmlld0FjdGlvbiwgdGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGV4dCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hBY3Rpb25UeXBlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHRoaXMuc2VhcmNoSW5wdXQkPy5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uOiBSb3V0ZXJWaWV3QWN0aW9uIHwgYW55LCByZWxhdGl2ZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICBpZiAoYWN0aW9uLm91dGxldCkge1xyXG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoWycnLCB7IG91dGxldHM6IHsgZm9ybVJpZ2h0UGFuZTogYWN0aW9uLmxpbmsgfSB9XSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoW2FjdGlvbi5saW5rXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1sYXlvdXQtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyXCIgKm5nSWY9XCJ0aXRsZSB8fCBzdWJUaXRsZSB8fCBhY3Rpb25zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXItNCBmbGV4LXNocmluay0wXCIgKm5nSWY9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxpbWcgYWx0PVwiZm9ybSB0YWIgaW1hZ2VcIiBjbGFzcz1cImZvcm0taGVhZGVyLWltYWdlXCIgW3NyY109XCJpbWFnZVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yLTQgZmxleC1zaHJpbmstMFwiICpuZ0lmPVwiaWNvblwiPlxyXG4gICAgICAgIDxpIFtjbGFzc109XCJpY29uXCIgY2xhc3M9XCJmb3JtLWhlYWRlci1pY29uXCI+PC9pPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyLWlubmVyXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiZm9ybS10aXRsZVwiPnt7IHRpdGxlIH19PC9oMz5cclxuICAgICAgICA8cCBjbGFzcz1cImZvcm0tc3VidGl0bGVcIj57eyBzdWJUaXRsZSB9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyLWFjdGlvbnNcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIiBbbmdTd2l0Y2hdPVwiYWN0aW9uLnR5cGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoJ1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInNlYXJjaFwiIGNsYXNzPVwic3Itb25seVwiPlNlYXJjaDwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC15LTAgbGVmdC0wIHBsLTMgZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8IS0tPHN2ZyBjbGFzcz1cImgtNSB3LTVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggNGE0IDQgMCAxMDAgOCA0IDQgMCAwMDAtOHpNMiA4YTYgNiAwIDExMTAuODkgMy40NzZsNC44MTcgNC44MTdhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQuODE2LTQuODE2QTYgNiAwIDAxMiA4elwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPi0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgICNzZWFyY2hcclxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWFyY2gtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgbmFtZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2VhcmNoQWN0aW9uVHlwZShzZWFyY2gudmFsdWUpXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZm9ybS12aWV3LWhlYWRlci1zZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uLCBzZWFyY2gudmFsdWUpXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyb3V0ZXItbGluaydcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xIGJ0bi1mb3JtLXZpZXctaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMSBidG4tZm9ybS12aWV3LWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbWl0QWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2Zvcm0tY29udGVudC1jb250YWluZXItaW5uZXInOiBhY3Rpb25zfVwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bGliLXNpZGUtcGFuZSAjZm9ybVBhbmUgKG9uQ29tcGxldGUpPVwib25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudClcIj5cclxuICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJmb3JtUmlnaHRQYW5lXCJcclxuICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJmb3JtUGFuZS5vblNpZGVQYW5lQWN0aXZhdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGRlYWN0aXZhdGUpPVwiZm9ybVBhbmUub25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudClcIj48L3JvdXRlci1vdXRsZXQ+XHJcbiAgPC9saWItc2lkZS1wYW5lPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { MenuOption } from '../../../types';
|
|
3
|
-
import { NavigationEnd } from '@angular/router';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "@angular/router";
|
|
7
|
-
import * as i3 from "../../../controls/drop-down-menu/drop-down-menu.component";
|
|
8
|
-
import * as i4 from "../view-layout/view-layout.component";
|
|
9
|
-
export class ModelViewLayoutComponent {
|
|
10
|
-
get tabsOptions() {
|
|
11
|
-
if (!this.optionsLoaded) {
|
|
12
|
-
this.optionsLoaded = true;
|
|
13
|
-
if (this.primary) {
|
|
14
|
-
this.primary.forEach(p => {
|
|
15
|
-
this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
if (this.secondary) {
|
|
19
|
-
this.secondary.forEach(p => {
|
|
20
|
-
this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
if (this._options && this._options.length > 0) {
|
|
24
|
-
this.selectedTab = this._options[0].value;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return this._options;
|
|
28
|
-
}
|
|
29
|
-
constructor(location, router, route) {
|
|
30
|
-
this.location = location;
|
|
31
|
-
this.router = router;
|
|
32
|
-
this.route = route;
|
|
33
|
-
this.showRightPaneSM = false;
|
|
34
|
-
this.title = 'no title';
|
|
35
|
-
// tslint:disable-next-line:no-input-rename
|
|
36
|
-
this.primary = null;
|
|
37
|
-
// tslint:disable-next-line:no-input-rename
|
|
38
|
-
this.secondary = null;
|
|
39
|
-
// tslint:disable-next-line:no-input-rename
|
|
40
|
-
this.metaItems = [
|
|
41
|
-
// { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }
|
|
42
|
-
];
|
|
43
|
-
this.icon = null;
|
|
44
|
-
this.busy = false;
|
|
45
|
-
this.actions = null;
|
|
46
|
-
this.optionsLoaded = false;
|
|
47
|
-
this._options = [];
|
|
48
|
-
}
|
|
49
|
-
ngOnInit() {
|
|
50
|
-
this.selectedTabSub$ = this.router.events.subscribe(event => {
|
|
51
|
-
if (event instanceof NavigationEnd) {
|
|
52
|
-
if (event.urlAfterRedirects) {
|
|
53
|
-
var urlParts = event.urlAfterRedirects.split('/');
|
|
54
|
-
if (urlParts && urlParts.length > 0) {
|
|
55
|
-
const lastPart = urlParts[urlParts.length - 1];
|
|
56
|
-
this.selectedTab = lastPart.split('?')[0];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
ngOnDestroy() {
|
|
63
|
-
if (this.selectedTabSub$) {
|
|
64
|
-
this.selectedTabSub$.unsubscribe();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
onSidePaneActivated($event) {
|
|
68
|
-
this.showRightPaneSM = true;
|
|
69
|
-
}
|
|
70
|
-
onSidePaneDeactivated($event) {
|
|
71
|
-
this.showRightPaneSM = false;
|
|
72
|
-
}
|
|
73
|
-
closeSidePane() {
|
|
74
|
-
this.location.back();
|
|
75
|
-
}
|
|
76
|
-
navigateLink(link) {
|
|
77
|
-
this.router.navigate([link], { relativeTo: this.route });
|
|
78
|
-
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModelViewLayoutComponent, deps: [{ token: i1.Location }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ModelViewLayoutComponent, selector: "lib-model-view-layout", inputs: { title: "title", primary: ["primary-links", "primary"], secondary: ["secondary-links", "secondary"], metaItems: ["meta-items", "metaItems"], icon: "icon", busy: "busy", actions: "actions" }, ngImport: i0, template: "<lib-view-layout [title]=\"title || ' '\" [meta-items]=\"metaItems\" [actions]=\"actions\" [icon]=\"icon\" [busy]=\"busy\">\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 *ngIf=\"!busy\"></ng-content>\r\n\r\n <ng-container *ngIf=\"busy\">\r\n <div class=\"flex items-center p-5\">\r\n <div class=\"w-12 h-14 mr-4 rounded-lg bg-gray-200 animate-pulse\"></div>\r\n <div>\r\n <div class=\"h-6 w-48 bg-gray-200 rounded-lg animate-pulse\"></div>\r\n <div class=\"mt-1 h-4 w-40 bg-gray-200 rounded-lg animate-pulse\"></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container-mobile\">\r\n <lib-drop-down-menu [options]=\"tabsOptions\" [selected]=\"selectedTab\" (selectedChange)=\"navigateLink($event)\"></lib-drop-down-menu>\r\n </div>\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 <div class=\"h-3\" *ngIf=\"section.type === 'separator'\">\r\n \r\n </div>\r\n <a *ngIf=\"section.type !== 'separator'\"\r\n href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n [routerLinkActiveOptions]=\"{ exact: false }\"\r\n class=\"view-nav-link\">\r\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\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 <div class=\"h-3\" *ngIf=\"section.type === 'separator'\"></div>\r\n <a *ngIf=\"section.type !== 'separator'\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n [routerLinkActiveOptions]=\"{ exact: false }\"\r\n class=\"view-nav-link\">\r\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i3.DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: ["options", "selected", "multiple", "placeholder", "show-icons"], outputs: ["selectedChange", "selectedChanged"] }, { kind: "component", type: i4.ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }] }); }
|
|
81
|
-
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ModelViewLayoutComponent, decorators: [{
|
|
83
|
-
type: Component,
|
|
84
|
-
args: [{ selector: 'lib-model-view-layout', template: "<lib-view-layout [title]=\"title || ' '\" [meta-items]=\"metaItems\" [actions]=\"actions\" [icon]=\"icon\" [busy]=\"busy\">\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 *ngIf=\"!busy\"></ng-content>\r\n\r\n <ng-container *ngIf=\"busy\">\r\n <div class=\"flex items-center p-5\">\r\n <div class=\"w-12 h-14 mr-4 rounded-lg bg-gray-200 animate-pulse\"></div>\r\n <div>\r\n <div class=\"h-6 w-48 bg-gray-200 rounded-lg animate-pulse\"></div>\r\n <div class=\"mt-1 h-4 w-40 bg-gray-200 rounded-lg animate-pulse\"></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container-mobile\">\r\n <lib-drop-down-menu [options]=\"tabsOptions\" [selected]=\"selectedTab\" (selectedChange)=\"navigateLink($event)\"></lib-drop-down-menu>\r\n </div>\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 <div class=\"h-3\" *ngIf=\"section.type === 'separator'\">\r\n \r\n </div>\r\n <a *ngIf=\"section.type !== 'separator'\"\r\n href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n [routerLinkActiveOptions]=\"{ exact: false }\"\r\n class=\"view-nav-link\">\r\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\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 <div class=\"h-3\" *ngIf=\"section.type === 'separator'\"></div>\r\n <a *ngIf=\"section.type !== 'separator'\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n [routerLinkActiveOptions]=\"{ exact: false }\"\r\n class=\"view-nav-link\">\r\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\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" }]
|
|
85
|
-
}], ctorParameters: () => [{ type: i1.Location }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { title: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], primary: [{
|
|
88
|
-
type: Input,
|
|
89
|
-
args: ['primary-links']
|
|
90
|
-
}], secondary: [{
|
|
91
|
-
type: Input,
|
|
92
|
-
args: ['secondary-links']
|
|
93
|
-
}], metaItems: [{
|
|
94
|
-
type: Input,
|
|
95
|
-
args: ['meta-items']
|
|
96
|
-
}], icon: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], busy: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], actions: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvbW9kZWwtdmlldy1sYXlvdXQvbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBa0IsVUFBVSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFrQixhQUFhLEVBQTJCLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVF6RixNQUFNLE9BQU8sd0JBQXdCO0lBa0JuQyxJQUFXLFdBQVc7UUFDcEIsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztn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QUMsQ0FBQztJQUN6RCxDQUFDOzhHQTVFVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixxUUNYckMsdXZHQWlFQTs7MkZEdERhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFFRSx1QkFBdUI7K0hBS3hCLEtBQUs7c0JBQWIsS0FBSztnQkFFa0IsT0FBTztzQkFBOUIsS0FBSzt1QkFBQyxlQUFlO2dCQUVJLFNBQVM7c0JBQWxDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVILFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFHVixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0sIE1lbnVPcHRpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGVsLXZpZXctbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RlbFZpZXdMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJ25vIHRpdGxlJztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdwcmltYXJ5LWxpbmtzJykgcHJpbWFyeTogeyB0eXBlPzogc3RyaW5nLCB0ZXh0OiBzdHJpbmcsIGxpbms6IHN0cmluZywgaWNvbj86IHN0cmluZywgZXhhY3Q/IDogYm9vbGVhbiB9W10gfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzZWNvbmRhcnktbGlua3MnKSBzZWNvbmRhcnk6IHsgdHlwZT86IHN0cmluZywgdGV4dDogc3RyaW5nLCBsaW5rOiBzdHJpbmcsIGljb24/OiBzdHJpbmcsIGV4YWN0PyA6IGJvb2xlYW4gfVtdIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXHJcbiAgICAvLyB7IGtleTogJ3Rlc3QnLCBpY29uOiBJY29ucy5CYWRnZXMsIHRleHQ6ICfOss+Bzq3OuM63zrrOsc69IDIwMCDOsc+Azr/PhM61zrvOrc+DzrzOsc+EzrEnIH1cclxuICBdO1xyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGJ1c3kgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhY3Rpb25zOiBWaWV3QWN0aW9uW10gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIG9wdGlvbnNMb2FkZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9vcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRUYWI6IGFueTtcclxuICBwcml2YXRlIHNlbGVjdGVkVGFiU3ViJDogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBnZXQgdGFic09wdGlvbnMoKTogTWVudU9wdGlvbltdIHtcclxuICAgIGlmKCF0aGlzLm9wdGlvbnNMb2FkZWQpIHtcclxuICAgICAgdGhpcy5vcHRpb25zTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgaWYodGhpcy5wcmltYXJ5KSB7XHJcbiAgICAgICAgdGhpcy5wcmltYXJ5LmZvckVhY2gocCA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9vcHRpb25zLnB1c2gobmV3IE1lbnVPcHRpb24ocC50ZXh0LCBwLmxpbmssIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwLmljb24pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYodGhpcy5zZWNvbmRhcnkpIHtcclxuICAgICAgICB0aGlzLnNlY29uZGFyeS5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fb3B0aW9ucy5wdXNoKG5ldyBNZW51T3B0aW9uKHAudGV4dCwgcC5saW5rLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcC5pY29uKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMuX29wdGlvbnMgJiYgdGhpcy5fb3B0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMuX29wdGlvbnNbMF0udmFsdWU7IFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcclxuICB9XHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgeyB9XHJcbiAgXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiU3ViJCA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZihldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgKSB7XHJcbiAgICAgICAgaWYoZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpIHtcclxuICAgICAgICAgIHZhciB1cmxQYXJ0cyA9IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICBpZih1cmxQYXJ0cyAmJiB1cmxQYXJ0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RQYXJ0ID0gdXJsUGFydHNbdXJsUGFydHMubGVuZ3RoLTFdO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gbGFzdFBhcnQuc3BsaXQoJz8nKVswXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLnNlbGVjdGVkVGFiU3ViJCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiU3ViJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBvblNpZGVQYW5lQWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCAge1xyXG4gICAgdGhpcy5zaG93UmlnaHRQYW5lU00gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQ6IGFueSk6IHZvaWQgIHtcclxuICAgIHRoaXMuc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VTaWRlUGFuZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5hdmlnYXRlTGluayhsaW5rOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaW5rXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGV9KTtcclxuICB9XHJcbn1cclxuIiwiPGxpYi12aWV3LWxheW91dCBbdGl0bGVdPVwidGl0bGUgfHwgJyAnXCIgW21ldGEtaXRlbXNdPVwibWV0YUl0ZW1zXCIgW2FjdGlvbnNdPVwiYWN0aW9uc1wiIFtpY29uXT1cImljb25cIiBbYnVzeV09XCJidXN5XCI+XHJcbiAgPG1haW4gY2xhc3M9XCJtb2RlbC12aWV3LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGVsLXZpZXctY29udGFpbmVyLWlubmVyXCI+XHJcbiAgICAgIDxhc2lkZSBjbGFzcz1cIm1vZGVsLXZpZXctYXNpZGVcIj5cclxuICAgICAgICA8c2VjdGlvbiBhcmlhLWxhYmVsbGVkYnk9XCJtZW51XCIgY2xhc3M9XCJkZXRhaWxzLXZpZXctYXNpZGUtaGVhZGVyLXNlY3Rpb25cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LWFzaWRlLWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGVsLXZpZXctYXNpZGUtaGVhZGVyLWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiIWJ1c3lcIj48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidXN5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcC01XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEyIGgtMTQgbXItNCByb3VuZGVkLWxnIGJnLWdyYXktMjAwIGFuaW1hdGUtcHVsc2VcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC02IHctNDggYmctZ3JheS0yMDAgcm91bmRlZC1sZyBhbmltYXRlLXB1bHNlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEgaC00IHctNDAgYmctZ3JheS0yMDAgcm91bmRlZC1sZyBhbmltYXRlLXB1bHNlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBtZW51IGl0ZW1zIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1tZW51LWNvbnRhaW5lci1tb2JpbGVcIj5cclxuICAgICAgICAgICAgICAgIDxsaWItZHJvcC1kb3duLW1lbnUgW29wdGlvbnNdPVwidGFic09wdGlvbnNcIiBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRUYWJcIiAoc2VsZWN0ZWRDaGFuZ2UpPVwibmF2aWdhdGVMaW5rKCRldmVudClcIj48L2xpYi1kcm9wLWRvd24tbWVudT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPG5hdiBjbGFzcz1cIm1vZGVsLXZpZXctbWVudS1uYXZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlbC12aWV3LW1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0zXCIgKm5nSWY9XCJzZWN0aW9uLnR5cGUgPT09ICdzZXBhcmF0b3InXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cInNlY3Rpb24udHlwZSAhPT0gJ3NlcGFyYXRvcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJbJ3ZpZXctbmF2LWxpbmstYWN0aXZlJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInNlY3Rpb24ubGlua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IGZhbHNlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1uYXYtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJzZWN0aW9uLmljb25cIiBbY2xhc3NdPVwic2VjdGlvbi5pY29uICsgJyBtci0yJ1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7c2VjdGlvbi50ZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZWwtdmlldy1tZW51LWl0ZW0tZmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2Vjb25kYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtM1wiICpuZ0lmPVwic2VjdGlvbi50eXBlID09PSAnc2VwYXJhdG9yJ1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwic2VjdGlvbi50eXBlICE9PSAnc2VwYXJhdG9yJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyd2aWV3LW5hdi1saW5rLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzZWN0aW9uLmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBmYWxzZSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZpZXctbmF2LWxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwic2VjdGlvbi5pY29uXCIgW2NsYXNzXT1cInNlY3Rpb24uaWNvbiArICcgbXItMidcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e3NlY3Rpb24udGV4dH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmF2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPC9hc2lkZT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGVsLXZpZXctZGV0YWlscy1jb250YWluZXJcIj5cclxuICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYWluPlxyXG4iXX0=
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "@angular/router";
|
|
5
|
-
export class SideViewLayoutComponent {
|
|
6
|
-
constructor(location, router) {
|
|
7
|
-
this.location = location;
|
|
8
|
-
this.router = router;
|
|
9
|
-
this.title = 'Πληροφορίες';
|
|
10
|
-
this.showActions = true;
|
|
11
|
-
this.disabled = false;
|
|
12
|
-
// tslint:disable-next-line:no-input-rename
|
|
13
|
-
this.okLabel = 'Αποθήκευση';
|
|
14
|
-
// tslint:disable-next-line:no-input-rename
|
|
15
|
-
this.okShow = true;
|
|
16
|
-
// tslint:disable-next-line:no-input-rename
|
|
17
|
-
this.closeOnOk = true;
|
|
18
|
-
// tslint:disable-next-line:no-input-rename
|
|
19
|
-
this.cancelLabel = 'Ακύρωση';
|
|
20
|
-
// tslint:disable-next-line:no-input-rename
|
|
21
|
-
this.cancelShow = true;
|
|
22
|
-
// tslint:disable-next-line:no-input-rename
|
|
23
|
-
this.forceLocationBack = false;
|
|
24
|
-
this.redirectOnClose = true;
|
|
25
|
-
// @Output() close = new EventEmitter<any>();
|
|
26
|
-
this.cancel = new EventEmitter();
|
|
27
|
-
this.ok = new EventEmitter();
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
}
|
|
31
|
-
closeSidePane() {
|
|
32
|
-
if (this.returnPath) {
|
|
33
|
-
this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {
|
|
37
|
-
this.router.navigateByUrl(this.router.url.split('/(')[0]);
|
|
38
|
-
}
|
|
39
|
-
else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {
|
|
40
|
-
this.router.navigateByUrl(this.router.url.split('(')[0]);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.location.back();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
emitClose() {
|
|
48
|
-
this.cancel.emit(false);
|
|
49
|
-
if (this.redirectOnClose) {
|
|
50
|
-
this.closeSidePane();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
emitCancel() {
|
|
54
|
-
this.cancel.emit(false);
|
|
55
|
-
if (this.redirectOnClose) {
|
|
56
|
-
this.closeSidePane();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
emitOK() {
|
|
60
|
-
this.ok.emit(true);
|
|
61
|
-
if (this.closeOnOk && this.redirectOnClose) {
|
|
62
|
-
this.closeSidePane();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SideViewLayoutComponent, deps: [{ token: i1.Location }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: SideViewLayoutComponent, selector: "lib-side-view-layout", inputs: { title: "title", showActions: "showActions", disabled: "disabled", returnPath: ["return-path", "returnPath"], okLabel: ["ok-label", "okLabel"], okShow: ["ok-show", "okShow"], closeOnOk: ["ok-close-dialog", "closeOnOk"], cancelLabel: ["cancel-label", "cancelLabel"], cancelShow: ["cancel-show", "cancelShow"], forceLocationBack: ["force-location-back", "forceLocationBack"], redirectOnClose: ["redirect-on-close", "redirectOnClose"] }, outputs: { cancel: "cancel", ok: "ok" }, ngImport: i0, template: "<div class=\"side-view-layout-size-box\">\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"] }] }); }
|
|
67
|
-
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SideViewLayoutComponent, decorators: [{
|
|
69
|
-
type: Component,
|
|
70
|
-
args: [{ selector: 'lib-side-view-layout', template: "<div class=\"side-view-layout-size-box\">\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" }]
|
|
71
|
-
}], ctorParameters: () => [{ type: i1.Location }, { type: i2.Router }], propDecorators: { title: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], showActions: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], disabled: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], returnPath: [{
|
|
78
|
-
type: Input,
|
|
79
|
-
args: ['return-path']
|
|
80
|
-
}], okLabel: [{
|
|
81
|
-
type: Input,
|
|
82
|
-
args: ['ok-label']
|
|
83
|
-
}], okShow: [{
|
|
84
|
-
type: Input,
|
|
85
|
-
args: ['ok-show']
|
|
86
|
-
}], closeOnOk: [{
|
|
87
|
-
type: Input,
|
|
88
|
-
args: ['ok-close-dialog']
|
|
89
|
-
}], cancelLabel: [{
|
|
90
|
-
type: Input,
|
|
91
|
-
args: ['cancel-label']
|
|
92
|
-
}], cancelShow: [{
|
|
93
|
-
type: Input,
|
|
94
|
-
args: ['cancel-show']
|
|
95
|
-
}], forceLocationBack: [{
|
|
96
|
-
type: Input,
|
|
97
|
-
args: ['force-location-back']
|
|
98
|
-
}], redirectOnClose: [{
|
|
99
|
-
type: Input,
|
|
100
|
-
args: ['redirect-on-close']
|
|
101
|
-
}], cancel: [{
|
|
102
|
-
type: Output
|
|
103
|
-
}], ok: [{
|
|
104
|
-
type: Output
|
|
105
|
-
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS12aWV3LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbGF5b3V0cy92aWV3cy9zaWRlLXZpZXctbGF5b3V0L3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPL0UsTUFBTSxPQUFPLHVCQUF1QjtJQXVCbEMsWUFBb0IsUUFBa0IsRUFBVSxNQUFjO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdEJyRCxVQUFLLEdBQWtCLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLDJDQUEyQztRQUN4QixZQUFPLEdBQUcsWUFBWSxDQUFDO1FBQzFDLDJDQUEyQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLDJDQUEyQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLDJDQUEyQztRQUNwQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQywyQ0FBMkM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QywyQ0FBMkM7UUFDYixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDbkQsNkNBQTZDO1FBQ25DLFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxPQUFFLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFUyxDQUFDO0lBRW5FLFFBQVE7SUFDUixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztpQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7OEdBN0RVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGlpQkNScEMsbXREQW9DQTs7MkZENUJhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxzQkFBc0I7a0dBSXZCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRWdCLFVBQVU7c0JBQS9CLEtBQUs7dUJBQUMsYUFBYTtnQkFFRCxPQUFPO3NCQUF6QixLQUFLO3VCQUFDLFVBQVU7Z0JBRUMsTUFBTTtzQkFBdkIsS0FBSzt1QkFBQyxTQUFTO2dCQUVVLFNBQVM7c0JBQWxDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVELFdBQVc7c0JBQWpDLEtBQUs7dUJBQUMsY0FBYztnQkFFQyxVQUFVO3NCQUEvQixLQUFLO3VCQUFDLGFBQWE7Z0JBRVUsaUJBQWlCO3NCQUE5QyxLQUFLO3VCQUFDLHFCQUFxQjtnQkFDQSxlQUFlO3NCQUExQyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFFaEIsTUFBTTtzQkFBZixNQUFNO2dCQUNHLEVBQUU7c0JBQVgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2lkZS12aWV3LWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IG51bGwgPSAnzqDOu863z4HOv8+Gzr/Pgc6vzrXPgic7XHJcbiAgQElucHV0KCkgc2hvd0FjdGlvbnMgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgncmV0dXJuLXBhdGgnKSByZXR1cm5QYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnb2stbGFiZWwnKSBva0xhYmVsID0gJ86Rz4DOv864zq7Ous61z4XPg863JztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdvay1zaG93Jykgb2tTaG93ID0gdHJ1ZTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdvay1jbG9zZS1kaWFsb2cnKSBjbG9zZU9uT2sgPSB0cnVlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2NhbmNlbC1sYWJlbCcpIGNhbmNlbExhYmVsID0gJ86RzrrPjc+Bz4nPg863JztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdjYW5jZWwtc2hvdycpIGNhbmNlbFNob3cgPSB0cnVlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2ZvcmNlLWxvY2F0aW9uLWJhY2snKSBmb3JjZUxvY2F0aW9uQmFjayA9IGZhbHNlO1xyXG4gIEBJbnB1dCgncmVkaXJlY3Qtb24tY2xvc2UnKSByZWRpcmVjdE9uQ2xvc2UgPSB0cnVlO1xyXG4gIC8vIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBjYW5jZWw6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb2s6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVNpZGVQYW5lKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmV0dXJuUGF0aCkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmV0dXJuUGF0aCB8fCAnLycpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICgodGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcvKCcpWzBdICE9PSB0aGlzLnJvdXRlci51cmwpICYmICF0aGlzLmZvcmNlTG9jYXRpb25CYWNrKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8oJylbMF0pO1xyXG4gICAgICB9IGVsc2UgaWYgKCh0aGlzLnJvdXRlci51cmwuc3BsaXQoJygnKVswXSAhPT0gdGhpcy5yb3V0ZXIudXJsKSAmJiAhdGhpcy5mb3JjZUxvY2F0aW9uQmFjaykge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcoJylbMF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1pdENsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdChmYWxzZSk7XHJcbiAgICBpZih0aGlzLnJlZGlyZWN0T25DbG9zZSkge1xyXG4gICAgICB0aGlzLmNsb3NlU2lkZVBhbmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0Q2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdChmYWxzZSk7XHJcbiAgICBpZih0aGlzLnJlZGlyZWN0T25DbG9zZSkge1xyXG4gICAgICB0aGlzLmNsb3NlU2lkZVBhbmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0T0soKTogdm9pZCB7XHJcbiAgICB0aGlzLm9rLmVtaXQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy5jbG9zZU9uT2sgJiYgdGhpcy5yZWRpcmVjdE9uQ2xvc2UpIHtcclxuICAgICAgdGhpcy5jbG9zZVNpZGVQYW5lKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1zaXplLWJveFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtY29udGFpbmVyLWlubmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWhlYWRlci1tYXJnaW5zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtaGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1oZWFkZXItdGl0bGVcIiBpZD1cInNsaWRlLW92ZXItdGl0bGVcIj5cclxuICAgICAgICAgICAge3t0aXRsZX19XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtY2xvc2UtYnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlbWl0Q2xvc2UoKVwiIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jbG9zZS1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5DbG9zZSBwYW5lbDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IG91dGxpbmUveCAtLT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2lkZS12aWV3LWxheW91dC1jbG9zZS1idXR0b24taWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICA8IS0tIFJlcGxhY2Ugd2l0aCB5b3VyIGNvbnRlbnQgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDwhLS0gL0VuZCByZXBsYWNlIC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dBY3Rpb25zXCIgY2xhc3M9XCJzaWRlLXZpZXctbGF5b3V0LWFjdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCJjYW5jZWxTaG93XCIgKGNsaWNrKT1cImVtaXRDYW5jZWwoKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtYWN0aW9uLWJ1dHRvbi1jYW5jZWxcIj5cclxuICAgICAgICB7e2NhbmNlbExhYmVsfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCJva1Nob3dcIiAoY2xpY2spPVwiZW1pdE9LKClcIiBjbGFzcz1cInNpZGUtdmlldy1sYXlvdXQtYWN0aW9uLWJ1dHRvbi1zdWJtaXRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICB7e29rTGFiZWx9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
2
|
-
import { fromEvent } from 'rxjs';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
export class ViewLayoutComponent {
|
|
8
|
-
constructor(route$, router$) {
|
|
9
|
-
this.route$ = route$;
|
|
10
|
-
this.router$ = router$;
|
|
11
|
-
// tslint:disable-next-line:no-input-rename
|
|
12
|
-
this.header = true;
|
|
13
|
-
this.fluid = false;
|
|
14
|
-
this.title = 'no title';
|
|
15
|
-
this.icon = null;
|
|
16
|
-
this.actions = null;
|
|
17
|
-
this.busy = false;
|
|
18
|
-
// tslint:disable-next-line:no-input-rename
|
|
19
|
-
this.searchPlaceholder = 'αναζήτηση';
|
|
20
|
-
this.view = null;
|
|
21
|
-
// tslint:disable-next-line:no-input-rename
|
|
22
|
-
this.metaItems = [];
|
|
23
|
-
// tslint:disable-next-line:no-output-on-prefix
|
|
24
|
-
this.onAction = new EventEmitter();
|
|
25
|
-
// tslint:disable-next-line:no-output-on-prefix
|
|
26
|
-
this.onSearch = new EventEmitter();
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
if (this.searchInput$?.nativeElement) {
|
|
30
|
-
fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(map((event) => {
|
|
31
|
-
return event.target.value; // Get input value.
|
|
32
|
-
}), filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),
|
|
33
|
-
// If character length greater than minimumSearchCharacters setting.
|
|
34
|
-
debounceTime(1000), // Time in milliseconds between key events.
|
|
35
|
-
distinctUntilChanged() // If previous query is different from current.
|
|
36
|
-
).subscribe();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
emitActionClick(action) {
|
|
40
|
-
this.onAction.emit(action);
|
|
41
|
-
}
|
|
42
|
-
routerLinkActionClick(action) {
|
|
43
|
-
// console.log('routerLinkActionClick', action);
|
|
44
|
-
if (action.outlet) {
|
|
45
|
-
this.router$.navigate(['', { outlets: { rightpane: action.link } }]);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
this.router$.navigate([action.link]);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
searchActionClick(action, text) {
|
|
52
|
-
this.onSearch.emit(text);
|
|
53
|
-
}
|
|
54
|
-
searchActionType(text) {
|
|
55
|
-
this.onSearch.emit(this.searchInput$?.nativeElement.value);
|
|
56
|
-
}
|
|
57
|
-
handleClear(event) {
|
|
58
|
-
console.log('handle clear!!!');
|
|
59
|
-
event.stopPropagation();
|
|
60
|
-
this.onSearch.emit(event.target?.value);
|
|
61
|
-
}
|
|
62
|
-
switchViewActionClick(action) {
|
|
63
|
-
// console.log('switchViewActionClick', action);
|
|
64
|
-
this.view = action.param;
|
|
65
|
-
if (action && action.param) {
|
|
66
|
-
this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ViewLayoutComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ViewLayoutComponent, selector: "lib-view-layout", inputs: { header: ["show-header", "header"], fluid: "fluid", title: "title", icon: "icon", actions: "actions", busy: "busy", searchPlaceholder: ["search-placeholder", "searchPlaceholder"], view: "view", metaItems: ["meta-items", "metaItems"] }, outputs: { onAction: "onAction", onSearch: "onSearch" }, viewQueries: [{ propertyName: "searchInput$", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<header *ngIf=\"header\" class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n \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 \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\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container mr-1\">\r\n <input id=\"text\"\r\n #search\r\n title=\"search\"\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"search-button\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"p-2 disabled:opacity-75 btn-view-header\" (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i><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=\"'router-link'\">\r\n <button type=\"button\" href=\"#\" class=\"p-2 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\" [ngClass]=\"{'pr-1': action.text}\"></i>\r\n {{ action.text }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\" class=\"p-2 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\" [ngClass]=\"{'pr-1': action.text}\"></i>\r\n {{ action.text }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }] }); }
|
|
71
|
-
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ViewLayoutComponent, decorators: [{
|
|
73
|
-
type: Component,
|
|
74
|
-
args: [{ selector: 'lib-view-layout', template: "<header *ngIf=\"header\" class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n \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 \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\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container mr-1\">\r\n <input id=\"text\"\r\n #search\r\n title=\"search\"\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"search-button\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"p-2 disabled:opacity-75 btn-view-header\" (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i><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=\"'router-link'\">\r\n <button type=\"button\" href=\"#\" class=\"p-2 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\" [ngClass]=\"{'pr-1': action.text}\"></i>\r\n {{ action.text }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\" class=\"p-2 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\" [ngClass]=\"{'pr-1': action.text}\"></i>\r\n {{ action.text }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>" }]
|
|
75
|
-
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }], propDecorators: { searchInput$: [{
|
|
76
|
-
type: ViewChild,
|
|
77
|
-
args: ['search']
|
|
78
|
-
}], header: [{
|
|
79
|
-
type: Input,
|
|
80
|
-
args: ['show-header']
|
|
81
|
-
}], fluid: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], title: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], icon: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], actions: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], busy: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], searchPlaceholder: [{
|
|
92
|
-
type: Input,
|
|
93
|
-
args: ['search-placeholder']
|
|
94
|
-
}], view: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], metaItems: [{
|
|
97
|
-
type: Input,
|
|
98
|
-
args: ['meta-items']
|
|
99
|
-
}], onAction: [{
|
|
100
|
-
type: Output
|
|
101
|
-
}], onSearch: [{
|
|
102
|
-
type: Output
|
|
103
|
-
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU9qRixNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUFvQixNQUFzQixFQUFVLE9BQWU7UUFBL0MsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBakJuRSwyQ0FBMkM7UUFDckIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsVUFBSyxHQUFHLFVBQVUsQ0FBQztRQUNuQixTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixZQUFPLEdBQXdCLElBQUksQ0FBQztRQUNwQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLDJDQUEyQztRQUNkLHNCQUFpQixHQUFrQixXQUFXLENBQUM7UUFDbkUsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBQzdELCtD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QUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUV1QixpQkFBaUI7c0JBQTdDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUNsQixJQUFJO3NCQUFaLEtBQUs7Z0JBRWUsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUVULFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN3aXRjaFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIZWFkZXJNZXRhSXRlbSwgUm91dGVyVmlld0FjdGlvbiwgVmlld0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXZpZXctbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoJykgcHJpdmF0ZSBzZWFyY2hJbnB1dCQ/OiBFbGVtZW50UmVmO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3Nob3ctaGVhZGVyJykgaGVhZGVyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBmbHVpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJ25vIHRpdGxlJztcclxuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBhY3Rpb25zOiBWaWV3QWN0aW9uW10gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBidXN5ID0gZmFsc2U7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2VhcmNoLXBsYWNlaG9sZGVyJykgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnzrHOvc6xzrbOrs+EzrfPg863JztcclxuICBASW5wdXQoKSB2aWV3OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdtZXRhLWl0ZW1zJykgbWV0YUl0ZW1zOiBIZWFkZXJNZXRhSXRlbVtdIHwgbnVsbCA9IFtdO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uQWN0aW9uOiBFdmVudEVtaXR0ZXI8Vmlld0FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+KCk7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1vbi1wcmVmaXhcclxuICBAT3V0cHV0KCkgb25TZWFyY2g6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGUkOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXIkOiBSb3V0ZXIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaElucHV0JD8ubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgIGZyb21FdmVudCh0aGlzLnNlYXJjaElucHV0JC5uYXRpdmVFbGVtZW50LCAna2V5dXAnKS5waXBlKFxyXG4gICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGV2ZW50LnRhcmdldC52YWx1ZTsgLy8gR2V0IGlucHV0IHZhbHVlLlxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGZpbHRlcihpbnB1dFZhbHVlID0+IGlucHV0VmFsdWUubGVuZ3RoID49IDMgfHwgaW5wdXRWYWx1ZS5sZW5ndGggPT09IDApLFxyXG4gICAgICAgIC8vIElmIGNoYXJhY3RlciBsZW5ndGggZ3JlYXRlciB0aGFuIG1pbmltdW1TZWFyY2hDaGFyYWN0ZXJzIHNldHRpbmcuXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMDApLCAvLyBUaW1lIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIGtleSBldmVudHMuXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSAvLyBJZiBwcmV2aW91cyBxdWVyeSBpcyBkaWZmZXJlbnQgZnJvbSBjdXJyZW50LlxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24pOiB2b2lkIHtcclxuICAgIHRoaXMub25BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb246IFJvdXRlclZpZXdBY3Rpb24gfCBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdyb3V0ZXJMaW5rQWN0aW9uQ2xpY2snLCBhY3Rpb24pO1xyXG4gICAgaWYgKGFjdGlvbi5vdXRsZXQpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFsnJywgeyBvdXRsZXRzOiB7IHJpZ2h0cGFuZTogYWN0aW9uLmxpbmsgfSB9XSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoW2FjdGlvbi5saW5rXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWFyY2hBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24sIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHRleHQpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uVHlwZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCh0aGlzLnNlYXJjaElucHV0JD8ubmF0aXZlRWxlbWVudC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2xlYXIoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ2hhbmRsZSBjbGVhciEhIScpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZXZlbnQudGFyZ2V0Py52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3dpdGNoVmlld0FjdGlvbkNsaWNrKGFjdGlvbjogU3dpdGNoVmlld0FjdGlvbiB8IGFueSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3N3aXRjaFZpZXdBY3Rpb25DbGljaycsIGFjdGlvbik7XHJcbiAgICB0aGlzLnZpZXcgPSBhY3Rpb24ucGFyYW07XHJcbiAgICBpZiAoYWN0aW9uICYmIGFjdGlvbi5wYXJhbSkge1xyXG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IHsgdmlldzogYWN0aW9uLnBhcmFtIH0sIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsIHNraXBMb2NhdGlvbkNoYW5nZTogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxoZWFkZXIgKm5nSWY9XCJoZWFkZXJcIiBjbGFzcz1cInZpZXctbGF5b3V0LXBhZGRpbmdzXCI+XHJcbiAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICBcclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJpY29uXCIgW2NsYXNzXT1cImljb24gKyAnIHRpdGxlLWljb24nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIDxoMSBbY2xhc3NdPVwiYnVzeSA/ICd2aWV3LWxheW91dC10aXRsZS1idXN5JyA6ICd2aWV3LWxheW91dC10aXRsZSdcIj57e3RpdGxlIHx8ICcgJ319PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIFxyXG4gICAgICA8ZGl2ICpuZ0lmPVwibWV0YUl0ZW1zICYmIG1ldGFJdGVtcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtZXRhLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldGEgb2YgbWV0YUl0ZW1zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aSAqbmdJZj1cIm1ldGEuaWNvblwiIFtjbGFzc109XCJtZXRhLmljb24gKyAnIG1ldGEtaWNvbidcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS10ZXh0XCI+e3ttZXRhLnRleHR9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3LWxheW91dC10aXRsZS1jb250YWluZXItZmFyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCIgW25nU3dpdGNoXT1cImFjdGlvbi50eXBlXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWFyY2gnXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoXCIgY2xhc3M9XCJzci1vbmx5XCI+U2VhcmNoPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyIG1yLTFcIj5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAjc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICB0aXRsZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgbmFtZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2VhcmNoQWN0aW9uVHlwZShzZWFyY2gudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgIChvbnNlYXJjaCk9XCJoYW5kbGVDbGVhcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uLCBzZWFyY2gudmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3dpdGNoLXZpZXcnXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ2aWV3ID09PSBhY3Rpb24ucGFyYW1cIiB0eXBlPVwiYnV0dG9uXCIgaHJlZj1cIiNcIiBjbGFzcz1cInAtMiBkaXNhYmxlZDpvcGFjaXR5LTc1IGJ0bi12aWV3LWhlYWRlclwiIChjbGljayk9XCJzd2l0Y2hWaWV3QWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1ibG9jayByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT48c3BhbiAqbmdJZj1cInZpZXcgPT09IGFjdGlvbi5wYXJhbVwiIGNsYXNzPVwic2VsZWN0ZWQtdmlldy1pbmRpY2F0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncm91dGVyLWxpbmsnXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBocmVmPVwiI1wiIGNsYXNzPVwicC0yIGJ0bi12aWV3LWhlYWRlclwiIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiIChjbGljayk9XCJyb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIiBbbmdDbGFzc109XCJ7J3ByLTEnOiBhY3Rpb24udGV4dH1cIj48L2k+XHJcbiAgICAgICAgICAgIHt7IGFjdGlvbi50ZXh0IH19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwLTIgYnRuLXZpZXctaGVhZGVyXCIgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCIgKGNsaWNrKT1cImVtaXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiIFtuZ0NsYXNzXT1cInsncHItMSc6IGFjdGlvbi50ZXh0fVwiPjwvaT5cclxuICAgICAgICAgICAge3sgYWN0aW9uLnRleHQgfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2hlYWRlcj5cclxuPGRpdiBbY2xhc3NdPVwiZmx1aWQgPyAndmlldy1jb250YWluZXItZmx1aWQnIDogJ3ZpZXctY29udGFpbmVyJ1wiPlxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9kaXY+Il19
|