@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, startWith, switchMap, take, tap } from "rxjs";
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$1 from "@angular/forms";
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 { AsyncPipe } from "@angular/common";
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 i3$2 from "@angular/material/chips";
19
+ import * as i2$1 from "@angular/material/chips";
21
20
  import { MatChipsModule } from "@angular/material/chips";
22
- import { catchError, debounceTime, distinctUntilChanged, map as map$1, startWith as startWith$1 } from "rxjs/operators";
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$1.ɵNgNoValidate,
125
+ type: i1$2.ɵNgNoValidate,
126
126
  selector: "form:not([ngNoForm]):not([ngNativeValidate])"
127
127
  },
128
128
  {
129
129
  kind: "directive",
130
- type: i1$1.DefaultValueAccessor,
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$1.NgControlStatus,
135
+ type: i1$2.NgControlStatus,
136
136
  selector: "[formControlName],[ngModel],[formControl]"
137
137
  },
138
138
  {
139
139
  kind: "directive",
140
- type: i1$1.NgControlStatusGroup,
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$1.PatternValidator,
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$1.FormGroupDirective,
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$1.FormControlName,
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 BaseMatChipComponent = class BaseMatChipComponent {
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
- input = viewChild("input", ...ngDevMode ? [{ debugName: "input" }] : /* istanbul ignore next */ []);
443
+ formModel = signal("", ...ngDevMode ? [{ debugName: "formModel" }] : /* istanbul ignore next */ []);
444
+ form = form(this.formModel);
444
445
  separatorKeysCodes = [ENTER, COMMA];
445
- inputCtrl = new FormControl();
446
- filteredItems$;
447
- selectedItems = [];
448
- constructor() {
449
- effect(() => {
450
- if (this.items().length > 0) this.filteredItems$ = this.inputCtrl.valueChanges.pipe(startWith(null), map$1((item) => item ? this._filter(item) : this.items().slice()));
451
- });
452
- effect(() => {
453
- if (this.selectedItemsInput()) this.selectedItems = this.items().filter((s) => this.selectedItemsInput().includes(s.value));
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 = [...this.selectedItems];
458
- const index = this.selectedItems.map((i) => i.value).indexOf(value);
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
- this.selectedItems = [...this.selectedItems];
466
- const item = this.items().find((s) => s.value == event.option.value);
467
- if (item) this.selectedItems.push(item);
468
- this.selectedItemsChange.emit(this.selectedItems.map((i) => i.value));
469
- const inputValue = this.input();
470
- if (inputValue) inputValue.nativeElement.value = "";
471
- this.inputCtrl.setValue(null);
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: BaseMatChipComponent,
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: BaseMatChipComponent,
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 [formControl]=\"inputCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (item of filteredItems$ | async; track item) {\n <mat-option\n [value]=\"item.value\"\n [disabled]=\"\n $safeNavigationMigration(selectedItemsInput()?.includes(item.value))\n \"\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",
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: i2$1.MatAutocomplete,
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: i2$1.MatOption,
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: i2$1.MatAutocompleteTrigger,
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: i3$2.MatChipGrid,
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: i3$2.MatChipInput,
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: i3$2.MatChipRemove,
645
+ type: i2$1.MatChipRemove,
677
646
  selector: "[matChipRemove]"
678
647
  },
679
648
  {
680
649
  kind: "component",
681
- type: i3$2.MatChipRow,
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: BaseMatChipComponent,
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 [formControl]=\"inputCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (item of filteredItems$ | async; track item) {\n <mat-option\n [value]=\"item.value\"\n [disabled]=\"\n $safeNavigationMigration(selectedItemsInput()?.includes(item.value))\n \"\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",
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$1.DefaultValueAccessor,
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$1.NgControlStatus,
935
+ type: i1$2.NgControlStatus,
981
936
  selector: "[formControlName],[ngModel],[formControl]"
982
937
  },
983
938
  {
984
939
  kind: "directive",
985
- type: i1$1.NgControlStatusGroup,
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$1.FormGroupDirective,
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$1.FormControlName,
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$1(""), debounceTime(500), distinctUntilChanged(), map$1((value) => {
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$1.DefaultValueAccessor,
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$1.NgControlStatus,
3865
+ type: i1$2.NgControlStatus,
3911
3866
  selector: "[formControlName],[ngModel],[formControl]"
3912
3867
  },
3913
3868
  {
3914
3869
  kind: "directive",
3915
- type: i1$1.RequiredValidator,
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$1.FormControlDirective,
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: i2$1.MatAutocomplete,
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: i2$1.MatOption,
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: i2$1.MatAutocompleteTrigger,
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$1.NgControlStatus,
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$1.FormControlDirective,
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, BaseMatChipComponent, BaseNavBarMenuClass, BasePageClass, BaseSchema, BaseSelectAutocompleteWithVsComponent, BaseSelectWithGroupComponent, BaseServiceClass, BaseSignalEditClass, BaseSignalFilterClass, BaseSignalPageClass, BaseSignalServiceClass, BaseToolbarComponent, 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 };
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