@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,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
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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<
|
|
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<
|
|
190
|
+
pageStateChange: import("@angular/core").OutputEmitterRef<{
|
|
191
|
+
pageIndex: number;
|
|
192
|
+
pageSize: number;
|
|
193
|
+
}>;
|
|
177
194
|
/** Изменение сортировки. */
|
|
178
|
-
sortStateChange: import("@angular/core").OutputEmitterRef<
|
|
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<
|
|
187
|
-
|
|
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:
|
|
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:
|
|
802
|
-
onSortChange(sortState:
|
|
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<
|
|
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:
|
|
1077
|
-
onSortChange(sortState:
|
|
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
|
}
|