@hestia-earth/ui-components 0.21.19 → 0.21.20

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.
@@ -1,6 +1,8 @@
1
- import { TemplateRef } from '@angular/core';
1
+ import { EventEmitter, TemplateRef, WritableSignal } from '@angular/core';
2
+ import { IShellMenuButton } from '../shell/shell.component';
2
3
  import * as i0 from "@angular/core";
3
4
  export interface IMobileShellMenuButton {
5
+ id?: string;
4
6
  icon?: any;
5
7
  label?: string;
6
8
  onClick: () => void;
@@ -8,14 +10,30 @@ export interface IMobileShellMenuButton {
8
10
  iconPath?: string;
9
11
  }
10
12
  export declare class MobileShellComponent {
13
+ private _shelfButtons;
14
+ private _defaultActiveButtonId;
15
+ protected clickedButton: WritableSignal<string | null>;
16
+ protected expanded: WritableSignal<boolean>;
17
+ protected menuRef: WritableSignal<TemplateRef<any>>;
11
18
  iconTemplate: TemplateRef<any> | null;
12
- menuButtons: IMobileShellMenuButton[];
19
+ set menuButtons(value: IMobileShellMenuButton[]);
20
+ set defaultActiveButtonId(value: string | null);
21
+ menuShown: EventEmitter<any>;
13
22
  protected activeButton: IMobileShellMenuButton | null;
14
- protected expanded: boolean;
15
- protected menuRef: TemplateRef<any> | null;
23
+ buttons: import("@angular/core").Signal<{
24
+ isActive: boolean;
25
+ id: string;
26
+ icon?: any;
27
+ label?: string;
28
+ onClick: () => void;
29
+ menuRef?: TemplateRef<any>;
30
+ iconPath?: string;
31
+ }[]>;
32
+ activeButtonId: import("@angular/core").Signal<string>;
33
+ activeMenuId: import("@angular/core").Signal<string>;
16
34
  hideMenu(): void;
17
- showMenu(menuRef?: TemplateRef<any>): void;
18
- protected onMenuButtonClick(button: IMobileShellMenuButton): void;
35
+ showMenu(templateRef?: TemplateRef<any>): void;
36
+ protected onMenuButtonClick(button: IShellMenuButton): void;
19
37
  static ɵfac: i0.ɵɵFactoryDeclaration<MobileShellComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<MobileShellComponent, "he-mobile-shell", never, { "menuButtons": { "alias": "menuButtons"; "required": false; }; }, {}, ["iconTemplate"], ["*"], false, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<MobileShellComponent, "he-mobile-shell", never, { "menuButtons": { "alias": "menuButtons"; "required": false; }; "defaultActiveButtonId": { "alias": "defaultActiveButtonId"; "required": false; }; }, { "menuShown": "menuShown"; }, ["iconTemplate"], ["*"], false, never>;
21
39
  }
@@ -12,6 +12,7 @@ export interface SortSelectEvent {
12
12
  export type SortSelectOrder = 'asc' | 'desc';
13
13
  export declare class SortSelectComponent {
14
14
  sortOptions: SortOption[];
15
+ alignment: 'left' | 'right';
15
16
  private readonly sortChange;
16
17
  protected sortBySignal: import("@angular/core").WritableSignal<string>;
17
18
  protected sortOrderSignal: import("@angular/core").WritableSignal<SortSelectOrder>;
@@ -23,5 +24,5 @@ export declare class SortSelectComponent {
23
24
  private _toggleSortBy;
24
25
  private _emitSortChange;
25
26
  static ɵfac: i0.ɵɵFactoryDeclaration<SortSelectComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<SortSelectComponent, "he-sort-select", never, { "sortOptions": { "alias": "sortOptions"; "required": false; }; "sortBy": { "alias": "sortBy"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; }, { "sortChange": "sortChange"; }, never, never, false, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<SortSelectComponent, "he-sort-select", never, { "sortOptions": { "alias": "sortOptions"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; "sortBy": { "alias": "sortBy"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; }, { "sortChange": "sortChange"; }, never, never, false, never>;
27
28
  }
@@ -1,50 +1,84 @@
1
- import { Component, ContentChild, Input } from '@angular/core';
1
+ import { Component, computed, ContentChild, EventEmitter, Input, Output, signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "@fortawesome/angular-fontawesome";
5
5
  export class MobileShellComponent {
6
6
  constructor() {
7
+ this._shelfButtons = signal([]);
8
+ this._defaultActiveButtonId = signal(null);
9
+ this.clickedButton = signal(null);
10
+ this.expanded = signal(false);
11
+ this.menuRef = signal(null);
7
12
  this.iconTemplate = null;
8
- this.menuButtons = [];
9
- this.expanded = false;
13
+ this.menuShown = new EventEmitter();
14
+ this.buttons = computed(() => this._shelfButtons()
15
+ .map((button, index) => ({
16
+ ...button,
17
+ id: button.id || index.toString()
18
+ }))
19
+ .map(button => {
20
+ const activeMenuId = this.activeMenuId();
21
+ return { ...button, isActive: button.id === (activeMenuId || this.activeButtonId()) };
22
+ }));
23
+ this.activeButtonId = computed(() => {
24
+ return this.clickedButton() || this._defaultActiveButtonId();
25
+ });
26
+ this.activeMenuId = computed(() => {
27
+ if (this.expanded() && this.menuRef()) {
28
+ return this._shelfButtons()
29
+ .findIndex(button => button.menuRef === this.menuRef())
30
+ ?.toString();
31
+ }
32
+ });
33
+ }
34
+ set menuButtons(value) {
35
+ this._shelfButtons.set(value);
36
+ }
37
+ set defaultActiveButtonId(value) {
38
+ this._defaultActiveButtonId.set(value);
10
39
  }
11
40
  hideMenu() {
12
- this.expanded = false;
13
- this.activeButton = null;
41
+ this.expanded.set(false);
42
+ this.clickedButton.set(null);
14
43
  }
15
- showMenu(menuRef = this.menuRef) {
16
- this.menuRef = menuRef;
17
- this.expanded = true;
18
- const activeButton = this.menuButtons.find(b => b.menuRef === menuRef);
19
- if (activeButton) {
20
- this.activeButton = activeButton;
44
+ showMenu(templateRef) {
45
+ if (templateRef) {
46
+ this.menuRef.set(templateRef);
21
47
  }
48
+ this.expanded.set(true);
49
+ this.menuShown.emit();
22
50
  }
23
51
  onMenuButtonClick(button) {
24
- if (button === this.activeButton) {
52
+ if (button.id === this.clickedButton()) {
25
53
  this.hideMenu();
26
54
  return;
27
55
  }
28
56
  if (button.menuRef) {
29
- this.menuRef = button.menuRef;
57
+ this.menuRef.set(button.menuRef);
30
58
  this.showMenu();
31
59
  }
32
60
  else {
33
61
  this.hideMenu();
34
62
  }
35
- this.activeButton = button;
63
+ if (!button.activeDisabled) {
64
+ this.clickedButton.set(button.id);
65
+ }
36
66
  button.onClick?.();
37
67
  }
38
68
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: MobileShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: MobileShellComponent, selector: "he-mobile-shell", inputs: { menuButtons: "menuButtons" }, queries: [{ propertyName: "iconTemplate", first: true, predicate: ["iconTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"shell-content\">\n <div [class.menu-expanded]=\"expanded\" class=\"shell__content--body | h-100\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<aside class=\"shell-footer | is-flex is-justify-content-space-between\">\n <a (click)=\"onMenuButtonClick(button)\" *ngFor=\"let button of menuButtons\" class=\"button menu-button is-secondary\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button === activeButton }\n \"></ng-container>\n <span *ngIf=\"button === activeButton && button.label\" class=\"menu-button-label\">{{ button.label }}</span>\n </a>\n</aside>\n\n<div [class.expanded]=\"expanded\" class=\"shell-menu | is-absolute w-100 h-100\">\n <ng-template [ngTemplateOutlet]=\"menuRef\"></ng-template>\n</div>\n\n<ng-template #defaultIconTemplate let-button>\n <fa-icon [icon]=\"button.icon\"></fa-icon>\n</ng-template>\n", styles: [":host{position:relative;display:grid;grid-template-rows:1fr auto;width:100%;height:100%;overflow:hidden;--menu-height: 2.875em}.shell-footer{background:#193957;z-index:10}.shell-menu{bottom:0;left:0;background:#fefaef;transform:translateY(100%);transition:transform .1s ease-out;padding-bottom:var(--menu-height)}.shell-menu.expanded{transform:translateY(0)}.menu-button-label{font-size:.5rem;line-height:normal;letter-spacing:-.01rem}.shell-content{overflow:auto}.menu-button{box-shadow:none;display:flex;flex-direction:column;align-items:center;height:3.5em;width:2em}\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: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: MobileShellComponent, selector: "he-mobile-shell", inputs: { menuButtons: "menuButtons", defaultActiveButtonId: "defaultActiveButtonId" }, outputs: { menuShown: "menuShown" }, queries: [{ propertyName: "iconTemplate", first: true, predicate: ["iconTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"shell-content\">\n <div [class.menu-expanded]=\"expanded()\" class=\"shell__content--body | h-100\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<aside class=\"shell-footer | is-flex is-justify-content-space-between\">\n <a (click)=\"onMenuButtonClick(button)\" *ngFor=\"let button of buttons()\" class=\"button menu-button is-secondary\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button.isActive }\n \"></ng-container>\n <span *ngIf=\"button.isActive && button.label\" class=\"menu-button-label\">{{ button.label }}</span>\n </a>\n</aside>\n\n<div [class.expanded]=\"expanded()\" class=\"shell-menu | is-absolute w-100 h-100\">\n <ng-template [ngTemplateOutlet]=\"menuRef()\"></ng-template>\n</div>\n\n<ng-template #defaultIconTemplate let-button>\n <fa-icon [icon]=\"button.icon\"></fa-icon>\n</ng-template>\n", styles: [":host{position:relative;display:grid;grid-template-rows:1fr auto;width:100%;height:100%;overflow:hidden;--menu-height: 2.875em}.shell-footer{background:#193957;z-index:10}.shell-menu{bottom:0;left:0;background:#fefaef;transform:translateY(100%);transition:transform .1s ease-out;padding-bottom:var(--menu-height)}.shell-menu.expanded{transform:translateY(0)}.menu-button-label{font-size:.5rem;line-height:normal;letter-spacing:-.01rem}.shell-content{overflow:auto}.menu-button{box-shadow:none;display:flex;flex-direction:column;align-items:center;height:3.5em;width:2em}.menu-button:hover{background-color:initial}\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: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
40
70
  }
41
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: MobileShellComponent, decorators: [{
42
72
  type: Component,
43
- args: [{ selector: 'he-mobile-shell', template: "<div class=\"shell-content\">\n <div [class.menu-expanded]=\"expanded\" class=\"shell__content--body | h-100\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<aside class=\"shell-footer | is-flex is-justify-content-space-between\">\n <a (click)=\"onMenuButtonClick(button)\" *ngFor=\"let button of menuButtons\" class=\"button menu-button is-secondary\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button === activeButton }\n \"></ng-container>\n <span *ngIf=\"button === activeButton && button.label\" class=\"menu-button-label\">{{ button.label }}</span>\n </a>\n</aside>\n\n<div [class.expanded]=\"expanded\" class=\"shell-menu | is-absolute w-100 h-100\">\n <ng-template [ngTemplateOutlet]=\"menuRef\"></ng-template>\n</div>\n\n<ng-template #defaultIconTemplate let-button>\n <fa-icon [icon]=\"button.icon\"></fa-icon>\n</ng-template>\n", styles: [":host{position:relative;display:grid;grid-template-rows:1fr auto;width:100%;height:100%;overflow:hidden;--menu-height: 2.875em}.shell-footer{background:#193957;z-index:10}.shell-menu{bottom:0;left:0;background:#fefaef;transform:translateY(100%);transition:transform .1s ease-out;padding-bottom:var(--menu-height)}.shell-menu.expanded{transform:translateY(0)}.menu-button-label{font-size:.5rem;line-height:normal;letter-spacing:-.01rem}.shell-content{overflow:auto}.menu-button{box-shadow:none;display:flex;flex-direction:column;align-items:center;height:3.5em;width:2em}\n"] }]
73
+ args: [{ selector: 'he-mobile-shell', template: "<div class=\"shell-content\">\n <div [class.menu-expanded]=\"expanded()\" class=\"shell__content--body | h-100\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<aside class=\"shell-footer | is-flex is-justify-content-space-between\">\n <a (click)=\"onMenuButtonClick(button)\" *ngFor=\"let button of buttons()\" class=\"button menu-button is-secondary\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button.isActive }\n \"></ng-container>\n <span *ngIf=\"button.isActive && button.label\" class=\"menu-button-label\">{{ button.label }}</span>\n </a>\n</aside>\n\n<div [class.expanded]=\"expanded()\" class=\"shell-menu | is-absolute w-100 h-100\">\n <ng-template [ngTemplateOutlet]=\"menuRef()\"></ng-template>\n</div>\n\n<ng-template #defaultIconTemplate let-button>\n <fa-icon [icon]=\"button.icon\"></fa-icon>\n</ng-template>\n", styles: [":host{position:relative;display:grid;grid-template-rows:1fr auto;width:100%;height:100%;overflow:hidden;--menu-height: 2.875em}.shell-footer{background:#193957;z-index:10}.shell-menu{bottom:0;left:0;background:#fefaef;transform:translateY(100%);transition:transform .1s ease-out;padding-bottom:var(--menu-height)}.shell-menu.expanded{transform:translateY(0)}.menu-button-label{font-size:.5rem;line-height:normal;letter-spacing:-.01rem}.shell-content{overflow:auto}.menu-button{box-shadow:none;display:flex;flex-direction:column;align-items:center;height:3.5em;width:2em}.menu-button:hover{background-color:initial}\n"] }]
44
74
  }], propDecorators: { iconTemplate: [{
45
75
  type: ContentChild,
46
76
  args: ['iconTemplate']
47
77
  }], menuButtons: [{
48
78
  type: Input
79
+ }], defaultActiveButtonId: [{
80
+ type: Input
81
+ }], menuShown: [{
82
+ type: Output
49
83
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vbW9iaWxlLXNoZWxsL21vYmlsZS1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL21vYmlsZS1zaGVsbC9tb2JpbGUtc2hlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDOzs7O0FBZTVFLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFNZ0MsaUJBQVksR0FBNEIsSUFBSSxDQUFDO1FBRWxFLGdCQUFXLEdBQTZCLEVBQUUsQ0FBQztRQUUxQyxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBa0M1QjtJQS9CQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUE0QixJQUFJLENBQUMsT0FBTztRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDdkUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRVMsaUJBQWlCLENBQUMsTUFBOEI7UUFDeEQsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNoQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztTQUNSO1FBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBRTNCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBdENVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHlNQ2ZqQyxnOEJBd0JBOzsyRkRUYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUtHLFlBQVk7c0JBQXpDLFlBQVk7dUJBQUMsY0FBYztnQkFFbkIsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBJTW9iaWxlU2hlbGxNZW51QnV0dG9uIHtcbiAgaWNvbj86IGFueTtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG4gIG1lbnVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBpY29uUGF0aD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtbW9iaWxlLXNoZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vYmlsZS1zaGVsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vYmlsZS1zaGVsbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZVNoZWxsQ29tcG9uZW50IHtcbiAgQENvbnRlbnRDaGlsZCgnaWNvblRlbXBsYXRlJykgaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgbWVudUJ1dHRvbnM6IElNb2JpbGVTaGVsbE1lbnVCdXR0b25bXSA9IFtdO1xuICBwcm90ZWN0ZWQgYWN0aXZlQnV0dG9uOiBJTW9iaWxlU2hlbGxNZW51QnV0dG9uIHwgbnVsbDtcbiAgcHJvdGVjdGVkIGV4cGFuZGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBtZW51UmVmOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcblxuICBoaWRlTWVudSgpIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgdGhpcy5hY3RpdmVCdXR0b24gPSBudWxsO1xuICB9XG5cbiAgc2hvd01lbnUobWVudVJlZjogVGVtcGxhdGVSZWY8YW55PiA9IHRoaXMubWVudVJlZikge1xuICAgIHRoaXMubWVudVJlZiA9IG1lbnVSZWY7XG4gICAgdGhpcy5leHBhbmRlZCA9IHRydWU7XG4gICAgY29uc3QgYWN0aXZlQnV0dG9uID0gdGhpcy5tZW51QnV0dG9ucy5maW5kKGIgPT4gYi5tZW51UmVmID09PSBtZW51UmVmKTtcbiAgICBpZiAoYWN0aXZlQnV0dG9uKSB7XG4gICAgICB0aGlzLmFjdGl2ZUJ1dHRvbiA9IGFjdGl2ZUJ1dHRvbjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25NZW51QnV0dG9uQ2xpY2soYnV0dG9uOiBJTW9iaWxlU2hlbGxNZW51QnV0dG9uKSB7XG4gICAgaWYgKGJ1dHRvbiA9PT0gdGhpcy5hY3RpdmVCdXR0b24pIHtcbiAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYnV0dG9uLm1lbnVSZWYpIHtcbiAgICAgIHRoaXMubWVudVJlZiA9IGJ1dHRvbi5tZW51UmVmO1xuICAgICAgdGhpcy5zaG93TWVudSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVCdXR0b24gPSBidXR0b247XG5cbiAgICBidXR0b24ub25DbGljaz8uKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzaGVsbC1jb250ZW50XCI+XG4gIDxkaXYgW2NsYXNzLm1lbnUtZXhwYW5kZWRdPVwiZXhwYW5kZWRcIiBjbGFzcz1cInNoZWxsX19jb250ZW50LS1ib2R5IHwgaC0xMDBcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxhc2lkZSBjbGFzcz1cInNoZWxsLWZvb3RlciB8IGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW5cIj5cbiAgPGEgKGNsaWNrKT1cIm9uTWVudUJ1dHRvbkNsaWNrKGJ1dHRvbilcIiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIG1lbnVCdXR0b25zXCIgY2xhc3M9XCJidXR0b24gbWVudS1idXR0b24gaXMtc2Vjb25kYXJ5XCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgaWNvblRlbXBsYXRlID8/IGRlZmF1bHRJY29uVGVtcGxhdGU7XG4gICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBidXR0b24sIGlzQWN0aXZlOiBidXR0b24gPT09IGFjdGl2ZUJ1dHRvbiB9XG4gICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiAqbmdJZj1cImJ1dHRvbiA9PT0gYWN0aXZlQnV0dG9uICYmIGJ1dHRvbi5sYWJlbFwiIGNsYXNzPVwibWVudS1idXR0b24tbGFiZWxcIj57eyBidXR0b24ubGFiZWwgfX08L3NwYW4+XG4gIDwvYT5cbjwvYXNpZGU+XG5cbjxkaXYgW2NsYXNzLmV4cGFuZGVkXT1cImV4cGFuZGVkXCIgY2xhc3M9XCJzaGVsbC1tZW51IHwgaXMtYWJzb2x1dGUgdy0xMDAgaC0xMDBcIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVSZWZcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEljb25UZW1wbGF0ZSBsZXQtYnV0dG9uPlxuICA8ZmEtaWNvbiBbaWNvbl09XCJidXR0b24uaWNvblwiPjwvZmEtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vbW9iaWxlLXNoZWxsL21vYmlsZS1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL21vYmlsZS1zaGVsbC9tb2JpbGUtc2hlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQzs7OztBQWlCdkIsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU1VLGtCQUFhLEdBQTZDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSwyQkFBc0IsR0FBa0MsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5FLGtCQUFhLEdBQWtDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxNQUFNLENBQUMsSUFBK0IsQ0FBQyxDQUFDO1FBRTlCLGlCQUFZLEdBQTRCLElBQUksQ0FBQztRQVVqRSxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl6QyxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFO2FBQ2pCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkIsR0FBRyxNQUFNO1lBQ1QsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtTQUNsQyxDQUFDLENBQUM7YUFDRixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekMsT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztRQUVILGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRTtxQkFDeEIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ3ZELEVBQUUsUUFBUSxFQUFFLENBQUM7YUFDaEI7UUFDSCxDQUFDLENBQUMsQ0FBQztLQWtDSjtJQXBFQyxJQUFhLFdBQVcsQ0FBQyxLQUErQjtRQUN0RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBYSxxQkFBcUIsQ0FBQyxLQUFvQjtRQUNyRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUE4QkQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsV0FBOEI7UUFDckMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLGlCQUFpQixDQUFDLE1BQXdCO1FBQ2xELElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87U0FDUjtRQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkM7UUFFRCxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQTdFVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw4UkMzQmpDLG83QkF3QkE7OzJGREdhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7OEJBWUcsWUFBWTtzQkFBekMsWUFBWTt1QkFBQyxjQUFjO2dCQUVmLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8scUJBQXFCO3NCQUFqQyxLQUFLO2dCQUlJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgV3JpdGFibGVTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJU2hlbGxNZW51QnV0dG9uIH0gZnJvbSAnLi4vc2hlbGwvc2hlbGwuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBJTW9iaWxlU2hlbGxNZW51QnV0dG9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGljb24/OiBhbnk7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICBtZW51UmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgaWNvblBhdGg/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLW1vYmlsZS1zaGVsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2JpbGUtc2hlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2JpbGUtc2hlbGwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNb2JpbGVTaGVsbENvbXBvbmVudCB7XG4gIHByaXZhdGUgX3NoZWxmQnV0dG9uczogV3JpdGFibGVTaWduYWw8SU1vYmlsZVNoZWxsTWVudUJ1dHRvbltdPiA9IHNpZ25hbChbXSk7XG4gIHByaXZhdGUgX2RlZmF1bHRBY3RpdmVCdXR0b25JZDogV3JpdGFibGVTaWduYWw8c3RyaW5nIHwgbnVsbD4gPSBzaWduYWwobnVsbCk7XG5cbiAgcHJvdGVjdGVkIGNsaWNrZWRCdXR0b246IFdyaXRhYmxlU2lnbmFsPHN0cmluZyB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xuICBwcm90ZWN0ZWQgZXhwYW5kZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgbWVudVJlZiA9IHNpZ25hbChudWxsIGFzIFRlbXBsYXRlUmVmPGFueT4gfCBudWxsKTtcblxuICBAQ29udGVudENoaWxkKCdpY29uVGVtcGxhdGUnKSBpY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKSBzZXQgbWVudUJ1dHRvbnModmFsdWU6IElNb2JpbGVTaGVsbE1lbnVCdXR0b25bXSkge1xuICAgIHRoaXMuX3NoZWxmQnV0dG9ucy5zZXQodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRlZmF1bHRBY3RpdmVCdXR0b25JZCh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX2RlZmF1bHRBY3RpdmVCdXR0b25JZC5zZXQodmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpIG1lbnVTaG93biA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm90ZWN0ZWQgYWN0aXZlQnV0dG9uOiBJTW9iaWxlU2hlbGxNZW51QnV0dG9uIHwgbnVsbDtcblxuICBidXR0b25zID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLl9zaGVsZkJ1dHRvbnMoKVxuICAgICAgLm1hcCgoYnV0dG9uLCBpbmRleCkgPT4gKHtcbiAgICAgICAgLi4uYnV0dG9uLFxuICAgICAgICBpZDogYnV0dG9uLmlkIHx8IGluZGV4LnRvU3RyaW5nKClcbiAgICAgIH0pKVxuICAgICAgLm1hcChidXR0b24gPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVNZW51SWQgPSB0aGlzLmFjdGl2ZU1lbnVJZCgpO1xuICAgICAgICByZXR1cm4geyAuLi5idXR0b24sIGlzQWN0aXZlOiBidXR0b24uaWQgPT09IChhY3RpdmVNZW51SWQgfHwgdGhpcy5hY3RpdmVCdXR0b25JZCgpKSB9O1xuICAgICAgfSlcbiAgKTtcblxuICBhY3RpdmVCdXR0b25JZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jbGlja2VkQnV0dG9uKCkgfHwgdGhpcy5fZGVmYXVsdEFjdGl2ZUJ1dHRvbklkKCk7XG4gIH0pO1xuXG4gIGFjdGl2ZU1lbnVJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5leHBhbmRlZCgpICYmIHRoaXMubWVudVJlZigpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2hlbGZCdXR0b25zKClcbiAgICAgICAgLmZpbmRJbmRleChidXR0b24gPT4gYnV0dG9uLm1lbnVSZWYgPT09IHRoaXMubWVudVJlZigpKVxuICAgICAgICA/LnRvU3RyaW5nKCk7XG4gICAgfVxuICB9KTtcblxuICBoaWRlTWVudSgpIHtcbiAgICB0aGlzLmV4cGFuZGVkLnNldChmYWxzZSk7XG4gICAgdGhpcy5jbGlja2VkQnV0dG9uLnNldChudWxsKTtcbiAgfVxuXG4gIHNob3dNZW51KHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIGlmICh0ZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5tZW51UmVmLnNldCh0ZW1wbGF0ZVJlZik7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kZWQuc2V0KHRydWUpO1xuICAgIHRoaXMubWVudVNob3duLmVtaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbk1lbnVCdXR0b25DbGljayhidXR0b246IElTaGVsbE1lbnVCdXR0b24pIHtcbiAgICBpZiAoYnV0dG9uLmlkID09PSB0aGlzLmNsaWNrZWRCdXR0b24oKSkge1xuICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChidXR0b24ubWVudVJlZikge1xuICAgICAgdGhpcy5tZW51UmVmLnNldChidXR0b24ubWVudVJlZik7XG4gICAgICB0aGlzLnNob3dNZW51KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICB9XG5cbiAgICBpZiAoIWJ1dHRvbi5hY3RpdmVEaXNhYmxlZCkge1xuICAgICAgdGhpcy5jbGlja2VkQnV0dG9uLnNldChidXR0b24uaWQpO1xuICAgIH1cblxuICAgIGJ1dHRvbi5vbkNsaWNrPy4oKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNoZWxsLWNvbnRlbnRcIj5cbiAgPGRpdiBbY2xhc3MubWVudS1leHBhbmRlZF09XCJleHBhbmRlZCgpXCIgY2xhc3M9XCJzaGVsbF9fY29udGVudC0tYm9keSB8IGgtMTAwXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YXNpZGUgY2xhc3M9XCJzaGVsbC1mb290ZXIgfCBpcy1mbGV4IGlzLWp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuXCI+XG4gIDxhIChjbGljayk9XCJvbk1lbnVCdXR0b25DbGljayhidXR0b24pXCIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBidXR0b25zKClcIiBjbGFzcz1cImJ1dHRvbiBtZW51LWJ1dHRvbiBpcy1zZWNvbmRhcnlcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBpY29uVGVtcGxhdGUgPz8gZGVmYXVsdEljb25UZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGJ1dHRvbiwgaXNBY3RpdmU6IGJ1dHRvbi5pc0FjdGl2ZSB9XG4gICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiAqbmdJZj1cImJ1dHRvbi5pc0FjdGl2ZSAmJiBidXR0b24ubGFiZWxcIiBjbGFzcz1cIm1lbnUtYnV0dG9uLWxhYmVsXCI+e3sgYnV0dG9uLmxhYmVsIH19PC9zcGFuPlxuICA8L2E+XG48L2FzaWRlPlxuXG48ZGl2IFtjbGFzcy5leHBhbmRlZF09XCJleHBhbmRlZCgpXCIgY2xhc3M9XCJzaGVsbC1tZW51IHwgaXMtYWJzb2x1dGUgdy0xMDAgaC0xMDBcIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVSZWYoKVwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SWNvblRlbXBsYXRlIGxldC1idXR0b24+XG4gIDxmYS1pY29uIFtpY29uXT1cImJ1dHRvbi5pY29uXCI+PC9mYS1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -77,11 +77,11 @@ export class ShellComponent {
77
77
  button.onClick?.();
78
78
  }
79
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: ShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: ShellComponent, selector: "he-shell", inputs: { shelfButtons: "shelfButtons", menuOverlap: "menuOverlap", closeMenuOnOutsideClick: "closeMenuOnOutsideClick", defaultActiveButtonId: "defaultActiveButtonId" }, outputs: { menuShown: "menuShown" }, queries: [{ propertyName: "iconTemplate", first: true, predicate: ["iconTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"shell | h-100\">\n <aside>\n <div class=\"shell__menu | is-relative h-100 is-flex is-flex-direction-column is-justify-content-space-between\">\n <div class=\"shell__menu--section | is-flex is-flex-direction-column\">\n <ng-container\n *ngFor=\"let button of topMenuButtons(); trackBy: trackByFn\"\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"></ng-container>\n </div>\n\n <div class=\"shell__menu--section | is-flex is-flex-direction-column\">\n <ng-container\n *ngFor=\"let button of bottomMenuButtons(); trackBy: trackByFn\"\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"></ng-container>\n </div>\n </div>\n <div class=\"shell__menuContent | h-100 is-absolute\" [class.expanded]=\"expanded()\">\n <div class=\"h-100\" [class.is-hidden]=\"!expanded()\">\n <ng-template [ngTemplateOutlet]=\"menuRef()\"></ng-template>\n </div>\n </div>\n </aside>\n\n <div class=\"shell__content | h-100 w-100 is-flex is-justify-content-flex-end\">\n <div\n class=\"shell__content--body | w-100\"\n [class.menu-expanded]=\"!menuOverlap && expanded()\"\n (click)=\"closeMenuOnOutsideClick ? hideMenu() : null\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #buttonTemplate let-button>\n <button\n (click)=\"onMenuButtonClick(button)\"\n class=\"menu-button button is-secondary\" [ngClass]=\"button.isActive ? button.activeClassName : ''\"\n [class.is-active]=\"button.isActive\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button !== clickedButton }\n \"></ng-container>\n </button>\n</ng-template>\n\n<ng-template #defaultIconTemplate let-button>\n <fa-icon [icon]=\"button.icon\"></fa-icon>\n</ng-template>\n", styles: ["::ng-deep :root{--menu-width: 200px;--menu-transition-time: .15s}.shell{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"menu content\";overflow:hidden}.shell>aside{position:relative;grid-area:menu}.shell>aside .shell__menu{background:#193957;padding:1.5em 0;z-index:10;min-width:2.875em}.shell>aside .shell__menuContent{background-color:#fefaef;width:var(--menu-width);top:0;right:1px;transform:translate(0);transition:transform var(--menu-transition-time) ease-out}.shell>aside .shell__menuContent.expanded{transform:translate(100%)}.shell__content{grid-area:content;overflow:hidden}.shell__content--body{transition:width var(--menu-transition-time) ease-out}.shell__content .menu-expanded{width:calc(100% - var(--menu-width))}.menu-button{border-radius:0;padding:1.25em .6em;box-shadow:none!important;border-width:0}.menu-button.is-active{background-color:#fff;color:#0a0a0a}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: ShellComponent, selector: "he-shell", inputs: { shelfButtons: "shelfButtons", menuOverlap: "menuOverlap", closeMenuOnOutsideClick: "closeMenuOnOutsideClick", defaultActiveButtonId: "defaultActiveButtonId" }, outputs: { menuShown: "menuShown" }, queries: [{ propertyName: "iconTemplate", first: true, predicate: ["iconTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"shell | h-100\">\n <aside>\n <div class=\"shell__menu | is-relative h-100 is-flex is-flex-direction-column is-justify-content-space-between\">\n <div class=\"shell__menu--section | is-flex is-flex-direction-column\">\n <ng-container\n *ngFor=\"let button of topMenuButtons(); trackBy: trackByFn\"\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"></ng-container>\n </div>\n\n <div class=\"shell__menu--section | is-flex is-flex-direction-column\">\n <ng-container\n *ngFor=\"let button of bottomMenuButtons(); trackBy: trackByFn\"\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"></ng-container>\n </div>\n </div>\n <div class=\"shell__menuContent | h-100 is-absolute\" [class.expanded]=\"expanded()\">\n <div class=\"h-100\" [class.is-hidden]=\"!expanded()\">\n <ng-template [ngTemplateOutlet]=\"menuRef()\"></ng-template>\n </div>\n </div>\n </aside>\n\n <div class=\"shell__content | h-100 w-100 is-flex is-justify-content-flex-end\">\n <div\n class=\"shell__content--body | w-100\"\n [class.menu-expanded]=\"!menuOverlap && expanded()\"\n (click)=\"closeMenuOnOutsideClick ? hideMenu() : null\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #buttonTemplate let-button>\n <button\n (click)=\"onMenuButtonClick(button)\"\n class=\"menu-button button is-secondary\"\n [ngClass]=\"button.isActive ? button.activeClassName : ''\"\n [class.is-active]=\"button.isActive\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button !== clickedButton }\n \"></ng-container>\n </button>\n</ng-template>\n\n<ng-template #defaultIconTemplate let-button>\n <fa-icon [icon]=\"button.icon\"></fa-icon>\n</ng-template>\n", styles: ["::ng-deep :root{--menu-width: 200px;--menu-transition-time: .15s}.shell{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"menu content\";overflow:hidden}.shell>aside{position:relative;grid-area:menu}.shell>aside .shell__menu{background:#193957;padding:1.5em 0;z-index:10;min-width:2.875em}.shell>aside .shell__menuContent{background-color:#fefaef;width:var(--menu-width);top:0;right:1px;transform:translate(0);transition:transform var(--menu-transition-time) ease-out}.shell>aside .shell__menuContent.expanded{transform:translate(100%)}.shell__content{grid-area:content;overflow:hidden}.shell__content--body{transition:width var(--menu-transition-time) ease-out}.shell__content .menu-expanded{width:calc(100% - var(--menu-width))}.menu-button{border-radius:0;padding:1.25em .6em;box-shadow:none!important;border-width:0}.menu-button.is-active{background-color:#fff;color:#0a0a0a}.menu-button:hover:not(.is-active){background-color:initial}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
81
81
  }
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: ShellComponent, decorators: [{
83
83
  type: Component,
84
- args: [{ selector: 'he-shell', template: "<div class=\"shell | h-100\">\n <aside>\n <div class=\"shell__menu | is-relative h-100 is-flex is-flex-direction-column is-justify-content-space-between\">\n <div class=\"shell__menu--section | is-flex is-flex-direction-column\">\n <ng-container\n *ngFor=\"let button of topMenuButtons(); trackBy: trackByFn\"\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"></ng-container>\n </div>\n\n <div class=\"shell__menu--section | is-flex is-flex-direction-column\">\n <ng-container\n *ngFor=\"let button of bottomMenuButtons(); trackBy: trackByFn\"\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"></ng-container>\n </div>\n </div>\n <div class=\"shell__menuContent | h-100 is-absolute\" [class.expanded]=\"expanded()\">\n <div class=\"h-100\" [class.is-hidden]=\"!expanded()\">\n <ng-template [ngTemplateOutlet]=\"menuRef()\"></ng-template>\n </div>\n </div>\n </aside>\n\n <div class=\"shell__content | h-100 w-100 is-flex is-justify-content-flex-end\">\n <div\n class=\"shell__content--body | w-100\"\n [class.menu-expanded]=\"!menuOverlap && expanded()\"\n (click)=\"closeMenuOnOutsideClick ? hideMenu() : null\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #buttonTemplate let-button>\n <button\n (click)=\"onMenuButtonClick(button)\"\n class=\"menu-button button is-secondary\" [ngClass]=\"button.isActive ? button.activeClassName : ''\"\n [class.is-active]=\"button.isActive\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button !== clickedButton }\n \"></ng-container>\n </button>\n</ng-template>\n\n<ng-template #defaultIconTemplate let-button>\n <fa-icon [icon]=\"button.icon\"></fa-icon>\n</ng-template>\n", styles: ["::ng-deep :root{--menu-width: 200px;--menu-transition-time: .15s}.shell{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"menu content\";overflow:hidden}.shell>aside{position:relative;grid-area:menu}.shell>aside .shell__menu{background:#193957;padding:1.5em 0;z-index:10;min-width:2.875em}.shell>aside .shell__menuContent{background-color:#fefaef;width:var(--menu-width);top:0;right:1px;transform:translate(0);transition:transform var(--menu-transition-time) ease-out}.shell>aside .shell__menuContent.expanded{transform:translate(100%)}.shell__content{grid-area:content;overflow:hidden}.shell__content--body{transition:width var(--menu-transition-time) ease-out}.shell__content .menu-expanded{width:calc(100% - var(--menu-width))}.menu-button{border-radius:0;padding:1.25em .6em;box-shadow:none!important;border-width:0}.menu-button.is-active{background-color:#fff;color:#0a0a0a}\n"] }]
84
+ args: [{ selector: 'he-shell', template: "<div class=\"shell | h-100\">\n <aside>\n <div class=\"shell__menu | is-relative h-100 is-flex is-flex-direction-column is-justify-content-space-between\">\n <div class=\"shell__menu--section | is-flex is-flex-direction-column\">\n <ng-container\n *ngFor=\"let button of topMenuButtons(); trackBy: trackByFn\"\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"></ng-container>\n </div>\n\n <div class=\"shell__menu--section | is-flex is-flex-direction-column\">\n <ng-container\n *ngFor=\"let button of bottomMenuButtons(); trackBy: trackByFn\"\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"></ng-container>\n </div>\n </div>\n <div class=\"shell__menuContent | h-100 is-absolute\" [class.expanded]=\"expanded()\">\n <div class=\"h-100\" [class.is-hidden]=\"!expanded()\">\n <ng-template [ngTemplateOutlet]=\"menuRef()\"></ng-template>\n </div>\n </div>\n </aside>\n\n <div class=\"shell__content | h-100 w-100 is-flex is-justify-content-flex-end\">\n <div\n class=\"shell__content--body | w-100\"\n [class.menu-expanded]=\"!menuOverlap && expanded()\"\n (click)=\"closeMenuOnOutsideClick ? hideMenu() : null\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #buttonTemplate let-button>\n <button\n (click)=\"onMenuButtonClick(button)\"\n class=\"menu-button button is-secondary\"\n [ngClass]=\"button.isActive ? button.activeClassName : ''\"\n [class.is-active]=\"button.isActive\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button !== clickedButton }\n \"></ng-container>\n </button>\n</ng-template>\n\n<ng-template #defaultIconTemplate let-button>\n <fa-icon [icon]=\"button.icon\"></fa-icon>\n</ng-template>\n", styles: ["::ng-deep :root{--menu-width: 200px;--menu-transition-time: .15s}.shell{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"menu content\";overflow:hidden}.shell>aside{position:relative;grid-area:menu}.shell>aside .shell__menu{background:#193957;padding:1.5em 0;z-index:10;min-width:2.875em}.shell>aside .shell__menuContent{background-color:#fefaef;width:var(--menu-width);top:0;right:1px;transform:translate(0);transition:transform var(--menu-transition-time) ease-out}.shell>aside .shell__menuContent.expanded{transform:translate(100%)}.shell__content{grid-area:content;overflow:hidden}.shell__content--body{transition:width var(--menu-transition-time) ease-out}.shell__content .menu-expanded{width:calc(100% - var(--menu-width))}.menu-button{border-radius:0;padding:1.25em .6em;box-shadow:none!important;border-width:0}.menu-button.is-active{background-color:#fff;color:#0a0a0a}.menu-button:hover:not(.is-active){background-color:initial}\n"] }]
85
85
  }], propDecorators: { iconTemplate: [{
86
86
  type: ContentChild,
87
87
  args: ['iconTemplate']
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
96
96
  }], menuShown: [{
97
97
  type: Output
98
98
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9zaGVsbC9zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL3NoZWxsL3NoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7Ozs7QUFtQnZCLE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBTWdDLGlCQUFZLEdBQTRCLElBQUksQ0FBQztRQUVuRSxrQkFBYSxHQUF1QyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsMkJBQXNCLEdBQWtDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU1wRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFNL0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekMsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRTthQUNqQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLEdBQUcsTUFBTTtZQUNULEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7U0FDbEMsQ0FBQyxDQUFDO2FBQ0YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3hGLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFFUSxrQkFBYSxHQUFrQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixZQUFPLEdBQUcsTUFBTSxDQUFDLElBQStCLENBQUMsQ0FBQztRQUU1RCxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyQyxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUU7cUJBQ3hCLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN2RCxFQUFFLFFBQVEsRUFBRSxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7UUFNTyxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUM7S0FrQ0o7SUF2RkMsSUFBYSxZQUFZLENBQUMsS0FBeUI7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQU1ELElBQWEscUJBQXFCLENBQUMsS0FBb0I7UUFDckQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBcUNTLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBc0I7UUFDdkQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFNRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUE4QjtRQUNyQyxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsaUJBQWlCLENBQUMsTUFBd0I7UUFDbEQsSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztTQUNSO1FBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQztRQUVELE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBNUZVLGNBQWM7a0dBQWQsY0FBYyx5V0M3QjNCLHM4REFrREE7OzJGRHJCYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVU7OEJBS1UsWUFBWTtzQkFBekMsWUFBWTt1QkFBQyxjQUFjO2dCQUtmLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBRU8scUJBQXFCO3NCQUFqQyxLQUFLO2dCQUlJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgV3JpdGFibGVTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNoZWxsTWVudUJ1dHRvbiB7XG4gIGljb24/OiBhbnk7XG4gIGljb25QYXRoPzogc3RyaW5nO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICBtZW51UmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgcG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nO1xuICBhY3RpdmVEaXNhYmxlZD86IGJvb2xlYW47XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFjdGl2ZUNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtc2hlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2hlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaGVsbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNoZWxsQ29tcG9uZW50IHtcbiAgQENvbnRlbnRDaGlsZCgnaWNvblRlbXBsYXRlJykgaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfc2hlbGZCdXR0b25zOiBXcml0YWJsZVNpZ25hbDxJU2hlbGxNZW51QnV0dG9uW10+ID0gc2lnbmFsKFtdKTtcbiAgcHJpdmF0ZSBfZGVmYXVsdEFjdGl2ZUJ1dHRvbklkOiBXcml0YWJsZVNpZ25hbDxzdHJpbmcgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcblxuICBASW5wdXQoKSBzZXQgc2hlbGZCdXR0b25zKHZhbHVlOiBJU2hlbGxNZW51QnV0dG9uW10pIHtcbiAgICB0aGlzLl9zaGVsZkJ1dHRvbnMuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpIG1lbnVPdmVybGFwID0gZmFsc2U7XG5cbiAgQElucHV0KCkgY2xvc2VNZW51T25PdXRzaWRlQ2xpY2sgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgZGVmYXVsdEFjdGl2ZUJ1dHRvbklkKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fZGVmYXVsdEFjdGl2ZUJ1dHRvbklkLnNldCh2YWx1ZSk7XG4gIH1cblxuICBAT3V0cHV0KCkgbWVudVNob3duID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGJ1dHRvbnMgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuX3NoZWxmQnV0dG9ucygpXG4gICAgICAubWFwKChidXR0b24sIGluZGV4KSA9PiAoe1xuICAgICAgICAuLi5idXR0b24sXG4gICAgICAgIGlkOiBidXR0b24uaWQgfHwgaW5kZXgudG9TdHJpbmcoKVxuICAgICAgfSkpXG4gICAgICAubWFwKGJ1dHRvbiA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU1lbnVJZCA9IHRoaXMuYWN0aXZlTWVudUlkKCk7XG4gICAgICAgIHJldHVybiB7IC4uLmJ1dHRvbiwgaXNBY3RpdmU6IGJ1dHRvbi5pZCA9PT0gKGFjdGl2ZU1lbnVJZCB8fCB0aGlzLmFjdGl2ZUJ1dHRvbklkKCkpIH07XG4gICAgICB9KVxuICApO1xuXG4gIHByb3RlY3RlZCBjbGlja2VkQnV0dG9uOiBXcml0YWJsZVNpZ25hbDxzdHJpbmcgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcbiAgcHJvdGVjdGVkIGV4cGFuZGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgbWVudVJlZiA9IHNpZ25hbChudWxsIGFzIFRlbXBsYXRlUmVmPGFueT4gfCBudWxsKTtcblxuICBhY3RpdmVCdXR0b25JZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jbGlja2VkQnV0dG9uKCkgfHwgdGhpcy5fZGVmYXVsdEFjdGl2ZUJ1dHRvbklkKCk7XG4gIH0pO1xuXG4gIGFjdGl2ZU1lbnVJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5leHBhbmRlZCgpICYmIHRoaXMubWVudVJlZigpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2hlbGZCdXR0b25zKClcbiAgICAgICAgLmZpbmRJbmRleChidXR0b24gPT4gYnV0dG9uLm1lbnVSZWYgPT09IHRoaXMubWVudVJlZigpKVxuICAgICAgICA/LnRvU3RyaW5nKCk7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgdG9wTWVudUJ1dHRvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYnV0dG9ucygpLmZpbHRlcihidXR0b24gPT4gIWJ1dHRvbi5wb3NpdGlvbiB8fCBidXR0b24ucG9zaXRpb24gPT09ICd0b3AnKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBJU2hlbGxNZW51QnV0dG9uKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYm90dG9tTWVudUJ1dHRvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYnV0dG9ucygpLmZpbHRlcihidXR0b24gPT4gYnV0dG9uLnBvc2l0aW9uID09PSAnYm90dG9tJyk7XG4gIH0pO1xuXG4gIGhpZGVNZW51KCkge1xuICAgIHRoaXMuZXhwYW5kZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmNsaWNrZWRCdXR0b24uc2V0KG51bGwpO1xuICB9XG5cbiAgc2hvd01lbnUodGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKHRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLm1lbnVSZWYuc2V0KHRlbXBsYXRlUmVmKTtcbiAgICB9XG4gICAgdGhpcy5leHBhbmRlZC5zZXQodHJ1ZSk7XG4gICAgdGhpcy5tZW51U2hvd24uZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTWVudUJ1dHRvbkNsaWNrKGJ1dHRvbjogSVNoZWxsTWVudUJ1dHRvbikge1xuICAgIGlmIChidXR0b24uaWQgPT09IHRoaXMuY2xpY2tlZEJ1dHRvbigpKSB7XG4gICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGJ1dHRvbi5tZW51UmVmKSB7XG4gICAgICB0aGlzLm1lbnVSZWYuc2V0KGJ1dHRvbi5tZW51UmVmKTtcbiAgICAgIHRoaXMuc2hvd01lbnUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgIH1cblxuICAgIGlmICghYnV0dG9uLmFjdGl2ZURpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrZWRCdXR0b24uc2V0KGJ1dHRvbi5pZCk7XG4gICAgfVxuXG4gICAgYnV0dG9uLm9uQ2xpY2s/LigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2hlbGwgfCBoLTEwMFwiPlxuICA8YXNpZGU+XG4gICAgPGRpdiBjbGFzcz1cInNoZWxsX19tZW51IHwgaXMtcmVsYXRpdmUgaC0xMDAgaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW4gaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbF9fbWVudS0tc2VjdGlvbiB8IGlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHRvcE1lbnVCdXR0b25zKCk7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogYnV0dG9uIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2hlbGxfX21lbnUtLXNlY3Rpb24gfCBpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLWNvbHVtblwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBib3R0b21NZW51QnV0dG9ucygpOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGJ1dHRvbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2hlbGxfX21lbnVDb250ZW50IHwgaC0xMDAgaXMtYWJzb2x1dGVcIiBbY2xhc3MuZXhwYW5kZWRdPVwiZXhwYW5kZWQoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImgtMTAwXCIgW2NsYXNzLmlzLWhpZGRlbl09XCIhZXhwYW5kZWQoKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVudVJlZigpXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2FzaWRlPlxuXG4gIDxkaXYgY2xhc3M9XCJzaGVsbF9fY29udGVudCB8IGgtMTAwIHctMTAwIGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LWZsZXgtZW5kXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzaGVsbF9fY29udGVudC0tYm9keSB8IHctMTAwXCJcbiAgICAgIFtjbGFzcy5tZW51LWV4cGFuZGVkXT1cIiFtZW51T3ZlcmxhcCAmJiBleHBhbmRlZCgpXCJcbiAgICAgIChjbGljayk9XCJjbG9zZU1lbnVPbk91dHNpZGVDbGljayA/IGhpZGVNZW51KCkgOiBudWxsXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGUgbGV0LWJ1dHRvbj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJvbk1lbnVCdXR0b25DbGljayhidXR0b24pXCJcbiAgICBjbGFzcz1cIm1lbnUtYnV0dG9uIGJ1dHRvbiBpcy1zZWNvbmRhcnlcIiBbbmdDbGFzc109XCJidXR0b24uaXNBY3RpdmUgPyBidXR0b24uYWN0aXZlQ2xhc3NOYW1lIDogJydcIlxuICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwiYnV0dG9uLmlzQWN0aXZlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgaWNvblRlbXBsYXRlID8/IGRlZmF1bHRJY29uVGVtcGxhdGU7XG4gICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBidXR0b24sIGlzQWN0aXZlOiBidXR0b24gIT09IGNsaWNrZWRCdXR0b24gfVxuICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SWNvblRlbXBsYXRlIGxldC1idXR0b24+XG4gIDxmYS1pY29uIFtpY29uXT1cImJ1dHRvbi5pY29uXCI+PC9mYS1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9zaGVsbC9zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL3NoZWxsL3NoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7Ozs7QUFtQnZCLE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBTWdDLGlCQUFZLEdBQTRCLElBQUksQ0FBQztRQUVuRSxrQkFBYSxHQUF1QyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsMkJBQXNCLEdBQWtDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU1wRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFNL0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekMsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRTthQUNqQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLEdBQUcsTUFBTTtZQUNULEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7U0FDbEMsQ0FBQyxDQUFDO2FBQ0YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3hGLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFFUSxrQkFBYSxHQUFrQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixZQUFPLEdBQUcsTUFBTSxDQUFDLElBQStCLENBQUMsQ0FBQztRQUU1RCxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyQyxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUU7cUJBQ3hCLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN2RCxFQUFFLFFBQVEsRUFBRSxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7UUFNTyxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUM7S0FrQ0o7SUF2RkMsSUFBYSxZQUFZLENBQUMsS0FBeUI7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQU1ELElBQWEscUJBQXFCLENBQUMsS0FBb0I7UUFDckQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBcUNTLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBc0I7UUFDdkQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFNRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUE4QjtRQUNyQyxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsaUJBQWlCLENBQUMsTUFBd0I7UUFDbEQsSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztTQUNSO1FBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQztRQUVELE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBNUZVLGNBQWM7a0dBQWQsY0FBYyx5V0M3QjNCLDI4REFtREE7OzJGRHRCYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVU7OEJBS1UsWUFBWTtzQkFBekMsWUFBWTt1QkFBQyxjQUFjO2dCQUtmLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBRU8scUJBQXFCO3NCQUFqQyxLQUFLO2dCQUlJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgV3JpdGFibGVTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNoZWxsTWVudUJ1dHRvbiB7XG4gIGljb24/OiBhbnk7XG4gIGljb25QYXRoPzogc3RyaW5nO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICBtZW51UmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgcG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nO1xuICBhY3RpdmVEaXNhYmxlZD86IGJvb2xlYW47XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFjdGl2ZUNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtc2hlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2hlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaGVsbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNoZWxsQ29tcG9uZW50IHtcbiAgQENvbnRlbnRDaGlsZCgnaWNvblRlbXBsYXRlJykgaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfc2hlbGZCdXR0b25zOiBXcml0YWJsZVNpZ25hbDxJU2hlbGxNZW51QnV0dG9uW10+ID0gc2lnbmFsKFtdKTtcbiAgcHJpdmF0ZSBfZGVmYXVsdEFjdGl2ZUJ1dHRvbklkOiBXcml0YWJsZVNpZ25hbDxzdHJpbmcgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcblxuICBASW5wdXQoKSBzZXQgc2hlbGZCdXR0b25zKHZhbHVlOiBJU2hlbGxNZW51QnV0dG9uW10pIHtcbiAgICB0aGlzLl9zaGVsZkJ1dHRvbnMuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpIG1lbnVPdmVybGFwID0gZmFsc2U7XG5cbiAgQElucHV0KCkgY2xvc2VNZW51T25PdXRzaWRlQ2xpY2sgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgZGVmYXVsdEFjdGl2ZUJ1dHRvbklkKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fZGVmYXVsdEFjdGl2ZUJ1dHRvbklkLnNldCh2YWx1ZSk7XG4gIH1cblxuICBAT3V0cHV0KCkgbWVudVNob3duID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGJ1dHRvbnMgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuX3NoZWxmQnV0dG9ucygpXG4gICAgICAubWFwKChidXR0b24sIGluZGV4KSA9PiAoe1xuICAgICAgICAuLi5idXR0b24sXG4gICAgICAgIGlkOiBidXR0b24uaWQgfHwgaW5kZXgudG9TdHJpbmcoKVxuICAgICAgfSkpXG4gICAgICAubWFwKGJ1dHRvbiA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU1lbnVJZCA9IHRoaXMuYWN0aXZlTWVudUlkKCk7XG4gICAgICAgIHJldHVybiB7IC4uLmJ1dHRvbiwgaXNBY3RpdmU6IGJ1dHRvbi5pZCA9PT0gKGFjdGl2ZU1lbnVJZCB8fCB0aGlzLmFjdGl2ZUJ1dHRvbklkKCkpIH07XG4gICAgICB9KVxuICApO1xuXG4gIHByb3RlY3RlZCBjbGlja2VkQnV0dG9uOiBXcml0YWJsZVNpZ25hbDxzdHJpbmcgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcbiAgcHJvdGVjdGVkIGV4cGFuZGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgbWVudVJlZiA9IHNpZ25hbChudWxsIGFzIFRlbXBsYXRlUmVmPGFueT4gfCBudWxsKTtcblxuICBhY3RpdmVCdXR0b25JZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jbGlja2VkQnV0dG9uKCkgfHwgdGhpcy5fZGVmYXVsdEFjdGl2ZUJ1dHRvbklkKCk7XG4gIH0pO1xuXG4gIGFjdGl2ZU1lbnVJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5leHBhbmRlZCgpICYmIHRoaXMubWVudVJlZigpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2hlbGZCdXR0b25zKClcbiAgICAgICAgLmZpbmRJbmRleChidXR0b24gPT4gYnV0dG9uLm1lbnVSZWYgPT09IHRoaXMubWVudVJlZigpKVxuICAgICAgICA/LnRvU3RyaW5nKCk7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgdG9wTWVudUJ1dHRvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYnV0dG9ucygpLmZpbHRlcihidXR0b24gPT4gIWJ1dHRvbi5wb3NpdGlvbiB8fCBidXR0b24ucG9zaXRpb24gPT09ICd0b3AnKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBJU2hlbGxNZW51QnV0dG9uKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYm90dG9tTWVudUJ1dHRvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYnV0dG9ucygpLmZpbHRlcihidXR0b24gPT4gYnV0dG9uLnBvc2l0aW9uID09PSAnYm90dG9tJyk7XG4gIH0pO1xuXG4gIGhpZGVNZW51KCkge1xuICAgIHRoaXMuZXhwYW5kZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmNsaWNrZWRCdXR0b24uc2V0KG51bGwpO1xuICB9XG5cbiAgc2hvd01lbnUodGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKHRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLm1lbnVSZWYuc2V0KHRlbXBsYXRlUmVmKTtcbiAgICB9XG4gICAgdGhpcy5leHBhbmRlZC5zZXQodHJ1ZSk7XG4gICAgdGhpcy5tZW51U2hvd24uZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTWVudUJ1dHRvbkNsaWNrKGJ1dHRvbjogSVNoZWxsTWVudUJ1dHRvbikge1xuICAgIGlmIChidXR0b24uaWQgPT09IHRoaXMuY2xpY2tlZEJ1dHRvbigpKSB7XG4gICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGJ1dHRvbi5tZW51UmVmKSB7XG4gICAgICB0aGlzLm1lbnVSZWYuc2V0KGJ1dHRvbi5tZW51UmVmKTtcbiAgICAgIHRoaXMuc2hvd01lbnUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgIH1cblxuICAgIGlmICghYnV0dG9uLmFjdGl2ZURpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrZWRCdXR0b24uc2V0KGJ1dHRvbi5pZCk7XG4gICAgfVxuXG4gICAgYnV0dG9uLm9uQ2xpY2s/LigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2hlbGwgfCBoLTEwMFwiPlxuICA8YXNpZGU+XG4gICAgPGRpdiBjbGFzcz1cInNoZWxsX19tZW51IHwgaXMtcmVsYXRpdmUgaC0xMDAgaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW4gaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbF9fbWVudS0tc2VjdGlvbiB8IGlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHRvcE1lbnVCdXR0b25zKCk7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogYnV0dG9uIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2hlbGxfX21lbnUtLXNlY3Rpb24gfCBpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLWNvbHVtblwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBib3R0b21NZW51QnV0dG9ucygpOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGJ1dHRvbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2hlbGxfX21lbnVDb250ZW50IHwgaC0xMDAgaXMtYWJzb2x1dGVcIiBbY2xhc3MuZXhwYW5kZWRdPVwiZXhwYW5kZWQoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImgtMTAwXCIgW2NsYXNzLmlzLWhpZGRlbl09XCIhZXhwYW5kZWQoKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVudVJlZigpXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2FzaWRlPlxuXG4gIDxkaXYgY2xhc3M9XCJzaGVsbF9fY29udGVudCB8IGgtMTAwIHctMTAwIGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LWZsZXgtZW5kXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzaGVsbF9fY29udGVudC0tYm9keSB8IHctMTAwXCJcbiAgICAgIFtjbGFzcy5tZW51LWV4cGFuZGVkXT1cIiFtZW51T3ZlcmxhcCAmJiBleHBhbmRlZCgpXCJcbiAgICAgIChjbGljayk9XCJjbG9zZU1lbnVPbk91dHNpZGVDbGljayA/IGhpZGVNZW51KCkgOiBudWxsXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGUgbGV0LWJ1dHRvbj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJvbk1lbnVCdXR0b25DbGljayhidXR0b24pXCJcbiAgICBjbGFzcz1cIm1lbnUtYnV0dG9uIGJ1dHRvbiBpcy1zZWNvbmRhcnlcIlxuICAgIFtuZ0NsYXNzXT1cImJ1dHRvbi5pc0FjdGl2ZSA/IGJ1dHRvbi5hY3RpdmVDbGFzc05hbWUgOiAnJ1wiXG4gICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJidXR0b24uaXNBY3RpdmVcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBpY29uVGVtcGxhdGUgPz8gZGVmYXVsdEljb25UZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGJ1dHRvbiwgaXNBY3RpdmU6IGJ1dHRvbiAhPT0gY2xpY2tlZEJ1dHRvbiB9XG4gICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJY29uVGVtcGxhdGUgbGV0LWJ1dHRvbj5cbiAgPGZhLWljb24gW2ljb25dPVwiYnV0dG9uLmljb25cIj48L2ZhLWljb24+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -6,6 +6,7 @@ import * as i3 from "@fortawesome/angular-fontawesome";
6
6
  import * as i4 from "../click-outside.directive";
7
7
  export class SortSelectComponent {
8
8
  constructor() {
9
+ this.alignment = 'right';
9
10
  this.sortChange = new EventEmitter();
10
11
  this.sortBySignal = signal('');
11
12
  this.sortOrderSignal = signal('desc');
@@ -40,13 +41,15 @@ export class SortSelectComponent {
40
41
  });
41
42
  }
42
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: SortSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: SortSelectComponent, selector: "he-sort-select", inputs: { sortOptions: "sortOptions", sortBy: "sortBy", sortOrder: "sortOrder" }, outputs: { sortChange: "sortChange" }, ngImport: i0, template: "<div (clickOutside)=\"showSortBy = false\" [class.is-active]=\"showSortBy\" [ngSwitch]=\"sortBySignal()\" class=\"dropdown\">\n <div (click)=\"showSortBy = !showSortBy\" class=\"dropdown-trigger\">\n <button\n [class.is-active]=\"showSortBy\"\n [disableTooltip]=\"showSortBy\"\n aria-controls=\"sort-menu\"\n aria-haspopup=\"true\"\n class=\"button is-ghost\"\n container=\"body\"\n ngbTooltip=\"Sort options\"\n placement=\"bottom\">\n <fa-icon aria-hidden=\"true\" icon=\"sort-amount-up-alt\"></fa-icon>\n </button>\n </div>\n <div class=\"dropdown-menu\" id=\"sort-menu\" role=\"menu\">\n <div (click)=\"showSortBy = false\" class=\"dropdown-content\">\n <a\n (click)=\"sort(option)\"\n *ngFor=\"let option of sortOptions\"\n [class.is-selected]=\"sortBySignal() === option.id\"\n class=\"dropdown-item\">\n <fa-icon\n [icon]=\"arrowIcon\"\n [style.visibility]=\"sortBySignal() === option.id ? 'visible' : 'hidden'\"\n class=\"pr-2\"></fa-icon>\n <span [style.border-color]=\"option.color ?? 'transparent'\" class=\"pl-2 is-inline-block is-capitalized\">\n {{ option.label }}\n </span>\n </a>\n </div>\n </div>\n</div>\n", styles: [".dropdown-item>span{border-left:2px solid transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i4.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: SortSelectComponent, selector: "he-sort-select", inputs: { sortOptions: "sortOptions", alignment: "alignment", sortBy: "sortBy", sortOrder: "sortOrder" }, outputs: { sortChange: "sortChange" }, ngImport: i0, template: "<div\n (clickOutside)=\"showSortBy = false\"\n [class.is-active]=\"showSortBy\"\n [ngSwitch]=\"sortBySignal()\"\n [ngClass]=\"'is-' + alignment\"\n class=\"dropdown\">\n <div (click)=\"showSortBy = !showSortBy\" class=\"dropdown-trigger\">\n <button\n [class.is-active]=\"showSortBy\"\n [disableTooltip]=\"showSortBy\"\n aria-controls=\"sort-menu\"\n aria-haspopup=\"true\"\n class=\"button is-ghost\"\n container=\"body\"\n ngbTooltip=\"Sort options\"\n placement=\"bottom\">\n <fa-icon aria-hidden=\"true\" icon=\"sort-amount-up-alt\"></fa-icon>\n </button>\n </div>\n <div class=\"dropdown-menu\" id=\"sort-menu\" role=\"menu\">\n <div (click)=\"showSortBy = false\" class=\"dropdown-content\">\n <a\n (click)=\"sort(option)\"\n *ngFor=\"let option of sortOptions\"\n [class.is-selected]=\"sortBySignal() === option.id\"\n class=\"dropdown-item\">\n <fa-icon\n [icon]=\"arrowIcon\"\n [style.visibility]=\"sortBySignal() === option.id ? 'visible' : 'hidden'\"\n class=\"pr-2\"></fa-icon>\n <span [style.border-color]=\"option.color ?? 'transparent'\" class=\"pl-2 is-inline-block is-capitalized\">\n {{ option.label }}\n </span>\n </a>\n </div>\n </div>\n</div>\n", styles: [".dropdown-item>span{border-left:2px solid transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i4.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
45
  }
45
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: SortSelectComponent, decorators: [{
46
47
  type: Component,
47
- args: [{ selector: 'he-sort-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div (clickOutside)=\"showSortBy = false\" [class.is-active]=\"showSortBy\" [ngSwitch]=\"sortBySignal()\" class=\"dropdown\">\n <div (click)=\"showSortBy = !showSortBy\" class=\"dropdown-trigger\">\n <button\n [class.is-active]=\"showSortBy\"\n [disableTooltip]=\"showSortBy\"\n aria-controls=\"sort-menu\"\n aria-haspopup=\"true\"\n class=\"button is-ghost\"\n container=\"body\"\n ngbTooltip=\"Sort options\"\n placement=\"bottom\">\n <fa-icon aria-hidden=\"true\" icon=\"sort-amount-up-alt\"></fa-icon>\n </button>\n </div>\n <div class=\"dropdown-menu\" id=\"sort-menu\" role=\"menu\">\n <div (click)=\"showSortBy = false\" class=\"dropdown-content\">\n <a\n (click)=\"sort(option)\"\n *ngFor=\"let option of sortOptions\"\n [class.is-selected]=\"sortBySignal() === option.id\"\n class=\"dropdown-item\">\n <fa-icon\n [icon]=\"arrowIcon\"\n [style.visibility]=\"sortBySignal() === option.id ? 'visible' : 'hidden'\"\n class=\"pr-2\"></fa-icon>\n <span [style.border-color]=\"option.color ?? 'transparent'\" class=\"pl-2 is-inline-block is-capitalized\">\n {{ option.label }}\n </span>\n </a>\n </div>\n </div>\n</div>\n", styles: [".dropdown-item>span{border-left:2px solid transparent}\n"] }]
48
+ args: [{ selector: 'he-sort-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n (clickOutside)=\"showSortBy = false\"\n [class.is-active]=\"showSortBy\"\n [ngSwitch]=\"sortBySignal()\"\n [ngClass]=\"'is-' + alignment\"\n class=\"dropdown\">\n <div (click)=\"showSortBy = !showSortBy\" class=\"dropdown-trigger\">\n <button\n [class.is-active]=\"showSortBy\"\n [disableTooltip]=\"showSortBy\"\n aria-controls=\"sort-menu\"\n aria-haspopup=\"true\"\n class=\"button is-ghost\"\n container=\"body\"\n ngbTooltip=\"Sort options\"\n placement=\"bottom\">\n <fa-icon aria-hidden=\"true\" icon=\"sort-amount-up-alt\"></fa-icon>\n </button>\n </div>\n <div class=\"dropdown-menu\" id=\"sort-menu\" role=\"menu\">\n <div (click)=\"showSortBy = false\" class=\"dropdown-content\">\n <a\n (click)=\"sort(option)\"\n *ngFor=\"let option of sortOptions\"\n [class.is-selected]=\"sortBySignal() === option.id\"\n class=\"dropdown-item\">\n <fa-icon\n [icon]=\"arrowIcon\"\n [style.visibility]=\"sortBySignal() === option.id ? 'visible' : 'hidden'\"\n class=\"pr-2\"></fa-icon>\n <span [style.border-color]=\"option.color ?? 'transparent'\" class=\"pl-2 is-inline-block is-capitalized\">\n {{ option.label }}\n </span>\n </a>\n </div>\n </div>\n</div>\n", styles: [".dropdown-item>span{border-left:2px solid transparent}\n"] }]
48
49
  }], propDecorators: { sortOptions: [{
49
50
  type: Input
51
+ }], alignment: [{
52
+ type: Input
50
53
  }], sortChange: [{
51
54
  type: Output
52
55
  }], sortBy: [{
@@ -54,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
54
57
  }], sortOrder: [{
55
58
  type: Input
56
59
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9zb3J0LXNlbGVjdC9zb3J0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL3NvcnQtc2VsZWN0L3NvcnQtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFzQnhHLE1BQU0sT0FBTyxtQkFBbUI7SUFOaEM7UUFXbUIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRXhELGlCQUFZLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTFCLG9CQUFlLEdBQUcsTUFBTSxDQUFrQixNQUFNLENBQUMsQ0FBQztRQUVsRCxlQUFVLEdBQUcsS0FBSyxDQUFDO0tBa0M5QjtJQWhDQyxJQUFhLE1BQU0sQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxLQUFzQjtRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBYyxTQUFTO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQWEsQ0FBQztJQUN2RyxDQUFDO0lBRVMsSUFBSSxDQUFDLE1BQWtCO1FBQy9CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVDVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwrS0N0QmhDLGl3Q0FnQ0E7OzJGRFZhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTs4QkFJeEMsV0FBVztzQkFEakIsS0FBSztnQkFJVyxVQUFVO3NCQUQxQixNQUFNO2dCQVNNLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uUHJvcCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydE9wdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRTZWxlY3RFdmVudCB7XG4gIHNvcnRCeTogc3RyaW5nO1xuICBzb3J0T3JkZXI6IFNvcnRTZWxlY3RPcmRlcjtcbn1cblxuZXhwb3J0IHR5cGUgU29ydFNlbGVjdE9yZGVyID0gJ2FzYycgfCAnZGVzYyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLXNvcnQtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NvcnQtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc29ydC1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU29ydFNlbGVjdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzb3J0T3B0aW9uczogU29ydE9wdGlvbltdO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIHJlYWRvbmx5IHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnRTZWxlY3RFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgc29ydEJ5U2lnbmFsID0gc2lnbmFsKCcnKTtcblxuICBwcm90ZWN0ZWQgc29ydE9yZGVyU2lnbmFsID0gc2lnbmFsKDxTb3J0U2VsZWN0T3JkZXI+J2Rlc2MnKTtcblxuICBwcm90ZWN0ZWQgc2hvd1NvcnRCeSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBzb3J0QnkodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc29ydEJ5U2lnbmFsLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc29ydE9yZGVyKHZhbHVlOiBTb3J0U2VsZWN0T3JkZXIpIHtcbiAgICB0aGlzLnNvcnRPcmRlclNpZ25hbC5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBhcnJvd0ljb24oKSB7XG4gICAgcmV0dXJuICh0aGlzLnNvcnRPcmRlclNpZ25hbCgpID09PSAnZGVzYycgPyAnbG9uZy1hcnJvdy1hbHQtZG93bicgOiAnbG9uZy1hcnJvdy1hbHQtdXAnKSBhcyBJY29uUHJvcDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzb3J0KG9wdGlvbjogU29ydE9wdGlvbikge1xuICAgIGlmICh0aGlzLnNvcnRCeVNpZ25hbCgpID09PSBvcHRpb24uaWQpIHtcbiAgICAgIHRoaXMuX3RvZ2dsZVNvcnRCeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvcnRCeVNpZ25hbC5zZXQob3B0aW9uLmlkKTtcbiAgICAgIHRoaXMuc29ydE9yZGVyU2lnbmFsLnNldCgnZGVzYycpO1xuICAgIH1cbiAgICB0aGlzLl9lbWl0U29ydENoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlU29ydEJ5KCkge1xuICAgIHRoaXMuc29ydE9yZGVyU2lnbmFsLnVwZGF0ZSh2YWx1ZSA9PiAodmFsdWUgPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYycpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRTb3J0Q2hhbmdlKCkge1xuICAgIHRoaXMuc29ydENoYW5nZS5lbWl0KHtcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0QnlTaWduYWwoKSxcbiAgICAgIHNvcnRPcmRlcjogdGhpcy5zb3J0T3JkZXJTaWduYWwoKVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IChjbGlja091dHNpZGUpPVwic2hvd1NvcnRCeSA9IGZhbHNlXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzaG93U29ydEJ5XCIgW25nU3dpdGNoXT1cInNvcnRCeVNpZ25hbCgpXCIgY2xhc3M9XCJkcm9wZG93blwiPlxuICA8ZGl2IChjbGljayk9XCJzaG93U29ydEJ5ID0gIXNob3dTb3J0QnlcIiBjbGFzcz1cImRyb3Bkb3duLXRyaWdnZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cInNob3dTb3J0QnlcIlxuICAgICAgW2Rpc2FibGVUb29sdGlwXT1cInNob3dTb3J0QnlcIlxuICAgICAgYXJpYS1jb250cm9scz1cInNvcnQtbWVudVwiXG4gICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICBjbGFzcz1cImJ1dHRvbiBpcy1naG9zdFwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIG5nYlRvb2x0aXA9XCJTb3J0IG9wdGlvbnNcIlxuICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCI+XG4gICAgICA8ZmEtaWNvbiBhcmlhLWhpZGRlbj1cInRydWVcIiBpY29uPVwic29ydC1hbW91bnQtdXAtYWx0XCI+PC9mYS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBpZD1cInNvcnQtbWVudVwiIHJvbGU9XCJtZW51XCI+XG4gICAgPGRpdiAoY2xpY2spPVwic2hvd1NvcnRCeSA9IGZhbHNlXCIgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50XCI+XG4gICAgICA8YVxuICAgICAgICAoY2xpY2spPVwic29ydChvcHRpb24pXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzb3J0T3B0aW9uc1wiXG4gICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzb3J0QnlTaWduYWwoKSA9PT0gb3B0aW9uLmlkXCJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCI+XG4gICAgICAgIDxmYS1pY29uXG4gICAgICAgICAgW2ljb25dPVwiYXJyb3dJY29uXCJcbiAgICAgICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJzb3J0QnlTaWduYWwoKSA9PT0gb3B0aW9uLmlkID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIlxuICAgICAgICAgIGNsYXNzPVwicHItMlwiPjwvZmEtaWNvbj5cbiAgICAgICAgPHNwYW4gW3N0eWxlLmJvcmRlci1jb2xvcl09XCJvcHRpb24uY29sb3IgPz8gJ3RyYW5zcGFyZW50J1wiIGNsYXNzPVwicGwtMiBpcy1pbmxpbmUtYmxvY2sgaXMtY2FwaXRhbGl6ZWRcIj5cbiAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9zb3J0LXNlbGVjdC9zb3J0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL3NvcnQtc2VsZWN0L3NvcnQtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFzQnhHLE1BQU0sT0FBTyxtQkFBbUI7SUFOaEM7UUFVVyxjQUFTLEdBQXFCLE9BQU8sQ0FBQztRQUc5QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFeEQsaUJBQVksR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUIsb0JBQWUsR0FBRyxNQUFNLENBQWtCLE1BQU0sQ0FBQyxDQUFDO1FBRWxELGVBQVUsR0FBRyxLQUFLLENBQUM7S0FrQzlCO0lBaENDLElBQWEsTUFBTSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLEtBQXNCO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFjLFNBQVM7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBYSxDQUFDO0lBQ3ZHLENBQUM7SUFFUyxJQUFJLENBQUMsTUFBa0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzNCLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBOUNVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHVNQ3RCaEMsZ3pDQXFDQTs7MkZEZmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUl4QyxXQUFXO3NCQURqQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR1csVUFBVTtzQkFEMUIsTUFBTTtnQkFTTSxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvblByb3AgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0U2VsZWN0RXZlbnQge1xuICBzb3J0Qnk6IHN0cmluZztcbiAgc29ydE9yZGVyOiBTb3J0U2VsZWN0T3JkZXI7XG59XG5cbmV4cG9ydCB0eXBlIFNvcnRTZWxlY3RPcmRlciA9ICdhc2MnIHwgJ2Rlc2MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1zb3J0LXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zb3J0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NvcnQtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNvcnRTZWxlY3RDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydE9wdGlvbnM6IFNvcnRPcHRpb25bXTtcblxuICBASW5wdXQoKSBhbGlnbm1lbnQ6ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIHJlYWRvbmx5IHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnRTZWxlY3RFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgc29ydEJ5U2lnbmFsID0gc2lnbmFsKCcnKTtcblxuICBwcm90ZWN0ZWQgc29ydE9yZGVyU2lnbmFsID0gc2lnbmFsKDxTb3J0U2VsZWN0T3JkZXI+J2Rlc2MnKTtcblxuICBwcm90ZWN0ZWQgc2hvd1NvcnRCeSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBzb3J0QnkodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc29ydEJ5U2lnbmFsLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc29ydE9yZGVyKHZhbHVlOiBTb3J0U2VsZWN0T3JkZXIpIHtcbiAgICB0aGlzLnNvcnRPcmRlclNpZ25hbC5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBhcnJvd0ljb24oKSB7XG4gICAgcmV0dXJuICh0aGlzLnNvcnRPcmRlclNpZ25hbCgpID09PSAnZGVzYycgPyAnbG9uZy1hcnJvdy1hbHQtZG93bicgOiAnbG9uZy1hcnJvdy1hbHQtdXAnKSBhcyBJY29uUHJvcDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzb3J0KG9wdGlvbjogU29ydE9wdGlvbikge1xuICAgIGlmICh0aGlzLnNvcnRCeVNpZ25hbCgpID09PSBvcHRpb24uaWQpIHtcbiAgICAgIHRoaXMuX3RvZ2dsZVNvcnRCeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvcnRCeVNpZ25hbC5zZXQob3B0aW9uLmlkKTtcbiAgICAgIHRoaXMuc29ydE9yZGVyU2lnbmFsLnNldCgnZGVzYycpO1xuICAgIH1cbiAgICB0aGlzLl9lbWl0U29ydENoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlU29ydEJ5KCkge1xuICAgIHRoaXMuc29ydE9yZGVyU2lnbmFsLnVwZGF0ZSh2YWx1ZSA9PiAodmFsdWUgPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYycpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRTb3J0Q2hhbmdlKCkge1xuICAgIHRoaXMuc29ydENoYW5nZS5lbWl0KHtcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0QnlTaWduYWwoKSxcbiAgICAgIHNvcnRPcmRlcjogdGhpcy5zb3J0T3JkZXJTaWduYWwoKVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIChjbGlja091dHNpZGUpPVwic2hvd1NvcnRCeSA9IGZhbHNlXCJcbiAgW2NsYXNzLmlzLWFjdGl2ZV09XCJzaG93U29ydEJ5XCJcbiAgW25nU3dpdGNoXT1cInNvcnRCeVNpZ25hbCgpXCJcbiAgW25nQ2xhc3NdPVwiJ2lzLScgKyBhbGlnbm1lbnRcIlxuICBjbGFzcz1cImRyb3Bkb3duXCI+XG4gIDxkaXYgKGNsaWNrKT1cInNob3dTb3J0QnkgPSAhc2hvd1NvcnRCeVwiIGNsYXNzPVwiZHJvcGRvd24tdHJpZ2dlclwiPlxuICAgIDxidXR0b25cbiAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwic2hvd1NvcnRCeVwiXG4gICAgICBbZGlzYWJsZVRvb2x0aXBdPVwic2hvd1NvcnRCeVwiXG4gICAgICBhcmlhLWNvbnRyb2xzPVwic29ydC1tZW51XCJcbiAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwiYnV0dG9uIGlzLWdob3N0XCJcbiAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgbmdiVG9vbHRpcD1cIlNvcnQgb3B0aW9uc1wiXG4gICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIj5cbiAgICAgIDxmYS1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGljb249XCJzb3J0LWFtb3VudC11cC1hbHRcIj48L2ZhLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGlkPVwic29ydC1tZW51XCIgcm9sZT1cIm1lbnVcIj5cbiAgICA8ZGl2IChjbGljayk9XCJzaG93U29ydEJ5ID0gZmFsc2VcIiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnRcIj5cbiAgICAgIDxhXG4gICAgICAgIChjbGljayk9XCJzb3J0KG9wdGlvbilcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNvcnRPcHRpb25zXCJcbiAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNvcnRCeVNpZ25hbCgpID09PSBvcHRpb24uaWRcIlxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIj5cbiAgICAgICAgPGZhLWljb25cbiAgICAgICAgICBbaWNvbl09XCJhcnJvd0ljb25cIlxuICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cInNvcnRCeVNpZ25hbCgpID09PSBvcHRpb24uaWQgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiXG4gICAgICAgICAgY2xhc3M9XCJwci0yXCI+PC9mYS1pY29uPlxuICAgICAgICA8c3BhbiBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cIm9wdGlvbi5jb2xvciA/PyAndHJhbnNwYXJlbnQnXCIgY2xhc3M9XCJwbC0yIGlzLWlubGluZS1ibG9jayBpcy1jYXBpdGFsaXplZFwiPlxuICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -98,7 +98,7 @@ export class CyclesActivityComponent {
98
98
  return this.updateSelectedIndex(+value);
99
99
  }
100
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: CyclesActivityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: CyclesActivityComponent, selector: "he-cycles-activity", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState", enableCompare: "enableCompare" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"columns is-variable is-align-items-center is-2 m-0\">\n <div class=\"column\">\n <ng-container *ngIf=\"selectedView === View.table && (inputs.length || products.length)\">\n <button\n class=\"button is-small is-ghost\"\n (click)=\"showDownload = true\"\n ngbTooltip=\"Download as CSV\"\n placement=\"bottom\">\n <fa-icon icon=\"download\" size=\"lg\"></fa-icon>\n </button>\n </ng-container>\n </div>\n <div class=\"column is-narrow\" *ngIf=\"selectedView === View.table\">\n <he-search-extend\n class=\"is-secondary is-small\"\n placeholder=\"Filter inputs & products by name\"\n (search)=\"filter($event)\"></he-search-extend>\n </div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button\n class=\"button is-small\"\n [class.is-selected]=\"selectedView === View.table\"\n (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span class=\"is-hidden-mobile\">Table view</span>\n </button>\n </div>\n <div class=\"control\">\n <button\n class=\"button is-small\"\n [class.is-selected]=\"selectedView === View.chart\"\n (click)=\"selectedView = View.chart\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"chart-bar\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span class=\"is-hidden-mobile\">Chart view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal\">\n <button\n class=\"button is-small\"\n [class.is-selected]=\"selectedView === View.logs\"\n (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span class=\"is-hidden-mobile\">Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <ng-container *ngIf=\"inputs.length || products.length; else emptyTable\">\n <he-data-table class=\"mb-1 is-small\" [small]=\"true\" maxHeight=\"320\">\n <table class=\"table is-fullwidth is-narrow is-striped\">\n <thead>\n <tr class=\"has-text-weight-bold\">\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngIf=\"inputs.length\" [attr.colspan]=\"inputs.length\" [class.has-border-right]=\"products.length\">\n Inputs\n </th>\n <th *ngIf=\"products.length\" [attr.colspan]=\"products.length\">Products</th>\n </tr>\n <tr class=\"has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n <th class=\"has-border-right\"></th>\n <th\n *ngFor=\"let input of inputs; let pl = last\"\n [attr.title]=\"input.value.term.name\"\n [class.has-border-right]=\"products.length && pl\">\n <he-node-link [node]=\"input.value.term\">\n <span [innerHtml]=\"input.value.term.name | ellipsis: 30 | compound\"></span>\n </he-node-link>\n </th>\n <th *ngFor=\"let product of products; let pl = last\" [attr.title]=\"product.value.term.name\">\n <he-node-link [node]=\"product.value.term\">\n <span [innerHtml]=\"product.value.term.name | ellipsis: 30 | compound\"></span>\n </he-node-link>\n </th>\n </tr>\n <tr class=\"is-italic has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n <th class=\"has-border-right\">\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th\n *ngFor=\"let input of inputs; let pl = last\"\n [attr.title]=\"input.value.term.units\"\n [class.has-border-right]=\"products.length && pl\">\n <span [innerHtml]=\"input.value.term.units | compound\"></span>\n <he-terms-units-description\n class=\"is-inline-block is-ml-2\"\n [term]=\"input.value.term\"></he-terms-units-description>\n </th>\n <th *ngFor=\"let product of products; let pl = last\" [attr.title]=\"product.value.term.units\">\n <span [innerHtml]=\"product.value.term.units | compound\"></span>\n <he-terms-units-description\n class=\"is-inline-block is-ml-2\"\n [term]=\"product.value.term\"></he-terms-units-description>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr>\n <td class=\"width-auto has-border-right\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle.term || cycle\">\n <span>{{ i + 1 }}. {{ defaultLabel(cycle) }}</span>\n </he-node-link>\n </td>\n <td class=\"has-border-right\">\n <he-cycles-functional-unit-measure [cycle]=\"cycle\"></he-cycles-functional-unit-measure>\n </td>\n <td\n class=\"is-nowrap\"\n *ngFor=\"let input of inputs; let pl = last\"\n [class.has-border-right]=\"products.length && pl\">\n <span\n *ngIf=\"input.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\"\n [autoClose]=\"'outside'\"\n popoverClass=\"is-narrow\"\n triggers=\"manual\"\n #p=\"ngbPopover\"\n placement=\"left\"\n container=\"body\"\n (click)=\"togglePopover(p, { data: input.value.values[cycle['@id']], cycle: cycle, key: 'inputs' })\">\n <span pointer>\n {{\n propertyValue(input.value.values[cycle['@id']].value, input.value.term['@id'])\n | precision: 3\n | default: '-'\n }}\n </span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState\"\n [node]=\"input.value.values[cycle['@id']].node\"\n key=\"value\"></he-blank-node-state>\n </span>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let product of products; let pl = last\">\n <span\n *ngIf=\"product.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\"\n [autoClose]=\"'outside'\"\n popoverClass=\"is-narrow\"\n triggers=\"manual\"\n #p=\"ngbPopover\"\n placement=\"left\"\n container=\"body\"\n (click)=\"\n togglePopover(p, { data: product.value.values[cycle['@id']], cycle: cycle, key: 'products' })\n \">\n <span pointer>\n {{\n propertyValue(product.value.values[cycle['@id']].value, product.value.term['@id'])\n | precision: 3\n | default: '-'\n }}\n </span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState\"\n [node]=\"product.value.values[cycle['@id']].node\"\n key=\"value\"></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </he-data-table>\n\n <he-blank-node-state-notice [dataState]=\"dataState\"></he-blank-node-state-notice>\n </ng-container>\n</div>\n\n<he-cycles-result *ngIf=\"selectedView === View.chart\" [cycles]=\"cycles\"></he-cycles-result>\n\n<ng-container *ngIf=\"selectedView === View.logs && !isOriginal\">\n <div class=\"field has-addons pt-2 px-3\" *ngIf=\"cycles.length > 1\">\n <div class=\"control\">\n <span class=\"button is-small is-static is-secondary\">Select a Cycle</span>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth is-secondary\">\n <select (change)=\"selectIndex($event)\">\n <option *ngFor=\"let value of cycles; let i = index\" [value]=\"i\">\n {{ i + 1 }}. {{ defaultLabel(value) }}\n </option>\n </select>\n </div>\n </div>\n </div>\n\n <he-cycles-activity-logs\n *ngIf=\"selectedIndex >= 0\"\n [cycle]=\"cycles[selectedIndex]\"\n [original]=\"originalValues[selectedIndex]\"\n [recalculated]=\"cycles[selectedIndex]\"></he-cycles-activity-logs>\n</ng-container>\n\n<he-node-csv-export-confirm\n *ngIf=\"showDownload\"\n [nodes]=\"cycles\"\n filename=\"inputs-products.csv\"\n [isUpload]=\"false\"\n [headerKeys]=\"headerKeys\"\n (closed)=\"showDownload = false\"></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"has-text-centered\">\n <span>No data available</span>\n <span class=\"is-pl-1\" [class.is-hidden]=\"!filterTerm\">matching your search criteria</span>\n <span>.</span>\n <span [class.is-hidden]=\"!isOriginal\">\n Switch to\n <code>recalculated</code>\n version.\n </span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p>\n <b>{{ defaultLabel(node) }}</b>\n </p>\n <he-node-value-details\n [data]=\"data\"\n [dataState]=\"dataState\"\n [nodeType]=\"node['@type']\"\n [dataKey]=\"key\"></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}he-data-table ::ng-deep .table thead tr th:nth-child(2),he-data-table ::ng-deep .table tbody tr td:nth-child(2){max-width:102px;width:102px}\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.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i3.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "component", type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: i5.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["dataState", "nodeType", "dataKey", "key", "node", "state", "linkClass"] }, { kind: "component", type: i6.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted"] }, { kind: "component", type: i7.DataTableComponent, selector: "he-data-table", inputs: ["minHeight", "maxHeight", "small"] }, { kind: "component", type: i8.SearchExtendComponent, selector: "he-search-extend", inputs: ["value", "disabled", "placeholder", "class"], outputs: ["search"] }, { kind: "component", type: i9.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink", "linkClass"] }, { kind: "component", type: i10.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { kind: "component", type: i11.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey", "dataState"] }, { kind: "component", type: i12.TermsUnitsDescriptionComponent, selector: "he-terms-units-description", inputs: ["term"] }, { kind: "component", type: i13.CyclesActivityLogsComponent, selector: "he-cycles-activity-logs", inputs: ["cycle", "original", "recalculated"] }, { kind: "component", type: i14.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { kind: "component", type: i15.CyclesResultComponent, selector: "he-cycles-result", inputs: ["cycles"] }, { kind: "pipe", type: i16.CompoundPipe, name: "compound" }, { kind: "pipe", type: i17.DefaultPipe, name: "default" }, { kind: "pipe", type: i18.EllipsisPipe, name: "ellipsis" }, { kind: "pipe", type: i19.PrecisionPipe, name: "precision" }] }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: CyclesActivityComponent, selector: "he-cycles-activity", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState", enableCompare: "enableCompare" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"columns is-variable is-align-items-center is-2 m-0\">\n <div class=\"column\">\n <ng-container *ngIf=\"selectedView === View.table && (inputs.length || products.length)\">\n <button\n class=\"button is-small is-ghost\"\n (click)=\"showDownload = true\"\n ngbTooltip=\"Download as CSV\"\n placement=\"bottom\">\n <fa-icon icon=\"download\" size=\"lg\"></fa-icon>\n </button>\n </ng-container>\n </div>\n <div class=\"column is-narrow\" *ngIf=\"selectedView === View.table\">\n <he-search-extend\n class=\"is-secondary is-small\"\n placeholder=\"Filter inputs & products by name\"\n (search)=\"filter($event)\"></he-search-extend>\n </div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button\n class=\"button is-small\"\n [class.is-selected]=\"selectedView === View.table\"\n (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span class=\"is-hidden-mobile\">Table view</span>\n </button>\n </div>\n <div class=\"control\">\n <button\n class=\"button is-small\"\n [class.is-selected]=\"selectedView === View.chart\"\n (click)=\"selectedView = View.chart\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"chart-bar\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span class=\"is-hidden-mobile\">Chart view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal\">\n <button\n class=\"button is-small\"\n [class.is-selected]=\"selectedView === View.logs\"\n (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span class=\"is-hidden-mobile\">Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <ng-container *ngIf=\"inputs.length || products.length; else emptyTable\">\n <he-data-table class=\"mb-1 is-small\" [small]=\"true\" maxHeight=\"320\">\n <table class=\"table is-fullwidth is-narrow is-striped\">\n <thead>\n <tr class=\"has-text-weight-bold\">\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngIf=\"inputs.length\" [attr.colspan]=\"inputs.length\" [class.has-border-right]=\"products.length\">\n Inputs\n </th>\n <th *ngIf=\"products.length\" [attr.colspan]=\"products.length\">Products</th>\n </tr>\n <tr class=\"has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n <th class=\"has-border-right\"></th>\n <th\n *ngFor=\"let input of inputs; let pl = last\"\n [attr.title]=\"input.value.term.name\"\n [class.has-border-right]=\"products.length && pl\">\n <he-node-link [node]=\"input.value.term\">\n <span [innerHtml]=\"input.value.term.name | ellipsis: 30 | compound\"></span>\n </he-node-link>\n </th>\n <th *ngFor=\"let product of products; let pl = last\" [attr.title]=\"product.value.term.name\">\n <he-node-link [node]=\"product.value.term\">\n <span [innerHtml]=\"product.value.term.name | ellipsis: 30 | compound\"></span>\n </he-node-link>\n </th>\n </tr>\n <tr class=\"is-italic has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n <th class=\"has-border-right\">\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th\n *ngFor=\"let input of inputs; let pl = last\"\n [attr.title]=\"input.value.term.units\"\n [class.has-border-right]=\"products.length && pl\">\n <span [innerHtml]=\"input.value.term.units | compound\"></span>\n <he-terms-units-description\n class=\"is-inline-block is-ml-2\"\n [term]=\"input.value.term\"></he-terms-units-description>\n </th>\n <th *ngFor=\"let product of products; let pl = last\" [attr.title]=\"product.value.term.units\">\n <span [innerHtml]=\"product.value.term.units | compound\"></span>\n <he-terms-units-description\n class=\"is-inline-block is-ml-2\"\n [term]=\"product.value.term\"></he-terms-units-description>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr>\n <td class=\"width-auto has-border-right\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle.term || cycle\">\n <span>{{ i + 1 }}. {{ defaultLabel(cycle) }}</span>\n </he-node-link>\n </td>\n <td class=\"has-border-right\">\n <he-cycles-functional-unit-measure [cycle]=\"cycle\"></he-cycles-functional-unit-measure>\n </td>\n <td\n class=\"is-nowrap\"\n *ngFor=\"let input of inputs; let pl = last\"\n [class.has-border-right]=\"products.length && pl\">\n <span\n *ngIf=\"input.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\"\n [autoClose]=\"'outside'\"\n popoverClass=\"is-narrow\"\n triggers=\"manual\"\n #p=\"ngbPopover\"\n placement=\"left\"\n container=\"body\"\n (click)=\"togglePopover(p, { data: input.value.values[cycle['@id']], cycle: cycle, key: 'inputs' })\">\n <span pointer>\n {{\n propertyValue(input.value.values[cycle['@id']].value, input.value.term['@id'])\n | precision: 3\n | default: '-'\n }}\n </span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState\"\n [node]=\"input.value.values[cycle['@id']].node\"\n key=\"value\"></he-blank-node-state>\n </span>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let product of products; let pl = last\">\n <span\n *ngIf=\"product.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\"\n [autoClose]=\"'outside'\"\n popoverClass=\"is-narrow\"\n triggers=\"manual\"\n #p=\"ngbPopover\"\n placement=\"left\"\n container=\"body\"\n (click)=\"\n togglePopover(p, { data: product.value.values[cycle['@id']], cycle: cycle, key: 'products' })\n \">\n <span pointer>\n {{\n propertyValue(product.value.values[cycle['@id']].value, product.value.term['@id'])\n | precision: 3\n | default: '-'\n }}\n </span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState\"\n [node]=\"product.value.values[cycle['@id']].node\"\n key=\"value\"></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </he-data-table>\n\n <he-blank-node-state-notice [dataState]=\"dataState\"></he-blank-node-state-notice>\n </ng-container>\n</div>\n\n<he-cycles-result *ngIf=\"selectedView === View.chart\" [cycles]=\"cycles\"></he-cycles-result>\n\n<ng-container *ngIf=\"selectedView === View.logs && !isOriginal\">\n <div class=\"field has-addons pt-2 px-3\" *ngIf=\"cycles.length > 1\">\n <div class=\"control\">\n <span class=\"button is-small is-static is-secondary\">Select a Cycle</span>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth is-secondary\">\n <select (change)=\"selectIndex($event)\">\n <option *ngFor=\"let value of cycles; let i = index\" [value]=\"i\">\n {{ i + 1 }}. {{ defaultLabel(value) }}\n </option>\n </select>\n </div>\n </div>\n </div>\n\n <he-cycles-activity-logs\n *ngIf=\"selectedIndex >= 0\"\n [cycle]=\"cycles[selectedIndex]\"\n [original]=\"originalValues[selectedIndex]\"\n [recalculated]=\"cycles[selectedIndex]\"></he-cycles-activity-logs>\n</ng-container>\n\n<he-node-csv-export-confirm\n *ngIf=\"showDownload\"\n [nodes]=\"cycles\"\n filename=\"inputs-products.csv\"\n [isUpload]=\"false\"\n [headerKeys]=\"headerKeys\"\n (closed)=\"showDownload = false\"></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"has-text-centered\">\n <span>No data available</span>\n <span class=\"is-pl-1\" [class.is-hidden]=\"!filterTerm\">matching your search criteria</span>\n <span>.</span>\n <span [class.is-hidden]=\"!isOriginal\">\n Switch to\n <code>recalculated</code>\n version.\n </span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p>\n <b>{{ defaultLabel(node) }}</b>\n </p>\n <he-node-value-details\n [data]=\"data\"\n [dataState]=\"dataState\"\n [nodeType]=\"node['@type']\"\n [dataKey]=\"key\"></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}he-data-table ::ng-deep .table thead tr th:nth-child(2),he-data-table ::ng-deep .table tbody tr td:nth-child(2){max-width:102px;width:102px}\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.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i3.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "component", type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: i5.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["dataState", "nodeType", "dataKey", "key", "node", "state", "linkClass"] }, { kind: "component", type: i6.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted"] }, { kind: "component", type: i7.DataTableComponent, selector: "he-data-table", inputs: ["minHeight", "maxHeight", "small"] }, { kind: "component", type: i8.SearchExtendComponent, selector: "he-search-extend", inputs: ["value", "disabled", "placeholder", "class"], outputs: ["search"] }, { kind: "component", type: i9.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink", "linkClass"] }, { kind: "component", type: i10.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { kind: "component", type: i11.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey", "dataState"] }, { kind: "component", type: i12.TermsUnitsDescriptionComponent, selector: "he-terms-units-description", inputs: ["term", "iconTemplate"] }, { kind: "component", type: i13.CyclesActivityLogsComponent, selector: "he-cycles-activity-logs", inputs: ["cycle", "original", "recalculated"] }, { kind: "component", type: i14.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { kind: "component", type: i15.CyclesResultComponent, selector: "he-cycles-result", inputs: ["cycles"] }, { kind: "pipe", type: i16.CompoundPipe, name: "compound" }, { kind: "pipe", type: i17.DefaultPipe, name: "default" }, { kind: "pipe", type: i18.EllipsisPipe, name: "ellipsis" }, { kind: "pipe", type: i19.PrecisionPipe, name: "precision" }] }); }
102
102
  }
103
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: CyclesActivityComponent, decorators: [{
104
104
  type: Component,
@@ -60,7 +60,7 @@ export class CyclesAnimalsComponent {
60
60
  return this.update();
61
61
  }
62
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: CyclesAnimalsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: CyclesAnimalsComponent, selector: "he-cycles-animals", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"columns is-variable is-align-items-center is-2 m-0\">\n <div class=\"column\">\n <ng-container *ngIf=\"animals.length\">\n <button\n class=\"button is-small is-ghost\"\n (click)=\"showDownload = true\"\n ngbTooltip=\"Download as CSV\"\n placement=\"bottom\">\n <fa-icon icon=\"download\" size=\"lg\"></fa-icon>\n </button>\n </ng-container>\n </div>\n <div class=\"column is-narrow\">\n <he-search-extend\n class=\"is-secondary is-small\"\n placeholder=\"Filter animals by name\"\n (search)=\"filter($event)\"></he-search-extend>\n </div>\n</div>\n\n<div class=\"px-3 pb-3\">\n <ng-container *ngIf=\"animals.length; else emptyTable\">\n <he-data-table class=\"mb-1 is-small\" [small]=\"true\" maxHeight=\"320\">\n <table class=\"table is-fullwidth is-narrow is-striped\">\n <thead>\n <tr class=\"has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n <th class=\"has-border-right\"></th>\n <th *ngFor=\"let animal of animals\" [attr.title]=\"animal.value.term.name\">\n <he-node-link [node]=\"animal.value.term\">\n <span [innerHtml]=\"animal.value.term.name | ellipsis: 30 | compound\"></span>\n </he-node-link>\n </th>\n </tr>\n <tr class=\"is-italic has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n <th class=\"has-border-right\">\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let animal of animals\" [attr.title]=\"animal.value.term.units\">\n <span [innerHtml]=\"animal.value.term.units | compound\"></span>\n <he-terms-units-description\n class=\"is-inline-block is-ml-2\"\n [term]=\"animal.value.term\"></he-terms-units-description>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr>\n <td class=\"width-auto has-border-right\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle.term || cycle\">\n <span>{{ i + 1 }}. {{ defaultLabel(cycle) }}</span>\n </he-node-link>\n </td>\n <td class=\"has-border-right\">\n <he-cycles-functional-unit-measure [cycle]=\"cycles[0]\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let animal of animals\">\n <span\n *ngIf=\"animal.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\"\n [autoClose]=\"'outside'\"\n popoverClass=\"is-narrow\"\n triggers=\"manual\"\n #p=\"ngbPopover\"\n placement=\"left\"\n container=\"body\"\n (click)=\"togglePopover(p, { data: animal.value.values[cycle['@id']], cycle: cycle, key: 'animals' })\">\n <span pointer>\n {{\n propertyValue(animal.value.values[cycle['@id']].value, animal.value.term['@id'])\n | precision: 3\n | default: '-'\n }}\n </span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState\"\n [node]=\"animal.value.values[cycle['@id']].node\"\n key=\"value\"></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </he-data-table>\n\n <he-blank-node-state-notice [dataState]=\"dataState\"></he-blank-node-state-notice>\n </ng-container>\n</div>\n\n<he-node-csv-export-confirm\n *ngIf=\"showDownload\"\n [nodes]=\"cycles\"\n filename=\"animals.csv\"\n [isUpload]=\"false\"\n [headerKeys]=\"headerKeys\"\n (closed)=\"showDownload = false\"></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"has-text-centered\">\n <span>No data available</span>\n <span class=\"is-pl-1\" [class.is-hidden]=\"!filterTerm\">matching your search criteria</span>\n <span>.</span>\n <span [class.is-hidden]=\"!isOriginal\">\n Switch to\n <code>recalculated</code>\n version.\n </span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p>\n <b>{{ defaultLabel(node) }}</b>\n </p>\n <he-node-value-details\n [data]=\"data\"\n [dataState]=\"dataState\"\n [nodeType]=\"node['@type']\"\n [dataKey]=\"key\"></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}he-data-table ::ng-deep .table thead tr th:nth-child(2),he-data-table ::ng-deep .table tbody tr td:nth-child(2){max-width:102px;width:102px}\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.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i2.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["dataState", "nodeType", "dataKey", "key", "node", "state", "linkClass"] }, { kind: "component", type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted"] }, { kind: "component", type: i6.DataTableComponent, selector: "he-data-table", inputs: ["minHeight", "maxHeight", "small"] }, { kind: "component", type: i7.SearchExtendComponent, selector: "he-search-extend", inputs: ["value", "disabled", "placeholder", "class"], outputs: ["search"] }, { kind: "component", type: i8.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink", "linkClass"] }, { kind: "component", type: i9.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { kind: "component", type: i10.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey", "dataState"] }, { kind: "component", type: i11.TermsUnitsDescriptionComponent, selector: "he-terms-units-description", inputs: ["term"] }, { kind: "component", type: i12.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { kind: "pipe", type: i13.CompoundPipe, name: "compound" }, { kind: "pipe", type: i14.DefaultPipe, name: "default" }, { kind: "pipe", type: i15.EllipsisPipe, name: "ellipsis" }, { kind: "pipe", type: i16.PrecisionPipe, name: "precision" }] }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: CyclesAnimalsComponent, selector: "he-cycles-animals", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"columns is-variable is-align-items-center is-2 m-0\">\n <div class=\"column\">\n <ng-container *ngIf=\"animals.length\">\n <button\n class=\"button is-small is-ghost\"\n (click)=\"showDownload = true\"\n ngbTooltip=\"Download as CSV\"\n placement=\"bottom\">\n <fa-icon icon=\"download\" size=\"lg\"></fa-icon>\n </button>\n </ng-container>\n </div>\n <div class=\"column is-narrow\">\n <he-search-extend\n class=\"is-secondary is-small\"\n placeholder=\"Filter animals by name\"\n (search)=\"filter($event)\"></he-search-extend>\n </div>\n</div>\n\n<div class=\"px-3 pb-3\">\n <ng-container *ngIf=\"animals.length; else emptyTable\">\n <he-data-table class=\"mb-1 is-small\" [small]=\"true\" maxHeight=\"320\">\n <table class=\"table is-fullwidth is-narrow is-striped\">\n <thead>\n <tr class=\"has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n <th class=\"has-border-right\"></th>\n <th *ngFor=\"let animal of animals\" [attr.title]=\"animal.value.term.name\">\n <he-node-link [node]=\"animal.value.term\">\n <span [innerHtml]=\"animal.value.term.name | ellipsis: 30 | compound\"></span>\n </he-node-link>\n </th>\n </tr>\n <tr class=\"is-italic has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n <th class=\"has-border-right\">\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let animal of animals\" [attr.title]=\"animal.value.term.units\">\n <span [innerHtml]=\"animal.value.term.units | compound\"></span>\n <he-terms-units-description\n class=\"is-inline-block is-ml-2\"\n [term]=\"animal.value.term\"></he-terms-units-description>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr>\n <td class=\"width-auto has-border-right\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle.term || cycle\">\n <span>{{ i + 1 }}. {{ defaultLabel(cycle) }}</span>\n </he-node-link>\n </td>\n <td class=\"has-border-right\">\n <he-cycles-functional-unit-measure [cycle]=\"cycles[0]\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let animal of animals\">\n <span\n *ngIf=\"animal.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\"\n [autoClose]=\"'outside'\"\n popoverClass=\"is-narrow\"\n triggers=\"manual\"\n #p=\"ngbPopover\"\n placement=\"left\"\n container=\"body\"\n (click)=\"togglePopover(p, { data: animal.value.values[cycle['@id']], cycle: cycle, key: 'animals' })\">\n <span pointer>\n {{\n propertyValue(animal.value.values[cycle['@id']].value, animal.value.term['@id'])\n | precision: 3\n | default: '-'\n }}\n </span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState\"\n [node]=\"animal.value.values[cycle['@id']].node\"\n key=\"value\"></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </he-data-table>\n\n <he-blank-node-state-notice [dataState]=\"dataState\"></he-blank-node-state-notice>\n </ng-container>\n</div>\n\n<he-node-csv-export-confirm\n *ngIf=\"showDownload\"\n [nodes]=\"cycles\"\n filename=\"animals.csv\"\n [isUpload]=\"false\"\n [headerKeys]=\"headerKeys\"\n (closed)=\"showDownload = false\"></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"has-text-centered\">\n <span>No data available</span>\n <span class=\"is-pl-1\" [class.is-hidden]=\"!filterTerm\">matching your search criteria</span>\n <span>.</span>\n <span [class.is-hidden]=\"!isOriginal\">\n Switch to\n <code>recalculated</code>\n version.\n </span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p>\n <b>{{ defaultLabel(node) }}</b>\n </p>\n <he-node-value-details\n [data]=\"data\"\n [dataState]=\"dataState\"\n [nodeType]=\"node['@type']\"\n [dataKey]=\"key\"></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}he-data-table ::ng-deep .table thead tr th:nth-child(2),he-data-table ::ng-deep .table tbody tr td:nth-child(2){max-width:102px;width:102px}\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.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i2.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["dataState", "nodeType", "dataKey", "key", "node", "state", "linkClass"] }, { kind: "component", type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted"] }, { kind: "component", type: i6.DataTableComponent, selector: "he-data-table", inputs: ["minHeight", "maxHeight", "small"] }, { kind: "component", type: i7.SearchExtendComponent, selector: "he-search-extend", inputs: ["value", "disabled", "placeholder", "class"], outputs: ["search"] }, { kind: "component", type: i8.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink", "linkClass"] }, { kind: "component", type: i9.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { kind: "component", type: i10.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey", "dataState"] }, { kind: "component", type: i11.TermsUnitsDescriptionComponent, selector: "he-terms-units-description", inputs: ["term", "iconTemplate"] }, { kind: "component", type: i12.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { kind: "pipe", type: i13.CompoundPipe, name: "compound" }, { kind: "pipe", type: i14.DefaultPipe, name: "default" }, { kind: "pipe", type: i15.EllipsisPipe, name: "ellipsis" }, { kind: "pipe", type: i16.PrecisionPipe, name: "precision" }] }); }
64
64
  }
65
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: CyclesAnimalsComponent, decorators: [{
66
66
  type: Component,