@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
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PaletteColorsWithMain, ShadowSize, Theme } from '@shopgate/engage/styles';
|
|
3
|
+
import type { ButtonBaseProps } from '../ButtonBase';
|
|
4
|
+
type StyleParams = Required<Pick<IconButtonOwnProps, 'variant' | 'color' | 'size' | 'shape'>> & Pick<IconButtonOwnProps, 'elevation'>;
|
|
5
|
+
declare const useStyles: (params: StyleParams, muiStyleOverridesParams?: {
|
|
6
|
+
props: Record<string, unknown>;
|
|
7
|
+
ownerState?: Record<string, unknown> | undefined;
|
|
8
|
+
} | undefined) => {
|
|
9
|
+
classes: Record<"surface" | "root" | "circular" | "rounded", string>;
|
|
10
|
+
theme: Theme;
|
|
11
|
+
css: import("tss-react").Css;
|
|
12
|
+
cx: import("tss-react").Cx;
|
|
13
|
+
};
|
|
14
|
+
export type IconButtonSize = 'small' | 'medium' | 'large';
|
|
15
|
+
export interface IconButtonOwnProps {
|
|
16
|
+
/**
|
|
17
|
+
* Accessible name of the button. Required, because an icon carries no text of its own.
|
|
18
|
+
*/
|
|
19
|
+
'aria-label': string;
|
|
20
|
+
/**
|
|
21
|
+
* `plain` draws no background, `surface` the themed surface that floating buttons sit on.
|
|
22
|
+
* @default 'plain'
|
|
23
|
+
*/
|
|
24
|
+
variant?: 'plain' | 'surface';
|
|
25
|
+
/**
|
|
26
|
+
* The color of the icon.
|
|
27
|
+
* @default 'inherit'
|
|
28
|
+
*/
|
|
29
|
+
color?: PaletteColorsWithMain | 'inherit' | 'cta';
|
|
30
|
+
/**
|
|
31
|
+
* The size of the component. Sets both the hit area and the icon.
|
|
32
|
+
* @default 'medium'
|
|
33
|
+
*/
|
|
34
|
+
size?: IconButtonSize;
|
|
35
|
+
/**
|
|
36
|
+
* Corner rounding. `rounded` uses the `components.iconButton.borderRadius` theme token.
|
|
37
|
+
* @default 'circular'
|
|
38
|
+
*/
|
|
39
|
+
shape?: 'circular' | 'rounded';
|
|
40
|
+
/**
|
|
41
|
+
* Depth of the drop shadow. A number indexes `theme.shadows`, a `ShadowSize` resolves through
|
|
42
|
+
* `theme.shadowSizes`. Only drawn while the `components.iconButton.boxShadow` token is unset.
|
|
43
|
+
*/
|
|
44
|
+
elevation?: number | ShadowSize;
|
|
45
|
+
/**
|
|
46
|
+
* If `true`, the icon is replaced by a loading indicator and the button is disabled.
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
loading?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Replaces the icon while the button is loading. By default it renders a `CircularProgress`.
|
|
52
|
+
*/
|
|
53
|
+
loadingIndicator?: React.ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* Override or extend the styles applied to the component.
|
|
56
|
+
*/
|
|
57
|
+
classes?: Partial<ReturnType<typeof useStyles>['classes']>;
|
|
58
|
+
/**
|
|
59
|
+
* The icon to render.
|
|
60
|
+
*/
|
|
61
|
+
children: React.ReactNode;
|
|
62
|
+
}
|
|
63
|
+
export type IconButtonProps<C extends React.ElementType = 'button'> = IconButtonOwnProps & ButtonBaseProps<C>;
|
|
64
|
+
/**
|
|
65
|
+
* The IconButton component renders an icon as a click target of its own. Unlike `Button` it carries
|
|
66
|
+
* no label, so it sizes itself to a square hit area and takes its accessible name from `aria-label`.
|
|
67
|
+
*/
|
|
68
|
+
declare const IconButtonComponent: <C extends React.ElementType = "button">(props: IconButtonProps<C> & {
|
|
69
|
+
ref?: React.ComponentPropsWithRef<C>["ref"];
|
|
70
|
+
}) => React.ReactElement | null;
|
|
71
|
+
export default IconButtonComponent;
|
|
72
|
+
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../../components/v2/IconButton/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGxF,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,eAAe,CAAC;AAmGzE,KAAK,WAAW,GACd,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GACxE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAE1C,QAAA,MAAM,SAAS;;cAR0C,CAAC;;;;;;CAwExD,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,qBAAqB,GAAG,SAAS,GAAG,KAAK,CAAC;IAClD;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,IAChE,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAS1C;;;GAGG;AACH,QAAA,MAAM,mBAAmB,EAAwB,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,EACtF,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;CAAE,KACxE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { makeStyles } from '@shopgate/engage/styles';
|
|
3
|
+
import CircularProgress from "../CircularProgress";
|
|
4
|
+
import ButtonBase from "../ButtonBase";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/**
|
|
7
|
+
* Renders the button. Exported through `IconButtonComponent`, which carries the public docs.
|
|
8
|
+
* @param props The component props.
|
|
9
|
+
* @param ref Forwarded ref.
|
|
10
|
+
* @returns The rendered button.
|
|
11
|
+
*/
|
|
12
|
+
function IconButton(props, ref) {
|
|
13
|
+
const {
|
|
14
|
+
variant = 'plain',
|
|
15
|
+
color = 'inherit',
|
|
16
|
+
size = 'medium',
|
|
17
|
+
shape = 'circular',
|
|
18
|
+
elevation,
|
|
19
|
+
loading = false,
|
|
20
|
+
loadingIndicator: loadingIndicatorProp,
|
|
21
|
+
disabled = false,
|
|
22
|
+
className,
|
|
23
|
+
classes: classesProp,
|
|
24
|
+
children,
|
|
25
|
+
...other
|
|
26
|
+
} = props;
|
|
27
|
+
const {
|
|
28
|
+
classes,
|
|
29
|
+
cx
|
|
30
|
+
} = useStyles({
|
|
31
|
+
variant,
|
|
32
|
+
color,
|
|
33
|
+
size,
|
|
34
|
+
shape,
|
|
35
|
+
elevation
|
|
36
|
+
}, {
|
|
37
|
+
props: {
|
|
38
|
+
classes: classesProp
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const loadingIndicator = loadingIndicatorProp ?? /*#__PURE__*/_jsx(CircularProgress, {
|
|
42
|
+
color: "inherit",
|
|
43
|
+
size: LOADING_INDICATOR_SIZES[size]
|
|
44
|
+
});
|
|
45
|
+
return /*#__PURE__*/_jsx(ButtonBase
|
|
46
|
+
// Rendered through the default `button` view of ButtonBase: TypeScript cannot check an
|
|
47
|
+
// object literal against `ComponentPropsWithRef<C>` while `C` is unresolved. The ref is
|
|
48
|
+
// forwarded untouched, and the public signature below restores the caller's element type.
|
|
49
|
+
, {
|
|
50
|
+
ref: ref,
|
|
51
|
+
className: cx(classes.root, {
|
|
52
|
+
[classes.surface]: variant === 'surface',
|
|
53
|
+
[classes.circular]: shape === 'circular',
|
|
54
|
+
[classes.rounded]: shape === 'rounded'
|
|
55
|
+
}, 'engage__icon-button', className),
|
|
56
|
+
disableBaseClassName: true,
|
|
57
|
+
"data-variant": variant,
|
|
58
|
+
"data-color": color,
|
|
59
|
+
"data-size": size,
|
|
60
|
+
"data-shape": shape,
|
|
61
|
+
"data-loading": loading || undefined,
|
|
62
|
+
disabled: disabled || loading,
|
|
63
|
+
...other,
|
|
64
|
+
children: loading ? loadingIndicator : children
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Edge length of the square hit area per size. The icon is sized by the matching `components.icon`
|
|
69
|
+
// token, so the padding around it follows from the difference.
|
|
70
|
+
const BOX_SIZES = {
|
|
71
|
+
small: 32,
|
|
72
|
+
medium: 40,
|
|
73
|
+
large: 48
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
// Diameter of the default loading indicator per size, smaller than the icon it stands in for.
|
|
77
|
+
const LOADING_INDICATOR_SIZES = {
|
|
78
|
+
small: 16,
|
|
79
|
+
medium: 20,
|
|
80
|
+
large: 24
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Resolves an `elevation` prop into a box-shadow.
|
|
85
|
+
* @param theme The active theme.
|
|
86
|
+
* @param elevation A `theme.shadows` index, or a size of `theme.shadowSizes`.
|
|
87
|
+
* @returns The box-shadow value.
|
|
88
|
+
*/
|
|
89
|
+
const resolveElevation = (theme, elevation) => typeof elevation === 'number' ? theme.shadows[elevation] : theme.shadowSizes[elevation];
|
|
90
|
+
|
|
91
|
+
// Share of the overlay the button tints itself with on hover, in percent. The dark scheme needs
|
|
92
|
+
// more of it: the overlay takes the color of the icon, and a light tint over a dark surface reads
|
|
93
|
+
// as less.
|
|
94
|
+
const HOVER_OVERLAY_PERCENT = 10;
|
|
95
|
+
const HOVER_OVERLAY_PERCENT_DARK = 28;
|
|
96
|
+
|
|
97
|
+
// The background a button paints before the hover overlay. Only `surface` publishes it, so a plain
|
|
98
|
+
// button falls back to no background of its own.
|
|
99
|
+
const BASE_BACKGROUND = 'var(--icon-button-background, transparent)';
|
|
100
|
+
const useStyles = makeStyles({
|
|
101
|
+
name: 'IconButton'
|
|
102
|
+
})((theme, props) => {
|
|
103
|
+
const {
|
|
104
|
+
color,
|
|
105
|
+
size,
|
|
106
|
+
elevation
|
|
107
|
+
} = props;
|
|
108
|
+
let cssColor = 'currentColor';
|
|
109
|
+
if (color === 'cta') {
|
|
110
|
+
cssColor = theme.components.ctaButton.background;
|
|
111
|
+
} else if (color !== 'inherit') {
|
|
112
|
+
cssColor = theme.palette?.[color]?.main ? theme.palette[color].main : theme.palette.primary.main;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Mixing the tint into the base keeps an opaque surface visible underneath. Declaring a
|
|
116
|
+
// translucent color instead would replace it, since this rule outranks the `surface` class.
|
|
117
|
+
const hoverBackground = percent => `color-mix(in srgb, ${cssColor} ${percent}%, ${BASE_BACKGROUND})`;
|
|
118
|
+
return {
|
|
119
|
+
root: {
|
|
120
|
+
'--icon-button-color': cssColor,
|
|
121
|
+
backgroundColor: BASE_BACKGROUND,
|
|
122
|
+
boxShadow: `var(${theme.vars.components.iconButton.boxShadow}, ${elevation === undefined ? 'none' : resolveElevation(theme, elevation)})`,
|
|
123
|
+
color: 'var(--icon-button-color)',
|
|
124
|
+
width: BOX_SIZES[size],
|
|
125
|
+
height: BOX_SIZES[size],
|
|
126
|
+
fontSize: theme.components.icon[size],
|
|
127
|
+
lineHeight: 1,
|
|
128
|
+
transition: theme.transitions.create(['background-color', 'box-shadow'], {
|
|
129
|
+
duration: theme.transitions.duration.short
|
|
130
|
+
}),
|
|
131
|
+
// A disabled button keeps taking pointer events so that it can show a not-allowed cursor,
|
|
132
|
+
// which leaves it matching `:hover`.
|
|
133
|
+
'&:hover:not(:disabled):not([aria-disabled="true"])': {
|
|
134
|
+
backgroundColor: hoverBackground(HOVER_OVERLAY_PERCENT),
|
|
135
|
+
...theme.applyStyles('dark', {
|
|
136
|
+
backgroundColor: hoverBackground(HOVER_OVERLAY_PERCENT_DARK)
|
|
137
|
+
}),
|
|
138
|
+
// Reset on touch devices, it doesn't add specificity
|
|
139
|
+
'@media (hover: none)': {
|
|
140
|
+
backgroundColor: BASE_BACKGROUND
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
'&:disabled, &[aria-disabled="true"]': {
|
|
144
|
+
color: theme.palette.action.disabled
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
surface: {
|
|
148
|
+
'--icon-button-background': theme.components.iconButton.background
|
|
149
|
+
},
|
|
150
|
+
circular: {
|
|
151
|
+
borderRadius: '50%'
|
|
152
|
+
},
|
|
153
|
+
rounded: {
|
|
154
|
+
borderRadius: theme.components.iconButton.borderRadius
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
});
|
|
158
|
+
const IconButtonWithRef = /*#__PURE__*/forwardRef(IconButton);
|
|
159
|
+
IconButtonWithRef.displayName = 'IconButton';
|
|
160
|
+
|
|
161
|
+
// `forwardRef` erases the generic, so the call signature is restored with a cast. The cast has to
|
|
162
|
+
// land on a named binding rather than on the export itself, or hovering an import of this component
|
|
163
|
+
// resolves to an anonymous function type and shows no documentation at all.
|
|
164
|
+
/**
|
|
165
|
+
* The IconButton component renders an icon as a click target of its own. Unlike `Button` it carries
|
|
166
|
+
* no label, so it sizes itself to a square hit area and takes its accessible name from `aria-label`.
|
|
167
|
+
*/
|
|
168
|
+
const IconButtonComponent = IconButtonWithRef;
|
|
169
|
+
export default IconButtonComponent;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/v2/IconButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./IconButton";
|
package/components/v2/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { default as ButtonBase, type ButtonBaseProps } from './ButtonBase';
|
|
2
2
|
export { default as Button, type ButtonProps } from './Button';
|
|
3
3
|
export { default as ButtonGroup, type ButtonGroupProps } from './ButtonGroup';
|
|
4
|
+
export { default as IconButton, type IconButtonProps, type IconButtonSize } from './IconButton';
|
|
4
5
|
export { default as CircularProgress, type CircularProgressProps } from './CircularProgress';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/components/v2/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as ButtonBase } from "./ButtonBase";
|
|
2
2
|
export { default as Button } from "./Button";
|
|
3
3
|
export { default as ButtonGroup } from "./ButtonGroup";
|
|
4
|
+
export { default as IconButton } from "./IconButton";
|
|
4
5
|
export { default as CircularProgress } from "./CircularProgress";
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
export function getFullImageSource(src: string, { width, height }?: {
|
|
1
|
+
export function getFullImageSource(src: string | null, { width, height }?: {
|
|
2
2
|
width: number;
|
|
3
3
|
height: number;
|
|
4
|
+
}, settings?: {
|
|
5
|
+
quality?: number | undefined;
|
|
6
|
+
fillColor?: string | undefined;
|
|
7
|
+
fillTransparent?: boolean | undefined;
|
|
4
8
|
}): string;
|
|
5
9
|
//# sourceMappingURL=getFullImageSource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFullImageSource.d.ts","sourceRoot":"","sources":["../../../core/helpers/getFullImageSource.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFullImageSource.d.ts","sourceRoot":"","sources":["../../../core/helpers/getFullImageSource.js"],"names":[],"mappings":"AAiEO,wCAVI,MAAM,GAAC,IAAI,sBAEnB;IAA0B,KAAK,EAAvB,MAAM;IACY,MAAM,EAAxB,MAAM;CACd,aACA;IAA0B,OAAO;IACP,SAAS;IACR,eAAe;CAC1C,GAAU,MAAM,CAyDlB"}
|
|
@@ -5,9 +5,18 @@ import "core-js/modules/web.url.to-json.js";
|
|
|
5
5
|
import "core-js/modules/web.url-search-params.js";
|
|
6
6
|
import { CONFIGURATION_COLLECTION_CREATE_EXTERNAL_IMAGE_URL } from '@shopgate/engage/core/constants';
|
|
7
7
|
import { configuration } from '@shopgate/engage/core/collections';
|
|
8
|
-
import {
|
|
8
|
+
import { DEFAULT_IMAGE_FILL_COLOR, DEFAULT_IMAGE_FILL_TRANSPARENT, DEFAULT_IMAGE_QUALITY } from '@shopgate/engage/settings/constants/imageSettings';
|
|
9
9
|
import { getImageFormat } from "./getImageFormat";
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* The settings applied when the caller passes none.
|
|
13
|
+
*/
|
|
14
|
+
const defaultSettings = {
|
|
15
|
+
quality: DEFAULT_IMAGE_QUALITY,
|
|
16
|
+
fillColor: DEFAULT_IMAGE_FILL_COLOR,
|
|
17
|
+
fillTransparent: DEFAULT_IMAGE_FILL_TRANSPARENT
|
|
18
|
+
};
|
|
19
|
+
|
|
11
20
|
/**
|
|
12
21
|
* Regex to detect the "fill" query parameter
|
|
13
22
|
*/
|
|
@@ -43,29 +52,38 @@ const buildUrl = (baseUrl, params = {}) => {
|
|
|
43
52
|
};
|
|
44
53
|
|
|
45
54
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
55
|
+
* Builds the url that requests an image at a given size. A src that no known image source
|
|
56
|
+
* recognizes is returned untouched.
|
|
57
|
+
* @param {string|null} src Source to the image.
|
|
48
58
|
* @param {Object} dimension Dimension of the requested image.
|
|
49
59
|
* @param {number} dimension.width Width in pixels.
|
|
50
60
|
* @param {number} dimension.height Height in pixels.
|
|
61
|
+
* @param {Object} [settings] Image service settings, as resolved by useImageServiceSettings.
|
|
62
|
+
* @param {number} [settings.quality] Compression quality.
|
|
63
|
+
* @param {string} [settings.fillColor] Fill color as a hash free hex, not a CSS color.
|
|
64
|
+
* @param {boolean} [settings.fillTransparent] Whether transparent areas are filled too.
|
|
51
65
|
* @returns {string}
|
|
52
66
|
*/
|
|
53
67
|
export const getFullImageSource = (src, {
|
|
54
68
|
width,
|
|
55
69
|
height
|
|
56
|
-
} = {}) => {
|
|
70
|
+
} = {}, settings = {}) => {
|
|
71
|
+
const {
|
|
72
|
+
quality,
|
|
73
|
+
fillColor,
|
|
74
|
+
fillTransparent
|
|
75
|
+
} = {
|
|
76
|
+
...defaultSettings,
|
|
77
|
+
...settings
|
|
78
|
+
};
|
|
57
79
|
if (src && src.includes('images.shopgate.services')) {
|
|
58
|
-
const {
|
|
59
|
-
fillColor,
|
|
60
|
-
quality
|
|
61
|
-
} = getProductImageSettings();
|
|
62
80
|
const format = getImageFormat();
|
|
63
81
|
return buildUrl(src, {
|
|
64
82
|
format,
|
|
65
83
|
width,
|
|
66
84
|
height,
|
|
67
85
|
quality,
|
|
68
|
-
fill: fillColor
|
|
86
|
+
fill: fillTransparent ? `${fillColor},1` : fillColor
|
|
69
87
|
});
|
|
70
88
|
}
|
|
71
89
|
if (src && src.startsWith('https://img-cdn.shopgate.com') && !src.includes('?')) {
|
|
@@ -74,17 +92,14 @@ export const getFullImageSource = (src, {
|
|
|
74
92
|
h: height,
|
|
75
93
|
q: 70,
|
|
76
94
|
zd: 'resize',
|
|
77
|
-
|
|
95
|
+
// No transparency flag here - the legacy cdn only understands a plain color.
|
|
96
|
+
fillc: fillColor
|
|
78
97
|
});
|
|
79
98
|
}
|
|
80
99
|
|
|
81
100
|
// Check if an extension registered an external image url handler within the config collection.
|
|
82
101
|
const createUrlFn = configuration.get(CONFIGURATION_COLLECTION_CREATE_EXTERNAL_IMAGE_URL);
|
|
83
102
|
if (typeof createUrlFn === 'function') {
|
|
84
|
-
const {
|
|
85
|
-
fillColor,
|
|
86
|
-
quality
|
|
87
|
-
} = getProductImageSettings();
|
|
88
103
|
const format = getImageFormat();
|
|
89
104
|
|
|
90
105
|
// Invoke the handler with all relevant parameters.
|
|
@@ -92,6 +107,7 @@ export const getFullImageSource = (src, {
|
|
|
92
107
|
width,
|
|
93
108
|
height,
|
|
94
109
|
fillColor,
|
|
110
|
+
fillTransparent,
|
|
95
111
|
quality,
|
|
96
112
|
format
|
|
97
113
|
});
|
package/core/helpers/i18n.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../core/helpers/i18n.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../core/helpers/i18n.js"],"names":[],"mappings":"AA4EA;;GAEG;AACH,mBAFU,WAAW,CAEM;AAMpB,oCAFM,MAAM,EAAE,CAQpB"}
|
package/core/helpers/i18n.js
CHANGED
|
@@ -13,6 +13,7 @@ import { logger } from '@shopgate/pwa-core/helpers';
|
|
|
13
13
|
* @property {Function} number - Number translator
|
|
14
14
|
* @property {Function} getSupplementalData - Get Supplemental Data
|
|
15
15
|
* @property {Function} getPath - Get locale data by path
|
|
16
|
+
* @property {Function} has - Check whether a translation key resolves to a value
|
|
16
17
|
* @property {Function} getLang - Get locale lang code, eg de-DE
|
|
17
18
|
*/
|
|
18
19
|
|
|
@@ -50,6 +51,7 @@ const I18n = () => {
|
|
|
50
51
|
this.number = getNumberFormatter(lang);
|
|
51
52
|
this.getSupplementalData = () => locales.supplementalData || {};
|
|
52
53
|
this.getPath = path => get(locales, path);
|
|
54
|
+
this.has = path => this.getPath(path) !== undefined;
|
|
53
55
|
this.getLang = () => lang;
|
|
54
56
|
// If component decides to act accordingly this information should be exposed.
|
|
55
57
|
this.ready = true;
|
|
@@ -62,6 +64,7 @@ const I18n = () => {
|
|
|
62
64
|
number: notReadyCb,
|
|
63
65
|
getSupplementalData: notReadyCb,
|
|
64
66
|
getPath: notReadyCb,
|
|
67
|
+
has: notReadyCb,
|
|
65
68
|
getLang: notReadyCb,
|
|
66
69
|
ready: false
|
|
67
70
|
};
|
|
@@ -2,82 +2,67 @@
|
|
|
2
2
|
* Additional options for app event hooks.
|
|
3
3
|
*/
|
|
4
4
|
export interface AppEventOptions {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
/**
|
|
6
|
+
* When false, no listener is registered.
|
|
7
|
+
* @default true
|
|
8
|
+
*/
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* When true, the callback is removed after first call.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
once?: boolean;
|
|
15
15
|
}
|
|
16
|
-
|
|
17
16
|
/**
|
|
18
17
|
* Extended options for return-from-background hook.
|
|
19
18
|
*/
|
|
20
19
|
export interface ReturnFromBackgroundOptions extends AppEventOptions {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
/**
|
|
21
|
+
* If true, requires a new background event to re-arm before firing again.
|
|
22
|
+
* If false, remains armed until disabled or unmounted.
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
resetAfterFire?: boolean;
|
|
27
26
|
}
|
|
28
|
-
|
|
29
27
|
/**
|
|
30
28
|
* Registers a callback for a given event from the Shopgate app event bus.
|
|
31
29
|
*
|
|
32
30
|
* Automatically unsubscribes on unmount. Can optionally run only once.
|
|
33
|
-
*
|
|
34
31
|
* @param name The event name to subscribe to.
|
|
35
32
|
* @param callback The function to call when the event fires.
|
|
36
33
|
* @param options Additional options.
|
|
37
34
|
*/
|
|
38
|
-
export declare function useAppEvent(
|
|
39
|
-
name: string,
|
|
40
|
-
callback: () => void,
|
|
41
|
-
options?: AppEventOptions
|
|
42
|
-
): void;
|
|
43
|
-
|
|
35
|
+
export declare function useAppEvent(name: string, callback: () => void, options?: AppEventOptions): void;
|
|
44
36
|
/**
|
|
45
|
-
* Registers a callback that fires when the app will enter foreground
|
|
46
|
-
*
|
|
47
|
-
* Automatically unsubscribes on unmount.
|
|
37
|
+
* Registers a callback that fires when the app will enter foreground
|
|
38
|
+
* (`applicationWillEnterForeground`).
|
|
48
39
|
*
|
|
40
|
+
* Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
|
|
49
41
|
* @param callback The callback to run when entering foreground.
|
|
50
42
|
* @param options Additional options.
|
|
51
43
|
*/
|
|
52
|
-
export declare function useAppEventOnEnterForeground(
|
|
53
|
-
callback: () => void,
|
|
54
|
-
options?: AppEventOptions
|
|
55
|
-
): void;
|
|
56
|
-
|
|
44
|
+
export declare function useAppEventOnEnterForeground(callback: () => void, options?: AppEventOptions): void;
|
|
57
45
|
/**
|
|
58
|
-
* Registers a callback that fires when the app did enter background
|
|
59
|
-
*
|
|
60
|
-
* Automatically unsubscribes on unmount.
|
|
46
|
+
* Registers a callback that fires when the app did enter background
|
|
47
|
+
* (`applicationDidEnterBackground`).
|
|
61
48
|
*
|
|
49
|
+
* Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
|
|
62
50
|
* @param callback The callback to run when entering background.
|
|
63
51
|
* @param options Additional options.
|
|
64
52
|
*/
|
|
65
|
-
export declare function useAppEventOnDidEnterBackground(
|
|
66
|
-
callback: () => void,
|
|
67
|
-
options?: AppEventOptions
|
|
68
|
-
): void;
|
|
69
|
-
|
|
53
|
+
export declare function useAppEventOnDidEnterBackground(callback: () => void, options?: AppEventOptions): void;
|
|
70
54
|
/**
|
|
71
55
|
* Invokes a callback only after the app was first sent to background and then
|
|
72
|
-
* returns to the foreground
|
|
56
|
+
* returns to the foreground - i.e. a complete background to foreground cycle.
|
|
73
57
|
*
|
|
74
58
|
* Common use case: user leaves the app to open system settings and returns, so you
|
|
75
59
|
* can re-check permissions or refresh data.
|
|
76
60
|
*
|
|
61
|
+
* Internally, this subscribes to both background and foreground events:
|
|
62
|
+
* - Arms itself when entering background
|
|
63
|
+
* - Fires on next foreground if armed
|
|
77
64
|
* @param callback The callback to run after returning from background.
|
|
78
65
|
* @param options Additional options.
|
|
79
66
|
*/
|
|
80
|
-
export declare function useAppEventOnReturnFromBackground(
|
|
81
|
-
|
|
82
|
-
options?: ReturnFromBackgroundOptions
|
|
83
|
-
): void;
|
|
67
|
+
export declare function useAppEventOnReturnFromBackground(callback: () => void, options?: ReturnFromBackgroundOptions): void;
|
|
68
|
+
//# sourceMappingURL=appEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appEvents.d.ts","sourceRoot":"","sources":["../../../../core/hooks/events/appEvents.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAkBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,GAAE,eAAoB,QAiB5F;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,QAE3F;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,QAE9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,GAAE,2BAAgC,QAsB1C"}
|
|
@@ -2,15 +2,22 @@ import { useEffect, useRef } from 'react';
|
|
|
2
2
|
import { APP_EVENT_APPLICATION_WILL_ENTER_FOREGROUND, APP_EVENT_APPLICATION_DID_ENTER_BACKGROUND } from '@shopgate/engage/core/constants';
|
|
3
3
|
import { event } from '@shopgate/engage/core/classes';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Additional options for app event hooks.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Extended options for return-from-background hook.
|
|
11
|
+
*/
|
|
12
|
+
|
|
5
13
|
/**
|
|
6
14
|
* Returns a stable reference to the given callback, preserving the same function identity
|
|
7
15
|
* across renders, while still always calling the latest version of the callback.
|
|
8
16
|
*
|
|
9
17
|
* Useful when passing callbacks into event listeners or effects so they don't re-subscribe
|
|
10
18
|
* on every render but still access up-to-date props/state.
|
|
11
|
-
*
|
|
12
|
-
* @
|
|
13
|
-
* @returns {Function} A stable function reference that always invokes the latest callback.
|
|
19
|
+
* @param fn The callback function whose latest version should be retained.
|
|
20
|
+
* @returns A stable function reference that always invokes the latest callback.
|
|
14
21
|
*/
|
|
15
22
|
function useStableCallback(fn) {
|
|
16
23
|
const ref = useRef(fn);
|
|
@@ -18,16 +25,14 @@ function useStableCallback(fn) {
|
|
|
18
25
|
const stable = useRef((...args) => ref.current?.(...args));
|
|
19
26
|
return stable.current;
|
|
20
27
|
}
|
|
28
|
+
|
|
21
29
|
/**
|
|
22
30
|
* Registers a callback for a given event from the Shopgate app event bus.
|
|
23
31
|
*
|
|
24
32
|
* Automatically unsubscribes on unmount. Can optionally run only once.
|
|
25
|
-
*
|
|
26
|
-
* @param
|
|
27
|
-
* @param
|
|
28
|
-
* @param {Object} [options] Additional options.
|
|
29
|
-
* @param {boolean} [options.enabled=true] When false, no listener is registered.
|
|
30
|
-
* @param {boolean} [options.once=false] When true, the callback is removed after first call.
|
|
33
|
+
* @param name The event name to subscribe to.
|
|
34
|
+
* @param callback The function to call when the event fires.
|
|
35
|
+
* @param options Additional options.
|
|
31
36
|
*/
|
|
32
37
|
export function useAppEvent(name, callback, options = {}) {
|
|
33
38
|
const {
|
|
@@ -37,7 +42,10 @@ export function useAppEvent(name, callback, options = {}) {
|
|
|
37
42
|
const latest = useStableCallback(callback);
|
|
38
43
|
useEffect(() => {
|
|
39
44
|
if (!enabled) return undefined;
|
|
40
|
-
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Invokes the callback, and unsubscribes again when the event was only wanted once.
|
|
48
|
+
*/
|
|
41
49
|
const handler = () => {
|
|
42
50
|
latest();
|
|
43
51
|
if (once) event.removeCallback(name, handler);
|
|
@@ -52,11 +60,8 @@ export function useAppEvent(name, callback, options = {}) {
|
|
|
52
60
|
* (`applicationWillEnterForeground`).
|
|
53
61
|
*
|
|
54
62
|
* Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
|
|
55
|
-
*
|
|
56
|
-
* @param
|
|
57
|
-
* @param {Object} [options] Additional options.
|
|
58
|
-
* @param {boolean} [options.enabled=true] When false, the listener is not registered.
|
|
59
|
-
* @param {boolean} [options.once=false] Remove after first call.
|
|
63
|
+
* @param callback The callback to run when entering foreground.
|
|
64
|
+
* @param options Additional options.
|
|
60
65
|
*/
|
|
61
66
|
export function useAppEventOnEnterForeground(callback, options) {
|
|
62
67
|
useAppEvent(APP_EVENT_APPLICATION_WILL_ENTER_FOREGROUND, callback, options);
|
|
@@ -65,12 +70,10 @@ export function useAppEventOnEnterForeground(callback, options) {
|
|
|
65
70
|
/**
|
|
66
71
|
* Registers a callback that fires when the app did enter background
|
|
67
72
|
* (`applicationDidEnterBackground`).
|
|
68
|
-
** Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
|
|
69
73
|
*
|
|
70
|
-
*
|
|
71
|
-
* @param
|
|
72
|
-
* @param
|
|
73
|
-
* @param {boolean} [options.once=false] Remove after first call.
|
|
74
|
+
* Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
|
|
75
|
+
* @param callback The callback to run when entering background.
|
|
76
|
+
* @param options Additional options.
|
|
74
77
|
*/
|
|
75
78
|
export function useAppEventOnDidEnterBackground(callback, options) {
|
|
76
79
|
useAppEvent(APP_EVENT_APPLICATION_DID_ENTER_BACKGROUND, callback, options);
|
|
@@ -78,7 +81,7 @@ export function useAppEventOnDidEnterBackground(callback, options) {
|
|
|
78
81
|
|
|
79
82
|
/**
|
|
80
83
|
* Invokes a callback only after the app was first sent to background and then
|
|
81
|
-
* returns to the foreground
|
|
84
|
+
* returns to the foreground - i.e. a complete background to foreground cycle.
|
|
82
85
|
*
|
|
83
86
|
* Common use case: user leaves the app to open system settings and returns, so you
|
|
84
87
|
* can re-check permissions or refresh data.
|
|
@@ -86,14 +89,8 @@ export function useAppEventOnDidEnterBackground(callback, options) {
|
|
|
86
89
|
* Internally, this subscribes to both background and foreground events:
|
|
87
90
|
* - Arms itself when entering background
|
|
88
91
|
* - Fires on next foreground if armed
|
|
89
|
-
*
|
|
90
|
-
* @param
|
|
91
|
-
* @param {Object} [options] Additional options.
|
|
92
|
-
* @param {boolean} [options.enabled=true] When false, no listener behavior is active.
|
|
93
|
-
* @param {boolean} [options.once=false] When true, callback fires only for the first cycle.
|
|
94
|
-
* @param {boolean} [options.resetAfterFire=true]
|
|
95
|
-
* If true, requires a new background event to re-arm before firing again.
|
|
96
|
-
* If false, remains armed until disabled or unmounted.
|
|
92
|
+
* @param callback The callback to run after returning from background.
|
|
93
|
+
* @param options Additional options.
|
|
97
94
|
*/
|
|
98
95
|
export function useAppEventOnReturnFromBackground(callback, options = {}) {
|
|
99
96
|
const {
|