@kuzntsv/uikit 1.0.81 → 1.0.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, HostListener, Injectable, InjectionToken, Injector, NgZone, Pipe, computed, effect, inject, input, linkedSignal, makeEnvironmentProviders, model, output, signal, untracked, viewChild } from "@angular/core";
|
|
3
3
|
import { Router, RouterLink } from "@angular/router";
|
|
4
|
-
import { ReplaySubject, Subject, Subscription, filter, finalize, forkJoin, map, of,
|
|
4
|
+
import { ReplaySubject, Subject, Subscription, filter, finalize, forkJoin, map, of, switchMap, take, tap } from "rxjs";
|
|
5
5
|
import { API_NAME, AuthService, HIDE_ROLE_MARKER, NotificationService, RoleService, SignalSelectionModel, UIKIT_NOTIFICATION_TOKEN, formatZodError } from "@kuzntsv/uikit";
|
|
6
|
-
import * as i1$
|
|
6
|
+
import * as i1$2 from "@angular/forms";
|
|
7
7
|
import { FormControl, FormGroup, FormsModule, NgControl, ReactiveFormsModule, Validators } from "@angular/forms";
|
|
8
8
|
import { MatAnchor, MatButton, MatIconButton } from "@angular/material/button";
|
|
9
9
|
import { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from "@angular/material/card";
|
|
@@ -14,14 +14,14 @@ import { HttpClient, HttpContext, HttpParams, httpResource } from "@angular/comm
|
|
|
14
14
|
import { Overlay } from "@angular/cdk/overlay";
|
|
15
15
|
import { ComponentPortal } from "@angular/cdk/portal";
|
|
16
16
|
import { COMMA, ENTER } from "@angular/cdk/keycodes";
|
|
17
|
-
import
|
|
18
|
-
import * as i2$1 from "@angular/material/autocomplete";
|
|
17
|
+
import * as i1$1 from "@angular/material/autocomplete";
|
|
19
18
|
import { MatAutocompleteModule, MatOption } from "@angular/material/autocomplete";
|
|
20
|
-
import * as
|
|
19
|
+
import * as i2$1 from "@angular/material/chips";
|
|
21
20
|
import { MatChipsModule } from "@angular/material/chips";
|
|
22
|
-
import {
|
|
21
|
+
import { FormField, form } from "@angular/forms/signals";
|
|
23
22
|
import { DateAdapter, MAT_DATE_FORMATS, MatOptgroup, MatOption as MatOption$1, NativeDateAdapter } from "@angular/material/core";
|
|
24
23
|
import { MatDateRangeInput, MatDateRangePicker, MatDatepickerToggle, MatEndDate, MatStartDate } from "@angular/material/datepicker";
|
|
24
|
+
import { catchError, debounceTime, distinctUntilChanged, map as map$1, startWith } from "rxjs/operators";
|
|
25
25
|
import { MAT_DIALOG_DATA, MatDialog, MatDialogActions, MatDialogClose, MatDialogConfig, MatDialogContent, MatDialogRef, MatDialogTitle } from "@angular/material/dialog";
|
|
26
26
|
import * as i4 from "@angular/material/tooltip";
|
|
27
27
|
import { MatTooltip, MatTooltipModule } from "@angular/material/tooltip";
|
|
@@ -122,27 +122,27 @@ var LoginFormComponent = class LoginFormComponent {
|
|
|
122
122
|
},
|
|
123
123
|
{
|
|
124
124
|
kind: "directive",
|
|
125
|
-
type: i1$
|
|
125
|
+
type: i1$2.ɵNgNoValidate,
|
|
126
126
|
selector: "form:not([ngNoForm]):not([ngNativeValidate])"
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
129
|
kind: "directive",
|
|
130
|
-
type: i1$
|
|
130
|
+
type: i1$2.DefaultValueAccessor,
|
|
131
131
|
selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]"
|
|
132
132
|
},
|
|
133
133
|
{
|
|
134
134
|
kind: "directive",
|
|
135
|
-
type: i1$
|
|
135
|
+
type: i1$2.NgControlStatus,
|
|
136
136
|
selector: "[formControlName],[ngModel],[formControl]"
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
kind: "directive",
|
|
140
|
-
type: i1$
|
|
140
|
+
type: i1$2.NgControlStatusGroup,
|
|
141
141
|
selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]"
|
|
142
142
|
},
|
|
143
143
|
{
|
|
144
144
|
kind: "directive",
|
|
145
|
-
type: i1$
|
|
145
|
+
type: i1$2.PatternValidator,
|
|
146
146
|
selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",
|
|
147
147
|
inputs: ["pattern"]
|
|
148
148
|
},
|
|
@@ -152,7 +152,7 @@ var LoginFormComponent = class LoginFormComponent {
|
|
|
152
152
|
},
|
|
153
153
|
{
|
|
154
154
|
kind: "directive",
|
|
155
|
-
type: i1$
|
|
155
|
+
type: i1$2.FormGroupDirective,
|
|
156
156
|
selector: "[formGroup]",
|
|
157
157
|
inputs: ["formGroup"],
|
|
158
158
|
outputs: ["ngSubmit"],
|
|
@@ -160,7 +160,7 @@ var LoginFormComponent = class LoginFormComponent {
|
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
162
|
kind: "directive",
|
|
163
|
-
type: i1$
|
|
163
|
+
type: i1$2.FormControlName,
|
|
164
164
|
selector: "[formControlName]",
|
|
165
165
|
inputs: [
|
|
166
166
|
"formControlName",
|
|
@@ -435,61 +435,60 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
435
435
|
args: [{ providedIn: "root" }]
|
|
436
436
|
}]
|
|
437
437
|
});
|
|
438
|
-
var
|
|
438
|
+
var ChipInputAutocompleteComponent = class ChipInputAutocompleteComponent {
|
|
439
439
|
items = input([], ...ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []);
|
|
440
440
|
selectedItemsInput = input([], ...ngDevMode ? [{ debugName: "selectedItemsInput" }] : /* istanbul ignore next */ []);
|
|
441
441
|
title = input("", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
442
442
|
selectedItemsChange = output();
|
|
443
|
-
|
|
443
|
+
formModel = signal("", ...ngDevMode ? [{ debugName: "formModel" }] : /* istanbul ignore next */ []);
|
|
444
|
+
form = form(this.formModel);
|
|
444
445
|
separatorKeysCodes = [ENTER, COMMA];
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
446
|
+
selectedItems = linkedSignal({
|
|
447
|
+
...ngDevMode ? { debugName: "selectedItems" } : /* istanbul ignore next */ {},
|
|
448
|
+
source: this.selectedItemsInput,
|
|
449
|
+
computation: (inputKeys) => this.items().filter((item) => inputKeys.includes(item.value))
|
|
450
|
+
});
|
|
451
|
+
filteredItems = computed(() => {
|
|
452
|
+
const allItems = this.items();
|
|
453
|
+
const search = this.formModel();
|
|
454
|
+
if (!search) return allItems;
|
|
455
|
+
const filterValue = search.toLowerCase();
|
|
456
|
+
return allItems.filter((item) => item.viewValue.toLowerCase().includes(filterValue));
|
|
457
|
+
}, ...ngDevMode ? [{ debugName: "filteredItems" }] : /* istanbul ignore next */ []);
|
|
456
458
|
remove(value) {
|
|
457
|
-
this.selectedItems
|
|
458
|
-
|
|
459
|
-
if (index >= 0) {
|
|
460
|
-
this.selectedItems.splice(index, 1);
|
|
461
|
-
this.selectedItemsChange.emit(this.selectedItems.map((i) => i.value));
|
|
462
|
-
}
|
|
459
|
+
this.selectedItems.update((items) => items.filter((item) => item.value !== value));
|
|
460
|
+
this.emitChange();
|
|
463
461
|
}
|
|
464
462
|
selected(event) {
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
_filter(value) {
|
|
474
|
-
const filterValue = value.toLowerCase();
|
|
475
|
-
return this.items().filter((item) => item.viewValue.toLowerCase().includes(filterValue));
|
|
463
|
+
const item = this.items().find((s) => s.value === event.option.value);
|
|
464
|
+
if (item) {
|
|
465
|
+
this.selectedItems.update((items) => {
|
|
466
|
+
return items.some((i) => i.value === item.value) ? items : [...items, item];
|
|
467
|
+
});
|
|
468
|
+
this.emitChange();
|
|
469
|
+
}
|
|
470
|
+
this.formModel.set("");
|
|
476
471
|
}
|
|
477
472
|
onCloseClick($event) {
|
|
478
473
|
$event.stopPropagation();
|
|
474
|
+
this.selectedItems.set([]);
|
|
479
475
|
this.selectedItemsChange.emit([]);
|
|
480
476
|
}
|
|
477
|
+
emitChange() {
|
|
478
|
+
this.selectedItemsChange.emit(this.selectedItems().map((i) => i.value));
|
|
479
|
+
}
|
|
481
480
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
482
481
|
minVersion: "12.0.0",
|
|
483
482
|
version: "22.2.2",
|
|
484
483
|
ngImport: i0,
|
|
485
|
-
type:
|
|
484
|
+
type: ChipInputAutocompleteComponent,
|
|
486
485
|
deps: [],
|
|
487
486
|
target: i0.ɵɵFactoryTarget.Component
|
|
488
487
|
});
|
|
489
488
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
490
489
|
minVersion: "17.0.0",
|
|
491
490
|
version: "22.2.2",
|
|
492
|
-
type:
|
|
491
|
+
type: ChipInputAutocompleteComponent,
|
|
493
492
|
isStandalone: true,
|
|
494
493
|
selector: "ngx-uik-chip-input-autocomplete",
|
|
495
494
|
inputs: {
|
|
@@ -516,17 +515,17 @@ var BaseMatChipComponent = class BaseMatChipComponent {
|
|
|
516
515
|
}
|
|
517
516
|
},
|
|
518
517
|
outputs: { selectedItemsChange: "selectedItemsChange" },
|
|
519
|
-
viewQueries: [{
|
|
520
|
-
propertyName: "input",
|
|
521
|
-
first: true,
|
|
522
|
-
predicate: ["input"],
|
|
523
|
-
descendants: true,
|
|
524
|
-
isSignal: true
|
|
525
|
-
}],
|
|
526
518
|
ngImport: i0,
|
|
527
|
-
template: "<mat-form-field class=\"chip-list\" appearance=\"fill\">\n <mat-label>{{ title() }}</mat-label>\n <mat-chip-grid #chipList aria-label=\"'Выбор '+title()\">\n @for (item of selectedItems; track item) {\n <mat-chip-row color=\"primary\" (removed)=\"remove(item.value)\">\n {{ item.viewValue }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input\n #input\n [placeholder]=\"'Введите ' + title() + '...'\"\n [
|
|
519
|
+
template: "<mat-form-field class=\"chip-list\" appearance=\"fill\">\n <mat-label>{{ title() }}</mat-label>\n <mat-chip-grid #chipList aria-label=\"'Выбор '+title()\">\n @for (item of selectedItems(); track item.value) {\n <mat-chip-row color=\"primary\" (removed)=\"remove(item.value)\">\n {{ item.viewValue }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input\n #input\n [formField]=\"form\"\n [placeholder]=\"'Введите ' + title() + '...'\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (item of filteredItems(); track item.value) {\n <mat-option\n [value]=\"item.value\"\n [disabled]=\"selectedItemsInput().includes(item.value)\"\n >\n {{ item.viewValue }}\n </mat-option>\n }\n </mat-autocomplete>\n @if (selectedItems().length > 0) {\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"onCloseClick($event)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n</mat-form-field>\n",
|
|
528
520
|
styles: [".chip-list{width:100%}\n"],
|
|
529
521
|
dependencies: [
|
|
522
|
+
{
|
|
523
|
+
kind: "directive",
|
|
524
|
+
type: FormField,
|
|
525
|
+
selector: "[formField]",
|
|
526
|
+
inputs: ["formField"],
|
|
527
|
+
exportAs: ["formField"]
|
|
528
|
+
},
|
|
530
529
|
{
|
|
531
530
|
kind: "component",
|
|
532
531
|
type: MatFormField,
|
|
@@ -541,43 +540,13 @@ var BaseMatChipComponent = class BaseMatChipComponent {
|
|
|
541
540
|
],
|
|
542
541
|
exportAs: ["matFormField"]
|
|
543
542
|
},
|
|
544
|
-
{
|
|
545
|
-
kind: "ngmodule",
|
|
546
|
-
type: FormsModule
|
|
547
|
-
},
|
|
548
|
-
{
|
|
549
|
-
kind: "directive",
|
|
550
|
-
type: i1$1.DefaultValueAccessor,
|
|
551
|
-
selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]"
|
|
552
|
-
},
|
|
553
|
-
{
|
|
554
|
-
kind: "directive",
|
|
555
|
-
type: i1$1.NgControlStatus,
|
|
556
|
-
selector: "[formControlName],[ngModel],[formControl]"
|
|
557
|
-
},
|
|
558
|
-
{
|
|
559
|
-
kind: "ngmodule",
|
|
560
|
-
type: ReactiveFormsModule
|
|
561
|
-
},
|
|
562
|
-
{
|
|
563
|
-
kind: "directive",
|
|
564
|
-
type: i1$1.FormControlDirective,
|
|
565
|
-
selector: "[formControl]",
|
|
566
|
-
inputs: [
|
|
567
|
-
"formControl",
|
|
568
|
-
"disabled",
|
|
569
|
-
"ngModel"
|
|
570
|
-
],
|
|
571
|
-
outputs: ["ngModelChange"],
|
|
572
|
-
exportAs: ["ngForm"]
|
|
573
|
-
},
|
|
574
543
|
{
|
|
575
544
|
kind: "ngmodule",
|
|
576
545
|
type: MatAutocompleteModule
|
|
577
546
|
},
|
|
578
547
|
{
|
|
579
548
|
kind: "component",
|
|
580
|
-
type:
|
|
549
|
+
type: i1$1.MatAutocomplete,
|
|
581
550
|
selector: "mat-autocomplete",
|
|
582
551
|
inputs: [
|
|
583
552
|
"aria-label",
|
|
@@ -601,7 +570,7 @@ var BaseMatChipComponent = class BaseMatChipComponent {
|
|
|
601
570
|
},
|
|
602
571
|
{
|
|
603
572
|
kind: "component",
|
|
604
|
-
type:
|
|
573
|
+
type: i1$1.MatOption,
|
|
605
574
|
selector: "mat-option",
|
|
606
575
|
inputs: [
|
|
607
576
|
"value",
|
|
@@ -613,7 +582,7 @@ var BaseMatChipComponent = class BaseMatChipComponent {
|
|
|
613
582
|
},
|
|
614
583
|
{
|
|
615
584
|
kind: "directive",
|
|
616
|
-
type:
|
|
585
|
+
type: i1$1.MatAutocompleteTrigger,
|
|
617
586
|
selector: "input[matAutocomplete], textarea[matAutocomplete]",
|
|
618
587
|
inputs: [
|
|
619
588
|
"matAutocomplete",
|
|
@@ -643,7 +612,7 @@ var BaseMatChipComponent = class BaseMatChipComponent {
|
|
|
643
612
|
},
|
|
644
613
|
{
|
|
645
614
|
kind: "component",
|
|
646
|
-
type:
|
|
615
|
+
type: i2$1.MatChipGrid,
|
|
647
616
|
selector: "mat-chip-grid",
|
|
648
617
|
inputs: [
|
|
649
618
|
"disabled",
|
|
@@ -656,7 +625,7 @@ var BaseMatChipComponent = class BaseMatChipComponent {
|
|
|
656
625
|
},
|
|
657
626
|
{
|
|
658
627
|
kind: "directive",
|
|
659
|
-
type:
|
|
628
|
+
type: i2$1.MatChipInput,
|
|
660
629
|
selector: "input[matChipInputFor]",
|
|
661
630
|
inputs: [
|
|
662
631
|
"matChipInputFor",
|
|
@@ -673,12 +642,12 @@ var BaseMatChipComponent = class BaseMatChipComponent {
|
|
|
673
642
|
},
|
|
674
643
|
{
|
|
675
644
|
kind: "directive",
|
|
676
|
-
type:
|
|
645
|
+
type: i2$1.MatChipRemove,
|
|
677
646
|
selector: "[matChipRemove]"
|
|
678
647
|
},
|
|
679
648
|
{
|
|
680
649
|
kind: "component",
|
|
681
|
-
type:
|
|
650
|
+
type: i2$1.MatChipRow,
|
|
682
651
|
selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]",
|
|
683
652
|
inputs: ["editable"],
|
|
684
653
|
outputs: ["edited"]
|
|
@@ -687,42 +656,32 @@ var BaseMatChipComponent = class BaseMatChipComponent {
|
|
|
687
656
|
kind: "directive",
|
|
688
657
|
type: MatLabel,
|
|
689
658
|
selector: "mat-label"
|
|
690
|
-
},
|
|
691
|
-
{
|
|
692
|
-
kind: "pipe",
|
|
693
|
-
type: AsyncPipe,
|
|
694
|
-
name: "async"
|
|
695
659
|
}
|
|
696
|
-
]
|
|
697
|
-
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
660
|
+
]
|
|
698
661
|
});
|
|
699
662
|
};
|
|
700
663
|
i0.ɵɵngDeclareClassMetadata({
|
|
701
664
|
minVersion: "12.0.0",
|
|
702
665
|
version: "22.2.2",
|
|
703
666
|
ngImport: i0,
|
|
704
|
-
type:
|
|
667
|
+
type: ChipInputAutocompleteComponent,
|
|
705
668
|
decorators: [{
|
|
706
669
|
type: Component,
|
|
707
670
|
args: [{
|
|
708
671
|
selector: "ngx-uik-chip-input-autocomplete",
|
|
709
|
-
changeDetection: ChangeDetectionStrategy.Eager,
|
|
710
672
|
imports: [
|
|
673
|
+
FormField,
|
|
711
674
|
MatFormField,
|
|
712
|
-
AsyncPipe,
|
|
713
|
-
FormsModule,
|
|
714
|
-
ReactiveFormsModule,
|
|
715
675
|
MatAutocompleteModule,
|
|
716
676
|
MatIcon,
|
|
717
677
|
MatOption,
|
|
718
678
|
MatChipsModule,
|
|
719
679
|
MatLabel
|
|
720
680
|
],
|
|
721
|
-
template: "<mat-form-field class=\"chip-list\" appearance=\"fill\">\n <mat-label>{{ title() }}</mat-label>\n <mat-chip-grid #chipList aria-label=\"'Выбор '+title()\">\n @for (item of selectedItems; track item) {\n <mat-chip-row color=\"primary\" (removed)=\"remove(item.value)\">\n {{ item.viewValue }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input\n #input\n [placeholder]=\"'Введите ' + title() + '...'\"\n [
|
|
681
|
+
template: "<mat-form-field class=\"chip-list\" appearance=\"fill\">\n <mat-label>{{ title() }}</mat-label>\n <mat-chip-grid #chipList aria-label=\"'Выбор '+title()\">\n @for (item of selectedItems(); track item.value) {\n <mat-chip-row color=\"primary\" (removed)=\"remove(item.value)\">\n {{ item.viewValue }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input\n #input\n [formField]=\"form\"\n [placeholder]=\"'Введите ' + title() + '...'\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (item of filteredItems(); track item.value) {\n <mat-option\n [value]=\"item.value\"\n [disabled]=\"selectedItemsInput().includes(item.value)\"\n >\n {{ item.viewValue }}\n </mat-option>\n }\n </mat-autocomplete>\n @if (selectedItems().length > 0) {\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"onCloseClick($event)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n</mat-form-field>\n",
|
|
722
682
|
styles: [".chip-list{width:100%}\n"]
|
|
723
683
|
}]
|
|
724
684
|
}],
|
|
725
|
-
ctorParameters: () => [],
|
|
726
685
|
propDecorators: {
|
|
727
686
|
items: [{
|
|
728
687
|
type: i0.Input,
|
|
@@ -751,10 +710,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
751
710
|
selectedItemsChange: [{
|
|
752
711
|
type: i0.Output,
|
|
753
712
|
args: ["selectedItemsChange"]
|
|
754
|
-
}],
|
|
755
|
-
input: [{
|
|
756
|
-
type: i0.ViewChild,
|
|
757
|
-
args: ["input", { isSignal: true }]
|
|
758
713
|
}]
|
|
759
714
|
}
|
|
760
715
|
});
|
|
@@ -972,17 +927,17 @@ var DateRangeInputComponent = class DateRangeInputComponent {
|
|
|
972
927
|
},
|
|
973
928
|
{
|
|
974
929
|
kind: "directive",
|
|
975
|
-
type: i1$
|
|
930
|
+
type: i1$2.DefaultValueAccessor,
|
|
976
931
|
selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]"
|
|
977
932
|
},
|
|
978
933
|
{
|
|
979
934
|
kind: "directive",
|
|
980
|
-
type: i1$
|
|
935
|
+
type: i1$2.NgControlStatus,
|
|
981
936
|
selector: "[formControlName],[ngModel],[formControl]"
|
|
982
937
|
},
|
|
983
938
|
{
|
|
984
939
|
kind: "directive",
|
|
985
|
-
type: i1$
|
|
940
|
+
type: i1$2.NgControlStatusGroup,
|
|
986
941
|
selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]"
|
|
987
942
|
},
|
|
988
943
|
{
|
|
@@ -991,7 +946,7 @@ var DateRangeInputComponent = class DateRangeInputComponent {
|
|
|
991
946
|
},
|
|
992
947
|
{
|
|
993
948
|
kind: "directive",
|
|
994
|
-
type: i1$
|
|
949
|
+
type: i1$2.FormGroupDirective,
|
|
995
950
|
selector: "[formGroup]",
|
|
996
951
|
inputs: ["formGroup"],
|
|
997
952
|
outputs: ["ngSubmit"],
|
|
@@ -999,7 +954,7 @@ var DateRangeInputComponent = class DateRangeInputComponent {
|
|
|
999
954
|
},
|
|
1000
955
|
{
|
|
1001
956
|
kind: "directive",
|
|
1002
|
-
type: i1$
|
|
957
|
+
type: i1$2.FormControlName,
|
|
1003
958
|
selector: "[formControlName]",
|
|
1004
959
|
inputs: [
|
|
1005
960
|
"formControlName",
|
|
@@ -3784,7 +3739,7 @@ var BaseSelectAutocompleteWithVsComponent = class BaseSelectAutocompleteWithVsCo
|
|
|
3784
3739
|
});
|
|
3785
3740
|
}
|
|
3786
3741
|
ngOnInit() {
|
|
3787
|
-
const subs = this.inputCtrl.valueChanges.pipe(startWith
|
|
3742
|
+
const subs = this.inputCtrl.valueChanges.pipe(startWith(""), debounceTime(500), distinctUntilChanged(), map$1((value) => {
|
|
3788
3743
|
console.log("typeof value =", typeof value);
|
|
3789
3744
|
if (typeof value === "undefined") this.setFileredItems(this.items());
|
|
3790
3745
|
else if (typeof value !== "object") {
|
|
@@ -3902,17 +3857,17 @@ var BaseSelectAutocompleteWithVsComponent = class BaseSelectAutocompleteWithVsCo
|
|
|
3902
3857
|
},
|
|
3903
3858
|
{
|
|
3904
3859
|
kind: "directive",
|
|
3905
|
-
type: i1$
|
|
3860
|
+
type: i1$2.DefaultValueAccessor,
|
|
3906
3861
|
selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]"
|
|
3907
3862
|
},
|
|
3908
3863
|
{
|
|
3909
3864
|
kind: "directive",
|
|
3910
|
-
type: i1$
|
|
3865
|
+
type: i1$2.NgControlStatus,
|
|
3911
3866
|
selector: "[formControlName],[ngModel],[formControl]"
|
|
3912
3867
|
},
|
|
3913
3868
|
{
|
|
3914
3869
|
kind: "directive",
|
|
3915
|
-
type: i1$
|
|
3870
|
+
type: i1$2.RequiredValidator,
|
|
3916
3871
|
selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",
|
|
3917
3872
|
inputs: ["required"]
|
|
3918
3873
|
},
|
|
@@ -3922,7 +3877,7 @@ var BaseSelectAutocompleteWithVsComponent = class BaseSelectAutocompleteWithVsCo
|
|
|
3922
3877
|
},
|
|
3923
3878
|
{
|
|
3924
3879
|
kind: "directive",
|
|
3925
|
-
type: i1$
|
|
3880
|
+
type: i1$2.FormControlDirective,
|
|
3926
3881
|
selector: "[formControl]",
|
|
3927
3882
|
inputs: [
|
|
3928
3883
|
"formControl",
|
|
@@ -3938,7 +3893,7 @@ var BaseSelectAutocompleteWithVsComponent = class BaseSelectAutocompleteWithVsCo
|
|
|
3938
3893
|
},
|
|
3939
3894
|
{
|
|
3940
3895
|
kind: "component",
|
|
3941
|
-
type:
|
|
3896
|
+
type: i1$1.MatAutocomplete,
|
|
3942
3897
|
selector: "mat-autocomplete",
|
|
3943
3898
|
inputs: [
|
|
3944
3899
|
"aria-label",
|
|
@@ -3962,7 +3917,7 @@ var BaseSelectAutocompleteWithVsComponent = class BaseSelectAutocompleteWithVsCo
|
|
|
3962
3917
|
},
|
|
3963
3918
|
{
|
|
3964
3919
|
kind: "component",
|
|
3965
|
-
type:
|
|
3920
|
+
type: i1$1.MatOption,
|
|
3966
3921
|
selector: "mat-option",
|
|
3967
3922
|
inputs: [
|
|
3968
3923
|
"value",
|
|
@@ -3974,7 +3929,7 @@ var BaseSelectAutocompleteWithVsComponent = class BaseSelectAutocompleteWithVsCo
|
|
|
3974
3929
|
},
|
|
3975
3930
|
{
|
|
3976
3931
|
kind: "directive",
|
|
3977
|
-
type:
|
|
3932
|
+
type: i1$1.MatAutocompleteTrigger,
|
|
3978
3933
|
selector: "input[matAutocomplete], textarea[matAutocomplete]",
|
|
3979
3934
|
inputs: [
|
|
3980
3935
|
"matAutocomplete",
|
|
@@ -4242,7 +4197,7 @@ var BaseSelectWithGroupComponent = class BaseSelectWithGroupComponent {
|
|
|
4242
4197
|
},
|
|
4243
4198
|
{
|
|
4244
4199
|
kind: "directive",
|
|
4245
|
-
type: i1$
|
|
4200
|
+
type: i1$2.NgControlStatus,
|
|
4246
4201
|
selector: "[formControlName],[ngModel],[formControl]"
|
|
4247
4202
|
},
|
|
4248
4203
|
{
|
|
@@ -4251,7 +4206,7 @@ var BaseSelectWithGroupComponent = class BaseSelectWithGroupComponent {
|
|
|
4251
4206
|
},
|
|
4252
4207
|
{
|
|
4253
4208
|
kind: "directive",
|
|
4254
|
-
type: i1$
|
|
4209
|
+
type: i1$2.FormControlDirective,
|
|
4255
4210
|
selector: "[formControl]",
|
|
4256
4211
|
inputs: [
|
|
4257
4212
|
"formControl",
|
|
@@ -4644,7 +4599,7 @@ var TableComponent = class TableComponent {
|
|
|
4644
4599
|
}
|
|
4645
4600
|
],
|
|
4646
4601
|
ngImport: i0,
|
|
4647
|
-
template: "<div class=\"component-container\">\r\n <div class=\"table-container\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"sortState().sortActive\"\r\n [matSortDirection]=\"sortState().sortDirection\"\r\n (matSortChange)=\"onSortEvent($event)\"\r\n matSortDisableClear\r\n >\r\n <!-- Выбор строки Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n @if (allowMultiSelect()) {\r\n <mat-checkbox\r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection().hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection().hasValue() && !isAllSelected()\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onRowClicked(row) : null\"\r\n [checked]=\"selection().isSelected(row)\"\r\n >\r\n </mat-checkbox>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n }\r\n </ng-container>\r\n\r\n @for (item of columnOptions(); track item.name) {\r\n <ng-container [matColumnDef]=\"item.name\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n mat-sort-header\r\n [disabled]=\"item.titleSortDisable\"\r\n >\r\n {{ item.title }}\r\n </th>\r\n @if (!item.format) {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n {{ element[item.name] }}\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footer) {\r\n <strong>{{ totals()[item.name] }}</strong>\r\n }\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"pre-wrap\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n class=\"pre-wrap\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n {{ element[item.name] }}\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"link\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n <a [href]=\"element[item.name]\" target=\"_blank\">{{\r\n element[item.name]\r\n }}</a>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"linkIcon\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @if (element[item.name]) {\r\n <a [href]=\"element[item.name]\" target=\"_blank\">\r\n @if (item.icon) {\r\n <mat-icon [class]=\"item.classList ? item.classList : ''\">{{\r\n item.icon\r\n }}</mat-icon>\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </a>\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"routerLink\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n <a [routerLink]=\"[element[item.name]]\">{{\r\n element[item.name]\r\n }}</a>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"routerLinkIcon\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @if (element[item.name]) {\r\n <a [routerLink]=\"[element[item.name]]\">\r\n @if (item.icon) {\r\n <mat-icon [class]=\"item.classList ? item.classList : ''\">{{\r\n item.icon\r\n }}</mat-icon>\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </a>\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"checkbox\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n <mat-checkbox\r\n [checked]=\"element[item.name] === 1\"\r\n [disabled]=\"true\"\r\n ></mat-checkbox>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"icon\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @if (item.icon) {\r\n <mat-icon [class]=\"item.classList ? item.classList : ''\">{{\r\n item.icon\r\n }}</mat-icon>\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"icons\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n >\r\n @if (item.icons) {\r\n <mat-icon\r\n [class]=\"\r\n item.classList ? item.classList[element[item.name]] : ''\r\n \"\r\n [matTooltip]=\"\r\n item.tooltips ? item.tooltips[element[item.name]] : ''\r\n \"\r\n >{{ item.icons[element[item.name]] }}</mat-icon\r\n >\r\n }\r\n @if (item.symbols) {\r\n <span\r\n [class]=\"\r\n item.classList ? item.classList[element[item.name]] : ''\r\n \"\r\n >{{ item.symbols[element[item.name]] }}</span\r\n >\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"actions\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n >\r\n @if (item.actions) {\r\n <div class=\"actions-container\">\r\n @for (action of item.actions; track action) {\r\n @if (\r\n !(action.hideFn ? action.hideFn(element) : action.hide)\r\n ) {\r\n <button\r\n mat-icon-button\r\n (click)=\"\r\n action.onClickFn ? action.onClickFn(element) : ''\r\n \"\r\n (mousedown)=\"\r\n action.onClickMiddleFn\r\n ? action.onClickMiddleFn($event, element)\r\n : ''\r\n \"\r\n [disabled]=\"\r\n action.disabledFn\r\n ? action.disabledFn(element)\r\n : action.disabled\r\n \"\r\n [matTooltip]=\"action.tooltip ? action.tooltip : ''\"\r\n >\r\n @if (action.icon) {\r\n <mat-icon\r\n [class]=\"action.classList ? action.classList : ''\"\r\n >{{ action.icon }}</mat-icon\r\n >\r\n }\r\n @if (action.symbol) {\r\n <span\r\n [class]=\"action.classList ? action.classList : ''\"\r\n >{{ action.symbol }}</span\r\n >\r\n }\r\n {{ action.title }}\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"image\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @if (element[item.name]) {\r\n <img\r\n [src]=\"element[item.name]\"\r\n [alt]=\"\r\n item.imageAlt && element[item.imageAlt]\r\n ? element[item.imageAlt]\r\n : ''\r\n \"\r\n [class]=\"item.classList ? item.classList : ''\"\r\n />\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n </ng-container>\r\n }\r\n\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n <td class=\"mat-cell\" colspan=\"9999\">Нет данных для отображения</td>\r\n </tr>\r\n\r\n <tr\r\n mat-header-row\r\n *matHeaderRowDef=\"displayedColumns(); sticky: true\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns();\"\r\n (click)=\"onRowClicked(row)\"\r\n (dblclick)=\"onRowDblClicked(row)\"\r\n class=\"element-row\"\r\n [class.selected-row]=\"selection().isSelected(row)\"\r\n ></tr>\r\n @if (footer()) {\r\n <tr\r\n mat-footer-row\r\n *matFooterRowDef=\"displayedColumns(); sticky: true\"\r\n ></tr>\r\n }\r\n </table>\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]=\"contextMenu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n ></div>\r\n <mat-menu #contextMenu=\"matMenu\">\r\n <ng-template matMenuContent let-id=\"id\">\r\n @for (menuItem of opt(); track menuItem) {\r\n @if (\r\n menuItem.title === \"-\" &&\r\n !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)\r\n ) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (\r\n menuItem.title !== \"-\" &&\r\n !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)\r\n ) {\r\n <button\r\n mat-menu-item\r\n (click)=\"\r\n menuItem.onClickFn ? menuItem.onClickFn(itemForMenu) : ''\r\n \"\r\n (mousedown)=\"\r\n menuItem.onClickMiddleFn\r\n ? menuItem.onClickMiddleFn($event, itemForMenu, menuTrigger)\r\n : ''\r\n \"\r\n [disabled]=\"\r\n menuItem.disabledFn\r\n ? menuItem.disabledFn(itemForMenu)\r\n : menuItem.disabled\r\n \"\r\n >\r\n @if (menuItem.icon) {\r\n <mat-icon\r\n [class]=\"menuItem.classList ? menuItem.classList : ''\"\r\n >{{ menuItem.icon }}</mat-icon\r\n >\r\n }\r\n @if (menuItem.symbol) {\r\n <span [class]=\"menuItem.classList ? menuItem.classList : ''\">{{\r\n menuItem.symbol\r\n }}</span>\r\n }\r\n {{ menuItem.title }}\r\n </button>\r\n }\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n\r\n <mat-paginator\r\n [length]=\"length()\"\r\n [pageIndex]=\"pageState().pageIndex || defaultPageIndex\"\r\n [pageSizeOptions]=\"[5, 10, 20, 50, 100]\"\r\n [pageSize]=\"pageState().pageSize || defaultPageSize\"\r\n (page)=\"onPageEvent($event)\"\r\n showFirstLastButtons\r\n itemsPerPageLabel=\"\"\r\n ></mat-paginator>\r\n</div>\r\n",
|
|
4602
|
+
template: "<div class=\"component-container\">\r\n <div class=\"table-container\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"sortState().sortActive\"\r\n [matSortDirection]=\"sortState().sortDirection\"\r\n (matSortChange)=\"onSortEvent($event)\"\r\n matSortDisableClear\r\n >\r\n <!-- Выбор строки Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n @if (allowMultiSelect()) {\r\n <mat-checkbox\r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection().hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection().hasValue() && !isAllSelected()\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onRowClicked(row) : null\"\r\n [checked]=\"selection().isSelected(row)\"\r\n >\r\n </mat-checkbox>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n }\r\n </ng-container>\r\n\r\n @for (item of columnOptions(); track item.name) {\r\n <ng-container [matColumnDef]=\"item.name\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n mat-sort-header\r\n [disabled]=\"item.titleSortDisable\"\r\n >\r\n {{ item.title }}\r\n </th>\r\n\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @switch (item.format) {\r\n @case (\"pre-wrap\") {\r\n {{ element[item.name] }}\r\n }\r\n @case (\"link\") {\r\n <a [href]=\"element[item.name]\" target=\"_blank\">{{\r\n element[item.name]\r\n }}</a>\r\n }\r\n @case (\"linkIcon\") {\r\n @if (element[item.name]) {\r\n <a [href]=\"element[item.name]\" target=\"_blank\">\r\n @if (item.icon) {\r\n <mat-icon\r\n [class]=\"item.classList ? item.classList : ''\"\r\n >{{ item.icon }}</mat-icon\r\n >\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </a>\r\n }\r\n }\r\n @case (\"routerLink\") {\r\n <a [routerLink]=\"[element[item.name]]\">{{\r\n element[item.name]\r\n }}</a>\r\n }\r\n @case (\"routerLinkIcon\") {\r\n @if (element[item.name]) {\r\n <a [routerLink]=\"[element[item.name]]\">\r\n @if (item.icon) {\r\n <mat-icon\r\n [class]=\"item.classList ? item.classList : ''\"\r\n >{{ item.icon }}</mat-icon\r\n >\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </a>\r\n }\r\n }\r\n @case (\"checkbox\") {\r\n <mat-checkbox\r\n [checked]=\"element[item.name] === 1\"\r\n [disabled]=\"true\"\r\n ></mat-checkbox>\r\n }\r\n @case (\"icon\") {\r\n @if (item.icon) {\r\n <mat-icon [class]=\"item.classList ? item.classList : ''\">{{\r\n item.icon\r\n }}</mat-icon>\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n }\r\n @case (\"icons\") {\r\n @if (item.icons) {\r\n <mat-icon\r\n [class]=\"\r\n item.classList ? item.classList[element[item.name]] : ''\r\n \"\r\n [matTooltip]=\"\r\n item.tooltips ? item.tooltips[element[item.name]] : ''\r\n \"\r\n >{{ item.icons[element[item.name]] }}</mat-icon\r\n >\r\n }\r\n @if (item.symbols) {\r\n <span\r\n [class]=\"\r\n item.classList ? item.classList[element[item.name]] : ''\r\n \"\r\n >{{ item.symbols[element[item.name]] }}</span\r\n >\r\n }\r\n }\r\n @case (\"actions\") {\r\n @if (item.actions) {\r\n <div class=\"actions-container\">\r\n @for (action of item.actions; track action) {\r\n @if (\r\n !(action.hideFn ? action.hideFn(element) : action.hide)\r\n ) {\r\n <button\r\n mat-icon-button\r\n (click)=\"\r\n action.onClickFn ? action.onClickFn(element) : ''\r\n \"\r\n (mousedown)=\"\r\n action.onClickMiddleFn\r\n ? action.onClickMiddleFn($event, element)\r\n : ''\r\n \"\r\n [disabled]=\"\r\n action.disabledFn\r\n ? action.disabledFn(element)\r\n : action.disabled\r\n \"\r\n [matTooltip]=\"action.tooltip ? action.tooltip : ''\"\r\n >\r\n @if (action.icon) {\r\n <mat-icon\r\n [class]=\"action.classList ? action.classList : ''\"\r\n >{{ action.icon }}</mat-icon\r\n >\r\n }\r\n @if (action.symbol) {\r\n <span\r\n [class]=\"action.classList ? action.classList : ''\"\r\n >{{ action.symbol }}</span\r\n >\r\n }\r\n {{ action.title }}\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n @case (\"image\") {\r\n @if (element[item.name]) {\r\n <img\r\n [src]=\"element[item.name]\"\r\n [alt]=\"\r\n item.imageAlt && element[item.imageAlt]\r\n ? element[item.imageAlt]\r\n : ''\r\n \"\r\n [class]=\"item.classList ? item.classList : ''\"\r\n />\r\n }\r\n }\r\n @default {\r\n {{ element[item.name] }}\r\n }\r\n }\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (footer()) {\r\n @if (!item.format && item.footer) {\r\n <strong>{{ totals()[item.name] }}</strong>\r\n }\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n <td class=\"mat-cell\" colspan=\"9999\">Нет данных для отображения</td>\r\n </tr>\r\n\r\n <tr\r\n mat-header-row\r\n *matHeaderRowDef=\"displayedColumns(); sticky: true\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns()\"\r\n (click)=\"onRowClicked(row)\"\r\n (dblclick)=\"onRowDblClicked(row)\"\r\n class=\"element-row\"\r\n [class.selected-row]=\"selection().isSelected(row)\"\r\n ></tr>\r\n @if (footer()) {\r\n <tr\r\n mat-footer-row\r\n *matFooterRowDef=\"displayedColumns(); sticky: true\"\r\n ></tr>\r\n }\r\n </table>\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]=\"contextMenu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n ></div>\r\n <mat-menu #contextMenu=\"matMenu\">\r\n <ng-template matMenuContent let-id=\"id\">\r\n @for (menuItem of opt(); track menuItem) {\r\n @if (\r\n menuItem.title === \"-\" &&\r\n !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)\r\n ) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (\r\n menuItem.title !== \"-\" &&\r\n !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)\r\n ) {\r\n <button\r\n mat-menu-item\r\n (click)=\"\r\n menuItem.onClickFn ? menuItem.onClickFn(itemForMenu) : ''\r\n \"\r\n (mousedown)=\"\r\n menuItem.onClickMiddleFn\r\n ? menuItem.onClickMiddleFn($event, itemForMenu, menuTrigger)\r\n : ''\r\n \"\r\n [disabled]=\"\r\n menuItem.disabledFn\r\n ? menuItem.disabledFn(itemForMenu)\r\n : menuItem.disabled\r\n \"\r\n >\r\n @if (menuItem.icon) {\r\n <mat-icon\r\n [class]=\"menuItem.classList ? menuItem.classList : ''\"\r\n >{{ menuItem.icon }}</mat-icon\r\n >\r\n }\r\n @if (menuItem.symbol) {\r\n <span [class]=\"menuItem.classList ? menuItem.classList : ''\">{{\r\n menuItem.symbol\r\n }}</span>\r\n }\r\n {{ menuItem.title }}\r\n </button>\r\n }\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n\r\n <mat-paginator\r\n [length]=\"length()\"\r\n [pageIndex]=\"pageState().pageIndex || defaultPageIndex\"\r\n [pageSizeOptions]=\"[5, 10, 20, 50, 100]\"\r\n [pageSize]=\"pageState().pageSize || defaultPageSize\"\r\n (page)=\"onPageEvent($event)\"\r\n showFirstLastButtons\r\n itemsPerPageLabel=\"\"\r\n ></mat-paginator>\r\n</div>\r\n",
|
|
4648
4603
|
styles: [".component-container{display:flex;flex-direction:column;height:100%}.table-container{display:flex;flex-direction:column;justify-content:space-between;flex:auto;margin:0 20px;overflow:auto;height:400px}.center{position:absolute;inset:0 0 56px;background:#00000026;z-index:1;display:flex;align-items:center;justify-content:center}.mat-column-select{overflow:initial}tr.mat-footer-row{font-weight:700;height:56px}.mat-table{overflow-x:scroll}.mat-cell,.mat-header-cell{word-wrap:initial;display:table-cell;padding:0 10px;line-break:unset;white-space:nowrap;overflow:hidden;vertical-align:middle}.mat-row,.mat-header-row{display:table-row}tr.element-row:not(.selected-row):hover{background:#f5f5f5}tr.element-row:not(.selected-row):active{background:#efefef}.selected-row{background-color:#eee}.fact-done-row{background-color:#eefdec}a,a:visited,a:hover,a:active{color:inherit}.pre-wrap{white-space:pre-wrap}.actions-container{display:flex;column-gap:5px}\n"],
|
|
4649
4604
|
dependencies: [
|
|
4650
4605
|
{
|
|
@@ -4964,7 +4919,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4964
4919
|
provide: MatPaginatorIntl,
|
|
4965
4920
|
useFactory: getRuPaginatorIntl
|
|
4966
4921
|
}],
|
|
4967
|
-
template: "<div class=\"component-container\">\r\n <div class=\"table-container\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"sortState().sortActive\"\r\n [matSortDirection]=\"sortState().sortDirection\"\r\n (matSortChange)=\"onSortEvent($event)\"\r\n matSortDisableClear\r\n >\r\n <!-- Выбор строки Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n @if (allowMultiSelect()) {\r\n <mat-checkbox\r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection().hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection().hasValue() && !isAllSelected()\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onRowClicked(row) : null\"\r\n [checked]=\"selection().isSelected(row)\"\r\n >\r\n </mat-checkbox>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n }\r\n </ng-container>\r\n\r\n @for (item of columnOptions(); track item.name) {\r\n <ng-container [matColumnDef]=\"item.name\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n mat-sort-header\r\n [disabled]=\"item.titleSortDisable\"\r\n >\r\n {{ item.title }}\r\n </th>\r\n @if (!item.format) {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n {{ element[item.name] }}\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footer) {\r\n <strong>{{ totals()[item.name] }}</strong>\r\n }\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"pre-wrap\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n class=\"pre-wrap\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n {{ element[item.name] }}\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"link\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n <a [href]=\"element[item.name]\" target=\"_blank\">{{\r\n element[item.name]\r\n }}</a>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"linkIcon\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @if (element[item.name]) {\r\n <a [href]=\"element[item.name]\" target=\"_blank\">\r\n @if (item.icon) {\r\n <mat-icon [class]=\"item.classList ? item.classList : ''\">{{\r\n item.icon\r\n }}</mat-icon>\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </a>\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"routerLink\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n <a [routerLink]=\"[element[item.name]]\">{{\r\n element[item.name]\r\n }}</a>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"routerLinkIcon\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @if (element[item.name]) {\r\n <a [routerLink]=\"[element[item.name]]\">\r\n @if (item.icon) {\r\n <mat-icon [class]=\"item.classList ? item.classList : ''\">{{\r\n item.icon\r\n }}</mat-icon>\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </a>\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"checkbox\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n <mat-checkbox\r\n [checked]=\"element[item.name] === 1\"\r\n [disabled]=\"true\"\r\n ></mat-checkbox>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"icon\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @if (item.icon) {\r\n <mat-icon [class]=\"item.classList ? item.classList : ''\">{{\r\n item.icon\r\n }}</mat-icon>\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"icons\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n >\r\n @if (item.icons) {\r\n <mat-icon\r\n [class]=\"\r\n item.classList ? item.classList[element[item.name]] : ''\r\n \"\r\n [matTooltip]=\"\r\n item.tooltips ? item.tooltips[element[item.name]] : ''\r\n \"\r\n >{{ item.icons[element[item.name]] }}</mat-icon\r\n >\r\n }\r\n @if (item.symbols) {\r\n <span\r\n [class]=\"\r\n item.classList ? item.classList[element[item.name]] : ''\r\n \"\r\n >{{ item.symbols[element[item.name]] }}</span\r\n >\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"actions\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n >\r\n @if (item.actions) {\r\n <div class=\"actions-container\">\r\n @for (action of item.actions; track action) {\r\n @if (\r\n !(action.hideFn ? action.hideFn(element) : action.hide)\r\n ) {\r\n <button\r\n mat-icon-button\r\n (click)=\"\r\n action.onClickFn ? action.onClickFn(element) : ''\r\n \"\r\n (mousedown)=\"\r\n action.onClickMiddleFn\r\n ? action.onClickMiddleFn($event, element)\r\n : ''\r\n \"\r\n [disabled]=\"\r\n action.disabledFn\r\n ? action.disabledFn(element)\r\n : action.disabled\r\n \"\r\n [matTooltip]=\"action.tooltip ? action.tooltip : ''\"\r\n >\r\n @if (action.icon) {\r\n <mat-icon\r\n [class]=\"action.classList ? action.classList : ''\"\r\n >{{ action.icon }}</mat-icon\r\n >\r\n }\r\n @if (action.symbol) {\r\n <span\r\n [class]=\"action.classList ? action.classList : ''\"\r\n >{{ action.symbol }}</span\r\n >\r\n }\r\n {{ action.title }}\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n @if (item.format === \"image\") {\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @if (element[item.name]) {\r\n <img\r\n [src]=\"element[item.name]\"\r\n [alt]=\"\r\n item.imageAlt && element[item.imageAlt]\r\n ? element[item.imageAlt]\r\n : ''\r\n \"\r\n [class]=\"item.classList ? item.classList : ''\"\r\n />\r\n }\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n </td>\r\n }\r\n }\r\n </ng-container>\r\n }\r\n\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n <td class=\"mat-cell\" colspan=\"9999\">Нет данных для отображения</td>\r\n </tr>\r\n\r\n <tr\r\n mat-header-row\r\n *matHeaderRowDef=\"displayedColumns(); sticky: true\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns();\"\r\n (click)=\"onRowClicked(row)\"\r\n (dblclick)=\"onRowDblClicked(row)\"\r\n class=\"element-row\"\r\n [class.selected-row]=\"selection().isSelected(row)\"\r\n ></tr>\r\n @if (footer()) {\r\n <tr\r\n mat-footer-row\r\n *matFooterRowDef=\"displayedColumns(); sticky: true\"\r\n ></tr>\r\n }\r\n </table>\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]=\"contextMenu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n ></div>\r\n <mat-menu #contextMenu=\"matMenu\">\r\n <ng-template matMenuContent let-id=\"id\">\r\n @for (menuItem of opt(); track menuItem) {\r\n @if (\r\n menuItem.title === \"-\" &&\r\n !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)\r\n ) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (\r\n menuItem.title !== \"-\" &&\r\n !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)\r\n ) {\r\n <button\r\n mat-menu-item\r\n (click)=\"\r\n menuItem.onClickFn ? menuItem.onClickFn(itemForMenu) : ''\r\n \"\r\n (mousedown)=\"\r\n menuItem.onClickMiddleFn\r\n ? menuItem.onClickMiddleFn($event, itemForMenu, menuTrigger)\r\n : ''\r\n \"\r\n [disabled]=\"\r\n menuItem.disabledFn\r\n ? menuItem.disabledFn(itemForMenu)\r\n : menuItem.disabled\r\n \"\r\n >\r\n @if (menuItem.icon) {\r\n <mat-icon\r\n [class]=\"menuItem.classList ? menuItem.classList : ''\"\r\n >{{ menuItem.icon }}</mat-icon\r\n >\r\n }\r\n @if (menuItem.symbol) {\r\n <span [class]=\"menuItem.classList ? menuItem.classList : ''\">{{\r\n menuItem.symbol\r\n }}</span>\r\n }\r\n {{ menuItem.title }}\r\n </button>\r\n }\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n\r\n <mat-paginator\r\n [length]=\"length()\"\r\n [pageIndex]=\"pageState().pageIndex || defaultPageIndex\"\r\n [pageSizeOptions]=\"[5, 10, 20, 50, 100]\"\r\n [pageSize]=\"pageState().pageSize || defaultPageSize\"\r\n (page)=\"onPageEvent($event)\"\r\n showFirstLastButtons\r\n itemsPerPageLabel=\"\"\r\n ></mat-paginator>\r\n</div>\r\n",
|
|
4922
|
+
template: "<div class=\"component-container\">\r\n <div class=\"table-container\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"sortState().sortActive\"\r\n [matSortDirection]=\"sortState().sortDirection\"\r\n (matSortChange)=\"onSortEvent($event)\"\r\n matSortDisableClear\r\n >\r\n <!-- Выбор строки Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n @if (allowMultiSelect()) {\r\n <mat-checkbox\r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection().hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection().hasValue() && !isAllSelected()\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onRowClicked(row) : null\"\r\n [checked]=\"selection().isSelected(row)\"\r\n >\r\n </mat-checkbox>\r\n </td>\r\n @if (footer()) {\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n }\r\n </ng-container>\r\n\r\n @for (item of columnOptions(); track item.name) {\r\n <ng-container [matColumnDef]=\"item.name\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n mat-sort-header\r\n [disabled]=\"item.titleSortDisable\"\r\n >\r\n {{ item.title }}\r\n </th>\r\n\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n (contextmenu)=\"onContextMenu($event, element)\"\r\n [matTooltip]=\"item.tooltip ?? ''\"\r\n >\r\n @switch (item.format) {\r\n @case (\"pre-wrap\") {\r\n {{ element[item.name] }}\r\n }\r\n @case (\"link\") {\r\n <a [href]=\"element[item.name]\" target=\"_blank\">{{\r\n element[item.name]\r\n }}</a>\r\n }\r\n @case (\"linkIcon\") {\r\n @if (element[item.name]) {\r\n <a [href]=\"element[item.name]\" target=\"_blank\">\r\n @if (item.icon) {\r\n <mat-icon\r\n [class]=\"item.classList ? item.classList : ''\"\r\n >{{ item.icon }}</mat-icon\r\n >\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </a>\r\n }\r\n }\r\n @case (\"routerLink\") {\r\n <a [routerLink]=\"[element[item.name]]\">{{\r\n element[item.name]\r\n }}</a>\r\n }\r\n @case (\"routerLinkIcon\") {\r\n @if (element[item.name]) {\r\n <a [routerLink]=\"[element[item.name]]\">\r\n @if (item.icon) {\r\n <mat-icon\r\n [class]=\"item.classList ? item.classList : ''\"\r\n >{{ item.icon }}</mat-icon\r\n >\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n </a>\r\n }\r\n }\r\n @case (\"checkbox\") {\r\n <mat-checkbox\r\n [checked]=\"element[item.name] === 1\"\r\n [disabled]=\"true\"\r\n ></mat-checkbox>\r\n }\r\n @case (\"icon\") {\r\n @if (item.icon) {\r\n <mat-icon [class]=\"item.classList ? item.classList : ''\">{{\r\n item.icon\r\n }}</mat-icon>\r\n }\r\n @if (item.symbol) {\r\n <span [class]=\"item.classList ? item.classList : ''\">{{\r\n item.symbol\r\n }}</span>\r\n }\r\n }\r\n @case (\"icons\") {\r\n @if (item.icons) {\r\n <mat-icon\r\n [class]=\"\r\n item.classList ? item.classList[element[item.name]] : ''\r\n \"\r\n [matTooltip]=\"\r\n item.tooltips ? item.tooltips[element[item.name]] : ''\r\n \"\r\n >{{ item.icons[element[item.name]] }}</mat-icon\r\n >\r\n }\r\n @if (item.symbols) {\r\n <span\r\n [class]=\"\r\n item.classList ? item.classList[element[item.name]] : ''\r\n \"\r\n >{{ item.symbols[element[item.name]] }}</span\r\n >\r\n }\r\n }\r\n @case (\"actions\") {\r\n @if (item.actions) {\r\n <div class=\"actions-container\">\r\n @for (action of item.actions; track action) {\r\n @if (\r\n !(action.hideFn ? action.hideFn(element) : action.hide)\r\n ) {\r\n <button\r\n mat-icon-button\r\n (click)=\"\r\n action.onClickFn ? action.onClickFn(element) : ''\r\n \"\r\n (mousedown)=\"\r\n action.onClickMiddleFn\r\n ? action.onClickMiddleFn($event, element)\r\n : ''\r\n \"\r\n [disabled]=\"\r\n action.disabledFn\r\n ? action.disabledFn(element)\r\n : action.disabled\r\n \"\r\n [matTooltip]=\"action.tooltip ? action.tooltip : ''\"\r\n >\r\n @if (action.icon) {\r\n <mat-icon\r\n [class]=\"action.classList ? action.classList : ''\"\r\n >{{ action.icon }}</mat-icon\r\n >\r\n }\r\n @if (action.symbol) {\r\n <span\r\n [class]=\"action.classList ? action.classList : ''\"\r\n >{{ action.symbol }}</span\r\n >\r\n }\r\n {{ action.title }}\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n @case (\"image\") {\r\n @if (element[item.name]) {\r\n <img\r\n [src]=\"element[item.name]\"\r\n [alt]=\"\r\n item.imageAlt && element[item.imageAlt]\r\n ? element[item.imageAlt]\r\n : ''\r\n \"\r\n [class]=\"item.classList ? item.classList : ''\"\r\n />\r\n }\r\n }\r\n @default {\r\n {{ element[item.name] }}\r\n }\r\n }\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (footer()) {\r\n @if (!item.format && item.footer) {\r\n <strong>{{ totals()[item.name] }}</strong>\r\n }\r\n @if (item.footerTitle) {\r\n <strong>{{ item.footerTitle }}</strong>\r\n }\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n <td class=\"mat-cell\" colspan=\"9999\">Нет данных для отображения</td>\r\n </tr>\r\n\r\n <tr\r\n mat-header-row\r\n *matHeaderRowDef=\"displayedColumns(); sticky: true\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns()\"\r\n (click)=\"onRowClicked(row)\"\r\n (dblclick)=\"onRowDblClicked(row)\"\r\n class=\"element-row\"\r\n [class.selected-row]=\"selection().isSelected(row)\"\r\n ></tr>\r\n @if (footer()) {\r\n <tr\r\n mat-footer-row\r\n *matFooterRowDef=\"displayedColumns(); sticky: true\"\r\n ></tr>\r\n }\r\n </table>\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]=\"contextMenu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n ></div>\r\n <mat-menu #contextMenu=\"matMenu\">\r\n <ng-template matMenuContent let-id=\"id\">\r\n @for (menuItem of opt(); track menuItem) {\r\n @if (\r\n menuItem.title === \"-\" &&\r\n !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)\r\n ) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (\r\n menuItem.title !== \"-\" &&\r\n !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)\r\n ) {\r\n <button\r\n mat-menu-item\r\n (click)=\"\r\n menuItem.onClickFn ? menuItem.onClickFn(itemForMenu) : ''\r\n \"\r\n (mousedown)=\"\r\n menuItem.onClickMiddleFn\r\n ? menuItem.onClickMiddleFn($event, itemForMenu, menuTrigger)\r\n : ''\r\n \"\r\n [disabled]=\"\r\n menuItem.disabledFn\r\n ? menuItem.disabledFn(itemForMenu)\r\n : menuItem.disabled\r\n \"\r\n >\r\n @if (menuItem.icon) {\r\n <mat-icon\r\n [class]=\"menuItem.classList ? menuItem.classList : ''\"\r\n >{{ menuItem.icon }}</mat-icon\r\n >\r\n }\r\n @if (menuItem.symbol) {\r\n <span [class]=\"menuItem.classList ? menuItem.classList : ''\">{{\r\n menuItem.symbol\r\n }}</span>\r\n }\r\n {{ menuItem.title }}\r\n </button>\r\n }\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n\r\n <mat-paginator\r\n [length]=\"length()\"\r\n [pageIndex]=\"pageState().pageIndex || defaultPageIndex\"\r\n [pageSizeOptions]=\"[5, 10, 20, 50, 100]\"\r\n [pageSize]=\"pageState().pageSize || defaultPageSize\"\r\n (page)=\"onPageEvent($event)\"\r\n showFirstLastButtons\r\n itemsPerPageLabel=\"\"\r\n ></mat-paginator>\r\n</div>\r\n",
|
|
4968
4923
|
styles: [".component-container{display:flex;flex-direction:column;height:100%}.table-container{display:flex;flex-direction:column;justify-content:space-between;flex:auto;margin:0 20px;overflow:auto;height:400px}.center{position:absolute;inset:0 0 56px;background:#00000026;z-index:1;display:flex;align-items:center;justify-content:center}.mat-column-select{overflow:initial}tr.mat-footer-row{font-weight:700;height:56px}.mat-table{overflow-x:scroll}.mat-cell,.mat-header-cell{word-wrap:initial;display:table-cell;padding:0 10px;line-break:unset;white-space:nowrap;overflow:hidden;vertical-align:middle}.mat-row,.mat-header-row{display:table-row}tr.element-row:not(.selected-row):hover{background:#f5f5f5}tr.element-row:not(.selected-row):active{background:#efefef}.selected-row{background-color:#eee}.fact-done-row{background-color:#eefdec}a,a:visited,a:hover,a:active{color:inherit}.pre-wrap{white-space:pre-wrap}.actions-container{display:flex;column-gap:5px}\n"]
|
|
4969
4924
|
}]
|
|
4970
4925
|
}],
|
|
@@ -5668,6 +5623,6 @@ const secUserSchema = z.object({
|
|
|
5668
5623
|
tabnum: z.number().default(0),
|
|
5669
5624
|
userView: secUserViewSchema.optional().nullable()
|
|
5670
5625
|
});
|
|
5671
|
-
export { Action, AvatarService, BaseEditClass, BaseFilterClass,
|
|
5626
|
+
export { Action, AvatarService, BaseEditClass, BaseFilterClass, BaseNavBarMenuClass, BasePageClass, BaseSchema, BaseSelectAutocompleteWithVsComponent, BaseSelectWithGroupComponent, BaseServiceClass, BaseSignalEditClass, BaseSignalFilterClass, BaseSignalPageClass, BaseSignalServiceClass, BaseToolbarComponent, ChipInputAutocompleteComponent, CustomDateAdapter, DateRangeInputComponent, DialogAction, DialogComponent, DisableIfRoleDirective, EmptyComponent, EntityAction, ExportService, HideIfForbiddenRoleDirective, LOGGER_CONFIG, LoaderService, LocalStorageService, LoggerService, LoginPageComponent, MY_NATIVE_FORMATS, NavBarComponent, NotFoundComponent, PageStateSchema, ProgressSpinnerComponent, SafePipe, SecureImageService, SetValueDirective, SortDirectionSchema, SortStateSchema, SseService, TableComponent, TableStateSchema, TimePipe, TruncatePipe, authGuard, dateFormat, provideLogger, redirectGuard, roleGuard, secUserSchema };
|
|
5672
5627
|
|
|
5673
5628
|
//# sourceMappingURL=kuzntsv-uikit-ui.mjs.map
|