@snabcentr/client-core 3.21.0-profstroy → 3.21.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.
Files changed (61) hide show
  1. package/catalog/dto/sc-product.d.ts +4 -7
  2. package/catalog/interfaces/sc-i-product.d.ts +4 -0
  3. package/config/sc-i-company-base-info.d.ts +9 -0
  4. package/config/sc-i-update-interval.d.ts +0 -12
  5. package/esm2022/catalog/classes/sc-catalog-item.mjs +2 -2
  6. package/esm2022/catalog/dto/sc-product.mjs +2 -13
  7. package/esm2022/catalog/interfaces/sc-i-product.mjs +1 -1
  8. package/esm2022/config/sc-i-company-base-info.mjs +1 -1
  9. package/esm2022/config/sc-i-update-interval.mjs +1 -1
  10. package/esm2022/helpers/index.mjs +1 -2
  11. package/esm2022/helpers/sc-units-helper.mjs +2 -3
  12. package/esm2022/order/classes/index.mjs +1 -3
  13. package/esm2022/order/classes/sc-order-draft-short.mjs +2 -7
  14. package/esm2022/order/classes/sc-order-draft.mjs +3 -15
  15. package/esm2022/order/classes/sc-order-item.mjs +1 -23
  16. package/esm2022/order/classes/sc-order-short.mjs +1 -3
  17. package/esm2022/order/enums/index.mjs +1 -2
  18. package/esm2022/order/internal/index.mjs +1 -6
  19. package/esm2022/order/internal/sc-i-order-draft-short.mjs +1 -1
  20. package/esm2022/order/internal/sc-i-order-draft.mjs +1 -1
  21. package/esm2022/order/internal/sc-i-order-short.mjs +1 -1
  22. package/esm2022/order/services/sc-order-drafts.service.mjs +11 -122
  23. package/esm2022/seo/classes/schema-org-factory.mjs +59 -30
  24. package/esm2022/user-metrika/enums/sc-user-metrika-goals-enum.mjs +1 -19
  25. package/fesm2022/snabcentr-client-core.mjs +111 -434
  26. package/fesm2022/snabcentr-client-core.mjs.map +1 -1
  27. package/helpers/index.d.ts +0 -1
  28. package/helpers/sc-units-helper.d.ts +1 -1
  29. package/order/classes/index.d.ts +0 -2
  30. package/order/classes/sc-order-draft-short.d.ts +2 -16
  31. package/order/classes/sc-order-draft.d.ts +2 -16
  32. package/order/classes/sc-order-item.d.ts +0 -12
  33. package/order/classes/sc-order-short.d.ts +0 -4
  34. package/order/enums/index.d.ts +0 -1
  35. package/order/internal/index.d.ts +0 -5
  36. package/order/internal/sc-i-order-draft-short.d.ts +0 -15
  37. package/order/internal/sc-i-order-draft.d.ts +1 -2
  38. package/order/internal/sc-i-order-short.d.ts +0 -4
  39. package/order/services/sc-order-drafts.service.d.ts +1 -63
  40. package/package.json +1 -1
  41. package/release_notes.tmp +1 -1
  42. package/seo/classes/schema-org-factory.d.ts +11 -0
  43. package/user-metrika/enums/sc-user-metrika-goals-enum.d.ts +0 -18
  44. package/esm2022/helpers/sc-date-helper.mjs +0 -23
  45. package/esm2022/order/classes/sc-order-draft-actualization.mjs +0 -46
  46. package/esm2022/order/classes/sc-profstroy-order-item.mjs +0 -88
  47. package/esm2022/order/enums/sc-order-draft-actualization-status.mjs +0 -24
  48. package/esm2022/order/internal/sc-i-new-profstroy-order-draft-request.mjs +0 -2
  49. package/esm2022/order/internal/sc-i-order-draft-actualization.mjs +0 -2
  50. package/esm2022/order/internal/sc-i-order-draft-file.mjs +0 -2
  51. package/esm2022/order/internal/sc-i-profstroy-order-item.mjs +0 -2
  52. package/esm2022/order/internal/sc-i-profstroy-product-stub.mjs +0 -2
  53. package/helpers/sc-date-helper.d.ts +0 -12
  54. package/order/classes/sc-order-draft-actualization.d.ts +0 -47
  55. package/order/classes/sc-profstroy-order-item.d.ts +0 -73
  56. package/order/enums/sc-order-draft-actualization-status.d.ts +0 -21
  57. package/order/internal/sc-i-new-profstroy-order-draft-request.d.ts +0 -14
  58. package/order/internal/sc-i-order-draft-actualization.d.ts +0 -22
  59. package/order/internal/sc-i-order-draft-file.d.ts +0 -13
  60. package/order/internal/sc-i-profstroy-order-item.d.ts +0 -28
  61. package/order/internal/sc-i-profstroy-product-stub.d.ts +0 -13
@@ -1,7 +1,7 @@
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, EMPTY, take, defaultIfEmpty, concatMap, finalize, takeUntil, interval, timer, exhaustMap, share, scan, defer, from, lastValueFrom, timeout, TimeoutError } 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, defer, from, lastValueFrom, timeout, TimeoutError } from 'rxjs';
3
3
  import { map, startWith, catchError } from 'rxjs/operators';
4
- import { parseISO, isValid, parse, format } from 'date-fns';
4
+ import { parseISO, parse, isValid, format } from 'date-fns';
5
5
  import { isString, isNil, isMatch, isArray, omit, get } from 'lodash-es';
6
6
  import * as i0 from '@angular/core';
7
7
  import { InjectionToken, inject, PLATFORM_ID, Injectable, Inject, Optional, EventEmitter, DestroyRef, LOCALE_ID, Pipe, assertInInjectionContext, RendererFactory2, makeEnvironmentProviders } from '@angular/core';
