@factor_ec/ui 1.0.9 → 1.0.10
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/esm2020/lib/display/avatar/avatar.component.mjs +1 -1
- package/esm2020/lib/navigation/list/list.component.mjs +16 -3
- package/esm2020/lib/navigation/navbar/navbar.component.mjs +10 -8
- package/esm2020/lib/navigation/searchbox/searchbox.component.mjs +8 -5
- package/esm2020/lib/navigation/toolbar/toolbar.component.mjs +8 -6
- package/fesm2015/factor_ec-ui.mjs +37 -17
- package/fesm2015/factor_ec-ui.mjs.map +1 -1
- package/fesm2020/factor_ec-ui.mjs +37 -17
- package/fesm2020/factor_ec-ui.mjs.map +1 -1
- package/lib/navigation/list/list.component.d.ts +3 -1
- package/lib/navigation/navbar/navbar.component.d.ts +3 -3
- package/lib/navigation/searchbox/searchbox.component.d.ts +2 -2
- package/lib/navigation/toolbar/toolbar.component.d.ts +2 -2
- package/package.json +1 -1
|
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
71
71
|
type: HostBinding,
|
|
72
72
|
args: ['class']
|
|
73
73
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZGlzcGxheS9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZGlzcGxheS9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF0RSxNQUFNLE9BQU8sZUFBZTtJQStDMUIsWUFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXhDcEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztJQXlDZixDQUFDO0lBeENMLElBQ0ksR0FBRyxDQUFDLEtBQXlCO1FBQy9CLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBRSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztZQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbEIsSUFBSSxRQUFRLElBQUksS0FBSyxFQUFFO29CQUNyQixLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ3JCLENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztpQkFDOUM7WUFDSCxDQUFDLENBQUM7U0FDSDtJQUNILENBQUM7SUFDRCxJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFDSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQ0ksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUNELElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxXQUFXO1lBQ1gsSUFBSSxDQUFDLEtBQUs7U0FDWCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFNRCxRQUFRO0lBRVIsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksV0FBVyxHQUFhLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs0R0ExRFUsZUFBZTtnR0FBZixlQUFlLG9SQ1I1QiwrQ0FDQTsyRkRPYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFdBQVc7bUdBUXJCLEtBQUs7c0JBREosS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBR0YsR0FBRztzQkFETixLQUFLO2dCQWtCRixLQUFLO3NCQURSLEtBQUs7Z0JBTUYsZUFBZTtzQkFEbEIsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBS2pDLGVBQWU7c0JBRGxCLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUtqQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbG9yU2VydmljZSB9IGZyb20gJ0BmYWN0b3JfZWMvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC1hdmF0YXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgX2xhYmVsITogc3RyaW5nO1xuICBfc3JjITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBjb2xvciE6IHN0cmluZztcbiAgaW5pdGlhbHMhOiBzdHJpbmc7XG4gIGxvYWRlZCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KClcbiAgc2V0IHNyYyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLnRyaW0oKSE9JycpIHtcbiAgICAgIHRoaXMuX3NyYyA9IHZhbHVlO1xuICAgICAgbGV0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICBpbWFnZS5zcmMgPSB2YWx1ZTtcbiAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgaWYgKFwiZGVjb2RlXCIgaW4gaW1hZ2UpIHtcbiAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdJbWFnZS5kZWNvZGUgbm90IGF2YWlsYWJsZS4nKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGxhYmVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sYWJlbCA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbHMgPSB0aGlzLmdldEluaXRpYWxzKHZhbHVlKTtcbiAgfVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmQtY29sb3InKVxuICBnZXQgYmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sb3IgfHwgdGhpcy5jb2xvclNlcnZpY2UuaGV4KHRoaXMuX2xhYmVsKTtcbiAgfVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmQtaW1hZ2UnKVxuICBnZXQgYmFja2dyb3VuZEltYWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NyYyA/IGB1cmwoJHt0aGlzLl9zcmN9KWAgOiAnJztcbiAgfVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdmdC1hdmF0YXInLFxuICAgICAgdGhpcy5jbGFzc1xuICAgIF0uam9pbignICcpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb2xvclNlcnZpY2U6IENvbG9yU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gIH1cbiAgZ2V0SW5pdGlhbHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGFsbEluaXRpYWxzOiBzdHJpbmdbXSA9IHZhbHVlLm1hdGNoKC9cXGJcXHcvZykgfHwgW107XG4gICAgbGV0IGluaXRpYWxzOiBzdHJpbmcgPSAoKGFsbEluaXRpYWxzLnNoaWZ0KCkgfHwgJycpICsgKGFsbEluaXRpYWxzLnBvcCgpIHx8ICcnKSkudG9VcHBlckNhc2UoKTtcbiAgICByZXR1cm4gaW5pdGlhbHM7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cIiFsb2FkZWRcIj57eyBpbml0aWFscyB9fTwvZGl2PlxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Output, Input } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Output, Input, HostBinding } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/router";
|
|
4
4
|
import * as i2 from "@angular/common";
|
|
@@ -9,7 +9,15 @@ export class ListComponent {
|
|
|
9
9
|
this.change = new EventEmitter();
|
|
10
10
|
this.iconNameField = 'iconName';
|
|
11
11
|
this.labelField = 'label';
|
|
12
|
+
this.class = '';
|
|
12
13
|
}
|
|
14
|
+
get hostClasses() {
|
|
15
|
+
return [
|
|
16
|
+
'ft-list',
|
|
17
|
+
this.class
|
|
18
|
+
].join(' ');
|
|
19
|
+
}
|
|
20
|
+
;
|
|
13
21
|
getComponentType(item) {
|
|
14
22
|
let type = 'text';
|
|
15
23
|
if (!item.url || item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
|
|
@@ -36,7 +44,7 @@ export class ListComponent {
|
|
|
36
44
|
}
|
|
37
45
|
}
|
|
38
46
|
ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListComponent, selector: "ft-list", inputs: { iconCollection: "iconCollection", iconNameField: "iconNameField", iconPath: "iconPath", labelField: "labelField", items: "items" }, outputs: { change: "change" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"switch; context: { children: items }\"></ng-container>\n<ng-template #switch let-children=\"children\" let-level=\"level\">\n <ng-container *ngFor=\"let item of children\" [ngSwitch]=\"item.type\">\n <ng-container *ngSwitchCase=\"'collapsible'\">\n <ng-container *ngTemplateOutlet=\"collapsible; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'header'\">\n <ng-container *ngTemplateOutlet=\"header; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"action; context: { item: item }\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #action let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #collapsible let-item=\"item\">\n <button type=\"button\" matRipple class=\"collapsible-header list__item\" [ngClass]=\"{ show: item.metadata.show }\" (click)=\"toggleCollapsible(item)\">\n <div class=\"d-flex align-items-center flex-grow-1\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label flex-grow-1\">{{ item[labelField] }}</div>\n <ft-icon class=\"item__toggle\" name=\"angle-right\" size=\"1\"></ft-icon>\n </div>\n </button>\n <div class=\"collapsible\" [ngClass]=\"{show:item.metadata.show}\" *ngIf=\"item.children\">\n <ng-container *ngTemplateOutlet=\"switch; context: { children: item.children }\"></ng-container>\n </div>\n</ng-template>\n<ng-template #header let-item=\"item\">\n <div class=\"header\" [ngClass]=\"item.class\">\n {{ item[labelField] }}\n </div>\n</ng-template>\n<ng-template #text let-item=\"item\">\n <div class=\"d-flex align-items-center\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--background-color: var(--background-color, #F8F9FA);--background-color-hover: rgba(0, 0, 0, .03);--background-color-active: rgba(var(--primary-rgb), .1);--text-color: #333;--text-color-hover: var(--primary);--text-color-active: var(--primary);display:block;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);background-color:var(--background-color);cursor:pointer;display:flex;outline:none;transition:background-color .3s,color .3s;text-align:left;padding:.75rem 1.5rem;width:100%}@media (min-width: var(--breakpoint-md)){.list__item{width:100%}}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){--background-color: var(--background-color-hover);--text-color: var(--text-color-hover)}.list__item.active,.list__item:active{--background-color: var(--background-color-active);--text-color: var(--text-color-active)}.list__item>div{max-width:100%}.list__item .item__icon{font-size:1.5rem}.list__item .item__icon+.item__label{display:block;margin-left:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list__item .item__icon,.list__item .item__label{transition:margin-left .3s}.list__item .item__toggle{transition:transform .2s}.collapsible{overflow:hidden;transition:max-height .2s;max-height:100vh;background-color:#00000003;box-shadow:inset 0 4px 9px -7px #0006}.collapsible-header{font-weight:500}.collapsible-header.show .item__toggle{transform:rotate(90deg)}.collapsible:not(.show){max-height:0;background-color:transparent}.header{text-transform:uppercase;font-weight:700;padding:.75rem 1.5rem .25rem;font-size:.75rem;opacity:.3}\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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "component", type: i3.IconComponent, selector: "ft-icon", inputs: ["class", "collection", "mode", "name", "path", "size", "src"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
|
|
47
|
+
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListComponent, selector: "ft-list", inputs: { iconCollection: "iconCollection", iconNameField: "iconNameField", iconPath: "iconPath", labelField: "labelField", items: "items", class: "class" }, outputs: { change: "change" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"switch; context: { children: items }\"></ng-container>\n<ng-template #switch let-children=\"children\" let-level=\"level\">\n <ng-container *ngFor=\"let item of children\" [ngSwitch]=\"item.type\">\n <ng-container *ngSwitchCase=\"'collapsible'\">\n <ng-container *ngTemplateOutlet=\"collapsible; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'header'\">\n <ng-container *ngTemplateOutlet=\"header; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"action; context: { item: item }\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #action let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #collapsible let-item=\"item\">\n <button type=\"button\" matRipple class=\"collapsible-header list__item\" [ngClass]=\"{ show: item.metadata.show }\" (click)=\"toggleCollapsible(item)\">\n <div class=\"d-flex align-items-center flex-grow-1\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label flex-grow-1\">{{ item[labelField] }}</div>\n <ft-icon class=\"item__toggle\" name=\"angle-right\" size=\"1\"></ft-icon>\n </div>\n </button>\n <div class=\"collapsible\" [ngClass]=\"{show:item.metadata.show}\" *ngIf=\"item.children\">\n <ng-container *ngTemplateOutlet=\"switch; context: { children: item.children }\"></ng-container>\n </div>\n</ng-template>\n<ng-template #header let-item=\"item\">\n <div class=\"header\" [ngClass]=\"item.class\">\n {{ item[labelField] }}\n </div>\n</ng-template>\n<ng-template #text let-item=\"item\">\n <div class=\"d-flex align-items-center\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--background-color: var(--background-color, #F8F9FA);--background-color-hover: rgba(0, 0, 0, .03);--background-color-active: rgba(var(--primary-rgb), .1);--text-color: #333;--text-color-hover: var(--primary);--text-color-active: var(--primary);display:block;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);background-color:var(--background-color);cursor:pointer;display:flex;outline:none;transition:background-color .3s,color .3s;text-align:left;padding:.75rem 1.5rem;width:100%}@media (min-width: var(--breakpoint-md)){.list__item{width:100%}}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){--background-color: var(--background-color-hover);--text-color: var(--text-color-hover)}.list__item.active,.list__item:active{--background-color: var(--background-color-active);--text-color: var(--text-color-active)}.list__item>div{max-width:100%}.list__item .item__icon{font-size:1.5rem}.list__item .item__icon+.item__label{display:block;margin-left:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list__item .item__icon,.list__item .item__label{transition:margin-left .3s}.list__item .item__toggle{transition:transform .2s}.collapsible{overflow:hidden;transition:max-height .2s;max-height:100vh;background-color:#00000003;box-shadow:inset 0 4px 9px -7px #0006}.collapsible-header{font-weight:500}.collapsible-header.show .item__toggle{transform:rotate(90deg)}.collapsible:not(.show){max-height:0;background-color:transparent}.header{text-transform:uppercase;font-weight:700;padding:.75rem 1.5rem .25rem;font-size:.75rem;opacity:.3}\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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "component", type: i3.IconComponent, selector: "ft-icon", inputs: ["class", "collection", "mode", "name", "path", "size", "src"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
|
|
40
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListComponent, decorators: [{
|
|
41
49
|
type: Component,
|
|
42
50
|
args: [{ selector: 'ft-list', template: "<ng-container *ngTemplateOutlet=\"switch; context: { children: items }\"></ng-container>\n<ng-template #switch let-children=\"children\" let-level=\"level\">\n <ng-container *ngFor=\"let item of children\" [ngSwitch]=\"item.type\">\n <ng-container *ngSwitchCase=\"'collapsible'\">\n <ng-container *ngTemplateOutlet=\"collapsible; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'header'\">\n <ng-container *ngTemplateOutlet=\"header; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"action; context: { item: item }\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #action let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #collapsible let-item=\"item\">\n <button type=\"button\" matRipple class=\"collapsible-header list__item\" [ngClass]=\"{ show: item.metadata.show }\" (click)=\"toggleCollapsible(item)\">\n <div class=\"d-flex align-items-center flex-grow-1\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label flex-grow-1\">{{ item[labelField] }}</div>\n <ft-icon class=\"item__toggle\" name=\"angle-right\" size=\"1\"></ft-icon>\n </div>\n </button>\n <div class=\"collapsible\" [ngClass]=\"{show:item.metadata.show}\" *ngIf=\"item.children\">\n <ng-container *ngTemplateOutlet=\"switch; context: { children: item.children }\"></ng-container>\n </div>\n</ng-template>\n<ng-template #header let-item=\"item\">\n <div class=\"header\" [ngClass]=\"item.class\">\n {{ item[labelField] }}\n </div>\n</ng-template>\n<ng-template #text let-item=\"item\">\n <div class=\"d-flex align-items-center\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--background-color: var(--background-color, #F8F9FA);--background-color-hover: rgba(0, 0, 0, .03);--background-color-active: rgba(var(--primary-rgb), .1);--text-color: #333;--text-color-hover: var(--primary);--text-color-active: var(--primary);display:block;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);background-color:var(--background-color);cursor:pointer;display:flex;outline:none;transition:background-color .3s,color .3s;text-align:left;padding:.75rem 1.5rem;width:100%}@media (min-width: var(--breakpoint-md)){.list__item{width:100%}}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){--background-color: var(--background-color-hover);--text-color: var(--text-color-hover)}.list__item.active,.list__item:active{--background-color: var(--background-color-active);--text-color: var(--text-color-active)}.list__item>div{max-width:100%}.list__item .item__icon{font-size:1.5rem}.list__item .item__icon+.item__label{display:block;margin-left:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list__item .item__icon,.list__item .item__label{transition:margin-left .3s}.list__item .item__toggle{transition:transform .2s}.collapsible{overflow:hidden;transition:max-height .2s;max-height:100vh;background-color:#00000003;box-shadow:inset 0 4px 9px -7px #0006}.collapsible-header{font-weight:500}.collapsible-header.show .item__toggle{transform:rotate(90deg)}.collapsible:not(.show){max-height:0;background-color:transparent}.header{text-transform:uppercase;font-weight:700;padding:.75rem 1.5rem .25rem;font-size:.75rem;opacity:.3}\n"] }]
|
|
@@ -52,5 +60,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
52
60
|
type: Input
|
|
53
61
|
}], items: [{
|
|
54
62
|
type: Input
|
|
63
|
+
}], class: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], hostClasses: [{
|
|
66
|
+
type: HostBinding,
|
|
67
|
+
args: ['class']
|
|
55
68
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL25hdmlnYXRpb24vbGlzdC9saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9saXN0L2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVXBGLE1BQU0sT0FBTyxhQUFhO0lBZ0J4QixZQUNVLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBaEJkLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXJDLGtCQUFhLEdBQVcsVUFBVSxDQUFDO1FBRW5DLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFHN0IsVUFBSyxHQUFXLEVBQUUsQ0FBQztJQVV4QixDQUFDO0lBVEwsSUFBMEIsV0FBVztRQUNuQyxPQUFPO1lBQ0wsU0FBUztZQUNULElBQUksQ0FBQyxLQUFLO1NBQ1gsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBQUEsQ0FBQztJQU1GLGdCQUFnQixDQUFDLElBQVk7UUFDM0IsSUFBSSxJQUFJLEdBQVcsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGdGQUFnRixDQUFDLEVBQUU7WUFDakgsSUFBSSxHQUFHLFFBQVEsQ0FBQztTQUNqQjthQUFNO1lBQ0wsSUFBSSxHQUFHLE1BQU0sQ0FBQztTQUNmO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxFQUFFO2dCQUNwRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2pDO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsTUFBYztRQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzBHQXpDVSxhQUFhOzhGQUFiLGFBQWEsbVNDVjFCLHdvRkErQ0E7MkZEckNhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUzs2RkFLVCxNQUFNO3NCQUFmLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNvQixXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBJbnB1dCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudCB7XG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbj4oKTtcbiAgQElucHV0KCkgaWNvbkNvbGxlY3Rpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25OYW1lRmllbGQ6IHN0cmluZyA9ICdpY29uTmFtZSc7XG4gIEBJbnB1dCgpIGljb25QYXRoITogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbEZpZWxkOiBzdHJpbmcgPSAnbGFiZWwnO1xuICBASW5wdXQoKSBpdGVtcyE6IEFjdGlvbltdO1xuXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnZnQtbGlzdCcsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgXS5qb2luKCcgJyk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHsgfVxuXG4gIGdldENvbXBvbmVudFR5cGUoaXRlbTogQWN0aW9uKTogc3RyaW5nIHtcbiAgICBsZXQgdHlwZTogc3RyaW5nID0gJ3RleHQnO1xuICAgIGlmICghaXRlbS51cmwgfHwgaXRlbS51cmwubWF0Y2goL14oaHR0cHxodHRwcyk6XFwvXFwvKFxcdys6ezAsMX1cXHcqQCk/KFxcUyspKDpbMC05XSspPyhcXC98XFwvKFtcXHcjITouPys9JiVAIVxcLVxcL10pKT8vKSkge1xuICAgICAgdHlwZSA9ICdidXR0b24nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlID0gJ2xpbmsnO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuICBzZXRJdGVtKGl0ZW06IEFjdGlvbik6IHZvaWQge1xuICAgIGlmIChpdGVtLnVybCkge1xuICAgICAgaWYgKGl0ZW0udXJsLm1hdGNoKC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhcXHcrOnswLDF9XFx3KkApPyhcXFMrKSg6WzAtOV0rKT8oXFwvfFxcLyhbXFx3IyE6Lj8rPSYlQCFcXC1cXC9dKSk/LykpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBpdGVtLnVybDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGl0ZW0uY2xpY2spIHtcbiAgICAgIGl0ZW0uY2xpY2soKTtcbiAgICB9XG4gIH1cbiAgdG9nZ2xlQ29sbGFwc2libGUoYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBhY3Rpb24ubWV0YWRhdGEuc2hvdyA9ICFhY3Rpb24ubWV0YWRhdGEuc2hvdztcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGFjdGlvbik7XG4gIH1cblxufVxuXG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3dpdGNoOyBjb250ZXh0OiB7IGNoaWxkcmVuOiBpdGVtcyB9XCI+PC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3N3aXRjaCBsZXQtY2hpbGRyZW49XCJjaGlsZHJlblwiIGxldC1sZXZlbD1cImxldmVsXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2hpbGRyZW5cIiBbbmdTd2l0Y2hdPVwiaXRlbS50eXBlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbGxhcHNpYmxlJ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbGxhcHNpYmxlOyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidoZWFkZXInXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyOyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb247IGNvbnRleHQ6IHsgaXRlbTogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYWN0aW9uIGxldC1pdGVtPVwiaXRlbVwiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJnZXRDb21wb25lbnRUeXBlKGl0ZW0pXCI+XG4gICAgPGJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwiJ2J1dHRvbidcIiB0eXBlPVwiYnV0dG9uXCIgbWF0UmlwcGxlIGNsYXNzPVwibGlzdF9faXRlbVwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIiAoY2xpY2spPVwic2V0SXRlbShpdGVtKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRleHQ7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9idXR0b24+XG4gICAgPGEgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiIFtyb3V0ZXJMaW5rXT1cIml0ZW0udXJsXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIG1hdFJpcHBsZSBjbGFzcz1cImxpc3RfX2l0ZW1cIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCIgKGNsaWNrKT1cInNldEl0ZW0oaXRlbSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0OyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjb2xsYXBzaWJsZSBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0UmlwcGxlIGNsYXNzPVwiY29sbGFwc2libGUtaGVhZGVyIGxpc3RfX2l0ZW1cIiBbbmdDbGFzc109XCJ7IHNob3c6IGl0ZW0ubWV0YWRhdGEuc2hvdyB9XCIgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNpYmxlKGl0ZW0pXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ncm93LTFcIj5cbiAgICAgIDxmdC1pY29uIGNsYXNzPVwiaXRlbV9faWNvblwiICpuZ0lmPVwiaXRlbVtpY29uTmFtZUZpZWxkXVwiIFtuYW1lXT1cIml0ZW1baWNvbk5hbWVGaWVsZF1cIiBbY29sbGVjdGlvbl09XCJpY29uQ29sbGVjdGlvblwiIFtwYXRoXT1cImljb25QYXRoXCI+PC9mdC1pY29uPlxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW1fX2xhYmVsIGZsZXgtZ3Jvdy0xXCI+e3sgaXRlbVtsYWJlbEZpZWxkXSB9fTwvZGl2PlxuICAgICAgPGZ0LWljb24gY2xhc3M9XCJpdGVtX190b2dnbGVcIiBuYW1lPVwiYW5nbGUtcmlnaHRcIiBzaXplPVwiMVwiPjwvZnQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJjb2xsYXBzaWJsZVwiIFtuZ0NsYXNzXT1cIntzaG93Oml0ZW0ubWV0YWRhdGEuc2hvd31cIiAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3dpdGNoOyBjb250ZXh0OiB7IGNoaWxkcmVuOiBpdGVtLmNoaWxkcmVuIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNoZWFkZXIgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJcIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCI+XG4gICAge3sgaXRlbVtsYWJlbEZpZWxkXSB9fVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RleHQgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGZ0LWljb24gY2xhc3M9XCJpdGVtX19pY29uXCIgKm5nSWY9XCJpdGVtW2ljb25OYW1lRmllbGRdXCIgW25hbWVdPVwiaXRlbVtpY29uTmFtZUZpZWxkXVwiIFtjb2xsZWN0aW9uXT1cImljb25Db2xsZWN0aW9uXCIgW3BhdGhdPVwiaWNvblBhdGhcIj48L2Z0LWljb24+XG4gICAgPGRpdiBjbGFzcz1cIml0ZW1fX2xhYmVsXCI+e3sgaXRlbVtsYWJlbEZpZWxkXSB9fTwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -6,19 +6,21 @@ import * as i3 from "../../display/icon/icon.component";
|
|
|
6
6
|
export class NavbarComponent {
|
|
7
7
|
constructor(router) {
|
|
8
8
|
this.router = router;
|
|
9
|
-
this.class = '';
|
|
10
9
|
this.iconNameField = 'iconName';
|
|
11
10
|
this.labelField = 'label';
|
|
12
11
|
this.labelPlacement = 'auto';
|
|
13
12
|
this.position = 'auto';
|
|
13
|
+
this.class = '';
|
|
14
14
|
}
|
|
15
|
-
ngOnInit() { }
|
|
16
15
|
get hostClasses() {
|
|
17
16
|
return [
|
|
17
|
+
'ft-navbar',
|
|
18
18
|
this.class,
|
|
19
19
|
this.position
|
|
20
20
|
].join(' ');
|
|
21
21
|
}
|
|
22
|
+
;
|
|
23
|
+
ngOnInit() { }
|
|
22
24
|
getComponentType(item) {
|
|
23
25
|
let type = 'text';
|
|
24
26
|
if (!item.url || item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
|
|
@@ -47,13 +49,11 @@ export class NavbarComponent {
|
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
NavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavbarComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
-
NavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NavbarComponent, selector: "ft-navbar", inputs: {
|
|
52
|
+
NavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NavbarComponent, selector: "ft-navbar", inputs: { iconCollection: "iconCollection", iconNameField: "iconNameField", labelField: "labelField", labelPlacement: "labelPlacement", items: "items", position: "position", class: "class" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content select=\"[ftStart]\"></ng-content>\n<div class=\"list\" *ngIf=\"items\">\n <ng-container *ngFor=\"let item of items; trackBy: trackByItem\">\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { item: item }\"></ng-container>\n </ng-container>\n</div>\n<ng-content select=\"[ftEnd]\"></ng-content>\n<ng-template #actionTemplate let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"[labelPlacement, item.class || '' ]\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"textTemplate; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"[labelPlacement, item.class || '' ]\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"textTemplate; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #textTemplate let-item=\"item\">\n <div class=\"item\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [title]=\"labelPlacement === 'none' ? item[labelField] : '' \"></ft-icon>\n <div class=\"item__label\" *ngIf=\"labelPlacement !== 'none'\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--min-width: 4rem;--min-height: 3.5rem;--background-color: #FFF;--background-color-hover: rgba(0, 0, 0, .1);--background-color-active: rgba(0, 0, 0, .1);--text-color: #333;--text-color-hover: #333;--text-color-active: #FFF;background-color:var(--background-color);position:fixed;transition:transform .3s ease-in-out,width .3s,color .3s,background-color .3s;z-index:var(--z-index, 990);font-size:.875rem;display:flex}@media (min-width: 576px){:host{--min-width: 13.75rem}}:host.left,:host.right{top:0;bottom:0;box-shadow:0 1px 1px #00000024,0 1px 3px #0000001f;min-width:var(--min-width)}:host.left{left:0}:host.right{right:0}:host.bottom,:host.top{left:0;right:0;min-height:var(--min-height)}:host.bottom .list,:host.top .list{display:flex}:host.bottom .list__item,:host.top .list__item{flex-grow:1;justify-content:center}:host.bottom{bottom:0;box-shadow:0 0 1px #00000024,0 -1px 3px #0000001f}:host.top{top:0;box-shadow:0 0 1px #00000024,0 1px 3px #0000001f}@media (min-width: 768px){:host.auto{left:0;top:0;bottom:0;box-shadow:0 1px 1px #00000024,0 1px 3px #0000001f;min-width:var(--min-width);flex-direction:column}}@media (max-width: 767.98px){:host.auto{bottom:0;left:0;right:0;box-shadow:0 0 1px #00000024,0 -1px 3px #0000001f;min-height:var(--min-height)}:host.auto .list{display:flex}}.list{display:block;flex-grow:1;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);cursor:pointer;outline:none;transition:background-color .3s,color .3s;display:flex;align-items:center;padding:.75rem 1rem;width:100%}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){background:var(--hover-background-color);color:var(--hover-text-color)}.list__item.active{background:var(--active-background-color);color:var(--active-text-color)}.list__item.left{justify-content:flex-start}.list__item.left .item__icon{margin-right:.5rem}.list__item.right{justify-content:flex-end}.list__item.right .item{flex-direction:row-reverse}.list__item.right .item__icon{margin-left:.5rem}.list__item.top{justify-content:center;flex-grow:1;padding:.5rem}.list__item.top .item{flex-direction:column-reverse}.list__item.bottom{justify-content:center;flex-grow:1;padding:.5rem}.list__item.bottom .item{flex-direction:column}@media (min-width: 768px){.list__item.auto .item{flex-direction:row}.list__item.auto .item__icon{margin-right:.5rem}}@media (max-width: 767.98px){.list__item.auto{justify-content:center;flex-grow:1;padding:.5rem}.list__item.auto .item{flex-direction:column;font-size:.6875rem}}.list__item .item{display:flex;align-items:center}.list__item .item__icon{font-size:1.5rem}.list__item .item__label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.IconComponent, selector: "ft-icon", inputs: ["class", "collection", "mode", "name", "path", "size", "src"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
|
|
51
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavbarComponent, decorators: [{
|
|
52
54
|
type: Component,
|
|
53
|
-
args: [{ selector: 'ft-navbar', template: "<ng-content select=\"[ftStart]\"></ng-content>\n<div class=\"list\" *ngIf=\"items\">\n <ng-container *ngFor=\"let item of items; trackBy: trackByItem\">\n <ng-container *ngTemplateOutlet=\"
|
|
54
|
-
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: {
|
|
55
|
-
type: Input
|
|
56
|
-
}], iconCollection: [{
|
|
55
|
+
args: [{ selector: 'ft-navbar', template: "<ng-content select=\"[ftStart]\"></ng-content>\n<div class=\"list\" *ngIf=\"items\">\n <ng-container *ngFor=\"let item of items; trackBy: trackByItem\">\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { item: item }\"></ng-container>\n </ng-container>\n</div>\n<ng-content select=\"[ftEnd]\"></ng-content>\n<ng-template #actionTemplate let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"[labelPlacement, item.class || '' ]\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"textTemplate; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"[labelPlacement, item.class || '' ]\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"textTemplate; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #textTemplate let-item=\"item\">\n <div class=\"item\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [title]=\"labelPlacement === 'none' ? item[labelField] : '' \"></ft-icon>\n <div class=\"item__label\" *ngIf=\"labelPlacement !== 'none'\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--min-width: 4rem;--min-height: 3.5rem;--background-color: #FFF;--background-color-hover: rgba(0, 0, 0, .1);--background-color-active: rgba(0, 0, 0, .1);--text-color: #333;--text-color-hover: #333;--text-color-active: #FFF;background-color:var(--background-color);position:fixed;transition:transform .3s ease-in-out,width .3s,color .3s,background-color .3s;z-index:var(--z-index, 990);font-size:.875rem;display:flex}@media (min-width: 576px){:host{--min-width: 13.75rem}}:host.left,:host.right{top:0;bottom:0;box-shadow:0 1px 1px #00000024,0 1px 3px #0000001f;min-width:var(--min-width)}:host.left{left:0}:host.right{right:0}:host.bottom,:host.top{left:0;right:0;min-height:var(--min-height)}:host.bottom .list,:host.top .list{display:flex}:host.bottom .list__item,:host.top .list__item{flex-grow:1;justify-content:center}:host.bottom{bottom:0;box-shadow:0 0 1px #00000024,0 -1px 3px #0000001f}:host.top{top:0;box-shadow:0 0 1px #00000024,0 1px 3px #0000001f}@media (min-width: 768px){:host.auto{left:0;top:0;bottom:0;box-shadow:0 1px 1px #00000024,0 1px 3px #0000001f;min-width:var(--min-width);flex-direction:column}}@media (max-width: 767.98px){:host.auto{bottom:0;left:0;right:0;box-shadow:0 0 1px #00000024,0 -1px 3px #0000001f;min-height:var(--min-height)}:host.auto .list{display:flex}}.list{display:block;flex-grow:1;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);cursor:pointer;outline:none;transition:background-color .3s,color .3s;display:flex;align-items:center;padding:.75rem 1rem;width:100%}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){background:var(--hover-background-color);color:var(--hover-text-color)}.list__item.active{background:var(--active-background-color);color:var(--active-text-color)}.list__item.left{justify-content:flex-start}.list__item.left .item__icon{margin-right:.5rem}.list__item.right{justify-content:flex-end}.list__item.right .item{flex-direction:row-reverse}.list__item.right .item__icon{margin-left:.5rem}.list__item.top{justify-content:center;flex-grow:1;padding:.5rem}.list__item.top .item{flex-direction:column-reverse}.list__item.bottom{justify-content:center;flex-grow:1;padding:.5rem}.list__item.bottom .item{flex-direction:column}@media (min-width: 768px){.list__item.auto .item{flex-direction:row}.list__item.auto .item__icon{margin-right:.5rem}}@media (max-width: 767.98px){.list__item.auto{justify-content:center;flex-grow:1;padding:.5rem}.list__item.auto .item{flex-direction:column;font-size:.6875rem}}.list__item .item{display:flex;align-items:center}.list__item .item__icon{font-size:1.5rem}.list__item .item__label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { iconCollection: [{
|
|
57
57
|
type: Input
|
|
58
58
|
}], iconNameField: [{
|
|
59
59
|
type: Input
|
|
@@ -65,8 +65,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
65
65
|
type: Input
|
|
66
66
|
}], position: [{
|
|
67
67
|
type: Input
|
|
68
|
+
}], class: [{
|
|
69
|
+
type: Input
|
|
68
70
|
}], hostClasses: [{
|
|
69
71
|
type: HostBinding,
|
|
70
72
|
args: ['class']
|
|
71
73
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTdEUsTUFBTSxPQUFPLGVBQWU7SUFpQjFCLFlBQ1UsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoQmYsa0JBQWEsR0FBVyxVQUFVLENBQUM7UUFDbkMsZUFBVSxHQUFXLE9BQU8sQ0FBQztRQUM3QixtQkFBYyxHQUEwRCxNQUFNLENBQUM7UUFFL0UsYUFBUSxHQUFpRCxNQUFNLENBQUM7UUFFaEUsVUFBSyxHQUFXLEVBQUUsQ0FBQztJQVd4QixDQUFDO0lBVkwsSUFBMEIsV0FBVztRQUNuQyxPQUFPO1lBQ0wsV0FBVztZQUNYLElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLFFBQVE7U0FDZCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFBQSxDQUFDO0lBTUYsUUFBUSxLQUFLLENBQUM7SUFDZCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksSUFBSSxHQUFXLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxFQUFFO1lBQ2pILElBQUksR0FBRyxRQUFRLENBQUM7U0FDakI7YUFBTTtZQUNMLElBQUksR0FBRyxNQUFNLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsRUFBRTtnQkFDcEcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNqQztTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUNELGlCQUFpQixDQUFDLE1BQWM7UUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzs0R0E3Q1UsZUFBZTtnR0FBZixlQUFlLHdTQ1Q1QixpNkNBdUJBOzJGRGRhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsV0FBVzs2RkFLWixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDb0IsV0FBVztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC1uYXZiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmF2YmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTmF2YmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaWNvbkNvbGxlY3Rpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25OYW1lRmllbGQ6IHN0cmluZyA9ICdpY29uTmFtZSc7XG4gIEBJbnB1dCgpIGxhYmVsRmllbGQ6IHN0cmluZyA9ICdsYWJlbCc7XG4gIEBJbnB1dCgpIGxhYmVsUGxhY2VtZW50OiAndG9wJyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdhdXRvJyB8ICdub25lJyA9ICdhdXRvJztcbiAgQElucHV0KCkgaXRlbXMhOiBBY3Rpb25bXTtcbiAgQElucHV0KCkgcG9zaXRpb246ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ2F1dG8nID0gJ2F1dG8nO1xuXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnZnQtbmF2YmFyJyxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICB0aGlzLnBvc2l0aW9uXG4gICAgXS5qb2luKCcgJyk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkgeyB9XG4gIGdldENvbXBvbmVudFR5cGUoaXRlbTogQWN0aW9uKTogc3RyaW5nIHtcbiAgICBsZXQgdHlwZTogc3RyaW5nID0gJ3RleHQnO1xuICAgIGlmICghaXRlbS51cmwgfHwgaXRlbS51cmwubWF0Y2goL14oaHR0cHxodHRwcyk6XFwvXFwvKFxcdys6ezAsMX1cXHcqQCk/KFxcUyspKDpbMC05XSspPyhcXC98XFwvKFtcXHcjITouPys9JiVAIVxcLVxcL10pKT8vKSkge1xuICAgICAgdHlwZSA9ICdidXR0b24nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlID0gJ2xpbmsnO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuICBzZXRJdGVtKGl0ZW06IEFjdGlvbik6IHZvaWQge1xuICAgIGlmIChpdGVtLnVybCkge1xuICAgICAgaWYgKGl0ZW0udXJsLm1hdGNoKC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhcXHcrOnswLDF9XFx3KkApPyhcXFMrKSg6WzAtOV0rKT8oXFwvfFxcLyhbXFx3IyE6Lj8rPSYlQCFcXC1cXC9dKSk/LykpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBpdGVtLnVybDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGl0ZW0uY2xpY2spIHtcbiAgICAgIGl0ZW0uY2xpY2soKTtcbiAgICB9XG4gIH1cbiAgdG9nZ2xlQ29sbGFwc2libGUoYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBhY3Rpb24ubWV0YWRhdGEuc2hvdyA9ICFhY3Rpb24ubWV0YWRhdGEuc2hvdztcbiAgfVxuICB0cmFja0J5SXRlbShpbmRleDogbnVtYmVyLCBpdGVtOiBBY3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtpdGVtLmxhYmVsfSAke2l0ZW0udXJsfWA7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Z0U3RhcnRdXCI+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImxpc3RcIiAqbmdJZj1cIml0ZW1zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvblRlbXBsYXRlOyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Z0RW5kXVwiPjwvbmctY29udGVudD5cbjxuZy10ZW1wbGF0ZSAjYWN0aW9uVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImdldENvbXBvbmVudFR5cGUoaXRlbSlcIj5cbiAgICA8YnV0dG9uICpuZ1N3aXRjaENhc2U9XCInYnV0dG9uJ1wiIHR5cGU9XCJidXR0b25cIiBtYXRSaXBwbGUgY2xhc3M9XCJsaXN0X19pdGVtXCIgW25nQ2xhc3NdPVwiW2xhYmVsUGxhY2VtZW50LCBpdGVtLmNsYXNzIHx8ICcnIF1cIiAoY2xpY2spPVwic2V0SXRlbShpdGVtKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRleHRUZW1wbGF0ZTsgY29udGV4dDogeyBpdGVtOiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YSAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCIgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgbWF0UmlwcGxlIGNsYXNzPVwibGlzdF9faXRlbVwiIFtuZ0NsYXNzXT1cIltsYWJlbFBsYWNlbWVudCwgaXRlbS5jbGFzcyB8fCAnJyBdXCIgKGNsaWNrKT1cInNldEl0ZW0oaXRlbSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0VGVtcGxhdGU7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RleHRUZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cbiAgICA8ZnQtaWNvbiBjbGFzcz1cIml0ZW1fX2ljb25cIiAqbmdJZj1cIml0ZW1baWNvbk5hbWVGaWVsZF1cIiBbbmFtZV09XCJpdGVtW2ljb25OYW1lRmllbGRdXCIgW2NvbGxlY3Rpb25dPVwiaWNvbkNvbGxlY3Rpb25cIiBbdGl0bGVdPVwibGFiZWxQbGFjZW1lbnQgPT09ICdub25lJyA/IGl0ZW1bbGFiZWxGaWVsZF0gOiAnJyBcIj48L2Z0LWljb24+XG4gICAgPGRpdiBjbGFzcz1cIml0ZW1fX2xhYmVsXCIgKm5nSWY9XCJsYWJlbFBsYWNlbWVudCAhPT0gJ25vbmUnXCI+e3sgaXRlbVtsYWJlbEZpZWxkXSB9fTwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -8,15 +8,18 @@ export class SearchboxComponent {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
this.execute = new EventEmitter();
|
|
10
10
|
this.showChange = new EventEmitter();
|
|
11
|
+
this.class = '';
|
|
11
12
|
this.onChange = (_) => { };
|
|
12
13
|
this.onTouched = (_) => { };
|
|
13
14
|
}
|
|
14
15
|
get hostClasses() {
|
|
15
16
|
return [
|
|
17
|
+
'ft-searchbox',
|
|
16
18
|
this.class,
|
|
17
19
|
this.shown ? 'show' : ''
|
|
18
20
|
].join(' ');
|
|
19
21
|
}
|
|
22
|
+
;
|
|
20
23
|
set show(value) {
|
|
21
24
|
this.shown = value;
|
|
22
25
|
if (value) {
|
|
@@ -65,7 +68,7 @@ export class SearchboxComponent {
|
|
|
65
68
|
}
|
|
66
69
|
}
|
|
67
70
|
SearchboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: SearchboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
SearchboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: SearchboxComponent, selector: "ft-searchbox", inputs: {
|
|
71
|
+
SearchboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: SearchboxComponent, selector: "ft-searchbox", inputs: { placeholder: "placeholder", class: "class", show: "show", value: "value" }, outputs: { execute: "execute", showChange: "showChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [
|
|
69
72
|
{
|
|
70
73
|
provide: NG_VALUE_ACCESSOR,
|
|
71
74
|
useExisting: forwardRef(() => SearchboxComponent),
|
|
@@ -81,9 +84,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
81
84
|
multi: true
|
|
82
85
|
}
|
|
83
86
|
], template: "<form (submit)=\"onSearch($event)\" class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <button type=\"button\" mat-icon-button class=\"p-2 mr-2\" (click)=\"closeSearch()\">\n <ft-icon name=\"arrow-left\" size=\"2\"></ft-icon>\n </button>\n <input\n #input\n type=\"search\"\n matInput\n class=\"flex-grow-1\"\n i18n-placeholder\n placeholder=\"Search criteria\"\n [disabled]=\"disabled\"\n (change)=\"updateValue($event)\"\n (keyup)=\"updateValue($event)\"\n *ngIf=\"!placeholder\"\n />\n <input\n #inputPlaceholder\n type=\"search\"\n matInput\n class=\"flex-grow-1\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (change)=\"updateValue($event)\"\n (keyup)=\"updateValue($event)\"\n *ngIf=\"placeholder\"\n />\n <button type=\"submit\" mat-icon-button class=\"p-2 ml-2\">\n <ft-icon name=\"search\" size=\"2\"></ft-icon>\n </button>\n </div>\n </form>\n ", styles: [":host{z-index:var(--z-index, 980);background-color:var(--background-color, #FFF);display:block;transition:background-color .2s,box-shadow .2s;position:sticky;top:-1px;margin-top:-3.5rem;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}:host.show{opacity:1;visibility:visible}@media (min-width: 576px){:host{margin-top:-4.5rem}}@media (min-width: 768px){:host{top:-2rem;margin-top:-6.5rem}}:host button{min-width:0;line-height:inherit}:host input{border:0;background-color:transparent}:host input:focus{outline:none}\n"] }]
|
|
84
|
-
}], ctorParameters: function () { return []; }, propDecorators: {
|
|
85
|
-
type: Input
|
|
86
|
-
}], input: [{
|
|
87
|
+
}], ctorParameters: function () { return []; }, propDecorators: { input: [{
|
|
87
88
|
type: ViewChild,
|
|
88
89
|
args: ['input', { static: false }]
|
|
89
90
|
}], inputPlaceholder: [{
|
|
@@ -95,6 +96,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
95
96
|
type: Output
|
|
96
97
|
}], showChange: [{
|
|
97
98
|
type: Output
|
|
99
|
+
}], class: [{
|
|
100
|
+
type: Input
|
|
98
101
|
}], hostClasses: [{
|
|
99
102
|
type: HostBinding,
|
|
100
103
|
args: ['class']
|
|
@@ -103,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
103
106
|
}], value: [{
|
|
104
107
|
type: Input
|
|
105
108
|
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWN6RSxNQUFNLE9BQU8sa0JBQWtCO0lBOEM3QjtRQWxDVSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNyQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxQyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBUzVCLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLGNBQVMsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBcUJaLENBQUM7SUE5QmpCLElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLGNBQWM7WUFDZCxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN6QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFBQSxDQUFDO0lBSUYsSUFDSSxJQUFJLENBQUMsS0FBYztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLEtBQUssRUFBRTtZQUNULFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDO0lBQ0QsSUFDSSxLQUFLLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsUUFBUTtJQUNSLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELGdCQUFnQjtRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwRSxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDN0IsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBa0I7UUFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDOzsrR0E1RVUsa0JBQWtCO21HQUFsQixrQkFBa0IsK09BUmxCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDakQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLGlPQ2JILHFtQ0FpQ0U7MkZEbEJXLGtCQUFrQjtrQkFaOUIsU0FBUzsrQkFDRSxjQUFjLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzBFQU9ELEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUdyQyxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBS3ZDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVFLEtBQUs7c0JBQWIsS0FBSztnQkFDb0IsV0FBVztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPO2dCQVdoQixJQUFJO3NCQURQLEtBQUs7Z0JBVUYsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIEhvc3RCaW5kaW5nLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC1zZWFyY2hib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VhcmNoYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaGJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBDbGFzZSBvIGNsYXNlcyBhc2lnbmFkYXMgYWwgY29tcG9uZW50ZVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgaW5wdXQhOiBFbGVtZW50UmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2lucHV0UGxhY2Vob2xkZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgaW5wdXRQbGFjZWhvbGRlciE6IEVsZW1lbnRSZWY8YW55PjtcbiAgZGlzYWJsZWQhOiBib29sZWFuO1xuICBwcml2YXRlIF92YWx1ZSE6IHN0cmluZztcbiAgcHJpdmF0ZSBzaG93biE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyITogc3RyaW5nO1xuICBAT3V0cHV0KCkgZXhlY3V0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc2hvd0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z0LXNlYXJjaGJveCcsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgdGhpcy5zaG93biA/ICdzaG93JyA6ICcnXG4gICAgXS5qb2luKCcgJyk7XG4gIH07XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG4gIG9uVG91Y2hlZCA9IChfOiBhbnkpID0+IHsgfTtcbiAgQElucHV0KClcbiAgc2V0IHNob3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3duID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5nZXROYXRpdmVFbGVtZW50KCkuZm9jdXMoKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgICB0aGlzLmdldE5hdGl2ZUVsZW1lbnQoKS52YWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKHRoaXMuX3ZhbHVlKTtcbiAgfVxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuICBjbG9zZVNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cbiAgZ2V0TmF0aXZlRWxlbWVudCgpIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMucGxhY2Vob2xkZXIgPyB0aGlzLmlucHV0UGxhY2Vob2xkZXIgOiB0aGlzLmlucHV0O1xuICAgIHJldHVybiBpbnB1dC5uYXRpdmVFbGVtZW50O1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuICBvblNlYXJjaChldmVudDogU3VibWl0RXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuZ2V0TmF0aXZlRWxlbWVudCgpLnZhbHVlID0gJyc7XG4gICAgdGhpcy5leGVjdXRlLmVtaXQodGhpcy5fdmFsdWUpO1xuICB9XG4gIHVwZGF0ZVZhbHVlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICB9XG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG59XG4iLCI8Zm9ybSAoc3VibWl0KT1cIm9uU2VhcmNoKCRldmVudClcIiBjbGFzcz1cImNvbnRhaW5lciBwLTIgcC1zbS0zIHBiLW1kLTMgcHQtbWQtNSBweC1tZC0zIHB4LWxnLTVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNsYXNzPVwicC0yIG1yLTJcIiAoY2xpY2spPVwiY2xvc2VTZWFyY2goKVwiPlxuICAgICAgICA8ZnQtaWNvbiBuYW1lPVwiYXJyb3ctbGVmdFwiIHNpemU9XCIyXCI+PC9mdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCJcbiAgICAgICAgaTE4bi1wbGFjZWhvbGRlclxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBjcml0ZXJpYVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cCk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgKm5nSWY9XCIhcGxhY2Vob2xkZXJcIlxuICAgICAgLz5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRQbGFjZWhvbGRlclxuICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cCk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgKm5nSWY9XCJwbGFjZWhvbGRlclwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgbWF0LWljb24tYnV0dG9uIGNsYXNzPVwicC0yIG1sLTJcIj5cbiAgICAgICAgPGZ0LWljb24gbmFtZT1cInNlYXJjaFwiIHNpemU9XCIyXCI+PC9mdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbiAgIl19
|
|
@@ -14,17 +14,19 @@ export class ToolbarComponent {
|
|
|
14
14
|
this.rootMargin = { rootMargin: '0px 0px 0px 0px' };
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
if (this.titleOptions && !this.currentTitleOption) {
|
|
19
|
-
this.currentTitleOption = this.titleOptions[0];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
17
|
get hostClasses() {
|
|
23
18
|
return [
|
|
19
|
+
'ft-toolbar',
|
|
24
20
|
this.class,
|
|
25
21
|
this.overlapped ? 'overlapped' : ''
|
|
26
22
|
].join(' ');
|
|
27
23
|
}
|
|
24
|
+
;
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
if (this.titleOptions && !this.currentTitleOption) {
|
|
27
|
+
this.currentTitleOption = this.titleOptions[0];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
28
30
|
setOverlapped(overlapped) {
|
|
29
31
|
this.overlapped = !overlapped;
|
|
30
32
|
}
|
|
@@ -48,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
48
50
|
type: HostBinding,
|
|
49
51
|
args: ['class']
|
|
50
52
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL25hdmlnYXRpb24vdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBU3RFLE1BQU0sT0FBTyxnQkFBZ0I7SUFpQjNCO1FBWEEsZUFBVSxHQUFRLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUM7UUFFM0MsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQVUxQixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUM5RyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsWUFBWSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFiRCxJQUEwQixXQUFXO1FBQ25DLE9BQU87WUFDTCxZQUFZO1lBQ1osSUFBSSxDQUFDLEtBQUs7WUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDcEMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBQUEsQ0FBQztJQVNGLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFVBQW1CO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDaEMsQ0FBQzs7NkdBL0JVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLDZQQ1Q3QixzaEZBMkNBOzJGRGxDYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTswRUFLYixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ29CLFdBQVc7c0JBQXBDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Rvb2xiYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYWN0aW9uT3B0aW9ucyE6IEFjdGlvbltdO1xuICBASW5wdXQoKSBjdXJyZW50VGl0bGVPcHRpb24hOiBBY3Rpb247XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZU9wdGlvbnMhOiBBY3Rpb25bXTtcbiAgb3ZlcmxhcHBlZCE6IGJvb2xlYW47XG4gIHJvb3RNYXJnaW46IGFueSA9IHsgcm9vdE1hcmdpbjogJzBweCAwcHggMHB4IDBweCcgfTtcblxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z0LXRvb2xiYXInLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIHRoaXMub3ZlcmxhcHBlZCA/ICdvdmVybGFwcGVkJyA6ICcnXG4gICAgXS5qb2luKCcgJyk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgYnJlYWtwb2ludFNtID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tYnJlYWtwb2ludC1zbScpKTtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCBicmVha3BvaW50U20pIHtcbiAgICAgIHRoaXMucm9vdE1hcmdpbiA9IHsgcm9vdE1hcmdpbjogJzBweCAwcHggMHB4IDBweCcgfTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50aXRsZU9wdGlvbnMgJiYgIXRoaXMuY3VycmVudFRpdGxlT3B0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnRUaXRsZU9wdGlvbiA9IHRoaXMudGl0bGVPcHRpb25zWzBdO1xuICAgIH1cbiAgfVxuICBzZXRPdmVybGFwcGVkKG92ZXJsYXBwZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXBwZWQgPSAhb3ZlcmxhcHBlZDtcbiAgfVxuXG59XG4iLCI8ZGl2IChmdE9ic2VydmVJbnRlcnNlY3RpbmcpPVwic2V0T3ZlcmxhcHBlZCgkZXZlbnQpXCIgW2Z0T2JzZXJ2ZUludGVyc2VjdGluZ09wdGlvbnNdPVwicm9vdE1hcmdpblwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwLTIgcC1zbS0zIHBiLW1kLTMgcHQtbWQtNSBweC1tZC0zIHB4LWxnLTVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGg1IGNsYXNzPVwidGl0bGUgbWwtMiBtbC1tZC0wIG1iLTAgbXItYXV0b1wiICpuZ0lmPVwiIXRpdGxlT3B0aW9uczsgZWxzZSB0aXRsZUZvcm1cIj57eyB0aXRsZSB9fTwvaDU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYWN0aW9uT3B0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInAtMlwiIG1hdC1idXR0b24gW25nQ2xhc3NdPVwib3B0aW9uLmNsYXNzIHx8ICcnXCIgKm5nSWY9XCIhb3B0aW9uLmNoaWxkcmVuXCIgKGNsaWNrKT1cIm9wdGlvbi5jbGljayA/IG9wdGlvbi5jbGljaygkZXZlbnQpIDogbnVsbFwiIHRpdGxlPVwie3sgb3B0aW9uLmxhYmVsIH19XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxmdC1pY29uICpuZ0lmPVwib3B0aW9uLmljb25OYW1lXCIgW25hbWVdPVwib3B0aW9uLmljb25OYW1lXCIgc2l6ZT1cIjJcIj48L2Z0LWljb24+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9uLmxhYmVsXCIgY2xhc3M9XCJsYWJlbCBkLW5vbmUgZC1zbS1pbmxpbmUtYmxvY2sgbWwtMVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbi5jaGlsZHJlblwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicC0yXCIgbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtuZ0NsYXNzXT1cIm9wdGlvbi5jbGFzcyB8fCAnJ1wiIHRpdGxlPVwie3sgb3B0aW9uLmxhYmVsIH19XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZnQtaWNvbiAqbmdJZj1cIm9wdGlvbi5pY29uTmFtZVwiIFtuYW1lXT1cIm9wdGlvbi5pY29uTmFtZVwiIHNpemU9XCIyXCI+PC9mdC1pY29uPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9uLmxhYmVsXCIgY2xhc3M9XCJsYWJlbCBkLW5vbmUgZC1zbS1pbmxpbmUtYmxvY2sgbWwtMVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBjaGlsZE9wdGlvbiBvZiBvcHRpb24uY2hpbGRyZW5cIiAoY2xpY2spPVwiY2hpbGRPcHRpb24uY2xpY2sgPyBjaGlsZE9wdGlvbi5jbGljaygkZXZlbnQpOiBudWxsXCI+e3sgY2hpbGRPcHRpb24ubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICN0aXRsZUZvcm0+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidGl0bGUgcC0yIHBsLTMgbXItYXV0b1wiIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRpdGxlTWVudVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgbXItMVwiPnt7IGN1cnJlbnRUaXRsZU9wdGlvbi5sYWJlbCB9fTwvZGl2PlxuICAgICAgPGZ0LWljb24gbmFtZT1cImFuZ2xlLWRvd25cIiBzaXplPVwiMVwiPjwvZnQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9idXR0b24+XG4gIDxtYXQtbWVudSAjdGl0bGVNZW51PVwibWF0TWVudVwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJtci00XCIgbWF0LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwib3B0aW9uID09IGN1cnJlbnRUaXRsZU9wdGlvblwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgdGl0bGVPcHRpb25zXCIgKGNsaWNrKT1cImN1cnJlbnRUaXRsZU9wdGlvbiA9IG9wdGlvbjsgb3B0aW9uLmNsaWNrID8gb3B0aW9uLmNsaWNrKCRldmVudCkgOiBudWxsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZnQtaWNvbiBbbmFtZV09XCJvcHRpb24gPT0gY3VycmVudFRpdGxlT3B0aW9uPyAnY2hlY2snIDogJydcIiBjbGFzcz1cIm1yLTFcIj48L2Z0LWljb24+XG4gICAgICAgIDxkaXY+e3sgb3B0aW9uLmxhYmVsIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtbWVudT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|