@jetshop/core 5.13.10-0 → 5.14.0-alpha.49df897e

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 (557) 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 +372 -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 +514 -538
  15. package/ChannelHandler/redirectUtilsGroupedChannels.test.js +732 -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/formatSignupInput.d.ts +8 -8
  137. package/components/Auth/formatSignupInput.js +42 -42
  138. package/components/Auth/signup-context.d.ts +36 -36
  139. package/components/Auth/signup-context.js +71 -71
  140. package/components/Auth/signup-field-translations.d.ts +3 -3
  141. package/components/Auth/signup-field-translations.js +43 -43
  142. package/components/Auth/signupSubmit.d.ts +6 -6
  143. package/components/Auth/signupSubmit.js +56 -56
  144. package/components/Auth/useAddressFields.d.ts +22 -22
  145. package/components/Auth/useAddressFields.js +32 -32
  146. package/components/Auth/useAddressFields.test.js +294 -294
  147. package/components/Auth/useCustomer.d.ts +70 -70
  148. package/components/Auth/useCustomer.js +167 -167
  149. package/components/Auth/useLoginFields.d.ts +20 -20
  150. package/components/Auth/useLoginFields.js +20 -20
  151. package/components/Auth/useSignupForm.d.ts +7 -7
  152. package/components/Auth/useSignupForm.js +14 -14
  153. package/components/AuthContext/AuthContext.d.ts +8 -8
  154. package/components/AuthContext/AuthContext.js +8 -8
  155. package/components/AuthContext/AuthProvider.d.ts +6 -6
  156. package/components/AuthContext/AuthProvider.js +84 -84
  157. package/components/AuthContext/AuthProvider.js.map +1 -1
  158. package/components/AuthContext/AuthProvider.test.js +66 -66
  159. package/components/AuthContext/LogOut.d.ts +5 -5
  160. package/components/AuthContext/LogOut.js +14 -14
  161. package/components/AuthContext/googleUserIdQuery.gql +6 -6
  162. package/components/AuthContext/useAuth.d.ts +6 -6
  163. package/components/AuthContext/useAuth.js +20 -20
  164. package/components/BreakpointProvider.d.ts +21 -21
  165. package/components/BreakpointProvider.js +23 -23
  166. package/components/Cart/CartIdContext.d.ts +11 -11
  167. package/components/Cart/CartIdContext.js +60 -60
  168. package/components/Cart/CartIdContext.test.js +87 -87
  169. package/components/ChannelContext/ChannelContext.d.ts +21 -20
  170. package/components/ChannelContext/ChannelContext.js +3 -3
  171. package/components/ChannelContext/ChannelContext.js.map +1 -1
  172. package/components/ChannelContext/ChannelProvider.d.ts +10 -10
  173. package/components/ChannelContext/ChannelProvider.js +44 -42
  174. package/components/ChannelContext/ChannelProvider.js.map +1 -1
  175. package/components/ChannelContext/ChannelProvider.test.js +112 -112
  176. package/components/ChannelContext/CountrySettingsQuery.gql +34 -34
  177. package/components/ChannelContext/index.d.ts +2 -2
  178. package/components/ChannelContext/index.js +2 -2
  179. package/components/ChannelContext/useCountrySettings.d.ts +8 -8
  180. package/components/ChannelContext/useCountrySettings.js +23 -23
  181. package/components/ChannelContext/useCountrySettings.js.map +1 -1
  182. package/components/ConfigProvider.d.ts +107 -108
  183. package/components/ConfigProvider.js +19 -19
  184. package/components/ConfigProvider.js.map +1 -1
  185. package/components/DynamicRoute/ActiveFiltersQuery.gql +21 -21
  186. package/components/DynamicRoute/CategoryRoute.d.ts +13 -13
  187. package/components/DynamicRoute/CategoryRoute.js +55 -55
  188. package/components/DynamicRoute/ContentRoute.d.ts +14 -14
  189. package/components/DynamicRoute/ContentRoute.js +27 -27
  190. package/components/DynamicRoute/PreviewRoute.d.ts +17 -17
  191. package/components/DynamicRoute/PreviewRoute.js +57 -57
  192. package/components/DynamicRoute/ProductByArticlenumber.d.ts +5 -5
  193. package/components/DynamicRoute/ProductByArticlenumber.gql +16 -16
  194. package/components/DynamicRoute/ProductByArticlenumber.js +21 -21
  195. package/components/DynamicRoute/ProductRoute.d.ts +15 -15
  196. package/components/DynamicRoute/ProductRoute.js +57 -57
  197. package/components/DynamicRoute/RouteResolver.d.ts +22 -22
  198. package/components/DynamicRoute/RouteResolver.js +64 -64
  199. package/components/DynamicRoute/Status.d.ts +14 -14
  200. package/components/DynamicRoute/Status.js +19 -19
  201. package/components/DynamicRoute/index.d.ts +17 -17
  202. package/components/DynamicRoute/index.js +95 -95
  203. package/components/Filters/index.d.ts +1 -1
  204. package/components/Filters/index.js +1 -1
  205. package/components/Filters/toggleActiveListItem.gql +15 -15
  206. package/components/Filters/utils/replaceInSearch.d.ts +14 -14
  207. package/components/Filters/utils/replaceInSearch.js +22 -22
  208. package/components/Filters/utils/replaceInSearch.test.js +184 -184
  209. package/components/Filters/utils/updateHistory.d.ts +25 -25
  210. package/components/Filters/utils/updateHistory.js +29 -29
  211. package/components/Filters/utils/updateHistory.test.js +102 -102
  212. package/components/Fonts/CustomFont.d.ts +14 -14
  213. package/components/Fonts/CustomFont.js +16 -16
  214. package/components/Fonts/GoogleFont.d.ts +10 -10
  215. package/components/Fonts/GoogleFont.js +34 -34
  216. package/components/Fonts/TypekitFont.d.ts +16 -16
  217. package/components/Fonts/TypekitFont.js +24 -24
  218. package/components/Fonts/injectFont.d.ts +11 -11
  219. package/components/Fonts/injectFont.js +29 -29
  220. package/components/Head.d.ts +11 -11
  221. package/components/Head.js +79 -74
  222. package/components/Head.js.map +1 -1
  223. package/components/Mutation/AddToCart/addToCartUtils.d.ts +18 -18
  224. package/components/Mutation/AddToCart/addToCartUtils.js +51 -51
  225. package/components/Mutation/AddToCartFormik.d.ts +53 -53
  226. package/components/Mutation/AddToCartFormik.js +171 -171
  227. package/components/Mutation/DecrementQuantity.d.ts +4 -4
  228. package/components/Mutation/DecrementQuantity.js +34 -34
  229. package/components/Mutation/IncrementQuantity.d.ts +4 -4
  230. package/components/Mutation/IncrementQuantity.js +34 -34
  231. package/components/Mutation/RemoveFromCart.d.ts +5 -5
  232. package/components/Mutation/RemoveFromCart.js +51 -51
  233. package/components/Mutation/SetQuantity.d.ts +4 -4
  234. package/components/Mutation/SetQuantity.js +36 -36
  235. package/components/Mutation/SubscribeToNewsletter.d.ts +4 -4
  236. package/components/Mutation/SubscribeToNewsletter.js +29 -29
  237. package/components/Mutation/SubscribeToStockNotifications.d.ts +4 -4
  238. package/components/Mutation/SubscribeToStockNotifications.js +30 -30
  239. package/components/Mutation/cartMutationUtils.d.ts +28 -28
  240. package/components/Mutation/cartMutationUtils.js +108 -108
  241. package/components/Mutation/cartMutationUtils.spec.js +142 -142
  242. package/components/Mutation/useDecrementQuantity.d.ts +11 -11
  243. package/components/Mutation/useDecrementQuantity.js +53 -53
  244. package/components/Mutation/useIncrementQuantity.d.ts +11 -11
  245. package/components/Mutation/useIncrementQuantity.js +53 -53
  246. package/components/Mutation/useRemoveFromCart.d.ts +13 -13
  247. package/components/Mutation/useRemoveFromCart.js +49 -49
  248. package/components/Mutation/useSetQuantity.d.ts +12 -12
  249. package/components/Mutation/useSetQuantity.js +37 -37
  250. package/components/Notifications/Notifications.d.ts +15 -15
  251. package/components/Notifications/Notifications.js +26 -26
  252. package/components/Notifications/index.d.ts +2 -2
  253. package/components/Notifications/index.js +2 -2
  254. package/components/Notifications/notificationMachine.d.ts +30 -30
  255. package/components/Notifications/notificationMachine.js +73 -73
  256. package/components/Notifications/notificationsMachine.d.ts +37 -37
  257. package/components/Notifications/notificationsMachine.js +65 -65
  258. package/components/Notifications/useNotification.d.ts +9 -9
  259. package/components/Notifications/useNotification.js +26 -26
  260. package/components/OpenGraph/OpenGraph.test.js +180 -180
  261. package/components/OpenGraph/OpenGraphGeneralPageData.d.ts +25 -25
  262. package/components/OpenGraph/OpenGraphGeneralPageData.js +36 -36
  263. package/components/OpenGraph/OpenGraphGeneralPageData.js.map +1 -1
  264. package/components/OpenGraph/OpenGraphProductData.d.ts +25 -25
  265. package/components/OpenGraph/OpenGraphProductData.js +48 -48
  266. package/components/OpenGraph/OpenGraphProductData.js.map +1 -1
  267. package/components/OpenGraph/index.d.ts +2 -2
  268. package/components/OpenGraph/index.js +2 -2
  269. package/components/Pagination/PaginationContainer.d.ts +2 -2
  270. package/components/Pagination/PaginationContainer.js +4 -4
  271. package/components/Pagination/PaginationContext.d.ts +14 -14
  272. package/components/Pagination/PaginationContext.js +3 -3
  273. package/components/Pagination/PaginationProvider.d.ts +19 -19
  274. package/components/Pagination/PaginationProvider.js +94 -94
  275. package/components/Pagination/PaginationProvider.test.js +282 -282
  276. package/components/PreviewContext.d.ts +10 -10
  277. package/components/PreviewContext.js +26 -26
  278. package/components/ProductConfigurationProvider/ConfigPrice.gql +22 -22
  279. package/components/ProductConfigurationProvider/ProductConfigurationContext.d.ts +13 -13
  280. package/components/ProductConfigurationProvider/ProductConfigurationContext.js +4 -4
  281. package/components/ProductConfigurationProvider/ProductConfigurationProvider.d.ts +6 -6
  282. package/components/ProductConfigurationProvider/ProductConfigurationProvider.js +49 -49
  283. package/components/Query/CartProvider.d.ts +22 -22
  284. package/components/Query/CartProvider.js +67 -67
  285. package/components/SortOrder/SortOrderContainer.d.ts +40 -40
  286. package/components/SortOrder/SortOrderContainer.js +101 -101
  287. package/components/SortOrder/SortOrderContext.d.ts +9 -9
  288. package/components/SortOrder/SortOrderContext.js +8 -8
  289. package/components/StructuredData/SiteLinksSearchStructuredData.d.ts +3 -3
  290. package/components/StructuredData/SiteLinksSearchStructuredData.js +24 -24
  291. package/components/StructuredData/StructuredBreadcrumbData.d.ts +12 -12
  292. package/components/StructuredData/StructuredBreadcrumbData.js +54 -54
  293. package/components/StructuredData/StructuredCategoryData.d.ts +16 -16
  294. package/components/StructuredData/StructuredCategoryData.js +17 -17
  295. package/components/StructuredData/StructuredData.d.ts +9 -9
  296. package/components/StructuredData/StructuredData.js +6 -6
  297. package/components/StructuredData/StructuredPageData.d.ts +16 -16
  298. package/components/StructuredData/StructuredPageData.js +16 -16
  299. package/components/StructuredData/StructuredProductData.d.ts +18 -18
  300. package/components/StructuredData/StructuredProductData.js +42 -42
  301. package/components/StructuredData/StructuredProductData.test.js +130 -130
  302. package/components/StructuredData/index.d.ts +5 -5
  303. package/components/StructuredData/index.js +5 -5
  304. package/data/cache.d.ts +3 -3
  305. package/data/cache.js +20 -20
  306. package/data/fragmentTypes.d.ts +8 -8
  307. package/data/fragmentTypes.js +83 -83
  308. package/data/fragments/BadgeFragment.gql +7 -7
  309. package/data/fragments/CartCoreFragment.gql +89 -89
  310. package/data/fragments/ChannelsFragment.gql +59 -58
  311. package/data/fragments/CommentsFragment.gql +6 -6
  312. package/data/fragments/HeadFragment.gql +9 -9
  313. package/data/fragments/PriceFragment.gql +5 -5
  314. package/data/fragments/ProductCampaignFragment.gql +10 -10
  315. package/data/fragments/ProductConfigurationsFragment.gql +24 -24
  316. package/data/fragments/ProductListsFragments.gql +94 -94
  317. package/data/fragments/ProductMetadataFragment.gql +20 -20
  318. package/data/fragments/ProductPriceFragment.gql +10 -10
  319. package/data/fragments/ProductVariantPriceFragment.gql +10 -10
  320. package/data/fragments/RouteCrumbFragment.gql +20 -20
  321. package/data/fragments/RouteMetaFragment.gql +18 -18
  322. package/data/fragments/StockStatusFragment.gql +7 -7
  323. package/data/fragments/index.d.ts +1 -1
  324. package/data/fragments/index.js +1 -1
  325. package/data/mutations/accountMutations.gql +28 -28
  326. package/data/mutations/cartMutations.gql +41 -41
  327. package/data/mutations/productListMutations.gql +18 -18
  328. package/data/mutations/signup.gql +7 -7
  329. package/data/mutations/subscribeToNewsletter.gql +3 -3
  330. package/data/mutations/subscribeToStockNotifications.gql +6 -6
  331. package/data/mutations/updateCustomer.gql +5 -5
  332. package/data/mutations/updatePassword.gql +5 -5
  333. package/data/queries/CartMutationQuery.gql +36 -36
  334. package/data/queries/CartQuery.gql +7 -7
  335. package/data/queries/GetCustomerCountryCode.gql +9 -9
  336. package/data/queries/PersonLookupQuery.gql +28 -28
  337. package/data/queries/ProductLists.gql +8 -8
  338. package/dependencies.d.ts +104 -104
  339. package/errorReporting.browser.d.ts +3 -3
  340. package/errorReporting.browser.js +11 -11
  341. package/errorReporting.d.ts +3 -3
  342. package/errorReporting.js +19 -19
  343. package/errorReporting.server.d.ts +3 -3
  344. package/errorReporting.server.js +11 -11
  345. package/errorReporting.shared.d.ts +5 -5
  346. package/errorReporting.shared.js +16 -16
  347. package/experiments/ExperimentsProvider.d.ts +4 -4
  348. package/experiments/ExperimentsProvider.js +28 -28
  349. package/experiments/ExperimentsProvider.test.js +105 -105
  350. package/experiments/integration.test.js +76 -76
  351. package/experiments/selectExperimentVariant.d.ts +3 -3
  352. package/experiments/selectExperimentVariant.js +34 -34
  353. package/experiments/selectExperimentVariant.test.js +64 -64
  354. package/experiments/useExperiment.d.ts +2 -2
  355. package/experiments/useExperiment.js +10 -10
  356. package/experiments/useExperiment.test.js +100 -100
  357. package/global.d.ts +1 -1
  358. package/helpers/decodeUrlQuery.d.ts +9 -9
  359. package/helpers/decodeUrlQuery.js +26 -26
  360. package/helpers/decodeUrlQuery.test.js +54 -54
  361. package/helpers/distance.d.ts +7 -7
  362. package/helpers/distance.js +12 -12
  363. package/helpers/encodeVariant.d.ts +3 -3
  364. package/helpers/encodeVariant.js +24 -24
  365. package/helpers/getBreakpointsFromValues.d.ts +6 -6
  366. package/helpers/getBreakpointsFromValues.js +14 -14
  367. package/helpers/getBreakpointsFromValues.test.js +47 -47
  368. package/helpers/getCartItemVariant.d.ts +7 -7
  369. package/helpers/getCartItemVariant.js +8 -8
  370. package/helpers/getErrorDetail.d.ts +7 -7
  371. package/helpers/getErrorDetail.js +11 -11
  372. package/helpers/getErrorDetail.test.js +44 -44
  373. package/helpers/getHeaders.d.ts +6 -6
  374. package/helpers/getHeaders.js +3 -3
  375. package/helpers/isRelativeUrl.d.ts +1 -1
  376. package/helpers/isRelativeUrl.js +3 -3
  377. package/helpers/logError.d.ts +1 -1
  378. package/helpers/logError.js +16 -16
  379. package/helpers/logWarningInDev.d.ts +1 -1
  380. package/helpers/logWarningInDev.js +6 -6
  381. package/helpers/throwErrorInDev.d.ts +6 -6
  382. package/helpers/throwErrorInDev.js +14 -14
  383. package/helpers/uniqueId.d.ts +5 -5
  384. package/helpers/uniqueId.js +9 -9
  385. package/hooks/CartCheckoutQuery.gql +5 -5
  386. package/hooks/Channels/useChannelSettings.d.ts +7 -7
  387. package/hooks/Channels/useChannelSettings.js +11 -11
  388. package/hooks/Channels/useChannelSettings.js.map +1 -1
  389. package/hooks/Channels/useChannelSettings.test.js +51 -51
  390. package/hooks/Filters/useBooleanFilter.d.ts +8 -8
  391. package/hooks/Filters/useBooleanFilter.js +20 -20
  392. package/hooks/Filters/useFilters.d.ts +3 -3
  393. package/hooks/Filters/useFilters.js +15 -15
  394. package/hooks/Filters/useListFilter.d.ts +10 -10
  395. package/hooks/Filters/useListFilter.js +37 -37
  396. package/hooks/Filters/useMultiFilter.d.ts +13 -13
  397. package/hooks/Filters/useMultiFilter.js +49 -49
  398. package/hooks/Filters/useRangeFilter.d.ts +10 -10
  399. package/hooks/Filters/useRangeFilter.js +35 -35
  400. package/hooks/Filters/useSortOrder.d.ts +11 -11
  401. package/hooks/Filters/useSortOrder.js +21 -21
  402. package/hooks/FreeShippingQuery.gql +16 -16
  403. package/hooks/PackageProducts/index.d.ts +2 -2
  404. package/hooks/PackageProducts/index.js +2 -2
  405. package/hooks/PackageProducts/packagePriceQuery.gql +29 -29
  406. package/hooks/PackageProducts/usePackageProductItem.d.ts +17 -17
  407. package/hooks/PackageProducts/usePackageProductItem.js +26 -26
  408. package/hooks/PackageProducts/usePackageProducts.d.ts +19 -19
  409. package/hooks/PackageProducts/usePackageProducts.js +345 -345
  410. package/hooks/PackageProducts/usePackageProducts.test.js +383 -383
  411. package/hooks/Product/index.d.ts +1 -1
  412. package/hooks/Product/index.js +1 -1
  413. package/hooks/Product/useStockStatus.d.ts +9 -9
  414. package/hooks/Product/useStockStatus.js +25 -25
  415. package/hooks/Product/useSwitchToVariantImage.d.ts +9 -9
  416. package/hooks/Product/useSwitchToVariantImage.js +20 -20
  417. package/hooks/ProductList/ProductListContext.d.ts +7 -7
  418. package/hooks/ProductList/ProductListContext.js +110 -110
  419. package/hooks/ProductList/action-creators.d.ts +46 -46
  420. package/hooks/ProductList/action-creators.js +296 -296
  421. package/hooks/ProductList/index.d.ts +118 -118
  422. package/hooks/ProductList/index.js +21 -21
  423. package/hooks/ProductList/list-transforms.d.ts +73 -73
  424. package/hooks/ProductList/list-transforms.js +106 -106
  425. package/hooks/ProductList/list-transforms.test.js +489 -489
  426. package/hooks/ProductList/product-list-reducer.d.ts +76 -76
  427. package/hooks/ProductList/product-list-reducer.js +197 -197
  428. package/hooks/ProductList/product-list-reducer.test.js +464 -464
  429. package/hooks/ProductList/useProductList.d.ts +13 -13
  430. package/hooks/ProductList/useProductList.js +93 -93
  431. package/hooks/ProductList/useProductListItems.d.ts +10 -10
  432. package/hooks/ProductList/useProductListItems.js +48 -48
  433. package/hooks/ProductList/validate-product.d.ts +6 -6
  434. package/hooks/ProductList/validate-product.js +40 -40
  435. package/hooks/Subscriptions/useNewsletterSubscription.d.ts +38 -38
  436. package/hooks/Subscriptions/useNewsletterSubscription.js +41 -41
  437. package/hooks/Subscriptions/useStockNotifications.d.ts +36 -36
  438. package/hooks/Subscriptions/useStockNotifications.js +37 -37
  439. package/hooks/Subscriptions/useStoreSubscriptions.d.ts +48 -48
  440. package/hooks/Subscriptions/useStoreSubscriptions.js +150 -150
  441. package/hooks/Subscriptions/useStoresubscriptions.test.js +179 -179
  442. package/hooks/useAddMultipleToCart.d.ts +27 -27
  443. package/hooks/useAddMultipleToCart.js +113 -113
  444. package/hooks/useAddMultipleToCart.test.js +181 -181
  445. package/hooks/useChannelBanner.js +22 -22
  446. package/hooks/useChannelBanner.test.js +77 -77
  447. package/hooks/useCustomerOrders.test.js +176 -176
  448. package/hooks/useCustomerOrdersQuery.d.ts +21 -21
  449. package/hooks/useCustomerOrdersQuery.js +20 -20
  450. package/hooks/useDeleteAccountMutation.d.ts +15 -15
  451. package/hooks/useDeleteAccountMutation.js +38 -38
  452. package/hooks/useDynamicPrice.d.ts +3 -3
  453. package/hooks/useDynamicPrice.js +24 -24
  454. package/hooks/useFreeShippingCheck.d.ts +15 -15
  455. package/hooks/useFreeShippingCheck.js +30 -30
  456. package/hooks/useGeolocation.d.ts +11 -11
  457. package/hooks/useGeolocation.js +33 -33
  458. package/hooks/useInfinitePagination.d.ts +37 -37
  459. package/hooks/useInfinitePagination.js +138 -138
  460. package/hooks/useLogError.d.ts +1 -1
  461. package/hooks/useLogError.js +7 -7
  462. package/hooks/useLoginMutation.d.ts +12 -12
  463. package/hooks/useLoginMutation.js +14 -14
  464. package/hooks/useLoginRedirect.d.ts +4 -4
  465. package/hooks/useLoginRedirect.js +36 -36
  466. package/hooks/useOrderDetailQuery.d.ts +20 -20
  467. package/hooks/useOrderDetailQuery.js +28 -28
  468. package/hooks/usePreconnectLinks.d.ts +10 -10
  469. package/hooks/usePreconnectLinks.js +29 -29
  470. package/hooks/usePreconnectLinks.test.js +95 -95
  471. package/hooks/usePrice.d.ts +39 -39
  472. package/hooks/usePrice.js +71 -71
  473. package/hooks/usePrice.test.js +171 -171
  474. package/hooks/useProductVariants/index.d.ts +1 -1
  475. package/hooks/useProductVariants/index.js +1 -1
  476. package/hooks/useProductVariants/useProductVariants.d.ts +19 -19
  477. package/hooks/useProductVariants/useProductVariants.js +202 -202
  478. package/hooks/useProductVariants/useProductVariants.test.js +415 -415
  479. package/hooks/useProductVariants/useVariantFromUrl.d.ts +5 -5
  480. package/hooks/useProductVariants/useVariantFromUrl.js +15 -15
  481. package/hooks/useProductVariants/useVariantFromUrl.test.js +79 -79
  482. package/hooks/useRoutePreload.d.ts +24 -24
  483. package/hooks/useRoutePreload.js +39 -39
  484. package/hooks/useShopConfig.d.ts +1 -1
  485. package/hooks/useShopConfig.js +10 -10
  486. package/hooks/useShopConfig.js.map +1 -1
  487. package/hooks/useThrowErrorInDev.d.ts +1 -1
  488. package/hooks/useThrowErrorInDev.js +7 -7
  489. package/hooks/useThunkReducer.d.ts +7 -7
  490. package/hooks/useThunkReducer.js +23 -23
  491. package/hooks/useWarningInDev.d.ts +1 -1
  492. package/hooks/useWarningInDev.js +9 -9
  493. package/inServer.d.ts +1 -1
  494. package/inServer.js +2 -2
  495. package/index.d.ts +1 -1
  496. package/index.js +1 -1
  497. package/integrations/addwishSchemaExtension.d.ts +35 -35
  498. package/integrations/addwishSchemaExtension.js +140 -140
  499. package/integrations/nostoSchemaExtension.d.ts +5 -5
  500. package/integrations/nostoSchemaExtension.js +76 -76
  501. package/integrations/sluggishSchemaExtension.d.ts +2 -2
  502. package/integrations/sluggishSchemaExtension.js +26 -26
  503. package/package.json +2 -2
  504. package/polyfills.d.ts +1 -1
  505. package/polyfills.js +37 -37
  506. package/registerServiceWorker.js +110 -110
  507. package/resolvers/filters/boolFilter.d.ts +3 -3
  508. package/resolvers/filters/boolFilter.js +84 -84
  509. package/resolvers/filters/defaultActiveFilters.d.ts +3 -3
  510. package/resolvers/filters/defaultActiveFilters.js +8 -8
  511. package/resolvers/filters/filterParams.d.ts +3 -3
  512. package/resolvers/filters/filterParams.js +84 -84
  513. package/resolvers/filters/filters.d.ts +5 -5
  514. package/resolvers/filters/filters.js +78 -78
  515. package/resolvers/filters/index.d.ts +27 -27
  516. package/resolvers/filters/index.js +7 -7
  517. package/resolvers/filters/listFilter.d.ts +7 -7
  518. package/resolvers/filters/listFilter.js +73 -73
  519. package/resolvers/filters/listFilterItem.d.ts +3 -3
  520. package/resolvers/filters/listFilterItem.js +122 -122
  521. package/resolvers/filters/multiListFilter.d.ts +5 -5
  522. package/resolvers/filters/multiListFilter.js +195 -195
  523. package/resolvers/filters/multiListFilterList.d.ts +3 -3
  524. package/resolvers/filters/multiListFilterList.js +55 -55
  525. package/resolvers/filters/rangeFilter.d.ts +5 -5
  526. package/resolvers/filters/rangeFilter.js +137 -137
  527. package/resolvers/filters/updateQueryString.d.ts +12 -12
  528. package/resolvers/filters/updateQueryString.js +116 -116
  529. package/resolvers/index.d.ts +37 -37
  530. package/resolvers/index.js +37 -37
  531. package/scripts/dev-apolloServer.js +31 -31
  532. package/sentry/client.d.ts +1 -1
  533. package/sentry/client.js +29 -29
  534. package/sentry/common.d.ts +1 -1
  535. package/sentry/common.js +4 -4
  536. package/sentry/server.d.ts +1 -1
  537. package/sentry/server.js +19 -19
  538. package/sentry/utils.d.ts +1 -1
  539. package/sentry/utils.js +1 -1
  540. package/server/graphql.d.ts +20 -20
  541. package/server/graphql.js +118 -118
  542. package/server/graphql.test.js +123 -123
  543. package/server/index.d.ts +2 -2
  544. package/server/index.js +2 -2
  545. package/server/tracking/facebook.d.ts +5 -5
  546. package/server/tracking/facebook.js +132 -132
  547. package/server/tracking/middleware.d.ts +8 -8
  548. package/server/tracking/middleware.js +14 -14
  549. package/server/tracking/types.d.ts +33 -33
  550. package/setupTests.js +2 -2
  551. package/test-utils/ProviderPyramid.js +45 -45
  552. package/test-utils/mockShopConfig.js +26 -26
  553. package/test-utils/mockedProduct.js +253 -253
  554. package/test-utils/renderWithRouter.js +20 -20
  555. package/test-utils/variables.js +2465 -1231
  556. package/time.d.ts +1 -1
  557. 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