@kuzntsv/uikit 1.0.25 → 1.0.27

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,917 +1,1251 @@
1
- import * as _angular_core from '@angular/core';
2
- import { OnInit, AfterViewInit, OnDestroy, InjectionToken, EnvironmentProviders, PipeTransform, ElementRef } from '@angular/core';
3
- import * as _kuzntsv_uikit from '@kuzntsv/uikit';
4
- import { RoleService, NotificationService } from '@kuzntsv/uikit';
5
- import { MatMenuTrigger } from '@angular/material/menu';
6
- import { FormGroup, FormControl } from '@angular/forms';
7
- import { MatDialogRef, MatDialog } from '@angular/material/dialog';
8
- import { Observable, Subscription, Subject } from 'rxjs';
9
- import { Router, CanActivateFn } from '@angular/router';
10
- import { HttpClient, HttpParams } from '@angular/common/http';
11
- import { SafeUrl } from '@angular/platform-browser';
12
- import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
13
- import { SelectionModel } from '@angular/cdk/collections';
14
- import { MatPaginator } from '@angular/material/paginator';
15
- import { MatSort } from '@angular/material/sort';
16
- import { MatTableDataSource } from '@angular/material/table';
17
-
1
+ import * as i0 from "@angular/core";
2
+ import { AfterViewInit, ElementRef, EnvironmentProviders, InjectionToken, OnDestroy, OnInit, PipeTransform } from "@angular/core";
3
+ import { NotificationService, RoleService } from "@kuzntsv/uikit";
4
+ import { Observable, Subject, Subscription } from "rxjs";
5
+ import { SelectionModel } from "@angular/cdk/collections";
6
+ import { MatMenuTrigger } from "@angular/material/menu";
7
+ import { MatPaginator } from "@angular/material/paginator";
8
+ import { MatSort } from "@angular/material/sort";
9
+ import { MatTableDataSource } from "@angular/material/table";
10
+ import { FormControl, FormGroup } from "@angular/forms";
11
+ import { MatDialog, MatDialogRef } from "@angular/material/dialog";
12
+ import { SafeUrl } from "@angular/platform-browser";
13
+ import { CanActivateFn, Router } from "@angular/router";
14
+ import { HttpClient, HttpContext, HttpParams } from "@angular/common/http";
15
+ import { MatAutocompleteSelectedEvent } from "@angular/material/autocomplete";
16
+ import { NativeDateAdapter } from "@angular/material/core";
18
17
  interface Authenticate {
19
- username: string;
20
- password: string;
21
- }
22
-
23
- declare class LoginPageComponent implements OnInit {
24
- pending: boolean;
25
- error: string;
26
- isKiosk: boolean;
27
- /**
28
- * Идентификатор АС получаем автоматически из ActivatedRoute Data!
29
- * (Для этого в настройках роутера должен быть включен withComponentInputBinding())
30
- */
31
- idCas: _angular_core.InputSignal<number>;
32
- private readonly authService;
33
- private readonly router;
34
- private readonly loaderService;
35
- private readonly notificationService;
36
- ngOnInit(): void;
37
- onSubmit($event: Authenticate): void;
38
- onSubmitPermit($event: string): void;
39
- private handleSuccessLogin;
40
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginPageComponent, never>;
41
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoginPageComponent, "ngx-uik-login-page", never, { "idCas": { "alias": "idCas"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
42
- }
43
-
44
- type ObjectKeys<T extends string | number | symbol = string, K = any> = {
45
- [key in T]: K;
46
- };
47
- type fnType<T> = ((data: T, extraData?: any) => void) | undefined;
48
- type fnCbType<T> = ((callback: () => void, data: T, extraData?: any) => void) | undefined;
49
- type SortDirection = 'asc' | 'desc' | '';
50
- type fnGetDataType<T> = () => Observable<T[]>;
51
- type fnGetCountType<T> = () => Observable<number>;
52
- type fnMapEntityType<T> = () => ((item: T) => T);
53
-
54
- interface ISortState {
55
- sortActive: string;
56
- sortDirection: SortDirection;
57
- }
58
- interface IPageState {
59
- pageIndex: number;
60
- pageSize: number;
61
- }
62
- interface ITableState extends ISortState, IPageState {
63
- }
64
-
18
+ username: string;
19
+ password: string;
20
+ }
21
+ export declare class LoginPageComponent implements OnInit {
22
+ pending: boolean;
23
+ error: string;
24
+ isKiosk: boolean;
25
+ /**
26
+ * Идентификатор АС получаем автоматически из ActivatedRoute Data!
27
+ * (Для этого в настройках роутера должен быть включен withComponentInputBinding())
28
+ */
29
+ idCas: import("@angular/core").InputSignal<number>;
30
+ private readonly authService;
31
+ private readonly router;
32
+ private readonly loaderService;
33
+ private readonly notificationService;
34
+ ngOnInit(): void;
35
+ onSubmit($event: Authenticate): void;
36
+ onSubmitPermit($event: string): void;
37
+ private handleSuccessLogin;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoginPageComponent, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoginPageComponent, "ngx-uik-login-page", never, {
40
+ "idCas": {
41
+ "alias": "idCas";
42
+ "required": false;
43
+ "isSignal": true;
44
+ };
45
+ }, {}, never, never, true, never>;
46
+ }
47
+ export type ObjectKeys<T extends string | number | symbol = string, K = any> = { [key in T]: K; };
48
+ export type fnType<T> = ((data: T, extraData?: any) => void) | undefined;
49
+ export type fnCbType<T> = ((callback: () => void, data: T, extraData?: any) => void) | undefined;
50
+ export type SortDirection = 'asc' | 'desc' | '';
51
+ export type fnGetDataType<T> = () => Observable<T[]>;
52
+ export type fnGetCountType<T> = () => Observable<number>;
53
+ export type fnMapEntityType<T> = () => ((item: T) => T);
54
+ export interface ISortState {
55
+ sortActive: string;
56
+ sortDirection: SortDirection;
57
+ }
58
+ export interface IPageState {
59
+ pageIndex: number;
60
+ pageSize: number;
61
+ }
62
+ export interface ITableState extends ISortState, IPageState {}
65
63
  /** Настройки действий в колонке таблицы. */
66
64
  interface IColumnActionOptions<T> {
67
- /** Заголовок. */
68
- title?: string;
69
- /** Подсказка. */
70
- tooltip?: string;
71
- /** Функция обработчик нажатия. */
72
- onClickFn?: (item: T | undefined) => void;
73
- /** Функция обработчик нажатия средней кнопкой мыши. */
74
- onClickMiddleFn?: ($event: MouseEvent, item: T | undefined) => void;
75
- /** Иконка. */
76
- icon?: string;
77
- /** Символ (Material Symbols). */
78
- symbol?: string;
79
- /** Доступность. */
80
- disabled?: boolean;
81
- /** Функция определяющая доступность. */
82
- disabledFn?: (item: T | undefined) => boolean;
83
- /** Видимость. */
84
- hide?: boolean;
85
- /** Функция определяющая видимость. */
86
- hideFn?: (item: T | undefined) => boolean;
87
- /** Классы css*/
88
- classList?: string[];
89
- }
90
-
65
+ /** Заголовок. */
66
+ title?: string;
67
+ /** Подсказка. */
68
+ tooltip?: string;
69
+ /** Функция обработчик нажатия. */
70
+ onClickFn?: (item: T | undefined) => void;
71
+ /** Функция обработчик нажатия средней кнопкой мыши. */
72
+ onClickMiddleFn?: ($event: MouseEvent, item: T | undefined) => void;
73
+ /** Иконка. */
74
+ icon?: string;
75
+ /** Символ (Material Symbols). */
76
+ symbol?: string;
77
+ /** Доступность. */
78
+ disabled?: boolean;
79
+ /** Функция определяющая доступность. */
80
+ disabledFn?: (item: T | undefined) => boolean;
81
+ /** Видимость. */
82
+ hide?: boolean;
83
+ /** Функция определяющая видимость. */
84
+ hideFn?: (item: T | undefined) => boolean;
85
+ /** Классы css*/
86
+ classList?: string[];
87
+ }
91
88
  /** Настройки колонки. */
92
- interface IColumnOptions<T> {
93
- /** Имя. */
94
- name: string;
95
- /** Заголовок. */
96
- title: string;
97
- /**
98
- * Формат колонки {
99
- * '' - текст (по умолчанию) |
100
- * 'pre-wrap' - текст с переносами строк |
101
- * 'link' - гиперссылка |
102
- * 'linkIcon' - гиперссылка (иконка вместо текста) |
103
- * 'routerLink' - ссылка на страницу в приложении |
104
- * 'routerLinkIcon' - ссылка на страницу в приложении (иконка вместо текста) |
105
- * 'checkbox' - чекбокс |
106
- * 'icon' - иконка |
107
- * 'icons' - иконка по значению (отображаются из свойства icons по индексу) |
108
- * 'actions' - действия |
109
- * 'image' - изображение
110
- * }. * */
111
- format?: string;
112
- /** Отключить сортировку по заголовку. */
113
- titleSortDisable?: boolean;
114
- /** Иконка вместо текста, когда format = 'link' | 'routerLink' | 'routerLinkIcon' | 'icon'. */
115
- icon?: string;
116
- /** Иконка вместо текста, когда format = 'icons'. */
117
- icons?: string[];
118
- /** Символ (Material Symbols) вместо текста, когда format = 'link' | 'routerLink' | 'routerLinkIcon' | 'icon'. */
119
- symbol?: string;
120
- /** Символ (Material Symbols) вместо текста, когда format = 'icons'. */
121
- symbols?: string;
122
- /** Скрыть колонку. */
123
- hide?: boolean;
124
- footer?: boolean;
125
- footerTitle?: string;
126
- tooltip?: string;
127
- tooltips?: string[];
128
- classList?: string[];
129
- actions?: IColumnActionOptions<T>[];
130
- imageUrl?: string;
131
- imageAlt?: string;
132
- }
133
-
89
+ export interface IColumnOptions<T> {
90
+ /** Имя. */
91
+ name: string;
92
+ /** Заголовок. */
93
+ title: string;
94
+ /**
95
+ * Формат колонки {
96
+ * '' - текст (по умолчанию) |
97
+ * 'pre-wrap' - текст с переносами строк |
98
+ * 'link' - гиперссылка |
99
+ * 'linkIcon' - гиперссылка (иконка вместо текста) |
100
+ * 'routerLink' - ссылка на страницу в приложении |
101
+ * 'routerLinkIcon' - ссылка на страницу в приложении (иконка вместо текста) |
102
+ * 'checkbox' - чекбокс |
103
+ * 'icon' - иконка |
104
+ * 'icons' - иконка по значению (отображаются из свойства icons по индексу) |
105
+ * 'actions' - действия |
106
+ * 'image' - изображение
107
+ * }. * */
108
+ format?: string;
109
+ /** Отключить сортировку по заголовку. */
110
+ titleSortDisable?: boolean;
111
+ /** Иконка вместо текста, когда format = 'link' | 'routerLink' | 'routerLinkIcon' | 'icon'. */
112
+ icon?: string;
113
+ /** Иконка вместо текста, когда format = 'icons'. */
114
+ icons?: string[];
115
+ /** Символ (Material Symbols) вместо текста, когда format = 'link' | 'routerLink' | 'routerLinkIcon' | 'icon'. */
116
+ symbol?: string;
117
+ /** Символ (Material Symbols) вместо текста, когда format = 'icons'. */
118
+ symbols?: string;
119
+ /** Скрыть колонку. */
120
+ hide?: boolean;
121
+ footer?: boolean;
122
+ footerTitle?: string;
123
+ tooltip?: string;
124
+ tooltips?: string[];
125
+ classList?: string[];
126
+ actions?: IColumnActionOptions<T>[];
127
+ imageUrl?: string;
128
+ imageAlt?: string;
129
+ }
134
130
  /** Настройки пункта меню. */
