@messaia/cdk 13.3.2-rc05 → 13.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,7 +31,7 @@ import { MatInput, MatInputModule } from '@angular/material/input';
31
31
  import { MatStepper } from '@angular/material/stepper';
32
32
  import * as i15 from '@angular/material/paginator';
33
33
  import { MatPaginator, MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';
34
- import * as i5 from '@angular/material/sort';
34
+ import * as i5$1 from '@angular/material/sort';
35
35
  import { MatSort, MatSortModule } from '@angular/material/sort';
36
36
  import { saveAs } from 'file-saver';
37
37
  import { trigger, state, style, transition, animate, AUTO_STYLE, group, query, animateChild } from '@angular/animations';
@@ -41,16 +41,16 @@ import 'reflect-metadata';
41
41
  import { SelectionModel } from '@angular/cdk/collections';
42
42
  import * as i2$2 from '@angular/material/progress-bar';
43
43
  import { MatProgressBarModule } from '@angular/material/progress-bar';
44
- import * as i4$3 from '@angular/material/checkbox';
44
+ import * as i4$2 from '@angular/material/checkbox';
45
45
  import { MatCheckboxModule } from '@angular/material/checkbox';
46
46
  import * as i6 from '@angular/material/slide-toggle';
47
47
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
48
- import * as i4$1 from '@angular/material/icon';
48
+ import * as i5 from '@angular/material/icon';
49
49
  import { MatIconModule } from '@angular/material/icon';
50
50
  import * as i2 from '@angular/cdk/table';
51
51
  import { DataSource, CdkTableModule } from '@angular/cdk/table';
52
52
  import { TemplatePortalDirective, CdkPortal } from '@angular/cdk/portal';
53
- import * as i4$2 from '@angular/material/select';
53
+ import * as i4$1 from '@angular/material/select';
54
54
  import { MatSelect, MatSelectModule } from '@angular/material/select';
55
55
  import * as i2$1 from '@angular/material/core';
56
56
  import { mixinErrorState, MatNativeDateModule } from '@angular/material/core';
@@ -60,23 +60,23 @@ import * as i19 from '@angular/material/tooltip';
60
60
  import { MatTooltipModule } from '@angular/material/tooltip';
61
61
  import * as i7$2 from '@angular/material/autocomplete';
62
62
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
63
- import * as i4$4 from '@angular/material/chips';
63
+ import * as i4$3 from '@angular/material/chips';
64
64
  import { MatChipsModule } from '@angular/material/chips';
65
65
  import * as i6$1 from '@angular/material/progress-spinner';
66
66
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
67
67
  import * as i3$2 from '@angular/cdk/a11y';
68
- import * as i3$4 from '@angular/cdk/scrolling';
68
+ import * as i8 from '@angular/cdk/scrolling';
69
69
  import { ScrollingModule } from '@angular/cdk/scrolling';
70
70
  import * as i2$4 from '@angular/material/card';
71
71
  import { MatCardModule } from '@angular/material/card';
72
- import * as i1$8 from '@angular/material/list';
72
+ import * as i1$7 from '@angular/material/list';
73
73
  import { MatListModule } from '@angular/material/list';
74
74
  import * as i2$5 from '@angular/material/sidenav';
75
75
  import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
76
- import * as i1$7 from '@angular/material/toolbar';
76
+ import * as i3$4 from '@angular/material/toolbar';
77
77
  import { MatToolbarModule } from '@angular/material/toolbar';
78
78
  import * as i3$3 from '@angular/material/divider';
79
- import * as i1$9 from '@angular/cdk/bidi';
79
+ import * as i1$8 from '@angular/cdk/bidi';
80
80
 
81
81
  class DisableControlDirective {
82
82
  /**
@@ -2424,7 +2424,7 @@ class GenericFormBaseComponent extends BaseComponent {
2424
2424
  /**
2425
2425
  * Toolbar menu items
2426
2426
  */
2427
- this.toolbarMenus = [];
2427
+ this.toolbarMenuItems = [];
2428
2428
  /**
2429
2429
  * panelId: string
2430
2430
  */
@@ -2710,7 +2710,7 @@ class GenericFormBaseComponent extends BaseComponent {
2710
2710
  addToolbarMenuItems() {
2711
2711
  /* Add 'Delete' menu item */
2712
2712
  if (this.deletable) {
2713
- this.toolbarMenus.push({
2713
+ this.toolbarMenuItems.push({
2714
2714
  title: $localize `:@@delete:Delete`,
2715
2715
  icon: 'delete_forever',
2716
2716
  iconClass: 'tc-orange-800',
@@ -3246,7 +3246,7 @@ class FilterInputComponent {
3246
3246
  <button type="button" mat-button matSuffix mat-icon-button aria-label="Clear" *ngIf="value" (click)="clearSearch()">
3247
3247
  <mat-icon>close</mat-icon>
3248
3248
  </button>
3249
- </mat-form-field>`, isInline: true, components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }] });
3249
+ </mat-form-field>`, isInline: true, components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }] });
3250
3250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FilterInputComponent, decorators: [{
3251
3251
  type: Component,
3252
3252
  args: [{
@@ -3515,7 +3515,7 @@ class FilterSelectComponent {
3515
3515
  </mat-option>
3516
3516
  </ng-template>
3517
3517
  </mat-select>
3518
- </mat-form-field>`, isInline: true, styles: [".vd-select-filter{position:sticky;top:0;z-index:100;font-size:inherit;box-shadow:none;border-radius:0;padding:11px 16px;box-sizing:border-box;border:none;border-bottom:1px solid #dcdcdc;width:100%;background-color:#f5f5f5;outline:none}\n"], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4$2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
3518
+ </mat-form-field>`, isInline: true, styles: [".vd-select-filter{position:sticky;top:0;z-index:100;font-size:inherit;box-shadow:none;border-radius:0;padding:11px 16px;box-sizing:border-box;border:none;border-bottom:1px solid #dcdcdc;width:100%;background-color:#f5f5f5;outline:none}\n"], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
3519
3519
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FilterSelectComponent, decorators: [{
3520
3520
  type: Component,
3521
3521
  args: [{
@@ -3705,7 +3705,7 @@ class FilterDateComponent {
3705
3705
  <mat-icon>close</mat-icon>
3706
3706
  </button>
3707
3707
  <mat-datepicker #picker></mat-datepicker>
3708
- </mat-form-field>`, isInline: true, components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }] });
3708
+ </mat-form-field>`, isInline: true, components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }] });
3709
3709
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FilterDateComponent, decorators: [{
3710
3710
  type: Component,
3711
3711
  args: [{
@@ -3969,7 +3969,7 @@ class FilterClearComponent {
3969
3969
  /** @nocollapse */ /** @nocollapse */ FilterClearComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: FilterClearComponent, selector: "mat-header-cell[filter-clear],[mat-header-cell][filter-clear]", ngImport: i0, template: `
3970
3970
  <button type="button" mat-icon-button (click)="clear()">
3971
3971
  <mat-icon>backspace</mat-icon>
3972
- </button>`, isInline: true, components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
3972
+ </button>`, isInline: true, components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
3973
3973
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FilterClearComponent, decorators: [{
3974
3974
  type: Component,
3975
3975
  args: [{
@@ -4067,7 +4067,7 @@ class VdDynamicTableComponent {
4067
4067
  /**
4068
4068
  * Table row menu items
4069
4069
  */
4070
- this.actionMenus = [];
4070
+ this.rowMenuItems = [];
4071
4071
  /**
4072
4072
  * Columns to exclude
4073
4073
  */
@@ -4136,13 +4136,13 @@ class VdDynamicTableComponent {
4136
4136
  var tableDefinition = getTableDefinition(new this.classType);
4137
4137
  if (tableDefinition) {
4138
4138
  this.columns = [...tableDefinition.columns];
4139
- if (this.actionMenus?.length > 0) {
4139
+ if (this.rowMenuItems?.length > 0) {
4140
4140
  /* Check if the action column already exists */
4141
4141
  var actionColmun = this._columns?.find(x => x.name == 'action');
4142
4142
  /* If so, just add the menu items to it */
4143
4143
  if (actionColmun != null) {
4144
- actionColmun.actionMenus = [];
4145
- this.actionMenus.forEach(y => actionColmun.actionMenus.unshift(y));
4144
+ actionColmun.rowMenuItems = [];
4145
+ this.rowMenuItems.forEach(y => actionColmun.rowMenuItems.unshift(y));
4146
4146
  }
4147
4147
  /* Otherwise add a new one */
4148
4148
  else {
@@ -4151,7 +4151,7 @@ class VdDynamicTableComponent {
4151
4151
  name: 'action',
4152
4152
  type: TableColumnType.Action,
4153
4153
  disabled: true,
4154
- actionMenus: this.actionMenus
4154
+ rowMenuItems: this.rowMenuItems
4155
4155
  }));
4156
4156
  }
4157
4157
  }
@@ -4171,8 +4171,8 @@ class VdDynamicTableComponent {
4171
4171
  * @param column
4172
4172
  * @returns
4173
4173
  */
4174
- hasVisibleActionMenus(row, column) {
4175
- return column?.actionMenus?.filter(x => !x.hide || !x.hide(row))?.length > 0;
4174
+ hasVisibleRowMenuItems(row, column) {
4175
+ return column?.rowMenuItems?.filter(x => !x.hide || !x.hide(row))?.length > 0;
4176
4176
  }
4177
4177
  /**
4178
4178
  * A function to to compute the identity of items in an iterable.
@@ -4260,7 +4260,7 @@ class VdDynamicTableComponent {
4260
4260
  }
4261
4261
  }
4262
4262
  /** @nocollapse */ /** @nocollapse */ VdDynamicTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdDynamicTableComponent, deps: [{ token: DynamicBuilder }], target: i0.ɵɵFactoryTarget.Component });
4263
- /** @nocollapse */ /** @nocollapse */ VdDynamicTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdDynamicTableComponent, selector: "vd-dynamic-table", inputs: { dataSource: "dataSource", data: "data", classType: "classType", dataSourceFilter: "dataSourceFilter", filterable: "filterable", paginable: "paginable", selectable: "selectable", sortActive: "sortActive", sortDirection: "sortDirection", stickyHeader: "stickyHeader", stickyFilter: "stickyFilter", rowNgClass: "rowNgClass", detailsTemplate: "detailsTemplate", readonly: "readonly", selectAllFilter: "selectAllFilter", columns: "columns", actionMenus: "actionMenus", excludedColumns: "excludedColumns" }, outputs: { rowClick: "rowClick" }, host: { listeners: { "document:contextmenu": "handleContextMenuEvent($event)" } }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "detailsTemplateRef", predicate: ["detailsTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "rowContextMenuTriggers", predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"loading-progress\">\r\n\t<mat-progress-bar mode=\"indeterminate\" *ngIf=\"dataSource?.isLoading\"></mat-progress-bar>\r\n</div>\r\n\r\n<!-- #region Data table -->\r\n<table mat-table #table [dataSource]=\"dataSource\" [dataSourceFilter]=\"dataSourceFilter\" [ngClass]=\"{'table-fixed': !detailsTemplate}\" [trackBy]=\"trackBy\" matSort matSortDisableClear [matSortActive]=\"sortActive||'id'\" [matSortDirection]=\"sortDirection\" multiTemplateDataRows>\r\n\t<ng-container [ngSwitch]=\"column.type\" *ngFor=\"let column of columns\">\r\n\t\t<!-- #region Checkbox for selection -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Checkbox\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef>\r\n\t\t\t\t<mat-checkbox (change)=\"$event ? dataSource.toggleSelect($event, selectAllFilter) : null\" [disabled]=\"!dataSource.paginator?.length\" [checked]=\"dataSource.selectionModel.hasValue() && dataSource.isAllSelected()\" [indeterminate]=\"dataSource.selectionModel.hasValue() && !dataSource.isAllSelected()\"></mat-checkbox>\r\n\t\t\t</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\">\r\n\t\t\t\t<mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? dataSource.selectionModel.toggle(row) : null\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row)))\" [checked]=\"dataSource.selectionModel.isSelected(row)\"></mat-checkbox>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Enum column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Enum\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span i18n=\"@@selection\">{column.content(row) | enum:column.enumType:column.enumPrefix, select, type {type} other {{{column.content(row) | enum:column.enumType:column.enumPrefix}}}}</span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Toggle column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" (click)=\"$event.stopPropagation()\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<mat-slide-toggle [(ngModel)]=\"row[column.name]\" (ngModelChange)=\"column.event?(column.eventArgs?column.event(row,column.eventArgs):column.event(row)):null\" [disabled]=\"readonly || (column.disable && column.disable(row))\" color=\"primary\"></mat-slide-toggle>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Date column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Date\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span *ngIf=\"!column.shortDate\">{{column.content(row) | date:'dd.MM.yyyy HH:mm:ss'}}</span>\r\n\t\t\t\t<span *ngIf=\"column.shortDate\">{{column.content(row) | date:'dd.MM.yyyy'}}</span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Action -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" (click)=\"$event.stopPropagation()\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<ng-container *ngIf=\"column.actionMenus?.length > 0\">\r\n\t\t\t\t\t<div id=\"menu-{{row.id}}\" style=\"visibility: hidden; position: fixed;\" #contextMenuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" *ngIf=\"!row.locked && hasVisibleActionMenus(row, column)\"></div>\r\n\t\t\t\t\t<button type=\"button\" mat-icon-button [mat-menu-trigger-for]=\"menu\" [disabled]=\"row.locked || !hasVisibleActionMenus(row, column)\">\r\n\t\t\t\t\t\t<mat-icon>more_vert</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<mat-menu x-position=\"before\" #menu=\"matMenu\">\r\n\t\t\t\t\t\t<ng-container *ngFor=\"let menuItem of column.actionMenus\">\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event(row):null\" *ngIf=\"!menuItem.hide || !menuItem.hide(row)\" [disabled]=\"menuItem.disable && menuItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span>{{menuItem.title}}</span>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t<mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event(row):null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide(row)\" [disabled]=\"menuSubItem.disable && menuSubItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<span>{{menuSubItem.title}}</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t</mat-menu>\r\n\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide(row)\" [disabled]=\"menuItem.disable && menuItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span>{{menuItem.title}}</span>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</mat-menu>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Text Input column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row; let rowIndex = index\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" (click)=\"$event.preventDefault();$event.stopPropagation();\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\" layout=\"column\" layout-align=\"center start\">\r\n\t\t\t\t\t<input type=\"{{column.inputType}}\" matInput name=\"{{column.name}}{{rowIndex}}\" [(ngModel)]=\"row[column.name]\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row)))\" (ngModelChange)=\"patch(row, [column.name], row[column.name], column.patchIncludes)\" [ngModelOptions]=\"{updateOn: 'blur'}\" (keydown.enter)=\"$event.target.blur();false\">\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Other column types -->\r\n\t\t<ng-container *ngSwitchDefault [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span *ngIf=\"column.content\" [innerHtml]=\"column.content(row)\"></span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\t</ng-container>\r\n\r\n\t<!-- #region Filter row -->\r\n\t<ng-container *ngIf=\"dataSource && filterable\">\r\n\t\t<ng-container [ngSwitch]=\"column.type\" *ngFor=\"let column of columns\">\r\n\t\t\t<!-- #region No filter for checkbox -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.None || ColumnType.Checkbox\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Text filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Text\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region TextInput filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Number filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Number\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Select filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Select\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [endpoint]=\"column.endpoint\" [options]=\"column.options\" [text]=\"column.filterOptionText || 'name'\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Enum filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Enum\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [enum]=\"column.enumType\" [prefix]=\"column.enumPrefix\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Toggle filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [options]=\"column.options\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Date filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Date\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-date [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Action filter (clear) -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-clear [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Details column -->\r\n\t<ng-container cdkColumnDef=\"expandedDetail\">\r\n\t\t<td mat-cell *matCellDef=\"let row\" [attr.colspan]=\"displayedColumns.length\">\r\n\t\t\t<div class=\"row-detail\" [@detailExpand]=\"row == expandedRow ? 'expanded' : 'collapsed'\" #detailsTemplate></div>\r\n\t\t</td>\r\n\t</ng-container>\r\n\t<!-- #endregion -->\r\n\r\n\t<ng-container *ngIf=\"filterable\">\r\n\t\t<tr mat-header-row *cdkHeaderRowDef=\"displayedFilterColumns\"></tr>\r\n\t</ng-container>\r\n\t<tr mat-header-row *cdkHeaderRowDef=\"displayedColumns; sticky: stickyFilter\"></tr>\r\n\t<tr mat-row *cdkRowDef=\"let row; columns: displayedColumns; let index = dataIndex\" [ngClass]=\"rowNgClass?rowNgClass(row):null\" [class.expanded-row]=\"expandedRow === row\" (click)=\"handleRowClick(index, row)\" (contextmenu)=\"handleRowRightClick($event, row)\"></tr>\r\n\t<ng-container *ngIf=\"detailsTemplate\">\r\n\t\t<tr mat-row *cdkRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\" [ngClass]=\"rowNgClass?rowNgClass(row):null\"></tr>\r\n\t</ng-container>\r\n</table>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Row shown when there is no matching data.-->\r\n<div class=\"mat-cell pad tc-grey-700 bgc-grey-200 txt-italic\" *ngIf=\"!dataSource.filteredData?.length && !dataSource.total\" i18n=\"@@noResultsFound\">No results were found.</div>\r\n<!-- #endregion -->\r\n\r\n<mat-paginator *ngIf=\"paginable\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\"></mat-paginator>", styles: ["::ng-deep .mat-table .mat-row .mat-cell .mat-form-field .mat-form-field-wrapper{width:100%}@media (max-width: 389px){::ng-deep .mat-table [gt-xs]{display:none}::ng-deep .mat-table [gt-sm]{display:none}::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 599px){::ng-deep .mat-table [gt-sm]{display:none}::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 959px){::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1279px){::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1919px){::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1979px){::ng-deep .mat-table [gt-xxl]{display:none}}\n"], components: [{ type: i2$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i1$5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: FilterInputComponent, selector: "mat-header-cell[filter-input],[mat-header-cell][filter-input]", inputs: ["field", "operator", "onlyNumber", "debounce", "placeholder"] }, { type: FilterSelectComponent, selector: "mat-header-cell[filter-select],[mat-header-cell][filter-select]", inputs: ["endpoint", "params", "projection", "sortBy", "sorted", "enum", "key", "text", "prefix", "multiple", "options", "filteredOptions", "filterable", "field", "placeholder", "cache"] }, { type: FilterDateComponent, selector: "mat-header-cell[filter-date],[mat-header-cell][filter-date]", inputs: ["field", "debounce", "placeholder"] }, { type: FilterClearComponent, selector: "mat-header-cell[filter-clear],[mat-header-cell][filter-clear]" }, { type: i1$5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i1$5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i15.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: DataSourceFilterDirective, selector: "[dataSourceFilter]", inputs: ["dataSource", "dataSourceFilter"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["sticky", "cdkColumnDef", "stickyEnd"] }, { type: i2.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { type: i1$5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i2.CdkCellDef, selector: "[cdkCellDef]" }, { type: i1$5.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i19.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: OnlyNumberDirective, selector: "[onlyNumber]", inputs: ["onlyNumber"] }, { type: i1$5.MatCellDef, selector: "[matCellDef]" }, { type: i2.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { type: i2.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }], pipes: { "enum": EnumPipe, "date": i4.DatePipe }, animations: [
4263
+ /** @nocollapse */ /** @nocollapse */ VdDynamicTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdDynamicTableComponent, selector: "vd-dynamic-table", inputs: { dataSource: "dataSource", data: "data", classType: "classType", dataSourceFilter: "dataSourceFilter", filterable: "filterable", paginable: "paginable", selectable: "selectable", sortActive: "sortActive", sortDirection: "sortDirection", stickyHeader: "stickyHeader", stickyFilter: "stickyFilter", rowNgClass: "rowNgClass", detailsTemplate: "detailsTemplate", readonly: "readonly", selectAllFilter: "selectAllFilter", columns: "columns", rowMenuItems: "rowMenuItems", excludedColumns: "excludedColumns" }, outputs: { rowClick: "rowClick" }, host: { listeners: { "document:contextmenu": "handleContextMenuEvent($event)" } }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "detailsTemplateRef", predicate: ["detailsTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "rowContextMenuTriggers", predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"loading-progress\">\r\n\t<mat-progress-bar mode=\"indeterminate\" *ngIf=\"dataSource?.isLoading\"></mat-progress-bar>\r\n</div>\r\n\r\n<!-- #region Data table -->\r\n<table mat-table #table [dataSource]=\"dataSource\" [dataSourceFilter]=\"dataSourceFilter\" [ngClass]=\"{'table-fixed': !detailsTemplate}\" [trackBy]=\"trackBy\" matSort matSortDisableClear [matSortActive]=\"sortActive||'id'\" [matSortDirection]=\"sortDirection\" multiTemplateDataRows>\r\n\t<ng-container [ngSwitch]=\"column.type\" *ngFor=\"let column of columns\">\r\n\t\t<!-- #region Checkbox for selection -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Checkbox\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef>\r\n\t\t\t\t<mat-checkbox (change)=\"$event ? dataSource.toggleSelect($event, selectAllFilter) : null\" [disabled]=\"!dataSource.paginator?.length\" [checked]=\"dataSource.selectionModel.hasValue() && dataSource.isAllSelected()\" [indeterminate]=\"dataSource.selectionModel.hasValue() && !dataSource.isAllSelected()\"></mat-checkbox>\r\n\t\t\t</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\">\r\n\t\t\t\t<mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? dataSource.selectionModel.toggle(row) : null\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row)))\" [checked]=\"dataSource.selectionModel.isSelected(row)\"></mat-checkbox>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Enum column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Enum\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span i18n=\"@@selection\">{column.content(row) | enum:column.enumType:column.enumPrefix, select, type {type} other {{{column.content(row) | enum:column.enumType:column.enumPrefix}}}}</span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Toggle column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" (click)=\"$event.stopPropagation()\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<mat-slide-toggle [(ngModel)]=\"row[column.name]\" (ngModelChange)=\"column.event?(column.eventArgs?column.event(row,column.eventArgs):column.event(row)):null\" [disabled]=\"readonly || (column.disable && column.disable(row))\" color=\"primary\"></mat-slide-toggle>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Date column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Date\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span *ngIf=\"!column.shortDate\">{{column.content(row) | date:'dd.MM.yyyy HH:mm:ss'}}</span>\r\n\t\t\t\t<span *ngIf=\"column.shortDate\">{{column.content(row) | date:'dd.MM.yyyy'}}</span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Action -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" (click)=\"$event.stopPropagation()\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<ng-container *ngIf=\"column.rowMenuItems?.length > 0\">\r\n\t\t\t\t\t<div id=\"menu-{{row.id}}\" style=\"visibility: hidden; position: fixed;\" #contextMenuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" *ngIf=\"!row.locked && hasVisibleRowMenuItems(row, column)\"></div>\r\n\t\t\t\t\t<button type=\"button\" mat-icon-button [mat-menu-trigger-for]=\"menu\" [disabled]=\"row.locked || !hasVisibleRowMenuItems(row, column)\">\r\n\t\t\t\t\t\t<mat-icon>more_vert</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<mat-menu x-position=\"before\" #menu=\"matMenu\">\r\n\t\t\t\t\t\t<ng-container *ngFor=\"let menuItem of column.rowMenuItems\">\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event(row):null\" *ngIf=\"!menuItem.hide || !menuItem.hide(row)\" [disabled]=\"menuItem.disable && menuItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span>{{menuItem.title}}</span>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t<mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event(row):null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide(row)\" [disabled]=\"menuSubItem.disable && menuSubItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<span>{{menuSubItem.title}}</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t</mat-menu>\r\n\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide(row)\" [disabled]=\"menuItem.disable && menuItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span>{{menuItem.title}}</span>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</mat-menu>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Text Input column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row; let rowIndex = index\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" (click)=\"$event.preventDefault();$event.stopPropagation();\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\" layout=\"column\" layout-align=\"center start\">\r\n\t\t\t\t\t<input type=\"{{column.inputType}}\" matInput name=\"{{column.name}}{{rowIndex}}\" [(ngModel)]=\"row[column.name]\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row)))\" (ngModelChange)=\"patch(row, [column.name], row[column.name], column.patchIncludes)\" [ngModelOptions]=\"{updateOn: 'blur'}\" (keydown.enter)=\"$event.target.blur();false\">\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Other column types -->\r\n\t\t<ng-container *ngSwitchDefault [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span *ngIf=\"column.content\" [innerHtml]=\"column.content(row)\"></span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\t</ng-container>\r\n\r\n\t<!-- #region Filter row -->\r\n\t<ng-container *ngIf=\"dataSource && filterable\">\r\n\t\t<ng-container [ngSwitch]=\"column.type\" *ngFor=\"let column of columns\">\r\n\t\t\t<!-- #region No filter for checkbox -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.None || ColumnType.Checkbox\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Text filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Text\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region TextInput filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Number filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Number\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Select filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Select\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [endpoint]=\"column.endpoint\" [options]=\"column.options\" [text]=\"column.filterOptionText || 'name'\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Enum filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Enum\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [enum]=\"column.enumType\" [prefix]=\"column.enumPrefix\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Toggle filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [options]=\"column.options\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Date filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Date\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-date [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Action filter (clear) -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-clear [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Details column -->\r\n\t<ng-container cdkColumnDef=\"expandedDetail\">\r\n\t\t<td mat-cell *matCellDef=\"let row\" [attr.colspan]=\"displayedColumns.length\">\r\n\t\t\t<div class=\"row-detail\" [@detailExpand]=\"row == expandedRow ? 'expanded' : 'collapsed'\" #detailsTemplate></div>\r\n\t\t</td>\r\n\t</ng-container>\r\n\t<!-- #endregion -->\r\n\r\n\t<ng-container *ngIf=\"filterable\">\r\n\t\t<tr mat-header-row *cdkHeaderRowDef=\"displayedFilterColumns\"></tr>\r\n\t</ng-container>\r\n\t<tr mat-header-row *cdkHeaderRowDef=\"displayedColumns; sticky: stickyFilter\"></tr>\r\n\t<tr mat-row *cdkRowDef=\"let row; columns: displayedColumns; let index = dataIndex\" [ngClass]=\"rowNgClass?rowNgClass(row):null\" [class.expanded-row]=\"expandedRow === row\" (click)=\"handleRowClick(index, row)\" (contextmenu)=\"handleRowRightClick($event, row)\"></tr>\r\n\t<ng-container *ngIf=\"detailsTemplate\">\r\n\t\t<tr mat-row *cdkRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\" [ngClass]=\"rowNgClass?rowNgClass(row):null\"></tr>\r\n\t</ng-container>\r\n</table>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Row shown when there is no matching data.-->\r\n<div class=\"mat-cell pad tc-grey-700 bgc-grey-200 txt-italic\" *ngIf=\"!dataSource.filteredData?.length && !dataSource.total\" i18n=\"@@noResultsFound\">No results were found.</div>\r\n<!-- #endregion -->\r\n\r\n<mat-paginator *ngIf=\"paginable\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\"></mat-paginator>", styles: ["::ng-deep .mat-table .mat-row .mat-cell .mat-form-field .mat-form-field-wrapper{width:100%}@media (max-width: 389px){::ng-deep .mat-table [gt-xs]{display:none}::ng-deep .mat-table [gt-sm]{display:none}::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 599px){::ng-deep .mat-table [gt-sm]{display:none}::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 959px){::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1279px){::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1919px){::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1979px){::ng-deep .mat-table [gt-xxl]{display:none}}\n"], components: [{ type: i2$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i1$5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i4$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i5$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: FilterInputComponent, selector: "mat-header-cell[filter-input],[mat-header-cell][filter-input]", inputs: ["field", "operator", "onlyNumber", "debounce", "placeholder"] }, { type: FilterSelectComponent, selector: "mat-header-cell[filter-select],[mat-header-cell][filter-select]", inputs: ["endpoint", "params", "projection", "sortBy", "sorted", "enum", "key", "text", "prefix", "multiple", "options", "filteredOptions", "filterable", "field", "placeholder", "cache"] }, { type: FilterDateComponent, selector: "mat-header-cell[filter-date],[mat-header-cell][filter-date]", inputs: ["field", "debounce", "placeholder"] }, { type: FilterClearComponent, selector: "mat-header-cell[filter-clear],[mat-header-cell][filter-clear]" }, { type: i1$5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i1$5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i15.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5$1.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: DataSourceFilterDirective, selector: "[dataSourceFilter]", inputs: ["dataSource", "dataSourceFilter"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["sticky", "cdkColumnDef", "stickyEnd"] }, { type: i2.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { type: i1$5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i2.CdkCellDef, selector: "[cdkCellDef]" }, { type: i1$5.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i19.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: OnlyNumberDirective, selector: "[onlyNumber]", inputs: ["onlyNumber"] }, { type: i1$5.MatCellDef, selector: "[matCellDef]" }, { type: i2.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { type: i2.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }], pipes: { "enum": EnumPipe, "date": i4.DatePipe }, animations: [
4264
4264
  trigger('detailExpand', [
4265
4265
  state('collapsed', style({ display: 'none' })),
4266
4266
  state('expanded', style({ display: 'initial' })),
@@ -4275,7 +4275,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
4275
4275
  state('expanded', style({ display: 'initial' })),
4276
4276
  transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
4277
4277
  ]),
4278
- ], template: "<div class=\"loading-progress\">\r\n\t<mat-progress-bar mode=\"indeterminate\" *ngIf=\"dataSource?.isLoading\"></mat-progress-bar>\r\n</div>\r\n\r\n<!-- #region Data table -->\r\n<table mat-table #table [dataSource]=\"dataSource\" [dataSourceFilter]=\"dataSourceFilter\" [ngClass]=\"{'table-fixed': !detailsTemplate}\" [trackBy]=\"trackBy\" matSort matSortDisableClear [matSortActive]=\"sortActive||'id'\" [matSortDirection]=\"sortDirection\" multiTemplateDataRows>\r\n\t<ng-container [ngSwitch]=\"column.type\" *ngFor=\"let column of columns\">\r\n\t\t<!-- #region Checkbox for selection -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Checkbox\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef>\r\n\t\t\t\t<mat-checkbox (change)=\"$event ? dataSource.toggleSelect($event, selectAllFilter) : null\" [disabled]=\"!dataSource.paginator?.length\" [checked]=\"dataSource.selectionModel.hasValue() && dataSource.isAllSelected()\" [indeterminate]=\"dataSource.selectionModel.hasValue() && !dataSource.isAllSelected()\"></mat-checkbox>\r\n\t\t\t</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\">\r\n\t\t\t\t<mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? dataSource.selectionModel.toggle(row) : null\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row)))\" [checked]=\"dataSource.selectionModel.isSelected(row)\"></mat-checkbox>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Enum column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Enum\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span i18n=\"@@selection\">{column.content(row) | enum:column.enumType:column.enumPrefix, select, type {type} other {{{column.content(row) | enum:column.enumType:column.enumPrefix}}}}</span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Toggle column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" (click)=\"$event.stopPropagation()\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<mat-slide-toggle [(ngModel)]=\"row[column.name]\" (ngModelChange)=\"column.event?(column.eventArgs?column.event(row,column.eventArgs):column.event(row)):null\" [disabled]=\"readonly || (column.disable && column.disable(row))\" color=\"primary\"></mat-slide-toggle>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Date column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Date\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span *ngIf=\"!column.shortDate\">{{column.content(row) | date:'dd.MM.yyyy HH:mm:ss'}}</span>\r\n\t\t\t\t<span *ngIf=\"column.shortDate\">{{column.content(row) | date:'dd.MM.yyyy'}}</span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Action -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" (click)=\"$event.stopPropagation()\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<ng-container *ngIf=\"column.actionMenus?.length > 0\">\r\n\t\t\t\t\t<div id=\"menu-{{row.id}}\" style=\"visibility: hidden; position: fixed;\" #contextMenuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" *ngIf=\"!row.locked && hasVisibleActionMenus(row, column)\"></div>\r\n\t\t\t\t\t<button type=\"button\" mat-icon-button [mat-menu-trigger-for]=\"menu\" [disabled]=\"row.locked || !hasVisibleActionMenus(row, column)\">\r\n\t\t\t\t\t\t<mat-icon>more_vert</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<mat-menu x-position=\"before\" #menu=\"matMenu\">\r\n\t\t\t\t\t\t<ng-container *ngFor=\"let menuItem of column.actionMenus\">\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event(row):null\" *ngIf=\"!menuItem.hide || !menuItem.hide(row)\" [disabled]=\"menuItem.disable && menuItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span>{{menuItem.title}}</span>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t<mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event(row):null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide(row)\" [disabled]=\"menuSubItem.disable && menuSubItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<span>{{menuSubItem.title}}</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t</mat-menu>\r\n\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide(row)\" [disabled]=\"menuItem.disable && menuItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span>{{menuItem.title}}</span>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</mat-menu>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Text Input column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row; let rowIndex = index\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" (click)=\"$event.preventDefault();$event.stopPropagation();\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\" layout=\"column\" layout-align=\"center start\">\r\n\t\t\t\t\t<input type=\"{{column.inputType}}\" matInput name=\"{{column.name}}{{rowIndex}}\" [(ngModel)]=\"row[column.name]\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row)))\" (ngModelChange)=\"patch(row, [column.name], row[column.name], column.patchIncludes)\" [ngModelOptions]=\"{updateOn: 'blur'}\" (keydown.enter)=\"$event.target.blur();false\">\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Other column types -->\r\n\t\t<ng-container *ngSwitchDefault [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span *ngIf=\"column.content\" [innerHtml]=\"column.content(row)\"></span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\t</ng-container>\r\n\r\n\t<!-- #region Filter row -->\r\n\t<ng-container *ngIf=\"dataSource && filterable\">\r\n\t\t<ng-container [ngSwitch]=\"column.type\" *ngFor=\"let column of columns\">\r\n\t\t\t<!-- #region No filter for checkbox -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.None || ColumnType.Checkbox\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Text filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Text\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region TextInput filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Number filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Number\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Select filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Select\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [endpoint]=\"column.endpoint\" [options]=\"column.options\" [text]=\"column.filterOptionText || 'name'\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Enum filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Enum\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [enum]=\"column.enumType\" [prefix]=\"column.enumPrefix\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Toggle filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [options]=\"column.options\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Date filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Date\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-date [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Action filter (clear) -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-clear [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Details column -->\r\n\t<ng-container cdkColumnDef=\"expandedDetail\">\r\n\t\t<td mat-cell *matCellDef=\"let row\" [attr.colspan]=\"displayedColumns.length\">\r\n\t\t\t<div class=\"row-detail\" [@detailExpand]=\"row == expandedRow ? 'expanded' : 'collapsed'\" #detailsTemplate></div>\r\n\t\t</td>\r\n\t</ng-container>\r\n\t<!-- #endregion -->\r\n\r\n\t<ng-container *ngIf=\"filterable\">\r\n\t\t<tr mat-header-row *cdkHeaderRowDef=\"displayedFilterColumns\"></tr>\r\n\t</ng-container>\r\n\t<tr mat-header-row *cdkHeaderRowDef=\"displayedColumns; sticky: stickyFilter\"></tr>\r\n\t<tr mat-row *cdkRowDef=\"let row; columns: displayedColumns; let index = dataIndex\" [ngClass]=\"rowNgClass?rowNgClass(row):null\" [class.expanded-row]=\"expandedRow === row\" (click)=\"handleRowClick(index, row)\" (contextmenu)=\"handleRowRightClick($event, row)\"></tr>\r\n\t<ng-container *ngIf=\"detailsTemplate\">\r\n\t\t<tr mat-row *cdkRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\" [ngClass]=\"rowNgClass?rowNgClass(row):null\"></tr>\r\n\t</ng-container>\r\n</table>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Row shown when there is no matching data.-->\r\n<div class=\"mat-cell pad tc-grey-700 bgc-grey-200 txt-italic\" *ngIf=\"!dataSource.filteredData?.length && !dataSource.total\" i18n=\"@@noResultsFound\">No results were found.</div>\r\n<!-- #endregion -->\r\n\r\n<mat-paginator *ngIf=\"paginable\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\"></mat-paginator>", styles: ["::ng-deep .mat-table .mat-row .mat-cell .mat-form-field .mat-form-field-wrapper{width:100%}@media (max-width: 389px){::ng-deep .mat-table [gt-xs]{display:none}::ng-deep .mat-table [gt-sm]{display:none}::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 599px){::ng-deep .mat-table [gt-sm]{display:none}::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 959px){::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1279px){::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1919px){::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1979px){::ng-deep .mat-table [gt-xxl]{display:none}}\n"] }]
4278
+ ], template: "<div class=\"loading-progress\">\r\n\t<mat-progress-bar mode=\"indeterminate\" *ngIf=\"dataSource?.isLoading\"></mat-progress-bar>\r\n</div>\r\n\r\n<!-- #region Data table -->\r\n<table mat-table #table [dataSource]=\"dataSource\" [dataSourceFilter]=\"dataSourceFilter\" [ngClass]=\"{'table-fixed': !detailsTemplate}\" [trackBy]=\"trackBy\" matSort matSortDisableClear [matSortActive]=\"sortActive||'id'\" [matSortDirection]=\"sortDirection\" multiTemplateDataRows>\r\n\t<ng-container [ngSwitch]=\"column.type\" *ngFor=\"let column of columns\">\r\n\t\t<!-- #region Checkbox for selection -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Checkbox\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef>\r\n\t\t\t\t<mat-checkbox (change)=\"$event ? dataSource.toggleSelect($event, selectAllFilter) : null\" [disabled]=\"!dataSource.paginator?.length\" [checked]=\"dataSource.selectionModel.hasValue() && dataSource.isAllSelected()\" [indeterminate]=\"dataSource.selectionModel.hasValue() && !dataSource.isAllSelected()\"></mat-checkbox>\r\n\t\t\t</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\">\r\n\t\t\t\t<mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? dataSource.selectionModel.toggle(row) : null\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row)))\" [checked]=\"dataSource.selectionModel.isSelected(row)\"></mat-checkbox>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Enum column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Enum\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span i18n=\"@@selection\">{column.content(row) | enum:column.enumType:column.enumPrefix, select, type {type} other {{{column.content(row) | enum:column.enumType:column.enumPrefix}}}}</span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Toggle column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" (click)=\"$event.stopPropagation()\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<mat-slide-toggle [(ngModel)]=\"row[column.name]\" (ngModelChange)=\"column.event?(column.eventArgs?column.event(row,column.eventArgs):column.event(row)):null\" [disabled]=\"readonly || (column.disable && column.disable(row))\" color=\"primary\"></mat-slide-toggle>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Date column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Date\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span *ngIf=\"!column.shortDate\">{{column.content(row) | date:'dd.MM.yyyy HH:mm:ss'}}</span>\r\n\t\t\t\t<span *ngIf=\"column.shortDate\">{{column.content(row) | date:'dd.MM.yyyy'}}</span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Action -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" (click)=\"$event.stopPropagation()\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<ng-container *ngIf=\"column.rowMenuItems?.length > 0\">\r\n\t\t\t\t\t<div id=\"menu-{{row.id}}\" style=\"visibility: hidden; position: fixed;\" #contextMenuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" *ngIf=\"!row.locked && hasVisibleRowMenuItems(row, column)\"></div>\r\n\t\t\t\t\t<button type=\"button\" mat-icon-button [mat-menu-trigger-for]=\"menu\" [disabled]=\"row.locked || !hasVisibleRowMenuItems(row, column)\">\r\n\t\t\t\t\t\t<mat-icon>more_vert</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<mat-menu x-position=\"before\" #menu=\"matMenu\">\r\n\t\t\t\t\t\t<ng-container *ngFor=\"let menuItem of column.rowMenuItems\">\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event(row):null\" *ngIf=\"!menuItem.hide || !menuItem.hide(row)\" [disabled]=\"menuItem.disable && menuItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span>{{menuItem.title}}</span>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t<mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event(row):null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide(row)\" [disabled]=\"menuSubItem.disable && menuSubItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<span>{{menuSubItem.title}}</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t</mat-menu>\r\n\t\t\t\t\t\t\t\t<button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide(row)\" [disabled]=\"menuItem.disable && menuItem.disable(row)\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span>{{menuItem.title}}</span>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</mat-menu>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Text Input column -->\r\n\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\" [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row; let rowIndex = index\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" (click)=\"$event.preventDefault();$event.stopPropagation();\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\" layout=\"column\" layout-align=\"center start\">\r\n\t\t\t\t\t<input type=\"{{column.inputType}}\" matInput name=\"{{column.name}}{{rowIndex}}\" [(ngModel)]=\"row[column.name]\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row)))\" (ngModelChange)=\"patch(row, [column.name], row[column.name], column.patchIncludes)\" [ngModelOptions]=\"{updateOn: 'blur'}\" (keydown.enter)=\"$event.target.blur();false\">\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Other column types -->\r\n\t\t<ng-container *ngSwitchDefault [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [disabled]=\"column.disabled\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">{{column.header}}</th>\r\n\t\t\t<td mat-cell *cdkCellDef=\"let row\" [matTooltip]=\"column.tooltip?column.tooltip(row):null\" [matTooltipClass]=\"column.tooltipClass\" [ngClass]=\"column.cellNgClass?column.cellNgClass(row):{'text-right': column.arrowBefore}\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\">\r\n\t\t\t\t<span *ngIf=\"column.content\" [innerHtml]=\"column.content(row)\"></span>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\t</ng-container>\r\n\r\n\t<!-- #region Filter row -->\r\n\t<ng-container *ngIf=\"dataSource && filterable\">\r\n\t\t<ng-container [ngSwitch]=\"column.type\" *ngFor=\"let column of columns\">\r\n\t\t\t<!-- #region No filter for checkbox -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.None || ColumnType.Checkbox\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Text filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Text\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region TextInput filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Number filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Number\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-input [onlyNumber]=\"column.filterInputNumber\" [operator]=\"column.filterOperator\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Select filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Select\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [endpoint]=\"column.endpoint\" [options]=\"column.options\" [text]=\"column.filterOptionText || 'name'\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Enum filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Enum\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [enum]=\"column.enumType\" [prefix]=\"column.enumPrefix\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Toggle filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-select [options]=\"column.options\" [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Date filter -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Date\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-date [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t<!-- #region Action filter (clear) -->\r\n\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\" cdkColumnDef=\"filter.{{column.filter || column.name}}\">\r\n\t\t\t\t<th mat-header-cell *cdkHeaderCellDef filter-clear [ngStyle]=\"{maxWidth:column.maxWidth?(column.maxWidth+(column.maxWidthUnit || 'px')):null,minWidth:column.minWidth?(column.minWidth+(column.minWidthUnit || 'px')):null,width:column.width?(column.width+(column.widthUnit || 'px')):null}\" [attr.gt-xs]=\"column.showGtXs\" [attr.gt-sm]=\"column.showGtSm\" [attr.gt-md]=\"column.showGtMd\" [attr.gt-lg]=\"column.showGtLg\" [attr.gt-xl]=\"column.showGtXl\" [attr.gt-xxl]=\"column.showGtXxl\"></th>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Details column -->\r\n\t<ng-container cdkColumnDef=\"expandedDetail\">\r\n\t\t<td mat-cell *matCellDef=\"let row\" [attr.colspan]=\"displayedColumns.length\">\r\n\t\t\t<div class=\"row-detail\" [@detailExpand]=\"row == expandedRow ? 'expanded' : 'collapsed'\" #detailsTemplate></div>\r\n\t\t</td>\r\n\t</ng-container>\r\n\t<!-- #endregion -->\r\n\r\n\t<ng-container *ngIf=\"filterable\">\r\n\t\t<tr mat-header-row *cdkHeaderRowDef=\"displayedFilterColumns\"></tr>\r\n\t</ng-container>\r\n\t<tr mat-header-row *cdkHeaderRowDef=\"displayedColumns; sticky: stickyFilter\"></tr>\r\n\t<tr mat-row *cdkRowDef=\"let row; columns: displayedColumns; let index = dataIndex\" [ngClass]=\"rowNgClass?rowNgClass(row):null\" [class.expanded-row]=\"expandedRow === row\" (click)=\"handleRowClick(index, row)\" (contextmenu)=\"handleRowRightClick($event, row)\"></tr>\r\n\t<ng-container *ngIf=\"detailsTemplate\">\r\n\t\t<tr mat-row *cdkRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\" [ngClass]=\"rowNgClass?rowNgClass(row):null\"></tr>\r\n\t</ng-container>\r\n</table>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Row shown when there is no matching data.-->\r\n<div class=\"mat-cell pad tc-grey-700 bgc-grey-200 txt-italic\" *ngIf=\"!dataSource.filteredData?.length && !dataSource.total\" i18n=\"@@noResultsFound\">No results were found.</div>\r\n<!-- #endregion -->\r\n\r\n<mat-paginator *ngIf=\"paginable\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\"></mat-paginator>", styles: ["::ng-deep .mat-table .mat-row .mat-cell .mat-form-field .mat-form-field-wrapper{width:100%}@media (max-width: 389px){::ng-deep .mat-table [gt-xs]{display:none}::ng-deep .mat-table [gt-sm]{display:none}::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 599px){::ng-deep .mat-table [gt-sm]{display:none}::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 959px){::ng-deep .mat-table [gt-md]{display:none}::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1279px){::ng-deep .mat-table [gt-lg]{display:none}::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1919px){::ng-deep .mat-table [gt-xl]{display:none}::ng-deep .mat-table [gt-xxl]{display:none}}@media (max-width: 1979px){::ng-deep .mat-table [gt-xxl]{display:none}}\n"] }]
4279
4279
  }], ctorParameters: function () { return [{ type: DynamicBuilder }]; }, propDecorators: { table: [{
4280
4280
  type: ViewChild,
4281
4281
  args: ['table']
@@ -4322,7 +4322,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
4322
4322
  args: [MatPaginator]
4323
4323
  }], columns: [{
4324
4324
  type: Input
4325
- }], actionMenus: [{
4325
+ }], rowMenuItems: [{
4326
4326
  type: Input
4327
4327
  }], excludedColumns: [{
4328
4328
  type: Input
@@ -4412,11 +4412,11 @@ class GenericListComponent extends BaseComponent {
4412
4412
  /**
4413
4413
  * Toolbar menu items
4414
4414
  */
4415
- this.toolbarMenus = [];
4415
+ this.toolbarMenuItems = [];
4416
4416
  /**
4417
4417
  * Table row menu items
4418
4418
  */
4419
- this.actionMenus = [];
4419
+ this.rowMenuItems = [];
4420
4420
  }
4421
4421
  /**
4422
4422
  * Lifecycle hook that is called after data-bound properties
@@ -4483,8 +4483,8 @@ class GenericListComponent extends BaseComponent {
4483
4483
  var actionColmun = this.columns?.find(x => x.name == 'action');
4484
4484
  /* If so, just add the menu items to it */
4485
4485
  if (actionColmun != null) {
4486
- actionColmun.actionMenus = actionColmun.actionMenus || [];
4487
- this.actionMenus.forEach(y => actionColmun.actionMenus.unshift(y));
4486
+ actionColmun.rowMenuItems = actionColmun.rowMenuItems || [];
4487
+ this.rowMenuItems.forEach(y => actionColmun.rowMenuItems.unshift(y));
4488
4488
  }
4489
4489
  /* Otherwise add a new one */
4490
4490
  else {
@@ -4493,7 +4493,7 @@ class GenericListComponent extends BaseComponent {
4493
4493
  name: 'action',
4494
4494
  type: TableColumnType.Action,
4495
4495
  disabled: true,
4496
- actionMenus: this.actionMenus
4496
+ rowMenuItems: this.rowMenuItems
4497
4497
  }));
4498
4498
  }
4499
4499
  }
@@ -4697,7 +4697,7 @@ class GenericListComponent extends BaseComponent {
4697
4697
  addToolbarMenuItems() {
4698
4698
  /* Add 'Delete selected' menu item */
4699
4699
  if (this.deletable) {
4700
- this.toolbarMenus.push({
4700
+ this.toolbarMenuItems.push({
4701
4701
  title: $localize `:@@deleteSelected:Delete selected`,
4702
4702
  icon: 'delete_forever',
4703
4703
  iconClass: 'tc-orange-800',
@@ -4721,7 +4721,7 @@ class GenericListComponent extends BaseComponent {
4721
4721
  }
4722
4722
  /* Add duplicate menu */
4723
4723
  if (this.duplicable) {
4724
- this.actionMenus.unshift({
4724
+ this.rowMenuItems.unshift({
4725
4725
  title: $localize `:@@duplicate:Duplicate`,
4726
4726
  icon: 'file_copy',
4727
4727
  event: (row) => this.duplicate(row),
@@ -4730,7 +4730,7 @@ class GenericListComponent extends BaseComponent {
4730
4730
  }
4731
4731
  /* Add download menu */
4732
4732
  if (this.downloadable) {
4733
- this.actionMenus.unshift({
4733
+ this.rowMenuItems.unshift({
4734
4734
  title: $localize `:@@download:Download`,
4735
4735
  icon: 'file_download',
4736
4736
  event: (row) => this.download(row),
@@ -4739,7 +4739,7 @@ class GenericListComponent extends BaseComponent {
4739
4739
  }
4740
4740
  /* Add delete menu */
4741
4741
  if (this.deletable) {
4742
- this.actionMenus.unshift({
4742
+ this.rowMenuItems.unshift({
4743
4743
  title: $localize `:@@delete:Delete`,
4744
4744
  icon: 'delete_forever',
4745
4745
  iconClass: 'tc-orange-800',
@@ -4749,7 +4749,7 @@ class GenericListComponent extends BaseComponent {
4749
4749
  }
4750
4750
  /* Add edit menu */
4751
4751
  if (this.editable) {
4752
- this.actionMenus.unshift({
4752
+ this.rowMenuItems.unshift({
4753
4753
  title: $localize `:@@edit:Edit`,
4754
4754
  icon: 'edit_note',
4755
4755
  iconClass: 'tc-blue-400',
@@ -12550,7 +12550,7 @@ class VdChipsComponent extends AbstractMatFormField {
12550
12550
  /** @nocollapse */ /** @nocollapse */ VdChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdChipsComponent, deps: [{ token: i0.Injector }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2$1.ErrorStateMatcher }, { token: i3$2.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
12551
12551
  /** @nocollapse */ /** @nocollapse */ VdChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdChipsComponent, selector: "vd-chips", inputs: { chips: "chips", endpoint: "endpoint", params: "params", projection: "projection", path: "path", key: "key", searchField: "searchField", searchFields: "searchFields", termMinlength: "termMinlength", limit: "limit", debounce: "debounce", default: "default" }, outputs: { initSelect: "initSelect", selected: "selected", cleared: "cleared", onLaunch: "launch", chipFocus: "chipFocus" }, providers: [
12552
12552
  { provide: MatFormFieldControl, useExisting: VdChipsComponent }
12553
- ], queries: [{ propertyName: "chipTemplate", first: true, predicate: VdChipDirective, descendants: true }, { propertyName: "autocompleteOptionTemplate", first: true, predicate: VdAutocompleteOptionDirective, descendants: true }], viewQueries: [{ propertyName: "chipInput", first: true, predicate: MatInput, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-chip-list #chipList [required]=\"required\" [disabled]=\"readonly\">\r\n\t<!-- #region Chips -->\r\n\t<ng-template let-chip let-first=\"first\" let-index=\"index\" ngFor [ngForOf]=\"chips\">\r\n\t\t<mat-basic-chip [selectable]=\"!readonly\" [removable]=\"!readonly\" (removed)=\"cleared.observers.length?cleared.emit(value):clear()\" disableRipple>\r\n\t\t\t<span class=\"vd-chip-content\">\r\n\t\t\t\t<span *ngIf=\"!chipTemplate?.templateRef\">\r\n\t\t\t\t\t<span *ngIf=\"!autocompleteOptionTemplate?.templateRef\">{{ chip }}</span>\r\n\t\t\t\t\t<ng-template *ngIf=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: chip }\"></ng-template>\r\n\t\t\t\t</span>\r\n\t\t\t\t<ng-template *ngIf=\"chipTemplate?.templateRef\" [ngTemplateOutlet]=\"chipTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ chip: chip }\"></ng-template>\r\n\t\t\t</span>\r\n\t\t\t<mat-icon *ngIf=\"onLaunch?.observers?.length > 0\" class=\"vd-chip-launch\" [ngClass]=\"{'removable': !readonly}\" (click)=\"$event.stopPropagation(); handleLaunchClicked()\">launch</mat-icon>\r\n\t\t\t<mat-icon matChipRemove *ngIf=\"!readonly\">backspace</mat-icon>\r\n\t\t</mat-basic-chip>\r\n\t</ng-template>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Search box -->\r\n\t<input matInput [hidden]=\"value && !empty\" placeholder=\"{{placeholder}}\" [readonly]=\"readonly\" [matChipInputFor]=\"chipList\" [matAutocomplete]=\"auto\" [formControl]=\"autoCompleteChipList\" #chipInput />\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Progress -->\r\n\t<mat-spinner diameter=\"18\" *ngIf=\"loading\"></mat-spinner>\r\n\t<!-- #endregion -->\r\n</mat-chip-list>\r\n\r\n<!-- #region Autocomplete -->\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"addChip($event, chipInput)\">\r\n\t<ng-template let-item let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n\t\t<mat-option [value]=\"item\">\r\n\t\t\t<span *ngIf=\"!autocompleteOptionTemplate?.templateRef\">{{ item }}</span>\r\n\t\t\t<ng-template *ngIf=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: item }\"></ng-template>\r\n\t\t</mat-option>\r\n\t</ng-template>\r\n</mat-autocomplete>\r\n<!-- #endregion -->", styles: [".mat-chip{display:flex;flex-direction:row;width:100%;padding:4px 5px}.mat-chip.mat-chip-disabled{color:#000000a3}.mat-chip .vd-chip-content{flex-grow:1!important;font-weight:initial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-chip .mat-icon{cursor:pointer;color:initial;top:calc(50% - 13px);position:absolute;right:8px}.mat-chip .vd-chip-launch{font-size:18px;position:absolute;right:4px;top:0;cursor:pointer}.mat-chip .vd-chip-launch.removable{right:34px}mat-spinner{margin-top:-9px;margin-right:6px}\n"], components: [{ type: i4$4.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i7$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$4.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4$4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i7$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
12553
+ ], queries: [{ propertyName: "chipTemplate", first: true, predicate: VdChipDirective, descendants: true }, { propertyName: "autocompleteOptionTemplate", first: true, predicate: VdAutocompleteOptionDirective, descendants: true }], viewQueries: [{ propertyName: "chipInput", first: true, predicate: MatInput, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-chip-list #chipList [required]=\"required\" [disabled]=\"readonly\">\r\n\t<!-- #region Chips -->\r\n\t<ng-template let-chip let-first=\"first\" let-index=\"index\" ngFor [ngForOf]=\"chips\">\r\n\t\t<mat-basic-chip [selectable]=\"!readonly\" [removable]=\"!readonly\" (removed)=\"cleared.observers.length?cleared.emit(value):clear()\" disableRipple>\r\n\t\t\t<span class=\"vd-chip-content\">\r\n\t\t\t\t<span *ngIf=\"!chipTemplate?.templateRef\">\r\n\t\t\t\t\t<span *ngIf=\"!autocompleteOptionTemplate?.templateRef\">{{ chip }}</span>\r\n\t\t\t\t\t<ng-template *ngIf=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: chip }\"></ng-template>\r\n\t\t\t\t</span>\r\n\t\t\t\t<ng-template *ngIf=\"chipTemplate?.templateRef\" [ngTemplateOutlet]=\"chipTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ chip: chip }\"></ng-template>\r\n\t\t\t</span>\r\n\t\t\t<mat-icon *ngIf=\"onLaunch?.observers?.length > 0\" class=\"vd-chip-launch\" [ngClass]=\"{'removable': !readonly}\" (click)=\"$event.stopPropagation(); handleLaunchClicked()\">launch</mat-icon>\r\n\t\t\t<mat-icon matChipRemove *ngIf=\"!readonly\">backspace</mat-icon>\r\n\t\t</mat-basic-chip>\r\n\t</ng-template>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Search box -->\r\n\t<input matInput [hidden]=\"value && !empty\" placeholder=\"{{placeholder}}\" [readonly]=\"readonly\" [matChipInputFor]=\"chipList\" [matAutocomplete]=\"auto\" [formControl]=\"autoCompleteChipList\" #chipInput />\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Progress -->\r\n\t<mat-spinner diameter=\"18\" *ngIf=\"loading\"></mat-spinner>\r\n\t<!-- #endregion -->\r\n</mat-chip-list>\r\n\r\n<!-- #region Autocomplete -->\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"addChip($event, chipInput)\">\r\n\t<ng-template let-item let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n\t\t<mat-option [value]=\"item\">\r\n\t\t\t<span *ngIf=\"!autocompleteOptionTemplate?.templateRef\">{{ item }}</span>\r\n\t\t\t<ng-template *ngIf=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: item }\"></ng-template>\r\n\t\t</mat-option>\r\n\t</ng-template>\r\n</mat-autocomplete>\r\n<!-- #endregion -->", styles: [".mat-chip{display:flex;flex-direction:row;width:100%;padding:4px 5px}.mat-chip.mat-chip-disabled{color:#000000a3}.mat-chip .vd-chip-content{flex-grow:1!important;font-weight:initial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-chip .mat-icon{cursor:pointer;color:initial;top:calc(50% - 13px);position:absolute;right:8px}.mat-chip .vd-chip-launch{font-size:18px;position:absolute;right:4px;top:0;cursor:pointer}.mat-chip .vd-chip-launch.removable{right:34px}mat-spinner{margin-top:-9px;margin-right:6px}\n"], components: [{ type: i4$3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i7$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$3.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4$3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i7$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
12554
12554
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdChipsComponent, decorators: [{
12555
12555
  type: Component,
12556
12556
  args: [{ selector: 'vd-chips', providers: [
@@ -12980,7 +12980,7 @@ class VdFileInputComponent {
12980
12980
  <mat-icon>close</mat-icon>
12981
12981
  </button>
12982
12982
  </div>
12983
- </div>`, isInline: true, styles: [".btn-suffix .mat-button{position:absolute;right:0;top:0}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }] });
12983
+ </div>`, isInline: true, styles: [".btn-suffix .mat-button{position:absolute;right:0;top:0}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }] });
12984
12984
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdFileInputComponent, decorators: [{
12985
12985
  type: Component,
12986
12986
  args: [{
@@ -13408,7 +13408,7 @@ class VdSelectComponent extends AbstractMatFormField {
13408
13408
  }
13409
13409
  }
13410
13410
  /** @nocollapse */ /** @nocollapse */ VdSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdSelectComponent, deps: [{ token: i0.Injector }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2$1.ErrorStateMatcher }, { token: i3$2.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
13411
- /** @nocollapse */ /** @nocollapse */ VdSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdSelectComponent, selector: "vd-select", inputs: { multiple: "multiple", disabled: "disabled", sorted: "sorted", textPrefix: "textPrefix", endpoint: "endpoint", params: "params", projection: "projection", enum: "enum", key: "key", text: "text", prefix: "prefix", options: "options", filteredOptions: "filteredOptions", filterable: "filterable", cache: "cache", sortBy: "sortBy", searchField: "searchField" }, outputs: { onValueChange: "change", onItemChange: "itemChange", onSelected: "selected", onItemSelected: "itemSelected", onLaunch: "launch" }, providers: [{ provide: MatFormFieldControl, useExisting: VdSelectComponent }], queries: [{ propertyName: "optionTemplate", first: true, predicate: VdSelectOptionDirective, descendants: true }], viewQueries: [{ propertyName: "selectEl", first: true, predicate: MatSelect, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-select [placeholder]=\"placeholder\" i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelect\" (selectionChange)=\"handleChange($event)\" *ngIf=\"!readonly\" [multiple]=\"multiple\" [disabled]=\"disabled\" flex>\r\n <input #filterInput *ngIf=\"filterable\" type=\"text\" placeholder=\"Filter...\" class=\"vd-select-filter\" (keyup)=\"handleFilter($event.target.value)\">\r\n <mat-select-trigger *ngIf=\"onLaunch?.observers?.length > 0\">\r\n <span>{{select.selected?select.selected['viewValue']:''}}</span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"option[key]\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[text], select, option {option} other {{{option[text]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n</mat-select>\r\n\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\">\r\n <span *ngIf=\"!multiple\" i18n=\"@@selection\">{currentValue[text], select, option {option} other {{{currentValue[text]}}}}</span>\r\n <ng-container *ngIf=\"multiple\">\r\n <span *ngFor=\"let optionValue of currentValue; let last = last\">\r\n <span i18n=\"@@selection\">{optionValue[text], select, option {option} other {{{optionValue[text]}}}}</span>\r\n <span *ngIf=\"!last\">,&nbsp;</span>\r\n </span>\r\n </ng-container>\r\n </span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: currentValue }\"></ng-template>\r\n </div>\r\n <mat-icon *ngIf=\"onLaunch?.observers?.length > 0\" class=\"vd-select-launch-readonly\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </div>\r\n <div *ngIf=\"!currentValue\">&nbsp;</div>\r\n</div>", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;color:#000000a3;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0px;top:9px;font-size:18px;cursor:pointer}.vd-select-filter{position:sticky;top:0;z-index:100;font-size:inherit;box-shadow:none;border-radius:0;padding:16px;box-sizing:border-box;border:none;border-bottom:1px solid #dcdcdc;width:100%;background-color:#f5f5f5;outline:none}\n"], components: [{ type: i4$2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4$2.MatSelectTrigger, selector: "mat-select-trigger" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
13411
+ /** @nocollapse */ /** @nocollapse */ VdSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdSelectComponent, selector: "vd-select", inputs: { multiple: "multiple", disabled: "disabled", sorted: "sorted", textPrefix: "textPrefix", endpoint: "endpoint", params: "params", projection: "projection", enum: "enum", key: "key", text: "text", prefix: "prefix", options: "options", filteredOptions: "filteredOptions", filterable: "filterable", cache: "cache", sortBy: "sortBy", searchField: "searchField" }, outputs: { onValueChange: "change", onItemChange: "itemChange", onSelected: "selected", onItemSelected: "itemSelected", onLaunch: "launch" }, providers: [{ provide: MatFormFieldControl, useExisting: VdSelectComponent }], queries: [{ propertyName: "optionTemplate", first: true, predicate: VdSelectOptionDirective, descendants: true }], viewQueries: [{ propertyName: "selectEl", first: true, predicate: MatSelect, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-select [placeholder]=\"placeholder\" i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelect\" (selectionChange)=\"handleChange($event)\" *ngIf=\"!readonly\" [multiple]=\"multiple\" [disabled]=\"disabled\" flex>\r\n <input #filterInput *ngIf=\"filterable\" type=\"text\" placeholder=\"Filter...\" class=\"vd-select-filter\" (keyup)=\"handleFilter($event.target.value)\">\r\n <mat-select-trigger *ngIf=\"onLaunch?.observers?.length > 0\">\r\n <span>{{select.selected?select.selected['viewValue']:''}}</span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"option[key]\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[text], select, option {option} other {{{option[text]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n</mat-select>\r\n\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\">\r\n <span *ngIf=\"!multiple\" i18n=\"@@selection\">{currentValue[text], select, option {option} other {{{currentValue[text]}}}}</span>\r\n <ng-container *ngIf=\"multiple\">\r\n <span *ngFor=\"let optionValue of currentValue; let last = last\">\r\n <span i18n=\"@@selection\">{optionValue[text], select, option {option} other {{{optionValue[text]}}}}</span>\r\n <span *ngIf=\"!last\">,&nbsp;</span>\r\n </span>\r\n </ng-container>\r\n </span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: currentValue }\"></ng-template>\r\n </div>\r\n <mat-icon *ngIf=\"onLaunch?.observers?.length > 0\" class=\"vd-select-launch-readonly\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </div>\r\n <div *ngIf=\"!currentValue\">&nbsp;</div>\r\n</div>", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;color:#000000a3;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0px;top:9px;font-size:18px;cursor:pointer}.vd-select-filter{position:sticky;top:0;z-index:100;font-size:inherit;box-shadow:none;border-radius:0;padding:16px;box-sizing:border-box;border:none;border-bottom:1px solid #dcdcdc;width:100%;background-color:#f5f5f5;outline:none}\n"], components: [{ type: i4$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4$1.MatSelectTrigger, selector: "mat-select-trigger" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
13412
13412
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdSelectComponent, decorators: [{
13413
13413
  type: Component,
13414
13414
  args: [{ selector: 'vd-select', providers: [{ provide: MatFormFieldControl, useExisting: VdSelectComponent }], template: "<mat-select [placeholder]=\"placeholder\" i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelect\" (selectionChange)=\"handleChange($event)\" *ngIf=\"!readonly\" [multiple]=\"multiple\" [disabled]=\"disabled\" flex>\r\n <input #filterInput *ngIf=\"filterable\" type=\"text\" placeholder=\"Filter...\" class=\"vd-select-filter\" (keyup)=\"handleFilter($event.target.value)\">\r\n <mat-select-trigger *ngIf=\"onLaunch?.observers?.length > 0\">\r\n <span>{{select.selected?select.selected['viewValue']:''}}</span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"option[key]\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[text], select, option {option} other {{{option[text]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n</mat-select>\r\n\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\">\r\n <span *ngIf=\"!multiple\" i18n=\"@@selection\">{currentValue[text], select, option {option} other {{{currentValue[text]}}}}</span>\r\n <ng-container *ngIf=\"multiple\">\r\n <span *ngFor=\"let optionValue of currentValue; let last = last\">\r\n <span i18n=\"@@selection\">{optionValue[text], select, option {option} other {{{optionValue[text]}}}}</span>\r\n <span *ngIf=\"!last\">,&nbsp;</span>\r\n </span>\r\n </ng-container>\r\n </span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: currentValue }\"></ng-template>\r\n </div>\r\n <mat-icon *ngIf=\"onLaunch?.observers?.length > 0\" class=\"vd-select-launch-readonly\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </div>\r\n <div *ngIf=\"!currentValue\">&nbsp;</div>\r\n</div>", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;color:#000000a3;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0px;top:9px;font-size:18px;cursor:pointer}.vd-select-filter{position:sticky;top:0;z-index:100;font-size:inherit;box-shadow:none;border-radius:0;padding:16px;box-sizing:border-box;border:none;border-bottom:1px solid #dcdcdc;width:100%;background-color:#f5f5f5;outline:none}\n"] }]
@@ -13598,7 +13598,7 @@ class VdGenericFormComponent {
13598
13598
  }
13599
13599
  }
13600
13600
  /** @nocollapse */ /** @nocollapse */ VdGenericFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdGenericFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13601
- /** @nocollapse */ /** @nocollapse */ VdGenericFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: { formGroup: "formGroup", fieldGroups: "fieldGroups", groupName: "groupName" }, queries: [{ propertyName: "editorTemplate", first: true, predicate: VdEditorDirective, descendants: true }, { propertyName: "codeTemplate", first: true, predicate: VdCodeDirective, descendants: true }, { propertyName: "fileTemplate", first: true, predicate: VdFileDirective, descendants: true }, { propertyName: "customTemplate", first: true, predicate: VdCustomDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"formGroup && fieldRows\" [formGroup]=\"formGroup\">\r\n <!-- #region Fields -->\r\n <div layout-gt-sm=\"row\" layout=\"column\" *ngFor=\"let fields of fieldRows\">\r\n <ng-container *ngFor=\"let field of fields\" [ngSwitch]=\"field.type\">\r\n <!-- #region Error handling -->\r\n <ng-template #fieldErrors>\r\n <div *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</div>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Text input -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Text\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input [type]=\"field.inputType\" [minlength]=\"field.minLength||null\" [maxlength]=\"field.maxLength||null\" matInput [formControlName]=\"field.name\">\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Text area -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.TextArea\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <textarea matInput [formControlName]=\"field.name\" rows=\"field.rows||2\"></textarea>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Enum -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Enum\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-select [formControlName]=\"field.name\" [enum]=\"field.enumType\" [key]=\"field.optionValue\" [text]=\"field.optionText\" [multiple]=\"field.multiple\" flex></vd-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdSelect -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdSelect\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-select [formControlName]=\"field.name\" [endpoint]=\"field.endpoint\" [projection]=\"field.projection\" [key]=\"field.optionValue\" [text]=\"field.optionText\" [multiple]=\"field.multiple\" flex></vd-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdChips -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdChips\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-chips #vdChip [formControlName]=\"field.name\" [endpoint]=\"field.endpoint\" [searchField]=\"field.searchField\" [projection]=\"field.projection\" [key]=\"field.optionValue\" flex>\r\n <ng-template vd-chip let-chip=\"chip\" *ngIf=\"field.chipTemplate\">\r\n <div [outerHTML]=\"field.chipTemplate(chip)\"></div>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-option=\"option\" *ngIf=\"field.autocompleteTemplate\">\r\n <div [outerHTML]=\"field.autocompleteTemplate(option)\"></div>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-hint *ngIf=\"vdChip.emptyResult\" class=\"tc-red-400\" i18n=\"@@noResultsFound\">No results found</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Select -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Select\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <mat-select [formControlName]=\"field.name\" [multiple]=\"field.multiple\" flex>\r\n <mat-option *ngFor=\"let option of field.options\" [value]=\"option.id\">{{option.name}}</mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Autocomplete -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Autocomplete\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input type=\"text\" matInput [formControlName]=\"field.name\" [matAutocomplete]=\"auto\" autocomplete=\"false\">\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of autocompleteFilteredOptions[field.name]\" [value]=\"option.id\">\r\n {{option.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Date -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Date\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input matInput [formControlName]=\"field.name\" autocomplete=\"off\" [matDatepicker]=\"datePicker\">\r\n <mat-datepicker-toggle matSuffix [for]=\"datePicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #datePicker></mat-datepicker>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Checkbox -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <div *ngSwitchCase=\"FormFieldType.Checkbox\" layout-margin appearance=\"outline\" class=\"pad-bottom-xs\">\r\n <mat-checkbox [formControlName]=\"field.name\">{{field.header}}</mat-checkbox>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Editor -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Editor\">\r\n <ng-template *ngIf=\"editorTemplate?.templateRef\" [ngTemplateOutlet]=\"editorTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Code -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Code\">\r\n <ng-template *ngIf=\"codeTemplate?.templateRef\" [ngTemplateOutlet]=\"codeTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region File -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.File\">\r\n <ng-template *ngIf=\"fileTemplate?.templateRef\" [ngTemplateOutlet]=\"fileTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Custom\">\r\n <ng-template *ngIf=\"customTemplate?.templateRef\" [ngTemplateOutlet]=\"customTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n</div>", styles: [""], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { type: VdChipsComponent, selector: "vd-chips", inputs: ["chips", "endpoint", "params", "projection", "path", "key", "searchField", "searchFields", "termMinlength", "limit", "debounce", "default"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { type: i4$2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i7$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i7$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { type: i1$3.MatLabel, selector: "mat-label" }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1$3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i1$3.MatError, selector: "mat-error", inputs: ["id"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: VdChipDirective, selector: "[vd-chip]ng-template" }, { type: VdAutocompleteOptionDirective, selector: "[vd-autocomplete-option]ng-template" }, { type: i7$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i7$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }] });
13601
+ /** @nocollapse */ /** @nocollapse */ VdGenericFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: { formGroup: "formGroup", fieldGroups: "fieldGroups", groupName: "groupName" }, queries: [{ propertyName: "editorTemplate", first: true, predicate: VdEditorDirective, descendants: true }, { propertyName: "codeTemplate", first: true, predicate: VdCodeDirective, descendants: true }, { propertyName: "fileTemplate", first: true, predicate: VdFileDirective, descendants: true }, { propertyName: "customTemplate", first: true, predicate: VdCustomDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"formGroup && fieldRows\" [formGroup]=\"formGroup\">\r\n <!-- #region Fields -->\r\n <div layout-gt-sm=\"row\" layout=\"column\" *ngFor=\"let fields of fieldRows\">\r\n <ng-container *ngFor=\"let field of fields\" [ngSwitch]=\"field.type\">\r\n <!-- #region Error handling -->\r\n <ng-template #fieldErrors>\r\n <div *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</div>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Text input -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Text\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input [type]=\"field.inputType\" [minlength]=\"field.minLength||null\" [maxlength]=\"field.maxLength||null\" matInput [formControlName]=\"field.name\">\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Text area -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.TextArea\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <textarea matInput [formControlName]=\"field.name\" rows=\"field.rows||2\"></textarea>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Enum -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Enum\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-select [formControlName]=\"field.name\" [enum]=\"field.enumType\" [key]=\"field.optionValue\" [text]=\"field.optionText\" [multiple]=\"field.multiple\" flex></vd-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdSelect -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdSelect\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-select [formControlName]=\"field.name\" [endpoint]=\"field.endpoint\" [projection]=\"field.projection\" [key]=\"field.optionValue\" [text]=\"field.optionText\" [multiple]=\"field.multiple\" flex></vd-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdChips -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdChips\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-chips #vdChip [formControlName]=\"field.name\" [endpoint]=\"field.endpoint\" [searchField]=\"field.searchField\" [projection]=\"field.projection\" [key]=\"field.optionValue\" flex>\r\n <ng-template vd-chip let-chip=\"chip\" *ngIf=\"field.chipTemplate\">\r\n <div [outerHTML]=\"field.chipTemplate(chip)\"></div>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-option=\"option\" *ngIf=\"field.autocompleteTemplate\">\r\n <div [outerHTML]=\"field.autocompleteTemplate(option)\"></div>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-hint *ngIf=\"vdChip.emptyResult\" class=\"tc-red-400\" i18n=\"@@noResultsFound\">No results found</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Select -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Select\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <mat-select [formControlName]=\"field.name\" [multiple]=\"field.multiple\" flex>\r\n <mat-option *ngFor=\"let option of field.options\" [value]=\"option.id\">{{option.name}}</mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Autocomplete -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Autocomplete\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input type=\"text\" matInput [formControlName]=\"field.name\" [matAutocomplete]=\"auto\" autocomplete=\"false\">\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of autocompleteFilteredOptions[field.name]\" [value]=\"option.id\">\r\n {{option.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Date -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Date\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input matInput [formControlName]=\"field.name\" autocomplete=\"off\" [matDatepicker]=\"datePicker\">\r\n <mat-datepicker-toggle matSuffix [for]=\"datePicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #datePicker></mat-datepicker>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Checkbox -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <div *ngSwitchCase=\"FormFieldType.Checkbox\" layout-margin appearance=\"outline\" class=\"pad-bottom-xs\">\r\n <mat-checkbox [formControlName]=\"field.name\">{{field.header}}</mat-checkbox>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Editor -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Editor\">\r\n <ng-template *ngIf=\"editorTemplate?.templateRef\" [ngTemplateOutlet]=\"editorTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Code -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Code\">\r\n <ng-template *ngIf=\"codeTemplate?.templateRef\" [ngTemplateOutlet]=\"codeTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region File -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.File\">\r\n <ng-template *ngIf=\"fileTemplate?.templateRef\" [ngTemplateOutlet]=\"fileTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Custom\">\r\n <ng-template *ngIf=\"customTemplate?.templateRef\" [ngTemplateOutlet]=\"customTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n</div>", styles: [""], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { type: VdChipsComponent, selector: "vd-chips", inputs: ["chips", "endpoint", "params", "projection", "path", "key", "searchField", "searchFields", "termMinlength", "limit", "debounce", "default"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { type: i4$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i7$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i7$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i4$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { type: i1$3.MatLabel, selector: "mat-label" }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1$3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i1$3.MatError, selector: "mat-error", inputs: ["id"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: VdChipDirective, selector: "[vd-chip]ng-template" }, { type: VdAutocompleteOptionDirective, selector: "[vd-autocomplete-option]ng-template" }, { type: i7$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i7$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }] });
13602
13602
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdGenericFormComponent, decorators: [{
13603
13603
  type: Component,
13604
13604
  args: [{ selector: 'vd-generic-form', template: "<div *ngIf=\"formGroup && fieldRows\" [formGroup]=\"formGroup\">\r\n <!-- #region Fields -->\r\n <div layout-gt-sm=\"row\" layout=\"column\" *ngFor=\"let fields of fieldRows\">\r\n <ng-container *ngFor=\"let field of fields\" [ngSwitch]=\"field.type\">\r\n <!-- #region Error handling -->\r\n <ng-template #fieldErrors>\r\n <div *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</div>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Text input -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Text\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input [type]=\"field.inputType\" [minlength]=\"field.minLength||null\" [maxlength]=\"field.maxLength||null\" matInput [formControlName]=\"field.name\">\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Text area -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.TextArea\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <textarea matInput [formControlName]=\"field.name\" rows=\"field.rows||2\"></textarea>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Enum -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Enum\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-select [formControlName]=\"field.name\" [enum]=\"field.enumType\" [key]=\"field.optionValue\" [text]=\"field.optionText\" [multiple]=\"field.multiple\" flex></vd-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdSelect -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdSelect\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-select [formControlName]=\"field.name\" [endpoint]=\"field.endpoint\" [projection]=\"field.projection\" [key]=\"field.optionValue\" [text]=\"field.optionText\" [multiple]=\"field.multiple\" flex></vd-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdChips -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdChips\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <vd-chips #vdChip [formControlName]=\"field.name\" [endpoint]=\"field.endpoint\" [searchField]=\"field.searchField\" [projection]=\"field.projection\" [key]=\"field.optionValue\" flex>\r\n <ng-template vd-chip let-chip=\"chip\" *ngIf=\"field.chipTemplate\">\r\n <div [outerHTML]=\"field.chipTemplate(chip)\"></div>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-option=\"option\" *ngIf=\"field.autocompleteTemplate\">\r\n <div [outerHTML]=\"field.autocompleteTemplate(option)\"></div>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-hint *ngIf=\"vdChip.emptyResult\" class=\"tc-red-400\" i18n=\"@@noResultsFound\">No results found</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Select -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Select\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <mat-select [formControlName]=\"field.name\" [multiple]=\"field.multiple\" flex>\r\n <mat-option *ngFor=\"let option of field.options\" [value]=\"option.id\">{{option.name}}</mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Autocomplete -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Autocomplete\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input type=\"text\" matInput [formControlName]=\"field.name\" [matAutocomplete]=\"auto\" autocomplete=\"false\">\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of autocompleteFilteredOptions[field.name]\" [value]=\"option.id\">\r\n {{option.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Date -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Date\" [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <input matInput [formControlName]=\"field.name\" autocomplete=\"off\" [matDatepicker]=\"datePicker\">\r\n <mat-datepicker-toggle matSuffix [for]=\"datePicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #datePicker></mat-datepicker>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error>\r\n <ng-container *ngTemplateOutlet=\"fieldErrors\"></ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Checkbox -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <div *ngSwitchCase=\"FormFieldType.Checkbox\" layout-margin appearance=\"outline\" class=\"pad-bottom-xs\">\r\n <mat-checkbox [formControlName]=\"field.name\">{{field.header}}</mat-checkbox>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Editor -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Editor\">\r\n <ng-template *ngIf=\"editorTemplate?.templateRef\" [ngTemplateOutlet]=\"editorTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Code -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Code\">\r\n <ng-template *ngIf=\"codeTemplate?.templateRef\" [ngTemplateOutlet]=\"codeTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region File -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.File\">\r\n <ng-template *ngIf=\"fileTemplate?.templateRef\" [ngTemplateOutlet]=\"fileTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom -->\r\n <ng-container *ngIf=\"!field.hide || !field.hide(formGroup?.value)\">\r\n <ng-container *ngSwitchCase=\"FormFieldType.Custom\">\r\n <ng-template *ngIf=\"customTemplate?.templateRef\" [ngTemplateOutlet]=\"customTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ field: field, formGroup: formGroup }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n</div>", styles: [""] }]
@@ -14234,10 +14234,184 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
14234
14234
  }]
14235
14235
  }] });
14236
14236
 
14237
+ class VdMenuComponent {
14238
+ constructor() {
14239
+ /**
14240
+ * Menu items
14241
+ */
14242
+ this.items = [];
14243
+ /**
14244
+ * This will add the classes only when the url matches the link exactly.
14245
+ */
14246
+ this.activeExact = false;
14247
+ /**
14248
+ * click?: function
14249
+ * Event emitted when a menu item is clicked.
14250
+ */
14251
+ this.onClick = new EventEmitter();
14252
+ }
14253
+ /**
14254
+ * Event emitted when a meni item is clicked.
14255
+ */
14256
+ itemClicked($event) {
14257
+ if ($event instanceof EventEmitter) {
14258
+ $event.emit();
14259
+ }
14260
+ else {
14261
+ this.onClick.emit($event);
14262
+ }
14263
+ }
14264
+ }
14265
+ /** @nocollapse */ /** @nocollapse */ VdMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14266
+ /** @nocollapse */ /** @nocollapse */ VdMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdMenuComponent, selector: "vd-menu", inputs: { items: "items", activeExact: "activeExact", avatar: "avatar" }, outputs: { onClick: "click" }, ngImport: i0, template: "<mat-nav-list>\r\n\t<ng-template let-item let-last=\"last\" ngFor [ngForOf]=\"items\">\r\n\t\t<a mat-list-item *ngIf=\"item.enabled\" [routerLink]=\"item.path\" [routerLinkActive]=\"['active']\" [routerLinkActiveOptions]=\"{exact:item.activeExact}\" (click)=\"itemClicked(item.event?item.event:$event)\">\r\n\t\t\t<mat-icon *ngIf=\"!avatar\" mat-list-icon>{{item.icon}}</mat-icon>\r\n\t\t\t<span *ngIf=\"!avatar\">{{item.title}}</span>\r\n\t\t\t<mat-icon *ngIf=\"avatar\" matListAvatar>{{item.icon}}</mat-icon>\r\n\t\t\t<h3 *ngIf=\"avatar\" matLine>{{item.title}}</h3>\r\n\t\t\t<p *ngIf=\"avatar && item.description\" matLine> {{item.description}} </p>\r\n\t\t</a>\r\n\t\t<mat-divider *ngIf=\"item.divider && !avatar\"></mat-divider>\r\n\t\t<mat-divider [inset]=\"avatar\" *ngIf=\"!item.divider && avatar && !last\"></mat-divider>\r\n\t</ng-template>\r\n</mat-nav-list>", styles: [""], components: [{ type: i1$7.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i1$7.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1$4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i1$7.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { type: i1$7.MatListAvatarCssMatStyler, selector: "[mat-list-avatar], [matListAvatar]" }, { type: i2$1.MatLine, selector: "[mat-line], [matLine]" }] });
14267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuComponent, decorators: [{
14268
+ type: Component,
14269
+ args: [{ selector: 'vd-menu', template: "<mat-nav-list>\r\n\t<ng-template let-item let-last=\"last\" ngFor [ngForOf]=\"items\">\r\n\t\t<a mat-list-item *ngIf=\"item.enabled\" [routerLink]=\"item.path\" [routerLinkActive]=\"['active']\" [routerLinkActiveOptions]=\"{exact:item.activeExact}\" (click)=\"itemClicked(item.event?item.event:$event)\">\r\n\t\t\t<mat-icon *ngIf=\"!avatar\" mat-list-icon>{{item.icon}}</mat-icon>\r\n\t\t\t<span *ngIf=\"!avatar\">{{item.title}}</span>\r\n\t\t\t<mat-icon *ngIf=\"avatar\" matListAvatar>{{item.icon}}</mat-icon>\r\n\t\t\t<h3 *ngIf=\"avatar\" matLine>{{item.title}}</h3>\r\n\t\t\t<p *ngIf=\"avatar && item.description\" matLine> {{item.description}} </p>\r\n\t\t</a>\r\n\t\t<mat-divider *ngIf=\"item.divider && !avatar\"></mat-divider>\r\n\t\t<mat-divider [inset]=\"avatar\" *ngIf=\"!item.divider && avatar && !last\"></mat-divider>\r\n\t</ng-template>\r\n</mat-nav-list>", styles: [""] }]
14270
+ }], propDecorators: { items: [{
14271
+ type: Input
14272
+ }], activeExact: [{
14273
+ type: Input
14274
+ }], avatar: [{
14275
+ type: Input
14276
+ }], onClick: [{
14277
+ type: Output,
14278
+ args: ['click']
14279
+ }] } });
14280
+
14281
+ class MenuService extends GenericService {
14282
+ /**
14283
+ * Constructor
14284
+ * @param _http
14285
+ */
14286
+ constructor() {
14287
+ super('menu');
14288
+ }
14289
+ }
14290
+ /** @nocollapse */ /** @nocollapse */ MenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14291
+ /** @nocollapse */ /** @nocollapse */ MenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuService, providedIn: 'root' });
14292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuService, decorators: [{
14293
+ type: Injectable,
14294
+ args: [{ providedIn: 'root' }]
14295
+ }], ctorParameters: function () { return []; } });
14296
+
14297
+ var MenuScope;
14298
+ (function (MenuScope) {
14299
+ MenuScope[MenuScope["Site"] = 0] = "Site";
14300
+ MenuScope[MenuScope["Admin"] = 1] = "Admin";
14301
+ })(MenuScope || (MenuScope = {}));
14302
+
14303
+ class Menu {
14304
+ }
14305
+
14306
+ class MenuItem {
14307
+ }
14308
+
14309
+ class MenuItemService extends GenericService {
14310
+ /**
14311
+ * Constructor
14312
+ * @param _http
14313
+ */
14314
+ constructor() {
14315
+ super('menuitem');
14316
+ }
14317
+ }
14318
+ /** @nocollapse */ /** @nocollapse */ MenuItemService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuItemService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14319
+ /** @nocollapse */ /** @nocollapse */ MenuItemService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuItemService, providedIn: 'root' });
14320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuItemService, decorators: [{
14321
+ type: Injectable,
14322
+ args: [{ providedIn: 'root' }]
14323
+ }], ctorParameters: function () { return []; } });
14324
+
14325
+ /**
14326
+ * Menu resolve service
14327
+ */
14328
+ class MenuResolve {
14329
+ /**
14330
+ * Constructor
14331
+ * @param menuService
14332
+ */
14333
+ constructor(menuService) {
14334
+ this.menuService = menuService;
14335
+ }
14336
+ /**
14337
+ * Resolves menu items
14338
+ * @param route
14339
+ */
14340
+ resolve(route) {
14341
+ return this.menuService.getList(route.data || {}, null, { cache: 'yes' });
14342
+ }
14343
+ }
14344
+ /** @nocollapse */ /** @nocollapse */ MenuResolve.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuResolve, deps: [{ token: MenuService }], target: i0.ɵɵFactoryTarget.Injectable });
14345
+ /** @nocollapse */ /** @nocollapse */ MenuResolve.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuResolve });
14346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuResolve, decorators: [{
14347
+ type: Injectable
14348
+ }], ctorParameters: function () { return [{ type: MenuService }]; } });
14349
+ /**
14350
+ * Submenu resolve service
14351
+ */
14352
+ class SubMenuResolve {
14353
+ /**
14354
+ * Resolves menu items
14355
+ * @param route
14356
+ * @param state
14357
+ */
14358
+ resolve(route, state) {
14359
+ /* Check menu items in route data */
14360
+ if (route.parent.data.menu) {
14361
+ /* Get Admin menu */
14362
+ var adminMenu = route.parent.data.menu[0];
14363
+ if (adminMenu && adminMenu.items) {
14364
+ return adminMenu.items.filter(x => x.path == `/${route.url[0].path}`)[0];
14365
+ }
14366
+ }
14367
+ return [];
14368
+ }
14369
+ }
14370
+ /** @nocollapse */ /** @nocollapse */ SubMenuResolve.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SubMenuResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14371
+ /** @nocollapse */ /** @nocollapse */ SubMenuResolve.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SubMenuResolve });
14372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SubMenuResolve, decorators: [{
14373
+ type: Injectable
14374
+ }] });
14375
+
14376
+ const DECLARATIONS$2 = [
14377
+ VdMenuComponent
14378
+ ];
14379
+ class VdMenuModule {
14380
+ }
14381
+ /** @nocollapse */ /** @nocollapse */ VdMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14382
+ /** @nocollapse */ /** @nocollapse */ VdMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuModule, declarations: [VdMenuComponent], imports: [CommonModule,
14383
+ RouterModule,
14384
+ MatIconModule,
14385
+ MatListModule], exports: [VdMenuComponent] });
14386
+ /** @nocollapse */ /** @nocollapse */ VdMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuModule, providers: [MenuService], imports: [[
14387
+ CommonModule,
14388
+ RouterModule,
14389
+ MatIconModule,
14390
+ MatListModule
14391
+ ]] });
14392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuModule, decorators: [{
14393
+ type: NgModule,
14394
+ args: [{
14395
+ imports: [
14396
+ CommonModule,
14397
+ RouterModule,
14398
+ MatIconModule,
14399
+ MatListModule
14400
+ ],
14401
+ declarations: [
14402
+ DECLARATIONS$2
14403
+ ],
14404
+ exports: [
14405
+ DECLARATIONS$2
14406
+ ],
14407
+ providers: [MenuService]
14408
+ }]
14409
+ }] });
14410
+
14237
14411
  class VdFormToolbarMenuComponent {
14238
14412
  }
14239
14413
  /** @nocollapse */ /** @nocollapse */ VdFormToolbarMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdFormToolbarMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14240
- /** @nocollapse */ /** @nocollapse */ VdFormToolbarMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdFormToolbarMenuComponent, selector: "vd-form-toolbar-menu", inputs: { menuItems: "menuItems" }, ngImport: i0, template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button [mat-menu-trigger-for]=\"toolbarMenu\" *ngIf=\"menuItems?.length\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu x-position=\"before\" #toolbarMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuItem of menuItems\">\r\n <ng-container *ngIf=\"!menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event():null\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuItem.subItems\">\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event():null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide()\" [disabled]=\"menuSubItem.disable && menuSubItem.disable()\">\r\n <mat-icon fontSet=\"{{menuSubItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuSubItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuSubItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n <button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n</div>", components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
14414
+ /** @nocollapse */ /** @nocollapse */ VdFormToolbarMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdFormToolbarMenuComponent, selector: "vd-form-toolbar-menu", inputs: { menuItems: "menuItems" }, ngImport: i0, template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button [mat-menu-trigger-for]=\"toolbarMenu\" *ngIf=\"menuItems?.length\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu x-position=\"before\" #toolbarMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuItem of menuItems\">\r\n <ng-container *ngIf=\"!menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event():null\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuItem.subItems\">\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event():null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide()\" [disabled]=\"menuSubItem.disable && menuSubItem.disable()\">\r\n <mat-icon fontSet=\"{{menuSubItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuSubItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuSubItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n <button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n</div>", components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
14241
14415
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdFormToolbarMenuComponent, decorators: [{
14242
14416
  type: Component,
14243
14417
  args: [{ selector: 'vd-form-toolbar-menu', template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button [mat-menu-trigger-for]=\"toolbarMenu\" *ngIf=\"menuItems?.length\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu x-position=\"before\" #toolbarMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuItem of menuItems\">\r\n <ng-container *ngIf=\"!menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event():null\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuItem.subItems\">\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event():null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide()\" [disabled]=\"menuSubItem.disable && menuSubItem.disable()\">\r\n <mat-icon fontSet=\"{{menuSubItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuSubItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuSubItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n <button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n</div>" }]
@@ -14254,7 +14428,7 @@ class VdFormToolbarComponent {
14254
14428
  }
14255
14429
  }
14256
14430
  /** @nocollapse */ /** @nocollapse */ VdFormToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdFormToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14257
- /** @nocollapse */ /** @nocollapse */ VdFormToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdFormToolbarComponent, selector: "vd-form-toolbar", inputs: { subtitle: "subtitle", menuItems: "menuItems", loading: "loading" }, outputs: { reload: "reload" }, ngImport: i0, template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button *ngIf=\"reload?.observed\" (click)=\"reload.emit($event)\">\r\n <mat-icon *ngIf=\"!loading\">sync</mat-icon>\r\n <mat-progress-spinner *ngIf=\"loading\" color=\"accent\" class=\"mat-icon\" diameter=\"24\" mode=\"indeterminate\"> </mat-progress-spinner>\r\n </button>\r\n <vd-form-toolbar-menu [menuItems]=\"menuItems\"></vd-form-toolbar-menu>\r\n</div>", components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: VdFormToolbarMenuComponent, selector: "vd-form-toolbar-menu", inputs: ["menuItems"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14431
+ /** @nocollapse */ /** @nocollapse */ VdFormToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdFormToolbarComponent, selector: "vd-form-toolbar", inputs: { subtitle: "subtitle", menuItems: "menuItems", loading: "loading" }, outputs: { reload: "reload" }, ngImport: i0, template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button *ngIf=\"reload?.observed\" (click)=\"reload.emit($event)\">\r\n <mat-icon *ngIf=\"!loading\">sync</mat-icon>\r\n <mat-progress-spinner *ngIf=\"loading\" color=\"accent\" class=\"mat-icon\" diameter=\"24\" mode=\"indeterminate\"> </mat-progress-spinner>\r\n </button>\r\n <vd-form-toolbar-menu [menuItems]=\"menuItems\"></vd-form-toolbar-menu>\r\n</div>", components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: VdFormToolbarMenuComponent, selector: "vd-form-toolbar-menu", inputs: ["menuItems"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14258
14432
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdFormToolbarComponent, decorators: [{
14259
14433
  type: Component,
14260
14434
  args: [{ selector: 'vd-form-toolbar', template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button *ngIf=\"reload?.observed\" (click)=\"reload.emit($event)\">\r\n <mat-icon *ngIf=\"!loading\">sync</mat-icon>\r\n <mat-progress-spinner *ngIf=\"loading\" color=\"accent\" class=\"mat-icon\" diameter=\"24\" mode=\"indeterminate\"> </mat-progress-spinner>\r\n </button>\r\n <vd-form-toolbar-menu [menuItems]=\"menuItems\"></vd-form-toolbar-menu>\r\n</div>" }]
@@ -14287,7 +14461,7 @@ class VdLayoutCardOverComponent {
14287
14461
  }
14288
14462
  }
14289
14463
  /** @nocollapse */ /** @nocollapse */ VdLayoutCardOverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutCardOverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14290
- /** @nocollapse */ /** @nocollapse */ VdLayoutCardOverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: { cardTitle: "cardTitle", cardSubtitle: "cardSubtitle", cardWidth: "cardWidth", color: "color" }, ngImport: i0, template: "<mat-toolbar [color]=\"color\"></mat-toolbar>\r\n<div class=\"vd-layout-card-over-wrapper\">\r\n\t<div class=\"vd-layout-card-over\" [style.max-width.%]=\"cardWidth\" [style.flex]=\"'1 1 ' + cardWidth + '%'\" [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\"\r\n\t [style.-webkit-box-flex]=\"1\">\r\n\t\t<mat-card>\r\n\t\t\t<mat-card-title *ngIf=\"cardTitle\">{{cardTitle}}</mat-card-title>\r\n\t\t\t<mat-card-subtitle *ngIf=\"cardSubtitle\">{{cardSubtitle}}</mat-card-subtitle>\r\n\t\t\t<mat-divider *ngIf=\"cardTitle || cardSubtitle\"></mat-divider>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</mat-card>\r\n\t\t<ng-content select=\"[vd-after-card]\"></ng-content>\r\n\t</div>\r\n</div>", styles: [":host{position:relative;display:block;z-index:2;width:100%;min-height:100%;height:100%}:host [vd-after-card]{display:block}.vd-layout-card-over-wrapper{margin:-64px 0;width:100%;min-height:100%;height:100%}@media (min-width: 960px){.vd-layout-card-over-wrapper{flex-direction:row;box-sizing:border-box;display:flex;align-items:flex-start;align-content:flex-start;justify-content:center}.vd-layout-card-over-wrapper .vd-layout-card-over{max-height:100%;box-sizing:border-box}}@media (max-width: 959px){.vd-layout-card-over-wrapper .vd-layout-card-over{max-width:100%!important}}\n"], components: [{ type: i1$7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i2$4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3$3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i2$4.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }] });
14464
+ /** @nocollapse */ /** @nocollapse */ VdLayoutCardOverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: { cardTitle: "cardTitle", cardSubtitle: "cardSubtitle", cardWidth: "cardWidth", color: "color" }, ngImport: i0, template: "<mat-toolbar [color]=\"color\"></mat-toolbar>\r\n<div class=\"vd-layout-card-over-wrapper\">\r\n\t<div class=\"vd-layout-card-over\" [style.max-width.%]=\"cardWidth\" [style.flex]=\"'1 1 ' + cardWidth + '%'\" [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\"\r\n\t [style.-webkit-box-flex]=\"1\">\r\n\t\t<mat-card>\r\n\t\t\t<mat-card-title *ngIf=\"cardTitle\">{{cardTitle}}</mat-card-title>\r\n\t\t\t<mat-card-subtitle *ngIf=\"cardSubtitle\">{{cardSubtitle}}</mat-card-subtitle>\r\n\t\t\t<mat-divider *ngIf=\"cardTitle || cardSubtitle\"></mat-divider>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</mat-card>\r\n\t\t<ng-content select=\"[vd-after-card]\"></ng-content>\r\n\t</div>\r\n</div>", styles: [":host{position:relative;display:block;z-index:2;width:100%;min-height:100%;height:100%}:host [vd-after-card]{display:block}.vd-layout-card-over-wrapper{margin:-64px 0;width:100%;min-height:100%;height:100%}@media (min-width: 960px){.vd-layout-card-over-wrapper{flex-direction:row;box-sizing:border-box;display:flex;align-items:flex-start;align-content:flex-start;justify-content:center}.vd-layout-card-over-wrapper .vd-layout-card-over{max-height:100%;box-sizing:border-box}}@media (max-width: 959px){.vd-layout-card-over-wrapper .vd-layout-card-over{max-width:100%!important}}\n"], components: [{ type: i3$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i2$4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3$3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i2$4.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }] });
14291
14465
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutCardOverComponent, decorators: [{
14292
14466
  type: Component,
14293
14467
  args: [{ selector: 'vd-layout-card-over', template: "<mat-toolbar [color]=\"color\"></mat-toolbar>\r\n<div class=\"vd-layout-card-over-wrapper\">\r\n\t<div class=\"vd-layout-card-over\" [style.max-width.%]=\"cardWidth\" [style.flex]=\"'1 1 ' + cardWidth + '%'\" [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\"\r\n\t [style.-webkit-box-flex]=\"1\">\r\n\t\t<mat-card>\r\n\t\t\t<mat-card-title *ngIf=\"cardTitle\">{{cardTitle}}</mat-card-title>\r\n\t\t\t<mat-card-subtitle *ngIf=\"cardSubtitle\">{{cardSubtitle}}</mat-card-subtitle>\r\n\t\t\t<mat-divider *ngIf=\"cardTitle || cardSubtitle\"></mat-divider>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</mat-card>\r\n\t\t<ng-content select=\"[vd-after-card]\"></ng-content>\r\n\t</div>\r\n</div>", styles: [":host{position:relative;display:block;z-index:2;width:100%;min-height:100%;height:100%}:host [vd-after-card]{display:block}.vd-layout-card-over-wrapper{margin:-64px 0;width:100%;min-height:100%;height:100%}@media (min-width: 960px){.vd-layout-card-over-wrapper{flex-direction:row;box-sizing:border-box;display:flex;align-items:flex-start;align-content:flex-start;justify-content:center}.vd-layout-card-over-wrapper .vd-layout-card-over{max-height:100%;box-sizing:border-box}}@media (max-width: 959px){.vd-layout-card-over-wrapper .vd-layout-card-over{max-width:100%!important}}\n"] }]
@@ -14343,6 +14517,11 @@ class VdLayoutManageListComponent {
14343
14517
  */
14344
14518
  constructor(media) {
14345
14519
  this.media = media;
14520
+ /**
14521
+ * closable: boolean
14522
+ * If false, hide close button
14523
+ */
14524
+ this.closable = true;
14346
14525
  /**
14347
14526
  * mode?: 'side', 'push' or 'over'
14348
14527
  *
@@ -14393,9 +14572,7 @@ class VdLayoutManageListComponent {
14393
14572
  * Checks if `ESC` should close the sidenav
14394
14573
  * Should only close it for `push` and `over` modes
14395
14574
  */
14396
- get disableClose() {
14397
- return this.mode === 'side';
14398
- }
14575
+ get disableClose() { return this.mode === 'side'; }
14399
14576
  /**
14400
14577
  * Lifecycle hook that is called after data-bound properties
14401
14578
  * of a directive are initialized.
@@ -14414,48 +14591,42 @@ class VdLayoutManageListComponent {
14414
14591
  /**
14415
14592
  * Proxy toggle method to access sidenav from outside (from vd-layout template).
14416
14593
  */
14417
- toggle() {
14418
- return this.sidenav.toggle(!this.sidenav.opened);
14419
- }
14594
+ toggle() { return this.sidenav.toggle(!this.sidenav.opened); }
14420
14595
  /**
14421
14596
  * Proxy open method to access sidenav from outside (from vd-layout template).
14422
14597
  */
14423
- open() {
14424
- return this.sidenav.open();
14425
- }
14598
+ open() { return this.sidenav.open(); }
14426
14599
  /**
14427
14600
  * Proxy close method to access sidenav from outside (from vd-layout template).
14428
14601
  */
14429
- close() {
14430
- return this.sidenav.close();
14431
- }
14602
+ close() { return this.sidenav.close(); }
14432
14603
  }
14433
14604
  /** @nocollapse */ /** @nocollapse */ VdLayoutManageListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutManageListComponent, deps: [{ token: VdMediaService }], target: i0.ɵɵFactoryTarget.Component });
14434
- /** @nocollapse */ /** @nocollapse */ VdLayoutManageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutManageListComponent, selector: "vd-layout-manage-list", inputs: { mode: "mode", sideGt: "sideGt", opened: "opened", openedGt: "openedGt", sidenavWidth: "sidenavWidth", sidenavGtXsWidth: "sidenavGtXsWidth" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container fullscreen class=\"vd-layout-manage-list\">\r\n\t<mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\"\r\n\t [style.min-width]=\"sidenavWidth\">\r\n\t\t<ng-content select=\"mat-toolbar[vd-sidenav-content]\"></ng-content>\r\n\t\t<div class=\"vd-layout-manage-list-sidenav\" cdkScrollable>\r\n\t\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t\t</div>\r\n\t</mat-sidenav>\r\n\t<div class=\"vd-layout-manage-list-main\">\r\n\t\t<ng-content select=\"mat-toolbar\"></ng-content>\r\n\t\t<div class=\"vd-layout-manage-list-content\" cdkScrollable>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</div>\r\n\t\t<ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n\t</div>\r\n</mat-sidenav-container>", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host mat-sidenav-container.vd-layout-manage-list{flex:1}:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-opened,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-opening,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-closed,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-closing{box-shadow:0 1px 3px #0003}:host .vd-layout-manage-list-sidenav{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-manage-list-main{margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto;flex-direction:column;box-sizing:border-box;display:flex}:host .vd-layout-manage-list-main .vd-layout-manage-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host ::ng-deep mat-sidenav-container.vd-layout-manage-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.vd-layout-manage-list>mat-sidenav{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep mat-nav-list a[mat-list-item] .mat-list-item-content{font-size:14px}:host ::ng-deep .mat-toolbar{font-weight:400}\n"], components: [{ type: i2$5.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i2$5.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }], directives: [{ type: i3$4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }] });
14605
+ /** @nocollapse */ /** @nocollapse */ VdLayoutManageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutManageListComponent, selector: "vd-layout-manage-list", inputs: { title: "title", closable: "closable", menuItems: "menuItems", mode: "mode", sideGt: "sideGt", opened: "opened", openedGt: "openedGt", sidenavWidth: "sidenavWidth", sidenavGtXsWidth: "sidenavGtXsWidth" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container fullscreen class=\"vd-layout-manage-list\">\r\n\t<!-- #region Side nav -->\r\n\t<mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\">\r\n\t\t<!-- #region Nav list toolbar -->\r\n\t\t<mat-toolbar dense *ngIf=\"title\">\r\n\t\t\t<span>{{title}}</span>\r\n\t\t\t<span flex></span>\r\n\t\t\t<button mat-icon-button (click)=\"close()\" *ngIf=\"closable\">\r\n\t\t\t\t<mat-icon>arrow_back</mat-icon>\r\n\t\t\t</button>\r\n\t\t</mat-toolbar>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom title toolbar -->\r\n\t\t<ng-content select=\"mat-toolbar[vd-sidenav-content]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<div class=\"vd-layout-manage-list-sidenav\" cdkScrollable>\r\n\t\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t\t\t<ng-content select=\"vd-menu\"></ng-content>\r\n\t\t\t<vd-menu [items]=\"menuItems\" *ngIf=\"menuItems\"></vd-menu>\r\n\t\t</div>\r\n\t</mat-sidenav>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Main content -->\r\n\t<div class=\"vd-layout-manage-list-main\">\r\n\t\t<!-- #region Toolbar projection -->\r\n\t\t<ng-content select=\"mat-toolbar\"></ng-content>\r\n\t\t<ng-content select=\"vd-list-toolbar\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Scrollable content -->\r\n\t\t<div class=\"vd-layout-manage-list-content\" cdkScrollable>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Footer content -->\r\n\t\t<ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\t</div>\r\n\t<!-- #endregion -->\r\n</mat-sidenav-container>", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host mat-sidenav-container.vd-layout-manage-list{flex:1}:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-opened,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-opening,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-closed,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-closing{box-shadow:0 1px 3px #0003}:host .vd-layout-manage-list-sidenav{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-manage-list-main{margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto;flex-direction:column;box-sizing:border-box;display:flex}:host .vd-layout-manage-list-main .vd-layout-manage-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host ::ng-deep mat-sidenav-container.vd-layout-manage-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.vd-layout-manage-list>mat-sidenav{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep mat-nav-list a[mat-list-item] .mat-list-item-content{font-size:14px}:host ::ng-deep .mat-toolbar{font-weight:400}\n"], components: [{ type: i2$5.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i2$5.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i3$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: VdMenuComponent, selector: "vd-menu", inputs: ["items", "activeExact", "avatar"], outputs: ["click"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }] });
14435
14606
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutManageListComponent, decorators: [{
14436
14607
  type: Component,
14437
- args: [{ selector: 'vd-layout-manage-list', template: "<mat-sidenav-container fullscreen class=\"vd-layout-manage-list\">\r\n\t<mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\"\r\n\t [style.min-width]=\"sidenavWidth\">\r\n\t\t<ng-content select=\"mat-toolbar[vd-sidenav-content]\"></ng-content>\r\n\t\t<div class=\"vd-layout-manage-list-sidenav\" cdkScrollable>\r\n\t\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t\t</div>\r\n\t</mat-sidenav>\r\n\t<div class=\"vd-layout-manage-list-main\">\r\n\t\t<ng-content select=\"mat-toolbar\"></ng-content>\r\n\t\t<div class=\"vd-layout-manage-list-content\" cdkScrollable>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</div>\r\n\t\t<ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n\t</div>\r\n</mat-sidenav-container>", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host mat-sidenav-container.vd-layout-manage-list{flex:1}:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-opened,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-opening,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-closed,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-closing{box-shadow:0 1px 3px #0003}:host .vd-layout-manage-list-sidenav{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-manage-list-main{margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto;flex-direction:column;box-sizing:border-box;display:flex}:host .vd-layout-manage-list-main .vd-layout-manage-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host ::ng-deep mat-sidenav-container.vd-layout-manage-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.vd-layout-manage-list>mat-sidenav{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep mat-nav-list a[mat-list-item] .mat-list-item-content{font-size:14px}:host ::ng-deep .mat-toolbar{font-weight:400}\n"] }]
14608
+ args: [{ selector: 'vd-layout-manage-list', template: "<mat-sidenav-container fullscreen class=\"vd-layout-manage-list\">\r\n\t<!-- #region Side nav -->\r\n\t<mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\">\r\n\t\t<!-- #region Nav list toolbar -->\r\n\t\t<mat-toolbar dense *ngIf=\"title\">\r\n\t\t\t<span>{{title}}</span>\r\n\t\t\t<span flex></span>\r\n\t\t\t<button mat-icon-button (click)=\"close()\" *ngIf=\"closable\">\r\n\t\t\t\t<mat-icon>arrow_back</mat-icon>\r\n\t\t\t</button>\r\n\t\t</mat-toolbar>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom title toolbar -->\r\n\t\t<ng-content select=\"mat-toolbar[vd-sidenav-content]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<div class=\"vd-layout-manage-list-sidenav\" cdkScrollable>\r\n\t\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t\t\t<ng-content select=\"vd-menu\"></ng-content>\r\n\t\t\t<vd-menu [items]=\"menuItems\" *ngIf=\"menuItems\"></vd-menu>\r\n\t\t</div>\r\n\t</mat-sidenav>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Main content -->\r\n\t<div class=\"vd-layout-manage-list-main\">\r\n\t\t<!-- #region Toolbar projection -->\r\n\t\t<ng-content select=\"mat-toolbar\"></ng-content>\r\n\t\t<ng-content select=\"vd-list-toolbar\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Scrollable content -->\r\n\t\t<div class=\"vd-layout-manage-list-content\" cdkScrollable>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Footer content -->\r\n\t\t<ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\t</div>\r\n\t<!-- #endregion -->\r\n</mat-sidenav-container>", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host mat-sidenav-container.vd-layout-manage-list{flex:1}:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-opened,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-opening,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-closed,:host mat-sidenav-container.vd-layout-manage-list>mat-sidenav.mat-drawer-closing{box-shadow:0 1px 3px #0003}:host .vd-layout-manage-list-sidenav{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-manage-list-main{margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto;flex-direction:column;box-sizing:border-box;display:flex}:host .vd-layout-manage-list-main .vd-layout-manage-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host ::ng-deep mat-sidenav-container.vd-layout-manage-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.vd-layout-manage-list>mat-sidenav{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep mat-nav-list a[mat-list-item] .mat-list-item-content{font-size:14px}:host ::ng-deep .mat-toolbar{font-weight:400}\n"] }]
14438
14609
  }], ctorParameters: function () { return [{ type: VdMediaService }]; }, propDecorators: { sidenav: [{
14439
14610
  type: ViewChild,
14440
14611
  args: [MatSidenav, { static: true }]
14612
+ }], title: [{
14613
+ type: Input
14614
+ }], closable: [{
14615
+ type: Input
14616
+ }], menuItems: [{
14617
+ type: Input
14441
14618
  }], mode: [{
14442
- type: Input,
14443
- args: ['mode']
14619
+ type: Input
14444
14620
  }], sideGt: [{
14445
- type: Input,
14446
- args: ['sideGt']
14621
+ type: Input
14447
14622
  }], opened: [{
14448
- type: Input,
14449
- args: ['opened']
14623
+ type: Input
14450
14624
  }], openedGt: [{
14451
- type: Input,
14452
- args: ['openedGt']
14625
+ type: Input
14453
14626
  }], sidenavWidth: [{
14454
- type: Input,
14455
- args: ['sidenavWidth']
14627
+ type: Input
14456
14628
  }], sidenavGtXsWidth: [{
14457
- type: Input,
14458
- args: ['sidenavGtXsWidth']
14629
+ type: Input
14459
14630
  }] } });
14460
14631
 
14461
14632
  class LayoutToggle {
@@ -14528,12 +14699,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
14528
14699
  }] } });
14529
14700
 
14530
14701
  class VdLayoutManageListToggleDirective extends LayoutToggle {
14702
+ /**
14703
+ * Constructor
14704
+ * @param layout
14705
+ * @param renderer
14706
+ * @param elementRef
14707
+ */
14531
14708
  constructor(layout, renderer, elementRef) {
14532
14709
  super(layout, renderer, elementRef);
14533
14710
  }
14711
+ /**
14712
+ * Sets vdLayoutManageListToggle
14713
+ */
14534
14714
  set vdLayoutManageListToggle(vdLayoutManageListToggle) {
14535
14715
  this.disabled = !(vdLayoutManageListToggle === '' || vdLayoutManageListToggle);
14536
14716
  }
14717
+ /**
14718
+ * Opens the list
14719
+ */
14537
14720
  onClick() {
14538
14721
  this._layout.toggle();
14539
14722
  }
@@ -14542,23 +14725,32 @@ class VdLayoutManageListToggleDirective extends LayoutToggle {
14542
14725
  /** @nocollapse */ /** @nocollapse */ VdLayoutManageListToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutManageListToggleDirective, selector: "[vdLayoutManageListToggle]", inputs: { vdLayoutManageListToggle: "vdLayoutManageListToggle" }, usesInheritance: true, ngImport: i0 });
14543
14726
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutManageListToggleDirective, decorators: [{
14544
14727
  type: Directive,
14545
- args: [{
14546
- selector: '[vdLayoutManageListToggle]',
14547
- }]
14728
+ args: [{ selector: '[vdLayoutManageListToggle]' }]
14548
14729
  }], ctorParameters: function () { return [{ type: VdLayoutManageListComponent, decorators: [{
14549
14730
  type: Inject,
14550
14731
  args: [forwardRef(() => VdLayoutManageListComponent)]
14551
14732
  }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { vdLayoutManageListToggle: [{
14552
- type: Input,
14553
- args: ['vdLayoutManageListToggle']
14733
+ type: Input
14554
14734
  }] } });
14555
14735
  class VdLayoutManageListCloseDirective extends LayoutToggle {
14736
+ /**
14737
+ * Constructor
14738
+ * @param layout
14739
+ * @param renderer
14740
+ * @param elementRef
14741
+ */
14556
14742
  constructor(layout, renderer, elementRef) {
14557
14743
  super(layout, renderer, elementRef);
14558
14744
  }
14745
+ /**
14746
+ * Sets vdLayoutManageListClose
14747
+ */
14559
14748
  set vdLayoutManageListClose(vdLayoutManageListClose) {
14560
14749
  this.disabled = !(vdLayoutManageListClose === '' || vdLayoutManageListClose);
14561
14750
  }
14751
+ /**
14752
+ * Opens the list
14753
+ */
14562
14754
  onClick() {
14563
14755
  this._layout.close();
14564
14756
  }
@@ -14567,23 +14759,32 @@ class VdLayoutManageListCloseDirective extends LayoutToggle {
14567
14759
  /** @nocollapse */ /** @nocollapse */ VdLayoutManageListCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutManageListCloseDirective, selector: "[vdLayoutManageListClose]", inputs: { vdLayoutManageListClose: "vdLayoutManageListClose" }, usesInheritance: true, ngImport: i0 });
14568
14760
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutManageListCloseDirective, decorators: [{
14569
14761
  type: Directive,
14570
- args: [{
14571
- selector: '[vdLayoutManageListClose]',
14572
- }]
14762
+ args: [{ selector: '[vdLayoutManageListClose]' }]
14573
14763
  }], ctorParameters: function () { return [{ type: VdLayoutManageListComponent, decorators: [{
14574
14764
  type: Inject,
14575
14765
  args: [forwardRef(() => VdLayoutManageListComponent)]
14576
14766
  }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { vdLayoutManageListClose: [{
14577
- type: Input,
14578
- args: ['vdLayoutManageListClose']
14767
+ type: Input
14579
14768
  }] } });
14580
14769
  class VdLayoutManageListOpenDirective extends LayoutToggle {
14770
+ /**
14771
+ * Constructor
14772
+ * @param layout
14773
+ * @param renderer
14774
+ * @param elementRef
14775
+ */
14581
14776
  constructor(layout, renderer, elementRef) {
14582
14777
  super(layout, renderer, elementRef);
14583
14778
  }
14779
+ /**
14780
+ * Sets vdLayoutManageListOpen
14781
+ */
14584
14782
  set vdLayoutManageListOpen(vdLayoutManageListOpen) {
14585
14783
  this.disabled = !(vdLayoutManageListOpen === '' || vdLayoutManageListOpen);
14586
14784
  }
14785
+ /**
14786
+ * Opens the list
14787
+ */
14587
14788
  onClick() {
14588
14789
  this._layout.open();
14589
14790
  }
@@ -14592,15 +14793,12 @@ class VdLayoutManageListOpenDirective extends LayoutToggle {
14592
14793
  /** @nocollapse */ /** @nocollapse */ VdLayoutManageListOpenDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutManageListOpenDirective, selector: "[vdLayoutManageListOpen]", inputs: { vdLayoutManageListOpen: "vdLayoutManageListOpen" }, usesInheritance: true, ngImport: i0 });
14593
14794
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutManageListOpenDirective, decorators: [{
14594
14795
  type: Directive,
14595
- args: [{
14596
- selector: '[vdLayoutManageListOpen]',
14597
- }]
14796
+ args: [{ selector: '[vdLayoutManageListOpen]' }]
14598
14797
  }], ctorParameters: function () { return [{ type: VdLayoutManageListComponent, decorators: [{
14599
14798
  type: Inject,
14600
14799
  args: [forwardRef(() => VdLayoutManageListComponent)]
14601
14800
  }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { vdLayoutManageListOpen: [{
14602
- type: Input,
14603
- args: ['vdLayoutManageListOpen']
14801
+ type: Input
14604
14802
  }] } });
14605
14803
 
14606
14804
  class VdLayoutNavListComponent {
@@ -14681,7 +14879,7 @@ class VdLayoutNavListComponent {
14681
14879
  }
14682
14880
  }
14683
14881
  /** @nocollapse */ /** @nocollapse */ VdLayoutNavListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutNavListComponent, deps: [{ token: i1$4.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
14684
- /** @nocollapse */ /** @nocollapse */ VdLayoutNavListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutNavListComponent, selector: "vd-layout-nav-list", inputs: { toolbarTitle: "toolbarTitle", icon: "icon", logo: "logo", color: "color", mode: "mode", opened: "opened", sidenavWidth: "sidenavWidth", navigationRoute: "navigationRoute" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<div class=\"vd-layout-nav-list-wrapper\">\r\n\t<mat-sidenav-container fullscreen class=\"vd-layout-nav-list\">\r\n\t\t<mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\"\r\n\t\t [style.min-width]=\"sidenavWidth\">\r\n\t\t\t<mat-toolbar [color]=\"color\">\r\n\t\t\t\t<ng-content select=\"[vd-menu-button]\"></ng-content>\r\n\t\t\t\t<span *ngIf=\"icon || logo || toolbarTitle\" class=\"vd-layout-nav-list-toolbar-content\" [class.cursor-pointer]=\"routerEnabled\"\r\n\t\t\t\t (click)=\"handleNavigationClick()\">\r\n\t\t\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t\t\t<span *ngIf=\"toolbarTitle\">{{toolbarTitle}}</span>\r\n\t\t\t\t</span>\r\n\t\t\t\t<ng-content select=\"[vd-sidenav-toolbar-content]\"></ng-content>\r\n\t\t\t</mat-toolbar>\r\n\t\t\t<div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n\t\t\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</mat-sidenav>\r\n\t\t<div class=\"vd-layout-nav-list-main\">\r\n\t\t\t<mat-toolbar [color]=\"color\">\r\n\t\t\t\t<ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n\t\t\t</mat-toolbar>\r\n\t\t\t<div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n\t\t\t\t<ng-content></ng-content>\r\n\t\t\t</div>\r\n\t\t\t<ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n\t\t</div>\r\n\t</mat-sidenav-container>\r\n</div>\r\n<ng-content select=\"vd-layout-footer\"></ng-content>", styles: [":host{margin:0;width:100%;min-height:100%;height:100%;overflow:hidden;flex-direction:column;box-sizing:border-box;display:flex;flex:1}:host .vd-layout-nav-list-wrapper{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-content{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-main{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-main .vd-layout-nav-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list{flex:1}:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-opened,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-opening,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-closed,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-closing{box-shadow:none}:host ::ng-deep mat-sidenav-container.vd-layout-nav-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.vd-layout-nav-list>mat-sidenav{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}\n"], components: [{ type: i2$5.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i2$5.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i1$7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }] });
14882
+ /** @nocollapse */ /** @nocollapse */ VdLayoutNavListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutNavListComponent, selector: "vd-layout-nav-list", inputs: { toolbarTitle: "toolbarTitle", icon: "icon", logo: "logo", color: "color", mode: "mode", opened: "opened", sidenavWidth: "sidenavWidth", navigationRoute: "navigationRoute" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<div class=\"vd-layout-nav-list-wrapper\">\r\n\t<mat-sidenav-container fullscreen class=\"vd-layout-nav-list\">\r\n\t\t<mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\"\r\n\t\t [style.min-width]=\"sidenavWidth\">\r\n\t\t\t<mat-toolbar [color]=\"color\">\r\n\t\t\t\t<ng-content select=\"[vd-menu-button]\"></ng-content>\r\n\t\t\t\t<span *ngIf=\"icon || logo || toolbarTitle\" class=\"vd-layout-nav-list-toolbar-content\" [class.cursor-pointer]=\"routerEnabled\"\r\n\t\t\t\t (click)=\"handleNavigationClick()\">\r\n\t\t\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t\t\t<span *ngIf=\"toolbarTitle\">{{toolbarTitle}}</span>\r\n\t\t\t\t</span>\r\n\t\t\t\t<ng-content select=\"[vd-sidenav-toolbar-content]\"></ng-content>\r\n\t\t\t</mat-toolbar>\r\n\t\t\t<div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n\t\t\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</mat-sidenav>\r\n\t\t<div class=\"vd-layout-nav-list-main\">\r\n\t\t\t<mat-toolbar [color]=\"color\">\r\n\t\t\t\t<ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n\t\t\t</mat-toolbar>\r\n\t\t\t<div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n\t\t\t\t<ng-content></ng-content>\r\n\t\t\t</div>\r\n\t\t\t<ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n\t\t</div>\r\n\t</mat-sidenav-container>\r\n</div>\r\n<ng-content select=\"vd-layout-footer\"></ng-content>", styles: [":host{margin:0;width:100%;min-height:100%;height:100%;overflow:hidden;flex-direction:column;box-sizing:border-box;display:flex;flex:1}:host .vd-layout-nav-list-wrapper{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-content{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-main{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-main .vd-layout-nav-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list{flex:1}:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-opened,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-opening,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-closed,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-closing{box-shadow:none}:host ::ng-deep mat-sidenav-container.vd-layout-nav-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.vd-layout-nav-list>mat-sidenav{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}\n"], components: [{ type: i2$5.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i2$5.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i3$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }] });
14685
14883
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutNavListComponent, decorators: [{
14686
14884
  type: Component,
14687
14885
  args: [{ selector: 'vd-layout-nav-list', template: "<div class=\"vd-layout-nav-list-wrapper\">\r\n\t<mat-sidenav-container fullscreen class=\"vd-layout-nav-list\">\r\n\t\t<mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\"\r\n\t\t [style.min-width]=\"sidenavWidth\">\r\n\t\t\t<mat-toolbar [color]=\"color\">\r\n\t\t\t\t<ng-content select=\"[vd-menu-button]\"></ng-content>\r\n\t\t\t\t<span *ngIf=\"icon || logo || toolbarTitle\" class=\"vd-layout-nav-list-toolbar-content\" [class.cursor-pointer]=\"routerEnabled\"\r\n\t\t\t\t (click)=\"handleNavigationClick()\">\r\n\t\t\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t\t\t<span *ngIf=\"toolbarTitle\">{{toolbarTitle}}</span>\r\n\t\t\t\t</span>\r\n\t\t\t\t<ng-content select=\"[vd-sidenav-toolbar-content]\"></ng-content>\r\n\t\t\t</mat-toolbar>\r\n\t\t\t<div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n\t\t\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</mat-sidenav>\r\n\t\t<div class=\"vd-layout-nav-list-main\">\r\n\t\t\t<mat-toolbar [color]=\"color\">\r\n\t\t\t\t<ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n\t\t\t</mat-toolbar>\r\n\t\t\t<div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n\t\t\t\t<ng-content></ng-content>\r\n\t\t\t</div>\r\n\t\t\t<ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n\t\t</div>\r\n\t</mat-sidenav-container>\r\n</div>\r\n<ng-content select=\"vd-layout-footer\"></ng-content>", styles: [":host{margin:0;width:100%;min-height:100%;height:100%;overflow:hidden;flex-direction:column;box-sizing:border-box;display:flex;flex:1}:host .vd-layout-nav-list-wrapper{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-content{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-main{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto}:host .vd-layout-nav-list-wrapper .vd-layout-nav-list-main .vd-layout-nav-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list{flex:1}:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-opened,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-opening,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-closed,:host .vd-layout-nav-list-wrapper mat-sidenav-container.vd-layout-nav-list>mat-sidenav.mat-drawer-closing{box-shadow:none}:host ::ng-deep mat-sidenav-container.vd-layout-nav-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.vd-layout-nav-list>mat-sidenav{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}\n"] }]
@@ -14961,6 +15159,12 @@ class VdLayoutNavComponent {
14961
15159
  * If [color] is not set, primary is used.
14962
15160
  */
14963
15161
  this.color = 'primary';
15162
+ /**
15163
+ * hideToggle?: boolean
15164
+ *
15165
+ * Hides toggle button
15166
+ */
15167
+ this.hideToggle = false;
14964
15168
  }
14965
15169
  /**
14966
15170
  * Checks if router was injected.
@@ -14989,10 +15193,10 @@ class VdLayoutNavComponent {
14989
15193
  }
14990
15194
  }
14991
15195
  /** @nocollapse */ /** @nocollapse */ VdLayoutNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutNavComponent, deps: [{ token: i1$4.Router, optional: true }, { token: i1$4.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Component });
14992
- /** @nocollapse */ /** @nocollapse */ VdLayoutNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutNavComponent, selector: "vd-layout-nav", inputs: { toolbarTitle: "toolbarTitle", icon: "icon", logo: "logo", color: "color", showToggle: "showToggle", backNavigationRoute: "backNavigationRoute", navigationRoute: "navigationRoute" }, ngImport: i0, template: "<div class=\"vd-layout-nav-wrapper\">\r\n\t<mat-toolbar [color]=\"color\">\r\n\t\t<!-- #region Toggle buton -->\r\n\t\t<button mat-icon-button vd-menu-button vdLayoutToggle *ngIf=\"showToggle\">\r\n\t\t\t<mat-icon>menu</mat-icon>\r\n\t\t</button>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Back button -->\r\n\t\t<button mat-icon-button vd-menu-button *ngIf=\"backNavigationRouteEnabled\" (click)=\"handleBackNavigationClick()\">\r\n\t\t\t<mat-icon>arrow_back</mat-icon>\r\n\t\t</button>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom buttons -->\r\n\t\t<ng-content select=\"[vd-menu-button]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Logo with home link -->\r\n\t\t<span *ngIf=\"icon || logo || toolbarTitle\" [class.cursor-pointer]=\"routerEnabled\" (click)=\"handleNavigationClick()\" class=\"vd-layout-nav-toolbar-content\">\r\n\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t<span *ngIf=\"toolbarTitle\">{{toolbarTitle}}</span>\r\n\t\t</span>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom content -->\r\n\t\t<ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<span flex></span>\r\n\r\n\t\t<!-- #region Custom right content -->\r\n\t\t<ng-content select=\"[vd-toolbar-content-right]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\t</mat-toolbar>\r\n\t<div class=\"vd-layout-nav-content\" cdkScrollable>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<ng-content select=\"vd-layout-footer\"></ng-content>\r\n</div>", styles: [".vd-menu-button{margin-left:0}::ng-deep [dir=rtl] .vd-menu-button{margin-right:0;margin-left:6px}:host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host .vd-layout-nav-wrapper{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%}:host .vd-layout-nav-wrapper .vd-layout-nav-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .vd-layout-nav-wrapper .vd-layout-nav-content{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}\n"], components: [{ type: i1$7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: VdLayoutToggleDirective, selector: "[vdLayoutToggle]", inputs: ["vdLayoutToggle"] }, { type: i3$4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }] });
15196
+ /** @nocollapse */ /** @nocollapse */ VdLayoutNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdLayoutNavComponent, selector: "vd-layout-nav", inputs: { toolbarTitle: "toolbarTitle", icon: "icon", logo: "logo", color: "color", hideToggle: "hideToggle", backNavigationRoute: "backNavigationRoute", navigationRoute: "navigationRoute" }, ngImport: i0, template: "<div class=\"vd-layout-nav-wrapper\">\r\n\t<mat-toolbar [color]=\"color\">\r\n\t\t<!-- #region Toggle buton -->\r\n\t\t<button mat-icon-button vd-menu-button vdLayoutToggle *ngIf=\"!hideToggle\">\r\n\t\t\t<mat-icon>menu</mat-icon>\r\n\t\t</button>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Back button -->\r\n\t\t<button mat-icon-button vd-menu-button *ngIf=\"backNavigationRouteEnabled\" (click)=\"handleBackNavigationClick()\">\r\n\t\t\t<mat-icon>arrow_back</mat-icon>\r\n\t\t</button>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom buttons -->\r\n\t\t<ng-content select=\"[vd-menu-button]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Logo with home link -->\r\n\t\t<span *ngIf=\"icon || logo || toolbarTitle\" [class.cursor-pointer]=\"routerEnabled\" (click)=\"handleNavigationClick()\" class=\"vd-layout-nav-toolbar-content\">\r\n\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t<span *ngIf=\"toolbarTitle\">{{toolbarTitle}}</span>\r\n\t\t</span>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom content -->\r\n\t\t<ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<span flex></span>\r\n\r\n\t\t<!-- #region Custom right content -->\r\n\t\t<ng-content select=\"[vd-toolbar-content-right]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\t</mat-toolbar>\r\n\t<div class=\"vd-layout-nav-content\" cdkScrollable>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<ng-content select=\"vd-layout-footer\"></ng-content>\r\n</div>", styles: [".vd-menu-button{margin-left:0}::ng-deep [dir=rtl] .vd-menu-button{margin-right:0;margin-left:6px}:host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host .vd-layout-nav-wrapper{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%}:host .vd-layout-nav-wrapper .vd-layout-nav-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .vd-layout-nav-wrapper .vd-layout-nav-content{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}\n"], components: [{ type: i3$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: VdLayoutToggleDirective, selector: "[vdLayoutToggle]", inputs: ["vdLayoutToggle"] }, { type: i8.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }] });
14993
15197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutNavComponent, decorators: [{
14994
15198
  type: Component,
14995
- args: [{ selector: 'vd-layout-nav', template: "<div class=\"vd-layout-nav-wrapper\">\r\n\t<mat-toolbar [color]=\"color\">\r\n\t\t<!-- #region Toggle buton -->\r\n\t\t<button mat-icon-button vd-menu-button vdLayoutToggle *ngIf=\"showToggle\">\r\n\t\t\t<mat-icon>menu</mat-icon>\r\n\t\t</button>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Back button -->\r\n\t\t<button mat-icon-button vd-menu-button *ngIf=\"backNavigationRouteEnabled\" (click)=\"handleBackNavigationClick()\">\r\n\t\t\t<mat-icon>arrow_back</mat-icon>\r\n\t\t</button>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom buttons -->\r\n\t\t<ng-content select=\"[vd-menu-button]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Logo with home link -->\r\n\t\t<span *ngIf=\"icon || logo || toolbarTitle\" [class.cursor-pointer]=\"routerEnabled\" (click)=\"handleNavigationClick()\" class=\"vd-layout-nav-toolbar-content\">\r\n\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t<span *ngIf=\"toolbarTitle\">{{toolbarTitle}}</span>\r\n\t\t</span>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom content -->\r\n\t\t<ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<span flex></span>\r\n\r\n\t\t<!-- #region Custom right content -->\r\n\t\t<ng-content select=\"[vd-toolbar-content-right]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\t</mat-toolbar>\r\n\t<div class=\"vd-layout-nav-content\" cdkScrollable>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<ng-content select=\"vd-layout-footer\"></ng-content>\r\n</div>", styles: [".vd-menu-button{margin-left:0}::ng-deep [dir=rtl] .vd-menu-button{margin-right:0;margin-left:6px}:host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host .vd-layout-nav-wrapper{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%}:host .vd-layout-nav-wrapper .vd-layout-nav-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .vd-layout-nav-wrapper .vd-layout-nav-content{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}\n"] }]
15199
+ args: [{ selector: 'vd-layout-nav', template: "<div class=\"vd-layout-nav-wrapper\">\r\n\t<mat-toolbar [color]=\"color\">\r\n\t\t<!-- #region Toggle buton -->\r\n\t\t<button mat-icon-button vd-menu-button vdLayoutToggle *ngIf=\"!hideToggle\">\r\n\t\t\t<mat-icon>menu</mat-icon>\r\n\t\t</button>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Back button -->\r\n\t\t<button mat-icon-button vd-menu-button *ngIf=\"backNavigationRouteEnabled\" (click)=\"handleBackNavigationClick()\">\r\n\t\t\t<mat-icon>arrow_back</mat-icon>\r\n\t\t</button>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom buttons -->\r\n\t\t<ng-content select=\"[vd-menu-button]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Logo with home link -->\r\n\t\t<span *ngIf=\"icon || logo || toolbarTitle\" [class.cursor-pointer]=\"routerEnabled\" (click)=\"handleNavigationClick()\" class=\"vd-layout-nav-toolbar-content\">\r\n\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t<span *ngIf=\"toolbarTitle\">{{toolbarTitle}}</span>\r\n\t\t</span>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Custom content -->\r\n\t\t<ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<span flex></span>\r\n\r\n\t\t<!-- #region Custom right content -->\r\n\t\t<ng-content select=\"[vd-toolbar-content-right]\"></ng-content>\r\n\t\t<!-- #endregion -->\r\n\t</mat-toolbar>\r\n\t<div class=\"vd-layout-nav-content\" cdkScrollable>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<ng-content select=\"vd-layout-footer\"></ng-content>\r\n</div>", styles: [".vd-menu-button{margin-left:0}::ng-deep [dir=rtl] .vd-menu-button{margin-right:0;margin-left:6px}:host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host .vd-layout-nav-wrapper{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%}:host .vd-layout-nav-wrapper .vd-layout-nav-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .vd-layout-nav-wrapper .vd-layout-nav-content{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}\n"] }]
14996
15200
  }], ctorParameters: function () { return [{ type: i1$4.Router, decorators: [{
14997
15201
  type: Optional
14998
15202
  }] }, { type: i1$4.ActivatedRoute, decorators: [{
@@ -15005,7 +15209,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
15005
15209
  type: Input
15006
15210
  }], color: [{
15007
15211
  type: Input
15008
- }], showToggle: [{
15212
+ }], hideToggle: [{
15009
15213
  type: Input
15010
15214
  }], backNavigationRoute: [{
15011
15215
  type: Input
@@ -15016,7 +15220,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
15016
15220
  class VdListToolbarMenuComponent {
15017
15221
  }
15018
15222
  /** @nocollapse */ /** @nocollapse */ VdListToolbarMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdListToolbarMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15019
- /** @nocollapse */ /** @nocollapse */ VdListToolbarMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdListToolbarMenuComponent, selector: "vd-list-toolbar-menu", inputs: { menuItems: "menuItems" }, ngImport: i0, template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button [mat-menu-trigger-for]=\"toolbarMenu\" *ngIf=\"menuItems?.length\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu x-position=\"before\" #toolbarMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuItem of menuItems\">\r\n <ng-container *ngIf=\"!menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event():null\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuItem.subItems\">\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event():null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide()\" [disabled]=\"menuSubItem.disable && menuSubItem.disable()\">\r\n <mat-icon fontSet=\"{{menuSubItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuSubItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuSubItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n <button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n</div>", components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
15223
+ /** @nocollapse */ /** @nocollapse */ VdListToolbarMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdListToolbarMenuComponent, selector: "vd-list-toolbar-menu", inputs: { menuItems: "menuItems" }, ngImport: i0, template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button [mat-menu-trigger-for]=\"toolbarMenu\" *ngIf=\"menuItems?.length\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu x-position=\"before\" #toolbarMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuItem of menuItems\">\r\n <ng-container *ngIf=\"!menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event():null\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuItem.subItems\">\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event():null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide()\" [disabled]=\"menuSubItem.disable && menuSubItem.disable()\">\r\n <mat-icon fontSet=\"{{menuSubItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuSubItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuSubItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n <button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n</div>", components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
15020
15224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdListToolbarMenuComponent, decorators: [{
15021
15225
  type: Component,
15022
15226
  args: [{ selector: 'vd-list-toolbar-menu', template: "<div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button [mat-menu-trigger-for]=\"toolbarMenu\" *ngIf=\"menuItems?.length\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu x-position=\"before\" #toolbarMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuItem of menuItems\">\r\n <ng-container *ngIf=\"!menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuItem.event?menuItem.event():null\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuItem.subItems\">\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuSubItem of menuItem.subItems\">\r\n <button type=\"button\" mat-menu-item (click)=\"menuSubItem.event?menuSubItem.event():null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide()\" [disabled]=\"menuSubItem.disable && menuSubItem.disable()\">\r\n <mat-icon fontSet=\"{{menuSubItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuSubItem.iconClass\">{{menuSubItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuSubItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n <button type=\"button\" mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide()\" [disabled]=\"menuItem.disable && menuItem.disable()\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-icons-outlined'}}\" [class]=\"menuItem.iconClass\">{{menuItem.icon || 'radio_button_unchecked'}}</mat-icon>\r\n <span>{{menuItem.title}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n</div>" }]
@@ -15027,7 +15231,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
15027
15231
  class VdListToolbarComponent {
15028
15232
  }
15029
15233
  /** @nocollapse */ /** @nocollapse */ VdListToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdListToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15030
- /** @nocollapse */ /** @nocollapse */ VdListToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdListToolbarComponent, selector: "vd-list-toolbar", inputs: { dataSource: "dataSource", subtitle: "subtitle", menuItems: "menuItems" }, ngImport: i0, template: "<mat-toolbar dense>\r\n <div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button vdLayoutManageListOpen [hideWhenOpened]=\"true\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n <span>{{subtitle}}</span>\r\n <span flex></span>\r\n <button mat-icon-button (click)=\"dataSource.reload()\" *ngIf=\"dataSource\">\r\n <mat-icon>sync</mat-icon>\r\n </button>\r\n <vd-list-toolbar-menu [menuItems]=\"menuItems\"></vd-list-toolbar-menu>\r\n </div>\r\n</mat-toolbar>", components: [{ type: i1$7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: VdListToolbarMenuComponent, selector: "vd-list-toolbar-menu", inputs: ["menuItems"] }], directives: [{ type: VdLayoutManageListOpenDirective, selector: "[vdLayoutManageListOpen]", inputs: ["vdLayoutManageListOpen"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
15234
+ /** @nocollapse */ /** @nocollapse */ VdListToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdListToolbarComponent, selector: "vd-list-toolbar", inputs: { dataSource: "dataSource", subtitle: "subtitle", menuItems: "menuItems" }, ngImport: i0, template: "<mat-toolbar dense>\r\n <div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button vdLayoutManageListOpen [hideWhenOpened]=\"true\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n <span>{{subtitle}}</span>\r\n <span flex></span>\r\n <button mat-icon-button (click)=\"dataSource.reload()\" *ngIf=\"dataSource\">\r\n <mat-icon>sync</mat-icon>\r\n </button>\r\n <vd-list-toolbar-menu [menuItems]=\"menuItems\"></vd-list-toolbar-menu>\r\n </div>\r\n</mat-toolbar>", components: [{ type: i3$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: VdListToolbarMenuComponent, selector: "vd-list-toolbar-menu", inputs: ["menuItems"] }], directives: [{ type: VdLayoutManageListOpenDirective, selector: "[vdLayoutManageListOpen]", inputs: ["vdLayoutManageListOpen"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
15031
15235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdListToolbarComponent, decorators: [{
15032
15236
  type: Component,
15033
15237
  args: [{ selector: 'vd-list-toolbar', template: "<mat-toolbar dense>\r\n <div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button vdLayoutManageListOpen [hideWhenOpened]=\"true\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n <span>{{subtitle}}</span>\r\n <span flex></span>\r\n <button mat-icon-button (click)=\"dataSource.reload()\" *ngIf=\"dataSource\">\r\n <mat-icon>sync</mat-icon>\r\n </button>\r\n <vd-list-toolbar-menu [menuItems]=\"menuItems\"></vd-list-toolbar-menu>\r\n </div>\r\n</mat-toolbar>" }]
@@ -15195,7 +15399,7 @@ class VdNavigationDrawerComponent {
15195
15399
  }
15196
15400
  }
15197
15401
  /** @nocollapse */ /** @nocollapse */ VdNavigationDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdNavigationDrawerComponent, deps: [{ token: forwardRef(() => VdLayoutComponent) }, { token: i1$4.Router, optional: true }, { token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
15198
- /** @nocollapse */ /** @nocollapse */ VdNavigationDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdNavigationDrawerComponent, selector: "vd-navigation-drawer", inputs: { sidenavTitle: "sidenavTitle", icon: "icon", logo: "logo", color: "color", navigationRoute: "navigationRoute", backgroundUrl: "backgroundUrl", name: "name", email: "email" }, queries: [{ propertyName: "_drawerMenu", predicate: VdNavigationDrawerMenuDirective }, { propertyName: "_toolbar", predicate: VdNavigationDrawerToolbarDirective }], ngImport: i0, template: "<mat-toolbar [color]=\"color\" [style.background-image]=\"backgroundImage\" [class.vd-toolbar-background]=\"!!isBackgroundAvailable\"\r\n class=\"vd-nagivation-drawer-toolbar\">\r\n\t<ng-content select=\"[vd-navigation-drawer-toolbar]\"></ng-content>\r\n\t<ng-container *ngIf=\"!isCustomToolbar\">\r\n\t\t<div *ngIf=\"icon || logo || sidenavTitle\" class=\"vd-navigation-drawer-toolbar-content\" [class.cursor-pointer]=\"routerEnabled\"\r\n\t\t (click)=\"handleNavigationClick()\">\r\n\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t<span *ngIf=\"sidenavTitle\" class=\"vd-navigation-drawer-title\">{{sidenavTitle}}</span>\r\n\t\t</div>\r\n\t\t<div class=\"vd-navigation-drawer-name\" *ngIf=\"email && name\">{{name}}</div>\r\n\t\t<div class=\"vd-navigation-drawer-menu-toggle\" href *ngIf=\"email || name\" (click)=\"toggleMenu()\">\r\n\t\t\t<span class=\"vd-navigation-drawer-label\">{{email || name}}</span>\r\n\t\t\t<button mat-icon-button class=\"vd-navigation-drawer-menu-button\" *ngIf=\"isMenuAvailable\">\r\n\t\t\t\t<mat-icon *ngIf=\"!menuToggled\">arrow_drop_down</mat-icon>\r\n\t\t\t\t<mat-icon *ngIf=\"menuToggled\">arrow_drop_up</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</ng-container>\r\n</mat-toolbar>\r\n<div class=\"vd-navigation-drawer-content\" [@vdCollapse]=\"menuToggled\">\r\n\t<ng-content></ng-content>\r\n</div>\r\n<div class=\"vd-navigation-drawer-menu-content\" [@vdCollapse]=\"!menuToggled\">\r\n\t<ng-content select=\"[vd-navigation-drawer-menu]\"></ng-content>\r\n</div>", styles: [":host{width:100%}:host .vd-navigation-drawer-content.ng-animating,:host .vd-navigation-drawer-menu-content.ng-animating{overflow:hidden}:host mat-toolbar{padding:16px}:host mat-toolbar.vd-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.vd-nagivation-drawer-toolbar{flex-direction:column;height:auto!important;display:block!important}:host mat-toolbar .vd-navigation-drawer-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host mat-toolbar .vd-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-label{flex:1}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-menu-button{height:24px;line-height:24px;width:24px}:host>div{overflow:hidden}\n"], components: [{ type: i1$7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [VdCollapseAnimation()] });
15402
+ /** @nocollapse */ /** @nocollapse */ VdNavigationDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdNavigationDrawerComponent, selector: "vd-navigation-drawer", inputs: { sidenavTitle: "sidenavTitle", icon: "icon", logo: "logo", color: "color", navigationRoute: "navigationRoute", backgroundUrl: "backgroundUrl", name: "name", email: "email" }, queries: [{ propertyName: "_drawerMenu", predicate: VdNavigationDrawerMenuDirective }, { propertyName: "_toolbar", predicate: VdNavigationDrawerToolbarDirective }], ngImport: i0, template: "<mat-toolbar [color]=\"color\" [style.background-image]=\"backgroundImage\" [class.vd-toolbar-background]=\"!!isBackgroundAvailable\"\r\n class=\"vd-nagivation-drawer-toolbar\">\r\n\t<ng-content select=\"[vd-navigation-drawer-toolbar]\"></ng-content>\r\n\t<ng-container *ngIf=\"!isCustomToolbar\">\r\n\t\t<div *ngIf=\"icon || logo || sidenavTitle\" class=\"vd-navigation-drawer-toolbar-content\" [class.cursor-pointer]=\"routerEnabled\"\r\n\t\t (click)=\"handleNavigationClick()\">\r\n\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t<span *ngIf=\"sidenavTitle\" class=\"vd-navigation-drawer-title\">{{sidenavTitle}}</span>\r\n\t\t</div>\r\n\t\t<div class=\"vd-navigation-drawer-name\" *ngIf=\"email && name\">{{name}}</div>\r\n\t\t<div class=\"vd-navigation-drawer-menu-toggle\" href *ngIf=\"email || name\" (click)=\"toggleMenu()\">\r\n\t\t\t<span class=\"vd-navigation-drawer-label\">{{email || name}}</span>\r\n\t\t\t<button mat-icon-button class=\"vd-navigation-drawer-menu-button\" *ngIf=\"isMenuAvailable\">\r\n\t\t\t\t<mat-icon *ngIf=\"!menuToggled\">arrow_drop_down</mat-icon>\r\n\t\t\t\t<mat-icon *ngIf=\"menuToggled\">arrow_drop_up</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</ng-container>\r\n</mat-toolbar>\r\n<div class=\"vd-navigation-drawer-content\" [@vdCollapse]=\"menuToggled\">\r\n\t<ng-content></ng-content>\r\n</div>\r\n<div class=\"vd-navigation-drawer-menu-content\" [@vdCollapse]=\"!menuToggled\">\r\n\t<ng-content select=\"[vd-navigation-drawer-menu]\"></ng-content>\r\n</div>", styles: [":host{width:100%}:host .vd-navigation-drawer-content.ng-animating,:host .vd-navigation-drawer-menu-content.ng-animating{overflow:hidden}:host mat-toolbar{padding:16px}:host mat-toolbar.vd-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.vd-nagivation-drawer-toolbar{flex-direction:column;height:auto!important;display:block!important}:host mat-toolbar .vd-navigation-drawer-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host mat-toolbar .vd-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-label{flex:1}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-menu-button{height:24px;line-height:24px;width:24px}:host>div{overflow:hidden}\n"], components: [{ type: i3$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [VdCollapseAnimation()] });
15199
15403
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdNavigationDrawerComponent, decorators: [{
15200
15404
  type: Component,
15201
15405
  args: [{ selector: 'vd-navigation-drawer', animations: [VdCollapseAnimation()], template: "<mat-toolbar [color]=\"color\" [style.background-image]=\"backgroundImage\" [class.vd-toolbar-background]=\"!!isBackgroundAvailable\"\r\n class=\"vd-nagivation-drawer-toolbar\">\r\n\t<ng-content select=\"[vd-navigation-drawer-toolbar]\"></ng-content>\r\n\t<ng-container *ngIf=\"!isCustomToolbar\">\r\n\t\t<div *ngIf=\"icon || logo || sidenavTitle\" class=\"vd-navigation-drawer-toolbar-content\" [class.cursor-pointer]=\"routerEnabled\"\r\n\t\t (click)=\"handleNavigationClick()\">\r\n\t\t\t<mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\r\n\t\t\t<mat-icon *ngIf=\"logo && !icon\" class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n\t\t\t<span *ngIf=\"sidenavTitle\" class=\"vd-navigation-drawer-title\">{{sidenavTitle}}</span>\r\n\t\t</div>\r\n\t\t<div class=\"vd-navigation-drawer-name\" *ngIf=\"email && name\">{{name}}</div>\r\n\t\t<div class=\"vd-navigation-drawer-menu-toggle\" href *ngIf=\"email || name\" (click)=\"toggleMenu()\">\r\n\t\t\t<span class=\"vd-navigation-drawer-label\">{{email || name}}</span>\r\n\t\t\t<button mat-icon-button class=\"vd-navigation-drawer-menu-button\" *ngIf=\"isMenuAvailable\">\r\n\t\t\t\t<mat-icon *ngIf=\"!menuToggled\">arrow_drop_down</mat-icon>\r\n\t\t\t\t<mat-icon *ngIf=\"menuToggled\">arrow_drop_up</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</ng-container>\r\n</mat-toolbar>\r\n<div class=\"vd-navigation-drawer-content\" [@vdCollapse]=\"menuToggled\">\r\n\t<ng-content></ng-content>\r\n</div>\r\n<div class=\"vd-navigation-drawer-menu-content\" [@vdCollapse]=\"!menuToggled\">\r\n\t<ng-content select=\"[vd-navigation-drawer-menu]\"></ng-content>\r\n</div>", styles: [":host{width:100%}:host .vd-navigation-drawer-content.ng-animating,:host .vd-navigation-drawer-menu-content.ng-animating{overflow:hidden}:host mat-toolbar{padding:16px}:host mat-toolbar.vd-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.vd-nagivation-drawer-toolbar{flex-direction:column;height:auto!important;display:block!important}:host mat-toolbar .vd-navigation-drawer-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host mat-toolbar .vd-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-label{flex:1}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-menu-button{height:24px;line-height:24px;width:24px}:host>div{overflow:hidden}\n"] }]
@@ -15293,7 +15497,8 @@ class VdLayoutModule {
15293
15497
  MatCardModule,
15294
15498
  MatListModule,
15295
15499
  MatMenuModule,
15296
- MatProgressSpinnerModule], exports: [VdLayoutComponent,
15500
+ MatProgressSpinnerModule,
15501
+ VdMenuModule], exports: [VdLayoutComponent,
15297
15502
  VdLayoutToggleDirective,
15298
15503
  VdLayoutCloseDirective,
15299
15504
  VdLayoutOpenDirective,
@@ -15325,7 +15530,8 @@ class VdLayoutModule {
15325
15530
  MatCardModule,
15326
15531
  MatListModule,
15327
15532
  MatMenuModule,
15328
- MatProgressSpinnerModule
15533
+ MatProgressSpinnerModule,
15534
+ VdMenuModule
15329
15535
  ]] });
15330
15536
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdLayoutModule, decorators: [{
15331
15537
  type: NgModule,
@@ -15340,7 +15546,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
15340
15546
  MatCardModule,
15341
15547
  MatListModule,
15342
15548
  MatMenuModule,
15343
- MatProgressSpinnerModule
15549
+ MatProgressSpinnerModule,
15550
+ VdMenuModule
15344
15551
  ],
15345
15552
  declarations: [
15346
15553
  VD_LAYOUTS,
@@ -15492,180 +15699,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
15492
15699
  }]
15493
15700
  }] });
15494
15701
 
15495
- class VdMenuComponent {
15496
- constructor() {
15497
- /**
15498
- * Menu items
15499
- */
15500
- this.items = [];
15501
- /**
15502
- * This will add the classes only when the url matches the link exactly.
15503
- */
15504
- this.activeExact = false;
15505
- /**
15506
- * click?: function
15507
- * Event emitted when a menu item is clicked.
15508
- */
15509
- this.onClick = new EventEmitter();
15510
- }
15511
- /**
15512
- * Event emitted when a meni item is clicked.
15513
- */
15514
- itemClicked($event) {
15515
- if ($event instanceof EventEmitter) {
15516
- $event.emit();
15517
- }
15518
- else {
15519
- this.onClick.emit($event);
15520
- }
15521
- }
15522
- }
15523
- /** @nocollapse */ /** @nocollapse */ VdMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15524
- /** @nocollapse */ /** @nocollapse */ VdMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdMenuComponent, selector: "vd-menu", inputs: { items: "items", activeExact: "activeExact", avatar: "avatar" }, outputs: { onClick: "click" }, ngImport: i0, template: "<mat-nav-list>\r\n\t<ng-template let-item let-last=\"last\" ngFor [ngForOf]=\"items\">\r\n\t\t<a mat-list-item *ngIf=\"item.enabled\" [routerLink]=\"item.path\" [routerLinkActive]=\"['active']\" [routerLinkActiveOptions]=\"{exact:item.activeExact}\" (click)=\"itemClicked(item.event?item.event:$event)\">\r\n\t\t\t<mat-icon *ngIf=\"!avatar\" mat-list-icon>{{item.icon}}</mat-icon>\r\n\t\t\t<span *ngIf=\"!avatar\">{{item.title}}</span>\r\n\t\t\t<mat-icon *ngIf=\"avatar\" matListAvatar>{{item.icon}}</mat-icon>\r\n\t\t\t<h3 *ngIf=\"avatar\" matLine>{{item.title}}</h3>\r\n\t\t\t<p *ngIf=\"avatar && item.description\" matLine> {{item.description}} </p>\r\n\t\t</a>\r\n\t\t<mat-divider *ngIf=\"item.divider && !avatar\"></mat-divider>\r\n\t\t<mat-divider [inset]=\"avatar\" *ngIf=\"!item.divider && avatar && !last\"></mat-divider>\r\n\t</ng-template>\r\n</mat-nav-list>", styles: [""], components: [{ type: i1$8.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i1$8.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1$4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i1$8.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { type: i1$8.MatListAvatarCssMatStyler, selector: "[mat-list-avatar], [matListAvatar]" }, { type: i2$1.MatLine, selector: "[mat-line], [matLine]" }] });
15525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuComponent, decorators: [{
15526
- type: Component,
15527
- args: [{ selector: 'vd-menu', template: "<mat-nav-list>\r\n\t<ng-template let-item let-last=\"last\" ngFor [ngForOf]=\"items\">\r\n\t\t<a mat-list-item *ngIf=\"item.enabled\" [routerLink]=\"item.path\" [routerLinkActive]=\"['active']\" [routerLinkActiveOptions]=\"{exact:item.activeExact}\" (click)=\"itemClicked(item.event?item.event:$event)\">\r\n\t\t\t<mat-icon *ngIf=\"!avatar\" mat-list-icon>{{item.icon}}</mat-icon>\r\n\t\t\t<span *ngIf=\"!avatar\">{{item.title}}</span>\r\n\t\t\t<mat-icon *ngIf=\"avatar\" matListAvatar>{{item.icon}}</mat-icon>\r\n\t\t\t<h3 *ngIf=\"avatar\" matLine>{{item.title}}</h3>\r\n\t\t\t<p *ngIf=\"avatar && item.description\" matLine> {{item.description}} </p>\r\n\t\t</a>\r\n\t\t<mat-divider *ngIf=\"item.divider && !avatar\"></mat-divider>\r\n\t\t<mat-divider [inset]=\"avatar\" *ngIf=\"!item.divider && avatar && !last\"></mat-divider>\r\n\t</ng-template>\r\n</mat-nav-list>", styles: [""] }]
15528
- }], propDecorators: { items: [{
15529
- type: Input
15530
- }], activeExact: [{
15531
- type: Input
15532
- }], avatar: [{
15533
- type: Input
15534
- }], onClick: [{
15535
- type: Output,
15536
- args: ['click']
15537
- }] } });
15538
-
15539
- class MenuService extends GenericService {
15540
- /**
15541
- * Constructor
15542
- * @param _http
15543
- */
15544
- constructor() {
15545
- super('menu');
15546
- }
15547
- }
15548
- /** @nocollapse */ /** @nocollapse */ MenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15549
- /** @nocollapse */ /** @nocollapse */ MenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuService, providedIn: 'root' });
15550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuService, decorators: [{
15551
- type: Injectable,
15552
- args: [{ providedIn: 'root' }]
15553
- }], ctorParameters: function () { return []; } });
15554
-
15555
- var MenuScope;
15556
- (function (MenuScope) {
15557
- MenuScope[MenuScope["Site"] = 0] = "Site";
15558
- MenuScope[MenuScope["Admin"] = 1] = "Admin";
15559
- })(MenuScope || (MenuScope = {}));
15560
-
15561
- class Menu {
15562
- }
15563
-
15564
- class MenuItem {
15565
- }
15566
-
15567
- class MenuItemService extends GenericService {
15568
- /**
15569
- * Constructor
15570
- * @param _http
15571
- */
15572
- constructor() {
15573
- super('menuitem');
15574
- }
15575
- }
15576
- /** @nocollapse */ /** @nocollapse */ MenuItemService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuItemService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15577
- /** @nocollapse */ /** @nocollapse */ MenuItemService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuItemService, providedIn: 'root' });
15578
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuItemService, decorators: [{
15579
- type: Injectable,
15580
- args: [{ providedIn: 'root' }]
15581
- }], ctorParameters: function () { return []; } });
15582
-
15583
- /**
15584
- * Menu resolve service
15585
- */
15586
- class MenuResolve {
15587
- /**
15588
- * Constructor
15589
- * @param menuService
15590
- */
15591
- constructor(menuService) {
15592
- this.menuService = menuService;
15593
- }
15594
- /**
15595
- * Resolves menu items
15596
- * @param route
15597
- */
15598
- resolve(route) {
15599
- return this.menuService.getList(route.data || {}, null, { cache: 'yes' });
15600
- }
15601
- }
15602
- /** @nocollapse */ /** @nocollapse */ MenuResolve.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuResolve, deps: [{ token: MenuService }], target: i0.ɵɵFactoryTarget.Injectable });
15603
- /** @nocollapse */ /** @nocollapse */ MenuResolve.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuResolve });
15604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MenuResolve, decorators: [{
15605
- type: Injectable
15606
- }], ctorParameters: function () { return [{ type: MenuService }]; } });
15607
- /**
15608
- * Submenu resolve service
15609
- */
15610
- class SubMenuResolve {
15611
- /**
15612
- * Resolves menu items
15613
- * @param route
15614
- * @param state
15615
- */
15616
- resolve(route, state) {
15617
- /* Check menu items in route data */
15618
- if (route.parent.data.menu) {
15619
- /* Get Admin menu */
15620
- var adminMenu = route.parent.data.menu[0];
15621
- if (adminMenu && adminMenu.items) {
15622
- return adminMenu.items.filter(x => x.path == `/${route.url[0].path}`)[0];
15623
- }
15624
- }
15625
- return [];
15626
- }
15627
- }
15628
- /** @nocollapse */ /** @nocollapse */ SubMenuResolve.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SubMenuResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15629
- /** @nocollapse */ /** @nocollapse */ SubMenuResolve.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SubMenuResolve });
15630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SubMenuResolve, decorators: [{
15631
- type: Injectable
15632
- }] });
15633
-
15634
- const DECLARATIONS$2 = [
15635
- VdMenuComponent
15636
- ];
15637
- class VdMenuModule {
15638
- }
15639
- /** @nocollapse */ /** @nocollapse */ VdMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15640
- /** @nocollapse */ /** @nocollapse */ VdMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuModule, declarations: [VdMenuComponent], imports: [CommonModule,
15641
- RouterModule,
15642
- MatIconModule,
15643
- MatListModule], exports: [VdMenuComponent] });
15644
- /** @nocollapse */ /** @nocollapse */ VdMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuModule, providers: [MenuService], imports: [[
15645
- CommonModule,
15646
- RouterModule,
15647
- MatIconModule,
15648
- MatListModule
15649
- ]] });
15650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdMenuModule, decorators: [{
15651
- type: NgModule,
15652
- args: [{
15653
- imports: [
15654
- CommonModule,
15655
- RouterModule,
15656
- MatIconModule,
15657
- MatListModule
15658
- ],
15659
- declarations: [
15660
- DECLARATIONS$2
15661
- ],
15662
- exports: [
15663
- DECLARATIONS$2
15664
- ],
15665
- providers: [MenuService]
15666
- }]
15667
- }] });
15668
-
15669
15702
  class VdSearchInputComponent {
15670
15703
  constructor(_dir) {
15671
15704
  this._dir = _dir;
@@ -15735,8 +15768,8 @@ class VdSearchInputComponent {
15735
15768
  this.onSearchDebounce.emit(value);
15736
15769
  }
15737
15770
  }
15738
- /** @nocollapse */ /** @nocollapse */ VdSearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdSearchInputComponent, deps: [{ token: i1$9.Dir, optional: true }], target: i0.ɵɵFactoryTarget.Component });
15739
- /** @nocollapse */ /** @nocollapse */ VdSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdSearchInputComponent, selector: "vd-search-input", inputs: { showUnderline: "showUnderline", debounce: "debounce", placeholder: "placeholder" }, outputs: { onSearchDebounce: "searchDebounce", onSearch: "search", onClear: "clear", onBlur: "blur" }, viewQueries: [{ propertyName: "_input", first: true, predicate: MatInput, descendants: true, static: true }], ngImport: i0, template: "<div class=\"vd-search-input\" layout=\"row\" layout-align=\"end center\">\r\n\t<mat-form-field [class.mat-hide-underline]=\"!showUnderline\" floatPlaceholder=\"never\" flex appearance=\"legacy\">\r\n\t\t<input matInput #searchElement type=\"search\" [(ngModel)]=\"value\" [placeholder]=\"placeholder\" (blur)=\"handleBlur()\" (search)=\"stopPropagation($event)\" (keyup.enter)=\"handleSearch($event)\" />\r\n\t</mat-form-field>\r\n\t<button mat-icon-button type=\"button\" [@searchState]=\"(searchElement.value ? 'show' : (isRTL ? 'hide-left' : 'hide-right'))\" (click)=\"clearSearch()\" flex=\"none\">\r\n\t\t<mat-icon>cancel</mat-icon>\r\n\t</button>\r\n</div>", styles: [".vd-search-input{overflow-x:hidden}.vd-search-input ::ng-deep mat-form-field.mat-hide-underline .mat-input-underline{display:none}\n"], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
15771
+ /** @nocollapse */ /** @nocollapse */ VdSearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdSearchInputComponent, deps: [{ token: i1$8.Dir, optional: true }], target: i0.ɵɵFactoryTarget.Component });
15772
+ /** @nocollapse */ /** @nocollapse */ VdSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdSearchInputComponent, selector: "vd-search-input", inputs: { showUnderline: "showUnderline", debounce: "debounce", placeholder: "placeholder" }, outputs: { onSearchDebounce: "searchDebounce", onSearch: "search", onClear: "clear", onBlur: "blur" }, viewQueries: [{ propertyName: "_input", first: true, predicate: MatInput, descendants: true, static: true }], ngImport: i0, template: "<div class=\"vd-search-input\" layout=\"row\" layout-align=\"end center\">\r\n\t<mat-form-field [class.mat-hide-underline]=\"!showUnderline\" floatPlaceholder=\"never\" flex appearance=\"legacy\">\r\n\t\t<input matInput #searchElement type=\"search\" [(ngModel)]=\"value\" [placeholder]=\"placeholder\" (blur)=\"handleBlur()\" (search)=\"stopPropagation($event)\" (keyup.enter)=\"handleSearch($event)\" />\r\n\t</mat-form-field>\r\n\t<button mat-icon-button type=\"button\" [@searchState]=\"(searchElement.value ? 'show' : (isRTL ? 'hide-left' : 'hide-right'))\" (click)=\"clearSearch()\" flex=\"none\">\r\n\t\t<mat-icon>cancel</mat-icon>\r\n\t</button>\r\n</div>", styles: [".vd-search-input{overflow-x:hidden}.vd-search-input ::ng-deep mat-form-field.mat-hide-underline .mat-input-underline{display:none}\n"], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
15740
15773
  trigger('searchState', [
15741
15774
  state('hide-left', style({
15742
15775
  transform: 'translateX(-150%)',
@@ -15774,7 +15807,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
15774
15807
  transition('show => *', animate('200ms ease-out')),
15775
15808
  ]),
15776
15809
  ], template: "<div class=\"vd-search-input\" layout=\"row\" layout-align=\"end center\">\r\n\t<mat-form-field [class.mat-hide-underline]=\"!showUnderline\" floatPlaceholder=\"never\" flex appearance=\"legacy\">\r\n\t\t<input matInput #searchElement type=\"search\" [(ngModel)]=\"value\" [placeholder]=\"placeholder\" (blur)=\"handleBlur()\" (search)=\"stopPropagation($event)\" (keyup.enter)=\"handleSearch($event)\" />\r\n\t</mat-form-field>\r\n\t<button mat-icon-button type=\"button\" [@searchState]=\"(searchElement.value ? 'show' : (isRTL ? 'hide-left' : 'hide-right'))\" (click)=\"clearSearch()\" flex=\"none\">\r\n\t\t<mat-icon>cancel</mat-icon>\r\n\t</button>\r\n</div>", styles: [".vd-search-input{overflow-x:hidden}.vd-search-input ::ng-deep mat-form-field.mat-hide-underline .mat-input-underline{display:none}\n"] }]
15777
- }], ctorParameters: function () { return [{ type: i1$9.Dir, decorators: [{
15810
+ }], ctorParameters: function () { return [{ type: i1$8.Dir, decorators: [{
15778
15811
  type: Optional
15779
15812
  }] }]; }, propDecorators: { _input: [{
15780
15813
  type: ViewChild,
@@ -15874,7 +15907,7 @@ class VdSearchBoxComponent {
15874
15907
  }
15875
15908
  }
15876
15909
  /** @nocollapse */ /** @nocollapse */ VdSearchBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VdSearchBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15877
- /** @nocollapse */ /** @nocollapse */ VdSearchBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdSearchBoxComponent, selector: "vd-search-box", inputs: { backIcon: "backIcon", showUnderline: "showUnderline", debounce: "debounce", alwaysVisible: "alwaysVisible", placeholder: "placeholder" }, outputs: { onSearchDebounce: "searchDebounce", onSearch: "search", onClear: "clear" }, viewQueries: [{ propertyName: "_searchInput", first: true, predicate: VdSearchInputComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"vd-search-box\" layout=\"row\" layout-align=\"end center\">\r\n\t<button mat-icon-button type=\"button\" class=\"vd-search-icon\" flex=\"none\" (click)=\"searchClicked()\">\r\n\t\t <mat-icon *ngIf=\"searchVisible && !alwaysVisible\">{{backIcon}}</mat-icon>\r\n\t\t <mat-icon *ngIf=\"!searchVisible || alwaysVisible\">search</mat-icon>\r\n\t\t</button>\r\n\t<vd-search-input #searchInput [@inputState]=\"alwaysVisible || searchVisible\" [debounce]=\"debounce\" [showUnderline]=\"showUnderline\"\r\n\t [placeholder]=\"placeholder\" (searchDebounce)=\"handleSearchDebounce($event)\" (search)=\"handleSearch($event)\" (clear)=\"handleClear(); toggleVisibility()\">\r\n\t</vd-search-input>\r\n</div>", styles: [":host{display:block}.vd-search-box vd-search-input{margin-left:12px}::ng-deep [dir=rtl] .vd-search-box vd-search-input{margin-right:12px;margin-left:0!important}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: VdSearchInputComponent, selector: "vd-search-input", inputs: ["showUnderline", "debounce", "placeholder"], outputs: ["searchDebounce", "search", "clear", "blur"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
15910
+ /** @nocollapse */ /** @nocollapse */ VdSearchBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: VdSearchBoxComponent, selector: "vd-search-box", inputs: { backIcon: "backIcon", showUnderline: "showUnderline", debounce: "debounce", alwaysVisible: "alwaysVisible", placeholder: "placeholder" }, outputs: { onSearchDebounce: "searchDebounce", onSearch: "search", onClear: "clear" }, viewQueries: [{ propertyName: "_searchInput", first: true, predicate: VdSearchInputComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"vd-search-box\" layout=\"row\" layout-align=\"end center\">\r\n\t<button mat-icon-button type=\"button\" class=\"vd-search-icon\" flex=\"none\" (click)=\"searchClicked()\">\r\n\t\t <mat-icon *ngIf=\"searchVisible && !alwaysVisible\">{{backIcon}}</mat-icon>\r\n\t\t <mat-icon *ngIf=\"!searchVisible || alwaysVisible\">search</mat-icon>\r\n\t\t</button>\r\n\t<vd-search-input #searchInput [@inputState]=\"alwaysVisible || searchVisible\" [debounce]=\"debounce\" [showUnderline]=\"showUnderline\"\r\n\t [placeholder]=\"placeholder\" (searchDebounce)=\"handleSearchDebounce($event)\" (search)=\"handleSearch($event)\" (clear)=\"handleClear(); toggleVisibility()\">\r\n\t</vd-search-input>\r\n</div>", styles: [":host{display:block}.vd-search-box vd-search-input{margin-left:12px}::ng-deep [dir=rtl] .vd-search-box vd-search-input{margin-right:12px;margin-left:0!important}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: VdSearchInputComponent, selector: "vd-search-input", inputs: ["showUnderline", "debounce", "placeholder"], outputs: ["searchDebounce", "search", "clear", "blur"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
15878
15911
  trigger('inputState', [
15879
15912
  state('false', style({
15880
15913
  width: '0%',
@@ -16053,8 +16086,8 @@ function Table(tableDefinition) {
16053
16086
  if (actions?.length > 0 && pTableDefinition.columns?.length > 0) {
16054
16087
  var actionColmun = pTableDefinition.columns?.find(x => x.name == 'action');
16055
16088
  if (actionColmun != null) {
16056
- actionColmun.actionMenus = actionColmun.actionMenus || [];
16057
- actions.forEach(y => actionColmun.actionMenus.push(y));
16089
+ actionColmun.rowMenuItems = actionColmun.rowMenuItems || [];
16090
+ actions.forEach(y => actionColmun.rowMenuItems.push(y));
16058
16091
  }
16059
16092
  else {
16060
16093
  pTableDefinition.columns.push(new TableColumn({
@@ -16062,7 +16095,7 @@ function Table(tableDefinition) {
16062
16095
  name: 'action',
16063
16096
  type: TableColumnType.Action,
16064
16097
  disabled: true,
16065
- actionMenus: actions
16098
+ rowMenuItems: actions
16066
16099
  }));
16067
16100
  }
16068
16101
  }