@jetshop/core 5.13.12-0 → 5.14.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.
Files changed (559) hide show
  1. package/ChannelHandler/CategoryPathnameRedirectQuery.gql +9 -9
  2. package/ChannelHandler/ChannelHandler.d.ts +52 -50
  3. package/ChannelHandler/ChannelHandler.js +114 -108
  4. package/ChannelHandler/ChannelHandler.js.map +1 -1
  5. package/ChannelHandler/PagePathnameRedirectQuery.gql +9 -9
  6. package/ChannelHandler/PreserveRedirectRouteQuery.gql +19 -19
  7. package/ChannelHandler/ProductPathnameRedirectQuery.gql +9 -9
  8. package/ChannelHandler/StartPagePathnameRedirectQuery.gql +9 -9
  9. package/ChannelHandler/channelUtils.d.ts +72 -68
  10. package/ChannelHandler/channelUtils.js +311 -266
  11. package/ChannelHandler/channelUtils.js.map +1 -1
  12. package/ChannelHandler/redirectUtils.d.ts +4 -4
  13. package/ChannelHandler/redirectUtils.js +49 -49
  14. package/ChannelHandler/redirectUtils.test.js +524 -538
  15. package/ChannelHandler/redirectUtilsGroupedChannels.test.js +784 -0
  16. package/analytics/Analytics.d.ts +18 -18
  17. package/analytics/Analytics.js +56 -56
  18. package/analytics/AnalyticsProvider.d.ts +42 -42
  19. package/analytics/AnalyticsProvider.js +177 -177
  20. package/analytics/AnalyticsProvider.js.map +1 -1
  21. package/analytics/deprecatedTracking.d.ts +17 -17
  22. package/analytics/deprecatedTracking.js +32 -32
  23. package/analytics/integrations/ga4.d.ts +23 -23
  24. package/analytics/integrations/ga4.js +144 -145
  25. package/analytics/integrations/ga4.js.map +1 -1
  26. package/analytics/integrations/gtag/gtag.d.ts +8 -8
  27. package/analytics/integrations/gtag/gtag.js +180 -180
  28. package/analytics/integrations/gtag/index.d.ts +1 -1
  29. package/analytics/integrations/gtag/index.js +1 -1
  30. package/analytics/integrations/gtm/index.d.ts +12 -12
  31. package/analytics/integrations/gtm/index.js +200 -200
  32. package/analytics/integrations/gtm/referrerModifier.d.ts +1 -1
  33. package/analytics/integrations/gtm/referrerModifier.js +61 -61
  34. package/analytics/integrations/releware/index.d.ts +3 -3
  35. package/analytics/integrations/releware/index.js +38 -38
  36. package/analytics/integrations/unslugify.d.ts +1 -1
  37. package/analytics/integrations/unslugify.js +15 -17
  38. package/analytics/integrations/unslugify.js.map +1 -1
  39. package/analytics/trackerRegistry.d.ts +101 -101
  40. package/analytics/trackerRegistry.js +219 -219
  41. package/analytics/trackerRegistry.test.js +160 -160
  42. package/analytics/tracking.d.ts +14 -14
  43. package/analytics/tracking.js +71 -71
  44. package/analytics/utils/breadcrumbsWithoutProduct.d.ts +1 -1
  45. package/analytics/utils/breadcrumbsWithoutProduct.js +8 -8
  46. package/analytics/utils/script.d.ts +8 -8
  47. package/analytics/utils/script.js +39 -39
  48. package/analytics/webVitals.d.ts +5 -5
  49. package/analytics/webVitals.js +38 -38
  50. package/boot/AuthHandler.d.ts +14 -14
  51. package/boot/AuthHandler.js +38 -38
  52. package/boot/ChannelsQuery.gql +7 -7
  53. package/boot/PreviewHandler.d.ts +7 -7
  54. package/boot/PreviewHandler.js +13 -13
  55. package/boot/SharedTree.d.ts +25 -25
  56. package/boot/SharedTree.js +28 -28
  57. package/boot/addMissingConfig.d.ts +5 -5
  58. package/boot/addMissingConfig.js +33 -33
  59. package/boot/apollo.d.ts +21 -21
  60. package/boot/apollo.js +197 -197
  61. package/boot/client/entrypoint.d.ts +1 -1
  62. package/boot/client/entrypoint.js +4 -4
  63. package/boot/client/index.d.ts +1 -1
  64. package/boot/client/index.js +1 -1
  65. package/boot/client/startClient.d.ts +4 -4
  66. package/boot/client/startClient.js +142 -142
  67. package/boot/client-schema.gql +59 -59
  68. package/boot/server/IntervalQuery.d.ts +32 -32
  69. package/boot/server/IntervalQuery.js +94 -94
  70. package/boot/server/IntervalQuery.test.js +280 -280
  71. package/boot/server/PersistedApolloClient.d.ts +20 -20
  72. package/boot/server/PersistedApolloClient.js +39 -39
  73. package/boot/server/PersistedApolloClient.test.js +233 -233
  74. package/boot/server/asyncErrorHandler.d.ts +3 -3
  75. package/boot/server/asyncErrorHandler.js +4 -4
  76. package/boot/server/breakpointMiddleware.d.ts +3 -3
  77. package/boot/server/breakpointMiddleware.js +9 -9
  78. package/boot/server/createApolloServer.d.ts +28 -28
  79. package/boot/server/createApolloServer.js +143 -143
  80. package/boot/server/createApolloServer.test.js +114 -114
  81. package/boot/server/createDevServer.d.ts +14 -14
  82. package/boot/server/createDevServer.js +29 -29
  83. package/boot/server/createRenderer.d.ts +28 -28
  84. package/boot/server/createRenderer.js +235 -235
  85. package/boot/server/createServer.d.ts +14 -14
  86. package/boot/server/createServer.js +41 -41
  87. package/boot/server/entrypoint.d.ts +1 -1
  88. package/boot/server/entrypoint.js +35 -35
  89. package/boot/server/getPrefetchFiles.d.ts +10 -10
  90. package/boot/server/getPrefetchFiles.js +19 -19
  91. package/boot/server/getPreloadAssets.d.ts +10 -10
  92. package/boot/server/getPreloadAssets.js +17 -17
  93. package/boot/server/getPreloadAssets.test.js +133 -133
  94. package/boot/server/index.d.ts +9 -9
  95. package/boot/server/index.js +122 -122
  96. package/boot/server/listen.d.ts +13 -13
  97. package/boot/server/listen.js +16 -16
  98. package/boot/server/overwriteServerIntl.js +1 -1
  99. package/boot/server/persistedQueries/PersistedClient.d.ts +22 -22
  100. package/boot/server/persistedQueries/PersistedClient.js +57 -57
  101. package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +201 -201
  102. package/boot/server/persistedQueries/__tests__/mockQuery.gql +6 -6
  103. package/boot/server/persistedQueries/getPersistedQueriesForRequest.d.ts +3 -3
  104. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +26 -26
  105. package/boot/server/saleSource.test.js +39 -39
  106. package/boot/server/salesSource.d.ts +8 -8
  107. package/boot/server/salesSource.js +15 -15
  108. package/boot/utils/__tests__/uid.js +47 -47
  109. package/boot/utils/createIntOptions.d.ts +6 -6
  110. package/boot/utils/createIntOptions.js +18 -18
  111. package/boot/utils/queryLoggingMiddleware.d.ts +2 -2
  112. package/boot/utils/queryLoggingMiddleware.js +14 -14
  113. package/boot/utils/uid.d.ts +3 -3
  114. package/boot/utils/uid.js +19 -19
  115. package/cart/AddToCartFormik.d.ts +42 -42
  116. package/cart/AddToCartFormik.js +76 -76
  117. package/cart/useAddToCart.d.ts +88 -88
  118. package/cart/useAddToCart.js +117 -117
  119. package/ci/.gitlab-ci.yml +3 -3
  120. package/components/Auth/CustomerUpdateForm.d.ts +32 -32
  121. package/components/Auth/CustomerUpdateForm.js +121 -121
  122. package/components/Auth/ForgotPasswordProvider.d.ts +71 -71
  123. package/components/Auth/ForgotPasswordProvider.js +56 -56
  124. package/components/Auth/ResetPasswordProvider.d.ts +88 -88
  125. package/components/Auth/ResetPasswordProvider.js +77 -77
  126. package/components/Auth/SSN.d.ts +12 -12
  127. package/components/Auth/SSN.js +34 -34
  128. package/components/Auth/SSNLookupContainer.d.ts +15 -15
  129. package/components/Auth/SSNLookupContainer.js +19 -19
  130. package/components/Auth/SignupFormContainer.d.ts +19 -19
  131. package/components/Auth/SignupFormContainer.js +81 -81
  132. package/components/Auth/UpdatePasswordForm.d.ts +44 -44
  133. package/components/Auth/UpdatePasswordForm.js +97 -97
  134. package/components/Auth/formFieldsFromSettings.d.ts +65 -65
  135. package/components/Auth/formFieldsFromSettings.js +76 -76
  136. package/components/Auth/formFieldsFromSettings.js.map +1 -1
  137. package/components/Auth/formatSignupInput.d.ts +8 -8
  138. package/components/Auth/formatSignupInput.js +42 -42
  139. package/components/Auth/signup-context.d.ts +36 -36
  140. package/components/Auth/signup-context.js +71 -71
  141. package/components/Auth/signup-field-translations.d.ts +3 -3
  142. package/components/Auth/signup-field-translations.js +43 -43
  143. package/components/Auth/signupSubmit.d.ts +6 -6
  144. package/components/Auth/signupSubmit.js +56 -56
  145. package/components/Auth/useAddressFields.d.ts +22 -22
  146. package/components/Auth/useAddressFields.js +32 -32
  147. package/components/Auth/useAddressFields.test.js +294 -294
  148. package/components/Auth/useCustomer.d.ts +116 -70
  149. package/components/Auth/useCustomer.js +188 -167
  150. package/components/Auth/useCustomer.js.map +1 -1
  151. package/components/Auth/useLoginFields.d.ts +20 -20
  152. package/components/Auth/useLoginFields.js +20 -20
  153. package/components/Auth/useSignupForm.d.ts +7 -7
  154. package/components/Auth/useSignupForm.js +14 -14
  155. package/components/AuthContext/AuthContext.d.ts +8 -8
  156. package/components/AuthContext/AuthContext.js +8 -8
  157. package/components/AuthContext/AuthProvider.d.ts +6 -6
  158. package/components/AuthContext/AuthProvider.js +84 -84
  159. package/components/AuthContext/AuthProvider.js.map +1 -1
  160. package/components/AuthContext/AuthProvider.test.js +66 -66
  161. package/components/AuthContext/LogOut.d.ts +5 -5
  162. package/components/AuthContext/LogOut.js +14 -14
  163. package/components/AuthContext/googleUserIdQuery.gql +6 -6
  164. package/components/AuthContext/useAuth.d.ts +6 -6
  165. package/components/AuthContext/useAuth.js +20 -20
  166. package/components/BreakpointProvider.d.ts +21 -21
  167. package/components/BreakpointProvider.js +23 -23
  168. package/components/Cart/CartIdContext.d.ts +11 -11
  169. package/components/Cart/CartIdContext.js +60 -60
  170. package/components/Cart/CartIdContext.test.js +87 -87
  171. package/components/ChannelContext/ChannelContext.d.ts +21 -20
  172. package/components/ChannelContext/ChannelContext.js +3 -3
  173. package/components/ChannelContext/ChannelContext.js.map +1 -1
  174. package/components/ChannelContext/ChannelProvider.d.ts +10 -10
  175. package/components/ChannelContext/ChannelProvider.js +44 -42
  176. package/components/ChannelContext/ChannelProvider.js.map +1 -1
  177. package/components/ChannelContext/ChannelProvider.test.js +112 -112
  178. package/components/ChannelContext/CountrySettingsQuery.gql +34 -34
  179. package/components/ChannelContext/index.d.ts +2 -2
  180. package/components/ChannelContext/index.js +2 -2
  181. package/components/ChannelContext/useCountrySettings.d.ts +8 -8
  182. package/components/ChannelContext/useCountrySettings.js +23 -23
  183. package/components/ChannelContext/useCountrySettings.js.map +1 -1
  184. package/components/ConfigProvider.d.ts +107 -108
  185. package/components/ConfigProvider.js +19 -19
  186. package/components/ConfigProvider.js.map +1 -1
  187. package/components/DynamicRoute/ActiveFiltersQuery.gql +21 -21
  188. package/components/DynamicRoute/CategoryRoute.d.ts +13 -13
  189. package/components/DynamicRoute/CategoryRoute.js +55 -55
  190. package/components/DynamicRoute/ContentRoute.d.ts +14 -14
  191. package/components/DynamicRoute/ContentRoute.js +27 -27
  192. package/components/DynamicRoute/PreviewRoute.d.ts +17 -17
  193. package/components/DynamicRoute/PreviewRoute.js +57 -57
  194. package/components/DynamicRoute/ProductByArticlenumber.d.ts +5 -5
  195. package/components/DynamicRoute/ProductByArticlenumber.gql +16 -16
  196. package/components/DynamicRoute/ProductByArticlenumber.js +21 -21
  197. package/components/DynamicRoute/ProductRoute.d.ts +15 -15
  198. package/components/DynamicRoute/ProductRoute.js +57 -57
  199. package/components/DynamicRoute/RouteResolver.d.ts +22 -22
  200. package/components/DynamicRoute/RouteResolver.js +64 -64
  201. package/components/DynamicRoute/Status.d.ts +14 -14
  202. package/components/DynamicRoute/Status.js +19 -19
  203. package/components/DynamicRoute/index.d.ts +17 -17
  204. package/components/DynamicRoute/index.js +95 -95
  205. package/components/Filters/index.d.ts +1 -1
  206. package/components/Filters/index.js +1 -1
  207. package/components/Filters/toggleActiveListItem.gql +15 -15
  208. package/components/Filters/utils/replaceInSearch.d.ts +14 -14
  209. package/components/Filters/utils/replaceInSearch.js +22 -22
  210. package/components/Filters/utils/replaceInSearch.test.js +184 -184
  211. package/components/Filters/utils/updateHistory.d.ts +25 -25
  212. package/components/Filters/utils/updateHistory.js +29 -29
  213. package/components/Filters/utils/updateHistory.test.js +102 -102
  214. package/components/Fonts/CustomFont.d.ts +14 -14
  215. package/components/Fonts/CustomFont.js +16 -16
  216. package/components/Fonts/GoogleFont.d.ts +10 -10
  217. package/components/Fonts/GoogleFont.js +34 -34
  218. package/components/Fonts/TypekitFont.d.ts +16 -16
  219. package/components/Fonts/TypekitFont.js +24 -24
  220. package/components/Fonts/injectFont.d.ts +11 -11
  221. package/components/Fonts/injectFont.js +29 -29
  222. package/components/Head.d.ts +11 -11
  223. package/components/Head.js +79 -74
  224. package/components/Head.js.map +1 -1
  225. package/components/Mutation/AddToCart/addToCartUtils.d.ts +18 -18
  226. package/components/Mutation/AddToCart/addToCartUtils.js +51 -51
  227. package/components/Mutation/AddToCartFormik.d.ts +53 -53
  228. package/components/Mutation/AddToCartFormik.js +171 -171
  229. package/components/Mutation/DecrementQuantity.d.ts +4 -4
  230. package/components/Mutation/DecrementQuantity.js +34 -34
  231. package/components/Mutation/IncrementQuantity.d.ts +4 -4
  232. package/components/Mutation/IncrementQuantity.js +34 -34
  233. package/components/Mutation/RemoveFromCart.d.ts +5 -5
  234. package/components/Mutation/RemoveFromCart.js +51 -51
  235. package/components/Mutation/SetQuantity.d.ts +4 -4
  236. package/components/Mutation/SetQuantity.js +36 -36
  237. package/components/Mutation/SubscribeToNewsletter.d.ts +4 -4
  238. package/components/Mutation/SubscribeToNewsletter.js +29 -29
  239. package/components/Mutation/SubscribeToStockNotifications.d.ts +4 -4
  240. package/components/Mutation/SubscribeToStockNotifications.js +30 -30
  241. package/components/Mutation/cartMutationUtils.d.ts +28 -28
  242. package/components/Mutation/cartMutationUtils.js +108 -108
  243. package/components/Mutation/cartMutationUtils.spec.js +142 -142
  244. package/components/Mutation/useDecrementQuantity.d.ts +11 -11
  245. package/components/Mutation/useDecrementQuantity.js +53 -53
  246. package/components/Mutation/useIncrementQuantity.d.ts +11 -11
  247. package/components/Mutation/useIncrementQuantity.js +53 -53
  248. package/components/Mutation/useRemoveFromCart.d.ts +13 -13
  249. package/components/Mutation/useRemoveFromCart.js +49 -49
  250. package/components/Mutation/useSetQuantity.d.ts +12 -12
  251. package/components/Mutation/useSetQuantity.js +37 -37
  252. package/components/Notifications/Notifications.d.ts +15 -15
  253. package/components/Notifications/Notifications.js +26 -26
  254. package/components/Notifications/index.d.ts +2 -2
  255. package/components/Notifications/index.js +2 -2
  256. package/components/Notifications/notificationMachine.d.ts +30 -30
  257. package/components/Notifications/notificationMachine.js +73 -73
  258. package/components/Notifications/notificationsMachine.d.ts +37 -37
  259. package/components/Notifications/notificationsMachine.js +65 -65
  260. package/components/Notifications/useNotification.d.ts +9 -9
  261. package/components/Notifications/useNotification.js +26 -26
  262. package/components/OpenGraph/OpenGraph.test.js +180 -180
  263. package/components/OpenGraph/OpenGraphGeneralPageData.d.ts +25 -25
  264. package/components/OpenGraph/OpenGraphGeneralPageData.js +36 -36
  265. package/components/OpenGraph/OpenGraphGeneralPageData.js.map +1 -1
  266. package/components/OpenGraph/OpenGraphProductData.d.ts +25 -25
  267. package/components/OpenGraph/OpenGraphProductData.js +48 -48
  268. package/components/OpenGraph/OpenGraphProductData.js.map +1 -1
  269. package/components/OpenGraph/index.d.ts +2 -2
  270. package/components/OpenGraph/index.js +2 -2
  271. package/components/Pagination/PaginationContainer.d.ts +2 -2
  272. package/components/Pagination/PaginationContainer.js +4 -4
  273. package/components/Pagination/PaginationContext.d.ts +14 -14
  274. package/components/Pagination/PaginationContext.js +3 -3
  275. package/components/Pagination/PaginationProvider.d.ts +19 -19
  276. package/components/Pagination/PaginationProvider.js +94 -94
  277. package/components/Pagination/PaginationProvider.test.js +282 -282
  278. package/components/PreviewContext.d.ts +10 -10
  279. package/components/PreviewContext.js +26 -26
  280. package/components/ProductConfigurationProvider/ConfigPrice.gql +22 -22
  281. package/components/ProductConfigurationProvider/ProductConfigurationContext.d.ts +13 -13
  282. package/components/ProductConfigurationProvider/ProductConfigurationContext.js +4 -4
  283. package/components/ProductConfigurationProvider/ProductConfigurationProvider.d.ts +6 -6
  284. package/components/ProductConfigurationProvider/ProductConfigurationProvider.js +49 -49
  285. package/components/Query/CartProvider.d.ts +22 -22
  286. package/components/Query/CartProvider.js +67 -67
  287. package/components/SortOrder/SortOrderContainer.d.ts +40 -40
  288. package/components/SortOrder/SortOrderContainer.js +101 -101
  289. package/components/SortOrder/SortOrderContext.d.ts +9 -9
  290. package/components/SortOrder/SortOrderContext.js +8 -8
  291. package/components/StructuredData/SiteLinksSearchStructuredData.d.ts +3 -3
  292. package/components/StructuredData/SiteLinksSearchStructuredData.js +24 -24
  293. package/components/StructuredData/StructuredBreadcrumbData.d.ts +12 -12
  294. package/components/StructuredData/StructuredBreadcrumbData.js +54 -54
  295. package/components/StructuredData/StructuredCategoryData.d.ts +16 -16
  296. package/components/StructuredData/StructuredCategoryData.js +17 -17
  297. package/components/StructuredData/StructuredData.d.ts +9 -9
  298. package/components/StructuredData/StructuredData.js +6 -6
  299. package/components/StructuredData/StructuredPageData.d.ts +16 -16
  300. package/components/StructuredData/StructuredPageData.js +16 -16
  301. package/components/StructuredData/StructuredProductData.d.ts +18 -18
  302. package/components/StructuredData/StructuredProductData.js +42 -42
  303. package/components/StructuredData/StructuredProductData.test.js +130 -130
  304. package/components/StructuredData/index.d.ts +5 -5
  305. package/components/StructuredData/index.js +5 -5
  306. package/data/cache.d.ts +3 -3
  307. package/data/cache.js +20 -20
  308. package/data/fragmentTypes.d.ts +8 -8
  309. package/data/fragmentTypes.js +83 -83
  310. package/data/fragments/BadgeFragment.gql +7 -7
  311. package/data/fragments/CartCoreFragment.gql +89 -89
  312. package/data/fragments/ChannelsFragment.gql +59 -58
  313. package/data/fragments/CommentsFragment.gql +6 -6
  314. package/data/fragments/HeadFragment.gql +9 -9
  315. package/data/fragments/PriceFragment.gql +5 -5
  316. package/data/fragments/ProductCampaignFragment.gql +10 -10
  317. package/data/fragments/ProductConfigurationsFragment.gql +24 -24
  318. package/data/fragments/ProductListsFragments.gql +94 -94
  319. package/data/fragments/ProductMetadataFragment.gql +20 -20
  320. package/data/fragments/ProductPriceFragment.gql +10 -10
  321. package/data/fragments/ProductVariantPriceFragment.gql +10 -10
  322. package/data/fragments/RouteCrumbFragment.gql +20 -20
  323. package/data/fragments/RouteMetaFragment.gql +18 -18
  324. package/data/fragments/StockStatusFragment.gql +7 -7
  325. package/data/fragments/index.d.ts +1 -1
  326. package/data/fragments/index.js +1 -1
  327. package/data/mutations/accountMutations.gql +28 -28
  328. package/data/mutations/cartMutations.gql +41 -41
  329. package/data/mutations/productListMutations.gql +18 -18
  330. package/data/mutations/signup.gql +7 -7
  331. package/data/mutations/subscribeToNewsletter.gql +3 -3
  332. package/data/mutations/subscribeToStockNotifications.gql +6 -6
  333. package/data/mutations/updateCustomer.gql +5 -5
  334. package/data/mutations/updatePassword.gql +5 -5
  335. package/data/queries/CartMutationQuery.gql +36 -36
  336. package/data/queries/CartQuery.gql +7 -7
  337. package/data/queries/GetCustomerCountryCode.gql +9 -9
  338. package/data/queries/PersonLookupQuery.gql +28 -28
  339. package/data/queries/ProductLists.gql +8 -8
  340. package/dependencies.d.ts +104 -104
  341. package/errorReporting.browser.d.ts +3 -3
  342. package/errorReporting.browser.js +11 -11
  343. package/errorReporting.d.ts +3 -3
  344. package/errorReporting.js +19 -19
  345. package/errorReporting.server.d.ts +3 -3
  346. package/errorReporting.server.js +11 -11
  347. package/errorReporting.shared.d.ts +5 -5
  348. package/errorReporting.shared.js +16 -16
  349. package/experiments/ExperimentsProvider.d.ts +4 -4
  350. package/experiments/ExperimentsProvider.js +28 -28
  351. package/experiments/ExperimentsProvider.test.js +105 -105
  352. package/experiments/integration.test.js +76 -76
  353. package/experiments/selectExperimentVariant.d.ts +3 -3
  354. package/experiments/selectExperimentVariant.js +34 -34
  355. package/experiments/selectExperimentVariant.test.js +64 -64
  356. package/experiments/useExperiment.d.ts +2 -2
  357. package/experiments/useExperiment.js +10 -10
  358. package/experiments/useExperiment.test.js +100 -100
  359. package/global.d.ts +2 -1
  360. package/helpers/decodeUrlQuery.d.ts +9 -9
  361. package/helpers/decodeUrlQuery.js +26 -26
  362. package/helpers/decodeUrlQuery.test.js +54 -54
  363. package/helpers/distance.d.ts +7 -7
  364. package/helpers/distance.js +12 -12
  365. package/helpers/encodeVariant.d.ts +3 -3
  366. package/helpers/encodeVariant.js +24 -24
  367. package/helpers/getBreakpointsFromValues.d.ts +6 -6
  368. package/helpers/getBreakpointsFromValues.js +14 -14
  369. package/helpers/getBreakpointsFromValues.test.js +47 -47
  370. package/helpers/getCartItemVariant.d.ts +7 -7
  371. package/helpers/getCartItemVariant.js +8 -8
  372. package/helpers/getErrorDetail.d.ts +7 -7
  373. package/helpers/getErrorDetail.js +11 -11
  374. package/helpers/getErrorDetail.test.js +44 -44
  375. package/helpers/getHeaders.d.ts +6 -6
  376. package/helpers/getHeaders.js +3 -3
  377. package/helpers/isRelativeUrl.d.ts +1 -1
  378. package/helpers/isRelativeUrl.js +3 -3
  379. package/helpers/logError.d.ts +1 -1
  380. package/helpers/logError.js +16 -16
  381. package/helpers/logWarningInDev.d.ts +1 -1
  382. package/helpers/logWarningInDev.js +6 -6
  383. package/helpers/throwErrorInDev.d.ts +6 -6
  384. package/helpers/throwErrorInDev.js +14 -14
  385. package/helpers/uniqueId.d.ts +5 -5
  386. package/helpers/uniqueId.js +9 -9
  387. package/hooks/CartCheckoutQuery.gql +5 -5
  388. package/hooks/Channels/useChannelSettings.d.ts +7 -7
  389. package/hooks/Channels/useChannelSettings.js +11 -11
  390. package/hooks/Channels/useChannelSettings.js.map +1 -1
  391. package/hooks/Channels/useChannelSettings.test.js +51 -51
  392. package/hooks/Filters/useBooleanFilter.d.ts +8 -8
  393. package/hooks/Filters/useBooleanFilter.js +20 -20
  394. package/hooks/Filters/useFilters.d.ts +3 -3
  395. package/hooks/Filters/useFilters.js +15 -15
  396. package/hooks/Filters/useListFilter.d.ts +10 -10
  397. package/hooks/Filters/useListFilter.js +37 -37
  398. package/hooks/Filters/useMultiFilter.d.ts +13 -13
  399. package/hooks/Filters/useMultiFilter.js +49 -49
  400. package/hooks/Filters/useRangeFilter.d.ts +10 -10
  401. package/hooks/Filters/useRangeFilter.js +35 -35
  402. package/hooks/Filters/useSortOrder.d.ts +11 -11
  403. package/hooks/Filters/useSortOrder.js +21 -21
  404. package/hooks/FreeShippingQuery.gql +16 -16
  405. package/hooks/PackageProducts/index.d.ts +2 -2
  406. package/hooks/PackageProducts/index.js +2 -2
  407. package/hooks/PackageProducts/packagePriceQuery.gql +29 -29
  408. package/hooks/PackageProducts/usePackageProductItem.d.ts +17 -17
  409. package/hooks/PackageProducts/usePackageProductItem.js +26 -26
  410. package/hooks/PackageProducts/usePackageProducts.d.ts +19 -19
  411. package/hooks/PackageProducts/usePackageProducts.js +345 -345
  412. package/hooks/PackageProducts/usePackageProducts.test.js +383 -383
  413. package/hooks/Product/index.d.ts +1 -1
  414. package/hooks/Product/index.js +1 -1
  415. package/hooks/Product/useStockStatus.d.ts +9 -9
  416. package/hooks/Product/useStockStatus.js +25 -25
  417. package/hooks/Product/useSwitchToVariantImage.d.ts +9 -9
  418. package/hooks/Product/useSwitchToVariantImage.js +20 -20
  419. package/hooks/ProductList/ProductListContext.d.ts +7 -7
  420. package/hooks/ProductList/ProductListContext.js +110 -110
  421. package/hooks/ProductList/action-creators.d.ts +46 -46
  422. package/hooks/ProductList/action-creators.js +296 -296
  423. package/hooks/ProductList/index.d.ts +118 -118
  424. package/hooks/ProductList/index.js +21 -21
  425. package/hooks/ProductList/list-transforms.d.ts +73 -73
  426. package/hooks/ProductList/list-transforms.js +106 -106
  427. package/hooks/ProductList/list-transforms.test.js +489 -489
  428. package/hooks/ProductList/product-list-reducer.d.ts +76 -76
  429. package/hooks/ProductList/product-list-reducer.js +197 -197
  430. package/hooks/ProductList/product-list-reducer.test.js +464 -464
  431. package/hooks/ProductList/useProductList.d.ts +13 -13
  432. package/hooks/ProductList/useProductList.js +93 -93
  433. package/hooks/ProductList/useProductListItems.d.ts +10 -10
  434. package/hooks/ProductList/useProductListItems.js +48 -48
  435. package/hooks/ProductList/validate-product.d.ts +6 -6
  436. package/hooks/ProductList/validate-product.js +40 -40
  437. package/hooks/Subscriptions/useNewsletterSubscription.d.ts +38 -38
  438. package/hooks/Subscriptions/useNewsletterSubscription.js +41 -41
  439. package/hooks/Subscriptions/useStockNotifications.d.ts +36 -36
  440. package/hooks/Subscriptions/useStockNotifications.js +37 -37
  441. package/hooks/Subscriptions/useStoreSubscriptions.d.ts +48 -48
  442. package/hooks/Subscriptions/useStoreSubscriptions.js +150 -150
  443. package/hooks/Subscriptions/useStoresubscriptions.test.js +179 -179
  444. package/hooks/useAddMultipleToCart.d.ts +27 -27
  445. package/hooks/useAddMultipleToCart.js +113 -113
  446. package/hooks/useAddMultipleToCart.test.js +181 -181
  447. package/hooks/useChannelBanner.js +22 -22
  448. package/hooks/useChannelBanner.test.js +77 -77
  449. package/hooks/useCustomerOrders.test.js +176 -176
  450. package/hooks/useCustomerOrdersQuery.d.ts +21 -21
  451. package/hooks/useCustomerOrdersQuery.js +20 -20
  452. package/hooks/useDeleteAccountMutation.d.ts +15 -15
  453. package/hooks/useDeleteAccountMutation.js +38 -38
  454. package/hooks/useDynamicPrice.d.ts +3 -3
  455. package/hooks/useDynamicPrice.js +24 -24
  456. package/hooks/useFreeShippingCheck.d.ts +15 -15
  457. package/hooks/useFreeShippingCheck.js +30 -30
  458. package/hooks/useGeolocation.d.ts +11 -11
  459. package/hooks/useGeolocation.js +33 -33
  460. package/hooks/useInfinitePagination.d.ts +37 -37
  461. package/hooks/useInfinitePagination.js +138 -138
  462. package/hooks/useLogError.d.ts +1 -1
  463. package/hooks/useLogError.js +7 -7
  464. package/hooks/useLoginMutation.d.ts +12 -12
  465. package/hooks/useLoginMutation.js +14 -14
  466. package/hooks/useLoginRedirect.d.ts +4 -4
  467. package/hooks/useLoginRedirect.js +36 -36
  468. package/hooks/useOrderDetailQuery.d.ts +20 -20
  469. package/hooks/useOrderDetailQuery.js +28 -28
  470. package/hooks/usePreconnectLinks.d.ts +10 -10
  471. package/hooks/usePreconnectLinks.js +29 -29
  472. package/hooks/usePreconnectLinks.test.js +95 -95
  473. package/hooks/usePrice.d.ts +39 -39
  474. package/hooks/usePrice.js +71 -71
  475. package/hooks/usePrice.test.js +171 -171
  476. package/hooks/useProductVariants/index.d.ts +1 -1
  477. package/hooks/useProductVariants/index.js +1 -1
  478. package/hooks/useProductVariants/useProductVariants.d.ts +19 -19
  479. package/hooks/useProductVariants/useProductVariants.js +202 -202
  480. package/hooks/useProductVariants/useProductVariants.test.js +415 -415
  481. package/hooks/useProductVariants/useVariantFromUrl.d.ts +5 -5
  482. package/hooks/useProductVariants/useVariantFromUrl.js +15 -15
  483. package/hooks/useProductVariants/useVariantFromUrl.test.js +79 -79
  484. package/hooks/useRoutePreload.d.ts +24 -24
  485. package/hooks/useRoutePreload.js +39 -39
  486. package/hooks/useShopConfig.d.ts +1 -1
  487. package/hooks/useShopConfig.js +10 -10
  488. package/hooks/useShopConfig.js.map +1 -1
  489. package/hooks/useThrowErrorInDev.d.ts +1 -1
  490. package/hooks/useThrowErrorInDev.js +7 -7
  491. package/hooks/useThunkReducer.d.ts +7 -7
  492. package/hooks/useThunkReducer.js +23 -23
  493. package/hooks/useWarningInDev.d.ts +1 -1
  494. package/hooks/useWarningInDev.js +9 -9
  495. package/inServer.d.ts +1 -1
  496. package/inServer.js +2 -2
  497. package/index.d.ts +1 -1
  498. package/index.js +1 -1
  499. package/integrations/addwishSchemaExtension.d.ts +35 -35
  500. package/integrations/addwishSchemaExtension.js +140 -140
  501. package/integrations/nostoSchemaExtension.d.ts +5 -5
  502. package/integrations/nostoSchemaExtension.js +76 -76
  503. package/integrations/sluggishSchemaExtension.d.ts +2 -2
  504. package/integrations/sluggishSchemaExtension.js +26 -26
  505. package/package.json +2 -2
  506. package/polyfills.d.ts +1 -1
  507. package/polyfills.js +37 -37
  508. package/registerServiceWorker.js +110 -110
  509. package/resolvers/filters/boolFilter.d.ts +3 -3
  510. package/resolvers/filters/boolFilter.js +84 -84
  511. package/resolvers/filters/defaultActiveFilters.d.ts +3 -3
  512. package/resolvers/filters/defaultActiveFilters.js +8 -8
  513. package/resolvers/filters/filterParams.d.ts +3 -3
  514. package/resolvers/filters/filterParams.js +84 -84
  515. package/resolvers/filters/filters.d.ts +5 -5
  516. package/resolvers/filters/filters.js +78 -78
  517. package/resolvers/filters/index.d.ts +27 -27
  518. package/resolvers/filters/index.js +7 -7
  519. package/resolvers/filters/listFilter.d.ts +7 -7
  520. package/resolvers/filters/listFilter.js +73 -73
  521. package/resolvers/filters/listFilterItem.d.ts +3 -3
  522. package/resolvers/filters/listFilterItem.js +122 -122
  523. package/resolvers/filters/multiListFilter.d.ts +5 -5
  524. package/resolvers/filters/multiListFilter.js +195 -195
  525. package/resolvers/filters/multiListFilterList.d.ts +3 -3
  526. package/resolvers/filters/multiListFilterList.js +55 -55
  527. package/resolvers/filters/rangeFilter.d.ts +5 -5
  528. package/resolvers/filters/rangeFilter.js +137 -137
  529. package/resolvers/filters/updateQueryString.d.ts +12 -12
  530. package/resolvers/filters/updateQueryString.js +116 -116
  531. package/resolvers/index.d.ts +37 -37
  532. package/resolvers/index.js +37 -37
  533. package/scripts/dev-apolloServer.js +31 -31
  534. package/sentry/client.d.ts +1 -1
  535. package/sentry/client.js +29 -29
  536. package/sentry/common.d.ts +1 -1
  537. package/sentry/common.js +4 -4
  538. package/sentry/server.d.ts +1 -1
  539. package/sentry/server.js +19 -19
  540. package/sentry/utils.d.ts +1 -1
  541. package/sentry/utils.js +1 -1
  542. package/server/graphql.d.ts +20 -20
  543. package/server/graphql.js +118 -118
  544. package/server/graphql.test.js +123 -123
  545. package/server/index.d.ts +2 -2
  546. package/server/index.js +2 -2
  547. package/server/tracking/facebook.d.ts +5 -5
  548. package/server/tracking/facebook.js +132 -132
  549. package/server/tracking/middleware.d.ts +8 -8
  550. package/server/tracking/middleware.js +14 -14
  551. package/server/tracking/types.d.ts +33 -33
  552. package/setupTests.js +2 -2
  553. package/test-utils/ProviderPyramid.js +45 -45
  554. package/test-utils/mockShopConfig.js +26 -26
  555. package/test-utils/mockedProduct.js +253 -253
  556. package/test-utils/renderWithRouter.js +20 -20
  557. package/test-utils/variables.js +2476 -1231
  558. package/time.d.ts +1 -1
  559. package/time.js +5 -5
