@shopgate/engage 7.32.0-beta.2 → 7.32.0-beta.20
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/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 +9 -22
- package/admin-preview/constants/index.d.ts.map +1 -1
- package/admin-preview/constants/index.js +10 -27
- package/admin-preview/{detection.d.ts → helpers/_internal/detection.d.ts} +12 -8
- package/admin-preview/helpers/_internal/detection.d.ts.map +1 -0
- package/admin-preview/helpers/_internal/detection.js +93 -0
- package/admin-preview/helpers/_internal/origins.d.ts +20 -0
- package/admin-preview/helpers/_internal/origins.d.ts.map +1 -0
- package/admin-preview/helpers/_internal/origins.js +72 -0
- package/admin-preview/helpers/index.d.ts +20 -0
- package/admin-preview/helpers/index.d.ts.map +1 -1
- package/admin-preview/helpers/index.js +26 -2
- package/admin-preview/hooks/index.d.ts +9 -7
- package/admin-preview/hooks/index.d.ts.map +1 -1
- package/admin-preview/hooks/index.js +21 -18
- 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 +23 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts.map +1 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.js +88 -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/CartItemQuantityPicker.js +3 -2
- 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/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 +49 -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/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/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/Typography/Typography.d.ts.map +1 -1
- package/components/Typography/Typography.js +2 -0
- 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 +6 -1
- package/components/index.d.ts.map +1 -1
- package/components/index.js +6 -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/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/components/v2/IconButton/IconButton.d.ts +72 -0
- package/components/v2/IconButton/IconButton.d.ts.map +1 -0
- package/components/v2/IconButton/IconButton.js +169 -0
- package/components/v2/IconButton/index.d.ts +3 -0
- package/components/v2/IconButton/index.d.ts.map +1 -0
- package/components/v2/IconButton/index.js +1 -0
- package/components/v2/index.d.ts +1 -0
- package/components/v2/index.d.ts.map +1 -1
- package/components/v2/index.js +1 -0
- 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/events/appEvents.d.ts +31 -46
- package/core/hooks/events/appEvents.d.ts.map +1 -0
- package/core/hooks/events/appEvents.js +26 -29
- package/core/hooks/events/index.d.ts +4 -4
- package/core/hooks/events/index.d.ts.map +1 -1
- package/core/hooks/events/useLongPress.d.ts +55 -58
- package/core/hooks/events/useLongPress.d.ts.map +1 -0
- package/core/hooks/events/useLongPress.js +23 -16
- package/core/hooks/events/usePressHandler.d.ts +32 -21
- package/core/hooks/events/usePressHandler.d.ts.map +1 -1
- package/core/hooks/events/usePressHandler.js +12 -10
- package/core/hooks/events/useScrollDirectionChange.d.ts +72 -61
- package/core/hooks/events/useScrollDirectionChange.d.ts.map +1 -0
- package/core/hooks/events/useScrollDirectionChange.js +36 -43
- 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/action-creators/index.d.ts +3 -0
- package/development/action-creators/index.d.ts.map +1 -0
- package/development/action-creators/settings.d.ts +45 -0
- package/development/action-creators/settings.d.ts.map +1 -0
- package/development/action-creators/settings.js +21 -10
- package/development/action-creators/storage.d.ts +17 -0
- package/development/action-creators/storage.d.ts.map +1 -0
- package/development/action-creators/storage.js +7 -4
- package/development/components/ClientInformation/ClientInformation.d.ts +6 -0
- package/development/components/ClientInformation/ClientInformation.d.ts.map +1 -0
- package/development/components/ClientInformation/ClientInformation.js +7 -4
- package/development/components/ClientInformation/actions.d.ts +6 -0
- package/development/components/ClientInformation/actions.d.ts.map +1 -0
- package/development/components/ClientInformation/actions.js +1 -1
- package/development/components/ClientInformation/index.d.ts +2 -0
- package/development/components/ClientInformation/index.d.ts.map +1 -0
- package/development/components/DevelopmentSettings/DevelopmentSettings.d.ts +16 -0
- package/development/components/DevelopmentSettings/DevelopmentSettings.d.ts.map +1 -0
- package/development/components/DevelopmentSettings/DevelopmentSettings.js +43 -30
- package/development/components/DevelopmentSettings/index.d.ts +2 -0
- package/development/components/DevelopmentSettings/index.d.ts.map +1 -0
- package/development/components/DevelopmentTools/DevelopmentTools.d.ts +10 -0
- package/development/components/DevelopmentTools/DevelopmentTools.d.ts.map +1 -0
- package/development/components/DevelopmentTools/DevelopmentTools.js +8 -8
- package/development/components/DevelopmentTools/Shortcuts.d.ts +6 -0
- package/development/components/DevelopmentTools/Shortcuts.d.ts.map +1 -0
- package/development/components/DevelopmentTools/Shortcuts.js +0 -1
- package/development/components/DevelopmentTools/hooks.d.ts +8 -0
- package/development/components/DevelopmentTools/hooks.d.ts.map +1 -0
- package/development/components/DevelopmentTools/hooks.js +2 -3
- package/development/components/DevelopmentTools/index.d.ts +2 -0
- package/development/components/DevelopmentTools/index.d.ts.map +1 -0
- package/development/components/SimulatedInsets/SimulatedInsetBottom.d.ts +7 -0
- package/development/components/SimulatedInsets/SimulatedInsetBottom.d.ts.map +1 -0
- package/development/components/SimulatedInsets/SimulatedInsetBottom.js +1 -6
- package/development/components/SimulatedInsets/SimulatedInsetTop.d.ts +7 -0
- package/development/components/SimulatedInsets/SimulatedInsetTop.d.ts.map +1 -0
- package/development/components/SimulatedInsets/SimulatedInsetTop.js +2 -7
- package/development/components/SimulatedInsets/SimulatedInsets.d.ts +13 -0
- package/development/components/SimulatedInsets/SimulatedInsets.d.ts.map +1 -0
- package/development/components/SimulatedInsets/SimulatedInsets.js +2 -7
- package/development/components/SimulatedInsets/index.d.ts +2 -0
- package/development/components/SimulatedInsets/index.d.ts.map +1 -0
- package/development/components/SimulatedInsets/types.d.ts +15 -0
- package/development/components/SimulatedInsets/types.d.ts.map +1 -0
- package/development/components/SimulatedInsets/types.js +1 -0
- package/development/components/index.d.ts +3 -0
- package/development/components/index.d.ts.map +1 -0
- package/development/constants/actionTypes.d.ts +6 -0
- package/development/constants/actionTypes.d.ts.map +1 -0
- package/development/constants/actionTypes.js +2 -1
- package/development/constants/index.d.ts +2 -0
- package/development/constants/index.d.ts.map +1 -0
- package/development/reducers/index.d.ts +24 -0
- package/development/reducers/index.d.ts.map +1 -0
- package/development/reducers/settings.d.ts +17 -0
- package/development/reducers/settings.d.ts.map +1 -0
- package/development/reducers/settings.js +48 -35
- package/development/reducers/storage.d.ts +17 -0
- package/development/reducers/storage.d.ts.map +1 -0
- package/development/reducers/storage.js +24 -24
- package/development/selectors/index.d.ts +3 -0
- package/development/selectors/index.d.ts.map +1 -0
- package/development/selectors/settings.d.ts +52 -0
- package/development/selectors/settings.d.ts.map +1 -0
- package/development/selectors/settings.js +21 -11
- package/development/selectors/storage.d.ts +10 -0
- package/development/selectors/storage.d.ts.map +1 -0
- package/development/selectors/storage.js +6 -18
- package/development/streams/index.d.ts +2 -0
- package/development/streams/index.d.ts.map +1 -0
- package/development/streams/insets.d.ts +8 -0
- package/development/streams/insets.d.ts.map +1 -0
- package/development/streams/insets.js +1 -3
- package/development/subscriptions/index.d.ts +15 -0
- package/development/subscriptions/index.d.ts.map +1 -0
- package/development/subscriptions/index.js +6 -2
- package/development/types/development.d.ts +68 -0
- package/development/types/development.d.ts.map +1 -0
- package/development/types/development.js +1 -0
- package/development/types/index.d.ts +2 -0
- package/development/types/index.d.ts.map +1 -0
- package/development/types/index.js +1 -0
- 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 +2 -5
- 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 +4 -5
- package/filter/components/FilterItem/index.js +12 -2
- package/filter/components/FilterPageContent/components/ApplyButton/index.d.ts +21 -0
- package/filter/components/FilterPageContent/components/ApplyButton/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/ApplyButton/index.js +27 -56
- package/filter/components/FilterPageContent/components/FilterButtonBar/index.d.ts +8 -0
- package/filter/components/FilterPageContent/components/FilterButtonBar/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/FilterButtonBar/index.js +63 -0
- package/filter/components/FilterPageContent/components/ResetButton/index.d.ts +17 -0
- package/filter/components/FilterPageContent/components/ResetButton/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/ResetButton/index.js +26 -46
- package/filter/components/FilterPageContent/components/Selector/components/Selected/index.d.ts +19 -0
- package/filter/components/FilterPageContent/components/Selector/components/Selected/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +25 -46
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.d.ts +14 -0
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +13 -46
- package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.d.ts +25 -0
- package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.js +77 -0
- package/filter/components/FilterPageContent/components/Selector/index.d.ts +43 -0
- package/filter/components/FilterPageContent/components/Selector/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/Selector/index.js +52 -40
- package/filter/components/FilterPageContent/index.d.ts +16 -0
- package/filter/components/FilterPageContent/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/index.js +51 -57
- package/filter/components/PriceSlider/components/Label/index.js +86 -94
- package/filter/components/PriceSlider/index.js +43 -30
- package/filter/helpers/buildFilterParamsForFetchFiltersRequest.d.ts +8 -0
- package/filter/helpers/buildFilterParamsForFetchFiltersRequest.d.ts.map +1 -0
- package/filter/helpers/buildInitialFilters.d.ts +7 -0
- package/filter/helpers/buildInitialFilters.d.ts.map +1 -0
- package/filter/helpers/buildUpdatedFilters.d.ts +7 -0
- package/filter/helpers/buildUpdatedFilters.d.ts.map +1 -0
- package/filter/helpers/index.d.ts +5 -0
- package/filter/helpers/index.d.ts.map +1 -0
- package/filter/helpers/translateFilterLabel.d.ts +8 -0
- package/filter/helpers/translateFilterLabel.d.ts.map +1 -0
- package/filter/providers/FilterPageProvider.context.d.ts +157 -0
- package/filter/providers/FilterPageProvider.context.d.ts.map +1 -0
- package/filter/providers/FilterPageProvider.d.ts +24 -0
- package/filter/providers/FilterPageProvider.d.ts.map +1 -0
- package/filter/providers/FilterPageProvider.js +77 -132
- package/locations/components/ChangeLocationButton/ChangeLocationButton.js +10 -14
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +4 -8
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +1 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +8 -13
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +10 -10
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +12 -16
- 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 +9 -9
- 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 +14 -28
- 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 +29 -0
- package/page/components/Widgets/WidgetProvider.d.ts.map +1 -0
- package/page/components/Widgets/WidgetProvider.js +8 -15
- 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 +18 -0
- package/page/components/Widgets/constants.d.ts.map +1 -0
- package/page/components/Widgets/constants.js +24 -2
- 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 +69 -0
- package/page/components/Widgets/helpers.d.ts.map +1 -0
- package/page/components/Widgets/helpers.js +58 -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 +18 -12
- 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 +138 -114
- 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/widget.config.schema.json +54 -0
- package/page/widgets/Button/Button.js +2 -3
- package/page/widgets/CategoryList/CategoryList.js +2 -1
- package/page/widgets/HeroBanner/config.json +6 -0
- package/page/widgets/Image/config.json +6 -0
- package/page/widgets/ImageRow/config.json +6 -0
- package/page/widgets/ImageSlider/config.json +6 -0
- package/page/widgets/ImageSlider/hooks.js +4 -2
- 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/README.md +92 -0
- 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/config.json +6 -0
- 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 +38 -46
- package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.d.ts +38 -0
- package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.d.ts.map +1 -0
- package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.js +88 -0
- package/product/components/FilterBar/components/Content/components/FilterChips/index.js +54 -35
- package/product/components/FilterBar/components/Content/components/Sort/index.js +1 -1
- package/product/components/FilterBar/components/Content/index.js +7 -3
- package/product/components/FilterBar/index.js +11 -22
- 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/ProductFilters/index.js +2 -6
- package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +12 -4
- package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +0 -1
- 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 -6
- 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/ProductRatingStars/ProductRatingStars.d.ts.map +1 -1
- package/product/components/ProductRatingStars/ProductRatingStars.js +4 -17
- 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 +12 -21
- 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 +15 -33
- 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 +123 -8
- package/settings/reducers/index.d.ts +3 -3
- package/settings/selectors/appSettings.d.ts +122 -1
- package/settings/selectors/appSettings.d.ts.map +1 -1
- package/settings/selectors/appSettings.js +80 -1
- package/settings/types/appSettings.d.ts +279 -0
- package/settings/types/appSettings.d.ts.map +1 -1
- package/settings/types/appSettings.js +133 -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/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 +11 -1
- package/styles/theme/createDefaultThemeOptions/index.d.ts.map +1 -1
- package/styles/theme/createDefaultThemeOptions/index.js +129 -10
- package/styles/theme/createTheme/createComponents.types.d.ts +118 -4
- package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createComponents.types.js +122 -8
- 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/createThemeFromColorScheme.d.ts +3 -1
- 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 +4 -2
- package/styles/theme/createTheme/createTypography.js +60 -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 +3 -1
- 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/types.d.ts +16 -5
- package/styles/theme/createTheme/types.d.ts.map +1 -1
- package/styles/theme/createTheme/types.js +8 -3
- 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 +4 -1
- package/styles/theme/index.d.ts.map +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 +3 -13
- package/styles/theme/providers/ThemeProvider.d.ts.map +1 -1
- package/styles/theme/providers/ThemeProvider.js +86 -13
- 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/admin-preview/detection.d.ts.map +0 -1
- package/admin-preview/detection.js +0 -166
- 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/index.js +0 -69
- 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/components/FilterChips/connector.js +0 -22
- 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/connector.js +0 -26
- 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
|
@@ -4,7 +4,8 @@ import { i18n, hasNewServices } from '@shopgate/engage/core/helpers';
|
|
|
4
4
|
import { UIEvents } from '@shopgate/engage/core';
|
|
5
5
|
import { useWidgetSettings } from '@shopgate/engage/core/hooks';
|
|
6
6
|
import { makeStyles, useTheme } from '@shopgate/engage/styles';
|
|
7
|
-
import {
|
|
7
|
+
import { QuantityInput } from '@shopgate/engage/components';
|
|
8
|
+
import { Button } from '@shopgate/engage/components/v2';
|
|
8
9
|
import { broadcastLiveMessage } from '@shopgate/engage/a11y/helpers';
|
|
9
10
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
11
|
const useStyles = makeStyles()((theme, {
|
|
@@ -60,6 +61,7 @@ const useStyles = makeStyles()((theme, {
|
|
|
60
61
|
fontWeight,
|
|
61
62
|
height: '100%',
|
|
62
63
|
width: '100%',
|
|
64
|
+
color: theme.contrastColor(inputBgColor || theme.components.input.background),
|
|
63
65
|
...(inputColor && {
|
|
64
66
|
color: `${inputColor}`
|
|
65
67
|
}),
|
|
@@ -76,10 +78,8 @@ const useStyles = makeStyles()((theme, {
|
|
|
76
78
|
},
|
|
77
79
|
button: {
|
|
78
80
|
width: sizeValue,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
padding: 0
|
|
82
|
-
},
|
|
81
|
+
minWidth: sizeValue,
|
|
82
|
+
padding: 0,
|
|
83
83
|
height: sizeValue,
|
|
84
84
|
fontSize: `${Math.floor(sizeValue / 28 * 100)}%`,
|
|
85
85
|
'&:not(:disabled)': {
|
|
@@ -91,25 +91,13 @@ const useStyles = makeStyles()((theme, {
|
|
|
91
91
|
})
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
|
-
buttonRipple: {
|
|
95
|
-
padding: 0
|
|
96
|
-
},
|
|
97
94
|
buttonNoRadiusLeft: {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
borderBottomLeftRadius: 0
|
|
101
|
-
}
|
|
95
|
+
borderTopLeftRadius: 0,
|
|
96
|
+
borderBottomLeftRadius: 0
|
|
102
97
|
},
|
|
103
98
|
buttonNoRadiusRight: {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
borderBottomRightRadius: 0
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
disabled: {
|
|
110
|
-
' > div': {
|
|
111
|
-
padding: 0
|
|
112
|
-
}
|
|
99
|
+
borderTopRightRadius: 0,
|
|
100
|
+
borderBottomRightRadius: 0
|
|
113
101
|
}
|
|
114
102
|
};
|
|
115
103
|
});
|
|
@@ -251,13 +239,10 @@ const UnitQuantityPicker = ({
|
|
|
251
239
|
className: classes.backdrop
|
|
252
240
|
}), /*#__PURE__*/_jsxs("div", {
|
|
253
241
|
className: cx(classes.root, className),
|
|
254
|
-
children: [/*#__PURE__*/_jsx(
|
|
255
|
-
|
|
242
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
243
|
+
color: "primary",
|
|
256
244
|
disabled: !allowDecrement || disabled,
|
|
257
|
-
|
|
258
|
-
className: cx(classes.button, classes.buttonNoRadiusRight, {
|
|
259
|
-
[classes.disabled]: !allowDecrement || disabled
|
|
260
|
-
}),
|
|
245
|
+
className: cx(classes.button, classes.buttonNoRadiusRight),
|
|
261
246
|
onClick: handleDecrement,
|
|
262
247
|
"aria-label": i18n.text('product.decrease_quantity'),
|
|
263
248
|
children: "-"
|
|
@@ -282,13 +267,10 @@ const UnitQuantityPicker = ({
|
|
|
282
267
|
onKeyDown: handleKeyDown,
|
|
283
268
|
ref: inputRef
|
|
284
269
|
})]
|
|
285
|
-
}), /*#__PURE__*/_jsx(
|
|
286
|
-
|
|
270
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
271
|
+
color: "primary",
|
|
287
272
|
disabled: !allowIncrement || disabled,
|
|
288
|
-
|
|
289
|
-
className: cx(classes.button, classes.buttonNoRadiusLeft, {
|
|
290
|
-
[classes.disabled]: !allowIncrement || disabled
|
|
291
|
-
}),
|
|
273
|
+
className: cx(classes.button, classes.buttonNoRadiusLeft),
|
|
292
274
|
onClick: handleIncrement,
|
|
293
275
|
"aria-label": i18n.text('product.increase_quantity'),
|
|
294
276
|
children: "+"
|
package/product/helpers/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import configuration from '@shopgate/pwa-common/collections/Configuration';
|
|
2
|
+
import { logger } from '@shopgate/pwa-core/helpers';
|
|
2
3
|
import { DEFAULT_PRODUCTS_FETCH_PARAMS } from '@shopgate/pwa-common/constants/Configuration';
|
|
3
4
|
import { getFullImageSource, isBeta, loadImage } from '@shopgate/engage/core/helpers';
|
|
4
5
|
import { getThemeSettings } from '@shopgate/engage/core/config';
|
|
6
|
+
import { PRODUCT_IMAGE_BASE_WIDTHS } from '@shopgate/engage/settings/constants/imageSettings';
|
|
5
7
|
import { buildShowScheduledParams } from "../components/EffectivityDates/helpers";
|
|
6
8
|
export * from '@shopgate/pwa-common-commerce/product/helpers';
|
|
7
9
|
export * from "../components/Media/helpers";
|
|
@@ -47,11 +49,23 @@ export const setDefaultProductFetchParams = () => {
|
|
|
47
49
|
});
|
|
48
50
|
};
|
|
49
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Whether the deprecation warning for getProductImageSettings has already been logged. Nulled
|
|
54
|
+
* after the first log, so a single warning is emitted per session rather than one per render.
|
|
55
|
+
*/
|
|
56
|
+
let productImageSettingsWarning = 'getProductImageSettings() is deprecated. Use the "context" prop of ProductImage, or the useProductImageSettings hook from @shopgate/engage/settings/hooks, so that images follow the configured aspect ratio.';
|
|
57
|
+
|
|
50
58
|
/**
|
|
51
59
|
* Provides the settings for ProductImages
|
|
60
|
+
* @deprecated Use the "context" prop of ProductImage, or useProductImageSettings. This accessor
|
|
61
|
+
* only reads the legacy theme configuration, so it does not pick up admin configured ratios.
|
|
52
62
|
* @return {Object}
|
|
53
63
|
*/
|
|
54
64
|
export const getProductImageSettings = () => {
|
|
65
|
+
if (productImageSettingsWarning) {
|
|
66
|
+
logger.warn(productImageSettingsWarning);
|
|
67
|
+
productImageSettingsWarning = null;
|
|
68
|
+
}
|
|
55
69
|
const appImages = getThemeSettings('AppImages');
|
|
56
70
|
return {
|
|
57
71
|
quality: 75,
|
|
@@ -79,18 +93,22 @@ export const getProductImageSettings = () => {
|
|
|
79
93
|
};
|
|
80
94
|
|
|
81
95
|
/**
|
|
82
|
-
* Load product image with given resolution
|
|
96
|
+
* Load product image with given resolution.
|
|
97
|
+
*
|
|
98
|
+
* A preload only pays off when it requests the same url the rendered image does, so pass the
|
|
99
|
+
* resolution and settings that image resolves. Anything omitted falls back to the built-in
|
|
100
|
+
* defaults.
|
|
83
101
|
* @param {string} src .
|
|
84
|
-
* @param {Object} resolution .
|
|
102
|
+
* @param {Object} [resolution] The resolution to preload. Falls back to the smallest built-in pdp
|
|
103
|
+
* resolution at a 1:1 ratio.
|
|
104
|
+
* @param {Object} [settings] The image service settings, as resolved by useImageServiceSettings.
|
|
85
105
|
* @returns {Promise}
|
|
86
106
|
*/
|
|
87
|
-
export const loadProductImage = (src, resolution = null) => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
return loadImage(getFullImageSource(src, res));
|
|
107
|
+
export const loadProductImage = (src, resolution = null, settings = undefined) => {
|
|
108
|
+
const [baseWidth] = PRODUCT_IMAGE_BASE_WIDTHS.pdp;
|
|
109
|
+
const res = resolution ?? {
|
|
110
|
+
width: baseWidth,
|
|
111
|
+
height: baseWidth
|
|
112
|
+
};
|
|
113
|
+
return loadImage(getFullImageSource(src, res, settings));
|
|
96
114
|
};
|
package/product/hooks/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { useLoadProductImage } from "./useLoadProductImage";
|
|
2
2
|
export { default as useProductListEntry } from "./useProductListEntry";
|
|
3
|
-
export { default as useProductListType } from "./useProductListType";
|
|
3
|
+
export { default as useProductListType } from "./useProductListType";
|
|
4
|
+
export { default as useShowEmptyRatingStars } from "./useShowEmptyRatingStars";
|
|
5
|
+
export { useSlidesPerView } from "../components/ProductSlider/hooks";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useState, useEffect } from 'react';
|
|
2
|
+
import { useImageServiceSettings } from '@shopgate/engage/settings/hooks';
|
|
2
3
|
import { loadProductImage } from "../helpers/index";
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -9,6 +10,7 @@ import { loadProductImage } from "../helpers/index";
|
|
|
9
10
|
*/
|
|
10
11
|
export function useLoadProductImage(src, resolution = null) {
|
|
11
12
|
const [loadedImage, setLoadedImage] = useState(null);
|
|
13
|
+
const imageServiceSettings = useImageServiceSettings();
|
|
12
14
|
useEffect(() => {
|
|
13
15
|
if (src) {
|
|
14
16
|
setLoadedImage(null);
|
|
@@ -16,8 +18,8 @@ export function useLoadProductImage(src, resolution = null) {
|
|
|
16
18
|
}, [src]);
|
|
17
19
|
useEffect(() => {
|
|
18
20
|
if (src && !loadedImage) {
|
|
19
|
-
loadProductImage(src, resolution).then(imageSrc => setLoadedImage(imageSrc));
|
|
21
|
+
loadProductImage(src, resolution, imageServiceSettings).then(imageSrc => setLoadedImage(imageSrc));
|
|
20
22
|
}
|
|
21
|
-
}, [loadedImage, resolution, src]);
|
|
23
|
+
}, [imageServiceSettings, loadedImage, resolution, src]);
|
|
22
24
|
return loadedImage;
|
|
23
25
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves whether rating stars are also rendered for products without a rating.
|
|
3
|
+
* @returns Whether empty rating stars are shown.
|
|
4
|
+
*/
|
|
5
|
+
declare const useShowEmptyRatingStars: () => boolean;
|
|
6
|
+
export default useShowEmptyRatingStars;
|
|
7
|
+
//# sourceMappingURL=useShowEmptyRatingStars.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useShowEmptyRatingStars.d.ts","sourceRoot":"","sources":["../../../product/hooks/useShowEmptyRatingStars.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,QAAA,MAAM,uBAAuB,QAAO,OAYnC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useSelector } from 'react-redux';
|
|
2
|
+
import { useWidgetSettings } from '@shopgate/engage/core/hooks';
|
|
3
|
+
import { getAreAppSettingsHydrated, getShowEmptyRatingStars } from '@shopgate/engage/settings/selectors/appSettings';
|
|
4
|
+
const RATING_WIDGET_ID = '@shopgate/engage/rating';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Resolves whether rating stars are also rendered for products without a rating.
|
|
8
|
+
* @returns Whether empty rating stars are shown.
|
|
9
|
+
*/
|
|
10
|
+
const useShowEmptyRatingStars = () => {
|
|
11
|
+
const areAppSettingsHydrated = useSelector(getAreAppSettingsHydrated);
|
|
12
|
+
const showEmptyStars = useSelector(getShowEmptyRatingStars);
|
|
13
|
+
const {
|
|
14
|
+
showEmptyRatingStars: legacyShowEmptyRatingStars = false
|
|
15
|
+
} = useWidgetSettings(RATING_WIDGET_ID) || {};
|
|
16
|
+
if (!areAppSettingsHydrated) {
|
|
17
|
+
return legacyShowEmptyRatingStars;
|
|
18
|
+
}
|
|
19
|
+
return showEmptyStars;
|
|
20
|
+
};
|
|
21
|
+
export default useShowEmptyRatingStars;
|
package/product/index.js
CHANGED
|
@@ -37,7 +37,6 @@ export * from "./selectors/relations";
|
|
|
37
37
|
export { ProductContext, VariantContext } from "./components/context";
|
|
38
38
|
export { default as ProductListTypeContext } from "./providers/ProductListType/context";
|
|
39
39
|
export { default as ProductListEntryContext } from "./providers/ProductListEntry/context";
|
|
40
|
-
export * from "./collections";
|
|
41
40
|
export * from "./constants";
|
|
42
41
|
export * from "./helpers";
|
|
43
42
|
export * from "./components";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export default [{
|
|
2
|
+
label: 'TestProperty1',
|
|
3
|
+
value: '15kg',
|
|
4
|
+
displayGroup: 'Weights'
|
|
5
|
+
}, {
|
|
6
|
+
label: 'TestProperty2',
|
|
7
|
+
value: '120kg',
|
|
8
|
+
displayGroup: 'Weights'
|
|
9
|
+
}, {
|
|
10
|
+
label: 'TestProperty3',
|
|
11
|
+
value: 'kg = lbs',
|
|
12
|
+
displayGroup: 'Weights',
|
|
13
|
+
subDisplayGroup: 'Units'
|
|
14
|
+
}, {
|
|
15
|
+
label: 'TestProperty4',
|
|
16
|
+
value: 'sep = sup',
|
|
17
|
+
displayGroup: 'Weights',
|
|
18
|
+
subDisplayGroup: 'Units'
|
|
19
|
+
}, {
|
|
20
|
+
label: 'TestProperty5',
|
|
21
|
+
value: 'Foo',
|
|
22
|
+
displayGroup: 'Weights',
|
|
23
|
+
subDisplayGroup: 'Something'
|
|
24
|
+
}, {
|
|
25
|
+
label: 'TestProperty6',
|
|
26
|
+
value: 'Bar',
|
|
27
|
+
displayGroup: 'Weights',
|
|
28
|
+
subDisplayGroup: 'Something'
|
|
29
|
+
}, {
|
|
30
|
+
label: 'TestProperty3',
|
|
31
|
+
value: 'kg = lbs',
|
|
32
|
+
displayGroup: 'Something Else',
|
|
33
|
+
subDisplayGroup: 'Units'
|
|
34
|
+
}, {
|
|
35
|
+
label: 'TestProperty4',
|
|
36
|
+
value: 'sep = sup',
|
|
37
|
+
displayGroup: 'Something Else',
|
|
38
|
+
subDisplayGroup: 'Units'
|
|
39
|
+
}, {
|
|
40
|
+
label: 'TestProperty5',
|
|
41
|
+
value: 'Foo',
|
|
42
|
+
displayGroup: 'Something Else',
|
|
43
|
+
subDisplayGroup: 'Something'
|
|
44
|
+
}, {
|
|
45
|
+
label: 'TestProperty6',
|
|
46
|
+
value: 'Bar',
|
|
47
|
+
displayGroup: 'Something Else',
|
|
48
|
+
subDisplayGroup: 'Something'
|
|
49
|
+
}];
|
|
@@ -2,7 +2,8 @@ import React, { useMemo, useEffect } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import throttle from 'lodash/throttle';
|
|
4
4
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
5
|
-
import { Grid, I18n,
|
|
5
|
+
import { Grid, I18n, Modal, Typography } from '@shopgate/engage/components';
|
|
6
|
+
import { Button, ButtonBase } from '@shopgate/engage/components/v2';
|
|
6
7
|
import { appConfig } from '@shopgate/engage';
|
|
7
8
|
import pushImage from "./push-opt-in.svg";
|
|
8
9
|
import connect from "./connector";
|
|
@@ -127,14 +128,13 @@ const PushOptInModal = ({
|
|
|
127
128
|
id: "pushOptInDialogMessage"
|
|
128
129
|
}), /*#__PURE__*/_jsx(Button, {
|
|
129
130
|
onClick: handleAllowPushOptIn,
|
|
130
|
-
|
|
131
|
+
color: "secondary",
|
|
131
132
|
className: cx(classes.button, 'push-opt-in-modal__button-allow'),
|
|
132
133
|
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
133
134
|
string: modalButtonAllow || 'pushOptInModal.buttonAllow'
|
|
134
135
|
})
|
|
135
|
-
}), /*#__PURE__*/_jsx(
|
|
136
|
+
}), /*#__PURE__*/_jsx(ButtonBase, {
|
|
136
137
|
onClick: handleDenyPushOptIn,
|
|
137
|
-
type: "plain",
|
|
138
138
|
className: cx(classes.button, 'push-opt-in-modal__button-deny'),
|
|
139
139
|
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
140
140
|
string: modalButtonDeny || 'pushOptInModal.buttonDeny',
|
|
@@ -2,7 +2,7 @@ import React, { useMemo } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { i18n, isIOSTheme } from '@shopgate/engage/core';
|
|
4
4
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
5
|
-
import {
|
|
5
|
+
import { Button } from '@shopgate/engage/components/v2';
|
|
6
6
|
import { useRegistration } from "../../hooks";
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
const useStyles = makeStyles()(theme => ({
|
|
@@ -15,7 +15,6 @@ const useStyles = makeStyles()(theme => ({
|
|
|
15
15
|
} : null)
|
|
16
16
|
},
|
|
17
17
|
submitButton: {
|
|
18
|
-
width: '100%',
|
|
19
18
|
marginTop: 8
|
|
20
19
|
}
|
|
21
20
|
}));
|
|
@@ -48,8 +47,9 @@ const RegisterFormActions = ({
|
|
|
48
47
|
}, [guestRegistrationEditMode, isGuest, orderNeedsPayment]);
|
|
49
48
|
return /*#__PURE__*/_jsx("div", {
|
|
50
49
|
className: classes.submitButtonContainer,
|
|
51
|
-
children: /*#__PURE__*/_jsx(
|
|
52
|
-
|
|
50
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
51
|
+
color: "primary",
|
|
52
|
+
fullWidth: true,
|
|
53
53
|
onClick: handleSubmit,
|
|
54
54
|
disabled: isLocked,
|
|
55
55
|
className: classes.submitButton,
|
|
@@ -4,17 +4,15 @@ import { bin2hex } from '@shopgate/pwa-common/helpers/data';
|
|
|
4
4
|
import { I18n } from '@shopgate/engage/components';
|
|
5
5
|
import { ITEM_PATH } from '@shopgate/pwa-common-commerce/product/constants/index';
|
|
6
6
|
import { REVIEW_PREVIEW_COUNT } from '@shopgate/pwa-common-commerce/reviews/constants';
|
|
7
|
-
import
|
|
7
|
+
import { Button } from '@shopgate/engage/components/v2';
|
|
8
8
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
9
9
|
import connect from "./connector";
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
const useStyles = makeStyles()(
|
|
11
|
+
const useStyles = makeStyles()(() => ({
|
|
12
12
|
container: {
|
|
13
13
|
display: 'flex',
|
|
14
14
|
justifyContent: 'flex-end',
|
|
15
|
-
textAlign: 'right'
|
|
16
|
-
marginTop: theme.spacing(-1),
|
|
17
|
-
marginBottom: theme.spacing(-2)
|
|
15
|
+
textAlign: 'right'
|
|
18
16
|
}
|
|
19
17
|
}));
|
|
20
18
|
|
|
@@ -33,7 +31,9 @@ const AllReviewsLink = props => {
|
|
|
33
31
|
return /*#__PURE__*/_jsx("div", {
|
|
34
32
|
className: cx(classes.container, 'engage__reviews__all-reviews-link'),
|
|
35
33
|
"data-test-id": "showAllReviewsButton",
|
|
36
|
-
children: /*#__PURE__*/_jsx(
|
|
34
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
35
|
+
variant: "text",
|
|
36
|
+
color: "primary",
|
|
37
37
|
href: `${ITEM_PATH}/${bin2hex(props.productId)}/reviews`,
|
|
38
38
|
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
39
39
|
string: "reviews.button_all",
|
|
@@ -4,7 +4,7 @@ import { I18n } from '@shopgate/engage/components';
|
|
|
4
4
|
import { i18n } from '@shopgate/engage/core/helpers';
|
|
5
5
|
import { ITEM_PATH } from '@shopgate/pwa-common-commerce/product/constants';
|
|
6
6
|
import { bin2hex } from '@shopgate/pwa-common/helpers/data';
|
|
7
|
-
import
|
|
7
|
+
import { Button } from '@shopgate/engage/components/v2';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Link to add a review.
|
|
@@ -16,9 +16,10 @@ const WriteReviewLink = ({
|
|
|
16
16
|
}) => /*#__PURE__*/_jsx("div", {
|
|
17
17
|
"data-test-id": "writeReview",
|
|
18
18
|
className: "engage__reviews__write-review-link",
|
|
19
|
-
children: /*#__PURE__*/_jsx(
|
|
19
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
20
|
+
variant: "text",
|
|
21
|
+
color: "primary",
|
|
20
22
|
href: `${ITEM_PATH}/${bin2hex(productId)}/write_review`,
|
|
21
|
-
noGap: true,
|
|
22
23
|
"aria-label": i18n.text('reviews.button_add'),
|
|
23
24
|
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
24
25
|
string: "reviews.button_add"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AppSettingsPayload } from '../types/appSettings';
|
|
2
2
|
/**
|
|
3
3
|
* Creates the dispatched RECEIVE_APP_SETTINGS action object.
|
|
4
4
|
* @param settings A list of app settings.
|
|
5
5
|
* @returns The dispatched action object.
|
|
6
6
|
*/
|
|
7
|
-
export declare const receiveAppSettings: (settings:
|
|
7
|
+
export declare const receiveAppSettings: (settings: AppSettingsPayload) => {
|
|
8
8
|
type: string;
|
|
9
|
-
settings: AppSettings
|
|
9
|
+
settings: import("../types/appSettings").DeepPartial<import("../types/appSettings").AppSettings>;
|
|
10
10
|
};
|
|
11
11
|
export type ReceiveAppSettingsAction = ReturnType<typeof receiveAppSettings>;
|
|
12
12
|
//# sourceMappingURL=appSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appSettings.d.ts","sourceRoot":"","sources":["../../../settings/action-creators/appSettings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"appSettings.d.ts","sourceRoot":"","sources":["../../../settings/action-creators/appSettings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,kBAAkB;;;CAG7D,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
import type { Breakpoint } from '@shopgate/engage/styles/theme';
|
|
2
|
+
import type { ScreenSize } from '../types/appSettings';
|
|
1
3
|
export declare const RECEIVE_APP_SETTINGS = "RECEIVE_APP_SETTINGS";
|
|
4
|
+
export declare const SCREEN_SIZE_BREAKPOINTS: Record<ScreenSize, Breakpoint>;
|
|
2
5
|
//# sourceMappingURL=appSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appSettings.d.ts","sourceRoot":"","sources":["../../../settings/constants/appSettings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"appSettings.d.ts","sourceRoot":"","sources":["../../../settings/constants/appSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAIlE,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ProductImageContext } from '../types/appSettings';
|
|
2
|
+
/**
|
|
3
|
+
* The base widths every product image context requests from the image service, ordered ascending.
|
|
4
|
+
*
|
|
5
|
+
* Each array is a progressive loading ladder, not a responsive pick: the Image component loads the
|
|
6
|
+
* second to last entry first as a low resolution preview and the last entry as the actual source.
|
|
7
|
+
* Heights are derived from the configured aspect ratio, so at the default 1:1 these reproduce the
|
|
8
|
+
* legacy AppImages resolutions exactly.
|
|
9
|
+
*/
|
|
10
|
+
export declare const PRODUCT_IMAGE_BASE_WIDTHS: Record<ProductImageContext, number[]>;
|
|
11
|
+
/**
|
|
12
|
+
* The largest width or height that may be requested from the image service.
|
|
13
|
+
*
|
|
14
|
+
* A configured aspect ratio is applied to the base widths, so an extreme one would otherwise ask for
|
|
15
|
+
* dimensions the service rejects. Comfortably above the largest base width in use.
|
|
16
|
+
*/
|
|
17
|
+
export declare const MAX_IMAGE_DIMENSION = 4096;
|
|
18
|
+
/**
|
|
19
|
+
* The key the legacy image settings live under in the theme configuration.
|
|
20
|
+
*/
|
|
21
|
+
export declare const LEGACY_IMAGE_SETTINGS_KEY = "AppImages";
|
|
22
|
+
/**
|
|
23
|
+
* The compression quality passed to the image service when nothing is configured.
|
|
24
|
+
*
|
|
25
|
+
* Derived from the theme configuration, so an app whose settings never carry a quality keeps the
|
|
26
|
+
* one its theme configured.
|
|
27
|
+
*
|
|
28
|
+
* Safe to read once at module scope: the theme config is inlined into the bundle at build time.
|
|
29
|
+
*/
|
|
30
|
+
export declare const DEFAULT_IMAGE_QUALITY: number;
|
|
31
|
+
/**
|
|
32
|
+
* Whether product images get an inset shadow when nothing is configured.
|
|
33
|
+
*
|
|
34
|
+
* Derived from the legacy app config flag rather than hardcoded: that flag is inverted, and its
|
|
35
|
+
* default differs per theme - gmd hides the shadow, ios11 shows it - so a fixed value here would
|
|
36
|
+
* flip the shadow for one of them.
|
|
37
|
+
*
|
|
38
|
+
* Safe to read once at module scope for the same reason as DEFAULT_IMAGE_QUALITY: the app config is
|
|
39
|
+
* inlined into the bundle at build time.
|
|
40
|
+
*/
|
|
41
|
+
export declare const DEFAULT_SHOW_INNER_SHADOW: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Fill color used when no valid one is configured. Already in Thumbor's expected format - a
|
|
44
|
+
* hexadecimal RGB expression without the leading "#".
|
|
45
|
+
*/
|
|
46
|
+
export declare const DEFAULT_IMAGE_FILL_COLOR = "FFFFFF";
|
|
47
|
+
/**
|
|
48
|
+
* Whether transparent areas of the source image are filled too, when nothing is configured.
|
|
49
|
+
* Matches what the legacy "FFFFFF,1" value expressed.
|
|
50
|
+
*/
|
|
51
|
+
export declare const DEFAULT_IMAGE_FILL_TRANSPARENT = true;
|
|
52
|
+
//# sourceMappingURL=imageSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageSettings.d.ts","sourceRoot":"","sources":["../../../settings/constants/imageSettings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAI3E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,yBAAyB,cAAc,CAAC;AAOrD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAED,CAAC;AAEpC;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,SACuC,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,8BAA8B,OAAO,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Imported via its module path rather than the "core" barrel, since that barrel pulls in
|
|
2
|
+
// getFullImageSource which reads these settings back, and would create a circular import.
|
|
3
|
+
import appConfig from '@shopgate/pwa-common/helpers/config';
|
|
4
|
+
import { getThemeSettings } from '@shopgate/engage/core/config/getThemeSettings';
|
|
5
|
+
/**
|
|
6
|
+
* The base widths every product image context requests from the image service, ordered ascending.
|
|
7
|
+
*
|
|
8
|
+
* Each array is a progressive loading ladder, not a responsive pick: the Image component loads the
|
|
9
|
+
* second to last entry first as a low resolution preview and the last entry as the actual source.
|
|
10
|
+
* Heights are derived from the configured aspect ratio, so at the default 1:1 these reproduce the
|
|
11
|
+
* legacy AppImages resolutions exactly.
|
|
12
|
+
*/
|
|
13
|
+
export const PRODUCT_IMAGE_BASE_WIDTHS = {
|
|
14
|
+
list: [440],
|
|
15
|
+
pdp: [440, 1024],
|
|
16
|
+
gallery: [1024, 2048]
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The largest width or height that may be requested from the image service.
|
|
21
|
+
*
|
|
22
|
+
* A configured aspect ratio is applied to the base widths, so an extreme one would otherwise ask for
|
|
23
|
+
* dimensions the service rejects. Comfortably above the largest base width in use.
|
|
24
|
+
*/
|
|
25
|
+
export const MAX_IMAGE_DIMENSION = 4096;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The key the legacy image settings live under in the theme configuration.
|
|
29
|
+
*/
|
|
30
|
+
export const LEGACY_IMAGE_SETTINGS_KEY = 'AppImages';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Compression quality used when the theme configuration does not provide one.
|
|
34
|
+
*/
|
|
35
|
+
const FALLBACK_IMAGE_QUALITY = 75;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The compression quality passed to the image service when nothing is configured.
|
|
39
|
+
*
|
|
40
|
+
* Derived from the theme configuration, so an app whose settings never carry a quality keeps the
|
|
41
|
+
* one its theme configured.
|
|
42
|
+
*
|
|
43
|
+
* Safe to read once at module scope: the theme config is inlined into the bundle at build time.
|
|
44
|
+
*/
|
|
45
|
+
export const DEFAULT_IMAGE_QUALITY = (getThemeSettings(LEGACY_IMAGE_SETTINGS_KEY) ?? {}).quality ?? FALLBACK_IMAGE_QUALITY;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Whether product images get an inset shadow when nothing is configured.
|
|
49
|
+
*
|
|
50
|
+
* Derived from the legacy app config flag rather than hardcoded: that flag is inverted, and its
|
|
51
|
+
* default differs per theme - gmd hides the shadow, ios11 shows it - so a fixed value here would
|
|
52
|
+
* flip the shadow for one of them.
|
|
53
|
+
*
|
|
54
|
+
* Safe to read once at module scope for the same reason as DEFAULT_IMAGE_QUALITY: the app config is
|
|
55
|
+
* inlined into the bundle at build time.
|
|
56
|
+
*/
|
|
57
|
+
export const DEFAULT_SHOW_INNER_SHADOW = !appConfig.hideProductImageShadow;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Fill color used when no valid one is configured. Already in Thumbor's expected format - a
|
|
61
|
+
* hexadecimal RGB expression without the leading "#".
|
|
62
|
+
*/
|
|
63
|
+
export const DEFAULT_IMAGE_FILL_COLOR = 'FFFFFF';
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Whether transparent areas of the source image are filled too, when nothing is configured.
|
|
67
|
+
* Matches what the legacy "FFFFFF,1" value expressed.
|
|
68
|
+
*/
|
|
69
|
+
export const DEFAULT_IMAGE_FILL_TRANSPARENT = true;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../settings/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { resolveImageServiceSettings, resolveProductImageSettings } from "./resolveImageSettings";
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ImageResolution, ImageSettings, ProductImageContext } from '../types/appSettings';
|
|
2
|
+
/**
|
|
3
|
+
* The resolved settings for one product image context: the resolution ladder to request from the
|
|
4
|
+
* image service, and the aspect ratio to apply to the rendered element.
|
|
5
|
+
*
|
|
6
|
+
* ratio is null while the legacy settings are in effect, because those configure explicit
|
|
7
|
+
* dimensions rather than a ratio - consumers then let the Image component derive the ratio from
|
|
8
|
+
* the largest resolution, exactly as before.
|
|
9
|
+
*/
|
|
10
|
+
export interface ResolvedProductImageContext {
|
|
11
|
+
/**
|
|
12
|
+
* The ladder to request, ordered ascending. The last entry is the displayed image, the second
|
|
13
|
+
* to last a low resolution preview.
|
|
14
|
+
*/
|
|
15
|
+
resolutions: ImageResolution[];
|
|
16
|
+
/**
|
|
17
|
+
* Width and height parts to apply to the rendered element, taken from the image that is
|
|
18
|
+
* requested rather than from the configured ratio, which may have been bounded. Null leaves the
|
|
19
|
+
* Image component to derive one from the largest resolution.
|
|
20
|
+
*/
|
|
21
|
+
ratio: [number, number] | null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The resolved settings for every product image context, keyed by context.
|
|
25
|
+
*/
|
|
26
|
+
export type ResolvedProductImageSettings = Record<ProductImageContext, ResolvedProductImageContext>;
|
|
27
|
+
/**
|
|
28
|
+
* What getFullImageSource needs to build an image url.
|
|
29
|
+
*
|
|
30
|
+
* The color and the transparency flag stay separate rather than being joined into one token,
|
|
31
|
+
* because the image sources spell them differently.
|
|
32
|
+
*/
|
|
33
|
+
export interface ResolvedImageServiceSettings {
|
|
34
|
+
/**
|
|
35
|
+
* Compression quality, 0 to 100.
|
|
36
|
+
*/
|
|
37
|
+
quality: number;
|
|
38
|
+
/**
|
|
39
|
+
* A hash free hex, or one of the image service's own keywords.
|
|
40
|
+
*/
|
|
41
|
+
fillColor: string;
|
|
42
|
+
/**
|
|
43
|
+
* Whether transparent areas of the source image are filled too. Not every image source supports
|
|
44
|
+
* this, so it is kept apart from the color rather than encoded into it.
|
|
45
|
+
*/
|
|
46
|
+
fillTransparent: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Resolves the settings for every product image context.
|
|
50
|
+
*
|
|
51
|
+
* Precedence:
|
|
52
|
+
* - Once the app settings are hydrated from a source (admin sync / jsonp), they are authoritative.
|
|
53
|
+
* The configured ratio applies to every context unless that context overrides it.
|
|
54
|
+
* - Before hydration the legacy AppImages resolutions are passed through as-is, with a null ratio.
|
|
55
|
+
* They already carry their own implied proportions, so reverse engineering a ratio from them
|
|
56
|
+
* would only introduce rounding - passing them through unchanged keeps the pre-hydration path
|
|
57
|
+
* identical to the legacy behavior.
|
|
58
|
+
* @param areAppSettingsHydrated Whether the app settings arrived from a source.
|
|
59
|
+
* @param imageSettings The image settings from the store.
|
|
60
|
+
* @returns The resolved settings, keyed by context.
|
|
61
|
+
*/
|
|
62
|
+
export declare const resolveProductImageSettings: (areAppSettingsHydrated: boolean, imageSettings: ImageSettings) => ResolvedProductImageSettings;
|
|
63
|
+
/**
|
|
64
|
+
* Resolves the quality and fill that image urls are built with.
|
|
65
|
+
* @param areAppSettingsHydrated Whether the app settings arrived from a source.
|
|
66
|
+
* @param imageSettings The image settings from the store.
|
|
67
|
+
* @returns The image service settings.
|
|
68
|
+
*/
|
|
69
|
+
export declare const resolveImageServiceSettings: (areAppSettingsHydrated: boolean, imageSettings: ImageSettings) => ResolvedImageServiceSettings;
|
|
70
|
+
//# sourceMappingURL=resolveImageSettings.d.ts.map
|