@shopgate/pwa-common-commerce 7.30.0-alpha.7 → 7.30.0-alpha.8

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 (315) hide show
  1. package/cart/action-creators/addCouponsToCart.js +9 -2
  2. package/cart/action-creators/addProductsToCart.js +9 -2
  3. package/cart/action-creators/deleteCouponsFromCart.js +9 -2
  4. package/cart/action-creators/deleteProductsFromCart.js +9 -2
  5. package/cart/action-creators/errorAddCouponsToCart.js +10 -2
  6. package/cart/action-creators/errorAddProductsToCart.js +10 -2
  7. package/cart/action-creators/errorCart.js +8 -2
  8. package/cart/action-creators/errorDeleteCouponsFromCart.js +10 -2
  9. package/cart/action-creators/errorDeleteProductsFromCart.js +10 -2
  10. package/cart/action-creators/errorUpdateProductsInCart.js +10 -2
  11. package/cart/action-creators/receiveCart.js +9 -2
  12. package/cart/action-creators/requestCart.js +8 -2
  13. package/cart/action-creators/setCartProductPendingCount.js +9 -2
  14. package/cart/action-creators/setCouponFieldError.js +9 -2
  15. package/cart/action-creators/setCouponFieldValue.js +9 -2
  16. package/cart/action-creators/setFulfillmentSlot.js +9 -2
  17. package/cart/action-creators/successAddCouponsToCart.js +10 -2
  18. package/cart/action-creators/successAddProductsToCart.js +8 -2
  19. package/cart/action-creators/successDeleteCouponsFromCart.js +8 -2
  20. package/cart/action-creators/successDeleteProductsFromCart.js +8 -2
  21. package/cart/action-creators/successUpdateProductsInCart.js +8 -2
  22. package/cart/action-creators/updateProductsInCart.js +9 -2
  23. package/cart/actions/addCouponsToCart.js +52 -8
  24. package/cart/actions/addProductsToCart.js +80 -11
  25. package/cart/actions/deleteCouponsFromCart.js +39 -6
  26. package/cart/actions/deleteProductsFromCart.js +38 -6
  27. package/cart/actions/fetchCart.js +52 -8
  28. package/cart/actions/updateProductsInCart.js +44 -6
  29. package/cart/constants/PipelineErrors.js +6 -1
  30. package/cart/constants/Pipelines.js +6 -1
  31. package/cart/constants/Portals.js +85 -1
  32. package/cart/constants/index.js +39 -2
  33. package/cart/helpers/config.js +47 -2
  34. package/cart/helpers/createPipelineErrorList.js +30 -4
  35. package/cart/helpers/fulfillmentSlots.js +37 -4
  36. package/cart/helpers/index.js +14 -3
  37. package/cart/helpers/quantity.js +23 -4
  38. package/cart/helpers/shipping.js +57 -2
  39. package/cart/helpers/tax.js +26 -2
  40. package/cart/index.js +25 -5
  41. package/cart/mock.js +130 -1
  42. package/cart/reducers/couponField.js +30 -2
  43. package/cart/reducers/data.js +98 -6
  44. package/cart/reducers/index.js +7 -1
  45. package/cart/selectors/index.js +181 -31
  46. package/cart/selectors/spec.js +189 -2
  47. package/cart/streams/index.js +176 -29
  48. package/cart/subscriptions/index.js +307 -30
  49. package/category/action-creators/errorCategory.js +10 -2
  50. package/category/action-creators/errorCategoryChildren.js +9 -2
  51. package/category/action-creators/errorRootCategories.js +8 -2
  52. package/category/action-creators/receiveCategory.js +12 -2
  53. package/category/action-creators/receiveCategoryChildren.js +10 -2
  54. package/category/action-creators/receiveRootCategories.js +9 -2
  55. package/category/action-creators/requestCategory.js +9 -2
  56. package/category/action-creators/requestCategoryChildren.js +9 -2
  57. package/category/action-creators/requestRootCategories.js +8 -2
  58. package/category/actions/fetchCategory.js +47 -5
  59. package/category/actions/fetchCategoryChildren.js +30 -2
  60. package/category/actions/fetchCategoryOrRootCategories.js +16 -2
  61. package/category/actions/fetchCategoryProducts.js +36 -2
  62. package/category/actions/fetchRootCategories.js +31 -2
  63. package/category/actions/getCategory.js +10 -2
  64. package/category/constants/Pipelines.js +3 -1
  65. package/category/constants/Portals.js +56 -3
  66. package/category/constants/index.js +17 -2
  67. package/category/helpers/index.js +27 -3
  68. package/category/index.js +19 -5
  69. package/category/mock.js +176 -1
  70. package/category/reducers/categoriesById.js +65 -3
  71. package/category/reducers/childrenByCategoryId.js +55 -4
  72. package/category/reducers/helpers/handleCategoryCollection.js +24 -3
  73. package/category/reducers/helpers/handleReceivedCategories.js +3 -1
  74. package/category/reducers/index.js +12 -2
  75. package/category/reducers/rootCategories.js +31 -2
  76. package/category/selectors/index.js +115 -16
  77. package/category/streams/index.js +82 -4
  78. package/category/subscriptions/index.js +96 -3
  79. package/checkout/action-creators/successCheckout.js +9 -2
  80. package/checkout/actions/fetchCheckoutUrl.js +28 -3
  81. package/checkout/constants/Pipelines.js +1 -1
  82. package/checkout/constants/index.js +3 -2
  83. package/checkout/index.js +11 -4
  84. package/checkout/selectors/index.js +7 -2
  85. package/checkout/streams/index.js +8 -2
  86. package/checkout/subscriptions/index.js +35 -6
  87. package/favorites/action-creators/index.js +206 -24
  88. package/favorites/actions/addFavorites.js +41 -3
  89. package/favorites/actions/addFavoritesList.js +27 -2
  90. package/favorites/actions/fetchFavoriteIds.js +49 -5
  91. package/favorites/actions/fetchFavorites.js +60 -5
  92. package/favorites/actions/fetchFavoritesList.js +47 -3
  93. package/favorites/actions/fetchFavoritesListsWithItems.js +32 -3
  94. package/favorites/actions/getFavorites.js +6 -2
  95. package/favorites/actions/removeFavorites.js +32 -3
  96. package/favorites/actions/removeFavoritesList.js +24 -2
  97. package/favorites/actions/toggleFavorites.js +68 -10
  98. package/favorites/actions/updateFavorites.js +39 -3
  99. package/favorites/actions/updateFavoritesList.js +26 -2
  100. package/favorites/constants/Pipelines.js +9 -1
  101. package/favorites/constants/Portals.js +32 -4
  102. package/favorites/constants/index.js +37 -5
  103. package/favorites/index.js +14 -4
  104. package/favorites/mock.js +89 -4
  105. package/favorites/reducers/index.js +7 -1
  106. package/favorites/reducers/lists.js +74 -2
  107. package/favorites/reducers/products.js +231 -24
  108. package/favorites/selectors/index.js +188 -24
  109. package/favorites/streams/index.js +135 -23
  110. package/favorites/streams/spec.js +517 -8
  111. package/favorites/subscriptions/index.js +260 -25
  112. package/favorites/subscriptions/spec.js +701 -28
  113. package/filter/action-creators/errorFilters.js +9 -2
  114. package/filter/action-creators/index.js +4 -1
  115. package/filter/action-creators/receiveFilters.js +10 -2
  116. package/filter/action-creators/requestFilters.js +9 -2
  117. package/filter/action-creators/updateFilters.js +8 -2
  118. package/filter/actions/fetchFilters.js +46 -3
  119. package/filter/actions/getFilters.js +6 -2
  120. package/filter/actions/helpers/buildFilterParams.js +34 -2
  121. package/filter/actions/helpers/buildRequestFilters.js +35 -2
  122. package/filter/actions/helpers/processFilters.js +10 -2
  123. package/filter/actions/helpers/processParams.js +26 -2
  124. package/filter/constants/Pipelines.js +1 -1
  125. package/filter/constants/Portals.js +39 -3
  126. package/filter/constants/index.js +8 -1
  127. package/filter/index.js +12 -4
  128. package/filter/reducers/helpers/enrichFilters.js +11 -3
  129. package/filter/reducers/index.js +5 -1
  130. package/filter/reducers/resultsByHash.js +43 -3
  131. package/filter/selectors/index.js +47 -6
  132. package/filter/streams/index.js +30 -1
  133. package/filter/subscriptions/index.js +34 -2
  134. package/market/constants/Portals.js +22 -4
  135. package/market/constants/index.js +2 -1
  136. package/market/helpers/showReturnPolicy.js +3 -1
  137. package/market/helpers/showTaxDisclaimer.js +3 -1
  138. package/market/index.js +6 -2
  139. package/orders/constants.js +2 -1
  140. package/package.json +3 -3
  141. package/product/action-creators/deleteProductsByIds.js +10 -2
  142. package/product/action-creators/errorProduct.js +10 -2
  143. package/product/action-creators/errorProductDescription.js +10 -2
  144. package/product/action-creators/errorProductImages.js +10 -2
  145. package/product/action-creators/errorProductMedia.js +10 -2
  146. package/product/action-creators/errorProductOptions.js +10 -2
  147. package/product/action-creators/errorProductProperties.js +10 -2
  148. package/product/action-creators/errorProductRelations.js +9 -2
  149. package/product/action-creators/errorProductShipping.js +10 -2
  150. package/product/action-creators/errorProductVariants.js +10 -2
  151. package/product/action-creators/errorProducts.js +9 -2
  152. package/product/action-creators/expireProductById.js +10 -2
  153. package/product/action-creators/expireProductData.js +11 -2
  154. package/product/action-creators/expireProductsByHash.js +9 -2
  155. package/product/action-creators/productNotAvailable.js +10 -2
  156. package/product/action-creators/provideProduct.js +9 -2
  157. package/product/action-creators/receiveProduct.js +10 -2
  158. package/product/action-creators/receiveProductCached.js +9 -2
  159. package/product/action-creators/receiveProductDescription.js +10 -2
  160. package/product/action-creators/receiveProductImages.js +10 -2
  161. package/product/action-creators/receiveProductMedia.js +10 -2
  162. package/product/action-creators/receiveProductOptions.js +10 -2
  163. package/product/action-creators/receiveProductProperties.js +10 -2
  164. package/product/action-creators/receiveProductRelations.js +12 -2
  165. package/product/action-creators/receiveProductShipping.js +10 -2
  166. package/product/action-creators/receiveProductVariants.js +10 -2
  167. package/product/action-creators/receiveProducts.js +16 -2
  168. package/product/action-creators/receiveProductsCached.js +9 -2
  169. package/product/action-creators/refreshExpiredPDPData.js +8 -2
  170. package/product/action-creators/requestProduct.js +10 -2
  171. package/product/action-creators/requestProductDescription.js +9 -2
  172. package/product/action-creators/requestProductImages.js +9 -2
  173. package/product/action-creators/requestProductMedia.js +9 -2
  174. package/product/action-creators/requestProductOptions.js +9 -2
  175. package/product/action-creators/requestProductProperties.js +9 -2
  176. package/product/action-creators/requestProductRelations.js +10 -2
  177. package/product/action-creators/requestProductShipping.js +9 -2
  178. package/product/action-creators/requestProductVariants.js +9 -2
  179. package/product/action-creators/requestProducts.js +9 -2
  180. package/product/action-creators/setProductId.js +9 -2
  181. package/product/action-creators/setProductQuantity.js +9 -2
  182. package/product/action-creators/setProductVariantId.js +9 -2
  183. package/product/actions/changeSortOrder.js +21 -2
  184. package/product/actions/fetchHighlightProducts.js +18 -2
  185. package/product/actions/fetchLiveshoppingProducts.js +14 -2
  186. package/product/actions/fetchProduct.js +52 -3
  187. package/product/actions/fetchProductDescription.js +30 -2
  188. package/product/actions/fetchProductImages.js +31 -2
  189. package/product/actions/fetchProductMedia.js +35 -2
  190. package/product/actions/fetchProductOptions.js +31 -2
  191. package/product/actions/fetchProductProperties.js +30 -2
  192. package/product/actions/fetchProductRelations.js +63 -2
  193. package/product/actions/fetchProductShipping.js +31 -2
  194. package/product/actions/fetchProductVariants.js +31 -2
  195. package/product/actions/fetchProducts.js +189 -17
  196. package/product/actions/fetchProductsById.js +68 -8
  197. package/product/actions/fetchProductsByQuery.js +102 -18
  198. package/product/actions/getHighlightProducts.js +6 -2
  199. package/product/actions/getLiveshoppingProducts.js +6 -2
  200. package/product/actions/getProduct.js +6 -2
  201. package/product/actions/getProductDescription.js +6 -2
  202. package/product/actions/getProductImages.js +6 -2
  203. package/product/actions/getProductOptions.js +6 -2
  204. package/product/actions/getProductProperties.js +6 -2
  205. package/product/actions/getProductRelations.js +6 -2
  206. package/product/actions/getProductShipping.js +6 -2
  207. package/product/actions/getProductVariants.js +6 -2
  208. package/product/actions/getProducts.js +6 -2
  209. package/product/actions/getProductsById.js +6 -2
  210. package/product/actions/getProductsByQuery.js +6 -2
  211. package/product/actions/processProductFlags.js +35 -3
  212. package/product/actions/updateMetadata.js +17 -2
  213. package/product/collections/ProductImageFormats.js +48 -8
  214. package/product/collections/index.js +1 -1
  215. package/product/constants/Pipelines.js +12 -1
  216. package/product/constants/Portals.js +200 -33
  217. package/product/constants/index.js +90 -18
  218. package/product/helpers/index.js +61 -8
  219. package/product/index.js +36 -6
  220. package/product/mock.js +1002 -2
  221. package/product/reducers/descriptionsByProductId.js +54 -5
  222. package/product/reducers/helpers/formatOptions.js +17 -2
  223. package/product/reducers/helpers/handleProductCollection.js +19 -2
  224. package/product/reducers/imagesByProductId.js +51 -4
  225. package/product/reducers/index.js +23 -1
  226. package/product/reducers/mediaByProductId.js +55 -3
  227. package/product/reducers/optionsByProductId.js +41 -2
  228. package/product/reducers/productRelationsByHash.js +43 -2
  229. package/product/reducers/productsById.js +122 -7
  230. package/product/reducers/propertiesByProductId.js +48 -2
  231. package/product/reducers/resultsByHash.js +125 -9
  232. package/product/reducers/shippingByProductId.js +37 -2
  233. package/product/reducers/variantsByProductId.js +56 -2
  234. package/product/selectors/options.js +90 -13
  235. package/product/selectors/page.js +62 -13
  236. package/product/selectors/price.js +81 -18
  237. package/product/selectors/product.js +549 -59
  238. package/product/selectors/product.mock.js +327 -12
  239. package/product/selectors/relations.js +35 -5
  240. package/product/selectors/variants.js +91 -15
  241. package/product/streams/index.js +167 -13
  242. package/product/subscriptions/index.js +210 -4
  243. package/reviews/action-creators/errorProductReviews.js +9 -2
  244. package/reviews/action-creators/errorReviews.js +9 -2
  245. package/reviews/action-creators/errorSubmitReview.js +9 -2
  246. package/reviews/action-creators/errorUserReview.js +9 -2
  247. package/reviews/action-creators/flushUserReview.js +8 -2
  248. package/reviews/action-creators/receiveProductReviews.js +11 -2
  249. package/reviews/action-creators/receiveReviews.js +12 -2
  250. package/reviews/action-creators/receiveSubmitReview.js +9 -2
  251. package/reviews/action-creators/receiveUserReview.js +10 -2
  252. package/reviews/action-creators/requestProductReviews.js +10 -2
  253. package/reviews/action-creators/requestReviews.js +9 -2
  254. package/reviews/action-creators/requestSubmitReview.js +9 -2
  255. package/reviews/action-creators/requestUserReview.js +9 -2
  256. package/reviews/action-creators/resetSubmittedReview.js +9 -2
  257. package/reviews/action-creators/spec.js +40 -1
  258. package/reviews/actions/fetchProductReviews.js +37 -2
  259. package/reviews/actions/fetchReviews.js +38 -2
  260. package/reviews/actions/fetchUserReview.js +31 -2
  261. package/reviews/actions/flushUserReview.js +5 -1
  262. package/reviews/actions/getProductReviews.js +6 -2
  263. package/reviews/actions/getUserReview.js +6 -2
  264. package/reviews/actions/spec.js +241 -4
  265. package/reviews/actions/submitReview.js +63 -3
  266. package/reviews/constants/Pipelines.js +4 -1
  267. package/reviews/constants/Portals.js +4 -1
  268. package/reviews/constants/index.js +26 -7
  269. package/reviews/index.js +15 -4
  270. package/reviews/mock.js +172 -11
  271. package/reviews/reducers/index.js +11 -1
  272. package/reviews/reducers/mock.js +14 -2
  273. package/reviews/reducers/reviewsByHash.js +52 -6
  274. package/reviews/reducers/reviewsById.js +27 -2
  275. package/reviews/reducers/reviewsByProductId.js +47 -2
  276. package/reviews/reducers/spec.js +211 -2
  277. package/reviews/reducers/userReviewsByProductId.js +68 -2
  278. package/reviews/selectors/index.js +123 -19
  279. package/reviews/selectors/mock.js +100 -1
  280. package/reviews/selectors/spec.js +100 -1
  281. package/reviews/streams/index.js +37 -5
  282. package/reviews/streams/spec.js +25 -1
  283. package/reviews/subscriptions/index.js +27 -2
  284. package/scanner/action-creators/errorHandleScanner.js +11 -2
  285. package/scanner/action-creators/scannerFinished.js +11 -2
  286. package/scanner/action-creators/startScanner.js +8 -2
  287. package/scanner/action-creators/successHandleScanner.js +11 -2
  288. package/scanner/actions/handleBarCode.js +22 -2
  289. package/scanner/actions/handleNoResults.js +23 -2
  290. package/scanner/actions/handleQrCode.js +116 -6
  291. package/scanner/actions/handleSearch.js +33 -2
  292. package/scanner/constants/Portals.js +22 -1
  293. package/scanner/constants/index.js +17 -1
  294. package/scanner/helpers/index.js +115 -5
  295. package/scanner/index.js +19 -5
  296. package/scanner/streams/index.js +36 -1
  297. package/scanner/subscriptions/index.js +78 -8
  298. package/search/action-creators/errorSearchResults.js +10 -2
  299. package/search/action-creators/receiveSearchResults.js +11 -2
  300. package/search/action-creators/receiveSearchSuggestions.js +10 -2
  301. package/search/action-creators/requestSearchResults.js +10 -2
  302. package/search/action-creators/requestSearchSuggestions.js +9 -2
  303. package/search/actions/fetchSearchResults.js +66 -8
  304. package/search/actions/fetchSearchSuggestions.js +36 -2
  305. package/search/constants/Pipelines.js +1 -1
  306. package/search/constants/Portals.js +9 -2
  307. package/search/constants/index.js +10 -2
  308. package/search/helpers/index.js +5 -2
  309. package/search/helpers/removeHighlightingPlaceholders.js +4 -1
  310. package/search/helpers/spec.js +19 -1
  311. package/search/index.js +17 -5
  312. package/search/reducers/index.js +38 -2
  313. package/search/selectors/index.js +23 -4
  314. package/search/streams/index.js +51 -3
  315. package/search/subscriptions/index.js +132 -5
