@snabcentr/client-core 3.10.0 → 3.12.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.
@@ -50,12 +50,14 @@ const ScLoadingRequestState = { status: ScRequestStateStatusEnum.Loading };
50
50
  const ScSuccessRequestState = (requestData) => ({ status: ScRequestStateStatusEnum.Success, data: requestData });
51
51
  /**
52
52
  * Состояние ошибки.
53
+ *
54
+ * @param error Причина ошибки (например, HttpErrorResponse).
53
55
  */
54
- const ScErrorRequestState = { status: ScRequestStateStatusEnum.Error };
56
+ const ScErrorRequestState = (error) => ({ status: ScRequestStateStatusEnum.Error, error });
55
57
  /**
56
58
  * Преобразует поток данных в поток с состояниями запроса.
57
59
  */
58
- const mapToRequestState = () => (source$) => source$.pipe(map((requestData) => ScSuccessRequestState(requestData)), startWith(ScLoadingRequestState), catchError(() => of(ScErrorRequestState)));
60
+ const mapToRequestState = () => (source$) => source$.pipe(map((requestData) => ScSuccessRequestState(requestData)), startWith(ScLoadingRequestState), catchError((error) => of(ScErrorRequestState(error))));
59
61
  /**
60
62
  * Извлекает данные из потока состояний запроса или возвращает null.
61
63
  */
