@snabcentr/client-core 2.42.3 → 2.43.0
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/auth/services/sc-auth.service.d.ts +4 -0
- package/cart/services/sc-cart.service.d.ts +4 -0
- package/contacts/dto/sc-i-direction-manager-contact.d.ts +2 -2
- package/esm2022/auth/services/sc-auth.service.mjs +10 -2
- package/esm2022/cart/services/sc-cart.service.mjs +15 -8
- package/esm2022/contacts/dto/sc-i-direction-manager-contact.mjs +1 -1
- package/esm2022/contacts/services/sc-requisites.service.mjs +1 -1
- package/esm2022/locations/dto/sc-i-city.mjs +1 -1
- package/esm2022/locations/dto/sc-i-region.mjs +1 -1
- package/esm2022/locations/services/sc-location.service.mjs +45 -39
- package/esm2022/providers/ssr.providers.mjs +6 -2
- package/esm2022/user/services/sc-user.service.mjs +46 -33
- package/fesm2022/snabcentr-client-core.mjs +106 -68
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/locations/dto/sc-i-city.d.ts +17 -3
- package/locations/dto/sc-i-region.d.ts +13 -3
- package/locations/services/sc-location.service.d.ts +27 -24
- package/package.json +3 -2
- package/providers/ssr.providers.d.ts +8 -2
- package/release_notes.tmp +3 -3
- package/user/services/sc-user.service.d.ts +22 -18
|
@@ -1,33 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
3
|
import { map, ReplaySubject, switchMap, tap } from 'rxjs';
|
|
4
|
+
import { ScAuthService } from '../../auth/services/sc-auth.service';
|
|
3
5
|
import { ScTokenService } from '../../auth/services/sc-token.service';
|
|
6
|
+
import { ScContactsService } from '../../contacts/services/sc-contacts.service';
|
|
7
|
+
import { IS_BROWSER } from '../../providers/ssr.providers';
|
|
4
8
|
import { SC_URLS } from '../../tokens/sc-urls';
|
|
5
9
|
import { ScUserMetrikaGoalsEnum } from '../../user-metrika/enums/sc-user-metrika-goals-enum';
|
|
10
|
+
import { ScUserMetrikaService } from '../../user-metrika/services/sc-user-metrika.service';
|
|
6
11
|
import { ScUser } from '../dto/sc-user';
|
|
7
12
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../auth/services/sc-auth.service";
|
|
9
|
-
import * as i2 from "@angular/common/http";
|
|
10
|
-
import * as i3 from "../../user-metrika/services/sc-user-metrika.service";
|
|
11
|
-
import * as i4 from "../../contacts/services/sc-contacts.service";
|
|
12
13
|
/**
|
|
13
14
|
* Сервис информации о пользователе.
|
|
14
15
|
*/
|
|
15
16
|
export class ScUserService {
|
|
16
|
-
|
|
17
|
-
* Инициализирует экземпляр класса {@link ScUserService}.
|
|
18
|
-
*
|
|
19
|
-
* @param authService Сервис аутентификации.
|
|
20
|
-
* @param urls Список ссылок на разделы backend'a.
|
|
21
|
-
* @param http HTTP-клиент.
|
|
22
|
-
* @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
|
|
23
|
-
* @param contactsService Сервис для работы с контактными лицами.
|
|
24
|
-
*/
|
|
25
|
-
constructor(authService, urls, http, userMetrikaService, contactsService) {
|
|
26
|
-
this.authService = authService;
|
|
27
|
-
this.urls = urls;
|
|
28
|
-
this.http = http;
|
|
29
|
-
this.userMetrikaService = userMetrikaService;
|
|
30
|
-
this.contactsService = contactsService;
|
|
17
|
+
constructor() {
|
|
31
18
|
/**
|
|
32
19
|
* {@link ReplaySubject} данных о текущем пользователе.
|
|
33
20
|
*/
|
|
@@ -36,18 +23,47 @@ export class ScUserService {
|
|
|
36
23
|
* Сервис для работы с токенами.
|
|
37
24
|
*/
|
|
38
25
|
this.tokenService = inject(ScTokenService);
|
|
26
|
+
/**
|
|
27
|
+
* Признак, что скрипт выполняется в браузере.
|
|
28
|
+
*/
|
|
29
|
+
this.isBrowser = inject(IS_BROWSER);
|
|
30
|
+
/**
|
|
31
|
+
* Сервис аутентификации.
|
|
32
|
+
*/
|
|
33
|
+
this.authService = inject(ScAuthService);
|
|
34
|
+
/**
|
|
35
|
+
* Список ссылок на разделы backend'a.
|
|
36
|
+
*/
|
|
37
|
+
this.urls = inject(SC_URLS);
|
|
38
|
+
/**
|
|
39
|
+
* HTTP-клиент.
|
|
40
|
+
*/
|
|
41
|
+
this.http = inject(HttpClient);
|
|
42
|
+
/**
|
|
43
|
+
* Сервис для сбора метрик о действиях пользователей.
|
|
44
|
+
*/
|
|
45
|
+
this.userMetrikaService = inject(ScUserMetrikaService);
|
|
46
|
+
/**
|
|
47
|
+
* Сервис для работы с контактными лицами.
|
|
48
|
+
*/
|
|
49
|
+
this.contactsService = inject(ScContactsService);
|
|
39
50
|
}
|
|
40
51
|
/**
|
|
41
52
|
* Выполняет инициализацию сервиса.
|
|
42
53
|
*/
|
|
43
54
|
initService() {
|
|
44
|
-
this.
|
|
45
|
-
.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
if (this.isBrowser) {
|
|
56
|
+
this.authService
|
|
57
|
+
.getAuthChange()
|
|
58
|
+
.pipe(switchMap((state) => (state ? this.getUserInfo$() : this.getGuestInfo$())))
|
|
59
|
+
.subscribe((user) => {
|
|
60
|
+
this.userMetrikaService.setUserParams(user.id, user.userType);
|
|
61
|
+
this.user$.next(user);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.user$.next(new ScUser({ metadata: {} }));
|
|
66
|
+
}
|
|
51
67
|
}
|
|
52
68
|
/**
|
|
53
69
|
* Возвращает {@link Observable} запроса изменения информации о текущем пользователе.
|
|
@@ -158,7 +174,7 @@ export class ScUserService {
|
|
|
158
174
|
deleteUserContact$(contactId) {
|
|
159
175
|
return this.contactsService.deleteContact$(contactId);
|
|
160
176
|
}
|
|
161
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [
|
|
177
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
162
178
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, providedIn: 'root' }); }
|
|
163
179
|
}
|
|
164
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, decorators: [{
|
|
@@ -166,8 +182,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
166
182
|
args: [{
|
|
167
183
|
providedIn: 'root',
|
|
168
184
|
}]
|
|
169
|
-
}]
|
|
170
|
-
type: Inject,
|
|
171
|
-
args: [SC_URLS]
|
|
172
|
-
}] }, { type: i2.HttpClient }, { type: i3.ScUserMetrikaService }, { type: i4.ScContactsService }] });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBVzdGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR3hDOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFXdEI7Ozs7Ozs7O09BUUc7SUFDSCxZQUNxQixXQUEwQixFQUNULElBQWEsRUFDOUIsSUFBZ0IsRUFDaEIsa0JBQXdDLEVBQ3hDLGVBQWtDO1FBSmxDLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQ1QsU0FBSSxHQUFKLElBQUksQ0FBUztRQUM5QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBeEJ2RDs7V0FFRztRQUNLLFVBQUssR0FBMEIsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFcEU7O1dBRUc7UUFDYyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQWlCcEQsQ0FBQztJQUVKOztPQUVHO0lBQ0ksV0FBVztRQUNkLElBQUksQ0FBQyxXQUFXO2FBQ1gsYUFBYSxFQUFFO2FB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QUM7SUFDMUQsQ0FBQzsrR0ExS1EsYUFBYSwrQ0FzQlYsT0FBTzttSEF0QlYsYUFBYSxjQUZWLE1BQU07OzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkF1QlEsTUFBTTsyQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElBdXRoVG9rZW4gfSBmcm9tICcuLi8uLi9hdXRoL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2NBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgvc2VydmljZXMvc2MtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNjVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNjSVVybHMgfSBmcm9tICcuLi8uLi9jb25maWcvc2MtaS11cmxzJztcbmltcG9ydCB7IFNjQ29udGFjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udGFjdHMvc2VydmljZXMvc2MtY29udGFjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9lbnVtcy9zYy11c2VyLW1ldHJpa2EtZ29hbHMtZW51bSc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9zZXJ2aWNlcy9zYy11c2VyLW1ldHJpa2Euc2VydmljZSc7XG5pbXBvcnQgeyBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvJztcbmltcG9ydCB7IFNjSUNoYW5nZVBhc3N3b3JkIH0gZnJvbSAnLi4vZHRvL3NjLWktY2hhbmdlLXBhc3N3b3JkJztcbmltcG9ydCB7IFNjSUNvbnRhY3QgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0JztcbmltcG9ydCB7IFNjSUNvbnRhY3RPbkRhdGFDcmVhdGUgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0LW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSUNvbnRhY3RXaXRoUmVsYXRpb25zIH0gZnJvbSAnLi4vZHRvL3NjLWktY29udGFjdC13aXRoLXJlbGF0aW9ucyc7XG5pbXBvcnQgeyBTY0lQYXNzd29yZE9uRGF0YVVwZGF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBhc3N3b3JkLW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSVBob25lT25EYXRhQXBwcm92ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBob25lLW9uLWRhdGEtYXBwcm92ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLWNyZWF0ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhVXBkYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLXVwZGF0ZSc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTY0lVc2VyRFRPIH0gZnJvbSAnLi4vaW50ZXJuYWwvZHRvJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VzZXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVzZXIkOiBSZXBsYXlTdWJqZWN0PFNjVXNlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY1VzZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0YLQvtC60LXQvdCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChTY1Rva2VuU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjVXNlclNlcnZpY2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGF1dGhTZXJ2aWNlINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB1cmxzINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kJ2EuXG4gICAgICogQHBhcmFtIGh0dHAgSFRUUC3QutC70LjQtdC90YIuXG4gICAgICogQHBhcmFtIHVzZXJNZXRyaWthU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKiBAcGFyYW0gY29udGFjdHNTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC60L7QvdGC0LDQutGC0L3Ri9C80Lgg0LvQuNGG0LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogU2NBdXRoU2VydmljZSxcbiAgICAgICAgQEluamVjdChTQ19VUkxTKSBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhY3RzU2VydmljZTogU2NDb250YWN0c1NlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0L/QvtC70L3Rj9C10YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y4g0YHQtdGA0LLQuNGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0QXV0aENoYW5nZSgpXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKHN0YXRlKSA9PiAoc3RhdGUgPyB0aGlzLmdldFVzZXJJbmZvJCgpIDogdGhpcy5nZXRHdWVzdEluZm8kKCkpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5zZXRVc2VyUGFyYW1zKHVzZXIuaWQsIHVzZXIudXNlclR5cGUpO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlciQubmV4dCh1c2VyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld0RhdGEg0JTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjywg0LrQvtGC0L7RgNGL0LUg0L3Rg9C20L3QviDQvtCx0L3QvtCy0LjRgtGMLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVVc2VySW5mbyQobmV3RGF0YTogU2NJVXNlck9uRGF0YVVwZGF0ZSB8IFNjSUNoYW5nZVBhc3N3b3JkIHwgU2NJUGhvbmVPbkRhdGFBcHByb3ZlKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXJgLCBuZXdEYXRhKS5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS51c2VyUHJvZmlsZUVkaXRlZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC40LfQvNC10L3QtdC90LjRjyDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUt0LPQvtGB0YLQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdEYXRhINCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8t0LPQvtGB0YLRjywg0LrQvtGC0L7RgNGL0LUg0L3Rg9C20L3QviDQvtCx0L3QvtCy0LjRgtGMLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVHdWVzdEluZm8kKG5ld0RhdGE6IFBpY2s8U2NJVXNlck9uRGF0YVVwZGF0ZSwgJ21ldGFkYXRhJz4pOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vZ3Vlc3RgLCBuZXdEYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlciDQlNCw0L3QvdGL0LUg0LTQu9GPINGA0LXQs9C40YHRgtGA0LDRhtC40LguXG4gICAgICogQHBhcmFtIHdpdGhBdXRoINCk0LvQsNCzLCDRg9C60LDQt9GL0LLQsNGO0YnQuNC5LCDQvdGD0LbQvdC+INC70Lgg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNGC0Ywg0YLQvtC60LXQvSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzaWduVXAkKHVzZXI6IFNjSVVzZXJPbkRhdGFDcmVhdGUgfCBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlLCB3aXRoQXV0aDogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPElBdXRoVG9rZW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PElBdXRoVG9rZW4+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXIvcmVnaXN0ZXJgLCB1c2VyKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLnNpZ25lZFVwLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhBdXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldEF1dGhUb2tlbih0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0L3QsCDQvtGC0L/RgNCw0LLQutGDINC60L7QtNCwINC40LfQvNC10L3QtdC90LjRjyDQv9Cw0YDQvtC70Y8g0L3QsCDRjdC70LXQutGC0YDQvtC90L3Rg9GOINC/0L7Rh9GC0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZW1haWwg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YsuXG4gICAgICovXG4gICAgcHVibGljIHNlbmRSZXNldFBhc3N3b3JkQ29kZSQoZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vYXV0aC9wYXNzd29yZC9yZXN0b3JlYCwgeyBwYXJhbXM6IHsgZW1haWw6IGVtYWlsIH0gfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC40LfQvNC10L3QtdC90LjRjyDQv9Cw0YDQvtC70Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3UGFzc3dvcmQg0JTQsNC90L3Ri9C1INC00LvRjyDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldFBhc3N3b3JkJChuZXdQYXNzd29yZDogU2NJUGFzc3dvcmRPbkRhdGFVcGRhdGUpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS9hdXRoL3Bhc3N3b3JkL3Jlc3RvcmVgLCBuZXdQYXNzd29yZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGC0LXQutGD0YnQtdCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRVc2VyQ2hhbmdlJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy51c2VyJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1IHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlVXNlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXNlckluZm8kKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgodXNlcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlciQubmV4dCh1c2VyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC90LAg0L/QvtC70YPRh9C10L3QuNC1INC40L3RhNC+0YDQvNCw0YbQuNC4INC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckluZm8kKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVVzZXJEVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXJgKS5waXBlKG1hcCgodXNlcikgPT4gbmV3IFNjVXNlcih1c2VyKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQtNCw0L3QvdGL0LUge0BsaW5rIE9ic2VydmFibGV9INGC0LXQutGD0YnQtdCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVHdWVzdENoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R3Vlc3RJbmZvJCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRHdWVzdEluZm8kKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVVzZXJEVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L2d1ZXN0YCkucGlwZShtYXAoKHVzZXIpID0+IG5ldyBTY1VzZXIodXNlcikpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L/QuNGB0LrQsCDQutC+0L3RgtCw0LrRgtC90YvRhSDQu9C40YYg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRVc2VyQ29udGFjdHMkKCk6IE9ic2VydmFibGU8U2NJQ29udGFjdFtdIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWN0c1NlcnZpY2UudXNlckNvbnRhY3RzLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDRkdGCINC30LDQv9GA0L7RgSDRgdC+0LfQtNCw0L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAg0LrQu9C40LXQvdGC0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKiBAcGFyYW0gbmV3Q29udGFjdCDQlNCw0L3QvdGL0LUg0YLRgNC10LHRg9C10LzRi9C1INC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZVVzZXJDb250YWN0JCh1c2VySWQ6IG51bWJlciwgbmV3Q29udGFjdDogU2NJQ29udGFjdE9uRGF0YUNyZWF0ZSk6IE9ic2VydmFibGU8U2NJQ29udGFjdFdpdGhSZWxhdGlvbnM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdHNTZXJ2aWNlLmNyZWF0ZUNvbnRhY3QkKHsgLi4ubmV3Q29udGFjdCwgY2xpZW50OiB7IGlkOiB1c2VySWQgfSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0L/RgNC+0YEg0YPQtNCw0LvQtdC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwINCw0LTRgNC10YHQsCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRhY3RJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVVc2VyQ29udGFjdCQoY29udGFjdElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWN0c1NlcnZpY2UuZGVsZXRlQ29udGFjdCQoY29udGFjdElkKTtcbiAgICB9XG59XG4iXX0=
|
|
185
|
+
}] });
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFVM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd4Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUk7O1dBRUc7UUFDSyxVQUFLLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXBFOztXQUVHO1FBQ2MsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdkQ7O1dBRUc7UUFDYyxjQUFTLEdBQVksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxN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QUksQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksa0JBQWtCLENBQUMsTUFBYyxFQUFFLFVBQWtDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQUMsU0FBaUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQTNMUSxhQUFhO21IQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSUF1dGhUb2tlbiB9IGZyb20gJy4uLy4uL2F1dGgvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NUb2tlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3NlcnZpY2VzL3NjLXRva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NDb250YWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250YWN0cy9zZXJ2aWNlcy9zYy1jb250YWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IElTX0JST1dTRVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvc3NyLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9lbnVtcy9zYy11c2VyLW1ldHJpa2EtZ29hbHMtZW51bSc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9zZXJ2aWNlcy9zYy11c2VyLW1ldHJpa2Euc2VydmljZSc7XG5pbXBvcnQgeyBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvJztcbmltcG9ydCB7IFNjSUNoYW5nZVBhc3N3b3JkIH0gZnJvbSAnLi4vZHRvL3NjLWktY2hhbmdlLXBhc3N3b3JkJztcbmltcG9ydCB7IFNjSUNvbnRhY3QgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0JztcbmltcG9ydCB7IFNjSUNvbnRhY3RPbkRhdGFDcmVhdGUgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0LW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSUNvbnRhY3RXaXRoUmVsYXRpb25zIH0gZnJvbSAnLi4vZHRvL3NjLWktY29udGFjdC13aXRoLXJlbGF0aW9ucyc7XG5pbXBvcnQgeyBTY0lQYXNzd29yZE9uRGF0YVVwZGF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBhc3N3b3JkLW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSVBob25lT25EYXRhQXBwcm92ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBob25lLW9uLWRhdGEtYXBwcm92ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLWNyZWF0ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhVXBkYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLXVwZGF0ZSc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTY0lVc2VyRFRPIH0gZnJvbSAnLi4vaW50ZXJuYWwvZHRvJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VzZXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVzZXIkOiBSZXBsYXlTdWJqZWN0PFNjVXNlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY1VzZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0YLQvtC60LXQvdCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChTY1Rva2VuU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGB0LrRgNC40L/RgiDQstGL0L/QvtC70L3Rj9C10YLRgdGPINCyINCx0YDQsNGD0LfQtdGA0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW4gPSBpbmplY3QoSVNfQlJPV1NFUik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KFNjQXV0aFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQnYS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiBIVFRQLdC60LvQuNC10L3Rgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutC+0L3RgtCw0LrRgtC90YvQvNC4INC70LjRhtCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhY3RzU2VydmljZSA9IGluamVjdChTY0NvbnRhY3RzU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGL0L/QvtC70L3Rj9C10YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y4g0YHQtdGA0LLQuNGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0QXV0aENoYW5nZSgpXG4gICAgICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKChzdGF0ZSkgPT4gKHN0YXRlID8gdGhpcy5nZXRVc2VySW5mbyQoKSA6IHRoaXMuZ2V0R3Vlc3RJbmZvJCgpKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5zZXRVc2VyUGFyYW1zKHVzZXIuaWQsIHVzZXIudXNlclR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQobmV3IFNjVXNlcih7IG1ldGFkYXRhOiB7fSB9KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LjQt9C80LXQvdC10L3QuNGPINC40L3RhNC+0YDQvNCw0YbQuNC4INC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdEYXRhINCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlVXNlckluZm8kKG5ld0RhdGE6IFNjSVVzZXJPbkRhdGFVcGRhdGUgfCBTY0lDaGFuZ2VQYXNzd29yZCB8IFNjSVBob25lT25EYXRhQXBwcm92ZSk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCwgbmV3RGF0YSkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0udXNlclByb2ZpbGVFZGl0ZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LdCz0L7RgdGC0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3RGF0YSDQlNCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLdCz0L7RgdGC0Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RJbmZvJChuZXdEYXRhOiBQaWNrPFNjSVVzZXJPbkRhdGFVcGRhdGUsICdtZXRhZGF0YSc+KTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2d1ZXN0YCwgbmV3RGF0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIg0JTQsNC90L3Ri9C1INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB3aXRoQXV0aCDQpNC70LDQsywg0YPQutCw0LfRi9Cy0LDRjtGJ0LjQuSwg0L3Rg9C20L3QviDQu9C4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDRgtGMINGC0L7QutC10L0g0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2lnblVwJCh1c2VyOiBTY0lVc2VyT25EYXRhQ3JlYXRlIHwgU2NJU2ltcGxlVXNlck9uRGF0YUNyZWF0ZSwgd2l0aEF1dGg6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxJQXV0aFRva2VuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQXV0aFRva2VuPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL3JlZ2lzdGVyYCwgdXNlcikucGlwZShcbiAgICAgICAgICAgIHRhcCgodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5zaWduZWRVcCxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmICh3aXRoQXV0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXRBdXRoVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC90LAg0L7RgtC/0YDQsNCy0LrRgyDQutC+0LTQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPINC90LAg0Y3Qu9C10LrRgtGA0L7QvdC90YPRjiDQv9C+0YfRgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVtYWlsINCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZW5kUmVzZXRQYXNzd29yZENvZGUkKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2F1dGgvcGFzc3dvcmQvcmVzdG9yZWAsIHsgcGFyYW1zOiB7IGVtYWlsOiBlbWFpbCB9IH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1Bhc3N3b3JkINCU0LDQvdC90YvQtSDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC/0LDRgNC+0LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzZXRQYXNzd29yZCQobmV3UGFzc3dvcmQ6IFNjSVBhc3N3b3JkT25EYXRhVXBkYXRlKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vYXV0aC9wYXNzd29yZC9yZXN0b3JlYCwgbmV3UGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC00LDQvdC90YvQtSB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQtdC60YPRidC10LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzZXJDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvJCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHVibGljIGdldFVzZXJJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCkucGlwZShtYXAoKHVzZXIpID0+IG5ldyBTY1VzZXIodXNlcikpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1IHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEd1ZXN0SW5mbyQoKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyJC5uZXh0KHVzZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0R3Vlc3RJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS9ndWVzdGApLnBpcGUobWFwKCh1c2VyKSA9PiBuZXcgU2NVc2VyKHVzZXIpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0LrQvtC90YLQsNC60YLQvdGL0YUg0LvQuNGGINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckNvbnRhY3RzJCgpOiBPYnNlcnZhYmxlPFNjSUNvbnRhY3RbXSB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdHNTZXJ2aWNlLnVzZXJDb250YWN0cy5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0L/RgNC+0YEg0YHQvtC30LTQsNC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwINC60LvQuNC10L3RgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICogQHBhcmFtIG5ld0NvbnRhY3Qg0JTQsNC90L3Ri9C1INGC0YDQtdCx0YPQtdC80YvQtSDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVVc2VyQ29udGFjdCQodXNlcklkOiBudW1iZXIsIG5ld0NvbnRhY3Q6IFNjSUNvbnRhY3RPbkRhdGFDcmVhdGUpOiBPYnNlcnZhYmxlPFNjSUNvbnRhY3RXaXRoUmVsYXRpb25zPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhY3RzU2VydmljZS5jcmVhdGVDb250YWN0JCh7IC4uLm5ld0NvbnRhY3QsIGNsaWVudDogeyBpZDogdXNlcklkIH0gfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC/0YDQvtGBINGD0LTQsNC70LXQvdC40Y8g0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsCDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250YWN0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlVXNlckNvbnRhY3QkKGNvbnRhY3RJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdHNTZXJ2aWNlLmRlbGV0ZUNvbnRhY3QkKGNvbnRhY3RJZCk7XG4gICAgfVxufVxuIl19
|
|
@@ -7,7 +7,7 @@ import { startWith, Subject, ReplaySubject, partition, combineLatest, map, debou
|
|
|
7
7
|
import { isPlatformBrowser, isPlatformServer, DOCUMENT, formatDate } from '@angular/common';
|
|
8
8
|
import { tuiCreateTokenFromFactory, tuiCreateToken, TuiDay, tuiIsPresent, tuiPure } from '@taiga-ui/cdk';
|
|
9
9
|
import * as i1$1 from '@angular/common/http';
|
|
10
|
-
import { HttpContextToken, HttpContext, HttpHeaders,
|
|
10
|
+
import { HttpContextToken, HttpContext, HttpHeaders, HttpClient, HttpParams, HttpResponse, HttpErrorResponse } from '@angular/common/http';
|
|
11
11
|
import { tuiCleanObject } from '@taiga-ui/addon-doc/utils';
|
|
12
12
|
import { __decorate } from 'tslib';
|
|
13
13
|
import * as i2 from '@angular/router';
|
|
@@ -50,6 +50,10 @@ const IS_BROWSER = tuiCreateTokenFromFactory(() => isPlatformBrowser(inject(PLAT
|
|
|
50
50
|
* Токен для получения признака, что скрипт выполняется на сервере.
|
|
51
51
|
*/
|
|
52
52
|
const IS_SERVER = tuiCreateTokenFromFactory(() => isPlatformServer(inject(PLATFORM_ID)));
|
|
53
|
+
/**
|
|
54
|
+
* Токен для получения данных об ответе на запрос.
|
|
55
|
+
*/
|
|
56
|
+
const RESPONSE = new InjectionToken('RESPONSE');
|
|
53
57
|
|
|
54
58
|
/**
|
|
55
59
|
* Токен внедрения заголовков ключей доступа к API.
|
|
@@ -708,6 +712,10 @@ class ScAuthService {
|
|
|
708
712
|
* {@link ReplaySubject} для событийной модели сервиса аутентификации.
|
|
709
713
|
*/
|
|
710
714
|
this.authSubject = new ReplaySubject(1);
|
|
715
|
+
/**
|
|
716
|
+
* Признак, что скрипт выполняется на сервере.
|
|
717
|
+
*/
|
|
718
|
+
this.isServer = inject(IS_SERVER);
|
|
711
719
|
const [authState$, actions$] = partition(combineLatest({
|
|
712
720
|
access: this.tokenService.accessAuthToken$.pipe(map((token) => token !== null)),
|
|
713
721
|
guest: this.tokenService.guestToken$.pipe(map((token) => token !== null)),
|
|
@@ -725,6 +733,9 @@ class ScAuthService {
|
|
|
725
733
|
return this.getGuestToken$();
|
|
726
734
|
}))
|
|
727
735
|
.subscribe();
|
|
736
|
+
if (this.isServer) {
|
|
737
|
+
this.authSubject.next(false);
|
|
738
|
+
}
|
|
728
739
|
}
|
|
729
740
|
/**
|
|
730
741
|
* Возвращает {@link Observable} состояния аутентификации, чтобы реагировать на изменения.
|
|
@@ -1614,21 +1625,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
1614
1625
|
* Сервис информации о пользователе.
|
|
1615
1626
|
*/
|
|
1616
1627
|
class ScUserService {
|
|
1617
|
-
|
|
1618
|
-
* Инициализирует экземпляр класса {@link ScUserService}.
|
|
1619
|
-
*
|
|
1620
|
-
* @param authService Сервис аутентификации.
|
|
1621
|
-
* @param urls Список ссылок на разделы backend'a.
|
|
1622
|
-
* @param http HTTP-клиент.
|
|
1623
|
-
* @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
|
|
1624
|
-
* @param contactsService Сервис для работы с контактными лицами.
|
|
1625
|
-
*/
|
|
1626
|
-
constructor(authService, urls, http, userMetrikaService, contactsService) {
|
|
1627
|
-
this.authService = authService;
|
|
1628
|
-
this.urls = urls;
|
|
1629
|
-
this.http = http;
|
|
1630
|
-
this.userMetrikaService = userMetrikaService;
|
|
1631
|
-
this.contactsService = contactsService;
|
|
1628
|
+
constructor() {
|
|
1632
1629
|
/**
|
|
1633
1630
|
* {@link ReplaySubject} данных о текущем пользователе.
|
|
1634
1631
|
*/
|
|
@@ -1637,18 +1634,47 @@ class ScUserService {
|
|
|
1637
1634
|
* Сервис для работы с токенами.
|
|
1638
1635
|
*/
|
|
1639
1636
|
this.tokenService = inject(ScTokenService);
|
|
1637
|
+
/**
|
|
1638
|
+
* Признак, что скрипт выполняется в браузере.
|
|
1639
|
+
*/
|
|
1640
|
+
this.isBrowser = inject(IS_BROWSER);
|
|
1641
|
+
/**
|
|
1642
|
+
* Сервис аутентификации.
|
|
1643
|
+
*/
|
|
1644
|
+
this.authService = inject(ScAuthService);
|
|
1645
|
+
/**
|
|
1646
|
+
* Список ссылок на разделы backend'a.
|
|
1647
|
+
*/
|
|
1648
|
+
this.urls = inject(SC_URLS);
|
|
1649
|
+
/**
|
|
1650
|
+
* HTTP-клиент.
|
|
1651
|
+
*/
|
|
1652
|
+
this.http = inject(HttpClient);
|
|
1653
|
+
/**
|
|
1654
|
+
* Сервис для сбора метрик о действиях пользователей.
|
|
1655
|
+
*/
|
|
1656
|
+
this.userMetrikaService = inject(ScUserMetrikaService);
|
|
1657
|
+
/**
|
|
1658
|
+
* Сервис для работы с контактными лицами.
|
|
1659
|
+
*/
|
|
1660
|
+
this.contactsService = inject(ScContactsService);
|
|
1640
1661
|
}
|
|
1641
1662
|
/**
|
|
1642
1663
|
* Выполняет инициализацию сервиса.
|
|
1643
1664
|
*/
|
|
1644
1665
|
initService() {
|
|
1645
|
-
this.
|
|
1646
|
-
.
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1666
|
+
if (this.isBrowser) {
|
|
1667
|
+
this.authService
|
|
1668
|
+
.getAuthChange()
|
|
1669
|
+
.pipe(switchMap((state) => (state ? this.getUserInfo$() : this.getGuestInfo$())))
|
|
1670
|
+
.subscribe((user) => {
|
|
1671
|
+
this.userMetrikaService.setUserParams(user.id, user.userType);
|
|
1672
|
+
this.user$.next(user);
|
|
1673
|
+
});
|
|
1674
|
+
}
|
|
1675
|
+
else {
|
|
1676
|
+
this.user$.next(new ScUser({ metadata: {} }));
|
|
1677
|
+
}
|
|
1652
1678
|
}
|
|
1653
1679
|
/**
|
|
1654
1680
|
* Возвращает {@link Observable} запроса изменения информации о текущем пользователе.
|
|
@@ -1759,7 +1785,7 @@ class ScUserService {
|
|
|
1759
1785
|
deleteUserContact$(contactId) {
|
|
1760
1786
|
return this.contactsService.deleteContact$(contactId);
|
|
1761
1787
|
}
|
|
1762
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [
|
|
1788
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1763
1789
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, providedIn: 'root' }); }
|
|
1764
1790
|
}
|
|
1765
1791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, decorators: [{
|
|
@@ -1767,10 +1793,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
1767
1793
|
args: [{
|
|
1768
1794
|
providedIn: 'root',
|
|
1769
1795
|
}]
|
|
1770
|
-
}]
|
|
1771
|
-
type: Inject,
|
|
1772
|
-
args: [SC_URLS]
|
|
1773
|
-
}] }, { type: i1$1.HttpClient }, { type: ScUserMetrikaService }, { type: ScContactsService }] });
|
|
1796
|
+
}] });
|
|
1774
1797
|
|
|
1775
1798
|
/**
|
|
1776
1799
|
* Перечисление названий справочников.
|
|
@@ -2558,12 +2581,18 @@ class ScCartService {
|
|
|
2558
2581
|
* {@link ReplaySubject} для содержимого корзины.
|
|
2559
2582
|
*/
|
|
2560
2583
|
this.cart$ = new ReplaySubject(1);
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
|
|
2584
|
+
/**
|
|
2585
|
+
* Признак, что скрипт выполняется в браузере.
|
|
2586
|
+
*/
|
|
2587
|
+
this.isBrowser = inject(IS_BROWSER);
|
|
2588
|
+
if (this.isBrowser) {
|
|
2589
|
+
authService
|
|
2590
|
+
.getAuthChange()
|
|
2591
|
+
.pipe(switchMap(() => this.updateCart$()))
|
|
2592
|
+
.subscribe((cart) => {
|
|
2593
|
+
this.cart$.next(cart);
|
|
2594
|
+
});
|
|
2595
|
+
}
|
|
2567
2596
|
this.cartDirections$ = referencesService.directions$.pipe(switchMap((directions) => this.cart$.pipe(switchMap((cart) => this.warehouseService.getWarehouseSelectChange$().pipe(map((warehouse) => directions
|
|
2568
2597
|
.map((direction) => new ScISalesDirectionCart(direction, cart.items.filter((cartItem) => cartItem.salesDirection === direction.id), cart.directionsSum[direction.id], warehouse.id))
|
|
2569
2598
|
.filter((direction) => direction.items.length > 0 || direction.itemsOnOrder.length > 0 || direction.itemsNotInWarehouseStock.length > 0)))))));
|
|
@@ -5107,25 +5136,11 @@ var ScReclamationStatus;
|
|
|
5107
5136
|
* Сервис для получения списков стран, регионов, городов.
|
|
5108
5137
|
*/
|
|
5109
5138
|
class ScLocationsService {
|
|
5110
|
-
|
|
5111
|
-
* Инициализирует экземпляр класса {@link ScLocationsService}.
|
|
5112
|
-
*
|
|
5113
|
-
* @param authService Сервис аутентификации.
|
|
5114
|
-
* @param referencesService Сервис справочников.
|
|
5115
|
-
*/
|
|
5116
|
-
constructor(authService, referencesService) {
|
|
5117
|
-
this.authService = authService;
|
|
5118
|
-
this.referencesService = referencesService;
|
|
5139
|
+
constructor() {
|
|
5119
5140
|
/**
|
|
5120
|
-
*
|
|
5141
|
+
* Сервис справочников.
|
|
5121
5142
|
*/
|
|
5122
|
-
this.
|
|
5123
|
-
authService
|
|
5124
|
-
.getAuthChange()
|
|
5125
|
-
.pipe(filter((state) => !state))
|
|
5126
|
-
.subscribe(() => {
|
|
5127
|
-
this.currentUserCity = undefined;
|
|
5128
|
-
});
|
|
5143
|
+
this.referencesService = inject(ScReferencesService);
|
|
5129
5144
|
}
|
|
5130
5145
|
/**
|
|
5131
5146
|
* Создает запрос получения списка стран.
|
|
@@ -5139,6 +5154,14 @@ class ScLocationsService {
|
|
|
5139
5154
|
* @param countryId Идентификатор записи страны {@link number}.
|
|
5140
5155
|
*/
|
|
5141
5156
|
getRegions$(countryId) {
|
|
5157
|
+
return this.referencesService.getReference$(ScReferenceName.region, { countryId: countryId });
|
|
5158
|
+
}
|
|
5159
|
+
/**
|
|
5160
|
+
* Создает запрос получения списка регионов указанной страны с информацией о стране.
|
|
5161
|
+
*
|
|
5162
|
+
* @param countryId Идентификатор записи страны {@link number}.
|
|
5163
|
+
*/
|
|
5164
|
+
getRegionsWithCountry$(countryId) {
|
|
5142
5165
|
return this.referencesService.getReference$(ScReferenceName.regionWithCountry, { countryId: countryId });
|
|
5143
5166
|
}
|
|
5144
5167
|
/**
|
|
@@ -5148,10 +5171,28 @@ class ScLocationsService {
|
|
|
5148
5171
|
* @param regionId Идентификатор записи региона {@link regionId}.
|
|
5149
5172
|
*/
|
|
5150
5173
|
getCities$(countryId, regionId) {
|
|
5174
|
+
return this.referencesService.getReference$(ScReferenceName.city, { countryId: countryId, regionId: regionId });
|
|
5175
|
+
}
|
|
5176
|
+
/**
|
|
5177
|
+
* Создает запрос получения списка городов указанного региона и страны с информацией о регионе.
|
|
5178
|
+
*
|
|
5179
|
+
* @param countryId Идентификатор записи страны {@link number}.
|
|
5180
|
+
* @param regionId Идентификатор записи региона {@link regionId}.
|
|
5181
|
+
*/
|
|
5182
|
+
getCitiesWithRegion$(countryId, regionId) {
|
|
5151
5183
|
return this.referencesService.getReference$(ScReferenceName.cityWithRegion, { countryId: countryId, regionId: regionId });
|
|
5152
5184
|
}
|
|
5153
5185
|
/**
|
|
5154
|
-
* Создает запрос получения списка городов указанного
|
|
5186
|
+
* Создает запрос получения списка городов указанного региона и страны с информацией о регионе и стране.
|
|
5187
|
+
*
|
|
5188
|
+
* @param countryId Идентификатор записи страны {@link number}.
|
|
5189
|
+
* @param regionId Идентификатор записи региона {@link regionId}.
|
|
5190
|
+
*/
|
|
5191
|
+
getCityesWithRegionAndCountry$(countryId, regionId) {
|
|
5192
|
+
return this.referencesService.getReference$(ScReferenceName.cityWithRegionAndCountry, { countryId: countryId, regionId: regionId });
|
|
5193
|
+
}
|
|
5194
|
+
/**
|
|
5195
|
+
* Создает запрос получения списка городов указанного региона и страны по поисковому запросу.
|
|
5155
5196
|
*
|
|
5156
5197
|
* @param term Поисковый запрос.
|
|
5157
5198
|
* @param countryId Идентификатор записи страны.
|
|
@@ -5161,26 +5202,14 @@ class ScLocationsService {
|
|
|
5161
5202
|
return this.referencesService.getReferenceByTerm$(ScReferenceName.cityWithRegion, term, { countryId: countryId, regionId: regionId });
|
|
5162
5203
|
}
|
|
5163
5204
|
/**
|
|
5164
|
-
* Создает запрос получения информации о городе
|
|
5205
|
+
* Создает запрос получения информации о городе с информацией о регионе и стране.
|
|
5165
5206
|
*
|
|
5166
5207
|
* @param cityId Идентификатор записи города.
|
|
5167
5208
|
*/
|
|
5168
5209
|
getCityById$(cityId) {
|
|
5169
5210
|
return this.referencesService.getReferenceById$(ScReferenceName.cityWithRegionAndCountry, cityId);
|
|
5170
5211
|
}
|
|
5171
|
-
|
|
5172
|
-
* Создает запрос получения информации о городе текшего пользователя по идентификатору города.
|
|
5173
|
-
*
|
|
5174
|
-
* @param cityId Идентификатор записи города.
|
|
5175
|
-
*/
|
|
5176
|
-
getUserCity$(cityId) {
|
|
5177
|
-
if (this.currentUserCity && this.currentUserCity.id === cityId) {
|
|
5178
|
-
return of(this.currentUserCity);
|
|
5179
|
-
}
|
|
5180
|
-
// eslint-disable-next-line no-return-assign
|
|
5181
|
-
return this.getCityById$(cityId).pipe(tap((city) => (this.currentUserCity = city)));
|
|
5182
|
-
}
|
|
5183
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScLocationsService, deps: [{ token: ScAuthService }, { token: ScReferencesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5212
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScLocationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5184
5213
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScLocationsService, providedIn: 'root' }); }
|
|
5185
5214
|
}
|
|
5186
5215
|
__decorate([
|
|
@@ -5189,9 +5218,18 @@ __decorate([
|
|
|
5189
5218
|
__decorate([
|
|
5190
5219
|
tuiPure
|
|
5191
5220
|
], ScLocationsService.prototype, "getRegions$", null);
|
|
5221
|
+
__decorate([
|
|
5222
|
+
tuiPure
|
|
5223
|
+
], ScLocationsService.prototype, "getRegionsWithCountry$", null);
|
|
5192
5224
|
__decorate([
|
|
5193
5225
|
tuiPure
|
|
5194
5226
|
], ScLocationsService.prototype, "getCities$", null);
|
|
5227
|
+
__decorate([
|
|
5228
|
+
tuiPure
|
|
5229
|
+
], ScLocationsService.prototype, "getCitiesWithRegion$", null);
|
|
5230
|
+
__decorate([
|
|
5231
|
+
tuiPure
|
|
5232
|
+
], ScLocationsService.prototype, "getCityesWithRegionAndCountry$", null);
|
|
5195
5233
|
__decorate([
|
|
5196
5234
|
tuiPure
|
|
5197
5235
|
], ScLocationsService.prototype, "getCitiesByTerm$", null);
|
|
@@ -5203,7 +5241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
5203
5241
|
args: [{
|
|
5204
5242
|
providedIn: 'root',
|
|
5205
5243
|
}]
|
|
5206
|
-
}],
|
|
5244
|
+
}], propDecorators: { getCountries$: [], getRegions$: [], getRegionsWithCountry$: [], getCities$: [], getCitiesWithRegion$: [], getCityesWithRegionAndCountry$: [], getCitiesByTerm$: [], getCityById$: [] } });
|
|
5207
5245
|
|
|
5208
5246
|
/**
|
|
5209
5247
|
* Модель данных новости.
|
|
@@ -7079,5 +7117,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
7079
7117
|
* Generated bundle index. Do not edit.
|
|
7080
7118
|
*/
|
|
7081
7119
|
|
|
7082
|
-
export { EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DEFAULT_PAGE_META, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartItem, ScCartService, ScCatalogFormat, ScCatalogService, ScCategory, ScClientType, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForm, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScISalesDirectionCart, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScImageHelper, ScJsonLdComponent, ScJsonLdModule, ScLocationsService, ScMimeTypes, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReferenceName, ScReferencesService, ScRequisitesService, ScSearchService, ScSeoResource, ScSeoService, ScSocialType, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, runningOnTerminalFactory, searchTermFactory };
|
|
7120
|
+
export { EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DEFAULT_PAGE_META, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartItem, ScCartService, ScCatalogFormat, ScCatalogService, ScCategory, ScClientType, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForm, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScISalesDirectionCart, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScImageHelper, ScJsonLdComponent, ScJsonLdModule, ScLocationsService, ScMimeTypes, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReferenceName, ScReferencesService, ScRequisitesService, ScSearchService, ScSeoResource, ScSeoService, ScSocialType, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, runningOnTerminalFactory, searchTermFactory };
|
|
7083
7121
|
//# sourceMappingURL=snabcentr-client-core.mjs.map
|