@kuzntsv/uikit 1.0.13 → 1.0.16

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.
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken } from '@angular/core';
3
3
  import { HttpContextToken } from '@angular/common/http';
4
4
  import * as rxjs from 'rxjs';
5
+ import { Observable } from 'rxjs';
5
6
 
6
7
  interface UikitConfig {
7
8
  apiUrls: {
@@ -19,6 +20,16 @@ interface UikitConfig {
19
20
  }
20
21
  declare const UIKIT_CONFIG: InjectionToken<UikitConfig>;
21
22
 
23
+ /**
24
+ * Специальный маркер-роль в массиве ограничений,
25
+ * который полностью скрывает элемент от обычных пользователей.
26
+ */
27
+ declare const HIDE_ROLE_MARKER = "HIDE";
28
+ /**
29
+ * Системная роль Администратора, которая игнорирует любые ограничения прав.
30
+ */
31
+ declare const ADMIN_ROLE = "ADMIN";
32
+
22
33
  declare const API_NAME: HttpContextToken<string>;
23
34
  declare const BYPASS_AUTH: HttpContextToken<boolean>;
24
35
  declare const DEFAULT_TIMEOUT: InjectionToken<number>;
@@ -35,47 +46,50 @@ interface AppEnvironment {
35
46
  }
36
47
  declare const APP_ENVIRONMENT: InjectionToken<AppEnvironment>;
37
48
 
49
+ /**
50
+ * Сервис уведомлений.
51
+ */
38
52
  interface INotificationService {
39
53
  /**
40
- * Показ всплывашки с сообщением
54
+ * Показ всплывашки с сообщением.
41
55
  *
42
- * @param message сообщение
43
- * @param duration задержка в миллисекундах
56
+ * @param message сообщение.
57
+ * @param duration задержка в миллисекундах.
44
58
  */
45
59
  openSnackBar(message: string, action: string, duration?: number): void;
46
60
  /**
47
- * Уведомление о успехе
61
+ * Уведомление о успехе.
48
62
  *
49
63
  * @param message сообщение
50
64
  * @param duration задержка в миллисекундах
51
65
  */
52
66
  success(message: string, duration?: number): void;
53
67
  /**
54
- * Уведомление о информации
68
+ * Уведомление о информации.
55
69
  *
56
- * @param message сообщение
57
- * @param duration задержка в миллисекундах
70
+ * @param message сообщение.
71
+ * @param duration задержка в миллисекундах.
58
72
  */
59
73
  info(message: string, duration?: number): void;
60
74
  /**
61
- * Уведомление о сообщения помощи
75
+ * Уведомление о сообщения помощи.
62
76
  *
63
- * @param message сообщение
64
- * @param duration задержка в миллисекундах
77
+ * @param message сообщение.
78
+ * @param duration задержка в миллисекундах.
65
79
  */
66
80
  helper(message: string, duration?: number): void;
67
81
  /**
68
- * Уведомление о предупреждении
82
+ * Уведомление о предупреждении.
69
83
  *
70
- * @param message сообщение
71
- * @param duration задержка в миллисекундах
84
+ * @param message сообщение.
85
+ * @param duration задержка в миллисекундах.
72
86
  */
73
87
  warning(message: string, duration?: number): void;
74
88
  /**
75
- * Уведомление об ошибке
89
+ * Уведомление об ошибке.
76
90
  *
77
- * @param message сообщение
78
- * @param duration задержка в миллисекундах
91
+ * @param message сообщение.
92
+ * @param duration задержка в миллисекундах.
79
93
  */
80
94
  error(message: string, duration?: number): void;
81
95
  }
@@ -84,18 +98,25 @@ declare const UIKIT_NOTIFICATION_TOKEN: InjectionToken<INotificationService>;
84
98
  declare class AuthEventService {
85
99
  private readonly authErrorSource;
86
100
  readonly authError$: rxjs.Observable<void>;
101
+ /** Вызывается в интерцепторе при 401 ошибке */
87
102
  notify401(): void;
88
103
  static ɵfac: i0.ɵɵFactoryDeclaration<AuthEventService, never>;
89
104
  static ɵprov: i0.ɵɵInjectableDeclaration<AuthEventService>;
90
105
  }
91
106
 
92
107
  declare class RoleService {
93
- private readonly hideRole;
94
- /** Проверка массива ролей */
95
- hasRoles(roles: string[], checkRoles: string[]): boolean;
96
- /** Элемент скрывается, если у пользователя нет ни одной роли из перереданных в "roles"
97
- или в списке "roles" есть роль "hideRole". */
98
- isHideElement(roles: string[], checkRoles: string[]): boolean;
108
+ private readonly authService;
109
+ /**
110
+ * Проверяет, заблокирован ли доступ к элементу на основе списка ограничений.
111
+ * Возвращает true, если у пользователя есть запрещенная роль или передан маркер 'HIDE'.
112
+ * Администратор (ADMIN) всегда игнорирует любые запреты и маркер 'HIDE'.
113
+ */
114
+ hasForbiddenRole(forbiddenRoles: string[]): boolean;
115
+ /**
116
+ * Проверяет, есть ли у пользователя хотя бы одна из разрешенных ролей.
117
+ * ADMIN всегда возвращает true.
118
+ */
119
+ hasAnyRole(allowedRoles: string[]): boolean;
99
120
  static ɵfac: i0.ɵɵFactoryDeclaration<RoleService, never>;
100
121
  static ɵprov: i0.ɵɵInjectableDeclaration<RoleService>;
101
122
  }
@@ -141,19 +162,22 @@ declare class AuthService {
141
162
  private readonly _loggedIn;
142
163
  readonly roles: i0.Signal<string[]>;
143
164
  readonly loggedIn: i0.Signal<boolean>;
144
- private readonly defaultHeader;
165
+ private readonly defaultOptions;
145
166
  private readonly notificationService;
146
167
  private readonly userService;
147
168
  private readonly eventService;
148
169
  private readonly destroyRef;
149
- private http;
150
- private config;
151
- private router;
170
+ private readonly http;
171
+ private readonly config;
172
+ private readonly router;
152
173
  constructor();
153
- /** Запрос авторизации */
154
- login(username: string, password: string, idCas: number, onErrorFn: () => void): void;
174
+ /**
175
+ * Запрос авторизации
176
+ * Возвращает Observable, позволяя компоненту реагировать на статус запроса.
177
+ */
178
+ login(username: string, password: string, idCas: number): Observable<User>;
155
179
  /** Aвторизация по пропуску */
156
- loginByPermit(permit: string, idCas: number): rxjs.Subscription;
180
+ loginByPermit(permit: string, idCas: number): Observable<User>;
157
181
  logout(): void;
158
182
  /** При успешной авторизации */
159
183
  private successLoginAction;
@@ -174,5 +198,10 @@ declare class NotificationService implements INotificationService {
174
198
  static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
175
199
  }
176
200
 
177
- export { API_NAME, APP_ENVIRONMENT, AuthEventService, AuthService, BYPASS_AUTH, DEFAULT_TIMEOUT, NotificationService, REQUEST_TIMEOUT, RoleService, UIKIT_CONFIG, UIKIT_NOTIFICATION_TOKEN, User, UserService };
201
+ /**
202
+ * Проверяет, пересекаются ли два массива (есть ли хотя бы один общий элемент).
203
+ */
204
+ declare function hasArrayIntersection<T>(arrayA: T[], arrayB: T[]): boolean;
205
+
206
+ export { ADMIN_ROLE, API_NAME, APP_ENVIRONMENT, AuthEventService, AuthService, BYPASS_AUTH, DEFAULT_TIMEOUT, HIDE_ROLE_MARKER, NotificationService, REQUEST_TIMEOUT, RoleService, UIKIT_CONFIG, UIKIT_NOTIFICATION_TOKEN, User, UserService, hasArrayIntersection };
178
207
  export type { AppEnvironment, INotificationService, UikitConfig };