@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,92 @@
|
|
|
1
|
+
# Widgets
|
|
2
|
+
|
|
3
|
+
Widgets are the building blocks of a CMS page. The core renders a flat list of containers and each
|
|
4
|
+
widget renders inside one, without knowing anything about its surroundings.
|
|
5
|
+
|
|
6
|
+
## Widget config
|
|
7
|
+
|
|
8
|
+
A widget can tell the core a few things about itself. It does that in a `config.json` inside its
|
|
9
|
+
own folder:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
libraries/engage/page/widgets/Video/
|
|
13
|
+
config.json <- the config of this widget
|
|
14
|
+
Video.tsx
|
|
15
|
+
hooks.ts
|
|
16
|
+
index.ts
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Widgets that need no configuration ship no file.
|
|
20
|
+
|
|
21
|
+
The file is read **at build time** and its content is passed to the app together with the widget
|
|
22
|
+
mapping, so its values are known before the widget itself is loaded. A running build watches the
|
|
23
|
+
config files, which means editing one is picked up without a restart. Adding a whole new widget
|
|
24
|
+
still needs one, because that also changes the component mapping of the app.
|
|
25
|
+
|
|
26
|
+
A config that does not match the schema, or that cannot be parsed, **fails the build** with a
|
|
27
|
+
message that names the widget.
|
|
28
|
+
|
|
29
|
+
### Media widget margins
|
|
30
|
+
|
|
31
|
+
Merchants configure margins around media widgets in the theme settings. They arrive in the app
|
|
32
|
+
settings as `widgets.mediaMargins` and are applied to the container of every widget that asks for
|
|
33
|
+
them:
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"$schema": "../../widget.config.schema.json",
|
|
38
|
+
"layout": {
|
|
39
|
+
"applyMediaMargins": true
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`true` applies the margin on all four sides. To take part on some sides only, name them:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"$schema": "../../widget.config.schema.json",
|
|
49
|
+
"layout": {
|
|
50
|
+
"applyMediaMargins": {
|
|
51
|
+
"top": true,
|
|
52
|
+
"bottom": true
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Widgets that bring their own spacing should not ask for the margins, otherwise the two add up. A
|
|
59
|
+
widget that is meant to touch the screen edges leaves out `left` and `right`.
|
|
60
|
+
|
|
61
|
+
Margins that a merchant configures for a single widget instance in the page builder always win over
|
|
62
|
+
the media widget margins.
|
|
63
|
+
|
|
64
|
+
### Editor support
|
|
65
|
+
|
|
66
|
+
The optional `"$schema"` entry gives autocompletion and inline validation while editing. It is an
|
|
67
|
+
editor feature only - the build never follows it, and it is stripped from the config before it
|
|
68
|
+
reaches the app. What guards a config is the validation the build runs against
|
|
69
|
+
[widget.config.schema.json](../widget.config.schema.json), which happens with or without the entry.
|
|
70
|
+
|
|
71
|
+
Widgets in this package point at the schema with a path relative to their own folder:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"$schema": "../../widget.config.schema.json",
|
|
76
|
+
"layout": {
|
|
77
|
+
"applyMediaMargins": true
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Widgets in extensions leave the entry out.** There is no relative path that works for them: an
|
|
83
|
+
extension is developed in its own repository, where this package is not present at all, and in an
|
|
84
|
+
app it depends on whether the theme or the app carries `@shopgate/engage`. A wrong path is not
|
|
85
|
+
dangerous - the editor just offers no help - but it is noise that never starts working. Extension
|
|
86
|
+
authors who want the same support can map the schema in their editor instead, for example through
|
|
87
|
+
`json.schemas` in the workspace settings of their repository.
|
|
88
|
+
|
|
89
|
+
### Widgets of extensions
|
|
90
|
+
|
|
91
|
+
The config of an extension widget belongs to the repository of that extension. `extensions/` is not
|
|
92
|
+
part of this repository, so a file that is only added to a local checkout never ships.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Video.d.ts","sourceRoot":"","sources":["../../../../page/widgets/Video/Video.tsx"],"names":[],"mappings":"AAGA;;GAEG;AACH,QAAA,MAAM,KAAK,mCAgBV,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { useVideoWidget } from "./hooks";
|
|
3
2
|
import WidgetVideo from "../../components/WidgetVideo";
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* The VideoWidget is used to display a video.
|
|
7
|
-
* @returns {JSX.Element}
|
|
8
6
|
*/
|
|
9
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
8
|
const Video = () => {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration of the Video widget.
|
|
3
|
+
*/
|
|
4
|
+
export interface VideoWidgetConfig {
|
|
5
|
+
/**
|
|
6
|
+
* The video URL.
|
|
7
|
+
*/
|
|
8
|
+
url: string;
|
|
9
|
+
/**
|
|
10
|
+
* Whether the video should be muted.
|
|
11
|
+
*/
|
|
12
|
+
muted?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Whether the video should loop.
|
|
15
|
+
*/
|
|
16
|
+
loop?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the video should display controls.
|
|
19
|
+
*/
|
|
20
|
+
controls?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Whether the video should autoplay.
|
|
23
|
+
*/
|
|
24
|
+
autoplay?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The border radius option.
|
|
27
|
+
*/
|
|
28
|
+
borderRadius: 'default' | 'none' | 'rounded' | 'custom';
|
|
29
|
+
/**
|
|
30
|
+
* The custom border radius value.
|
|
31
|
+
*/
|
|
32
|
+
borderRadiusCustom?: number;
|
|
33
|
+
/**
|
|
34
|
+
* The link URL.
|
|
35
|
+
*/
|
|
36
|
+
link?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolved data returned by {@link useVideoWidget}. Reuses the field docs from
|
|
40
|
+
* {@link VideoWidgetConfig} for the pass-through fields via `Pick`.
|
|
41
|
+
*/
|
|
42
|
+
export interface UseVideoWidgetResult extends Pick<VideoWidgetConfig, 'url' | 'muted' | 'loop' | 'controls' | 'autoplay' | 'link'> {
|
|
43
|
+
/**
|
|
44
|
+
* The resolved border radius as a CSS length.
|
|
45
|
+
*/
|
|
46
|
+
borderRadius: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Hook to access the Video widget configuration and data.
|
|
50
|
+
* @returns The resolved Video widget data.
|
|
51
|
+
*/
|
|
52
|
+
export declare const useVideoWidget: () => UseVideoWidgetResult;
|
|
53
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../page/widgets/Video/hooks.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxD;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,iBAAiB,EACjB,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAC5D;IACC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,oBAoBjC,CAAC"}
|
|
@@ -2,27 +2,19 @@ import { useWidget } from '@shopgate/engage/page/hooks';
|
|
|
2
2
|
import { resolveBorderRadiusFromWidgetConfig } from "../../helpers";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @property {string} url The video URL.
|
|
7
|
-
* @property {boolean} [muted] Whether the video should be muted.
|
|
8
|
-
* @property {boolean} [loop] Whether the video should loop.
|
|
9
|
-
* @property {boolean} [controls] Whether the video should display controls.
|
|
10
|
-
* @property {boolean} [autoplay] Whether the video should autoplay.
|
|
11
|
-
* @property {number} [borderRadius] The border radius preset.
|
|
12
|
-
* @property {string} [link] The link URL.
|
|
5
|
+
* Configuration of the Video widget.
|
|
13
6
|
*/
|
|
14
7
|
|
|
15
8
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
9
|
+
* Resolved data returned by {@link useVideoWidget}. Reuses the field docs from
|
|
10
|
+
* {@link VideoWidgetConfig} for the pass-through fields via `Pick`.
|
|
18
11
|
*/
|
|
19
12
|
|
|
20
|
-
// eslint-disable-next-line valid-jsdoc
|
|
21
13
|
/**
|
|
22
14
|
* Hook to access the Video widget configuration and data.
|
|
15
|
+
* @returns The resolved Video widget data.
|
|
23
16
|
*/
|
|
24
17
|
export const useVideoWidget = () => {
|
|
25
|
-
/** @type {UseWidgetReturnType} */
|
|
26
18
|
const {
|
|
27
19
|
config
|
|
28
20
|
} = useWidget();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../page/widgets/Video/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -16,7 +16,6 @@ const useStyles = makeStyles()(theme => ({
|
|
|
16
16
|
lineHeight: 1.7,
|
|
17
17
|
overflow: 'hidden',
|
|
18
18
|
wordBreak: ['break-all', 'break-word'],
|
|
19
|
-
color: theme.palette.text.primary,
|
|
20
19
|
hyphens: 'auto',
|
|
21
20
|
' ul': {
|
|
22
21
|
listStyle: 'disc'
|
|
@@ -69,7 +68,6 @@ function Description({
|
|
|
69
68
|
variant: "h5",
|
|
70
69
|
component: "div",
|
|
71
70
|
className: cx(classes.title, 'theme__description_heading'),
|
|
72
|
-
color: "textPrimary",
|
|
73
71
|
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
74
72
|
string: "product.description_heading"
|
|
75
73
|
})
|
|
@@ -1,35 +1,28 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
4
|
-
import {
|
|
4
|
+
import { i18n } from '@shopgate/engage/core/helpers';
|
|
5
|
+
import { Badge, I18n, FilterIcon, Typography } from '@shopgate/engage/components';
|
|
5
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
7
|
const useStyles = makeStyles()(theme => ({
|
|
7
8
|
button: {
|
|
9
|
+
display: 'flex',
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
gap: theme.spacing(0.75),
|
|
8
12
|
color: 'inherit',
|
|
9
|
-
fontSize: theme.components.icon.medium,
|
|
10
13
|
outline: 0,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
overflow: 'hidden'
|
|
17
|
-
},
|
|
18
|
-
filterButton: {
|
|
19
|
-
display: 'flex'
|
|
14
|
+
flexShrink: 0,
|
|
15
|
+
margin: theme.spacing(0, 1.5),
|
|
16
|
+
padding: theme.spacing(0.25, 1),
|
|
17
|
+
border: `1px solid ${theme.components.border.medium}`,
|
|
18
|
+
borderRadius: theme.shape.borderRadius
|
|
20
19
|
},
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
paddingRight: theme.spacing(1)
|
|
20
|
+
buttonActive: {
|
|
21
|
+
borderColor: theme.components.badge.background
|
|
24
22
|
},
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
width: '100%',
|
|
29
|
-
justifyContent: 'center',
|
|
30
|
-
alignItems: 'center',
|
|
31
|
-
margin: 0,
|
|
32
|
-
padding: '6px 10px'
|
|
23
|
+
icon: {
|
|
24
|
+
fontSize: theme.components.icon.medium,
|
|
25
|
+
display: 'flex'
|
|
33
26
|
}
|
|
34
27
|
}));
|
|
35
28
|
|
|
@@ -39,39 +32,38 @@ const useStyles = makeStyles()(theme => ({
|
|
|
39
32
|
* @return {JSX}
|
|
40
33
|
*/
|
|
41
34
|
function FilterButton({
|
|
42
|
-
openFilters
|
|
35
|
+
openFilters,
|
|
36
|
+
filterCount
|
|
43
37
|
}) {
|
|
44
38
|
const {
|
|
45
39
|
classes,
|
|
46
40
|
cx
|
|
47
41
|
} = useStyles();
|
|
48
|
-
return /*#__PURE__*/
|
|
49
|
-
className: cx(classes.button,
|
|
42
|
+
return /*#__PURE__*/_jsxs("button", {
|
|
43
|
+
className: cx(classes.button, {
|
|
44
|
+
[classes.buttonActive]: filterCount > 0
|
|
45
|
+
}, 'theme__filter-bar__filter-button'),
|
|
50
46
|
onClick: openFilters,
|
|
51
47
|
"data-test-id": "filterButton",
|
|
48
|
+
"aria-label": i18n.text('titles.filter'),
|
|
52
49
|
type: "button",
|
|
53
|
-
children: /*#__PURE__*/_jsx(
|
|
54
|
-
className: classes.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
|
62
|
-
variant: "subtitle2",
|
|
63
|
-
component: "span",
|
|
64
|
-
className: classes.filterButtonLabel,
|
|
65
|
-
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
66
|
-
string: "titles.filter"
|
|
67
|
-
})
|
|
68
|
-
})
|
|
69
|
-
}), /*#__PURE__*/_jsx(Grid.Item, {
|
|
70
|
-
component: "div",
|
|
71
|
-
children: /*#__PURE__*/_jsx(FilterIcon, {})
|
|
72
|
-
})]
|
|
50
|
+
children: [/*#__PURE__*/_jsx("span", {
|
|
51
|
+
className: classes.icon,
|
|
52
|
+
children: /*#__PURE__*/_jsx(FilterIcon, {})
|
|
53
|
+
}), /*#__PURE__*/_jsx(Typography, {
|
|
54
|
+
variant: "subtitle2",
|
|
55
|
+
component: "span",
|
|
56
|
+
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
57
|
+
string: "titles.filter"
|
|
73
58
|
})
|
|
74
|
-
})
|
|
59
|
+
}), /*#__PURE__*/_jsx(Badge, {
|
|
60
|
+
count: filterCount,
|
|
61
|
+
max: 9,
|
|
62
|
+
"aria-hidden": true
|
|
63
|
+
})]
|
|
75
64
|
});
|
|
76
65
|
}
|
|
66
|
+
FilterButton.defaultProps = {
|
|
67
|
+
filterCount: 0
|
|
68
|
+
};
|
|
77
69
|
export default FilterButton;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface FilterChipProps {
|
|
3
|
+
/**
|
|
4
|
+
* Id of the filter value. Used as the test id and passed back to `onRemove`.
|
|
5
|
+
*/
|
|
6
|
+
id: string;
|
|
7
|
+
/**
|
|
8
|
+
* The chip label.
|
|
9
|
+
*/
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the chip renders a remove button (default `true`).
|
|
13
|
+
*/
|
|
14
|
+
removable?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Aria label for the label button, which opens the filter page.
|
|
17
|
+
*/
|
|
18
|
+
editLabel?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Aria label for the remove button.
|
|
21
|
+
*/
|
|
22
|
+
removeLabel?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Invoked when the chip label is clicked.
|
|
25
|
+
*/
|
|
26
|
+
onClick?: () => void;
|
|
27
|
+
/**
|
|
28
|
+
* Invoked with the chip id when the remove button is clicked.
|
|
29
|
+
*/
|
|
30
|
+
onRemove?: (id: string) => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A removable chip representing one active filter within the filter bar.
|
|
34
|
+
* @returns The rendered component.
|
|
35
|
+
*/
|
|
36
|
+
declare const FilterChip: ({ id, children, removable, editLabel, removeLabel, onClick, onRemove, }: FilterChipProps) => import("react").JSX.Element;
|
|
37
|
+
export default FilterChip;
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAwDtD,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,QAAA,MAAM,UAAU,GAAI,yEAQjB,eAAe,gCAwBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import noop from 'lodash/noop';
|
|
3
|
+
import Button from '@shopgate/pwa-common/components/Button';
|
|
4
|
+
import { CrossIcon } from '@shopgate/engage/components';
|
|
5
|
+
import { makeStyles } from '@shopgate/engage/styles';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const useStyles = makeStyles()((theme, {
|
|
8
|
+
removable
|
|
9
|
+
}) => ({
|
|
10
|
+
chip: {
|
|
11
|
+
display: 'flex',
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
minWidth: 0,
|
|
14
|
+
maxWidth: '72%',
|
|
15
|
+
height: 30,
|
|
16
|
+
borderRadius: theme.shape.borderRadius,
|
|
17
|
+
border: `1px solid ${theme.palette.secondary.main}`,
|
|
18
|
+
background: theme.palette.background.surface,
|
|
19
|
+
color: theme.palette.text.primary,
|
|
20
|
+
paddingLeft: removable ? theme.spacing(0.75) : theme.spacing(1.25),
|
|
21
|
+
paddingRight: theme.spacing(1.25),
|
|
22
|
+
outline: 0
|
|
23
|
+
},
|
|
24
|
+
name: {
|
|
25
|
+
...theme.typography.body2,
|
|
26
|
+
fontWeight: theme.typography.fontWeightMedium,
|
|
27
|
+
display: 'block',
|
|
28
|
+
color: 'inherit',
|
|
29
|
+
padding: 0,
|
|
30
|
+
paddingLeft: removable ? theme.spacing(0.5) : 0,
|
|
31
|
+
maxWidth: '100%',
|
|
32
|
+
overflow: 'hidden',
|
|
33
|
+
textOverflow: 'ellipsis',
|
|
34
|
+
whiteSpace: 'nowrap'
|
|
35
|
+
},
|
|
36
|
+
removeButton: {
|
|
37
|
+
display: 'flex',
|
|
38
|
+
flexShrink: 0,
|
|
39
|
+
padding: 0,
|
|
40
|
+
color: theme.palette.secondary.main
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* `Button` is untyped JavaScript whose optional props read as required from TypeScript.
|
|
46
|
+
*/
|
|
47
|
+
const ChipButton = Button;
|
|
48
|
+
/**
|
|
49
|
+
* A removable chip representing one active filter within the filter bar.
|
|
50
|
+
* @returns The rendered component.
|
|
51
|
+
*/
|
|
52
|
+
const FilterChip = ({
|
|
53
|
+
id,
|
|
54
|
+
children,
|
|
55
|
+
removable = true,
|
|
56
|
+
editLabel,
|
|
57
|
+
removeLabel,
|
|
58
|
+
onClick = noop,
|
|
59
|
+
onRemove = noop
|
|
60
|
+
}) => {
|
|
61
|
+
const {
|
|
62
|
+
classes
|
|
63
|
+
} = useStyles({
|
|
64
|
+
removable
|
|
65
|
+
});
|
|
66
|
+
const handleRemove = useCallback(() => {
|
|
67
|
+
onRemove(id);
|
|
68
|
+
}, [onRemove, id]);
|
|
69
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
70
|
+
className: classes.chip,
|
|
71
|
+
"data-test-id": id,
|
|
72
|
+
children: [removable && /*#__PURE__*/_jsx(ChipButton, {
|
|
73
|
+
className: classes.removeButton,
|
|
74
|
+
onClick: handleRemove,
|
|
75
|
+
testId: "removeFilter",
|
|
76
|
+
"aria-label": removeLabel,
|
|
77
|
+
children: /*#__PURE__*/_jsx(CrossIcon, {
|
|
78
|
+
size: 16
|
|
79
|
+
})
|
|
80
|
+
}), /*#__PURE__*/_jsx(ChipButton, {
|
|
81
|
+
className: classes.name,
|
|
82
|
+
onClick: onClick,
|
|
83
|
+
"aria-label": editLabel,
|
|
84
|
+
children: children
|
|
85
|
+
})]
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
export default FilterChip;
|
|
@@ -1,24 +1,41 @@
|
|
|
1
1
|
import React, { useCallback, useMemo, useEffect } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import noop from 'lodash/noop';
|
|
4
|
+
import { useDispatch } from 'react-redux';
|
|
4
5
|
import { router } from '@virtuous/conductor';
|
|
5
6
|
import appConfig from '@shopgate/pwa-common/helpers/config';
|
|
6
|
-
import {
|
|
7
|
+
import { updateFilters } from '@shopgate/pwa-common-commerce/filter/action-creators';
|
|
8
|
+
import { I18n } from '@shopgate/engage/components';
|
|
7
9
|
import { FILTER_TYPE_RANGE, FILTER_TYPE_MULTISELECT, translateFilterLabel } from '@shopgate/engage/filter';
|
|
8
10
|
import { i18n } from '@shopgate/engage/core/helpers';
|
|
9
11
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
10
|
-
import
|
|
11
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
import FilterChip from "./components/FilterChip";
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
14
|
const useStyles = makeStyles()(theme => ({
|
|
13
15
|
container: {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
display: 'flex',
|
|
17
|
+
alignItems: 'center',
|
|
18
|
+
gap: theme.spacing(1),
|
|
19
|
+
overflowX: 'auto',
|
|
20
|
+
overflowY: 'hidden',
|
|
21
|
+
padding: theme.spacing(0.5, 1.5, 1.5),
|
|
22
|
+
width: '100%',
|
|
23
|
+
scrollbarWidth: 'none',
|
|
24
|
+
'&::-webkit-scrollbar': {
|
|
25
|
+
display: 'none'
|
|
26
|
+
},
|
|
27
|
+
'& > *': {
|
|
28
|
+
flexShrink: 0
|
|
29
|
+
}
|
|
17
30
|
},
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
31
|
+
clearAll: {
|
|
32
|
+
...theme.typography.body2,
|
|
33
|
+
color: theme.palette.text.primary,
|
|
34
|
+
outline: 0,
|
|
35
|
+
padding: theme.spacing(0.5, 1, 0.5, 0),
|
|
36
|
+
whiteSpace: 'nowrap',
|
|
37
|
+
textDecoration: 'underline',
|
|
38
|
+
textUnderlineOffset: 3
|
|
22
39
|
}
|
|
23
40
|
}));
|
|
24
41
|
|
|
@@ -29,16 +46,15 @@ const useStyles = makeStyles()(theme => ({
|
|
|
29
46
|
const FilterChips = ({
|
|
30
47
|
filters,
|
|
31
48
|
routeId,
|
|
32
|
-
updateFilters,
|
|
33
49
|
scrollTop,
|
|
34
50
|
openFilters,
|
|
35
|
-
currentPathname,
|
|
36
51
|
onChipCountUpdate
|
|
37
52
|
}) => {
|
|
38
53
|
const {
|
|
39
54
|
classes,
|
|
40
55
|
cx
|
|
41
56
|
} = useStyles();
|
|
57
|
+
const dispatch = useDispatch();
|
|
42
58
|
const handleRemove = useCallback((id, value) => {
|
|
43
59
|
const {
|
|
44
60
|
[id]: selected,
|
|
@@ -62,7 +78,7 @@ const FilterChips = ({
|
|
|
62
78
|
router.update(routeId, {
|
|
63
79
|
filters: newFilters
|
|
64
80
|
});
|
|
65
|
-
updateFilters(newFilters);
|
|
81
|
+
dispatch(updateFilters(newFilters));
|
|
66
82
|
scrollTop();
|
|
67
83
|
}, 0);
|
|
68
84
|
return;
|
|
@@ -72,9 +88,16 @@ const FilterChips = ({
|
|
|
72
88
|
router.update(routeId, {
|
|
73
89
|
filters: newFilters
|
|
74
90
|
});
|
|
75
|
-
updateFilters(newFilters);
|
|
91
|
+
dispatch(updateFilters(newFilters));
|
|
92
|
+
scrollTop();
|
|
93
|
+
}, [dispatch, filters, routeId, scrollTop]);
|
|
94
|
+
const handleClearAll = useCallback(() => {
|
|
95
|
+
router.update(routeId, {
|
|
96
|
+
filters: null
|
|
97
|
+
});
|
|
98
|
+
dispatch(updateFilters(null));
|
|
76
99
|
scrollTop();
|
|
77
|
-
}, [
|
|
100
|
+
}, [dispatch, routeId, scrollTop]);
|
|
78
101
|
const chips = useMemo(() => {
|
|
79
102
|
if (filters === null || !Object.keys(filters).length) {
|
|
80
103
|
return [];
|
|
@@ -108,16 +131,13 @@ const FilterChips = ({
|
|
|
108
131
|
const editLabel = i18n.text('filter.edit', {
|
|
109
132
|
filter: labelValue
|
|
110
133
|
});
|
|
111
|
-
entries.push(/*#__PURE__*/_jsx(
|
|
134
|
+
entries.push(/*#__PURE__*/_jsx(FilterChip, {
|
|
112
135
|
id: key,
|
|
113
136
|
onRemove: handleRemove,
|
|
114
137
|
onClick: openFilters,
|
|
115
138
|
removeLabel: removeLabel,
|
|
116
139
|
editLabel: editLabel,
|
|
117
|
-
children:
|
|
118
|
-
className: classes.label,
|
|
119
|
-
children: pricesFormatted
|
|
120
|
-
})
|
|
140
|
+
children: pricesFormatted
|
|
121
141
|
}, `filter-${key}`));
|
|
122
142
|
break;
|
|
123
143
|
}
|
|
@@ -133,43 +153,42 @@ const FilterChips = ({
|
|
|
133
153
|
const editLabel = i18n.text('filter.edit', {
|
|
134
154
|
filter: filterFormatted
|
|
135
155
|
});
|
|
136
|
-
entries.push(/*#__PURE__*/_jsx(
|
|
156
|
+
entries.push(/*#__PURE__*/_jsx(FilterChip, {
|
|
137
157
|
id: value.id,
|
|
138
158
|
onRemove: () => handleRemove(filter.id, value.id),
|
|
139
159
|
onClick: openFilters,
|
|
140
160
|
removeLabel: removeLabel,
|
|
141
161
|
editLabel: editLabel,
|
|
142
|
-
children:
|
|
143
|
-
className: classes.label,
|
|
144
|
-
children: filterFormatted
|
|
145
|
-
})
|
|
162
|
+
children: filterFormatted
|
|
146
163
|
}, `filter-${value.id}`));
|
|
147
164
|
});
|
|
148
165
|
break;
|
|
149
166
|
}
|
|
150
167
|
});
|
|
151
168
|
return entries;
|
|
152
|
-
}, [
|
|
169
|
+
}, [filters, handleRemove, openFilters]);
|
|
153
170
|
useEffect(() => {
|
|
154
171
|
onChipCountUpdate(chips.length);
|
|
155
172
|
}, [chips.length, onChipCountUpdate]);
|
|
156
173
|
if (chips.length === 0) {
|
|
157
174
|
return null;
|
|
158
175
|
}
|
|
159
|
-
return /*#__PURE__*/
|
|
176
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
160
177
|
className: cx(classes.container, 'theme__filter-bar__filter-chips'),
|
|
161
|
-
children: /*#__PURE__*/_jsx(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
178
|
+
children: [chips.length > 3 && /*#__PURE__*/_jsx("button", {
|
|
179
|
+
className: classes.clearAll,
|
|
180
|
+
onClick: handleClearAll,
|
|
181
|
+
"data-test-id": "clearAllFilters",
|
|
182
|
+
type: "button",
|
|
183
|
+
children: /*#__PURE__*/_jsx(I18n.Text, {
|
|
184
|
+
string: "filter.clear_all"
|
|
185
|
+
})
|
|
186
|
+
}), chips]
|
|
167
187
|
});
|
|
168
188
|
};
|
|
169
189
|
FilterChips.defaultProps = {
|
|
170
|
-
currentPathname: '',
|
|
171
190
|
filters: null,
|
|
172
191
|
scrollTop: noop,
|
|
173
192
|
onChipCountUpdate: noop
|
|
174
193
|
};
|
|
175
|
-
export default
|
|
194
|
+
export default FilterChips;
|
|
@@ -34,7 +34,7 @@ const useStyles = makeStyles()(theme => ({
|
|
|
34
34
|
zIndex: 2,
|
|
35
35
|
top: '100%',
|
|
36
36
|
left: 0,
|
|
37
|
-
background: theme.palette.background.
|
|
37
|
+
background: theme.palette.background.surface,
|
|
38
38
|
boxShadow: 'rgba(0, 0, 0, 0.16) 0 2px 2px',
|
|
39
39
|
[responsiveMediaQuery('>xs', {
|
|
40
40
|
webOnly: true
|