@@ -767,24 +767,6 @@ var ScUserMetrikaGoalsEnum;
767
767
  * В качестве параметра должен быть указан идентификатор КП/черновика (параметр "offer_id").
768
768
  */
769
769
  ScUserMetrikaGoalsEnum["orderDraftDeleted"] = "ORDER_DRAFT_DELETED";
770
- /**
771
- * Черновик заказа создан из файла программы «Профстрой».
772
- *
773
- * В качестве параметра должен быть указан идентификатор черновика (параметр "offer_id").
774
- */
775
- ScUserMetrikaGoalsEnum["orderDraftProfstroyCreated"] = "ORDER_DRAFT_PROFSTROY_CREATED";
776
- /**
777
- * Запущена актуализация черновика Профстрой.
778
- *
779
- * В качестве параметра должен быть указан идентификатор черновика (параметр "offer_id").
780
- */
781
- ScUserMetrikaGoalsEnum["orderDraftProfstroyActualized"] = "ORDER_DRAFT_PROFSTROY_ACTUALIZED";
782
- /**
783
- * Запущена пересборка черновика Профстрой из файла.
784
- *
785
- * В качестве параметра должен быть указан идентификатор черновика (параметр "offer_id").
786
- */
787
- ScUserMetrikaGoalsEnum["orderDraftProfstroyReloaded"] = "ORDER_DRAFT_PROFSTROY_RELOADED";
788
770
  /**
789
771
  * Открыто диалоговое окно/страница конфигуратора товара.
790
772
  *
@@ -1545,7 +1527,7 @@ class ScCatalogItem extends ScCatalogableItem {
1545
1527
  super(data);
1546
1528
  this.properties = data?.properties;
1547
1529
  // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,no-underscore-dangle,@typescript-eslint/no-unsafe-member-access
1548
- this.seo = data?._Seo ?? data?.seo;
1530
+ this.seo = data._Seo ?? data?.seo;
1549
1531
  this.image = data?.image;
1550
1532
  }
1551
1533
  }
@@ -1733,18 +1715,6 @@ class ScCategory extends ScCatalogItem {
1733
1715
  * Модель данных товара/услуги.
1734
1716
  */
1735
1717
  class ScProduct extends ScCatalogItem {
1736
- /**
1737
- * Возвращает товар, не найденный в каталоге, с известными названием и артикулом поставщика.
1738
- *
1739
- * @param name Название товара.
1740
- * @param supplierSku Артикул поставщика.
1741
- */
1742
- static createNotFound(name, supplierSku) {
1743
- const product = new ScProduct(null);
1744
- product.name = name ?? product.name;
1745
- product.supplierSku = supplierSku;
1746
- return product;
1747
- }
1748
1718
  /**
1749
1719
  * Инициализирует экземпляр класса {@link ScProduct}.
1750
1720
  *
@@ -1778,6 +1748,7 @@ class ScProduct extends ScCatalogItem {
1778
1748
  else {
1779
1749
  this.image = data.images?.find((img) => img.isDefault)?.image ?? data.properties?.image;
1780
1750
  this.supplierSku = data.supplierSku;
1751
+ this.brand = data.brand;
1781
1752
  this.cost = data.cost;
1782
1753
  this.costRub = data.costRub;
1783
1754
  this.costDate = data.costDate;
@@ -1897,44 +1868,6 @@ class ScProduct extends ScCatalogItem {
1897
1868
  }
1898
1869
  }
1899
1870
 
1900
- /**
1901
- * Класс-помощник для работы со значениями единиц измерения товара.
1902
- */
1903
- class ScUnitsHelper {
1904
- /**
1905
- * Возвращает признак, что указанный товар имеет линейную единицу измерения.
1906
- *
1907
- * @param product Данные о товаре для которого нужно проверить линейность его единицы измерения.
1908
- */
1909
- static productIsMeasurable(product) {
1910
- // У товара, не найденного в каталоге, единицы измерения нет.
1911
- return !product.isNull && (product.unit.isLinear || product.unit.isSquare);
1912
- }
1913
- /**
1914
- * Возвращает кратность количества для указанного товара.
1915
- *
1916
- * Кратность равна {@link ScProduct.minCount} и не зависит от {@link ScIProperties.ignoreMinCountCheck}:
1917
- * этот признак только снимает валидацию кратности/минимума при ручном вводе, но начальное количество
1918
- * и шаг кнопок +/- остаются кратны minCount.
1919
- *
1920
- * @param product Данные о товаре для которого необходимо вернуть кратность количества.
1921
- */
1922
- static getProductMultiplicity(product) {
1923
- return product.minCount && !ScUnitsHelper.productIsMeasurable(product) ? product.minCount : 1;
1924
- }
1925
- /**
1926
- * Возвращает кратность длины для указанного товара.
1927
- *
1928
- * @param product Данные о товаре для которого необходимо вернуть кратность длины.
1929
- */
1930
- static getProductLengthMultiplicity(product) {
1931
- if (product.properties?.lengthStep) {
1932
- return product.properties.lengthStep;
1933
- }
1934
- return !product.properties?.ignoreMinCountCheck && product.minCount ? product.minCount : 0.01;
1935
- }
1936
- }
1937
-
1938
1871
  /**
1939
1872
  * Данные о единичной позиции товара/услуги в заказе (корзине / черновике).
1940
1873
  */
@@ -1962,27 +1895,6 @@ class ScOrderItem {
1962
1895
  this.configurator = data.configurator;
1963
1896
  this.configuratorParams = data.configuratorParams;
1964
1897
  }
1965
- /**
1966
- * Признак, что позиция может попасть в заказ: товар есть в каталоге и предоставляется.
1967
- */
1968
- get isOrderable() {
1969
- return !this.product.isNull && !this.product.isHidden;
1970
- }
1971
- /**
1972
- * Шаг изменения количества позиции.
1973
- */
1974
- get quantityStep() {
1975
- return ScUnitsHelper.getProductMultiplicity(this.product);
1976
- }
1977
- /**
1978
- * Возвращает причину, по которой позиция не может попасть в заказ, или пустую строку.
1979
- */
1980
- getUnavailableReason() {
1981
- if (this.product.isNull) {
1982
- return 'Товар не найден в каталоге';
1983
- }
1984
- return this.product.isHidden ? 'Товар больше не предоставляется' : '';
1985
- }
1986
1898
  /**
1987
1899
  * @inheritDoc
1988
1900
  */
@@ -4715,6 +4627,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4715
4627
  }]
