@snabcentr/client-core 2.61.0 → 2.62.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,4 +1,5 @@
1
1
  export * from './sc-i-currency';
2
+ export * from './sc-i-product-unit';
2
3
  export * from './sc-i-references-types';
3
4
  export * from './sc-i-sales-direction';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3JlZmVyZW5jZXMvZHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zYy1pLWN1cnJlbmN5JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1yZWZlcmVuY2VzLXR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1zYWxlcy1kaXJlY3Rpb24nO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3JlZmVyZW5jZXMvZHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjLWktY3VycmVuY3knO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLXByb2R1Y3QtdW5pdCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktcmVmZXJlbmNlcy10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktc2FsZXMtZGlyZWN0aW9uJztcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1jdXJyZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcmVmZXJlbmNlcy9kdG8vc2MtaS1jdXJyZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQlNCw0L3QvdGL0LUg0L4g0LLQsNC70Y7RgtC1LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjSUN1cnJlbmN5IHtcbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstCw0LvRjtGC0Ysg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0LguXG4gICAgICovXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDRgtGD0YDQsCDQstCw0LvRjtGC0YsuXG4gICAgICovXG4gICAgc2lnbmF0dXJlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INCy0LDQu9GO0YLRiy5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LzQstC+0Lsg0LLQsNC70Y7RgtGLLlxuICAgICAqL1xuICAgIHN5bWJvbDogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1jdXJyZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcmVmZXJlbmNlcy9kdG8vc2MtaS1jdXJyZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQlNCw0L3QvdGL0LUg0L4g0LLQsNC70Y7RgtC1LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjSUN1cnJlbmN5IHtcbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstCw0LvRjtGC0Ysg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0LguXG4gICAgICovXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDRgtGD0YDQsCDQstCw0LvRjtGC0YsuXG4gICAgICovXG4gICAgc2lnbmF0dXJlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQptC40YTRgNC+0LLQvtC5INC60L7QtCDQstCw0LvRjtGC0Ysg0L/QviDRgdGC0LDQvdC00LDRgNGC0YMgSVNPIDQyMTcuXG4gICAgICovXG4gICAgY29kZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCd0LDQt9Cy0LDQvdC40LUg0LLQsNC70Y7RgtGLLlxuICAgICAqL1xuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCh0LjQvNCy0L7QuyDQstCw0LvRjtGC0YsuXG4gICAgICovXG4gICAgc3ltYm9sOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQotC+0YfQvdC+0YHRgtGMINC+0LrRgNGD0LPQu9C10L3QuNGPICjQutC+0LvQuNGH0LXRgdGC0LLQviDQt9C90LDQutC+0LIg0L/QvtGB0LvQtSDQt9Cw0L/Rj9GC0L7QuSkuXG4gICAgICovXG4gICAgcHJlY2lzaW9uPzogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1wcm9kdWN0LXVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3JlZmVyZW5jZXMvZHRvL3NjLWktcHJvZHVjdC11bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqINCU0LDQvdC90YvQtSDQtdC00LjQvdC40YbRiyDQuNC30LzQtdGA0LXQvdC40Y8g0L/RgNC+0LTRg9C60YLQsC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY0lQcm9kdWN0VW5pdCB7XG4gICAgLyoqXG4gICAgICog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LXQtNC40L3QuNGG0Ysg0LjQt9C80LXRgNC10L3QuNGPINC/0YDQvtC00YPQutGC0LAuXG4gICAgICovXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCh0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpINC10LTQuNC90LjRhtGLINC40LfQvNC10YDQtdC90LjRjyDQv9GA0L7QtNGD0LrRgtCwLlxuICAgICAqL1xuICAgIHNsdWc6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCd0LDQt9Cy0LDQvdC40LUg0LXQtNC40L3QuNGG0Ysg0LjQt9C80LXRgNC10L3QuNGPINC/0YDQvtC00YPQutGC0LAuXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J7Qv9C40YHQsNC90LjQtSDQtdC00LjQvdC40YbRiyDQuNC30LzQtdGA0LXQvdC40Y8g0L/RgNC+0LTRg9C60YLQsC5cbiAgICAgKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDRh9GC0L4g0LXQtNC40L3QuNGG0LAg0LjQt9C80LXRgNC10L3QuNGPINGP0LLQu9GP0LXRgtGB0Y8g0LXQtNC40L3QuNGG0LXQuSDQuNC30LzQtdGA0LXQvdC40Y8g0L/Qu9C+0YnQsNC00LguXG4gICAgICovXG4gICAgaXNTcXVhcmU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC10LTQuNC90LjRhtCwINC40LfQvNC10YDQtdC90LjRjyDRj9Cy0LvRj9C10YLRgdGPINC70LjQvdC10LnQvdC+0Lkg0LLQtdC70LjRh9C40L3QvtC5LlxuICAgICAqL1xuICAgIGlzTGluZWFyOiBib29sZWFuO1xufVxuIl19
