@jetshop/core 5.17.0-alpha.8ede57ab → 5.17.0-alpha.8f38c56f
Sign up to get free protection for your applications and to get access to all the features.
- package/ChannelHandler/ChannelHandler.d.ts +53 -0
- package/ChannelHandler/ChannelHandler.js +114 -0
- package/ChannelHandler/ChannelHandler.js.map +1 -0
- package/ChannelHandler/channelUtils.d.ts +73 -0
- package/ChannelHandler/channelUtils.js +313 -0
- package/ChannelHandler/channelUtils.js.map +1 -0
- package/ChannelHandler/redirectUtils.d.ts +4 -0
- package/ChannelHandler/redirectUtils.js +50 -0
- package/ChannelHandler/redirectUtils.js.map +1 -0
- package/ChannelHandler/redirectUtils.test.js +5 -5
- package/ChannelHandler/redirectUtilsGroupedChannels.test.js +5 -5
- package/analytics/Analytics.d.ts +18 -0
- package/analytics/Analytics.js +57 -0
- package/analytics/Analytics.js.map +1 -0
- package/analytics/AnalyticsProvider.d.ts +54 -0
- package/analytics/AnalyticsProvider.js +229 -0
- package/analytics/AnalyticsProvider.js.map +1 -0
- package/analytics/deprecatedTracking.d.ts +17 -0
- package/analytics/deprecatedTracking.js +33 -0
- package/analytics/deprecatedTracking.js.map +1 -0
- package/analytics/integrations/ga4.d.ts +28 -0
- package/analytics/integrations/ga4.js +189 -0
- package/analytics/integrations/ga4.js.map +1 -0
- package/analytics/integrations/gtag/gtag.d.ts +8 -0
- package/analytics/integrations/gtag/gtag.js +209 -0
- package/analytics/integrations/gtag/gtag.js.map +1 -0
- package/analytics/integrations/gtag/index.d.ts +1 -0
- package/analytics/integrations/gtag/index.js +2 -0
- package/analytics/integrations/gtag/index.js.map +1 -0
- package/analytics/integrations/gtm/gtm.d.ts +12 -0
- package/analytics/integrations/gtm/gtm.js +227 -0
- package/analytics/integrations/gtm/gtm.js.map +1 -0
- package/analytics/integrations/gtm/index.d.ts +1 -0
- package/analytics/integrations/gtm/index.js +2 -0
- package/analytics/integrations/gtm/index.js.map +1 -0
- package/analytics/integrations/gtm/referrerModifier.d.ts +1 -0
- package/analytics/integrations/gtm/referrerModifier.js +62 -0
- package/analytics/integrations/gtm/referrerModifier.js.map +1 -0
- package/analytics/integrations/releware/index.d.ts +3 -0
- package/analytics/integrations/releware/index.js +39 -0
- package/analytics/integrations/releware/index.js.map +1 -0
- package/analytics/integrations/unslugify.d.ts +1 -0
- package/analytics/integrations/unslugify.js +16 -0
- package/analytics/integrations/unslugify.js.map +1 -0
- package/analytics/trackerRegistry.d.ts +113 -0
- package/analytics/trackerRegistry.js +222 -0
- package/analytics/trackerRegistry.js.map +1 -0
- package/analytics/tracking.d.ts +14 -0
- package/analytics/tracking.js +72 -0
- package/analytics/tracking.js.map +1 -0
- package/analytics/utils/breadcrumbsWithoutProduct.d.ts +1 -0
- package/analytics/utils/breadcrumbsWithoutProduct.js +9 -0
- package/analytics/utils/breadcrumbsWithoutProduct.js.map +1 -0
- package/analytics/utils/script.d.ts +8 -0
- package/analytics/utils/script.js +40 -0
- package/analytics/utils/script.js.map +1 -0
- package/analytics/webVitals.d.ts +5 -0
- package/analytics/webVitals.js +39 -0
- package/analytics/webVitals.js.map +1 -0
- package/boot/AuthHandler.d.ts +14 -0
- package/boot/AuthHandler.js +39 -0
- package/boot/AuthHandler.js.map +1 -0
- package/boot/NetworkStatusNotifier.d.ts +2 -0
- package/boot/NetworkStatusNotifier.js +4 -0
- package/boot/NetworkStatusNotifier.js.map +1 -0
- package/boot/PreviewHandler.d.ts +7 -0
- package/boot/PreviewHandler.js +14 -0
- package/boot/PreviewHandler.js.map +1 -0
- package/boot/SharedTree.d.ts +25 -0
- package/boot/SharedTree.js +29 -0
- package/boot/SharedTree.js.map +1 -0
- package/boot/addMissingConfig.d.ts +5 -0
- package/boot/addMissingConfig.js +34 -0
- package/boot/addMissingConfig.js.map +1 -0
- package/boot/apollo.d.ts +20 -0
- package/boot/apollo.js +202 -0
- package/boot/apollo.js.map +1 -0
- package/boot/client/entrypoint.d.ts +1 -0
- package/boot/client/entrypoint.js +5 -0
- package/boot/client/entrypoint.js.map +1 -0
- package/boot/client/index.d.ts +1 -0
- package/boot/client/index.js +2 -0
- package/boot/client/index.js.map +1 -0
- package/boot/client/startClient.d.ts +4 -0
- package/boot/client/startClient.js +153 -0
- package/boot/client/startClient.js.map +1 -0
- package/boot/server/IntervalQuery.d.ts +32 -0
- package/boot/server/IntervalQuery.js +95 -0
- package/boot/server/IntervalQuery.js.map +1 -0
- package/boot/server/IntervalQuery.test.js +9 -13
- package/boot/server/PersistedApolloClient.d.ts +20 -0
- package/boot/server/PersistedApolloClient.js +40 -0
- package/boot/server/PersistedApolloClient.js.map +1 -0
- package/boot/server/PersistedApolloClient.test.js +8 -7
- package/boot/server/asyncErrorHandler.d.ts +3 -0
- package/boot/server/asyncErrorHandler.js +5 -0
- package/boot/server/asyncErrorHandler.js.map +1 -0
- package/boot/server/breakpointMiddleware.d.ts +3 -0
- package/boot/server/breakpointMiddleware.js +10 -0
- package/boot/server/breakpointMiddleware.js.map +1 -0
- package/boot/server/createApolloServer.d.ts +29 -0
- package/boot/server/createApolloServer.js +144 -0
- package/boot/server/createApolloServer.js.map +1 -0
- package/boot/server/createDevServer.d.ts +14 -0
- package/boot/server/createDevServer.js +30 -0
- package/boot/server/createDevServer.js.map +1 -0
- package/boot/server/createRenderer.d.ts +28 -0
- package/boot/server/createRenderer.js +239 -0
- package/boot/server/createRenderer.js.map +1 -0
- package/boot/server/createServer.d.ts +14 -0
- package/boot/server/createServer.js +42 -0
- package/boot/server/createServer.js.map +1 -0
- package/boot/server/entrypoint.d.ts +1 -0
- package/boot/server/entrypoint.js +39 -0
- package/boot/server/entrypoint.js.map +1 -0
- package/boot/server/getPrefetchFiles.d.ts +10 -0
- package/boot/server/getPrefetchFiles.js +20 -0
- package/boot/server/getPrefetchFiles.js.map +1 -0
- package/boot/server/getPreloadAssets.d.ts +10 -0
- package/boot/server/getPreloadAssets.js +18 -0
- package/boot/server/getPreloadAssets.js.map +1 -0
- package/boot/server/index.d.ts +9 -0
- package/boot/server/index.js +123 -0
- package/boot/server/index.js.map +1 -0
- package/boot/server/listen.d.ts +13 -0
- package/boot/server/listen.js +17 -0
- package/boot/server/listen.js.map +1 -0
- package/boot/server/persistedQueries/PersistedClient.d.ts +22 -0
- package/boot/server/persistedQueries/PersistedClient.js +58 -0
- package/boot/server/persistedQueries/PersistedClient.js.map +1 -0
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +1 -1
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.d.ts +3 -0
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +27 -0
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -0
- package/boot/server/salesSource.d.ts +8 -0
- package/boot/server/salesSource.js +16 -0
- package/boot/server/salesSource.js.map +1 -0
- package/boot/utils/createIntOptions.d.ts +6 -0
- package/boot/utils/createIntOptions.js +19 -0
- package/boot/utils/createIntOptions.js.map +1 -0
- package/boot/utils/queryLoggingMiddleware.d.ts +2 -0
- package/boot/utils/queryLoggingMiddleware.js +15 -0
- package/boot/utils/queryLoggingMiddleware.js.map +1 -0
- package/boot/utils/uid.d.ts +3 -0
- package/boot/utils/uid.js +20 -0
- package/boot/utils/uid.js.map +1 -0
- package/cart/AddToCartFormik.d.ts +42 -0
- package/cart/AddToCartFormik.js +77 -0
- package/cart/AddToCartFormik.js.map +1 -0
- package/cart/useAddToCart.d.ts +88 -0
- package/cart/useAddToCart.js +119 -0
- package/cart/useAddToCart.js.map +1 -0
- package/cart/useCart.d.ts +0 -0
- package/cart/useCart.js +1 -0
- package/cart/useCart.js.map +1 -0
- package/components/Auth/CustomerFormContainer.d.ts +0 -0
- package/components/Auth/CustomerFormContainer.js +1 -0
- package/components/Auth/CustomerFormContainer.js.map +1 -0
- package/components/Auth/CustomerUpdateForm.d.ts +32 -0
- package/components/Auth/CustomerUpdateForm.js +122 -0
- package/components/Auth/CustomerUpdateForm.js.map +1 -0
- package/components/Auth/ForgotPasswordProvider.d.ts +69 -0
- package/components/Auth/ForgotPasswordProvider.js +57 -0
- package/components/Auth/ForgotPasswordProvider.js.map +1 -0
- package/components/Auth/ResetPasswordProvider.d.ts +90 -0
- package/components/Auth/ResetPasswordProvider.js +78 -0
- package/components/Auth/ResetPasswordProvider.js.map +1 -0
- package/components/Auth/SSN.d.ts +12 -0
- package/components/Auth/SSN.js +35 -0
- package/components/Auth/SSN.js.map +1 -0
- package/components/Auth/SSNLookupContainer.d.ts +15 -0
- package/components/Auth/SSNLookupContainer.js +20 -0
- package/components/Auth/SSNLookupContainer.js.map +1 -0
- package/components/Auth/SignupFormContainer.d.ts +16 -0
- package/components/Auth/SignupFormContainer.js +82 -0
- package/components/Auth/SignupFormContainer.js.map +1 -0
- package/components/Auth/UpdatePasswordForm.d.ts +44 -0
- package/components/Auth/UpdatePasswordForm.js +98 -0
- package/components/Auth/UpdatePasswordForm.js.map +1 -0
- package/components/Auth/formFieldsFromSettings.d.ts +65 -0
- package/components/Auth/formFieldsFromSettings.js +77 -0
- package/components/Auth/formFieldsFromSettings.js.map +1 -0
- package/components/Auth/formatSignupInput.d.ts +8 -0
- package/components/Auth/formatSignupInput.js +43 -0
- package/components/Auth/formatSignupInput.js.map +1 -0
- package/components/Auth/signup-context.d.ts +36 -0
- package/components/Auth/signup-context.js +71 -0
- package/components/Auth/signup-context.js.map +1 -0
- package/components/Auth/signup-field-translations.d.ts +3 -0
- package/components/Auth/signup-field-translations.js +44 -0
- package/components/Auth/signup-field-translations.js.map +1 -0
- package/components/Auth/signupSubmit.d.ts +6 -0
- package/components/Auth/signupSubmit.js +57 -0
- package/components/Auth/signupSubmit.js.map +1 -0
- package/components/Auth/useAddressFields.d.ts +22 -0
- package/components/Auth/useAddressFields.js +33 -0
- package/components/Auth/useAddressFields.js.map +1 -0
- package/components/Auth/useAddressFields.test.js +10 -8
- package/components/Auth/useCustomer.d.ts +116 -0
- package/components/Auth/useCustomer.js +189 -0
- package/components/Auth/useCustomer.js.map +1 -0
- package/components/Auth/useLoginFields.d.ts +20 -0
- package/components/Auth/useLoginFields.js +21 -0
- package/components/Auth/useLoginFields.js.map +1 -0
- package/components/Auth/useSignupForm.d.ts +7 -0
- package/components/Auth/useSignupForm.js +15 -0
- package/components/Auth/useSignupForm.js.map +1 -0
- package/components/AuthContext/AuthContext.d.ts +8 -0
- package/components/AuthContext/AuthContext.js +9 -0
- package/components/AuthContext/AuthContext.js.map +1 -0
- package/components/AuthContext/AuthProvider.d.ts +6 -0
- package/components/AuthContext/AuthProvider.js +85 -0
- package/components/AuthContext/AuthProvider.js.map +1 -0
- package/components/AuthContext/AuthProvider.test.js +1 -1
- package/components/AuthContext/LogOut.d.ts +5 -0
- package/components/AuthContext/LogOut.js +15 -0
- package/components/AuthContext/LogOut.js.map +1 -0
- package/components/AuthContext/useAuth.d.ts +6 -0
- package/components/AuthContext/useAuth.js +21 -0
- package/components/AuthContext/useAuth.js.map +1 -0
- package/components/BreakpointProvider.d.ts +21 -0
- package/components/BreakpointProvider.js +24 -0
- package/components/BreakpointProvider.js.map +1 -0
- package/components/Cart/CartIdContext.d.ts +11 -0
- package/components/Cart/CartIdContext.js +61 -0
- package/components/Cart/CartIdContext.js.map +1 -0
- package/components/ChannelContext/ChannelContext.d.ts +21 -0
- package/components/ChannelContext/ChannelContext.js +4 -0
- package/components/ChannelContext/ChannelContext.js.map +1 -0
- package/components/ChannelContext/ChannelProvider.d.ts +10 -0
- package/components/ChannelContext/ChannelProvider.js +45 -0
- package/components/ChannelContext/ChannelProvider.js.map +1 -0
- package/components/ChannelContext/index.d.ts +2 -0
- package/components/ChannelContext/index.js +3 -0
- package/components/ChannelContext/index.js.map +1 -0
- package/components/ChannelContext/useCountrySettings.d.ts +8 -0
- package/components/ChannelContext/useCountrySettings.js +24 -0
- package/components/ChannelContext/useCountrySettings.js.map +1 -0
- package/components/ConfigProvider.d.ts +108 -0
- package/components/ConfigProvider.js +20 -0
- package/components/ConfigProvider.js.map +1 -0
- package/components/DynamicRoute/ActiveFiltersQuery.gql +4 -4
- package/components/DynamicRoute/CategoryRoute.d.ts +13 -0
- package/components/DynamicRoute/CategoryRoute.js +59 -0
- package/components/DynamicRoute/CategoryRoute.js.map +1 -0
- package/components/DynamicRoute/ContentRoute.d.ts +14 -0
- package/components/DynamicRoute/ContentRoute.js +28 -0
- package/components/DynamicRoute/ContentRoute.js.map +1 -0
- package/components/DynamicRoute/CustomerRoute.d.ts +0 -0
- package/components/DynamicRoute/CustomerRoute.js +1 -0
- package/components/DynamicRoute/CustomerRoute.js.map +1 -0
- package/components/DynamicRoute/GenericError.d.ts +18 -0
- package/components/DynamicRoute/GenericError.js +61 -0
- package/components/DynamicRoute/GenericError.js.map +1 -0
- package/components/DynamicRoute/PreviewRoute.d.ts +17 -0
- package/components/DynamicRoute/PreviewRoute.js +58 -0
- package/components/DynamicRoute/PreviewRoute.js.map +1 -0
- package/components/DynamicRoute/ProductByArticlenumber.d.ts +5 -0
- package/components/DynamicRoute/ProductByArticlenumber.js +22 -0
- package/components/DynamicRoute/ProductByArticlenumber.js.map +1 -0
- package/components/DynamicRoute/ProductRoute.d.ts +15 -0
- package/components/DynamicRoute/ProductRoute.js +65 -0
- package/components/DynamicRoute/ProductRoute.js.map +1 -0
- package/components/DynamicRoute/RouteResolver.d.ts +22 -0
- package/components/DynamicRoute/RouteResolver.js +65 -0
- package/components/DynamicRoute/RouteResolver.js.map +1 -0
- package/components/DynamicRoute/Status.d.ts +15 -0
- package/components/DynamicRoute/Status.js +20 -0
- package/components/DynamicRoute/Status.js.map +1 -0
- package/components/DynamicRoute/index.d.ts +17 -0
- package/components/DynamicRoute/index.js +100 -0
- package/components/DynamicRoute/index.js.map +1 -0
- package/components/Filters/index.d.ts +1 -0
- package/components/Filters/index.js +2 -0
- package/components/Filters/index.js.map +1 -0
- package/components/Filters/utils/replaceInSearch.d.ts +14 -0
- package/components/Filters/utils/replaceInSearch.js +23 -0
- package/components/Filters/utils/replaceInSearch.js.map +1 -0
- package/components/Filters/utils/updateHistory.d.ts +25 -0
- package/components/Filters/utils/updateHistory.js +30 -0
- package/components/Filters/utils/updateHistory.js.map +1 -0
- package/components/Fonts/CustomFont.d.ts +14 -0
- package/components/Fonts/CustomFont.js +17 -0
- package/components/Fonts/CustomFont.js.map +1 -0
- package/components/Fonts/injectFont.d.ts +11 -0
- package/components/Fonts/injectFont.js +30 -0
- package/components/Fonts/injectFont.js.map +1 -0
- package/components/Head.d.ts +11 -0
- package/components/Head.js +84 -0
- package/components/Head.js.map +1 -0
- package/components/Mutation/AddToCart/addToCartUtils.d.ts +18 -0
- package/components/Mutation/AddToCart/addToCartUtils.js +52 -0
- package/components/Mutation/AddToCart/addToCartUtils.js.map +1 -0
- package/components/Mutation/AddToCartFormik.d.ts +53 -0
- package/components/Mutation/AddToCartFormik.js +173 -0
- package/components/Mutation/AddToCartFormik.js.map +1 -0
- package/components/Mutation/DecrementQuantity.d.ts +4 -0
- package/components/Mutation/DecrementQuantity.js +35 -0
- package/components/Mutation/DecrementQuantity.js.map +1 -0
- package/components/Mutation/IncrementQuantity.d.ts +4 -0
- package/components/Mutation/IncrementQuantity.js +35 -0
- package/components/Mutation/IncrementQuantity.js.map +1 -0
- package/components/Mutation/RemoveFromCart.d.ts +5 -0
- package/components/Mutation/RemoveFromCart.js +52 -0
- package/components/Mutation/RemoveFromCart.js.map +1 -0
- package/components/Mutation/SetQuantity.d.ts +4 -0
- package/components/Mutation/SetQuantity.js +37 -0
- package/components/Mutation/SetQuantity.js.map +1 -0
- package/components/Mutation/SubscribeToNewsletter.d.ts +4 -0
- package/components/Mutation/SubscribeToNewsletter.js +30 -0
- package/components/Mutation/SubscribeToNewsletter.js.map +1 -0
- package/components/Mutation/SubscribeToStockNotifications.d.ts +4 -0
- package/components/Mutation/SubscribeToStockNotifications.js +35 -0
- package/components/Mutation/SubscribeToStockNotifications.js.map +1 -0
- package/components/Mutation/cartMutationUtils.d.ts +27 -0
- package/components/Mutation/cartMutationUtils.js +109 -0
- package/components/Mutation/cartMutationUtils.js.map +1 -0
- package/components/Mutation/useDecrementQuantity.d.ts +11 -0
- package/components/Mutation/useDecrementQuantity.js +54 -0
- package/components/Mutation/useDecrementQuantity.js.map +1 -0
- package/components/Mutation/useIncrementQuantity.d.ts +11 -0
- package/components/Mutation/useIncrementQuantity.js +54 -0
- package/components/Mutation/useIncrementQuantity.js.map +1 -0
- package/components/Mutation/useRemoveFromCart.d.ts +13 -0
- package/components/Mutation/useRemoveFromCart.js +50 -0
- package/components/Mutation/useRemoveFromCart.js.map +1 -0
- package/components/Mutation/useSetQuantity.d.ts +12 -0
- package/components/Mutation/useSetQuantity.js +38 -0
- package/components/Mutation/useSetQuantity.js.map +1 -0
- package/components/Notifications/Notifications.d.ts +15 -0
- package/components/Notifications/Notifications.js +26 -0
- package/components/Notifications/Notifications.js.map +1 -0
- package/components/Notifications/index.d.ts +2 -0
- package/components/Notifications/index.js +3 -0
- package/components/Notifications/index.js.map +1 -0
- package/components/Notifications/notificationMachine.d.ts +30 -0
- package/components/Notifications/notificationMachine.js +74 -0
- package/components/Notifications/notificationMachine.js.map +1 -0
- package/components/Notifications/notificationsMachine.d.ts +37 -0
- package/components/Notifications/notificationsMachine.js +66 -0
- package/components/Notifications/notificationsMachine.js.map +1 -0
- package/components/Notifications/useNotification.d.ts +9 -0
- package/components/Notifications/useNotification.js +27 -0
- package/components/Notifications/useNotification.js.map +1 -0
- package/components/OpenGraph/OpenGraphGeneralPageData.d.ts +25 -0
- package/components/OpenGraph/OpenGraphGeneralPageData.js +37 -0
- package/components/OpenGraph/OpenGraphGeneralPageData.js.map +1 -0
- package/components/OpenGraph/OpenGraphProductData.d.ts +25 -0
- package/components/OpenGraph/OpenGraphProductData.js +49 -0
- package/components/OpenGraph/OpenGraphProductData.js.map +1 -0
- package/components/OpenGraph/index.d.ts +2 -0
- package/components/OpenGraph/index.js +3 -0
- package/components/OpenGraph/index.js.map +1 -0
- package/components/Pagination/PaginationContainer.d.ts +2 -0
- package/components/Pagination/PaginationContainer.js +5 -0
- package/components/Pagination/PaginationContainer.js.map +1 -0
- package/components/Pagination/PaginationContext.d.ts +14 -0
- package/components/Pagination/PaginationContext.js +4 -0
- package/components/Pagination/PaginationContext.js.map +1 -0
- package/components/Pagination/PaginationProvider.d.ts +19 -0
- package/components/Pagination/PaginationProvider.js +95 -0
- package/components/Pagination/PaginationProvider.js.map +1 -0
- package/components/PreviewContext.d.ts +10 -0
- package/components/PreviewContext.js +27 -0
- package/components/PreviewContext.js.map +1 -0
- package/components/ProductConfigurationProvider/ProductConfigurationContext.d.ts +13 -0
- package/components/ProductConfigurationProvider/ProductConfigurationContext.js +5 -0
- package/components/ProductConfigurationProvider/ProductConfigurationContext.js.map +1 -0
- package/components/ProductConfigurationProvider/ProductConfigurationProvider.d.ts +6 -0
- package/components/ProductConfigurationProvider/ProductConfigurationProvider.js +50 -0
- package/components/ProductConfigurationProvider/ProductConfigurationProvider.js.map +1 -0
- package/components/Query/CartProvider.d.ts +22 -0
- package/components/Query/CartProvider.js +68 -0
- package/components/Query/CartProvider.js.map +1 -0
- package/components/SortOrder/SortOrderContainer.d.ts +40 -0
- package/components/SortOrder/SortOrderContainer.js +108 -0
- package/components/SortOrder/SortOrderContainer.js.map +1 -0
- package/components/SortOrder/SortOrderContext.d.ts +9 -0
- package/components/SortOrder/SortOrderContext.js +9 -0
- package/components/SortOrder/SortOrderContext.js.map +1 -0
- package/components/StructuredData/SiteLinksSearchStructuredData.d.ts +3 -0
- package/components/StructuredData/SiteLinksSearchStructuredData.js +25 -0
- package/components/StructuredData/SiteLinksSearchStructuredData.js.map +1 -0
- package/components/StructuredData/StructuredBreadcrumbData.d.ts +12 -0
- package/components/StructuredData/StructuredBreadcrumbData.js +55 -0
- package/components/StructuredData/StructuredBreadcrumbData.js.map +1 -0
- package/components/StructuredData/StructuredCategoryData.d.ts +16 -0
- package/components/StructuredData/StructuredCategoryData.js +18 -0
- package/components/StructuredData/StructuredCategoryData.js.map +1 -0
- package/components/StructuredData/StructuredData.d.ts +9 -0
- package/components/StructuredData/StructuredData.js +7 -0
- package/components/StructuredData/StructuredData.js.map +1 -0
- package/components/StructuredData/StructuredPageData.d.ts +16 -0
- package/components/StructuredData/StructuredPageData.js +17 -0
- package/components/StructuredData/StructuredPageData.js.map +1 -0
- package/components/StructuredData/StructuredProductData.d.ts +18 -0
- package/components/StructuredData/StructuredProductData.js +43 -0
- package/components/StructuredData/StructuredProductData.js.map +1 -0
- package/components/StructuredData/index.d.ts +5 -0
- package/components/StructuredData/index.js +6 -0
- package/components/StructuredData/index.js.map +1 -0
- package/data/cache.d.ts +3 -0
- package/data/cache.js +34 -0
- package/data/cache.js.map +1 -0
- package/data/fragmentTypes.d.ts +8 -0
- package/data/fragmentTypes.js +84 -0
- package/data/fragmentTypes.js.map +1 -0
- package/data/fragments/index.d.ts +1 -0
- package/data/fragments/index.js +2 -0
- package/data/fragments/index.js.map +1 -0
- package/errorReporting.browser.d.ts +3 -0
- package/errorReporting.browser.js +12 -0
- package/errorReporting.browser.js.map +1 -0
- package/errorReporting.d.ts +3 -0
- package/errorReporting.js +20 -0
- package/errorReporting.js.map +1 -0
- package/errorReporting.server.d.ts +3 -0
- package/errorReporting.server.js +12 -0
- package/errorReporting.server.js.map +1 -0
- package/errorReporting.shared.d.ts +5 -0
- package/errorReporting.shared.js +17 -0
- package/errorReporting.shared.js.map +1 -0
- package/experiments/ExperimentsProvider.d.ts +4 -0
- package/experiments/ExperimentsProvider.js +29 -0
- package/experiments/ExperimentsProvider.js.map +1 -0
- package/experiments/selectExperimentVariant.d.ts +3 -0
- package/experiments/selectExperimentVariant.js +35 -0
- package/experiments/selectExperimentVariant.js.map +1 -0
- package/experiments/useExperiment.d.ts +2 -0
- package/experiments/useExperiment.js +11 -0
- package/experiments/useExperiment.js.map +1 -0
- package/global.d.ts +55 -1
- package/helpers/decodeUrlQuery.d.ts +9 -0
- package/helpers/decodeUrlQuery.js +27 -0
- package/helpers/decodeUrlQuery.js.map +1 -0
- package/helpers/distance.d.ts +7 -0
- package/helpers/distance.js +13 -0
- package/helpers/distance.js.map +1 -0
- package/helpers/encodeVariant.d.ts +3 -0
- package/helpers/encodeVariant.js +25 -0
- package/helpers/encodeVariant.js.map +1 -0
- package/helpers/getBreakpointsFromValues.d.ts +6 -0
- package/helpers/getBreakpointsFromValues.js +15 -0
- package/helpers/getBreakpointsFromValues.js.map +1 -0
- package/helpers/getCartItemVariant.d.ts +7 -0
- package/helpers/getCartItemVariant.js +9 -0
- package/helpers/getCartItemVariant.js.map +1 -0
- package/helpers/getErrorDetail.d.ts +7 -0
- package/helpers/getErrorDetail.js +12 -0
- package/helpers/getErrorDetail.js.map +1 -0
- package/helpers/getHeaders.d.ts +6 -0
- package/helpers/getHeaders.js +4 -0
- package/helpers/getHeaders.js.map +1 -0
- package/helpers/isRelativeUrl.d.ts +1 -0
- package/helpers/isRelativeUrl.js +4 -0
- package/helpers/isRelativeUrl.js.map +1 -0
- package/helpers/logError.d.ts +1 -0
- package/helpers/logError.js +17 -0
- package/helpers/logError.js.map +1 -0
- package/helpers/logWarningInDev.d.ts +1 -0
- package/helpers/logWarningInDev.js +7 -0
- package/helpers/logWarningInDev.js.map +1 -0
- package/helpers/throwErrorInDev.d.ts +6 -0
- package/helpers/throwErrorInDev.js +15 -0
- package/helpers/throwErrorInDev.js.map +1 -0
- package/helpers/uniqueId.d.ts +5 -0
- package/helpers/uniqueId.js +10 -0
- package/helpers/uniqueId.js.map +1 -0
- package/hooks/Channels/useChannelSettings.d.ts +7 -0
- package/hooks/Channels/useChannelSettings.js +12 -0
- package/hooks/Channels/useChannelSettings.js.map +1 -0
- package/hooks/Filters/useBooleanFilter.d.ts +8 -0
- package/hooks/Filters/useBooleanFilter.js +20 -0
- package/hooks/Filters/useBooleanFilter.js.map +1 -0
- package/hooks/Filters/useFilters.d.ts +3 -0
- package/hooks/Filters/useFilters.js +15 -0
- package/hooks/Filters/useFilters.js.map +1 -0
- package/hooks/Filters/useListFilter.d.ts +10 -0
- package/hooks/Filters/useListFilter.js +37 -0
- package/hooks/Filters/useListFilter.js.map +1 -0
- package/hooks/Filters/useMultiFilter.d.ts +13 -0
- package/hooks/Filters/useMultiFilter.js +49 -0
- package/hooks/Filters/useMultiFilter.js.map +1 -0
- package/hooks/Filters/useRangeFilter.d.ts +10 -0
- package/hooks/Filters/useRangeFilter.js +35 -0
- package/hooks/Filters/useRangeFilter.js.map +1 -0
- package/hooks/Filters/useSortOrder.d.ts +16 -0
- package/hooks/Filters/useSortOrder.js +23 -0
- package/hooks/Filters/useSortOrder.js.map +1 -0
- package/hooks/PackageProducts/index.d.ts +2 -0
- package/hooks/PackageProducts/index.js +3 -0
- package/hooks/PackageProducts/index.js.map +1 -0
- package/hooks/PackageProducts/usePackageProductItem.d.ts +17 -0
- package/hooks/PackageProducts/usePackageProductItem.js +27 -0
- package/hooks/PackageProducts/usePackageProductItem.js.map +1 -0
- package/hooks/PackageProducts/usePackageProducts.d.ts +19 -0
- package/hooks/PackageProducts/usePackageProducts.js +346 -0
- package/hooks/PackageProducts/usePackageProducts.js.map +1 -0
- package/hooks/PackageProducts/usePackageProducts.test.js +1 -1
- package/hooks/Product/index.d.ts +1 -0
- package/hooks/Product/index.js +2 -0
- package/hooks/Product/index.js.map +1 -0
- package/hooks/Product/useStockStatus.d.ts +9 -0
- package/hooks/Product/useStockStatus.js +26 -0
- package/hooks/Product/useStockStatus.js.map +1 -0
- package/hooks/Product/useSwitchToVariantImage.d.ts +9 -0
- package/hooks/Product/useSwitchToVariantImage.js +21 -0
- package/hooks/Product/useSwitchToVariantImage.js.map +1 -0
- package/hooks/ProductList/ProductListContext.d.ts +7 -0
- package/hooks/ProductList/ProductListContext.js +111 -0
- package/hooks/ProductList/ProductListContext.js.map +1 -0
- package/hooks/ProductList/action-creators.d.ts +46 -0
- package/hooks/ProductList/action-creators.js +297 -0
- package/hooks/ProductList/action-creators.js.map +1 -0
- package/hooks/ProductList/index.d.ts +118 -0
- package/hooks/ProductList/index.js +22 -0
- package/hooks/ProductList/index.js.map +1 -0
- package/hooks/ProductList/list-transforms.d.ts +75 -0
- package/hooks/ProductList/list-transforms.js +107 -0
- package/hooks/ProductList/list-transforms.js.map +1 -0
- package/hooks/ProductList/product-list-reducer.d.ts +76 -0
- package/hooks/ProductList/product-list-reducer.js +198 -0
- package/hooks/ProductList/product-list-reducer.js.map +1 -0
- package/hooks/ProductList/useProductList.d.ts +13 -0
- package/hooks/ProductList/useProductList.js +94 -0
- package/hooks/ProductList/useProductList.js.map +1 -0
- package/hooks/ProductList/useProductListItems.d.ts +10 -0
- package/hooks/ProductList/useProductListItems.js +49 -0
- package/hooks/ProductList/useProductListItems.js.map +1 -0
- package/hooks/ProductList/validate-product.d.ts +6 -0
- package/hooks/ProductList/validate-product.js +41 -0
- package/hooks/ProductList/validate-product.js.map +1 -0
- package/hooks/Subscriptions/useNewsletterSubscription.d.ts +38 -0
- package/hooks/Subscriptions/useNewsletterSubscription.js +42 -0
- package/hooks/Subscriptions/useNewsletterSubscription.js.map +1 -0
- package/hooks/Subscriptions/useStockNotifications.d.ts +36 -0
- package/hooks/Subscriptions/useStockNotifications.js +38 -0
- package/hooks/Subscriptions/useStockNotifications.js.map +1 -0
- package/hooks/Subscriptions/useStoreSubscriptions.d.ts +48 -0
- package/hooks/Subscriptions/useStoreSubscriptions.js +148 -0
- package/hooks/Subscriptions/useStoreSubscriptions.js.map +1 -0
- package/hooks/Subscriptions/useStoresubscriptions.test.js +5 -7
- package/hooks/useAddMultipleToCart.d.ts +27 -0
- package/hooks/useAddMultipleToCart.js +114 -0
- package/hooks/useAddMultipleToCart.js.map +1 -0
- package/hooks/useAddMultipleToCart.test.js +1 -1
- package/hooks/useChannels.d.ts +1 -0
- package/hooks/useChannels.js +10 -0
- package/hooks/useChannels.js.map +1 -0
- package/hooks/useCustomerOrders.test.js +7 -5
- package/hooks/useCustomerOrdersQuery.d.ts +21 -0
- package/hooks/useCustomerOrdersQuery.js +21 -0
- package/hooks/useCustomerOrdersQuery.js.map +1 -0
- package/hooks/useDeleteAccountMutation.d.ts +15 -0
- package/hooks/useDeleteAccountMutation.js +39 -0
- package/hooks/useDeleteAccountMutation.js.map +1 -0
- package/hooks/useDynamicPrice.d.ts +3 -0
- package/hooks/useDynamicPrice.js +25 -0
- package/hooks/useDynamicPrice.js.map +1 -0
- package/hooks/useFreeShippingCheck.d.ts +15 -0
- package/hooks/useFreeShippingCheck.js +31 -0
- package/hooks/useFreeShippingCheck.js.map +1 -0
- package/hooks/useGeolocation.d.ts +11 -0
- package/hooks/useGeolocation.js +34 -0
- package/hooks/useGeolocation.js.map +1 -0
- package/hooks/useInfinitePagination.d.ts +37 -0
- package/hooks/useInfinitePagination.js +142 -0
- package/hooks/useInfinitePagination.js.map +1 -0
- package/hooks/useLogError.d.ts +1 -0
- package/hooks/useLogError.js +8 -0
- package/hooks/useLogError.js.map +1 -0
- package/hooks/useLoginMutation.d.ts +12 -0
- package/hooks/useLoginMutation.js +15 -0
- package/hooks/useLoginMutation.js.map +1 -0
- package/hooks/useLoginRedirect.d.ts +4 -0
- package/hooks/useLoginRedirect.js +37 -0
- package/hooks/useLoginRedirect.js.map +1 -0
- package/hooks/useOrderDetailQuery.d.ts +20 -0
- package/hooks/useOrderDetailQuery.js +29 -0
- package/hooks/useOrderDetailQuery.js.map +1 -0
- package/hooks/usePreconnectLinks.d.ts +10 -0
- package/hooks/usePreconnectLinks.js +30 -0
- package/hooks/usePreconnectLinks.js.map +1 -0
- package/hooks/usePrice.d.ts +41 -0
- package/hooks/usePrice.js +73 -0
- package/hooks/usePrice.js.map +1 -0
- package/hooks/useProductVariants/index.d.ts +1 -0
- package/hooks/useProductVariants/index.js +2 -0
- package/hooks/useProductVariants/index.js.map +1 -0
- package/hooks/useProductVariants/useProductVariants.d.ts +19 -0
- package/hooks/useProductVariants/useProductVariants.js +203 -0
- package/hooks/useProductVariants/useProductVariants.js.map +1 -0
- package/hooks/useProductVariants/useVariantFromUrl.d.ts +5 -0
- package/hooks/useProductVariants/useVariantFromUrl.js +16 -0
- package/hooks/useProductVariants/useVariantFromUrl.js.map +1 -0
- package/hooks/useRoutePreload.d.ts +24 -0
- package/hooks/useRoutePreload.js +40 -0
- package/hooks/useRoutePreload.js.map +1 -0
- package/hooks/useShopConfig.d.ts +1 -0
- package/hooks/useShopConfig.js +11 -0
- package/hooks/useShopConfig.js.map +1 -0
- package/hooks/useStockStatus.d.ts +8 -0
- package/hooks/useStockStatus.js +26 -0
- package/hooks/useStockStatus.js.map +1 -0
- package/hooks/useThrowErrorInDev.d.ts +1 -0
- package/hooks/useThrowErrorInDev.js +8 -0
- package/hooks/useThrowErrorInDev.js.map +1 -0
- package/hooks/useThunkReducer.d.ts +7 -0
- package/hooks/useThunkReducer.js +24 -0
- package/hooks/useThunkReducer.js.map +1 -0
- package/hooks/useWarningInDev.d.ts +1 -0
- package/hooks/useWarningInDev.js +10 -0
- package/hooks/useWarningInDev.js.map +1 -0
- package/inServer.d.ts +1 -0
- package/inServer.js +3 -0
- package/inServer.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +2 -0
- package/index.js.map +1 -0
- package/integrations/addwishSchemaExtension.d.ts +35 -0
- package/integrations/addwishSchemaExtension.js +141 -0
- package/integrations/addwishSchemaExtension.js.map +1 -0
- package/integrations/nostoSchemaExtension.d.ts +5 -0
- package/integrations/nostoSchemaExtension.js +77 -0
- package/integrations/nostoSchemaExtension.js.map +1 -0
- package/integrations/sluggishSchemaExtension.d.ts +2 -0
- package/integrations/sluggishSchemaExtension.js +27 -0
- package/integrations/sluggishSchemaExtension.js.map +1 -0
- package/package.json +13 -29
- package/polyfills.d.ts +1 -0
- package/polyfills.js +36 -0
- package/polyfills.js.map +1 -0
- package/resolvers/filters/boolFilter.d.ts +3 -0
- package/resolvers/filters/boolFilter.js +82 -0
- package/resolvers/filters/boolFilter.js.map +1 -0
- package/resolvers/filters/defaultActiveFilters.d.ts +3 -0
- package/resolvers/filters/defaultActiveFilters.js +9 -0
- package/resolvers/filters/defaultActiveFilters.js.map +1 -0
- package/resolvers/filters/filterParams.d.ts +3 -0
- package/resolvers/filters/filterParams.js +85 -0
- package/resolvers/filters/filterParams.js.map +1 -0
- package/resolvers/filters/filters.d.ts +5 -0
- package/resolvers/filters/filters.js +79 -0
- package/resolvers/filters/filters.js.map +1 -0
- package/resolvers/filters/index.d.ts +23 -0
- package/resolvers/filters/index.js +8 -0
- package/resolvers/filters/index.js.map +1 -0
- package/resolvers/filters/listFilter.d.ts +7 -0
- package/resolvers/filters/listFilter.js +69 -0
- package/resolvers/filters/listFilter.js.map +1 -0
- package/resolvers/filters/listFilterItem.d.ts +3 -0
- package/resolvers/filters/listFilterItem.js +118 -0
- package/resolvers/filters/listFilterItem.js.map +1 -0
- package/resolvers/filters/multiListFilter.d.ts +5 -0
- package/resolvers/filters/multiListFilter.js +195 -0
- package/resolvers/filters/multiListFilter.js.map +1 -0
- package/resolvers/filters/multiListFilterList.d.ts +3 -0
- package/resolvers/filters/multiListFilterList.js +56 -0
- package/resolvers/filters/multiListFilterList.js.map +1 -0
- package/resolvers/filters/rangeFilter.d.ts +5 -0
- package/resolvers/filters/rangeFilter.js +122 -0
- package/resolvers/filters/rangeFilter.js.map +1 -0
- package/resolvers/filters/updateQueryString.d.ts +12 -0
- package/resolvers/filters/updateQueryString.js +117 -0
- package/resolvers/filters/updateQueryString.js.map +1 -0
- package/resolvers/index.d.ts +37 -0
- package/resolvers/index.js +38 -0
- package/resolvers/index.js.map +1 -0
- package/sentry/client.d.ts +1 -0
- package/sentry/client.js +30 -0
- package/sentry/client.js.map +1 -0
- package/sentry/common.d.ts +1 -0
- package/sentry/common.js +5 -0
- package/sentry/common.js.map +1 -0
- package/sentry/server.d.ts +1 -0
- package/sentry/server.js +20 -0
- package/sentry/server.js.map +1 -0
- package/sentry/utils.d.ts +1 -0
- package/sentry/utils.js +2 -0
- package/sentry/utils.js.map +1 -0
- package/server/graphql.d.ts +20 -0
- package/server/graphql.js +118 -0
- package/server/graphql.js.map +1 -0
- package/server/index.d.ts +2 -0
- package/server/index.js +3 -0
- package/server/index.js.map +1 -0
- package/server/tracking/facebook.d.ts +5 -0
- package/server/tracking/facebook.js +148 -0
- package/server/tracking/facebook.js.map +1 -0
- package/server/tracking/middleware.d.ts +8 -0
- package/server/tracking/middleware.js +15 -0
- package/server/tracking/middleware.js.map +1 -0
- package/test-utils/ProviderPyramid.js +1 -1
- package/time.d.ts +1 -0
- package/time.js +6 -0
- package/time.js.map +1 -0
- package/types.d.ts +1820 -1955
@@ -0,0 +1,31 @@
|
|
1
|
+
import { useCountrySettings } from '../components/ChannelContext/useCountrySettings';
|
2
|
+
import freeShippingQuery from './FreeShippingQuery.gql';
|
3
|
+
export default function useFreeShippingCheck({ cartTotal } = { cartTotal: null }) {
|
4
|
+
var _a;
|
5
|
+
const { selectedCountrySettings, loading } = useCountrySettings({
|
6
|
+
countrySettingsQuery: freeShippingQuery
|
7
|
+
});
|
8
|
+
const limit = (_a = selectedCountrySettings === null || selectedCountrySettings === void 0 ? void 0 : selectedCountrySettings.shipping) === null || _a === void 0 ? void 0 : _a.freeShippingLimit;
|
9
|
+
const shippingIsInQuery = typeof limit !== 'undefined';
|
10
|
+
const noFreeShippingConfigured = !limit && shippingIsInQuery;
|
11
|
+
if (noFreeShippingConfigured || !shippingIsInQuery) {
|
12
|
+
return {
|
13
|
+
loading,
|
14
|
+
freeShippingLimit: limit,
|
15
|
+
freeShippingConfigured: false,
|
16
|
+
hasMetLimit: false,
|
17
|
+
untilLimit: null
|
18
|
+
};
|
19
|
+
}
|
20
|
+
return {
|
21
|
+
loading,
|
22
|
+
freeShippingLimit: limit,
|
23
|
+
freeShippingConfigured: true,
|
24
|
+
hasMetLimit: limit.incVat <= cartTotal.incVat,
|
25
|
+
untilLimit: {
|
26
|
+
incVat: limit.incVat - cartTotal.incVat,
|
27
|
+
exVat: limit.exVat - cartTotal.exVat
|
28
|
+
}
|
29
|
+
};
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=useFreeShippingCheck.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useFreeShippingCheck.js","sourceRoot":"","sources":["useFreeShippingCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAMxD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,EAAE,SAAS,KAAwB,EAAE,SAAS,EAAE,IAAI,EAAE;;IAEtD,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC;QAC9D,oBAAoB,EAAE,iBAAiB;KACxC,CAAC,CAAC;IACH,MAAM,KAAK,GACT,MAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,0CAAE,iBAAiB,CAAC;IAEvD,MAAM,iBAAiB,GAAG,OAAO,KAAK,KAAK,WAAW,CAAC;IACvD,MAAM,wBAAwB,GAAG,CAAC,KAAK,IAAI,iBAAiB,CAAC;IAE7D,IAAI,wBAAwB,IAAI,CAAC,iBAAiB,EAAE;QAClD,OAAO;YACL,OAAO;YACP,iBAAiB,EAAE,KAAK;YACxB,sBAAsB,EAAE,KAAK;YAC7B,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;SACjB,CAAC;KACH;IAED,OAAO;QACL,OAAO;QACP,iBAAiB,EAAE,KAAK;QACxB,sBAAsB,EAAE,IAAI;QAC5B,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM;QAC7C,UAAU,EAAE;YACV,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;YACvC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;SACrC;KACF,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
interface GeolocationParams {
|
2
|
+
onSuccess?: PositionCallback;
|
3
|
+
onError?: PositionErrorCallback;
|
4
|
+
}
|
5
|
+
export default function useGeolocation({ onSuccess, onError }?: GeolocationParams): {
|
6
|
+
isAvailable: boolean;
|
7
|
+
position: undefined;
|
8
|
+
getPosition: (config: any) => void;
|
9
|
+
watchPosition: (config: any) => () => any;
|
10
|
+
};
|
11
|
+
export {};
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { useCallback, useState, useEffect } from 'react';
|
2
|
+
export default function useGeolocation({ onSuccess, onError } = {}) {
|
3
|
+
const [provider, setProvider] = useState(undefined);
|
4
|
+
const [position, setPosition] = useState();
|
5
|
+
useEffect(() => {
|
6
|
+
setProvider(typeof navigator !== 'undefined' && navigator.geolocation);
|
7
|
+
}, []);
|
8
|
+
const success = useCallback(position => {
|
9
|
+
setPosition(position);
|
10
|
+
onSuccess && onSuccess(position);
|
11
|
+
}, [onSuccess, setPosition]);
|
12
|
+
const error = useCallback(err => {
|
13
|
+
setPosition(undefined);
|
14
|
+
onError && onError(err);
|
15
|
+
}, [onError, setPosition]);
|
16
|
+
const getPosition = useCallback(config => {
|
17
|
+
if (!provider)
|
18
|
+
return;
|
19
|
+
provider.getCurrentPosition(success, error, config);
|
20
|
+
}, [provider, error, success]);
|
21
|
+
const watchPosition = useCallback(config => {
|
22
|
+
if (!provider)
|
23
|
+
return;
|
24
|
+
const id = provider.watchPosition(success, error, config);
|
25
|
+
return () => provider.clearWatch(id);
|
26
|
+
}, [provider, error, success]);
|
27
|
+
return {
|
28
|
+
isAvailable: !!provider,
|
29
|
+
position,
|
30
|
+
getPosition,
|
31
|
+
watchPosition
|
32
|
+
};
|
33
|
+
}
|
34
|
+
//# sourceMappingURL=useGeolocation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useGeolocation.js","sourceRoot":"","sources":["useGeolocation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOzD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,SAAS,EACT,OAAO,KACc,EAAE;IACvB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAE,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,WAAW,CACzB,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,EACD,CAAC,SAAS,EAAE,WAAW,CAAC,CACzB,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CACvB,GAAG,CAAC,EAAE;QACJ,WAAW,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,EACD,CAAC,OAAO,EAAE,WAAW,CAAC,CACvB,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAC3B,CAAC;IACF,MAAM,aAAa,GAAG,WAAW,CAC/B,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAC3B,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,QAAQ;QACvB,QAAQ;QACR,WAAW;QACX,aAAa;KACd,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { DocumentNode } from 'graphql';
|
2
|
+
import { Route, SearchResult, Category } from '../types';
|
3
|
+
import { QueryResult } from '@apollo/client';
|
4
|
+
interface QueryVariables {
|
5
|
+
offset: number;
|
6
|
+
first?: number;
|
7
|
+
limit?: number;
|
8
|
+
}
|
9
|
+
declare const useInfinitePagination: ({ result, query }: {
|
10
|
+
result: QueryResult<{
|
11
|
+
route: Route & {
|
12
|
+
object: Category;
|
13
|
+
};
|
14
|
+
} & {
|
15
|
+
search: SearchResult;
|
16
|
+
} & {
|
17
|
+
category: Category;
|
18
|
+
}, QueryVariables>;
|
19
|
+
query: DocumentNode;
|
20
|
+
}) => {
|
21
|
+
previous: {
|
22
|
+
loadingProducts: boolean;
|
23
|
+
hasProducts: boolean;
|
24
|
+
fetchProducts: () => void;
|
25
|
+
offset: number;
|
26
|
+
page: number;
|
27
|
+
};
|
28
|
+
next: {
|
29
|
+
loadingProducts: boolean;
|
30
|
+
hasProducts: boolean;
|
31
|
+
fetchProducts: () => void;
|
32
|
+
offset: number;
|
33
|
+
page: number;
|
34
|
+
};
|
35
|
+
products: any[];
|
36
|
+
};
|
37
|
+
export default useInfinitePagination;
|
@@ -0,0 +1,142 @@
|
|
1
|
+
import { useCallback, useContext, useEffect, useReducer, useMemo, useRef } from 'react';
|
2
|
+
import PaginationContext from '@jetshop/core/components/Pagination/PaginationContext';
|
3
|
+
import { useApolloClient } from '@apollo/client';
|
4
|
+
function getProductsFromPreviousPages(products, client, query, variables) {
|
5
|
+
var _a, _b, _c, _d, _e;
|
6
|
+
const nextVariables = Object.assign(Object.assign({}, variables), { offset: variables.offset - (variables.first || variables.limit) });
|
7
|
+
try {
|
8
|
+
const res = client.readQuery({
|
9
|
+
query,
|
10
|
+
variables: nextVariables
|
11
|
+
});
|
12
|
+
return getProductsFromPreviousPages((((_c = (_b = (_a = res === null || res === void 0 ? void 0 : res.route) === null || _a === void 0 ? void 0 : _a.object) === null || _b === void 0 ? void 0 : _b.products) === null || _c === void 0 ? void 0 : _c.result) || ((_e = (_d = res === null || res === void 0 ? void 0 : res.search) === null || _d === void 0 ? void 0 : _d.products) === null || _e === void 0 ? void 0 : _e.result)).concat(products), client, query, nextVariables);
|
13
|
+
}
|
14
|
+
catch (e) {
|
15
|
+
return { prevOffset: nextVariables.offset, products };
|
16
|
+
}
|
17
|
+
}
|
18
|
+
function getProductsFromNextPages(products, client, query, variables) {
|
19
|
+
var _a, _b, _c, _d, _e;
|
20
|
+
const nextVariables = Object.assign(Object.assign({}, variables), { offset: variables.offset + (variables.first || variables.limit) });
|
21
|
+
try {
|
22
|
+
const res = client.readQuery({
|
23
|
+
query,
|
24
|
+
variables: nextVariables
|
25
|
+
});
|
26
|
+
if (!res) {
|
27
|
+
throw new Error('No data');
|
28
|
+
}
|
29
|
+
return getProductsFromNextPages(products.concat(((_c = (_b = (_a = res === null || res === void 0 ? void 0 : res.route) === null || _a === void 0 ? void 0 : _a.object) === null || _b === void 0 ? void 0 : _b.products) === null || _c === void 0 ? void 0 : _c.result) || ((_e = (_d = res === null || res === void 0 ? void 0 : res.search) === null || _d === void 0 ? void 0 : _d.products) === null || _e === void 0 ? void 0 : _e.result)), client, query, nextVariables);
|
30
|
+
}
|
31
|
+
catch (e) {
|
32
|
+
return { nextOffset: nextVariables.offset, products };
|
33
|
+
}
|
34
|
+
}
|
35
|
+
function getAdjacentProducts(products, client, query, variables) {
|
36
|
+
const { prevOffset, products: prevProducts } = getProductsFromPreviousPages(products, client, query, variables);
|
37
|
+
const { nextOffset, products: allProducts } = getProductsFromNextPages(prevProducts, client, query, variables);
|
38
|
+
return {
|
39
|
+
prevOffset,
|
40
|
+
nextOffset,
|
41
|
+
products: allProducts
|
42
|
+
};
|
43
|
+
}
|
44
|
+
const initialState = {
|
45
|
+
previous: false,
|
46
|
+
next: false
|
47
|
+
};
|
48
|
+
function reducer(state, action) {
|
49
|
+
switch (action.type) {
|
50
|
+
case 'SUCCESS':
|
51
|
+
case 'ERROR':
|
52
|
+
return Object.assign(Object.assign({}, state), { [action.payload]: false });
|
53
|
+
case 'FETCHING':
|
54
|
+
return Object.assign(Object.assign({}, state), { [action.payload]: true });
|
55
|
+
default:
|
56
|
+
return state;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
const useInfinitePagination = ({ result, query }) => {
|
60
|
+
var _a, _b, _c, _d, _e, _f;
|
61
|
+
const data = ((_b = (_a = result === null || result === void 0 ? void 0 : result.data) === null || _a === void 0 ? void 0 : _a.route) === null || _b === void 0 ? void 0 : _b.object) ||
|
62
|
+
((_c = result === null || result === void 0 ? void 0 : result.data) === null || _c === void 0 ? void 0 : _c.search) ||
|
63
|
+
((_d = result === null || result === void 0 ? void 0 : result.data) === null || _d === void 0 ? void 0 : _d.category) ||
|
64
|
+
{};
|
65
|
+
const [loading, dispatch] = useReducer(reducer, initialState);
|
66
|
+
const { perPage, offset, goToPage } = useContext(PaginationContext);
|
67
|
+
const totalResults = ((_e = data === null || data === void 0 ? void 0 : data.products) === null || _e === void 0 ? void 0 : _e.totalResults) || 0;
|
68
|
+
const client = useApolloClient();
|
69
|
+
// When load more is clicked, the new offset for the query is changed
|
70
|
+
const fetchProductsByOffset = useCallback((newOffset) => {
|
71
|
+
const payload = newOffset < offset ? 'previous' : 'next';
|
72
|
+
// Blur element to prevent chrome >=83 from scrolling
|
73
|
+
if (document.activeElement instanceof HTMLElement) {
|
74
|
+
document.activeElement.blur();
|
75
|
+
}
|
76
|
+
dispatch({
|
77
|
+
type: 'FETCHING',
|
78
|
+
payload
|
79
|
+
});
|
80
|
+
client
|
81
|
+
.query({
|
82
|
+
query,
|
83
|
+
variables: Object.assign(Object.assign({}, result.variables), { offset: newOffset }),
|
84
|
+
errorPolicy: 'all',
|
85
|
+
fetchPolicy: 'network-only'
|
86
|
+
})
|
87
|
+
.then(() => dispatch({
|
88
|
+
type: 'SUCCESS',
|
89
|
+
payload
|
90
|
+
}), () => dispatch({
|
91
|
+
type: 'ERROR',
|
92
|
+
payload
|
93
|
+
}));
|
94
|
+
}, [offset, client, result, query]);
|
95
|
+
// If entered page number is too big, this navigate to the highest page number
|
96
|
+
useEffect(() => {
|
97
|
+
if (totalResults > 0 && totalResults < offset) {
|
98
|
+
const lastPage = Math.ceil(totalResults / perPage);
|
99
|
+
goToPage(lastPage);
|
100
|
+
}
|
101
|
+
}, [totalResults, perPage, offset, goToPage]);
|
102
|
+
const { prevOffset, nextOffset, products } = getAdjacentProducts(((_f = data === null || data === void 0 ? void 0 : data.products) === null || _f === void 0 ? void 0 : _f.result) || [], client, query, Object.assign(Object.assign({}, result.variables), { offset }));
|
103
|
+
// getAdjacentProducts will always return a new array, since we concatenate multiple queries
|
104
|
+
// To avoid unnecessary re-renders, we memoize this in a ref
|
105
|
+
const prevProducts = useRef([]);
|
106
|
+
const memoizedProducts = useMemo(() => {
|
107
|
+
const productsLength = products.length;
|
108
|
+
if (productsLength === prevProducts.current.length) {
|
109
|
+
let hasMismatch = false;
|
110
|
+
for (let i = 0; i < productsLength; i++) {
|
111
|
+
if (products[i] !== prevProducts.current[i]) {
|
112
|
+
hasMismatch = true;
|
113
|
+
break;
|
114
|
+
}
|
115
|
+
}
|
116
|
+
if (!hasMismatch) {
|
117
|
+
return prevProducts.current;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
prevProducts.current = products;
|
121
|
+
return prevProducts.current;
|
122
|
+
}, [products]);
|
123
|
+
return {
|
124
|
+
previous: {
|
125
|
+
loadingProducts: loading.previous,
|
126
|
+
hasProducts: prevOffset >= 0,
|
127
|
+
fetchProducts: () => fetchProductsByOffset(prevOffset),
|
128
|
+
offset: prevOffset,
|
129
|
+
page: prevOffset / perPage + 1
|
130
|
+
},
|
131
|
+
next: {
|
132
|
+
loadingProducts: loading.next,
|
133
|
+
hasProducts: nextOffset < totalResults,
|
134
|
+
fetchProducts: () => fetchProductsByOffset(nextOffset),
|
135
|
+
offset: nextOffset,
|
136
|
+
page: nextOffset / perPage + 1
|
137
|
+
},
|
138
|
+
products: memoizedProducts
|
139
|
+
};
|
140
|
+
};
|
141
|
+
export default useInfinitePagination;
|
142
|
+
//# sourceMappingURL=useInfinitePagination.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useInfinitePagination.js","sourceRoot":"","sources":["useInfinitePagination.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export default function useLogError(condition: boolean, err: Error, extras?: any): void;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { useEffect } from 'react';
|
2
|
+
import logError from '../helpers/logError';
|
3
|
+
export default function useLogError(condition, err, extras) {
|
4
|
+
useEffect(() => {
|
5
|
+
logError(condition, err, extras);
|
6
|
+
}, [condition, err, extras]);
|
7
|
+
}
|
8
|
+
//# sourceMappingURL=useLogError.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useLogError.js","sourceRoot":"","sources":["useLogError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,SAAkB,EAClB,GAAU,EACV,MAAY;IAEZ,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { LoginResponse } from '../types';
|
2
|
+
declare const useLoginMutation: () => {
|
3
|
+
loginMutation: (options?: import("@apollo/client").MutationFunctionOptions<{
|
4
|
+
login: LoginResponse;
|
5
|
+
}, {
|
6
|
+
email: string;
|
7
|
+
password: string;
|
8
|
+
}, import("@apollo/client").DefaultContext, import("@apollo/client").ApolloCache<any>>) => Promise<import("@apollo/client").FetchResult<{
|
9
|
+
login: LoginResponse;
|
10
|
+
}, Record<string, any>, Record<string, any>>>;
|
11
|
+
};
|
12
|
+
export { useLoginMutation };
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { useContext } from 'react';
|
2
|
+
import { useMutation } from '@apollo/client';
|
3
|
+
import { login } from '@jetshop/core/data/mutations/accountMutations.gql';
|
4
|
+
import AuthContext from '../components/AuthContext/AuthContext';
|
5
|
+
const useLoginMutation = () => {
|
6
|
+
const { updateLoggedIn } = useContext(AuthContext);
|
7
|
+
const [loginMutation] = useMutation(login, {
|
8
|
+
onCompleted: (data) => {
|
9
|
+
updateLoggedIn(!!data.login.token, data.login.token.value);
|
10
|
+
}
|
11
|
+
});
|
12
|
+
return { loginMutation };
|
13
|
+
};
|
14
|
+
export { useLoginMutation };
|
15
|
+
//# sourceMappingURL=useLoginMutation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useLoginMutation.js","sourceRoot":"","sources":["useLoginMutation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAE1E,OAAO,WAAW,MAAM,uCAAuC,CAAC;AAEhE,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,MAAM,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW,CAGjC,KAAK,EAAE;QACP,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YACpB,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { useContext } from 'react';
|
2
|
+
import qs from 'qs';
|
3
|
+
import cartCheckoutQuery from './CartCheckoutQuery.gql';
|
4
|
+
import { CartIdContext } from '../components/Cart/CartIdContext';
|
5
|
+
import { useApolloClient } from '@apollo/client';
|
6
|
+
function useLoginRedirect() {
|
7
|
+
const { ReturnURL } = __IN_SERVER__
|
8
|
+
? { ReturnURL: null }
|
9
|
+
: qs.parse(window.location.search, {
|
10
|
+
ignoreQueryPrefix: true
|
11
|
+
});
|
12
|
+
const { cartId } = useContext(CartIdContext);
|
13
|
+
const client = useApolloClient();
|
14
|
+
function getRedirectUrl() {
|
15
|
+
if (!ReturnURL)
|
16
|
+
return;
|
17
|
+
if (ReturnURL.startsWith('/checkout')) {
|
18
|
+
return client
|
19
|
+
.query({
|
20
|
+
query: cartCheckoutQuery,
|
21
|
+
variables: {
|
22
|
+
cartId
|
23
|
+
}
|
24
|
+
})
|
25
|
+
.then((result) => {
|
26
|
+
const externalCheckoutUrl = result.data.cart.externalCheckoutUrl;
|
27
|
+
return externalCheckoutUrl;
|
28
|
+
});
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
return Promise.resolve(ReturnURL);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
return { getRedirectUrl };
|
35
|
+
}
|
36
|
+
export { useLoginRedirect };
|
37
|
+
//# sourceMappingURL=useLoginRedirect.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useLoginRedirect.js","sourceRoot":"","sources":["useLoginRedirect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,SAAS,gBAAgB;IACvB,MAAM,EAAE,SAAS,EAAE,GAA0B,aAAa;QACxD,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;QACrB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/B,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACP,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,SAAS,cAAc;QACrB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YACrC,OAAO,MAAM;iBACV,KAAK,CAAiB;gBACrB,KAAK,EAAE,iBAAiB;gBACxB,SAAS,EAAE;oBACT,MAAM;iBACP;aACF,CAAC;iBACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,MAAM,mBAAmB,GACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBACvC,OAAO,mBAAmB,CAAC;YAC7B,CAAC,CAAC,CAAC;SACN;aAAM;YACL,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACnC;IACH,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { DocumentNode } from 'graphql';
|
2
|
+
import { Order } from '../types';
|
3
|
+
interface UseOrderDetail {
|
4
|
+
query: DocumentNode;
|
5
|
+
orderId: string;
|
6
|
+
id: number;
|
7
|
+
}
|
8
|
+
/**
|
9
|
+
* Takes in the orderDetails query and order id, and returns the result and
|
10
|
+
* some helpers
|
11
|
+
*/
|
12
|
+
export default function useOrderDetailQuery({ query, id }: UseOrderDetail): {
|
13
|
+
loading: boolean;
|
14
|
+
error: import("@apollo/client").ApolloError;
|
15
|
+
order: Order;
|
16
|
+
result: import("@apollo/client").QueryResult<{
|
17
|
+
order: Order;
|
18
|
+
}, import("@apollo/client").OperationVariables>;
|
19
|
+
};
|
20
|
+
export {};
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { useQuery } from '@apollo/client';
|
2
|
+
import throwErrorInDev from '../helpers/throwErrorInDev';
|
3
|
+
import logWarningInDev from '../helpers/logWarningInDev';
|
4
|
+
/**
|
5
|
+
* Takes in the orderDetails query and order id, and returns the result and
|
6
|
+
* some helpers
|
7
|
+
*/
|
8
|
+
export default function useOrderDetailQuery({ query, id }) {
|
9
|
+
var _a, _b;
|
10
|
+
const queryUsesOrderIdParam =
|
11
|
+
// @ts-ignore
|
12
|
+
((_b = (_a = query.definitions[0]) === null || _a === void 0 ? void 0 : _a.variableDefinitions[0]) === null || _b === void 0 ? void 0 : _b.variable.name.value) ===
|
13
|
+
'orderId';
|
14
|
+
const result = useQuery(query, {
|
15
|
+
variables: queryUsesOrderIdParam ? { orderId: id } : { id: id }
|
16
|
+
});
|
17
|
+
throwErrorInDev(!!result.error, `The API returned an error for the Order query with id ${id}.
|
18
|
+
${result.error}`);
|
19
|
+
logWarningInDev(!queryUsesOrderIdParam, 'order(id: Int) has been deprecated. Please update OrderDetail.gql to use the orderId variable.');
|
20
|
+
throwErrorInDev(!result.loading && result.data && !result.data.order ? true : false, 'No order field was found in the response. Double-check that your query includes `{ order(orderId: ID!) }`');
|
21
|
+
return {
|
22
|
+
// Default loading to true for SSR
|
23
|
+
loading: result ? result.loading : true,
|
24
|
+
error: result.error,
|
25
|
+
order: result.data ? result.data.order : null,
|
26
|
+
result
|
27
|
+
};
|
28
|
+
}
|
29
|
+
//# sourceMappingURL=useOrderDetailQuery.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useOrderDetailQuery.js","sourceRoot":"","sources":["useOrderDetailQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,eAAe,MAAM,4BAA4B,CAAC;AACzD,OAAO,eAAe,MAAM,4BAA4B,CAAC;AASzD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAkB;;IACvE,MAAM,qBAAqB;IACzB,aAAa;IACb,CAAA,MAAA,MAAA,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,mBAAmB,CAAC,CAAC,CAAC,0CAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;QACjE,SAAS,CAAC;IAEZ,MAAM,MAAM,GAAG,QAAQ,CAAmB,KAAK,EAAE;QAC/C,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;KAChE,CAAC,CAAC;IAEH,eAAe,CACb,CAAC,CAAC,MAAM,CAAC,KAAK,EACd,yDAAyD,EAAE;MACzD,MAAM,CAAC,KAAK,EAAE,CACjB,CAAC;IAEF,eAAe,CACb,CAAC,qBAAqB,EACtB,gGAAgG,CACjG,CAAC;IAEF,eAAe,CACb,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EACnE,2GAA2G,CAC5G,CAAC;IAEF,OAAO;QACL,kCAAkC;QAClC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC7C,MAAM;KACP,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
interface PreconnectLinkOptions {
|
2
|
+
ga?: boolean;
|
3
|
+
gtm?: boolean;
|
4
|
+
}
|
5
|
+
interface PreconnectLink {
|
6
|
+
href: string;
|
7
|
+
crossOrigin: '' | 'anonymous' | 'use-credentials';
|
8
|
+
}
|
9
|
+
export declare function usePreconnectLinks({ ga, gtm }?: PreconnectLinkOptions): PreconnectLink[];
|
10
|
+
export {};
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { useShopConfig } from './useShopConfig';
|
2
|
+
export function usePreconnectLinks({ ga = false, gtm = false } = {}) {
|
3
|
+
const { apolloConfig } = useShopConfig();
|
4
|
+
// These links are used with every store
|
5
|
+
const staticLinks = [
|
6
|
+
{
|
7
|
+
href: 'https://cdn.polyfill.io',
|
8
|
+
crossOrigin: null
|
9
|
+
},
|
10
|
+
(apolloConfig === null || apolloConfig === void 0 ? void 0 : apolloConfig.graphQLURI) && {
|
11
|
+
href: apolloConfig === null || apolloConfig === void 0 ? void 0 : apolloConfig.graphQLURI,
|
12
|
+
crossOrigin: null
|
13
|
+
}
|
14
|
+
].filter(Boolean);
|
15
|
+
// Only preconnect to these urls if Google Analytics is enabled
|
16
|
+
const gaLinks = ga
|
17
|
+
? [
|
18
|
+
'https://www.google-analytics.com',
|
19
|
+
'https://www.google.com',
|
20
|
+
'https://stats.g.doubleclick.net'
|
21
|
+
]
|
22
|
+
: [];
|
23
|
+
// Only preconnect to these if GTM is enabled
|
24
|
+
const gtmLinks = gtm ? ['https://www.googletagmanager.com'] : [];
|
25
|
+
return [
|
26
|
+
...staticLinks,
|
27
|
+
...gaLinks.concat(gtmLinks).map((href) => ({ href, crossOrigin: null }))
|
28
|
+
];
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=usePreconnectLinks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"usePreconnectLinks.js","sourceRoot":"","sources":["usePreconnectLinks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhD,MAAM,UAAU,kBAAkB,CAAC,EACjC,EAAE,GAAG,KAAK,EACV,GAAG,GAAG,KAAK,KACc,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,CAAC;IAEzC,wCAAwC;IACxC,MAAM,WAAW,GAAG;QAClB;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,IAAI;SAClB;QACD,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,KAAI;YAC1B,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU;YAC9B,WAAW,EAAE,IAAI;SAClB;KACF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,+DAA+D;IAC/D,MAAM,OAAO,GAAG,EAAE;QAChB,CAAC,CAAC;YACE,kCAAkC;YAClC,wBAAwB;YACxB,iCAAiC;SAClC;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,OAAO;QACL,GAAG,WAAW;QACd,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { ReactNode } from 'react';
|
2
|
+
import { Price } from '@jetshop/core/types';
|
3
|
+
export interface UsePrice {
|
4
|
+
price: Price;
|
5
|
+
previousPrice?: Price;
|
6
|
+
currencyOverride?: {
|
7
|
+
code: string;
|
8
|
+
culture: string;
|
9
|
+
};
|
10
|
+
/**Optional formatter to format currency */
|
11
|
+
formatter?(price: number, currencyCode?: string, culture?: string): string;
|
12
|
+
/** Override the channel settings for includeVat */
|
13
|
+
includeVat?: boolean;
|
14
|
+
hidePrice?: boolean;
|
15
|
+
}
|
16
|
+
export declare function usePrice({ currencyOverride, price, previousPrice, includeVat, formatter: defaultFormatter, hidePrice }: UsePrice): {
|
17
|
+
hidePrice: boolean;
|
18
|
+
hasDiscount: boolean;
|
19
|
+
includesVat: boolean;
|
20
|
+
currencyLocale: {
|
21
|
+
code: string;
|
22
|
+
culture: string;
|
23
|
+
};
|
24
|
+
pricing: {
|
25
|
+
[k: string]: {
|
26
|
+
vat: number;
|
27
|
+
value: number;
|
28
|
+
};
|
29
|
+
};
|
30
|
+
formattedPricing: {
|
31
|
+
price: ReactNode;
|
32
|
+
previousPrice: ReactNode;
|
33
|
+
};
|
34
|
+
};
|
35
|
+
/**
|
36
|
+
* Normalise the price to an object with keys `value` and `vat`
|
37
|
+
*/
|
38
|
+
export declare function selectPriceType(includeVat: boolean, priceObj: Price): {
|
39
|
+
vat: number;
|
40
|
+
value: number;
|
41
|
+
} | null;
|
@@ -0,0 +1,73 @@
|
|
1
|
+
import ChannelContext from '@jetshop/core/components/ChannelContext';
|
2
|
+
import { useContext } from 'react';
|
3
|
+
import { useIntl } from '@jetshop/intl';
|
4
|
+
// #endregion Interfaces
|
5
|
+
// #region
|
6
|
+
export function usePrice({ currencyOverride, price, previousPrice, includeVat, formatter: defaultFormatter, hidePrice }) {
|
7
|
+
var _a;
|
8
|
+
const context = useContext(ChannelContext);
|
9
|
+
const t = useIntl();
|
10
|
+
if (!context || !context.selectedChannel)
|
11
|
+
return null;
|
12
|
+
let formatter = defaultFormatter;
|
13
|
+
if (!formatter) {
|
14
|
+
formatter = t.number;
|
15
|
+
}
|
16
|
+
const { selectedChannel: { settings, currency, language } } = context;
|
17
|
+
/** Get the locale to be passed to the t.price formatter */
|
18
|
+
const currencyLocale = currencyOverride
|
19
|
+
? { code: currencyOverride.code, culture: currencyOverride.culture }
|
20
|
+
: {
|
21
|
+
code: currency.name,
|
22
|
+
culture: language.culture
|
23
|
+
};
|
24
|
+
/** Allow incVat to be overriden */
|
25
|
+
const incVat = typeof includeVat !== 'undefined'
|
26
|
+
? includeVat
|
27
|
+
: (_a = settings === null || settings === void 0 ? void 0 : settings.pricesIncVat) !== null && _a !== void 0 ? _a : true;
|
28
|
+
/** Convert the pricing to {value: number} */
|
29
|
+
const pricing = {
|
30
|
+
price: selectPriceType(incVat, price),
|
31
|
+
previousPrice: previousPrice
|
32
|
+
? selectPriceType(incVat, previousPrice)
|
33
|
+
: { value: 0, vat: 0 }
|
34
|
+
};
|
35
|
+
const formattedPricing = {
|
36
|
+
previousPrice: null,
|
37
|
+
price: null
|
38
|
+
};
|
39
|
+
for (const val in pricing) {
|
40
|
+
if (pricing.hasOwnProperty(val) && pricing[val]) {
|
41
|
+
formattedPricing[val] = formatter(pricing[val].value, currencyLocale.code, currencyLocale.culture);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
return {
|
45
|
+
hidePrice,
|
46
|
+
hasDiscount: pricing.previousPrice && pricing.previousPrice.value
|
47
|
+
? pricing.price.value < pricing.previousPrice.value
|
48
|
+
: false,
|
49
|
+
includesVat: incVat,
|
50
|
+
currencyLocale,
|
51
|
+
pricing,
|
52
|
+
formattedPricing
|
53
|
+
};
|
54
|
+
}
|
55
|
+
// #endregion Container Component
|
56
|
+
// #region Utilities
|
57
|
+
/**
|
58
|
+
* Normalise the price to an object with keys `value` and `vat`
|
59
|
+
*/
|
60
|
+
export function selectPriceType(includeVat, priceObj) {
|
61
|
+
if (!priceObj)
|
62
|
+
return null;
|
63
|
+
const { vat, exVat, incVat } = priceObj;
|
64
|
+
if (includeVat) {
|
65
|
+
return { vat, value: incVat };
|
66
|
+
}
|
67
|
+
return {
|
68
|
+
vat,
|
69
|
+
value: exVat
|
70
|
+
};
|
71
|
+
}
|
72
|
+
// #endregion Utilities
|
73
|
+
//# sourceMappingURL=usePrice.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"usePrice.js","sourceRoot":"","sources":["usePrice.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { useProductVariants } from './useProductVariants';
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Product, ProductVariant, ProductVariantOption } from '../../types';
|
2
|
+
export type VariantValidation = 'outOfStock' | 'valid' | 'incomplete' | 'invalid';
|
3
|
+
/**
|
4
|
+
* Given a product, this hook provides methods for getting and setting variants on that product,
|
5
|
+
* as well as methods to validate the current and proposed combination of values.
|
6
|
+
*/
|
7
|
+
export declare function useProductVariants(product: Product, { initialVariant, preselectCheapest }?: {
|
8
|
+
initialVariant?: ProductVariantOption;
|
9
|
+
preselectCheapest?: boolean;
|
10
|
+
}): {
|
11
|
+
selectedVariant: ProductVariant;
|
12
|
+
validation: VariantValidation;
|
13
|
+
getSelectedValue: (option: ProductVariantOption) => string;
|
14
|
+
selectValue: (value: string, option: ProductVariantOption) => void;
|
15
|
+
validateSelection: (value: string, option: ProductVariantOption) => VariantValidation;
|
16
|
+
getVariantForSelection: (value: string, option: ProductVariantOption) => ProductVariant;
|
17
|
+
missingOptions: ProductVariantOption[];
|
18
|
+
getMissingOptions: () => ProductVariantOption[];
|
19
|
+
};
|