@messaia/cdk 20.2.7 → 21.0.0-rc.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.
- package/fesm2022/messaia-cdk.mjs +154 -163
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- package/package.json +3 -3
package/fesm2022/messaia-cdk.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import {
|
|
1
|
+
import * as i3$1 from '@angular/common';
|
|
2
|
+
import { Location, getLocaleNumberSymbol, NumberSymbol, CommonModule, DecimalPipe, JsonPipe } from '@angular/common';
|
|
3
3
|
import * as i1$6 from '@angular/common/http';
|
|
4
4
|
import { HttpHeaders, HttpParams, HttpClient, HttpRequest, HttpEventType, HttpResponse } from '@angular/common/http';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
@@ -10,25 +10,25 @@ import * as i6$3 from '@angular/material/expansion';
|
|
|
10
10
|
import { MatExpansionPanel, MatExpansionModule } from '@angular/material/expansion';
|
|
11
11
|
import * as i2$3 from '@angular/material/snack-bar';
|
|
12
12
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
13
|
-
import * as i1$
|
|
13
|
+
import * as i1$3 from '@angular/platform-browser';
|
|
14
14
|
import { Title } from '@angular/platform-browser';
|
|
15
|
-
import * as i1$
|
|
15
|
+
import * as i1$2 from '@angular/router';
|
|
16
16
|
import { Router, RouterModule } from '@angular/router';
|
|
17
17
|
import { fromEvent, Subject, map, of, BehaviorSubject, throwError, filter, distinctUntilChanged, debounceTime, merge as merge$1, tap, Observable, takeUntil as takeUntil$1 } from 'rxjs';
|
|
18
|
-
import * as
|
|
18
|
+
import * as i2 from '@angular/material/button';
|
|
19
19
|
import { MatButtonModule, MatIconButton } from '@angular/material/button';
|
|
20
20
|
import * as i8 from '@angular/material/icon';
|
|
21
21
|
import { MatIcon, MatIconModule } from '@angular/material/icon';
|
|
22
|
-
import * as i1$
|
|
22
|
+
import * as i1$1 from '@angular/forms';
|
|
23
23
|
import { FormsModule, FormArray, FormGroup, FormControl, NG_ASYNC_VALIDATORS, NG_VALUE_ACCESSOR, NG_VALIDATORS, AbstractControl, FormBuilder, ReactiveFormsModule, FormControlName, FormControlDirective, NgControl, NgForm, FormGroupDirective, Validators } from '@angular/forms';
|
|
24
|
-
import * as
|
|
24
|
+
import * as i7 from '@angular/material/form-field';
|
|
25
25
|
import { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';
|
|
26
|
-
import * as
|
|
26
|
+
import * as i3 from '@angular/material/progress-bar';
|
|
27
27
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
28
28
|
import { takeUntil, map as map$1, catchError, skip, switchMap, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, tap as tap$1, finalize } from 'rxjs/operators';
|
|
29
|
-
import * as
|
|
29
|
+
import * as i5 from '@angular/material/checkbox';
|
|
30
30
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
31
|
-
import * as i10
|
|
31
|
+
import * as i10 from '@angular/material/paginator';
|
|
32
32
|
import { MatPaginatorModule, MatPaginator, MatPaginatorIntl } from '@angular/material/paginator';
|
|
33
33
|
import { trigger, state, transition, style, AUTO_STYLE, group, query, animate, animateChild } from '@angular/animations';
|
|
34
34
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
@@ -38,7 +38,7 @@ import * as i5$1 from '@angular/material/chips';
|
|
|
38
38
|
import { MatChipsModule } from '@angular/material/chips';
|
|
39
39
|
import * as i6 from '@angular/material/input';
|
|
40
40
|
import { MatInputModule, MatInput } from '@angular/material/input';
|
|
41
|
-
import * as
|
|
41
|
+
import * as i1$4 from '@angular/material/menu';
|
|
42
42
|
import { MatMenuTrigger, MatMenuModule, MatMenu } from '@angular/material/menu';
|
|
43
43
|
import * as i16 from '@angular/material/slide-toggle';
|
|
44
44
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
@@ -46,7 +46,7 @@ import * as i12 from '@angular/material/sort';
|
|
|
46
46
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
47
47
|
import * as i1$5 from '@angular/material/table';
|
|
48
48
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
49
|
-
import * as
|
|
49
|
+
import * as i3$2 from '@angular/material/tooltip';
|
|
50
50
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
51
51
|
import { __decorate, __metadata } from 'tslib';
|
|
52
52
|
import 'reflect-metadata';
|
|
@@ -62,26 +62,26 @@ import * as i6$1 from '@angular/material/datepicker';
|
|
|
62
62
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
63
63
|
import { saveAs } from 'file-saver';
|
|
64
64
|
import { MatStepper } from '@angular/material/stepper';
|
|
65
|
-
import * as i4
|
|
65
|
+
import * as i4 from '@angular/material/autocomplete';
|
|
66
66
|
import { MatAutocompleteModule, MatAutocomplete, MatAutocompleteTrigger, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
|
|
67
67
|
import * as i6$2 from '@angular/material/divider';
|
|
68
68
|
import { MatDividerModule, MatDivider } from '@angular/material/divider';
|
|
69
69
|
import { ENTER, COMMA } from '@angular/cdk/keycodes';
|
|
70
70
|
import * as i11 from 'ngx-colors';
|
|
71
71
|
import { NgxColorsModule } from 'ngx-colors';
|
|
72
|
-
import * as i4$
|
|
72
|
+
import * as i4$2 from '@angular/material/list';
|
|
73
73
|
import { MatSelectionList, MatListOption, MatListModule } from '@angular/material/list';
|
|
74
|
-
import * as i3$
|
|
75
|
-
import * as i4$
|
|
74
|
+
import * as i3$3 from '@angular/cdk/platform';
|
|
75
|
+
import * as i4$1 from '@angular/cdk/text-field';
|
|
76
76
|
import * as i5$2 from '@tinymce/tinymce-angular';
|
|
77
|
-
import * as
|
|
77
|
+
import * as i2$6 from '@angular/material/card';
|
|
78
78
|
import { MatCardModule } from '@angular/material/card';
|
|
79
|
-
import * as i3$
|
|
79
|
+
import * as i3$4 from '@angular/material/sidenav';
|
|
80
80
|
import { MatSidenavModule, MatSidenav } from '@angular/material/sidenav';
|
|
81
|
-
import * as
|
|
81
|
+
import * as i4$3 from '@angular/material/toolbar';
|
|
82
82
|
import { MatToolbarModule, MatToolbar } from '@angular/material/toolbar';
|
|
83
83
|
import * as i1$7 from 'angular-auth-oidc-client';
|
|
84
|
-
import * as
|
|
84
|
+
import * as i2$7 from '@angular/cdk/scrolling';
|
|
85
85
|
|
|
86
86
|
class AppSetting {
|
|
87
87
|
/**
|
|
@@ -210,25 +210,28 @@ class VdAlertDialogComponent {
|
|
|
210
210
|
this._dialogRef.close();
|
|
211
211
|
}
|
|
212
212
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdAlertDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
213
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
214
|
-
|
|
213
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdAlertDialogComponent, isStandalone: true, selector: "vd-alert-dialog", ngImport: i0, template: `
|
|
214
|
+
@if (title) {
|
|
215
|
+
<h1 mat-dialog-title>{{title}}</h1>
|
|
216
|
+
}
|
|
215
217
|
<mat-dialog-content class="mat-subhead" [innerHtml]="message"></mat-dialog-content>
|
|
216
218
|
<mat-dialog-actions align="end">
|
|
217
|
-
|
|
218
|
-
</mat-dialog-actions>`, isInline: true, dependencies: [{ kind: "ngmodule", type:
|
|
219
|
+
<button mat-button color="accent" (click)="close()">{{closeButton}}</button>
|
|
220
|
+
</mat-dialog-actions>`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
|
|
219
221
|
}
|
|
220
222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdAlertDialogComponent, decorators: [{
|
|
221
223
|
type: Component,
|
|
222
224
|
args: [{
|
|
223
225
|
selector: 'vd-alert-dialog',
|
|
224
226
|
template: `
|
|
225
|
-
|
|
227
|
+
@if (title) {
|
|
228
|
+
<h1 mat-dialog-title>{{title}}</h1>
|
|
229
|
+
}
|
|
226
230
|
<mat-dialog-content class="mat-subhead" [innerHtml]="message"></mat-dialog-content>
|
|
227
231
|
<mat-dialog-actions align="end">
|
|
228
|
-
|
|
232
|
+
<button mat-button color="accent" (click)="close()">{{closeButton}}</button>
|
|
229
233
|
</mat-dialog-actions>`,
|
|
230
234
|
imports: [
|
|
231
|
-
CommonModule,
|
|
232
235
|
MatButtonModule,
|
|
233
236
|
MatDialogModule
|
|
234
237
|
]
|
|
@@ -281,16 +284,15 @@ class VdConfirmDialogComponent {
|
|
|
281
284
|
this.dialogRef.close(true);
|
|
282
285
|
}
|
|
283
286
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdConfirmDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
284
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
287
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdConfirmDialogComponent, isStandalone: true, selector: "vd-confirm-dialog", ngImport: i0, template: "@if (title) {\r\n <h2 mat-dialog-title class=\"push-top-sm\" layout=\"row\" layout-align=\"start center\" flex>\r\n <mat-icon fontSet=\"material-symbols-outlined\" class=\"push-right-sm tc-blue-400\">help</mat-icon>\r\n <span>{{title}}</span>\r\n </h2>\r\n}\r\n<mat-dialog-content class=\"mat-subhead\" [innerHtml]=\"message\"></mat-dialog-content>\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-button #closeBtn (keydown.arrowright)=\"acceptBtn.focus()\" (click)=\"cancel()\">{{cancelButton}}</button>\r\n <button mat-button color=\"accent\" #acceptBtn (keydown.arrowleft)=\"closeBtn.focus()\" (click)=\"accept()\">{{acceptButton}}</button>\r\n</mat-dialog-actions>", dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
|
|
285
288
|
}
|
|
286
289
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdConfirmDialogComponent, decorators: [{
|
|
287
290
|
type: Component,
|
|
288
291
|
args: [{ selector: 'vd-confirm-dialog', imports: [
|
|
289
|
-
CommonModule,
|
|
290
292
|
MatIcon,
|
|
291
293
|
MatButtonModule,
|
|
292
294
|
MatDialogModule
|
|
293
|
-
], template: "<h2 mat-dialog-title
|
|
295
|
+
], template: "@if (title) {\r\n <h2 mat-dialog-title class=\"push-top-sm\" layout=\"row\" layout-align=\"start center\" flex>\r\n <mat-icon fontSet=\"material-symbols-outlined\" class=\"push-right-sm tc-blue-400\">help</mat-icon>\r\n <span>{{title}}</span>\r\n </h2>\r\n}\r\n<mat-dialog-content class=\"mat-subhead\" [innerHtml]=\"message\"></mat-dialog-content>\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-button #closeBtn (keydown.arrowright)=\"acceptBtn.focus()\" (click)=\"cancel()\">{{cancelButton}}</button>\r\n <button mat-button color=\"accent\" #acceptBtn (keydown.arrowleft)=\"closeBtn.focus()\" (click)=\"accept()\">{{acceptButton}}</button>\r\n</mat-dialog-actions>" }]
|
|
294
296
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }] });
|
|
295
297
|
|
|
296
298
|
class VdDialogTitleDirective {
|
|
@@ -339,11 +341,11 @@ class VdDialogComponent {
|
|
|
339
341
|
}
|
|
340
342
|
}
|
|
341
343
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
342
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
344
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdDialogComponent, isStandalone: true, selector: "vd-dialog", queries: [{ propertyName: "dialogTitle", predicate: VdDialogTitleDirective }, { propertyName: "dialogContent", predicate: VdDialogContentDirective }, { propertyName: "dialogActions", predicate: VdDialogActionsDirective }], ngImport: i0, template: "<div class=\"vd-dialog-wrapper\">\r\n @if ((dialogTitle?.length??0) > 0) {\r\n <h3 class=\"vd-dialog-title md-title\">\r\n <ng-content select=\"vd-dialog-title\"></ng-content>\r\n </h3>\r\n }\r\n @if ((dialogContent?.length??0) > 0) {\r\n <div class=\"vd-dialog-content\">\r\n <ng-content select=\"vd-dialog-content\"></ng-content>\r\n </div>\r\n }\r\n @if ((dialogActions?.length??0) > 0) {\r\n <div class=\"vd-dialog-actions\" layout=\"row\">\r\n <span flex></span>\r\n <ng-content select=\"vd-dialog-actions\"></ng-content>\r\n </div>\r\n }\r\n</div>", styles: [".vd-dialog-title{margin-top:0;margin-bottom:20px}.vd-dialog-content{margin-bottom:16px}.vd-dialog-actions{position:relative;top:16px;left:16px}::ng-deep [dir=rtl] .vd-dialog-actions{right:16px;left:auto}:host{display:block}:host .vd-dialog-actions ::ng-deep button{text-transform:uppercase;margin-left:8px}[dir=rtl] :host .vd-dialog-actions ::ng-deep button{margin-right:8px;margin-left:inherit}:host .vd-dialog-actions ::ng-deep button{padding-left:8px;padding-right:8px;min-width:64px}\n"] });
|
|
343
345
|
}
|
|
344
346
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdDialogComponent, decorators: [{
|
|
345
347
|
type: Component,
|
|
346
|
-
args: [{ selector: 'vd-dialog', imports: [
|
|
348
|
+
args: [{ selector: 'vd-dialog', imports: [], template: "<div class=\"vd-dialog-wrapper\">\r\n @if ((dialogTitle?.length??0) > 0) {\r\n <h3 class=\"vd-dialog-title md-title\">\r\n <ng-content select=\"vd-dialog-title\"></ng-content>\r\n </h3>\r\n }\r\n @if ((dialogContent?.length??0) > 0) {\r\n <div class=\"vd-dialog-content\">\r\n <ng-content select=\"vd-dialog-content\"></ng-content>\r\n </div>\r\n }\r\n @if ((dialogActions?.length??0) > 0) {\r\n <div class=\"vd-dialog-actions\" layout=\"row\">\r\n <span flex></span>\r\n <ng-content select=\"vd-dialog-actions\"></ng-content>\r\n </div>\r\n }\r\n</div>", styles: [".vd-dialog-title{margin-top:0;margin-bottom:20px}.vd-dialog-content{margin-bottom:16px}.vd-dialog-actions{position:relative;top:16px;left:16px}::ng-deep [dir=rtl] .vd-dialog-actions{right:16px;left:auto}:host{display:block}:host .vd-dialog-actions ::ng-deep button{text-transform:uppercase;margin-left:8px}[dir=rtl] :host .vd-dialog-actions ::ng-deep button{margin-right:8px;margin-left:inherit}:host .vd-dialog-actions ::ng-deep button{padding-left:8px;padding-right:8px;min-width:64px}\n"] }]
|
|
347
349
|
}], propDecorators: { dialogTitle: [{
|
|
348
350
|
type: ContentChildren,
|
|
349
351
|
args: [VdDialogTitleDirective]
|
|
@@ -382,12 +384,11 @@ class VdPromptDialogComponent {
|
|
|
382
384
|
this._dialogRef.close(this.value);
|
|
383
385
|
}
|
|
384
386
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdPromptDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
385
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
387
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdPromptDialogComponent, isStandalone: true, selector: "vd-prompt-dialog", ngImport: i0, template: "<vd-dialog>\r\n @if (title) {\r\n <vd-dialog-title>{{title}}</vd-dialog-title>\r\n }\r\n <vd-dialog-content layout=\"column\" class=\"mat-subhead\">\r\n <span [innerHtml]=\"message\"></span>\r\n <form #form=\"ngForm\" layout=\"row\" novalidate flex>\r\n <mat-form-field flex>\r\n <input matInput (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\" [(ngModel)]=\"value\" name=\"value\" required />\r\n </mat-form-field>\r\n </form>\r\n </vd-dialog-content>\r\n <vd-dialog-actions>\r\n <button mat-button #closeBtn (keydown.arrowright)=\"acceptBtn.focus()\" (click)=\"cancel()\">{{cancelButton}}</button>\r\n <button mat-button color=\"accent\" #acceptBtn (keydown.arrowleft)=\"closeBtn.focus()\" [disabled]=\"!form.valid\" (click)=\"accept()\">{{acceptButton}}</button>\r\n </vd-dialog-actions>\r\n</vd-dialog>", styles: ["@media(min-width:600px){vd-dialog{width:400px}}@media(max-width:599px){vd-dialog{width:250px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: VdDialogComponent, selector: "vd-dialog" }, { kind: "directive", type: VdDialogTitleDirective, selector: "vd-dialog-title" }, { kind: "directive", type: VdDialogContentDirective, selector: "vd-dialog-content" }, { kind: "directive", type: VdDialogActionsDirective, selector: "vd-dialog-actions" }] });
|
|
386
388
|
}
|
|
387
389
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdPromptDialogComponent, decorators: [{
|
|
388
390
|
type: Component,
|
|
389
391
|
args: [{ selector: 'vd-prompt-dialog', imports: [
|
|
390
|
-
CommonModule,
|
|
391
392
|
FormsModule,
|
|
392
393
|
MatFormFieldModule,
|
|
393
394
|
MatButtonModule,
|
|
@@ -395,7 +396,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
395
396
|
VdDialogTitleDirective,
|
|
396
397
|
VdDialogContentDirective,
|
|
397
398
|
VdDialogActionsDirective
|
|
398
|
-
], template: "<vd-dialog>\r\n\
|
|
399
|
+
], template: "<vd-dialog>\r\n @if (title) {\r\n <vd-dialog-title>{{title}}</vd-dialog-title>\r\n }\r\n <vd-dialog-content layout=\"column\" class=\"mat-subhead\">\r\n <span [innerHtml]=\"message\"></span>\r\n <form #form=\"ngForm\" layout=\"row\" novalidate flex>\r\n <mat-form-field flex>\r\n <input matInput (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\" [(ngModel)]=\"value\" name=\"value\" required />\r\n </mat-form-field>\r\n </form>\r\n </vd-dialog-content>\r\n <vd-dialog-actions>\r\n <button mat-button #closeBtn (keydown.arrowright)=\"acceptBtn.focus()\" (click)=\"cancel()\">{{cancelButton}}</button>\r\n <button mat-button color=\"accent\" #acceptBtn (keydown.arrowleft)=\"closeBtn.focus()\" [disabled]=\"!form.valid\" (click)=\"accept()\">{{acceptButton}}</button>\r\n </vd-dialog-actions>\r\n</vd-dialog>", styles: ["@media(min-width:600px){vd-dialog{width:400px}}@media(max-width:599px){vd-dialog{width:250px}}\n"] }]
|
|
399
400
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }] });
|
|
400
401
|
|
|
401
402
|
/**
|
|
@@ -1085,16 +1086,15 @@ class VdTaskDialogComponent {
|
|
|
1085
1086
|
this.unsubscribe.complete();
|
|
1086
1087
|
}
|
|
1087
1088
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdTaskDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
1088
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1089
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdTaskDialogComponent, isStandalone: true, selector: "vd-task-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-headline-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDrag cdkDragHandle>{{this.data.title}}</div>\r\n@if (inProgress) {\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n}\r\n@if (!inProgress) {\r\n <mat-progress-bar mode=\"determinate\" value=\"100\"></mat-progress-bar>\r\n}\r\n<div mat-dialog-content>{{content}}</div>\r\n<div mat-dialog-actions class=\"pad-top\">\r\n @for (btn of data.buttons; track btn) {\r\n @if (btn.type === 'flat' && shouldShow(btn.showWhen)) {\r\n <button type=\"button\" mat-flat-button [color]=\"btn.color\" (click)=\"onButtonClick(btn)\">{{ btn.text }}</button>\r\n }\r\n @if (btn.type !== 'flat' && shouldShow(btn.showWhen)) {\r\n <button type=\"button\" mat-button [color]=\"btn.color\" (click)=\"onButtonClick(btn)\">{{ btn.text }}</button>\r\n }\r\n }\r\n @if (this.data.successButtonClick && succeeded) {\r\n <button type=\"button\" mat-flat-button (click)=\"success()\" color=\"primary\" (click)=\"null\">{{this.data.successButtonText}}</button>\r\n }\r\n @if (inProgress) {\r\n <button type=\"button\" mat-button (click)=\"cancel()\" autofocus>{{this.data.cancelButtonText}}</button>\r\n }\r\n @if (!inProgress) {\r\n <button type=\"button\" mat-button (click)=\"close()\" autofocus>{{this.data.closeButtonText}}</button>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
|
|
1089
1090
|
}
|
|
1090
1091
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdTaskDialogComponent, decorators: [{
|
|
1091
1092
|
type: Component,
|
|
1092
1093
|
args: [{ selector: 'vd-task-dialog', imports: [
|
|
1093
|
-
CommonModule,
|
|
1094
1094
|
MatButtonModule,
|
|
1095
1095
|
MatDialogModule,
|
|
1096
|
-
MatProgressBarModule
|
|
1097
|
-
], template: "<div mat-dialog-title class=\"mat-headline-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDrag cdkDragHandle>{{this.data.title}}</div>\r\n<mat-progress-bar
|
|
1096
|
+
MatProgressBarModule
|
|
1097
|
+
], template: "<div mat-dialog-title class=\"mat-headline-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDrag cdkDragHandle>{{this.data.title}}</div>\r\n@if (inProgress) {\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n}\r\n@if (!inProgress) {\r\n <mat-progress-bar mode=\"determinate\" value=\"100\"></mat-progress-bar>\r\n}\r\n<div mat-dialog-content>{{content}}</div>\r\n<div mat-dialog-actions class=\"pad-top\">\r\n @for (btn of data.buttons; track btn) {\r\n @if (btn.type === 'flat' && shouldShow(btn.showWhen)) {\r\n <button type=\"button\" mat-flat-button [color]=\"btn.color\" (click)=\"onButtonClick(btn)\">{{ btn.text }}</button>\r\n }\r\n @if (btn.type !== 'flat' && shouldShow(btn.showWhen)) {\r\n <button type=\"button\" mat-button [color]=\"btn.color\" (click)=\"onButtonClick(btn)\">{{ btn.text }}</button>\r\n }\r\n }\r\n @if (this.data.successButtonClick && succeeded) {\r\n <button type=\"button\" mat-flat-button (click)=\"success()\" color=\"primary\" (click)=\"null\">{{this.data.successButtonText}}</button>\r\n }\r\n @if (inProgress) {\r\n <button type=\"button\" mat-button (click)=\"cancel()\" autofocus>{{this.data.cancelButtonText}}</button>\r\n }\r\n @if (!inProgress) {\r\n <button type=\"button\" mat-button (click)=\"close()\" autofocus>{{this.data.closeButtonText}}</button>\r\n }\r\n</div>" }]
|
|
1098
1098
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: TaskDialogData, decorators: [{
|
|
1099
1099
|
type: Inject,
|
|
1100
1100
|
args: [MAT_DIALOG_DATA]
|
|
@@ -1975,12 +1975,12 @@ class BaseComponent {
|
|
|
1975
1975
|
/* Allow navigation by default */
|
|
1976
1976
|
return true;
|
|
1977
1977
|
}
|
|
1978
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BaseComponent, deps: [{ token: i1$
|
|
1978
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BaseComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1979
1979
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BaseComponent, isStandalone: true, inputs: { handleExpansionPanelChanges: "handleExpansionPanelChanges" }, outputs: { reload: "reload" }, viewQueries: [{ propertyName: "matExpansionPanelElementQueryList", predicate: MatExpansionPanel, descendants: true, read: ElementRef }, { propertyName: "matExpansionPanelQueryList", predicate: MatExpansionPanel, descendants: true }], ngImport: i0 });
|
|
1980
1980
|
}
|
|
1981
1981
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BaseComponent, decorators: [{
|
|
1982
1982
|
type: Directive
|
|
1983
|
-
}], ctorParameters: () => [{ type: i1$
|
|
1983
|
+
}], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { handleExpansionPanelChanges: [{
|
|
1984
1984
|
type: Input
|
|
1985
1985
|
}], reload: [{
|
|
1986
1986
|
type: Output
|
|
@@ -8186,12 +8186,12 @@ class DecimalProvider {
|
|
|
8186
8186
|
/* Set isSetConfig to true after configuring */
|
|
8187
8187
|
this.isSetConfig = true;
|
|
8188
8188
|
}
|
|
8189
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalProvider, deps: [{ token:
|
|
8189
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalProvider, deps: [{ token: i3$1.DecimalPipe }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
8190
8190
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalProvider });
|
|
8191
8191
|
}
|
|
8192
8192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalProvider, decorators: [{
|
|
8193
8193
|
type: Injectable
|
|
8194
|
-
}], ctorParameters: () => [{ type:
|
|
8194
|
+
}], ctorParameters: () => [{ type: i3$1.DecimalPipe }, { type: undefined, decorators: [{
|
|
8195
8195
|
type: Inject,
|
|
8196
8196
|
args: [LOCALE_ID]
|
|
8197
8197
|
}] }] });
|
|
@@ -12002,7 +12002,7 @@ class DisableControlDirective {
|
|
|
12002
12002
|
constructor(ngControl) {
|
|
12003
12003
|
this.ngControl = ngControl;
|
|
12004
12004
|
}
|
|
12005
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DisableControlDirective, deps: [{ token: i1$
|
|
12005
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DisableControlDirective, deps: [{ token: i1$1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
|
|
12006
12006
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: DisableControlDirective, isStandalone: true, selector: "[disableControl]", inputs: { disableControl: "disableControl" }, ngImport: i0 });
|
|
12007
12007
|
}
|
|
12008
12008
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DisableControlDirective, decorators: [{
|
|
@@ -12010,7 +12010,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
12010
12010
|
args: [{
|
|
12011
12011
|
selector: '[disableControl]'
|
|
12012
12012
|
}]
|
|
12013
|
-
}], ctorParameters: () => [{ type: i1$
|
|
12013
|
+
}], ctorParameters: () => [{ type: i1$1.NgControl }], propDecorators: { disableControl: [{
|
|
12014
12014
|
type: Input
|
|
12015
12015
|
}] } });
|
|
12016
12016
|
|
|
@@ -14069,7 +14069,7 @@ class SafeHtmlPipe {
|
|
|
14069
14069
|
transform(html) {
|
|
14070
14070
|
return this.sanitizer.bypassSecurityTrustHtml(html);
|
|
14071
14071
|
}
|
|
14072
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1$
|
|
14072
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
14073
14073
|
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" });
|
|
14074
14074
|
}
|
|
14075
14075
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
@@ -14077,7 +14077,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
14077
14077
|
args: [{
|
|
14078
14078
|
name: 'safeHtml'
|
|
14079
14079
|
}]
|
|
14080
|
-
}], ctorParameters: () => [{ type: i1$
|
|
14080
|
+
}], ctorParameters: () => [{ type: i1$3.DomSanitizer }] });
|
|
14081
14081
|
|
|
14082
14082
|
/**
|
|
14083
14083
|
* Pipe to split a string into an array using a delimiter.
|
|
@@ -14782,19 +14782,18 @@ class VdDynamicMenuComponent {
|
|
|
14782
14782
|
}, { once: true });
|
|
14783
14783
|
}
|
|
14784
14784
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdDynamicMenuComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
14785
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
14785
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdDynamicMenuComponent, isStandalone: true, selector: "vd-dynamic-menu", inputs: { items: "items", data: "data", index: "index", context: "context", contextMenu: "contextMenu" }, viewQueries: [{ propertyName: "matMenu", first: true, predicate: MatMenu, descendants: true }, { propertyName: "contextMenuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<!-- Container row layout for displaying action items horizontally, aligned center vertically -->\r\n@if (items) {\r\n <div layout=\"row\" layout-align=\"start center\" flex>\r\n @for (menu of items; track menu) {\r\n <!-- #region Button trigger for actions that open a submenu -->\r\n @if (!contextMenu && menu?.items?.length && !(menu.hide && menu.hide(data, context, index))) {\r\n <a\r\n mat-icon-button\r\n [mat-menu-trigger-for]=\"matMenu\"\r\n [disabled]=\"data?.locked || (menu?.disable && menu?.disable(data, context, index))\"\r\n [matTooltip]=\"menu.tooltip\"\r\n (click)=\"$event.stopPropagation();\">\r\n <!-- Display menu icon -->\r\n <mat-icon\r\n fontSet=\"{{menu.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menu.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menu.iconColor\">\r\n {{ (menu.icon ?? 'more_vert' | func:data:context) || 'more_vert' }}\r\n </mat-icon>\r\n <!-- Optional title next to icon -->\r\n <span [style.color]=\"menu.textColor\">{{menu.title | func:data:context}}</span>\r\n </a>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Invisible context menu trigger used for right-click context positioning -->\r\n @if (contextMenu) {\r\n <div\r\n style=\"visibility: hidden; position: fixed\"\r\n [style.left]=\"contextMenuPosition.x\"\r\n [style.top]=\"contextMenuPosition.y\"\r\n [matMenuTriggerFor]=\"matMenu\"></div>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Direct action button (no submenu) -->\r\n @if (!menu?.items?.length && !(menu.hide && menu.hide(data, context, index))) {\r\n <a\r\n mat-icon-button\r\n [disabled]=\"data?.locked || (menu?.disable && menu?.disable(data, context, index))\"\r\n [matTooltip]=\"menu.tooltip\"\r\n (click)=\"$event.stopPropagation(); menu.event ? menu.event(data, context, index) : null\">\r\n <!-- Icon for the action -->\r\n <mat-icon\r\n fontSet=\"{{menu.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menu.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menu.iconColor\">\r\n {{ (menu.icon ?? 'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked' }}\r\n </mat-icon>\r\n </a>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region MatMenu with nested submenus -->\r\n <mat-menu x-position=\"before\" #matMenu=\"matMenu\">\r\n @for (menuItem of menu?.items; track menuItem) {\r\n <!-- Simple menu item without sub-items -->\r\n @if (!menuItem.items) {\r\n @if (!menuItem.hide || !menuItem.hide(data, context, index)) {\r\n <a\r\n mat-menu-item\r\n (click)=\"menuItem.event ? menuItem.event(data, context, index) : null\"\r\n [disabled]=\"menuItem.disable && menuItem.disable(data, context, index)\"\r\n [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon\r\n fontSet=\"{{menuItem.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menuItem.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menuItem.iconColor\">\r\n {{ (menuItem.icon ?? 'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked' }}\r\n </mat-icon>\r\n <span [style.color]=\"menuItem.textColor\">{{menuItem.title | func:data:context}}</span>\r\n </a>\r\n }\r\n }\r\n <!-- Menu item with nested submenu -->\r\n @if (menuItem.items) {\r\n <!-- Define the submenu -->\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n @for (menuSubItem of menuItem.items; track menuSubItem) {\r\n @if (!menuSubItem.hide || !menuSubItem.hide(data, context, index)) {\r\n <a\r\n mat-menu-item\r\n (click)=\"menuSubItem.event ? menuSubItem.event(data, context, index) : null\"\r\n [disabled]=\"menuSubItem.disable && menuSubItem.disable(data, context, index)\"\r\n [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon\r\n fontSet=\"{{menuSubItem.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menuSubItem.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menuSubItem.iconColor\">\r\n {{ (menuSubItem.icon ?? 'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked' }}\r\n </mat-icon>\r\n <span [style.color]=\"menuSubItem.textColor\">{{menuSubItem.title | func:data:context}}</span>\r\n </a>\r\n }\r\n }\r\n </mat-menu>\r\n <!-- Trigger for submenu -->\r\n @if (!menuItem.hide || !menuItem.hide(data, context, index)) {\r\n <a\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"subMenu\"\r\n [disabled]=\"menuItem.disable && menuItem.disable(data, context, index)\"\r\n [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon\r\n fontSet=\"{{menuItem.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menuItem.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menuItem.iconColor\">\r\n {{ (menuItem.icon ?? 'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked' }}\r\n </mat-icon>\r\n <span [style.color]=\"menuItem.textColor\">{{menuItem.title | func:data:context}}</span>\r\n </a>\r\n }\r\n }\r\n }\r\n </mat-menu>\r\n <!-- #endregion -->\r\n }\r\n </div>\r\n}", dependencies: [{ kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1$4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i1$4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: FuncPipe, name: "func" }] });
|
|
14786
14786
|
}
|
|
14787
14787
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdDynamicMenuComponent, decorators: [{
|
|
14788
14788
|
type: Component,
|
|
14789
14789
|
args: [{ selector: 'vd-dynamic-menu', imports: [
|
|
14790
|
-
CommonModule,
|
|
14791
14790
|
MatMenuTrigger,
|
|
14792
14791
|
MatIcon,
|
|
14793
14792
|
MatMenuModule,
|
|
14794
14793
|
MatButtonModule,
|
|
14795
14794
|
MatTooltipModule,
|
|
14796
14795
|
FuncPipe
|
|
14797
|
-
], template: "<!-- Container row layout for displaying action items horizontally, aligned center vertically -->\r\n<div layout=\"row\" layout-align=\"start center\"
|
|
14796
|
+
], template: "<!-- Container row layout for displaying action items horizontally, aligned center vertically -->\r\n@if (items) {\r\n <div layout=\"row\" layout-align=\"start center\" flex>\r\n @for (menu of items; track menu) {\r\n <!-- #region Button trigger for actions that open a submenu -->\r\n @if (!contextMenu && menu?.items?.length && !(menu.hide && menu.hide(data, context, index))) {\r\n <a\r\n mat-icon-button\r\n [mat-menu-trigger-for]=\"matMenu\"\r\n [disabled]=\"data?.locked || (menu?.disable && menu?.disable(data, context, index))\"\r\n [matTooltip]=\"menu.tooltip\"\r\n (click)=\"$event.stopPropagation();\">\r\n <!-- Display menu icon -->\r\n <mat-icon\r\n fontSet=\"{{menu.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menu.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menu.iconColor\">\r\n {{ (menu.icon ?? 'more_vert' | func:data:context) || 'more_vert' }}\r\n </mat-icon>\r\n <!-- Optional title next to icon -->\r\n <span [style.color]=\"menu.textColor\">{{menu.title | func:data:context}}</span>\r\n </a>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Invisible context menu trigger used for right-click context positioning -->\r\n @if (contextMenu) {\r\n <div\r\n style=\"visibility: hidden; position: fixed\"\r\n [style.left]=\"contextMenuPosition.x\"\r\n [style.top]=\"contextMenuPosition.y\"\r\n [matMenuTriggerFor]=\"matMenu\"></div>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Direct action button (no submenu) -->\r\n @if (!menu?.items?.length && !(menu.hide && menu.hide(data, context, index))) {\r\n <a\r\n mat-icon-button\r\n [disabled]=\"data?.locked || (menu?.disable && menu?.disable(data, context, index))\"\r\n [matTooltip]=\"menu.tooltip\"\r\n (click)=\"$event.stopPropagation(); menu.event ? menu.event(data, context, index) : null\">\r\n <!-- Icon for the action -->\r\n <mat-icon\r\n fontSet=\"{{menu.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menu.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menu.iconColor\">\r\n {{ (menu.icon ?? 'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked' }}\r\n </mat-icon>\r\n </a>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region MatMenu with nested submenus -->\r\n <mat-menu x-position=\"before\" #matMenu=\"matMenu\">\r\n @for (menuItem of menu?.items; track menuItem) {\r\n <!-- Simple menu item without sub-items -->\r\n @if (!menuItem.items) {\r\n @if (!menuItem.hide || !menuItem.hide(data, context, index)) {\r\n <a\r\n mat-menu-item\r\n (click)=\"menuItem.event ? menuItem.event(data, context, index) : null\"\r\n [disabled]=\"menuItem.disable && menuItem.disable(data, context, index)\"\r\n [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon\r\n fontSet=\"{{menuItem.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menuItem.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menuItem.iconColor\">\r\n {{ (menuItem.icon ?? 'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked' }}\r\n </mat-icon>\r\n <span [style.color]=\"menuItem.textColor\">{{menuItem.title | func:data:context}}</span>\r\n </a>\r\n }\r\n }\r\n <!-- Menu item with nested submenu -->\r\n @if (menuItem.items) {\r\n <!-- Define the submenu -->\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n @for (menuSubItem of menuItem.items; track menuSubItem) {\r\n @if (!menuSubItem.hide || !menuSubItem.hide(data, context, index)) {\r\n <a\r\n mat-menu-item\r\n (click)=\"menuSubItem.event ? menuSubItem.event(data, context, index) : null\"\r\n [disabled]=\"menuSubItem.disable && menuSubItem.disable(data, context, index)\"\r\n [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon\r\n fontSet=\"{{menuSubItem.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menuSubItem.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menuSubItem.iconColor\">\r\n {{ (menuSubItem.icon ?? 'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked' }}\r\n </mat-icon>\r\n <span [style.color]=\"menuSubItem.textColor\">{{menuSubItem.title | func:data:context}}</span>\r\n </a>\r\n }\r\n }\r\n </mat-menu>\r\n <!-- Trigger for submenu -->\r\n @if (!menuItem.hide || !menuItem.hide(data, context, index)) {\r\n <a\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"subMenu\"\r\n [disabled]=\"menuItem.disable && menuItem.disable(data, context, index)\"\r\n [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon\r\n fontSet=\"{{menuItem.iconFontSet || 'material-symbols-outlined'}}\"\r\n [class]=\"menuItem.iconClass ?? '' | func:data:context\"\r\n [style.color]=\"menuItem.iconColor\">\r\n {{ (menuItem.icon ?? 'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked' }}\r\n </mat-icon>\r\n <span [style.color]=\"menuItem.textColor\">{{menuItem.title | func:data:context}}</span>\r\n </a>\r\n }\r\n }\r\n }\r\n </mat-menu>\r\n <!-- #endregion -->\r\n }\r\n </div>\r\n}" }]
|
|
14798
14797
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { matMenu: [{
|
|
14799
14798
|
type: ViewChild,
|
|
14800
14799
|
args: [MatMenu]
|
|
@@ -15905,7 +15904,7 @@ class VdSelectComponent extends AbstractSelectFormField {
|
|
|
15905
15904
|
provide: MAT_SELECT_CONFIG,
|
|
15906
15905
|
useValue: { overlayPanelClass: 'vd-select-filter-overlay' }
|
|
15907
15906
|
}
|
|
15908
|
-
], queries: [{ propertyName: "optionTemplate", first: true, predicate: VdSelectOptionDirective, descendants: true }, { propertyName: "triggerTemplate", first: true, predicate: VdSelectTriggerDirective, 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)\" [hidden]=\"readonly\" [multiple]=\"multiple\" [compareWith]=\"compareWith??defaultCompareWith\" [disabled]=\"disabled\" flex>\r\n <!-- #region Filter input -->\r\n <div class=\"mat-mdc-form-field mat-form-field-appearance-fill flex\">\r\n <div class=\"mat-mdc-text-field-wrapper mdc-text-field mdc-text-field--filled mdc-text-field--no-label\">\r\n <div class=\"mat-mdc-form-field-focus-overlay\"></div>\r\n <div class=\"mat-mdc-form-field-flex\">\r\n <div class=\"mat-mdc-form-field-infix\" layout=\"row\" flex>\r\n <input matInput #filterInput type=\"text\" placeholder=\"Filter...\" class=\"mat-mdc-input-element vd-select-filter mat-mdc-form-field-input-control mdc-text-field__input\" (keyup)=\"handleFilter($event)\" flex>\r\n <mat-icon *ngIf=\"filterInput?.value\" (click)=\"filterInput!.value = ''; handleFilter($event);\" fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mdc-line-ripple\"></div>\r\n </div>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for launch button -->\r\n <mat-select-trigger *ngIf=\"(onLaunch?.observers?.length??0) > 0\" [class]=\"triggerCssClass\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom trigger template -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && triggerTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ trigger: selectedOptions }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option template as trigger -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && !triggerTemplate?.templateRef && optionTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Dynamic icon -->\r\n <ng-template *ngIf=\"optionIcon\" #optionIconTemplate [ngTemplateOutlet]=\"optionIconTemplate\" let-optionIcon=\"optionIcon\" [ngTemplateOutletContext]=\"{ optionIcon: optionIcon(option) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <!-- #endregion -->\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option, text: option[optionTextProperty] }\"></ng-template>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for icons -->\r\n <mat-select-trigger *ngIf=\"!triggerTemplate?.templateRef && !optionTemplate?.templateRef\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Dynamic icon -->\r\n <ng-template *ngIf=\"optionIcon\" #optionIconTemplate [ngTemplateOutlet]=\"optionIconTemplate\" let-optionIcon=\"optionIcon\" [ngTemplateOutletContext]=\"{ optionIcon: optionIcon(option) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Default option -->\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple && defaultOption\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Options -->\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"mapper ? option : option[optionValueProperty]\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option, text: option[optionTextProperty] }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n <!-- #endregion -->\r\n</mat-select>\r\n\r\n<!-- #region Read only value -->\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef && !triggerTemplate?.templateRef\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{currentValue[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"currentValue[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span> </span>\r\n <span i18n=\"@@selection\">{currentValue[optionTextProperty], select, option {option} other {{{currentValue[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\">, </span>\r\n </ng-container>\r\n </span>\r\n </span>\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ trigger: currentValue }\"></ng-template>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef && !triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: currentValue, text: currentValue[optionTextProperty] }\"></ng-template>\r\n </div>\r\n <mat-icon *ngIf=\"(onLaunch?.observers?.length??0) > 0\" class=\"vd-select-launch-readonly\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </div>\r\n <div *ngIf=\"!currentValue\"> </div>\r\n</div>\r\n<!-- #endregion -->", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;opacity:.6;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0;top:9px;font-size:18px;cursor:pointer}.vd-select-filter-wrap{background:inherit;position:sticky;top:-8px;box-sizing:border-box;z-index:100}.vd-select-filter-wrap .vd-select-filter-inner{z-index:100;display:flex;flex-direction:row;align-items:center;background:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter{box-shadow:none;padding:16px 16px 16px 0;box-sizing:border-box;width:100%;border:none;background-color:inherit;color:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter:focus-visible{border:none;outline:none}.vd-select-filter-wrap .mat-divider{display:block;width:100%;border-top-width:1px;border-top-style:solid;box-sizing:border-box}::ng-deep .mat-mdc-select-trigger{display:flex!important}::ng-deep .mat-mdc-select-trigger .mat-icon{display:flex;margin-right:8px}::ng-deep .mat-mdc-form-field-type-vd-select-chip .mat-mdc-form-field-infix{padding-top:7px!important;padding-bottom:7px!important}::ng-deep .mat-mdc-form-field-type-vd-select-chip .mat-mdc-chip{padding-top:0!important;padding-bottom:0!important;margin-top:2px!important;margin-bottom:2px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i2$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
15907
|
+
], queries: [{ propertyName: "optionTemplate", first: true, predicate: VdSelectOptionDirective, descendants: true }, { propertyName: "triggerTemplate", first: true, predicate: VdSelectTriggerDirective, 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)\" [hidden]=\"readonly\" [multiple]=\"multiple\" [compareWith]=\"compareWith??defaultCompareWith\" [disabled]=\"disabled\" flex>\r\n <!-- #region Filter input -->\r\n <div class=\"mat-mdc-form-field mat-form-field-appearance-fill flex\">\r\n <div class=\"mat-mdc-text-field-wrapper mdc-text-field mdc-text-field--filled mdc-text-field--no-label\">\r\n <div class=\"mat-mdc-form-field-focus-overlay\"></div>\r\n <div class=\"mat-mdc-form-field-flex\">\r\n <div class=\"mat-mdc-form-field-infix\" layout=\"row\" flex>\r\n <input matInput #filterInput type=\"text\" placeholder=\"Filter...\" class=\"mat-mdc-input-element vd-select-filter mat-mdc-form-field-input-control mdc-text-field__input\" (keyup)=\"handleFilter($event)\" flex>\r\n <mat-icon *ngIf=\"filterInput?.value\" (click)=\"filterInput!.value = ''; handleFilter($event);\" fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mdc-line-ripple\"></div>\r\n </div>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for launch button -->\r\n <mat-select-trigger *ngIf=\"onLaunch.observers.length > 0\" [class]=\"triggerCssClass\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom trigger template -->\r\n <mat-select-trigger *ngIf=\"!onLaunch.observers.length && triggerTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ trigger: selectedOptions }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option template as trigger -->\r\n <mat-select-trigger *ngIf=\"!onLaunch.observers.length && !triggerTemplate?.templateRef && optionTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Dynamic icon -->\r\n <ng-template *ngIf=\"optionIcon\" #optionIconTemplate [ngTemplateOutlet]=\"optionIconTemplate\" let-optionIcon=\"optionIcon\" [ngTemplateOutletContext]=\"{ optionIcon: optionIcon(option) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <!-- #endregion -->\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option, text: option[optionTextProperty] }\"></ng-template>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for icons -->\r\n <mat-select-trigger *ngIf=\"!triggerTemplate?.templateRef && !optionTemplate?.templateRef\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Dynamic icon -->\r\n <ng-template *ngIf=\"optionIcon\" #optionIconTemplate [ngTemplateOutlet]=\"optionIconTemplate\" let-optionIcon=\"optionIcon\" [ngTemplateOutletContext]=\"{ optionIcon: optionIcon(option) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Default option -->\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple && defaultOption\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Options -->\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"mapper ? option : option[optionValueProperty]\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option, text: option[optionTextProperty] }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n <!-- #endregion -->\r\n</mat-select>\r\n\r\n<!-- #region Read only value -->\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef && !triggerTemplate?.templateRef\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{currentValue[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"currentValue[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span> </span>\r\n <span i18n=\"@@selection\">{currentValue[optionTextProperty], select, option {option} other {{{currentValue[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\">, </span>\r\n </ng-container>\r\n </span>\r\n </span>\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ trigger: currentValue }\"></ng-template>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef && !triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: currentValue, text: currentValue[optionTextProperty] }\"></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\"> </div>\r\n</div>\r\n<!-- #endregion -->", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;opacity:.6;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0;top:9px;font-size:18px;cursor:pointer}.vd-select-filter-wrap{background:inherit;position:sticky;top:-8px;box-sizing:border-box;z-index:100}.vd-select-filter-wrap .vd-select-filter-inner{z-index:100;display:flex;flex-direction:row;align-items:center;background:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter{box-shadow:none;padding:16px 16px 16px 0;box-sizing:border-box;width:100%;border:none;background-color:inherit;color:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter:focus-visible{border:none;outline:none}.vd-select-filter-wrap .mat-divider{display:block;width:100%;border-top-width:1px;border-top-style:solid;box-sizing:border-box}::ng-deep .mat-mdc-select-trigger{display:flex!important}::ng-deep .mat-mdc-select-trigger .mat-icon{display:flex;margin-right:8px}::ng-deep .mat-mdc-form-field-type-vd-select-chip .mat-mdc-form-field-infix{padding-top:7px!important;padding-bottom:7px!important}::ng-deep .mat-mdc-form-field-type-vd-select-chip .mat-mdc-chip{padding-top:0!important;padding-bottom:0!important;margin-top:2px!important;margin-bottom:2px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i2$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
15909
15908
|
}
|
|
15910
15909
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdSelectComponent, decorators: [{
|
|
15911
15910
|
type: Component,
|
|
@@ -15922,7 +15921,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
15922
15921
|
provide: MAT_SELECT_CONFIG,
|
|
15923
15922
|
useValue: { overlayPanelClass: 'vd-select-filter-overlay' }
|
|
15924
15923
|
}
|
|
15925
|
-
], template: "<mat-select [placeholder]=\"placeholder\" i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelect\" (selectionChange)=\"handleChange($event)\" [hidden]=\"readonly\" [multiple]=\"multiple\" [compareWith]=\"compareWith??defaultCompareWith\" [disabled]=\"disabled\" flex>\r\n <!-- #region Filter input -->\r\n <div class=\"mat-mdc-form-field mat-form-field-appearance-fill flex\">\r\n <div class=\"mat-mdc-text-field-wrapper mdc-text-field mdc-text-field--filled mdc-text-field--no-label\">\r\n <div class=\"mat-mdc-form-field-focus-overlay\"></div>\r\n <div class=\"mat-mdc-form-field-flex\">\r\n <div class=\"mat-mdc-form-field-infix\" layout=\"row\" flex>\r\n <input matInput #filterInput type=\"text\" placeholder=\"Filter...\" class=\"mat-mdc-input-element vd-select-filter mat-mdc-form-field-input-control mdc-text-field__input\" (keyup)=\"handleFilter($event)\" flex>\r\n <mat-icon *ngIf=\"filterInput?.value\" (click)=\"filterInput!.value = ''; handleFilter($event);\" fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mdc-line-ripple\"></div>\r\n </div>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for launch button -->\r\n <mat-select-trigger *ngIf=\"(onLaunch?.observers?.length??0) > 0\" [class]=\"triggerCssClass\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom trigger template -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && triggerTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ trigger: selectedOptions }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option template as trigger -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && !triggerTemplate?.templateRef && optionTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Dynamic icon -->\r\n <ng-template *ngIf=\"optionIcon\" #optionIconTemplate [ngTemplateOutlet]=\"optionIconTemplate\" let-optionIcon=\"optionIcon\" [ngTemplateOutletContext]=\"{ optionIcon: optionIcon(option) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <!-- #endregion -->\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option, text: option[optionTextProperty] }\"></ng-template>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for icons -->\r\n <mat-select-trigger *ngIf=\"!triggerTemplate?.templateRef && !optionTemplate?.templateRef\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Dynamic icon -->\r\n <ng-template *ngIf=\"optionIcon\" #optionIconTemplate [ngTemplateOutlet]=\"optionIconTemplate\" let-optionIcon=\"optionIcon\" [ngTemplateOutletContext]=\"{ optionIcon: optionIcon(option) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Default option -->\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple && defaultOption\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Options -->\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"mapper ? option : option[optionValueProperty]\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option, text: option[optionTextProperty] }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n <!-- #endregion -->\r\n</mat-select>\r\n\r\n<!-- #region Read only value -->\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef && !triggerTemplate?.templateRef\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{currentValue[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"currentValue[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span> </span>\r\n <span i18n=\"@@selection\">{currentValue[optionTextProperty], select, option {option} other {{{currentValue[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\">, </span>\r\n </ng-container>\r\n </span>\r\n </span>\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ trigger: currentValue }\"></ng-template>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef && !triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: currentValue, text: currentValue[optionTextProperty] }\"></ng-template>\r\n </div>\r\n <mat-icon *ngIf=\"(onLaunch?.observers?.length??0) > 0\" class=\"vd-select-launch-readonly\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </div>\r\n <div *ngIf=\"!currentValue\"> </div>\r\n</div>\r\n<!-- #endregion -->", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;opacity:.6;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0;top:9px;font-size:18px;cursor:pointer}.vd-select-filter-wrap{background:inherit;position:sticky;top:-8px;box-sizing:border-box;z-index:100}.vd-select-filter-wrap .vd-select-filter-inner{z-index:100;display:flex;flex-direction:row;align-items:center;background:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter{box-shadow:none;padding:16px 16px 16px 0;box-sizing:border-box;width:100%;border:none;background-color:inherit;color:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter:focus-visible{border:none;outline:none}.vd-select-filter-wrap .mat-divider{display:block;width:100%;border-top-width:1px;border-top-style:solid;box-sizing:border-box}::ng-deep .mat-mdc-select-trigger{display:flex!important}::ng-deep .mat-mdc-select-trigger .mat-icon{display:flex;margin-right:8px}::ng-deep .mat-mdc-form-field-type-vd-select-chip .mat-mdc-form-field-infix{padding-top:7px!important;padding-bottom:7px!important}::ng-deep .mat-mdc-form-field-type-vd-select-chip .mat-mdc-chip{padding-top:0!important;padding-bottom:0!important;margin-top:2px!important;margin-bottom:2px!important}\n"] }]
|
|
15924
|
+
], template: "<mat-select [placeholder]=\"placeholder\" i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelect\" (selectionChange)=\"handleChange($event)\" [hidden]=\"readonly\" [multiple]=\"multiple\" [compareWith]=\"compareWith??defaultCompareWith\" [disabled]=\"disabled\" flex>\r\n <!-- #region Filter input -->\r\n <div class=\"mat-mdc-form-field mat-form-field-appearance-fill flex\">\r\n <div class=\"mat-mdc-text-field-wrapper mdc-text-field mdc-text-field--filled mdc-text-field--no-label\">\r\n <div class=\"mat-mdc-form-field-focus-overlay\"></div>\r\n <div class=\"mat-mdc-form-field-flex\">\r\n <div class=\"mat-mdc-form-field-infix\" layout=\"row\" flex>\r\n <input matInput #filterInput type=\"text\" placeholder=\"Filter...\" class=\"mat-mdc-input-element vd-select-filter mat-mdc-form-field-input-control mdc-text-field__input\" (keyup)=\"handleFilter($event)\" flex>\r\n <mat-icon *ngIf=\"filterInput?.value\" (click)=\"filterInput!.value = ''; handleFilter($event);\" fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mdc-line-ripple\"></div>\r\n </div>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for launch button -->\r\n <mat-select-trigger *ngIf=\"onLaunch.observers.length > 0\" [class]=\"triggerCssClass\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom trigger template -->\r\n <mat-select-trigger *ngIf=\"!onLaunch.observers.length && triggerTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ trigger: selectedOptions }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option template as trigger -->\r\n <mat-select-trigger *ngIf=\"!onLaunch.observers.length && !triggerTemplate?.templateRef && optionTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Dynamic icon -->\r\n <ng-template *ngIf=\"optionIcon\" #optionIconTemplate [ngTemplateOutlet]=\"optionIconTemplate\" let-optionIcon=\"optionIcon\" [ngTemplateOutletContext]=\"{ optionIcon: optionIcon(option) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <!-- #endregion -->\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option, text: option[optionTextProperty] }\"></ng-template>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for icons -->\r\n <mat-select-trigger *ngIf=\"!triggerTemplate?.templateRef && !optionTemplate?.templateRef\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Dynamic icon -->\r\n <ng-template *ngIf=\"optionIcon\" #optionIconTemplate [ngTemplateOutlet]=\"optionIconTemplate\" let-optionIcon=\"optionIcon\" [ngTemplateOutletContext]=\"{ optionIcon: optionIcon(option) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\"> </span>\r\n </ng-container>\r\n </span>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Default option -->\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple && defaultOption\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Options -->\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"mapper ? option : option[optionValueProperty]\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{option[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"option[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option, text: option[optionTextProperty] }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n <!-- #endregion -->\r\n</mat-select>\r\n\r\n<!-- #region Read only value -->\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef && !triggerTemplate?.templateRef\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <ng-container *ngFor=\"let option of selectedOptions; let i = index; let last = last\">\r\n <span layout=\"row\" layout-align=\"start center\">\r\n <!-- #region Property icon -->\r\n <mat-icon *ngIf=\"matIconKey && !svgIconKey\" [fontSet]=\"fontSet || 'material-symbols-outlined'\">{{currentValue[matIconKey]}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIconKey && !matIconKey\" [svgIcon]=\"currentValue[svgIconKey]\" [fontSet]=\"fontSet || 'material-symbols-outlined'\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option icon -->\r\n <mat-icon *ngIf=\"option.icon?.matIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\">{{option.icon?.matIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"option.icon?.svgIcon\" [svgIcon]=\"option.icon?.svgIcon\" [fontSet]=\"option.icon?.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: option.icon?.iconColor??'' }\"></mat-icon>\r\n <!-- #endregion -->\r\n\r\n <span> </span>\r\n <span i18n=\"@@selection\">{currentValue[optionTextProperty], select, option {option} other {{{currentValue[optionTextProperty]}}}}</span>\r\n </span>\r\n <span *ngIf=\"!last\">, </span>\r\n </ng-container>\r\n </span>\r\n </span>\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ trigger: currentValue }\"></ng-template>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef && !triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: currentValue, text: currentValue[optionTextProperty] }\"></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\"> </div>\r\n</div>\r\n<!-- #endregion -->", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;opacity:.6;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0;top:9px;font-size:18px;cursor:pointer}.vd-select-filter-wrap{background:inherit;position:sticky;top:-8px;box-sizing:border-box;z-index:100}.vd-select-filter-wrap .vd-select-filter-inner{z-index:100;display:flex;flex-direction:row;align-items:center;background:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter{box-shadow:none;padding:16px 16px 16px 0;box-sizing:border-box;width:100%;border:none;background-color:inherit;color:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter:focus-visible{border:none;outline:none}.vd-select-filter-wrap .mat-divider{display:block;width:100%;border-top-width:1px;border-top-style:solid;box-sizing:border-box}::ng-deep .mat-mdc-select-trigger{display:flex!important}::ng-deep .mat-mdc-select-trigger .mat-icon{display:flex;margin-right:8px}::ng-deep .mat-mdc-form-field-type-vd-select-chip .mat-mdc-form-field-infix{padding-top:7px!important;padding-bottom:7px!important}::ng-deep .mat-mdc-form-field-type-vd-select-chip .mat-mdc-chip{padding-top:0!important;padding-bottom:0!important;margin-top:2px!important;margin-bottom:2px!important}\n"] }]
|
|
15926
15925
|
}], ctorParameters: () => [], propDecorators: { optionTemplate: [{
|
|
15927
15926
|
type: ContentChild,
|
|
15928
15927
|
args: [VdSelectOptionDirective]
|
|
@@ -16521,15 +16520,14 @@ class FilterClearComponent {
|
|
|
16521
16520
|
}
|
|
16522
16521
|
}
|
|
16523
16522
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterClearComponent, deps: [{ token: i1$5.MatTable }], target: i0.ɵɵFactoryTarget.Component });
|
|
16524
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: FilterClearComponent, isStandalone: true, selector: "mat-header-cell[filter-clear], [mat-header-cell][filter-clear], [filter-clear]", ngImport: i0, template: "<button type=\"button\" mat-icon-button (click)=\"clear()\">\r\n
|
|
16523
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: FilterClearComponent, isStandalone: true, selector: "mat-header-cell[filter-clear], [mat-header-cell][filter-clear], [filter-clear]", ngImport: i0, template: "<button type=\"button\" mat-icon-button (click)=\"clear()\">\r\n\t<mat-icon fontSet=\"material-symbols-outlined\">backspace</mat-icon>\r\n</button>", dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
16525
16524
|
}
|
|
16526
16525
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterClearComponent, decorators: [{
|
|
16527
16526
|
type: Component,
|
|
16528
16527
|
args: [{ selector: 'mat-header-cell[filter-clear], [mat-header-cell][filter-clear], [filter-clear]', imports: [
|
|
16529
|
-
CommonModule,
|
|
16530
16528
|
MatIconButton,
|
|
16531
16529
|
MatIconModule
|
|
16532
|
-
], template: "<button type=\"button\" mat-icon-button (click)=\"clear()\">\r\n
|
|
16530
|
+
], template: "<button type=\"button\" mat-icon-button (click)=\"clear()\">\r\n\t<mat-icon fontSet=\"material-symbols-outlined\">backspace</mat-icon>\r\n</button>" }]
|
|
16533
16531
|
}], ctorParameters: () => [{ type: i1$5.MatTable }] });
|
|
16534
16532
|
|
|
16535
16533
|
class FilterDateComponent {
|
|
@@ -16631,18 +16629,17 @@ class FilterDateComponent {
|
|
|
16631
16629
|
*/
|
|
16632
16630
|
pad = (num, size) => { return ('0' + num).substr(-size); };
|
|
16633
16631
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterDateComponent, deps: [{ token: i1$5.MatTable }, { token: i2$2.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Component });
|
|
16634
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
16632
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilterDateComponent, isStandalone: true, selector: "mat-header-cell[filter-date], [mat-header-cell][filter-date], [filter-date]", inputs: { field: "field", debounce: "debounce", placeholder: "placeholder" }, host: { listeners: { "focusin": "onFocusIn()", "focusout": "onFocusOut()" } }, providers: [
|
|
16635
16633
|
{
|
|
16636
16634
|
provide: NG_VALUE_ACCESSOR,
|
|
16637
16635
|
useExisting: forwardRef(() => FilterDateComponent),
|
|
16638
16636
|
multi: true
|
|
16639
16637
|
}
|
|
16640
|
-
], ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" dense-3 flex>\r\n
|
|
16638
|
+
], ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" dense-3 flex>\r\n\t<input matInput [matDatepicker]=\"picker\" [ngModel]=\"value\" (ngModelChange)=\"handleSearch($event)\" (click)=\"$event.stopPropagation();picker.open()\" (search)=\"handleSearch($event)\" (keyup.enter)=\"handleSearch($event)\" readonly>\r\n\t@if (!value && !focused) {\r\n\t\t<span matPrefix (click)=\"$event.stopPropagation();picker.open()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">manage_search</mat-icon>\r\n\t\t</span>\r\n\t}\r\n\t@if (value) {\r\n\t\t<button type=\"button\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation();clearSearch()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t</button>\r\n\t}\r\n\t<mat-datepicker #picker></mat-datepicker>\r\n</mat-form-field>", styles: ["mat-icon{opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] });
|
|
16641
16639
|
}
|
|
16642
16640
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterDateComponent, decorators: [{
|
|
16643
16641
|
type: Component,
|
|
16644
16642
|
args: [{ selector: 'mat-header-cell[filter-date], [mat-header-cell][filter-date], [filter-date]', imports: [
|
|
16645
|
-
CommonModule,
|
|
16646
16643
|
FormsModule,
|
|
16647
16644
|
MatFormFieldModule,
|
|
16648
16645
|
MatDatepickerModule,
|
|
@@ -16655,7 +16652,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
16655
16652
|
useExisting: forwardRef(() => FilterDateComponent),
|
|
16656
16653
|
multi: true
|
|
16657
16654
|
}
|
|
16658
|
-
], template: "<mat-form-field subscriptSizing=\"dynamic\" dense-3 flex>\r\n
|
|
16655
|
+
], template: "<mat-form-field subscriptSizing=\"dynamic\" dense-3 flex>\r\n\t<input matInput [matDatepicker]=\"picker\" [ngModel]=\"value\" (ngModelChange)=\"handleSearch($event)\" (click)=\"$event.stopPropagation();picker.open()\" (search)=\"handleSearch($event)\" (keyup.enter)=\"handleSearch($event)\" readonly>\r\n\t@if (!value && !focused) {\r\n\t\t<span matPrefix (click)=\"$event.stopPropagation();picker.open()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">manage_search</mat-icon>\r\n\t\t</span>\r\n\t}\r\n\t@if (value) {\r\n\t\t<button type=\"button\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation();clearSearch()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t</button>\r\n\t}\r\n\t<mat-datepicker #picker></mat-datepicker>\r\n</mat-form-field>", styles: ["mat-icon{opacity:.7}\n"] }]
|
|
16659
16656
|
}], ctorParameters: () => [{ type: i1$5.MatTable }, { type: i2$2.CdkColumnDef }], propDecorators: { field: [{
|
|
16660
16657
|
type: Input
|
|
16661
16658
|
}], debounce: [{
|
|
@@ -16816,13 +16813,13 @@ class FilterInputComponent {
|
|
|
16816
16813
|
*/
|
|
16817
16814
|
reload = () => this.table.dataSource['reload']();
|
|
16818
16815
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterInputComponent, deps: [{ token: i1$5.MatTable }, { token: i2$2.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Component });
|
|
16819
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
16816
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilterInputComponent, isStandalone: true, selector: "mat-header-cell[filter-input], [mat-header-cell][filter-input], [filter-input]", inputs: { field: "field", operator: "operator", onlyNumber: "onlyNumber", debounce: "debounce", placeholder: "placeholder" }, host: { listeners: { "focusin": "onFocusIn()", "focusout": "onFocusOut()", "keydown": "onKeyDown($event)" } }, providers: [
|
|
16820
16817
|
{
|
|
16821
16818
|
provide: NG_VALUE_ACCESSOR,
|
|
16822
16819
|
useExisting: forwardRef(() => FilterInputComponent),
|
|
16823
16820
|
multi: true
|
|
16824
16821
|
}
|
|
16825
|
-
], viewQueries: [{ propertyName: "_filter", first: true, predicate: ["filterElement"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" [ngClass]=\"{'filter-not-empty': value}\" dense-3 flex>\r\n
|
|
16822
|
+
], viewQueries: [{ propertyName: "_filter", first: true, predicate: ["filterElement"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" [ngClass]=\"{'filter-not-empty': value}\" dense-3 flex>\r\n\t<input matInput #filterElement ngControl=\"filterElement\" autocomplete=\"off\" type=\"input\" [(ngModel)]=\"value\" (search)=\"$event.stopPropagation();\" (keyup.enter)=\"handleSearch($event)\" />\r\n\t@if (!value && !focused) {\r\n\t\t<span matPrefix><mat-icon fontSet=\"material-symbols-outlined\">manage_search</mat-icon></span>\r\n\t}\r\n\t@if (value) {\r\n\t\t<button type=\"button\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); clearSearch()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t</button>\r\n\t}\r\n</mat-form-field>", styles: ["mat-icon{opacity:.6}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] });
|
|
16826
16823
|
}
|
|
16827
16824
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterInputComponent, decorators: [{
|
|
16828
16825
|
type: Component,
|
|
@@ -16839,7 +16836,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
16839
16836
|
useExisting: forwardRef(() => FilterInputComponent),
|
|
16840
16837
|
multi: true
|
|
16841
16838
|
}
|
|
16842
|
-
], template: "<mat-form-field subscriptSizing=\"dynamic\" [ngClass]=\"{'filter-not-empty': value}\" dense-3 flex>\r\n
|
|
16839
|
+
], template: "<mat-form-field subscriptSizing=\"dynamic\" [ngClass]=\"{'filter-not-empty': value}\" dense-3 flex>\r\n\t<input matInput #filterElement ngControl=\"filterElement\" autocomplete=\"off\" type=\"input\" [(ngModel)]=\"value\" (search)=\"$event.stopPropagation();\" (keyup.enter)=\"handleSearch($event)\" />\r\n\t@if (!value && !focused) {\r\n\t\t<span matPrefix><mat-icon fontSet=\"material-symbols-outlined\">manage_search</mat-icon></span>\r\n\t}\r\n\t@if (value) {\r\n\t\t<button type=\"button\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); clearSearch()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t</button>\r\n\t}\r\n</mat-form-field>", styles: ["mat-icon{opacity:.6}\n"] }]
|
|
16843
16840
|
}], ctorParameters: () => [{ type: i1$5.MatTable }, { type: i2$2.CdkColumnDef }], propDecorators: { _filter: [{
|
|
16844
16841
|
type: ViewChild,
|
|
16845
16842
|
args: ['filterElement', { static: true }]
|
|
@@ -17141,7 +17138,7 @@ class FilterSelectComponent {
|
|
|
17141
17138
|
*/
|
|
17142
17139
|
onTouched = () => { };
|
|
17143
17140
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterSelectComponent, deps: [{ token: i1$5.MatTable }, { token: i2$2.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17144
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
17141
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilterSelectComponent, isStandalone: true, selector: "mat-header-cell[filter-select], [mat-header-cell][filter-select], [filter-select]", inputs: { endpoint: "endpoint", params: "params", projection: "projection", sortBy: "sortBy", sorted: "sorted", enumFilter: "enumFilter", enum: "enum", enumMetadata: "enumMetadata", key: "key", text: "text", prefix: "prefix", multiple: "multiple", options: "options", filteredOptions: "filteredOptions", filterable: "filterable", field: "field", placeholder: "placeholder", cache: "cache" }, host: { listeners: { "focusin": "onFocusIn()", "focusout": "onFocusOut()" } }, providers: [
|
|
17145
17142
|
{
|
|
17146
17143
|
provide: NG_VALUE_ACCESSOR,
|
|
17147
17144
|
useExisting: forwardRef(() => FilterSelectComponent),
|
|
@@ -17151,7 +17148,7 @@ class FilterSelectComponent {
|
|
|
17151
17148
|
provide: MAT_SELECT_CONFIG,
|
|
17152
17149
|
useValue: { overlayPanelClass: 'vd-select-filter-overlay' }
|
|
17153
17150
|
}
|
|
17154
|
-
], queries: [{ propertyName: "optionTemplate", first: true, predicate: VdFilterOptionDirective, descendants: true }], viewQueries: [{ propertyName: "selectEl", first: true, predicate: MatSelect, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" [ngClass]=\"{'filter-not-empty': value}\" dense-3 flex>\r\n
|
|
17151
|
+
], queries: [{ propertyName: "optionTemplate", first: true, predicate: VdFilterOptionDirective, descendants: true }], viewQueries: [{ propertyName: "selectEl", first: true, predicate: MatSelect, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" [ngClass]=\"{'filter-not-empty': value}\" dense-3 flex>\r\n\t@if (!value && value!=0 && !focused) {\r\n\t\t<span matPrefix (click)=\"$event.stopPropagation();select.open()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">manage_search</mat-icon>\r\n\t\t</span>\r\n\t}\r\n\t<mat-select type=\"input\" [(ngModel)]=\"value\" [multiple]=\"multiple\" flex #select>\r\n\t\t@if (filterable) {\r\n\t\t\t<mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\" dense-3 flex>\r\n\t\t\t\t<input matInput #filterInput type=\"text\" placeholder=\"Filter...\" class=\"vd-select-filter\" (click)=\"$event.stopPropagation();\" (keyup)=\"handleFilter($event)\" flex>\r\n\t\t\t\t@if (filterInput?.value) {\r\n\t\t\t\t\t<mat-icon (click)=\"$event.stopPropagation(); filterInput!.value = ''; handleFilter($event);\" fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t\t\t}\r\n\t\t\t</mat-form-field>\r\n\t\t}\r\n\t\t@if (!multiple) {\r\n\t\t\t<mat-option class=\"tc-grey-500\" (click)=\"$event.stopPropagation();\"></mat-option>\r\n\t\t}\r\n\t\t@for (option of filteredOptions; track option; let first = $first) {\r\n\t\t\t<mat-option [value]=\"option[key]\" (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t@if (!optionTemplate?.templateRef) {\r\n\t\t\t\t\t<span i18n=\"@@selection\">{option.name, select, option {option} other {{{option[text]}}}}</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@if (optionTemplate?.templateRef) {\r\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionTemplate!.templateRef\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n\t\t\t\t\t}\r\n\t\t\t</mat-option>\r\n\t\t\t}\r\n\t</mat-select>\r\n</mat-form-field>", styles: [".mat-mdc-form-field mat-icon{opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
17155
17152
|
}
|
|
17156
17153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterSelectComponent, decorators: [{
|
|
17157
17154
|
type: Component,
|
|
@@ -17172,7 +17169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
17172
17169
|
provide: MAT_SELECT_CONFIG,
|
|
17173
17170
|
useValue: { overlayPanelClass: 'vd-select-filter-overlay' }
|
|
17174
17171
|
}
|
|
17175
|
-
], template: "<mat-form-field subscriptSizing=\"dynamic\" [ngClass]=\"{'filter-not-empty': value}\" dense-3 flex>\r\n
|
|
17172
|
+
], template: "<mat-form-field subscriptSizing=\"dynamic\" [ngClass]=\"{'filter-not-empty': value}\" dense-3 flex>\r\n\t@if (!value && value!=0 && !focused) {\r\n\t\t<span matPrefix (click)=\"$event.stopPropagation();select.open()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">manage_search</mat-icon>\r\n\t\t</span>\r\n\t}\r\n\t<mat-select type=\"input\" [(ngModel)]=\"value\" [multiple]=\"multiple\" flex #select>\r\n\t\t@if (filterable) {\r\n\t\t\t<mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\" dense-3 flex>\r\n\t\t\t\t<input matInput #filterInput type=\"text\" placeholder=\"Filter...\" class=\"vd-select-filter\" (click)=\"$event.stopPropagation();\" (keyup)=\"handleFilter($event)\" flex>\r\n\t\t\t\t@if (filterInput?.value) {\r\n\t\t\t\t\t<mat-icon (click)=\"$event.stopPropagation(); filterInput!.value = ''; handleFilter($event);\" fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t\t\t}\r\n\t\t\t</mat-form-field>\r\n\t\t}\r\n\t\t@if (!multiple) {\r\n\t\t\t<mat-option class=\"tc-grey-500\" (click)=\"$event.stopPropagation();\"></mat-option>\r\n\t\t}\r\n\t\t@for (option of filteredOptions; track option; let first = $first) {\r\n\t\t\t<mat-option [value]=\"option[key]\" (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t@if (!optionTemplate?.templateRef) {\r\n\t\t\t\t\t<span i18n=\"@@selection\">{option.name, select, option {option} other {{{option[text]}}}}</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@if (optionTemplate?.templateRef) {\r\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionTemplate!.templateRef\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n\t\t\t\t\t}\r\n\t\t\t</mat-option>\r\n\t\t\t}\r\n\t</mat-select>\r\n</mat-form-field>", styles: [".mat-mdc-form-field mat-icon{opacity:.7}\n"] }]
|
|
17176
17173
|
}], ctorParameters: () => [{ type: i1$5.MatTable }, { type: i2$2.CdkColumnDef }], propDecorators: { optionTemplate: [{
|
|
17177
17174
|
type: ContentChild,
|
|
17178
17175
|
args: [VdFilterOptionDirective]
|
|
@@ -17909,9 +17906,9 @@ class VdDynamicTableComponent {
|
|
|
17909
17906
|
this.changeDetector.detectChanges();
|
|
17910
17907
|
}
|
|
17911
17908
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdDynamicTableComponent, deps: [{ token: DynamicBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17912
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: VdDynamicTableComponent, isStandalone: true, selector: "vd-dynamic-table", inputs: { dataSource: "dataSource", data: "data", parentControl: "parentControl", entityObject: "entityObject", formArray: "formArray", debugValue: "debugValue", classType: "classType", context: "context", dataSourceFilter: "dataSourceFilter", static: "static", filterable: "filterable", sticky: "sticky", tableWidth: "tableWidth", useFilterOperator: "useFilterOperator", paginable: "paginable", selectable: "selectable", sortActive: "sortActive", sortDirection: "sortDirection", stickyHeader: "stickyHeader", stickyFilter: "stickyFilter", columnSets: "columnSets", rowNgClass: "rowNgClass", detailsTemplate: "detailsTemplate", readonly: "readonly", selectAllFilter: "selectAllFilter", paginatorRef: "paginatorRef", columns: "columns", rowMenuItems: "rowMenuItems", rowAction: "rowAction", excludedColumns: "excludedColumns", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions" }, outputs: { rowClick: "rowClick" }, queries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], 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: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true, static: true }, { propertyName: "detailsTemplateRef", predicate: ["detailsTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "rowContextMenuTriggers", predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"loading-progress\" *ngIf=\"!static\">\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<div class=\"mat-table-container scrollbar-secondary\" [ngClass]=\"{'mat-table-sticky': sticky}\" #scrollContainer>\r\n\t<table mat-table #table [dataSource]=\"dataSource\" [dataSourceFilter]=\"dataSourceFilter\" [ngClass]=\"{'table-fixed': !sticky && !detailsTemplate && !templateRef, 'table-stick': sticky}\" [trackBy]=\"trackBy\" matSort matSortDisableClear [matSortActive]=\"sortActive||'id'\" [matSortDirection]=\"sortDirection\" multiTemplateDataRows>\r\n\t\t<ng-container *ngFor=\"let column of columns$ | async; trackBy:columnsTrackBy\">\r\n\t\t\t<!-- #region Column def -->\r\n\t\t\t<ng-container [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t\t<ng-template #header [ngTemplateOutlet]=\"header\" let-headerText=\"headerText\" [ngTemplateOutletContext]=\"{headerText: column.header | func:context}\">\r\n\t\t\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [hidden]=\"column.hidden\" [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.type == ColumnType.Checkbox || column.disabled\" [ngClass]=\"{'gt-xs': column.display == Grid.Xs, 'gt-sm': column.display == Grid.Sm, 'gt-md': column.display == Grid.Md, 'gt-lg': column.display == Grid.Lg, 'gt-xl': column.display == Grid.Xl, 'gt-xxl': column.display == Grid.Xxl, 'hidden': column.display == Grid.None}\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">\r\n\t\t\t\t\t\t<mat-checkbox *ngIf=\"column.type == ColumnType.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\t\t\t<span *ngIf=\"column.type != ColumnType.Checkbox\" [matTooltip]=\"headerText\">{{headerText}}</span>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<td mat-cell *cdkCellDef=\"let row; let rowIndex = dataIndex\" [matTooltip]=\"column.tooltip?column.tooltip(row, undefined, context):null\" [matTooltipClass]=\"column.tooltipClass??''\" [hidden]=\"column.hidden\" [ngClass]=\"getRowClasses(column, row)\" [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}\">\r\n\t\t\t\t\t<ng-template #rowVal [ngTemplateOutlet]=\"rowVal\" let-rowValue [ngTemplateOutletContext]=\"{$implicit: column?.content && column?.content(row, undefined, context)}\">\r\n\t\t\t\t\t\t<ng-container [ngSwitch]=\"column.type\">\r\n\t\t\t\t\t\t\t<!-- #region Checkbox column -->\r\n\t\t\t\t\t\t\t<mat-checkbox *ngSwitchCase=\"ColumnType.Checkbox\" (click)=\"$event.stopPropagation()\" (change)=\"$event ? dataSource.selectionModel.toggle(row) : null\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row, undefined, context)))\" [checked]=\"dataSource.selectionModel.isSelected(row)\"></mat-checkbox>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Enum column -->\r\n\t\t\t\t\t\t\t<span *ngSwitchCase=\"ColumnType.Enum\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.enumMetadata; else noEnumMetadata\">\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.multiple; else elseTemplate\">\r\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let item of rowValue; let i = index\">\r\n\t\t\t\t\t\t\t\t\t\t\t<ng-template [ngIf]=\"i < 2\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ng-template let-displayValue=\"displayValue\" [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ displayValue: column.enumMetadata[item].display }\"></ng-template>\r\n\t\t\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t\t\t\t<small *ngIf=\"i === 1 && rowValue?.length > 2\" [matTooltip]=\"(rowValue | slice:2 | map:column.enumMetadata | map:'display') | join:'\\n'\" matTooltipClass=\"mat-tooltip-multiline\">...</small>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<ng-template #template let-displayValue=\"displayValue\">\r\n\t\t\t\t\t\t\t\t\t\t\t<mat-chip-row disableRipple=\"true\" selectable=\"false\" [matTooltip]=\"displayValue\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span>{{ displayValue }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</mat-chip-row>\r\n\t\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t<ng-template #elseTemplate>\r\n\t\t\t\t\t\t\t\t\t\t<span *ngIf=\"rowValue >= 0\" class=\"na\" [ngStyle]=\"{ color: ((column.enumMetadata[rowValue] || {}).textColor || 'inherit') }\" [innerHtml]=\"(column.enumMetadata[rowValue]||{}).display\"></span>\r\n\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-template #noEnumMetadata>\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.multiple; else elseTemplate\">\r\n\t\t\t\t\t\t\t\t\t\t<div *ngFor=\"let item of rowValue; let i = index; let last = last\">\r\n\t\t\t\t\t\t\t\t\t\t\t<small *ngIf=\"i<2\" i18n=\"@@selection\">{item | enum:column.enumType:column.enumPrefix, select, type {type} other {{{item | enum:column.enumType:column.enumPrefix}}}}</small>\r\n\t\t\t\t\t\t\t\t\t\t\t<small *ngIf=\"i==1 && rowValue?.length > 2\">, ...</small>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t<ng-template #elseTemplate>\r\n\t\t\t\t\t\t\t\t\t\t<span *ngIf=\"rowValue >= 0\" i18n=\"@@selection\">{rowValue | enum:column.enumType:column.enumPrefix, select, type {type} other {{{rowValue | enum:column.enumType:column.enumPrefix}}}}</span>\r\n\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<ng-template #recursiveContainer let-columnNameSegments=\"segments\" let-formGroup=\"formGroup\" let-parentFormGroup=\"parentFormGroup\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\r\n\t\t\t\t\t\t\t\t\t<!-- If the columnNameSegments array is empty, we're at the leaf node -->\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!columnNameSegments.length; else notLastSegment\">\r\n\t\t\t\t\t\t\t\t\t\t<!-- #region Toggle column -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\">\r\n\t\t\t\t\t\t\t\t\t\t\t<mat-slide-toggle [formControl]=\"formGroup\" (click)=\"$event.stopPropagation();\" (change)=\"column.change?column.change(parentFormGroup.value, parentFormGroup, context):handleModelChange(column, parentFormGroup.value, parentFormGroup)\" [disableControl]=\"readonly || (column.disabled || (column.disable && column.disable(parentFormGroup.value, parentFormGroup, context)))\" color=\"accent\"></mat-slide-toggle>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t\t\t\t<!-- #region Text Input column -->\r\n\t\t\t\t\t\t\t\t\t\t<mat-form-field *ngSwitchCase=\"ColumnType.TextInput\" appearance=\"outline\" subscriptSizing=\"dynamic\" dense-3 layout=\"column\" layout-align=\"center start\" (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t\t\t<input matInput [formControl]=\"formGroup\" type=\"{{column.inputType}}\" autocomplete=\"none\" [disableControl]=\"readonly || (column.disabled || (column.disable && column.disable(parentFormGroup.value, parentFormGroup, context)))\" [min]=\"column.inputMin?column.inputMin(parentFormGroup.value, parentFormGroup, context):null\" [max]=\"column.inputMax?column.inputMax(parentFormGroup.value, parentFormGroup, context):null\" (keydown.enter)=\"handleKeydownEnter($event)\">\r\n\t\t\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t\t\t\t<!-- #region VD-Select column -->\r\n\t\t\t\t\t\t\t\t\t\t<mat-form-field *ngSwitchCase=\"ColumnType.Select\" appearance=\"outline\" subscriptSizing=\"dynamic\" dense-3 layout=\"column\" layout-align=\"center start\" (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t\t\t<vd-select [formControl]=\"formGroup\" [enum]=\"column.enumType\" [enumMetadata]=\"column.enumMetadata\" [enumFilter]=\"column.enumFilter | func:parentFormGroup.value:context\" [prefix]=\"column.enumPrefix\" [options]=\"column.options\" [defaultOption]=\"column.defaultOption??true\" [disableControl]=\"readonly || (column.disabled || (column.disable && column.disable(parentFormGroup.value, parentFormGroup, context)))\" (selectionChange)=\"column.change?column.change(parentFormGroup.value, parentFormGroup, context):patch(parentFormGroup.value, [column.name], rowValue, column.patchIncludes)\" (keydown.enter)=\"handleKeydownEnter($event)\"></vd-select>\r\n\t\t\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t<ng-template #notLastSegment>\r\n\t\t\t\t\t\t\t\t\t\t<!-- If not the last segment, create a nested form group -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container [formGroupName]=\"columnNameSegments[0]\">\r\n\t\t\t\t\t\t\t\t\t\t\t<!-- Recursive call to handle nested segments -->\r\n\t\t\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"recursiveContainer\" [ngTemplateOutletContext]=\"{segments: columnNameSegments.slice(1), parentFormGroup:formGroup, formGroup: formGroup.get(columnNameSegments[0])}\"></ng-container>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\r\n\t\t\t\t\t\t\t<!-- #region Toggle column -->\r\n\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!formArray\">\r\n\t\t\t\t\t\t\t\t\t<mat-slide-toggle [ngModel]=\"row | property:column.name\" (ngModelChange)=\"setNestedProperty(row, column.name, $event);handleModelChange(column, row, undefined);\" (click)=\"$event.stopPropagation();\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row, undefined, context)))\" color=\"accent\"></mat-slide-toggle>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"formArray\" [formGroup]=\"$any(formArray.controls)[rowIndex] | formGroup\">\r\n\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"recursiveContainer\" [ngTemplateOutletContext]=\"{segments: column.name.split('.'), formGroup: formArray.controls[rowIndex]}\"></ng-container>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Date column -->\r\n\t\t\t\t\t\t\t<span *ngSwitchCase=\"ColumnType.Date\">{{rowValue | date:column.shortDate?'dd.MM.yyyy':'dd.MM.yyyy HH:mm:ss'}}</span>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Text Input column -->\r\n\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\">\r\n\t\t\t\t\t\t\t\t<mat-form-field *ngIf=\"!formArray\" appearance=\"outline\" layout=\"column\" layout-align=\"center start\" subscriptSizing=\"dynamic\" dense-3 (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t<input matInput *ngIf=\"!formArray\" type=\"{{column.inputType}}\" autocomplete=\"none\" name=\"{{column.name}}{{rowIndex}}\" [ngModel]=\"row | property:column.name\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row, undefined, context)))\" [min]=\"column.inputMin?column.inputMin(row, undefined, context):null\" [max]=\"column.inputMax?column.inputMax(row, undefined, context):null\" (ngModelChange)=\"setNestedProperty(row, column.name, $event);(column.change?column.change(row, undefined, context):patch(row, [column.name], $event, column.patchIncludes));\" [ngModelOptions]=\"{updateOn: 'blur'}\" (keydown.enter)=\"handleKeydownEnter($event)\">\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"formArray\" [formGroup]=\"$any(formArray.controls)[rowIndex] | formGroup\">\r\n\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"recursiveContainer\" [ngTemplateOutletContext]=\"{segments: column.name.split('.'), formGroup: formArray.controls[rowIndex]}\"></ng-container>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region VD-Select column -->\r\n\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Select\">\r\n\t\t\t\t\t\t\t\t<mat-form-field *ngIf=\"!formArray\" appearance=\"outline\" layout=\"column\" layout-align=\"center start\" subscriptSizing=\"dynamic\" dense-3 (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t<vd-select *ngIf=\"!formArray\" name=\"{{column.name}}{{rowIndex}}\" [enum]=\"column.enumType\" [enumMetadata]=\"column.enumMetadata\" [enumFilter]=\"column?.enumFilter | func:row:context\" [prefix]=\"column.enumPrefix\" [options]=\"column.options\" [defaultOption]=\"column.defaultOption??true\" [ngModel]=\"row | property:column.name\" (ngModelChange)=\"setNestedProperty(row, column.name, $event);\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row, undefined, context)))\" (change)=\"column.change?column.change(row, undefined, context):patch(row, [column.name], $event.value, column.patchIncludes)\" (keydown.enter)=\"handleKeydownEnter($event)\"></vd-select>\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"formArray\" [formGroup]=\"$any(formArray.controls)[rowIndex] | formGroup\">\r\n\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"recursiveContainer\" [ngTemplateOutletContext]=\"{segments: column.name.split('.'), formGroup: formArray.controls[rowIndex]}\"></ng-container>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Action -->\r\n\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.menu\">\r\n\t\t\t\t\t\t\t\t\t<div id=\"menu-{{row.id}}\" style=\"visibility: hidden; position: fixed;\" #contextMenuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu.matMenu!\" *ngIf=\"menu?.matMenu && !row.locked && hasVisibleRowMenuItems(row, column)\"></div>\r\n\t\t\t\t\t\t\t\t\t<vd-dynamic-menu [items]=\"[column.menu]\" [data]=\"row\" [context]=\"context\" #menu></vd-dynamic-menu>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Menu -->\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.menu\">\r\n\t\t\t\t\t\t\t\t<vd-dynamic-menu *ngSwitchCase=\"ColumnType.Menu\" [items]=\"[column.menu]\" [data]=\"row\" [context]=\"context\"></vd-dynamic-menu>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region icon -->\r\n\t\t\t\t\t\t\t<span *ngSwitchCase=\"ColumnType.Icon\" layout=\"row\" layout-align=\"start center\">\r\n\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"column.icon?.matIcon\" fontSet=\"{{column.icon?.fontSet || 'material-symbols-outlined'}}\" [class]=\"handleExpression(column.icon?.cssClass??'', row)\">{{handleExpression(column.icon?.matIcon!, row)}}</mat-icon>\r\n\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"column.icon?.svgIcon\" fontSet=\"{{column.icon?.fontSet || 'material-symbols-outlined'}}\" [class]=\"handleExpression(column.icon?.cssClass??'', row)\" [svgIcon]=\"handleExpression(column.icon?.svgIcon!, row)!\"></mat-icon>\r\n\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"column.icon?.fontIcon\" fontSet=\"{{column.icon?.fontSet || 'material-symbols-outlined'}}\" [class]=\"handleExpression(column.icon?.cssClass??'', row)\" [fontIcon]=\"handleExpression(column.icon?.fontIcon!, row)!\"></mat-icon>\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region icon button -->\r\n\t\t\t\t\t\t\t<a mat-icon-button *ngSwitchCase=\"ColumnType.IconButton\" (click)=\"$event.stopPropagation();column.iconButton?.event?column.iconButton?.event(row, context):null\">\r\n\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{column.iconButton?.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"handleExpression(column.iconButton?.iconClass??'', row)\">{{handleExpression(column.iconButton?.icon??'radio_button_checked', row) || 'radio_button_checked'}}</mat-icon>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Other column types -->\r\n\t\t\t\t\t\t\t<span *ngSwitchDefault [innerHtml]=\"rowValue??''\"></span>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</td>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\t\t</ng-container>\r\n\r\n\t\t<!-- #region Filter row -->\r\n\t\t<ng-container *ngIf=\"dataSource && filterable\">\r\n\t\t\t<ng-container *ngFor=\"let column of columns$ | async\">\r\n\t\t\t\t<ng-container cdkColumnDef=\"filter.{{column.filter || column.name}}\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t\t\t<th mat-header-cell *cdkHeaderCellDef [hidden]=\"column.hidden\" [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}\" [ngClass]=\"{'gt-xs': column.display == Grid.Xs, 'gt-sm': column.display == Grid.Sm, 'gt-md': column.display == Grid.Md, 'gt-lg': column.display == Grid.Lg, 'gt-xl': column.display == Grid.Xl, 'gt-xxl': column.display == Grid.Xxl, 'hidden': column.display == Grid.None}\">\r\n\t\t\t\t\t\t<!-- #region Select filter -->\r\n\t\t\t\t\t\t<span *ngIf=\"(column.endpoint || column.enumType || column.options) else notSelectFilter\" filter-select [endpoint]=\"column.endpoint\" [enum]=\"column.enumType\" [enumMetadata]=\"column.enumMetadata\" [enumFilter]=\"column.enumFilter | func:{}:context\" [prefix]=\"column.enumPrefix\" [options]=\"column.options\" [text]=\"column.filterOptionText || 'name'\"></span>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Text filter -->\r\n\t\t\t\t\t\t<ng-template #notSelectFilter>\r\n\t\t\t\t\t\t\t<span *ngIf=\"notSelectFilter && (column.type == ColumnType.Text || column.type == ColumnType.TextInput || column.type == ColumnType.Number) else notInputFilter\" filter-input [onlyNumber]=\"column.filterInputNumber??false\" [operator]=\"!useFilterOperator ? undefined : column.filterOperator\"></span>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Date filter -->\r\n\t\t\t\t\t\t<ng-template #notInputFilter>\r\n\t\t\t\t\t\t\t<span *ngIf=\"column.type == ColumnType.Date else notDateFilter\" filter-date></span>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Action filter (clear) -->\r\n\t\t\t\t\t\t<ng-template #notDateFilter>\r\n\t\t\t\t\t\t\t<span *ngIf=\"column.type == ColumnType.Action\" filter-clear></span>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</th>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Details column -->\r\n\t\t<ng-container cdkColumnDef=\"expandedDetail\">\r\n\t\t\t<td mat-cell *matCellDef=\"let row; let index = index\" [attr.colspan]=\"(displayedColumns$ | async)?.length\">\r\n\t\t\t\t<div class=\"row-detail\" [@detailExpand]=\"row == expandedRow ? 'expanded' : 'collapsed'\" #detailsTemplate>\r\n\t\t\t\t\t<ng-container *ngIf=\"templateRef && row === expandedRow\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"templateRef; context:{row: row, index: index, context: context}\"></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</div>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Filter header -->\r\n\t\t<ng-container *ngIf=\"filterable\">\r\n\t\t\t<tr mat-header-row *cdkHeaderRowDef=\"displayedFilterColumns$ | async\"></tr>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<tr mat-header-row *cdkHeaderRowDef=\"displayedColumns$ | async; sticky: stickyFilter\"></tr>\r\n\t\t<tr mat-row *cdkRowDef=\"let row; columns: displayedColumns$ | async; let index = dataIndex\" [ngClass]=\"rowNgClass?rowNgClass(row, context):null\" [class.expanded-row]=\"expandedRow === row\" (click)=\"handleRowClick(index, row)\" (contextmenu)=\"handleRowRightClick($event, row)\"></tr>\r\n\r\n\t\t<!-- #region Detrails row -->\r\n\t\t<ng-container *ngIf=\"detailsTemplate || templateRef\">\r\n\t\t\t<tr mat-row *cdkRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\" [ngClass]=\"rowNgClass?rowNgClass(row, context):null\"></tr>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\t</table>\r\n\r\n\t<!-- #region Modern No Results Message -->\r\n\t<div class=\"no-results-overlay\"\r\n\t\t *ngIf=\"dataSource?.filteredData?.length <= 0 && dataSource?.total <= 0\">\r\n\t\t<mat-icon class=\"no-results-icon\">search_off</mat-icon>\r\n\t\t<div class=\"no-results-text mat-body-1\">\r\n\t\t\t<h3 i18n=\"@@noResultsFound\">No results found</h3>\r\n\t\t\t<p i18n=\"@@tryAdjustFilters\">Try adjusting your filters or search criteria.</p>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- #endregion -->\r\n</div>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Debug value -->\r\n<code *ngIf=\"debugValue\">\r\n\t<pre>{{formValue | json}}</pre>\r\n</code>\r\n<!-- #endregion -->\r\n\r\n<div class=\"table-footer\" layout=\"row\">\r\n\t<ng-content select=\"[table-footer]\"></ng-content>\r\n\t<span flex></span>\r\n\t<mat-paginator *ngIf=\"paginable\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\"></mat-paginator>\r\n</div>", styles: ["::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-form-field .mat-form-field-wrapper{width:100%}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip{height:24px;margin-top:2px}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip .mdc-evolution-chip__action--primary{padding-left:9px;padding-right:9px}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip:last-child{margin-bottom:2px}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip *{font-size:.8rem}@media(max-width:389px){::ng-deep .mat-mdc-table [gt-xs],::ng-deep .mat-mdc-table .gt-xs{display:none}::ng-deep .mat-mdc-table [gt-sm],::ng-deep .mat-mdc-table .gt-sm{display:none}::ng-deep .mat-mdc-table [gt-md],::ng-deep .mat-mdc-table .gt-md{display:none}::ng-deep .mat-mdc-table [gt-lg],::ng-deep .mat-mdc-table .gt-lg{display:none}::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:599px){::ng-deep .mat-mdc-table [gt-sm],::ng-deep .mat-mdc-table .gt-sm{display:none}::ng-deep .mat-mdc-table [gt-md],::ng-deep .mat-mdc-table .gt-md{display:none}::ng-deep .mat-mdc-table [gt-lg],::ng-deep .mat-mdc-table .gt-lg{display:none}::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:959px){::ng-deep .mat-mdc-table [gt-md],::ng-deep .mat-mdc-table .gt-md{display:none}::ng-deep .mat-mdc-table [gt-lg],::ng-deep .mat-mdc-table .gt-lg{display:none}::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:1279px){::ng-deep .mat-mdc-table [gt-lg],::ng-deep .mat-mdc-table .gt-lg{display:none}::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:1919px){::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:1979px){::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}.mat-table-container{width:100%;max-width:100%;overflow:auto}.mat-table-container .mat-mdc-header-cell,.mat-table-container .mat-mdc-footer-cell,.mat-table-container .mat-mdc-cell{min-width:80px;box-sizing:border-box}.mat-table-container .mat-mdc-header-row,.mat-table-container .mat-mdc-footer-row,.mat-table-container .mat-mdc-row{min-width:1920px}.mat-table-container.mat-table-sticky .mat-mdc-table-sticky-border-elem-right{box-shadow:-3px 0 5px #0000001a}.mat-table-container.mat-table-sticky .mat-mdc-table-sticky-border-elem-left{box-shadow:3px 0 5px #0000001a}\n"], dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i2$2.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i2$2.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i2$2.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i2$2.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: i2$2.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i10$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i16.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type:
|
|
17909
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: VdDynamicTableComponent, isStandalone: true, selector: "vd-dynamic-table", inputs: { dataSource: "dataSource", data: "data", parentControl: "parentControl", entityObject: "entityObject", formArray: "formArray", debugValue: "debugValue", classType: "classType", context: "context", dataSourceFilter: "dataSourceFilter", static: "static", filterable: "filterable", sticky: "sticky", tableWidth: "tableWidth", useFilterOperator: "useFilterOperator", paginable: "paginable", selectable: "selectable", sortActive: "sortActive", sortDirection: "sortDirection", stickyHeader: "stickyHeader", stickyFilter: "stickyFilter", columnSets: "columnSets", rowNgClass: "rowNgClass", detailsTemplate: "detailsTemplate", readonly: "readonly", selectAllFilter: "selectAllFilter", paginatorRef: "paginatorRef", columns: "columns", rowMenuItems: "rowMenuItems", rowAction: "rowAction", excludedColumns: "excludedColumns", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions" }, outputs: { rowClick: "rowClick" }, queries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], 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: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true, static: true }, { propertyName: "detailsTemplateRef", predicate: ["detailsTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "rowContextMenuTriggers", predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"loading-progress\" *ngIf=\"!static\">\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<div class=\"mat-table-container scrollbar-secondary\" [ngClass]=\"{'mat-table-sticky': sticky}\" #scrollContainer>\r\n\t<table mat-table #table [dataSource]=\"dataSource\" [dataSourceFilter]=\"dataSourceFilter\" [ngClass]=\"{'table-fixed': !sticky && !detailsTemplate && !templateRef, 'table-stick': sticky}\" [trackBy]=\"trackBy\" matSort matSortDisableClear [matSortActive]=\"sortActive||'id'\" [matSortDirection]=\"sortDirection\" multiTemplateDataRows>\r\n\t\t<ng-container *ngFor=\"let column of columns$ | async; trackBy:columnsTrackBy\">\r\n\t\t\t<!-- #region Column def -->\r\n\t\t\t<ng-container [cdkColumnDef]=\"column.name\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t\t<ng-template #header [ngTemplateOutlet]=\"header\" let-headerText=\"headerText\" [ngTemplateOutletContext]=\"{headerText: column.header | func:context}\">\r\n\t\t\t\t\t<th mat-header-cell *cdkHeaderCellDef [mat-sort-header]=\"column.sortBy || column.name\" [hidden]=\"column.hidden\" [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.type == ColumnType.Checkbox || column.disabled\" [ngClass]=\"{'gt-xs': column.display == Grid.Xs, 'gt-sm': column.display == Grid.Sm, 'gt-md': column.display == Grid.Md, 'gt-lg': column.display == Grid.Lg, 'gt-xl': column.display == Grid.Xl, 'gt-xxl': column.display == Grid.Xxl, 'hidden': column.display == Grid.None}\" [arrowPosition]=\"column.arrowBefore?'before':'after'\">\r\n\t\t\t\t\t\t<mat-checkbox *ngIf=\"column.type == ColumnType.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\t\t\t<span *ngIf=\"column.type != ColumnType.Checkbox\" [matTooltip]=\"headerText\">{{headerText}}</span>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<td mat-cell *cdkCellDef=\"let row; let rowIndex = dataIndex\" [matTooltip]=\"column.tooltip?column.tooltip(row, undefined, context):null\" [matTooltipClass]=\"column.tooltipClass??''\" [hidden]=\"column.hidden\" [ngClass]=\"getRowClasses(column, row)\" [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}\">\r\n\t\t\t\t\t<ng-template #rowVal [ngTemplateOutlet]=\"rowVal\" let-rowValue [ngTemplateOutletContext]=\"{$implicit: column?.content && column?.content(row, undefined, context)}\">\r\n\t\t\t\t\t\t<ng-container [ngSwitch]=\"column.type\">\r\n\t\t\t\t\t\t\t<!-- #region Checkbox column -->\r\n\t\t\t\t\t\t\t<mat-checkbox *ngSwitchCase=\"ColumnType.Checkbox\" (click)=\"$event.stopPropagation()\" (change)=\"$event ? dataSource.selectionModel.toggle(row) : null\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row, undefined, context)))\" [checked]=\"dataSource.selectionModel.isSelected(row)\"></mat-checkbox>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Enum column -->\r\n\t\t\t\t\t\t\t<span *ngSwitchCase=\"ColumnType.Enum\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.enumMetadata; else noEnumMetadata\">\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.multiple; else elseTemplate\">\r\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let item of rowValue; let i = index\">\r\n\t\t\t\t\t\t\t\t\t\t\t<ng-template [ngIf]=\"i < 2\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ng-template let-displayValue=\"displayValue\" [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ displayValue: column.enumMetadata[item].display }\"></ng-template>\r\n\t\t\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t\t\t\t<small *ngIf=\"i === 1 && rowValue?.length > 2\" [matTooltip]=\"(rowValue | slice:2 | map:column.enumMetadata | map:'display') | join:'\\n'\" matTooltipClass=\"mat-tooltip-multiline\">...</small>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<ng-template #template let-displayValue=\"displayValue\">\r\n\t\t\t\t\t\t\t\t\t\t\t<mat-chip-row disableRipple=\"true\" selectable=\"false\" [matTooltip]=\"displayValue\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span>{{ displayValue }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</mat-chip-row>\r\n\t\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t<ng-template #elseTemplate>\r\n\t\t\t\t\t\t\t\t\t\t<span *ngIf=\"rowValue >= 0\" class=\"na\" [ngStyle]=\"{ color: ((column.enumMetadata[rowValue] || {}).textColor || 'inherit') }\" [innerHtml]=\"(column.enumMetadata[rowValue]||{}).display\"></span>\r\n\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-template #noEnumMetadata>\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.multiple; else elseTemplate\">\r\n\t\t\t\t\t\t\t\t\t\t<div *ngFor=\"let item of rowValue; let i = index; let last = last\">\r\n\t\t\t\t\t\t\t\t\t\t\t<small *ngIf=\"i<2\" i18n=\"@@selection\">{item | enum:column.enumType:column.enumPrefix, select, type {type} other {{{item | enum:column.enumType:column.enumPrefix}}}}</small>\r\n\t\t\t\t\t\t\t\t\t\t\t<small *ngIf=\"i==1 && rowValue?.length > 2\">, ...</small>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t<ng-template #elseTemplate>\r\n\t\t\t\t\t\t\t\t\t\t<span *ngIf=\"rowValue >= 0\" i18n=\"@@selection\">{rowValue | enum:column.enumType:column.enumPrefix, select, type {type} other {{{rowValue | enum:column.enumType:column.enumPrefix}}}}</span>\r\n\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<ng-template #recursiveContainer let-columnNameSegments=\"segments\" let-formGroup=\"formGroup\" let-parentFormGroup=\"parentFormGroup\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\r\n\t\t\t\t\t\t\t\t\t<!-- If the columnNameSegments array is empty, we're at the leaf node -->\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!columnNameSegments.length; else notLastSegment\">\r\n\t\t\t\t\t\t\t\t\t\t<!-- #region Toggle column -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\">\r\n\t\t\t\t\t\t\t\t\t\t\t<mat-slide-toggle [formControl]=\"formGroup\" (click)=\"$event.stopPropagation();\" (change)=\"column.change?column.change(parentFormGroup.value, parentFormGroup, context):handleModelChange(column, parentFormGroup.value, parentFormGroup)\" [disableControl]=\"readonly || (column.disabled || (column.disable && column.disable(parentFormGroup.value, parentFormGroup, context)))\" color=\"accent\"></mat-slide-toggle>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t\t\t\t<!-- #region Text Input column -->\r\n\t\t\t\t\t\t\t\t\t\t<mat-form-field *ngSwitchCase=\"ColumnType.TextInput\" appearance=\"outline\" subscriptSizing=\"dynamic\" dense-3 layout=\"column\" layout-align=\"center start\" (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t\t\t<input matInput [formControl]=\"formGroup\" type=\"{{column.inputType}}\" autocomplete=\"none\" [disableControl]=\"readonly || (column.disabled || (column.disable && column.disable(parentFormGroup.value, parentFormGroup, context)))\" [min]=\"column.inputMin?column.inputMin(parentFormGroup.value, parentFormGroup, context):null\" [max]=\"column.inputMax?column.inputMax(parentFormGroup.value, parentFormGroup, context):null\" (keydown.enter)=\"handleKeydownEnter($event)\">\r\n\t\t\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t\t\t\t<!-- #region VD-Select column -->\r\n\t\t\t\t\t\t\t\t\t\t<mat-form-field *ngSwitchCase=\"ColumnType.Select\" appearance=\"outline\" subscriptSizing=\"dynamic\" dense-3 layout=\"column\" layout-align=\"center start\" (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t\t\t<vd-select [formControl]=\"formGroup\" [enum]=\"column.enumType\" [enumMetadata]=\"column.enumMetadata\" [enumFilter]=\"column.enumFilter | func:parentFormGroup.value:context\" [prefix]=\"column.enumPrefix\" [options]=\"column.options\" [defaultOption]=\"column.defaultOption??true\" [disableControl]=\"readonly || (column.disabled || (column.disable && column.disable(parentFormGroup.value, parentFormGroup, context)))\" (selectionChange)=\"column.change?column.change(parentFormGroup.value, parentFormGroup, context):patch(parentFormGroup.value, [column.name], rowValue, column.patchIncludes)\" (keydown.enter)=\"handleKeydownEnter($event)\"></vd-select>\r\n\t\t\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t<ng-template #notLastSegment>\r\n\t\t\t\t\t\t\t\t\t\t<!-- If not the last segment, create a nested form group -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container [formGroupName]=\"columnNameSegments[0]\">\r\n\t\t\t\t\t\t\t\t\t\t\t<!-- Recursive call to handle nested segments -->\r\n\t\t\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"recursiveContainer\" [ngTemplateOutletContext]=\"{segments: columnNameSegments.slice(1), parentFormGroup:formGroup, formGroup: formGroup.get(columnNameSegments[0])}\"></ng-container>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\r\n\t\t\t\t\t\t\t<!-- #region Toggle column -->\r\n\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Toggle\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!formArray\">\r\n\t\t\t\t\t\t\t\t\t<mat-slide-toggle [ngModel]=\"row | property:column.name\" (ngModelChange)=\"setNestedProperty(row, column.name, $event);handleModelChange(column, row, undefined);\" (click)=\"$event.stopPropagation();\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row, undefined, context)))\" color=\"accent\"></mat-slide-toggle>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"formArray\" [formGroup]=\"$any(formArray.controls)[rowIndex] | formGroup\">\r\n\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"recursiveContainer\" [ngTemplateOutletContext]=\"{segments: column.name.split('.'), formGroup: formArray.controls[rowIndex]}\"></ng-container>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Date column -->\r\n\t\t\t\t\t\t\t<span *ngSwitchCase=\"ColumnType.Date\">{{rowValue | date:column.shortDate?'dd.MM.yyyy':'dd.MM.yyyy HH:mm:ss'}}</span>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Text Input column -->\r\n\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.TextInput\">\r\n\t\t\t\t\t\t\t\t<mat-form-field *ngIf=\"!formArray\" appearance=\"outline\" layout=\"column\" layout-align=\"center start\" subscriptSizing=\"dynamic\" dense-3 (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t<input matInput *ngIf=\"!formArray\" type=\"{{column.inputType}}\" autocomplete=\"none\" name=\"{{column.name}}{{rowIndex}}\" [ngModel]=\"row | property:column.name\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row, undefined, context)))\" [min]=\"column.inputMin?column.inputMin(row, undefined, context):null\" [max]=\"column.inputMax?column.inputMax(row, undefined, context):null\" (ngModelChange)=\"setNestedProperty(row, column.name, $event);(column.change?column.change(row, undefined, context):patch(row, [column.name], $event, column.patchIncludes));\" [ngModelOptions]=\"{updateOn: 'blur'}\" (keydown.enter)=\"handleKeydownEnter($event)\">\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"formArray\" [formGroup]=\"$any(formArray.controls)[rowIndex] | formGroup\">\r\n\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"recursiveContainer\" [ngTemplateOutletContext]=\"{segments: column.name.split('.'), formGroup: formArray.controls[rowIndex]}\"></ng-container>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region VD-Select column -->\r\n\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Select\">\r\n\t\t\t\t\t\t\t\t<mat-form-field *ngIf=\"!formArray\" appearance=\"outline\" layout=\"column\" layout-align=\"center start\" subscriptSizing=\"dynamic\" dense-3 (click)=\"$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t<vd-select *ngIf=\"!formArray\" name=\"{{column.name}}{{rowIndex}}\" [enum]=\"column.enumType\" [enumMetadata]=\"column.enumMetadata\" [enumFilter]=\"column?.enumFilter | func:row:context\" [prefix]=\"column.enumPrefix\" [options]=\"column.options\" [defaultOption]=\"column.defaultOption??true\" [ngModel]=\"row | property:column.name\" (ngModelChange)=\"setNestedProperty(row, column.name, $event);\" [disabled]=\"readonly || (column.disabled || (column.disable && column.disable(row, undefined, context)))\" (change)=\"column.change?column.change(row, undefined, context):patch(row, [column.name], $event.value, column.patchIncludes)\" (keydown.enter)=\"handleKeydownEnter($event)\"></vd-select>\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"formArray\" [formGroup]=\"$any(formArray.controls)[rowIndex] | formGroup\">\r\n\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"recursiveContainer\" [ngTemplateOutletContext]=\"{segments: column.name.split('.'), formGroup: formArray.controls[rowIndex]}\"></ng-container>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Action -->\r\n\t\t\t\t\t\t\t<ng-container *ngSwitchCase=\"ColumnType.Action\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.menu\">\r\n\t\t\t\t\t\t\t\t\t<div id=\"menu-{{row.id}}\" style=\"visibility: hidden; position: fixed;\" #contextMenuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu.matMenu!\" *ngIf=\"menu?.matMenu && !row.locked && hasVisibleRowMenuItems(row, column)\"></div>\r\n\t\t\t\t\t\t\t\t\t<vd-dynamic-menu [items]=\"[column.menu]\" [data]=\"row\" [context]=\"context\" #menu></vd-dynamic-menu>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Menu -->\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.menu\">\r\n\t\t\t\t\t\t\t\t<vd-dynamic-menu *ngSwitchCase=\"ColumnType.Menu\" [items]=\"[column.menu]\" [data]=\"row\" [context]=\"context\"></vd-dynamic-menu>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region icon -->\r\n\t\t\t\t\t\t\t<span *ngSwitchCase=\"ColumnType.Icon\" layout=\"row\" layout-align=\"start center\">\r\n\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"column.icon?.matIcon\" fontSet=\"{{column.icon?.fontSet || 'material-symbols-outlined'}}\" [class]=\"handleExpression(column.icon?.cssClass??'', row)\">{{handleExpression(column.icon?.matIcon!, row)}}</mat-icon>\r\n\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"column.icon?.svgIcon\" fontSet=\"{{column.icon?.fontSet || 'material-symbols-outlined'}}\" [class]=\"handleExpression(column.icon?.cssClass??'', row)\" [svgIcon]=\"handleExpression(column.icon?.svgIcon!, row)!\"></mat-icon>\r\n\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"column.icon?.fontIcon\" fontSet=\"{{column.icon?.fontSet || 'material-symbols-outlined'}}\" [class]=\"handleExpression(column.icon?.cssClass??'', row)\" [fontIcon]=\"handleExpression(column.icon?.fontIcon!, row)!\"></mat-icon>\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region icon button -->\r\n\t\t\t\t\t\t\t<a mat-icon-button *ngSwitchCase=\"ColumnType.IconButton\" (click)=\"$event.stopPropagation();column.iconButton?.event?column.iconButton?.event(row, context):null\">\r\n\t\t\t\t\t\t\t\t<mat-icon fontSet=\"{{column.iconButton?.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"handleExpression(column.iconButton?.iconClass??'', row)\">{{handleExpression(column.iconButton?.icon??'radio_button_checked', row) || 'radio_button_checked'}}</mat-icon>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t\t<!-- #region Other column types -->\r\n\t\t\t\t\t\t\t<span *ngSwitchDefault [innerHtml]=\"rowValue??''\"></span>\r\n\t\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</td>\r\n\t\t\t</ng-container>\r\n\t\t\t<!-- #endregion -->\r\n\t\t</ng-container>\r\n\r\n\t\t<!-- #region Filter row -->\r\n\t\t<ng-container *ngIf=\"dataSource && filterable\">\r\n\t\t\t<ng-container *ngFor=\"let column of columns$ | async\">\r\n\t\t\t\t<ng-container cdkColumnDef=\"filter.{{column.filter || column.name}}\" [sticky]=\"column.sticky\" [stickyEnd]=\"column.stickyEnd\">\r\n\t\t\t\t\t<th mat-header-cell *cdkHeaderCellDef [hidden]=\"column.hidden\" [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}\" [ngClass]=\"{'gt-xs': column.display == Grid.Xs, 'gt-sm': column.display == Grid.Sm, 'gt-md': column.display == Grid.Md, 'gt-lg': column.display == Grid.Lg, 'gt-xl': column.display == Grid.Xl, 'gt-xxl': column.display == Grid.Xxl, 'hidden': column.display == Grid.None}\">\r\n\t\t\t\t\t\t<!-- #region Select filter -->\r\n\t\t\t\t\t\t<span *ngIf=\"(column.endpoint || column.enumType || column.options) else notSelectFilter\" filter-select [endpoint]=\"column.endpoint\" [enum]=\"column.enumType\" [enumMetadata]=\"column.enumMetadata\" [enumFilter]=\"column.enumFilter | func:{}:context\" [prefix]=\"column.enumPrefix\" [options]=\"column.options\" [text]=\"column.filterOptionText || 'name'\"></span>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Text filter -->\r\n\t\t\t\t\t\t<ng-template #notSelectFilter>\r\n\t\t\t\t\t\t\t<span *ngIf=\"notSelectFilter && (column.type == ColumnType.Text || column.type == ColumnType.TextInput || column.type == ColumnType.Number) else notInputFilter\" filter-input [onlyNumber]=\"column.filterInputNumber??false\" [operator]=\"!useFilterOperator ? undefined : column.filterOperator\"></span>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Date filter -->\r\n\t\t\t\t\t\t<ng-template #notInputFilter>\r\n\t\t\t\t\t\t\t<span *ngIf=\"column.type == ColumnType.Date else notDateFilter\" filter-date></span>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Action filter (clear) -->\r\n\t\t\t\t\t\t<ng-template #notDateFilter>\r\n\t\t\t\t\t\t\t<span *ngIf=\"column.type == ColumnType.Action\" filter-clear></span>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</th>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Details column -->\r\n\t\t<ng-container cdkColumnDef=\"expandedDetail\">\r\n\t\t\t<td mat-cell *matCellDef=\"let row; let index = index\" [attr.colspan]=\"(displayedColumns$ | async)?.length\">\r\n\t\t\t\t<div class=\"row-detail\" [@detailExpand]=\"row == expandedRow ? 'expanded' : 'collapsed'\" #detailsTemplate>\r\n\t\t\t\t\t<ng-container *ngIf=\"templateRef && row === expandedRow\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"templateRef; context:{row: row, index: index, context: context}\"></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</div>\r\n\t\t\t</td>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Filter header -->\r\n\t\t<ng-container *ngIf=\"filterable\">\r\n\t\t\t<tr mat-header-row *cdkHeaderRowDef=\"displayedFilterColumns$ | async\"></tr>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<tr mat-header-row *cdkHeaderRowDef=\"displayedColumns$ | async; sticky: stickyFilter\"></tr>\r\n\t\t<tr mat-row *cdkRowDef=\"let row; columns: displayedColumns$ | async; let index = dataIndex\" [ngClass]=\"rowNgClass?rowNgClass(row, context):null\" [class.expanded-row]=\"expandedRow === row\" (click)=\"handleRowClick(index, row)\" (contextmenu)=\"handleRowRightClick($event, row)\"></tr>\r\n\r\n\t\t<!-- #region Detrails row -->\r\n\t\t<ng-container *ngIf=\"detailsTemplate || templateRef\">\r\n\t\t\t<tr mat-row *cdkRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\" [ngClass]=\"rowNgClass?rowNgClass(row, context):null\"></tr>\r\n\t\t</ng-container>\r\n\t\t<!-- #endregion -->\r\n\t</table>\r\n\r\n\t<!-- #region Modern No Results Message -->\r\n\t<div class=\"no-results-overlay\"\r\n\t\t *ngIf=\"dataSource?.filteredData?.length <= 0 && dataSource?.total <= 0\">\r\n\t\t<mat-icon class=\"no-results-icon\">search_off</mat-icon>\r\n\t\t<div class=\"no-results-text mat-body-1\">\r\n\t\t\t<h3 i18n=\"@@noResultsFound\">No results found</h3>\r\n\t\t\t<p i18n=\"@@tryAdjustFilters\">Try adjusting your filters or search criteria.</p>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- #endregion -->\r\n</div>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Debug value -->\r\n<code *ngIf=\"debugValue\">\r\n\t<pre>{{formValue | json}}</pre>\r\n</code>\r\n<!-- #endregion -->\r\n\r\n<div class=\"table-footer\" layout=\"row\">\r\n\t<ng-content select=\"[table-footer]\"></ng-content>\r\n\t<span flex></span>\r\n\t<mat-paginator *ngIf=\"paginable\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\"></mat-paginator>\r\n</div>", styles: ["::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-form-field .mat-form-field-wrapper{width:100%}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip{height:24px;margin-top:2px}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip .mdc-evolution-chip__action--primary{padding-left:9px;padding-right:9px}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip:last-child{margin-bottom:2px}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell .mat-mdc-chip *{font-size:.8rem}@media(max-width:389px){::ng-deep .mat-mdc-table [gt-xs],::ng-deep .mat-mdc-table .gt-xs{display:none}::ng-deep .mat-mdc-table [gt-sm],::ng-deep .mat-mdc-table .gt-sm{display:none}::ng-deep .mat-mdc-table [gt-md],::ng-deep .mat-mdc-table .gt-md{display:none}::ng-deep .mat-mdc-table [gt-lg],::ng-deep .mat-mdc-table .gt-lg{display:none}::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:599px){::ng-deep .mat-mdc-table [gt-sm],::ng-deep .mat-mdc-table .gt-sm{display:none}::ng-deep .mat-mdc-table [gt-md],::ng-deep .mat-mdc-table .gt-md{display:none}::ng-deep .mat-mdc-table [gt-lg],::ng-deep .mat-mdc-table .gt-lg{display:none}::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:959px){::ng-deep .mat-mdc-table [gt-md],::ng-deep .mat-mdc-table .gt-md{display:none}::ng-deep .mat-mdc-table [gt-lg],::ng-deep .mat-mdc-table .gt-lg{display:none}::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:1279px){::ng-deep .mat-mdc-table [gt-lg],::ng-deep .mat-mdc-table .gt-lg{display:none}::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:1919px){::ng-deep .mat-mdc-table [gt-xl],::ng-deep .mat-mdc-table .gt-xl{display:none}::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}@media(max-width:1979px){::ng-deep .mat-mdc-table [gt-xxl],::ng-deep .mat-mdc-table .gt-xxl{display:none}}.mat-table-container{width:100%;max-width:100%;overflow:auto}.mat-table-container .mat-mdc-header-cell,.mat-table-container .mat-mdc-footer-cell,.mat-table-container .mat-mdc-cell{min-width:80px;box-sizing:border-box}.mat-table-container .mat-mdc-header-row,.mat-table-container .mat-mdc-footer-row,.mat-table-container .mat-mdc-row{min-width:1920px}.mat-table-container.mat-table-sticky .mat-mdc-table-sticky-border-elem-right{box-shadow:-3px 0 5px #0000001a}.mat-table-container.mat-table-sticky .mat-mdc-table-sticky-border-elem-left{box-shadow:3px 0 5px #0000001a}\n"], dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i2$2.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i2$2.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i2$2.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i2$2.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: i2$2.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i16.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type:
|
|
17913
17910
|
//----------------------
|
|
17914
|
-
DataSourceFilterDirective, selector: "[dataSourceFilter]", inputs: ["dataSource", "dataSourceFilter"] }, { kind: "directive", type: DisableControlDirective, selector: "[disableControl]", inputs: ["disableControl"] }, { kind: "component", type: FilterDateComponent, selector: "mat-header-cell[filter-date], [mat-header-cell][filter-date], [filter-date]", inputs: ["field", "debounce", "placeholder"] }, { kind: "component", type: FilterInputComponent, selector: "mat-header-cell[filter-input], [mat-header-cell][filter-input], [filter-input]", inputs: ["field", "operator", "onlyNumber", "debounce", "placeholder"] }, { kind: "component", type: FilterSelectComponent, selector: "mat-header-cell[filter-select], [mat-header-cell][filter-select], [filter-select]", inputs: ["endpoint", "params", "projection", "sortBy", "sorted", "enumFilter", "enum", "enumMetadata", "key", "text", "prefix", "multiple", "options", "filteredOptions", "filterable", "field", "placeholder", "cache"] }, { kind: "component", type: FilterClearComponent, selector: "mat-header-cell[filter-clear], [mat-header-cell][filter-clear], [filter-clear]" }, { kind: "component", type: VdDynamicMenuComponent, selector: "vd-dynamic-menu", inputs: ["items", "data", "index", "context", "contextMenu"] }, { kind: "component", type: VdSelectComponent, selector: "vd-select", inputs: ["triggerCssClass", "triggerMode"] }, { kind: "pipe", type:
|
|
17911
|
+
DataSourceFilterDirective, selector: "[dataSourceFilter]", inputs: ["dataSource", "dataSourceFilter"] }, { kind: "directive", type: DisableControlDirective, selector: "[disableControl]", inputs: ["disableControl"] }, { kind: "component", type: FilterDateComponent, selector: "mat-header-cell[filter-date], [mat-header-cell][filter-date], [filter-date]", inputs: ["field", "debounce", "placeholder"] }, { kind: "component", type: FilterInputComponent, selector: "mat-header-cell[filter-input], [mat-header-cell][filter-input], [filter-input]", inputs: ["field", "operator", "onlyNumber", "debounce", "placeholder"] }, { kind: "component", type: FilterSelectComponent, selector: "mat-header-cell[filter-select], [mat-header-cell][filter-select], [filter-select]", inputs: ["endpoint", "params", "projection", "sortBy", "sorted", "enumFilter", "enum", "enumMetadata", "key", "text", "prefix", "multiple", "options", "filteredOptions", "filterable", "field", "placeholder", "cache"] }, { kind: "component", type: FilterClearComponent, selector: "mat-header-cell[filter-clear], [mat-header-cell][filter-clear], [filter-clear]" }, { kind: "component", type: VdDynamicMenuComponent, selector: "vd-dynamic-menu", inputs: ["items", "data", "index", "context", "contextMenu"] }, { kind: "component", type: VdSelectComponent, selector: "vd-select", inputs: ["triggerCssClass", "triggerMode"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.JsonPipe, name: "json" }, { kind: "pipe", type: i3$1.SlicePipe, name: "slice" }, { kind: "pipe", type: i3$1.DatePipe, name: "date" }, { kind: "pipe", type:
|
|
17915
17912
|
//----------------------
|
|
17916
17913
|
MapPipe, name: "map" }, { kind: "pipe", type: EnumPipe, name: "enum" }, { kind: "pipe", type: FormGroupPipe, name: "formGroup" }, { kind: "pipe", type: FuncPipe, name: "func" }, { kind: "pipe", type: JoinPipe, name: "join" }, { kind: "pipe", type: PropertyPipe, name: "property" }], animations: [
|
|
17917
17914
|
trigger('detailExpand', [
|
|
@@ -18332,30 +18329,23 @@ class VdDynamicTableConfigDialogComponent extends BaseComponent {
|
|
|
18332
18329
|
updateColumns() {
|
|
18333
18330
|
this.genericList?.updateColumns();
|
|
18334
18331
|
}
|
|
18335
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdDynamicTableConfigDialogComponent, deps: [{ token: i1$
|
|
18336
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
18337
|
-
//-----------------------
|
|
18338
|
-
MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i10$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type:
|
|
18339
|
-
//-----------------------
|
|
18340
|
-
VdDynamicTableComponent, selector: "vd-dynamic-table", inputs: ["dataSource", "data", "parentControl", "entityObject", "formArray", "debugValue", "classType", "context", "dataSourceFilter", "static", "filterable", "sticky", "tableWidth", "useFilterOperator", "paginable", "selectable", "sortActive", "sortDirection", "stickyHeader", "stickyFilter", "columnSets", "rowNgClass", "detailsTemplate", "readonly", "selectAllFilter", "paginatorRef", "columns", "rowMenuItems", "rowAction", "excludedColumns", "pageSize", "pageSizeOptions"], outputs: ["rowClick"] }] });
|
|
18332
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdDynamicTableConfigDialogComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: RxFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
18333
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdDynamicTableConfigDialogComponent, isStandalone: true, selector: "vd-dynamic-table-config-dialog", usesInheritance: true, ngImport: i0, template: "<!-- Title bar with close button -->\r\n<div cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" class=\"pad-right-sm push-none\" layout=\"row\" layout-align=\"space-between center\" cdkDragHandle>\r\n\t<!-- Dialog title -->\r\n\t<span mat-dialog-title class=\"pad-left-sm push-left-sm\" i18n=\"@@tableConfiguration\" flex>Table configuration</span>\r\n\r\n\t<!-- Close button -->\r\n\t<button mat-icon-button (click)=\"dialogRef.close()\">\r\n\t\t<mat-icon>close</mat-icon>\r\n\t</button>\r\n</div>\r\n\r\n@if (configForm) {\r\n\t<div class=\"pad-xs flex\" layout=\"column\">\r\n\t\t<div class=\"pad-bottom-sm\">\r\n\t\t\t@if (configForm) {\r\n\t\t\t\t<form [formGroup]=\"configForm\" class=\"pad-xs\">\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-checkbox formControlName=\"sticky\">\r\n\t\t\t\t\t\t\t<span i18n=\"@@sticky\">Sticky</span>\r\n\t\t\t\t\t\t\t<span class=\"description\" i18n=\"@@tableStickyDescription\"> - Select to make the table headers fixed during scrolling.</span>\r\n\t\t\t\t\t\t</mat-checkbox>\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<mat-form-field layout-margin flex>\r\n\t\t\t\t\t\t\t\t<mat-label i18n=\"@@tableWidth\">Table width</mat-label>\r\n\t\t\t\t\t\t\t\t<input matInput type=\"number\" formControlName=\"tableWidth\" />\r\n\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</form>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</div>\r\n\t<div layout-gt-sm=\"row\" class=\"dialog-container\" flex>\r\n\t\t<vd-dynamic-table #table [data]=\"columns\" [paginatorRef]=\"paginator\" [classType]=\"tableColumnConfigClassType\" [filterable]=\"true\" [paginable]=\"false\" [useFilterOperator]=\"false\" [pageSize]=\"10\" [context]=\"this\"></vd-dynamic-table>\r\n\t</div>\r\n\t<mat-dialog-actions>\r\n\t\t<a mat-flat-button color=\"primary\" (click)=\"save()\" i18n=\"@@save\">Save</a>\r\n\t\t<a mat-button (click)=\"apply()\" i18n=\"@@apply\">Apply</a>\r\n\t\t<a mat-button (click)=\"dialogRef.close()\" i18n=\"@@close\">Close</a>\r\n\t\t<span flex></span>\r\n\t\t<mat-paginator #paginator [length]=\"table.dataSource.total\" [pageIndex]=\"table.dataSource.pageIndex\" [pageSize]=\"table.dataSource.pageSize\" [pageSizeOptions]=\"table.pageSizeOptions\" showFirstLastButtons=\"true\"></mat-paginator>\r\n\t</mat-dialog-actions>\r\n}", styles: [".mat-mdc-dialog-title{cursor:move}.dialog-container{box-sizing:border-box;margin:0;overflow:auto;max-height:100%}.dialog-container mat-toolbar{background-color:var(--mat-sys-primary);min-height:52px;border-radius:inherit;border-bottom-right-radius:0;border-bottom-left-radius:0}.dialog-container vd-dynamic-table{max-height:100%!important}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: RxReactiveFormsModule }, { kind: "directive", type: AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: VdDynamicTableComponent, selector: "vd-dynamic-table", inputs: ["dataSource", "data", "parentControl", "entityObject", "formArray", "debugValue", "classType", "context", "dataSourceFilter", "static", "filterable", "sticky", "tableWidth", "useFilterOperator", "paginable", "selectable", "sortActive", "sortDirection", "stickyHeader", "stickyFilter", "columnSets", "rowNgClass", "detailsTemplate", "readonly", "selectAllFilter", "paginatorRef", "columns", "rowMenuItems", "rowAction", "excludedColumns", "pageSize", "pageSizeOptions"], outputs: ["rowClick"] }] });
|
|
18341
18334
|
}
|
|
18342
18335
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdDynamicTableConfigDialogComponent, decorators: [{
|
|
18343
18336
|
type: Component,
|
|
18344
18337
|
args: [{ selector: 'vd-dynamic-table-config-dialog', imports: [
|
|
18345
|
-
CommonModule,
|
|
18346
18338
|
ReactiveFormsModule,
|
|
18347
18339
|
RxReactiveFormsModule,
|
|
18348
|
-
//-----------------------
|
|
18349
18340
|
MatIconModule,
|
|
18350
18341
|
MatCheckboxModule,
|
|
18351
18342
|
MatFormFieldModule,
|
|
18352
18343
|
MatDialogModule,
|
|
18353
18344
|
MatPaginatorModule,
|
|
18354
18345
|
MatButtonModule,
|
|
18355
|
-
//-----------------------
|
|
18356
18346
|
VdDynamicTableComponent
|
|
18357
|
-
], template: "<!-- Title bar with close button -->\r\n<div cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" class=\"pad-right-sm push-none\" layout=\"row\" layout-align=\"space-between center\" cdkDragHandle>\r\n
|
|
18358
|
-
}], ctorParameters: () => [{ type: i1$
|
|
18347
|
+
], template: "<!-- Title bar with close button -->\r\n<div cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" class=\"pad-right-sm push-none\" layout=\"row\" layout-align=\"space-between center\" cdkDragHandle>\r\n\t<!-- Dialog title -->\r\n\t<span mat-dialog-title class=\"pad-left-sm push-left-sm\" i18n=\"@@tableConfiguration\" flex>Table configuration</span>\r\n\r\n\t<!-- Close button -->\r\n\t<button mat-icon-button (click)=\"dialogRef.close()\">\r\n\t\t<mat-icon>close</mat-icon>\r\n\t</button>\r\n</div>\r\n\r\n@if (configForm) {\r\n\t<div class=\"pad-xs flex\" layout=\"column\">\r\n\t\t<div class=\"pad-bottom-sm\">\r\n\t\t\t@if (configForm) {\r\n\t\t\t\t<form [formGroup]=\"configForm\" class=\"pad-xs\">\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-checkbox formControlName=\"sticky\">\r\n\t\t\t\t\t\t\t<span i18n=\"@@sticky\">Sticky</span>\r\n\t\t\t\t\t\t\t<span class=\"description\" i18n=\"@@tableStickyDescription\"> - Select to make the table headers fixed during scrolling.</span>\r\n\t\t\t\t\t\t</mat-checkbox>\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<mat-form-field layout-margin flex>\r\n\t\t\t\t\t\t\t\t<mat-label i18n=\"@@tableWidth\">Table width</mat-label>\r\n\t\t\t\t\t\t\t\t<input matInput type=\"number\" formControlName=\"tableWidth\" />\r\n\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</form>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</div>\r\n\t<div layout-gt-sm=\"row\" class=\"dialog-container\" flex>\r\n\t\t<vd-dynamic-table #table [data]=\"columns\" [paginatorRef]=\"paginator\" [classType]=\"tableColumnConfigClassType\" [filterable]=\"true\" [paginable]=\"false\" [useFilterOperator]=\"false\" [pageSize]=\"10\" [context]=\"this\"></vd-dynamic-table>\r\n\t</div>\r\n\t<mat-dialog-actions>\r\n\t\t<a mat-flat-button color=\"primary\" (click)=\"save()\" i18n=\"@@save\">Save</a>\r\n\t\t<a mat-button (click)=\"apply()\" i18n=\"@@apply\">Apply</a>\r\n\t\t<a mat-button (click)=\"dialogRef.close()\" i18n=\"@@close\">Close</a>\r\n\t\t<span flex></span>\r\n\t\t<mat-paginator #paginator [length]=\"table.dataSource.total\" [pageIndex]=\"table.dataSource.pageIndex\" [pageSize]=\"table.dataSource.pageSize\" [pageSizeOptions]=\"table.pageSizeOptions\" showFirstLastButtons=\"true\"></mat-paginator>\r\n\t</mat-dialog-actions>\r\n}", styles: [".mat-mdc-dialog-title{cursor:move}.dialog-container{box-sizing:border-box;margin:0;overflow:auto;max-height:100%}.dialog-container mat-toolbar{background-color:var(--mat-sys-primary);min-height:52px;border-radius:inherit;border-bottom-right-radius:0;border-bottom-left-radius:0}.dialog-container vd-dynamic-table{max-height:100%!important}\n"] }]
|
|
18348
|
+
}], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
18359
18349
|
type: Inject,
|
|
18360
18350
|
args: [MAT_DIALOG_DATA]
|
|
18361
18351
|
}] }, { type: RxFormBuilder }] });
|
|
@@ -19368,7 +19358,7 @@ class GenericListComponent extends BaseComponent {
|
|
|
19368
19358
|
}
|
|
19369
19359
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: GenericListComponent, decorators: [{
|
|
19370
19360
|
type: Directive
|
|
19371
|
-
}], ctorParameters: () => [{ type: undefined }, { type: i1$
|
|
19361
|
+
}], ctorParameters: () => [{ type: undefined }, { type: i1$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: undefined }], propDecorators: { paginator: [{
|
|
19372
19362
|
type: ViewChild,
|
|
19373
19363
|
args: [MatPaginator, { static: true }]
|
|
19374
19364
|
}], sort: [{
|
|
@@ -19562,7 +19552,7 @@ class GenericEmbeddedListComponent extends GenericListComponent {
|
|
|
19562
19552
|
}
|
|
19563
19553
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: GenericEmbeddedListComponent, decorators: [{
|
|
19564
19554
|
type: Directive
|
|
19565
|
-
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: RxFormBuilder }, { type: i1$
|
|
19555
|
+
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: RxFormBuilder }, { type: i1$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { form: [{
|
|
19566
19556
|
type: Input
|
|
19567
19557
|
}], parent: [{
|
|
19568
19558
|
type: Input
|
|
@@ -20676,7 +20666,7 @@ class GenericFormBaseComponent extends BaseComponent {
|
|
|
20676
20666
|
}
|
|
20677
20667
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: GenericFormBaseComponent, decorators: [{
|
|
20678
20668
|
type: Directive
|
|
20679
|
-
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1$
|
|
20669
|
+
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
20680
20670
|
type: Input
|
|
20681
20671
|
}], _item: [{
|
|
20682
20672
|
type: Input
|
|
@@ -20743,7 +20733,7 @@ class GenericFormComponent extends GenericFormBaseComponent {
|
|
|
20743
20733
|
}
|
|
20744
20734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: GenericFormComponent, decorators: [{
|
|
20745
20735
|
type: Directive
|
|
20746
|
-
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1$
|
|
20736
|
+
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { form: [{
|
|
20747
20737
|
type: Input
|
|
20748
20738
|
}] } });
|
|
20749
20739
|
|
|
@@ -20834,7 +20824,7 @@ class GenericReactiveFormComponent extends GenericFormBaseComponent {
|
|
|
20834
20824
|
}
|
|
20835
20825
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: GenericReactiveFormComponent, decorators: [{
|
|
20836
20826
|
type: Directive
|
|
20837
|
-
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1$
|
|
20827
|
+
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { form: [{
|
|
20838
20828
|
type: Input
|
|
20839
20829
|
}] } });
|
|
20840
20830
|
|
|
@@ -21236,13 +21226,13 @@ class PrintService {
|
|
|
21236
21226
|
this.router.navigate([{ outlets: { print: null } }]);
|
|
21237
21227
|
});
|
|
21238
21228
|
}
|
|
21239
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PrintService, deps: [{ token: i1$
|
|
21229
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PrintService, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21240
21230
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PrintService, providedIn: 'root' });
|
|
21241
21231
|
}
|
|
21242
21232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PrintService, decorators: [{
|
|
21243
21233
|
type: Injectable,
|
|
21244
21234
|
args: [{ providedIn: 'root' }]
|
|
21245
|
-
}], ctorParameters: () => [{ type: i1$
|
|
21235
|
+
}], ctorParameters: () => [{ type: i1$2.Router }] });
|
|
21246
21236
|
|
|
21247
21237
|
/**
|
|
21248
21238
|
* VdAutocompleteOptionDirective class
|
|
@@ -21870,13 +21860,13 @@ class VdChipsComponent extends AbstractMatFormField {
|
|
|
21870
21860
|
console.log(message, optionalParams);
|
|
21871
21861
|
}
|
|
21872
21862
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdChipsComponent, deps: [{ token: VdMediaService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21873
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
21863
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdChipsComponent, isStandalone: true, selector: "vd-chips", inputs: { classType: "classType", chips: "chips", endpoint: "endpoint", params: "params", projection: "projection", paginated: "paginated", customValue: "customValue", context: "context", key: "key", searchField: "searchField", searchFields: "searchFields", filters: "filters", removable: "removable", selectFirst: "selectFirst", debounce: "debounce", autocompleteCssClass: "autocompleteCssClass", suffixButtons: "suffixButtons" }, outputs: { initSelect: "initSelect", selected: "selected", cleared: "cleared", onLaunch: "launch", chipFocus: "chipFocus" }, providers: [
|
|
21874
21864
|
{ provide: MatFormFieldControl, useExisting: VdChipsComponent },
|
|
21875
21865
|
{
|
|
21876
21866
|
provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
|
|
21877
21867
|
useValue: { overlayPanelClass: 'vd-chips-autocomplete' }
|
|
21878
21868
|
}
|
|
21879
|
-
], queries: [{ propertyName: "chipTemplate", first: true, predicate: VdChipDirective, descendants: true }, { propertyName: "autocompleteOptionTemplate", first: true, predicate: VdAutocompleteOptionDirective, descendants: true }], viewQueries: [{ propertyName: "dynamicTable", first: true, predicate: VdDynamicTableComponent, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-chip-grid #chipList [required]=\"required\" [disabled]=\"readonly\">\r\n\t<!-- #region Chips -->\r\n\t<mat-chip-row *ngFor=\"let chip of chips; let first = first; let index = index\" [removable]=\"!readonly\" (removed)=\"handleRemovedEvent()\" disableRipple>\r\n\t\t<span class=\"vd-chip-content\">\r\n\t\t\t<span *ngIf=\"!chipTemplate?.templateRef\">\r\n\t\t\t\t<span *ngIf=\"!autocompleteOptionTemplate?.templateRef\">{{ chip }}</span>\r\n\t\t\t\t<ng-template *ngIf=\"autocompleteOptionTemplate?.templateRef\" [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: chip }\"></ng-template>\r\n\t\t\t</span>\r\n\t\t\t<ng-template *ngIf=\"chipTemplate?.templateRef\" [ngTemplateOutlet]=\"chipTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ chip: chip }\"></ng-template>\r\n\t\t</span>\r\n\t\t<a matChipTrailingIcon *ngFor=\"let button of suffixButtons; let first = first\" [hidden]=\"button.hide && button.hide(chips[0], context)\" (click)=\"$event.stopPropagation(); button.event && button.event(chips[0], context)\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">{{button.icon}}</mat-icon>\r\n\t\t</a>\r\n\t\t<a matChipTrailingIcon *ngIf=\"(onLaunch?.observers?.length??0) > 0\" (click)=\"$event.stopPropagation(); handleLaunchClicked()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">launch</mat-icon>\r\n\t\t</a>\r\n\t\t<a matChipTrailingIcon *ngIf=\"!readonly\" (click)=\"handleRemovedEvent()\">\r\n\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t</a>\r\n\t</mat-chip-row>\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Search box -->\r\n\t<input matInput [hidden]=\"value && !empty\" placeholder=\"{{placeholder}}\" (focus)=\"connect()\" [readonly]=\"readonly\" [matChipInputFor]=\"chipList\" [matAutocomplete]=\"auto\" [matAutocompleteConnectedTo]=\"origin\" [formControl]=\"autoCompleteChipList\" (blur)=\"customValue && addOnBlur($event)\" #filterInput />\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Reset button -->\r\n\t<a trailingIcon *ngIf=\"(!value || empty) && !readonly && !disabled\" class=\"mat-mdc-select-arrow\" (click)=\"filterInput.value = ''\">\r\n\t\t<svg viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" focusable=\"false\" class=\"ng-tns-c184-21\">\r\n\t\t\t<path d=\"M7 10l5 5 5-5z\" class=\"ng-tns-c184-21\"></path>\r\n\t\t</svg>\r\n\t</a>\r\n\t<!-- #endregion -->\r\n</mat-chip-grid>\r\n\r\n<!-- #region Autocomplete -->\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"addChip($event.option.value, filterInput)\" class=\"{{autocompleteCssClass}}{{classType?' table-autocomplete':''}}\">\r\n\t<ng-template *ngIf=\"!classType && opened\" let-item let-first=\"first\" ngFor [ngForOf]=\"dataSource?.items\">\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\t<ng-container *ngIf=\"classType && opened\">\r\n\t\t<mat-option hide=\"true\"></mat-option>\r\n\t\t<vd-dynamic-table [dataSource]=\"dataSource\" [classType]=\"classType\" [entityObject]=\"entityObject\" [parentControl]=\"parentControl\" [context]=\"context\" [stickyHeader]=\"true\" (rowClick)=\"addChip($event, filterInput)\" matSort [sortActive]=\"sortActive||'id'\" [sortDirection]=\"sortDirection\"></vd-dynamic-table>\r\n\t</ng-container>\r\n\t<div class=\"vd-chips-paginator\">\r\n\t\t<mat-divider></mat-divider>\r\n\t\t<mat-paginator [length]=\"dataSource?.total\" [pageIndex]=\"dataSource?.pageIndex\" [pageSize]=\"dataSource?.pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\" hidePageSize=\"true\"></mat-paginator>\r\n\t</div>\r\n</mat-autocomplete>\r\n<!-- #endregion -->\r\n\r\n<div matAutocompleteOrigin #origin=\"matAutocompleteOrigin\" class=\"autocomplete-origin\"></div>", styles: [":host ::ng-deep .mat-mdc-chip-set{width:100%}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips{margin-left:0!important;margin-right:0;align-items:center}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip{display:flex;flex-direction:row;width:100%;padding:0 5px;justify-content:center;background-color:transparent!important;margin-right:0!important;margin-left:0!important;padding:0!important;margin:0;height:initial}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip.mdc-evolution-chip--disabled{opacity:.6;pointer-events:all}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__action{justify-content:left}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__action--primary{padding-left:0}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__cell--trailing{margin-right:-10px;display:flex}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mat-mdc-chip-focus-overlay{background-color:transparent!important}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mat-icon{cursor:pointer;font-size:1.2em;opacity:.8}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip.mat-chip-disabled{opacity:.6}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-content{-ms-flex-positive:1!important;flex-grow:1!important;font-weight:initial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;justify-content:center}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-launch{font-size:18px;position:absolute;right:4px;top:0;cursor:pointer}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-launch.removable{right:34px}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip .mdc-evolution-chip__action--primary:before,:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip--disabled .mdc-evolution-chip__action--primary:before{border-color:transparent!important}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip .mdc-evolution-chip__text-label,:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:inherit!important}:host ::ng-deep .autocomplete-origin{position:absolute;width:calc(100% + 28px);bottom:0;height:2px;margin-left:-14px}mat-spinner{margin-top:-9px;margin-right:6px}.mat-mdc-form-field-infix{display:flex}::ng-deep .vd-chips-autocomplete .mat-mdc-autocomplete-panel{padding:0!important}::ng-deep .vd-chips-autocomplete .table-autocomplete{overflow:hidden}::ng-deep .vd-chips-autocomplete .table-autocomplete .mat-table-container{height:calc(100% - 56px)!important;max-height:100vh!important}::ng-deep .vd-chips-autocomplete .vd-chips-paginator{position:sticky;bottom:0}::ng-deep .vd-chips-autocomplete .vd-chips-paginator .mat-mdc-paginator .mat-mdc-paginator-container{padding:0}::ng-deep .vd-chips-autocomplete .vd-chips-paginator .mat-mdc-paginator .mat-mdc-paginator-container .mat-mdc-paginator-range-actions .mat-mdc-paginator-range-label{margin:0 16px 0 24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i4$2.MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i6$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "component", type: i5$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: i5$1.MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: VdDynamicTableComponent, selector: "vd-dynamic-table", inputs: ["dataSource", "data", "parentControl", "entityObject", "formArray", "debugValue", "classType", "context", "dataSourceFilter", "static", "filterable", "sticky", "tableWidth", "useFilterOperator", "paginable", "selectable", "sortActive", "sortDirection", "stickyHeader", "stickyFilter", "columnSets", "rowNgClass", "detailsTemplate", "readonly", "selectAllFilter", "paginatorRef", "columns", "rowMenuItems", "rowAction", "excludedColumns", "pageSize", "pageSizeOptions"], outputs: ["rowClick"] }] });
|
|
21869
|
+
], queries: [{ propertyName: "chipTemplate", first: true, predicate: VdChipDirective, descendants: true }, { propertyName: "autocompleteOptionTemplate", first: true, predicate: VdAutocompleteOptionDirective, descendants: true }], viewQueries: [{ propertyName: "dynamicTable", first: true, predicate: VdDynamicTableComponent, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-chip-grid #chipList [required]=\"required\" [disabled]=\"readonly\">\r\n\t<!-- #region Chips -->\r\n\t@for (chip of chips; track chip; let first = $first; let index = $index) {\r\n\t\t<mat-chip-row [removable]=\"!readonly\" (removed)=\"handleRemovedEvent()\" disableRipple>\r\n\t\t\t<span class=\"vd-chip-content\">\r\n\t\t\t\t@if (!chipTemplate?.templateRef) {\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t@if (!autocompleteOptionTemplate?.templateRef) {\r\n\t\t\t\t\t\t\t<span>{{ chip }}</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (autocompleteOptionTemplate?.templateRef) {\r\n\t\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: chip }\"></ng-template>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t@if (chipTemplate?.templateRef) {\r\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"chipTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ chip: chip }\"></ng-template>\r\n\t\t\t\t}\r\n\t\t\t</span>\r\n\t\t\t@for (button of suffixButtons; track button; let first = $first) {\r\n\t\t\t\t<a matChipTrailingIcon [hidden]=\"button.hide && button.hide(chips[0], context)\" (click)=\"$event.stopPropagation(); button.event && button.event(chips[0], context)\">\r\n\t\t\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">{{button.icon}}</mat-icon>\r\n\t\t\t\t</a>\r\n\t\t\t}\r\n\t\t\t@if ((onLaunch.observers.length) > 0) {\r\n\t\t\t\t<a matChipTrailingIcon (click)=\"$event.stopPropagation(); handleLaunchClicked()\">\r\n\t\t\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">launch</mat-icon>\r\n\t\t\t\t</a>\r\n\t\t\t}\r\n\t\t\t@if (!readonly) {\r\n\t\t\t\t<a matChipTrailingIcon (click)=\"handleRemovedEvent()\">\r\n\t\t\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t\t\t</a>\r\n\t\t\t}\r\n\t\t</mat-chip-row>\r\n\t}\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Search box -->\r\n\t<input matInput [hidden]=\"value && !empty\" placeholder=\"{{placeholder}}\" (focus)=\"connect()\" [readonly]=\"readonly\" [matChipInputFor]=\"chipList\" [matAutocomplete]=\"auto\" [matAutocompleteConnectedTo]=\"origin\" [formControl]=\"autoCompleteChipList\" (blur)=\"customValue && addOnBlur($event)\" #filterInput />\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Reset button -->\r\n\t@if ((!value || empty) && !readonly && !disabled) {\r\n\t\t<a trailingIcon class=\"mat-mdc-select-arrow\" (click)=\"filterInput.value = ''\">\r\n\t\t\t<svg viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" focusable=\"false\" class=\"ng-tns-c184-21\">\r\n\t\t\t\t<path d=\"M7 10l5 5 5-5z\" class=\"ng-tns-c184-21\"></path>\r\n\t\t\t</svg>\r\n\t\t</a>\r\n\t}\r\n\t<!-- #endregion -->\r\n</mat-chip-grid>\r\n\r\n<!-- #region Autocomplete -->\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"addChip($event.option.value, filterInput)\" class=\"{{autocompleteCssClass}}{{classType?' table-autocomplete':''}}\">\r\n\t@for (item of dataSource?.items; track item; let first = $first) {\r\n\t\t<ng-template *ngIf=\"!classType && opened\" let-item let-first=\"first\" [ngForOf]=\"dataSource?.items\">\r\n\t\t\t<mat-option [value]=\"item\">\r\n\t\t\t\t@if (!autocompleteOptionTemplate?.templateRef) {\r\n\t\t\t\t\t<span>{{item}}</span>\r\n\t\t\t\t}\r\n\t\t\t\t@if (autocompleteOptionTemplate?.templateRef) {\r\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: item }\"></ng-template>\r\n\t\t\t\t}\r\n\t\t\t</mat-option>\r\n\t\t</ng-template>\r\n\t}\r\n\t@if (classType && opened) {\r\n\t\t<mat-option hide=\"true\"></mat-option>\r\n\t\t<vd-dynamic-table [dataSource]=\"dataSource\" [classType]=\"classType\" [entityObject]=\"entityObject\" [parentControl]=\"parentControl\" [context]=\"context\" [stickyHeader]=\"true\" (rowClick)=\"addChip($event, filterInput)\" matSort [sortActive]=\"sortActive||'id'\" [sortDirection]=\"sortDirection\"></vd-dynamic-table>\r\n\t}\r\n\t<div class=\"vd-chips-paginator\">\r\n\t\t<mat-divider></mat-divider>\r\n\t\t<mat-paginator [length]=\"dataSource?.total\" [pageIndex]=\"dataSource?.pageIndex\" [pageSize]=\"dataSource?.pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\" hidePageSize=\"true\"></mat-paginator>\r\n\t</div>\r\n</mat-autocomplete>\r\n<!-- #endregion -->\r\n\r\n<div matAutocompleteOrigin #origin=\"matAutocompleteOrigin\" class=\"autocomplete-origin\"></div>", styles: [":host ::ng-deep .mat-mdc-chip-set{width:100%}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips{margin-left:0!important;margin-right:0;align-items:center}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip{display:flex;flex-direction:row;width:100%;padding:0 5px;justify-content:center;background-color:transparent!important;margin-right:0!important;margin-left:0!important;padding:0!important;margin:0;height:initial}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip.mdc-evolution-chip--disabled{opacity:.6;pointer-events:all}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__action{justify-content:left}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__action--primary{padding-left:0}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__cell--trailing{margin-right:-10px;display:flex}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mat-mdc-chip-focus-overlay{background-color:transparent!important}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mat-icon{cursor:pointer;font-size:1.2em;opacity:.8}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip.mat-chip-disabled{opacity:.6}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-content{-ms-flex-positive:1!important;flex-grow:1!important;font-weight:initial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;justify-content:center}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-launch{font-size:18px;position:absolute;right:4px;top:0;cursor:pointer}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-launch.removable{right:34px}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip .mdc-evolution-chip__action--primary:before,:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip--disabled .mdc-evolution-chip__action--primary:before{border-color:transparent!important}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip .mdc-evolution-chip__text-label,:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:inherit!important}:host ::ng-deep .autocomplete-origin{position:absolute;width:calc(100% + 28px);bottom:0;height:2px;margin-left:-14px}mat-spinner{margin-top:-9px;margin-right:6px}.mat-mdc-form-field-infix{display:flex}::ng-deep .vd-chips-autocomplete .mat-mdc-autocomplete-panel{padding:0!important}::ng-deep .vd-chips-autocomplete .table-autocomplete{overflow:hidden}::ng-deep .vd-chips-autocomplete .table-autocomplete .mat-table-container{height:calc(100% - 56px)!important;max-height:100vh!important}::ng-deep .vd-chips-autocomplete .vd-chips-paginator{position:sticky;bottom:0}::ng-deep .vd-chips-autocomplete .vd-chips-paginator .mat-mdc-paginator .mat-mdc-paginator-container{padding:0}::ng-deep .vd-chips-autocomplete .vd-chips-paginator .mat-mdc-paginator .mat-mdc-paginator-container .mat-mdc-paginator-range-actions .mat-mdc-paginator-range-label{margin:0 16px 0 24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i4.MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i6$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "component", type: i5$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: i5$1.MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: VdDynamicTableComponent, selector: "vd-dynamic-table", inputs: ["dataSource", "data", "parentControl", "entityObject", "formArray", "debugValue", "classType", "context", "dataSourceFilter", "static", "filterable", "sticky", "tableWidth", "useFilterOperator", "paginable", "selectable", "sortActive", "sortDirection", "stickyHeader", "stickyFilter", "columnSets", "rowNgClass", "detailsTemplate", "readonly", "selectAllFilter", "paginatorRef", "columns", "rowMenuItems", "rowAction", "excludedColumns", "pageSize", "pageSizeOptions"], outputs: ["rowClick"] }] });
|
|
21880
21870
|
}
|
|
21881
21871
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdChipsComponent, decorators: [{
|
|
21882
21872
|
type: Component,
|
|
@@ -21896,7 +21886,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
21896
21886
|
MatIconModule,
|
|
21897
21887
|
MatInputModule,
|
|
21898
21888
|
VdDynamicTableComponent,
|
|
21899
|
-
], template: "<mat-chip-grid #chipList [required]=\"required\" [disabled]=\"readonly\">\r\n\t<!-- #region Chips -->\r\n\t
|
|
21889
|
+
], template: "<mat-chip-grid #chipList [required]=\"required\" [disabled]=\"readonly\">\r\n\t<!-- #region Chips -->\r\n\t@for (chip of chips; track chip; let first = $first; let index = $index) {\r\n\t\t<mat-chip-row [removable]=\"!readonly\" (removed)=\"handleRemovedEvent()\" disableRipple>\r\n\t\t\t<span class=\"vd-chip-content\">\r\n\t\t\t\t@if (!chipTemplate?.templateRef) {\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t@if (!autocompleteOptionTemplate?.templateRef) {\r\n\t\t\t\t\t\t\t<span>{{ chip }}</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (autocompleteOptionTemplate?.templateRef) {\r\n\t\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: chip }\"></ng-template>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t@if (chipTemplate?.templateRef) {\r\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"chipTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ chip: chip }\"></ng-template>\r\n\t\t\t\t}\r\n\t\t\t</span>\r\n\t\t\t@for (button of suffixButtons; track button; let first = $first) {\r\n\t\t\t\t<a matChipTrailingIcon [hidden]=\"button.hide && button.hide(chips[0], context)\" (click)=\"$event.stopPropagation(); button.event && button.event(chips[0], context)\">\r\n\t\t\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">{{button.icon}}</mat-icon>\r\n\t\t\t\t</a>\r\n\t\t\t}\r\n\t\t\t@if ((onLaunch.observers.length) > 0) {\r\n\t\t\t\t<a matChipTrailingIcon (click)=\"$event.stopPropagation(); handleLaunchClicked()\">\r\n\t\t\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">launch</mat-icon>\r\n\t\t\t\t</a>\r\n\t\t\t}\r\n\t\t\t@if (!readonly) {\r\n\t\t\t\t<a matChipTrailingIcon (click)=\"handleRemovedEvent()\">\r\n\t\t\t\t\t<mat-icon fontSet=\"material-symbols-outlined\">close</mat-icon>\r\n\t\t\t\t</a>\r\n\t\t\t}\r\n\t\t</mat-chip-row>\r\n\t}\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Search box -->\r\n\t<input matInput [hidden]=\"value && !empty\" placeholder=\"{{placeholder}}\" (focus)=\"connect()\" [readonly]=\"readonly\" [matChipInputFor]=\"chipList\" [matAutocomplete]=\"auto\" [matAutocompleteConnectedTo]=\"origin\" [formControl]=\"autoCompleteChipList\" (blur)=\"customValue && addOnBlur($event)\" #filterInput />\r\n\t<!-- #endregion -->\r\n\r\n\t<!-- #region Reset button -->\r\n\t@if ((!value || empty) && !readonly && !disabled) {\r\n\t\t<a trailingIcon class=\"mat-mdc-select-arrow\" (click)=\"filterInput.value = ''\">\r\n\t\t\t<svg viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" focusable=\"false\" class=\"ng-tns-c184-21\">\r\n\t\t\t\t<path d=\"M7 10l5 5 5-5z\" class=\"ng-tns-c184-21\"></path>\r\n\t\t\t</svg>\r\n\t\t</a>\r\n\t}\r\n\t<!-- #endregion -->\r\n</mat-chip-grid>\r\n\r\n<!-- #region Autocomplete -->\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"addChip($event.option.value, filterInput)\" class=\"{{autocompleteCssClass}}{{classType?' table-autocomplete':''}}\">\r\n\t@for (item of dataSource?.items; track item; let first = $first) {\r\n\t\t<ng-template *ngIf=\"!classType && opened\" let-item let-first=\"first\" [ngForOf]=\"dataSource?.items\">\r\n\t\t\t<mat-option [value]=\"item\">\r\n\t\t\t\t@if (!autocompleteOptionTemplate?.templateRef) {\r\n\t\t\t\t\t<span>{{item}}</span>\r\n\t\t\t\t}\r\n\t\t\t\t@if (autocompleteOptionTemplate?.templateRef) {\r\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"autocompleteOptionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: item }\"></ng-template>\r\n\t\t\t\t}\r\n\t\t\t</mat-option>\r\n\t\t</ng-template>\r\n\t}\r\n\t@if (classType && opened) {\r\n\t\t<mat-option hide=\"true\"></mat-option>\r\n\t\t<vd-dynamic-table [dataSource]=\"dataSource\" [classType]=\"classType\" [entityObject]=\"entityObject\" [parentControl]=\"parentControl\" [context]=\"context\" [stickyHeader]=\"true\" (rowClick)=\"addChip($event, filterInput)\" matSort [sortActive]=\"sortActive||'id'\" [sortDirection]=\"sortDirection\"></vd-dynamic-table>\r\n\t}\r\n\t<div class=\"vd-chips-paginator\">\r\n\t\t<mat-divider></mat-divider>\r\n\t\t<mat-paginator [length]=\"dataSource?.total\" [pageIndex]=\"dataSource?.pageIndex\" [pageSize]=\"dataSource?.pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons=\"true\" hidePageSize=\"true\"></mat-paginator>\r\n\t</div>\r\n</mat-autocomplete>\r\n<!-- #endregion -->\r\n\r\n<div matAutocompleteOrigin #origin=\"matAutocompleteOrigin\" class=\"autocomplete-origin\"></div>", styles: [":host ::ng-deep .mat-mdc-chip-set{width:100%}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips{margin-left:0!important;margin-right:0;align-items:center}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip{display:flex;flex-direction:row;width:100%;padding:0 5px;justify-content:center;background-color:transparent!important;margin-right:0!important;margin-left:0!important;padding:0!important;margin:0;height:initial}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip.mdc-evolution-chip--disabled{opacity:.6;pointer-events:all}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__action{justify-content:left}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__action--primary{padding-left:0}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mdc-evolution-chip__cell--trailing{margin-right:-10px;display:flex}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mat-mdc-chip-focus-overlay{background-color:transparent!important}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .mat-icon{cursor:pointer;font-size:1.2em;opacity:.8}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip.mat-chip-disabled{opacity:.6}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-content{-ms-flex-positive:1!important;flex-grow:1!important;font-weight:initial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;justify-content:center}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-launch{font-size:18px;position:absolute;right:4px;top:0;cursor:pointer}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip-set__chips .mat-mdc-chip .vd-chip-launch.removable{right:34px}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip .mdc-evolution-chip__action--primary:before,:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip--disabled .mdc-evolution-chip__action--primary:before{border-color:transparent!important}:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip .mdc-evolution-chip__text-label,:host ::ng-deep .mat-mdc-chip-set .mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:inherit!important}:host ::ng-deep .autocomplete-origin{position:absolute;width:calc(100% + 28px);bottom:0;height:2px;margin-left:-14px}mat-spinner{margin-top:-9px;margin-right:6px}.mat-mdc-form-field-infix{display:flex}::ng-deep .vd-chips-autocomplete .mat-mdc-autocomplete-panel{padding:0!important}::ng-deep .vd-chips-autocomplete .table-autocomplete{overflow:hidden}::ng-deep .vd-chips-autocomplete .table-autocomplete .mat-table-container{height:calc(100% - 56px)!important;max-height:100vh!important}::ng-deep .vd-chips-autocomplete .vd-chips-paginator{position:sticky;bottom:0}::ng-deep .vd-chips-autocomplete .vd-chips-paginator .mat-mdc-paginator .mat-mdc-paginator-container{padding:0}::ng-deep .vd-chips-autocomplete .vd-chips-paginator .mat-mdc-paginator .mat-mdc-paginator-container .mat-mdc-paginator-range-actions .mat-mdc-paginator-range-label{margin:0 16px 0 24px}\n"] }]
|
|
21900
21890
|
}], ctorParameters: () => [{ type: VdMediaService }], propDecorators: { dynamicTable: [{
|
|
21901
21891
|
type: ViewChild,
|
|
21902
21892
|
args: [VdDynamicTableComponent, { static: false }]
|
|
@@ -22224,43 +22214,50 @@ class VdFileInputComponent {
|
|
|
22224
22214
|
this.stateChanges.complete();
|
|
22225
22215
|
this.fm.stopMonitoring(this._elementRef.nativeElement);
|
|
22226
22216
|
}
|
|
22227
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdFileInputComponent, deps: [{ token: i1$
|
|
22228
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
22217
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdFileInputComponent, deps: [{ token: i1$1.NgControl }, { token: i2$4.FocusMonitor }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
22218
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdFileInputComponent, isStandalone: true, selector: "[vd-file-input]", inputs: { accept: "accept", placeholder: "placeholder", required: "required", multiple: "multiple", disabled: "disabled", errorState: "errorState" }, outputs: { onSelect: "select", onClear: "clear" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, providers: [{ provide: MatFormFieldControl, useExisting: VdFileInputComponent }], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["fileElement"], descendants: true, static: true }, { propertyName: "_fileInputElement", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: `
|
|
22229
22219
|
<div layout="row" flex>
|
|
22230
|
-
|
|
22231
|
-
|
|
22232
|
-
|
|
22233
|
-
|
|
22234
|
-
|
|
22235
|
-
|
|
22236
|
-
|
|
22237
|
-
|
|
22238
|
-
|
|
22239
|
-
|
|
22240
|
-
|
|
22220
|
+
<input matInput #fileElement [(ngModel)]="value" (click)="fileInput.click(); $event.stopPropagation()" readonly="true" [placeholder]="placeholder" [disabled]="disabled" [required]="required">
|
|
22221
|
+
<input hidden type="file" [accept]="accept" #fileInput (change)="handleSelect($event)" />
|
|
22222
|
+
<div class="btn-suffix">
|
|
22223
|
+
@if (!value) {
|
|
22224
|
+
<button type="button" mat-icon-button matSuffix (click)="fileInput.click(); $event.stopPropagation()">
|
|
22225
|
+
<mat-icon fontSet="material-symbols-outlined">file_upload</mat-icon>
|
|
22226
|
+
</button>
|
|
22227
|
+
}
|
|
22228
|
+
@if (value) {
|
|
22229
|
+
<button type="button" mat-icon-button matSuffix (click)="clear(); $event.stopPropagation()">
|
|
22230
|
+
<mat-icon fontSet="material-symbols-outlined">close</mat-icon>
|
|
22231
|
+
</button>
|
|
22232
|
+
}
|
|
22233
|
+
</div>
|
|
22234
|
+
</div>`, isInline: true, styles: [".btn-suffix .mat-mdc-icon-button{position:absolute;right:-16px;top:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] });
|
|
22241
22235
|
}
|
|
22242
22236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdFileInputComponent, decorators: [{
|
|
22243
22237
|
type: Component,
|
|
22244
22238
|
args: [{ selector: '[vd-file-input]', template: `
|
|
22245
22239
|
<div layout="row" flex>
|
|
22246
|
-
|
|
22247
|
-
|
|
22248
|
-
|
|
22249
|
-
|
|
22250
|
-
|
|
22251
|
-
|
|
22252
|
-
|
|
22253
|
-
|
|
22254
|
-
|
|
22255
|
-
|
|
22240
|
+
<input matInput #fileElement [(ngModel)]="value" (click)="fileInput.click(); $event.stopPropagation()" readonly="true" [placeholder]="placeholder" [disabled]="disabled" [required]="required">
|
|
22241
|
+
<input hidden type="file" [accept]="accept" #fileInput (change)="handleSelect($event)" />
|
|
22242
|
+
<div class="btn-suffix">
|
|
22243
|
+
@if (!value) {
|
|
22244
|
+
<button type="button" mat-icon-button matSuffix (click)="fileInput.click(); $event.stopPropagation()">
|
|
22245
|
+
<mat-icon fontSet="material-symbols-outlined">file_upload</mat-icon>
|
|
22246
|
+
</button>
|
|
22247
|
+
}
|
|
22248
|
+
@if (value) {
|
|
22249
|
+
<button type="button" mat-icon-button matSuffix (click)="clear(); $event.stopPropagation()">
|
|
22250
|
+
<mat-icon fontSet="material-symbols-outlined">close</mat-icon>
|
|
22251
|
+
</button>
|
|
22252
|
+
}
|
|
22253
|
+
</div>
|
|
22256
22254
|
</div>`, imports: [
|
|
22257
|
-
CommonModule,
|
|
22258
22255
|
FormsModule,
|
|
22259
22256
|
MatInputModule,
|
|
22260
22257
|
MatIconModule,
|
|
22261
22258
|
MatIconButton
|
|
22262
22259
|
], providers: [{ provide: MatFormFieldControl, useExisting: VdFileInputComponent }], styles: [".btn-suffix .mat-mdc-icon-button{position:absolute;right:-16px;top:0}\n"] }]
|
|
22263
|
-
}], ctorParameters: () => [{ type: i1$
|
|
22260
|
+
}], ctorParameters: () => [{ type: i1$1.NgControl }, { type: i2$4.FocusMonitor }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { accept: [{
|
|
22264
22261
|
type: Input
|
|
22265
22262
|
}], onSelect: [{
|
|
22266
22263
|
type: Output,
|
|
@@ -22389,12 +22386,11 @@ class DatePickerHeaderComponent {
|
|
|
22389
22386
|
this.destroyed.complete();
|
|
22390
22387
|
}
|
|
22391
22388
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DatePickerHeaderComponent, deps: [{ token: i6$1.MatCalendar }, { token: i2$5.DateAdapter }, { token: MAT_DATE_FORMATS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
22392
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: DatePickerHeaderComponent, isStandalone: true, selector: "vd-datepicker-header", ngImport: i0, template: "<div class=\"header\">\r\n\t<button type=\"button\" mat-icon-button (click)=\"previousClicked('year')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_double_arrow_left</mat-icon>\r\n\t</button>\r\n\t<button type=\"button\" mat-icon-button (click)=\"previousClicked('month')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_arrow_left</mat-icon>\r\n\t</button>\r\n\t<span class=\"header-label\">{{periodLabel}}</span>\r\n\t<button type=\"button\" mat-icon-button (click)=\"nextClicked('month')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_arrow_right</mat-icon>\r\n\t</button>\r\n\t<button type=\"button\" mat-icon-button (click)=\"nextClicked('year')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_double_arrow_right</mat-icon>\r\n\t</button>\r\n</div>", styles: [".header{display:flex;align-items:center;padding:.5em}.header-label{flex:1;height:1em;font-weight:500;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
22389
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: DatePickerHeaderComponent, isStandalone: true, selector: "vd-datepicker-header", ngImport: i0, template: "<div class=\"header\">\r\n\t<button type=\"button\" mat-icon-button (click)=\"previousClicked('year')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_double_arrow_left</mat-icon>\r\n\t</button>\r\n\t<button type=\"button\" mat-icon-button (click)=\"previousClicked('month')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_arrow_left</mat-icon>\r\n\t</button>\r\n\t<span class=\"header-label\">{{periodLabel}}</span>\r\n\t<button type=\"button\" mat-icon-button (click)=\"nextClicked('month')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_arrow_right</mat-icon>\r\n\t</button>\r\n\t<button type=\"button\" mat-icon-button (click)=\"nextClicked('year')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_double_arrow_right</mat-icon>\r\n\t</button>\r\n</div>", styles: [".header{display:flex;align-items:center;padding:.5em}.header-label{flex:1;height:1em;font-weight:500;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22393
22390
|
}
|
|
22394
22391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DatePickerHeaderComponent, decorators: [{
|
|
22395
22392
|
type: Component,
|
|
22396
22393
|
args: [{ selector: 'vd-datepicker-header', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
22397
|
-
CommonModule,
|
|
22398
22394
|
MatIconModule,
|
|
22399
22395
|
MatButtonModule
|
|
22400
22396
|
], template: "<div class=\"header\">\r\n\t<button type=\"button\" mat-icon-button (click)=\"previousClicked('year')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_double_arrow_left</mat-icon>\r\n\t</button>\r\n\t<button type=\"button\" mat-icon-button (click)=\"previousClicked('month')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_arrow_left</mat-icon>\r\n\t</button>\r\n\t<span class=\"header-label\">{{periodLabel}}</span>\r\n\t<button type=\"button\" mat-icon-button (click)=\"nextClicked('month')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_arrow_right</mat-icon>\r\n\t</button>\r\n\t<button type=\"button\" mat-icon-button (click)=\"nextClicked('year')\">\r\n\t\t<mat-icon fontSet=\"material-symbols-outlined\">keyboard_double_arrow_right</mat-icon>\r\n\t</button>\r\n</div>", styles: [".header{display:flex;align-items:center;padding:.5em}.header-label{flex:1;height:1em;font-weight:500;text-align:center}\n"] }]
|
|
@@ -22455,7 +22451,7 @@ class VdListComponent extends AbstractSelectFormField {
|
|
|
22455
22451
|
this.selectEl?.focus();
|
|
22456
22452
|
}
|
|
22457
22453
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22458
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
22454
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdListComponent, isStandalone: true, selector: "vd-list", host: { classAttribute: "vd-list" }, providers: [{ provide: MatFormFieldControl, useExisting: VdListComponent }], queries: [{ propertyName: "optionTemplate", first: true, predicate: VdListOptionDirective, descendants: true }], viewQueries: [{ propertyName: "selectEl", first: true, predicate: MatSelectionList, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-selection-list i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelectionList\" (selectionChange)=\"handleChange($event)\" [multiple]=\"multiple\" [compareWith]=\"compareWith??defaultCompareWith\" [disabled]=\"disabled || readonly\" [hideSingleSelectionIndicator]=\"false\" flex>\r\n <!-- #region Options -->\r\n @for (option of filteredOptions; track option; let first = $first) {\r\n <mat-list-option [value]=\"mapper ? option : option[optionValueProperty]\">\r\n @if (!optionTemplate?.templateRef) {\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n }\r\n @if (optionTemplate?.templateRef) {\r\n <ng-template [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n }\r\n </mat-list-option>\r\n }\r\n <!-- #endregion -->\r\n</mat-selection-list>", styles: ["::ng-deep .vd-list{overflow:auto;max-height:100%}::ng-deep .mat-mdc-form-field-type-vd-list .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important}::ng-deep .mat-mdc-form-field-type-vd-list .mdc-text-field{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
22459
22455
|
}
|
|
22460
22456
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdListComponent, decorators: [{
|
|
22461
22457
|
type: Component,
|
|
@@ -22464,7 +22460,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
22464
22460
|
MatSelectionList,
|
|
22465
22461
|
MatListOption,
|
|
22466
22462
|
FormsModule,
|
|
22467
|
-
], template: "<mat-selection-list i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelectionList\" (selectionChange)=\"handleChange($event)\" [multiple]=\"multiple\" [compareWith]=\"compareWith??defaultCompareWith\" [disabled]=\"disabled || readonly\" [hideSingleSelectionIndicator]=\"false\" flex>\r\n
|
|
22463
|
+
], template: "<mat-selection-list i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelectionList\" (selectionChange)=\"handleChange($event)\" [multiple]=\"multiple\" [compareWith]=\"compareWith??defaultCompareWith\" [disabled]=\"disabled || readonly\" [hideSingleSelectionIndicator]=\"false\" flex>\r\n <!-- #region Options -->\r\n @for (option of filteredOptions; track option; let first = $first) {\r\n <mat-list-option [value]=\"mapper ? option : option[optionValueProperty]\">\r\n @if (!optionTemplate?.templateRef) {\r\n <span i18n=\"@@selection\">{option[optionTextProperty], select, option {option} other {{{option[optionTextProperty]}}}}</span>\r\n }\r\n @if (optionTemplate?.templateRef) {\r\n <ng-template [ngTemplateOutlet]=\"optionTemplate?.templateRef!\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n }\r\n </mat-list-option>\r\n }\r\n <!-- #endregion -->\r\n</mat-selection-list>", styles: ["::ng-deep .vd-list{overflow:auto;max-height:100%}::ng-deep .mat-mdc-form-field-type-vd-list .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important}::ng-deep .mat-mdc-form-field-type-vd-list .mdc-text-field{padding:0}\n"] }]
|
|
22468
22464
|
}], ctorParameters: () => [], propDecorators: { optionTemplate: [{
|
|
22469
22465
|
type: ContentChild,
|
|
22470
22466
|
args: [VdListOptionDirective]
|
|
@@ -22544,7 +22540,7 @@ class ParseDecimalDirective {
|
|
|
22544
22540
|
this.control.control.markAsDirty();
|
|
22545
22541
|
}
|
|
22546
22542
|
}
|
|
22547
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ParseDecimalDirective, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
22543
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ParseDecimalDirective, deps: [{ token: i0.ElementRef }, { token: i1$1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
|
|
22548
22544
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ParseDecimalDirective, isStandalone: true, selector: "[parseDecimal]", inputs: { parseDecimalEnabled: "parseDecimalEnabled" }, host: { listeners: { "paste": "onPaste($event)" } }, ngImport: i0 });
|
|
22549
22545
|
}
|
|
22550
22546
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ParseDecimalDirective, decorators: [{
|
|
@@ -22552,7 +22548,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
22552
22548
|
args: [{
|
|
22553
22549
|
selector: '[parseDecimal]'
|
|
22554
22550
|
}]
|
|
22555
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$
|
|
22551
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.NgControl }], propDecorators: { parseDecimalEnabled: [{
|
|
22556
22552
|
type: Input
|
|
22557
22553
|
}], onPaste: [{
|
|
22558
22554
|
type: HostListener,
|
|
@@ -23229,15 +23225,15 @@ class VdGenericFormComponent {
|
|
|
23229
23225
|
console.log(message, optionalParams);
|
|
23230
23226
|
}
|
|
23231
23227
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdGenericFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23232
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdGenericFormComponent, isStandalone: true, selector: "vd-generic-form", inputs: { formGroup: "formGroup", classType: "classType", formDefinition: "formDefinition", fieldGroups: "fieldGroups", groupName: "groupName", fieldSets: "fieldSets", context: "context", debugValue: "debugValue", readonly: "readonly", separatorKeysCodes: "separatorKeysCodes" }, 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 }, { propertyName: "bottom", first: true, predicate: ["bottom"], descendants: true }, { propertyName: "customFields", first: true, predicate: ["customFields"], descendants: true }, { propertyName: "customFieldsTemplates", predicate: VdGenericFormCustomFieldDirective }], ngImport: i0, template: "<div *ngIf=\"formGroup && fieldRows\" [formGroup]=\"formGroup!\">\r\n <!-- #region Fields -->\r\n <ng-container *ngFor=\"let fields of fieldRows; let i = index\">\r\n <div layout-gt-sm=\"row\" layout=\"column\">\r\n <ng-container *ngFor=\"let field of fields\" [ngSwitch]=\"field.type\">\r\n <ng-container *ngIf=\"!field.hidden && !(field.hide && field.hide(formValue, formGroup, context))\">\r\n <ng-container *ngIf=\"field.wrapped\">\r\n <!-- #region Text input -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Text\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <input matInput\r\n [type]=\"field.inputType ?? 'text'\"\r\n [minlength]=\"field.minLength | func:formValue:formGroup:context\"\r\n [maxlength]=\"field.maxLength | func:formValue:formGroup:context\"\r\n [min]=\"field.min\" [max]=\"field.max\"\r\n [formControlName]=\"field.name!\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [pattern]=\"((field.pattern | func:formValue:formGroup:context)??'')\"\r\n [autoFocus]=\"((field.focus | func:formValue:formGroup:context)??false)\"\r\n [selectText]=\"((field.selectText | func:formValue:formGroup:context)??false)\"\r\n [onlyNumber]=\"(field.numbersOnly??false)\"\r\n [prefix]=\"field.prefix | func:formValue:formGroup:context\"\r\n parseDecimal\r\n [parseDecimalEnabled]=\"(field.parseDecimal??false)\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\">\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\"\r\n mat-icon-button\r\n *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\"\r\n (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any($any(formGroup.controls[field.name!]))['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Textarea -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.TextArea\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <textarea matInput\r\n [formControlName]=\"field.name!\"\r\n rows=\"field.rows||2\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [prefix]=\"field.prefix | func:formValue:formGroup:context\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\">\r\n </textarea>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\"\r\n mat-icon-button\r\n *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\"\r\n (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Enum -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Enum\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <vd-select [formControlName]=\"field.name!\"\r\n [enum]=\"field.enumType\"\r\n [enumMetadata]=\"field.enumMetadata\"\r\n [enumFilter]=\"field.enumFilter | func:formValue:formGroup:context\"\r\n [optionValueProperty]=\"field.optionValueProperty\"\r\n [optionTextProperty]=\"field.optionTextProperty\"\r\n [defaultOption]=\"field.defaultOption??true\"\r\n [multiple]=\"field.multiple\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [triggerCssClass]=\"field.triggerCssClass\"\r\n [triggerMode]=\"field.triggerMode\"\r\n layout=\"row\"\r\n flex>\r\n <ng-template vd-select-trigger let-trigger=\"trigger\" *ngIf=\"field.triggerTemplate\">\r\n <span [innerHTML]=\"field.triggerTemplate(trigger, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n <ng-template vd-select-option let-option=\"option\" *ngIf=\"field.optionTemplate\">\r\n <span [outerHTML]=\"field.optionTemplate(option, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n <ng-template vd-select-option let-option=\"option\" let-text=\"text\" *ngIf=\"field.optionIcon && !field.optionTemplate\">\r\n <div layout=\"row\" layout-align=\"start center\">\r\n <ng-template #optionIconTemplate\r\n [ngTemplateOutlet]=\"optionIconTemplate\"\r\n let-optionIcon=\"optionIcon\"\r\n [ngTemplateOutletContext]=\"{ optionIcon: field.optionIcon(option, formValue, formGroup, context) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: optionIcon.iconColor??'' }\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: optionIcon.iconColor??'' }\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <span>{{text}}</span>\r\n </div>\r\n </ng-template>\r\n </vd-select>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\"\r\n mat-icon-button\r\n *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\"\r\n (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdSelect -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdSelect\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <vd-select [formControlName]=\"field.name!\"\r\n [endpoint]=\"field.endpoint??'' | func:formValue:formGroup:context\"\r\n [params]=\"field.params??{} | func:formValue:formGroup:context\"\r\n [projection]=\"field.projection\" [mapper]=\"field.mapper\"\r\n [compareWith]=\"field.compareWith\"\r\n [loadData]=\"field.fetchCondition | func:formValue:formGroup:context\"\r\n [optionValueProperty]=\"field.optionValueProperty\"\r\n [optionTextProperty]=\"field.optionTextProperty\"\r\n [defaultOption]=\"field.defaultOption??true\"\r\n [matIconKey]=\"field.optionMatIconProperty\"\r\n [svgIconKey]=\"field.optionSvgIconProperty\"\r\n [fontSet]=\"field.optionIconFontSet\"\r\n [multiple]=\"field.multiple\"\r\n [selectFirst]=\"field.selectFirst\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [triggerCssClass]=\"field.triggerCssClass\"\r\n [triggerMode]=\"field.triggerMode\"\r\n (itemSelected)=\"field.itemSelect && field.itemSelect($event, formValue, formGroup, context);\"\r\n (itemChange)=\"field.itemChange && field.itemChange($event, formValue, formGroup, context);\"\r\n layout=\"row\"\r\n flex>\r\n <ng-template vd-select-trigger let-trigger=\"trigger\" *ngIf=\"field.triggerTemplate\">\r\n <span [innerHTML]=\"field.triggerTemplate(trigger, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n <ng-template vd-select-trigger let-trigger=\"trigger\" *ngIf=\"field.triggerMapper && field.multiple && field.triggerMode == 'chip'\">\r\n <mat-chip-set>\r\n <mat-chip *ngFor=\"let item of trigger\" [color]=\"field.chipColor\" [color]=\"field.chipColor\" highlighted selected>\r\n <span [innerHTML]=\"field.triggerMapper(item, formValue, formGroup, context)\"></span>\r\n </mat-chip>\r\n </mat-chip-set>\r\n </ng-template>\r\n <ng-template vd-select-option let-option=\"option\" *ngIf=\"field.optionTemplate\">\r\n <span [outerHTML]=\"field.optionTemplate(option, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n <ng-template vd-select-option let-option=\"option\" let-text=\"text\" *ngIf=\"field.optionIcon && !field.optionTemplate\">\r\n <div layout=\"row\" layout-align=\"start center\">\r\n <ng-template #optionIconTemplate\r\n [ngTemplateOutlet]=\"optionIconTemplate\"\r\n let-optionIcon=\"optionIcon\"\r\n [ngTemplateOutletContext]=\"{ optionIcon: field.optionIcon(option, formValue, formGroup, context) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: optionIcon.iconColor??'' }\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: optionIcon.iconColor??'' }\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <span>{{text}}</span>\r\n </div>\r\n </ng-template>\r\n </vd-select>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdList -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdList\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" floatLabel=\"always\" class=\"form-field-type-list\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <vd-list [formControlName]=\"field.name!\"\r\n [endpoint]=\"field.endpoint??'' | func:formValue:formGroup:context\"\r\n [params]=\"field.params ??{} | func:formValue:formGroup:context\"\r\n [projection]=\"field.projection\"\r\n [mapper]=\"field.mapper\"\r\n [compareWith]=\"field.compareWith\"\r\n [loadData]=\"field.fetchCondition | func:formValue:formGroup:context\"\r\n [optionValueProperty]=\"field.optionValueProperty\"\r\n [optionTextProperty]=\"field.optionTextProperty\"\r\n [multiple]=\"field.multiple\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n (itemSelected)=\"field.itemSelect && field.itemSelect($event, formValue, formGroup, context);\"\r\n (itemChange)=\"field.itemChange && field.itemChange($event, formValue, formGroup, context);\"\r\n [style.max-width]=\"field.maxWidth\"\r\n [style.max-height]=\"field.maxHeight\"\r\n flex>\r\n <ng-template vd-list-option let-option=\"option\" *ngIf=\"field.optionTemplate\">\r\n <span [outerHTML]=\"field.optionTemplate(option, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n </vd-list>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Chips -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Chips\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <mat-chip-grid #chipList [formControlName]=\"field.name!\" [disableControl]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\">\r\n <mat-chip-row *ngFor=\"let chip of $any(formGroup.controls[field.name!])?.value\"\r\n (removed)=\"removeChip(field, chip)\"\r\n [color]=\"field.chipColor\"\r\n selectable=\"true\"\r\n highlighted\r\n selected>\r\n <span>{{chip}}</span>\r\n <button matChipRemove>\r\n <mat-icon fontSet=\"material-symbols-outlined\">cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n <input [placeholder]=\"$any(field.label)\"\r\n #chipInput\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matAutocomplete]=\"chipAutocomplete\"\r\n (input)=\"filterAutocomplete(field, chipInput)\"\r\n (matChipInputTokenEnd)=\"addChip(field, $event)\"\r\n (paste)=\"onPasteChips(field, $event)\"\r\n autocomplete=\"off\">\r\n </mat-chip-grid>\r\n <mat-autocomplete autoActiveFirstOption #chipAutocomplete=\"matAutocomplete\" [class]=\"field.autocompleteCssClass\" (optionSelected)=\"autocompleteValueSelected(field, $event, chipInput)\">\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 <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdChips -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdChips\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <vd-chips #vdChip\r\n [formControlName]=\"field.name!\"\r\n [endpoint]=\"field.endpoint??'' | func:formValue:formGroup:context\"\r\n [params]=\"field.params || {} | func:formValue:formGroup:context\"\r\n [searchField]=\"field.searchField\"\r\n [searchFields]=\"field.searchFields\"\r\n [filters]=\"field.filters\"\r\n [selectFirst]=\"field.selectFirst\"\r\n [classType]=\"field.classType\"\r\n [projection]=\"field.projection\"\r\n [key]=\"field.optionValueProperty\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [removable]=\"!field.clear\"\r\n [context]=\"context\"\r\n [suffixButtons]=\"field.suffixButtons\"\r\n [autocompleteCssClass]=\"field.autocompleteCssClass\"\r\n (initSelect)=\"field.itemSelect && field.itemSelect($event, formValue, formGroup, context);\"\r\n (selected)=\"!field.itemChange ? $event.callback(true) : $event.callback(field.itemChange($event.value, formValue, formGroup, context) !== false)\"\r\n (cleared)=\"field.clear && field.clear(formValue, formGroup, context);\"\r\n [customValue]=\"field.customValue\"\r\n layout=\"row\"\r\n flex>\r\n <ng-template vd-chip let-chip=\"chip\" *ngIf=\"field.chipTemplate\">\r\n <div [outerHTML]=\"field.chipTemplate(chip, formValue, formGroup, context)\"></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, formValue, formGroup, context)\"></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 were found.</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Select -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Select\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <mat-select [formControlName]=\"field.name!\"\r\n [multiple]=\"field.multiple\"\r\n [disableControl]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n flex>\r\n <mat-option *ngFor=\"let option of $any(field.options)\" [value]=\"option.id\">{{option.name}}</mat-option>\r\n </mat-select>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Autocomplete -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Autocomplete\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <input type=\"text\"\r\n matInput\r\n [formControlName]=\"field.name!\"\r\n [min]=\"field.min\"\r\n [max]=\"field.max\"\r\n [matAutocomplete]=\"auto\"\r\n (input)=\"filterAutocomplete(field, autocompleteInput)\"\r\n autocomplete=\"off\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [prefix]=\"field.prefix | func:formValue:formGroup:context\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\"\r\n #autocompleteInput>\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [class]=\"field.autocompleteCssClass\">\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 <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Date -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Date\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <!-- Row container inside one mat-form-field -->\r\n <div flex layout=\"row\" layout-align=\"start center\" [class]=\"{'has-time': field.showTime}\">\r\n <!-- Date input -->\r\n <input matInput\r\n [formControlName]=\"field.name!\"\r\n [min]=\"field.min\"\r\n [max]=\"field.max\"\r\n autocomplete=\"off\"\r\n [matDatepicker]=\"datePicker\"\r\n [matDatepickerFilter]=\"field.dateFilter\"\r\n [readonly]=\"readonly || field.forceSelect || (field.readonly && field.readonly(formValue, formGroup, context))\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\">\r\n\r\n <!-- Time display -->\r\n @if(field.showTime) {\r\n <input matInput [value]=\"formGroup.get(field.name!)?.value | date:field.timeFormat\" readonly>\r\n }\r\n </div>\r\n <mat-datepicker-toggle matSuffix [for]=\"datePicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #datePicker [disabled]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\" (monthSelected)=\"handleDatePickerFilterAsync(datePicker, field, $event )\" (opened)=\"handleDatePickerOpened(datePicker, field)\" [calendarHeaderComponent]=\"datePickerHeaderComponent\"></mat-datepicker>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Calendar -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Calendar\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" floatLabel=\"always\" class=\"form-field-type-calendar\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <input input=\"hidden\" hidden matInput [formControlName]=\"field.name!\">\r\n <mat-calendar #calendar\r\n [selected]=\"formGroup.get(field.name!)?.value\"\r\n (selectedChange)=\"formGroup.get(field.name!)?.setValue($event);\"\r\n (monthSelected)=\"handleCalendarFilterAsync(calendar, field, $event )\"\r\n [headerComponent]=\"datePickerHeaderComponent\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\"\r\n style=\"width: 100%;\"></mat-calendar>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\" layout-margin>{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Color input -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Color\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <input [type]=\"field.inputType ?? 'text'\"\r\n [minlength]=\"field.minLength | func:formValue:formGroup:context\"\r\n [maxlength]=\"field.maxLength | func:formValue:formGroup:context\"\r\n [min]=\"field.min\" [max]=\"field.max\" matInput [formControlName]=\"field.name!\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [pattern]=\"((field.pattern | func:formValue:formGroup:context)??'')\"\r\n [onlyNumber]=\"(field.numbersOnly??false)\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\">\r\n <ngx-colors matSuffix ngx-colors-trigger [formControlName]=\"field.name!\" [hideTextInput]=\"true\" (close)=\"this.formGroup.get(field.name!)?.setValue($event)\" format=\"hex\" class=\"color-picker\"></ngx-colors>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any($any(formGroup.controls[field.name!]))['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n </ng-container>\r\n\r\n <!-- #region Checkbox -->\r\n <div *ngSwitchCase=\"FormFieldType.Checkbox\" [attr.flex]=\"field.flex||0\" class=\"mat-checkbox-wrap\" [class]=\"field.cssClass\">\r\n <mat-checkbox [formControlName]=\"field.name!\"\r\n [disableControl]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\">\r\n {{field.label}}\r\n </mat-checkbox>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\" layout-margin>{{errorMessage}}</mat-error>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Editor -->\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 <!-- #endregion -->\r\n\r\n <!-- #region Code -->\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 <!-- #endregion -->\r\n\r\n <!-- #region File -->\r\n <ng-container *ngSwitchCase=\"FormFieldType.File\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <div vd-file-input\r\n [formControlName]=\"field.name!\"\r\n (select)=\"field.change && field.change(field, $event, formGroup, context)\"\r\n [accept]=\"field.fileExtensions\" [disableControl]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n flex>\r\n </div>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom -->\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 <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- #region Template for custom fields -->\r\n <ng-container *ngFor=\"let customField of customFieldsTemplates\">\r\n <ng-template *ngIf=\"customField?.templateRef && customField.row == fields[0]?.row && customField.inline\" [ngTemplateOutlet]=\"customField?.templateRef!\" [ngTemplateOutletContext]=\"{formGroup: formGroup}\"></ng-template>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </div>\r\n\r\n <!-- #region Template for custom fields -->\r\n <ng-container *ngIf=\"customFields\" [ngTemplateOutlet]=\"customFields\" [ngTemplateOutletContext]=\"{formGroup: formGroup, row: fields[0].row}\"></ng-container>\r\n <ng-container *ngFor=\"let customField of customFieldsTemplates\">\r\n <ng-template *ngIf=\"customField?.templateRef && customField.row == (((fields[0]?.row | func:formValue:formGroup:context) ??0)+1) && !customField.inline\" [ngTemplateOutlet]=\"customField?.templateRef!\" [ngTemplateOutletContext]=\"{formGroup: formGroup}\"></ng-template>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Form bottom -->\r\n <ng-container *ngIf=\"bottom\" [ngTemplateOutlet]=\"bottom\" [ngTemplateOutletContext]=\"{formGroup: formGroup}\"></ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Template for suffix buttons -->\r\n <ng-template #suffixButtons let-field>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Debug value -->\r\n <code *ngIf=\"debugValue\">\r\n <pre>{{formValue | json}}</pre>\r\n </code>\r\n <!-- #endregion -->\r\n</div>", styles: [".mat-checkbox-wrap mat-error{transform:translate(36px,-20px);max-width:93%;font-size:var(--mat-typography-caption-font-size, 12px)}::ng-deep .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-suffix .color-picker{width:40px;display:block}::ng-deep .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .has-time input:first-child{width:84px;max-width:inherit;min-width:84px}::ng-deep .mat-mdc-form-field-type-mat-chip-grid .mat-mdc-form-field-infix{padding-top:7px!important;padding-bottom:7px!important}::ng-deep .mat-mdc-form-field-type-mat-chip-grid .mat-mdc-chip{padding-top:0!important;padding-bottom:0!important;margin-top:2px!important;margin-bottom:2px!important;margin-left:4px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type:
|
|
23228
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdGenericFormComponent, isStandalone: true, selector: "vd-generic-form", inputs: { formGroup: "formGroup", classType: "classType", formDefinition: "formDefinition", fieldGroups: "fieldGroups", groupName: "groupName", fieldSets: "fieldSets", context: "context", debugValue: "debugValue", readonly: "readonly", separatorKeysCodes: "separatorKeysCodes" }, 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 }, { propertyName: "bottom", first: true, predicate: ["bottom"], descendants: true }, { propertyName: "customFields", first: true, predicate: ["customFields"], descendants: true }, { propertyName: "customFieldsTemplates", predicate: VdGenericFormCustomFieldDirective }], ngImport: i0, template: "<div *ngIf=\"formGroup && fieldRows\" [formGroup]=\"formGroup!\">\r\n <!-- #region Fields -->\r\n <ng-container *ngFor=\"let fields of fieldRows; let i = index\">\r\n <div layout-gt-sm=\"row\" layout=\"column\">\r\n <ng-container *ngFor=\"let field of fields\" [ngSwitch]=\"field.type\">\r\n <ng-container *ngIf=\"!field.hidden && !(field.hide && field.hide(formValue, formGroup, context))\">\r\n <ng-container *ngIf=\"field.wrapped\">\r\n <!-- #region Text input -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Text\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <input matInput\r\n [type]=\"field.inputType ?? 'text'\"\r\n [minlength]=\"field.minLength | func:formValue:formGroup:context\"\r\n [maxlength]=\"field.maxLength | func:formValue:formGroup:context\"\r\n [min]=\"field.min\" [max]=\"field.max\"\r\n [formControlName]=\"field.name!\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [pattern]=\"((field.pattern | func:formValue:formGroup:context)??'')\"\r\n [autoFocus]=\"((field.focus | func:formValue:formGroup:context)??false)\"\r\n [selectText]=\"((field.selectText | func:formValue:formGroup:context)??false)\"\r\n [onlyNumber]=\"(field.numbersOnly??false)\"\r\n [prefix]=\"field.prefix | func:formValue:formGroup:context\"\r\n parseDecimal\r\n [parseDecimalEnabled]=\"(field.parseDecimal??false)\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\">\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\"\r\n mat-icon-button\r\n *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\"\r\n (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any($any(formGroup.controls[field.name!]))['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Textarea -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.TextArea\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <textarea matInput\r\n [formControlName]=\"field.name!\"\r\n rows=\"field.rows||2\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [prefix]=\"field.prefix | func:formValue:formGroup:context\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\">\r\n </textarea>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\"\r\n mat-icon-button\r\n *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\"\r\n (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Enum -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Enum\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <vd-select [formControlName]=\"field.name!\"\r\n [enum]=\"field.enumType\"\r\n [enumMetadata]=\"field.enumMetadata\"\r\n [enumFilter]=\"field.enumFilter | func:formValue:formGroup:context\"\r\n [optionValueProperty]=\"field.optionValueProperty\"\r\n [optionTextProperty]=\"field.optionTextProperty\"\r\n [defaultOption]=\"field.defaultOption??true\"\r\n [multiple]=\"field.multiple\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [triggerCssClass]=\"field.triggerCssClass\"\r\n [triggerMode]=\"field.triggerMode\"\r\n layout=\"row\"\r\n flex>\r\n <ng-template vd-select-trigger let-trigger=\"trigger\" *ngIf=\"field.triggerTemplate\">\r\n <span [innerHTML]=\"field.triggerTemplate(trigger, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n <ng-template vd-select-option let-option=\"option\" *ngIf=\"field.optionTemplate\">\r\n <span [outerHTML]=\"field.optionTemplate(option, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n <ng-template vd-select-option let-option=\"option\" let-text=\"text\" *ngIf=\"field.optionIcon && !field.optionTemplate\">\r\n <div layout=\"row\" layout-align=\"start center\">\r\n <ng-template #optionIconTemplate\r\n [ngTemplateOutlet]=\"optionIconTemplate\"\r\n let-optionIcon=\"optionIcon\"\r\n [ngTemplateOutletContext]=\"{ optionIcon: field.optionIcon(option, formValue, formGroup, context) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: optionIcon.iconColor??'' }\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: optionIcon.iconColor??'' }\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <span>{{text}}</span>\r\n </div>\r\n </ng-template>\r\n </vd-select>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\"\r\n mat-icon-button\r\n *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\"\r\n (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdSelect -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdSelect\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <vd-select [formControlName]=\"field.name!\"\r\n [endpoint]=\"field.endpoint??'' | func:formValue:formGroup:context\"\r\n [params]=\"field.params??{} | func:formValue:formGroup:context\"\r\n [projection]=\"field.projection\" [mapper]=\"field.mapper\"\r\n [compareWith]=\"field.compareWith\"\r\n [loadData]=\"field.fetchCondition | func:formValue:formGroup:context\"\r\n [optionValueProperty]=\"field.optionValueProperty\"\r\n [optionTextProperty]=\"field.optionTextProperty\"\r\n [defaultOption]=\"field.defaultOption??true\"\r\n [matIconKey]=\"field.optionMatIconProperty\"\r\n [svgIconKey]=\"field.optionSvgIconProperty\"\r\n [fontSet]=\"field.optionIconFontSet\"\r\n [multiple]=\"field.multiple\"\r\n [selectFirst]=\"field.selectFirst\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [triggerCssClass]=\"field.triggerCssClass\"\r\n [triggerMode]=\"field.triggerMode\"\r\n (itemSelected)=\"field.itemSelect && field.itemSelect($event, formValue, formGroup, context);\"\r\n (itemChange)=\"field.itemChange && field.itemChange($event, formValue, formGroup, context);\"\r\n layout=\"row\"\r\n flex>\r\n <ng-template vd-select-trigger let-trigger=\"trigger\" *ngIf=\"field.triggerTemplate\">\r\n <span [innerHTML]=\"field.triggerTemplate(trigger, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n <ng-template vd-select-trigger let-trigger=\"trigger\" *ngIf=\"field.triggerMapper && field.multiple && field.triggerMode == 'chip'\">\r\n <mat-chip-set>\r\n <mat-chip *ngFor=\"let item of trigger\" [color]=\"field.chipColor\" [color]=\"field.chipColor\" highlighted selected>\r\n <span [innerHTML]=\"field.triggerMapper(item, formValue, formGroup, context)\"></span>\r\n </mat-chip>\r\n </mat-chip-set>\r\n </ng-template>\r\n <ng-template vd-select-option let-option=\"option\" *ngIf=\"field.optionTemplate\">\r\n <span [outerHTML]=\"field.optionTemplate(option, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n <ng-template vd-select-option let-option=\"option\" let-text=\"text\" *ngIf=\"field.optionIcon && !field.optionTemplate\">\r\n <div layout=\"row\" layout-align=\"start center\">\r\n <ng-template #optionIconTemplate\r\n [ngTemplateOutlet]=\"optionIconTemplate\"\r\n let-optionIcon=\"optionIcon\"\r\n [ngTemplateOutletContext]=\"{ optionIcon: field.optionIcon(option, formValue, formGroup, context) }\">\r\n <mat-icon *ngIf=\"optionIcon.svgIcon\" [svgIcon]=\"optionIcon.svgIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: optionIcon.iconColor??'' }\"></mat-icon>\r\n <mat-icon *ngIf=\"optionIcon.matIcon\" [fontSet]=\"optionIcon.fontSet || 'material-symbols-outlined'\" [ngStyle]=\"{ color: optionIcon.iconColor??'' }\">{{optionIcon.matIcon}}</mat-icon>\r\n </ng-template>\r\n <span>{{text}}</span>\r\n </div>\r\n </ng-template>\r\n </vd-select>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdList -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdList\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" floatLabel=\"always\" class=\"form-field-type-list\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <vd-list [formControlName]=\"field.name!\"\r\n [endpoint]=\"field.endpoint??'' | func:formValue:formGroup:context\"\r\n [params]=\"field.params ??{} | func:formValue:formGroup:context\"\r\n [projection]=\"field.projection\"\r\n [mapper]=\"field.mapper\"\r\n [compareWith]=\"field.compareWith\"\r\n [loadData]=\"field.fetchCondition | func:formValue:formGroup:context\"\r\n [optionValueProperty]=\"field.optionValueProperty\"\r\n [optionTextProperty]=\"field.optionTextProperty\"\r\n [multiple]=\"field.multiple\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n (itemSelected)=\"field.itemSelect && field.itemSelect($event, formValue, formGroup, context);\"\r\n (itemChange)=\"field.itemChange && field.itemChange($event, formValue, formGroup, context);\"\r\n [style.max-width]=\"field.maxWidth\"\r\n [style.max-height]=\"field.maxHeight\"\r\n flex>\r\n <ng-template vd-list-option let-option=\"option\" *ngIf=\"field.optionTemplate\">\r\n <span [outerHTML]=\"field.optionTemplate(option, formValue, formGroup, context)\"></span>\r\n </ng-template>\r\n </vd-list>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Chips -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Chips\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <mat-chip-grid #chipList [formControlName]=\"field.name!\" [disableControl]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\">\r\n <mat-chip-row *ngFor=\"let chip of $any(formGroup.controls[field.name!])?.value\"\r\n (removed)=\"removeChip(field, chip)\"\r\n [color]=\"field.chipColor\"\r\n selectable=\"true\"\r\n highlighted\r\n selected>\r\n <span>{{chip}}</span>\r\n <button matChipRemove>\r\n <mat-icon fontSet=\"material-symbols-outlined\">cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n <input [placeholder]=\"$any(field.label)\"\r\n #chipInput\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matAutocomplete]=\"chipAutocomplete\"\r\n (input)=\"filterAutocomplete(field, chipInput)\"\r\n (matChipInputTokenEnd)=\"addChip(field, $event)\"\r\n (paste)=\"onPasteChips(field, $event)\"\r\n autocomplete=\"off\">\r\n </mat-chip-grid>\r\n <mat-autocomplete autoActiveFirstOption #chipAutocomplete=\"matAutocomplete\" [class]=\"field.autocompleteCssClass\" (optionSelected)=\"autocompleteValueSelected(field, $event, chipInput)\">\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 <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region VdChips -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.VdChips\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <vd-chips #vdChip\r\n [formControlName]=\"field.name!\"\r\n [endpoint]=\"field.endpoint??'' | func:formValue:formGroup:context\"\r\n [params]=\"field.params || {} | func:formValue:formGroup:context\"\r\n [searchField]=\"field.searchField\"\r\n [searchFields]=\"field.searchFields\"\r\n [filters]=\"field.filters\"\r\n [selectFirst]=\"field.selectFirst\"\r\n [classType]=\"field.classType\"\r\n [projection]=\"field.projection\"\r\n [key]=\"field.optionValueProperty\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [removable]=\"!field.clear\"\r\n [context]=\"context\"\r\n [suffixButtons]=\"field.suffixButtons\"\r\n [autocompleteCssClass]=\"field.autocompleteCssClass\"\r\n (initSelect)=\"field.itemSelect && field.itemSelect($event, formValue, formGroup, context);\"\r\n (selected)=\"!field.itemChange ? $event.callback(true) : $event.callback(field.itemChange($event.value, formValue, formGroup, context) !== false)\"\r\n (cleared)=\"field.clear && field.clear(formValue, formGroup, context);\"\r\n [customValue]=\"field.customValue\"\r\n layout=\"row\"\r\n flex>\r\n <ng-template vd-chip let-chip=\"chip\" *ngIf=\"field.chipTemplate\">\r\n <div [outerHTML]=\"field.chipTemplate(chip, formValue, formGroup, context)\"></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, formValue, formGroup, context)\"></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 were found.</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Select -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Select\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <mat-select [formControlName]=\"field.name!\"\r\n [multiple]=\"field.multiple\"\r\n [disableControl]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n flex>\r\n <mat-option *ngFor=\"let option of $any(field.options)\" [value]=\"option.id\">{{option.name}}</mat-option>\r\n </mat-select>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Autocomplete -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Autocomplete\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <input type=\"text\"\r\n matInput\r\n [formControlName]=\"field.name!\"\r\n [min]=\"field.min\"\r\n [max]=\"field.max\"\r\n [matAutocomplete]=\"auto\"\r\n (input)=\"filterAutocomplete(field, autocompleteInput)\"\r\n autocomplete=\"off\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [prefix]=\"field.prefix | func:formValue:formGroup:context\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\"\r\n #autocompleteInput>\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [class]=\"field.autocompleteCssClass\">\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 <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Date -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Date\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <!-- Row container inside one mat-form-field -->\r\n <div flex layout=\"row\" layout-align=\"start center\" [class]=\"{'has-time': field.showTime}\">\r\n <!-- Date input -->\r\n <input matInput\r\n [formControlName]=\"field.name!\"\r\n [min]=\"field.min\"\r\n [max]=\"field.max\"\r\n autocomplete=\"off\"\r\n [matDatepicker]=\"datePicker\"\r\n [matDatepickerFilter]=\"field.dateFilter\"\r\n [readonly]=\"readonly || field.forceSelect || (field.readonly && field.readonly(formValue, formGroup, context))\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\">\r\n\r\n <!-- Time display -->\r\n @if(field.showTime) {\r\n <input matInput [value]=\"formGroup.get(field.name!)?.value | date:field.timeFormat\" readonly>\r\n }\r\n </div>\r\n <mat-datepicker-toggle matSuffix [for]=\"datePicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #datePicker [disabled]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\" (monthSelected)=\"handleDatePickerFilterAsync(datePicker, field, $event )\" (opened)=\"handleDatePickerOpened(datePicker, field)\" [calendarHeaderComponent]=\"datePickerHeaderComponent\"></mat-datepicker>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Calendar -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Calendar\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" floatLabel=\"always\" class=\"form-field-type-calendar\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <input input=\"hidden\" hidden matInput [formControlName]=\"field.name!\">\r\n <mat-calendar #calendar\r\n [selected]=\"formGroup.get(field.name!)?.value\"\r\n (selectedChange)=\"formGroup.get(field.name!)?.setValue($event);\"\r\n (monthSelected)=\"handleCalendarFilterAsync(calendar, field, $event )\"\r\n [headerComponent]=\"datePickerHeaderComponent\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\"\r\n style=\"width: 100%;\"></mat-calendar>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\" layout-margin>{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Color input -->\r\n <mat-form-field *ngSwitchCase=\"FormFieldType.Color\" [attr.flex]=\"field.flex||0\" [class]=\"field.cssClass\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <input [type]=\"field.inputType ?? 'text'\"\r\n [minlength]=\"field.minLength | func:formValue:formGroup:context\"\r\n [maxlength]=\"field.maxLength | func:formValue:formGroup:context\"\r\n [min]=\"field.min\" [max]=\"field.max\" matInput [formControlName]=\"field.name!\"\r\n [readonly]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n [pattern]=\"((field.pattern | func:formValue:formGroup:context)??'')\"\r\n [onlyNumber]=\"(field.numbersOnly??false)\"\r\n (keydown)=\"field.keydown && field.keydown($event, formValue, formGroup, context)\">\r\n <ngx-colors matSuffix ngx-colors-trigger [formControlName]=\"field.name!\" [hideTextInput]=\"true\" (close)=\"this.formGroup.get(field.name!)?.setValue($event)\" format=\"hex\" class=\"color-picker\"></ngx-colors>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n <mat-error *ngFor=\"let errorMessage of $any($any(formGroup.controls[field.name!]))['errorMessages']\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n <!-- #endregion -->\r\n </ng-container>\r\n\r\n <!-- #region Checkbox -->\r\n <div *ngSwitchCase=\"FormFieldType.Checkbox\" [attr.flex]=\"field.flex||0\" class=\"mat-checkbox-wrap\" [class]=\"field.cssClass\">\r\n <mat-checkbox [formControlName]=\"field.name!\"\r\n [disableControl]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\">\r\n {{field.label}}\r\n </mat-checkbox>\r\n <mat-error *ngFor=\"let errorMessage of $any(formGroup.controls[field.name!])['errorMessages']\" layout-margin>{{errorMessage}}</mat-error>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Editor -->\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 <!-- #endregion -->\r\n\r\n <!-- #region Code -->\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 <!-- #endregion -->\r\n\r\n <!-- #region File -->\r\n <ng-container *ngSwitchCase=\"FormFieldType.File\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin>\r\n <mat-label>{{field.label}}</mat-label>\r\n <div vd-file-input\r\n [formControlName]=\"field.name!\"\r\n (select)=\"field.change && field.change(field, $event, formGroup, context)\"\r\n [accept]=\"field.fileExtensions\" [disableControl]=\"(readonly || (field.readonly && field.readonly(formValue, formGroup, context)))??false\"\r\n flex>\r\n </div>\r\n </mat-form-field>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom -->\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 <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- #region Template for custom fields -->\r\n <ng-container *ngFor=\"let customField of customFieldsTemplates\">\r\n <ng-template *ngIf=\"customField?.templateRef && customField.row == fields[0]?.row && customField.inline\" [ngTemplateOutlet]=\"customField?.templateRef!\" [ngTemplateOutletContext]=\"{formGroup: formGroup}\"></ng-template>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </div>\r\n\r\n <!-- #region Template for custom fields -->\r\n <ng-container *ngIf=\"customFields\" [ngTemplateOutlet]=\"customFields\" [ngTemplateOutletContext]=\"{formGroup: formGroup, row: fields[0].row}\"></ng-container>\r\n <ng-container *ngFor=\"let customField of customFieldsTemplates\">\r\n <ng-template *ngIf=\"customField?.templateRef && customField.row == (((fields[0]?.row | func:formValue:formGroup:context) ??0)+1) && !customField.inline\" [ngTemplateOutlet]=\"customField?.templateRef!\" [ngTemplateOutletContext]=\"{formGroup: formGroup}\"></ng-template>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Form bottom -->\r\n <ng-container *ngIf=\"bottom\" [ngTemplateOutlet]=\"bottom\" [ngTemplateOutletContext]=\"{formGroup: formGroup}\"></ng-container>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Template for suffix buttons -->\r\n <ng-template #suffixButtons let-field>\r\n <ng-container *ngFor=\"let suffixButton of field.suffixButtons\" matSuffix>\r\n <button type=\"button\" mat-icon-button *ngIf=\"!suffixButton.hide || !suffixButton.hide(formValue, context)\" (click)=\"suffixButton.event && suffixButton.event(formValue, context)\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{suffixButton.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n </ng-template>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Debug value -->\r\n <code *ngIf=\"debugValue\">\r\n <pre>{{formValue | json}}</pre>\r\n </code>\r\n <!-- #endregion -->\r\n</div>", styles: [".mat-checkbox-wrap mat-error{transform:translate(36px,-20px);max-width:93%;font-size:var(--mat-typography-caption-font-size, 12px)}::ng-deep .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-suffix .color-picker{width:40px;display:block}::ng-deep .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .has-time input:first-child{width:84px;max-width:inherit;min-width:84px}::ng-deep .mat-mdc-form-field-type-mat-chip-grid .mat-mdc-form-field-infix{padding-top:7px!important;padding-bottom:7px!important}::ng-deep .mat-mdc-form-field-type-mat-chip-grid .mat-mdc-chip{padding-top:0!important;padding-bottom:0!important;margin-top:2px!important;margin-bottom:2px!important;margin-left:4px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type:
|
|
23233
23229
|
//--------------------
|
|
23234
|
-
MatAutocompleteModule }, { kind: "component", type: i4
|
|
23230
|
+
MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5$1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i5$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i5$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i5$1.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6$1.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i6$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type:
|
|
23235
23231
|
//--------------------
|
|
23236
23232
|
VdChipsComponent, selector: "vd-chips", inputs: ["classType", "chips", "endpoint", "params", "projection", "paginated", "customValue", "context", "key", "searchField", "searchFields", "filters", "removable", "selectFirst", "debounce", "autocompleteCssClass", "suffixButtons"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { kind: "component", type: VdFileInputComponent, selector: "[vd-file-input]", inputs: ["accept", "placeholder", "required", "multiple", "disabled", "errorState"], outputs: ["select", "clear"] }, { kind: "ngmodule", type: VdFileModule }, { kind: "component", type: VdListComponent, selector: "vd-list" }, { kind: "component", type: VdSelectComponent, selector: "vd-select", inputs: ["triggerCssClass", "triggerMode"] }, { kind: "directive", type: VdSelectOptionDirective, selector: "[vd-select-option]ng-template" }, { kind: "directive", type: VdSelectTriggerDirective, selector: "[vd-select-trigger]ng-template" }, { kind: "directive", type: VdChipDirective, selector: "[vd-chip]ng-template" }, { kind: "directive", type: VdAutocompleteOptionDirective, selector: "[vd-autocomplete-option]ng-template" }, { kind: "directive", type:
|
|
23237
23233
|
//--------------------
|
|
23238
23234
|
AutofocusDirective, selector: "[autoFocus]", inputs: ["focusDelay", "selectText", "autoFocus"] }, { kind: "directive", type: DisableControlDirective, selector: "[disableControl]", inputs: ["disableControl"] }, { kind: "ngmodule", type:
|
|
23239
23235
|
//--------------------
|
|
23240
|
-
NgxColorsModule }, { kind: "component", type: i11.NgxColorsComponent, selector: "ngx-colors" }, { kind: "directive", type: i11.NgxColorsTriggerDirective, selector: "[ngx-colors-trigger]", inputs: ["colorsAnimation", "palette", "format", "formats", "position", "hideTextInput", "hideColorPicker", "attachTo", "overlayClassName", "colorPickerControls", "acceptLabel", "cancelLabel"], outputs: ["change", "input", "slider", "close", "open"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[onlyNumber]", inputs: ["onlyNumber", "excludePrefix"] }, { kind: "directive", type: ParseDecimalDirective, selector: "[parseDecimal]", inputs: ["parseDecimalEnabled"] }, { kind: "directive", type: PrefixDirective, selector: "[prefix]", inputs: ["prefix"] }, { kind: "pipe", type:
|
|
23236
|
+
NgxColorsModule }, { kind: "component", type: i11.NgxColorsComponent, selector: "ngx-colors" }, { kind: "directive", type: i11.NgxColorsTriggerDirective, selector: "[ngx-colors-trigger]", inputs: ["colorsAnimation", "palette", "format", "formats", "position", "hideTextInput", "hideColorPicker", "attachTo", "overlayClassName", "colorPickerControls", "acceptLabel", "cancelLabel"], outputs: ["change", "input", "slider", "close", "open"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[onlyNumber]", inputs: ["onlyNumber", "excludePrefix"] }, { kind: "directive", type: ParseDecimalDirective, selector: "[parseDecimal]", inputs: ["parseDecimalEnabled"] }, { kind: "directive", type: PrefixDirective, selector: "[prefix]", inputs: ["prefix"] }, { kind: "pipe", type: i3$1.JsonPipe, name: "json" }, { kind: "pipe", type: i3$1.DatePipe, name: "date" }, { kind: "pipe", type: FuncPipe, name: "func" }] });
|
|
23241
23237
|
}
|
|
23242
23238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdGenericFormComponent, decorators: [{
|
|
23243
23239
|
type: Component,
|
|
@@ -23445,7 +23441,7 @@ class MatFormFieldEditorDirective {
|
|
|
23445
23441
|
this.editorElement.focus();
|
|
23446
23442
|
}
|
|
23447
23443
|
}
|
|
23448
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MatFormFieldEditorDirective, deps: [{ token: i1$
|
|
23444
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MatFormFieldEditorDirective, deps: [{ token: i1$1.NgControl, optional: true, self: true }, { token: i1$1.NgForm, optional: true }, { token: i1$1.FormGroupDirective, optional: true }, { token: i2$5.ErrorStateMatcher }, { token: NG_VALUE_ACCESSOR, self: true }, { token: i3$3.Platform }, { token: i4$1.AutofillMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
23449
23445
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: MatFormFieldEditorDirective, isStandalone: true, selector: "[tinyMatFormControl]", inputs: { errorStateMatcher: "errorStateMatcher", disabled: "disabled", id: "id", placeholder: "placeholder", required: "required", value: "value" }, outputs: { editorChange: "editorChange" }, host: { listeners: { "onInit": "onEditorInit($event)" }, properties: { "attr.id": "id", "attr.aria-describedby": "ariaDescribedby || null", "attr.aria-invalid": "errorState", "attr.aria-required": "required.toString()" } }, providers: [{ provide: MatFormFieldControl, useExisting: MatFormFieldEditorDirective }], ngImport: i0 });
|
|
23450
23446
|
}
|
|
23451
23447
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MatFormFieldEditorDirective, decorators: [{
|
|
@@ -23460,20 +23456,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
23460
23456
|
'[attr.aria-required]': 'required.toString()',
|
|
23461
23457
|
}
|
|
23462
23458
|
}]
|
|
23463
|
-
}], ctorParameters: () => [{ type: i1$
|
|
23459
|
+
}], ctorParameters: () => [{ type: i1$1.NgControl, decorators: [{
|
|
23464
23460
|
type: Optional
|
|
23465
23461
|
}, {
|
|
23466
23462
|
type: Self
|
|
23467
|
-
}] }, { type: i1$
|
|
23463
|
+
}] }, { type: i1$1.NgForm, decorators: [{
|
|
23468
23464
|
type: Optional
|
|
23469
|
-
}] }, { type: i1$
|
|
23465
|
+
}] }, { type: i1$1.FormGroupDirective, decorators: [{
|
|
23470
23466
|
type: Optional
|
|
23471
23467
|
}] }, { type: i2$5.ErrorStateMatcher }, { type: i5$2.EditorComponent, decorators: [{
|
|
23472
23468
|
type: Self
|
|
23473
23469
|
}, {
|
|
23474
23470
|
type: Inject,
|
|
23475
23471
|
args: [NG_VALUE_ACCESSOR]
|
|
23476
|
-
}] }, { type: i3$
|
|
23472
|
+
}] }, { type: i3$3.Platform }, { type: i4$1.AutofillMonitor }, { type: i0.NgZone }], propDecorators: { errorStateMatcher: [{
|
|
23477
23473
|
type: Input
|
|
23478
23474
|
}], disabled: [{
|
|
23479
23475
|
type: Input
|
|
@@ -23510,7 +23506,7 @@ class MatFormFieldReadonlyDirective {
|
|
|
23510
23506
|
}
|
|
23511
23507
|
return false;
|
|
23512
23508
|
}
|
|
23513
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MatFormFieldReadonlyDirective, deps: [{ token:
|
|
23509
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MatFormFieldReadonlyDirective, deps: [{ token: i7.MatFormField }], target: i0.ɵɵFactoryTarget.Directive });
|
|
23514
23510
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: MatFormFieldReadonlyDirective, isStandalone: true, selector: "mat-form-field", host: { properties: { "class.mat-form-field-readonly": "isReadonlyInput()" } }, ngImport: i0 });
|
|
23515
23511
|
}
|
|
23516
23512
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MatFormFieldReadonlyDirective, decorators: [{
|
|
@@ -23519,7 +23515,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
23519
23515
|
selector: 'mat-form-field',
|
|
23520
23516
|
host: { '[class.mat-form-field-readonly]': 'isReadonlyInput()' }
|
|
23521
23517
|
}]
|
|
23522
|
-
}], ctorParameters: () => [{ type:
|
|
23518
|
+
}], ctorParameters: () => [{ type: i7.MatFormField }] });
|
|
23523
23519
|
|
|
23524
23520
|
class FormFieldDefinition {
|
|
23525
23521
|
/**
|
|
@@ -24472,7 +24468,7 @@ class NativeElementInjectorDirective {
|
|
|
24472
24468
|
this.control.control.nativeElement = this.elementRef.nativeElement;
|
|
24473
24469
|
}
|
|
24474
24470
|
}
|
|
24475
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NativeElementInjectorDirective, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
24471
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NativeElementInjectorDirective, deps: [{ token: i0.ElementRef }, { token: i1$1.NgControl }, { token: i1$1.NgModel, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
24476
24472
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: NativeElementInjectorDirective, isStandalone: true, selector: "[ngModel], [formControl], [formControlName]", ngImport: i0 });
|
|
24477
24473
|
}
|
|
24478
24474
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NativeElementInjectorDirective, decorators: [{
|
|
@@ -24480,7 +24476,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
24480
24476
|
args: [{
|
|
24481
24477
|
selector: '[ngModel], [formControl], [formControlName]'
|
|
24482
24478
|
}]
|
|
24483
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$
|
|
24479
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.NgControl }, { type: i1$1.NgModel, decorators: [{
|
|
24484
24480
|
type: Optional
|
|
24485
24481
|
}] }] });
|
|
24486
24482
|
|
|
@@ -24696,7 +24692,7 @@ class VdMenuComponent {
|
|
|
24696
24692
|
this.onMouseLeave.emit({ event: $event, item: item });
|
|
24697
24693
|
}
|
|
24698
24694
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdMenuComponent, deps: [{ token: VdMediaService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24699
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
24695
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdMenuComponent, isStandalone: true, selector: "vd-menu", inputs: { items: "items", activeExact: "activeExact", fontSet: "fontSet", avatar: "avatar", mobile: "mobile" }, outputs: { onClick: "click", onMouseEnter: "over", onMouseLeave: "out" }, ngImport: i0, template: "<mat-nav-list>\r\n <mat-accordion displayMode=\"flat\">\r\n @for (item of items; track item; let last = $last) {\r\n @if ((item?.items?.length ?? 0) > 0 && mobile) {\r\n <mat-expansion-panel class=\"mat-elevation-z raw\"\r\n (click)=\"$event.stopPropagation();\"\r\n [disabled]=\"!mobile\"\r\n [hideToggle]=\"!mobile || !item?.items?.length\"\r\n [ngClass]=\"{'icon-only': !item.title, 'mobile': mobile}\"\r\n (delayedHover)=\"(item.items?.length ?? 0) > 0 && itemMouseEnter(item.event ? item.event : $event, item)\"\r\n (mouseleave)=\"(item.items?.length ?? 0) >0 && false&& itemMouseLeave(item.event ? item.event : $event, item)\"\r\n [routerLinkActive]=\"['active']\"\r\n [routerLinkActiveOptions]=\"{exact:false}\">\r\n <mat-expansion-panel-header [expandedHeight]=\"'48px'\">\r\n <mat-panel-title>\r\n @if (!avatar) {\r\n <mat-icon [fontSet]=\"fontSet\" [style.color]=\"item.iconColor\">{{(item.icon | func:item) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (!avatar && item.title) {\r\n <span [style.color]=\"item.textColor\">{{item.title}}</span>\r\n }\r\n @if (avatar) {\r\n <mat-icon [fontSet]=\"fontSet\">{{(item.icon | func:item) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (avatar) {\r\n <h3>{{item.title}}</h3>\r\n }\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <mat-nav-list>\r\n @for (subItem of item.items; track subItem; let subLast = $last) {\r\n <ng-template let-subItem let-subLast=\"last\" [ngForOf]=\"item.items\" class=\"sub-menu\">\r\n @if (subItem.enabled) {\r\n <a mat-list-item [style.backgroundColor]=\"subItem.backgroundColor\" [routerLink]=\"subItem.path\" target=\"_{{MenuItemTarget[item.target??0].toLowerCase()}}\" [routerLinkActive]=\"['active']\" [ngClass]=\"{'icon-only': !subItem.title}\" [routerLinkActiveOptions]=\"{exact:subItem.activeExact??false}\" [fragment]=\"subItem.fragment\" (click)=\"itemClicked($event, subItem)\">\r\n @if (!avatar) {\r\n <mat-icon [fontSet]=\"fontSet\" [style.color]=\"subItem.iconColor\">{{(subItem.icon | func:subItem) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (!avatar && subItem.title) {\r\n <span [style.color]=\"subItem.textColor\">{{subItem.title}}</span>\r\n }\r\n @if (avatar) {\r\n <mat-icon [fontSet]=\"fontSet\">{{(subItem.icon | func:subItem) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (avatar) {\r\n <h3>{{subItem.title}}</h3>\r\n }\r\n @if (avatar && subItem.description) {\r\n <p>{{subItem.description}}</p>\r\n }\r\n </a>\r\n }\r\n @if (subItem.divider && !avatar) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (!subItem.divider && avatar && !subLast) {\r\n <mat-divider [inset]=\"avatar\"></mat-divider>\r\n }\r\n </ng-template>\r\n }\r\n </mat-nav-list>\r\n </mat-expansion-panel>\r\n } @else {\r\n @if (item.enabled) {\r\n <a mat-list-item [style.backgroundColor]=\"item.backgroundColor\" [routerLink]=\"item.path\" target=\"_{{MenuItemTarget[item.target??0].toLowerCase()}}\" [routerLinkActive]=\"['active']\" [ngClass]=\"{'icon-only': !item.title}\" [routerLinkActiveOptions]=\"{exact:item.activeExact??false}\" [fragment]=\"item.fragment\" (click)=\"itemClicked($event, item)\" (delayedHover)=\"(item.items?.length ?? 0) > 0 && itemMouseEnter(item.event ? item.event : $event, item)\" (mouseleave)=\"(item.items?.length ?? 0) >0 && false&& itemMouseLeave(item.event ? item.event : $event, item)\">\r\n @if (!avatar) {\r\n <mat-icon [fontSet]=\"fontSet\" [style.color]=\"item.iconColor\" matListItemIcon>{{(item.icon | func:item) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (!avatar && item.title) {\r\n <span [style.color]=\"item.textColor\" matListItemTitle>{{item.title}}</span>\r\n }\r\n @if (avatar) {\r\n <mat-icon [fontSet]=\"fontSet\" matListAvatar>{{(item.icon | func:item) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (avatar) {\r\n <h3 matLine>{{item.title}}</h3>\r\n }\r\n @if (avatar && item.description) {\r\n <p matLine>{{item.description}}</p>\r\n }\r\n </a>\r\n }\r\n @if (item.divider && !avatar) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (!item.divider && avatar && !last) {\r\n <mat-divider [inset]=\"avatar\"></mat-divider>\r\n }\r\n }\r\n }\r\n </mat-accordion>\r\n</mat-nav-list>", styles: [":host ::ng-deep .mat-mdc-nav-list .mat-mdc-list-item.icon-only .mdc-list-item__content{display:none!important}:host ::ng-deep .mat-expansion-panel{background-color:transparent}:host ::ng-deep .mat-mdc-list-item:not(.active),:host ::ng-deep .mat-mdc-list-item:active,:host ::ng-deep .mat-mdc-list-item:focus,:host ::ng-deep .mat-expansion-panel:not(.active),:host ::ng-deep .mat-expansion-panel:active,:host ::ng-deep .mat-expansion-panel:focus{background-color:transparent!important}:host ::ng-deep .mat-mdc-list-item:not(.active):before,:host ::ng-deep .mat-mdc-list-item:active:before,:host ::ng-deep .mat-mdc-list-item:focus:before,:host ::ng-deep .mat-expansion-panel:not(.active):before,:host ::ng-deep .mat-expansion-panel:active:before,:host ::ng-deep .mat-expansion-panel:focus:before{background-color:transparent!important}:host ::ng-deep .mat-mdc-list-item,:host ::ng-deep .mat-expansion-panel{font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}:host ::ng-deep .mat-mdc-list-item mat-icon,:host ::ng-deep .mat-expansion-panel mat-icon{margin-right:18px;margin-bottom:3px}:host ::ng-deep .mat-mdc-list-item ::ng-deep .mat-expansion-panel-body,:host ::ng-deep .mat-expansion-panel ::ng-deep .mat-expansion-panel-body{padding-bottom:0!important}:host ::ng-deep .mat-mdc-list-item:not(.mobile)>.mat-expansion-panel-header,:host ::ng-deep .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header{padding:4px 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i4$2.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i4$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i4$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i6$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4$2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i6$3.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i6$3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i6$3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i6$3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "directive", type: VdDelayedHoverDirective, selector: "[delayedHover]", inputs: ["duration"], outputs: ["delayedHover"], exportAs: ["hesitation"] }, { kind: "pipe", type: FuncPipe, name: "func" }] });
|
|
24700
24696
|
}
|
|
24701
24697
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdMenuComponent, decorators: [{
|
|
24702
24698
|
type: Component,
|
|
@@ -24709,7 +24705,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
24709
24705
|
MatDividerModule,
|
|
24710
24706
|
VdDelayedHoverDirective,
|
|
24711
24707
|
FuncPipe
|
|
24712
|
-
], template: "<mat-nav-list>\r\n
|
|
24708
|
+
], template: "<mat-nav-list>\r\n <mat-accordion displayMode=\"flat\">\r\n @for (item of items; track item; let last = $last) {\r\n @if ((item?.items?.length ?? 0) > 0 && mobile) {\r\n <mat-expansion-panel class=\"mat-elevation-z raw\"\r\n (click)=\"$event.stopPropagation();\"\r\n [disabled]=\"!mobile\"\r\n [hideToggle]=\"!mobile || !item?.items?.length\"\r\n [ngClass]=\"{'icon-only': !item.title, 'mobile': mobile}\"\r\n (delayedHover)=\"(item.items?.length ?? 0) > 0 && itemMouseEnter(item.event ? item.event : $event, item)\"\r\n (mouseleave)=\"(item.items?.length ?? 0) >0 && false&& itemMouseLeave(item.event ? item.event : $event, item)\"\r\n [routerLinkActive]=\"['active']\"\r\n [routerLinkActiveOptions]=\"{exact:false}\">\r\n <mat-expansion-panel-header [expandedHeight]=\"'48px'\">\r\n <mat-panel-title>\r\n @if (!avatar) {\r\n <mat-icon [fontSet]=\"fontSet\" [style.color]=\"item.iconColor\">{{(item.icon | func:item) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (!avatar && item.title) {\r\n <span [style.color]=\"item.textColor\">{{item.title}}</span>\r\n }\r\n @if (avatar) {\r\n <mat-icon [fontSet]=\"fontSet\">{{(item.icon | func:item) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (avatar) {\r\n <h3>{{item.title}}</h3>\r\n }\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <mat-nav-list>\r\n @for (subItem of item.items; track subItem; let subLast = $last) {\r\n <ng-template let-subItem let-subLast=\"last\" [ngForOf]=\"item.items\" class=\"sub-menu\">\r\n @if (subItem.enabled) {\r\n <a mat-list-item [style.backgroundColor]=\"subItem.backgroundColor\" [routerLink]=\"subItem.path\" target=\"_{{MenuItemTarget[item.target??0].toLowerCase()}}\" [routerLinkActive]=\"['active']\" [ngClass]=\"{'icon-only': !subItem.title}\" [routerLinkActiveOptions]=\"{exact:subItem.activeExact??false}\" [fragment]=\"subItem.fragment\" (click)=\"itemClicked($event, subItem)\">\r\n @if (!avatar) {\r\n <mat-icon [fontSet]=\"fontSet\" [style.color]=\"subItem.iconColor\">{{(subItem.icon | func:subItem) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (!avatar && subItem.title) {\r\n <span [style.color]=\"subItem.textColor\">{{subItem.title}}</span>\r\n }\r\n @if (avatar) {\r\n <mat-icon [fontSet]=\"fontSet\">{{(subItem.icon | func:subItem) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (avatar) {\r\n <h3>{{subItem.title}}</h3>\r\n }\r\n @if (avatar && subItem.description) {\r\n <p>{{subItem.description}}</p>\r\n }\r\n </a>\r\n }\r\n @if (subItem.divider && !avatar) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (!subItem.divider && avatar && !subLast) {\r\n <mat-divider [inset]=\"avatar\"></mat-divider>\r\n }\r\n </ng-template>\r\n }\r\n </mat-nav-list>\r\n </mat-expansion-panel>\r\n } @else {\r\n @if (item.enabled) {\r\n <a mat-list-item [style.backgroundColor]=\"item.backgroundColor\" [routerLink]=\"item.path\" target=\"_{{MenuItemTarget[item.target??0].toLowerCase()}}\" [routerLinkActive]=\"['active']\" [ngClass]=\"{'icon-only': !item.title}\" [routerLinkActiveOptions]=\"{exact:item.activeExact??false}\" [fragment]=\"item.fragment\" (click)=\"itemClicked($event, item)\" (delayedHover)=\"(item.items?.length ?? 0) > 0 && itemMouseEnter(item.event ? item.event : $event, item)\" (mouseleave)=\"(item.items?.length ?? 0) >0 && false&& itemMouseLeave(item.event ? item.event : $event, item)\">\r\n @if (!avatar) {\r\n <mat-icon [fontSet]=\"fontSet\" [style.color]=\"item.iconColor\" matListItemIcon>{{(item.icon | func:item) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (!avatar && item.title) {\r\n <span [style.color]=\"item.textColor\" matListItemTitle>{{item.title}}</span>\r\n }\r\n @if (avatar) {\r\n <mat-icon [fontSet]=\"fontSet\" matListAvatar>{{(item.icon | func:item) || 'radio_button_unchecked'}}</mat-icon>\r\n }\r\n @if (avatar) {\r\n <h3 matLine>{{item.title}}</h3>\r\n }\r\n @if (avatar && item.description) {\r\n <p matLine>{{item.description}}</p>\r\n }\r\n </a>\r\n }\r\n @if (item.divider && !avatar) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (!item.divider && avatar && !last) {\r\n <mat-divider [inset]=\"avatar\"></mat-divider>\r\n }\r\n }\r\n }\r\n </mat-accordion>\r\n</mat-nav-list>", styles: [":host ::ng-deep .mat-mdc-nav-list .mat-mdc-list-item.icon-only .mdc-list-item__content{display:none!important}:host ::ng-deep .mat-expansion-panel{background-color:transparent}:host ::ng-deep .mat-mdc-list-item:not(.active),:host ::ng-deep .mat-mdc-list-item:active,:host ::ng-deep .mat-mdc-list-item:focus,:host ::ng-deep .mat-expansion-panel:not(.active),:host ::ng-deep .mat-expansion-panel:active,:host ::ng-deep .mat-expansion-panel:focus{background-color:transparent!important}:host ::ng-deep .mat-mdc-list-item:not(.active):before,:host ::ng-deep .mat-mdc-list-item:active:before,:host ::ng-deep .mat-mdc-list-item:focus:before,:host ::ng-deep .mat-expansion-panel:not(.active):before,:host ::ng-deep .mat-expansion-panel:active:before,:host ::ng-deep .mat-expansion-panel:focus:before{background-color:transparent!important}:host ::ng-deep .mat-mdc-list-item,:host ::ng-deep .mat-expansion-panel{font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}:host ::ng-deep .mat-mdc-list-item mat-icon,:host ::ng-deep .mat-expansion-panel mat-icon{margin-right:18px;margin-bottom:3px}:host ::ng-deep .mat-mdc-list-item ::ng-deep .mat-expansion-panel-body,:host ::ng-deep .mat-expansion-panel ::ng-deep .mat-expansion-panel-body{padding-bottom:0!important}:host ::ng-deep .mat-mdc-list-item:not(.mobile)>.mat-expansion-panel-header,:host ::ng-deep .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header{padding:4px 8px}\n"] }]
|
|
24713
24709
|
}], ctorParameters: () => [{ type: VdMediaService }], propDecorators: { items: [{
|
|
24714
24710
|
type: Input
|
|
24715
24711
|
}], activeExact: [{
|
|
@@ -25712,13 +25708,13 @@ class SubMenuResolve {
|
|
|
25712
25708
|
}
|
|
25713
25709
|
return undefined;
|
|
25714
25710
|
}
|
|
25715
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SubMenuResolve, deps: [{ token: i1$
|
|
25711
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SubMenuResolve, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25716
25712
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SubMenuResolve, providedIn: 'root' });
|
|
25717
25713
|
}
|
|
25718
25714
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SubMenuResolve, decorators: [{
|
|
25719
25715
|
type: Injectable,
|
|
25720
25716
|
args: [{ providedIn: 'root' }]
|
|
25721
|
-
}], ctorParameters: () => [{ type: i1$
|
|
25717
|
+
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }] });
|
|
25722
25718
|
|
|
25723
25719
|
class VdLayoutComponent {
|
|
25724
25720
|
media;
|
|
@@ -25909,7 +25905,7 @@ class VdLayoutComponent {
|
|
|
25909
25905
|
this.closeMenu($event);
|
|
25910
25906
|
}
|
|
25911
25907
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutComponent, deps: [{ token: VdMediaService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25912
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
25908
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdLayoutComponent, isStandalone: true, selector: "vd-layout", inputs: { menuItems: "menuItems", showDebugBanner: "showDebugBanner", mode: "mode", color: "color", opened: "opened", mini: "mini", sideGt: "sideGt", sidenavWidth: "sidenavWidth", subMenuWidth: "subMenuWidth" }, outputs: { expandedChange: "expandedChange" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "subMenuDrawer", first: true, predicate: ["subMenuDrawer"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container fullscreen [ngClass]=\"{'sidenav-container-mini': mini}\">\r\n <mat-sidenav #sidenav class=\"vd-layout-sidenav\" [mode]=\"mode\" [opened]=\"opened\" [ngClass]=\"{'sidenav-mini': mini}\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\" [disableClose]=\"disableClose\">\r\n <ng-content select=\"vd-navigation-drawer\"></ng-content>\r\n <ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n </mat-sidenav>\r\n <mat-drawer-container fullscreen>\r\n <mat-drawer #subMenuDrawer mode=\"over\" class=\"mat-drawer-submenu\" [style.max-width]=\"subMenuWidth\" [style.min-width]=\"subMenuWidth\" (mouseleave)=\"onSubMenuMouseOut($event)\">\r\n <vd-menu [items]=\"menuItems\" [activeExact]=\"false\" [mobile]=\"mobile\" (click)=\"closeMenu($event)\"></vd-menu>\r\n </mat-drawer>\r\n @if (showDebugBanner) {\r\n <div class=\"debug-banner\">DEBUG</div>\r\n }\r\n <ng-content></ng-content>\r\n </mat-drawer-container>\r\n</mat-sidenav-container>", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host ::ng-deep>mat-sidenav-container>mat-sidenav{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;flex-direction:column;border-right:none}:host ::ng-deep>mat-sidenav-container.sidenav-container-mini .vd-layout-nav-wrapper>mat-toolbar .vd-layout-menu-button{display:none!important}:host ::ng-deep>mat-sidenav-container.sidenav-container-mini .mat-drawer.mat-drawer-submenu{border-radius:0 16px 16px 0}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel>.mat-expansion-panel-header .mat-expansion-panel-header-title mat-icon,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel>.mat-expansion-panel-header .mat-expansion-panel-header-title mat-icon{margin-right:0!important}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel>.mat-expansion-panel-header .mat-content-hide-toggle,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel>.mat-expansion-panel-header .mat-content-hide-toggle{margin-right:0!important}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel ::ng-deep .mat-expansion-panel-body,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel ::ng-deep .mat-expansion-panel-body{padding:0!important}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header{padding:6px 0;height:52px!important;justify-content:center}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header>.mat-content>.mat-expansion-panel-header-title,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header>.mat-content>.mat-expansion-panel-header-title{display:flex;flex-direction:column;width:80px;margin:0 auto;justify-content:center;font-size:.83em}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-mdc-list-item{display:flex;flex-direction:column;width:80px;margin:0 auto 4px;padding:6px 0;height:66px!important;justify-content:center}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-title,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-title{font-size:.83em;font-weight:500;letter-spacing:-.5px;padding-top:2px}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item.mat-mdc-list-item-interactive:before,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-mdc-list-item.mat-mdc-list-item-interactive:before{background-color:inherit;width:56px;height:32px;border-radius:16px;position:absolute;top:3px;margin-right:auto;margin-bottom:4px;margin-left:auto}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item.mat-mdc-list-item-interactive.active:before,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-mdc-list-item.mat-mdc-list-item-interactive.active:before{background-color:var(--mat-sys-primary)!important}:host ::ng-deep mat-nav-list .mdc-list-item--with-leading-icon .mat-mdc-list-item-title{overflow:hidden;text-overflow:ellipsis;display:inline!important}:host ::ng-deep mat-nav-list .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-right:18px!important}:host ::ng-deep .debug-banner{position:fixed;top:11px;right:-38px;background-color:#6d0000;color:#fff;padding:1px 36px;font-size:12px;text-transform:uppercase;z-index:1000;transform:rotate(45deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i3$4.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i3$4.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i3$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: VdMenuComponent, selector: "vd-menu", inputs: ["items", "activeExact", "fontSet", "avatar", "mobile"], outputs: ["click", "over", "out"] }] });
|
|
25913
25909
|
}
|
|
25914
25910
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutComponent, decorators: [{
|
|
25915
25911
|
type: Component,
|
|
@@ -25919,7 +25915,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
25919
25915
|
MatToolbarModule,
|
|
25920
25916
|
MatCardModule,
|
|
25921
25917
|
VdMenuComponent
|
|
25922
|
-
], template: "<mat-sidenav-container fullscreen [ngClass]=\"{'sidenav-container-mini': mini}\">\r\n
|
|
25918
|
+
], template: "<mat-sidenav-container fullscreen [ngClass]=\"{'sidenav-container-mini': mini}\">\r\n <mat-sidenav #sidenav class=\"vd-layout-sidenav\" [mode]=\"mode\" [opened]=\"opened\" [ngClass]=\"{'sidenav-mini': mini}\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\" [disableClose]=\"disableClose\">\r\n <ng-content select=\"vd-navigation-drawer\"></ng-content>\r\n <ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n </mat-sidenav>\r\n <mat-drawer-container fullscreen>\r\n <mat-drawer #subMenuDrawer mode=\"over\" class=\"mat-drawer-submenu\" [style.max-width]=\"subMenuWidth\" [style.min-width]=\"subMenuWidth\" (mouseleave)=\"onSubMenuMouseOut($event)\">\r\n <vd-menu [items]=\"menuItems\" [activeExact]=\"false\" [mobile]=\"mobile\" (click)=\"closeMenu($event)\"></vd-menu>\r\n </mat-drawer>\r\n @if (showDebugBanner) {\r\n <div class=\"debug-banner\">DEBUG</div>\r\n }\r\n <ng-content></ng-content>\r\n </mat-drawer-container>\r\n</mat-sidenav-container>", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host ::ng-deep>mat-sidenav-container>mat-sidenav{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;flex-direction:column;border-right:none}:host ::ng-deep>mat-sidenav-container.sidenav-container-mini .vd-layout-nav-wrapper>mat-toolbar .vd-layout-menu-button{display:none!important}:host ::ng-deep>mat-sidenav-container.sidenav-container-mini .mat-drawer.mat-drawer-submenu{border-radius:0 16px 16px 0}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel>.mat-expansion-panel-header .mat-expansion-panel-header-title mat-icon,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel>.mat-expansion-panel-header .mat-expansion-panel-header-title mat-icon{margin-right:0!important}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel>.mat-expansion-panel-header .mat-content-hide-toggle,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel>.mat-expansion-panel-header .mat-content-hide-toggle{margin-right:0!important}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel ::ng-deep .mat-expansion-panel-body,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel ::ng-deep .mat-expansion-panel-body{padding:0!important}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header{padding:6px 0;height:52px!important;justify-content:center}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header>.mat-content>.mat-expansion-panel-header-title,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-expansion-panel:not(.mobile)>.mat-expansion-panel-header>.mat-content>.mat-expansion-panel-header-title{display:flex;flex-direction:column;width:80px;margin:0 auto;justify-content:center;font-size:.83em}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-mdc-list-item{display:flex;flex-direction:column;width:80px;margin:0 auto 4px;padding:6px 0;height:66px!important;justify-content:center}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-title,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-title{font-size:.83em;font-weight:500;letter-spacing:-.5px;padding-top:2px}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item.mat-mdc-list-item-interactive:before,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-mdc-list-item.mat-mdc-list-item-interactive:before{background-color:inherit;width:56px;height:32px;border-radius:16px;position:absolute;top:3px;margin-right:auto;margin-bottom:4px;margin-left:auto}:host ::ng-deep .sidenav-mini .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item.mat-mdc-list-item-interactive.active:before,:host ::ng-deep .sidenav-mini .vd-navigation-drawer-menu-content mat-nav-list .mat-mdc-list-item.mat-mdc-list-item-interactive.active:before{background-color:var(--mat-sys-primary)!important}:host ::ng-deep mat-nav-list .mdc-list-item--with-leading-icon .mat-mdc-list-item-title{overflow:hidden;text-overflow:ellipsis;display:inline!important}:host ::ng-deep mat-nav-list .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-right:18px!important}:host ::ng-deep .debug-banner{position:fixed;top:11px;right:-38px;background-color:#6d0000;color:#fff;padding:1px 36px;font-size:12px;text-transform:uppercase;z-index:1000;transform:rotate(45deg)}\n"] }]
|
|
25923
25919
|
}], ctorParameters: () => [{ type: VdMediaService }], propDecorators: { sidenav: [{
|
|
25924
25920
|
type: ViewChild,
|
|
25925
25921
|
args: [MatSidenav, { static: true }]
|
|
@@ -25976,16 +25972,15 @@ class VdLayoutCardOverComponent {
|
|
|
25976
25972
|
*/
|
|
25977
25973
|
color = 'primary';
|
|
25978
25974
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutCardOverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25979
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
25975
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdLayoutCardOverComponent, isStandalone: true, 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 <div class=\"vd-layout-card-over\" [style.max-width.%]=\"cardWidth\" [style.flex]=\"'1 1 ' + cardWidth + '%'\" [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\" [style.-webkit-box-flex]=\"1\">\r\n <mat-card>\r\n @if (cardTitle) {\r\n <mat-card-title>{{cardTitle}}</mat-card-title>\r\n }\r\n @if (cardSubtitle) {\r\n <mat-card-subtitle>{{cardSubtitle}}</mat-card-subtitle>\r\n }\r\n @if (cardTitle || cardSubtitle) {\r\n <mat-divider></mat-divider>\r\n }\r\n <ng-content></ng-content>\r\n </mat-card>\r\n <ng-content select=\"[vd-after-card]\"></ng-content>\r\n </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}:host.accordion>.vd-layout-card-over-wrapper>.vd-layout-card-over ::ng-deep>.mat-mdc-card{background-color:transparent;box-shadow:none;padding-bottom:24px;border:none}:host.tab>.vd-layout-card-over-wrapper{margin:-56px 0}:host mat-expansion-panel .mat-expansion-panel-header{font-size:1.1em}:host mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true]{padding-right:0}:host mat-expansion-panel .mat-expansion-panel-header.enabled[aria-disabled=true]{color:inherit}:host mat-expansion-panel .enabled .mat-expansion-panel-header[aria-disabled=true]{color:inherit}.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"], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i4$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$6.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i2$6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
|
|
25980
25976
|
}
|
|
25981
25977
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutCardOverComponent, decorators: [{
|
|
25982
25978
|
type: Component,
|
|
25983
25979
|
args: [{ selector: 'vd-layout-card-over', imports: [
|
|
25984
|
-
CommonModule,
|
|
25985
25980
|
MatToolbarModule,
|
|
25986
25981
|
MatCardModule,
|
|
25987
25982
|
MatDivider
|
|
25988
|
-
], template: "<mat-toolbar [color]=\"color\"></mat-toolbar>\r\n<div class=\"vd-layout-card-over-wrapper\">\r\n
|
|
25983
|
+
], template: "<mat-toolbar [color]=\"color\"></mat-toolbar>\r\n<div class=\"vd-layout-card-over-wrapper\">\r\n <div class=\"vd-layout-card-over\" [style.max-width.%]=\"cardWidth\" [style.flex]=\"'1 1 ' + cardWidth + '%'\" [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\" [style.-webkit-box-flex]=\"1\">\r\n <mat-card>\r\n @if (cardTitle) {\r\n <mat-card-title>{{cardTitle}}</mat-card-title>\r\n }\r\n @if (cardSubtitle) {\r\n <mat-card-subtitle>{{cardSubtitle}}</mat-card-subtitle>\r\n }\r\n @if (cardTitle || cardSubtitle) {\r\n <mat-divider></mat-divider>\r\n }\r\n <ng-content></ng-content>\r\n </mat-card>\r\n <ng-content select=\"[vd-after-card]\"></ng-content>\r\n </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}:host.accordion>.vd-layout-card-over-wrapper>.vd-layout-card-over ::ng-deep>.mat-mdc-card{background-color:transparent;box-shadow:none;padding-bottom:24px;border:none}:host.tab>.vd-layout-card-over-wrapper{margin:-56px 0}:host mat-expansion-panel .mat-expansion-panel-header{font-size:1.1em}:host mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true]{padding-right:0}:host mat-expansion-panel .mat-expansion-panel-header.enabled[aria-disabled=true]{color:inherit}:host mat-expansion-panel .enabled .mat-expansion-panel-header[aria-disabled=true]{color:inherit}.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"] }]
|
|
25989
25984
|
}], propDecorators: { cardTitle: [{
|
|
25990
25985
|
type: Input
|
|
25991
25986
|
}], cardSubtitle: [{
|
|
@@ -26153,7 +26148,7 @@ class VdLayoutCompactComponent {
|
|
|
26153
26148
|
}
|
|
26154
26149
|
}
|
|
26155
26150
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutCompactComponent, deps: [{ token: VdMediaService }], target: i0.ɵɵFactoryTarget.Component });
|
|
26156
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: VdLayoutCompactComponent, isStandalone: true, selector: "vd-layout-compact", inputs: { menuItems: "menuItems", mode: "mode", opened: "opened", expanded: "expanded", sideGt: "sideGt", sidenavWidth: "sidenavWidth", subMenuWidth: "subMenuWidth" }, outputs: { expandedChange: "expandedChange" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "subMenuDrawer", first: true, predicate: ["subMenuDrawer"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container class=\"sidenav-container-mini\" fullscreen>\r\n\t<mat-sidenav #sidenav class=\"vd-layout-sidenav sidenav-mini\" [mode]=\"mode\" [opened]=\"opened\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\" [disableClose]=\"disableClose\">\r\n\t\t<ng-content select=\"vd-navigation-drawer\"></ng-content>\r\n\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t</mat-sidenav>\r\n\t<mat-drawer-container fullscreen>\r\n\t\t<mat-drawer #subMenuDrawer mode=\"over\" [style.max-width]=\"subMenuWidth\" [style.min-width]=\"subMenuWidth\" (mouseenter)=\"onSubMenuMouseOver($event)\" (mouseleave)=\"onSubMenuMouseOut($event)\">\r\n\t\t\t<vd-menu [items]=\"menuItems\" [activeExact]=\"false\"></vd-menu>\r\n\t\t</mat-drawer>\r\n\t\t<ng-content></ng-content>\r\n\t</mat-drawer-container>\r\n</mat-sidenav-container>", styles: [":host ::ng-deep .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item{display:flex;flex-direction:column;width:80px;margin:0 auto;padding:6px 0;height:66px!important}:host ::ng-deep .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-title{font-size:12px;font-weight:400;letter-spacing:.1px;padding-top:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i3$
|
|
26151
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: VdLayoutCompactComponent, isStandalone: true, selector: "vd-layout-compact", inputs: { menuItems: "menuItems", mode: "mode", opened: "opened", expanded: "expanded", sideGt: "sideGt", sidenavWidth: "sidenavWidth", subMenuWidth: "subMenuWidth" }, outputs: { expandedChange: "expandedChange" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "subMenuDrawer", first: true, predicate: ["subMenuDrawer"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container class=\"sidenav-container-mini\" fullscreen>\r\n\t<mat-sidenav #sidenav class=\"vd-layout-sidenav sidenav-mini\" [mode]=\"mode\" [opened]=\"opened\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\" [disableClose]=\"disableClose\">\r\n\t\t<ng-content select=\"vd-navigation-drawer\"></ng-content>\r\n\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t</mat-sidenav>\r\n\t<mat-drawer-container fullscreen>\r\n\t\t<mat-drawer #subMenuDrawer mode=\"over\" [style.max-width]=\"subMenuWidth\" [style.min-width]=\"subMenuWidth\" (mouseenter)=\"onSubMenuMouseOver($event)\" (mouseleave)=\"onSubMenuMouseOut($event)\">\r\n\t\t\t<vd-menu [items]=\"menuItems\" [activeExact]=\"false\"></vd-menu>\r\n\t\t</mat-drawer>\r\n\t\t<ng-content></ng-content>\r\n\t</mat-drawer-container>\r\n</mat-sidenav-container>", styles: [":host ::ng-deep .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item{display:flex;flex-direction:column;width:80px;margin:0 auto;padding:6px 0;height:66px!important}:host ::ng-deep .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-title{font-size:12px;font-weight:400;letter-spacing:.1px;padding-top:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i3$4.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i3$4.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i3$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: VdMenuComponent, selector: "vd-menu", inputs: ["items", "activeExact", "fontSet", "avatar", "mobile"], outputs: ["click", "over", "out"] }] });
|
|
26157
26152
|
}
|
|
26158
26153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutCompactComponent, decorators: [{
|
|
26159
26154
|
type: Component,
|
|
@@ -26325,19 +26320,18 @@ class VdLayoutManageListComponent {
|
|
|
26325
26320
|
*/
|
|
26326
26321
|
close() { return this.sidenav?.close(); }
|
|
26327
26322
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutManageListComponent, deps: [{ token: forwardRef(() => VdLayoutComponent) }, { token: VdMediaService }], target: i0.ɵɵFactoryTarget.Component });
|
|
26328
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
26323
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdLayoutManageListComponent, isStandalone: true, 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 <!-- #region Side nav -->\r\n <mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened && !mini\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\">\r\n <!-- #region Nav list toolbar -->\r\n @if (title) {\r\n <mat-toolbar dense>\r\n <span>{{title}}</span>\r\n <span flex></span>\r\n @if (closable) {\r\n <button mat-icon-button (click)=\"close()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">menu_open</mat-icon>\r\n </button>\r\n }\r\n </mat-toolbar>\r\n }\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom title toolbar -->\r\n <ng-content select=\"mat-toolbar[vd-sidenav-content]\"></ng-content>\r\n <!-- #endregion -->\r\n\r\n <div class=\"vd-layout-manage-list-sidenav\" cdkScrollable>\r\n <ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n <ng-content select=\"vd-menu\"></ng-content>\r\n @if (menuItems) {\r\n <vd-menu [items]=\"menuItems!\"></vd-menu>\r\n }\r\n </div>\r\n </mat-sidenav>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Main content -->\r\n <div class=\"vd-layout-manage-list-main\">\r\n <!-- #region Toolbar projection -->\r\n <ng-content select=\"mat-toolbar\"></ng-content>\r\n <!-- <ng-content select=\"vd-list-toolbar\"></ng-content> -->\r\n <!-- #endregion -->\r\n\r\n <!-- #region Scrollable content -->\r\n <div class=\"vd-layout-manage-list-content\" cdkScrollable>\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Footer content -->\r\n <ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n <!-- #endregion -->\r\n </div>\r\n <!-- #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 mat-sidenav-container.vd-layout-manage-list ::ng-deep .mat-drawer-inner-container{overflow:hidden}:host mat-sidenav-container.vd-layout-manage-list ::ng-deep .mat-drawer-inner-container .mat-mdc-list-item .mat-mdc-list-item-title{overflow:hidden;text-overflow:ellipsis;display:inline}: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:hidden;-webkit-overflow-scrolling:touch;flex:1}:host .vd-layout-manage-list-main .vd-layout-manage-list-content ::ng-deep .mat-table-container{height:calc(100vh - 122px);max-height:calc(100vh - 122px)}: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:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;flex-direction:column}:host ::ng-deep .mat-toolbar{font-weight:400;display:flex;align-items:center;padding-left:4px}:host ::ng-deep .mat-toolbar *{overflow:hidden;text-overflow:ellipsis}:host ::ng-deep .mat-toolbar>.mdc-icon-button{margin-right:-2px}\n"], dependencies: [{ kind: "ngmodule", type: MatSidenavModule }, { kind: "directive", type: i2$7.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i3$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i4$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: VdMenuComponent, selector: "vd-menu", inputs: ["items", "activeExact", "fontSet", "avatar", "mobile"], outputs: ["click", "over", "out"] }] });
|
|
26329
26324
|
}
|
|
26330
26325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutManageListComponent, decorators: [{
|
|
26331
26326
|
type: Component,
|
|
26332
26327
|
args: [{ selector: 'vd-layout-manage-list', imports: [
|
|
26333
|
-
CommonModule,
|
|
26334
26328
|
MatSidenavModule,
|
|
26335
26329
|
MatToolbarModule,
|
|
26336
26330
|
MatCardModule,
|
|
26337
26331
|
MatIconModule,
|
|
26338
26332
|
MatIconButton,
|
|
26339
26333
|
VdMenuComponent
|
|
26340
|
-
], template: "<mat-sidenav-container fullscreen class=\"vd-layout-manage-list\">\r\n
|
|
26334
|
+
], template: "<mat-sidenav-container fullscreen class=\"vd-layout-manage-list\">\r\n <!-- #region Side nav -->\r\n <mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened && !mini\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\">\r\n <!-- #region Nav list toolbar -->\r\n @if (title) {\r\n <mat-toolbar dense>\r\n <span>{{title}}</span>\r\n <span flex></span>\r\n @if (closable) {\r\n <button mat-icon-button (click)=\"close()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">menu_open</mat-icon>\r\n </button>\r\n }\r\n </mat-toolbar>\r\n }\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom title toolbar -->\r\n <ng-content select=\"mat-toolbar[vd-sidenav-content]\"></ng-content>\r\n <!-- #endregion -->\r\n\r\n <div class=\"vd-layout-manage-list-sidenav\" cdkScrollable>\r\n <ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n <ng-content select=\"vd-menu\"></ng-content>\r\n @if (menuItems) {\r\n <vd-menu [items]=\"menuItems!\"></vd-menu>\r\n }\r\n </div>\r\n </mat-sidenav>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Main content -->\r\n <div class=\"vd-layout-manage-list-main\">\r\n <!-- #region Toolbar projection -->\r\n <ng-content select=\"mat-toolbar\"></ng-content>\r\n <!-- <ng-content select=\"vd-list-toolbar\"></ng-content> -->\r\n <!-- #endregion -->\r\n\r\n <!-- #region Scrollable content -->\r\n <div class=\"vd-layout-manage-list-content\" cdkScrollable>\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Footer content -->\r\n <ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n <!-- #endregion -->\r\n </div>\r\n <!-- #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 mat-sidenav-container.vd-layout-manage-list ::ng-deep .mat-drawer-inner-container{overflow:hidden}:host mat-sidenav-container.vd-layout-manage-list ::ng-deep .mat-drawer-inner-container .mat-mdc-list-item .mat-mdc-list-item-title{overflow:hidden;text-overflow:ellipsis;display:inline}: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:hidden;-webkit-overflow-scrolling:touch;flex:1}:host .vd-layout-manage-list-main .vd-layout-manage-list-content ::ng-deep .mat-table-container{height:calc(100vh - 122px);max-height:calc(100vh - 122px)}: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:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;flex-direction:column}:host ::ng-deep .mat-toolbar{font-weight:400;display:flex;align-items:center;padding-left:4px}:host ::ng-deep .mat-toolbar *{overflow:hidden;text-overflow:ellipsis}:host ::ng-deep .mat-toolbar>.mdc-icon-button{margin-right:-2px}\n"] }]
|
|
26341
26335
|
}], ctorParameters: () => [{ type: VdLayoutComponent, decorators: [{
|
|
26342
26336
|
type: Inject,
|
|
26343
26337
|
args: [forwardRef(() => VdLayoutComponent)]
|
|
@@ -26662,18 +26656,17 @@ class VdLayoutNavListComponent {
|
|
|
26662
26656
|
close() {
|
|
26663
26657
|
return this.sidenav?.close();
|
|
26664
26658
|
}
|
|
26665
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutNavListComponent, deps: [{ token: i1$
|
|
26666
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
26659
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutNavListComponent, deps: [{ token: i1$2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
26660
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdLayoutNavListComponent, isStandalone: true, 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 <mat-sidenav-container fullscreen class=\"vd-layout-nav-list\">\r\n <!-- #region Sidenav -->\r\n <mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\">\r\n <!-- #region Sidenav toolbar -->\r\n <mat-toolbar [color]=\"color\">\r\n <ng-content select=\"[vd-menu-button]\"></ng-content>\r\n @if (icon || logo || toolbarTitle) {\r\n <span class=\"vd-layout-nav-list-toolbar-content\" [class.cursor-pointer]=\"routerEnabled\" (click)=\"handleNavigationClick()\">\r\n @if (icon) {\r\n <mat-icon>{{icon}}</mat-icon>\r\n }\r\n @if (logo && !icon) {\r\n <mat-icon class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n }\r\n @if (toolbarTitle) {\r\n <span>{{toolbarTitle}}</span>\r\n }\r\n </span>\r\n }\r\n <ng-content select=\"[vd-sidenav-toolbar-content]\"></ng-content>\r\n </mat-toolbar>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Sidenav content -->\r\n <div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n <ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n </div>\r\n <!-- #endregion -->\r\n </mat-sidenav>\r\n <!-- #endregion -->\r\n\r\n <div class=\"vd-layout-nav-list-main\">\r\n <!-- #region Toolbar projection -->\r\n <ng-content select=\"mat-toolbar\"></ng-content>\r\n <ng-content select=\"vd-toolbar-content\"></ng-content>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Scrollable content -->\r\n <div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Footer content -->\r\n <ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n <!-- #endregion -->\r\n </div>\r\n </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:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: MatSidenavModule }, { kind: "directive", type: i2$7.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i3$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i4$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
26667
26661
|
}
|
|
26668
26662
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutNavListComponent, decorators: [{
|
|
26669
26663
|
type: Component,
|
|
26670
26664
|
args: [{ selector: 'vd-layout-nav-list', imports: [
|
|
26671
|
-
CommonModule,
|
|
26672
26665
|
MatSidenavModule,
|
|
26673
26666
|
MatToolbarModule,
|
|
26674
26667
|
MatIconModule
|
|
26675
|
-
], template: "<div class=\"vd-layout-nav-list-wrapper\">\r\n
|
|
26676
|
-
}], ctorParameters: () => [{ type: i1$
|
|
26668
|
+
], template: "<div class=\"vd-layout-nav-list-wrapper\">\r\n <mat-sidenav-container fullscreen class=\"vd-layout-nav-list\">\r\n <!-- #region Sidenav -->\r\n <mat-sidenav #sidenav position=\"start\" [mode]=\"mode\" [opened]=\"opened\" [disableClose]=\"disableClose\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\">\r\n <!-- #region Sidenav toolbar -->\r\n <mat-toolbar [color]=\"color\">\r\n <ng-content select=\"[vd-menu-button]\"></ng-content>\r\n @if (icon || logo || toolbarTitle) {\r\n <span class=\"vd-layout-nav-list-toolbar-content\" [class.cursor-pointer]=\"routerEnabled\" (click)=\"handleNavigationClick()\">\r\n @if (icon) {\r\n <mat-icon>{{icon}}</mat-icon>\r\n }\r\n @if (logo && !icon) {\r\n <mat-icon class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n }\r\n @if (toolbarTitle) {\r\n <span>{{toolbarTitle}}</span>\r\n }\r\n </span>\r\n }\r\n <ng-content select=\"[vd-sidenav-toolbar-content]\"></ng-content>\r\n </mat-toolbar>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Sidenav content -->\r\n <div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n <ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n </div>\r\n <!-- #endregion -->\r\n </mat-sidenav>\r\n <!-- #endregion -->\r\n\r\n <div class=\"vd-layout-nav-list-main\">\r\n <!-- #region Toolbar projection -->\r\n <ng-content select=\"mat-toolbar\"></ng-content>\r\n <ng-content select=\"vd-toolbar-content\"></ng-content>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Scrollable content -->\r\n <div class=\"vd-layout-nav-list-content\" cdkScrollable>\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Footer content -->\r\n <ng-content select=\"vd-layout-footer-inner\"></ng-content>\r\n <!-- #endregion -->\r\n </div>\r\n </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:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;flex-direction:column}\n"] }]
|
|
26669
|
+
}], ctorParameters: () => [{ type: i1$2.Router, decorators: [{
|
|
26677
26670
|
type: Optional
|
|
26678
26671
|
}] }], propDecorators: { sidenav: [{
|
|
26679
26672
|
type: ViewChild,
|
|
@@ -26982,22 +26975,21 @@ class VdLayoutNavComponent {
|
|
|
26982
26975
|
this.router.navigateByUrl(this.navigationRoute);
|
|
26983
26976
|
}
|
|
26984
26977
|
}
|
|
26985
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutNavComponent, deps: [{ token: i1$
|
|
26986
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
26978
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutNavComponent, deps: [{ token: i1$2.Router, optional: true }, { token: i1$2.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
26979
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdLayoutNavComponent, isStandalone: true, selector: "vd-layout-nav", inputs: { toolbarTitle: "toolbarTitle", editMode: "editMode", actions: "actions", data: "data", context: "context", hideToolbar: "hideToolbar", icon: "icon", logo: "logo", color: "color", hideToggle: "hideToggle", backNavigationRoute: "backNavigationRoute", navigationRoute: "navigationRoute" }, outputs: { reload: "reload" }, ngImport: i0, template: "<div class=\"vd-layout-nav-wrapper\">\r\n @if (!hideToolbar || editMode) {\r\n <mat-toolbar [color]=\"color\" class=\"primary-color\" dense>\r\n <!-- #region Toggle buton -->\r\n @if (!hideToggle) {\r\n <button mat-icon-button vd-menu-button [vdLayoutToggle]=\"true\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">menu</mat-icon>\r\n </button>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Back button -->\r\n @if (backNavigationRouteEnabled) {\r\n <button mat-icon-button vd-menu-button (click)=\"handleBackNavigationClick()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">arrow_back</mat-icon>\r\n </button>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Custom buttons -->\r\n <ng-content select=\"[vd-menu-button]\"></ng-content>\r\n <!-- #endregion -->\r\n <!-- #region Logo with home link -->\r\n @if (icon || logo || toolbarTitle) {\r\n <span [class.cursor-pointer]=\"routerEnabled\" (click)=\"handleNavigationClick()\" class=\"vd-layout-nav-toolbar-content\">\r\n @if (icon) {\r\n <mat-icon>{{icon}}</mat-icon>\r\n }\r\n @if (logo && !icon) {\r\n <mat-icon class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n }\r\n @if (toolbarTitle) {\r\n <span>{{toolbarTitle}}</span>\r\n } \r\n @if (editMode == false) {\r\n <span>[<span i18n=\"@@add\">Add</span>]</span>\r\n }\r\n @if (editMode == true) {\r\n <span>[@if (editMode == true) {\r\n <span i18n=\"@@edit\">Edit</span>\r\n }]</span>\r\n }\r\n </span>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Custom content -->\r\n <ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n <!-- #endregion -->\r\n <span flex></span>\r\n <!-- #region Actions -->\r\n @if (editMode==true) {\r\n <vd-dynamic-menu [items]=\"actions\" [data]=\"data\" [context]=\"context\"></vd-dynamic-menu>\r\n }\r\n <!-- #endregion-->\r\n <!-- #region Custom right content -->\r\n <ng-content select=\"[vd-toolbar-content-right]\"></ng-content>\r\n <!-- #endregion -->\r\n </mat-toolbar>\r\n }\r\n <div class=\"vd-layout-nav-content scrollbar-primary\" cdkScrollable>\r\n <ng-content></ng-content>\r\n </div>\r\n <ng-content select=\"vd-layout-footer\"></ng-content>\r\n </div>", styles: [":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 .mat-toolbar{padding-left:4px}:host .vd-layout-nav-wrapper .vd-layout-nav-toolbar-content{flex-direction:row;box-sizing:border-box;align-items:center;align-content:center;max-width:100%;justify-content:flex-start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}: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"], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i4$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: VdLayoutToggleDirective, selector: "[vdLayoutToggle]", inputs: ["vdLayoutToggle"] }, { kind: "component", type: VdDynamicMenuComponent, selector: "vd-dynamic-menu", inputs: ["items", "data", "index", "context", "contextMenu"] }] });
|
|
26987
26980
|
}
|
|
26988
26981
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdLayoutNavComponent, decorators: [{
|
|
26989
26982
|
type: Component,
|
|
26990
26983
|
args: [{ selector: 'vd-layout-nav', imports: [
|
|
26991
|
-
CommonModule,
|
|
26992
26984
|
MatToolbarModule,
|
|
26993
26985
|
MatIconModule,
|
|
26994
26986
|
MatIconButton,
|
|
26995
26987
|
VdLayoutToggleDirective,
|
|
26996
26988
|
VdDynamicMenuComponent
|
|
26997
|
-
], template: "<div class=\"vd-layout-nav-wrapper\">\r\n
|
|
26998
|
-
}], ctorParameters: () => [{ type: i1$
|
|
26989
|
+
], template: "<div class=\"vd-layout-nav-wrapper\">\r\n @if (!hideToolbar || editMode) {\r\n <mat-toolbar [color]=\"color\" class=\"primary-color\" dense>\r\n <!-- #region Toggle buton -->\r\n @if (!hideToggle) {\r\n <button mat-icon-button vd-menu-button [vdLayoutToggle]=\"true\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">menu</mat-icon>\r\n </button>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Back button -->\r\n @if (backNavigationRouteEnabled) {\r\n <button mat-icon-button vd-menu-button (click)=\"handleBackNavigationClick()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">arrow_back</mat-icon>\r\n </button>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Custom buttons -->\r\n <ng-content select=\"[vd-menu-button]\"></ng-content>\r\n <!-- #endregion -->\r\n <!-- #region Logo with home link -->\r\n @if (icon || logo || toolbarTitle) {\r\n <span [class.cursor-pointer]=\"routerEnabled\" (click)=\"handleNavigationClick()\" class=\"vd-layout-nav-toolbar-content\">\r\n @if (icon) {\r\n <mat-icon>{{icon}}</mat-icon>\r\n }\r\n @if (logo && !icon) {\r\n <mat-icon class=\"mat-icon-logo\" [svgIcon]=\"logo\"></mat-icon>\r\n }\r\n @if (toolbarTitle) {\r\n <span>{{toolbarTitle}}</span>\r\n } \r\n @if (editMode == false) {\r\n <span>[<span i18n=\"@@add\">Add</span>]</span>\r\n }\r\n @if (editMode == true) {\r\n <span>[@if (editMode == true) {\r\n <span i18n=\"@@edit\">Edit</span>\r\n }]</span>\r\n }\r\n </span>\r\n }\r\n <!-- #endregion -->\r\n <!-- #region Custom content -->\r\n <ng-content select=\"[vd-toolbar-content]\"></ng-content>\r\n <!-- #endregion -->\r\n <span flex></span>\r\n <!-- #region Actions -->\r\n @if (editMode==true) {\r\n <vd-dynamic-menu [items]=\"actions\" [data]=\"data\" [context]=\"context\"></vd-dynamic-menu>\r\n }\r\n <!-- #endregion-->\r\n <!-- #region Custom right content -->\r\n <ng-content select=\"[vd-toolbar-content-right]\"></ng-content>\r\n <!-- #endregion -->\r\n </mat-toolbar>\r\n }\r\n <div class=\"vd-layout-nav-content scrollbar-primary\" cdkScrollable>\r\n <ng-content></ng-content>\r\n </div>\r\n <ng-content select=\"vd-layout-footer\"></ng-content>\r\n </div>", styles: [":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 .mat-toolbar{padding-left:4px}:host .vd-layout-nav-wrapper .vd-layout-nav-toolbar-content{flex-direction:row;box-sizing:border-box;align-items:center;align-content:center;max-width:100%;justify-content:flex-start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}: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"] }]
|
|
26990
|
+
}], ctorParameters: () => [{ type: i1$2.Router, decorators: [{
|
|
26999
26991
|
type: Optional
|
|
27000
|
-
}] }, { type: i1$
|
|
26992
|
+
}] }, { type: i1$2.ActivatedRoute, decorators: [{
|
|
27001
26993
|
type: Optional
|
|
27002
26994
|
}] }], propDecorators: { toolbarTitle: [{
|
|
27003
26995
|
type: Input
|
|
@@ -27049,18 +27041,17 @@ class VdListToolbarComponent {
|
|
|
27049
27041
|
*/
|
|
27050
27042
|
actions = [];
|
|
27051
27043
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdListToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27052
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
27044
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdListToolbarComponent, isStandalone: true, selector: "vd-list-toolbar", inputs: { subtitle: "subtitle", mini: "mini", backButton: "backButton", actions: "actions" }, outputs: { back: "back" }, ngImport: i0, template: "<mat-toolbar dense>\r\n <div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button vd-menu-button [vdLayoutToggle]=\"true\" [hideWhenOpened]=\"true\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">menu</mat-icon>\r\n </button>\r\n @if (backButton) {\r\n <button mat-icon-button (click)=\"back.emit()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">arrow_back</mat-icon>\r\n </button>\r\n }\r\n <span>{{subtitle}}</span>\r\n <span flex></span>\r\n <vd-dynamic-menu [items]=\"actions\"></vd-dynamic-menu>\r\n </div>\r\n</mat-toolbar>", dependencies: [{ kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: VdDynamicMenuComponent, selector: "vd-dynamic-menu", inputs: ["items", "data", "index", "context", "contextMenu"] }, { kind: "directive", type: VdLayoutToggleDirective, selector: "[vdLayoutToggle]", inputs: ["vdLayoutToggle"] }] });
|
|
27053
27045
|
}
|
|
27054
27046
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdListToolbarComponent, decorators: [{
|
|
27055
27047
|
type: Component,
|
|
27056
27048
|
args: [{ selector: 'vd-list-toolbar', imports: [
|
|
27057
|
-
CommonModule,
|
|
27058
27049
|
MatToolbar,
|
|
27059
27050
|
MatIcon,
|
|
27060
27051
|
MatButtonModule,
|
|
27061
27052
|
VdDynamicMenuComponent,
|
|
27062
27053
|
VdLayoutToggleDirective
|
|
27063
|
-
], template: "<mat-toolbar dense>\r\n
|
|
27054
|
+
], template: "<mat-toolbar dense>\r\n <div layout=\"row\" layout-align=\"start center\" flex>\r\n <button mat-icon-button vd-menu-button [vdLayoutToggle]=\"true\" [hideWhenOpened]=\"true\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">menu</mat-icon>\r\n </button>\r\n @if (backButton) {\r\n <button mat-icon-button (click)=\"back.emit()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">arrow_back</mat-icon>\r\n </button>\r\n }\r\n <span>{{subtitle}}</span>\r\n <span flex></span>\r\n <vd-dynamic-menu [items]=\"actions\"></vd-dynamic-menu>\r\n </div>\r\n</mat-toolbar>" }]
|
|
27064
27055
|
}], propDecorators: { subtitle: [{
|
|
27065
27056
|
type: Input
|
|
27066
27057
|
}], mini: [{
|
|
@@ -27298,8 +27289,8 @@ class VdNavigationDrawerComponent {
|
|
|
27298
27289
|
this._closeSubscription = undefined;
|
|
27299
27290
|
}
|
|
27300
27291
|
}
|
|
27301
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdNavigationDrawerComponent, deps: [{ token: forwardRef(() => VdLayoutComponent) }, { token: i1$
|
|
27302
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
27292
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdNavigationDrawerComponent, deps: [{ token: forwardRef(() => VdLayoutComponent) }, { token: i1$2.Router, optional: true }, { token: i1$3.DomSanitizer }, { token: VdMediaService }], target: i0.ɵɵFactoryTarget.Component });
|
|
27293
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: VdNavigationDrawerComponent, isStandalone: true, selector: "vd-navigation-drawer", inputs: { sidenavTitle: "sidenavTitle", icon: "icon", logo: "logo", avatar: "avatar", color: "color", navigationRoute: "navigationRoute", backgroundUrl: "backgroundUrl", sideGt: "sideGt", name: "name", email: "email" }, queries: [{ propertyName: "_drawerMenu", predicate: VdNavigationDrawerMenuDirective, descendants: true }, { propertyName: "_toolbar", predicate: VdNavigationDrawerToolbarDirective, descendants: true }], ngImport: i0, template: "<mat-toolbar [color]=\"color\" [style.background-image]=\"backgroundImage\" [class.vd-toolbar-background]=\"!!isBackgroundAvailable\" class=\"vd-nagivation-drawer-toolbar\" [ngClass]=\"{'drawer-mini': mini && !expanded}\" dense flex layout=\"column\">\r\n <ng-content select=\"[vd-navigation-drawer-toolbar]\"></ng-content>\r\n @if (!isCustomToolbar && !mini) {\r\n @if (email && name) {\r\n <div class=\"vd-navigation-drawer-name\">{{name}}</div>\r\n }\r\n @if (email || name) {\r\n <div class=\"vd-navigation-drawer-menu-toggle\" href (click)=\"toggleMenu()\">\r\n <span class=\"vd-navigation-drawer-label\">{{ email || name }}</span>\r\n @if (isMenuAvailable) {\r\n <button mat-icon-button class=\"vd-navigation-drawer-menu-button\">\r\n @if (!menuToggled) {\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n }\r\n @if (menuToggled) {\r\n <mat-icon>arrow_drop_up</mat-icon>\r\n }\r\n </button>\r\n }\r\n </div>\r\n }\r\n }\r\n @if (mini && !expanded) {\r\n <div layout=\"column\" layout-align=\"center center\" flex>\r\n <button mat-icon-button (click)=\"toggleMenu()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">format_list_bulleted</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n</mat-toolbar>\r\n\r\n<div class=\"vd-navigation-drawer-content scrollbar-primary\" [@vdCollapse]=\"menuToggled\" [ngClass]=\"{'drawer-mini': mini}\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<div class=\"vd-navigation-drawer-menu-content\" [@vdCollapse]=\"!menuToggled\" [ngClass]=\"{'drawer-mini': mini}\">\r\n <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 .vd-navigation-drawer-content ::ng-deep .mat-mdc-nav-list,:host .vd-navigation-drawer-menu-content ::ng-deep .mat-mdc-nav-list{padding-top:0!important;padding-bottom:12px}:host .vd-navigation-drawer-content.drawer-mini ::ng-deep .mat-mdc-nav-list,:host .vd-navigation-drawer-menu-content.drawer-mini ::ng-deep .mat-mdc-nav-list{padding-bottom:0!important}:host mat-toolbar:not(.drawer-mini){padding:16px}:host mat-toolbar.drawer-mini{padding:0!important}:host mat-toolbar.vd-nagivation-drawer-toolbar{flex-direction:column;align-items:stretch}:host mat-toolbar.vd-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.vd-nagivation-drawer-toolbar:not(.drawer-mini){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-toolbar-content .vd-nagivation-drawer-toolbar-avatar{border-radius:50%;height:60px;width:60px;margin:0 12px 12px 0}:host mat-toolbar .vd-navigation-drawer-toolbar-content .vd-navigation-drawer-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .vd-navigation-drawer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .vd-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex;cursor:pointer}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-menu-button{height:24px;line-height:24px;width:24px;padding:0!important}:host>div{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i4$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], animations: [vdCollapseAnimation] });
|
|
27303
27294
|
}
|
|
27304
27295
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VdNavigationDrawerComponent, decorators: [{
|
|
27305
27296
|
type: Component,
|
|
@@ -27308,13 +27299,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
27308
27299
|
MatToolbarModule,
|
|
27309
27300
|
MatIcon,
|
|
27310
27301
|
MatIconButton
|
|
27311
|
-
], template: "<mat-toolbar [color]=\"color\" [style.background-image]=\"backgroundImage\" [class.vd-toolbar-background]=\"!!isBackgroundAvailable\" class=\"vd-nagivation-drawer-toolbar\" [ngClass]=\"{'drawer-mini': mini && !expanded}\" dense flex layout=\"column\">\r\n
|
|
27302
|
+
], template: "<mat-toolbar [color]=\"color\" [style.background-image]=\"backgroundImage\" [class.vd-toolbar-background]=\"!!isBackgroundAvailable\" class=\"vd-nagivation-drawer-toolbar\" [ngClass]=\"{'drawer-mini': mini && !expanded}\" dense flex layout=\"column\">\r\n <ng-content select=\"[vd-navigation-drawer-toolbar]\"></ng-content>\r\n @if (!isCustomToolbar && !mini) {\r\n @if (email && name) {\r\n <div class=\"vd-navigation-drawer-name\">{{name}}</div>\r\n }\r\n @if (email || name) {\r\n <div class=\"vd-navigation-drawer-menu-toggle\" href (click)=\"toggleMenu()\">\r\n <span class=\"vd-navigation-drawer-label\">{{ email || name }}</span>\r\n @if (isMenuAvailable) {\r\n <button mat-icon-button class=\"vd-navigation-drawer-menu-button\">\r\n @if (!menuToggled) {\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n }\r\n @if (menuToggled) {\r\n <mat-icon>arrow_drop_up</mat-icon>\r\n }\r\n </button>\r\n }\r\n </div>\r\n }\r\n }\r\n @if (mini && !expanded) {\r\n <div layout=\"column\" layout-align=\"center center\" flex>\r\n <button mat-icon-button (click)=\"toggleMenu()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">format_list_bulleted</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n</mat-toolbar>\r\n\r\n<div class=\"vd-navigation-drawer-content scrollbar-primary\" [@vdCollapse]=\"menuToggled\" [ngClass]=\"{'drawer-mini': mini}\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<div class=\"vd-navigation-drawer-menu-content\" [@vdCollapse]=\"!menuToggled\" [ngClass]=\"{'drawer-mini': mini}\">\r\n <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 .vd-navigation-drawer-content ::ng-deep .mat-mdc-nav-list,:host .vd-navigation-drawer-menu-content ::ng-deep .mat-mdc-nav-list{padding-top:0!important;padding-bottom:12px}:host .vd-navigation-drawer-content.drawer-mini ::ng-deep .mat-mdc-nav-list,:host .vd-navigation-drawer-menu-content.drawer-mini ::ng-deep .mat-mdc-nav-list{padding-bottom:0!important}:host mat-toolbar:not(.drawer-mini){padding:16px}:host mat-toolbar.drawer-mini{padding:0!important}:host mat-toolbar.vd-nagivation-drawer-toolbar{flex-direction:column;align-items:stretch}:host mat-toolbar.vd-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.vd-nagivation-drawer-toolbar:not(.drawer-mini){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-toolbar-content .vd-nagivation-drawer-toolbar-avatar{border-radius:50%;height:60px;width:60px;margin:0 12px 12px 0}:host mat-toolbar .vd-navigation-drawer-toolbar-content .vd-navigation-drawer-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .vd-navigation-drawer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .vd-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex;cursor:pointer}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .vd-navigation-drawer-menu-toggle .vd-navigation-drawer-menu-button{height:24px;line-height:24px;width:24px;padding:0!important}:host>div{overflow:hidden}\n"] }]
|
|
27312
27303
|
}], ctorParameters: () => [{ type: VdLayoutComponent, decorators: [{
|
|
27313
27304
|
type: Inject,
|
|
27314
27305
|
args: [forwardRef(() => VdLayoutComponent)]
|
|
27315
|
-
}] }, { type: i1$
|
|
27306
|
+
}] }, { type: i1$2.Router, decorators: [{
|
|
27316
27307
|
type: Optional
|
|
27317
|
-
}] }, { type: i1$
|
|
27308
|
+
}] }, { type: i1$3.DomSanitizer }, { type: VdMediaService }], propDecorators: { _drawerMenu: [{
|
|
27318
27309
|
type: ContentChildren,
|
|
27319
27310
|
args: [VdNavigationDrawerMenuDirective, { descendants: true }]
|
|
27320
27311
|
}], _toolbar: [{
|