@@ -1,118 +1,118 @@
1
- /// <reference types="react" />
2
- import { DocumentNode } from 'graphql';
3
- import { MutationTuple, QueryResult } from 'react-apollo';
4
- import { CustomerProductListResult, MutationCreateCustomerProductListArgs, MutationAddToCustomerProductListArgs, MutationRemoveFromCustomerProductListArgs, MutationUpdateCustomerProductListItemArgs, Product, ProductVariant, QueryCustomerProductListArgs, QueryProductsArgs } from '../../types';
5
- import { ThunkAction } from '../useThunkReducer';
6
- import { Action } from './product-list-reducer';
7
- export { useProductList } from './useProductList';
8
- export { useProductListItems } from './useProductListItems';
9
- export interface UpdateListOptions {
10
- quantity?: number;
11
- description?: string;
12
- productName?: string;
13
- }
14
- export interface ProductListContextOptions {
15
- state: ProductListState;
16
- dispatch: React.Dispatch<Action | ThunkAction<ProductListState, Action>>;
17
- usingLocalList: boolean;
18
- queries: ProductListQueries;
19
- }
20
- /**
21
- * A Product list mapping is a mapping between an ID and a product list
22
- *
23
- * As a convenienve, an ID of null is used for the "default" product list.
24
- */
25
- export declare type ProductListId = string | null;
26
- export declare type ProductListMap = Map<ProductListId, NormalizedProductList>;
27
- export interface NormalizedProductList {
28
- name: string | null;
29
- items: {
30
- [articleNumber: string]: {
31
- options: ProductListItemOptions;
32
- variants: ProductListItemVariants | null;
33
- };
34
- };
35
- }
36
- export declare const PRODUCT_LISTS_KEY = "productLists";
37
- export declare function emptyProductLists(): ProductListMap;
38
- export declare function productListMapToArray(map: ProductListMap): [string, NormalizedProductList][];
39
- export declare function productListArrayToMap(array: [ProductListId, NormalizedProductList][]): Map<string, NormalizedProductList>;
40
- export interface ProductListState {
41
- loggedIn: boolean;
42
- lists: ProductListMap;
43
- requestIdRef: React.MutableRefObject<string | null>;
44
- }
45
- export interface ProductListQueries {
46
- /** Products query, used for retrieving products from localList */
47
- productsQuery: DocumentNode;
48
- /** The customerProductLists query */
49
- all: DocumentNode;
50
- /** The customerProductList query */
51
- query: DocumentNode;
52
- /** The createCustomerProductList mutation */
53
- createList: DocumentNode;
54
- /** The deleteCustomerProductList mutation */
55
- deleteList: DocumentNode;
56
- /** The addToCustomerProductList mutation */
57
- add: DocumentNode;
58
- /** An addToCustomerProductList mutation that returns the full list */
59
- login: DocumentNode;
60
- /** The removeToCustomerProductList mutation */
61
- remove: DocumentNode;
62
- /** The updateCustomerProductListItem mutation */
63
- update: DocumentNode;
64
- }
65
- export interface UpdateListInput extends UpdateListOptions {
66
- variantArticleNumber?: string;
67
- }
68
- export interface ProductListDetail {
69
- /** Whether a query is in flight for the products in the list */
70
- loading: boolean;
71
- /** An array containing the product data */
72
- products: ProductListProduct[];
73
- }
74
- export interface FlattenedProductListItem {
75
- articleNumber: string;
76
- parentArticleNumber?: string;
77
- options: ProductListItemOptions;
78
- }
79
- export interface ProductListItemOptions {
80
- quantity?: number;
81
- description?: string;
82
- }
83
- export interface ProductListItemVariants {
84
- [articleNumber: string]: {
85
- options: ProductListItemOptions;
86
- /** TODO: change to baseArticleNumber ? */
87
- parentArticleNumber: string;
88
- };
89
- }
90
- export interface ProductListProduct extends Product {
91
- quantity: number;
92
- isVariant: boolean;
93
- variant: ProductVariant;
94
- validation: ProductListProductValidation;
95
- }
96
- export declare type ProductListProductValidation = {
97
- status: 'valid' | 'outOfStock' | 'configurations' | 'missingVariant' | 'preOrder' | 'package';
98
- message: string;
99
- };
100
- export declare type AddToListMutation = MutationTuple<{
101
- addToCustomerProductList: CustomerProductListResult;
102
- }, MutationAddToCustomerProductListArgs>;
103
- export declare type CreateListMutation = MutationTuple<{
104
- createCustomerProductList: CustomerProductListResult;
105
- }, MutationCreateCustomerProductListArgs>;
106
- export declare type RemoveFromListMutation = MutationTuple<{
107
- removeFromCustomerProductList: CustomerProductListResult;
108
- }, MutationRemoveFromCustomerProductListArgs>;
109
- export declare type UpdateListItemMutation = MutationTuple<{
110
- updateCustomerProductListItem: CustomerProductListResult;
111
- }, MutationUpdateCustomerProductListItemArgs>;
112
- export declare type ListsProductsQuery = QueryResult<{
113
- customerProductLists: CustomerProductListResult[];
114
- }>;
115
- export declare type ListProductsQuery = QueryResult<CustomerProductListResult, QueryCustomerProductListArgs>;
116
- export declare type ProductsQuery = QueryResult<{
117
- products: Product[];
118
- }, QueryProductsArgs>;
1
+ /// <reference types="react" />
2
+ import { DocumentNode } from 'graphql';
3
+ import { MutationTuple, QueryResult } from 'react-apollo';
4
+ import { CustomerProductListResult, MutationCreateCustomerProductListArgs, MutationAddToCustomerProductListArgs, MutationRemoveFromCustomerProductListArgs, MutationUpdateCustomerProductListItemArgs, Product, ProductVariant, QueryCustomerProductListArgs, QueryProductsArgs } from '../../types';
5
+ import { ThunkAction } from '../useThunkReducer';
6
+ import { Action } from './product-list-reducer';
7
+ export { useProductList } from './useProductList';
8
+ export { useProductListItems } from './useProductListItems';
9
+ export interface UpdateListOptions {
10
+ quantity?: number;
11
+ description?: string;
12
+ productName?: string;
13
+ }
14
+ export interface ProductListContextOptions {
15
+ state: ProductListState;
16
+ dispatch: React.Dispatch<Action | ThunkAction<ProductListState, Action>>;
17
+ usingLocalList: boolean;
18
+ queries: ProductListQueries;
19
+ }
20
+ /**
21
+ * A Product list mapping is a mapping between an ID and a product list
22
+ *
23
+ * As a convenienve, an ID of null is used for the "default" product list.
24
+ */
25
+ export declare type ProductListId = string | null;
26
+ export declare type ProductListMap = Map<ProductListId, NormalizedProductList>;
27
+ export interface NormalizedProductList {
28
+ name: string | null;
29
+ items: {
30
+ [articleNumber: string]: {
31
+ options: ProductListItemOptions;
32
+ variants: ProductListItemVariants | null;
33
+ };
34
+ };
35
+ }
36
+ export declare const PRODUCT_LISTS_KEY = "productLists";
37
+ export declare function emptyProductLists(): ProductListMap;
38
+ export declare function productListMapToArray(map: ProductListMap): [string, NormalizedProductList][];
39
+ export declare function productListArrayToMap(array: [ProductListId, NormalizedProductList][]): Map<string, NormalizedProductList>;
40
+ export interface ProductListState {
41
+ loggedIn: boolean;
42
+ lists: ProductListMap;
43
+ requestIdRef: React.MutableRefObject<string | null>;
44
+ }
45
+ export interface ProductListQueries {
46
+ /** Products query, used for retrieving products from localList */
47
+ productsQuery: DocumentNode;
48
+ /** The customerProductLists query */
49
+ all: DocumentNode;
50
+ /** The customerProductList query */
51
+ query: DocumentNode;
52
+ /** The createCustomerProductList mutation */
53
+ createList: DocumentNode;
54
+ /** The deleteCustomerProductList mutation */
55
+ deleteList: DocumentNode;
56
+ /** The addToCustomerProductList mutation */
57
+ add: DocumentNode;
58
+ /** An addToCustomerProductList mutation that returns the full list */
59
+ login: DocumentNode;
60
+ /** The removeToCustomerProductList mutation */
61
+ remove: DocumentNode;
62
+ /** The updateCustomerProductListItem mutation */
63
+ update: DocumentNode;
64
+ }
65
+ export interface UpdateListInput extends UpdateListOptions {
66
+ variantArticleNumber?: string;
67
+ }
68
+ export interface ProductListDetail {
69
+ /** Whether a query is in flight for the products in the list */
70
+ loading: boolean;
71
+ /** An array containing the product data */
72
+ products: ProductListProduct[];
73
+ }
74
+ export interface FlattenedProductListItem {
75
+ articleNumber: string;
76
+ parentArticleNumber?: string;
77
+ options: ProductListItemOptions;
78
+ }
79
+ export interface ProductListItemOptions {
80
+ quantity?: number;
81
+ description?: string;
82
+ }
83
+ export interface ProductListItemVariants {
84
+ [articleNumber: string]: {
85
+ options: ProductListItemOptions;
86
+ /** TODO: change to baseArticleNumber ? */
87
+ parentArticleNumber: string;
88
+ };
89
+ }
90
+ export interface ProductListProduct extends Product {
91
+ quantity: number;
92
+ isVariant: boolean;
93
+ variant: ProductVariant;
94
+ validation: ProductListProductValidation;
95
+ }
96
+ export declare type ProductListProductValidation = {
97
+ status: 'valid' | 'outOfStock' | 'configurations' | 'missingVariant' | 'preOrder' | 'package';
98
+ message: string;
99
+ };
100
+ export declare type AddToListMutation = MutationTuple<{
101
+ addToCustomerProductList: CustomerProductListResult;
102
+ }, MutationAddToCustomerProductListArgs>;
103
+ export declare type CreateListMutation = MutationTuple<{
104
+ createCustomerProductList: CustomerProductListResult;
105
+ }, MutationCreateCustomerProductListArgs>;
106
+ export declare type RemoveFromListMutation = MutationTuple<{
107
+ removeFromCustomerProductList: CustomerProductListResult;
108
+ }, MutationRemoveFromCustomerProductListArgs>;
109
+ export declare type UpdateListItemMutation = MutationTuple<{
110
+ updateCustomerProductListItem: CustomerProductListResult;
111
+ }, MutationUpdateCustomerProductListItemArgs>;
112
+ export declare type ListsProductsQuery = QueryResult<{
113
+ customerProductLists: CustomerProductListResult[];
114
+ }>;
115
+ export declare type ListProductsQuery = QueryResult<CustomerProductListResult, QueryCustomerProductListArgs>;
116
+ export declare type ProductsQuery = QueryResult<{
117
+ products: Product[];
118
+ }, QueryProductsArgs>;
@@ -1,22 +1,22 @@
1
- export { useProductList } from './useProductList';
2
- export { useProductListItems } from './useProductListItems';
3
- export const PRODUCT_LISTS_KEY = 'productLists';
4
- export function emptyProductLists() {
5
- return new Map([
6
- [
7
- null,
8
- {
9
- items: {},
10
- name: null
11
- }
12
- ]
13
- ]);
14
- }
15
- export function productListMapToArray(map) {
16
- const [...array] = map;
17
- return array;
18
- }
19
- export function productListArrayToMap(array) {
20
- return new Map(array);
21
- }
1
+ export { useProductList } from './useProductList';
2
+ export { useProductListItems } from './useProductListItems';
3
+ export const PRODUCT_LISTS_KEY = 'productLists';
4
+ export function emptyProductLists() {
5
+ return new Map([
6
+ [
7
+ null,
8
+ {
9
+ items: {},
10
+ name: null
11
+ }
12
+ ]
13
+ ]);
14
+ }
15
+ export function productListMapToArray(map) {
16
+ const [...array] = map;
17
+ return array;
18
+ }
19
+ export function productListArrayToMap(array) {
20
+ return new Map(array);
21
+ }
22
22
  //# sourceMappingURL=index.js.map
