@firestitch/filter 18.0.20 → 18.0.21

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,8 +1,8 @@
1
- import { ActionType } from '../../enums/action-type.enum';
1
+ import { ButtonStyle } from '../../enums';
2
2
  import { Action } from '../../models/action.model';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class FsFilterActionButtonComponent {
5
- ActionType: typeof ActionType;
5
+ ButtonStyle: typeof ButtonStyle;
6
6
  action: Action;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<FsFilterActionButtonComponent, never>;
8
8
  static ɵcmp: i0.ɵɵComponentDeclaration<FsFilterActionButtonComponent, "fs-filter-action-button", never, { "action": { "alias": "action"; "required": false; }; }, {}, never, never, false, never>;
@@ -1,11 +1,11 @@
1
1
  import { MatSelect } from '@angular/material/select';
2
- import { ActionMode, ActionType } from '../../enums';
2
+ import { ActionMode, ButtonStyle } from '../../enums';
3
3
  import { Action } from '../../models/action.model';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class FsFilterActionsComponent {
6
6
  kebabActions: Action[];
7
7
  actions: Action[];
8
- ActionType: typeof ActionType;
8
+ ButtonStyle: typeof ButtonStyle;
9
9
  ActionMode: typeof ActionMode;
10
10
  actionChange(action: Action, value: any, selectButton: MatSelect): void;
11
11
  actionClick(action: any, event: MouseEvent): void;
@@ -1,5 +1,4 @@
1
1
  export * from './action-mode.enum';
2
- export * from './action-type.enum';
3
2
  export * from './button-style';
4
3
  export * from './item-date-mode.enum';
5
4
  export * from './item-type.enum';
@@ -11,4 +11,4 @@ import { DateTimeRangeItem } from '../models/items/date-time-range-item';
11
11
  import { RangeItem } from '../models/items/range-item';
12
12
  import { TextItem } from '../models/items/text-item';
13
13
  import { WeekItem } from '../models/items/week-item';
14
- export declare function createFilterItem(item: IFilterConfigItem, config: any, filter: FilterComponent): RangeItem | DateRangeItem | DateTimeRangeItem | ChipsItem | TextItem | WeekItem | AutocompleteItem | AutocompleteChipsItem | DateItem | DateTimeItem | CheckboxItem | import("../models/items/select/simple-select-item").SimpleSelectItem | import("../models/items/select/multiple-select-item").MultipleSelectItem;
14
+ export declare function createFilterItem(item: IFilterConfigItem, config: any, filter: FilterComponent): ChipsItem | TextItem | WeekItem | RangeItem | AutocompleteItem | AutocompleteChipsItem | DateItem | DateTimeItem | DateRangeItem | DateTimeRangeItem | CheckboxItem | import("../models/items/select/simple-select-item").SimpleSelectItem | import("../models/items/select/multiple-select-item").MultipleSelectItem;
@@ -1,8 +1,7 @@
1
1
  import { ThemePalette } from '@angular/material/core';
2
2
  import { FsFile } from '@firestitch/file';
3
- import { MenuActionMode } from '../enums';
3
+ import { ButtonStyle, MenuActionMode } from '../enums';
4
4
  import { ActionMode } from '../enums/action-mode.enum';
5
- import { ActionType } from '../enums/action-type.enum';
6
5
  export type FsFilterAction = (IFsFilterButtonAction | IFsFilterMenuAction | IFsFilterFileAction | IFsFilterSelectButtonAction);
7
6
  export type FsFilterActionShowFn = () => boolean;
8
7
  export type FsFilterActionDisabledFn = () => boolean;
@@ -11,7 +10,7 @@ export type FsFilterFileActionSelectFn = (file: FsFile | FsFile[]) => void;
11
10
  export type FsFilterFileActionErrorFn = (error: unknown) => void;
12
11
  export type FsFilterMenuAction = IFsFilterMenuActionGroupItem | IFsFilterMenuActionItem | IFsFilterMenuActionFileItem;
13
12
  interface IFsFilterBaseAction {
14
- type?: ActionType;
13
+ style?: ButtonStyle;
15
14
  className?: string;
16
15
  color?: ThemePalette;
17
16
  tooltip?: string;
@@ -30,6 +30,7 @@ export interface FilterConfig {
30
30
  reloadWhenConfigChanged?: boolean;
31
31
  case?: 'snake' | 'camel';
32
32
  button?: FilterButton;
33
+ buttonStyle?: ButtonStyle;
33
34
  savedFilters?: IFilterSavedFiltersConfig;
34
35
  actions?: FsFilterAction[];
35
36
  autoReload?: FsFilterAutoReload;
@@ -1,7 +1,7 @@
1
1
  import { ThemePalette } from '@angular/material/core';
2
2
  import { Observable } from 'rxjs';
3
+ import { ButtonStyle } from '../enums';
3
4
  import { ActionMode } from '../enums/action-mode.enum';
4
- import { ActionType } from '../enums/action-type.enum';
5
5
  import { FsFilterAction, FsFilterActionClickFn, FsFilterFileActionErrorFn, FsFilterFileActionSelectFn } from '../interfaces/action.interface';
6
6
  import { ActionMenuItem } from './action-menu-item.model';
7
7
  import { FsFilterConfig } from './filter-config';
@@ -16,7 +16,7 @@ export declare class Action {
16
16
  customize: boolean;
17
17
  className: string;
18
18
  click: FsFilterActionClickFn;
19
- type: ActionType;
19
+ style: ButtonStyle;
20
20
  tabIndex: number;
21
21
  fileSelected: FsFilterFileActionSelectFn;
22
22
  fileError: FsFilterFileActionErrorFn;
@@ -1,3 +1,4 @@
1
+ import { ButtonStyle } from '../enums';
1
2
  import { FsFilterAction } from '../interfaces/action.interface';
2
3
  import { ChangeFn, FilterSort, FsFilterAutoReload, Sort } from '../interfaces/config.interface';
3
4
  import { IFilterSavedFiltersConfig } from '../interfaces/saved-filters.interface';
@@ -11,6 +12,7 @@ export declare class FsFilterConfig {
11
12
  inline: boolean;
12
13
  autofocus: boolean;
13
14
  chips: boolean;
15
+ buttonStyle: ButtonStyle;
14
16
  sortValues: any[];
15
17
  sort: Sort;
16
18
  queryParam: boolean;
@@ -28,4 +30,5 @@ export declare class FsFilterConfig {
28
30
  namespace: string;
29
31
  constructor(data?: FilterConfig);
30
32
  private _init;
33
+ private _initButton;
31
34
  }
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { ActionType } from '../../enums/action-type.enum';
2
+ import { ButtonStyle } from '../../enums';
3
3
  import { Action } from '../../models/action.model';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
@@ -7,15 +7,15 @@ import * as i2 from "@angular/material/icon";
7
7
  import * as i3 from "@angular/material/button";
8
8
  import * as i4 from "@firestitch/form";
9
9
  export class FsFilterActionButtonComponent {
10
- ActionType = ActionType;
10
+ ButtonStyle = ButtonStyle;
11
11
  action;
12
12
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFilterActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: { action: "action" }, host: { classAttribute: "action-button" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"action.type\">\n <button\n type=\"button\"\n *ngSwitchCase=\"ActionType.Icon\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.Fab\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Mini Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.MiniFab\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <button \n type=\"button\"\n *ngSwitchDefault\n mat-button\n class=\"button-basic\"\n [ngClass]=\"{ \n 'mat-mdc-raised-button': action.type === ActionType.Raised,\n 'mat-mdc-unelevated-button': action.type === ActionType.Flat,\n 'mat-mdc-outlined-button': action.type === ActionType.Stroked,\n 'mat-mdc-icon-button': action.type === ActionType.Icon,\n 'icon-placement-right': action.iconPlacement === 'right'\n }\"\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [class]=\"action.classArray.join(' ')\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.icon else withIcon\">\n {{action.label}}\n </ng-container>\n\n <ng-template #withIcon>\n <mat-icon>{{action.icon}}</mat-icon>\n {{action.label}}\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [":host ::ng-deep .button-basic .mdc-button__label{display:flex;align-items:center}:host ::ng-deep .button-basic .mdc-button__label mat-icon{flex-shrink:0}:host ::ng-deep .button-basic.icon-placement-right .mdc-button__label{flex-direction:row-reverse}:host ::ng-deep .button-basic.icon-placement-right .mdc-button__label mat-icon{margin-left:5px}:host ::ng-deep .button-basic:not(.icon-placement-right) .mdc-button__label mat-icon{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: i4.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: { action: "action" }, host: { classAttribute: "action-button" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"action.style\">\n <button\n type=\"button\"\n *ngSwitchCase=\"ButtonStyle.Icon\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n <!-- Fab button -->\n <button\n type=\"button\"\n *ngSwitchCase=\"ButtonStyle.Fab\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n <!-- Mini Fab button -->\n <button\n type=\"button\"\n *ngSwitchCase=\"ButtonStyle.MiniFab\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n <button\n type=\"button\"\n *ngSwitchDefault\n mat-button\n class=\"button-basic\"\n [ngClass]=\"{ \n 'mat-mdc-raised-button': action.style === ButtonStyle.Raised,\n 'mat-mdc-unelevated-button': action.style === ButtonStyle.Flat,\n 'mat-mdc-outlined-button': action.style === ButtonStyle.Stroked,\n 'mat-mdc-icon-button': action.style === ButtonStyle.Icon,\n 'icon-placement-right': action.iconPlacement === 'right'\n }\"\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [class]=\"action.classArray.join(' ')\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.icon else withIcon\">\n {{ action.label }}\n </ng-container>\n <ng-template #withIcon>\n <mat-icon>\n {{ action.icon }}\n </mat-icon>\n {{ action.label }}\n </ng-template>\n </ng-template>\n</ng-container>", styles: [":host ::ng-deep .button-basic .mdc-button__label{display:flex;align-items:center}:host ::ng-deep .button-basic .mdc-button__label mat-icon{flex-shrink:0}:host ::ng-deep .button-basic.icon-placement-right .mdc-button__label{flex-direction:row-reverse}:host ::ng-deep .button-basic.icon-placement-right .mdc-button__label mat-icon{margin-left:5px}:host ::ng-deep .button-basic:not(.icon-placement-right) .mdc-button__label mat-icon{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: i4.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFilterActionButtonComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'fs-filter-action-button', host: { class: 'action-button' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"action.type\">\n <button\n type=\"button\"\n *ngSwitchCase=\"ActionType.Icon\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.Fab\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Mini Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.MiniFab\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <button \n type=\"button\"\n *ngSwitchDefault\n mat-button\n class=\"button-basic\"\n [ngClass]=\"{ \n 'mat-mdc-raised-button': action.type === ActionType.Raised,\n 'mat-mdc-unelevated-button': action.type === ActionType.Flat,\n 'mat-mdc-outlined-button': action.type === ActionType.Stroked,\n 'mat-mdc-icon-button': action.type === ActionType.Icon,\n 'icon-placement-right': action.iconPlacement === 'right'\n }\"\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [class]=\"action.classArray.join(' ')\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.icon else withIcon\">\n {{action.label}}\n </ng-container>\n\n <ng-template #withIcon>\n <mat-icon>{{action.icon}}</mat-icon>\n {{action.label}}\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [":host ::ng-deep .button-basic .mdc-button__label{display:flex;align-items:center}:host ::ng-deep .button-basic .mdc-button__label mat-icon{flex-shrink:0}:host ::ng-deep .button-basic.icon-placement-right .mdc-button__label{flex-direction:row-reverse}:host ::ng-deep .button-basic.icon-placement-right .mdc-button__label mat-icon{margin-left:5px}:host ::ng-deep .button-basic:not(.icon-placement-right) .mdc-button__label mat-icon{margin-right:5px}\n"] }]
17
+ args: [{ selector: 'fs-filter-action-button', host: { class: 'action-button' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"action.style\">\n <button\n type=\"button\"\n *ngSwitchCase=\"ButtonStyle.Icon\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n <!-- Fab button -->\n <button\n type=\"button\"\n *ngSwitchCase=\"ButtonStyle.Fab\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n <!-- Mini Fab button -->\n <button\n type=\"button\"\n *ngSwitchCase=\"ButtonStyle.MiniFab\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n <button\n type=\"button\"\n *ngSwitchDefault\n mat-button\n class=\"button-basic\"\n [ngClass]=\"{ \n 'mat-mdc-raised-button': action.style === ButtonStyle.Raised,\n 'mat-mdc-unelevated-button': action.style === ButtonStyle.Flat,\n 'mat-mdc-outlined-button': action.style === ButtonStyle.Stroked,\n 'mat-mdc-icon-button': action.style === ButtonStyle.Icon,\n 'icon-placement-right': action.iconPlacement === 'right'\n }\"\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [class]=\"action.classArray.join(' ')\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.icon else withIcon\">\n {{ action.label }}\n </ng-container>\n <ng-template #withIcon>\n <mat-icon>\n {{ action.icon }}\n </mat-icon>\n {{ action.label }}\n </ng-template>\n </ng-template>\n</ng-container>", styles: [":host ::ng-deep .button-basic .mdc-button__label{display:flex;align-items:center}:host ::ng-deep .button-basic .mdc-button__label mat-icon{flex-shrink:0}:host ::ng-deep .button-basic.icon-placement-right .mdc-button__label{flex-direction:row-reverse}:host ::ng-deep .button-basic.icon-placement-right .mdc-button__label mat-icon{margin-left:5px}:host ::ng-deep .button-basic:not(.icon-placement-right) .mdc-button__label mat-icon{margin-right:5px}\n"] }]
18
18
  }], propDecorators: { action: [{
19
19
  type: Input
20
20
  }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYWN0aW9uLWJ1dHRvbi9hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hY3Rpb24tYnV0dG9uL2FjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBVW5ELE1BQU0sT0FBTyw2QkFBNkI7SUFFakMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUd4QixNQUFNLENBQVM7dUdBTFgsNkJBQTZCOzJGQUE3Qiw2QkFBNkIsd0lDYjFDLHl6RUFzRUE7OzJGRHpEYSw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UseUJBQXlCLFFBRzdCLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxtQkFDZix1QkFBdUIsQ0FBQyxNQUFNOzhCQU94QyxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvYWN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uLm1vZGVsJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1maWx0ZXItYWN0aW9uLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FjdGlvbi1idXR0b24uY29tcG9uZW50LnNjc3MnLFxuICBob3N0OiB7IGNsYXNzOiAnYWN0aW9uLWJ1dHRvbicgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzRmlsdGVyQWN0aW9uQnV0dG9uQ29tcG9uZW50IHtcblxuICBwdWJsaWMgQWN0aW9uVHlwZSA9IEFjdGlvblR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGlvbjogQWN0aW9uO1xuXG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJhY3Rpb24udHlwZVwiPlxuICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJBY3Rpb25UeXBlLkljb25cIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAoY2xpY2spPVwiYWN0aW9uLmNsaWNrICYmIGFjdGlvbi5jbGljaygkZXZlbnQpXCJcbiAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgW25nQ2xhc3NdPVwiYWN0aW9uLmNsYXNzQXJyYXlcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICBbdGFiSW5kZXhdPVwiYWN0aW9uLnRhYkluZGV4XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbkNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIEZhYiBidXR0b24gLS0+XG4gIDxidXR0b24gXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJBY3Rpb25UeXBlLkZhYlwiXG4gICAgICBtYXQtZmFiXG4gICAgICAoY2xpY2spPVwiYWN0aW9uLmNsaWNrICYmIGFjdGlvbi5jbGljaygkZXZlbnQpXCJcbiAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgW25nQ2xhc3NdPVwiYWN0aW9uLmNsYXNzQXJyYXlcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICBbdGFiSW5kZXhdPVwiYWN0aW9uLnRhYkluZGV4XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbkNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIE1pbmkgRmFiIGJ1dHRvbiAtLT5cbiAgPGJ1dHRvbiBcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkFjdGlvblR5cGUuTWluaUZhYlwiXG4gICAgICBtYXQtbWluaS1mYWJcbiAgICAgIChjbGljayk9XCJhY3Rpb24uY2xpY2sgJiYgYWN0aW9uLmNsaWNrKCRldmVudClcIlxuICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvclwiXG4gICAgICBbbmdDbGFzc109XCJhY3Rpb24uY2xhc3NBcnJheVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgIFt0YWJJbmRleF09XCJhY3Rpb24udGFiSW5kZXhcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b24gXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ1N3aXRjaERlZmF1bHRcbiAgICAgIG1hdC1idXR0b25cbiAgICAgIGNsYXNzPVwiYnV0dG9uLWJhc2ljXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgICAgICAgIFxuICAgICAgICAnbWF0LW1kYy1yYWlzZWQtYnV0dG9uJzogYWN0aW9uLnR5cGUgPT09IEFjdGlvblR5cGUuUmFpc2VkLFxuICAgICAgICAnbWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbic6IGFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlLkZsYXQsXG4gICAgICAgICdtYXQtbWRjLW91dGxpbmVkLWJ1dHRvbic6IGFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlLlN0cm9rZWQsXG4gICAgICAgICdtYXQtbWRjLWljb24tYnV0dG9uJzogYWN0aW9uLnR5cGUgPT09IEFjdGlvblR5cGUuSWNvbixcbiAgICAgICAgJ2ljb24tcGxhY2VtZW50LXJpZ2h0JzogYWN0aW9uLmljb25QbGFjZW1lbnQgPT09ICdyaWdodCdcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cImFjdGlvbi5jbGljayAmJiBhY3Rpb24uY2xpY2soJGV2ZW50KVwiXG4gICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yXCJcbiAgICAgIFtjbGFzc109XCJhY3Rpb24uY2xhc3NBcnJheS5qb2luKCcgJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICBbdGFiSW5kZXhdPVwiYWN0aW9uLnRhYkluZGV4XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbkNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICA8L2J1dHRvbj5cblxuICA8bmctdGVtcGxhdGUgI2J1dHRvbkNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb24uaWNvbiBlbHNlIHdpdGhJY29uXCI+XG4gICAgICB7e2FjdGlvbi5sYWJlbH19XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3dpdGhJY29uPlxuICAgICAgPG1hdC1pY29uPnt7YWN0aW9uLmljb259fTwvbWF0LWljb24+XG4gICAgICB7e2FjdGlvbi5sYWJlbH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYWN0aW9uLWJ1dHRvbi9hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hY3Rpb24tYnV0dG9uL2FjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7OztBQVVuRCxNQUFNLE9BQU8sNkJBQTZCO0lBRWpDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFHMUIsTUFBTSxDQUFTO3VHQUxYLDZCQUE2QjsyRkFBN0IsNkJBQTZCLHdJQ2IxQyw4MEVBa0VlOzsyRkRyREYsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNFLHlCQUF5QixRQUc3QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsbUJBQ2YsdUJBQXVCLENBQUMsTUFBTTs4QkFPeEMsTUFBTTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQnV0dG9uU3R5bGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uLm1vZGVsJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1maWx0ZXItYWN0aW9uLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FjdGlvbi1idXR0b24uY29tcG9uZW50LnNjc3MnLFxuICBob3N0OiB7IGNsYXNzOiAnYWN0aW9uLWJ1dHRvbicgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzRmlsdGVyQWN0aW9uQnV0dG9uQ29tcG9uZW50IHtcblxuICBwdWJsaWMgQnV0dG9uU3R5bGUgPSBCdXR0b25TdHlsZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aW9uOiBBY3Rpb247XG5cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGlvbi5zdHlsZVwiPlxuICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJCdXR0b25TdHlsZS5JY29uXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cImFjdGlvbi5jbGljayAmJiBhY3Rpb24uY2xpY2soJGV2ZW50KVwiXG4gICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yXCJcbiAgICAgIFtuZ0NsYXNzXT1cImFjdGlvbi5jbGFzc0FycmF5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgW3RhYkluZGV4XT1cImFjdGlvbi50YWJJbmRleFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25Db250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9idXR0b24+XG4gIDwhLS0gRmFiIGJ1dHRvbiAtLT5cbiAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiQnV0dG9uU3R5bGUuRmFiXCJcbiAgICAgIG1hdC1mYWJcbiAgICAgIChjbGljayk9XCJhY3Rpb24uY2xpY2sgJiYgYWN0aW9uLmNsaWNrKCRldmVudClcIlxuICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvclwiXG4gICAgICBbbmdDbGFzc109XCJhY3Rpb24uY2xhc3NBcnJheVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgIFt0YWJJbmRleF09XCJhY3Rpb24udGFiSW5kZXhcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gIDwvYnV0dG9uPlxuICA8IS0tIE1pbmkgRmFiIGJ1dHRvbiAtLT5cbiAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiQnV0dG9uU3R5bGUuTWluaUZhYlwiXG4gICAgICBtYXQtbWluaS1mYWJcbiAgICAgIChjbGljayk9XCJhY3Rpb24uY2xpY2sgJiYgYWN0aW9uLmNsaWNrKCRldmVudClcIlxuICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvclwiXG4gICAgICBbbmdDbGFzc109XCJhY3Rpb24uY2xhc3NBcnJheVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgIFt0YWJJbmRleF09XCJhY3Rpb24udGFiSW5kZXhcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ1N3aXRjaERlZmF1bHRcbiAgICAgIG1hdC1idXR0b25cbiAgICAgIGNsYXNzPVwiYnV0dG9uLWJhc2ljXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgICAgICAgIFxuICAgICAgICAnbWF0LW1kYy1yYWlzZWQtYnV0dG9uJzogYWN0aW9uLnN0eWxlID09PSBCdXR0b25TdHlsZS5SYWlzZWQsXG4gICAgICAgICdtYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uJzogYWN0aW9uLnN0eWxlID09PSBCdXR0b25TdHlsZS5GbGF0LFxuICAgICAgICAnbWF0LW1kYy1vdXRsaW5lZC1idXR0b24nOiBhY3Rpb24uc3R5bGUgPT09IEJ1dHRvblN0eWxlLlN0cm9rZWQsXG4gICAgICAgICdtYXQtbWRjLWljb24tYnV0dG9uJzogYWN0aW9uLnN0eWxlID09PSBCdXR0b25TdHlsZS5JY29uLFxuICAgICAgICAnaWNvbi1wbGFjZW1lbnQtcmlnaHQnOiBhY3Rpb24uaWNvblBsYWNlbWVudCA9PT0gJ3JpZ2h0J1xuICAgICAgfVwiXG4gICAgICAoY2xpY2spPVwiYWN0aW9uLmNsaWNrICYmIGFjdGlvbi5jbGljaygkZXZlbnQpXCJcbiAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgW2NsYXNzXT1cImFjdGlvbi5jbGFzc0FycmF5LmpvaW4oJyAnKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgIFt0YWJJbmRleF09XCJhY3Rpb24udGFiSW5kZXhcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gIDwvYnV0dG9uPlxuICA8bmctdGVtcGxhdGUgI2J1dHRvbkNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb24uaWNvbiBlbHNlIHdpdGhJY29uXCI+XG4gICAgICB7eyBhY3Rpb24ubGFiZWwgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3dpdGhJY29uPlxuICAgICAgPG1hdC1pY29uPlxuICAgICAgICB7eyBhY3Rpb24uaWNvbiB9fVxuICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIHt7IGFjdGlvbi5sYWJlbCB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
- import { ActionMode, ActionType } from '../../enums';
2
+ import { ActionMode, ButtonStyle } from '../../enums';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@angular/forms";
@@ -16,7 +16,7 @@ import * as i12 from "../action-kebab-actions/action-kebab-actions.component";
16
16
  export class FsFilterActionsComponent {
17
17
  kebabActions = [];
18
18
  actions = [];
19
- ActionType = ActionType;
19
+ ButtonStyle = ButtonStyle;
20
20
  ActionMode = ActionMode;
21
21
  actionChange(action, value, selectButton) {
22
22
  if (action.change) {
@@ -32,14 +32,14 @@ export class FsFilterActionsComponent {
32
32
  }
33
33
  }
34
34
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFilterActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: { kebabActions: "kebabActions", actions: "actions" }, ngImport: i0, template: "<ng-container *ngFor=\"let action of actions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"ActionMode.Button\">\n <fs-filter-action-button\n [action]=\"action\"\n class=\"action\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ActionMode.Menu\">\n <fs-filter-action-button\n class=\"action\"\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n\n <fs-menu #someRef class=\"action\">\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-container [ngSwitch]=\"subAction.mode\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-template\n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"(subAction.visible$ | async) === false\"\n (click)=\"actionClick(subAction, $event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template\n fs-menu-file-item\n [multiple]=\"subAction.multiple\"\n [accept]=\"subAction.accept || '*'\"\n [minWidth]=\"subAction.minWidth\"\n [minHeight]=\"subAction.minHeight\"\n [imageWidth]=\"subAction.maxWidth\"\n [imageHeight]=\"subAction.maxHeight\"\n (select)=\"subAction.fileSelected($event)\"\n [hidden]=\"(subAction.visible$ | async) === false\"\n (click)=\"actionClick(subAction, $event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-container [ngSwitch]=\"childAction.mode\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-template\n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"(childAction.visible$ | async) === false\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template\n fs-menu-file-item\n [multiple]=\"childAction.multiple\"\n [accept]=\"childAction.accept || '*'\"\n [minWidth]=\"childAction.minWidth\"\n [minHeight]=\"childAction.minHeight\"\n [imageWidth]=\"childAction.maxWidth\"\n [imageHeight]=\"childAction.maxHeight\"\n (select)=\"childAction.fileSelected($event)\"\n [hidden]=\"(childAction.visible$ | async) === false\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ActionMode.SelectButton\">\n <mat-select \n class=\"action action-select-button\"\n [ngClass]=\"{ \n 'mat-mdc-raised-button': action.type === ActionType.Raised,\n 'mat-mdc-unelevated-button': action.type === ActionType.Flat,\n 'mat-mdc-outlined-button': action.type === ActionType.Stroked,\n }\"\n [placeholder]=\"action.label\"\n [(ngModel)]=\"action.value\" \n (ngModelChange)=\"actionChange(action, $event, selectButton)\"\n fsSelectButton\n #selectButton\n [deselectOnChange]=\"false\">\n <mat-option \n *ngFor=\"let item of action.values\" \n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ActionMode.File\">\n <fs-file\n class=\"action action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n <fs-filter-action-button \n [action]=\"action\">\n </fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions\n [kebabActions]=\"kebabActions\">\n </fs-filter-action-kebab-actions>\n</ng-container>\n", styles: [":host{display:inline-flex;align-items:center}.action-button{display:block}.action.action-select-button{width:auto}.action+.action{margin-left:5px}fs-menu{display:none}\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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i6.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { kind: "directive", type: i6.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { kind: "directive", type: i6.FsMenuFileItemDirective, selector: "[fs-menu-file-item]", inputs: ["multiple", "accept", "minWidth", "minHeight", "imageWidth", "imageHeight"], outputs: ["select", "error"] }, { kind: "directive", type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "component", type: i8.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "beforeProcessing", "clicked", "declined"] }, { kind: "directive", type: i9.FsSelectButtonDirective, selector: "[fsSelectButton]", inputs: ["color", "minWidth", "maxWidth", "width", "buttonType", "deselectOnChange"] }, { kind: "directive", type: i10.FsPopoverDirective, selector: "[fsPopover]", inputs: ["text", "template", "data", "leaveDelay", "showDelay", "maxWidth", "wrapperClass", "autoShow", "autoClose", "loadingDiameter", "loading", "indication", "position", "theme", "size", "trigger", "enabled"] }, { kind: "component", type: i11.FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: ["action"] }, { kind: "component", type: i12.FsFilterActionKebabActionsComponent, selector: "fs-filter-action-kebab-actions", inputs: ["kebabActions"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: { kebabActions: "kebabActions", actions: "actions" }, ngImport: i0, template: "<ng-container *ngFor=\"let action of actions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"ActionMode.Button\">\n <fs-filter-action-button\n [action]=\"action\"\n class=\"action\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"ActionMode.Menu\">\n <fs-filter-action-button\n class=\"action\"\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n <fs-menu\n #someRef\n class=\"action\">\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-container [ngSwitch]=\"subAction.mode\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-template\n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"(subAction.visible$ | async) === false\"\n (click)=\"actionClick(subAction, $event)\">\n <mat-icon *ngIf=\"subAction.icon\">\n {{ subAction.icon }}\n </mat-icon>\n {{ subAction.label }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template\n fs-menu-file-item\n [multiple]=\"subAction.multiple\"\n [accept]=\"subAction.accept || '*'\"\n [minWidth]=\"subAction.minWidth\"\n [minHeight]=\"subAction.minHeight\"\n [imageWidth]=\"subAction.maxWidth\"\n [imageHeight]=\"subAction.maxHeight\"\n (select)=\"subAction.fileSelected($event)\"\n [hidden]=\"(subAction.visible$ | async) === false\"\n (click)=\"actionClick(subAction, $event)\">\n <mat-icon *ngIf=\"subAction.icon\">\n {{ subAction.icon }}\n </mat-icon>\n {{ subAction.label }}\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-container [ngSwitch]=\"childAction.mode\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-template\n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"(childAction.visible$ | async) === false\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">\n {{ childAction.icon }}\n </mat-icon>\n {{ childAction.label }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template\n fs-menu-file-item\n [multiple]=\"childAction.multiple\"\n [accept]=\"childAction.accept || '*'\"\n [minWidth]=\"childAction.minWidth\"\n [minHeight]=\"childAction.minHeight\"\n [imageWidth]=\"childAction.maxWidth\"\n [imageHeight]=\"childAction.maxHeight\"\n (select)=\"childAction.fileSelected($event)\"\n [hidden]=\"(childAction.visible$ | async) === false\">\n <mat-icon *ngIf=\"childAction.icon\">\n {{ childAction.icon }}\n </mat-icon>\n {{ childAction.label }}\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n <ng-container *ngSwitchCase=\"ActionMode.SelectButton\">\n <mat-select\n class=\"action action-select-button\"\n [buttonType]=\"'basic'\"\n [ngClass]=\"{ \n 'mat-mdc-raised-button': action.style === ButtonStyle.Raised,\n 'mat-mdc-unelevated-button': action.style === ButtonStyle.Flat,\n 'mat-mdc-outlined-button': action.style === ButtonStyle.Stroked,\n }\"\n [placeholder]=\"action.label\"\n [(ngModel)]=\"action.value\"\n (ngModelChange)=\"actionChange(action, $event, selectButton)\"\n fsSelectButton\n #selectButton\n [deselectOnChange]=\"false\">\n <mat-option\n *ngFor=\"let item of action.values\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"ActionMode.File\">\n <fs-file\n class=\"action action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n <fs-filter-action-button [action]=\"action\"></fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions [kebabActions]=\"kebabActions\"></fs-filter-action-kebab-actions>\n</ng-container>", styles: [":host{display:inline-flex;align-items:center}.action-button{display:block}.action.action-select-button{width:auto}.action+.action{margin-left:5px}fs-menu{display:none}\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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i6.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { kind: "directive", type: i6.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { kind: "directive", type: i6.FsMenuFileItemDirective, selector: "[fs-menu-file-item]", inputs: ["multiple", "accept", "minWidth", "minHeight", "imageWidth", "imageHeight"], outputs: ["select", "error"] }, { kind: "directive", type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "component", type: i8.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "beforeProcessing", "clicked", "declined"] }, { kind: "directive", type: i9.FsSelectButtonDirective, selector: "[fsSelectButton]", inputs: ["color", "minWidth", "maxWidth", "width", "buttonType", "deselectOnChange"] }, { kind: "directive", type: i10.FsPopoverDirective, selector: "[fsPopover]", inputs: ["text", "template", "data", "leaveDelay", "showDelay", "maxWidth", "wrapperClass", "autoShow", "autoClose", "loadingDiameter", "loading", "indication", "position", "theme", "size", "trigger", "enabled"] }, { kind: "component", type: i11.FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: ["action"] }, { kind: "component", type: i12.FsFilterActionKebabActionsComponent, selector: "fs-filter-action-kebab-actions", inputs: ["kebabActions"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFilterActionsComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'fs-filter-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let action of actions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"ActionMode.Button\">\n <fs-filter-action-button\n [action]=\"action\"\n class=\"action\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ActionMode.Menu\">\n <fs-filter-action-button\n class=\"action\"\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n\n <fs-menu #someRef class=\"action\">\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-container [ngSwitch]=\"subAction.mode\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-template\n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"(subAction.visible$ | async) === false\"\n (click)=\"actionClick(subAction, $event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template\n fs-menu-file-item\n [multiple]=\"subAction.multiple\"\n [accept]=\"subAction.accept || '*'\"\n [minWidth]=\"subAction.minWidth\"\n [minHeight]=\"subAction.minHeight\"\n [imageWidth]=\"subAction.maxWidth\"\n [imageHeight]=\"subAction.maxHeight\"\n (select)=\"subAction.fileSelected($event)\"\n [hidden]=\"(subAction.visible$ | async) === false\"\n (click)=\"actionClick(subAction, $event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-container [ngSwitch]=\"childAction.mode\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-template\n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"(childAction.visible$ | async) === false\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template\n fs-menu-file-item\n [multiple]=\"childAction.multiple\"\n [accept]=\"childAction.accept || '*'\"\n [minWidth]=\"childAction.minWidth\"\n [minHeight]=\"childAction.minHeight\"\n [imageWidth]=\"childAction.maxWidth\"\n [imageHeight]=\"childAction.maxHeight\"\n (select)=\"childAction.fileSelected($event)\"\n [hidden]=\"(childAction.visible$ | async) === false\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ActionMode.SelectButton\">\n <mat-select \n class=\"action action-select-button\"\n [ngClass]=\"{ \n 'mat-mdc-raised-button': action.type === ActionType.Raised,\n 'mat-mdc-unelevated-button': action.type === ActionType.Flat,\n 'mat-mdc-outlined-button': action.type === ActionType.Stroked,\n }\"\n [placeholder]=\"action.label\"\n [(ngModel)]=\"action.value\" \n (ngModelChange)=\"actionChange(action, $event, selectButton)\"\n fsSelectButton\n #selectButton\n [deselectOnChange]=\"false\">\n <mat-option \n *ngFor=\"let item of action.values\" \n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ActionMode.File\">\n <fs-file\n class=\"action action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n <fs-filter-action-button \n [action]=\"action\">\n </fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions\n [kebabActions]=\"kebabActions\">\n </fs-filter-action-kebab-actions>\n</ng-container>\n", styles: [":host{display:inline-flex;align-items:center}.action-button{display:block}.action.action-select-button{width:auto}.action+.action{margin-left:5px}fs-menu{display:none}\n"] }]
39
+ args: [{ selector: 'fs-filter-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let action of actions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"ActionMode.Button\">\n <fs-filter-action-button\n [action]=\"action\"\n class=\"action\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"ActionMode.Menu\">\n <fs-filter-action-button\n class=\"action\"\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n <fs-menu\n #someRef\n class=\"action\">\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-container [ngSwitch]=\"subAction.mode\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-template\n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"(subAction.visible$ | async) === false\"\n (click)=\"actionClick(subAction, $event)\">\n <mat-icon *ngIf=\"subAction.icon\">\n {{ subAction.icon }}\n </mat-icon>\n {{ subAction.label }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template\n fs-menu-file-item\n [multiple]=\"subAction.multiple\"\n [accept]=\"subAction.accept || '*'\"\n [minWidth]=\"subAction.minWidth\"\n [minHeight]=\"subAction.minHeight\"\n [imageWidth]=\"subAction.maxWidth\"\n [imageHeight]=\"subAction.maxHeight\"\n (select)=\"subAction.fileSelected($event)\"\n [hidden]=\"(subAction.visible$ | async) === false\"\n (click)=\"actionClick(subAction, $event)\">\n <mat-icon *ngIf=\"subAction.icon\">\n {{ subAction.icon }}\n </mat-icon>\n {{ subAction.label }}\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-container [ngSwitch]=\"childAction.mode\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-template\n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"(childAction.visible$ | async) === false\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">\n {{ childAction.icon }}\n </mat-icon>\n {{ childAction.label }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template\n fs-menu-file-item\n [multiple]=\"childAction.multiple\"\n [accept]=\"childAction.accept || '*'\"\n [minWidth]=\"childAction.minWidth\"\n [minHeight]=\"childAction.minHeight\"\n [imageWidth]=\"childAction.maxWidth\"\n [imageHeight]=\"childAction.maxHeight\"\n (select)=\"childAction.fileSelected($event)\"\n [hidden]=\"(childAction.visible$ | async) === false\">\n <mat-icon *ngIf=\"childAction.icon\">\n {{ childAction.icon }}\n </mat-icon>\n {{ childAction.label }}\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n <ng-container *ngSwitchCase=\"ActionMode.SelectButton\">\n <mat-select\n class=\"action action-select-button\"\n [buttonType]=\"'basic'\"\n [ngClass]=\"{ \n 'mat-mdc-raised-button': action.style === ButtonStyle.Raised,\n 'mat-mdc-unelevated-button': action.style === ButtonStyle.Flat,\n 'mat-mdc-outlined-button': action.style === ButtonStyle.Stroked,\n }\"\n [placeholder]=\"action.label\"\n [(ngModel)]=\"action.value\"\n (ngModelChange)=\"actionChange(action, $event, selectButton)\"\n fsSelectButton\n #selectButton\n [deselectOnChange]=\"false\">\n <mat-option\n *ngFor=\"let item of action.values\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"ActionMode.File\">\n <fs-file\n class=\"action action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n <fs-filter-action-button [action]=\"action\"></fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions [kebabActions]=\"kebabActions\"></fs-filter-action-kebab-actions>\n</ng-container>", styles: [":host{display:inline-flex;align-items:center}.action-button{display:block}.action.action-select-button{width:auto}.action+.action{margin-left:5px}fs-menu{display:none}\n"] }]
40
40
  }], propDecorators: { kebabActions: [{
41
41
  type: Input
42
42
  }], actions: [{
43
43
  type: Input
44
44
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYWN0aW9ucy9hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hY3Rpb25zL2FjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVVyRCxNQUFNLE9BQU8sd0JBQXdCO0lBRzVCLFlBQVksR0FBYSxFQUFFLENBQUM7SUFHNUIsT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUV2QixVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ3hCLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFFeEIsWUFBWSxDQUFDLE1BQWMsRUFBRSxLQUFVLEVBQUUsWUFBdUI7UUFDckUsSUFBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQixJQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQWlCO1FBQzFDLElBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7dUdBekJVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHVIQ2xCckMsd2lNQThJQTs7MkZENUhhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs4QkFLeEMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbmltcG9ydCB7IEFjdGlvbk1vZGUsIEFjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uLm1vZGVsJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1maWx0ZXItYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9ucy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnNGaWx0ZXJBY3Rpb25zQ29tcG9uZW50IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMga2ViYWJBY3Rpb25zOiBBY3Rpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY3Rpb25zOiBBY3Rpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyBBY3Rpb25UeXBlID0gQWN0aW9uVHlwZTtcbiAgcHVibGljIEFjdGlvbk1vZGUgPSBBY3Rpb25Nb2RlO1xuXG4gIHB1YmxpYyBhY3Rpb25DaGFuZ2UoYWN0aW9uOiBBY3Rpb24sIHZhbHVlOiBhbnksIHNlbGVjdEJ1dHRvbjogTWF0U2VsZWN0KTogdm9pZCB7XG4gICAgaWYoYWN0aW9uLmNoYW5nZSkge1xuICAgICAgYWN0aW9uLmNoYW5nZSh2YWx1ZSk7ICAgICAgXG5cbiAgICAgIGlmKGFjdGlvbi5kZXNlbGVjdCkge1xuICAgICAgICBzZWxlY3RCdXR0b24ud3JpdGVWYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uQ2xpY2soYWN0aW9uLCBldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmKGFjdGlvbi5jbGljaykge1xuICAgICAgYWN0aW9uLmNsaWNrKGV2ZW50KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWN0aW9uLm1vZGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJBY3Rpb25Nb2RlLkJ1dHRvblwiPlxuICAgICAgPGZzLWZpbHRlci1hY3Rpb24tYnV0dG9uXG4gICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgY2xhc3M9XCJhY3Rpb25cIlxuICAgICAgICBmc1BvcG92ZXJcbiAgICAgICAgW2VuYWJsZWRdPVwiISFhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgIFt0ZXh0XT1cImFjdGlvbi50b29sdGlwXCI+XG4gICAgICA8L2ZzLWZpbHRlci1hY3Rpb24tYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiQWN0aW9uTW9kZS5NZW51XCI+XG4gICAgICA8ZnMtZmlsdGVyLWFjdGlvbi1idXR0b25cbiAgICAgICAgY2xhc3M9XCJhY3Rpb25cIlxuICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgIFtmc01lbnVUcmlnZ2VyRm9yXT1cInNvbWVSZWZcIlxuICAgICAgICBmc1BvcG92ZXJcbiAgICAgICAgW2VuYWJsZWRdPVwiISFhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgIFt0ZXh0XT1cImFjdGlvbi50b29sdGlwXCI+XG4gICAgICA8L2ZzLWZpbHRlci1hY3Rpb24tYnV0dG9uPlxuXG4gICAgICA8ZnMtbWVudSAjc29tZVJlZiBjbGFzcz1cImFjdGlvblwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZEFjdGlvbiBvZiBhY3Rpb24uaXRlbXNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hpbGRBY3Rpb24uaXNHcm91cCBlbHNlIHNpbXBsZU1lbnVJdGVtXCI+XG4gICAgICAgICAgICA8ZnMtbWVudS1ncm91cCBbbGFiZWxdPVwiY2hpbGRBY3Rpb24ubGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3ViQWN0aW9uIG9mIGNoaWxkQWN0aW9uLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic3ViQWN0aW9uLm1vZGVcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtZW51J1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZzLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtdPVwic3ViQWN0aW9uLnJvdXRlckxpbms/LmxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInN1YkFjdGlvbi5yb3V0ZXJMaW5rPy5xdWVyeVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIihzdWJBY3Rpb24udmlzaWJsZSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25DbGljayhzdWJBY3Rpb24sICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdWJBY3Rpb24uaWNvblwiPnt7c3ViQWN0aW9uLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAge3tzdWJBY3Rpb24ubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmlsZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBmcy1tZW51LWZpbGUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cInN1YkFjdGlvbi5tdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXB0XT1cInN1YkFjdGlvbi5hY2NlcHQgfHwgJyonXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW5XaWR0aF09XCJzdWJBY3Rpb24ubWluV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbkhlaWdodF09XCJzdWJBY3Rpb24ubWluSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZVdpZHRoXT1cInN1YkFjdGlvbi5tYXhXaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW1hZ2VIZWlnaHRdPVwic3ViQWN0aW9uLm1heEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0KT1cInN1YkFjdGlvbi5maWxlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIihzdWJBY3Rpb24udmlzaWJsZSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25DbGljayhzdWJBY3Rpb24sICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdWJBY3Rpb24uaWNvblwiPnt7c3ViQWN0aW9uLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAge3tzdWJBY3Rpb24ubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9mcy1tZW51LWdyb3VwPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlTWVudUl0ZW0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjaGlsZEFjdGlvbi5tb2RlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtZW51J1wiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBmcy1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW2xpbmtdPVwiY2hpbGRBY3Rpb24ucm91dGVyTGluaz8ubGlua1wiXG4gICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJjaGlsZEFjdGlvbi5yb3V0ZXJMaW5rPy5xdWVyeVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiKGNoaWxkQWN0aW9uLnZpc2libGUkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGlsZEFjdGlvbi5jbGljaygkZXZlbnQpO1wiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY2hpbGRBY3Rpb24uaWNvblwiPnt7Y2hpbGRBY3Rpb24uaWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7Y2hpbGRBY3Rpb24ubGFiZWx9fVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmlsZSdcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgZnMtbWVudS1maWxlLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImNoaWxkQWN0aW9uLm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FjY2VwdF09XCJjaGlsZEFjdGlvbi5hY2NlcHQgfHwgJyonXCJcbiAgICAgICAgICAgICAgICAgICAgW21pbldpZHRoXT1cImNoaWxkQWN0aW9uLm1pbldpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgW21pbkhlaWdodF09XCJjaGlsZEFjdGlvbi5taW5IZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VXaWR0aF09XCJjaGlsZEFjdGlvbi5tYXhXaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZUhlaWdodF09XCJjaGlsZEFjdGlvbi5tYXhIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0KT1cImNoaWxkQWN0aW9uLmZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIoY2hpbGRBY3Rpb24udmlzaWJsZSQgfCBhc3luYykgPT09IGZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJjaGlsZEFjdGlvbi5pY29uXCI+e3tjaGlsZEFjdGlvbi5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAge3tjaGlsZEFjdGlvbi5sYWJlbH19XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZnMtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkFjdGlvbk1vZGUuU2VsZWN0QnV0dG9uXCI+XG4gICAgICA8bWF0LXNlbGVjdCBcbiAgICAgICAgICBjbGFzcz1cImFjdGlvbiBhY3Rpb24tc2VsZWN0LWJ1dHRvblwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBcbiAgICAgICAgICAgICdtYXQtbWRjLXJhaXNlZC1idXR0b24nOiBhY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZS5SYWlzZWQsXG4gICAgICAgICAgICAnbWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbic6IGFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlLkZsYXQsXG4gICAgICAgICAgICAnbWF0LW1kYy1vdXRsaW5lZC1idXR0b24nOiBhY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZS5TdHJva2VkLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJhY3Rpb24ubGFiZWxcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiYWN0aW9uLnZhbHVlXCIgXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYWN0aW9uQ2hhbmdlKGFjdGlvbiwgJGV2ZW50LCBzZWxlY3RCdXR0b24pXCJcbiAgICAgICAgICBmc1NlbGVjdEJ1dHRvblxuICAgICAgICAgICNzZWxlY3RCdXR0b25cbiAgICAgICAgICBbZGVzZWxlY3RPbkNoYW5nZV09XCJmYWxzZVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiBcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGlvbi52YWx1ZXNcIiBcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+XG4gICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkFjdGlvbk1vZGUuRmlsZVwiPlxuICAgICAgPGZzLWZpbGVcbiAgICAgICAgICBjbGFzcz1cImFjdGlvbiBhY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICBbYWNjZXB0XT1cImFjdGlvbi5hY2NlcHQgfHwgJyonXCJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwiYWN0aW9uLm11bHRpcGxlXCJcbiAgICAgICAgICBbbWluV2lkdGhdPVwiYWN0aW9uLm1pbldpZHRoXCJcbiAgICAgICAgICBbbWluSGVpZ2h0XT1cImFjdGlvbi5taW5IZWlnaHRcIlxuICAgICAgICAgIFtpbWFnZVdpZHRoXT1cImFjdGlvbi5tYXhXaWR0aFwiXG4gICAgICAgICAgW2ltYWdlSGVpZ2h0XT1cImFjdGlvbi5tYXhIZWlnaHRcIlxuICAgICAgICAgIChzZWxlY3QpPVwiYWN0aW9uLmZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZXJyb3IpPVwiYWN0aW9uLmZpbGVFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJhY3Rpb24uY2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgZnNQb3BvdmVyXG4gICAgICAgICAgW2VuYWJsZWRdPVwiISFhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgICAgW3RleHRdPVwiYWN0aW9uLnRvb2x0aXBcIj5cbiAgICAgICAgPGZzLWZpbHRlci1hY3Rpb24tYnV0dG9uIFxuICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCI+XG4gICAgICAgIDwvZnMtZmlsdGVyLWFjdGlvbi1idXR0b24+XG4gICAgICA8L2ZzLWZpbGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwia2ViYWJBY3Rpb25zPy5sZW5ndGhcIj5cbiAgPGZzLWZpbHRlci1hY3Rpb24ta2ViYWItYWN0aW9uc1xuICAgIFtrZWJhYkFjdGlvbnNdPVwia2ViYWJBY3Rpb25zXCI+XG4gIDwvZnMtZmlsdGVyLWFjdGlvbi1rZWJhYi1hY3Rpb25zPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYWN0aW9ucy9hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hY3Rpb25zL2FjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVV0RCxNQUFNLE9BQU8sd0JBQXdCO0lBRzVCLFlBQVksR0FBYSxFQUFFLENBQUM7SUFHNUIsT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUV2QixXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQzFCLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFFeEIsWUFBWSxDQUFDLE1BQWMsRUFBRSxLQUFVLEVBQUUsWUFBdUI7UUFDckUsSUFBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQixJQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQWlCO1FBQzFDLElBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7dUdBekJVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHVIQ2xCckMsbXdNQWdKZTs7MkZEOUhGLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs4QkFLeEMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbmltcG9ydCB7IEFjdGlvbk1vZGUsIEJ1dHRvblN0eWxlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbi5tb2RlbCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtZmlsdGVyLWFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzRmlsdGVyQWN0aW9uc0NvbXBvbmVudCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGtlYmFiQWN0aW9uczogQWN0aW9uW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aW9uczogQWN0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgQnV0dG9uU3R5bGUgPSBCdXR0b25TdHlsZTtcbiAgcHVibGljIEFjdGlvbk1vZGUgPSBBY3Rpb25Nb2RlO1xuXG4gIHB1YmxpYyBhY3Rpb25DaGFuZ2UoYWN0aW9uOiBBY3Rpb24sIHZhbHVlOiBhbnksIHNlbGVjdEJ1dHRvbjogTWF0U2VsZWN0KTogdm9pZCB7XG4gICAgaWYoYWN0aW9uLmNoYW5nZSkge1xuICAgICAgYWN0aW9uLmNoYW5nZSh2YWx1ZSk7ICAgICAgXG5cbiAgICAgIGlmKGFjdGlvbi5kZXNlbGVjdCkge1xuICAgICAgICBzZWxlY3RCdXR0b24ud3JpdGVWYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uQ2xpY2soYWN0aW9uLCBldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmKGFjdGlvbi5jbGljaykge1xuICAgICAgYWN0aW9uLmNsaWNrKGV2ZW50KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWN0aW9uLm1vZGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJBY3Rpb25Nb2RlLkJ1dHRvblwiPlxuICAgICAgPGZzLWZpbHRlci1hY3Rpb24tYnV0dG9uXG4gICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgY2xhc3M9XCJhY3Rpb25cIlxuICAgICAgICBmc1BvcG92ZXJcbiAgICAgICAgW2VuYWJsZWRdPVwiISFhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgIFt0ZXh0XT1cImFjdGlvbi50b29sdGlwXCI+XG4gICAgICA8L2ZzLWZpbHRlci1hY3Rpb24tYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkFjdGlvbk1vZGUuTWVudVwiPlxuICAgICAgPGZzLWZpbHRlci1hY3Rpb24tYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uXCJcbiAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICBbZnNNZW51VHJpZ2dlckZvcl09XCJzb21lUmVmXCJcbiAgICAgICAgZnNQb3BvdmVyXG4gICAgICAgIFtlbmFibGVkXT1cIiEhYWN0aW9uLnRvb2x0aXBcIlxuICAgICAgICBbdGV4dF09XCJhY3Rpb24udG9vbHRpcFwiPlxuICAgICAgPC9mcy1maWx0ZXItYWN0aW9uLWJ1dHRvbj5cbiAgICAgIDxmcy1tZW51XG4gICAgICAgICAgI3NvbWVSZWZcbiAgICAgICAgICBjbGFzcz1cImFjdGlvblwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZEFjdGlvbiBvZiBhY3Rpb24uaXRlbXNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hpbGRBY3Rpb24uaXNHcm91cCBlbHNlIHNpbXBsZU1lbnVJdGVtXCI+XG4gICAgICAgICAgICA8ZnMtbWVudS1ncm91cCBbbGFiZWxdPVwiY2hpbGRBY3Rpb24ubGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3ViQWN0aW9uIG9mIGNoaWxkQWN0aW9uLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic3ViQWN0aW9uLm1vZGVcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtZW51J1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZzLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtdPVwic3ViQWN0aW9uLnJvdXRlckxpbms/LmxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInN1YkFjdGlvbi5yb3V0ZXJMaW5rPy5xdWVyeVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIihzdWJBY3Rpb24udmlzaWJsZSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25DbGljayhzdWJBY3Rpb24sICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdWJBY3Rpb24uaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViQWN0aW9uLmljb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHN1YkFjdGlvbi5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmlsZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBmcy1tZW51LWZpbGUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cInN1YkFjdGlvbi5tdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXB0XT1cInN1YkFjdGlvbi5hY2NlcHQgfHwgJyonXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW5XaWR0aF09XCJzdWJBY3Rpb24ubWluV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbkhlaWdodF09XCJzdWJBY3Rpb24ubWluSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZVdpZHRoXT1cInN1YkFjdGlvbi5tYXhXaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW1hZ2VIZWlnaHRdPVwic3ViQWN0aW9uLm1heEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0KT1cInN1YkFjdGlvbi5maWxlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIihzdWJBY3Rpb24udmlzaWJsZSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25DbGljayhzdWJBY3Rpb24sICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdWJBY3Rpb24uaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViQWN0aW9uLmljb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHN1YkFjdGlvbi5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9mcy1tZW51LWdyb3VwPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlTWVudUl0ZW0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjaGlsZEFjdGlvbi5tb2RlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtZW51J1wiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBmcy1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW2xpbmtdPVwiY2hpbGRBY3Rpb24ucm91dGVyTGluaz8ubGlua1wiXG4gICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJjaGlsZEFjdGlvbi5yb3V0ZXJMaW5rPy5xdWVyeVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiKGNoaWxkQWN0aW9uLnZpc2libGUkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGlsZEFjdGlvbi5jbGljaygkZXZlbnQpO1wiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY2hpbGRBY3Rpb24uaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjaGlsZEFjdGlvbi5pY29uIH19XG4gICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAge3sgY2hpbGRBY3Rpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbGUnXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIGZzLW1lbnUtZmlsZS1pdGVtXG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJjaGlsZEFjdGlvbi5tdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiY2hpbGRBY3Rpb24uYWNjZXB0IHx8ICcqJ1wiXG4gICAgICAgICAgICAgICAgICAgIFttaW5XaWR0aF09XCJjaGlsZEFjdGlvbi5taW5XaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgIFttaW5IZWlnaHRdPVwiY2hpbGRBY3Rpb24ubWluSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlV2lkdGhdPVwiY2hpbGRBY3Rpb24ubWF4V2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VIZWlnaHRdPVwiY2hpbGRBY3Rpb24ubWF4SGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdCk9XCJjaGlsZEFjdGlvbi5maWxlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiKGNoaWxkQWN0aW9uLnZpc2libGUkIHwgYXN5bmMpID09PSBmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY2hpbGRBY3Rpb24uaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjaGlsZEFjdGlvbi5pY29uIH19XG4gICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAge3sgY2hpbGRBY3Rpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9mcy1tZW51PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkFjdGlvbk1vZGUuU2VsZWN0QnV0dG9uXCI+XG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgIGNsYXNzPVwiYWN0aW9uIGFjdGlvbi1zZWxlY3QtYnV0dG9uXCJcbiAgICAgICAgICBbYnV0dG9uVHlwZV09XCInYmFzaWMnXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IFxuICAgICAgICAgICAgJ21hdC1tZGMtcmFpc2VkLWJ1dHRvbic6IGFjdGlvbi5zdHlsZSA9PT0gQnV0dG9uU3R5bGUuUmFpc2VkLFxuICAgICAgICAgICAgJ21hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24nOiBhY3Rpb24uc3R5bGUgPT09IEJ1dHRvblN0eWxlLkZsYXQsXG4gICAgICAgICAgICAnbWF0LW1kYy1vdXRsaW5lZC1idXR0b24nOiBhY3Rpb24uc3R5bGUgPT09IEJ1dHRvblN0eWxlLlN0cm9rZWQsXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImFjdGlvbi5sYWJlbFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJhY3Rpb24udmFsdWVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFjdGlvbkNoYW5nZShhY3Rpb24sICRldmVudCwgc2VsZWN0QnV0dG9uKVwiXG4gICAgICAgICAgZnNTZWxlY3RCdXR0b25cbiAgICAgICAgICAjc2VsZWN0QnV0dG9uXG4gICAgICAgICAgW2Rlc2VsZWN0T25DaGFuZ2VdPVwiZmFsc2VcIj5cbiAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGlvbi52YWx1ZXNcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cbiAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkFjdGlvbk1vZGUuRmlsZVwiPlxuICAgICAgPGZzLWZpbGVcbiAgICAgICAgICBjbGFzcz1cImFjdGlvbiBhY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICBbYWNjZXB0XT1cImFjdGlvbi5hY2NlcHQgfHwgJyonXCJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwiYWN0aW9uLm11bHRpcGxlXCJcbiAgICAgICAgICBbbWluV2lkdGhdPVwiYWN0aW9uLm1pbldpZHRoXCJcbiAgICAgICAgICBbbWluSGVpZ2h0XT1cImFjdGlvbi5taW5IZWlnaHRcIlxuICAgICAgICAgIFtpbWFnZVdpZHRoXT1cImFjdGlvbi5tYXhXaWR0aFwiXG4gICAgICAgICAgW2ltYWdlSGVpZ2h0XT1cImFjdGlvbi5tYXhIZWlnaHRcIlxuICAgICAgICAgIChzZWxlY3QpPVwiYWN0aW9uLmZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZXJyb3IpPVwiYWN0aW9uLmZpbGVFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJhY3Rpb24uY2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgZnNQb3BvdmVyXG4gICAgICAgICAgW2VuYWJsZWRdPVwiISFhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgICAgW3RleHRdPVwiYWN0aW9uLnRvb2x0aXBcIj5cbiAgICAgICAgPGZzLWZpbHRlci1hY3Rpb24tYnV0dG9uIFthY3Rpb25dPVwiYWN0aW9uXCI+PC9mcy1maWx0ZXItYWN0aW9uLWJ1dHRvbj5cbiAgICAgIDwvZnMtZmlsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJrZWJhYkFjdGlvbnM/Lmxlbmd0aFwiPlxuICA8ZnMtZmlsdGVyLWFjdGlvbi1rZWJhYi1hY3Rpb25zIFtrZWJhYkFjdGlvbnNdPVwia2ViYWJBY3Rpb25zXCI+PC9mcy1maWx0ZXItYWN0aW9uLWtlYmFiLWFjdGlvbnM+XG48L25nLWNvbnRhaW5lcj4iXX0=