135
- interface IContextMenuOptions<T> {
136
- /** Заголовок. */
137
- title: string;
138
- /** Функция обработчик нажатия. */
139
- onClickFn?: (item: T | undefined) => void;
140
- /** Функция обработчик нажатия средней кнопкой мыши. */
141
- onClickMiddleFn?: ($event: MouseEvent, item: T | undefined, contextMenu: MatMenuTrigger) => void;
142
- /** Иконка. */
143
- icon?: string;
144
- /** Символ (Material Symbols). */
145
- symbol?: string;
146
- /** Доступность. */
147
- disabled?: boolean;
148
- /** Функция определяющая доступность. */
149
- disabledFn?: (item: T | undefined) => boolean;
150
- /** Видимость. */
151
- hide?: boolean;
152
- /** Функция определяющая видимость. */
153
- hideFn?: (item: T | undefined) => boolean;
154
- classList?: string[];
155
- }
156
-
157
- declare class TableComponent<T> implements OnInit, AfterViewInit, OnDestroy {
158
- /** Отображаемые данные. */
159
- data: _angular_core.InputSignal<T[]>;
160
- /** Количество записей. */
161
- length: _angular_core.InputSignal<number>;
162
- /** Настройки колонок. */
163
- columnOptions: _angular_core.InputSignal<IColumnOptions<T>[]>;
164
- /** Состояние сортировки, пагинации. */
165
- tableState: _angular_core.InputSignal<ITableState>;
166
- /** Разрешен выбор нескольких строк. */
167
- allowMultiSelect: _angular_core.InputSignal<boolean>;
168
- /** Список элементов контекстного меню. */
169
- opt: _angular_core.InputSignal<IContextMenuOptions<T>[]>;
170
- /** Отправка события rowDoubleClicked (при двойном щелчке мышью) отключена. */
171
- rowDblClickedDisable: _angular_core.InputSignal<boolean>;
172
- /** Отображать строку с итогом. */
173
- footer: _angular_core.InputSignal<boolean>;
174
- /** Изменение страницы. */
175
- pageStateChange: _angular_core.OutputEmitterRef<IPageState>;
176
- /** Изменение сортировки. */
177
- sortStateChange: _angular_core.OutputEmitterRef<ISortState>;
178
- /** Изменение выбранных записей. */
179
- selectionChange: _angular_core.OutputEmitterRef<T[]>;
180
- /** Двойной щелчек ЛКМ*/
181
- rowDoubleClicked: _angular_core.OutputEmitterRef<T>;
182
- readonly sort: _angular_core.Signal<MatSort | undefined>;
183
- readonly paginator: _angular_core.Signal<MatPaginator | undefined>;
184
- readonly contextMenu: _angular_core.Signal<MatMenuTrigger | undefined>;
185
- pageState: _angular_core.WritableSignal<IPageState>;
186
- sortState: _angular_core.WritableSignal<ISortState>;
187
- /** Выбранная строка, для которого будет показываться меню при нажатии правой кнопки мыши. */
188
- itemForMenu?: T;
189
- /** Позиция в которой отображается контекстное меню. */
190
- contextMenuPosition: {
191
- x: string;
192
- y: string;
193
- };
194
- defaultPageIndex: number;
195
- defaultPageSize: number;
196
- /** Источник данных для отображения. */
197
- dataSource: MatTableDataSource<T, MatPaginator>;
198
- /** Выбранные записи. */
199
- selection: SelectionModel<T>;
200
- /** Список отображаемых колонок (формируется из @columnOptions). */
201
- displayedColumns?: string[];
202
- subscription: Subscription;
203
- constructor();
204
- ngOnInit(): void;
205
- ngOnDestroy(): void;
206
- ngAfterViewInit(): void;
207
- /** Whether the number of selected elements matches the total number of rows. */
208
- isAllSelected(): boolean;
209
- /** Selects all rows if they are not all selected; otherwise clear selection. */
210
- masterToggle(): void;
211
- /** При щелчке по строке. */
212
- onRowClicked(row: T): void;
213
- /** При двойном щелчке по строке. */
214
- onRowDblClicked(row: T): void;
215
- /** При вызове контекстного меню. */
216
- onContextMenu(event: MouseEvent, itemForMenu: T | undefined): void;
217
- getTotal(columnName: string): number | "";
218
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent<any>, never>;
219
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent<any>, "ngx-uik-table", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "columnOptions": { "alias": "columnOptions"; "required": false; "isSignal": true; }; "tableState": { "alias": "tableState"; "required": true; "isSignal": true; }; "allowMultiSelect": { "alias": "allowMultiSelect"; "required": false; "isSignal": true; }; "opt": { "alias": "opt"; "required": false; "isSignal": true; }; "rowDblClickedDisable": { "alias": "rowDblClickedDisable"; "required": false; "isSignal": true; }; "footer": { "alias": "footer"; "required": false; "isSignal": true; }; }, { "pageStateChange": "pageStateChange"; "sortStateChange": "sortStateChange"; "selectionChange": "selectionChange"; "rowDoubleClicked": "rowDoubleClicked"; }, never, never, true, never>;
220
- }
221
-
222
- declare class BaseToolbarComponent {
223
- /**
224
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
225
- */
226
- rolesNewBtn: _angular_core.InputSignal<string[]>;
227
- /**
228
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
229
- */
230
- rolesEditBtn: _angular_core.InputSignal<string[]>;
231
- /**
232
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
233
- */
234
- rolesRemoveBtn: _angular_core.InputSignal<string[]>;
235
- /**
236
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
237
- */
238
- rolesCopyBtn: _angular_core.InputSignal<string[]>;
239
- /**
240
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
241
- */
242
- rolesExcelBtn: _angular_core.InputSignal<string[]>;
243
- /**
244
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
245
- */
246
- rolesCsvBtn: _angular_core.InputSignal<string[]>;
247
- /**
248
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
249
- */
250
- rolesPdfBtn: _angular_core.InputSignal<string[]>;
251
- /**
252
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
253
- */
254
- rolesPrintBtn: _angular_core.InputSignal<string[]>;
255
- /**
256
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
257
- */
258
- rolesRefreshBtn: _angular_core.InputSignal<string[]>;
259
- /**
260
- * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
261
- */
262
- rolesClearBtn: _angular_core.InputSignal<string[]>;
263
- newBtnDisabled: _angular_core.InputSignal<boolean>;
264
- editBtnDisabled: _angular_core.InputSignal<boolean>;
265
- removeBtnDisabled: _angular_core.InputSignal<boolean>;
266
- copyBtnDisabled: _angular_core.InputSignal<boolean>;
267
- excelBtnDisabled: _angular_core.InputSignal<boolean>;
268
- csvBtnDisabled: _angular_core.InputSignal<boolean>;
269
- pdfBtnDisabled: _angular_core.InputSignal<boolean>;
270
- printBtnDisabled: _angular_core.InputSignal<boolean>;
271
- refreshBtnDisabled: _angular_core.InputSignal<boolean>;
272
- clearBtnDisabled: _angular_core.InputSignal<boolean>;
273
- newBtnTooltip: _angular_core.InputSignal<string>;
274
- editBtnTooltip: _angular_core.InputSignal<string>;
275
- removeBtnTooltip: _angular_core.InputSignal<string>;
276
- copyBtnTooltip: _angular_core.InputSignal<string>;
277
- excelBtnTooltip: _angular_core.InputSignal<string>;
278
- csvBtnTooltip: _angular_core.InputSignal<string>;
279
- pdfBtnTooltip: _angular_core.InputSignal<string>;
280
- printBtnTooltip: _angular_core.InputSignal<string>;
281
- refreshBtnTooltip: _angular_core.InputSignal<string>;
282
- clearBtnTooltip: _angular_core.InputSignal<string>;
283
- /** Список элементов контекстного меню. */
284
- newBtnOpt: _angular_core.InputSignal<IContextMenuOptions<string>[]>;
285
- clickedNewBtn: _angular_core.OutputEmitterRef<void>;
286
- clickedEditBtn: _angular_core.OutputEmitterRef<void>;
287
- clickedRemoveBtn: _angular_core.OutputEmitterRef<void>;
288
- clickedCopyBtn: _angular_core.OutputEmitterRef<void>;
289
- clickedExcelBtn: _angular_core.OutputEmitterRef<void>;
290
- clickedCsvBtn: _angular_core.OutputEmitterRef<void>;
291
- clickedPdfBtn: _angular_core.OutputEmitterRef<void>;
292
- clickedPrintBtn: _angular_core.OutputEmitterRef<void>;
293
- clickedRefreshBtn: _angular_core.OutputEmitterRef<void>;
294
- clickedClearBtn: _angular_core.OutputEmitterRef<void>;
295
- protected roleService: RoleService;
296
- readonly isNewBtnVisible: _angular_core.Signal<boolean>;
297
- readonly isEditBtnVisible: _angular_core.Signal<boolean>;
298
- readonly isRemoveBtnVisible: _angular_core.Signal<boolean>;
299
- readonly isCopyBtnVisible: _angular_core.Signal<boolean>;
300
- readonly isExcelBtnVisible: _angular_core.Signal<boolean>;
301
- readonly isCsvBtnVisible: _angular_core.Signal<boolean>;
302
- readonly isPdfBtnVisible: _angular_core.Signal<boolean>;
303
- readonly isPrintBtnVisible: _angular_core.Signal<boolean>;
304
- readonly isRefreshBtnVisible: _angular_core.Signal<boolean>;
305
- readonly isClearBtnVisible: _angular_core.Signal<boolean>;
306
- /**
307
- * Внутренний метод для вычисления видимости.
308
- * Не вызывается напрямую из шаблона, а служит хелпером для декларативных computed.
309
- * Проверяет, заблокирован ли доступ к элементу на основе списка ограничений.
310
- * Возвращает true, если у пользователя есть запрещенная роль или передан маркер 'HIDE'.
311
- * Администратор (ADMIN) всегда игнорирует любые запреты и маркер 'HIDE'.
312
- */
313
- private checkVisibility;
314
- onNewClick(): void;
315
- onEditClick(): void;
316
- onRemoveClick(): void;
317
- onCopyClick(): void;
318
- onExcelClick(): void;
319
- onCsvClick(): void;
320
- onPdfClick(): void;
321
- onPrintClick(): void;
322
- onRefreshGridClick(): void;
323
- onClearClick(): void;
324
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseToolbarComponent, never>;
325
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseToolbarComponent, "ngx-uik-base-toolbar", never, { "rolesNewBtn": { "alias": "rolesNewBtn"; "required": false; "isSignal": true; }; "rolesEditBtn": { "alias": "rolesEditBtn"; "required": false; "isSignal": true; }; "rolesRemoveBtn": { "alias": "rolesRemoveBtn"; "required": false; "isSignal": true; }; "rolesCopyBtn": { "alias": "rolesCopyBtn"; "required": false; "isSignal": true; }; "rolesExcelBtn": { "alias": "rolesExcelBtn"; "required": false; "isSignal": true; }; "rolesCsvBtn": { "alias": "rolesCsvBtn"; "required": false; "isSignal": true; }; "rolesPdfBtn": { "alias": "rolesPdfBtn"; "required": false; "isSignal": true; }; "rolesPrintBtn": { "alias": "rolesPrintBtn"; "required": false; "isSignal": true; }; "rolesRefreshBtn": { "alias": "rolesRefreshBtn"; "required": false; "isSignal": true; }; "rolesClearBtn": { "alias": "rolesClearBtn"; "required": false; "isSignal": true; }; "newBtnDisabled": { "alias": "newBtnDisabled"; "required": false; "isSignal": true; }; "editBtnDisabled": { "alias": "editBtnDisabled"; "required": false; "isSignal": true; }; "removeBtnDisabled": { "alias": "removeBtnDisabled"; "required": false; "isSignal": true; }; "copyBtnDisabled": { "alias": "copyBtnDisabled"; "required": false; "isSignal": true; }; "excelBtnDisabled": { "alias": "excelBtnDisabled"; "required": false; "isSignal": true; }; "csvBtnDisabled": { "alias": "csvBtnDisabled"; "required": false; "isSignal": true; }; "pdfBtnDisabled": { "alias": "pdfBtnDisabled"; "required": false; "isSignal": true; }; "printBtnDisabled": { "alias": "printBtnDisabled"; "required": false; "isSignal": true; }; "refreshBtnDisabled": { "alias": "refreshBtnDisabled"; "required": false; "isSignal": true; }; "clearBtnDisabled": { "alias": "clearBtnDisabled"; "required": false; "isSignal": true; }; "newBtnTooltip": { "alias": "newBtnTooltip"; "required": false; "isSignal": true; }; "editBtnTooltip": { "alias": "editBtnTooltip"; "required": false; "isSignal": true; }; "removeBtnTooltip": { "alias": "removeBtnTooltip"; "required": false; "isSignal": true; }; "copyBtnTooltip": { "alias": "copyBtnTooltip"; "required": false; "isSignal": true; }; "excelBtnTooltip": { "alias": "excelBtnTooltip"; "required": false; "isSignal": true; }; "csvBtnTooltip": { "alias": "csvBtnTooltip"; "required": false; "isSignal": true; }; "pdfBtnTooltip": { "alias": "pdfBtnTooltip"; "required": false; "isSignal": true; }; "printBtnTooltip": { "alias": "printBtnTooltip"; "required": false; "isSignal": true; }; "refreshBtnTooltip": { "alias": "refreshBtnTooltip"; "required": false; "isSignal": true; }; "clearBtnTooltip": { "alias": "clearBtnTooltip"; "required": false; "isSignal": true; }; "newBtnOpt": { "alias": "newBtnOpt"; "required": false; "isSignal": true; }; }, { "clickedNewBtn": "clickedNewBtn"; "clickedEditBtn": "clickedEditBtn"; "clickedRemoveBtn": "clickedRemoveBtn"; "clickedCopyBtn": "clickedCopyBtn"; "clickedExcelBtn": "clickedExcelBtn"; "clickedCsvBtn": "clickedCsvBtn"; "clickedPdfBtn": "clickedPdfBtn"; "clickedPrintBtn": "clickedPrintBtn"; "clickedRefreshBtn": "clickedRefreshBtn"; "clickedClearBtn": "clickedClearBtn"; }, never, never, true, never>;
326
- }
327
-
328
- interface BaseClass {
329
- id: number;
330
- }
331
-
332
- interface IEditDialogData<T, K = any> {
333
- action: Action;
334
- entity: T;
335
- extraData?: K;
336
- }
337
- declare enum Action {
338
- Add = "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435",
339
- Edit = "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435"
340
- }
341
-
342
- declare class AvatarService {
343
- baseRoute: string;
344
- private readonly http;
345
- getAvatarById(idHuman: number): Observable<ArrayBuffer>;
346
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarService, never>;
347
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AvatarService>;
348
- }
349
-
350
- declare class LoaderService {
351
- private overlayRef;
352
- private readonly overlay;
353
- show(): void;
354
- hide(): void;
355
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoaderService, never>;
356
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<LoaderService>;
357
- }
358
-
359
- declare class LocalStorageService {
360
- constructor();
361
- saveData(key: string, value: string): void;
362
- getData(key: string): string | null;
363
- removeData(key: string): void;
364
- clearData(): void;
365
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LocalStorageService, never>;
366
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<LocalStorageService>;
367
- }
368
-
369
- declare class SecureImageService {
370
- private readonly http;
371
- private readonly sanitizer;
372
- /**
373
- * Загружает защищенное изображение и возвращает SafeUrl
374
- */
375
- getSecureUrl(relativeUrl: string | null | undefined, apiKey?: string): Observable<SafeUrl | string>;
376
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SecureImageService, never>;
377
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<SecureImageService>;
378
- }
379
-
380
- declare class ExportService {
381
- exportCSV(data: any, filename: string | undefined, arrHeader: any, newHeaders: any): void;
382
- convertToCSV(objArray: any, headerList: any, newHeaders: any): string;
383
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ExportService, never>;
384
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ExportService>;
385
- }
386
-
387
- interface SseUser {
388
- id: string;
389
- name: string;
390
- }
391
-
392
- interface Topic {
393
- getTopic(baseUrl: string, user: SseUser): string;
394
- }
395
-
396
- declare class SseService<T> {
397
- private zone;
398
- private eventSource;
399
- private isConnected;
400
- constructor();
401
- createSseEventSource(baseUrl: string, user: SseUser, topic: Topic): Observable<T>;
402
- private reconnectOnError;
403
- closeSseEventSource(): void;
404
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SseService<any>, never>;
405
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<SseService<any>>;
406
- }
407
-
408
- declare abstract class BaseEditClass<T> implements OnDestroy {
409
- /** Заголовок. */
410
- abstract title: string;
411
- /** Данные диалога. */
412
- protected abstract dialogData?: IEditDialogData<T>;
413
- /** Форма. */
414
- abstract form?: FormGroup<any>;
415
- /** Ссылка на диалог. */
416
- protected abstract dialogRef?: MatDialogRef<any, IEditDialogData<T> | null>;
417
- /** Сервис индикатор загрузки. */
418
- protected loaderService: LoaderService;
419
- /** Сервис уведомлений. */
420
- protected notificationService: NotificationService;
421
- /** Сервис ролей. */
422
- protected roleService: RoleService;
423
- /** Объект для отписки (вызывается метод unsubscribe при уничтожении компонента). */
424
- protected subscription: Subscription;
425
- ngOnDestroy(): void;
426
- onNoClick(event: MouseEvent): void;
427
- onSubmit(): void;
428
- formActionIsAdd(): boolean;
429
- formActionIsEdit(): boolean;
430
- /**
431
- * Определяет видимость элемента на основе ЧЕРНОГО списка ролей.
432
- * По умолчанию элемент ВИДИМ. Скрывается (возвращает false), если у пользователя
433
- * есть запрещенная роль или если передан маркер скрытия фичи HIDE_ROLE_MARKER.
434
- */
435
- protected isVisibleForForbiddenRoles(forbiddenRoles: string[]): boolean;
436
- /**
437
- * Определяет видимость элемента на основе БЕЛОГО списка ролей.
438
- * По умолчанию элемент СКРЫТ. Показывается (возвращает true), только если у пользователя
439
- * есть хотя бы одна из разрешенных ролей. Администратор (ADMIN) всегда видит элемент.
440
- */
441
- protected isVisibleForAllowedRoles(allowedRoles: string[]): boolean;
442
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseEditClass<any>, never>;
443
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseEditClass<any>, never, never, {}, {}, never, never, true, never>;
444
- }
445
-
446
- interface IEntityAction<T> {
447
- action: EntityAction;
448
- entity: T;
449
- }
450
- declare enum EntityAction {
451
- Init = "\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F",
452
- Add = "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435",
453
- Edit = "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435",
454
- Delete = "\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435"
455
- }
456
-
457
- declare class BaseFilterClass implements OnDestroy {
458
- /** Сервис для работы с LocalStorage. */
459
- protected localStorageService: LocalStorageService;
460
- /** Сервис индикатор загрузки. */
461
- protected loaderService: LoaderService;
462
- /** Сервис уведомлений. */
463
- protected notificationService: NotificationService;
464
- defaultDebounceTime: number;
465
- /** Объект для отписки (вызывается метод unsubscribe при уничтожении компонента). */
466
- subscription: Subscription;
467
- constructor();
468
- ngOnDestroy(): void;
469
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseFilterClass, never>;
470
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseFilterClass, never, never, {}, {}, never, never, true, never>;
471
- }
472
-
473
- declare class BaseNavBarMenuClass {
474
- protected roleService: RoleService;
475
- protected router: Router;
476
- /**
477
- * Определяет видимость пункта меню на основе ЧЕРНОГО списка ролей.
478
- * По умолчанию пункт меню ВИДИМ. Скрывается (возвращает false), если у пользователя
479
- * есть запрещенная роль или если передан маркер скрытия фичи HIDE_ROLE_MARKER.
480
- */
481
- protected isVisibleForForbiddenRoles(forbiddenRoles: string[]): boolean;
482
- /**
483
- * Определяет видимость пункта меню на основе БЕЛОГО списка ролей.
484
- * По умолчанию пункт меню СКРЫТ. Показывается (возвращает true), только если у пользователя
485
- * есть хотя бы одна из разрешенных ролей. Администратор (ADMIN) всегда видит элемент.
486
- */
487
- protected isVisibleForAllowedRoles(allowedRoles: string[]): boolean;
488
- /** Нажата средняя кнопка (открыть ссылку в новой вкладке). */
489
- onMiddleClick(event: MouseEvent, baseUrl: string, menu: MatMenuTrigger): void;
490
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseNavBarMenuClass, never>;
491
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseNavBarMenuClass, never, never, {}, {}, never, never, true, never>;
492
- }
493
-
494
- declare enum DialogAction {
495
- Add = "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C",
496
- Edit = "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C",
497
- Delete = "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
498
- None = ""
499
- }
500
-
501
- interface DialogData {
502
- id: string;
503
- title: string;
504
- message: string;
505
- btnNoTitle: string;
506
- btnYesTitle: string;
507
- }
508
-
509
- declare class DialogComponent {
510
- readonly data: DialogData;
511
- readonly dialogRef: MatDialogRef<any, any>;
512
- constructor();
513
- onNoClick(): void;
514
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogComponent, never>;
515
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogComponent, "ngx-uik-dialog", never, {}, {}, never, never, true, never>;
516
- }
517
-
518
- declare class BasePageClass<T> implements OnDestroy {
519
- protected dialog: MatDialog;
520
- /** Данные для табличного компонента. */
521
- data: _angular_core.WritableSignal<T[]>;
522
- /** Количество записей по фильтру. */
523
- length: _angular_core.WritableSignal<number>;
524
- entityService: any;
525
- entityType: any;
526
- entityEditComponent: any;
527
- extraData?: any;
528
- defaultPageIndex: number;
529
- defaultPageSize: number;
530
- dialogEditWidth: string;
531
- dialogRemoveWidth: string;
532
- routeAddress: string;
533
- /** Сообщение при удалении записи(й). */
534
- removalMessage: string;
535
- /** Заголовок страницы. */
536
- pageTitle: string;
537
- /**
538
- * Создание записи: вызывается перед открытием диалога.
539
- */
540
- beforeOpenDialogOnNewEvent: fnType<T>;
541
- /**
542
- * Редактирование записи: вызывается перед открытием диалога.
543
- */
544
- beforeOpenDialogOnEditEvent: fnType<T>;
545
- /**
546
- * Создание записи: вызывается перед сохранением объекта.
547
- */
548
- beforeSaveOnNewEvent: fnType<T>;
549
- /**
550
- * Редактирование записи: вызывается перед сохранением объекта.
551
- */
552
- beforeSaveOnEditEvent: fnType<T>;
553
- /**
554
- * Создание записи: вызывается после сохранения объекта.
555
- */
556
- afterSaveOnNewEvent: fnCbType<T>;
557
- /**
558
- * Редактирование записи: вызывается после сохранения объекта.
559
- */
560
- afterSaveOnEditEvent: fnCbType<T>;
561
- editorRoles: string[];
562
- executeRoles: string[];
563
- /** Список ролей, для которых скрыть элемент. */
564
- hideRoles: string[];
565
- /** Загрузка данных. */
566
- loadData$: Subject<null>;
567
- /** Загрузка количества записей. */
568
- loadLength$: Subject<null>;
569
- /** Очистка фильтра. */
570
- clearFilter$: Subject<null>;
571
- /** Очистка фильтра (для очистки присвоить пустой объект '{}'). */
572
- clearFilter: any;
573
- /** Разрешен выбор нескольких строк. */
574
- allowMultiSelect: boolean;
575
- /** Выбранные строки в таблице. */
576
- selected: T[];
577
- /** Состояние сортировки, пагинации. */
578
- tableState: ITableState;
579
- /** Доступность кнопки "Изменить". */
580
- editBtnDisabled: boolean;
581
- /** Доступность кнопки "Удалить". */
582
- removeBtnDisabled: boolean;
583
- /** Разрешено ли отправлять событие rowDoubleClicked при двойном щелчке мышью. */
584
- dblClickedEventEnable: boolean;
585
- opt: IContextMenuOptions<T>[];
586
- protected router: Router;
587
- /** Сервис для работы с LocalStorage. */
588
- protected localStorageService: LocalStorageService;
589
- /** Сервис индикатор загрузки. */
590
- protected loaderService: LoaderService;
591
- /** Сервис уведомлений. */
592
- protected notificationService: _kuzntsv_uikit.INotificationService;
593
- /** Объект для отписки (вызывается метод unsubscribe при уничтожении компонента). */
594
- subscription: Subscription;
595
- constructor();
596
- ngOnDestroy(): void;
597
- subscribeToLoadData(fnGetData: fnGetDataType<T>, fnGetCount: fnGetCountType<T>, fnMapEntity?: fnMapEntityType<T>): void;
598
- onPageChange(pageState: IPageState): void;
599
- onSortChange(sortState: ISortState): void;
600
- entityFactory(type: new () => T): T;
601
- /** Событие изменение выбранных записей. */
602
- onSelectionChange(selected: T[]): void;
603
- /** Обновление доступности кнопки "Изменить" - вызывается при изменении выбранных записей. */
604
- editBtnDisabledUpdate(selected: T[]): void;
605
- /** Обновление доступности кнопки "Удалить" - вызывается при изменении выбранных записей. */
606
- removeBtnDisabledUpdate(selected: T[]): void;
607
- /** Событие двойной клик. */
608
- onRowDoubleClicked(): void;
609
- /** Событие создание. */
610
- newEvent(): void;
611
- /** Событие редактирование. */
612
- editEvent(): void;
613
- /** Событие удаление. */
614
- removeEvent(): void;
615
- /** Событие обновления данных. */
616
- refreshEvent(): void;
617
- /** Событие очистки фильтра. */
618
- clearEvent(): void;
619
- /** Изменение сообщения об удалении. */
620
- onRemovalMessageChange(message: string): void;
621
- /** Изменение заголовка страницы. */
622
- onPageTitleChange(title: string): void;
623
- openDialog(entityComponent: any, data: IEditDialogData<T>, dialog: any): any;
624
- openDialogRemoveConfirm(removalMessage: string): MatDialogRef<DialogComponent> | undefined;
625
- protected onMiddleButton(baseUrl: string, queryParamName?: string, queryParamValue?: string): ($event: MouseEvent, item: T, contextMenu: MatMenuTrigger) => void;
626
- protected onActionMiddleButton(baseUrl: string, queryParamName?: string, queryParamValue?: string): ($event: MouseEvent, item: T) => void;
627
- protected dateToString(date: string | number | Date): string | null;
628
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BasePageClass<any>, never>;
629
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BasePageClass<any>, never, never, {}, {}, never, never, true, never>;
630
- }
631
-
632
- declare abstract class BaseServiceClass<T extends BaseClass> {
633
- abstract baseRoute: string;
634
- abstract entityType: any;
635
- protected countRoute: string;
636
- protected pageIndexParam: string;
637
- protected pageSizeParam: string;
638
- protected sortColumnParam: string;
639
- protected directionParam: string;
640
- protected http: HttpClient;
641
- getObjects(): Observable<T[]>;
642
- getObject(id: number): any;
643
- getCount(): Observable<number>;
644
- getObjectsByPaging(pageIndex: number, pageSize: number, sortColumn: string, direction: string): Observable<T[]>;
645
- newObject(entity: T): any;
646
- editObject(entity: T): any;
647
- deleteObject(entity: T): any;
648
- protected getParams(pageIndex: number, pageSize: number, sortColumn: string, direction: string): HttpParams;
649
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseServiceClass<any>, never>;
650
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<BaseServiceClass<any>>;
651
- }
652
-
653
- declare class DisableIfRoleDirective {
654
- readonly forbiddenRoles: _angular_core.InputSignal<string[]>;
655
- private readonly el;
656
- private readonly roleService;
657
- constructor();
658
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DisableIfRoleDirective, never>;
659
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DisableIfRoleDirective, "[ngxUikDisableIfRole]", never, { "forbiddenRoles": { "alias": "ngxUikDisableIfRole"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
660
- }
661
-
662
- declare class HideIfForbiddenRoleDirective {
663
- readonly forbiddenRoles: _angular_core.InputSignal<string[]>;
664
- private readonly el;
665
- private readonly roleService;
666
- constructor();
667
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HideIfForbiddenRoleDirective, never>;
668
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HideIfForbiddenRoleDirective, "[ngxUikHideIfForbiddenRole]", never, { "forbiddenRoles": { "alias": "ngxUikHideIfForbiddenRole"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
669
- }
670
-
671
- declare class SetValueDirective {
672
- readonly value: _angular_core.InputSignal<any>;
673
- private readonly ngControl;
674
- constructor();
675
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SetValueDirective, never>;
676
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SetValueDirective, "[setValue]", never, { "value": { "alias": "setValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
677
- }
678
-
679
- declare const authGuard: (allowedRoles: string[]) => CanActivateFn;
680
-
681
- declare const redirectGuard: CanActivateFn;
682
-
131
+ export interface IContextMenuOptions<T> {
132
+ /** Заголовок. */
133
+ title: string;
134
+ /** Функция обработчик нажатия. */
135
+ onClickFn?: (item: T | undefined) => void;
136
+ /** Функция обработчик нажатия средней кнопкой мыши. */
137
+ onClickMiddleFn?: ($event: MouseEvent, item: T | undefined, contextMenu: MatMenuTrigger) => void;
138
+ /** Иконка. */
139
+ icon?: string;
140
+ /** Символ (Material Symbols). */
141
+ symbol?: string;
142
+ /** Доступность. */
143
+ disabled?: boolean;
144
+ /** Функция определяющая доступность. */
145
+ disabledFn?: (item: T | undefined) => boolean;
146
+ /** Видимость. */
147
+ hide?: boolean;
148
+ /** Функция определяющая видимость. */
149
+ hideFn?: (item: T | undefined) => boolean;
150
+ classList?: string[];
151
+ }
152
+ export declare class TableComponent<T> implements OnInit, AfterViewInit, OnDestroy {
153
+ /** Отображаемые данные. */
154
+ data: import("@angular/core").InputSignal<T[]>;
155
+ /** Количество записей. */
156
+ length: import("@angular/core").InputSignal<number>;
157
+ /** Настройки колонок. */
158
+ columnOptions: import("@angular/core").InputSignal<IColumnOptions<T>[]>;
159
+ /** Состояние сортировки, пагинации. */
160
+ tableState: import("@angular/core").InputSignal<ITableState>;
161
+ /** Разрешен выбор нескольких строк. */
162
+ allowMultiSelect: import("@angular/core").InputSignal<boolean>;
163
+ /** Список элементов контекстного меню. */
164
+ opt: import("@angular/core").InputSignal<IContextMenuOptions<T>[]>;
165
+ /** Отправка события rowDoubleClicked (при двойном щелчке мышью) отключена. */
166
+ rowDblClickedDisable: import("@angular/core").InputSignal<boolean>;
167
+ /** Отображать строку с итогом. */
168
+ footer: import("@angular/core").InputSignal<boolean>;
169
+ /** Изменение страницы. */
170
+ pageStateChange: import("@angular/core").OutputEmitterRef<IPageState>;
171
+ /** Изменение сортировки. */
172
+ sortStateChange: import("@angular/core").OutputEmitterRef<ISortState>;
173
+ /** Изменение выбранных записей. */
174
+ selectionChange: import("@angular/core").OutputEmitterRef<T[]>;
175
+ /** Двойной щелчек ЛКМ*/
176
+ rowDoubleClicked: import("@angular/core").OutputEmitterRef<T>;
177
+ readonly sort: import("@angular/core").Signal<MatSort | undefined>;
178
+ readonly paginator: import("@angular/core").Signal<MatPaginator | undefined>;
179
+ readonly contextMenu: import("@angular/core").Signal<MatMenuTrigger | undefined>;
180
+ pageState: import("@angular/core").WritableSignal<IPageState>;
181
+ sortState: import("@angular/core").WritableSignal<ISortState>;
182
+ /** Выбранная строка, для которого будет показываться меню при нажатии правой кнопки мыши. */
183
+ itemForMenu?: T;
184
+ /** Позиция в которой отображается контекстное меню. */
185
+ contextMenuPosition: {
186
+ x: string;
187
+ y: string;
188
+ };
189
+ defaultPageIndex: number;
190
+ defaultPageSize: number;
191
+ /** Источник данных для отображения. */
192
+ dataSource: MatTableDataSource<T, MatPaginator>;
193
+ /** Выбранные записи. */
194
+ selection: SelectionModel<T>;
195
+ /** Список отображаемых колонок (формируется из @columnOptions). */
196
+ displayedColumns?: string[];
197
+ subscription: Subscription;
198
+ constructor();
199
+ ngOnInit(): void;
200
+ ngOnDestroy(): void;
201
+ ngAfterViewInit(): void;
202
+ /** Whether the number of selected elements matches the total number of rows. */
203
+ isAllSelected(): boolean;
204
+ /** Selects all rows if they are not all selected; otherwise clear selection. */
205
+ masterToggle(): void;
206
+ /** При щелчке по строке. */
207
+ onRowClicked(row: T): void;
208
+ /** При двойном щелчке по строке. */
209
+ onRowDblClicked(row: T): void;
210
+ /** При вызове контекстного меню. */
211
+ onContextMenu(event: MouseEvent, itemForMenu: T | undefined): void;
212
+ getTotal(columnName: string): number | "";
213
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, never>;
214
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "ngx-uik-table", never, {
215
+ "data": {
216
+ "alias": "data";
217
+ "required": false;
218
+ "isSignal": true;
219
+ };
220
+ "length": {
221
+ "alias": "length";
222
+ "required": false;
223
+ "isSignal": true;
224
+ };
225
+ "columnOptions": {
226
+ "alias": "columnOptions";
227
+ "required": false;
228
+ "isSignal": true;
229
+ };
230
+ "tableState": {
231
+ "alias": "tableState";
232
+ "required": true;
233
+ "isSignal": true;
234
+ };
235
+ "allowMultiSelect": {
236
+ "alias": "allowMultiSelect";
237
+ "required": false;
238
+ "isSignal": true;
239
+ };
240
+ "opt": {
241
+ "alias": "opt";
242
+ "required": false;
243
+ "isSignal": true;
244
+ };
245
+ "rowDblClickedDisable": {
246
+ "alias": "rowDblClickedDisable";
247
+ "required": false;
248
+ "isSignal": true;
249
+ };
250
+ "footer": {
251
+ "alias": "footer";
252
+ "required": false;
253
+ "isSignal": true;
254
+ };
255
+ }, {
256
+ "pageStateChange": "pageStateChange";
257
+ "sortStateChange": "sortStateChange";
258
+ "selectionChange": "selectionChange";
259
+ "rowDoubleClicked": "rowDoubleClicked";
260
+ }, never, never, true, never>;
261
+ }
262
+ export declare class BaseToolbarComponent {
263
+ /**
264
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
265
+ */
266
+ rolesNewBtn: import("@angular/core").InputSignal<string[]>;
267
+ /**
268
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
269
+ */
270
+ rolesEditBtn: import("@angular/core").InputSignal<string[]>;
271
+ /**
272
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
273
+ */
274
+ rolesRemoveBtn: import("@angular/core").InputSignal<string[]>;
275
+ /**
276
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
277
+ */
278
+ rolesCopyBtn: import("@angular/core").InputSignal<string[]>;
279
+ /**
280
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
281
+ */
282
+ rolesExcelBtn: import("@angular/core").InputSignal<string[]>;
283
+ /**
284
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
285
+ */
286
+ rolesCsvBtn: import("@angular/core").InputSignal<string[]>;
287
+ /**
288
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
289
+ */
290
+ rolesPdfBtn: import("@angular/core").InputSignal<string[]>;
291
+ /**
292
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
293
+ */
294
+ rolesPrintBtn: import("@angular/core").InputSignal<string[]>;
295
+ /**
296
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
297
+ */
298
+ rolesRefreshBtn: import("@angular/core").InputSignal<string[]>;
299
+ /**
300
+ * Список Ролей, для которых кнопка видна. Если в списке есть роль 'HIDE', то скрывается.
301
+ */
302
+ rolesClearBtn: import("@angular/core").InputSignal<string[]>;
303
+ newBtnDisabled: import("@angular/core").InputSignal<boolean>;
304
+ editBtnDisabled: import("@angular/core").InputSignal<boolean>;
305
+ removeBtnDisabled: import("@angular/core").InputSignal<boolean>;
306
+ copyBtnDisabled: import("@angular/core").InputSignal<boolean>;
307
+ excelBtnDisabled: import("@angular/core").InputSignal<boolean>;
308
+ csvBtnDisabled: import("@angular/core").InputSignal<boolean>;
309
+ pdfBtnDisabled: import("@angular/core").InputSignal<boolean>;
310
+ printBtnDisabled: import("@angular/core").InputSignal<boolean>;
311
+ refreshBtnDisabled: import("@angular/core").InputSignal<boolean>;
312
+ clearBtnDisabled: import("@angular/core").InputSignal<boolean>;
313
+ newBtnTooltip: import("@angular/core").InputSignal<string>;
314
+ editBtnTooltip: import("@angular/core").InputSignal<string>;
315
+ removeBtnTooltip: import("@angular/core").InputSignal<string>;
316
+ copyBtnTooltip: import("@angular/core").InputSignal<string>;
317
+ excelBtnTooltip: import("@angular/core").InputSignal<string>;
318
+ csvBtnTooltip: import("@angular/core").InputSignal<string>;
319
+ pdfBtnTooltip: import("@angular/core").InputSignal<string>;
320
+ printBtnTooltip: import("@angular/core").InputSignal<string>;
321
+ refreshBtnTooltip: import("@angular/core").InputSignal<string>;
322
+ clearBtnTooltip: import("@angular/core").InputSignal<string>;
323
+ /** Список элементов контекстного меню. */
324
+ newBtnOpt: import("@angular/core").InputSignal<IContextMenuOptions<string>[]>;
325
+ clickedNewBtn: import("@angular/core").OutputEmitterRef<void>;
326
+ clickedEditBtn: import("@angular/core").OutputEmitterRef<void>;
327
+ clickedRemoveBtn: import("@angular/core").OutputEmitterRef<void>;
328
+ clickedCopyBtn: import("@angular/core").OutputEmitterRef<void>;
329
+ clickedExcelBtn: import("@angular/core").OutputEmitterRef<void>;
330
+ clickedCsvBtn: import("@angular/core").OutputEmitterRef<void>;
331
+ clickedPdfBtn: import("@angular/core").OutputEmitterRef<void>;
332
+ clickedPrintBtn: import("@angular/core").OutputEmitterRef<void>;
333
+ clickedRefreshBtn: import("@angular/core").OutputEmitterRef<void>;
334
+ clickedClearBtn: import("@angular/core").OutputEmitterRef<void>;
335
+ protected roleService: RoleService;
336
+ readonly isNewBtnVisible: import("@angular/core").Signal<boolean>;
337
+ readonly isEditBtnVisible: import("@angular/core").Signal<boolean>;
338
+ readonly isRemoveBtnVisible: import("@angular/core").Signal<boolean>;
339
+ readonly isCopyBtnVisible: import("@angular/core").Signal<boolean>;
340
+ readonly isExcelBtnVisible: import("@angular/core").Signal<boolean>;
341
+ readonly isCsvBtnVisible: import("@angular/core").Signal<boolean>;
342
+ readonly isPdfBtnVisible: import("@angular/core").Signal<boolean>;
343
+ readonly isPrintBtnVisible: import("@angular/core").Signal<boolean>;
344
+ readonly isRefreshBtnVisible: import("@angular/core").Signal<boolean>;
345
+ readonly isClearBtnVisible: import("@angular/core").Signal<boolean>;
346
+ /**
347
+ * Внутренний метод для вычисления видимости.
348
+ * Не вызывается напрямую из шаблона, а служит хелпером для декларативных computed.
349
+ * Проверяет, заблокирован ли доступ к элементу на основе списка ограничений.
350
+ * Возвращает true, если у пользователя есть запрещенная роль или передан маркер 'HIDE'.
351
+ * Администратор (ADMIN) всегда игнорирует любые запреты и маркер 'HIDE'.
352
+ */
353
+ private checkVisibility;
354
+ onNewClick(): void;
355
+ onEditClick(): void;
356
+ onRemoveClick(): void;
357
+ onCopyClick(): void;
358
+ onExcelClick(): void;
359
+ onCsvClick(): void;
360
+ onPdfClick(): void;
361
+ onPrintClick(): void;
362
+ onRefreshGridClick(): void;
363
+ onClearClick(): void;
364
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseToolbarComponent, never>;
365
+ static ɵcmp: i0.ɵɵComponentDeclaration<BaseToolbarComponent, "ngx-uik-base-toolbar", never, {
366
+ "rolesNewBtn": {
367
+ "alias": "rolesNewBtn";
368
+ "required": false;
369
+ "isSignal": true;
370
+ };
371
+ "rolesEditBtn": {
372
+ "alias": "rolesEditBtn";
373
+ "required": false;
374
+ "isSignal": true;
375
+ };
376
+ "rolesRemoveBtn": {
377
+ "alias": "rolesRemoveBtn";
378
+ "required": false;
379
+ "isSignal": true;
380
+ };
381
+ "rolesCopyBtn": {
382
+ "alias": "rolesCopyBtn";
383
+ "required": false;
384
+ "isSignal": true;
385
+ };
386
+ "rolesExcelBtn": {
387
+ "alias": "rolesExcelBtn";
388
+ "required": false;
389
+ "isSignal": true;
390
+ };
391
+ "rolesCsvBtn": {
392
+ "alias": "rolesCsvBtn";
393
+ "required": false;
394
+ "isSignal": true;
395
+ };
396
+ "rolesPdfBtn": {
397
+ "alias": "rolesPdfBtn";
398
+ "required": false;
399
+ "isSignal": true;
400
+ };
401
+ "rolesPrintBtn": {
402
+ "alias": "rolesPrintBtn";
403
+ "required": false;
404
+ "isSignal": true;
405
+ };
406
+ "rolesRefreshBtn": {
407
+ "alias": "rolesRefreshBtn";
408
+ "required": false;
409
+ "isSignal": true;
410
+ };
411
+ "rolesClearBtn": {
412
+ "alias": "rolesClearBtn";
413
+ "required": false;
414
+ "isSignal": true;
415
+ };
416
+ "newBtnDisabled": {
417
+ "alias": "newBtnDisabled";
418
+ "required": false;
419
+ "isSignal": true;
420
+ };
421
+ "editBtnDisabled": {
422
+ "alias": "editBtnDisabled";
423
+ "required": false;
424
+ "isSignal": true;
425
+ };
426
+ "removeBtnDisabled": {
427
+ "alias": "removeBtnDisabled";
428
+ "required": false;
429
+ "isSignal": true;
430
+ };
431
+ "copyBtnDisabled": {
432
+ "alias": "copyBtnDisabled";
433
+ "required": false;
434
+ "isSignal": true;
435
+ };
436
+ "excelBtnDisabled": {
437
+ "alias": "excelBtnDisabled";
438
+ "required": false;
439
+ "isSignal": true;
440
+ };
441
+ "csvBtnDisabled": {
442
+ "alias": "csvBtnDisabled";
443
+ "required": false;
444
+ "isSignal": true;
445
+ };
446
+ "pdfBtnDisabled": {
447
+ "alias": "pdfBtnDisabled";
448
+ "required": false;
449
+ "isSignal": true;
450
+ };
451
+ "printBtnDisabled": {
452
+ "alias": "printBtnDisabled";
453
+ "required": false;
454
+ "isSignal": true;
455
+ };
456
+ "refreshBtnDisabled": {
457
+ "alias": "refreshBtnDisabled";
458
+ "required": false;
459
+ "isSignal": true;
460
+ };
461
+ "clearBtnDisabled": {
462
+ "alias": "clearBtnDisabled";
463
+ "required": false;
464
+ "isSignal": true;
465
+ };
466
+ "newBtnTooltip": {
467
+ "alias": "newBtnTooltip";
468
+ "required": false;
469
+ "isSignal": true;
470
+ };
471
+ "editBtnTooltip": {
472
+ "alias": "editBtnTooltip";
473
+ "required": false;
474
+ "isSignal": true;
475
+ };
476
+ "removeBtnTooltip": {
477
+ "alias": "removeBtnTooltip";
478
+ "required": false;
479
+ "isSignal": true;
480
+ };
481
+ "copyBtnTooltip": {
482
+ "alias": "copyBtnTooltip";
483
+ "required": false;
484
+ "isSignal": true;
485
+ };
486
+ "excelBtnTooltip": {
487
+ "alias": "excelBtnTooltip";
488
+ "required": false;
489
+ "isSignal": true;
490
+ };
491
+ "csvBtnTooltip": {
492
+ "alias": "csvBtnTooltip";
493
+ "required": false;
494
+ "isSignal": true;
495
+ };
496
+ "pdfBtnTooltip": {
497
+ "alias": "pdfBtnTooltip";
498
+ "required": false;
499
+ "isSignal": true;
500
+ };
501
+ "printBtnTooltip": {
502
+ "alias": "printBtnTooltip";
503
+ "required": false;
504
+ "isSignal": true;
505
+ };
506
+ "refreshBtnTooltip": {
507
+ "alias": "refreshBtnTooltip";
508
+ "required": false;
509
+ "isSignal": true;
510
+ };
511
+ "clearBtnTooltip": {
512
+ "alias": "clearBtnTooltip";
513
+ "required": false;
514
+ "isSignal": true;
515
+ };
516
+ "newBtnOpt": {
517
+ "alias": "newBtnOpt";
518
+ "required": false;
519
+ "isSignal": true;
520
+ };
521
+ }, {
522
+ "clickedNewBtn": "clickedNewBtn";
523
+ "clickedEditBtn": "clickedEditBtn";
524
+ "clickedRemoveBtn": "clickedRemoveBtn";
525
+ "clickedCopyBtn": "clickedCopyBtn";
526
+ "clickedExcelBtn": "clickedExcelBtn";
527
+ "clickedCsvBtn": "clickedCsvBtn";
528
+ "clickedPdfBtn": "clickedPdfBtn";
529
+ "clickedPrintBtn": "clickedPrintBtn";
530
+ "clickedRefreshBtn": "clickedRefreshBtn";
531
+ "clickedClearBtn": "clickedClearBtn";
532
+ }, never, never, true, never>;
533
+ }
534
+ export interface BaseClass {
535
+ id: number;
536
+ }
537
+ export interface IEditDialogData<T, K = any> {
538
+ action: Action;
539
+ entity: T;
540
+ extraData?: K;
541
+ }
542
+ export declare enum Action {
543
+ Add = "Добавление",
544
+ Edit = "Изменение"
545
+ }
546
+ export declare class AvatarService {
547
+ baseRoute: string;
548
+ private readonly http;
549
+ getAvatarById(idHuman: number): Observable<ArrayBuffer>;
550
+ static ɵfac: i0.ɵɵFactoryDeclaration<AvatarService, never>;
551
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
552
+ }
553
+ export declare class LoaderService {
554
+ private overlayRef;
555
+ private readonly overlay;
556
+ show(): void;
557
+ hide(): void;
558
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoaderService, never>;
559
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
560
+ }
561
+ export declare class LocalStorageService {
562
+ constructor();
563
+ saveData(key: string, value: string): void;
564
+ getData(key: string): string | null;
565
+ removeData(key: string): void;
566
+ clearData(): void;
567
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageService, never>;
568
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
569
+ }
570
+ export declare class SecureImageService {
571
+ private readonly http;
572
+ private readonly sanitizer;
573
+ /**
574
+ * Загружает защищенное изображение и возвращает SafeUrl
575
+ */
576
+ getSecureUrl(relativeUrl: string | null | undefined, apiKey?: string): Observable<SafeUrl | string>;
577
+ static ɵfac: i0.ɵɵFactoryDeclaration<SecureImageService, never>;
578
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
579
+ }
580
+ export declare class ExportService {
581
+ exportCSV(data: any, filename: string | undefined, arrHeader: any, newHeaders: any): void;
582
+ convertToCSV(objArray: any, headerList: any, newHeaders: any): string;
583
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExportService, never>;
584
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
585
+ }
586
+ export interface SseUser {
587
+ id: string;
588
+ name: string;
589
+ }
590
+ export interface Topic {
591
+ getTopic(baseUrl: string, user: SseUser): string;
592
+ }
593
+ export declare class SseService<T> {
594
+ private zone;
595
+ private eventSource;
596
+ private isConnected;
597
+ constructor();
598
+ createSseEventSource(baseUrl: string, user: SseUser, topic: Topic): Observable<T>;
599
+ private reconnectOnError;
600
+ closeSseEventSource(): void;
601
+ static ɵfac: i0.ɵɵFactoryDeclaration<SseService<any>, never>;
602
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
603
+ }
604
+ export declare abstract class BaseEditClass<T> implements OnDestroy {
605
+ /** Заголовок. */
606
+ abstract title: string;
607
+ /** Данные диалога. */
608
+ protected abstract dialogData?: IEditDialogData<T>;
609
+ /** Форма. */
610
+ abstract form?: FormGroup<any>;
611
+ /** Ссылка на диалог. */
612
+ protected abstract dialogRef?: MatDialogRef<any, IEditDialogData<T> | null>;
613
+ /** Сервис индикатор загрузки. */
614
+ protected loaderService: LoaderService;
615
+ /** Сервис уведомлений. */
616
+ protected notificationService: NotificationService;
617
+ /** Сервис ролей. */
618
+ protected roleService: RoleService;
619
+ /** Объект для отписки (вызывается метод unsubscribe при уничтожении компонента). */
620
+ protected subscription: Subscription;
621
+ ngOnDestroy(): void;
622
+ onNoClick(event: MouseEvent): void;
623
+ onSubmit(): void;
624
+ formActionIsAdd(): boolean;
625
+ formActionIsEdit(): boolean;
626
+ /**
627
+ * Определяет видимость элемента на основе ЧЕРНОГО списка ролей.
628
+ * По умолчанию элемент ВИДИМ. Скрывается (возвращает false), если у пользователя
629
+ * есть запрещенная роль или если передан маркер скрытия фичи HIDE_ROLE_MARKER.
630
+ */
631
+ protected isVisibleForForbiddenRoles(forbiddenRoles: string[]): boolean;
632
+ /**
633
+ * Определяет видимость элемента на основе БЕЛОГО списка ролей.
634
+ * По умолчанию элемент СКРЫТ. Показывается (возвращает true), только если у пользователя
635
+ * есть хотя бы одна из разрешенных ролей. Администратор (ADMIN) всегда видит элемент.
636
+ */
637
+ protected isVisibleForAllowedRoles(allowedRoles: string[]): boolean;
638
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseEditClass<any>, never>;
639
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseEditClass<any>, never, never, {}, {}, never, never, true, never>;
640
+ }
641
+ export interface IEntityAction<T> {
642
+ action: EntityAction;
643
+ entity: T;
644
+ }
645
+ export declare enum EntityAction {
646
+ Init = "Инициализация",
647
+ Add = "Добавление",
648
+ Edit = "Изменение",
649
+ Delete = "Удаление"
650
+ }
651
+ export declare class BaseFilterClass implements OnDestroy {
652
+ /** Сервис для работы с LocalStorage. */
653
+ protected localStorageService: LocalStorageService;
654
+ /** Сервис индикатор загрузки. */
655
+ protected loaderService: LoaderService;
656
+ /** Сервис уведомлений. */
657
+ protected notificationService: NotificationService;
658
+ defaultDebounceTime: number;
659
+ /** Объект для отписки (вызывается метод unsubscribe при уничтожении компонента). */
660
+ subscription: Subscription;
661
+ constructor();
662
+ ngOnDestroy(): void;
663
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseFilterClass, never>;
664
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFilterClass, never, never, {}, {}, never, never, true, never>;
665
+ }
666
+ export declare class BaseNavBarMenuClass {
667
+ protected roleService: RoleService;
668
+ protected router: Router;
669
+ /**
670
+ * Определяет видимость пункта меню на основе ЧЕРНОГО списка ролей.
671
+ * По умолчанию пункт меню ВИДИМ. Скрывается (возвращает false), если у пользователя
672
+ * есть запрещенная роль или если передан маркер скрытия фичи HIDE_ROLE_MARKER.
673
+ */
674
+ protected isVisibleForForbiddenRoles(forbiddenRoles: string[]): boolean;
675
+ /**
676
+ * Определяет видимость пункта меню на основе БЕЛОГО списка ролей.
677
+ * По умолчанию пункт меню СКРЫТ. Показывается (возвращает true), только если у пользователя
678
+ * есть хотя бы одна из разрешенных ролей. Администратор (ADMIN) всегда видит элемент.
679
+ */
680
+ protected isVisibleForAllowedRoles(allowedRoles: string[]): boolean;
681
+ /** Нажата средняя кнопка (открыть ссылку в новой вкладке). */
682
+ onMiddleClick(event: MouseEvent, baseUrl: string, menu: MatMenuTrigger): void;
683
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseNavBarMenuClass, never>;
684
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseNavBarMenuClass, never, never, {}, {}, never, never, true, never>;
685
+ }
686
+ export declare enum DialogAction {
687
+ Add = "Добавить",
688
+ Edit = "Изменить",
689
+ Delete = "Удалить",
690
+ None = ""
691
+ }
692
+ export interface DialogData {
693
+ id: string;
694
+ title: string;
695
+ message: string;
696
+ btnNoTitle: string;
697
+ btnYesTitle: string;
698
+ }
699
+ export declare class DialogComponent {
700
+ readonly data: DialogData;
701
+ readonly dialogRef: MatDialogRef<any, any>;
702
+ constructor();
703
+ onNoClick(): void;
704
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogComponent, never>;
705
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogComponent, "ngx-uik-dialog", never, {}, {}, never, never, true, never>;
706
+ }
707
+ export declare class BasePageClass<T> implements OnDestroy {
708
+ protected dialog: MatDialog;
709
+ /** Данные для табличного компонента. */
710
+ data: import("@angular/core").WritableSignal<T[]>;
711
+ /** Количество записей по фильтру. */
712
+ length: import("@angular/core").WritableSignal<number>;
713
+ entityService: any;
714
+ entityType: any;
715
+ entityEditComponent: any;
716
+ extraData?: any;
717
+ defaultPageIndex: number;
718
+ defaultPageSize: number;
719
+ dialogEditWidth: string;
720
+ dialogRemoveWidth: string;
721
+ routeAddress: string;
722
+ /** Сообщение при удалении записи(й). */
723
+ removalMessage: string;
724
+ /** Заголовок страницы. */
725
+ pageTitle: string;
726
+ /**
727
+ * Создание записи: вызывается перед открытием диалога.
728
+ */
729
+ beforeOpenDialogOnNewEvent: fnType<T>;
730
+ /**
731
+ * Редактирование записи: вызывается перед открытием диалога.
732
+ */
733
+ beforeOpenDialogOnEditEvent: fnType<T>;
734
+ /**
735
+ * Создание записи: вызывается перед сохранением объекта.
736
+ */
737
+ beforeSaveOnNewEvent: fnType<T>;
738
+ /**
739
+ * Редактирование записи: вызывается перед сохранением объекта.
740
+ */
741
+ beforeSaveOnEditEvent: fnType<T>;
742
+ /**
743
+ * Создание записи: вызывается после сохранения объекта.
744
+ */
745
+ afterSaveOnNewEvent: fnCbType<T>;
746
+ /**
747
+ * Редактирование записи: вызывается после сохранения объекта.
748
+ */
749
+ afterSaveOnEditEvent: fnCbType<T>;
750
+ editorRoles: string[];
751
+ executeRoles: string[];
752
+ /** Список ролей, для которых скрыть элемент. */
753
+ hideRoles: string[];
754
+ /** Загрузка данных. */
755
+ loadData$: Subject<null>;
756
+ /** Загрузка количества записей. */
757
+ loadLength$: Subject<null>;
758
+ /** Очистка фильтра. */
759
+ clearFilter$: Subject<null>;
760
+ /** Очистка фильтра (для очистки присвоить пустой объект '{}'). */
761
+ clearFilter: any;
762
+ /** Разрешен выбор нескольких строк. */
763
+ allowMultiSelect: boolean;
764
+ /** Выбранные строки в таблице. */
765
+ selected: T[];
766
+ /** Состояние сортировки, пагинации. */
767
+ tableState: ITableState;
768
+ /** Доступность кнопки "Изменить". */
769
+ editBtnDisabled: boolean;
770
+ /** Доступность кнопки "Удалить". */
771
+ removeBtnDisabled: boolean;
772
+ /** Разрешено ли отправлять событие rowDoubleClicked при двойном щелчке мышью. */
773
+ dblClickedEventEnable: boolean;
774
+ opt: IContextMenuOptions<T>[];
775
+ protected router: Router;
776
+ /** Сервис для работы с LocalStorage. */
777
+ protected localStorageService: LocalStorageService;
778
+ /** Сервис индикатор загрузки. */
779
+ protected loaderService: LoaderService;
780
+ /** Сервис уведомлений. */
781
+ protected notificationService: import("@kuzntsv/uikit").INotificationService;
782
+ /** Объект для отписки (вызывается метод unsubscribe при уничтожении компонента). */
783
+ subscription: Subscription;
784
+ constructor();
785
+ ngOnDestroy(): void;
786
+ subscribeToLoadData(fnGetData: fnGetDataType<T>, fnGetCount: fnGetCountType<T>, fnMapEntity?: fnMapEntityType<T>): void;
787
+ onPageChange(pageState: IPageState): void;
788
+ onSortChange(sortState: ISortState): void;
789
+ entityFactory(type: new () => T): T;
790
+ /** Событие изменение выбранных записей. */
791
+ onSelectionChange(selected: T[]): void;
792
+ /** Обновление доступности кнопки "Изменить" - вызывается при изменении выбранных записей. */
793
+ editBtnDisabledUpdate(selected: T[]): void;
794
+ /** Обновление доступности кнопки "Удалить" - вызывается при изменении выбранных записей. */
795
+ removeBtnDisabledUpdate(selected: T[]): void;
796
+ /** Событие двойной клик. */
797
+ onRowDoubleClicked(): void;
798
+ /** Событие создание. */
799
+ newEvent(): void;
800
+ /** Событие редактирование. */
801
+ editEvent(): void;
802
+ /** Событие удаление. */
803
+ removeEvent(): void;
804
+ /** Событие обновления данных. */
805
+ refreshEvent(): void;
806
+ /** Событие очистки фильтра. */
807
+ clearEvent(): void;
808
+ /** Изменение сообщения об удалении. */
809
+ onRemovalMessageChange(message: string): void;
810
+ /** Изменение заголовка страницы. */
811
+ onPageTitleChange(title: string): void;
812
+ openDialog(entityComponent: any, data: IEditDialogData<T>, dialog: any): any;
813
+ openDialogRemoveConfirm(removalMessage: string): MatDialogRef<DialogComponent> | undefined;
814
+ protected onMiddleButton(baseUrl: string, queryParamName?: string, queryParamValue?: string): ($event: MouseEvent, item: T, contextMenu: MatMenuTrigger) => void;
815
+ protected onActionMiddleButton(baseUrl: string, queryParamName?: string, queryParamValue?: string): ($event: MouseEvent, item: T) => void;
816
+ protected dateToString(date: string | number | Date): string | null;
817
+ static ɵfac: i0.ɵɵFactoryDeclaration<BasePageClass<any>, never>;
818
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BasePageClass<any>, never, never, {}, {}, never, never, true, never>;
819
+ }
820
+ export declare abstract class BaseServiceClass<T extends BaseClass> {
821
+ abstract baseRoute: string;
822
+ abstract entityType: any;
823
+ protected countRoute: string;
824
+ protected pageIndexParam: string;
825
+ protected pageSizeParam: string;
826
+ protected sortColumnParam: string;
827
+ protected directionParam: string;
828
+ protected apiContextName: string;
829
+ protected http: HttpClient;
830
+ getObjects(): Observable<T[]>;
831
+ getObject(id: number): any;
832
+ getCount(): Observable<number>;
833
+ getObjectsByPaging(pageIndex: number, pageSize: number, sortColumn: string, direction: string): Observable<T[]>;
834
+ newObject(entity: T): any;
835
+ editObject(entity: T): any;
836
+ deleteObject(entity: T): any;
837
+ protected getParams(pageIndex: number, pageSize: number, sortColumn: string, direction: string): HttpParams;
838
+ protected getHttpContext(): {
839
+ context?: HttpContext;
840
+ };
841
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseServiceClass<any>, never>;
842
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
843
+ }
844
+ export declare class DisableIfRoleDirective {
845
+ readonly forbiddenRoles: import("@angular/core").InputSignal<string[]>;
846
+ private readonly el;
847
+ private readonly roleService;
848
+ constructor();
849
+ static ɵfac: i0.ɵɵFactoryDeclaration<DisableIfRoleDirective, never>;
850
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DisableIfRoleDirective, "[ngxUikDisableIfRole]", never, {
851
+ "forbiddenRoles": {
852
+ "alias": "ngxUikDisableIfRole";
853
+ "required": false;
854
+ "isSignal": true;
855
+ };
856
+ }, {}, never, never, true, never>;
857
+ }
858
+ export declare class HideIfForbiddenRoleDirective {
859
+ readonly forbiddenRoles: import("@angular/core").InputSignal<string[]>;
860
+ private readonly el;
861
+ private readonly roleService;
862
+ constructor();
863
+ static ɵfac: i0.ɵɵFactoryDeclaration<HideIfForbiddenRoleDirective, never>;
864
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HideIfForbiddenRoleDirective, "[ngxUikHideIfForbiddenRole]", never, {
865
+ "forbiddenRoles": {
866
+ "alias": "ngxUikHideIfForbiddenRole";
867
+ "required": false;
868
+ "isSignal": true;
869
+ };
870
+ }, {}, never, never, true, never>;
871
+ }
872
+ export declare class SetValueDirective {
873
+ readonly value: import("@angular/core").InputSignal<any>;
874
+ private readonly ngControl;
875
+ constructor();
876
+ static ɵfac: i0.ɵɵFactoryDeclaration<SetValueDirective, never>;
877
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SetValueDirective, "[setValue]", never, {
878
+ "value": {
879
+ "alias": "setValue";
880
+ "required": false;
881
+ "isSignal": true;
882
+ };
883
+ }, {}, never, never, true, never>;
884
+ }
885
+ export declare const authGuard: (allowedRoles: string[]) => CanActivateFn;
886
+ export declare const redirectGuard: CanActivateFn;
683
887
  /**
684
888
  * Пускает на роут только тех пользователей, у которых есть роли из списка allowedRoles.
685
889
  * ADMIN всегда имеет доступ.
686
890
  */
687
- declare const roleGuard: (allowedRoles: string[]) => CanActivateFn;
688
-
689
- declare class LoggerService {
690
- logPrefix: string;
691
- private isProduction;
692
- private readonly config;
693
- constructor();
694
- log(message: string, ...args: any[]): void;
695
- error(message: string, ...args: any[]): void;
696
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoggerService, never>;
697
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<LoggerService>;
698
- }
699
-
700
- interface LoggerConfig {
701
- isProduction: boolean;
702
- logLevel?: 'debug' | 'info' | 'warn' | 'error';
703
- }
704
- declare const LOGGER_CONFIG: InjectionToken<LoggerConfig>;
705
-
706
- declare function provideLogger(config: LoggerConfig): EnvironmentProviders;
707
-
708
- interface Deserializable {
709
- deserialize(input: any): this;
710
- }
711
-
891
+ export declare const roleGuard: (allowedRoles: string[]) => CanActivateFn;
892
+ export declare class LoggerService {
893
+ logPrefix: string;
894
+ private isProduction;
895
+ private readonly config;
896
+ constructor();
897
+ log(message: string, ...args: any[]): void;
898
+ error(message: string, ...args: any[]): void;
899
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoggerService, never>;
900
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
901
+ }
902
+ export interface LoggerConfig {
903
+ isProduction: boolean;
904
+ logLevel?: 'debug' | 'info' | 'warn' | 'error';
905
+ }
906
+ export declare const LOGGER_CONFIG: InjectionToken<LoggerConfig>;
907
+ export declare function provideLogger(config: LoggerConfig): EnvironmentProviders;
908
+ export interface Deserializable {
909
+ deserialize(input: any): this;
910
+ }
712
911
  declare class SecUserView implements Deserializable {
713
- id: number;
714
- idHuman: number;
715
- loginAD: string;
716
- dept: number;
717
- tabnum: number;
718
- lastname: string;
719
- firstname: string;
720
- middlename: string;
721
- fio: string;
722
- dateHuman?: Date;
723
- profession: string;
724
- constructor(init: SecUserView);
725
- deserialize(input: any): this;
726
- }
727
-
728
- declare class SecUser implements Deserializable {
729
- id: number;
730
- login: string;
731
- fio: string;
732
- dept: number;
733
- tabnum: number;
734
- userView: SecUserView | undefined;
735
- constructor(init: SecUser);
736
- deserialize(input: any): this;
737
- }
738
-
739
- declare class SafePipe implements PipeTransform {
740
- private readonly sanitizer;
741
- transform(url: string | SafeUrl | null | undefined): SafeUrl;
742
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SafePipe, never>;
743
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<SafePipe, "safe", true>;
744
- }
745
-
746
- declare class TimePipe implements PipeTransform {
747
- transform(value: number): string;
748
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimePipe, never>;
749
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<TimePipe, "time", true>;
750
- }
751
-
752
- declare class TruncatePipe implements PipeTransform {
753
- transform(value: string, args: any[]): string;
754
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TruncatePipe, never>;
755
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<TruncatePipe, "truncate", true>;
756
- }
757
-
758
- interface ChipItem {
759
- value: string;
760
- viewValue: string;
761
- }
762
-
763
- declare class BaseMatChipComponent {
764
- items: _angular_core.InputSignal<ChipItem[]>;
765
- selectedItemsInput: _angular_core.InputSignal<string[]>;
766
- title: _angular_core.InputSignal<string>;
767
- selectedItemsChange: _angular_core.OutputEmitterRef<string[]>;
768
- readonly input: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
769
- separatorKeysCodes: number[];
770
- inputCtrl: FormControl<any>;
771
- filteredItems$?: Observable<ChipItem[]>;
772
- selectedItems: ChipItem[];
773
- constructor();
774
- remove(value: string): void;
775
- selected(event: MatAutocompleteSelectedEvent): void;
776
- private _filter;
777
- onCloseClick($event: MouseEvent): void;
778
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseMatChipComponent, never>;
779
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseMatChipComponent, "ngx-uik-chip-input-autocomplete", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "selectedItemsInput": { "alias": "selectedItemsInput"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "selectedItemsChange": "selectedItemsChange"; }, never, never, true, never>;
780
- }
781
-
782
- interface DateRange {
783
- begin: string;
784
- end: string;
785
- }
786
- declare function dateFormat(date: Date): string;
787
-
788
- declare const MY_FORMATS: {
789
- parse: {
790
- dateInput: string;
791
- };
792
- display: {
793
- dateInput: string;
794
- monthYearLabel: string;
795
- dateA11yLabel: string;
796
- monthYearA11yLabel: string;
912
+ id: number;
913
+ idHuman: number;
914
+ loginAD: string;
915
+ dept: number;
916
+ tabnum: number;
917
+ lastname: string;
918
+ firstname: string;
919
+ middlename: string;
920
+ fio: string;
921
+ dateHuman?: Date;
922
+ profession: string;
923
+ constructor(init: SecUserView);
924
+ deserialize(input: any): this;
925
+ }
926
+ export declare class SecUser implements Deserializable {
927
+ id: number;
928
+ login: string;
929
+ fio: string;
930
+ dept: number;
931
+ tabnum: number;
932
+ userView: SecUserView | undefined;
933
+ constructor(init: SecUser);
934
+ deserialize(input: any): this;
935
+ }
936
+ export declare class SafePipe implements PipeTransform {
937
+ private readonly sanitizer;
938
+ transform(url: string | SafeUrl | null | undefined): SafeUrl;
939
+ static ɵfac: i0.ɵɵFactoryDeclaration<SafePipe, never>;
940
+ static ɵpipe: i0.ɵɵPipeDeclaration<SafePipe, "safe", true>;
941
+ }
942
+ export declare class TimePipe implements PipeTransform {
943
+ transform(value: number): string;
944
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimePipe, never>;
945
+ static ɵpipe: i0.ɵɵPipeDeclaration<TimePipe, "time", true>;
946
+ }
947
+ export declare class TruncatePipe implements PipeTransform {
948
+ transform(value: string, args: any[]): string;
949
+ static ɵfac: i0.ɵɵFactoryDeclaration<TruncatePipe, never>;
950
+ static ɵpipe: i0.ɵɵPipeDeclaration<TruncatePipe, "truncate", true>;
951
+ }
952
+ export interface ChipItem {
953
+ value: string;
954
+ viewValue: string;
955
+ }
956
+ export declare class BaseMatChipComponent {
957
+ items: import("@angular/core").InputSignal<ChipItem[]>;
958
+ selectedItemsInput: import("@angular/core").InputSignal<string[]>;
959
+ title: import("@angular/core").InputSignal<string>;
960
+ selectedItemsChange: import("@angular/core").OutputEmitterRef<string[]>;
961
+ readonly input: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
962
+ separatorKeysCodes: number[];
963
+ inputCtrl: FormControl<any>;
964
+ filteredItems$?: Observable<ChipItem[]>;
965
+ selectedItems: ChipItem[];
966
+ constructor();
967
+ remove(value: string): void;
968
+ selected(event: MatAutocompleteSelectedEvent): void;
969
+ private _filter;
970
+ onCloseClick($event: MouseEvent): void;
971
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseMatChipComponent, never>;
972
+ static ɵcmp: i0.ɵɵComponentDeclaration<BaseMatChipComponent, "ngx-uik-chip-input-autocomplete", never, {
973
+ "items": {
974
+ "alias": "items";
975
+ "required": false;
976
+ "isSignal": true;
977
+ };
978
+ "selectedItemsInput": {
979
+ "alias": "selectedItemsInput";
980
+ "required": false;
981
+ "isSignal": true;
797
982
  };
983
+ "title": {
984
+ "alias": "title";
985
+ "required": false;
986
+ "isSignal": true;
987
+ };
988
+ }, {
989
+ "selectedItemsChange": "selectedItemsChange";
990
+ }, never, never, true, never>;
991
+ }
992
+ export declare class CustomDateAdapter extends NativeDateAdapter {
993
+ parse(value: any): Date | null;
994
+ format(date: Date, displayFormat: Object): string;
995
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomDateAdapter, never>;
996
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
997
+ }
998
+ export declare const MY_NATIVE_FORMATS: {
999
+ parse: {
1000
+ dateInput: string;
1001
+ };
1002
+ display: {
1003
+ dateInput: string;
1004
+ monthYearLabel: {
1005
+ year: string;
1006
+ month: string;
1007
+ };
1008
+ dateA11yLabel: {
1009
+ year: string;
1010
+ month: string;
1011
+ day: string;
1012
+ };
1013
+ monthYearA11yLabel: {
1014
+ year: string;
1015
+ month: string;
1016
+ };
1017
+ };
798
1018
  };
799
-
800
- declare class DateRangeInputComponent implements OnInit, OnDestroy {
801
- label: _angular_core.InputSignal<string>;
802
- dateRange: _angular_core.InputSignal<DateRange>;
803
- minDate: _angular_core.InputSignal<Date>;
804
- clearInput: _angular_core.InputSignal<any>;
805
- required: _angular_core.InputSignal<boolean>;
806
- dateRangeChange: _angular_core.OutputEmitterRef<DateRange>;
807
- form: FormGroup<{
808
- begin: FormControl<any>;
809
- end: FormControl<any>;
810
- }>;
811
- subscription: Subscription;
812
- constructor();
813
- ngOnInit(): void;
814
- ngOnDestroy(): void;
815
- private rangeToDateDateRange;
816
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateRangeInputComponent, never>;
817
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateRangeInputComponent, "ngx-uik-date-range-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "dateRange": { "alias": "dateRange"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "clearInput": { "alias": "clearInput"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "dateRangeChange": "dateRangeChange"; }, never, never, true, never>;
818
- }
819
-
820
- declare class EmptyComponent {
821
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<EmptyComponent, never>;
822
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyComponent, "app-empty-route-guard-holder", never, {}, {}, never, never, true, never>;
823
- }
824
-
825
- declare class NavBarComponent extends BaseNavBarMenuClass {
826
- /** Видимость панели, когда loggedIn === false. */
827
- visibleOnLogout: _angular_core.InputSignal<boolean>;
828
- /** Видимость аватара. */
829
- visibleAvatar: _angular_core.InputSignal<boolean>;
830
- /** Видимость кнопки "Выйти". */
831
- visibleLogoutBtn: _angular_core.InputSignal<boolean>;
832
- /** Признак, что пользователь авторизован. */
833
- loggedIn: _angular_core.InputSignal<boolean>;
834
- /** ФИО пользователя. */
835
- fioUser: _angular_core.InputSignal<string>;
836
- /** Всплывающая подсказка о пользователе. */
837
- userTooltip: _angular_core.InputSignal<string>;
838
- /** URL аватара */
839
- avatarURL: _angular_core.InputSignal<string | SafeUrl>;
840
- /** Нажата кнопка "Выйти". */
841
- logout: _angular_core.OutputEmitterRef<string>;
842
- private readonly dialog;
843
- constructor();
844
- onLogout(): void;
845
- openDialog(): void;
846
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavBarComponent, never>;
847
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavBarComponent, "ngx-uik-navbar", never, { "visibleOnLogout": { "alias": "visibleOnLogout"; "required": false; "isSignal": true; }; "visibleAvatar": { "alias": "visibleAvatar"; "required": false; "isSignal": true; }; "visibleLogoutBtn": { "alias": "visibleLogoutBtn"; "required": false; "isSignal": true; }; "loggedIn": { "alias": "loggedIn"; "required": false; "isSignal": true; }; "fioUser": { "alias": "fioUser"; "required": false; "isSignal": true; }; "userTooltip": { "alias": "userTooltip"; "required": false; "isSignal": true; }; "avatarURL": { "alias": "avatarURL"; "required": false; "isSignal": true; }; }, { "logout": "logout"; }, never, ["*"], true, never>;
848
- }
849
-
850
- declare class NotFoundComponent {
851
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotFoundComponent, never>;
852
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NotFoundComponent, "ngx-uik-not-found", never, {}, {}, never, never, true, never>;
853
- }
854
-
855
- declare class ProgressSpinnerComponent implements AfterViewInit {
856
- private readonly cdRef;
857
- ngAfterViewInit(): void;
858
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressSpinnerComponent, never>;
859
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressSpinnerComponent, "ngx-uik-loader", never, {}, {}, never, never, true, never>;
860
- }
861
-
1019
+ export interface DateRange {
1020
+ begin: string;
1021
+ end: string;
1022
+ }
1023
+ export declare function dateFormat(date: Date | null | undefined): string;
1024
+ export declare class DateRangeInputComponent implements OnInit, OnDestroy {
1025
+ label: import("@angular/core").InputSignal<string>;
1026
+ dateRange: import("@angular/core").InputSignal<DateRange>;
1027
+ minDate: import("@angular/core").InputSignal<Date>;
1028
+ clearInput: import("@angular/core").InputSignal<any>;
1029
+ required: import("@angular/core").InputSignal<boolean>;
1030
+ dateRangeChange: import("@angular/core").OutputEmitterRef<DateRange>;
1031
+ form: FormGroup<{
1032
+ begin: FormControl<any>;
1033
+ end: FormControl<any>;
1034
+ }>;
1035
+ subscription: Subscription;
1036
+ constructor();
1037
+ ngOnInit(): void;
1038
+ ngOnDestroy(): void;
1039
+ private rangeToDateDateRange;
1040
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeInputComponent, never>;
1041
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeInputComponent, "ngx-uik-date-range-input", never, {
1042
+ "label": {
1043
+ "alias": "label";
1044
+ "required": false;
1045
+ "isSignal": true;
1046
+ };
1047
+ "dateRange": {
1048
+ "alias": "dateRange";
1049
+ "required": false;
1050
+ "isSignal": true;
1051
+ };
1052
+ "minDate": {
1053
+ "alias": "minDate";
1054
+ "required": false;
1055
+ "isSignal": true;
1056
+ };
1057
+ "clearInput": {
1058
+ "alias": "clearInput";
1059
+ "required": false;
1060
+ "isSignal": true;
1061
+ };
1062
+ "required": {
1063
+ "alias": "required";
1064
+ "required": false;
1065
+ "isSignal": true;
1066
+ };
1067
+ }, {
1068
+ "dateRangeChange": "dateRangeChange";
1069
+ }, never, never, true, never>;
1070
+ }
1071
+ export declare class EmptyComponent {
1072
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmptyComponent, never>;
1073
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmptyComponent, "app-empty-route-guard-holder", never, {}, {}, never, never, true, never>;
1074
+ }
1075
+ export declare class NavBarComponent extends BaseNavBarMenuClass {
1076
+ /** Видимость панели, когда loggedIn === false. */
1077
+ visibleOnLogout: import("@angular/core").InputSignal<boolean>;
1078
+ /** Видимость аватара. */
1079
+ visibleAvatar: import("@angular/core").InputSignal<boolean>;
1080
+ /** Видимость кнопки "Выйти". */
1081
+ visibleLogoutBtn: import("@angular/core").InputSignal<boolean>;
1082
+ /** Признак, что пользователь авторизован. */
1083
+ loggedIn: import("@angular/core").InputSignal<boolean>;
1084
+ /** ФИО пользователя. */
1085
+ fioUser: import("@angular/core").InputSignal<string>;
1086
+ /** Всплывающая подсказка о пользователе. */
1087
+ userTooltip: import("@angular/core").InputSignal<string>;
1088
+ /** URL аватара */
1089
+ avatarURL: import("@angular/core").InputSignal<string | SafeUrl>;
1090
+ /** Нажата кнопка "Выйти". */
1091
+ logout: import("@angular/core").OutputEmitterRef<string>;
1092
+ private readonly dialog;
1093
+ constructor();
1094
+ onLogout(): void;
1095
+ openDialog(): void;
1096
+ static ɵfac: i0.ɵɵFactoryDeclaration<NavBarComponent, never>;
1097
+ static ɵcmp: i0.ɵɵComponentDeclaration<NavBarComponent, "ngx-uik-navbar", never, {
1098
+ "visibleOnLogout": {
1099
+ "alias": "visibleOnLogout";
1100
+ "required": false;
1101
+ "isSignal": true;
1102
+ };
1103
+ "visibleAvatar": {
1104
+ "alias": "visibleAvatar";
1105
+ "required": false;
1106
+ "isSignal": true;
1107
+ };
1108
+ "visibleLogoutBtn": {
1109
+ "alias": "visibleLogoutBtn";
1110
+ "required": false;
1111
+ "isSignal": true;
1112
+ };
1113
+ "loggedIn": {
1114
+ "alias": "loggedIn";
1115
+ "required": false;
1116
+ "isSignal": true;
1117
+ };
1118
+ "fioUser": {
1119
+ "alias": "fioUser";
1120
+ "required": false;
1121
+ "isSignal": true;
1122
+ };
1123
+ "userTooltip": {
1124
+ "alias": "userTooltip";
1125
+ "required": false;
1126
+ "isSignal": true;
1127
+ };
1128
+ "avatarURL": {
1129
+ "alias": "avatarURL";
1130
+ "required": false;
1131
+ "isSignal": true;
1132
+ };
1133
+ }, {
1134
+ "logout": "logout";
1135
+ }, never, ["*"], true, never>;
1136
+ }
1137
+ export declare class NotFoundComponent {
1138
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotFoundComponent, never>;
1139
+ static ɵcmp: i0.ɵɵComponentDeclaration<NotFoundComponent, "ngx-uik-not-found", never, {}, {}, never, never, true, never>;
1140
+ }
1141
+ export declare class ProgressSpinnerComponent implements AfterViewInit {
1142
+ private readonly cdRef;
1143
+ ngAfterViewInit(): void;
1144
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProgressSpinnerComponent, never>;
1145
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProgressSpinnerComponent, "ngx-uik-loader", never, {}, {}, never, never, true, never>;
1146
+ }
862
1147
  interface SelectItem$1 {
863
- value: string;
864
- viewValue: string;
865
- }
866
-
867
- declare class BaseSelectAutocompleteWithVsComponent implements OnInit, OnDestroy {
868
- items: _angular_core.InputSignal<SelectItem$1[]>;
869
- selectedItemInput: _angular_core.InputSignal<SelectItem$1 | undefined>;
870
- title: _angular_core.InputSignal<string>;
871
- isVisible: _angular_core.InputSignal<boolean>;
872
- isRequired: _angular_core.InputSignal<boolean>;
873
- isDisabled: _angular_core.InputSignal<boolean>;
874
- width: _angular_core.InputSignal<string>;
875
- selectedItem: _angular_core.WritableSignal<SelectItem$1 | undefined>;
876
- selectedItemChange: _angular_core.OutputEmitterRef<string>;
877
- height: string;
878
- inputCtrl: FormControl<any>;
879
- filteredItems: SelectItem$1[];
880
- subscription: Subscription;
881
- constructor();
882
- ngOnInit(): void;
883
- ngOnDestroy(): void;
884
- onSelectedItemChange(item: any): void;
885
- onClearClick($event: MouseEvent): void;
886
- displayWithFn(lookup: any): any;
887
- private setFileredItems;
888
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseSelectAutocompleteWithVsComponent, never>;
889
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseSelectAutocompleteWithVsComponent, "ngx-uik-select-autocomplete-with-vs", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "selectedItemInput": { "alias": "selectedItemInput"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "isVisible": { "alias": "isVisible"; "required": false; "isSignal": true; }; "isRequired": { "alias": "isRequired"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "selectedItemChange": "selectedItemChange"; }, never, never, true, never>;
890
- }
891
-
892
- interface SelectItem {
893
- value: string;
894
- viewValue: string;
895
- }
896
-
897
- interface SelectGroup {
898
- name: string;
899
- items: SelectItem[];
900
- }
901
-
902
- declare class BaseSelectWithGroupComponent {
903
- groups: _angular_core.InputSignal<SelectGroup[]>;
904
- selectedItems: _angular_core.InputSignal<string[]>;
905
- title: _angular_core.InputSignal<string>;
906
- selectedItemsChange: _angular_core.OutputEmitterRef<string[]>;
907
- separatorKeysCodes: number[];
908
- control: FormControl<number[] | null>;
909
- constructor();
910
- selectionChange($event: any): void;
911
- onClearClick($event: MouseEvent): void;
912
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseSelectWithGroupComponent, never>;
913
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseSelectWithGroupComponent, "ngx-uik-select-with-group", never, { "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "selectedItemsChange": "selectedItemsChange"; }, never, never, true, never>;
914
- }
915
-
916
- export { Action, AvatarService, BaseEditClass, BaseFilterClass, BaseMatChipComponent, BaseNavBarMenuClass, BasePageClass, BaseSelectAutocompleteWithVsComponent, BaseSelectWithGroupComponent, BaseServiceClass, BaseToolbarComponent, DateRangeInputComponent, DialogAction, DialogComponent, DisableIfRoleDirective, EmptyComponent, EntityAction, ExportService, HideIfForbiddenRoleDirective, LOGGER_CONFIG, LoaderService, LocalStorageService, LoggerService, LoginPageComponent, MY_FORMATS, NavBarComponent, NotFoundComponent, ProgressSpinnerComponent, SafePipe, SecUser, SecureImageService, SetValueDirective, SseService, TableComponent, TimePipe, TruncatePipe, authGuard, dateFormat, provideLogger, redirectGuard, roleGuard };
917
- export type { BaseClass, ChipItem, DateRange, Deserializable, DialogData, IColumnOptions, IContextMenuOptions, IEditDialogData, IEntityAction, IPageState, ISortState, ITableState, LoggerConfig, ObjectKeys, SelectGroup, SelectItem, SortDirection, SseUser, Topic, fnCbType, fnGetCountType, fnGetDataType, fnMapEntityType, fnType };
1148
+ value: string;
1149
+ viewValue: string;
1150
+ }
1151
+ export declare class BaseSelectAutocompleteWithVsComponent implements OnInit, OnDestroy {
1152
+ items: import("@angular/core").InputSignal<SelectItem$1[]>;
1153
+ selectedItemInput: import("@angular/core").InputSignal<SelectItem$1 | undefined>;
1154
+ title: import("@angular/core").InputSignal<string>;
1155
+ isVisible: import("@angular/core").InputSignal<boolean>;
1156
+ isRequired: import("@angular/core").InputSignal<boolean>;
1157
+ isDisabled: import("@angular/core").InputSignal<boolean>;
1158
+ width: import("@angular/core").InputSignal<string>;
1159
+ selectedItem: import("@angular/core").WritableSignal<SelectItem$1 | undefined>;
1160
+ selectedItemChange: import("@angular/core").OutputEmitterRef<string>;
1161
+ height: string;
1162
+ inputCtrl: FormControl<any>;
1163
+ filteredItems: SelectItem$1[];
1164
+ subscription: Subscription;
1165
+ constructor();
1166
+ ngOnInit(): void;
1167
+ ngOnDestroy(): void;
1168
+ onSelectedItemChange(item: any): void;
1169
+ onClearClick($event: MouseEvent): void;
1170
+ displayWithFn(lookup: any): any;
1171
+ private setFileredItems;
1172
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseSelectAutocompleteWithVsComponent, never>;
1173
+ static ɵcmp: i0.ɵɵComponentDeclaration<BaseSelectAutocompleteWithVsComponent, "ngx-uik-select-autocomplete-with-vs", never, {
1174
+ "items": {
1175
+ "alias": "items";
1176
+ "required": false;
1177
+ "isSignal": true;
1178
+ };
1179
+ "selectedItemInput": {
1180
+ "alias": "selectedItemInput";
1181
+ "required": false;
1182
+ "isSignal": true;
1183
+ };
1184
+ "title": {
1185
+ "alias": "title";
1186
+ "required": false;
1187
+ "isSignal": true;
1188
+ };
1189
+ "isVisible": {
1190
+ "alias": "isVisible";
1191
+ "required": false;
1192
+ "isSignal": true;
1193
+ };
1194
+ "isRequired": {
1195
+ "alias": "isRequired";
1196
+ "required": false;
1197
+ "isSignal": true;
1198
+ };
1199
+ "isDisabled": {
1200
+ "alias": "isDisabled";
1201
+ "required": false;
1202
+ "isSignal": true;
1203
+ };
1204
+ "width": {
1205
+ "alias": "width";
1206
+ "required": false;
1207
+ "isSignal": true;
1208
+ };
1209
+ }, {
1210
+ "selectedItemChange": "selectedItemChange";
1211
+ }, never, never, true, never>;
1212
+ }
1213
+ export interface SelectItem {
1214
+ value: string;
1215
+ viewValue: string;
1216
+ }
1217
+ export interface SelectGroup {
1218
+ name: string;
1219
+ items: SelectItem[];
1220
+ }
1221
+ export declare class BaseSelectWithGroupComponent {
1222
+ groups: import("@angular/core").InputSignal<SelectGroup[]>;
1223
+ selectedItems: import("@angular/core").InputSignal<string[]>;
1224
+ title: import("@angular/core").InputSignal<string>;
1225
+ selectedItemsChange: import("@angular/core").OutputEmitterRef<string[]>;
1226
+ separatorKeysCodes: number[];
1227
+ control: FormControl<number[] | null>;
1228
+ constructor();
1229
+ selectionChange($event: any): void;
1230
+ onClearClick($event: MouseEvent): void;
1231
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseSelectWithGroupComponent, never>;
1232
+ static ɵcmp: i0.ɵɵComponentDeclaration<BaseSelectWithGroupComponent, "ngx-uik-select-with-group", never, {
1233
+ "groups": {
1234
+ "alias": "groups";
1235
+ "required": false;
1236
+ "isSignal": true;
1237
+ };
1238
+ "selectedItems": {
1239
+ "alias": "selectedItems";
1240
+ "required": false;
1241
+ "isSignal": true;
1242
+ };
1243
+ "title": {
1244
+ "alias": "title";
1245
+ "required": false;
1246
+ "isSignal": true;
1247
+ };
1248
+ }, {
1249
+ "selectedItemsChange": "selectedItemsChange";
1250
+ }, never, never, true, never>;
1251
+ }