@@ -1,73 +1,73 @@
1
- import { FlattenedProductListItem, NormalizedProductList, ProductsQuery } from '.';
2
- import { CustomerProductList, Product } from '../../types';
3
- /**
4
- * Converts a product list returned from the API to our normalized structure
5
- * When a base product is selected, it will have a value for `options`.
6
- * When it has variants, it will have one or more keys for `variants`
7
- * Either variants or options may be null, but not both.
8
- */
9
- export declare function normalizeServerList(productList: CustomerProductList): NormalizedProductList;
10
- /**
11
- * Takes a flattened product list and result of a products query and returns
12
- * product details for each item in the flattened list. */
13
- export declare function getProductDetailForFlattenedProductList(
14
- /** May contain base products, variants, or a combination of both. */
15
- flattenedList: FlattenedProductListItem[],
16
- /** Contains the results of a products query, which returns only base products */
17
- productQueryResult: ProductsQuery): {
18
- validation: import(".").ProductListProductValidation;
19
- quantity: number;
20
- isVariant: boolean;
21
- variant: import("../../types").ProductVariant;
22
- head?: import("../../types").HtmlHead;
23
- primaryRoute?: import("../../types").Route;
24
- breadcrumbText?: string;
25
- __typename?: "Product";
26
- id: number;
27
- articleNumber: string;
28
- name: string;
29
- subName: string;
30
- shortDescription: string;
31
- description: string;
32
- mainHeader: string;
33
- publishedDate?: any;
34
- canonicalCategory?: import("../../types").Category;
35
- categories?: import("../../types").Category[];
36
- campaigns?: import("../../types").Category[];
37
- hasVariants: boolean;
38
- hasVariantsWithDifferingPrices: boolean;
39
- variants?: import("../../types").ProductVariants;
40
- images?: import("../../types").ProductImage[];
41
- relatedProducts?: Product[];
42
- badges?: import("../../types").ProductBadge[];
43
- price?: import("../../types").Price;
44
- hidePrice?: boolean;
45
- previousPrice?: import("../../types").Price;
46
- defaultPrice?: import("../../types").Price;
47
- defaultPreviousPrice?: import("../../types").Price;
48
- recommendedPrice?: import("../../types").Price;
49
- priceDateSpan?: import("../../types").ProductPriceDateSpan;
50
- customerComments?: import("../../types").ProductComment[];
51
- stockStatus?: import("../../types").StockStatus;
52
- customFields?: import("../../types").CustomField[];
53
- warehouseStock?: import("../../types").Warehouse[];
54
- recommendedProducts?: import("../../types").RecommendedProducts;
55
- distributionPackageSize: number;
56
- barcode?: string;
57
- configurations?: import("../../types").ProductConfiguration[];
58
- hasConfigurations: boolean;
59
- hasFamilyMembers: boolean;
60
- configurationPrice?: import("../../types").ProductConfigurationPrice;
61
- quantitySuffix?: string;
62
- isPreOrder?: boolean;
63
- preOrder?: import("../../types").ProductPreOrder;
64
- isPackage?: boolean;
65
- package?: import("../../types").Package;
66
- upsell?: import("../../types").Upsell;
67
- inPackages?: Product[];
68
- hasUpsell?: boolean;
69
- familyMembers?: Product[];
70
- history?: import("../../types").ProductHistory;
71
- }[];
72
- export declare function getVariantFromProductDetails(variant: Product['articleNumber'], product: Product): import("../../types").ProductVariant;
73
- export declare function flattenList(list: NormalizedProductList): FlattenedProductListItem[];
1
+ import { FlattenedProductListItem, NormalizedProductList, ProductsQuery } from '.';
2
+ import { CustomerProductList, Product } from '../../types';
3
+ /**
4
+ * Converts a product list returned from the API to our normalized structure
5
+ * When a base product is selected, it will have a value for `options`.
6
+ * When it has variants, it will have one or more keys for `variants`
7
+ * Either variants or options may be null, but not both.
8
+ */
9
+ export declare function normalizeServerList(productList: CustomerProductList): NormalizedProductList;
10
+ /**
11
+ * Takes a flattened product list and result of a products query and returns
12
+ * product details for each item in the flattened list. */
13
+ export declare function getProductDetailForFlattenedProductList(
14
+ /** May contain base products, variants, or a combination of both. */
15
+ flattenedList: FlattenedProductListItem[],
16
+ /** Contains the results of a products query, which returns only base products */
17
+ productQueryResult: ProductsQuery): {
18
+ validation: import(".").ProductListProductValidation;
19
+ quantity: number;
20
+ isVariant: boolean;
21
+ variant: import("../../types").ProductVariant;
22
+ head?: import("../../types").HtmlHead;
23
+ primaryRoute?: import("../../types").Route;
24
+ breadcrumbText?: string;
25
+ __typename?: "Product";
26
+ id: number;
27
+ articleNumber: string;
28
+ name: string;
29
+ subName: string;
30
+ shortDescription: string;
31
+ description: string;
32
+ mainHeader: string;
33
+ publishedDate?: any;
34
+ canonicalCategory?: import("../../types").Category;
35
+ categories?: import("../../types").Category[];
36
+ campaigns?: import("../../types").Category[];
37
+ hasVariants: boolean;
38
+ hasVariantsWithDifferingPrices: boolean;
39
+ variants?: import("../../types").ProductVariants;
40
+ images?: import("../../types").ProductImage[];
41
+ relatedProducts?: Product[];
42
+ badges?: import("../../types").ProductBadge[];
43
+ price?: import("../../types").Price;
44
+ hidePrice?: boolean;
45
+ previousPrice?: import("../../types").Price;
46
+ defaultPrice?: import("../../types").Price;
47
+ defaultPreviousPrice?: import("../../types").Price;
48
+ recommendedPrice?: import("../../types").Price;
49
+ priceDateSpan?: import("../../types").ProductPriceDateSpan;
50
+ customerComments?: import("../../types").ProductComment[];
51
+ stockStatus?: import("../../types").StockStatus;
52
+ customFields?: import("../../types").CustomField[];
53
+ warehouseStock?: import("../../types").Warehouse[];
54
+ recommendedProducts?: import("../../types").RecommendedProducts;
55
+ distributionPackageSize: number;
56
+ barcode?: string;
57
+ configurations?: import("../../types").ProductConfiguration[];
58
+ hasConfigurations: boolean;
59
+ hasFamilyMembers: boolean;
60
+ configurationPrice?: import("../../types").ProductConfigurationPrice;
61
+ quantitySuffix?: string;
62
+ isPreOrder?: boolean;
63
+ preOrder?: import("../../types").ProductPreOrder;
64
+ isPackage?: boolean;
65
+ package?: import("../../types").Package;
66
+ upsell?: import("../../types").Upsell;
67
+ inPackages?: Product[];
68
+ hasUpsell?: boolean;
69
+ familyMembers?: Product[];
70
+ history?: import("../../types").ProductHistory;
71
+ }[];
72
+ export declare function getVariantFromProductDetails(variant: Product['articleNumber'], product: Product): import("../../types").ProductVariant;
73
+ export declare function flattenList(list: NormalizedProductList): FlattenedProductListItem[];
@@ -1,107 +1,107 @@
1
- import produce from 'immer';
2
- import { validateProduct } from './validate-product';
3
- /**
4
- * Converts a product list returned from the API to our normalized structure
5
- * When a base product is selected, it will have a value for `options`.
6
- * When it has variants, it will have one or more keys for `variants`
7
- * Either variants or options may be null, but not both.
8
- */
9
- export function normalizeServerList(productList) {
10
- var _a, _b, _c, _d, _e;
11
- const items = productList.items;
12
- const newList = {
13
- name: productList.name,
14
- items: {}
15
- };
16
- for (const item of items) {
17
- // skip if product is hidden
18
- if (!((_a = item === null || item === void 0 ? void 0 : item.product) === null || _a === void 0 ? void 0 : _a.articleNumber)) {
19
- continue;
20
- }
21
- if (item.variant) {
22
- newList.items[item.product.articleNumber] = {
23
- options: ((_b = newList.items[item.product.articleNumber]) === null || _b === void 0 ? void 0 : _b.options) || null,
24
- variants: produce(((_c = newList.items[item.product.articleNumber]) === null || _c === void 0 ? void 0 : _c.variants) || {}, (draft) => {
25
- draft[item.variant.articleNumber] = {
26
- options: {
27
- quantity: item.quantity || 1,
28
- description: item.description
29
- },
30
- parentArticleNumber: item.product.articleNumber
31
- };
32
- })
33
- };
34
- }
35
- else {
36
- newList.items[item.product.articleNumber] = {
37
- variants: ((_d = newList.items[item.product.articleNumber]) === null || _d === void 0 ? void 0 : _d.variants) || null,
38
- options: {
39
- quantity: (_e = item.quantity) !== null && _e !== void 0 ? _e : 1,
40
- description: item.description
41
- }
42
- };
43
- }
44
- }
45
- return newList;
46
- }
47
- /**
48
- * Takes a flattened product list and result of a products query and returns
49
- * product details for each item in the flattened list. */
50
- export function getProductDetailForFlattenedProductList(
51
- /** May contain base products, variants, or a combination of both. */
52
- flattenedList,
53
- /** Contains the results of a products query, which returns only base products */
54
- productQueryResult) {
55
- const { data } = productQueryResult;
56
- const productsFromQuery = (data === null || data === void 0 ? void 0 : data.products) || [];
57
- return flattenedList
58
- .map((listItem) => {
59
- const baseProductArticleNumber = listItem.parentArticleNumber || listItem.articleNumber;
60
- // Find the base product in the query response
61
- const product = productsFromQuery.find((prod) => prod.articleNumber === baseProductArticleNumber);
62
- if (!product)
63
- return null;
64
- // Get the variant detail from the product
65
- const selectedVariant = getVariantFromProductDetails(listItem.articleNumber, product);
66
- const productListProduct = Object.assign(Object.assign({}, product), { quantity: listItem.options.quantity, isVariant: !!listItem.parentArticleNumber, variant: selectedVariant });
67
- return Object.assign(Object.assign({}, productListProduct), { validation: validateProduct(productListProduct) });
68
- })
69
- .filter(Boolean);
70
- }
71
- export function getVariantFromProductDetails(variant, product) {
72
- if (!variant)
73
- return null;
74
- const matchedVariant = product.variants.values.find((value) => value.articleNumber === variant);
75
- return matchedVariant || null;
76
- }
77
- export function flattenList(list) {
78
- const flattenedList = [];
79
- const baseProducts = list ? Object.keys(list.items) : [];
80
- for (const baseArticleNumber of baseProducts) {
81
- const variants = list.items[baseArticleNumber].variants;
82
- if (variants) {
83
- const variantArticleNumbers = Object.keys(variants);
84
- for (const articleNumber of variantArticleNumbers) {
85
- flattenedList.push({
86
- articleNumber,
87
- parentArticleNumber: baseArticleNumber,
88
- options: variants[articleNumber].options
89
- });
90
- }
91
- if (list.items[baseArticleNumber].options) {
92
- flattenedList.push({
93
- articleNumber: baseArticleNumber,
94
- options: list.items[baseArticleNumber].options
95
- });
96
- }
97
- }
98
- else {
99
- flattenedList.push({
100
- articleNumber: baseArticleNumber,
101
- options: list.items[baseArticleNumber].options
102
- });
103
- }
104
- }
105
- return flattenedList;
106
- }
1
+ import produce from 'immer';
2
+ import { validateProduct } from './validate-product';
3
+ /**
4
+ * Converts a product list returned from the API to our normalized structure
5
+ * When a base product is selected, it will have a value for `options`.
6
+ * When it has variants, it will have one or more keys for `variants`
7
+ * Either variants or options may be null, but not both.
8
+ */
9
+ export function normalizeServerList(productList) {
10
+ var _a, _b, _c, _d, _e;
11
+ const items = productList.items;
12
+ const newList = {
13
+ name: productList.name,
14
+ items: {}
15
+ };
16
+ for (const item of items) {
17
+ // skip if product is hidden
18
+ if (!((_a = item === null || item === void 0 ? void 0 : item.product) === null || _a === void 0 ? void 0 : _a.articleNumber)) {
19
+ continue;
20
+ }
21
+ if (item.variant) {
22
+ newList.items[item.product.articleNumber] = {
23
+ options: ((_b = newList.items[item.product.articleNumber]) === null || _b === void 0 ? void 0 : _b.options) || null,
24
+ variants: produce(((_c = newList.items[item.product.articleNumber]) === null || _c === void 0 ? void 0 : _c.variants) || {}, (draft) => {
25
+ draft[item.variant.articleNumber] = {
26
+ options: {
27
+ quantity: item.quantity || 1,
28
+ description: item.description
29
+ },
30
+ parentArticleNumber: item.product.articleNumber
31
+ };
32
+ })
33
+ };
34
+ }
35
+ else {
36
+ newList.items[item.product.articleNumber] = {
37
+ variants: ((_d = newList.items[item.product.articleNumber]) === null || _d === void 0 ? void 0 : _d.variants) || null,
38
+ options: {
39
+ quantity: (_e = item.quantity) !== null && _e !== void 0 ? _e : 1,
40
+ description: item.description
41
+ }
42
+ };
43
+ }
44
+ }
45
+ return newList;
46
+ }
47
+ /**
48
+ * Takes a flattened product list and result of a products query and returns
49
+ * product details for each item in the flattened list. */
50
+ export function getProductDetailForFlattenedProductList(
51
+ /** May contain base products, variants, or a combination of both. */
52
+ flattenedList,
53
+ /** Contains the results of a products query, which returns only base products */
54
+ productQueryResult) {
55
+ const { data } = productQueryResult;
56
+ const productsFromQuery = (data === null || data === void 0 ? void 0 : data.products) || [];
57
+ return flattenedList
58
+ .map((listItem) => {
59
+ const baseProductArticleNumber = listItem.parentArticleNumber || listItem.articleNumber;
60
+ // Find the base product in the query response
61
+ const product = productsFromQuery.find((prod) => prod.articleNumber === baseProductArticleNumber);
62
+ if (!product)
63
+ return null;
64
+ // Get the variant detail from the product
65
+ const selectedVariant = getVariantFromProductDetails(listItem.articleNumber, product);
66
+ const productListProduct = Object.assign(Object.assign({}, product), { quantity: listItem.options.quantity, isVariant: !!listItem.parentArticleNumber, variant: selectedVariant });
67
+ return Object.assign(Object.assign({}, productListProduct), { validation: validateProduct(productListProduct) });
68
+ })
69
+ .filter(Boolean);
70
+ }
71
+ export function getVariantFromProductDetails(variant, product) {
72
+ if (!variant)
73
+ return null;
74
+ const matchedVariant = product.variants.values.find((value) => value.articleNumber === variant);
75
+ return matchedVariant || null;
76
+ }
77
+ export function flattenList(list) {
78
+ const flattenedList = [];
79
+ const baseProducts = list ? Object.keys(list.items) : [];
80
+ for (const baseArticleNumber of baseProducts) {
81
+ const variants = list.items[baseArticleNumber].variants;
82
+ if (variants) {
83
+ const variantArticleNumbers = Object.keys(variants);
84
+ for (const articleNumber of variantArticleNumbers) {
85
+ flattenedList.push({
86
+ articleNumber,
87
+ parentArticleNumber: baseArticleNumber,
88
+ options: variants[articleNumber].options
89
+ });
90
+ }
91
+ if (list.items[baseArticleNumber].options) {
92
+ flattenedList.push({
93
+ articleNumber: baseArticleNumber,
94
+ options: list.items[baseArticleNumber].options
95
+ });
96
+ }
97
+ }
98
+ else {
99
+ flattenedList.push({
100
+ articleNumber: baseArticleNumber,
101
+ options: list.items[baseArticleNumber].options
102
+ });
103
+ }
104
+ }
105
+ return flattenedList;
106
+ }
107
107
  //# sourceMappingURL=list-transforms.js.map