@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,79 +1,79 @@
|
|
1
|
-
import gql from 'graphql-tag';
|
2
|
-
////////////////////////////////////////////////////////////////////////////////
|
3
|
-
// Mutations
|
4
|
-
/**
|
5
|
-
* Clear all filters by running their 'clear' mutations
|
6
|
-
*/
|
7
|
-
export const clearAllFilters = (_, __, { client, cache }) => {
|
8
|
-
const activeFiltersQuery = gql `
|
9
|
-
query GetActiveFilters {
|
10
|
-
activeFilters @client {
|
11
|
-
listFilters {
|
12
|
-
id
|
13
|
-
}
|
14
|
-
rangeFilters {
|
15
|
-
id
|
16
|
-
}
|
17
|
-
booleanFilters {
|
18
|
-
id
|
19
|
-
}
|
20
|
-
multiListFilters {
|
21
|
-
id
|
22
|
-
}
|
23
|
-
}
|
24
|
-
}
|
25
|
-
`;
|
26
|
-
const { activeFilters } = cache.readQuery({
|
27
|
-
query: activeFiltersQuery
|
28
|
-
});
|
29
|
-
activeFilters.listFilters.forEach(listFilter => {
|
30
|
-
client.mutate({
|
31
|
-
mutation: gql `
|
32
|
-
mutation ClearListFilter($id: String!) {
|
33
|
-
clearListFilter(id: $id) @client
|
34
|
-
}
|
35
|
-
`,
|
36
|
-
variables: {
|
37
|
-
id: listFilter.id
|
38
|
-
}
|
39
|
-
});
|
40
|
-
});
|
41
|
-
activeFilters.rangeFilters.forEach(rangeFilter => {
|
42
|
-
client.mutate({
|
43
|
-
mutation: gql `
|
44
|
-
mutation ClearRangeFilter($id: String!) {
|
45
|
-
clearRangeFilter(id: $id) @client
|
46
|
-
}
|
47
|
-
`,
|
48
|
-
variables: {
|
49
|
-
id: rangeFilter.id
|
50
|
-
}
|
51
|
-
});
|
52
|
-
});
|
53
|
-
activeFilters.booleanFilters.forEach(boolFilter => {
|
54
|
-
client.mutate({
|
55
|
-
mutation: gql `
|
56
|
-
mutation ClearBoolFilter($id: String!) {
|
57
|
-
setBoolFilter(id: $id, value: null) @client
|
58
|
-
}
|
59
|
-
`,
|
60
|
-
variables: {
|
61
|
-
id: boolFilter.id
|
62
|
-
}
|
63
|
-
});
|
64
|
-
});
|
65
|
-
activeFilters.multiListFilters.forEach(multiFilter => {
|
66
|
-
client.mutate({
|
67
|
-
mutation: gql `
|
68
|
-
mutation ClearMultiFilter($id: String!) {
|
69
|
-
clearMultiListFilter(id: $id) @client
|
70
|
-
}
|
71
|
-
`,
|
72
|
-
variables: {
|
73
|
-
id: multiFilter.id
|
74
|
-
}
|
75
|
-
});
|
76
|
-
});
|
77
|
-
return null;
|
78
|
-
};
|
1
|
+
import gql from 'graphql-tag';
|
2
|
+
////////////////////////////////////////////////////////////////////////////////
|
3
|
+
// Mutations
|
4
|
+
/**
|
5
|
+
* Clear all filters by running their 'clear' mutations
|
6
|
+
*/
|
7
|
+
export const clearAllFilters = (_, __, { client, cache }) => {
|
8
|
+
const activeFiltersQuery = gql `
|
9
|
+
query GetActiveFilters {
|
10
|
+
activeFilters @client {
|
11
|
+
listFilters {
|
12
|
+
id
|
13
|
+
}
|
14
|
+
rangeFilters {
|
15
|
+
id
|
16
|
+
}
|
17
|
+
booleanFilters {
|
18
|
+
id
|
19
|
+
}
|
20
|
+
multiListFilters {
|
21
|
+
id
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
`;
|
26
|
+
const { activeFilters } = cache.readQuery({
|
27
|
+
query: activeFiltersQuery
|
28
|
+
});
|
29
|
+
activeFilters.listFilters.forEach(listFilter => {
|
30
|
+
client.mutate({
|
31
|
+
mutation: gql `
|
32
|
+
mutation ClearListFilter($id: String!) {
|
33
|
+
clearListFilter(id: $id) @client
|
34
|
+
}
|
35
|
+
`,
|
36
|
+
variables: {
|
37
|
+
id: listFilter.id
|
38
|
+
}
|
39
|
+
});
|
40
|
+
});
|
41
|
+
activeFilters.rangeFilters.forEach(rangeFilter => {
|
42
|
+
client.mutate({
|
43
|
+
mutation: gql `
|
44
|
+
mutation ClearRangeFilter($id: String!) {
|
45
|
+
clearRangeFilter(id: $id) @client
|
46
|
+
}
|
47
|
+
`,
|
48
|
+
variables: {
|
49
|
+
id: rangeFilter.id
|
50
|
+
}
|
51
|
+
});
|
52
|
+
});
|
53
|
+
activeFilters.booleanFilters.forEach(boolFilter => {
|
54
|
+
client.mutate({
|
55
|
+
mutation: gql `
|
56
|
+
mutation ClearBoolFilter($id: String!) {
|
57
|
+
setBoolFilter(id: $id, value: null) @client
|
58
|
+
}
|
59
|
+
`,
|
60
|
+
variables: {
|
61
|
+
id: boolFilter.id
|
62
|
+
}
|
63
|
+
});
|
64
|
+
});
|
65
|
+
activeFilters.multiListFilters.forEach(multiFilter => {
|
66
|
+
client.mutate({
|
67
|
+
mutation: gql `
|
68
|
+
mutation ClearMultiFilter($id: String!) {
|
69
|
+
clearMultiListFilter(id: $id) @client
|
70
|
+
}
|
71
|
+
`,
|
72
|
+
variables: {
|
73
|
+
id: multiFilter.id
|
74
|
+
}
|
75
|
+
});
|
76
|
+
});
|
77
|
+
return null;
|
78
|
+
};
|
79
79
|
//# sourceMappingURL=filters.js.map
|
@@ -1,27 +1,27 @@
|
|
1
|
-
import { FilterInput, ListFilterInput, RangeFilterInput, BooleanFilterInput, MultiListFilterInput } from '../../types';
|
2
|
-
export * from './listFilterItem';
|
3
|
-
export * from './listFilter';
|
4
|
-
export * from './filters';
|
5
|
-
export * from './boolFilter';
|
6
|
-
export * from './rangeFilter';
|
7
|
-
export * from './multiListFilter';
|
8
|
-
export * from './multiListFilterList';
|
9
|
-
export interface ActiveFilters extends FilterInput {
|
10
|
-
__typename: 'ActiveFilters';
|
11
|
-
listFilters?: ActiveListFilter[];
|
12
|
-
rangeFilters?: ActiveRangeFilter[];
|
13
|
-
booleanFilters?: ActiveBooleanFilter[];
|
14
|
-
multiListFilters?: ActiveMultiListFilter[];
|
15
|
-
}
|
16
|
-
export interface ActiveListFilter extends ListFilterInput {
|
17
|
-
__typename: 'ListFilterInput';
|
18
|
-
}
|
19
|
-
export interface ActiveRangeFilter extends RangeFilterInput {
|
20
|
-
__typename: 'RangeFilterInput';
|
21
|
-
}
|
22
|
-
export interface ActiveBooleanFilter extends BooleanFilterInput {
|
23
|
-
__typename: 'BooleanFilterInput';
|
24
|
-
}
|
25
|
-
export interface ActiveMultiListFilter extends MultiListFilterInput {
|
26
|
-
__typename: 'MultiListFilterInput';
|
27
|
-
}
|
1
|
+
import { FilterInput, ListFilterInput, RangeFilterInput, BooleanFilterInput, MultiListFilterInput } from '../../types';
|
2
|
+
export * from './listFilterItem';
|
3
|
+
export * from './listFilter';
|
4
|
+
export * from './filters';
|
5
|
+
export * from './boolFilter';
|
6
|
+
export * from './rangeFilter';
|
7
|
+
export * from './multiListFilter';
|
8
|
+
export * from './multiListFilterList';
|
9
|
+
export interface ActiveFilters extends FilterInput {
|
10
|
+
__typename: 'ActiveFilters';
|
11
|
+
listFilters?: ActiveListFilter[];
|
12
|
+
rangeFilters?: ActiveRangeFilter[];
|
13
|
+
booleanFilters?: ActiveBooleanFilter[];
|
14
|
+
multiListFilters?: ActiveMultiListFilter[];
|
15
|
+
}
|
16
|
+
export interface ActiveListFilter extends ListFilterInput {
|
17
|
+
__typename: 'ListFilterInput';
|
18
|
+
}
|
19
|
+
export interface ActiveRangeFilter extends RangeFilterInput {
|
20
|
+
__typename: 'RangeFilterInput';
|
21
|
+
}
|
22
|
+
export interface ActiveBooleanFilter extends BooleanFilterInput {
|
23
|
+
__typename: 'BooleanFilterInput';
|
24
|
+
}
|
25
|
+
export interface ActiveMultiListFilter extends MultiListFilterInput {
|
26
|
+
__typename: 'MultiListFilterInput';
|
27
|
+
}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
export * from './listFilterItem';
|
2
|
-
export * from './listFilter';
|
3
|
-
export * from './filters';
|
4
|
-
export * from './boolFilter';
|
5
|
-
export * from './rangeFilter';
|
6
|
-
export * from './multiListFilter';
|
7
|
-
export * from './multiListFilterList';
|
1
|
+
export * from './listFilterItem';
|
2
|
+
export * from './listFilter';
|
3
|
+
export * from './filters';
|
4
|
+
export * from './boolFilter';
|
5
|
+
export * from './rangeFilter';
|
6
|
+
export * from './multiListFilter';
|
7
|
+
export * from './multiListFilterList';
|
8
8
|
//# sourceMappingURL=index.js.map
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { Resolver } from '..';
|
2
|
-
export declare const listFilterHasActiveItems: Resolver;
|
3
|
-
/**
|
4
|
-
* Mutation to clear a list filter's hasActiveItems state, and all child
|
5
|
-
* listFilterItem isActive state
|
6
|
-
*/
|
7
|
-
export declare const clearListFilter: Resolver;
|
1
|
+
import { Resolver } from '..';
|
2
|
+
export declare const listFilterHasActiveItems: Resolver;
|
3
|
+
/**
|
4
|
+
* Mutation to clear a list filter's hasActiveItems state, and all child
|
5
|
+
* listFilterItem isActive state
|
6
|
+
*/
|
7
|
+
export declare const clearListFilter: Resolver;
|
@@ -1,74 +1,74 @@
|
|
1
|
-
import gql from 'graphql-tag';
|
2
|
-
import produce from 'immer';
|
3
|
-
import { updateListFilterQueryString } from './updateQueryString';
|
4
|
-
export const listFilterHasActiveItems = function listFilterHasActiveItems(parent) {
|
5
|
-
return (searchParams) => {
|
6
|
-
// During SSR, search params are passed in when instantiating Apollo Client.
|
7
|
-
// Otherwise, get them from the document location
|
8
|
-
const query = __IN_SERVER__ ? searchParams : document.location.search;
|
9
|
-
// If the search params include the parent id, this filter is applied
|
10
|
-
return query === null || query === void 0 ? void 0 : query.includes(parent.id);
|
11
|
-
};
|
12
|
-
};
|
13
|
-
////////////////////////////////////////////////////////////////////////////////
|
14
|
-
/**
|
15
|
-
* Mutation to clear a list filter's hasActiveItems state, and all child
|
16
|
-
* listFilterItem isActive state
|
17
|
-
*/
|
18
|
-
export const clearListFilter = (_, { id }, { cache, getCacheKey }) => {
|
19
|
-
const fragmentId = getCacheKey({ id, __typename: 'ListFilter' });
|
20
|
-
const filter = cache.readFragment({
|
21
|
-
id: fragmentId,
|
22
|
-
fragment: gql `
|
23
|
-
fragment listFilterItems on ListFilter {
|
24
|
-
hasActiveItems @client
|
25
|
-
id
|
26
|
-
items {
|
27
|
-
id
|
28
|
-
isActive @client
|
29
|
-
}
|
30
|
-
}
|
31
|
-
`
|
32
|
-
});
|
33
|
-
const data = produce(filter, draft => {
|
34
|
-
draft.hasActiveItems = false;
|
35
|
-
draft.items.forEach(item => (item.isActive = false));
|
36
|
-
});
|
37
|
-
cache.writeData({
|
38
|
-
id: fragmentId,
|
39
|
-
data
|
40
|
-
});
|
41
|
-
const activeFilters = updateActiveFilters(cache, id);
|
42
|
-
window.location.search && updateListFilterQueryString(activeFilters);
|
43
|
-
return data;
|
44
|
-
};
|
45
|
-
////////////////////////////////////////////////////////////////////////////////
|
46
|
-
/**
|
47
|
-
* Update the active filters in the cache root.
|
48
|
-
* @param cache Apollo Client cache
|
49
|
-
* @param id The ListFilter ID
|
50
|
-
* @returns All active filters
|
51
|
-
*/
|
52
|
-
function updateActiveFilters(cache, id) {
|
53
|
-
const activeListFilterQuery = gql `
|
54
|
-
query GetActiveListFilters {
|
55
|
-
activeFilters @client {
|
56
|
-
listFilters {
|
57
|
-
id
|
58
|
-
values
|
59
|
-
}
|
60
|
-
}
|
61
|
-
}
|
62
|
-
`;
|
63
|
-
const { activeFilters } = cache.readQuery({
|
64
|
-
query: activeListFilterQuery
|
65
|
-
});
|
66
|
-
const data = produce(activeFilters, draft => {
|
67
|
-
draft.listFilters = draft.listFilters.filter(listFilter => listFilter.id !== id);
|
68
|
-
});
|
69
|
-
cache.writeData({
|
70
|
-
data: { activeFilters: data }
|
71
|
-
});
|
72
|
-
return data;
|
73
|
-
}
|
1
|
+
import gql from 'graphql-tag';
|
2
|
+
import produce from 'immer';
|
3
|
+
import { updateListFilterQueryString } from './updateQueryString';
|
4
|
+
export const listFilterHasActiveItems = function listFilterHasActiveItems(parent) {
|
5
|
+
return (searchParams) => {
|
6
|
+
// During SSR, search params are passed in when instantiating Apollo Client.
|
7
|
+
// Otherwise, get them from the document location
|
8
|
+
const query = __IN_SERVER__ ? searchParams : document.location.search;
|
9
|
+
// If the search params include the parent id, this filter is applied
|
10
|
+
return query === null || query === void 0 ? void 0 : query.includes(parent.id);
|
11
|
+
};
|
12
|
+
};
|
13
|
+
////////////////////////////////////////////////////////////////////////////////
|
14
|
+
/**
|
15
|
+
* Mutation to clear a list filter's hasActiveItems state, and all child
|
16
|
+
* listFilterItem isActive state
|
17
|
+
*/
|
18
|
+
export const clearListFilter = (_, { id }, { cache, getCacheKey }) => {
|
19
|
+
const fragmentId = getCacheKey({ id, __typename: 'ListFilter' });
|
20
|
+
const filter = cache.readFragment({
|
21
|
+
id: fragmentId,
|
22
|
+
fragment: gql `
|
23
|
+
fragment listFilterItems on ListFilter {
|
24
|
+
hasActiveItems @client
|
25
|
+
id
|
26
|
+
items {
|
27
|
+
id
|
28
|
+
isActive @client
|
29
|
+
}
|
30
|
+
}
|
31
|
+
`
|
32
|
+
});
|
33
|
+
const data = produce(filter, draft => {
|
34
|
+
draft.hasActiveItems = false;
|
35
|
+
draft.items.forEach(item => (item.isActive = false));
|
36
|
+
});
|
37
|
+
cache.writeData({
|
38
|
+
id: fragmentId,
|
39
|
+
data
|
40
|
+
});
|
41
|
+
const activeFilters = updateActiveFilters(cache, id);
|
42
|
+
window.location.search && updateListFilterQueryString(activeFilters);
|
43
|
+
return data;
|
44
|
+
};
|
45
|
+
////////////////////////////////////////////////////////////////////////////////
|
46
|
+
/**
|
47
|
+
* Update the active filters in the cache root.
|
48
|
+
* @param cache Apollo Client cache
|
49
|
+
* @param id The ListFilter ID
|
50
|
+
* @returns All active filters
|
51
|
+
*/
|
52
|
+
function updateActiveFilters(cache, id) {
|
53
|
+
const activeListFilterQuery = gql `
|
54
|
+
query GetActiveListFilters {
|
55
|
+
activeFilters @client {
|
56
|
+
listFilters {
|
57
|
+
id
|
58
|
+
values
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
`;
|
63
|
+
const { activeFilters } = cache.readQuery({
|
64
|
+
query: activeListFilterQuery
|
65
|
+
});
|
66
|
+
const data = produce(activeFilters, draft => {
|
67
|
+
draft.listFilters = draft.listFilters.filter(listFilter => listFilter.id !== id);
|
68
|
+
});
|
69
|
+
cache.writeData({
|
70
|
+
data: { activeFilters: data }
|
71
|
+
});
|
72
|
+
return data;
|
73
|
+
}
|
74
74
|
//# sourceMappingURL=listFilter.js.map
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { Resolver } from '..';
|
2
|
-
export declare const isListFilterActive: Resolver;
|
3
|
-
export declare const toggleListFilterItem: Resolver;
|
1
|
+
import { Resolver } from '..';
|
2
|
+
export declare const isListFilterActive: Resolver;
|
3
|
+
export declare const toggleListFilterItem: Resolver;
|
@@ -1,123 +1,123 @@
|
|
1
|
-
import gql from 'graphql-tag';
|
2
|
-
import produce from 'immer';
|
3
|
-
import { updateListFilterQueryString } from './updateQueryString';
|
4
|
-
import qs from 'qs';
|
5
|
-
// QUERY
|
6
|
-
export const isListFilterActive = function isListFilterActive(parent) {
|
7
|
-
return (searchParams) => {
|
8
|
-
var _a, _b, _c;
|
9
|
-
const query = __IN_SERVER__ ? searchParams : document.location.search;
|
10
|
-
// e.g. Armchair:product-type:151
|
11
|
-
const [, name, category] = parent.id.split(':');
|
12
|
-
// Get the list filters from the search params
|
13
|
-
// e.g.
|
14
|
-
// {
|
15
|
-
//// "151:product-type": ["Armchair"]
|
16
|
-
// }
|
17
|
-
const paramFilter = qs.parse(query, {
|
18
|
-
ignoreQueryPrefix: true,
|
19
|
-
arrayLimit: 100
|
20
|
-
});
|
21
|
-
if (!paramFilter)
|
22
|
-
return false;
|
23
|
-
// Key contains category on category pages, but not on search results
|
24
|
-
const key = category ? `${category}:${name}` : name;
|
25
|
-
// ListFilterItem may be part of a list or a multiList
|
26
|
-
const filterType = ((_a = paramFilter.list) === null || _a === void 0 ? void 0 : _a[key]) || ((_b = paramFilter.multiList) === null || _b === void 0 ? void 0 : _b[key]);
|
27
|
-
// If the params have a matching key and that key has an array including the
|
28
|
-
// value of this list filter item, then this list filter item is active
|
29
|
-
return (_c = filterType === null || filterType === void 0 ? void 0 : filterType.includes(parent.value)) !== null && _c !== void 0 ? _c : false;
|
30
|
-
};
|
31
|
-
};
|
32
|
-
////////////////////////////////////////////////////////////////////////////////
|
33
|
-
// MUTATIONS
|
34
|
-
export const toggleListFilterItem = function toggleListFilterItem(_, { value, parentId, set }, { cache, getCacheKey }) {
|
35
|
-
const fragmentId = getCacheKey({
|
36
|
-
id: parentId,
|
37
|
-
__typename: 'ListFilter'
|
38
|
-
});
|
39
|
-
const listItem = cache.readFragment({
|
40
|
-
fragment: gql `
|
41
|
-
fragment listFilter on ListFilter {
|
42
|
-
hasActiveItems @client
|
43
|
-
id
|
44
|
-
items {
|
45
|
-
id
|
46
|
-
value
|
47
|
-
isActive @client
|
48
|
-
}
|
49
|
-
}
|
50
|
-
`,
|
51
|
-
id: fragmentId
|
52
|
-
});
|
53
|
-
const data = produce(listItem, draft => {
|
54
|
-
const { items } = draft;
|
55
|
-
// Find the item matching the value passed in as an arg
|
56
|
-
const item = items.find(item => item.value === value);
|
57
|
-
// If `set` was passed, set the active state to it. Otherwise, toggle
|
58
|
-
item.isActive = typeof set === 'boolean' ? set : !item.isActive;
|
59
|
-
// If there are any active items, set hasActiveItems to true on the ListFilter
|
60
|
-
draft.hasActiveItems = items.some(item => item.isActive);
|
61
|
-
});
|
62
|
-
cache.writeData({
|
63
|
-
id: fragmentId,
|
64
|
-
data
|
65
|
-
});
|
66
|
-
// Write changes to the active filters list
|
67
|
-
const { activeFilters } = updateActiveListFilters(cache, data);
|
68
|
-
// Update the query string
|
69
|
-
updateListFilterQueryString(activeFilters);
|
70
|
-
return data;
|
71
|
-
};
|
72
|
-
////////////////////////////////////////////////////////////////////////////////
|
73
|
-
/**
|
74
|
-
* Update the active filters in the cache root.
|
75
|
-
* @param cache Apollo Client cache
|
76
|
-
* @param data The updated list item
|
77
|
-
* @returns All active filters
|
78
|
-
*/
|
79
|
-
function updateActiveListFilters(cache, data) {
|
80
|
-
const activeListFilterQuery = gql `
|
81
|
-
query GetActiveListFilters {
|
82
|
-
activeFilters @client {
|
83
|
-
listFilters {
|
84
|
-
id
|
85
|
-
values
|
86
|
-
}
|
87
|
-
}
|
88
|
-
}
|
89
|
-
`;
|
90
|
-
const currentActiveFilters = cache.readQuery({
|
91
|
-
query: activeListFilterQuery
|
92
|
-
});
|
93
|
-
const activeFilters = produce(currentActiveFilters, draft => {
|
94
|
-
// Check if the filter that was just toggled is already in activeFilters
|
95
|
-
const existingListFilter = draft.activeFilters.listFilters.find(filter => filter.id === data.id);
|
96
|
-
// Get an array of ListFilterItem values
|
97
|
-
const activeListFilters = data.items
|
98
|
-
.filter(item => item.isActive)
|
99
|
-
.map(item => item.value);
|
100
|
-
// If there are no active ListFilterItems, remove this ListFilter from ActiveFilters
|
101
|
-
if (activeListFilters.length === 0) {
|
102
|
-
draft.activeFilters.listFilters = draft.activeFilters.listFilters.filter(listFilter => listFilter.id !== existingListFilter.id);
|
103
|
-
return;
|
104
|
-
}
|
105
|
-
if (existingListFilter) {
|
106
|
-
// If the list filter was already active, just update it
|
107
|
-
existingListFilter.values = activeListFilters;
|
108
|
-
}
|
109
|
-
else {
|
110
|
-
// Otherwise push it to the list of active filters
|
111
|
-
draft.activeFilters.listFilters.push({
|
112
|
-
id: data.id,
|
113
|
-
values: activeListFilters,
|
114
|
-
__typename: 'ListFilterInput'
|
115
|
-
});
|
116
|
-
}
|
117
|
-
});
|
118
|
-
cache.writeData({
|
119
|
-
data: activeFilters
|
120
|
-
});
|
121
|
-
return activeFilters;
|
122
|
-
}
|
1
|
+
import gql from 'graphql-tag';
|
2
|
+
import produce from 'immer';
|
3
|
+
import { updateListFilterQueryString } from './updateQueryString';
|
4
|
+
import qs from 'qs';
|
5
|
+
// QUERY
|
6
|
+
export const isListFilterActive = function isListFilterActive(parent) {
|
7
|
+
return (searchParams) => {
|
8
|
+
var _a, _b, _c;
|
9
|
+
const query = __IN_SERVER__ ? searchParams : document.location.search;
|
10
|
+
// e.g. Armchair:product-type:151
|
11
|
+
const [, name, category] = parent.id.split(':');
|
12
|
+
// Get the list filters from the search params
|
13
|
+
// e.g.
|
14
|
+
// {
|
15
|
+
//// "151:product-type": ["Armchair"]
|
16
|
+
// }
|
17
|
+
const paramFilter = qs.parse(query, {
|
18
|
+
ignoreQueryPrefix: true,
|
19
|
+
arrayLimit: 100
|
20
|
+
});
|
21
|
+
if (!paramFilter)
|
22
|
+
return false;
|
23
|
+
// Key contains category on category pages, but not on search results
|
24
|
+
const key = category ? `${category}:${name}` : name;
|
25
|
+
// ListFilterItem may be part of a list or a multiList
|
26
|
+
const filterType = ((_a = paramFilter.list) === null || _a === void 0 ? void 0 : _a[key]) || ((_b = paramFilter.multiList) === null || _b === void 0 ? void 0 : _b[key]);
|
27
|
+
// If the params have a matching key and that key has an array including the
|
28
|
+
// value of this list filter item, then this list filter item is active
|
29
|
+
return (_c = filterType === null || filterType === void 0 ? void 0 : filterType.includes(parent.value)) !== null && _c !== void 0 ? _c : false;
|
30
|
+
};
|
31
|
+
};
|
32
|
+
////////////////////////////////////////////////////////////////////////////////
|
33
|
+
// MUTATIONS
|
34
|
+
export const toggleListFilterItem = function toggleListFilterItem(_, { value, parentId, set }, { cache, getCacheKey }) {
|
35
|
+
const fragmentId = getCacheKey({
|
36
|
+
id: parentId,
|
37
|
+
__typename: 'ListFilter'
|
38
|
+
});
|
39
|
+
const listItem = cache.readFragment({
|
40
|
+
fragment: gql `
|
41
|
+
fragment listFilter on ListFilter {
|
42
|
+
hasActiveItems @client
|
43
|
+
id
|
44
|
+
items {
|
45
|
+
id
|
46
|
+
value
|
47
|
+
isActive @client
|
48
|
+
}
|
49
|
+
}
|
50
|
+
`,
|
51
|
+
id: fragmentId
|
52
|
+
});
|
53
|
+
const data = produce(listItem, draft => {
|
54
|
+
const { items } = draft;
|
55
|
+
// Find the item matching the value passed in as an arg
|
56
|
+
const item = items.find(item => item.value === value);
|
57
|
+
// If `set` was passed, set the active state to it. Otherwise, toggle
|
58
|
+
item.isActive = typeof set === 'boolean' ? set : !item.isActive;
|
59
|
+
// If there are any active items, set hasActiveItems to true on the ListFilter
|
60
|
+
draft.hasActiveItems = items.some(item => item.isActive);
|
61
|
+
});
|
62
|
+
cache.writeData({
|
63
|
+
id: fragmentId,
|
64
|
+
data
|
65
|
+
});
|
66
|
+
// Write changes to the active filters list
|
67
|
+
const { activeFilters } = updateActiveListFilters(cache, data);
|
68
|
+
// Update the query string
|
69
|
+
updateListFilterQueryString(activeFilters);
|
70
|
+
return data;
|
71
|
+
};
|
72
|
+
////////////////////////////////////////////////////////////////////////////////
|
73
|
+
/**
|
74
|
+
* Update the active filters in the cache root.
|
75
|
+
* @param cache Apollo Client cache
|
76
|
+
* @param data The updated list item
|
77
|
+
* @returns All active filters
|
78
|
+
*/
|
79
|
+
function updateActiveListFilters(cache, data) {
|
80
|
+
const activeListFilterQuery = gql `
|
81
|
+
query GetActiveListFilters {
|
82
|
+
activeFilters @client {
|
83
|
+
listFilters {
|
84
|
+
id
|
85
|
+
values
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
`;
|
90
|
+
const currentActiveFilters = cache.readQuery({
|
91
|
+
query: activeListFilterQuery
|
92
|
+
});
|
93
|
+
const activeFilters = produce(currentActiveFilters, draft => {
|
94
|
+
// Check if the filter that was just toggled is already in activeFilters
|
95
|
+
const existingListFilter = draft.activeFilters.listFilters.find(filter => filter.id === data.id);
|
96
|
+
// Get an array of ListFilterItem values
|
97
|
+
const activeListFilters = data.items
|
98
|
+
.filter(item => item.isActive)
|
99
|
+
.map(item => item.value);
|
100
|
+
// If there are no active ListFilterItems, remove this ListFilter from ActiveFilters
|
101
|
+
if (activeListFilters.length === 0) {
|
102
|
+
draft.activeFilters.listFilters = draft.activeFilters.listFilters.filter(listFilter => listFilter.id !== existingListFilter.id);
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
if (existingListFilter) {
|
106
|
+
// If the list filter was already active, just update it
|
107
|
+
existingListFilter.values = activeListFilters;
|
108
|
+
}
|
109
|
+
else {
|
110
|
+
// Otherwise push it to the list of active filters
|
111
|
+
draft.activeFilters.listFilters.push({
|
112
|
+
id: data.id,
|
113
|
+
values: activeListFilters,
|
114
|
+
__typename: 'ListFilterInput'
|
115
|
+
});
|
116
|
+
}
|
117
|
+
});
|
118
|
+
cache.writeData({
|
119
|
+
data: activeFilters
|
120
|
+
});
|
121
|
+
return activeFilters;
|
122
|
+
}
|
123
123
|
//# sourceMappingURL=listFilterItem.js.map
|