4716
4628
  }] });
4717
4629
 
4630
+ /**
4631
+ * Класс-помощник для работы со значениями единиц измерения товара.
4632
+ */
4633
+ class ScUnitsHelper {
4634
+ /**
4635
+ * Возвращает признак, что указанный товар имеет линейную единицу измерения.
4636
+ *
4637
+ * @param product Данные о товаре для которого нужно проверить линейность его единицы измерения.
4638
+ */
4639
+ static productIsMeasurable(product) {
4640
+ return product.unit.isLinear || product.unit.isSquare;
4641
+ }
4642
+ /**
4643
+ * Возвращает кратность количества для указанного товара.
4644
+ *
4645
+ * Кратность равна {@link ScProduct.minCount} и не зависит от {@link ScIProperties.ignoreMinCountCheck}:
4646
+ * этот признак только снимает валидацию кратности/минимума при ручном вводе, но начальное количество
4647
+ * и шаг кнопок +/- остаются кратны minCount.
4648
+ *
4649
+ * @param product Данные о товаре для которого необходимо вернуть кратность количества.
4650
+ */
4651
+ static getProductMultiplicity(product) {
4652
+ return product.minCount && !ScUnitsHelper.productIsMeasurable(product) ? product.minCount : 1;
4653
+ }
4654
+ /**
4655
+ * Возвращает кратность длины для указанного товара.
4656
+ *
4657
+ * @param product Данные о товаре для которого необходимо вернуть кратность длины.
4658
+ */
4659
+ static getProductLengthMultiplicity(product) {
4660
+ if (product.properties?.lengthStep) {
4661
+ return product.properties.lengthStep;
4662
+ }
4663
+ return !product.properties?.ignoreMinCountCheck && product.minCount ? product.minCount : 0.01;
4664
+ }
4665
+ }
4666
+
4718
4667
  /**
4719
4668
  * Возвращает текущий маршрут.
4720
4669
  * Функция проходит по дереву маршрутов начиная с переданного route и возвращает самый вложенный активный маршрут.
@@ -4729,28 +4678,6 @@ const scGetCurrentRoute = (route) => {
4729
4678
  return currentRoute;
4730
4679
  };
4731
4680
 
4732
- /**
4733
- * Класс-помощник для работы с датами.
4734
- */
4735
- class ScDateHelper {
4736
- /**
4737
- * Возвращает дату, полученную из строки в указанном формате, или `undefined`, если значение отсутствует или не является датой.
4738
- *
4739
- * @param value Дата строкой или готовый объект даты.
4740
- * @param format Формат даты строкой (например, {@link ScIDateFormat.api}).
4741
- */
4742
- static parse(value, format) {
4743
- if (value instanceof Date) {
4744
- return isValid(value) ? value : undefined;
4745
- }
4746
- if (!value) {
4747
- return undefined;
4748
- }
4749
- const date = parse(value, format, new Date());
4750
- return isValid(date) ? date : undefined;
4751
- }
4752
- }
4753
-
4754
4681
  /**
4755
4682
  * Токен состояния запроса данных о категории (загрузка / успех / ошибка).
4756
4683
  */
@@ -6883,160 +6810,6 @@ class ScOrderBase {
6883
6810
  }
6884
6811
  }
6885
6812
 
