@shopgate/engage 7.32.0-beta.1 → 7.32.0-beta.10
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/README.md +0 -1
- package/account/components/Profile/Profile.provider.d.ts +1 -1
- package/account/components/Profile/ProfileAddressBook.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressBook.js +13 -22
- package/account/components/Profile/ProfileAddressCard.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressCard.js +9 -18
- package/account/components/Profile/ProfileForm.d.ts.map +1 -1
- package/account/components/Profile/ProfileForm.js +15 -42
- package/account/components/ProfileContact/ProfileContact.js +13 -21
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts +2 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts.map +1 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.js +61 -5
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts +7 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts.map +1 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.js +14 -2
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts +15 -2
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts.map +1 -1
- package/admin-preview/constants/index.d.ts +0 -12
- package/admin-preview/constants/index.d.ts.map +1 -1
- package/admin-preview/constants/index.js +0 -16
- package/admin-preview/helpers/_internal/detection.d.ts +53 -0
- package/admin-preview/helpers/_internal/detection.d.ts.map +1 -0
- package/admin-preview/helpers/_internal/detection.js +93 -0
- package/admin-preview/helpers/index.d.ts +7 -0
- package/admin-preview/helpers/index.d.ts.map +1 -1
- package/admin-preview/helpers/index.js +12 -4
- package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts +32 -0
- package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts.map +1 -0
- package/admin-preview/initialization/_internal/initialFrontendSettings.js +43 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts +22 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts.map +1 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.js +84 -0
- package/back-in-stock/components/BackInStockButton/index.js +5 -5
- package/back-in-stock/components/Subscriptions/components/Subscription/index.js +2 -5
- package/cart/components/CartItem/CartItemProductLayout.js +2 -1
- package/cart/components/CartItem/CartItemProductLayoutWide.js +2 -2
- package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +7 -14
- package/cart/components/CartItem/CartItemProductProvider.connector.js +0 -2
- package/cart/components/CartItem/CartItemProductProvider.js +3 -30
- package/cart/components/CartItem/CartItemProductProvider.types.js +0 -1
- package/cart/components/CartItem/CartItemQuantityPicker.js +1 -0
- package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +6 -24
- package/cart/components/CartItems/CartItems.js +8 -10
- package/cart/components/CartItems/CartItemsSubstitution.js +3 -2
- package/cart/components/CartSummaryWide/CartSummaryWide.js +2 -2
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +9 -23
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +8 -30
- package/cart/components/PaymentBar/PaymentBarContent.js +1 -1
- package/cart/components/PaymentBar/testUtils/mockFactories.js +4 -11
- package/category/components/CategoryImage/index.js +24 -17
- package/checkout/components/AddressBook/AddressList.js +14 -23
- package/checkout/components/Checkout/CheckoutActions.js +4 -3
- package/checkout/components/Checkout/CheckoutAddress.js +8 -0
- package/checkout/components/Checkout/CheckoutSection.js +6 -2
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +6 -7
- package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +7 -17
- package/components/Badge/Badge.d.ts +30 -0
- package/components/Badge/Badge.d.ts.map +1 -0
- package/components/Badge/Badge.js +48 -0
- package/components/Badge/index.d.ts +3 -0
- package/components/Badge/index.d.ts.map +1 -0
- package/components/Badge/index.js +1 -0
- package/components/Card/Card.d.ts +27 -0
- package/components/Card/Card.d.ts.map +1 -0
- package/components/Card/Card.js +57 -0
- package/components/Card/index.d.ts +4 -0
- package/components/Card/index.d.ts.map +1 -0
- package/components/Card/index.js +2 -0
- package/components/Card/useCardAppearance.d.ts +11 -0
- package/components/Card/useCardAppearance.d.ts.map +1 -0
- package/components/Card/useCardAppearance.js +22 -0
- package/components/ChipLayout/index.js +2 -4
- package/components/Logo/index.d.ts.map +1 -1
- package/components/Logo/index.js +3 -6
- package/components/NavigationHandler/connector.js +1 -1
- package/components/NavigationHandler/index.d.ts +2 -2
- package/components/Paper/Paper.d.ts +48 -0
- package/components/Paper/Paper.d.ts.map +1 -0
- package/components/Paper/Paper.js +64 -0
- package/components/Paper/index.d.ts +3 -0
- package/components/Paper/index.d.ts.map +1 -0
- package/components/Paper/index.js +1 -0
- package/components/PickerUtilize/index.d.ts +2 -1
- package/components/PickerUtilize/index.d.ts.map +1 -1
- package/components/RadioCard/RadioCard.d.ts.map +1 -1
- package/components/RadioCard/RadioCard.js +2 -1
- package/components/SheetList/components/Item/index.js +8 -8
- package/components/Tabs/components/Tab.d.ts.map +1 -1
- package/components/Tabs/components/Tab.js +14 -16
- package/components/Typography/Typography.d.ts +1 -1
- package/components/View/components/Above/index.d.ts.map +1 -1
- package/components/View/components/Above/index.js +3 -1
- package/components/View/components/Below/index.d.ts.map +1 -1
- package/components/View/components/Below/index.js +3 -1
- package/components/View/components/Content/index.d.ts +2 -1
- package/components/View/components/Content/index.d.ts.map +1 -1
- package/components/View/components/Content/index.js +4 -1
- package/components/constants.d.ts +6 -0
- package/components/constants.d.ts.map +1 -0
- package/components/index.d.ts +5 -1
- package/components/index.d.ts.map +1 -1
- package/components/index.js +4 -2
- package/components/v2/Button/Button.d.ts +24 -13
- package/components/v2/Button/Button.d.ts.map +1 -1
- package/components/v2/Button/Button.js +139 -41
- package/components/v2/ButtonBase/ButtonBase.d.ts +50 -10
- package/components/v2/ButtonBase/ButtonBase.d.ts.map +1 -1
- package/components/v2/ButtonBase/ButtonBase.js +192 -17
- package/components/v2/ButtonBase/Ripple.d.ts +2 -1
- package/components/v2/ButtonBase/Ripple.d.ts.map +1 -1
- package/components/v2/ButtonBase/hooks.d.ts +0 -1
- package/components/v2/ButtonBase/hooks.d.ts.map +1 -1
- package/components/v2/ButtonBase/hooks.js +36 -12
- package/components/v2/ButtonGroup/ButtonGroup.d.ts +11 -5
- package/components/v2/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/components/v2/ButtonGroup/ButtonGroup.js +49 -26
- package/components/v2/CircularProgress/CircularProgress.d.ts.map +1 -1
- package/components/v2/CircularProgress/CircularProgress.js +10 -5
- package/core/helpers/getFullImageSource.d.ts +5 -1
- package/core/helpers/getFullImageSource.d.ts.map +1 -1
- package/core/helpers/getFullImageSource.js +30 -14
- package/core/helpers/i18n.d.ts +4 -0
- package/core/helpers/i18n.d.ts.map +1 -1
- package/core/helpers/i18n.js +3 -0
- package/core/hooks/html/useLoadImage.d.ts +3 -3
- package/core/hooks/html/useLoadImage.d.ts.map +1 -1
- package/core/hooks/html/useLoadImage.js +2 -2
- package/core/hooks/useLocalStorage.d.ts +8 -0
- package/core/hooks/useLocalStorage.d.ts.map +1 -1
- package/core/hooks/useLocalStorage.js +22 -15
- package/core/hooks/useNavigation.d.ts +10 -2
- package/core/hooks/useNavigation.d.ts.map +1 -1
- package/core/hooks/useNavigation.js +1 -2
- package/core/initialization/fetchSettings.d.ts +12 -0
- package/core/initialization/fetchSettings.d.ts.map +1 -0
- package/core/initialization/fetchSettings.js +134 -0
- package/core/initialization/index.d.ts +33 -2
- package/core/initialization/index.d.ts.map +1 -1
- package/core/initialization/index.js +44 -103
- package/core/router/conductor.d.ts +9 -0
- package/core/router/helpers.d.ts +28 -15
- package/core/router/helpers.d.ts.map +1 -1
- package/core/router/helpers.js +8 -8
- package/development/components/DevelopmentSettings/DevelopmentSettings.js +3 -3
- package/development/components/SimulatedInsets/SimulatedInsetBottom.js +3 -3
- package/development/components/SimulatedInsets/SimulatedInsetTop.js +2 -2
- package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +7 -17
- package/favorites/components/Item/Item.d.ts +1 -1
- package/favorites/components/Item/Item.d.ts.map +1 -1
- package/favorites/components/Item/Item.js +7 -7
- package/favorites/components/List/List.d.ts +1 -1
- package/favorites/components/List/List.d.ts.map +1 -1
- package/favorites/components/List/List.js +0 -1
- package/favorites/components/List/ListContent.js +4 -5
- package/favorites/components/Lists/Lists.js +17 -6
- package/filter/components/FilterPageContent/components/ApplyButton/index.js +8 -10
- package/filter/components/FilterPageContent/components/ResetButton/index.js +8 -6
- package/filter/components/PriceSlider/index.js +6 -1
- package/locations/components/ChangeLocationButton/ChangeLocationButton.js +10 -14
- package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +4 -8
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +4 -8
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +1 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +9 -18
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +10 -10
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +9 -19
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +9 -10
- package/locations/components/ReserveForm/ReserveForm.js +6 -7
- package/locations/components/StoreDetails/components/GetDirectionsButton.js +2 -4
- package/locations/components/StoreDetails/components/StoreDetails.js +5 -10
- package/locations/components/StoreDetails/components/StoresNearbyListItem.js +13 -21
- package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -11
- package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +5 -11
- package/locations/components/StoreList/StoreListProduct.js +2 -3
- package/locations/components/StoreList/StoreListSearch.js +1 -0
- package/locations/components/StoreList/StoreSelectLocationButton.js +5 -11
- package/login/components/ForgotPassword/ForgotPassword.js +11 -23
- package/mocks/date.js +31 -0
- package/mocks/index.js +3 -0
- package/mocks/pipelineRequest.js +1 -0
- package/mocks/subscriptions.js +1 -0
- package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +5 -7
- package/orders/components/OrderHistory/OrderHistoryList.d.ts.map +1 -1
- package/orders/components/OrderHistory/OrderHistoryList.js +8 -9
- package/orders/components/OrderHistory/OrderHistoryTable.d.ts.map +1 -1
- package/orders/components/OrderHistory/OrderHistoryTable.js +4 -0
- package/package.json +12 -12
- package/page/components/NotFound.d.ts +7 -0
- package/page/components/NotFound.d.ts.map +1 -0
- package/page/components/NotFound.js +8 -8
- package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts +52 -0
- package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts.map +1 -0
- package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.js +4 -4
- package/page/components/ResponsiveWidgetImage/index.d.ts +2 -0
- package/page/components/ResponsiveWidgetImage/index.d.ts.map +1 -0
- package/page/components/WidgetRichText/WidgetRichText.d.ts +25 -0
- package/page/components/WidgetRichText/WidgetRichText.d.ts.map +1 -0
- package/page/components/WidgetRichText/index.d.ts +2 -0
- package/page/components/WidgetRichText/index.d.ts.map +1 -0
- package/page/components/WidgetVideo/WidgetVideo.d.ts +43 -0
- package/page/components/WidgetVideo/WidgetVideo.d.ts.map +1 -0
- package/page/components/WidgetVideo/WidgetVideo.js +33 -39
- package/page/components/WidgetVideo/index.d.ts +2 -0
- package/page/components/WidgetVideo/index.d.ts.map +1 -0
- package/page/components/Widgets/Overlay.d.ts +17 -0
- package/page/components/Widgets/Overlay.d.ts.map +1 -0
- package/page/components/Widgets/Overlay.js +24 -38
- package/page/components/Widgets/Tooltip.d.ts +20 -0
- package/page/components/Widgets/Tooltip.d.ts.map +1 -0
- package/page/components/Widgets/Tooltip.js +6 -10
- package/page/components/Widgets/Widget.d.ts +32 -0
- package/page/components/Widgets/Widget.d.ts.map +1 -0
- package/page/components/Widgets/Widget.js +7 -18
- package/page/components/Widgets/WidgetContext.d.ts +32 -38
- package/page/components/Widgets/WidgetContext.d.ts.map +1 -0
- package/page/components/Widgets/WidgetContext.js +2 -8
- package/page/components/Widgets/WidgetProvider.d.ts +25 -0
- package/page/components/Widgets/WidgetProvider.d.ts.map +1 -0
- package/page/components/Widgets/WidgetProvider.js +5 -12
- package/page/components/Widgets/Widgets.d.ts +16 -0
- package/page/components/Widgets/Widgets.d.ts.map +1 -0
- package/page/components/Widgets/Widgets.js +5 -12
- package/page/components/Widgets/WidgetsPreviewContext.d.ts +21 -0
- package/page/components/Widgets/WidgetsPreviewContext.d.ts.map +1 -0
- package/page/components/Widgets/WidgetsPreviewContext.js +5 -7
- package/page/components/Widgets/WidgetsPreviewProvider.d.ts +18 -0
- package/page/components/Widgets/WidgetsPreviewProvider.d.ts.map +1 -0
- package/page/components/Widgets/WidgetsPreviewProvider.js +5 -6
- package/page/components/Widgets/constants.d.ts +5 -0
- package/page/components/Widgets/constants.d.ts.map +1 -0
- package/page/components/Widgets/constants.js +3 -1
- package/page/components/Widgets/events.d.ts +38 -0
- package/page/components/Widgets/events.d.ts.map +1 -0
- package/page/components/Widgets/events.js +8 -12
- package/page/components/Widgets/helpers.d.ts +50 -0
- package/page/components/Widgets/helpers.d.ts.map +1 -0
- package/page/components/Widgets/helpers.js +8 -13
- package/page/components/Widgets/hooks.d.ts +13 -0
- package/page/components/Widgets/hooks.d.ts.map +1 -0
- package/page/components/Widgets/hooks.js +13 -11
- package/page/components/Widgets/index.d.ts +3 -0
- package/page/components/Widgets/index.d.ts.map +1 -0
- package/page/components/Widgets/types.d.ts +111 -113
- package/page/components/Widgets/types.d.ts.map +1 -0
- package/page/components/Widgets/types.js +1 -0
- package/page/components/index.d.ts +5 -0
- package/page/components/index.d.ts.map +1 -0
- package/page/constants/actionTypes.d.ts +4 -0
- package/page/constants/actionTypes.d.ts.map +1 -0
- package/page/constants/index.d.ts +25 -0
- package/page/constants/index.d.ts.map +1 -0
- package/page/constants/index.js +5 -3
- package/page/helpers/index.d.ts +70 -62
- package/page/helpers/index.d.ts.map +1 -0
- package/page/helpers/index.js +31 -29
- package/page/hooks/index.d.ts +54 -53
- package/page/hooks/index.d.ts.map +1 -0
- package/page/hooks/index.js +20 -15
- package/page/selectors/index.d.ts +32 -0
- package/page/selectors/index.d.ts.map +1 -0
- package/page/widgets/Button/Button.js +2 -3
- package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +8 -8
- package/page/widgets/ProductList/ProductList.js +18 -14
- package/page/widgets/ProductSlider/ProductSlider.js +1 -15
- package/page/widgets/Video/Video.d.ts +6 -0
- package/page/widgets/Video/Video.d.ts.map +1 -0
- package/page/widgets/Video/Video.js +0 -2
- package/page/widgets/Video/hooks.d.ts +53 -0
- package/page/widgets/Video/hooks.d.ts.map +1 -0
- package/page/widgets/Video/hooks.js +4 -12
- package/page/widgets/Video/index.d.ts +2 -0
- package/page/widgets/Video/index.d.ts.map +1 -0
- package/product/components/Description/index.js +0 -2
- package/product/components/FilterBar/components/Content/components/FilterButton/index.js +2 -6
- package/product/components/FilterBar/components/Content/components/Sort/index.js +1 -5
- package/product/components/Media/FeaturedMedia.js +7 -1
- package/product/components/Media/MediaImage.js +24 -23
- package/product/components/Media/MediaPlaceholder.js +4 -7
- package/product/components/MediaSlider/components/MediaImage/index.js +6 -2
- package/product/components/MediaSlider/constants.js +1 -12
- package/product/components/OrderQuantityHint/index.js +16 -1
- package/product/components/ProductCard/index.js +36 -23
- package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +12 -4
- package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +3 -6
- package/product/components/ProductGrid/components/Item/components/ItemName/index.js +6 -1
- package/product/components/ProductGrid/components/Item/index.js +10 -2
- package/product/components/ProductGrid/components/Layout/index.js +19 -4
- package/product/components/ProductGrid/constants.d.ts +2 -0
- package/product/components/ProductGrid/constants.d.ts.map +1 -0
- package/product/components/ProductGrid/constants.js +1 -0
- package/product/components/ProductGrid/hooks.d.ts +11 -0
- package/product/components/ProductGrid/hooks.d.ts.map +1 -0
- package/product/components/ProductGrid/hooks.js +48 -0
- package/product/components/ProductGrid/index.js +3 -6
- package/product/components/ProductGridPrice/index.js +0 -1
- package/product/components/ProductImage/ProductImage.d.ts +42 -0
- package/product/components/ProductImage/ProductImage.d.ts.map +1 -0
- package/product/components/ProductImage/ProductImage.js +158 -0
- package/product/components/ProductImage/ProductImagePlaceholder.d.ts +23 -0
- package/product/components/ProductImage/ProductImagePlaceholder.d.ts.map +1 -0
- package/product/components/ProductImage/ProductImagePlaceholder.js +12 -17
- package/product/components/ProductImage/constants.d.ts +7 -0
- package/product/components/ProductImage/constants.d.ts.map +1 -0
- package/product/components/ProductImage/constants.js +6 -0
- package/product/components/ProductImage/hooks.d.ts +8 -0
- package/product/components/ProductImage/hooks.d.ts.map +1 -0
- package/product/components/ProductImage/hooks.js +32 -0
- package/product/components/ProductImage/index.d.ts +3 -0
- package/product/components/ProductImage/index.d.ts.map +1 -0
- package/product/components/ProductImage/index.js +1 -201
- package/product/components/ProductList/components/Item/index.js +5 -3
- package/product/components/ProductList/components/Layout/index.js +8 -20
- package/product/components/ProductName/ProductName.d.ts +1 -1
- package/product/components/ProductName/ProductName.d.ts.map +1 -1
- package/product/components/ProductName/ProductNameContent.d.ts +2 -1
- package/product/components/ProductName/ProductNameContent.d.ts.map +1 -1
- package/product/components/ProductRatingStars/ProductRatingStars.d.ts +1 -1
- package/product/components/ProductRatingStars/ProductRatingStars.js +2 -4
- package/product/components/ProductSlider/constants.d.ts +3 -0
- package/product/components/ProductSlider/constants.d.ts.map +1 -0
- package/product/components/ProductSlider/constants.js +2 -0
- package/product/components/ProductSlider/hooks.d.ts +7 -0
- package/product/components/ProductSlider/hooks.d.ts.map +1 -0
- package/product/components/ProductSlider/hooks.js +40 -0
- package/product/components/ProductSlider/index.js +8 -8
- package/product/components/Rating/index.js +2 -4
- package/product/components/RelationsSlider/RelationsSheet.js +1 -5
- package/product/components/RelationsSlider/RelationsSliderContent.js +3 -2
- package/product/components/RelationsSlider/constants.d.ts +3 -0
- package/product/components/RelationsSlider/constants.d.ts.map +1 -0
- package/product/components/RelationsSlider/constants.js +2 -1
- package/product/components/RelationsSlider/hooks.d.ts +6 -0
- package/product/components/RelationsSlider/hooks.d.ts.map +1 -0
- package/product/components/RelationsSlider/hooks.js +34 -0
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.d.ts.map +1 -1
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +16 -34
- package/product/helpers/index.js +29 -11
- package/product/hooks/index.js +3 -1
- package/product/hooks/useLoadProductImage.js +4 -2
- package/product/hooks/useShowEmptyRatingStars.d.ts +7 -0
- package/product/hooks/useShowEmptyRatingStars.d.ts.map +1 -0
- package/product/hooks/useShowEmptyRatingStars.js +21 -0
- package/product/index.js +0 -1
- package/product/selectors/mocks/productProperties.mock.js +49 -0
- package/push-opt-in/components/PushOptInModal/index.js +4 -4
- package/registration/components/Registration/RegistrationFormActions.js +4 -4
- package/reviews/components/Reviews/components/AllReviewsLink/index.js +6 -6
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +4 -3
- package/settings/action-creators/appSettings.d.ts +3 -3
- package/settings/action-creators/appSettings.d.ts.map +1 -1
- package/settings/constants/appSettings.d.ts +3 -0
- package/settings/constants/appSettings.d.ts.map +1 -1
- package/settings/constants/appSettings.js +6 -1
- package/settings/constants/imageSettings.d.ts +52 -0
- package/settings/constants/imageSettings.d.ts.map +1 -0
- package/settings/constants/imageSettings.js +69 -0
- package/settings/helpers/index.d.ts +3 -0
- package/settings/helpers/index.d.ts.map +1 -0
- package/settings/helpers/index.js +1 -0
- package/settings/helpers/resolveImageSettings.d.ts +70 -0
- package/settings/helpers/resolveImageSettings.d.ts.map +1 -0
- package/settings/helpers/resolveImageSettings.js +171 -0
- package/settings/helpers/toImageQuality.d.ts +7 -0
- package/settings/helpers/toImageQuality.d.ts.map +1 -0
- package/settings/helpers/toImageQuality.js +44 -0
- package/settings/helpers/toThumborColor.d.ts +15 -0
- package/settings/helpers/toThumborColor.d.ts.map +1 -0
- package/settings/helpers/toThumborColor.js +51 -0
- package/settings/hooks/index.d.ts +2 -0
- package/settings/hooks/index.d.ts.map +1 -0
- package/settings/hooks/index.js +1 -0
- package/settings/hooks/useImageSettings.d.ts +28 -0
- package/settings/hooks/useImageSettings.d.ts.map +1 -0
- package/settings/hooks/useImageSettings.js +39 -0
- package/settings/reducers/appSettings.d.ts.map +1 -1
- package/settings/reducers/appSettings.js +100 -8
- package/settings/reducers/index.d.ts +3 -3
- package/settings/selectors/appSettings.d.ts +114 -1
- package/settings/selectors/appSettings.d.ts.map +1 -1
- package/settings/selectors/appSettings.js +75 -1
- package/settings/types/appSettings.d.ts +244 -0
- package/settings/types/appSettings.d.ts.map +1 -1
- package/settings/types/appSettings.js +124 -1
- package/styles/helpers/index.d.ts +2 -0
- package/styles/helpers/index.js +2 -0
- package/styles/helpers/loadFontCss.d.ts +22 -0
- package/styles/helpers/loadFontCss.d.ts.map +1 -0
- package/styles/helpers/loadFontCss.js +138 -0
- package/styles/helpers/loadThemeCss.d.ts +14 -0
- package/styles/helpers/loadThemeCss.d.ts.map +1 -0
- package/styles/helpers/loadThemeCss.js +123 -0
- package/styles/index.d.ts +1 -1
- package/styles/index.d.ts.map +1 -1
- package/styles/index.js +1 -1
- package/styles/reset/root.js +23 -4
- package/styles/reset/typographyCustomProps.d.ts +12 -0
- package/styles/reset/typographyCustomProps.d.ts.map +1 -0
- package/styles/reset/typographyCustomProps.js +11 -0
- package/styles/theme/createDefaultThemeOptions/index.d.ts.map +1 -1
- package/styles/theme/createDefaultThemeOptions/index.js +107 -4
- package/styles/theme/createTheme/createComponents.d.ts +2 -2
- package/styles/theme/createTheme/createComponents.d.ts.map +1 -1
- package/styles/theme/createTheme/createComponents.js +0 -1
- package/styles/theme/createTheme/createComponents.types.d.ts +117 -0
- package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createComponents.types.js +119 -2
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.d.ts.map +1 -1
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.js +13 -3
- package/styles/theme/createTheme/createPalette.types.d.ts +5 -0
- package/styles/theme/createTheme/createPalette.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createPalette.types.js +7 -2
- package/styles/theme/createTheme/createShape.d.ts +3 -0
- package/styles/theme/createTheme/createShape.d.ts.map +1 -1
- package/styles/theme/createTheme/createSpacing.js +4 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts +4 -2
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts.map +1 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.js +6 -3
- package/styles/theme/createTheme/createTypography.d.ts +2 -1
- package/styles/theme/createTheme/createTypography.js +59 -18
- package/styles/theme/createTheme/helpers/cssVarsParser.d.ts.map +1 -1
- package/styles/theme/createTheme/helpers/cssVarsParser.js +10 -3
- package/styles/theme/createTheme/index.d.ts +2 -1
- package/styles/theme/createTheme/index.d.ts.map +1 -1
- package/styles/theme/createTheme/index.js +5 -2
- package/styles/theme/createTheme/layout.d.ts +23 -0
- package/styles/theme/createTheme/layout.d.ts.map +1 -0
- package/styles/theme/createTheme/layout.js +20 -0
- package/styles/theme/createTheme/shadows.d.ts +11 -1
- package/styles/theme/createTheme/shadows.d.ts.map +1 -1
- package/styles/theme/createTheme/shadows.js +41 -7
- package/styles/theme/createTheme/transitions.d.ts +4 -0
- package/styles/theme/createTheme/transitions.js +3 -1
- package/styles/theme/createTheme/types.d.ts +41 -9
- package/styles/theme/createTheme/types.d.ts.map +1 -1
- package/styles/theme/createTheme/types.js +16 -4
- package/styles/theme/hocs/index.d.ts +2 -0
- package/styles/theme/hocs/index.d.ts.map +1 -0
- package/styles/theme/hocs/index.js +1 -0
- package/styles/theme/hocs/withTheme.d.ts +21 -0
- package/styles/theme/hocs/withTheme.d.ts.map +1 -0
- package/styles/theme/hocs/withTheme.js +33 -0
- package/styles/theme/hooks/useColorScheme.d.ts +4 -3
- package/styles/theme/hooks/useColorScheme.d.ts.map +1 -1
- package/styles/theme/hooks/useColorScheme.js +4 -3
- package/styles/theme/hooks/useMediaQuery.d.ts +7 -0
- package/styles/theme/hooks/useMediaQuery.d.ts.map +1 -1
- package/styles/theme/hooks/useMediaQuery.js +5 -5
- package/styles/theme/hooks/useTheme.js +1 -1
- package/styles/theme/index.d.ts +5 -1
- package/styles/theme/index.d.ts.map +1 -1
- package/styles/theme/index.js +2 -1
- package/styles/theme/providers/ActiveBreakpointProvider.d.ts +1 -1
- package/styles/theme/providers/ColorSchemeContext.d.ts +40 -0
- package/styles/theme/providers/ColorSchemeContext.d.ts.map +1 -0
- package/styles/theme/providers/ColorSchemeContext.js +14 -0
- package/styles/theme/providers/ThemeContext.d.ts +3 -0
- package/styles/theme/providers/ThemeContext.d.ts.map +1 -0
- package/styles/theme/providers/ThemeContext.js +2 -0
- package/styles/theme/providers/ThemeProvider.d.ts +4 -14
- package/styles/theme/providers/ThemeProvider.d.ts.map +1 -1
- package/styles/theme/providers/ThemeProvider.js +88 -26
- package/styles/theme/utils/color.d.ts +12 -12
- package/styles/theme/utils/color.d.ts.map +1 -1
- package/tracking/components/CookieConsentModal/index.js +3 -4
- package/tracking/components/PrivacySettings/index.js +3 -3
- package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +0 -6
- package/cart/components/PaymentBar/PaymentBarReserveButton.js +0 -71
- package/components/ChipLayout/spec.js +0 -41
- package/components/Logo/spec.js +0 -12
- package/components/NavigationHandler/spec.js +0 -84
- package/components/Picker/spec.js +0 -94
- package/components/PickerUtilize/spec.js +0 -35
- package/components/RangeSlider/spec.js +0 -190
- package/components/SheetList/components/Item/spec.js +0 -101
- package/components/SheetList/spec.js +0 -43
- package/components/TimeBoundary/spec.js +0 -83
- package/filter/components/FilterItem/spec.js +0 -14
- package/filter/components/FilterPageContent/components/ApplyButton/spec.js +0 -46
- package/filter/components/FilterPageContent/components/ResetButton/spec.js +0 -29
- package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +0 -26
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +0 -34
- package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +0 -32
- package/filter/components/FilterPageContent/components/Selector/spec.js +0 -33
- package/filter/components/PriceSlider/components/Label/spec.js +0 -26
- package/filter/components/PriceSlider/spec.js +0 -30
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +0 -16
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +0 -52
- package/product/collections/index.js +0 -1
- package/product/components/EffectivityDates/constants.d.ts +0 -3
- package/product/components/EffectivityDates/constants.d.ts.map +0 -1
- package/product/components/EffectivityDates/helpers.d.ts +0 -6
- package/product/components/EffectivityDates/helpers.d.ts.map +0 -1
- package/product/components/FilterBar/components/Content/spec.js +0 -136
- package/product/components/Header/Shipping/spec.js +0 -36
- package/product/components/Header/Tiers/components/Tier/spec.js +0 -48
- package/product/components/Header/Tiers/spec.js +0 -64
- package/product/components/Media/helpers.d.ts +0 -2
- package/product/components/Media/helpers.d.ts.map +0 -1
- package/product/components/Options/components/Content/spec.js +0 -73
- package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +0 -72
- package/product/components/ProductDiscountBadge/spec.js +0 -58
- package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +0 -73
- package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +0 -33
- package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +0 -16
- package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +0 -21
- package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +0 -37
- package/product/components/ProductGrid/spec.js +0 -52
- package/product/components/ProductImage/connector.js +0 -12
- package/product/components/ProductImage/spec.js +0 -87
- package/product/components/ProductSlider/spec.js +0 -37
- package/product/components/Rating/spec.js +0 -58
- package/product/helpers/index.d.ts +0 -13
- package/product/helpers/index.d.ts.map +0 -1
- package/product/helpers/redirects.d.ts +0 -2
- package/product/helpers/redirects.d.ts.map +0 -1
- package/product/selectors/helpers/filterProperties.d.ts +0 -8
- package/product/selectors/helpers/filterProperties.d.ts.map +0 -1
- package/product/selectors/helpers/index.d.ts +0 -3
- package/product/selectors/helpers/index.d.ts.map +0 -1
- package/product/selectors/helpers/wrapMemoizedSelector.d.ts +0 -2
- package/product/selectors/helpers/wrapMemoizedSelector.d.ts.map +0 -1
- package/product/selectors/product.d.ts +0 -112
- package/product/selectors/product.d.ts.map +0 -1
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +0 -52
- package/reviews/components/Reviews/components/Header/spec.js +0 -78
- package/reviews/components/Reviews/components/List/spec.js +0 -108
- package/reviews/components/Reviews/components/RatingCount/spec.js +0 -38
- package/reviews/components/Reviews/spec.js +0 -101
- package/tsconfig.build.json +0 -26
- package/tsconfig.json +0 -19
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import "core-js/modules/es.array.includes.js";
|
|
2
|
+
/**
|
|
3
|
+
* Internal to the admin-preview package - do not import this module from anywhere else. Consume
|
|
4
|
+
* the isAdminPreviewActive / isPageAdminPreviewActive / isFrontendSettingsAdminPreviewActive
|
|
5
|
+
* helpers from @shopgate/engage/admin-preview/helpers instead.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { PAGE_PREVIEW_PATTERN } from "../../constants";
|
|
9
|
+
export const FRONTEND_SETTINGS_PREVIEW_PARAM = 'frontendSettingsPreview=true';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The url as it was when this module was first evaluated. Captured here because detection can run
|
|
13
|
+
* again later, when the url may already have been rewritten.
|
|
14
|
+
*/
|
|
15
|
+
const INITIAL_HREF = window.location.href;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Preview mode is latched in memory rather than persisted. Session storage is scoped per origin
|
|
19
|
+
* per tab, not per iframe - the admin shows the preview in same-origin iframes on several screens
|
|
20
|
+
* within one tab, so a persisted flag from one screen would leak into the next. Module state is
|
|
21
|
+
* per document, so each iframe gets its own.
|
|
22
|
+
*
|
|
23
|
+
* The latches only ever go false -> true. Detection must not fall back to re-reading the url,
|
|
24
|
+
* because the frontend settings preview navigates the app normally: once the admin opens another
|
|
25
|
+
* page, the query param is gone from the url even though preview mode is still on.
|
|
26
|
+
*/
|
|
27
|
+
let pageAdminPreviewLatched = false;
|
|
28
|
+
let frontendSettingsAdminPreviewLatched = false;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Detects whether the app is in page admin preview mode. Once detected, the result is latched for
|
|
32
|
+
* the lifetime of the document, because the url is not guaranteed to keep the preview marker.
|
|
33
|
+
* @returns True if the app is in page admin preview mode, false otherwise.
|
|
34
|
+
*/
|
|
35
|
+
export const detectPageAdminPreview = () => {
|
|
36
|
+
if (pageAdminPreviewLatched) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
pageAdminPreviewLatched = window.location.pathname.startsWith(PAGE_PREVIEW_PATTERN);
|
|
40
|
+
return pageAdminPreviewLatched;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Detects whether the app is in frontend settings admin preview mode. Once detected, the result is
|
|
45
|
+
* latched for the lifetime of the document, because the app keeps navigating while the preview is
|
|
46
|
+
* open and the query param only exists on the url it started on.
|
|
47
|
+
* @returns True if the app is in frontend settings admin preview mode, false otherwise.
|
|
48
|
+
*/
|
|
49
|
+
export const detectFrontendSettingsAdminPreview = () => {
|
|
50
|
+
if (frontendSettingsAdminPreviewLatched) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
frontendSettingsAdminPreviewLatched = window.location.search.includes(FRONTEND_SETTINGS_PREVIEW_PARAM);
|
|
54
|
+
return frontendSettingsAdminPreviewLatched;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Detects whether the app is in admin preview mode (pages or frontend settings).
|
|
59
|
+
* @returns True if the app is in admin preview mode, false otherwise.
|
|
60
|
+
*/
|
|
61
|
+
export const detectAdminPreview = () => detectPageAdminPreview() || detectFrontendSettingsAdminPreview();
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Returns the current detection state. Exposed on window as SGAdminPreviewDebug so the values can
|
|
65
|
+
* be inspected on a deployed build, from the console of the preview iframe:
|
|
66
|
+
*
|
|
67
|
+
* window.SGAdminPreviewDebug()
|
|
68
|
+
*
|
|
69
|
+
* Compare initialHref with currentHref to see whether the url changed since the app booted, and
|
|
70
|
+
* check latched to see whether a result came from the latch rather than the current url.
|
|
71
|
+
* @returns A snapshot of everything detection depends on.
|
|
72
|
+
*/
|
|
73
|
+
export const getAdminPreviewDebugInfo = () => ({
|
|
74
|
+
initialHref: INITIAL_HREF,
|
|
75
|
+
currentHref: window.location.href,
|
|
76
|
+
pathname: window.location.pathname,
|
|
77
|
+
search: window.location.search,
|
|
78
|
+
urlChangedSinceBoot: INITIAL_HREF !== window.location.href,
|
|
79
|
+
isInIframe: window.parent !== window,
|
|
80
|
+
referrer: document.referrer,
|
|
81
|
+
latched: {
|
|
82
|
+
page: pageAdminPreviewLatched,
|
|
83
|
+
frontendSettings: frontendSettingsAdminPreviewLatched
|
|
84
|
+
},
|
|
85
|
+
detected: {
|
|
86
|
+
page: detectPageAdminPreview(),
|
|
87
|
+
frontendSettings: detectFrontendSettingsAdminPreview(),
|
|
88
|
+
any: detectAdminPreview()
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// @ts-expect-error - debug-only global, intentionally not on the Window type.
|
|
93
|
+
window.SGAdminPreviewDebug = getAdminPreviewDebugInfo;
|
|
@@ -13,4 +13,11 @@ export declare const isPageAdminPreviewActive: () => boolean;
|
|
|
13
13
|
* @returns True if the app is in frontend settings admin preview mode, false otherwise.
|
|
14
14
|
*/
|
|
15
15
|
export declare const isFrontendSettingsAdminPreviewActive: () => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if navigation is blocked. Page admin preview renders a single page in an iframe, so
|
|
18
|
+
* leaving that page would only ever show the admin something it did not ask to preview.
|
|
19
|
+
* Frontend settings preview is not affected - it previews styling on the regular app.
|
|
20
|
+
* @returns True if the app must not navigate, false otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export declare const isNavigationBlocked: () => boolean;
|
|
16
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../admin-preview/helpers/index.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../admin-preview/helpers/index.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,OAClB,CAAC;AAEvB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAO,OAClB,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,oCAAoC,QAAO,OAClB,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAO,OACX,CAAC"}
|
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { detectAdminPreview, detectFrontendSettingsAdminPreview, detectPageAdminPreview } from "./_internal/detection";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Checks if the app is currently in admin preview mode (pages or frontend settings).
|
|
5
5
|
* @returns True if the app is in admin preview mode, false otherwise.
|
|
6
6
|
*/
|
|
7
|
-
export const isAdminPreviewActive = () =>
|
|
7
|
+
export const isAdminPreviewActive = () => detectAdminPreview();
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Checks if the app is currently in page admin preview mode.
|
|
11
11
|
* @returns True if the app is in page admin preview mode, false otherwise.
|
|
12
12
|
*/
|
|
13
|
-
export const isPageAdminPreviewActive = () =>
|
|
13
|
+
export const isPageAdminPreviewActive = () => detectPageAdminPreview();
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Checks if the app is currently in frontend settings admin preview mode.
|
|
17
17
|
* @returns True if the app is in frontend settings admin preview mode, false otherwise.
|
|
18
18
|
*/
|
|
19
|
-
export const isFrontendSettingsAdminPreviewActive = () =>
|
|
19
|
+
export const isFrontendSettingsAdminPreviewActive = () => detectFrontendSettingsAdminPreview();
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Checks if navigation is blocked. Page admin preview renders a single page in an iframe, so
|
|
23
|
+
* leaving that page would only ever show the admin something it did not ask to preview.
|
|
24
|
+
* Frontend settings preview is not affected - it previews styling on the regular app.
|
|
25
|
+
* @returns True if the app must not navigate, false otherwise.
|
|
26
|
+
*/
|
|
27
|
+
export const isNavigationBlocked = () => isPageAdminPreviewActive();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal to the admin-preview package - do not import this module from anywhere else.
|
|
3
|
+
*
|
|
4
|
+
* Hands the payload that `awaitInitialFrontendSettings` received over to the
|
|
5
|
+
* FrontendSettingsPreviewBridge, which mounts long after app start finished. Module state rather
|
|
6
|
+
* than a store slice, because the styling map never belongs in redux - it is applied to a style
|
|
7
|
+
* tag, and the bridge only needs it to avoid removing what app start already applied.
|
|
8
|
+
*/
|
|
9
|
+
import type { FrontendSettingsStyling } from '../../components/FrontendSettingsPreviewBridge/types';
|
|
10
|
+
/**
|
|
11
|
+
* Records the payload that app start received.
|
|
12
|
+
* @param initialStyling The styling map the payload carried, if any.
|
|
13
|
+
*/
|
|
14
|
+
export declare const setInitialFrontendSettings: (initialStyling: FrontendSettingsStyling | null) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Whether app start received a payload. A payload without a styling map still counts - it
|
|
17
|
+
* carried app settings, which is enough to consider the preview applied.
|
|
18
|
+
* @returns True when a payload arrived during app start.
|
|
19
|
+
*/
|
|
20
|
+
export declare const hasInitialFrontendSettings: () => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* The styling map that app start applied, so the bridge can seed its state with it instead of
|
|
23
|
+
* starting at null - which would make its first effect remove the style tag again.
|
|
24
|
+
* @returns The styling map, or null when none arrived.
|
|
25
|
+
*/
|
|
26
|
+
export declare const getInitialFrontendSettingsStyling: () => FrontendSettingsStyling | null;
|
|
27
|
+
/**
|
|
28
|
+
* Test only. Module state outlives a test file's individual cases, so specs need a way back to the
|
|
29
|
+
* initial state.
|
|
30
|
+
*/
|
|
31
|
+
export declare const resetInitialFrontendSettings: () => void;
|
|
32
|
+
//# sourceMappingURL=initialFrontendSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialFrontendSettings.d.ts","sourceRoot":"","sources":["../../../../admin-preview/initialization/_internal/initialFrontendSettings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAMpG;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAI,gBAAgB,uBAAuB,GAAG,IAAI,SAGxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAO,OAAmB,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,QAAO,uBAAuB,GAAG,IAAe,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,4BAA4B,YAGxC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal to the admin-preview package - do not import this module from anywhere else.
|
|
3
|
+
*
|
|
4
|
+
* Hands the payload that `awaitInitialFrontendSettings` received over to the
|
|
5
|
+
* FrontendSettingsPreviewBridge, which mounts long after app start finished. Module state rather
|
|
6
|
+
* than a store slice, because the styling map never belongs in redux - it is applied to a style
|
|
7
|
+
* tag, and the bridge only needs it to avoid removing what app start already applied.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
let received = false;
|
|
11
|
+
let styling = null;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Records the payload that app start received.
|
|
15
|
+
* @param initialStyling The styling map the payload carried, if any.
|
|
16
|
+
*/
|
|
17
|
+
export const setInitialFrontendSettings = initialStyling => {
|
|
18
|
+
received = true;
|
|
19
|
+
styling = initialStyling;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Whether app start received a payload. A payload without a styling map still counts - it
|
|
24
|
+
* carried app settings, which is enough to consider the preview applied.
|
|
25
|
+
* @returns True when a payload arrived during app start.
|
|
26
|
+
*/
|
|
27
|
+
export const hasInitialFrontendSettings = () => received;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The styling map that app start applied, so the bridge can seed its state with it instead of
|
|
31
|
+
* starting at null - which would make its first effect remove the style tag again.
|
|
32
|
+
* @returns The styling map, or null when none arrived.
|
|
33
|
+
*/
|
|
34
|
+
export const getInitialFrontendSettingsStyling = () => styling;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Test only. Module state outlives a test file's individual cases, so specs need a way back to the
|
|
38
|
+
* initial state.
|
|
39
|
+
*/
|
|
40
|
+
export const resetInitialFrontendSettings = () => {
|
|
41
|
+
received = false;
|
|
42
|
+
styling = null;
|
|
43
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
interface PreviewStore {
|
|
2
|
+
dispatch: (action: unknown) => void;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Waits for the first settings message from the admin and applies it before the app renders.
|
|
6
|
+
*
|
|
7
|
+
* Without this the app paints with the theme defaults first: the bridge that owns the message
|
|
8
|
+
* listener only mounts once React committed, so everything the admin sent before that is dropped
|
|
9
|
+
* and the styling arrives as a visible restyle.
|
|
10
|
+
*
|
|
11
|
+
* The handshake goes to every allowed origin rather than to a single guessed one. Nothing has been
|
|
12
|
+
* received at this point, so there is no known parent origin, and the referrer is not guaranteed to
|
|
13
|
+
* survive the admin's referrer policy. The browser drops the copies whose target does not match.
|
|
14
|
+
*
|
|
15
|
+
* Resolves when the payload arrived or when REQUEST_TIMEOUT elapsed, and never rejects - an admin
|
|
16
|
+
* that stays silent has to fall back to the unstyled app, never to an iframe that never renders.
|
|
17
|
+
* @param store Reference to the store.
|
|
18
|
+
* @returns A promise that resolves once the first payload settled.
|
|
19
|
+
*/
|
|
20
|
+
export declare const awaitInitialFrontendSettings: (store: PreviewStore) => Promise<void>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=awaitInitialFrontendSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaitInitialFrontendSettings.d.ts","sourceRoot":"","sources":["../../../admin-preview/initialization/awaitInitialFrontendSettings.ts"],"names":[],"mappings":"AAmBA,UAAU,YAAY;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,GAAI,OAAO,YAAY,KAAG,OAAO,CAAC,IAAI,CAqE3E,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import "core-js/modules/es.array.includes.js";
|
|
2
|
+
import { withScope, captureMessage, Severity as SentrySeverity } from '@sentry/browser';
|
|
3
|
+
import { receiveAppSettings } from '@shopgate/engage/settings/action-creators/appSettings';
|
|
4
|
+
import { isFrontendSettingsAdminPreviewActive } from "../helpers";
|
|
5
|
+
import { ALLOWED_ADMIN_PREVIEW_ORIGINS } from "../constants";
|
|
6
|
+
import { getOrCreateStyleTag, serializeStyling } from "../components/FrontendSettingsPreviewBridge/helpers";
|
|
7
|
+
import { setInitialFrontendSettings } from "./_internal/initialFrontendSettings";
|
|
8
|
+
const REQUEST_TIMEOUT = 3000;
|
|
9
|
+
/**
|
|
10
|
+
* Waits for the first settings message from the admin and applies it before the app renders.
|
|
11
|
+
*
|
|
12
|
+
* Without this the app paints with the theme defaults first: the bridge that owns the message
|
|
13
|
+
* listener only mounts once React committed, so everything the admin sent before that is dropped
|
|
14
|
+
* and the styling arrives as a visible restyle.
|
|
15
|
+
*
|
|
16
|
+
* The handshake goes to every allowed origin rather than to a single guessed one. Nothing has been
|
|
17
|
+
* received at this point, so there is no known parent origin, and the referrer is not guaranteed to
|
|
18
|
+
* survive the admin's referrer policy. The browser drops the copies whose target does not match.
|
|
19
|
+
*
|
|
20
|
+
* Resolves when the payload arrived or when REQUEST_TIMEOUT elapsed, and never rejects - an admin
|
|
21
|
+
* that stays silent has to fall back to the unstyled app, never to an iframe that never renders.
|
|
22
|
+
* @param store Reference to the store.
|
|
23
|
+
* @returns A promise that resolves once the first payload settled.
|
|
24
|
+
*/
|
|
25
|
+
export const awaitInitialFrontendSettings = store => new Promise(resolve => {
|
|
26
|
+
if (!isFrontendSettingsAdminPreviewActive()) {
|
|
27
|
+
resolve();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
let settled = false;
|
|
31
|
+
let timeout;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Resolves the promise once, whichever of payload / timeout comes first, and stops listening.
|
|
35
|
+
* The bridge attaches its own listener when it mounts and re-sends the handshake, so the admin
|
|
36
|
+
* resyncs from there.
|
|
37
|
+
*/
|
|
38
|
+
const settle = () => {
|
|
39
|
+
if (settled) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
settled = true;
|
|
43
|
+
clearTimeout(timeout);
|
|
44
|
+
window.removeEventListener('message', handleMessage);
|
|
45
|
+
resolve();
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Handles the first trusted message. A function declaration, so `settle` can detach it again
|
|
50
|
+
* without a forward reference.
|
|
51
|
+
* @param event The message event.
|
|
52
|
+
*/
|
|
53
|
+
function handleMessage(event) {
|
|
54
|
+
if (!ALLOWED_ADMIN_PREVIEW_ORIGINS.includes(event.origin)) return;
|
|
55
|
+
if (event.source !== window.parent) return;
|
|
56
|
+
const {
|
|
57
|
+
data
|
|
58
|
+
} = event;
|
|
59
|
+
if (data?.type !== 'receiveFrontendSettings') return;
|
|
60
|
+
const styling = data.payload?.styling ?? null;
|
|
61
|
+
if (styling) {
|
|
62
|
+
getOrCreateStyleTag().textContent = serializeStyling(styling);
|
|
63
|
+
}
|
|
64
|
+
if (data.payload?.appSettings) {
|
|
65
|
+
store.dispatch(receiveAppSettings(data.payload.appSettings));
|
|
66
|
+
}
|
|
67
|
+
setInitialFrontendSettings(styling);
|
|
68
|
+
settle();
|
|
69
|
+
}
|
|
70
|
+
window.addEventListener('message', handleMessage);
|
|
71
|
+
timeout = setTimeout(() => {
|
|
72
|
+
withScope(scope => {
|
|
73
|
+
scope.setLevel(SentrySeverity.Warning);
|
|
74
|
+
scope.setExtra('timeout', REQUEST_TIMEOUT);
|
|
75
|
+
captureMessage('Waiting for the initial frontend settings took too long');
|
|
76
|
+
});
|
|
77
|
+
settle();
|
|
78
|
+
}, REQUEST_TIMEOUT);
|
|
79
|
+
ALLOWED_ADMIN_PREVIEW_ORIGINS.forEach(origin => {
|
|
80
|
+
window.parent.postMessage({
|
|
81
|
+
type: 'frontendSettingsPreviewReady'
|
|
82
|
+
}, origin);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
4
|
-
import { Link, CheckedIcon,
|
|
4
|
+
import { Link, CheckedIcon, NotificationIcon, Typography } from '@shopgate/engage/components';
|
|
5
|
+
import { Button } from '@shopgate/engage/components/v2';
|
|
5
6
|
import { BACK_IN_STOCK_PATTERN } from '@shopgate/engage/back-in-stock/constants';
|
|
6
7
|
import { i18n } from '@shopgate/engage/core/helpers';
|
|
7
8
|
import connect from "./connector";
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const useStyles = makeStyles()(theme => ({
|
|
10
11
|
button: {
|
|
11
|
-
color: theme.palette.warning.main
|
|
12
|
-
width: '100%'
|
|
12
|
+
color: theme.palette.warning.main
|
|
13
13
|
},
|
|
14
14
|
backInStockMessageContainer: {
|
|
15
15
|
display: 'flex',
|
|
@@ -114,10 +114,10 @@ const BackInStockButton = ({
|
|
|
114
114
|
}
|
|
115
115
|
if (showAsButton) {
|
|
116
116
|
return /*#__PURE__*/_jsx(Button, {
|
|
117
|
-
|
|
117
|
+
color: "secondary",
|
|
118
|
+
fullWidth: true,
|
|
118
119
|
tabIndex: 0,
|
|
119
120
|
onClick: handleClick,
|
|
120
|
-
className: classes.button,
|
|
121
121
|
children: /*#__PURE__*/_jsx("span", {
|
|
122
122
|
className: classes.buttonText,
|
|
123
123
|
children: i18n.text('back_in_stock.get_notified')
|
|
@@ -4,7 +4,7 @@ import { makeStyles } from '@shopgate/engage/styles';
|
|
|
4
4
|
import { getProductRoute, ProductImage } from '@shopgate/engage/product';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { BackInStockButton } from '@shopgate/engage/back-in-stock/components';
|
|
7
|
-
import {
|
|
7
|
+
import { i18n } from '@shopgate/engage/core';
|
|
8
8
|
import { useBackInStockSubscriptions } from '@shopgate/engage/back-in-stock/hooks';
|
|
9
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
10
|
const useStyles = makeStyles()(theme => ({
|
|
@@ -77,9 +77,6 @@ const Subscription = ({
|
|
|
77
77
|
const {
|
|
78
78
|
removeBackInStockSubscription
|
|
79
79
|
} = useBackInStockSubscriptions();
|
|
80
|
-
const {
|
|
81
|
-
ListImage: gridResolutions
|
|
82
|
-
} = getThemeSettings('AppImages') || {};
|
|
83
80
|
const currency = product.price?.currency || 'EUR';
|
|
84
81
|
const defaultPrice = product.price?.unitPrice || 0;
|
|
85
82
|
const specialPrice = product.price?.unitPriceStriked;
|
|
@@ -94,7 +91,7 @@ const Subscription = ({
|
|
|
94
91
|
"aria-hidden": true,
|
|
95
92
|
children: /*#__PURE__*/_jsx(ProductImage, {
|
|
96
93
|
src: product.featuredImageBaseUrl,
|
|
97
|
-
|
|
94
|
+
context: "list"
|
|
98
95
|
})
|
|
99
96
|
}), /*#__PURE__*/_jsxs("div", {
|
|
100
97
|
className: classes.infoContainer,
|
|
@@ -26,8 +26,8 @@ const useStyles = makeStyles()((theme, _params, classes) => ({
|
|
|
26
26
|
},
|
|
27
27
|
image: {
|
|
28
28
|
background: theme.palette.background.emphasized,
|
|
29
|
+
borderRadius: theme.shape.borderRadius,
|
|
29
30
|
marginBottom: theme.spacing(1.25),
|
|
30
|
-
height: leftColumnWidth,
|
|
31
31
|
width: leftColumnWidth
|
|
32
32
|
},
|
|
33
33
|
content: {
|
|
@@ -218,6 +218,7 @@ export function CartItemProductLayout() {
|
|
|
218
218
|
portalName: CART_ITEM_IMAGE,
|
|
219
219
|
portalProps: portalProps,
|
|
220
220
|
children: /*#__PURE__*/_jsx(ProductImage, {
|
|
221
|
+
context: "list",
|
|
221
222
|
src: product.featuredImageBaseUrl || product.featuredImageUrl
|
|
222
223
|
})
|
|
223
224
|
})
|
|
@@ -22,7 +22,6 @@ const useStyles = makeStyles()((theme, _params, classes) => ({
|
|
|
22
22
|
},
|
|
23
23
|
imageColumn: {
|
|
24
24
|
width: 120,
|
|
25
|
-
height: 120,
|
|
26
25
|
marginRight: theme.spacing(1),
|
|
27
26
|
flexShrink: 0,
|
|
28
27
|
flexGrow: 0
|
|
@@ -163,7 +162,8 @@ const CartItemProductLayoutWide = () => {
|
|
|
163
162
|
children: [/*#__PURE__*/_jsx("div", {
|
|
164
163
|
className: classes.imageColumn,
|
|
165
164
|
children: /*#__PURE__*/_jsx(ProductImage, {
|
|
166
|
-
src: product.featuredImageBaseUrl || product.featuredImageUrl
|
|
165
|
+
src: product.featuredImageBaseUrl || product.featuredImageUrl,
|
|
166
|
+
context: "list"
|
|
167
167
|
})
|
|
168
168
|
}), /*#__PURE__*/_jsxs("div", {
|
|
169
169
|
className: classes.detailsColumn,
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { I18n } from '@shopgate/engage/components';
|
|
3
|
+
import { Button } from '@shopgate/engage/components/v2';
|
|
3
4
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
4
5
|
import { useCartItemProduct } from "./CartItem.hooks";
|
|
5
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
7
|
const useStyles = makeStyles()(theme => ({
|
|
7
8
|
button: {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
padding: `${theme.spacing(2, 0)} !important`,
|
|
11
|
-
' *': {
|
|
12
|
-
padding: '0 !important'
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
ripple: {
|
|
16
|
-
padding: 0
|
|
9
|
+
marginTop: theme.spacing(2),
|
|
10
|
+
textTransform: 'none'
|
|
17
11
|
}
|
|
18
12
|
}));
|
|
19
13
|
|
|
@@ -27,12 +21,11 @@ const CartItemProductLayoutWideRemoveItem = () => {
|
|
|
27
21
|
const {
|
|
28
22
|
handleRemove
|
|
29
23
|
} = useCartItemProduct();
|
|
30
|
-
return /*#__PURE__*/_jsx(
|
|
24
|
+
return /*#__PURE__*/_jsx(Button, {
|
|
25
|
+
variant: "text",
|
|
26
|
+
color: "primary",
|
|
31
27
|
onClick: handleRemove,
|
|
32
28
|
className: classes.button,
|
|
33
|
-
rippleClassName: classes.ripple,
|
|
34
|
-
type: "secondary",
|
|
35
|
-
flat: true,
|
|
36
29
|
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
37
30
|
string: "cart.remove_item"
|
|
38
31
|
})
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { connect } from 'react-redux';
|
|
2
|
-
import { isAndroid } from '@shopgate/pwa-common/selectors/client';
|
|
3
2
|
import deleteProductsFromCart from '@shopgate/pwa-common-commerce/cart/actions/deleteProductsFromCart';
|
|
4
3
|
import updateProductsInCart from '@shopgate/pwa-common-commerce/cart/actions/updateProductsInCart';
|
|
5
4
|
import { getCurrency } from '@shopgate/pwa-common-commerce/cart/selectors';
|
|
@@ -15,7 +14,6 @@ import { getCurrency } from '@shopgate/pwa-common-commerce/cart/selectors';
|
|
|
15
14
|
* @returns {StateProps} The extended component props.
|
|
16
15
|
*/
|
|
17
16
|
const mapStateToProps = state => ({
|
|
18
|
-
isAndroid: isAndroid(state),
|
|
19
17
|
currency: getCurrency(state)
|
|
20
18
|
});
|
|
21
19
|
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import "core-js/modules/es.regexp.flags.js";
|
|
2
2
|
import React, { useMemo, useCallback, useState, useRef } from 'react';
|
|
3
|
-
import { getAbsoluteHeight } from '@shopgate/pwa-common/helpers/dom';
|
|
4
|
-
import { themeConfig } from '@shopgate/pwa-common/helpers/config';
|
|
5
3
|
import { CART_ITEM_TYPE_PRODUCT } from '@shopgate/pwa-common-commerce/cart/constants';
|
|
6
4
|
import PropTypes from 'prop-types';
|
|
7
|
-
import { CART_INPUT_AUTO_SCROLL_DELAY } from "../../cart.constants";
|
|
8
5
|
import Context from "./CartItemProductProvider.context";
|
|
9
6
|
import connect from "./CartItemProductProvider.connector";
|
|
10
7
|
import CartItemProductProviderLegacy from "./CartItemProductProviderLegacy";
|
|
11
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
-
const {
|
|
13
|
-
variables
|
|
14
|
-
} = themeConfig;
|
|
15
8
|
|
|
16
9
|
/**
|
|
17
10
|
* @typedef {import('./CartItemProductProvider.types').OwnProps} OwnProps
|
|
@@ -28,6 +21,7 @@ const {
|
|
|
28
21
|
* @param {Props} props The component props.
|
|
29
22
|
* @returns {JSX.Element}
|
|
30
23
|
*/
|
|
24
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
31
25
|
const CartItemProductProvider = ({
|
|
32
26
|
currency,
|
|
33
27
|
deleteProduct,
|
|
@@ -36,7 +30,6 @@ const CartItemProductProvider = ({
|
|
|
36
30
|
cartItem,
|
|
37
31
|
isEditable,
|
|
38
32
|
children,
|
|
39
|
-
isAndroid,
|
|
40
33
|
currencyOverride
|
|
41
34
|
}) => {
|
|
42
35
|
const {
|
|
@@ -66,25 +59,6 @@ const CartItemProductProvider = ({
|
|
|
66
59
|
updateProduct(id, updatedQuantity);
|
|
67
60
|
}, [id, updateProduct]);
|
|
68
61
|
const toggleEditMode = useCallback(isEnabled => {
|
|
69
|
-
if (isAndroid && isEnabled) {
|
|
70
|
-
/**
|
|
71
|
-
* When the user focuses the quantity input, the keyboard will pop up an overlap the input.
|
|
72
|
-
* Therefor the input has to be scrolled into the viewport again. Since between the focus and
|
|
73
|
-
* the keyboard appearance some time ticks away, the execution of the scroll code is delayed.
|
|
74
|
-
*
|
|
75
|
-
* This should not happen on iOS devices, since their web views behave different.
|
|
76
|
-
*/
|
|
77
|
-
setTimeout(() => {
|
|
78
|
-
const yOffset = -(window.innerHeight / 2) + getAbsoluteHeight(cartItemRef.current) + variables.paymentBar.height;
|
|
79
|
-
if (cartItemRef.current) {
|
|
80
|
-
cartItemRef.current.scrollIntoView({
|
|
81
|
-
behavior: 'smooth',
|
|
82
|
-
yOffset
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}, CART_INPUT_AUTO_SCROLL_DELAY);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
62
|
// Give the keyboard some time to slide out after blur, before further actions are taken.
|
|
89
63
|
setTimeout(() => {
|
|
90
64
|
if (onFocus) {
|
|
@@ -92,7 +66,7 @@ const CartItemProductProvider = ({
|
|
|
92
66
|
}
|
|
93
67
|
}, isEnabled ? 300 : 0);
|
|
94
68
|
setEditMode(isEnabled);
|
|
95
|
-
}, [
|
|
69
|
+
}, [onFocus]);
|
|
96
70
|
const value = useMemo(() => {
|
|
97
71
|
const isLinkable = flags?.disableLink !== true;
|
|
98
72
|
const allowQuantityChange = flags?.disableQuantityField !== true;
|
|
@@ -140,7 +114,6 @@ CartItemProductProvider.defaultProps = {
|
|
|
140
114
|
isEditable: true,
|
|
141
115
|
onFocus: () => {},
|
|
142
116
|
currencyOverride: null,
|
|
143
|
-
currency: null
|
|
144
|
-
isAndroid: false
|
|
117
|
+
currency: null
|
|
145
118
|
};
|
|
146
119
|
export default connect(CartItemProductProvider);
|
|
@@ -8,6 +8,7 @@ const useStyles = makeStyles()(theme => ({
|
|
|
8
8
|
inputStyle: {
|
|
9
9
|
border: 'none',
|
|
10
10
|
background: theme.palette.background.emphasized,
|
|
11
|
+
color: theme.contrastColor(theme.palette.background.emphasized),
|
|
11
12
|
display: 'block',
|
|
12
13
|
fontSize: theme.typography.caption.fontSize,
|
|
13
14
|
textAlign: 'center',
|
|
@@ -1,29 +1,13 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { I18n } from '@shopgate/engage/components';
|
|
3
|
+
import { Button } from '@shopgate/engage/components/v2';
|
|
4
4
|
import { useCartItem } from "../CartItem";
|
|
5
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
-
const useStyles = makeStyles()(theme => ({
|
|
7
|
-
button: {
|
|
8
|
-
fontSize: `${theme.typography.body2.fontSize} !important`,
|
|
9
|
-
letterSpacing: '0.05em',
|
|
10
|
-
padding: '0px !important',
|
|
11
|
-
' *': {
|
|
12
|
-
padding: '0px !important'
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
ripple: {
|
|
16
|
-
padding: 0
|
|
17
|
-
}
|
|
18
|
-
}));
|
|
19
5
|
|
|
20
6
|
/**
|
|
21
7
|
* @returns {JSX}
|
|
22
8
|
*/
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
10
|
const CartItemCardReservationLabelChangeStore = () => {
|
|
24
|
-
const {
|
|
25
|
-
classes
|
|
26
|
-
} = useStyles();
|
|
27
11
|
const {
|
|
28
12
|
invokeFulfillmentAction,
|
|
29
13
|
cartItem
|
|
@@ -39,12 +23,10 @@ const CartItemCardReservationLabelChangeStore = () => {
|
|
|
39
23
|
} = cartItem;
|
|
40
24
|
invokeFulfillmentAction('changeLocation', method);
|
|
41
25
|
}, [cartItem, invokeFulfillmentAction]);
|
|
42
|
-
return /*#__PURE__*/_jsx(
|
|
26
|
+
return /*#__PURE__*/_jsx(Button, {
|
|
27
|
+
variant: "link",
|
|
28
|
+
color: "primary",
|
|
43
29
|
onClick: handleChangeLocationClick,
|
|
44
|
-
className: classes.button,
|
|
45
|
-
rippleClassName: classes.ripple,
|
|
46
|
-
type: "secondary",
|
|
47
|
-
flat: true,
|
|
48
30
|
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
49
31
|
string: "locations.change_location"
|
|
50
32
|
})
|