@snabcentr/client-core 4.0.0 → 4.4.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.
@@ -1,8 +1,8 @@
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, from, 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
- import { isString, isNil, isMatch, isArray, get } from 'lodash-es';
5
+ import { isString, isNil, isObject, isDate, isMatch, isArray, get, isNumber, isBoolean } from 'lodash-es';
6
6
  import * as i0 from '@angular/core';
7
7
  import { InjectionToken, inject, PLATFORM_ID, Inject, Optional, Injectable, EventEmitter, DestroyRef, LOCALE_ID, Pipe, RendererFactory2 } from '@angular/core';
8
8
  import { WA_LOCAL_STORAGE, WA_USER_AGENT, WA_WINDOW } from '@ng-web-apis/common';
@@ -14,7 +14,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
14
14
  import { tuiIsPresent, TuiDay, TUI_TRUE_HANDLER } from '@taiga-ui/cdk';
15
15
  import { tuiCleanObject } from '@taiga-ui/addon-doc/utils';
16
16
  import * as i2 from '@angular/router';
17
- import { NavigationEnd, Router, ActivatedRoute } from '@angular/router';
17
+ import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
18
18
  import { toSnake, objectToSnake, objectToCamel } from 'ts-case-convert';
19
19
  import { Meta, Title } from '@angular/platform-browser';
20
20
 
@@ -2424,9 +2424,8 @@ class ScConvertersService {
2424
2424
  }
2425
2425
  this.removeNullRecursive(object);
2426
2426
  }
