@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.
- package/ChannelHandler/CategoryPathnameRedirectQuery.gql +9 -9
- package/ChannelHandler/ChannelHandler.d.ts +52 -50
- package/ChannelHandler/ChannelHandler.js +114 -108
- package/ChannelHandler/ChannelHandler.js.map +1 -1
- package/ChannelHandler/PagePathnameRedirectQuery.gql +9 -9
- package/ChannelHandler/PreserveRedirectRouteQuery.gql +19 -19
- package/ChannelHandler/ProductPathnameRedirectQuery.gql +9 -9
- package/ChannelHandler/StartPagePathnameRedirectQuery.gql +9 -9
- package/ChannelHandler/channelUtils.d.ts +72 -68
- package/ChannelHandler/channelUtils.js +372 -266
- package/ChannelHandler/channelUtils.js.map +1 -1
- package/ChannelHandler/redirectUtils.d.ts +4 -4
- package/ChannelHandler/redirectUtils.js +49 -49
- package/ChannelHandler/redirectUtils.test.js +514 -538
- package/ChannelHandler/redirectUtilsGroupedChannels.test.js +732 -0
- package/analytics/Analytics.d.ts +18 -18
- package/analytics/Analytics.js +56 -56
- package/analytics/AnalyticsProvider.d.ts +42 -42
- package/analytics/AnalyticsProvider.js +177 -177
- package/analytics/AnalyticsProvider.js.map +1 -1
- package/analytics/deprecatedTracking.d.ts +17 -17
- package/analytics/deprecatedTracking.js +32 -32
- package/analytics/integrations/ga4.d.ts +23 -23
- package/analytics/integrations/ga4.js +144 -145
- package/analytics/integrations/ga4.js.map +1 -1
- package/analytics/integrations/gtag/gtag.d.ts +8 -8
- package/analytics/integrations/gtag/gtag.js +180 -180
- package/analytics/integrations/gtag/index.d.ts +1 -1
- package/analytics/integrations/gtag/index.js +1 -1
- package/analytics/integrations/gtm/index.d.ts +12 -12
- package/analytics/integrations/gtm/index.js +200 -200
- package/analytics/integrations/gtm/referrerModifier.d.ts +1 -1
- package/analytics/integrations/gtm/referrerModifier.js +61 -61
- package/analytics/integrations/releware/index.d.ts +3 -3
- package/analytics/integrations/releware/index.js +38 -38
- package/analytics/integrations/unslugify.d.ts +1 -1
- package/analytics/integrations/unslugify.js +15 -17
- package/analytics/integrations/unslugify.js.map +1 -1
- package/analytics/trackerRegistry.d.ts +101 -101
- package/analytics/trackerRegistry.js +219 -219
- package/analytics/trackerRegistry.test.js +160 -160
- package/analytics/tracking.d.ts +14 -14
- package/analytics/tracking.js +71 -71
- package/analytics/utils/breadcrumbsWithoutProduct.d.ts +1 -1
- package/analytics/utils/breadcrumbsWithoutProduct.js +8 -8
- package/analytics/utils/script.d.ts +8 -8
- package/analytics/utils/script.js +39 -39
- package/analytics/webVitals.d.ts +5 -5
- package/analytics/webVitals.js +38 -38
- package/boot/AuthHandler.d.ts +14 -14
- package/boot/AuthHandler.js +38 -38
- package/boot/ChannelsQuery.gql +7 -7
- package/boot/PreviewHandler.d.ts +7 -7
- package/boot/PreviewHandler.js +13 -13
- package/boot/SharedTree.d.ts +25 -25
- package/boot/SharedTree.js +28 -28
- package/boot/addMissingConfig.d.ts +5 -5
- package/boot/addMissingConfig.js +33 -33
- package/boot/apollo.d.ts +21 -21
- package/boot/apollo.js +197 -197
- package/boot/client/entrypoint.d.ts +1 -1
- package/boot/client/entrypoint.js +4 -4
- package/boot/client/index.d.ts +1 -1
- package/boot/client/index.js +1 -1
- package/boot/client/startClient.d.ts +4 -4
- package/boot/client/startClient.js +142 -142
- package/boot/client-schema.gql +59 -59
- package/boot/server/IntervalQuery.d.ts +32 -32
- package/boot/server/IntervalQuery.js +94 -94
- package/boot/server/IntervalQuery.test.js +280 -280
- package/boot/server/PersistedApolloClient.d.ts +20 -20
- package/boot/server/PersistedApolloClient.js +39 -39
- package/boot/server/PersistedApolloClient.test.js +233 -233
- package/boot/server/asyncErrorHandler.d.ts +3 -3
- package/boot/server/asyncErrorHandler.js +4 -4
- package/boot/server/breakpointMiddleware.d.ts +3 -3
- package/boot/server/breakpointMiddleware.js +9 -9
- package/boot/server/createApolloServer.d.ts +28 -28
- package/boot/server/createApolloServer.js +143 -143
- package/boot/server/createApolloServer.test.js +114 -114
- package/boot/server/createDevServer.d.ts +14 -14
- package/boot/server/createDevServer.js +29 -29
- package/boot/server/createRenderer.d.ts +28 -28
- package/boot/server/createRenderer.js +235 -235
- package/boot/server/createServer.d.ts +14 -14
- package/boot/server/createServer.js +41 -41
- package/boot/server/entrypoint.d.ts +1 -1
- package/boot/server/entrypoint.js +35 -35
- package/boot/server/getPrefetchFiles.d.ts +10 -10
- package/boot/server/getPrefetchFiles.js +19 -19
- package/boot/server/getPreloadAssets.d.ts +10 -10
- package/boot/server/getPreloadAssets.js +17 -17
- package/boot/server/getPreloadAssets.test.js +133 -133
- package/boot/server/index.d.ts +9 -9
- package/boot/server/index.js +122 -122
- package/boot/server/listen.d.ts +13 -13
- package/boot/server/listen.js +16 -16
- package/boot/server/overwriteServerIntl.js +1 -1
- package/boot/server/persistedQueries/PersistedClient.d.ts +22 -22
- package/boot/server/persistedQueries/PersistedClient.js +57 -57
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +201 -201
- package/boot/server/persistedQueries/__tests__/mockQuery.gql +6 -6
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.d.ts +3 -3
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +26 -26
- package/boot/server/saleSource.test.js +39 -39
- package/boot/server/salesSource.d.ts +8 -8
- package/boot/server/salesSource.js +15 -15
- package/boot/utils/__tests__/uid.js +47 -47
- package/boot/utils/createIntOptions.d.ts +6 -6
- package/boot/utils/createIntOptions.js +18 -18
- package/boot/utils/queryLoggingMiddleware.d.ts +2 -2
- package/boot/utils/queryLoggingMiddleware.js +14 -14
- package/boot/utils/uid.d.ts +3 -3
- package/boot/utils/uid.js +19 -19
- package/cart/AddToCartFormik.d.ts +42 -42
- package/cart/AddToCartFormik.js +76 -76
- package/cart/useAddToCart.d.ts +88 -88
- package/cart/useAddToCart.js +117 -117
- package/ci/.gitlab-ci.yml +3 -3
- package/components/Auth/CustomerUpdateForm.d.ts +32 -32
- package/components/Auth/CustomerUpdateForm.js +121 -121
- package/components/Auth/ForgotPasswordProvider.d.ts +71 -71
- package/components/Auth/ForgotPasswordProvider.js +56 -56
- package/components/Auth/ResetPasswordProvider.d.ts +88 -88
- package/components/Auth/ResetPasswordProvider.js +77 -77
- package/components/Auth/SSN.d.ts +12 -12
- package/components/Auth/SSN.js +34 -34
- package/components/Auth/SSNLookupContainer.d.ts +15 -15
- package/components/Auth/SSNLookupContainer.js +19 -19
- package/components/Auth/SignupFormContainer.d.ts +19 -19
- package/components/Auth/SignupFormContainer.js +81 -81
- package/components/Auth/UpdatePasswordForm.d.ts +44 -44
- package/components/Auth/UpdatePasswordForm.js +97 -97
- package/components/Auth/formFieldsFromSettings.d.ts +65 -65
- package/components/Auth/formFieldsFromSettings.js +76 -76
- package/components/Auth/formatSignupInput.d.ts +8 -8
- package/components/Auth/formatSignupInput.js +42 -42
- package/components/Auth/signup-context.d.ts +36 -36
- package/components/Auth/signup-context.js +71 -71
- package/components/Auth/signup-field-translations.d.ts +3 -3
- package/components/Auth/signup-field-translations.js +43 -43
- package/components/Auth/signupSubmit.d.ts +6 -6
- package/components/Auth/signupSubmit.js +56 -56
- package/components/Auth/useAddressFields.d.ts +22 -22
- package/components/Auth/useAddressFields.js +32 -32
- package/components/Auth/useAddressFields.test.js +294 -294
- package/components/Auth/useCustomer.d.ts +70 -70
- package/components/Auth/useCustomer.js +167 -167
- package/components/Auth/useLoginFields.d.ts +20 -20
- package/components/Auth/useLoginFields.js +20 -20
- package/components/Auth/useSignupForm.d.ts +7 -7
- package/components/Auth/useSignupForm.js +14 -14
- package/components/AuthContext/AuthContext.d.ts +8 -8
- package/components/AuthContext/AuthContext.js +8 -8
- package/components/AuthContext/AuthProvider.d.ts +6 -6
- package/components/AuthContext/AuthProvider.js +84 -84
- package/components/AuthContext/AuthProvider.js.map +1 -1
- package/components/AuthContext/AuthProvider.test.js +66 -66
- package/components/AuthContext/LogOut.d.ts +5 -5
- package/components/AuthContext/LogOut.js +14 -14
- package/components/AuthContext/googleUserIdQuery.gql +6 -6
- package/components/AuthContext/useAuth.d.ts +6 -6
- package/components/AuthContext/useAuth.js +20 -20
- package/components/BreakpointProvider.d.ts +21 -21
- package/components/BreakpointProvider.js +23 -23
- package/components/Cart/CartIdContext.d.ts +11 -11
- package/components/Cart/CartIdContext.js +60 -60
- package/components/Cart/CartIdContext.test.js +87 -87
- package/components/ChannelContext/ChannelContext.d.ts +21 -20
- package/components/ChannelContext/ChannelContext.js +3 -3
- package/components/ChannelContext/ChannelContext.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.d.ts +10 -10
- package/components/ChannelContext/ChannelProvider.js +44 -42
- package/components/ChannelContext/ChannelProvider.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.test.js +112 -112
- package/components/ChannelContext/CountrySettingsQuery.gql +34 -34
- package/components/ChannelContext/index.d.ts +2 -2
- package/components/ChannelContext/index.js +2 -2
- package/components/ChannelContext/useCountrySettings.d.ts +8 -8
- package/components/ChannelContext/useCountrySettings.js +23 -23
- package/components/ChannelContext/useCountrySettings.js.map +1 -1
- package/components/ConfigProvider.d.ts +107 -108
- package/components/ConfigProvider.js +19 -19
- package/components/ConfigProvider.js.map +1 -1
- package/components/DynamicRoute/ActiveFiltersQuery.gql +21 -21
- package/components/DynamicRoute/CategoryRoute.d.ts +13 -13
- package/components/DynamicRoute/CategoryRoute.js +55 -55
- package/components/DynamicRoute/ContentRoute.d.ts +14 -14
- package/components/DynamicRoute/ContentRoute.js +27 -27
- package/components/DynamicRoute/PreviewRoute.d.ts +17 -17
- package/components/DynamicRoute/PreviewRoute.js +57 -57
- package/components/DynamicRoute/ProductByArticlenumber.d.ts +5 -5
- package/components/DynamicRoute/ProductByArticlenumber.gql +16 -16
- package/components/DynamicRoute/ProductByArticlenumber.js +21 -21
- package/components/DynamicRoute/ProductRoute.d.ts +15 -15
- package/components/DynamicRoute/ProductRoute.js +57 -57
- package/components/DynamicRoute/RouteResolver.d.ts +22 -22
- package/components/DynamicRoute/RouteResolver.js +64 -64
- package/components/DynamicRoute/Status.d.ts +14 -14
- package/components/DynamicRoute/Status.js +19 -19
- package/components/DynamicRoute/index.d.ts +17 -17
- package/components/DynamicRoute/index.js +95 -95
- package/components/Filters/index.d.ts +1 -1
- package/components/Filters/index.js +1 -1
- package/components/Filters/toggleActiveListItem.gql +15 -15
- package/components/Filters/utils/replaceInSearch.d.ts +14 -14
- package/components/Filters/utils/replaceInSearch.js +22 -22
- package/components/Filters/utils/replaceInSearch.test.js +184 -184
- package/components/Filters/utils/updateHistory.d.ts +25 -25
- package/components/Filters/utils/updateHistory.js +29 -29
- package/components/Filters/utils/updateHistory.test.js +102 -102
- package/components/Fonts/CustomFont.d.ts +14 -14
- package/components/Fonts/CustomFont.js +16 -16
- package/components/Fonts/GoogleFont.d.ts +10 -10
- package/components/Fonts/GoogleFont.js +34 -34
- package/components/Fonts/TypekitFont.d.ts +16 -16
- package/components/Fonts/TypekitFont.js +24 -24
- package/components/Fonts/injectFont.d.ts +11 -11
- package/components/Fonts/injectFont.js +29 -29
- package/components/Head.d.ts +11 -11
- package/components/Head.js +79 -74
- package/components/Head.js.map +1 -1
- package/components/Mutation/AddToCart/addToCartUtils.d.ts +18 -18
- package/components/Mutation/AddToCart/addToCartUtils.js +51 -51
- package/components/Mutation/AddToCartFormik.d.ts +53 -53
- package/components/Mutation/AddToCartFormik.js +171 -171
- package/components/Mutation/DecrementQuantity.d.ts +4 -4
- package/components/Mutation/DecrementQuantity.js +34 -34
- package/components/Mutation/IncrementQuantity.d.ts +4 -4
- package/components/Mutation/IncrementQuantity.js +34 -34
- package/components/Mutation/RemoveFromCart.d.ts +5 -5
- package/components/Mutation/RemoveFromCart.js +51 -51
- package/components/Mutation/SetQuantity.d.ts +4 -4
- package/components/Mutation/SetQuantity.js +36 -36
- package/components/Mutation/SubscribeToNewsletter.d.ts +4 -4
- package/components/Mutation/SubscribeToNewsletter.js +29 -29
- package/components/Mutation/SubscribeToStockNotifications.d.ts +4 -4
- package/components/Mutation/SubscribeToStockNotifications.js +30 -30
- package/components/Mutation/cartMutationUtils.d.ts +28 -28
- package/components/Mutation/cartMutationUtils.js +108 -108
- package/components/Mutation/cartMutationUtils.spec.js +142 -142
- package/components/Mutation/useDecrementQuantity.d.ts +11 -11
- package/components/Mutation/useDecrementQuantity.js +53 -53
- package/components/Mutation/useIncrementQuantity.d.ts +11 -11
- package/components/Mutation/useIncrementQuantity.js +53 -53
- package/components/Mutation/useRemoveFromCart.d.ts +13 -13
- package/components/Mutation/useRemoveFromCart.js +49 -49
- package/components/Mutation/useSetQuantity.d.ts +12 -12
- package/components/Mutation/useSetQuantity.js +37 -37
- package/components/Notifications/Notifications.d.ts +15 -15
- package/components/Notifications/Notifications.js +26 -26
- package/components/Notifications/index.d.ts +2 -2
- package/components/Notifications/index.js +2 -2
- package/components/Notifications/notificationMachine.d.ts +30 -30
- package/components/Notifications/notificationMachine.js +73 -73
- package/components/Notifications/notificationsMachine.d.ts +37 -37
- package/components/Notifications/notificationsMachine.js +65 -65
- package/components/Notifications/useNotification.d.ts +9 -9
- package/components/Notifications/useNotification.js +26 -26
- package/components/OpenGraph/OpenGraph.test.js +180 -180
- package/components/OpenGraph/OpenGraphGeneralPageData.d.ts +25 -25
- package/components/OpenGraph/OpenGraphGeneralPageData.js +36 -36
- package/components/OpenGraph/OpenGraphGeneralPageData.js.map +1 -1
- package/components/OpenGraph/OpenGraphProductData.d.ts +25 -25
- package/components/OpenGraph/OpenGraphProductData.js +48 -48
- package/components/OpenGraph/OpenGraphProductData.js.map +1 -1
- package/components/OpenGraph/index.d.ts +2 -2
- package/components/OpenGraph/index.js +2 -2
- package/components/Pagination/PaginationContainer.d.ts +2 -2
- package/components/Pagination/PaginationContainer.js +4 -4
- package/components/Pagination/PaginationContext.d.ts +14 -14
- package/components/Pagination/PaginationContext.js +3 -3
- package/components/Pagination/PaginationProvider.d.ts +19 -19
- package/components/Pagination/PaginationProvider.js +94 -94
- package/components/Pagination/PaginationProvider.test.js +282 -282
- package/components/PreviewContext.d.ts +10 -10
- package/components/PreviewContext.js +26 -26
- package/components/ProductConfigurationProvider/ConfigPrice.gql +22 -22
- package/components/ProductConfigurationProvider/ProductConfigurationContext.d.ts +13 -13
- package/components/ProductConfigurationProvider/ProductConfigurationContext.js +4 -4
- package/components/ProductConfigurationProvider/ProductConfigurationProvider.d.ts +6 -6
- package/components/ProductConfigurationProvider/ProductConfigurationProvider.js +49 -49
- package/components/Query/CartProvider.d.ts +22 -22
- package/components/Query/CartProvider.js +67 -67
- package/components/SortOrder/SortOrderContainer.d.ts +40 -40
- package/components/SortOrder/SortOrderContainer.js +101 -101
- package/components/SortOrder/SortOrderContext.d.ts +9 -9
- package/components/SortOrder/SortOrderContext.js +8 -8
- package/components/StructuredData/SiteLinksSearchStructuredData.d.ts +3 -3
- package/components/StructuredData/SiteLinksSearchStructuredData.js +24 -24
- package/components/StructuredData/StructuredBreadcrumbData.d.ts +12 -12
- package/components/StructuredData/StructuredBreadcrumbData.js +54 -54
- package/components/StructuredData/StructuredCategoryData.d.ts +16 -16
- package/components/StructuredData/StructuredCategoryData.js +17 -17
- package/components/StructuredData/StructuredData.d.ts +9 -9
- package/components/StructuredData/StructuredData.js +6 -6
- package/components/StructuredData/StructuredPageData.d.ts +16 -16
- package/components/StructuredData/StructuredPageData.js +16 -16
- package/components/StructuredData/StructuredProductData.d.ts +18 -18
- package/components/StructuredData/StructuredProductData.js +42 -42
- package/components/StructuredData/StructuredProductData.test.js +130 -130
- package/components/StructuredData/index.d.ts +5 -5
- package/components/StructuredData/index.js +5 -5
- package/data/cache.d.ts +3 -3
- package/data/cache.js +20 -20
- package/data/fragmentTypes.d.ts +8 -8
- package/data/fragmentTypes.js +83 -83
- package/data/fragments/BadgeFragment.gql +7 -7
- package/data/fragments/CartCoreFragment.gql +89 -89
- package/data/fragments/ChannelsFragment.gql +59 -58
- package/data/fragments/CommentsFragment.gql +6 -6
- package/data/fragments/HeadFragment.gql +9 -9
- package/data/fragments/PriceFragment.gql +5 -5
- package/data/fragments/ProductCampaignFragment.gql +10 -10
- package/data/fragments/ProductConfigurationsFragment.gql +24 -24
- package/data/fragments/ProductListsFragments.gql +94 -94
- package/data/fragments/ProductMetadataFragment.gql +20 -20
- package/data/fragments/ProductPriceFragment.gql +10 -10
- package/data/fragments/ProductVariantPriceFragment.gql +10 -10
- package/data/fragments/RouteCrumbFragment.gql +20 -20
- package/data/fragments/RouteMetaFragment.gql +18 -18
- package/data/fragments/StockStatusFragment.gql +7 -7
- package/data/fragments/index.d.ts +1 -1
- package/data/fragments/index.js +1 -1
- package/data/mutations/accountMutations.gql +28 -28
- package/data/mutations/cartMutations.gql +41 -41
- package/data/mutations/productListMutations.gql +18 -18
- package/data/mutations/signup.gql +7 -7
- package/data/mutations/subscribeToNewsletter.gql +3 -3
- package/data/mutations/subscribeToStockNotifications.gql +6 -6
- package/data/mutations/updateCustomer.gql +5 -5
- package/data/mutations/updatePassword.gql +5 -5
- package/data/queries/CartMutationQuery.gql +36 -36
- package/data/queries/CartQuery.gql +7 -7
- package/data/queries/GetCustomerCountryCode.gql +9 -9
- package/data/queries/PersonLookupQuery.gql +28 -28
- package/data/queries/ProductLists.gql +8 -8
- package/dependencies.d.ts +104 -104
- package/errorReporting.browser.d.ts +3 -3
- package/errorReporting.browser.js +11 -11
- package/errorReporting.d.ts +3 -3
- package/errorReporting.js +19 -19
- package/errorReporting.server.d.ts +3 -3
- package/errorReporting.server.js +11 -11
- package/errorReporting.shared.d.ts +5 -5
- package/errorReporting.shared.js +16 -16
- package/experiments/ExperimentsProvider.d.ts +4 -4
- package/experiments/ExperimentsProvider.js +28 -28
- package/experiments/ExperimentsProvider.test.js +105 -105
- package/experiments/integration.test.js +76 -76
- package/experiments/selectExperimentVariant.d.ts +3 -3
- package/experiments/selectExperimentVariant.js +34 -34
- package/experiments/selectExperimentVariant.test.js +64 -64
- package/experiments/useExperiment.d.ts +2 -2
- package/experiments/useExperiment.js +10 -10
- package/experiments/useExperiment.test.js +100 -100
- package/global.d.ts +1 -1
- package/helpers/decodeUrlQuery.d.ts +9 -9
- package/helpers/decodeUrlQuery.js +26 -26
- package/helpers/decodeUrlQuery.test.js +54 -54
- package/helpers/distance.d.ts +7 -7
- package/helpers/distance.js +12 -12
- package/helpers/encodeVariant.d.ts +3 -3
- package/helpers/encodeVariant.js +24 -24
- package/helpers/getBreakpointsFromValues.d.ts +6 -6
- package/helpers/getBreakpointsFromValues.js +14 -14
- package/helpers/getBreakpointsFromValues.test.js +47 -47
- package/helpers/getCartItemVariant.d.ts +7 -7
- package/helpers/getCartItemVariant.js +8 -8
- package/helpers/getErrorDetail.d.ts +7 -7
- package/helpers/getErrorDetail.js +11 -11
- package/helpers/getErrorDetail.test.js +44 -44
- package/helpers/getHeaders.d.ts +6 -6
- package/helpers/getHeaders.js +3 -3
- package/helpers/isRelativeUrl.d.ts +1 -1
- package/helpers/isRelativeUrl.js +3 -3
- package/helpers/logError.d.ts +1 -1
- package/helpers/logError.js +16 -16
- package/helpers/logWarningInDev.d.ts +1 -1
- package/helpers/logWarningInDev.js +6 -6
- package/helpers/throwErrorInDev.d.ts +6 -6
- package/helpers/throwErrorInDev.js +14 -14
- package/helpers/uniqueId.d.ts +5 -5
- package/helpers/uniqueId.js +9 -9
- package/hooks/CartCheckoutQuery.gql +5 -5
- package/hooks/Channels/useChannelSettings.d.ts +7 -7
- package/hooks/Channels/useChannelSettings.js +11 -11
- package/hooks/Channels/useChannelSettings.js.map +1 -1
- package/hooks/Channels/useChannelSettings.test.js +51 -51
- package/hooks/Filters/useBooleanFilter.d.ts +8 -8
- package/hooks/Filters/useBooleanFilter.js +20 -20
- package/hooks/Filters/useFilters.d.ts +3 -3
- package/hooks/Filters/useFilters.js +15 -15
- package/hooks/Filters/useListFilter.d.ts +10 -10
- package/hooks/Filters/useListFilter.js +37 -37
- package/hooks/Filters/useMultiFilter.d.ts +13 -13
- package/hooks/Filters/useMultiFilter.js +49 -49
- package/hooks/Filters/useRangeFilter.d.ts +10 -10
- package/hooks/Filters/useRangeFilter.js +35 -35
- package/hooks/Filters/useSortOrder.d.ts +11 -11
- package/hooks/Filters/useSortOrder.js +21 -21
- package/hooks/FreeShippingQuery.gql +16 -16
- package/hooks/PackageProducts/index.d.ts +2 -2
- package/hooks/PackageProducts/index.js +2 -2
- package/hooks/PackageProducts/packagePriceQuery.gql +29 -29
- package/hooks/PackageProducts/usePackageProductItem.d.ts +17 -17
- package/hooks/PackageProducts/usePackageProductItem.js +26 -26
- package/hooks/PackageProducts/usePackageProducts.d.ts +19 -19
- package/hooks/PackageProducts/usePackageProducts.js +345 -345
- package/hooks/PackageProducts/usePackageProducts.test.js +383 -383
- package/hooks/Product/index.d.ts +1 -1
- package/hooks/Product/index.js +1 -1
- package/hooks/Product/useStockStatus.d.ts +9 -9
- package/hooks/Product/useStockStatus.js +25 -25
- package/hooks/Product/useSwitchToVariantImage.d.ts +9 -9
- package/hooks/Product/useSwitchToVariantImage.js +20 -20
- package/hooks/ProductList/ProductListContext.d.ts +7 -7
- package/hooks/ProductList/ProductListContext.js +110 -110
- package/hooks/ProductList/action-creators.d.ts +46 -46
- package/hooks/ProductList/action-creators.js +296 -296
- package/hooks/ProductList/index.d.ts +118 -118
- package/hooks/ProductList/index.js +21 -21
- package/hooks/ProductList/list-transforms.d.ts +73 -73
- package/hooks/ProductList/list-transforms.js +106 -106
- package/hooks/ProductList/list-transforms.test.js +489 -489
- package/hooks/ProductList/product-list-reducer.d.ts +76 -76
- package/hooks/ProductList/product-list-reducer.js +197 -197
- package/hooks/ProductList/product-list-reducer.test.js +464 -464
- package/hooks/ProductList/useProductList.d.ts +13 -13
- package/hooks/ProductList/useProductList.js +93 -93
- package/hooks/ProductList/useProductListItems.d.ts +10 -10
- package/hooks/ProductList/useProductListItems.js +48 -48
- package/hooks/ProductList/validate-product.d.ts +6 -6
- package/hooks/ProductList/validate-product.js +40 -40
- package/hooks/Subscriptions/useNewsletterSubscription.d.ts +38 -38
- package/hooks/Subscriptions/useNewsletterSubscription.js +41 -41
- package/hooks/Subscriptions/useStockNotifications.d.ts +36 -36
- package/hooks/Subscriptions/useStockNotifications.js +37 -37
- package/hooks/Subscriptions/useStoreSubscriptions.d.ts +48 -48
- package/hooks/Subscriptions/useStoreSubscriptions.js +150 -150
- package/hooks/Subscriptions/useStoresubscriptions.test.js +179 -179
- package/hooks/useAddMultipleToCart.d.ts +27 -27
- package/hooks/useAddMultipleToCart.js +113 -113
- package/hooks/useAddMultipleToCart.test.js +181 -181
- package/hooks/useChannelBanner.js +22 -22
- package/hooks/useChannelBanner.test.js +77 -77
- package/hooks/useCustomerOrders.test.js +176 -176
- package/hooks/useCustomerOrdersQuery.d.ts +21 -21
- package/hooks/useCustomerOrdersQuery.js +20 -20
- package/hooks/useDeleteAccountMutation.d.ts +15 -15
- package/hooks/useDeleteAccountMutation.js +38 -38
- package/hooks/useDynamicPrice.d.ts +3 -3
- package/hooks/useDynamicPrice.js +24 -24
- package/hooks/useFreeShippingCheck.d.ts +15 -15
- package/hooks/useFreeShippingCheck.js +30 -30
- package/hooks/useGeolocation.d.ts +11 -11
- package/hooks/useGeolocation.js +33 -33
- package/hooks/useInfinitePagination.d.ts +37 -37
- package/hooks/useInfinitePagination.js +138 -138
- package/hooks/useLogError.d.ts +1 -1
- package/hooks/useLogError.js +7 -7
- package/hooks/useLoginMutation.d.ts +12 -12
- package/hooks/useLoginMutation.js +14 -14
- package/hooks/useLoginRedirect.d.ts +4 -4
- package/hooks/useLoginRedirect.js +36 -36
- package/hooks/useOrderDetailQuery.d.ts +20 -20
- package/hooks/useOrderDetailQuery.js +28 -28
- package/hooks/usePreconnectLinks.d.ts +10 -10
- package/hooks/usePreconnectLinks.js +29 -29
- package/hooks/usePreconnectLinks.test.js +95 -95
- package/hooks/usePrice.d.ts +39 -39
- package/hooks/usePrice.js +71 -71
- package/hooks/usePrice.test.js +171 -171
- package/hooks/useProductVariants/index.d.ts +1 -1
- package/hooks/useProductVariants/index.js +1 -1
- package/hooks/useProductVariants/useProductVariants.d.ts +19 -19
- package/hooks/useProductVariants/useProductVariants.js +202 -202
- package/hooks/useProductVariants/useProductVariants.test.js +415 -415
- package/hooks/useProductVariants/useVariantFromUrl.d.ts +5 -5
- package/hooks/useProductVariants/useVariantFromUrl.js +15 -15
- package/hooks/useProductVariants/useVariantFromUrl.test.js +79 -79
- package/hooks/useRoutePreload.d.ts +24 -24
- package/hooks/useRoutePreload.js +39 -39
- package/hooks/useShopConfig.d.ts +1 -1
- package/hooks/useShopConfig.js +10 -10
- package/hooks/useShopConfig.js.map +1 -1
- package/hooks/useThrowErrorInDev.d.ts +1 -1
- package/hooks/useThrowErrorInDev.js +7 -7
- package/hooks/useThunkReducer.d.ts +7 -7
- package/hooks/useThunkReducer.js +23 -23
- package/hooks/useWarningInDev.d.ts +1 -1
- package/hooks/useWarningInDev.js +9 -9
- package/inServer.d.ts +1 -1
- package/inServer.js +2 -2
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/integrations/addwishSchemaExtension.d.ts +35 -35
- package/integrations/addwishSchemaExtension.js +140 -140
- package/integrations/nostoSchemaExtension.d.ts +5 -5
- package/integrations/nostoSchemaExtension.js +76 -76
- package/integrations/sluggishSchemaExtension.d.ts +2 -2
- package/integrations/sluggishSchemaExtension.js +26 -26
- package/package.json +2 -2
- package/polyfills.d.ts +1 -1
- package/polyfills.js +37 -37
- package/registerServiceWorker.js +110 -110
- package/resolvers/filters/boolFilter.d.ts +3 -3
- package/resolvers/filters/boolFilter.js +84 -84
- package/resolvers/filters/defaultActiveFilters.d.ts +3 -3
- package/resolvers/filters/defaultActiveFilters.js +8 -8
- package/resolvers/filters/filterParams.d.ts +3 -3
- package/resolvers/filters/filterParams.js +84 -84
- package/resolvers/filters/filters.d.ts +5 -5
- package/resolvers/filters/filters.js +78 -78
- package/resolvers/filters/index.d.ts +27 -27
- package/resolvers/filters/index.js +7 -7
- package/resolvers/filters/listFilter.d.ts +7 -7
- package/resolvers/filters/listFilter.js +73 -73
- package/resolvers/filters/listFilterItem.d.ts +3 -3
- package/resolvers/filters/listFilterItem.js +122 -122
- package/resolvers/filters/multiListFilter.d.ts +5 -5
- package/resolvers/filters/multiListFilter.js +195 -195
- package/resolvers/filters/multiListFilterList.d.ts +3 -3
- package/resolvers/filters/multiListFilterList.js +55 -55
- package/resolvers/filters/rangeFilter.d.ts +5 -5
- package/resolvers/filters/rangeFilter.js +137 -137
- package/resolvers/filters/updateQueryString.d.ts +12 -12
- package/resolvers/filters/updateQueryString.js +116 -116
- package/resolvers/index.d.ts +37 -37
- package/resolvers/index.js +37 -37
- package/scripts/dev-apolloServer.js +31 -31
- package/sentry/client.d.ts +1 -1
- package/sentry/client.js +29 -29
- package/sentry/common.d.ts +1 -1
- package/sentry/common.js +4 -4
- package/sentry/server.d.ts +1 -1
- package/sentry/server.js +19 -19
- package/sentry/utils.d.ts +1 -1
- package/sentry/utils.js +1 -1
- package/server/graphql.d.ts +20 -20
- package/server/graphql.js +118 -118
- package/server/graphql.test.js +123 -123
- package/server/index.d.ts +2 -2
- package/server/index.js +2 -2
- package/server/tracking/facebook.d.ts +5 -5
- package/server/tracking/facebook.js +132 -132
- package/server/tracking/middleware.d.ts +8 -8
- package/server/tracking/middleware.js +14 -14
- package/server/tracking/types.d.ts +33 -33
- package/setupTests.js +2 -2
- package/test-utils/ProviderPyramid.js +45 -45
- package/test-utils/mockShopConfig.js +26 -26
- package/test-utils/mockedProduct.js +253 -253
- package/test-utils/renderWithRouter.js +20 -20
- package/test-utils/variables.js +2465 -1231
- package/time.d.ts +1 -1
- 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
|