@kuzntsv/uikit 1.0.59 → 1.0.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kuzntsv/uikit",
3
- "version": "1.0.59",
3
+ "version": "1.0.60",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.2.2",
6
6
  "@angular/core": "^22.2.2",
@@ -1,6 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import { AfterViewInit, ElementRef, EnvironmentProviders, InjectionToken, OnDestroy, OnInit, PipeTransform, WritableSignal } from "@angular/core";
3
3
  import { NotificationService, RoleService } from "@kuzntsv/uikit";
4
+ import z, { z as z$1 } from "zod";
4
5
  import { HttpClient, HttpContext, HttpParams, HttpResourceRef } from "@angular/common/http";
5
6
  import { Observable, Subject, Subscription } from "rxjs";
6
7
  import { SelectionModel } from "@angular/cdk/collections";
@@ -8,7 +9,6 @@ import { MatMenuTrigger } from "@angular/material/menu";
8
9
  import { MatPaginator } from "@angular/material/paginator";
9
10
  import { MatSort } from "@angular/material/sort";
10
11
  import { MatTableDataSource } from "@angular/material/table";
11
- import z, { z as z$1 } from "zod";
12
12
  import { FormControl, FormGroup } from "@angular/forms";
13
13
  import { MatDialog, MatDialogRef } from "@angular/material/dialog";
14
14
  import { SafeUrl } from "@angular/platform-browser";
@@ -57,15 +57,24 @@ export type fnGetCountType<T> = () => Observable<number>;
57
57
  export type fnGetDataResType<T> = () => HttpResourceRef<T[]>;
58
58
  export type fnGetCountResType<T> = () => HttpResourceRef<number>;
59
59
  export type fnMapEntityType<T> = () => (item: T) => T;
60
- export interface ISortState {
61
- sortActive: string;
62
- sortDirection: SortDirection;
63
- }
64
- export interface IPageState {
65
- pageIndex: number;
66
- pageSize: number;
67
- }
68
- export interface ITableState extends ISortState, IPageState {}
60
+ export declare const SortDirectionSchema: z.ZodCustom<SortDirection, SortDirection>;
61
+ export declare const SortStateSchema: z.ZodObject<{
62
+ sortActive: z.ZodString;
63
+ sortDirection: z.ZodCustom<SortDirection, SortDirection>;
64
+ }, z.core.$strip>;
65
+ export declare const PageStateSchema: z.ZodObject<{
66
+ pageIndex: z.ZodNumber;
67
+ pageSize: z.ZodNumber;
68
+ }, z.core.$strip>;
69
+ export declare const TableStateSchema: z.ZodObject<{
70
+ sortActive: z.ZodString;
71
+ sortDirection: z.ZodCustom<SortDirection, SortDirection>;
72
+ pageIndex: z.ZodNumber;
73
+ pageSize: z.ZodNumber;
74
+ }, z.core.$strip>;
75
+ export type SortState = z.infer<typeof SortStateSchema>;
76
+ export type PageState = z.infer<typeof PageStateSchema>;
77
+ export type TableState = z.infer<typeof TableStateSchema>;
69
78
  /** Настройки действий в колонке таблицы. */