6886
- /**
6887
- * Перечисление статусов актуализации черновика Профстрой.
6888
- */
6889
- // eslint-disable-next-line no-shadow
6890
- var ScOrderDraftActualizationStatus;
6891
- (function (ScOrderDraftActualizationStatus) {
6892
- /**
6893
- * Выполняется обработка файла или обмен с 1С.
6894
- */
6895
- ScOrderDraftActualizationStatus["processing"] = "processing";
6896
- /**
6897
- * Последний обмен с 1С завершён успешно.
6898
- */
6899
- ScOrderDraftActualizationStatus["completed"] = "completed";
6900
- /**
6901
- * Обработка завершилась с ошибкой.
6902
- */
6903
- ScOrderDraftActualizationStatus["error"] = "error";
6904
- /**
6905
- * Состав черновика изменён после последней успешной актуализации.
6906
- */
6907
- ScOrderDraftActualizationStatus["needsActualization"] = "needs_actualization";
6908
- })(ScOrderDraftActualizationStatus || (ScOrderDraftActualizationStatus = {}));
6909
-
6910
- /**
6911
- * Данные об актуализации черновика Профстрой.
6912
- */
6913
- class ScOrderDraftActualization {
6914
- /**
6915
- * Инициализирует экземпляр класса {@link ScOrderDraftActualization}.
6916
- *
6917
- * @param data Данные от API или готовый экземпляр актуализации.
6918
- * @param apiDateFormat Формат дат в данных API.
6919
- */
6920
- constructor(data, apiDateFormat) {
6921
- this.status = data?.status ?? ScOrderDraftActualizationStatus.processing;
6922
- this.actualizedAt = ScDateHelper.parse(data?.actualizedAt, apiDateFormat);
6923
- this.expiresAt = ScDateHelper.parse(data?.expiresAt, apiDateFormat);
6924
- this.error = data?.error ?? undefined;
6925
- }
6926
- /**
6927
- * Признак, что выполняется обработка.
6928
- */
6929
- get isProcessing() {
6930
- return this.status === ScOrderDraftActualizationStatus.processing;
6931
- }
6932
- /**
6933
- * Возвращает признак, что данные актуализации устарели на указанный момент: актуализация не завершена успешно или истёк срок её действия.
6934
- * Момент, равный сроку действия, ещё допустим. Если срок не известен, данные считаются актуальными.
6935
- *
6936
- * @param now Момент проверки.
6937
- */
6938
- isOutdatedAt(now) {
6939
- if (this.status !== ScOrderDraftActualizationStatus.completed || !this.actualizedAt) {
6940
- return true;
6941
- }
6942
- return this.expiresAt !== undefined && this.expiresAt.getTime() < now.getTime();
6943
- }
6944
- /**
6945
- * Возвращает признак, что на указанный момент из черновика можно оформить заказ.
6946
- *
6947
- * @param now Момент проверки.
6948
- */
6949
- isOrderAllowedAt(now) {
6950
- return this.status === ScOrderDraftActualizationStatus.completed && !this.isOutdatedAt(now);
6951
- }
6952
- }
6953
-
6954
- /**
6955
- * Данные о позиции черновика Профстрой.
6956
- */
6957
- class ScProfstroyOrderItem extends ScOrderItem {
6958
- /**
6959
- * Название группы для позиций без группы.
6960
- */
6961
- static { this.ungroupedName = 'Без группы'; }
6962
- /**
6963
- * Шаг количества позиции, для которой не найден товар каталога и кратность не известна.
6964
- */
6965
- static { this.stubQuantityStep = 0.001; }
6966
- /**
6967
- * Тексты ошибок строк по их кодам.
6968
- */
6969
- static { this.lineErrorTexts = {
6970
- // eslint-disable-next-line @typescript-eslint/naming-convention
6971
- not_returned_by_1c: 'Продукт недоступен для заказа',
6972
- }; }
6973
- /**
6974
- * Возвращает признак, что вместо товара каталога пришла заглушка.
6975
- *
6976
- * @param product Данные о товаре.
6977
- */
6978
- static isStub(product) {
6979
- return !product || (product instanceof ScProduct && product.isNull) || !('id' in product);
6980
- }
6981
- /**
6982
- * Возвращает название группы позиции для отображения. Позиции обычного черновика относятся к группе «Без группы».
6983
- *
6984
- * @param item Позиция черновика.
6985
- */
6986
- static getGroupTitle(item) {
6987
- return item instanceof ScProfstroyOrderItem ? item.groupTitle : ScProfstroyOrderItem.ungroupedName;
6988
- }
6989
- /**
6990
- * Инициализирует экземпляр класса {@link ScProfstroyOrderItem}.
6991
- *
6992
- * @param data Данные от API или готовый экземпляр позиции.
6993
- */
6994
- constructor(data) {
6995
- const isProductStub = ScProfstroyOrderItem.isStub(data.product);
6996
- // Базовому классу нужны только собственные поля позиции, прототип не используется.
6997
- // eslint-disable-next-line @typescript-eslint/no-misused-spread
6998
- super({ ...data, product: isProductStub ? null : data.product });
6999
- this.isProductStub = isProductStub;
7000
- this.groupName = data.groupName ?? undefined;
7001
- this.isIgnored = data.isIgnored ?? false;
7002
- this.lineError = data.lineError ?? undefined;
7003
- this.supplierSku = data.supplierSku ?? data.product?.supplierSku ?? undefined;
7004
- if (isProductStub) {
7005
- this.product = ScProduct.createNotFound(data.product?.name, this.supplierSku);
7006
- }
7007
- }
7008
- /**
7009
- * Название группы для отображения: группа из файла или «Без группы».
7010
- */
7011
- get groupTitle() {
7012
- return this.groupName?.trim() ? this.groupName.trim() : ScProfstroyOrderItem.ungroupedName;
7013
- }
7014
- /**
7015
- * @inheritDoc
7016
- */
7017
- get isOrderable() {
7018
- return !this.isProductStub && !this.isIgnored && !this.lineError && super.isOrderable;
7019
- }
7020
- /**
7021
- * @inheritDoc
7022
- */
7023
- get quantityStep() {
7024
- return this.isProductStub ? ScProfstroyOrderItem.stubQuantityStep : super.quantityStep;
7025
- }
7026
- /**
7027
- * @inheritDoc
7028
- */
7029
- getUnavailableReason() {
7030
- if (this.isIgnored) {
7031
- return 'Группа не участвует в заказе';
7032
- }
7033
- if (this.lineError) {
7034
- return ScProfstroyOrderItem.lineErrorTexts[this.lineError] ?? this.lineError;
7035
- }
7036
- return super.getUnavailableReason();
7037
- }
7038
- }
7039
-
7040
6813
  /**
7041
6814
  * Данные о коммерческом предложении/черновике заказа.
7042
6815
  */