@@ -3641,6 +3643,52 @@ class ScCatalogRedirectService {
3641
3643
  redirectToProductParent$(productIdOrSlug) {
3642
3644
  return this.redirectToParentCategory$(this.catalogService.getProductParentCategory$(productIdOrSlug));
3643
3645
  }
3646
+ /**
3647
+ * Оператор устойчивой обработки недоступной (HTTP-ошибка) категории в потоке данных: при 404 выполняет редирект
3648
+ * на родительскую категорию, при недоступном родителе или иной ошибке сообщает код через {@link onErrorCode}.
3649
+ * Ошибку не пробрасывает (завершает поток {@link EMPTY}), поэтому поток данных не завершается ошибкой.
3650
+ *
3651
+ * @param categoryIdOrSlug Идентификатор или slug недоступной категории.
3652
+ * @param onErrorCode Колбэк установки кода ошибки (например, для отображения страницы ошибки).
3653
+ */
3654
+ handleUnavailableCategory$(categoryIdOrSlug, onErrorCode) {
3655
+ return this.handleUnavailable$(() => this.redirectToCategoryParent$(categoryIdOrSlug), onErrorCode);
3656
+ }
3657
+ /**
3658
+ * Оператор устойчивой обработки недоступного (HTTP-ошибка) товара в потоке данных: при 404 выполняет редирект
3659
+ * на родительскую категорию товара, при недоступном родителе или иной ошибке сообщает код через {@link onErrorCode}.
3660
+ * Ошибку не пробрасывает (завершает поток {@link EMPTY}), поэтому поток данных не завершается ошибкой.
3661
+ *
3662
+ * @param productIdOrSlug Идентификатор или slug недоступного товара.
3663
+ * @param onErrorCode Колбэк установки кода ошибки (например, для отображения страницы ошибки).
3664
+ */
3665
+ handleUnavailableProduct$(productIdOrSlug, onErrorCode) {
3666
+ return this.handleUnavailable$(() => this.redirectToProductParent$(productIdOrSlug), onErrorCode);
3667
+ }
3668
+ /**
3669
+ * Базовый оператор устойчивой обработки недоступной сущности: при 404 — редирект на родителя (через {@link redirectToParent$}),
3670
+ * при недоступном родителе или ином {@link HttpErrorResponse} — {@link onErrorCode} с кодом ответа; всегда {@link EMPTY}.
3671
+ *
3672
+ * @param redirectToParent$ Фабрика потока редиректа на родительскую категорию.
3673
+ * @param onErrorCode Колбэк установки кода ошибки.
3674
+ */
3675
+ // eslint-disable-next-line class-methods-use-this
3676
+ handleUnavailable$(redirectToParent$, onErrorCode) {
3677
+ return (source$) => source$.pipe(catchError$1((error) => {
3678
+ if (error instanceof HttpErrorResponse && error.status === 404) {
3679
+ return redirectToParent$().pipe(catchError$1((redirectError) => {
3680
+ if (redirectError instanceof HttpErrorResponse) {
3681
+ onErrorCode(redirectError.status);
3682
+ }
3683
+ return EMPTY;
3684
+ }));
3685
+ }
3686
+ if (error instanceof HttpErrorResponse) {
3687
+ onErrorCode(error.status);
3688
+ }
3689
+ return EMPTY;
3690
+ }));
3691
+ }
3644
3692
  /**
3645
3693
  * Выполняет редирект на полученную родительскую категорию.
3646
3694
  *
@@ -4542,34 +4590,54 @@ const scGetCurrentRoute = (route) => {
4542
4590
  return currentRoute;
4543
4591
  };
4544
4592
 
4593
+ /**
4594
+ * Токен состояния запроса данных о категории (загрузка / успех / ошибка).
4595
+ */
4596
+ const SC_CATEGORY_STATE = new InjectionToken('A stream with current category request state');
4545
4597
  /**
4546
4598
  * Токен потока данных о категории.
4547
4599
  */
4548
4600
  const SC_CATEGORY_INFO = new InjectionToken('A stream with current category information');
4549
4601
  /**
4550
- * Фабрика создания потока данных о категории.
4602
+ * Фабрика создания потока состояния запроса данных о категории.
4603
+ *
4604
+ * При недоступной (HTTP 404) категории выполняет редирект на родительскую категорию; если родитель не найден
4605
+ * или ошибка иная — эмитит состояние ошибки (по нему компонент показывает страницу ошибки).
4551
4606
  *
4552
4607
  * @param router Сервис для работы с маршрутом.
4553
4608
  * @param route Маршрут.
4554
4609
  * @param catalogService Сервис для работы с каталогом.
4610
+ * @param catalogRedirectService Сервис редиректа на родительскую категорию.
4555
4611
  */
4556
- function categoryFactory(router, route, catalogService) {
4612
+ function categoryStateFactory(router, route, catalogService, catalogRedirectService) {
4557
4613
  return router.events.pipe(filter((event) => event instanceof NavigationEnd)).pipe(startWith$1(null), switchMap(() => {
4558
4614
  const categoryIdOrSlug = scGetCurrentRoute(route).snapshot.paramMap.get('categoryIdOrSlug');
4559
- if (categoryIdOrSlug) {
4560
- return catalogService.getCategoryCached$(categoryIdOrSlug);
4615
+ if (!categoryIdOrSlug) {
4616
+ return of(ScSuccessRequestState(null));
4561
4617
  }
4562
- return of(null);
4618
+ return catalogService.getCategoryCached$(categoryIdOrSlug).pipe(map$1((category) => ScSuccessRequestState(category)), startWith$1(ScLoadingRequestState), catchError$1((error) => {
4619
+ if (error instanceof HttpErrorResponse && error.status === 404) {
4620
+ return catalogRedirectService
4621
+ .redirectToCategoryParent$(categoryIdOrSlug)
4622
+ .pipe(catchError$1((redirectError) => of(ScErrorRequestState(redirectError))));
4623
+ }
4624
+ return of(ScErrorRequestState(error));
4625
+ }));
4563
4626
  }), shareReplay({ bufferSize: 1, refCount: true }), takeUntilDestroyed());
4564
4627
  }
4565
4628
  /**
4566
- * Провайдеры потока данных о категории.
4629
+ * Провайдеры состояния и потока данных о категории.
4567
4630
  */
4568
4631
  const CATEGORY_PROVIDERS = [
4632
+ {
4633
+ provide: SC_CATEGORY_STATE,
4634
+ deps: [Router, ActivatedRoute, ScCatalogService, ScCatalogRedirectService],
4635
+ useFactory: categoryStateFactory,
4636
+ },
4569
4637
  {
4570
4638
  provide: SC_CATEGORY_INFO,
4571
- deps: [Router, ActivatedRoute, ScCatalogService],
4572
- useFactory: categoryFactory,
4639
+ deps: [SC_CATEGORY_STATE],
4640
+ useFactory: (state$) => state$.pipe(mapRequestStateToDataOrNull()),
4573
4641
  },
4574
4642
  ];
4575
4643
 
@@ -4983,7 +5051,7 @@ class ScRequisitesService {
4983
5051
  /**
4984
5052
  * Создаёт запрос получения списка всех контактов.
4985
5053
  */
4986
- this.contacts$ = inject(SC_USER_INFO).pipe(switchMap(() => this.http.get(`${this.urls.apiUrl}/contacts`)), shareReplay(1));
5054
+ this.contacts$ = inject(SC_USER_INFO).pipe(switchMap(() => this.http.get(`${this.urls.apiUrl}/contacts`).pipe(catchError$1(() => of({ personal: [], socialMedia: [], directions: {} })))), shareReplay({ refCount: true, bufferSize: 1 }));
4987
5055
  /**
4988
5056
  * Создаёт запрос получения списка контактов для решения возникающих вопросов.
4989
5057
  */
@@ -4991,11 +5059,11 @@ class ScRequisitesService {
4991
5059
  /**
4992
5060
  * Создаёт запрос получения списка контактов розничных магазинов.
4993
5061
  */
4994
- this.retail$ = this.contacts$.pipe(map$1((contacts) => contacts.retail), first(), shareReplay(1));
5062
+ this.retail$ = this.contacts$.pipe(map$1((contacts) => contacts.retail), first(), shareReplay({ refCount: true, bufferSize: 1 }));
4995
5063
  /**
4996
5064
  * Создаёт запрос получения списка ссылок на социальные сети и другие каналы коммуникации.
4997
5065
  */
4998
- this.socialMedia$ = this.contacts$.pipe(map$1((contacts) => contacts.socialMedia), first(), shareReplay(1));
5066
+ this.socialMedia$ = this.contacts$.pipe(map$1((contacts) => contacts.socialMedia), first(), shareReplay({ refCount: true, bufferSize: 1 }));
4999
5067
  /**
5000
5068
  * Создаёт запрос получения списка контактов менеджеров по направлениям продаж.
5001
5069
  */
@@ -5006,11 +5074,11 @@ class ScRequisitesService {
5006
5074
  this.mapManagers(Number.parseFloat(key), manager);
5007
5075
  });
5008
5076
  }
5009
- }), first(), shareReplay(1));
5077
+ }), first(), shareReplay({ refCount: true, bufferSize: 1 }));
5010
5078
  /**
5011
5079
  * Создаёт запрос получения списка реквизитов компании.
5012
5080
  */
