@snabcentr/client-core 2.66.22 → 2.67.1
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/catalog/interfaces/index.d.ts +1 -0
- package/catalog/interfaces/sc-i-parent-category-redirect.d.ts +21 -0
- package/catalog/services/index.d.ts +1 -0
- package/catalog/services/sc-catalog-redirect.service.d.ts +68 -0
- package/catalog/services/sc-catalog.service.d.ts +15 -0
- package/esm2022/catalog/interfaces/index.mjs +2 -1
- package/esm2022/catalog/interfaces/sc-i-parent-category-redirect.mjs +2 -0
- package/esm2022/catalog/services/index.mjs +2 -1
- package/esm2022/catalog/services/sc-catalog-redirect.service.mjs +128 -0
- package/esm2022/catalog/services/sc-catalog.service.mjs +23 -1
- package/esm2022/providers/ssr.providers.mjs +7 -1
- package/fesm2022/snabcentr-client-core.mjs +150 -4
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/package.json +1 -1
- package/providers/ssr.providers.d.ts +6 -0
- package/release_notes.tmp +2 -2
|
@@ -14,6 +14,12 @@ export const IS_SERVER = new InjectionToken('IS_SERVER', {
|
|
|
14
14
|
});
|
|
15
15
|
/**
|
|
16
16
|
* Токен для получения данных об ответе на запрос.
|
|
17
|
+
*
|
|
18
|
+
* Angular 21 (миграция SSR): это кастомный Express-токен, который провайдится в `server.ts` через CommonEngine.
|
|
19
|
+
* Фреймворк предоставляет нативный аналог `RESPONSE_INIT` (`InjectionToken<ResponseInit | null>` из `@angular/core`)
|
|
20
|
+
* для статуса и заголовков SSR-ответа. При миграции `server.ts` с CommonEngine на `AngularNodeAppEngine` +
|
|
21
|
+
* `createNodeRequestHandler` переходите на `RESPONSE_INIT` и откажитесь от этого токена. Пока `server.ts` на
|
|
22
|
+
* CommonEngine (как на upgrade-ветке `feature/12864_angular_upgrade`) — токен остаётся без изменений.
|
|
17
23
|
*/
|
|
18
24
|
export const RESPONSE = new InjectionToken('RESPONSE');
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcHJvdmlkZXJzL3Nzci5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFVLFlBQVksRUFBRTtJQUNoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0NBQ3hELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFVLFdBQVcsRUFBRTtJQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0NBQ3ZELENBQUMsQ0FBQztBQUVIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFXLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5cbi8qKlxuICog0KLQvtC60LXQvSDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC/0YDQuNC30L3QsNC60LAsINGH0YLQviDRgdC60YDQuNC/0YIg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQsiDQsdGA0LDRg9C30LXRgNC1LlxuICovXG5leHBvcnQgY29uc3QgSVNfQlJPV1NFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignSVNfQlJPV1NFUicsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKSxcbn0pO1xuXG4vKipcbiAqINCi0L7QutC10L0g0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDQv9GA0LjQt9C90LDQutCwLCDRh9GC0L4g0YHQutGA0LjQv9GCINCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8g0L3QsCDRgdC10YDQstC10YDQtS5cbiAqL1xuZXhwb3J0IGNvbnN0IElTX1NFUlZFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignSVNfU0VSVkVSJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IGlzUGxhdGZvcm1TZXJ2ZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSksXG59KTtcblxuLyoqXG4gKiDQotC+0LrQtdC9INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0LTQsNC90L3Ri9GFINC+0LEg0L7RgtCy0LXRgtC1INC90LAg0LfQsNC/0YDQvtGBLlxuICpcbiAqIEFuZ3VsYXIgMjEgKNC80LjQs9GA0LDRhtC40Y8gU1NSKTog0Y3RgtC+INC60LDRgdGC0L7QvNC90YvQuSBFeHByZXNzLdGC0L7QutC10L0sINC60L7RgtC+0YDRi9C5INC/0YDQvtCy0LDQudC00LjRgtGB0Y8g0LIgYHNlcnZlci50c2Ag0YfQtdGA0LXQtyBDb21tb25FbmdpbmUuXG4gKiDQpNGA0LXQudC80LLQvtGA0Log0L/RgNC10LTQvtGB0YLQsNCy0LvRj9C10YIg0L3QsNGC0LjQstC90YvQuSDQsNC90LDQu9C+0LMgYFJFU1BPTlNFX0lOSVRgIChgSW5qZWN0aW9uVG9rZW48UmVzcG9uc2VJbml0IHwgbnVsbD5gINC40LcgYEBhbmd1bGFyL2NvcmVgKVxuICog0LTQu9GPINGB0YLQsNGC0YPRgdCwINC4INC30LDQs9C+0LvQvtCy0LrQvtCyIFNTUi3QvtGC0LLQtdGC0LAuINCf0YDQuCDQvNC40LPRgNCw0YbQuNC4IGBzZXJ2ZXIudHNgINGBIENvbW1vbkVuZ2luZSDQvdCwIGBBbmd1bGFyTm9kZUFwcEVuZ2luZWAgK1xuICogYGNyZWF0ZU5vZGVSZXF1ZXN0SGFuZGxlcmAg0L/QtdGA0LXRhdC+0LTQuNGC0LUg0L3QsCBgUkVTUE9OU0VfSU5JVGAg0Lgg0L7RgtC60LDQttC40YLQtdGB0Ywg0L7RgiDRjdGC0L7Qs9C+INGC0L7QutC10L3QsC4g0J/QvtC60LAgYHNlcnZlci50c2Ag0L3QsFxuICogQ29tbW9uRW5naW5lICjQutCw0Log0L3QsCB1cGdyYWRlLdCy0LXRgtC60LUgYGZlYXR1cmUvMTI4NjRfYW5ndWxhcl91cGdyYWRlYCkg4oCUINGC0L7QutC10L0g0L7RgdGC0LDRkdGC0YHRjyDQsdC10Lcg0LjQt9C80LXQvdC10L3QuNC5LlxuICovXG5leHBvcnQgY29uc3QgUkVTUE9OU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVzcG9uc2U+KCdSRVNQT05TRScpO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i1 from 'rxjs';
|
|
2
|
-
import { of, startWith as startWith$1, Subject, ReplaySubject, partition, combineLatest, map as map$1, debounceTime, switchMap, tap, filter, shareReplay, distinctUntilChanged, BehaviorSubject, materialize, dematerialize, merge, distinctUntilKeyChanged, skip, first, catchError as catchError$1, throwError, expand, takeWhile, toArray, take, defaultIfEmpty, concatMap, finalize, takeUntil, interval, share, scan } from 'rxjs';
|
|
2
|
+
import { of, startWith as startWith$1, Subject, ReplaySubject, partition, combineLatest, map as map$1, debounceTime, switchMap, tap, filter, shareReplay, distinctUntilChanged, BehaviorSubject, materialize, dematerialize, merge, distinctUntilKeyChanged, skip, first, catchError as catchError$1, throwError, expand, takeWhile, toArray, EMPTY, take, defaultIfEmpty, concatMap, finalize, takeUntil, interval, share, scan } from 'rxjs';
|
|
3
3
|
import { map, startWith, catchError } from 'rxjs/operators';
|
|
4
4
|
import { parseISO, parse, isValid, format } from 'date-fns';
|
|
5
5
|
import { isString, isNil, isMatch, isArray, get } from 'lodash-es';
|
|
@@ -13,9 +13,9 @@ import { HttpContextToken, HttpContext, HttpHeaders, HttpClient, HttpParams, Htt
|
|
|
13
13
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
14
14
|
import { tuiIsPresent, TuiDay, tuiPure, TUI_TRUE_HANDLER } from '@taiga-ui/cdk';
|
|
15
15
|
import { tuiCleanObject } from '@taiga-ui/addon-doc/utils';
|
|
16
|
-
import { __decorate } from 'tslib';
|
|
17
16
|
import * as i2 from '@angular/router';
|
|
18
|
-
import {
|
|
17
|
+
import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
|
|
18
|
+
import { __decorate } from 'tslib';
|
|
19
19
|
import { objectToSnake, objectToCamel, toSnake } from 'ts-case-convert';
|
|
20
20
|
import { Meta, Title } from '@angular/platform-browser';
|
|
21
21
|
|
|
@@ -269,6 +269,12 @@ const IS_SERVER = new InjectionToken('IS_SERVER', {
|
|
|
269
269
|
});
|
|
270
270
|
/**
|
|
271
271
|
* Токен для получения данных об ответе на запрос.
|
|
272
|
+
*
|
|
273
|
+
* Angular 21 (миграция SSR): это кастомный Express-токен, который провайдится в `server.ts` через CommonEngine.
|
|
274
|
+
* Фреймворк предоставляет нативный аналог `RESPONSE_INIT` (`InjectionToken<ResponseInit | null>` из `@angular/core`)
|
|
275
|
+
* для статуса и заголовков SSR-ответа. При миграции `server.ts` с CommonEngine на `AngularNodeAppEngine` +
|
|
276
|
+
* `createNodeRequestHandler` переходите на `RESPONSE_INIT` и откажитесь от этого токена. Пока `server.ts` на
|
|
277
|
+
* CommonEngine (как на upgrade-ветке `feature/12864_angular_upgrade`) — токен остаётся без изменений.
|
|
272
278
|
*/
|
|
273
279
|
const RESPONSE = new InjectionToken('RESPONSE');
|
|
274
280
|
|
|
@@ -3497,6 +3503,28 @@ class ScCatalogService {
|
|
|
3497
3503
|
}
|
|
3498
3504
|
}));
|
|
3499
3505
|
}
|
|
3506
|
+
/**
|
|
3507
|
+
* Возвращает данные о родительской категории для редиректа, когда категория недоступна (HTTP 404).
|
|
3508
|
+
* Если у категории нет нескрытой родительской категории, возвращается пустой объект.
|
|
3509
|
+
*
|
|
3510
|
+
* @param categoryIdOrSlug Идентификатор или slug недоступной категории.
|
|
3511
|
+
*/
|
|
3512
|
+
getCategoryParentCategory$(categoryIdOrSlug) {
|
|
3513
|
+
return this.http.get(`${this.urls.apiUrl}/catalog/categories/${categoryIdOrSlug}/parent-category`, {
|
|
3514
|
+
context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
|
|
3515
|
+
});
|
|
3516
|
+
}
|
|
3517
|
+
/**
|
|
3518
|
+
* Возвращает данные о родительской категории для редиректа, когда товар недоступен (HTTP 404).
|
|
3519
|
+
* Если у товара нет нескрытой родительской категории, возвращается пустой объект.
|
|
3520
|
+
*
|
|
3521
|
+
* @param productIdOrSlug Идентификатор или slug недоступного товара.
|
|
3522
|
+
*/
|
|
3523
|
+
getProductParentCategory$(productIdOrSlug) {
|
|
3524
|
+
return this.http.get(`${this.urls.apiUrl}/catalog/products/${productIdOrSlug}/parent-category`, {
|
|
3525
|
+
context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
|
|
3526
|
+
});
|
|
3527
|
+
}
|
|
3500
3528
|
getProductDataCached$(productIdOrSlug) {
|
|
3501
3529
|
const valueFromMap = this.productIdOrSlugMap.get(productIdOrSlug);
|
|
3502
3530
|
if (valueFromMap) {
|
|
@@ -3559,6 +3587,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3559
3587
|
args: [SC_CACHE_LIFETIME]
|
|
3560
3588
|
}] }, { type: ScUserMetrikaService }] });
|
|
3561
3589
|
|
|
3590
|
+
/**
|
|
3591
|
+
* Сервис редиректа на родительскую категорию при недоступности (HTTP 404) товара или категории.
|
|
3592
|
+
*
|
|
3593
|
+
* Запрашивает у бэкенда родительскую категорию недоступной сущности и выполняет редирект:
|
|
3594
|
+
* - на сервере (SSR) при доступном {@link RESPONSE} — выставляет HTTP-статус 302 и заголовок `Location` для корректного редиректа поисковых ботов;
|
|
3595
|
+
* - на сервере без {@link RESPONSE} (например, dev-сервер `ng serve`) — завершает поток ошибкой 404, чтобы отобразилась страница ошибки;
|
|
3596
|
+
* - в браузере — выполняет полную навигацию на родительскую категорию.
|
|
3597
|
+
*
|
|
3598
|
+
* Если родительская категория не найдена, поток также завершается ошибкой {@link HttpErrorResponse},
|
|
3599
|
+
* чтобы вызывающий код отобразил страницу ошибки.
|
|
3600
|
+
*/
|
|
3601
|
+
class ScCatalogRedirectService {
|
|
3602
|
+
constructor() {
|
|
3603
|
+
/**
|
|
3604
|
+
* Сервис для работы с каталогом.
|
|
3605
|
+
*/
|
|
3606
|
+
this.catalogService = inject(ScCatalogService);
|
|
3607
|
+
/**
|
|
3608
|
+
* Сервис маршрутизации.
|
|
3609
|
+
*/
|
|
3610
|
+
this.router = inject(Router);
|
|
3611
|
+
/**
|
|
3612
|
+
* Признак использования идентификатора или slug в маршрутах товаров и категорий.
|
|
3613
|
+
*/
|
|
3614
|
+
this.idOrSlug = inject(SC_ID_OR_SLUG_IN_ROUTE);
|
|
3615
|
+
/**
|
|
3616
|
+
* Признак, что текущий скрипт исполняется на сервере.
|
|
3617
|
+
*/
|
|
3618
|
+
this.isServer = inject(IS_SERVER);
|
|
3619
|
+
/**
|
|
3620
|
+
* Данные об ответе на запрос (доступны только на сервере при SSR).
|
|
3621
|
+
*
|
|
3622
|
+
* Angular 21 (миграция SSR): {@link RESPONSE} — кастомный Express-токен, который провайдится в `server.ts`
|
|
3623
|
+
* через CommonEngine. На upgrade-ветке `server.ts` остался на CommonEngine, поэтому при слиянии здесь
|
|
3624
|
+
* ничего менять не нужно. Если `server.ts` мигрируют на `AngularNodeAppEngine` + `createNodeRequestHandler`,
|
|
3625
|
+
* замените {@link RESPONSE} на нативный `RESPONSE_INIT` (`InjectionToken<ResponseInit | null>` из `@angular/core`);
|
|
3626
|
+
* см. серверную ветку в {@link redirectToParentCategory$}.
|
|
3627
|
+
*/
|
|
3628
|
+
this.response = inject(RESPONSE, { optional: true });
|
|
3629
|
+
/**
|
|
3630
|
+
* Документ текущей страницы.
|
|
3631
|
+
*/
|
|
3632
|
+
this.document = inject(DOCUMENT);
|
|
3633
|
+
}
|
|
3634
|
+
/**
|
|
3635
|
+
* Выполняет редирект на родительскую категорию недоступной категории.
|
|
3636
|
+
*
|
|
3637
|
+
* @param categoryIdOrSlug Идентификатор или slug недоступной категории.
|
|
3638
|
+
* @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse}, если родительская категория не найдена.
|
|
3639
|
+
*/
|
|
3640
|
+
redirectToCategoryParent$(categoryIdOrSlug) {
|
|
3641
|
+
return this.redirectToParentCategory$(this.catalogService.getCategoryParentCategory$(categoryIdOrSlug));
|
|
3642
|
+
}
|
|
3643
|
+
/**
|
|
3644
|
+
* Выполняет редирект на родительскую категорию недоступного товара.
|
|
3645
|
+
*
|
|
3646
|
+
* @param productIdOrSlug Идентификатор или slug недоступного товара.
|
|
3647
|
+
* @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse}, если родительская категория не найдена.
|
|
3648
|
+
*/
|
|
3649
|
+
redirectToProductParent$(productIdOrSlug) {
|
|
3650
|
+
return this.redirectToParentCategory$(this.catalogService.getProductParentCategory$(productIdOrSlug));
|
|
3651
|
+
}
|
|
3652
|
+
/**
|
|
3653
|
+
* Выполняет редирект на полученную родительскую категорию.
|
|
3654
|
+
*
|
|
3655
|
+
* @param parentCategory$ Поток с данными родительской категории.
|
|
3656
|
+
* @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse} с кодом 404, если родительская категория не найдена.
|
|
3657
|
+
*/
|
|
3658
|
+
redirectToParentCategory$(parentCategory$) {
|
|
3659
|
+
return parentCategory$.pipe(switchMap((parentCategory) => {
|
|
3660
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
3661
|
+
const target = parentCategory[this.idOrSlug];
|
|
3662
|
+
// Родительская категория не найдена — отображаем страницу ошибки.
|
|
3663
|
+
if (!tuiIsPresent(target)) {
|
|
3664
|
+
return throwError(() => new HttpErrorResponse({ status: 404 }));
|
|
3665
|
+
}
|
|
3666
|
+
const urlTree = this.router.createUrlTree(['/catalog', target]);
|
|
3667
|
+
const targetUrl = this.router.serializeUrl(urlTree);
|
|
3668
|
+
if (this.isServer) {
|
|
3669
|
+
// SSR с доступным RESPONSE (прод-сервер): выставляем 302 и заголовок Location для корректного редиректа поисковых ботов.
|
|
3670
|
+
//
|
|
3671
|
+
// Angular 21 (миграция SSR): при переходе server.ts на AngularNodeAppEngine выставляйте статус/заголовок
|
|
3672
|
+
// через нативный RESPONSE_INIT вместо Express-методов response.setHeader/response.status:
|
|
3673
|
+
// if (this.responseInit) { this.responseInit.status = 302; (this.responseInit.headers as Record<string, string>)['Location'] = targetUrl; }
|
|
3674
|
+
if (this.response) {
|
|
3675
|
+
this.response.setHeader('Location', targetUrl);
|
|
3676
|
+
this.response.status(302);
|
|
3677
|
+
return EMPTY;
|
|
3678
|
+
}
|
|
3679
|
+
// SSR без RESPONSE (например, dev-сервер ng serve): серверный редирект невозможен,
|
|
3680
|
+
// поэтому отображаем страницу ошибки, как до внедрения редиректа, вместо бесконечного лоадера.
|
|
3681
|
+
//
|
|
3682
|
+
// Angular 21 (миграция SSR): этот фолбэк нужен, пока ng serve не исполняет server.ts (он на CommonEngine).
|
|
3683
|
+
// После миграции server.ts на createNodeRequestHandler dev-сервер начнёт исполнять server.ts, и RESPONSE/RESPONSE_INIT
|
|
3684
|
+
// станет доступен в ng serve — тогда эту ветку с throwError(404) можно удалить.
|
|
3685
|
+
return throwError(() => new HttpErrorResponse({ status: 404 }));
|
|
3686
|
+
}
|
|
3687
|
+
// Браузер: поток данных категории (SC_CATEGORY_INFO) завершается ошибкой при 404 и не возобновляется
|
|
3688
|
+
// при навигации в рамках того же маршрута, поэтому редирект выполняется полной перезагрузкой страницы.
|
|
3689
|
+
// location.replace не добавляет запись в историю, чтобы кнопка «Назад» не возвращала на недоступную страницу.
|
|
3690
|
+
//
|
|
3691
|
+
// Angular 21 (миграция SSR): эту строку апгрейд НЕ снимает — причина в рантайме приложения (мёртвый поток
|
|
3692
|
+
// SC_CATEGORY_INFO при SPA-навигации), а не в SSR. Вернуть SPA-навигацию (router.navigateByUrl) можно только
|
|
3693
|
+
// сделав SC_CATEGORY_INFO устойчивым к 404 (ловить ошибку внутри switchMap) либо унеся редирект в guard + RedirectCommand.
|
|
3694
|
+
this.document.location.replace(targetUrl);
|
|
3695
|
+
return EMPTY;
|
|
3696
|
+
}));
|
|
3697
|
+
}
|
|
3698
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogRedirectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3699
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogRedirectService, providedIn: 'root' }); }
|
|
3700
|
+
}
|
|
3701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogRedirectService, decorators: [{
|
|
3702
|
+
type: Injectable,
|
|
3703
|
+
args: [{
|
|
3704
|
+
providedIn: 'root',
|
|
3705
|
+
}]
|
|
3706
|
+
}] });
|
|
3707
|
+
|
|
3562
3708
|
/* eslint-disable no-param-reassign,no-return-assign,no-void */
|
|
3563
3709
|
/**
|
|
3564
3710
|
* Сервис для работы с избранными товарами и категориями.
|
|
@@ -8370,5 +8516,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
8370
8516
|
* Generated bundle index. Do not edit.
|
|
8371
8517
|
*/
|
|
8372
8518
|
|
|
8373
|
-
export { CATEGORY_PROVIDERS, 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_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, 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_ORDER_LOADER, SC_ORDER_LOADING, 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_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
|
|
8519
|
+
export { CATEGORY_PROVIDERS, 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_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, 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_ORDER_LOADER, SC_ORDER_LOADING, 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_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
|
|
8374
8520
|
//# sourceMappingURL=snabcentr-client-core.mjs.map
|