@kuzntsv/uikit 1.0.12 → 1.0.15

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