5013
- this.requisites$ = this.http.get(`${this.urls.apiUrl}/requisites`).pipe(shareReplay(1));
5081
+ this.requisites$ = this.http.get(`${this.urls.apiUrl}/requisites`).pipe(catchError$1(() => EMPTY), shareReplay({ refCount: true, bufferSize: 1 }));
5014
5082
  }
5015
5083
  /**
5016
5084
  * Устанавливает поисковый запрос в {@link BehaviorSubject}.
@@ -7741,12 +7809,6 @@ class SchemaOrgFactory {
7741
7809
  name: category.name,
7742
7810
  ...(description && { description }),
7743
7811
  },
7744
- // Информация о сайте.
7745
- isPartOf: {
7746
- '@type': 'WebSite',
7747
- name: this.companyInfo.name,
7748
- url: this.urls.siteUrl,
7749
- },
7750
7812
  // Связанные страницы.
7751
7813
  relatedLink: [
7752
7814
  `${this.urls.siteUrl}${categoryPath.replace(':id', '')}`,
@@ -7824,6 +7886,72 @@ class SchemaOrgFactory {
7824
7886
  }),
7825
7887
  };
7826
7888
  }
7889
+ /**
7890
+ * Генерирует и возвращает схему данных для указанной новости.
7891
+ *
7892
+ * @param news Данные о новости.
7893
+ * @param newsPath Url путь к новости. В пути должен присутствовать шаблон ':id', обозначающий идентификатор новости для подстановки.
7894
+ * @param id Необязательный идентификатор сущности для поля `@id` в JSON-LD.
7895
+ */
7896
+ generateForNewsArticle(news, newsPath, id) {
7897
+ const newsUrl = `${this.urls.siteUrl}${newsPath.replace(':id', news.id.toString())}`;
7898
+ const image = this.mediaImageTransformerPipe.transform(news.image, true);
7899
+ const headline = news.seo?.title ?? news.subject;
7900
+ const description = news.seo?.description;
7901
+ const datePublished = this.normalizeSchemaDate(news.createdAt);
7902
+ const articleBody = news.text ? this.stripHtml(news.text) : undefined;
7903
+ return {
7904
+ '@context': 'https://schema.org',
7905
+ '@type': 'NewsArticle',
7906
+ ...(id && { '@id': id }),
7907
+ headline,
7908
+ ...(description && { description }),
7909
+ ...(image && { image }),
7910
+ ...(datePublished && { datePublished }),
7911
+ ...(articleBody && { articleBody }),
7912
+ url: newsUrl,
7913
+ mainEntityOfPage: newsUrl,
7914
+ author: {
7915
+ '@type': 'Organization',
7916
+ name: this.companyInfo.name,
7917
+ url: this.urls.siteUrl,
7918
+ },
7919
+ publisher: {
7920
+ '@type': 'Organization',
7921
+ name: this.companyInfo.name,
7922
+ logo: {
7923
+ '@type': 'ImageObject',
7924
+ url: this.urls.logoUrl,
7925
+ },
7926
+ },
7927
+ };
7928
+ }
7929
+ /**
7930
+ * Генерирует и возвращает схему данных FAQPage для страницы с вопросами и ответами.
7931
+ *
7932
+ * @param items Список вопросов и ответов.
7933
+ * @param pagePath Url путь к странице FAQ.
7934
+ * @param pageName Необязательное название страницы.
7935
+ * @param id Необязательный идентификатор сущности для поля `@id` в JSON-LD.
7936
+ */
7937
+ generateForFaqPage(items, pagePath, pageName, id) {
7938
+ const pageUrl = `${this.urls.siteUrl}${pagePath}`;
7939
+ return {
7940
+ '@context': 'https://schema.org',
7941
+ '@type': 'FAQPage',
7942
+ ...(id && { '@id': id }),
7943
+ ...(pageName && { name: pageName }),
7944
+ url: pageUrl,
7945
+ mainEntity: items.map((item) => ({
7946
+ '@type': 'Question',
7947
+ name: item.question,
7948
+ acceptedAnswer: {
7949
+ '@type': 'Answer',
7950
+ text: this.stripHtml(item.answer),
7951
+ },
7952
+ })),
7953
+ };
7954
+ }
7827
7955
  /**
7828
7956
  * Объединяет несколько JSON-LD сущностей в один документ с `@graph`.
7829
7957
  *
@@ -7891,6 +8019,53 @@ class SchemaOrgFactory {
7891
8019
  }
7892
8020
  return contactPoints;
7893
8021
  }
8022
+ /**
8023
+ * Удаляет HTML-разметку из текста.
8024
+ *
8025
+ * @param html Текст с HTML-разметкой.
8026
+ */
8027
+ // eslint-disable-next-line class-methods-use-this
8028
+ stripHtml(html) {
8029
+ const withoutTags = html
8030
+ .split('<')
8031
+ .map((part, index) => {
8032
+ if (index === 0) {
8033
+ return part;
8034
+ }
8035
+ const closeTagIndex = part.indexOf('>');
8036
+ return closeTagIndex === -1 ? part : ` ${part.slice(closeTagIndex + 1)}`;
8037
+ })
8038
+ .join('');
8039
+ return withoutTags
8040
+ .replaceAll(/\s+/g, ' ')
8041
+ .replaceAll(/ ([.,!?;:])/g, '$1')
8042
+ .trim();
8043
+ }
8044
+ /**
8045
+ * Нормализует дату в формат Schema.org (ISO 8601).
8046
+ *
8047
+ * @param dateValue Дата для нормализации.
8048
+ */
8049
+ // eslint-disable-next-line class-methods-use-this
8050
+ normalizeSchemaDate(dateValue) {
8051
+ if (!dateValue) {
8052
+ return undefined;
8053
+ }
8054
+ if (/^\d{4}-\d{2}-\d{2}/.test(dateValue)) {
8055
+ return dateValue;
8056
+ }
8057
+ const withTimeMatch = /^(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2})$/.exec(dateValue);
8058
+ if (withTimeMatch) {
8059
+ const [, day, month, year, hours, minutes] = withTimeMatch;
8060
+ return `${year}-${month}-${day}T${hours}:${minutes}:00`;
8061
+ }
8062
+ const dateOnlyMatch = /^(\d{2})\.(\d{2})\.(\d{4})$/.exec(dateValue);
8063
+ if (!dateOnlyMatch) {
8064
+ return undefined;
8065
+ }
8066
+ const [, day, month, year] = dateOnlyMatch;
8067
+ return `${year}-${month}-${day}`;
8068
+ }
7894
8069
  /**
7895
8070
  * Нормализует дату окончания цены в формат Schema.org (YYYY-MM-DD).
7896
8071
  *
@@ -8131,10 +8306,11 @@ class ScSeoService {
8131
8306
  * Устанавливает seo параметры на основе указанного ресурса. Если какого-то тега нет, будет установлено значение по умолчанию.
8132
8307
  *
8133
8308
  * @param resource Ресурс на основе которого необходимо установить мета-теги.
8134
- * @param img Изображение. Если не пришло, то будет установлено значение по умолчанию.
8135
- * @param robots Список robots-тегов для страницы.
8309
+ * @param img Изображение. Если не пришло, то будет установлено значение по умолчанию (logo компании).
8310
+ * @param robots Список robots-тегов для страницы. Значение по умолчанию (['index', 'follow']).
8311
+ * @param schemaOrgData Данные Schema.org для встраивания на странице.
8136
8312
  */