@@ -7045,9 +6818,8 @@ class ScOrderDraft {
7045
6818
  * Инициализирует экземпляр класса {@link ScOrderDraft}.
7046
6819
  *
7047
6820
  * @param data Данные для первоначальной инициализации.
7048
- * @param apiDateFormat Формат дат в данных API.
7049
6821
  */
7050
- constructor(data, apiDateFormat) {
6822
+ constructor(data) {
7051
6823
  /**
7052
6824
  * Дата последнего обновления данных.
7053
6825
  */
@@ -7057,10 +6829,7 @@ class ScOrderDraft {
7057
6829
  this.type = data.type;
7058
6830
  this.createdAt = data.createdAt;
7059
6831
  this.sum = data.sum;
7060
- this.isProfstroy = data.isProfstroy === true;
7061
- this.actualization = this.isProfstroy ? new ScOrderDraftActualization(data.actualization, apiDateFormat) : undefined;
7062
- this.file = data.file ?? undefined;
7063
- this.products = data.products.map((item) => (this.isProfstroy ? new ScProfstroyOrderItem(item) : new ScOrderItem(item)));
6832
+ this.products = data.products.map((item) => new ScOrderItem(item));
7064
6833
  }
7065
6834
  /**
7066
6835
  * @inheritDoc
@@ -7088,9 +6857,6 @@ class ScOrderDraft {
7088
6857
  this.type = offer.type;
7089
6858
  this.sum = offer.sum;
7090
6859
  this.products = offer.products;
7091
- this.isProfstroy = offer.isProfstroy;
7092
- this.actualization = offer.actualization;
7093
- this.file = offer.file;
7094
6860
  this.lastUpdateDate = new Date();
7095
6861
  }
7096
6862
  /**
@@ -7099,9 +6865,6 @@ class ScOrderDraft {
7099
6865
  updateDataFromShortOffer(offer) {
7100
6866
  this.name = offer.name;
7101
6867
  this.type = offer.type;
7102
- this.isProfstroy = offer.isProfstroy;
7103
- this.actualization = offer.actualization;
7104
- this.file = offer.file;
7105
6868
  }
7106
6869
  }
7107
6870
 
@@ -7113,15 +6876,11 @@ class ScOrderDraftShort extends ScOrderBase {
7113
6876
  * Инициализирует экземпляр класса {@link ScOrderDraftShort}.
7114
6877
  *
7115
6878
  * @param data Данные для первоначальной инициализации.
7116
- * @param apiDateFormat Формат дат в данных API.
7117
6879
  */
7118
- constructor(data, apiDateFormat) {
6880
+ constructor(data) {
7119
6881
  super(data);
7120
6882
  this.name = data.name;
7121
6883
  this.type = data.type;
7122
- this.isProfstroy = data.isProfstroy === true;
7123
- this.actualization = this.isProfstroy ? new ScOrderDraftActualization(data.actualization, apiDateFormat) : undefined;
7124
- this.file = data.file ?? undefined;
7125
6884
  }
7126
6885
  }
7127
6886
 
@@ -7142,7 +6901,6 @@ class ScOrderShort extends ScOrderBase {
7142
6901
  this.payment = data.payment;
7143
6902
  this.numberDoc = data.numberDoc;
7144
6903
  this.barcode = data.barcode;
7145
- this.isProfstroy = data.isProfstroy === true;
7146
6904
  }
7147
6905
  /**
7148
6906
  * @inheritDoc
@@ -7153,7 +6911,6 @@ class ScOrderShort extends ScOrderBase {
7153
6911
  this.payment = order.payment;
7154
6912
  this.sum = order.sum;
7155
6913
  this.delivery = order.delivery;
7156
- this.isProfstroy = order.isProfstroy;
7157
6914
  }
7158
6915
  }
7159
6916
 
@@ -7351,18 +7108,6 @@ class ScOrderDraftsService {
7351
7108
  * Сервис для сбора метрик о действиях пользователей.
7352
7109
  */
7353
7110
  this.userMetrikaService = inject(ScUserMetrikaService);
7354
- /**
7355
- * Форматы дат.
7356
- */
7357
- this.dateFormats = inject(SC_DATE_FORMAT);
7358
- /**
7359
- * Сервис конвертации данных.
7360
- */
7361
- this.convertersService = inject(ScConvertersService);
7362
- /**
7363
- * Объект документа.
7364
- */
7365
- this.document = inject(DOCUMENT);
7366
7111
  /**
7367
7112
  * Коллекция пар ключ-значение для кэшированных коммерческих предложений/черновиков пользователя.
7368
7113
  */
@@ -7378,85 +7123,17 @@ class ScOrderDraftsService {
7378
7123
  */
7379
7124
  getList$(params) {
7380
7125
  return this.http.get(`${this.urls.apiUrl}/orders/offers`, { params: params }).pipe(map$1((offersPaginateDTO) => {
7381
- offersPaginateDTO.data = offersPaginateDTO.data.map((item) => new ScOrderDraftShort(item, this.dateFormats.api));
7126
+ offersPaginateDTO.data = offersPaginateDTO.data.map((item) => new ScOrderDraftShort(item));
7382
7127
  return offersPaginateDTO;
7383
7128
  }));
7384
7129
  }
7385
- /**
7386
- * Возвращает краткие данные черновиков с указанными номерами. Используется для лёгкого опроса состояния актуализации без загрузки позиций.
7387
- *
7388
- * @param ids Номера черновиков.
7389
- */
7390
- getShortList$(ids) {
7391
- const params = { perPage: ids.length, filters: { number: { in: ids } } };
7392
- return this.getList$(this.convertersService.toHttpParams(params, { nonNullable: true })).pipe(map$1((response) => response.data));
7393
- }
7394
- /**
7395
- * Периодически запрашивает краткие данные черновиков с указанными номерами, пока есть подписка.
7396
- * Пока вкладка браузера скрыта, запросы не выполняются; новый запрос не начинается до завершения предыдущего.
7397
- *
7398
- * @param ids Номера черновиков.
7399
- */
7400
- watchShortList$(ids) {
7401
- return this.poll$(this.updateInterval.orderDraftStatus, () => this.getShortList$(ids));
7402
- }
7403
- /**
7404
- * Периодически перезапрашивает страницу списка черновиков в фоне, пока есть подписка. Условия запросов как у {@link watchShortList$}.
7405
- *
7406
- * @param params Параметры запроса получения списка.
7407
- */
7408
- watchList$(params) {
7409
- return this.poll$(this.updateInterval.orderDraftsList, () => this.getList$(params).pipe(map$1((response) => response.data)));
7410
- }
7411
- /**
7412
- * Создаёт черновик заказа из файла программы «Профстрой» и запускает его обработку.
7413
- *
7414
- * @param data Данные для создания.
7415
- */
7416
- createProfstroy$(data) {
7417
- return this.http.post(`${this.urls.apiUrl}/orders/offers/profstroy`, data).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7418
- this.userMetrikaService.emitUserMetrikaEvent({
7419
- target: ScUserMetrikaGoalsEnum.orderDraftProfstroyCreated,
7420
- params: { offer_id: offer.id },
7421
- });
7422
- this.offerMap.set(offer.id, new ScCachedItem(this.updateInterval.orderData, of(offer), loadingPlaceholder));
7423
- }));
7424
- }
7425
- /**
7426
- * Запускает актуализацию черновика Профстрой (повторный обмен с 1С по текущему составу).
7427
- *
7428
- * @param offerId Идентификатор черновика.
7429
- */
7430
- actualizeProfstroy$(offerId) {
7431
- return this.http.post(`${this.urls.apiUrl}/orders/offers/${offerId}/profstroy/actualize`, {}).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7432
- this.userMetrikaService.emitUserMetrikaEvent({
7433
- target: ScUserMetrikaGoalsEnum.orderDraftProfstroyActualized,
7434
- params: { offer_id: offerId },
7435
- });
7436
- this.offerMap.get(offerId)?.setValue(offer);
7437
- }));
7438
- }
7439
- /**
7440
- * Запускает пересборку черновика Профстрой из ранее загруженного файла.
7441
- *
7442
- * @param offerId Идентификатор черновика.
7443
- */
7444
- reloadProfstroy$(offerId) {
7445
- return this.http.post(`${this.urls.apiUrl}/orders/offers/${offerId}/profstroy/reload`, {}).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7446
- this.userMetrikaService.emitUserMetrikaEvent({
7447
- target: ScUserMetrikaGoalsEnum.orderDraftProfstroyReloaded,
7448
- params: { offer_id: offerId },
7449
- });
7450
- this.offerMap.get(offerId)?.setValue(offer);
7451
- }));
7452
- }
7453
7130
  /**
7454
7131
  * Создаёт новое коммерческое предложение/черновик заказа.
7455
7132
  *
7456
7133
  * @param data Данные для создания.
7457
7134
  */
