@snabcentr/client-core 3.7.0 → 3.8.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 +4 -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
|
|
|
@@ -3489,6 +3495,28 @@ class ScCatalogService {
|
|
|
3489
3495
|
}
|
|
3490
3496
|
}));
|
|
3491
3497
|
}
|
|
3498
|
+
/**
|
|
3499
|
+
* Возвращает данные о родительской категории для редиректа, когда категория недоступна (HTTP 404).
|
|
3500
|
+
* Если у категории нет нескрытой родительской категории, возвращается пустой объект.
|
|
3501
|
+
*
|
|
3502
|
+
* @param categoryIdOrSlug Идентификатор или slug недоступной категории.
|
|
3503
|
+
*/
|
|
3504
|
+
getCategoryParentCategory$(categoryIdOrSlug) {
|
|
3505
|
+
return this.http.get(`${this.urls.apiUrl}/catalog/categories/${categoryIdOrSlug}/parent-category`, {
|
|
3506
|
+
context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
|
|
3507
|
+
});
|
|
3508
|
+
}
|
|
3509
|
+
/**
|
|
3510
|
+
* Возвращает данные о родительской категории для редиректа, когда товар недоступен (HTTP 404).
|
|
3511
|
+
* Если у товара нет нескрытой родительской категории, возвращается пустой объект.
|
|
3512
|
+
*
|
|
3513
|
+
* @param productIdOrSlug Идентификатор или slug недоступного товара.
|
|
3514
|
+
*/
|
|
3515
|
+
getProductParentCategory$(productIdOrSlug) {
|
|
3516
|
+
return this.http.get(`${this.urls.apiUrl}/catalog/products/${productIdOrSlug}/parent-category`, {
|
|
3517
|
+
context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
|
|
3518
|
+
});
|
|
3519
|
+
}
|
|
3492
3520
|
getProductDataCached$(productIdOrSlug) {
|
|
3493
3521
|
const valueFromMap = this.productIdOrSlugMap.get(productIdOrSlug);
|
|
3494
3522
|
if (valueFromMap) {
|
|
@@ -3551,6 +3579,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3551
3579
|
args: [SC_CACHE_LIFETIME]
|
|
3552
3580
|
}] }, { type: ScUserMetrikaService }] });
|
|
3553
3581
|
|
|
3582
|
+
/**
|
|
3583
|
+
* Сервис редиректа на родительскую категорию при недоступности (HTTP 404) товара или категории.
|
|
3584
|
+
*
|
|
3585
|
+
* Запрашивает у бэкенда родительскую категорию недоступной сущности и выполняет редирект:
|
|
3586
|
+
* - на сервере (SSR) при доступном {@link RESPONSE} — выставляет HTTP-статус 302 и заголовок `Location` для корректного редиректа поисковых ботов;
|
|
3587
|
+
* - на сервере без {@link RESPONSE} (например, dev-сервер `ng serve`) — завершает поток ошибкой 404, чтобы отобразилась страница ошибки;
|
|
3588
|
+
* - в браузере — выполняет полную навигацию на родительскую категорию.
|
|
3589
|
+
*
|
|
3590
|
+
* Если родительская категория не найдена, поток также завершается ошибкой {@link HttpErrorResponse},
|
|
3591
|
+
* чтобы вызывающий код отобразил страницу ошибки.
|
|
3592
|
+
*/
|
|
3593
|
+
class ScCatalogRedirectService {
|
|
3594
|
+
constructor() {
|
|
3595
|
+
/**
|
|
3596
|
+
* Сервис для работы с каталогом.
|
|
3597
|
+
*/
|
|
3598
|
+
this.catalogService = inject(ScCatalogService);
|
|
3599
|
+
/**
|
|
3600
|
+
* Сервис маршрутизации.
|
|
3601
|
+
*/
|
|
3602
|
+
this.router = inject(Router);
|
|
3603
|
+
/**
|
|
3604
|
+
* Признак использования идентификатора или slug в маршрутах товаров и категорий.
|
|
3605
|
+
*/
|
|
3606
|
+
this.idOrSlug = inject(SC_ID_OR_SLUG_IN_ROUTE);
|
|
3607
|
+
/**
|
|
3608
|
+
* Признак, что текущий скрипт исполняется на сервере.
|
|
3609
|
+
*/
|
|
3610
|
+
this.isServer = inject(IS_SERVER);
|
|
3611
|
+
/**
|
|
3612
|
+
* Данные об ответе на запрос (доступны только на сервере при SSR).
|
|
3613
|
+
*
|
|
3614
|
+
* Angular 21 (миграция SSR): {@link RESPONSE} — кастомный Express-токен, который провайдится в `server.ts`
|
|
3615
|
+
* через CommonEngine. На upgrade-ветке `server.ts` остался на CommonEngine, поэтому при слиянии здесь
|
|
3616
|
+
* ничего менять не нужно. Если `server.ts` мигрируют на `AngularNodeAppEngine` + `createNodeRequestHandler`,
|
|
3617
|
+
* замените {@link RESPONSE} на нативный `RESPONSE_INIT` (`InjectionToken<ResponseInit | null>` из `@angular/core`);
|
|
3618
|
+
* см. серверную ветку в {@link redirectToParentCategory$}.
|
|
3619
|
+
*/
|
|
3620
|
+
this.response = inject(RESPONSE, { optional: true });
|
|
3621
|
+
/**
|
|
3622
|
+
* Документ текущей страницы.
|
|
3623
|
+
*/
|
|
3624
|
+
this.document = inject(DOCUMENT);
|
|
3625
|
+
}
|
|
3626
|
+
/**
|
|
3627
|
+
* Выполняет редирект на родительскую категорию недоступной категории.
|
|
3628
|
+
*
|
|
3629
|
+
* @param categoryIdOrSlug Идентификатор или slug недоступной категории.
|
|
3630
|
+
* @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse}, если родительская категория не найдена.
|
|
3631
|
+
*/
|
|
3632
|
+
redirectToCategoryParent$(categoryIdOrSlug) {
|
|
3633
|
+
return this.redirectToParentCategory$(this.catalogService.getCategoryParentCategory$(categoryIdOrSlug));
|
|
3634
|
+
}
|
|
3635
|
+
/**
|
|
3636
|
+
* Выполняет редирект на родительскую категорию недоступного товара.
|
|
3637
|
+
*
|
|
3638
|
+
* @param productIdOrSlug Идентификатор или slug недоступного товара.
|
|
3639
|
+
* @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse}, если родительская категория не найдена.
|
|
3640
|
+
*/
|
|
3641
|
+
redirectToProductParent$(productIdOrSlug) {
|
|
3642
|
+
return this.redirectToParentCategory$(this.catalogService.getProductParentCategory$(productIdOrSlug));
|
|
3643
|
+
}
|
|
3644
|
+
/**
|
|
3645
|
+
* Выполняет редирект на полученную родительскую категорию.
|
|
3646
|
+
*
|
|
3647
|
+
* @param parentCategory$ Поток с данными родительской категории.
|
|
3648
|
+
* @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse} с кодом 404, если родительская категория не найдена.
|
|
3649
|
+
*/
|
|
3650
|
+
redirectToParentCategory$(parentCategory$) {
|
|
3651
|
+
return parentCategory$.pipe(switchMap((parentCategory) => {
|
|
3652
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
3653
|
+
const target = parentCategory[this.idOrSlug];
|
|
3654
|
+
// Родительская категория не найдена — отображаем страницу ошибки.
|
|
3655
|
+
if (!tuiIsPresent(target)) {
|
|
3656
|
+
return throwError(() => new HttpErrorResponse({ status: 404 }));
|
|
3657
|
+
}
|
|
3658
|
+
const urlTree = this.router.createUrlTree(['/catalog', target]);
|
|
3659
|
+
const targetUrl = this.router.serializeUrl(urlTree);
|
|
3660
|
+
if (this.isServer) {
|
|
3661
|
+
// SSR с доступным RESPONSE (прод-сервер): выставляем 302 и заголовок Location для корректного редиректа поисковых ботов.
|
|
3662
|
+
//
|
|
3663
|
+
// Angular 21 (миграция SSR): при переходе server.ts на AngularNodeAppEngine выставляйте статус/заголовок
|
|
3664
|
+
// через нативный RESPONSE_INIT вместо Express-методов response.setHeader/response.status:
|
|
3665
|
+
// if (this.responseInit) { this.responseInit.status = 302; (this.responseInit.headers as Record<string, string>)['Location'] = targetUrl; }
|
|
3666
|
+
if (this.response) {
|
|
3667
|
+
this.response.setHeader('Location', targetUrl);
|
|
3668
|
+
this.response.status(302);
|
|
3669
|
+
return EMPTY;
|
|
3670
|
+
}
|
|
3671
|
+
// SSR без RESPONSE (например, dev-сервер ng serve): серверный редирект невозможен,
|
|
3672
|
+
// поэтому отображаем страницу ошибки, как до внедрения редиректа, вместо бесконечного лоадера.
|
|
3673
|
+
//
|
|
3674
|
+
// Angular 21 (миграция SSR): этот фолбэк нужен, пока ng serve не исполняет server.ts (он на CommonEngine).
|
|
3675
|
+
// После миграции server.ts на createNodeRequestHandler dev-сервер начнёт исполнять server.ts, и RESPONSE/RESPONSE_INIT
|
|
3676
|
+
// станет доступен в ng serve — тогда эту ветку с throwError(404) можно удалить.
|
|
3677
|
+
return throwError(() => new HttpErrorResponse({ status: 404 }));
|
|
3678
|
+
}
|
|
3679
|
+
// Браузер: поток данных категории (SC_CATEGORY_INFO) завершается ошибкой при 404 и не возобновляется
|
|
3680
|
+
// при навигации в рамках того же маршрута, поэтому редирект выполняется полной перезагрузкой страницы.
|
|
3681
|
+
// location.replace не добавляет запись в историю, чтобы кнопка «Назад» не возвращала на недоступную страницу.
|
|
3682
|
+
//
|
|
3683
|
+
// Angular 21 (миграция SSR): эту строку апгрейд НЕ снимает — причина в рантайме приложения (мёртвый поток
|
|
3684
|
+
// SC_CATEGORY_INFO при SPA-навигации), а не в SSR. Вернуть SPA-навигацию (router.navigateByUrl) можно только
|
|
3685
|
+
// сделав SC_CATEGORY_INFO устойчивым к 404 (ловить ошибку внутри switchMap) либо унеся редирект в guard + RedirectCommand.
|
|
3686
|
+
this.document.location.replace(targetUrl);
|
|
3687
|
+
return EMPTY;
|
|
3688
|
+
}));
|
|
3689
|
+
}
|
|
3690
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogRedirectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3691
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogRedirectService, providedIn: 'root' }); }
|
|
3692
|
+
}
|
|
3693
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogRedirectService, decorators: [{
|
|
3694
|
+
type: Injectable,
|
|
3695
|
+
args: [{
|
|
3696
|
+
providedIn: 'root',
|
|
3697
|
+
}]
|
|
3698
|
+
}] });
|
|
3699
|
+
|
|
3554
3700
|
/* eslint-disable no-param-reassign,no-return-assign,no-void */
|
|
3555
3701
|
/**
|
|
3556
3702
|
* Сервис для работы с избранными товарами и категориями.
|
|
@@ -8401,5 +8547,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
8401
8547
|
* Generated bundle index. Do not edit.
|
|
8402
8548
|
*/
|
|
8403
8549
|
|
|
8404
|
-
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 };
|
|
8550
|
+
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 };
|
|
8405
8551
|
//# sourceMappingURL=snabcentr-client-core.mjs.map
|