@@ -1,5 +1,12 @@
1
- import{REQUEST_PRODUCT_MEDIA}from"../constants";/**
1
+ import { REQUEST_PRODUCT_MEDIA } from "../constants";
2
+
3
+ /**
2
4
  * Dispatches the REQUEST_PRODUCT_MEDIA action.
3
5
  * @param {string} productId The ID of the product for which the options are requested.
4
6
  * @return {Object}
5
- */var requestProductMedia=function requestProductMedia(productId){return{type:REQUEST_PRODUCT_MEDIA,productId:productId};};export default requestProductMedia;
7
+ */
8
+ const requestProductMedia = productId => ({
9
+ type: REQUEST_PRODUCT_MEDIA,
10
+ productId
11
+ });
12
+ export default requestProductMedia;
@@ -1,5 +1,12 @@
1
- import{REQUEST_PRODUCT_OPTIONS}from"../constants";/**
1
+ import { REQUEST_PRODUCT_OPTIONS } from "../constants";
2
+
3
+ /**
2
4
  * Dispatches the REQUEST_PRODUCT_OPTIONS action.
3
5
  * @param {string} productId The ID of the product for which the options are requested.
4
6
  * @return {Object} The REQUEST_PRODUCT_OPTIONS action.
5
- */var requestProductOptions=function requestProductOptions(productId){return{type:REQUEST_PRODUCT_OPTIONS,productId:productId};};export default requestProductOptions;
7
+ */
8
+ const requestProductOptions = productId => ({
9
+ type: REQUEST_PRODUCT_OPTIONS,
10
+ productId
11
+ });
12
+ export default requestProductOptions;
@@ -1,5 +1,12 @@
1
- import{REQUEST_PRODUCT_PROPERTIES}from"../constants";/**
1
+ import { REQUEST_PRODUCT_PROPERTIES } from "../constants";
2
+
3
+ /**
2
4
  * Creates the dispatched REQUEST_PRODUCT_PROPERTIES action object.
3
5
  * @param {string} productId The ID of the product that requests properties.
4
6
  * @return {Object} The REQUEST_PRODUCT_PROPERTIES action.
5
- */var requestProductProperties=function requestProductProperties(productId){return{type:REQUEST_PRODUCT_PROPERTIES,productId:productId};};export default requestProductProperties;
7
+ */
8
+ const requestProductProperties = productId => ({
9
+ type: REQUEST_PRODUCT_PROPERTIES,
10
+ productId
11
+ });
12
+ export default requestProductProperties;
@@ -1,6 +1,14 @@
1
- import{REQUEST_PRODUCT_RELATIONS}from"../constants";/**
1
+ import { REQUEST_PRODUCT_RELATIONS } from "../constants";
2
+
3
+ /**
2
4
  * Request product relations action.
3
5
  * @param {Object} params Params.
4
6
  * @param {string} params.hash Query hash.
5
7
  * @returns {Object}
6
- */export default(function(_ref){var hash=_ref.hash;return{type:REQUEST_PRODUCT_RELATIONS,hash:hash};});
8
+ */
9
+ export default ({
10
+ hash
11
+ }) => ({
12
+ type: REQUEST_PRODUCT_RELATIONS,
13
+ hash
14
+ });
@@ -1,5 +1,12 @@
1
- import{REQUEST_PRODUCT_SHIPPING}from"../constants";/**
1
+ import { REQUEST_PRODUCT_SHIPPING } from "../constants";
2
+
3
+ /**
2
4
  * Dispatches the REQUEST_PRODUCT_SHIPPING action.
3
5
  * @param {string} productId The ID of the product for which the shipping is requested.
4
6
  * @return {Object} The REQUEST_PRODUCT_SHIPPING action.
5
- */var requestProductShipping=function requestProductShipping(productId){return{type:REQUEST_PRODUCT_SHIPPING,productId:productId};};export default requestProductShipping;
7
+ */
8
+ const requestProductShipping = productId => ({
9
+ type: REQUEST_PRODUCT_SHIPPING,
10
+ productId
11
+ });
12
+ export default requestProductShipping;
@@ -1,5 +1,12 @@
1
- import{REQUEST_PRODUCT_VARIANTS}from"../constants";/**
1
+ import { REQUEST_PRODUCT_VARIANTS } from "../constants";
2
+
3
+ /**
2
4
  * Dispatches the REQUEST_PRODUCT_VARIANTS action.
3
5
  * @param {string} productId The ID of the product for which the variants are requested.
4
6
  * @return {Object} The REQUEST_PRODUCT_VARIANTS action.
5
- */var requestProductVariants=function requestProductVariants(productId){return{type:REQUEST_PRODUCT_VARIANTS,productId:productId};};export default requestProductVariants;
7
+ */
8
+ const requestProductVariants = productId => ({
9
+ type: REQUEST_PRODUCT_VARIANTS,
10
+ productId
11
+ });
12
+ export default requestProductVariants;
@@ -1,8 +1,15 @@
1
- function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import{REQUEST_PRODUCTS}from"../constants";/**
1
+ import { REQUEST_PRODUCTS } from "../constants";
2
+
3
+ /**
2
4
  * Creates the dispatched REQUEST_PRODUCTS action object.
3
5
  * @param {Object} payload The action payload.
4
6
  * @param {string} payload.hash The store hash.
5
7
  * @param {Object} payload.params The criteria of the products received.
6
8
  * @param {string} params The criteria of the products to request.
7
9
  * @return {Object} The REQUEST_PRODUCTS action.
8
- */var requestProducts=function requestProducts(payload){return _extends({type:REQUEST_PRODUCTS},payload);};export default requestProducts;
10
+ */
11
+ const requestProducts = payload => ({
12
+ type: REQUEST_PRODUCTS,
13
+ ...payload
14
+ });
15
+ export default requestProducts;
@@ -1,5 +1,12 @@
1
- import{SET_PRODUCT_ID}from"../constants";/**
1
+ import { SET_PRODUCT_ID } from "../constants";
2
+
3
+ /**
2
4
  * Creates the dispatched SET_PRODUCT_ID action object.
3
5
  * @param {string|null} productId The product id.
4
6
  * @returns {Object} The dispatched action object.
5
- */var setProductId=function setProductId(productId){return{type:SET_PRODUCT_ID,productId:productId};};export default setProductId;
7
+ */
8
+ const setProductId = productId => ({
9
+ type: SET_PRODUCT_ID,
10
+ productId
11
+ });
12
+ export default setProductId;
@@ -1,5 +1,12 @@
1
- import{SET_PRODUCT_QUANTITY}from"../constants";/**
1
+ import { SET_PRODUCT_QUANTITY } from "../constants";
2
+
3
+ /**
2
4
  * Creates the dispatched SET_PRODUCT_QUANTITY action object.
3
5
  * @param {number} quantity The product variant id.
4
6
  * @returns {Object} The dispatched action object.
5
- */var setProductQuantity=function setProductQuantity(quantity){return{type:SET_PRODUCT_QUANTITY,quantity:quantity};};export default setProductQuantity;
7
+ */
8
+ const setProductQuantity = quantity => ({
9
+ type: SET_PRODUCT_QUANTITY,
10
+ quantity
11
+ });
12
+ export default setProductQuantity;
@@ -1,5 +1,12 @@
1
- import{SET_PRODUCT_VARIANT_ID}from"../constants";/**
1
+ import { SET_PRODUCT_VARIANT_ID } from "../constants";
2
+
3
+ /**
2
4
  * Creates the dispatched SET_PRODUCT_VARIANTS_ID action object.
3
5
  * @param {string|null} productVariantId The product variant id.
4
6
  * @returns {Object} The dispatched action object.
5
- */var setProductVariantId=function setProductVariantId(productVariantId){return{type:SET_PRODUCT_VARIANT_ID,productVariantId:productVariantId};};export default setProductVariantId;
7
+ */
8
+ const setProductVariantId = productVariantId => ({
9
+ type: SET_PRODUCT_VARIANT_ID,
10
+ productVariantId
11
+ });
12
+ export default setProductVariantId;
@@ -1,5 +1,24 @@
1
- function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import{historyReplace}from'@shopgate/pwa-common/actions/router';import{getCurrentRoute}from'@shopgate/pwa-common/selectors/router';import{parseObjectToQueryString}from'@shopgate/pwa-common/helpers/router';/**
1
+ import { historyReplace } from '@shopgate/pwa-common/actions/router';
2
+ import { getCurrentRoute } from '@shopgate/pwa-common/selectors/router';
3
+ import { parseObjectToQueryString } from '@shopgate/pwa-common/helpers/router';
4
+
5
+ /**
2
6
  * Updates the sort parameter in the history.
3
7
  * @param {string} sort The sort order
4
8
  * @returns {Function} A redux thunk.
5
- */var changeSortOrder=function changeSortOrder(sort){return function(dispatch,getState){var _getCurrentRoute=getCurrentRoute(getState()),query=_getCurrentRoute.query,state=_getCurrentRoute.state;var newQuery=parseObjectToQueryString(_extends({},query,{sort:sort}));dispatch(historyReplace({pathname:"".concat(window.location.pathname).concat(newQuery),state:state}));};};export default changeSortOrder;
9
+ */
10
+ const changeSortOrder = sort => (dispatch, getState) => {
11
+ const {
12
+ query,
13
+ state
14
+ } = getCurrentRoute(getState());
15
+ const newQuery = parseObjectToQueryString({
16
+ ...query,
17
+ sort
18
+ });
19
+ dispatch(historyReplace({
20
+ pathname: `${window.location.pathname}${newQuery}`,
21
+ state
22
+ }));
23
+ };
24
+ export default changeSortOrder;
@@ -1,7 +1,23 @@
1
- import*as pipelines from"../constants/Pipelines";import fetchProducts from"./fetchProducts";/**
1
+ import * as pipelines from "../constants/Pipelines";
2
+ import fetchProducts from "./fetchProducts";
3
+
4
+ /**
2
5
  * Maybe requests highlight products from server.
3
6
  * @param {Object} options The options for the fetchProducts request.
4
7
  * @param {Object} options.params The params for the getHighlightProducts pipeline.
5
8
  * @param {string} [options.id=null] A unique id for the component that is using this action.
6
9
  * @return {Function} The dispatched action.
7
- */var fetchHighlightProducts=function fetchHighlightProducts(_ref){var params=_ref.params,_ref$id=_ref.id,id=_ref$id===void 0?null:_ref$id;return function(dispatch){dispatch(fetchProducts({pipeline:pipelines.SHOPGATE_CATALOG_GET_HIGHLIGHT_PRODUCTS,params:params,id:id,includeSort:true,includeFilters:false}));};};export default fetchHighlightProducts;
10
+ */
11
+ const fetchHighlightProducts = ({
12
+ params,
13
+ id = null
14
+ }) => dispatch => {
15
+ dispatch(fetchProducts({
16
+ pipeline: pipelines.SHOPGATE_CATALOG_GET_HIGHLIGHT_PRODUCTS,
17
+ params,
18
+ id,
19
+ includeSort: true,
20
+ includeFilters: false
21
+ }));
22
+ };
23
+ export default fetchHighlightProducts;
@@ -1,4 +1,16 @@
1
- import*as pipelines from"../constants/Pipelines";import fetchProducts from"./fetchProducts";/**
1
+ import * as pipelines from "../constants/Pipelines";
2
+ import fetchProducts from "./fetchProducts";
3
+
4
+ /**
2
5
  * Retrieves the information for the liveshopping products widget.
3
6
  * @return {Function} A redux thunk.
4
- */var fetchLiveshoppingProducts=function fetchLiveshoppingProducts(){return function(dispatch){dispatch(fetchProducts({pipeline:pipelines.SHOPGATE_CATALOG_GET_LIVESHOPPING_PRODUCTS,cached:false,includeFilters:false,includeSort:false}));};};export default fetchLiveshoppingProducts;
7
+ */
8
+ const fetchLiveshoppingProducts = () => dispatch => {
9
+ dispatch(fetchProducts({
10
+ pipeline: pipelines.SHOPGATE_CATALOG_GET_LIVESHOPPING_PRODUCTS,
11
+ cached: false,
12
+ includeFilters: false,
13
+ includeSort: false
14
+ }));
15
+ };
16
+ export default fetchLiveshoppingProducts;
@@ -1,9 +1,58 @@
1
- function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import configuration from'@shopgate/pwa-common/collections/Configuration';import{DEFAULT_PRODUCTS_FETCH_PARAMS}from'@shopgate/pwa-common/constants/Configuration';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import{LoadingProvider}from'@shopgate/pwa-common/providers';import{getCurrentPathname}from'@shopgate/pwa-common/selectors/router';import{SHOPGATE_CATALOG_GET_PRODUCT}from"../constants/Pipelines";import requestProduct from"../action-creators/requestProduct";import receiveProduct from"../action-creators/receiveProduct";import errorProduct from"../action-creators/errorProduct";import receiveProductCached from"../action-creators/receiveProductCached";import{getProductById}from"../selectors/product";/**
1
+ import PipelineRequest from '@shopgate/pwa-core/classes/PipelineRequest';
2
+ import configuration from '@shopgate/pwa-common/collections/Configuration';
3
+ import { DEFAULT_PRODUCTS_FETCH_PARAMS } from '@shopgate/pwa-common/constants/Configuration';
4
+ import { shouldFetchData, mutable } from '@shopgate/pwa-common/helpers/redux';
5
+ import { LoadingProvider } from '@shopgate/pwa-common/providers';
6
+ import { getCurrentPathname } from '@shopgate/pwa-common/selectors/router';
7
+ import { SHOPGATE_CATALOG_GET_PRODUCT } from "../constants/Pipelines";
8
+ import requestProduct from "../action-creators/requestProduct";
9
+ import receiveProduct from "../action-creators/receiveProduct";
10
+ import errorProduct from "../action-creators/errorProduct";
11
+ import receiveProductCached from "../action-creators/receiveProductCached";
12
+ import { getProductById } from "../selectors/product";
13
+
14
+ /**
2
15
  * Retrieves a product from the Redux store.
3
16
  * @param {string} productId The product ID.
4
17
  * @param {boolean} forceFetch Skips shouldFetchData check. Always fetches.
5
18
  * @return {Function} A redux thunk.
6
- */function fetchProduct(productId){var forceFetch=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return function(dispatch,getState){var state=getState();var product=getProductById(state,{productId:productId});if(!forceFetch&&!shouldFetchData(product)){if(product.productData){/*
19
+ */
20
+ function fetchProduct(productId, forceFetch = false) {
21
+ return (dispatch, getState) => {
22
+ const state = getState();
23
+ const product = getProductById(state, {
24
+ productId
25
+ });
26
+ if (!forceFetch && !shouldFetchData(product)) {
27
+ if (product.productData) {
28
+ /*
7
29
  This timeout is needed here to make sure receivedVisibleProduct$ comes after
8
30
  productWillEnter$. Otherwise productIsReady$ is not working correctly.
9
- */setTimeout(function(){dispatch(receiveProductCached(product.productData));},0);}return undefined;}var path=getCurrentPathname(state);LoadingProvider.setLoading(path);var requestParams=_extends({},configuration.get(DEFAULT_PRODUCTS_FETCH_PARAMS),{productId:productId});dispatch(requestProduct(productId,forceFetch));var request=new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT).setInput(requestParams).dispatch();request.then(function(result){LoadingProvider.unsetLoading(path);dispatch(receiveProduct(productId,result));})["catch"](function(error){LoadingProvider.unsetLoading(path);dispatch(errorProduct(productId,error.code));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchProduct);
31
+ */
32
+ setTimeout(() => {
33
+ dispatch(receiveProductCached(product.productData));
34
+ }, 0);
35
+ }
36
+ return undefined;
37
+ }
38
+ const path = getCurrentPathname(state);
39
+ LoadingProvider.setLoading(path);
40
+ const requestParams = {
41
+ ...configuration.get(DEFAULT_PRODUCTS_FETCH_PARAMS),
42
+ productId
43
+ };
44
+ dispatch(requestProduct(productId, forceFetch));
45
+ const request = new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT).setInput(requestParams).dispatch();
46
+ request.then(result => {
47
+ LoadingProvider.unsetLoading(path);
48
+ dispatch(receiveProduct(productId, result));
49
+ }).catch(error => {
50
+ LoadingProvider.unsetLoading(path);
51
+ dispatch(errorProduct(productId, error.code));
52
+ });
53
+ return request;
54
+ };
55
+ }
56
+
57
+ /** @mixes {MutableFunction} */
58
+ export default mutable(fetchProduct);
@@ -1,5 +1,33 @@
1
- import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import requestProductDescription from"../action-creators/requestProductDescription";import{SHOPGATE_CATALOG_GET_PRODUCT_DESCRIPTION}from"../constants/Pipelines";import receiveProductDescription from"../action-creators/receiveProductDescription";import errorProductDescription from"../action-creators/errorProductDescription";/**
1
+ import PipelineRequest from '@shopgate/pwa-core/classes/PipelineRequest';
2
+ import { shouldFetchData, mutable } from '@shopgate/pwa-common/helpers/redux';
3
+ import requestProductDescription from "../action-creators/requestProductDescription";
4
+ import { SHOPGATE_CATALOG_GET_PRODUCT_DESCRIPTION } from "../constants/Pipelines";
5
+ import receiveProductDescription from "../action-creators/receiveProductDescription";
6
+ import errorProductDescription from "../action-creators/errorProductDescription";
7
+
8
+ /**
2
9
  * Maybe requests a product description from server.
3
10
  * @param {string} productId The product ID.
4
11
  * @return {Function} The dispatched action.
5
- */function fetchProductDescription(productId){return function(dispatch,getState){var description=getState().product.descriptionsByProductId[productId];if(!shouldFetchData(description)){return Promise.resolve(null);}dispatch(requestProductDescription(productId));var request=new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_DESCRIPTION).setInput({productId:productId}).dispatch();request.then(function(result){dispatch(receiveProductDescription(productId,result.description));})["catch"](function(error){dispatch(errorProductDescription(productId,error.code));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchProductDescription);
12
+ */
13
+ function fetchProductDescription(productId) {
14
+ return (dispatch, getState) => {
15
+ const description = getState().product.descriptionsByProductId[productId];
16
+ if (!shouldFetchData(description)) {
17
+ return Promise.resolve(null);
18
+ }
19
+ dispatch(requestProductDescription(productId));
20
+ const request = new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_DESCRIPTION).setInput({
21
+ productId
22
+ }).dispatch();
23
+ request.then(result => {
24
+ dispatch(receiveProductDescription(productId, result.description));
25
+ }).catch(error => {
26
+ dispatch(errorProductDescription(productId, error.code));
27
+ });
28
+ return request;
29
+ };
30
+ }
31
+
32
+ /** @mixes {MutableFunction} */
33
+ export default mutable(fetchProductDescription);
@@ -1,5 +1,34 @@
1
- import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import requestProductImages from"../action-creators/requestProductImages";import{SHOPGATE_CATALOG_GET_PRODUCT_IMAGES}from"../constants/Pipelines";import receiveProductImages from"../action-creators/receiveProductImages";import errorProductImages from"../action-creators/errorProductImages";import{getProductImagesState}from"../selectors/product";/**
1
+ import PipelineRequest from '@shopgate/pwa-core/classes/PipelineRequest';
2
+ import { shouldFetchData, mutable } from '@shopgate/pwa-common/helpers/redux';
3
+ import requestProductImages from "../action-creators/requestProductImages";
4
+ import { SHOPGATE_CATALOG_GET_PRODUCT_IMAGES } from "../constants/Pipelines";
5
+ import receiveProductImages from "../action-creators/receiveProductImages";
6
+ import errorProductImages from "../action-creators/errorProductImages";
7
+ import { getProductImagesState } from "../selectors/product";
8
+
9
+ /**
2
10
  * Maybe requests images for a product from server.
3
11
  * @param {string} productId The product ID.
4
12
  * @return {Function} The dispatched action.
5
- */function fetchProductImages(productId){return function(dispatch,getState){var productImages=getProductImagesState(getState())[productId];if(!shouldFetchData(productImages)){return Promise.resolve(null);}dispatch(requestProductImages(productId));var request=new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_IMAGES).setInput({productId:productId}).setVersion(3).dispatch();request.then(function(result){dispatch(receiveProductImages(productId,result.images));})["catch"](function(error){dispatch(errorProductImages(productId,error.code));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchProductImages);
13
+ */
14
+ function fetchProductImages(productId) {
15
+ return (dispatch, getState) => {
16
+ const productImages = getProductImagesState(getState())[productId];
17
+ if (!shouldFetchData(productImages)) {
18
+ return Promise.resolve(null);
19
+ }
20
+ dispatch(requestProductImages(productId));
21
+ const request = new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_IMAGES).setInput({
22
+ productId
23
+ }).setVersion(3).dispatch();
24
+ request.then(result => {
25
+ dispatch(receiveProductImages(productId, result.images));
26
+ }).catch(error => {
27
+ dispatch(errorProductImages(productId, error.code));
28
+ });
29
+ return request;
30
+ };
31
+ }
32
+
33
+ /** @mixes {MutableFunction} */
34
+ export default mutable(fetchProductImages);
@@ -1,5 +1,38 @@
1
- import appConfig from'@shopgate/pwa-common/helpers/config';import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import{SHOPGATE_CATALOG_GET_PRODUCT_MEDIA}from"../constants/Pipelines";import requestProductMedia from"../action-creators/requestProductMedia";import receiveProductMedia from"../action-creators/receiveProductMedia";import errorProductMedia from"../action-creators/errorProductMedia";/**
1
+ import appConfig from '@shopgate/pwa-common/helpers/config';
2
+ import PipelineRequest from '@shopgate/pwa-core/classes/PipelineRequest';
3
+ import { shouldFetchData, mutable } from '@shopgate/pwa-common/helpers/redux';
4
+ import { SHOPGATE_CATALOG_GET_PRODUCT_MEDIA } from "../constants/Pipelines";
5
+ import requestProductMedia from "../action-creators/requestProductMedia";
6
+ import receiveProductMedia from "../action-creators/receiveProductMedia";
7
+ import errorProductMedia from "../action-creators/errorProductMedia";
8
+
9
+ /**
2
10
  * Retrieves product options from store.
3
11
  * @param {string} productId The product ID for which the product options are requested.
4
12
  * @return {Function} A Redux Thunk
5
- */function fetchProductMedia(productId){return function(dispatch,getState){if(!appConfig.beta){return Promise.resolve(null);}var state=getState();var cachedData=state.product.mediaByProductId[productId];if(!shouldFetchData(cachedData)){return Promise.resolve(null);}dispatch(requestProductMedia(productId));var request=new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_MEDIA).setInput({productId:productId}).dispatch();request.then(function(result){dispatch(receiveProductMedia(productId,result.media));})["catch"](function(error){dispatch(errorProductMedia(productId,error.code));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchProductMedia);
13
+ */
14
+ function fetchProductMedia(productId) {
15
+ return (dispatch, getState) => {
16
+ if (!appConfig.beta) {
17
+ return Promise.resolve(null);
18
+ }
19
+ const state = getState();
20
+ const cachedData = state.product.mediaByProductId[productId];
21
+ if (!shouldFetchData(cachedData)) {
22
+ return Promise.resolve(null);
23
+ }
24
+ dispatch(requestProductMedia(productId));
25
+ const request = new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_MEDIA).setInput({
26
+ productId
27
+ }).dispatch();
28
+ request.then(result => {
29
+ dispatch(receiveProductMedia(productId, result.media));
30
+ }).catch(error => {
31
+ dispatch(errorProductMedia(productId, error.code));
32
+ });
33
+ return request;
34
+ };
35
+ }
36
+
37
+ /** @mixes {MutableFunction} */
38
+ export default mutable(fetchProductMedia);
@@ -1,5 +1,34 @@
1
- import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import requestProductOptions from"../action-creators/requestProductOptions";import{SHOPGATE_CATALOG_GET_PRODUCT_OPTIONS}from"../constants/Pipelines";import receiveProductOptions from"../action-creators/receiveProductOptions";import errorProductOptions from"../action-creators/errorProductOptions";/**
1
+ import PipelineRequest from '@shopgate/pwa-core/classes/PipelineRequest';
2
+ import { shouldFetchData, mutable } from '@shopgate/pwa-common/helpers/redux';
3
+ import requestProductOptions from "../action-creators/requestProductOptions";
4
+ import { SHOPGATE_CATALOG_GET_PRODUCT_OPTIONS } from "../constants/Pipelines";
5
+ import receiveProductOptions from "../action-creators/receiveProductOptions";
6
+ import errorProductOptions from "../action-creators/errorProductOptions";
7
+
8
+ /**
2
9
  * Retrieves product options from store.
3
10
  * @param {string} productId The product ID for which the product options are requested.
4
11
  * @return {Function} A Redux Thunk
5
- */function fetchProductOptions(productId){return function(dispatch,getState){var state=getState();var cachedData=state.product.optionsByProductId[productId];if(!shouldFetchData(cachedData)){return Promise.resolve(null);}dispatch(requestProductOptions(productId));var request=new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_OPTIONS).setInput({productId:productId}).dispatch();request.then(function(result){dispatch(receiveProductOptions(productId,result.options));})["catch"](function(error){dispatch(errorProductOptions(productId,error.code));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchProductOptions);
12
+ */
13
+ function fetchProductOptions(productId) {
14
+ return (dispatch, getState) => {
15
+ const state = getState();
16
+ const cachedData = state.product.optionsByProductId[productId];
17
+ if (!shouldFetchData(cachedData)) {
18
+ return Promise.resolve(null);
19
+ }
20
+ dispatch(requestProductOptions(productId));
21
+ const request = new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_OPTIONS).setInput({
22
+ productId
23
+ }).dispatch();
24
+ request.then(result => {
25
+ dispatch(receiveProductOptions(productId, result.options));
26
+ }).catch(error => {
27
+ dispatch(errorProductOptions(productId, error.code));
28
+ });
29
+ return request;
30
+ };
31
+ }
32
+
33
+ /** @mixes {MutableFunction} */
34
+ export default mutable(fetchProductOptions);
@@ -1,5 +1,33 @@
1
- import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import requestProductProperties from"../action-creators/requestProductProperties";import{SHOPGATE_CATALOG_GET_PRODUCT_PROPERTIES}from"../constants/Pipelines";import receiveProductProperties from"../action-creators/receiveProductProperties";import errorProductProperties from"../action-creators/errorProductProperties";/**
1
+ import PipelineRequest from '@shopgate/pwa-core/classes/PipelineRequest';
2
+ import { shouldFetchData, mutable } from '@shopgate/pwa-common/helpers/redux';
3
+ import requestProductProperties from "../action-creators/requestProductProperties";
4
+ import { SHOPGATE_CATALOG_GET_PRODUCT_PROPERTIES } from "../constants/Pipelines";
5
+ import receiveProductProperties from "../action-creators/receiveProductProperties";
6
+ import errorProductProperties from "../action-creators/errorProductProperties";
7
+
8
+ /**
2
9
  * Maybe requests a product description from server.
3
10
  * @param {string} productId The product ID.
4
11
  * @return {Function} The dispatched action.
5
- */function fetchProductProperties(productId){return function(dispatch,getState){var properties=getState().product.propertiesByProductId[productId];if(!shouldFetchData(properties)){return Promise.resolve(null);}dispatch(requestProductProperties(productId));var request=new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_PROPERTIES).setInput({productId:productId}).dispatch();request.then(function(result){dispatch(receiveProductProperties(productId,result.properties));})["catch"](function(error){dispatch(errorProductProperties(productId,error.code));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchProductProperties);
12
+ */
13
+ function fetchProductProperties(productId) {
14
+ return (dispatch, getState) => {
15
+ const properties = getState().product.propertiesByProductId[productId];
16
+ if (!shouldFetchData(properties)) {
17
+ return Promise.resolve(null);
18
+ }
19
+ dispatch(requestProductProperties(productId));
20
+ const request = new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_PROPERTIES).setInput({
21
+ productId
22
+ }).dispatch();
23
+ request.then(result => {
24
+ dispatch(receiveProductProperties(productId, result.properties));
25
+ }).catch(error => {
26
+ dispatch(errorProductProperties(productId, error.code));
27
+ });
28
+ return request;
29
+ };
30
+ }
31
+
32
+ /** @mixes {MutableFunction} */
33
+ export default mutable(fetchProductProperties);
@@ -1,4 +1,15 @@
1
- import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{logger}from'@shopgate/pwa-core/helpers';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import receiveProductRelations from"../action-creators/receiveProductRelations";import requestProductRelations from"../action-creators/requestProductRelations";import errorProductRelations from"../action-creators/errorProductRelations";import{SHOPGATE_CATALOG_GET_PRODUCT_RELATIONS}from"../constants/Pipelines";import{generateProductRelationsHash}from"../helpers";import{getProductRelationsState}from"../selectors/relations";import{PRODUCT_RELATIONS_DEFAULT_LIMIT}from"../constants";/**
1
+ import PipelineRequest from '@shopgate/pwa-core/classes/PipelineRequest';
2
+ import { logger } from '@shopgate/pwa-core/helpers';
3
+ import { shouldFetchData, mutable } from '@shopgate/pwa-common/helpers/redux';
4
+ import receiveProductRelations from "../action-creators/receiveProductRelations";
5
+ import requestProductRelations from "../action-creators/requestProductRelations";
6
+ import errorProductRelations from "../action-creators/errorProductRelations";
7
+ import { SHOPGATE_CATALOG_GET_PRODUCT_RELATIONS } from "../constants/Pipelines";
8
+ import { generateProductRelationsHash } from "../helpers";
9
+ import { getProductRelationsState } from "../selectors/relations";
10
+ import { PRODUCT_RELATIONS_DEFAULT_LIMIT } from "../constants";
11
+
12
+ /**
2
13
  * Action starts product relation fetching process.
3
14
  * Returns early if product relation cache is still valid.
4
15
  * @param {Object} params Params.
@@ -6,4 +17,54 @@ import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{l
6
17
  * @param {string} params.type Type (see constants).
7
18
  * @param {number} params.limit Query limit.
8
19
  * @returns {Function}
9
- */function fetchProductRelations(_ref){var productId=_ref.productId,type=_ref.type,_ref$limit=_ref.limit,limit=_ref$limit===void 0?PRODUCT_RELATIONS_DEFAULT_LIMIT:_ref$limit;return function(dispatch,getState){var pipeline=SHOPGATE_CATALOG_GET_PRODUCT_RELATIONS;var hash=generateProductRelationsHash({productId:productId,type:type,limit:limit});var currentState=getProductRelationsState(getState())[hash];if(!shouldFetchData(currentState,'productIds')){return Promise.resolve(null);}dispatch(requestProductRelations({hash:hash}));var request=new PipelineRequest(pipeline).setInput({productId:productId,type:type,limit:limit}).dispatch();request.then(function(payload){var relations=payload.relations;if(!Array.isArray(relations)){logger.error(new Error("Invalid ".concat(pipeline," pipeline response")),payload);dispatch(errorProductRelations({hash:hash}));return;}dispatch(receiveProductRelations({hash:hash,payload:payload}));})["catch"](function(){dispatch(errorProductRelations({hash:hash}));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchProductRelations);
20
+ */
21
+ function fetchProductRelations({
22
+ productId,
23
+ type,
24
+ limit = PRODUCT_RELATIONS_DEFAULT_LIMIT
25
+ }) {
26
+ return (dispatch, getState) => {
27
+ const pipeline = SHOPGATE_CATALOG_GET_PRODUCT_RELATIONS;
28
+ const hash = generateProductRelationsHash({
29
+ productId,
30
+ type,
31
+ limit
32
+ });
33
+ const currentState = getProductRelationsState(getState())[hash];
34
+ if (!shouldFetchData(currentState, 'productIds')) {
35
+ return Promise.resolve(null);
36
+ }
37
+ dispatch(requestProductRelations({
38
+ hash
39
+ }));
40
+ const request = new PipelineRequest(pipeline).setInput({
41
+ productId,
42
+ type,
43
+ limit
44
+ }).dispatch();
45
+ request.then(payload => {
46
+ const {
47
+ relations
48
+ } = payload;
49
+ if (!Array.isArray(relations)) {
50
+ logger.error(new Error(`Invalid ${pipeline} pipeline response`), payload);
51
+ dispatch(errorProductRelations({
52
+ hash
53
+ }));
54
+ return;
55
+ }
56
+ dispatch(receiveProductRelations({
57
+ hash,
58
+ payload
59
+ }));
60
+ }).catch(() => {
61
+ dispatch(errorProductRelations({
62
+ hash
63
+ }));
64
+ });
65
+ return request;
66
+ };
67
+ }
68
+
69
+ /** @mixes {MutableFunction} */
70
+ export default mutable(fetchProductRelations);
@@ -1,5 +1,34 @@
1
- import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{shouldFetchData,mutable}from'@shopgate/pwa-common/helpers/redux';import{SHOPGATE_CATALOG_GET_PRODUCT_SHIPPING}from"../constants/Pipelines";import requestProductShipping from"../action-creators/requestProductShipping";import receiveProductShipping from"../action-creators/receiveProductShipping";import errorProductShipping from"../action-creators/errorProductShipping";/**
1
+ import PipelineRequest from '@shopgate/pwa-core/classes/PipelineRequest';
2
+ import { shouldFetchData, mutable } from '@shopgate/pwa-common/helpers/redux';
3
+ import { SHOPGATE_CATALOG_GET_PRODUCT_SHIPPING } from "../constants/Pipelines";
4
+ import requestProductShipping from "../action-creators/requestProductShipping";
5
+ import receiveProductShipping from "../action-creators/receiveProductShipping";
6
+ import errorProductShipping from "../action-creators/errorProductShipping";
7
+
8
+ /**
2
9
  * Retrieves product shipping from the store.
3
10
  * @param {string} productId The product ID for which the product shipping is requested.
4
11
  * @return {Function} A Redux Thunk
5
- */function fetchProductShipping(productId){return function(dispatch,getState){var state=getState();var shipping=state.product.shippingByProductId[productId];if(!shouldFetchData(shipping)){return Promise.resolve(null);}dispatch(requestProductShipping(productId));var request=new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_SHIPPING).setInput({productId:productId}).dispatch();request.then(function(result){dispatch(receiveProductShipping(productId,result.shipping));})["catch"](function(error){dispatch(errorProductShipping(productId,error.code));});return request;};}/** @mixes {MutableFunction} */export default mutable(fetchProductShipping);
12
+ */
13
+ function fetchProductShipping(productId) {
14
+ return (dispatch, getState) => {
15
+ const state = getState();
16
+ const shipping = state.product.shippingByProductId[productId];
17
+ if (!shouldFetchData(shipping)) {
18
+ return Promise.resolve(null);
19
+ }
20
+ dispatch(requestProductShipping(productId));
21
+ const request = new PipelineRequest(SHOPGATE_CATALOG_GET_PRODUCT_SHIPPING).setInput({
22
+ productId
23
+ }).dispatch();
24
+ request.then(result => {
25
+ dispatch(receiveProductShipping(productId, result.shipping));
26
+ }).catch(error => {
27
+ dispatch(errorProductShipping(productId, error.code));
28
+ });
29
+ return request;
30
+ };
31
+ }
32
+
33
+ /** @mixes {MutableFunction} */
34
+ export default mutable(fetchProductShipping);