8137
- setFromResource(resource, img = this.urls.logoUrl, robots = ['index', 'follow']) {
8313
+ setFromResource(resource, img, robots, schemaOrgData) {
8138
8314
  const updatedResource = {
8139
8315
  title: this.replaceTemplates(resource?.title ?? this.defaultSeo.title, resource?.instanceData ?? {}),
8140
8316
  description: this.replaceTemplates(resource?.description ?? this.defaultSeo.description, resource?.instanceData ?? {}),
@@ -8142,23 +8318,24 @@ class ScSeoService {
8142
8318
  meta: resource?.meta ?? [],
8143
8319
  };
8144
8320
  const url = `${this.urls.siteUrl}${this.router.url}`;
8145
- this.setMetaTags(updatedResource.title, updatedResource.description, updatedResource.keywords, updatedResource.meta, robots);
8146
- this.setOpenGraphMetaTags(updatedResource.title, updatedResource.description, url, img);
8321
+ this.setMetaTags(updatedResource.title, updatedResource.description, updatedResource.keywords, updatedResource.meta, robots ?? ['index', 'follow']);
8322
+ this.setOpenGraphMetaTags(updatedResource.title, updatedResource.description, url, img ?? this.urls.logoUrl);
8147
8323
  this.setCanonicalLink(url);
8148
8324
  // Устанавливаем Schema.org параметры.
8149
- this.setSchemaOrgData(this.schemaOrgFactory.generateForOrganization());
8325
+ this.setSchemaOrgData(this.schemaOrgFactory.merge([this.schemaOrgFactory.generateForOrganization(), ...(schemaOrgData ? [schemaOrgData] : [])]));
8150
8326
  }
8151
8327
  /**
8152
8328
  * Устанавливает seo параметры со значением по умолчанию.
8153
8329
  *
8154
8330
  * @param title Заголовок страницы.
8155
- * @param robots Список robots тегов для страницы.
8331
+ * @param robots Список robots тегов для страницы. Значение по умолчанию (['index', 'follow']).
8332
+ * @param schemaOrgData Данные Schema.org для встраивания на странице.
8156
8333
  */
8157
- setByDefault(title, robots = ['index', 'follow']) {
8334
+ setByDefault(title, robots, schemaOrgData) {
8158
8335
  this.setFromResource({
8159
8336
  title: `${title ?? this.defaultSeo.title} - ${this.companyInfo.name}`,
8160
8337
  description: title ? `${title}, ${this.defaultSeo.description}` : this.defaultSeo.description,
8161
- }, this.urls.logoUrl, robots);
8338
+ }, this.urls.logoUrl, robots ?? ['index', 'follow'], schemaOrgData);
8162
8339
  }
8163
8340
  /**
8164
8341
  * Устанавливает seo параметры со значением по умолчанию. Устанавливает значение "не индексировать" для поисковых роботов.
@@ -8671,5 +8848,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
8671
8848
  * Generated bundle index. Do not edit.
8672
8849
  */
8673
8850
 
8674
- 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 };
8851
+ 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_CATEGORY_STATE, 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 };
8675
8852
  //# sourceMappingURL=snabcentr-client-core.mjs.map