70
79
  interface IColumnActionOptions<T> {
71
80
  /** Заголовок. */
@@ -163,7 +172,12 @@ export declare class TableComponent<T> implements OnInit, AfterViewInit, OnDestr
163
172
  /** Настройки колонок. */
164
173
  columnOptions: import("@angular/core").InputSignal<IColumnOptions<T>[]>;
165
174
  /** Состояние сортировки, пагинации. */
166
- tableState: import("@angular/core").InputSignal<ITableState>;
175
+ tableState: import("@angular/core").InputSignal<{
176
+ sortActive: string;
177
+ sortDirection: import("@kuzntsv/uikit/ui").SortDirection;
178
+ pageIndex: number;
179
+ pageSize: number;
180
+ }>;
167
181
  /** Разрешен выбор нескольких строк. */
168
182
  allowMultiSelect: import("@angular/core").InputSignal<boolean>;
169
183
  /** Список элементов контекстного меню. */
@@ -173,9 +187,15 @@ export declare class TableComponent<T> implements OnInit, AfterViewInit, OnDestr
173
187
  /** Отображать строку с итогом. */
174
188
  footer: import("@angular/core").InputSignal<boolean>;
175
189
  /** Изменение страницы. */
176
- pageStateChange: import("@angular/core").OutputEmitterRef<IPageState>;
190
+ pageStateChange: import("@angular/core").OutputEmitterRef<{
191
+ pageIndex: number;
192
+ pageSize: number;
193
+ }>;
177
194
  /** Изменение сортировки. */
178
- sortStateChange: import("@angular/core").OutputEmitterRef<ISortState>;
195
+ sortStateChange: import("@angular/core").OutputEmitterRef<{
196
+ sortActive: string;
197
+ sortDirection: import("@kuzntsv/uikit/ui").SortDirection;
198
+ }>;
179
199
  /** Изменение выбранных записей. */
180
200
  selectionChange: import("@angular/core").OutputEmitterRef<T[]>;
181
201
  /** Двойной щелчек ЛКМ*/
@@ -183,8 +203,14 @@ export declare class TableComponent<T> implements OnInit, AfterViewInit, OnDestr
183
203
  readonly sort: import("@angular/core").Signal<MatSort | undefined>;
184
204
  readonly paginator: import("@angular/core").Signal<MatPaginator | undefined>;
185
205
  readonly contextMenu: import("@angular/core").Signal<MatMenuTrigger | undefined>;
186
- pageState: import("@angular/core").WritableSignal<IPageState>;
187
- sortState: import("@angular/core").WritableSignal<ISortState>;
206
+ pageState: import("@angular/core").WritableSignal<{
207
+ pageIndex: number;
208
+ pageSize: number;
209
+ }>;
210
+ sortState: import("@angular/core").WritableSignal<{
211
+ sortActive: string;
212
+ sortDirection: import("@kuzntsv/uikit/ui").SortDirection;
213
+ }>;
188
214
  /** Выбранная строка, для которого будет показываться меню при нажатии правой кнопки мыши. */
189
215
  itemForMenu?: T;
190
216
  /** Позиция в которой отображается контекстное меню. */
@@ -778,7 +804,7 @@ export declare class BasePageClass<T> implements OnDestroy {
778
804
  /** Выбранные строки в таблице. */
779
805
  selected: T[];
780
806
  /** Состояние сортировки, пагинации. */
781
- tableState: ITableState;
807
+ tableState: TableState;
782
808
  /** Доступность кнопки "Изменить". */
783
809
  editBtnDisabled: boolean;
784
810
  /** Доступность кнопки "Удалить". */
@@ -798,8 +824,8 @@ export declare class BasePageClass<T> implements OnDestroy {
798
824
  constructor();
799
825
  ngOnDestroy(): void;
800
826
  subscribeToLoadData(fnGetData: fnGetDataType<T>, fnGetCount: fnGetCountType<T>, fnMapEntity?: fnMapEntityType<T>): void;
801
- onPageChange(pageState: IPageState): void;
802
- onSortChange(sortState: ISortState): void;
827
+ onPageChange(pageState: PageState): void;
828
+ onSortChange(sortState: SortState): void;
803
829
  /** Событие изменение выбранных записей. */
804
830
  onSelectionChange(selected: T[]): void;
805
831
  /** Обновление доступности кнопки "Изменить" - вызывается при изменении выбранных записей. */
@@ -1065,7 +1091,12 @@ export declare abstract class BaseSignalPageClass<T extends BaseSchemaClass, F e
1065
1091
  /** Очистка фильтра. (для очистки присвоить пустой объект '{}'). */
1066
1092
  clearFilters: import("@angular/core").WritableSignal<any>;
1067
1093
  /** Состояние сортировки, пагинации. */
1068
- tableState: import("@angular/core").WritableSignal<ITableState>;
1094
+ tableState: import("@angular/core").WritableSignal<{
1095
+ sortActive: string;
1096
+ sortDirection: SortDirection;
1097
+ pageIndex: number;
1098
+ pageSize: number;
1099
+ }>;
1069
1100
  constructor();
1070
1101
  ngOnDestroy(): void;
1071
1102
  /** Установка значение фильтра.
@@ -1073,8 +1104,8 @@ export declare abstract class BaseSignalPageClass<T extends BaseSchemaClass, F e
1073
1104
  * @param value - значение.
1074
1105
  */
1075
1106
  setFilter<K extends keyof F>(key: K, value: F[K]): void;
1076
- onPageChange(pageState: IPageState): void;
1077
- onSortChange(sortState: ISortState): void;
1107
+ onPageChange(pageState: PageState): void;
1108
+ onSortChange(sortState: SortState): void;
1078
1109
  /** Событие изменение выбранных записей. */
1079
1110
  onSelectionChange(selected: T[]): void;
1080
1111
  /** Обновление доступности кнопки "Изменить" - вызывается при изменении выбранных записей. */
@@ -1104,164 +1135,6 @@ export declare abstract class BaseSignalPageClass<T extends BaseSchemaClass, F e
1104
1135
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseSignalPageClass<any, any>, never>;
1105
1136
  static ɵdir: i0.ɵɵDirectiveDeclaration<BaseSignalPageClass<any, any>, never, never, {}, {}, never, never, true, never>;
1106
1137
  }
1107
- export declare abstract class BaseSignalServiceClass<T extends BaseSchemaClass> {
1108
- abstract baseRoute: string;
1109
- protected abstract readonly schema: z.ZodType<T>;
1110
- protected countRoute: string;
1111
- protected pageIndexParam: string;
1112
- protected pageSizeParam: string;
1113
- protected sortColumnParam: string;
1114
- protected directionParam: string;
1115
- protected apiContextName: string;
1116
- protected http: HttpClient;
1117
- protected readonly _refreshTrigger: import("@angular/core").WritableSignal<number>;
1118
- refresh(): void;
1119
- getObjects(): HttpResourceRef<T[]>;
1120
- getObject(id: number | (() => number | null | undefined)): HttpResourceRef<T | null>;
1121
- getCount(): HttpResourceRef<number>;
1122
- getObjectsByPaging(pageIndex: number, pageSize: number, sortColumn: string, direction: string): HttpResourceRef<T[]>;
1123
- /**
1124
- * Универсальный метод получения пагинированных данных с фильтрацией.
1125
- * Автоматически очищает фильтры от null/undefined/пустых значений с помощью cleanFilterParams.
1126
- */
1127
- getObjectsByFilterPaging<F extends SafeFilterState>(pageIndex: number, pageSize: number, sortColumn: string, direction: string, filters: F): HttpResourceRef<T[]>;
1128
- /**
1129
- * Универсальный метод получения КОЛИЧЕСТВА записей с фильтрацией.
1130
- * Автоматически очищает фильтры перед отправкой.
1131
- */
1132
- getObjectsCountByFilter<F extends SafeFilterState>(filters: F): HttpResourceRef<number>;
1133
- /**
1134
- * МЕТОД СОЗДАНИЯ (POST)
1135
- * Принимает данные БЕЗ id. Тип формируется автоматически через Zod.
1136
- */
1137
- newObject(entity: Omit<T, 'id'>): any;
1138
- /**
1139
- * Метод для СОЗДАНИЯ объекта (POST)
1140
- * Тип аргумента генерируется автоматически: это ваш тип T, но БЕЗ поля id.
1141
- */
1142
- editObject(entity: T): any;
1143
- /**
1144
- * Метод для ОБНОВЛЕНИЯ объекта (PUT / PATCH)
1145
- * Принимает id и частичный объект (все свойства T становятся необязательными, кроме id)
1146
- */
1147
- /**
1148
- * Метод DELETE (Переписанный под новую архитектуру)
1149
- * Возвращает Observable. При подписке делает DELETE запрос,
1150
- * а оператор 'tap' автоматически обновляет список getObjects() при успехе.
1151
- */
1152
- deleteObject(entity: T): any;
1153
- protected getParams(pageIndex: number, pageSize: number, sortColumn: string, direction: string): HttpParams;
1154
- protected getHttpContext(): {
1155
- context?: HttpContext;
1156
- };
1157
- static ɵfac: i0.ɵɵFactoryDeclaration<BaseSignalServiceClass<any>, never>;
1158
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1159
- }
1160
- export declare class DisableIfRoleDirective {
1161
- readonly forbiddenRoles: import("@angular/core").InputSignal<string[]>;
1162
- private readonly el;
1163
- private readonly roleService;
1164
- constructor();
1165
- static ɵfac: i0.ɵɵFactoryDeclaration<DisableIfRoleDirective, never>;
1166
- static ɵdir: i0.ɵɵDirectiveDeclaration<DisableIfRoleDirective, "[ngxUikDisableIfRole]", never, {
1167
- "forbiddenRoles": {
1168
- "alias": "ngxUikDisableIfRole";
1169
- "required": false;
1170
- "isSignal": true;
1171
- };
1172
- }, {}, never, never, true, never>;
1173
- }
1174
- export declare class HideIfForbiddenRoleDirective {
1175
- readonly forbiddenRoles: import("@angular/core").InputSignal<string[]>;
1176
- private readonly el;
1177
- private readonly roleService;
1178
- constructor();
1179
- static ɵfac: i0.ɵɵFactoryDeclaration<HideIfForbiddenRoleDirective, never>;
1180
- static ɵdir: i0.ɵɵDirectiveDeclaration<HideIfForbiddenRoleDirective, "[ngxUikHideIfForbiddenRole]", never, {
1181
- "forbiddenRoles": {
1182
- "alias": "ngxUikHideIfForbiddenRole";
1183
- "required": false;
1184
- "isSignal": true;
1185
- };
1186
- }, {}, never, never, true, never>;
1187
- }
1188
- export declare class SetValueDirective {
1189
- readonly value: import("@angular/core").InputSignal<any>;
1190
- private readonly ngControl;
1191
- constructor();
1192
- static ɵfac: i0.ɵɵFactoryDeclaration<SetValueDirective, never>;
1193
- static ɵdir: i0.ɵɵDirectiveDeclaration<SetValueDirective, "[setValue]", never, {
1194
- "value": {
1195
- "alias": "setValue";
1196
- "required": false;
1197
- "isSignal": true;
1198
- };
1199
- }, {}, never, never, true, never>;
1200
- }
1201
- export declare const authGuard: (allowedRoles: string[]) => CanActivateFn;
1202
- export declare const redirectGuard: CanActivateFn;
1203
- /**
1204
- * Пускает на роут только тех пользователей, у которых есть роли из списка allowedRoles.
1205
- * ADMIN всегда имеет доступ.
1206
- */
1207
- export declare const roleGuard: (allowedRoles: string[]) => CanActivateFn;
1208
- export declare class LoggerService {
1209
- logPrefix: string;
1210
- private isProduction;
1211
- private readonly config;
1212
- constructor();
1213
- log(message: string, ...args: any[]): void;
1214
- error(message: string, ...args: any[]): void;
1215
- static ɵfac: i0.ɵɵFactoryDeclaration<LoggerService, never>;
1216
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1217
- }
1218
- export interface LoggerConfig {
1219
- isProduction: boolean;
1220
- logLevel?: 'debug' | 'info' | 'warn' | 'error';
1221
- }
1222
- export declare const LOGGER_CONFIG: InjectionToken<LoggerConfig>;
1223
- export declare function provideLogger(config: LoggerConfig): EnvironmentProviders;
1224
- /** @deprecated */
1225
- export interface Deserializable {
1226
- deserialize(input: any): this;
1227
- }
1228
- export declare const secUserSchema: z.ZodObject<{
1229
- id: z.ZodDefault<z.ZodNumber>;
1230
- login: z.ZodDefault<z.ZodString>;
1231
- fio: z.ZodDefault<z.ZodString>;
1232
- dept: z.ZodDefault<z.ZodNumber>;
1233
- tabnum: z.ZodDefault<z.ZodNumber>;
1234
- userView: z.ZodOptional<z.ZodObject<{
1235
- id: z.ZodDefault<z.ZodNumber>;
1236
- idHuman: z.ZodDefault<z.ZodNumber>;
1237
- loginAD: z.ZodDefault<z.ZodString>;
1238
- dept: z.ZodDefault<z.ZodNumber>;
1239
- tabnum: z.ZodDefault<z.ZodNumber>;
1240
- lastname: z.ZodDefault<z.ZodString>;
1241
- firstname: z.ZodDefault<z.ZodString>;
1242
- middlename: z.ZodDefault<z.ZodString>;
1243
- fio: z.ZodDefault<z.ZodString>;
1244
- dateHuman: z.ZodOptional<z.ZodDate>;
1245
- profession: z.ZodDefault<z.ZodString>;
1246
- }, z.core.$strip>>;
1247
- }, z.core.$strip>;
1248
- export type SecUser = z.infer<typeof secUserSchema>;
1249
- export declare class SafePipe implements PipeTransform {
1250
- private readonly sanitizer;
1251
- transform(url: string | SafeUrl | null | undefined): SafeUrl;
1252
- static ɵfac: i0.ɵɵFactoryDeclaration<SafePipe, never>;
1253
- static ɵpipe: i0.ɵɵPipeDeclaration<SafePipe, "safe", true>;
1254
- }
1255
- export declare class TimePipe implements PipeTransform {
1256
- transform(value: number): string;
1257
- static ɵfac: i0.ɵɵFactoryDeclaration<TimePipe, never>;
1258
- static ɵpipe: i0.ɵɵPipeDeclaration<TimePipe, "time", true>;
1259
- }
1260
- export declare class TruncatePipe implements PipeTransform {
1261
- transform(value: string, args: any[]): string;
1262
- static ɵfac: i0.ɵɵFactoryDeclaration<TruncatePipe, never>;
1263
- static ɵpipe: i0.ɵɵPipeDeclaration<TruncatePipe, "truncate", true>;
1264
- }
1265
1138
  export interface ChipItem {
1266
1139
  value: string;
1267
1140
  viewValue: string;
@@ -1561,4 +1434,163 @@ export declare class BaseSelectWithGroupComponent {
1561
1434
  }, {
1562
1435
  "selectedItemsChange": "selectedItemsChange";
1563
1436
  }, never, never, true, never>;
1437
+ }
1438
+ export declare abstract class BaseSignalServiceClass<T extends BaseSchemaClass> {
1439
+ abstract baseRoute: string;
1440
+ protected abstract readonly schema: z.ZodType<T>;
1441
+ protected countRoute: string;
1442
+ protected pageIndexParam: string;
1443
+ protected pageSizeParam: string;
1444
+ protected sortColumnParam: string;
1445
+ protected directionParam: string;
1446
+ protected apiContextName: string;
1447
+ protected http: HttpClient;
1448
+ protected readonly _refreshTrigger: import("@angular/core").WritableSignal<number>;
1449
+ refresh(): void;
1450
+ getObjects(): HttpResourceRef<T[]>;
1451
+ getObject(id: number | (() => number | null | undefined)): HttpResourceRef<T | null>;
1452
+ getCount(): HttpResourceRef<number>;
1453
+ getObjectsByPaging(tableState: TableState): HttpResourceRef<T[]>;
1454
+ /**
1455
+ * Универсальный метод получения пагинированных данных с фильтрацией.
1456
+ * Автоматически очищает фильтры от null/undefined/пустых значений с помощью cleanFilterParams.
1457
+ */
1458
+ getObjectsByFilterPaging<F extends SafeFilterState>(tableState: TableState, filters: F): HttpResourceRef<T[]>;
1459
+ /**
1460
+ * Универсальный метод получения КОЛИЧЕСТВА записей с фильтрацией.
1461
+ * Автоматически очищает фильтры перед отправкой.
1462
+ */
1463
+ getObjectsCountByFilter<F extends SafeFilterState>(filters: F): HttpResourceRef<number>;
1464
+ protected buildTableParams(tableState: TableState): Record<string, string | number>;
1465
+ /**
1466
+ * МЕТОД СОЗДАНИЯ (POST)
1467
+ * Принимает данные БЕЗ id. Тип формируется автоматически через Zod.
1468
+ */
1469
+ newObject(entity: Omit<T, 'id'>): any;
1470
+ /**
1471
+ * Метод для СОЗДАНИЯ объекта (POST)
1472
+ * Тип аргумента генерируется автоматически: это ваш тип T, но БЕЗ поля id.
1473
+ */
1474
+ editObject(entity: T): any;
1475
+ /**
1476
+ * Метод для ОБНОВЛЕНИЯ объекта (PUT / PATCH)
1477
+ * Принимает id и частичный объект (все свойства T становятся необязательными, кроме id)
1478
+ */
1479
+ /**
1480
+ * Метод DELETE (Переписанный под новую архитектуру)
1481
+ * Возвращает Observable. При подписке делает DELETE запрос,
1482
+ * а оператор 'tap' автоматически обновляет список getObjects() при успехе.
1483
+ */
1484
+ deleteObject(entity: T): any;
1485
+ protected getParams(pageIndex: number, pageSize: number, sortColumn: string, direction: string): HttpParams;
1486
+ protected getHttpContext(): {
1487
+ context?: HttpContext;
1488
+ };
1489
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseSignalServiceClass<any>, never>;
1490
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1491
+ }
1492
+ export declare class DisableIfRoleDirective {
1493
+ readonly forbiddenRoles: import("@angular/core").InputSignal<string[]>;
1494
+ private readonly el;
1495
+ private readonly roleService;
1496
+ constructor();
1497
+ static ɵfac: i0.ɵɵFactoryDeclaration<DisableIfRoleDirective, never>;
1498
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DisableIfRoleDirective, "[ngxUikDisableIfRole]", never, {
1499
+ "forbiddenRoles": {
1500
+ "alias": "ngxUikDisableIfRole";
1501
+ "required": false;
1502
+ "isSignal": true;
1503
+ };
1504
+ }, {}, never, never, true, never>;
1505
+ }
1506
+ export declare class HideIfForbiddenRoleDirective {
1507
+ readonly forbiddenRoles: import("@angular/core").InputSignal<string[]>;
1508
+ private readonly el;
1509
+ private readonly roleService;
1510
+ constructor();
1511
+ static ɵfac: i0.ɵɵFactoryDeclaration<HideIfForbiddenRoleDirective, never>;
1512
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HideIfForbiddenRoleDirective, "[ngxUikHideIfForbiddenRole]", never, {
1513
+ "forbiddenRoles": {
1514
+ "alias": "ngxUikHideIfForbiddenRole";
1515
+ "required": false;
1516
+ "isSignal": true;
1517
+ };
1518
+ }, {}, never, never, true, never>;
1519
+ }
1520
+ export declare class SetValueDirective {
1521
+ readonly value: import("@angular/core").InputSignal<any>;
1522
+ private readonly ngControl;
1523
+ constructor();
1524
+ static ɵfac: i0.ɵɵFactoryDeclaration<SetValueDirective, never>;
1525
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SetValueDirective, "[setValue]", never, {
1526
+ "value": {
1527
+ "alias": "setValue";
1528
+ "required": false;
1529
+ "isSignal": true;
1530
+ };
1531
+ }, {}, never, never, true, never>;
1532
+ }
1533
+ export declare const authGuard: (allowedRoles: string[]) => CanActivateFn;
1534
+ export declare const redirectGuard: CanActivateFn;
1535
+ /**
1536
+ * Пускает на роут только тех пользователей, у которых есть роли из списка allowedRoles.
1537
+ * ADMIN всегда имеет доступ.
1538
+ */
1539
+ export declare const roleGuard: (allowedRoles: string[]) => CanActivateFn;
1540
+ export declare class LoggerService {
1541
+ logPrefix: string;
1542
+ private isProduction;
1543
+ private readonly config;
1544
+ constructor();
1545
+ log(message: string, ...args: any[]): void;
1546
+ error(message: string, ...args: any[]): void;
1547
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoggerService, never>;
1548
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1549
+ }
1550
+ export interface LoggerConfig {
1551
+ isProduction: boolean;
1552
+ logLevel?: 'debug' | 'info' | 'warn' | 'error';
1553
+ }
1554
+ export declare const LOGGER_CONFIG: InjectionToken<LoggerConfig>;
1555
+ export declare function provideLogger(config: LoggerConfig): EnvironmentProviders;
1556
+ /** @deprecated */
1557
+ export interface Deserializable {
1558
+ deserialize(input: any): this;
1559
+ }
1560
+ export declare const secUserSchema: z.ZodObject<{
1561
+ id: z.ZodDefault<z.ZodNumber>;
1562
+ login: z.ZodDefault<z.ZodString>;
1563
+ fio: z.ZodDefault<z.ZodString>;
1564
+ dept: z.ZodDefault<z.ZodNumber>;
1565
+ tabnum: z.ZodDefault<z.ZodNumber>;
1566
+ userView: z.ZodOptional<z.ZodObject<{
1567
+ id: z.ZodDefault<z.ZodNumber>;
1568
+ idHuman: z.ZodDefault<z.ZodNumber>;
1569
+ loginAD: z.ZodDefault<z.ZodString>;
1570
+ dept: z.ZodDefault<z.ZodNumber>;
1571
+ tabnum: z.ZodDefault<z.ZodNumber>;
1572
+ lastname: z.ZodDefault<z.ZodString>;
1573
+ firstname: z.ZodDefault<z.ZodString>;
1574
+ middlename: z.ZodDefault<z.ZodString>;
1575
+ fio: z.ZodDefault<z.ZodString>;
1576
+ dateHuman: z.ZodOptional<z.ZodDate>;
1577
+ profession: z.ZodDefault<z.ZodString>;
1578
+ }, z.core.$strip>>;
1579
+ }, z.core.$strip>;
1580
+ export type SecUser = z.infer<typeof secUserSchema>;
1581
+ export declare class SafePipe implements PipeTransform {
1582
+ private readonly sanitizer;
1583
+ transform(url: string | SafeUrl | null | undefined): SafeUrl;
1584
+ static ɵfac: i0.ɵɵFactoryDeclaration<SafePipe, never>;
1585
+ static ɵpipe: i0.ɵɵPipeDeclaration<SafePipe, "safe", true>;
1586
+ }
1587
+ export declare class TimePipe implements PipeTransform {
1588
+ transform(value: number): string;
1589
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimePipe, never>;
1590
+ static ɵpipe: i0.ɵɵPipeDeclaration<TimePipe, "time", true>;
1591
+ }
1592
+ export declare class TruncatePipe implements PipeTransform {
1593
+ transform(value: string, args: any[]): string;
1594
+ static ɵfac: i0.ɵɵFactoryDeclaration<TruncatePipe, never>;
1595
+ static ɵpipe: i0.ɵɵPipeDeclaration<TruncatePipe, "truncate", true>;
1564
1596
  }