7458
7135
  create$(data) {
7459
- return this.http.post(`${this.urls.apiUrl}/orders/offers`, data).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7136
+ return this.http.post(`${this.urls.apiUrl}/orders/offers`, data).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO)), tap((offer) => {
7460
7137
  this.userMetrikaService.emitUserMetrikaEvent({
7461
7138
  target: ScUserMetrikaGoalsEnum.orderDraftCreated,
7462
7139
  params: { offer_id: offer.id },
@@ -7474,7 +7151,7 @@ class ScOrderDraftsService {
7474
7151
  get$(draftId, cacheable = true) {
7475
7152
  let cachedItem = this.offerMap.get(draftId);
7476
7153
  if (!cachedItem) {
7477
- cachedItem = new ScCachedItem(this.updateInterval.orderData, this.http.get(`${this.urls.apiUrl}/orders/offers/${draftId}`).pipe(map$1((data) => new ScOrderDraft(data, this.dateFormats.api))), loadingPlaceholder);
7154
+ cachedItem = new ScCachedItem(this.updateInterval.orderData, this.http.get(`${this.urls.apiUrl}/orders/offers/${draftId}`).pipe(map$1((data) => new ScOrderDraft(data))), loadingPlaceholder);
7478
7155
  if (cacheable) {
7479
7156
  this.offerMap.set(draftId, cachedItem);
7480
7157
  }
@@ -7484,22 +7161,6 @@ class ScOrderDraftsService {
7484
7161
  }
7485
7162
  return cachedItem.item$;
7486
7163
  }
7487
- /**
7488
- * Запрашивает полную информацию о черновике в обход кэша и обновляет кэш полученными данными.
7489
- *
7490
- * @param draftId Идентификатор записи.
7491
- */
7492
- fetch$(draftId) {
7493
- return this.http.get(`${this.urls.apiUrl}/orders/offers/${draftId}`).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7494
- const cachedItem = this.offerMap.get(draftId);
7495
- if (cachedItem) {
7496
- cachedItem.setValue(offer);
7497
- }
7498
- else {
7499
- this.offerMap.set(draftId, new ScCachedItem(this.updateInterval.orderData, of(offer), loadingPlaceholder));
7500
- }
7501
- }));
7502
- }
7503
7164
  /**
7504
7165
  * Возвращает список элементов коммерческого предложения/черновика.
7505
7166
  *
@@ -7516,7 +7177,7 @@ class ScOrderDraftsService {
7516
7177
  */
7517
7178
  update$(draftId, patch) {
7518
7179
  const cachedItem = this.offerMap.get(draftId);
7519
- return this.http.patch(`${this.urls.apiUrl}/orders/offers/${draftId}`, patch).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7180
+ return this.http.patch(`${this.urls.apiUrl}/orders/offers/${draftId}`, patch).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO)), tap((offer) => {
7520
7181
  this.userMetrikaService.emitUserMetrikaEvent({
7521
7182
  target: ScUserMetrikaGoalsEnum.orderDraftUpdated,
7522
7183
  params: { offer_id: draftId },
@@ -7555,15 +7216,6 @@ class ScOrderDraftsService {
7555
7216
  this.removeOrderedProductsFromCache(offerId, data.items ?? []);
7556
7217
  }));
7557
7218
  }
7558
- /**
7559
- * Выполняет запрос с указанным интервалом, пока вкладка браузера видна. Новый запрос не начинается до завершения предыдущего, ошибки пропускаются.
7560
- *
7561
- * @param period Интервал запросов (ms).
7562
- * @param request Функция, возвращающая запрос.
7563
- */
7564
- poll$(period, request) {
7565
- return timer(period, period).pipe(filter(() => this.document.visibilityState !== 'hidden'), exhaustMap(() => request().pipe(catchError$1(() => EMPTY))));
7566
- }
7567
7219
  /**
7568
7220
  * Убирает заказанные позиции из кэша черновика локально (сервер сразу после заказа ещё может вернуть их в списке).
7569
7221
  *
@@ -7581,15 +7233,11 @@ class ScOrderDraftsService {
7581
7233
  return;
7582
7234
  }
7583
7235
  const currentDraft = draft;
7584
- // Из черновика Профстрой позиции после оформления заказа не удаляются.
7585
- if (currentDraft.isProfstroy) {
7586
- return;
7587
- }
7588
7236
  const remainingProducts = currentDraft.products.filter((product) => !orderedIds.has(product.id));
7589
7237
  if (remainingProducts.length === currentDraft.products.length) {
7590
7238
  return;
7591
7239
  }
7592
- const updatedDraft = new ScOrderDraft(currentDraft, this.dateFormats.api);
7240
+ const updatedDraft = new ScOrderDraft(currentDraft);
7593
7241
  updatedDraft.products = remainingProducts;
7594
7242
  updatedDraft.sum = remainingProducts.reduce((sum, product) => sum + product.costRub, 0);
7595
7243
  cachedItem.setValue(updatedDraft);
@@ -7602,7 +7250,7 @@ class ScOrderDraftsService {
7602
7250
  * @param offerId Идентификатор коммерческого предложения/черновика.
7603
7251
  */
7604
7252
  addProduct$(productData, offerId) {
7605
- return this.http.post(`${this.urls.apiUrl}/orders/offers/${offerId}/products`, productData).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7253
+ return this.http.post(`${this.urls.apiUrl}/orders/offers/${offerId}/products`, productData).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO)), tap((offer) => {
7606
7254
  if (this.offerMap.has(offerId)) {
7607
7255
  this.offerMap.get(offerId)?.setValue(offer);
7608
7256
  }
@@ -7616,7 +7264,7 @@ class ScOrderDraftsService {
7616
7264
  * @param offerId Идентификатор коммерческого предложения/черновика.
7617
7265
  */
7618
7266
  updateProduct$(productId, patch, offerId) {
7619
- return this.http.patch(`${this.urls.apiUrl}/orders/offers/${offerId}/products/${productId}`, patch).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7267
+ return this.http.patch(`${this.urls.apiUrl}/orders/offers/${offerId}/products/${productId}`, patch).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO)), tap((offer) => {
7620
7268
  if (this.offerMap.has(offerId)) {
7621
7269
  this.offerMap.get(offerId)?.setValue(offer);
7622
7270
  }
@@ -7629,7 +7277,7 @@ class ScOrderDraftsService {
7629
7277
  * @param offerId Идентификатор коммерческого предложения/черновика.
7630
7278
  */
7631
7279
  deleteProduct$(item, offerId) {
7632
- return this.http.delete(`${this.urls.apiUrl}/orders/offers/${offerId}/products/${item.id}`).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO, this.dateFormats.api)), tap((offer) => {
7280
+ return this.http.delete(`${this.urls.apiUrl}/orders/offers/${offerId}/products/${item.id}`).pipe(map$1((offerDTO) => new ScOrderDraft(offerDTO)), tap((offer) => {
7633
7281
  if (this.offerMap.has(offerId)) {
7634
7282
  this.offerMap.get(offerId)?.setValue(offer);
7635
7283
  }
@@ -8344,7 +7992,6 @@ class SchemaOrgFactory {
8344
7992
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
8345
7993
  const image = this.mediaImageTransformerPipe.transform(product?.getImagePreview?.() ?? product.image, true);
8346
7994
  const description = product.properties?.description;
8347
- const priceValidUntil = this.normalizePriceValidUntil(product.discount?.expiredAt);
8348
7995
  return {
8349
7996
  '@context': 'https://schema.org',
8350
7997
  '@type': 'Product',
@@ -8352,21 +7999,16 @@ class SchemaOrgFactory {
8352
7999
  name: product.name,
8353
8000
  ...(image && { image }),
8354
8001
  ...(description && { description: this.stripHtml(description) }),
8355
- mpn: product.code,
8356
- url: productUrl,
8357
- offers: {
8358
- '@type': 'Offer',
8359
- priceCurrency: 'RUB',
8360
- ...(priceValidUntil && { priceValidUntil }),
8361
- price: product.costRub,
8362
- availability: this.getAvailability(product),
8363
- itemCondition: 'https://schema.org/NewCondition',
8364
- seller: {
8365
- '@type': 'Organization',
8366
- name: this.companyInfo.name,
8002
+ sku: product.code,
8003
+ ...(product.supplierSku && { mpn: product.supplierSku }),
8004
+ ...(product.brand && {
8005
+ brand: {
8006
+ '@type': 'Brand',
8007
+ name: product.brand,
8367
8008
  },
8368
- url: productUrl,
8369
- },
8009
+ }),
8010
+ url: productUrl,
8011
+ offers: this.createOffer(product, productUrl),
8370
8012
  };
8371
8013
  }
8372
8014
  /**
@@ -8450,6 +8092,7 @@ class SchemaOrgFactory {
8450
8092
  // eslint-disable-next-line sonarjs/function-return-type
8451
8093
  generateForOrganization() {
8452
8094
  const postalAddress = this.createPostalAddress(this.companyInfo.address);
8095
+ const merchantReturnPolicy = this.createMerchantReturnPolicy();
8453
8096
  return {
8454
8097
  '@context': 'https://schema.org',
8455
8098
  '@type': 'OnlineStore',
@@ -8479,6 +8122,13 @@ class SchemaOrgFactory {
8479
8122
  address: warehouseAddress,
8480
8123
  })),
8481
8124
  }),
8125
+ ...(merchantReturnPolicy && {
8126
+ // Тип возмещения Google принимает только в политике организации, в предложениях его нет.
8127
+ hasMerchantReturnPolicy: {
8128
+ ...merchantReturnPolicy,
8129
+ refundType: 'https://schema.org/FullRefund',
8130
+ },
8131
+ }),
8482
8132
  };
8483
8133
  }
8484
8134
  /**
@@ -8614,6 +8264,22 @@ class SchemaOrgFactory {
8614
8264
  }
8615
8265
  return contactPoints;
8616
8266
  }
8267
+ /**
8268
+ * Формирует MerchantReturnPolicy по условиям возврата из данных о компании.
8269
+ */
8270
+ createMerchantReturnPolicy() {
8271
+ if (!this.companyInfo.returnPolicy) {
8272
+ return undefined;
8273
+ }
8274
+ return {
8275
+ '@type': 'MerchantReturnPolicy',
8276
+ applicableCountry: 'RU',
8277
+ returnPolicyCategory: 'https://schema.org/MerchantReturnFiniteReturnWindow',
8278
+ merchantReturnDays: this.companyInfo.returnPolicy.returnDays,
8279
+ returnMethod: 'https://schema.org/ReturnInStore',
8280
+ returnFees: 'https://schema.org/FreeReturn',
8281
+ };
8282
+ }
8617
8283
  /**
8618
8284
  * Удаляет HTML-разметку из текста.
8619
8285
  *
@@ -8707,6 +8373,30 @@ class SchemaOrgFactory {
8707
8373
  const path = categoryPath.replace(':id', id);
8708
8374
  return `${this.urls.siteUrl}${path}`;
8709
8375
  }
8376
+ /**
8377
+ * Создаёт Offer о продаже товара.
8378
+ *
8379
+ * @param product Данные о продукте.
8380
+ * @param productUrl Полный URL страницы товара.
8381
+ */
8382
+ createOffer(product, productUrl) {
8383
+ const priceValidUntil = this.normalizePriceValidUntil(product.discount?.expiredAt);
8384
+ const merchantReturnPolicy = this.createMerchantReturnPolicy();
8385
+ return {
8386
+ '@type': 'Offer',
8387
+ priceCurrency: 'RUB',
8388
+ ...(priceValidUntil && { priceValidUntil }),
8389
+ price: product.costRub,
8390
+ availability: this.getAvailability(product),
8391
+ itemCondition: 'https://schema.org/NewCondition',
8392
+ seller: {
8393
+ '@type': 'Organization',
8394
+ name: this.companyInfo.name,
8395
+ },
8396
+ url: productUrl,
8397
+ ...(merchantReturnPolicy && { hasMerchantReturnPolicy: merchantReturnPolicy }),
8398
+ };
8399
+ }
8710
8400
  /**
8711
8401
  * Создаёт элемент списка ItemList с кратким Product для страницы категории.
8712
8402
  *
@@ -8719,7 +8409,6 @@ class SchemaOrgFactory {
8719
8409
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
8720
8410
  const image = this.mediaImageTransformerPipe.transform(product?.getImagePreview?.() ?? product.image, true);
8721
8411
  const description = product.seo?.description ?? product.properties?.description;
8722
- const priceValidUntil = this.normalizePriceValidUntil(product.discount?.expiredAt);
8723
8412
  return {
8724
8413
  '@type': 'ListItem',
8725
8414
  position,
@@ -8729,19 +8418,7 @@ class SchemaOrgFactory {
8729
8418
  url: productUrl,
8730
8419
  ...(image && { image }),
8731
8420
  ...(description && { description: this.stripHtml(description) }),
8732
- offers: {
8733
- '@type': 'Offer',
8734
- priceCurrency: 'RUB',
8735
- ...(priceValidUntil && { priceValidUntil }),
8736
- price: product.costRub,
8737
- availability: this.getAvailability(product),
8738
- itemCondition: 'https://schema.org/NewCondition',
8739
- seller: {
8740
- '@type': 'Organization',
8741
- name: this.companyInfo.name,
8742
- },
8743
- url: productUrl,
8744
- },
8421
+ offers: this.createOffer(product, productUrl),
8745
8422
  },
8746
8423
  };
8747
8424
  }
@@ -9661,5 +9338,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
9661
9338
  * Generated bundle index. Do not edit.
9662
9339
  */
9663
9340
 
9664
- 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_CANONICAL_REDIRECT_ENABLED, 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_PAGE_QUERY_PARAM, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCTS_PAGINATION_LOADER, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_SSR_RESPONSE_CACHE, SC_SSR_RESPONSE_CACHE_SETTINGS, 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, ScDateHelper, 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, ScOrderDraftActualization, ScOrderDraftActualizationStatus, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationPageQueryParamService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScProfstroyOrderItem, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScRedirectStatusEnum, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSsrResponseCache, ScSsrResponseCacheBackend, 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, provideSsrResponseCache, runningOnTerminalFactory, scGetCurrentRoute, scGetPageQueryParamChanges, scOrderIsLoaded, scParsePageQueryParam, searchTermFactory };
9341
+ 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_CANONICAL_REDIRECT_ENABLED, 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_PAGE_QUERY_PARAM, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCTS_PAGINATION_LOADER, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_SSR_RESPONSE_CACHE, SC_SSR_RESPONSE_CACHE_SETTINGS, 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, ScPaginationPageQueryParamService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScRedirectStatusEnum, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSsrResponseCache, ScSsrResponseCacheBackend, 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, provideSsrResponseCache, runningOnTerminalFactory, scGetCurrentRoute, scGetPageQueryParamChanges, scOrderIsLoaded, scParsePageQueryParam, searchTermFactory };
9665
9342
  //# sourceMappingURL=snabcentr-client-core.mjs.map