@@ -3,7 +3,7 @@ import { InjectionToken, inject, PLATFORM_ID, Injectable, Inject, Optional, LOCA
3
3
  import { WA_LOCAL_STORAGE, WA_USER_AGENT, WA_WINDOW } from '@ng-web-apis/common';
4
4
  import { filterByKey, toValue, WA_STORAGE_EVENT, StorageService } from '@ng-web-apis/storage';
5
5
  import * as i1 from 'rxjs';
6
- import { startWith, Subject, ReplaySubject, partition, combineLatest, map, debounceTime, switchMap, of, tap, filter, shareReplay, distinctUntilChanged, distinctUntilKeyChanged, skip, first, BehaviorSubject, expand, takeWhile, toArray, catchError, throwError, concatMap, finalize, takeUntil, interval, share, scan } from 'rxjs';
6
+ import { startWith, Subject, ReplaySubject, partition, combineLatest, map, debounceTime, switchMap, of, tap, filter, shareReplay, distinctUntilChanged, distinctUntilKeyChanged, skip, first, BehaviorSubject, materialize, dematerialize, expand, takeWhile, toArray, catchError, throwError, concatMap, finalize, takeUntil, interval, share, scan } from 'rxjs';
7
7
  import { isPlatformBrowser, isPlatformServer, DOCUMENT, formatDate } from '@angular/common';
8
8
  import { tuiCreateTokenFromFactory, tuiCreateToken, tuiIsPresent, TuiDay, tuiPure, TUI_TRUE_HANDLER } from '@taiga-ui/cdk';
9
9
  import * as i1$1 from '@angular/common/http';
@@ -1458,7 +1458,6 @@ class ScProduct extends ScSeoResource {
1458
1458
  this.currency = productDTO.currency;
1459
1459
  this.code = productDTO.code;
1460
1460
  this.unit = productDTO.unit;
1461
- this.quantityUnit = productDTO.quantityUnit;
1462
1461
  this.minCount = productDTO.minCount;
1463
1462
  this.stockCount = productDTO.stockCount;
1464
1463
  this.onOrder = productDTO.onOrder;
@@ -1481,25 +1480,25 @@ class ScProduct extends ScSeoResource {
1481
1480
  * Стоимость товара или услуги с валютой и единицей измерения.
1482
1481
  */
1483
1482
  get costString() {
1484
- return this.cost ? `${this.cost.toLocaleString()} ${this.currency} / ${this.unit}` : '';
1483
+ return this.cost ? `${this.cost.toLocaleString()} ${this.currency.symbol} / ${this.unit.name}` : '';
1485
1484
  }
1486
1485
  /**
1487
1486
  * Стоимость товара или услуги в рублях и с единицей измерения.
1488
1487
  */
1489
1488
  get costRubString() {
1490
- return this.costRub ? `${this.costRub.toLocaleString()} ₽ / ${this.unit}` : '';
1489
+ return this.costRub ? `${this.costRub.toLocaleString()} ₽ / ${this.unit.name}` : '';
1491
1490
  }
1492
1491
  /**
1493
1492
  * Стоимость товара или услуги с валютой и единицей измерения до применения скидки.
1494
1493
  */
1495
1494
  get discountCostString() {
1496
- return this.discount?.oldCost ? `${this.discount.oldCost.toLocaleString()} ${this.currency} / ${this.unit}` : '';
1495
+ return this.discount?.oldCost ? `${this.discount.oldCost.toLocaleString()} ${this.currency.symbol} / ${this.unit.name}` : '';
1497
1496
  }
1498
1497
  /**
1499
1498
  * Признак, что товар продаётся в рублях.
1500
1499
  */
1501
1500
  get priceInRub() {
1502
- return this.currency === '₽';
1501
+ return this.currency.symbol === '₽';
1503
1502
  }
1504
1503
  /**
1505
1504
  * Возвращает первое изображение товара. Если изображений нет, то возвращает undefined.
@@ -1590,7 +1589,6 @@ class ScCartItem {
1590
1589
  this.id = cartItemDTO.id;
1591
1590
  this.product = new ScProduct(cartItemDTO.product);
1592
1591
  this.quantity = cartItemDTO.quantity;
1593
- this.currency = cartItemDTO.currency;
1594
1592
  this.cost = cartItemDTO.cost;
1595
1593
  this.costOne = cartItemDTO.costOne;
1596
1594
  this.costRub = cartItemDTO.costRub;
@@ -1609,19 +1607,19 @@ class ScCartItem {
1609
1607
  * Возвращает стоимость единицы товара (включая валюту). Если стоимость отсутствует, то вернёт '-'.
1610
1608
  */
1611
1609
  getCostPerItem() {
1612
- return this.costOne > 0 ? `${this.costOne.toLocaleString()} ${this.currency}` : '-';
1610
+ return this.costOne > 0 ? `${this.costOne.toLocaleString()} ${this.product.currency.symbol}` : '-';
1613
1611
  }
1614
1612
  /**
1615
1613
  * Возвращает строковое представление стоимости единицы товара (включая единицу измерения) в валюте. Если стоимость отсутствует, то вернёт '-'.
1616
1614
  */
1617
1615
  getCostInCurrencyDescPerItem() {
1618
- return this.costOne > 0 ? `${this.costOne.toLocaleString()} ${this.currency} / ${this.product.quantityUnit}` : '-';
1616
+ return this.costOne > 0 ? `${this.costOne.toLocaleString()} ${this.product.currency.symbol} / ${this.product.unit.name}` : '-';
1619
1617
  }
1620
1618
  /**
1621
1619
  * Возвращает строковое представление стоимости единицы товара (включая единицу измерения) в рублях. Если стоимость отсутствует, то вернёт '-'.
1622
1620
  */
1623
1621
  getCostInRubDescPerItem() {
1624
- return this.costOneRub > 0 ? `${this.costOneRub.toLocaleString()} ₽ / ${this.product.quantityUnit}` : '-';
1622
+ return this.costOneRub > 0 ? `${this.costOneRub.toLocaleString()} ₽ / ${this.product.unit.name}` : '-';
1625
1623
  }
1626
1624
  /**
1627
1625
  * Возвращает стоимость товара в виде строки. Если стоимость отсутствует, то вернёт '-'.
@@ -2559,10 +2557,12 @@ class ScCartService {
2559
2557
  */
2560
2558
  addToCart$(cartNewItem) {
2561
2559
  return this.http.patch(`${this.urls.apiUrl}/cart`, cartNewItem).pipe(map((cartDTO) => new ScCart(cartDTO)), tap(() => {
2562
- this.userMetrikaService.emitUserMetrikaEvent({
2563
- target: ScUserMetrikaGoalsEnum.cartItemAdded,
2564
- params: { product_id: cartNewItem.productId },
2565
- });
2560
+ if (cartNewItem.productId) {
2561
+ this.userMetrikaService.emitUserMetrikaEvent({
2562
+ target: ScUserMetrikaGoalsEnum.cartItemAdded,
2563
+ params: { product_id: cartNewItem.productId },
2564
+ });
2565
+ }
2566
2566
  }), tap((cart) => {
2567
2567
  this.cart$.next(cart);
2568
2568
  }));
@@ -2785,7 +2785,7 @@ class ScCachedItem {
2785
2785
  this.update$ = new BehaviorSubject(undefined);
2786
2786
  this.item$ = this.update$.pipe(switchMap(() => item$.pipe(tap(() => {
2787
2787
  this.cachedUntil = Date.now() + lifeTime;
2788
- }), startWith(null))), shareReplay(1));
2788
+ }), startWith(null))), materialize(), shareReplay(1), dematerialize());
2789
2789
  }
2790
2790
  /**
2791
2791
  * Возвращает признак того, что кэшированные данные актуальны.
@@ -4912,7 +4912,7 @@ class ScUnitsHelper {
4912
4912
  * @param product Товар для которого нужно проверить возможность продажи на метраж.
4913
4913
  */
4914
4914
  productIsMeasurable(product) {
4915
- return this.linearValues.includes(product.unit);
4915
+ return this.linearValues.includes(product.unit.name);
4916
4916
  }
4917
4917
  /**
4918
4918
  * Возвращает кратность количества для товара.
@@ -4920,7 +4920,7 @@ class ScUnitsHelper {
4920
4920
  * @param product Товар для которого нужно вернуть кратность количества.
4921
4921
  */
4922
4922
  productMultiplicity(product) {
4923
- return product.minCount && !this.linearValues.includes(product.unit) ? product.minCount : 1;
4923
+ return product.minCount && !this.linearValues.includes(product.unit.name) ? product.minCount : 1;
4924
4924
  }
4925
4925
  /**
4926
4926
  * Возвращает значение кратности, для проверки кратности количества товара.