2427
- else if (typeof object[k] === 'object') {
2427
+ else if (isObject(object[k])) {
2428
2428
  this.removeNullRecursive(object[k]);
2429
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2430
2429
  if (Array.isArray(object) && Object.keys(object[k]).length === 0) {
2431
2430
  object.splice(+k, 1);
2432
2431
  }
@@ -2443,7 +2442,7 @@ class ScConvertersService {
2443
2442
  // eslint-disable-next-line class-methods-use-this
2444
2443
  removeByStrLength(object, minLength) {
2445
2444
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2446
- return Object.fromEntries(Object.entries(object).filter(([_, v]) => (typeof v === 'string' && v.length > minLength) || typeof v !== 'string'));
2445
+ return Object.fromEntries(Object.entries(object).filter(([_, v]) => (isString(v) && v.length > minLength) || !isString(v)));
2447
2446
  }
2448
2447
  /**
2449
2448
  * Конвертирует поля, имеющие тип {@link Date}, в {@link object}, и возвращает как новый объект.
@@ -2451,7 +2450,7 @@ class ScConvertersService {
2451
2450
  * @param object Объект, в котором необходимо преобразовать поля Date в string.
2452
2451
  */
2453
2452
  convertDateToString(object) {
2454
- return Object.fromEntries(Object.entries(object).map(([_, v]) => (v instanceof Date ? [_, v.toLocaleDateString(this.locale)] : [_, v])));
2453
+ return Object.fromEntries(Object.entries(object).map(([_, v]) => (isDate(v) ? [_, v.toLocaleDateString(this.locale)] : [_, v])));
2455
2454
  }
2456
2455
  // eslint-disable-next-line class-methods-use-this
2457
2456
  createParamKeyString(keys) {
@@ -2473,7 +2472,7 @@ class ScConvertersService {
2473
2472
  // eslint-disable-next-line no-restricted-syntax
2474
2473
  for (const key in object) {
2475
2474
  if (object.hasOwnProperty.call(object, key)) {
2476
- if (typeof object[key] === 'object' && object[key] !== null && !(object[key] instanceof Date)) {
2475
+ if (isObject(object[key]) && !isDate(object[key])) {
2477
2476
  this.toSimpleObjectRecursive(object[key], [...keys, key], resultObject);
2478
2477
  }
2479
2478
  else {
@@ -3342,7 +3341,7 @@ class ScCatalogService {
3342
3341
  getCategoryData$(categoryIdOrSlug) {
3343
3342
  return this.http.get(`${this.urls.apiUrl}/catalog/categories/${categoryIdOrSlug ?? ''}`).pipe(map$1((category) => new ScCategory(category)), tap((category) => {
3344
3343
  if (categoryIdOrSlug) {
3345
- this.categoryIdOrSlugMap.set(typeof categoryIdOrSlug === 'string' ? category.id : category.slug, categoryIdOrSlug);
3344
+ this.categoryIdOrSlugMap.set(isString(categoryIdOrSlug) ? category.id : category.slug, categoryIdOrSlug);
3346
3345
  }
3347
3346
  }));
3348
3347
  }
@@ -3484,10 +3483,32 @@ class ScCatalogService {
3484
3483
  getProductData$(productIdOrSlug) {
3485
3484
  return this.http.get(`${this.urls.apiUrl}/catalog/products/${productIdOrSlug}`).pipe(map$1((productDTO) => new ScProduct(productDTO)), tap((product) => {
3486
3485
  if (productIdOrSlug) {
3487
- this.productIdOrSlugMap.set(typeof productIdOrSlug === 'string' ? product.id : product.slug, productIdOrSlug);
3486
+ this.productIdOrSlugMap.set(isString(productIdOrSlug) ? product.id : product.slug, productIdOrSlug);
3488
3487
  }
3489
3488
  }));
3490
3489
  }
3490
+ /**
3491
+ * Возвращает данные о родительской категории для редиректа, когда категория недоступна (HTTP 404).
3492
+ * Если у категории нет нескрытой родительской категории, возвращается пустой объект.
3493
+ *
3494
+ * @param categoryIdOrSlug Идентификатор или slug недоступной категории.
3495
+ */
3496
+ getCategoryParentCategory$(categoryIdOrSlug) {
3497
+ return this.http.get(`${this.urls.apiUrl}/catalog/categories/${categoryIdOrSlug}/parent-category`, {
3498
+ context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
3499
+ });
3500
+ }
3501
+ /**
3502
+ * Возвращает данные о родительской категории для редиректа, когда товар недоступен (HTTP 404).
3503
+ * Если у товара нет нескрытой родительской категории, возвращается пустой объект.
3504
+ *
3505
+ * @param productIdOrSlug Идентификатор или slug недоступного товара.
3506
+ */
3507
+ getProductParentCategory$(productIdOrSlug) {
3508
+ return this.http.get(`${this.urls.apiUrl}/catalog/products/${productIdOrSlug}/parent-category`, {
3509
+ context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
3510
+ });
3511
+ }
3491
3512
  getProductDataCached$(productIdOrSlug) {
3492
3513
  const valueFromMap = this.productIdOrSlugMap.get(productIdOrSlug);
3493
3514
  if (valueFromMap) {
@@ -3550,6 +3571,91 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
3550
3571
  args: [SC_CACHE_LIFETIME]
3551
3572
  }] }, { type: ScUserMetrikaService }] });
3552
3573
 
3574
+ /**
3575
+ * Сервис редиректа на родительскую категорию при недоступности (HTTP 404) товара или категории.
3576
+ *
3577
+ * Запрашивает у бэкенда родительскую категорию недоступной сущности и выполняет редирект:
3578
+ * - на сервере (SSR) — выставляет HTTP-статус 302 и заголовок `Location` для корректного редиректа поисковых ботов;
3579
+ * - в браузере — выполняет навигацию средствами {@link Router}.
3580
+ *
3581
+ * Если родительская категория не найдена, поток завершается ошибкой {@link HttpErrorResponse},
3582
+ * чтобы вызывающий код отобразил страницу ошибки.
3583
+ */
3584
+ class ScCatalogRedirectService {
3585
+ constructor() {
3586
+ /**
3587
+ * Сервис для работы с каталогом.
3588
+ */
3589
+ this.catalogService = inject(ScCatalogService);
3590
+ /**
3591
+ * Сервис маршрутизации.
3592
+ */
3593
+ this.router = inject(Router);
3594
+ /**
3595
+ * Признак использования идентификатора или slug в маршрутах товаров и категорий.
3596
+ */
3597
+ this.idOrSlug = inject(SC_ID_OR_SLUG_IN_ROUTE);
3598
+ /**
3599
+ * Признак, что текущий скрипт исполняется на сервере.
3600
+ */
3601
+ this.isServer = inject(IS_SERVER);
3602
+ /**
3603
+ * Данные об ответе на запрос (доступны только на сервере при SSR).
3604
+ */
3605
+ this.response = inject(RESPONSE, { optional: true });
3606
+ }
3607
+ /**
3608
+ * Выполняет редирект на родительскую категорию недоступной категории.
3609
+ *
3610
+ * @param categoryIdOrSlug Идентификатор или slug недоступной категории.
3611
+ * @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse}, если родительская категория не найдена.
3612
+ */
3613
+ redirectToCategoryParent$(categoryIdOrSlug) {
3614
+ return this.redirectToParentCategory$(this.catalogService.getCategoryParentCategory$(categoryIdOrSlug));
3615
+ }
3616
+ /**
3617
+ * Выполняет редирект на родительскую категорию недоступного товара.
3618
+ *
3619
+ * @param productIdOrSlug Идентификатор или slug недоступного товара.
3620
+ * @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse}, если родительская категория не найдена.
3621
+ */
3622
+ redirectToProductParent$(productIdOrSlug) {
3623
+ return this.redirectToParentCategory$(this.catalogService.getProductParentCategory$(productIdOrSlug));
3624
+ }
3625
+ /**
3626
+ * Выполняет редирект на полученную родительскую категорию.
3627
+ *
3628
+ * @param parentCategory$ Поток с данными родительской категории.
3629
+ * @returns Поток, завершающийся после редиректа. Эмитит ошибку {@link HttpErrorResponse} с кодом 404, если родительская категория не найдена.
3630
+ */
3631
+ redirectToParentCategory$(parentCategory$) {
3632
+ return parentCategory$.pipe(switchMap((parentCategory) => {
3633
+ // eslint-disable-next-line security/detect-object-injection
3634
+ const target = parentCategory[this.idOrSlug];
3635
+ // Родительская категория не найдена — отображаем страницу ошибки.
3636
+ if (!tuiIsPresent(target)) {
3637
+ return throwError(() => new HttpErrorResponse({ status: 404 }));
3638
+ }
3639
+ const urlTree = this.router.createUrlTree(['/catalog', target]);
3640
+ if (this.isServer) {
3641
+ // SSR: выставляем 302 и заголовок Location для корректного редиректа поисковых ботов.
3642
+ this.response?.setHeader('Location', this.router.serializeUrl(urlTree));
3643
+ this.response?.status(302);
3644
+ return EMPTY;
3645
+ }
3646
+ return from(this.router.navigateByUrl(urlTree, { replaceUrl: true })).pipe(switchMap(() => EMPTY));
3647
+ }));
3648
+ }
3649
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ScCatalogRedirectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3650
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ScCatalogRedirectService, providedIn: 'root' }); }
3651
+ }
3652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ScCatalogRedirectService, decorators: [{
3653
+ type: Injectable,
3654
+ args: [{
3655
+ providedIn: 'root',
3656
+ }]
3657
+ }] });
3658
+
3553
3659
  /* eslint-disable no-param-reassign,no-return-assign,no-void */
3554
3660
  /**
3555
3661
  * Сервис для работы с избранными товарами и категориями.
@@ -7903,7 +8009,7 @@ class ScSeoService {
7903
8009
  if (isString(value)) {
7904
8010
  return value;
7905
8011
  }
7906
- if (typeof value === 'number' || typeof value === 'boolean') {
8012
+ if (isNumber(value) || isBoolean(value)) {
7907
8013
  return String(value);
7908
8014
  }
7909
8015
  return '';
@@ -8370,5 +8476,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
8370
8476
  * Generated bundle index. Do not edit.
8371
8477
  */
8372
8478
 
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, isExpiredToken, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
8479
+ 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, isExpiredToken, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
8374
8480
  //# sourceMappingURL=snabcentr-client-core.mjs.map