@snabcentr/client-core 4.18.0 → 4.19.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.
|
@@ -1487,7 +1487,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
1487
1487
|
}]
|
|
1488
1488
|
}] });
|
|
1489
1489
|
|
|
1490
|
-
const EMPTY_CART = { items: [], result_sum: { rub: 0 }
|
|
1490
|
+
const EMPTY_CART = { items: [], result_sum: { rub: 0 } };
|
|
1491
1491
|
|
|
1492
1492
|
/**
|
|
1493
1493
|
* Данные об итоговой сумме.
|
|
@@ -1879,7 +1879,6 @@ class ScOrderItem {
|
|
|
1879
1879
|
this.length = data.length;
|
|
1880
1880
|
this.width = data.width;
|
|
1881
1881
|
this.logicGroupId = data.logicGroupId;
|
|
1882
|
-
this.salesDirection = data.salesDirection;
|
|
1883
1882
|
this.specificationImgUrl = data.specificationImgUrl;
|
|
1884
1883
|
this.configurator = data.configurator;
|
|
1885
1884
|
this.configuratorParams = data.configuratorParams;
|
|
@@ -1926,10 +1925,9 @@ class ScCart {
|
|
|
1926
1925
|
* @param data Данные для первоначальной инициализации.
|
|
1927
1926
|
*/
|
|
1928
1927
|
// eslint-disable-next-line unicorn/no-object-as-default-parameter
|
|
1929
|
-
constructor(data = { items: [], resultSum: { rub: 0 }
|
|
1928
|
+
constructor(data = { items: [], resultSum: { rub: 0 } }) {
|
|
1930
1929
|
this.items = data.items.map((item) => new ScOrderItem(item));
|
|
1931
1930
|
this.resultSum = data.resultSum;
|
|
1932
|
-
this.directionsSum = data.directionsSum;
|
|
1933
1931
|
}
|
|
1934
1932
|
}
|
|
1935
1933
|
|
|
@@ -2070,15 +2068,14 @@ class ScUserMetadata {
|
|
|
2070
2068
|
* Вид отображения плиток товаров.
|
|
2071
2069
|
*/
|
|
2072
2070
|
this.productTileType = ScProductTileType.grid;
|
|
2073
|
-
/**
|
|
2074
|
-
* Метаданные не оформленных заказов.
|
|
2075
|
-
*/
|
|
2076
|
-
this.newOrdersMetadata = [];
|
|
2077
2071
|
/**
|
|
2078
2072
|
* Формат отображения каталога.
|
|
2079
2073
|
*/
|
|
2080
2074
|
this.catalogFormat = ScCatalogFormat.normal;
|
|
2081
|
-
|
|
2075
|
+
const metadata = { ...data };
|
|
2076
|
+
// Устаревший ключ черновика заказа по направлениям, не переносится в актуальные метаданные.
|
|
2077
|
+
delete metadata['newOrdersMetadata'];
|
|
2078
|
+
Object.assign(this, metadata);
|
|
2082
2079
|
}
|
|
2083
2080
|
}
|
|
2084
2081
|
|
|
@@ -2186,54 +2183,28 @@ class ScUIService {
|
|
|
2186
2183
|
this.setMetadataByKey('paginatePageSize', paginatePageSize);
|
|
2187
2184
|
}
|
|
2188
2185
|
/**
|
|
2189
|
-
* Возвращает {@link Observable} метаданных неоформленного
|
|
2190
|
-
*
|
|
2191
|
-
* @param directionsId Идентификатор направления продаж.
|
|
2186
|
+
* Возвращает {@link Observable} метаданных неоформленного заказа.
|
|
2192
2187
|
*/
|
|
2193
|
-
getNewOrderMetadata$(
|
|
2194
|
-
|
|
2195
|
-
return this.userMetadataSubject.pipe(map$1((metadata) => metadata.newOrdersMetadata), distinctUntilChanged(), map$1((ordersMetadata) => ordersMetadata[directionsId]), distinctUntilChanged());
|
|
2188
|
+
getNewOrderMetadata$() {
|
|
2189
|
+
return this.getMetadataChangeByKey$('newOrderMetadata');
|
|
2196
2190
|
}
|
|
2197
2191
|
/**
|
|
2198
|
-
* Устанавливает метаданные неоформленного
|
|
2192
|
+
* Устанавливает метаданные неоформленного заказа.
|
|
2199
2193
|
*
|
|
2200
|
-
* @param directionsId Идентификатор направления продаж.
|
|
2201
2194
|
* @param newOrderMetadata Данные нового неоформленного заказа.
|
|
2202
2195
|
*/
|
|
2203
|
-
setNewOrderMetadata(
|
|
2196
|
+
setNewOrderMetadata(newOrderMetadata) {
|
|
2204
2197
|
// При сохранении изображения выдаёт ошибку 500 'Произошла ошибка при работе с базой данных'.
|
|
2205
2198
|
// TODO: TASK[#6370]: Доработать после решения задачи.
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
}
|
|
2210
|
-
this.getMetadataChangeByKey$('newOrdersMetadata')
|
|
2211
|
-
.pipe(first())
|
|
2212
|
-
.subscribe((ordersMetadata) => {
|
|
2213
|
-
// eslint-disable-next-line no-param-reassign
|
|
2214
|
-
ordersMetadata[directionsId] = newOrderMetadata;
|
|
2215
|
-
this.setMetadataByKey('newOrdersMetadata', structuredClone(ordersMetadata));
|
|
2216
|
-
});
|
|
2217
|
-
}
|
|
2218
|
-
/**
|
|
2219
|
-
* Удаляет метаданные неоформленного заказа по направлению продаж.
|
|
2220
|
-
*
|
|
2221
|
-
* @param directionsId Идентификатор направления продаж.
|
|
2222
|
-
*/
|
|
2223
|
-
removeNewOrderMetadata(directionsId) {
|
|
2224
|
-
this.getMetadataChangeByKey$('newOrdersMetadata')
|
|
2225
|
-
.pipe(first())
|
|
2226
|
-
.subscribe((ordersMetadata) => {
|
|
2227
|
-
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete,no-param-reassign
|
|
2228
|
-
delete ordersMetadata[directionsId];
|
|
2229
|
-
this.setMetadataByKey('newOrdersMetadata', structuredClone(ordersMetadata));
|
|
2230
|
-
});
|
|
2199
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2200
|
+
const { image, ...newOrderMetadataWithoutImage } = newOrderMetadata;
|
|
2201
|
+
this.setMetadataByKey('newOrderMetadata', newOrderMetadataWithoutImage);
|
|
2231
2202
|
}
|
|
2232
2203
|
/**
|
|
2233
|
-
* Удаляет метаданные
|
|
2204
|
+
* Удаляет метаданные неоформленного заказа.
|
|
2234
2205
|
*/
|
|
2235
|
-
|
|
2236
|
-
this.setMetadataByKey('
|
|
2206
|
+
removeNewOrderMetadata() {
|
|
2207
|
+
this.setMetadataByKey('newOrderMetadata', undefined);
|
|
2237
2208
|
}
|
|
2238
2209
|
/**
|
|
2239
2210
|
* Возвращает дату последнего открытия опросников.
|
|
@@ -2958,7 +2929,7 @@ class ScCartService {
|
|
|
2958
2929
|
target: ScUserMetrikaGoalsEnum.cartCleared,
|
|
2959
2930
|
});
|
|
2960
2931
|
}), tap(() => {
|
|
2961
|
-
this.uiService.
|
|
2932
|
+
this.uiService.removeNewOrderMetadata();
|
|
2962
2933
|
this.cartCachedItem$.setValue(new ScCart());
|
|
2963
2934
|
}));
|
|
2964
2935
|
}
|
|
@@ -2976,19 +2947,6 @@ class ScCartService {
|
|
|
2976
2947
|
getNullCartItems$() {
|
|
2977
2948
|
return this.get$().pipe(map$1((cart) => (cart === loadingPlaceholder ? loadingPlaceholder : cart.items.filter((item) => item.product.isNull || item.product.isHidden))));
|
|
2978
2949
|
}
|
|
2979
|
-
/**
|
|
2980
|
-
* Возвращает объект {@link ScCart} корзины, созданный из объекта заказа.
|
|
2981
|
-
*
|
|
2982
|
-
* @param order Данные о заказе.
|
|
2983
|
-
*/
|
|
2984
|
-
// eslint-disable-next-line class-methods-use-this
|
|
2985
|
-
getCartByOrder(order) {
|
|
2986
|
-
return {
|
|
2987
|
-
items: order.products,
|
|
2988
|
-
resultSum: { rub: order.sum },
|
|
2989
|
-
directionsSum: { [order.salesDirection.id]: new ScSum(order.sum) },
|
|
2990
|
-
};
|
|
2991
|
-
}
|
|
2992
2950
|
/**
|
|
2993
2951
|
* Возвращает пример CSV файла для добавления продуктов в корзину.
|
|
2994
2952
|
*/
|
|
@@ -7309,13 +7267,12 @@ class ScOrdersService {
|
|
|
7309
7267
|
});
|
|
7310
7268
|
}
|
|
7311
7269
|
/**
|
|
7312
|
-
* Создаёт
|
|
7270
|
+
* Создаёт заказы из выбранных позиций корзины.
|
|
7313
7271
|
*
|
|
7314
|
-
* @param directionId Идентификатор направления продаж.
|
|
7315
7272
|
* @param newOrder Данные нового заказа.
|
|
7316
7273
|
*/
|
|
7317
|
-
createOrder$(
|
|
7318
|
-
return this.http.post(`${this.urls.apiUrl}/orders
|
|
7274
|
+
createOrder$(newOrder) {
|
|
7275
|
+
return this.http.post(`${this.urls.apiUrl}/orders/from-cart`, newOrder).pipe(map$1((orders) => orders.map((item) => new ScOrderShort(item))), tap((orders) => {
|
|
7319
7276
|
orders.forEach((order) => {
|
|
7320
7277
|
this.userMetrikaService.emitUserMetrikaEvent({
|
|
7321
7278
|
target: ScUserMetrikaGoalsEnum.orderCreated,
|
|
@@ -7323,7 +7280,7 @@ class ScOrdersService {
|
|
|
7323
7280
|
});
|
|
7324
7281
|
});
|
|
7325
7282
|
}), tap(() => {
|
|
7326
|
-
this.uiService.removeNewOrderMetadata(
|
|
7283
|
+
this.uiService.removeNewOrderMetadata();
|
|
7327
7284
|
}));
|
|
7328
7285
|
}
|
|
7329
7286
|
/**
|