@shopgate/engage 7.27.3-alpha.16 → 7.27.3-alpha.17
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/a11y/components/LiveMessage/index.js +1 -1
- package/a11y/components/LiveMessenger/helpers.js +1 -1
- package/a11y/components/LiveMessenger/index.js +2 -2
- package/a11y/components/Navigation/index.js +1 -1
- package/a11y/components/Section/index.js +3 -3
- package/a11y/components/VisuallyHidden/index.js +1 -1
- package/a11y/components/index.js +1 -1
- package/a11y/index.js +4 -1
- package/account/constants/index.js +1 -1
- package/account/index.js +1 -1
- package/app-rating/actions/showModal.js +3 -3
- package/app-rating/helpers/index.js +1 -1
- package/app-rating/subscriptions/index.js +6 -11
- package/back-in-stock/actions/index.js +1 -1
- package/back-in-stock/components/BackInStockButton/index.js +3 -3
- package/back-in-stock/components/CharacteristicsButton/index.js +1 -1
- package/back-in-stock/components/ProductInfoBackInStockButton/index.js +1 -1
- package/back-in-stock/components/Subscriptions/components/List/index.js +2 -2
- package/back-in-stock/components/Subscriptions/components/Subscription/index.js +2 -2
- package/back-in-stock/components/Subscriptions/index.js +1 -1
- package/back-in-stock/providers/BackInStockSubscriptionsProvider.context.js +1 -1
- package/back-in-stock/providers/BackInStockSubscriptionsProvider.js +1 -1
- package/back-in-stock/selectors/index.js +3 -5
- package/back-in-stock/streams/index.js +1 -1
- package/back-in-stock/subscriptions/index.js +2 -2
- package/cart/index.js +5 -10
- package/category/components/CategoryList/index.js +2 -2
- package/category/components/CategoryList/style.js +1 -1
- package/category/index.js +7 -1
- package/checkout/index.js +5 -6
- package/components/ChipLayout/index.js +7 -7
- package/components/ChipLayout/spec.js +1 -1
- package/components/ChipLayout/style.js +2 -2
- package/components/ConditionalWrapper/index.js +5 -1
- package/components/Footer/Footer.js +23 -4
- package/components/Footer/Footer.style.js +7 -1
- package/components/Form/Builder/Builder.constants.js +1 -1
- package/components/Form/Builder/Builder.js +37 -53
- package/components/Form/Builder/ElementCheckbox.js +2 -2
- package/components/Form/Builder/ElementRadio.js +2 -2
- package/components/Form/Builder/ElementSelect.js +3 -3
- package/components/Form/Builder/ElementText.js +4 -4
- package/components/Form/Builder/classes/ActionListener.constants.js +2 -2
- package/components/Form/Builder/classes/ActionListener.js +15 -72
- package/components/Form/Builder/helpers/buildCountryList.js +3 -3
- package/components/Form/Builder/helpers/buildFormDefaults.js +1 -1
- package/components/Form/Builder/helpers/buildProvinceList.js +1 -1
- package/components/Form/Form.js +8 -11
- package/components/Form/index.js +1 -1
- package/components/IntersectionVisibility/index.js +6 -13
- package/components/Logo/index.js +2 -2
- package/components/Logo/spec.js +1 -1
- package/components/Logo/style.js +1 -1
- package/components/MessageBar/index.js +7 -1
- package/components/MessageBar/spec.js +1 -0
- package/components/MessageBar/style.js +2 -0
- package/components/NavigationHandler/connector.js +1 -1
- package/components/NavigationHandler/index.js +6 -6
- package/components/NavigationHandler/spec.js +1 -1
- package/components/Picker/components/Button/index.js +1 -1
- package/components/Picker/components/List/index.js +2 -2
- package/components/Picker/components/Modal/index.js +7 -7
- package/components/Picker/index.js +10 -19
- package/components/Picker/spec.js +2 -2
- package/components/PickerUtilize/components/Button/index.js +1 -1
- package/components/PickerUtilize/index.js +6 -8
- package/components/PickerUtilize/spec.js +1 -2
- package/components/QuantityInput/QuantityInput.js +4 -5
- package/components/RangeSlider/components/Handle/index.js +2 -2
- package/components/RangeSlider/components/Handle/style.js +1 -1
- package/components/RangeSlider/helper.js +3 -3
- package/components/RangeSlider/index.js +23 -35
- package/components/RangeSlider/spec.js +4 -4
- package/components/ScrollHeader/index.js +5 -22
- package/components/ScrollHeader/style.js +1 -1
- package/components/SheetDrawer/index.js +3 -4
- package/components/SheetList/components/Item/index.js +5 -5
- package/components/SheetList/components/Item/spec.js +2 -2
- package/components/SheetList/components/Item/style.js +1 -1
- package/components/SheetList/index.js +4 -4
- package/components/SheetList/spec.js +1 -1
- package/components/SheetList/style.js +1 -1
- package/components/SnackBarContainer/index.js +1 -1
- package/components/Switch/index.js +1 -1
- package/components/TimeBoundary/index.js +8 -10
- package/components/TimeBoundary/spec.js +3 -3
- package/components/VideoPlayer/index.js +6 -9
- package/components/View/components/Above/index.js +1 -1
- package/components/View/components/Below/index.js +1 -1
- package/components/View/components/Content/index.js +13 -13
- package/components/View/components/Content/style.js +1 -1
- package/components/View/context.js +1 -1
- package/components/View/index.js +5 -5
- package/components/View/provider.js +7 -24
- package/components/View/style.js +6 -1
- package/components/index.js +4 -4
- package/core/action-creators/appPermissions.js +1 -1
- package/core/action-creators/index.js +1 -1
- package/core/actions/getGeolocation.js +2 -2
- package/core/actions/grantAppTrackingTransparencyPermission.js +1 -3
- package/core/actions/grantGeolocationPermissions.js +2 -6
- package/core/actions/grantPermissions.js +4 -16
- package/core/actions/grantPushPermissions.js +3 -4
- package/core/actions/index.js +2 -2
- package/core/actions/requestAppPermission.js +2 -7
- package/core/actions/requestAppPermissionStatus.js +2 -7
- package/core/actions/updateStatusBarBackground.js +3 -3
- package/core/classes/GeolocationRequest.js +4 -8
- package/core/collections/AppInitialization.js +6 -4
- package/core/config/ThemeConfigResolver.js +3 -3
- package/core/constants/appFeatures.js +1 -1
- package/core/constants/geolocationRequest.js +1 -1
- package/core/constants/index.js +3 -3
- package/core/contexts/AppContext.js +1 -1
- package/core/helpers/appFeatures.js +9 -21
- package/core/helpers/baseUrl.js +1 -1
- package/core/helpers/getFullImageSource.js +2 -21
- package/core/helpers/i18n.js +5 -10
- package/core/helpers/index.js +3 -3
- package/core/helpers/updateLegacyNavigationBar.js +2 -5
- package/core/hocs/withApp.js +1 -1
- package/core/hocs/withCurrentProduct.js +3 -3
- package/core/hocs/withForwardedRef.js +1 -1
- package/core/hocs/withNavigation.js +1 -1
- package/core/hocs/withRoute.js +1 -1
- package/core/hocs/withTheme.js +3 -42
- package/core/hocs/withWidgetSettings.js +1 -1
- package/core/hocs/withWidgetStyles.js +1 -1
- package/core/hooks/html/useLoadImage.js +1 -1
- package/core/hooks/useTheme.js +2 -38
- package/core/hooks/useWidgetStyles.js +1 -1
- package/core/index.js +11 -5
- package/core/initialization/index.js +4 -19
- package/core/providers/AppProvider.js +9 -9
- package/core/reducers/index.js +1 -1
- package/core/selectors/index.js +1 -1
- package/core/streams/app.js +1 -1
- package/core/streams/index.js +1 -1
- package/core/subscriptions/app.js +3 -4
- package/favorites/components/Item/Item.js +9 -13
- package/favorites/components/Item/ItemCharacteristics.js +2 -2
- package/favorites/components/List/List.js +15 -19
- package/favorites/components/ListChooser/ListChooser.js +2 -2
- package/favorites/components/ListChooser/ListChooserItem.js +5 -4
- package/favorites/components/Lists/Lists.js +13 -17
- package/favorites/components/Lists/ListsModal.js +4 -3
- package/favorites/components/RemoveButton/RemoveButton.js +2 -2
- package/favorites/constants/Portals.js +2 -1
- package/favorites/constants/constants.js +1 -0
- package/favorites/index.js +2 -2
- package/filter/components/FilterItem/index.js +2 -2
- package/filter/components/FilterItem/spec.js +1 -1
- package/filter/components/PriceSlider/components/Label/index.js +3 -3
- package/filter/components/PriceSlider/components/Label/spec.js +1 -1
- package/filter/components/PriceSlider/index.js +8 -8
- package/filter/components/PriceSlider/spec.js +1 -1
- package/filter/components/PriceSlider/style.js +1 -1
- package/filter/helpers/buildFilterParamsForFetchFiltersRequest.js +2 -2
- package/filter/helpers/buildInitialFilters.js +2 -2
- package/filter/helpers/buildUpdatedFilters.js +2 -2
- package/filter/helpers/translateFilterLabel.js +3 -3
- package/filter/index.js +7 -2
- package/orders/index.js +1 -1
- package/package.json +18 -26
- package/page/index.js +4 -2
- package/product/components/Characteristics/Characteristic/components/Sheet/index.js +4 -16
- package/product/components/Characteristics/Characteristic/components/SheetItem/index.js +3 -8
- package/product/components/Characteristics/Characteristic/components/SheetItem/style.js +1 -1
- package/product/components/Characteristics/Characteristic/components/VariantAvailability/connector.js +9 -0
- package/product/components/Characteristics/Characteristic/components/VariantAvailability/index.js +5 -0
- package/product/components/Characteristics/Characteristic/index.js +6 -15
- package/product/components/Characteristics/Characteristic/style.js +1 -1
- package/product/components/Characteristics/Swatch/index.js +6 -8
- package/product/components/Characteristics/index.js +3 -10
- package/product/components/Characteristics/transition.js +1 -1
- package/product/components/Description/index.js +6 -5
- package/product/components/Description/style.js +1 -1
- package/product/components/EffectivityDates/helpers.js +5 -5
- package/product/components/EffectivityDates/index.js +2 -2
- package/product/components/EffectivityDates/style.js +1 -1
- package/product/components/Header/PriceStriked/index.js +5 -2
- package/product/components/Header/PriceStriked/style.js +1 -1
- package/product/components/Header/Shipping/components/Label/index.js +3 -3
- package/product/components/Header/Shipping/components/Label/style.js +1 -1
- package/product/components/Header/Shipping/index.js +1 -1
- package/product/components/Header/Shipping/spec.js +1 -1
- package/product/components/Header/Tiers/components/Tier/index.js +2 -2
- package/product/components/Header/Tiers/components/Tier/spec.js +1 -1
- package/product/components/Header/Tiers/index.js +1 -1
- package/product/components/Header/Tiers/spec.js +1 -1
- package/product/components/MapPriceHint/index.js +1 -1
- package/product/components/Media/FeaturedMedia.js +2 -2
- package/product/components/Media/MediaImage.js +3 -3
- package/product/components/Media/MediaPlaceholder.js +1 -1
- package/product/components/MediaSlider/components/MediaImage/index.js +1 -1
- package/product/components/MediaSlider/components/MediaVideo/index.js +1 -1
- package/product/components/MediaSlider/index.js +4 -4
- package/product/components/Options/components/Content/index.js +8 -8
- package/product/components/Options/components/Content/spec.js +2 -2
- package/product/components/Options/components/Option/index.js +2 -2
- package/product/components/Options/components/TextOption/components/OptionInfo/index.js +3 -3
- package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +1 -1
- package/product/components/Options/components/TextOption/components/OptionInfo/style.js +1 -1
- package/product/components/Options/components/TextOption/index.js +7 -19
- package/product/components/Options/components/TextOption/style.js +1 -1
- package/product/components/Options/index.js +2 -2
- package/product/components/OrderQuantityHint/index.js +2 -3
- package/product/components/OrderQuantityHint/style.js +1 -1
- package/product/components/PriceDifference/index.js +1 -1
- package/product/components/PriceDifference/style.js +1 -1
- package/product/components/ProductBadges/index.js +2 -2
- package/product/components/ProductCard/index.js +3 -12
- package/product/components/ProductCard/style.js +1 -1
- package/product/components/ProductCharacteristics/context.js +1 -1
- package/product/components/ProductCharacteristics/helpers/index.js +1 -1
- package/product/components/ProductCharacteristics/index.js +16 -30
- package/product/components/ProductDiscountBadge/index.js +2 -2
- package/product/components/ProductDiscountBadge/spec.js +2 -2
- package/product/components/ProductDiscountBadge/style.js +1 -1
- package/product/components/ProductGridPrice/index.js +3 -3
- package/product/components/ProductGridPrice/style.js +1 -1
- package/product/components/ProductImage/index.js +13 -17
- package/product/components/ProductImage/spec.js +1 -1
- package/product/components/ProductList/components/Item/index.js +2 -2
- package/product/components/ProductList/components/Iterator/index.js +1 -1
- package/product/components/ProductList/components/Layout/index.js +1 -1
- package/product/components/ProductList/index.js +2 -2
- package/product/components/ProductProperties/Content.js +4 -4
- package/product/components/ProductProperties/Group.js +1 -1
- package/product/components/ProductProperties/GroupedProperties.js +2 -2
- package/product/components/ProductProperties/Lists.js +1 -1
- package/product/components/ProductProperties/ProductProperties.js +2 -2
- package/product/components/ProductProperties/Row.js +1 -1
- package/product/components/ProductProperties/Rows.js +2 -2
- package/product/components/ProductProperties/Wrapper.js +1 -1
- package/product/components/ProductProperties/helpers/getGroupsFromProperties.js +2 -7
- package/product/components/ProductProperties/style.js +1 -1
- package/product/{providers/Product → components/ProductProvider}/index.js +1 -1
- package/product/components/ProductSlider/index.js +2 -3
- package/product/components/ProductSlider/spec.js +1 -1
- package/product/components/QuantityPicker/helpers.js +5 -0
- package/product/components/QuantityPicker/index.js +3 -4
- package/product/components/Rating/index.js +3 -3
- package/product/components/Rating/spec.js +2 -2
- package/product/components/RelationsSlider/RelationsSheet.js +2 -2
- package/product/components/RelationsSlider/RelationsSlider.js +1 -1
- package/product/components/RelationsSlider/RelationsSliderContent.js +1 -1
- package/product/components/RelationsSlider/style.js +1 -1
- package/product/components/Swatch/Swatch.js +1 -1
- package/product/components/Swatch/SwatchContent.js +1 -1
- package/product/components/Swatch/VariantSwatch.js +1 -1
- package/product/components/Swatch/style.js +1 -1
- package/product/components/Swatches/Swatches.js +1 -1
- package/product/components/UnitQuantityPicker/ProductUnitQuantityPicker.js +6 -3
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +13 -11
- package/product/components/UnitQuantityPicker/UnitQuantityPickerWithSection.js +2 -5
- package/product/components/UnitQuantityPicker/index.js +1 -1
- package/product/components/context.js +1 -1
- package/product/constants/index.js +1 -2
- package/product/helpers/index.js +2 -2
- package/product/helpers/redirects.js +2 -2
- package/product/hocs/withMapPricing.js +4 -4
- package/product/hocs/withPriceCalculation.js +2 -2
- package/product/hocs/withProductListEntry.js +1 -1
- package/product/hocs/withProductListType.js +1 -1
- package/product/hooks/useLoadProductImage.js +1 -1
- package/product/index.js +11 -4
- package/product/providers/ProductListEntry/context.js +1 -1
- package/product/providers/ProductListEntry/index.js +1 -1
- package/product/providers/ProductListType/context.js +1 -2
- package/product/providers/ProductListType/index.js +1 -2
- package/product/selectors/product.js +6 -75
- package/product/selectors/variants.js +1 -4
- package/push-opt-in/action-creators/pushOptIn.js +1 -2
- package/push-opt-in/actions/pushOptInModal.js +3 -3
- package/push-opt-in/components/PushOptInModal/index.js +6 -3
- package/push-opt-in/components/PushOptInModal/push-opt-in.svg +58 -58
- package/push-opt-in/reducers/optInModal.js +2 -2
- package/push-opt-in/reducers/optInTrigger.js +2 -2
- package/push-opt-in/selectors/optInModal.js +2 -5
- package/push-opt-in/selectors/optInTrigger.js +2 -4
- package/push-opt-in/subscriptions/index.js +1 -1
- package/push-opt-in/subscriptions/optInTrigger.js +6 -6
- package/reviews/components/Reviews/components/AllReviewsLink/index.js +1 -1
- package/reviews/components/Reviews/components/Header/components/AverageRating/index.js +6 -8
- package/reviews/components/Reviews/components/Header/components/NoReviews/index.js +3 -3
- package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/index.js +3 -3
- package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/style.js +1 -1
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +3 -3
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +2 -2
- package/reviews/components/Reviews/components/Header/index.js +4 -6
- package/reviews/components/Reviews/components/Header/spec.js +2 -2
- package/reviews/components/Reviews/components/List/components/Info/components/Author/index.js +1 -1
- package/reviews/components/Reviews/components/List/components/Info/components/ReviewDate/index.js +1 -1
- package/reviews/components/Reviews/components/List/components/Info/index.js +2 -2
- package/reviews/components/Reviews/components/List/components/Info/style.js +1 -1
- package/reviews/components/Reviews/components/List/components/Rating/index.js +1 -1
- package/reviews/components/Reviews/components/List/components/Review/index.js +1 -1
- package/reviews/components/Reviews/components/List/components/Text/index.js +1 -1
- package/reviews/components/Reviews/components/List/components/Title/index.js +1 -1
- package/reviews/components/Reviews/components/List/index.js +3 -3
- package/reviews/components/Reviews/components/List/spec.js +1 -1
- package/reviews/components/Reviews/components/RatingCount/index.js +1 -1
- package/reviews/components/Reviews/components/RatingCount/spec.js +1 -1
- package/reviews/components/Reviews/components/RatingCount/style.js +1 -1
- package/reviews/components/Reviews/components/ReviewsInfo/index.js +4 -3
- package/reviews/components/Reviews/connector.js +6 -2
- package/reviews/components/Reviews/index.js +1 -1
- package/reviews/components/Reviews/mock.js +6 -2
- package/reviews/components/Reviews/spec.js +3 -4
- package/reviews/index.js +6 -3
- package/scanner/index.js +6 -1
- package/search/index.js +6 -1
- package/tracking/action-creators/cookieConsent.js +2 -2
- package/tracking/actions/cookieConsent.js +5 -17
- package/tracking/components/CookieConsentModal/connector.js +5 -3
- package/tracking/components/CookieConsentModal/index.js +6 -3
- package/tracking/components/CookieConsentModal/tracking-opt-in.svg +14 -14
- package/tracking/components/PrivacySettings/connector.js +5 -3
- package/tracking/components/PrivacySettings/index.js +2 -2
- package/tracking/selectors/cookieConsent.js +5 -10
- package/tracking/streams/cookieConsent.js +3 -10
- package/tracking/subscriptions/analytics.js +4 -5
- package/tracking/subscriptions/cookieConsent.js +10 -6
- package/user/index.js +2 -2
- package/a11y/action-creators/index.js +0 -9
- package/a11y/components/FocusTrap/index.js +0 -1
- package/a11y/components/ModalStateTracker/index.js +0 -14
- package/a11y/constants/index.js +0 -1
- package/a11y/helpers/index.js +0 -1
- package/a11y/hooks/index.js +0 -37
- package/a11y/reducers/index.js +0 -6
- package/a11y/selectors/index.js +0 -8
- package/a11y/styles.js +0 -2
- package/account/actions/addContacts.js +0 -4
- package/account/actions/deleteContact.js +0 -5
- package/account/actions/deleteCustomer.js +0 -4
- package/account/actions/fetchContacts.js +0 -4
- package/account/actions/fetchCustomer.js +0 -4
- package/account/actions/updateContact.js +0 -4
- package/account/actions/updateCustomer.js +0 -4
- package/account/components/Account/Account.connector.js +0 -5
- package/account/components/Account/Account.js +0 -4
- package/account/components/Account/Account.style.js +0 -1
- package/account/components/Account/index.js +0 -1
- package/account/components/Profile/Profile.config.js +0 -11
- package/account/components/Profile/Profile.constraints.js +0 -1
- package/account/components/Profile/Profile.js +0 -1
- package/account/components/Profile/Profile.provider.js +0 -22
- package/account/components/Profile/ProfileAddressBook.js +0 -6
- package/account/components/Profile/ProfileAddressCard.js +0 -3
- package/account/components/Profile/ProfileForm.js +0 -3
- package/account/components/Profile/ProfileHeader.js +0 -3
- package/account/components/Profile/index.js +0 -1
- package/account/components/ProfileContact/ProfileContact.config.js +0 -11
- package/account/components/ProfileContact/ProfileContact.constraints.js +0 -5
- package/account/components/ProfileContact/ProfileContact.js +0 -13
- package/account/components/ProfileContact/index.js +0 -1
- package/account/components/index.js +0 -1
- package/account/constants/actions.js +0 -1
- package/account/constants/pipelines.js +0 -1
- package/account/helper/form.js +0 -61
- package/account/reducers/index.js +0 -6
- package/account/selectors/contacts.js +0 -7
- package/account/selectors/customer.js +0 -7
- package/cart/cart.constants.js +0 -1
- package/cart/cart.context.js +0 -1
- package/cart/cart.helpers.js +0 -15
- package/cart/cart.hooks.js +0 -4
- package/cart/cart.selectors.js +0 -34
- package/cart/cart.types.js +0 -1
- package/cart/components/CartHeaderWide/CartHeaderWide.js +0 -3
- package/cart/components/CartHeaderWide/CartHeaderWide.style.js +0 -1
- package/cart/components/CartHeaderWide/index.js +0 -1
- package/cart/components/CartItem/CartItem.hooks.js +0 -7
- package/cart/components/CartItem/CartItem.js +0 -7
- package/cart/components/CartItem/CartItem.style.js +0 -1
- package/cart/components/CartItem/CartItemCoupon.connector.js +0 -7
- package/cart/components/CartItem/CartItemCoupon.js +0 -20
- package/cart/components/CartItem/CartItemCoupon.style.js +0 -5
- package/cart/components/CartItem/CartItemCoupon.types.js +0 -0
- package/cart/components/CartItem/CartItemCouponCode.js +0 -5
- package/cart/components/CartItem/CartItemCouponDelete.js +0 -5
- package/cart/components/CartItem/CartItemCouponDelete.style.js +0 -1
- package/cart/components/CartItem/CartItemCouponFreeShipping.js +0 -5
- package/cart/components/CartItem/CartItemCouponIcon.js +0 -4
- package/cart/components/CartItem/CartItemCouponLayout.js +0 -6
- package/cart/components/CartItem/CartItemCouponLayout.style.js +0 -5
- package/cart/components/CartItem/CartItemCouponPrice.js +0 -5
- package/cart/components/CartItem/CartItemCouponPrice.style.js +0 -1
- package/cart/components/CartItem/CartItemCouponTitle.js +0 -5
- package/cart/components/CartItem/CartItemCouponTitle.style.js +0 -1
- package/cart/components/CartItem/CartItemProduct.js +0 -5
- package/cart/components/CartItem/CartItemProduct.style.js +0 -1
- package/cart/components/CartItem/CartItemProductLayout.js +0 -6
- package/cart/components/CartItem/CartItemProductLayout.style.js +0 -1
- package/cart/components/CartItem/CartItemProductLayoutWide.js +0 -4
- package/cart/components/CartItem/CartItemProductLayoutWide.style.js +0 -1
- package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.js +0 -4
- package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.style.js +0 -1
- package/cart/components/CartItem/CartItemProductLayoutWideOrderDetails.js +0 -3
- package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +0 -4
- package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.style.js +0 -1
- package/cart/components/CartItem/CartItemProductOrderDetails.js +0 -3
- package/cart/components/CartItem/CartItemProductOrderDetails.style.js +0 -1
- package/cart/components/CartItem/CartItemProductPriceCaption.js +0 -4
- package/cart/components/CartItem/CartItemProductPriceCaption.style.js +0 -1
- package/cart/components/CartItem/CartItemProductPriceList.js +0 -5
- package/cart/components/CartItem/CartItemProductPriceListPromotion.js +0 -10
- package/cart/components/CartItem/CartItemProductProvider.connector.js +0 -9
- package/cart/components/CartItem/CartItemProductProvider.context.js +0 -1
- package/cart/components/CartItem/CartItemProductProvider.js +0 -12
- package/cart/components/CartItem/CartItemProductProvider.types.js +0 -1
- package/cart/components/CartItem/CartItemProductProviderLegacy.js +0 -22
- package/cart/components/CartItem/CartItemProductTitle.js +0 -7
- package/cart/components/CartItem/CartItemProductTitle.style.js +0 -1
- package/cart/components/CartItem/CartItemProvider.connector.js +0 -3
- package/cart/components/CartItem/CartItemProvider.context.js +0 -1
- package/cart/components/CartItem/CartItemProvider.js +0 -5
- package/cart/components/CartItem/CartItemQuantityPicker.js +0 -38
- package/cart/components/CartItem/CartItemQuantityPicker.style.js +0 -1
- package/cart/components/CartItem/CartItemSubstitution.connector.js +0 -5
- package/cart/components/CartItem/CartItemSubstitution.js +0 -5
- package/cart/components/CartItem/CartItemSubstitution.style.js +0 -1
- package/cart/components/CartItem/index.js +0 -1
- package/cart/components/CartItems/CartItem.connector.js +0 -4
- package/cart/components/CartItems/CartItemCard.js +0 -5
- package/cart/components/CartItems/CartItemCard.style.js +0 -1
- package/cart/components/CartItems/CartItemCardReservation.js +0 -5
- package/cart/components/CartItems/CartItemCardReservationAccordion.js +0 -4
- package/cart/components/CartItems/CartItemCardReservationLabel.js +0 -5
- package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +0 -3
- package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.style.js +0 -1
- package/cart/components/CartItems/CartItemGroup.js +0 -5
- package/cart/components/CartItems/CartItemGroup.style.js +0 -1
- package/cart/components/CartItems/CartItemGroupReservation.js +0 -5
- package/cart/components/CartItems/CartItemGroupReservationLabel.js +0 -5
- package/cart/components/CartItems/CartItemGroupShipping.js +0 -4
- package/cart/components/CartItems/CartItems.js +0 -5
- package/cart/components/CartItems/CartItems.style.js +0 -1
- package/cart/components/CartItems/CartItemsHeaderWide.connector.js +0 -3
- package/cart/components/CartItems/CartItemsHeaderWide.js +0 -3
- package/cart/components/CartItems/CartItemsHeaderWide.style.js +0 -1
- package/cart/components/CartItems/CartItemsSubscription.connector.js +0 -5
- package/cart/components/CartItems/CartItemsSubstitution.js +0 -5
- package/cart/components/CartItems/index.js +0 -1
- package/cart/components/CartSummaryWide/CartSummaryWide.connector.js +0 -4
- package/cart/components/CartSummaryWide/CartSummaryWide.js +0 -4
- package/cart/components/CartSummaryWide/CartSummaryWide.style.js +0 -1
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.connector.js +0 -5
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +0 -4
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.style.js +0 -1
- package/cart/components/CartSummaryWide/CartSummaryWideFooter.js +0 -3
- package/cart/components/CartSummaryWide/index.js +0 -1
- package/cart/components/PaymentBar/PaymentBar.js +0 -5
- package/cart/components/PaymentBar/PaymentBarAppliedPromotions.connector.js +0 -5
- package/cart/components/PaymentBar/PaymentBarAppliedPromotions.js +0 -3
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.connector.js +0 -5
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +0 -5
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.style.js +0 -1
- package/cart/components/PaymentBar/PaymentBarContent.js +0 -4
- package/cart/components/PaymentBar/PaymentBarContent.style.js +0 -1
- package/cart/components/PaymentBar/PaymentBarDiscounts.connector.js +0 -5
- package/cart/components/PaymentBar/PaymentBarDiscounts.js +0 -4
- package/cart/components/PaymentBar/PaymentBarGrandTotal.connector.js +0 -5
- package/cart/components/PaymentBar/PaymentBarGrandTotal.js +0 -4
- package/cart/components/PaymentBar/PaymentBarPromotionCouponMessages.js +0 -4
- package/cart/components/PaymentBar/PaymentBarPromotionCoupons.connector.js +0 -8
- package/cart/components/PaymentBar/PaymentBarPromotionCoupons.js +0 -3
- package/cart/components/PaymentBar/PaymentBarPromotionalText.js +0 -4
- package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +0 -1
- package/cart/components/PaymentBar/PaymentBarReserveButton.js +0 -7
- package/cart/components/PaymentBar/PaymentBarShippingCost.connector.js +0 -5
- package/cart/components/PaymentBar/PaymentBarShippingCost.js +0 -3
- package/cart/components/PaymentBar/PaymentBarSubTotal.connector.js +0 -5
- package/cart/components/PaymentBar/PaymentBarSubTotal.js +0 -3
- package/cart/components/PaymentBar/PaymentBarTax.connector.js +0 -5
- package/cart/components/PaymentBar/PaymentBarTax.js +0 -4
- package/cart/components/PaymentBar/index.js +0 -1
- package/cart/components/Substitution/connector.js +0 -5
- package/cart/components/Substitution/index.js +0 -9
- package/cart/components/Substitution/style.js +0 -1
- package/cart/components/SupplementalContent/SupplementalContent.connector.js +0 -4
- package/cart/components/SupplementalContent/SupplementalContent.js +0 -5
- package/cart/components/SupplementalContent/SupplementalContent.styles.js +0 -1
- package/cart/components/SupplementalContent/index.js +0 -1
- package/cart/streams/index.js +0 -1
- package/category/actions/index.js +0 -1
- package/category/components/CategoryImage/connector.js +0 -5
- package/category/components/CategoryImage/index.js +0 -5
- package/category/components/index.js +0 -1
- package/category/constants/index.js +0 -1
- package/category/helpers/index.js +0 -1
- package/category/selectors/index.js +0 -2
- package/category/streams/index.js +0 -1
- package/checkout/action-creators/addCheckoutCampaign.js +0 -5
- package/checkout/action-creators/clearCheckoutCampaign.js +0 -5
- package/checkout/action-creators/clearCheckoutOrder.js +0 -4
- package/checkout/action-creators/index.js +0 -1
- package/checkout/action-creators/validationErrorsCheckout.js +0 -5
- package/checkout/actions/errorCheckout.js +0 -17
- package/checkout/actions/fetchCheckoutOrder.js +0 -4
- package/checkout/actions/fetchPaymentMethods.js +0 -4
- package/checkout/actions/index.js +0 -1
- package/checkout/actions/initializeCheckout.js +0 -4
- package/checkout/actions/prepareCheckout.js +0 -8
- package/checkout/actions/submitCheckoutOrder.js +0 -5
- package/checkout/actions/updateCheckoutOrder.js +0 -5
- package/checkout/components/AddressBook/AddressBook.js +0 -5
- package/checkout/components/AddressBook/AddressList.js +0 -9
- package/checkout/components/AddressBook/index.js +0 -1
- package/checkout/components/AddressBookContact/AddressBookContact.js +0 -5
- package/checkout/components/AddressBookContact/index.js +0 -1
- package/checkout/components/Checkout/Checkout.js +0 -4
- package/checkout/components/Checkout/CheckoutActions.js +0 -4
- package/checkout/components/Checkout/CheckoutAddress.js +0 -6
- package/checkout/components/Checkout/CheckoutHeader.js +0 -4
- package/checkout/components/Checkout/CheckoutPickupContactForm.config.js +0 -8
- package/checkout/components/Checkout/CheckoutPickupContactForm.js +0 -4
- package/checkout/components/Checkout/CheckoutSection.js +0 -4
- package/checkout/components/Checkout/CheckoutSectionInfo.js +0 -4
- package/checkout/components/Checkout/CheckoutSectionMessages.js +0 -4
- package/checkout/components/Checkout/CheckoutSummary.js +0 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.connector.js +0 -3
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +0 -7
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationBilledTo.js +0 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderContact.js +0 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderSummary.js +0 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickUpContact.js +0 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickupNotes.js +0 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationSection.js +0 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationShippedTo.js +0 -4
- package/checkout/components/CheckoutConfirmation/index.js +0 -1
- package/checkout/components/GuestCheckout/GuestCheckout.js +0 -4
- package/checkout/components/GuestCheckout/GuestCheckoutOptIn.config.js +0 -4
- package/checkout/components/GuestCheckout/GuestCheckoutOptIn.js +0 -3
- package/checkout/components/GuestCheckout/GuestCheckoutPickup.js +0 -4
- package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.config.js +0 -4
- package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.js +0 -4
- package/checkout/components/PaymentMethodButton/PaymentMethodButton.js +0 -5
- package/checkout/components/PaymentMethodButton/index.js +0 -1
- package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +0 -4
- package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.style.js +0 -1
- package/checkout/components/ResponsiveBackButton/index.js +0 -1
- package/checkout/components/ShippingMethods/ShippingMethod.js +0 -5
- package/checkout/components/ShippingMethods/ShippingMethods.js +0 -23
- package/checkout/components/ShippingMethods/connector.js +0 -7
- package/checkout/components/ShippingMethods/index.js +0 -1
- package/checkout/components/SupplementalContent/SupplementalContent.connector.js +0 -4
- package/checkout/components/SupplementalContent/SupplementalContent.js +0 -5
- package/checkout/components/SupplementalContent/SupplementalContent.styles.js +0 -1
- package/checkout/components/SupplementalContent/index.js +0 -1
- package/checkout/components/index.js +0 -1
- package/checkout/constants/actionTypes.js +0 -1
- package/checkout/constants/errorCodes.js +0 -1
- package/checkout/constants/index.js +0 -1
- package/checkout/constants/routes.js +0 -1
- package/checkout/helpers/index.js +0 -34
- package/checkout/hooks/common.js +0 -7
- package/checkout/paymentMethods/context.js +0 -1
- package/checkout/paymentMethods/index.js +0 -28
- package/checkout/paymentMethods/paypal/PaypalButton.js +0 -5
- package/checkout/paymentMethods/paypal/PaypalButtonApp.js +0 -4
- package/checkout/paymentMethods/paypal/PaypalButtonWeb.js +0 -8
- package/checkout/paymentMethods/paypal/PaypalPayButton.js +0 -12
- package/checkout/paymentMethods/paypal/PaypalProvider.js +0 -6
- package/checkout/paymentMethods/paypal/index.js +0 -1
- package/checkout/paymentMethods/paypal/paypal_logo.png +0 -0
- package/checkout/paymentMethods/paypal/sdk.js +0 -9
- package/checkout/paymentMethods/stripe/StripeButton.connector.js +0 -6
- package/checkout/paymentMethods/stripe/StripeButton.js +0 -5
- package/checkout/paymentMethods/stripe/StripeCreditCard.js +0 -10
- package/checkout/paymentMethods/stripe/StripePayButton.js +0 -6
- package/checkout/paymentMethods/stripe/StripeProvider.connector.js +0 -6
- package/checkout/paymentMethods/stripe/StripeProvider.context.js +0 -1
- package/checkout/paymentMethods/stripe/StripeProvider.js +0 -33
- package/checkout/paymentMethods/stripe/applepay.svg +0 -84
- package/checkout/paymentMethods/stripe/googlepay.png +0 -0
- package/checkout/paymentMethods/stripe/index.js +0 -1
- package/checkout/paymentMethods/stripe/sdk.js +0 -9
- package/checkout/providers/AddressBookProvider.context.js +0 -1
- package/checkout/providers/AddressBookProvider.js +0 -11
- package/checkout/providers/CheckoutProvider.connector.js +0 -7
- package/checkout/providers/CheckoutProvider.constraints.js +0 -1
- package/checkout/providers/CheckoutProvider.context.js +0 -1
- package/checkout/providers/CheckoutProvider.js +0 -28
- package/checkout/reducers/index.js +0 -6
- package/checkout/selectors/campaign.js +0 -5
- package/checkout/selectors/guestCheckout.js +0 -5
- package/checkout/selectors/order.js +0 -59
- package/checkout/selectors/payment.js +0 -17
- package/checkout/selectors/route.js +0 -4
- package/checkout/streams/index.js +0 -1
- package/checkout/subscriptions/index.js +0 -3
- package/components/BrandingColorBanner/BrandingColorBanner.js +0 -5
- package/components/BrandingColorBanner/index.js +0 -1
- package/components/ConditionalWrapper/ConditionalWrapper.js +0 -10
- package/components/ConnectedReactPortal/index.js +0 -13
- package/components/Footer/constants.js +0 -1
- package/components/Footer/helpers.js +0 -75
- package/components/Form/Builder/ElementMultiSelect.js +0 -6
- package/components/Form/Builder/ElementPhoneNumber.js +0 -20
- package/components/Form/Builder/FormHelper.js +0 -5
- package/components/Form/Builder/helpers/common.js +0 -6
- package/components/Form/Builder/stylePresets.js +0 -1
- package/components/Logo/connector.js +0 -4
- package/components/Menu/components/Item/index.js +0 -8
- package/components/Menu/components/Item/style.js +0 -4
- package/components/Menu/components/Position/index.js +0 -16
- package/components/Menu/components/Position/style.js +0 -1
- package/components/Menu/index.js +0 -12
- package/components/Menu/style.js +0 -1
- package/components/MessageBar/MessageBar.js +0 -9
- package/components/MessageBar/MessageBar.style.js +0 -11
- package/components/QuantityLabel/QuantityLabel.js +0 -4
- package/components/QuantityLabel/index.js +0 -1
- package/components/Radio/Radio.js +0 -5
- package/components/Radio/index.js +0 -1
- package/components/RadioCard/RadioCard.js +0 -9
- package/components/RadioCard/index.js +0 -1
- package/components/RadioGroup/RadioGroup.context.js +0 -1
- package/components/RadioGroup/RadioGroup.js +0 -4
- package/components/RadioGroup/index.js +0 -1
- package/components/RadioGroup/useRadioGroup.js +0 -4
- package/components/ResponsiveContainer/ResponsiveContainer.js +0 -6
- package/components/ResponsiveContainer/breakpoints.js +0 -14
- package/components/ResponsiveContainer/condition.js +0 -6
- package/components/ResponsiveContainer/hooks.js +0 -20
- package/components/ResponsiveContainer/index.js +0 -1
- package/components/ResponsiveContainer/listener.js +0 -10
- package/components/ResponsiveContainer/mediaQuery.js +0 -8
- package/components/SideNavigation/SideNavigation.hooks.js +0 -4
- package/components/SideNavigation/SideNavigation.js +0 -4
- package/components/SideNavigation/SideNavigationCategories.connector.js +0 -8
- package/components/SideNavigation/SideNavigationCategories.js +0 -4
- package/components/SideNavigation/SideNavigationCategories.style.js +0 -1
- package/components/SideNavigation/SideNavigationCategoriesItem.connector.js +0 -8
- package/components/SideNavigation/SideNavigationCategoriesItem.js +0 -5
- package/components/SideNavigation/SideNavigationCategoriesItem.style.js +0 -2
- package/components/SideNavigation/SideNavigationCategoriesItemChildren.js +0 -5
- package/components/SideNavigation/SideNavigationContent.js +0 -3
- package/components/SideNavigation/SideNavigationContent.style.js +0 -4
- package/components/SideNavigation/SideNavigationItem.js +0 -4
- package/components/SideNavigation/SideNavigationItem.style.js +0 -4
- package/components/SideNavigation/SideNavigationLinks.js +0 -4
- package/components/SideNavigation/SideNavigationLinksLegal.connector.js +0 -4
- package/components/SideNavigation/SideNavigationLinksLegal.js +0 -5
- package/components/SideNavigation/SideNavigationLinksQuicklinks.connector.js +0 -4
- package/components/SideNavigation/SideNavigationLinksQuicklinks.js +0 -5
- package/components/SideNavigation/SideNavigationNestedItem.js +0 -4
- package/components/SideNavigation/SideNavigationProvider.connector.js +0 -8
- package/components/SideNavigation/SideNavigationProvider.context.js +0 -1
- package/components/SideNavigation/SideNavigationProvider.js +0 -4
- package/components/SideNavigation/index.js +0 -1
- package/components/SideNavigation/selectors.js +0 -17
- package/components/Tabs/TabContext.js +0 -7
- package/components/Tabs/components/Tab.js +0 -11
- package/components/Tabs/components/Tab.style.js +0 -1
- package/components/Tabs/components/TabIndicator.js +0 -5
- package/components/Tabs/components/TabIndicator.style.js +0 -1
- package/components/Tabs/components/TabPanel.js +0 -5
- package/components/Tabs/components/Tabs.js +0 -11
- package/components/Tabs/components/Tabs.style.js +0 -2
- package/components/Tabs/debounce.js +0 -11
- package/components/Tabs/index.js +0 -1
- package/components/Tabs/ownerDocument.js +0 -4
- package/components/Tabs/ownerWindow.js +0 -4
- package/components/Tabs/useEventCallback.js +0 -6
- package/components/TextLink/TextLink.js +0 -5
- package/components/TextLink/TextLink.style.js +0 -1
- package/components/Toggle/index.js +0 -5
- package/components/Toggle/style.js +0 -1
- package/core/action-creators/merchantSettings.js +0 -5
- package/core/action-creators/optIns.js +0 -37
- package/core/action-creators/shopSettings.js +0 -9
- package/core/classes/GeolocationRequestApp.js +0 -16
- package/core/classes/GeolocationRequestBrowser.js +0 -8
- package/core/config/config.action-creators.js +0 -12
- package/core/config/config.actions.js +0 -3
- package/core/config/config.constants.js +0 -1
- package/core/config/config.reducers.js +0 -6
- package/core/config/config.selectors.js +0 -39
- package/core/config/config.streams.js +0 -1
- package/core/config/config.subscriptions.js +0 -4
- package/core/config/config.types.js +0 -0
- package/core/config/index.js +0 -1
- package/core/constants/deviceTypes.js +0 -1
- package/core/constants/merchantSettings.js +0 -1
- package/core/constants/optIns.js +0 -1
- package/core/constants/pipelines.js +0 -1
- package/core/constants/shopSettings.js +0 -2
- package/core/contexts/ThemeResourcesContext.d.ts +0 -60
- package/core/contexts/ThemeResourcesContext.js +0 -3
- package/core/contexts/index.js +0 -1
- package/core/events/index.js +0 -1
- package/core/helpers/androidNavigationBar.js +0 -12
- package/core/helpers/appPermissions.js +0 -58
- package/core/helpers/bridge.js +0 -4
- package/core/helpers/deviceType.js +0 -5
- package/core/helpers/environment.js +0 -4
- package/core/helpers/errorBehavior.js +0 -32
- package/core/helpers/featureFlag.js +0 -11
- package/core/helpers/googleMaps.js +0 -8
- package/core/helpers/isIOSTheme.js +0 -4
- package/core/helpers/isTouchDevice.js +0 -4
- package/core/helpers/nl2br.js +0 -1
- package/core/helpers/scrollContainer.js +0 -4
- package/core/helpers/string.js +0 -9
- package/core/helpers/svgToDataUrl.js +0 -9
- package/core/hocs/index.js +0 -1
- package/core/hocs/withThemeResources.js +0 -16
- package/core/hooks/events/index.js +0 -1
- package/core/hooks/events/useLongPress.d.ts +0 -68
- package/core/hooks/events/useLongPress.js +0 -13
- package/core/hooks/events/useScrollDirectionChange.d.ts +0 -74
- package/core/hooks/events/useScrollDirectionChange.js +0 -18
- package/core/hooks/index.js +0 -1
- package/core/hooks/layout/index.js +0 -1
- package/core/hooks/layout/useElementSize.d.ts +0 -46
- package/core/hooks/layout/useElementSize.js +0 -18
- package/core/hooks/useAsyncMemo.js +0 -12
- package/core/hooks/useFormState.js +0 -27
- package/core/hooks/usePrevious.js +0 -2
- package/core/hooks/useScrollTo.js +0 -5
- package/core/hooks/useThemeResources.js +0 -21
- package/core/providers/ThemeResourcesProvider.js +0 -15
- package/core/providers/index.js +0 -1
- package/core/reducers/merchantSettings.js +0 -6
- package/core/reducers/shopSettings.js +0 -6
- package/core/selectors/merchantSettings.js +0 -10
- package/core/selectors/shopSettings.js +0 -25
- package/core/streams/optIns.js +0 -13
- package/core/validation/index.js +0 -1
- package/core/validation/validation.hooks.js +0 -4
- package/core/validation/validation.js +0 -12
- package/development/action-creators/index.js +0 -1
- package/development/action-creators/settings.js +0 -9
- package/development/action-creators/storage.js +0 -6
- package/development/components/DevelopmentTools/DevelopmentTools.js +0 -6
- package/development/components/DevelopmentTools/Shortcuts.js +0 -4
- package/development/components/DevelopmentTools/hooks.js +0 -8
- package/development/components/DevelopmentTools/index.js +0 -1
- package/development/components/SimulatedInsets/SimulatedInsetBottom.js +0 -7
- package/development/components/SimulatedInsets/SimulatedInsetTop.js +0 -12
- package/development/components/SimulatedInsets/SimulatedInsets.js +0 -6
- package/development/components/SimulatedInsets/index.js +0 -1
- package/development/components/index.js +0 -1
- package/development/constants/actionTypes.js +0 -1
- package/development/constants/index.js +0 -1
- package/development/reducers/index.js +0 -1
- package/development/reducers/settings.js +0 -10
- package/development/reducers/storage.js +0 -9
- package/development/selectors/index.js +0 -1
- package/development/selectors/settings.js +0 -21
- package/development/selectors/storage.js +0 -16
- package/development/streams/index.js +0 -1
- package/development/streams/insets.js +0 -4
- package/development/subscriptions/index.js +0 -6
- package/favorites/components/CommentDialog/CommentDialog.js +0 -12
- package/favorites/components/CommentDialog/index.js +0 -1
- package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +0 -8
- package/favorites/components/FavoriteButtonWide/index.js +0 -1
- package/favorites/components/Item/ItemNotes.js +0 -7
- package/favorites/components/Item/ItemQuantity.js +0 -7
- package/favorites/components/ItemFulfillmentMethod/ItemFulfillmentMethod.js +0 -4
- package/favorites/components/ItemFulfillmentMethod/index.js +0 -1
- package/favorites/components/List/ListAccordionHeader.js +0 -8
- package/favorites/components/List/ListAccordionLabel.js +0 -5
- package/favorites/components/List/ListContent.js +0 -8
- package/favorites/components/List/ListItemWrapper.js +0 -6
- package/favorites/components/List/styles.js +0 -1
- package/favorites/constants/index.js +0 -1
- package/filter/actions/index.js +0 -1
- package/filter/components/FilterPageContent/components/ApplyButton/index.js +0 -7
- package/filter/components/FilterPageContent/components/ApplyButton/spec.js +0 -1
- package/filter/components/FilterPageContent/components/ApplyButton/style.js +0 -1
- package/filter/components/FilterPageContent/components/ResetButton/index.js +0 -7
- package/filter/components/FilterPageContent/components/ResetButton/spec.js +0 -1
- package/filter/components/FilterPageContent/components/ResetButton/style.js +0 -1
- package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +0 -7
- package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +0 -1
- package/filter/components/FilterPageContent/components/Selector/components/Selected/style.js +0 -1
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +0 -7
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +0 -1
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/style.js +0 -1
- package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +0 -7
- package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +0 -1
- package/filter/components/FilterPageContent/components/Selector/components/ValueButton/style.js +0 -1
- package/filter/components/FilterPageContent/components/Selector/index.js +0 -19
- package/filter/components/FilterPageContent/components/Selector/spec.js +0 -1
- package/filter/components/FilterPageContent/components/Selector/style.js +0 -1
- package/filter/components/FilterPageContent/index.js +0 -6
- package/filter/components/FilterPageContentWithProvider/index.js +0 -16
- package/filter/components/index.js +0 -1
- package/filter/constants/index.js +0 -1
- package/filter/constants/sort.js +0 -11
- package/filter/helpers/index.js +0 -1
- package/filter/hocs/index.js +0 -1
- package/filter/hocs/withSort.js +0 -16
- package/filter/hooks/filterPage.js +0 -5
- package/filter/hooks/index.js +0 -4
- package/filter/providers/FilterPageProvider.context.js +0 -54
- package/filter/providers/FilterPageProvider.js +0 -98
- package/filter/providers/SortProvider.connector.js +0 -3
- package/filter/providers/SortProvider.context.js +0 -1
- package/filter/providers/SortProvider.helpers.js +0 -8
- package/filter/providers/SortProvider.js +0 -6
- package/filter/providers/index.js +0 -1
- package/filter/selectors/index.js +0 -17
- package/filter/streams/index.js +0 -1
- package/i18n/countries.helpers.js +0 -6
- package/i18n/countries.hooks.js +0 -6
- package/i18n/index.js +0 -1
- package/i18n/locale/cs-cz/countries.json +0 -255
- package/i18n/locale/de-de/countries.json +0 -255
- package/i18n/locale/el-gr/countries.json +0 -255
- package/i18n/locale/en-us/countries.json +0 -255
- package/i18n/locale/es-es/countries.json +0 -255
- package/i18n/locale/fi-fi/countries.json +0 -255
- package/i18n/locale/fr-fr/countries.json +0 -255
- package/i18n/locale/hu-hu/countries.json +0 -255
- package/i18n/locale/it-it/countries.json +0 -255
- package/i18n/locale/nl-nl/countries.json +0 -255
- package/i18n/locale/pl-pl/countries.json +0 -255
- package/i18n/locale/pt-pt/countries.json +0 -255
- package/i18n/locale/ro-ro/countries.json +0 -255
- package/i18n/locale/sv-se/countries.json +0 -255
- package/locations/action-creators/errorInventories.js +0 -7
- package/locations/action-creators/errorLocations.js +0 -6
- package/locations/action-creators/errorProductInventories.js +0 -7
- package/locations/action-creators/errorProductLocations.js +0 -6
- package/locations/action-creators/index.js +0 -1
- package/locations/action-creators/provideProductAlternativeLocation.js +0 -5
- package/locations/action-creators/receiveInventories.js +0 -5
- package/locations/action-creators/receiveLocations.js +0 -6
- package/locations/action-creators/receiveProductInventories.js +0 -7
- package/locations/action-creators/receiveProductLocations.js +0 -7
- package/locations/action-creators/requestInventories.js +0 -6
- package/locations/action-creators/requestLocations.js +0 -5
- package/locations/action-creators/requestProductInventories.js +0 -6
- package/locations/action-creators/requestProductLocations.js +0 -5
- package/locations/action-creators/selectGlobalLocation.js +0 -5
- package/locations/action-creators/selectLocation.js +0 -6
- package/locations/action-creators/setStoreFinderSearchRadius.js +0 -5
- package/locations/action-creators/setUserGeolocation.js +0 -5
- package/locations/action-creators/setUserSearchCountryCode.js +0 -7
- package/locations/action-creators/setUserSearchGeolocation.js +0 -8
- package/locations/action-creators/setUserSearchPostalCode.js +0 -7
- package/locations/action-creators/storeFormInput.js +0 -5
- package/locations/action-creators/storeFulfillmentMethod.js +0 -5
- package/locations/action-creators/submitReservationError.js +0 -5
- package/locations/action-creators/submitReservationRequest.js +0 -5
- package/locations/action-creators/submitReservationSuccess.js +0 -5
- package/locations/actions/fetchDefaultLocation.js +0 -4
- package/locations/actions/fetchFulfillmentSlots.js +0 -6
- package/locations/actions/fetchInventories.js +0 -6
- package/locations/actions/fetchLocations.js +0 -19
- package/locations/actions/fetchProductInventories.js +0 -7
- package/locations/actions/fetchProductLocations.js +0 -12
- package/locations/actions/index.js +0 -5
- package/locations/actions/sendDefaultLocationCode.js +0 -6
- package/locations/actions/setUserGeolocation.js +0 -1
- package/locations/actions/setUserSearchGeolocation.js +0 -1
- package/locations/actions/submitReservation.js +0 -5
- package/locations/assets/leaflet.css +0 -765
- package/locations/components/Cart/CartChangeFulfillmentMethod.connector.js +0 -4
- package/locations/components/Cart/CartChangeFulfillmentMethod.js +0 -8
- package/locations/components/Cart/CartChangeFulfillmentMethod.types.js +0 -0
- package/locations/components/Cart/CartContextMenuChangeFulfillment.js +0 -6
- package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +0 -5
- package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.style.js +0 -1
- package/locations/components/Cart/CartContextMenuItemChangeFulfillment.connector.js +0 -4
- package/locations/components/Cart/CartContextMenuItemChangeFulfillment.js +0 -6
- package/locations/components/Cart/CartContextMenuItemChangeLocation.js +0 -7
- package/locations/components/Cart/CartItemProductChangeLocation.connector.js +0 -5
- package/locations/components/Cart/CartItemProductChangeLocation.js +0 -11
- package/locations/components/Cart/CartItemProductChangeLocation.types.js +0 -0
- package/locations/components/Cart/index.js +0 -1
- package/locations/components/ChangeLocationButton/ChangeLocationButton.js +0 -4
- package/locations/components/ChangeLocationButton/ChangeLocationButton.style.js +0 -2
- package/locations/components/ChangeLocationButton/index.js +0 -1
- package/locations/components/FulfillmentPath/FulfillmentPath.js +0 -4
- package/locations/components/FulfillmentPath/FulfillmentPath.style.js +0 -2
- package/locations/components/FulfillmentPath/FulfillmentPathItem.js +0 -6
- package/locations/components/FulfillmentPath/index.js +0 -1
- package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.js +0 -14
- package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.style.js +0 -1
- package/locations/components/FulfillmentPathSelector/index.js +0 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelector.connector.js +0 -9
- package/locations/components/FulfillmentSelector/FulfillmentSelector.context.js +0 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelector.hooks.js +0 -3
- package/locations/components/FulfillmentSelector/FulfillmentSelector.js +0 -20
- package/locations/components/FulfillmentSelector/FulfillmentSelector.style.js +0 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelector.types.js +0 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelectorAddToCart.js +0 -10
- package/locations/components/FulfillmentSelector/FulfillmentSelectorAlternativeLocation.js +0 -8
- package/locations/components/FulfillmentSelector/FulfillmentSelectorBOPIS.js +0 -4
- package/locations/components/FulfillmentSelector/FulfillmentSelectorDirectShip.js +0 -5
- package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.js +0 -4
- package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.style.js +0 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.js +0 -4
- package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.style.js +0 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.js +0 -8
- package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.style.js +0 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.js +0 -4
- package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.style.js +0 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelectorLocationMethodNotAvailable.js +0 -3
- package/locations/components/FulfillmentSelector/FulfillmentSelectorROPIS.js +0 -4
- package/locations/components/FulfillmentSelector/index.js +0 -1
- package/locations/components/FulfillmentSheet/FulfillmentSheet.js +0 -6
- package/locations/components/FulfillmentSheet/FulfillmentSheet.style.js +0 -1
- package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +0 -6
- package/locations/components/FulfillmentSheet/index.js +0 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +0 -28
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.connector.js +0 -8
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.context.js +0 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.js +0 -9
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.connector.js +0 -4
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +0 -4
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +0 -3
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.style.js +0 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +0 -3
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.style.js +0 -1
- package/locations/components/FulfillmentSlotSwitcher/index.js +0 -1
- package/locations/components/FulfillmentSlotSwitcher/time.js +0 -5
- package/locations/components/GlobalLocationSelector/GlobalLocationSelector.js +0 -16
- package/locations/components/GlobalLocationSelector/index.js +0 -1
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.connector.js +0 -8
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.js +0 -3
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +0 -3
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.style.js +0 -1
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +0 -3
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.style.js +0 -1
- package/locations/components/GlobalLocationSwitcher/index.js +0 -1
- package/locations/components/ReservationResponses/ReservationError.js +0 -4
- package/locations/components/ReservationResponses/ReservationResponse.style.js +0 -1
- package/locations/components/ReservationResponses/ReservationSuccess.js +0 -4
- package/locations/components/ReservationResponses/index.js +0 -1
- package/locations/components/ReserveForm/ReserveForm.constraints.js +0 -1
- package/locations/components/ReserveForm/ReserveForm.js +0 -10
- package/locations/components/ReserveForm/ReserveForm.style.js +0 -1
- package/locations/components/ReserveForm/ReserveFormPhone.connector.js +0 -3
- package/locations/components/ReserveForm/ReserveFormPhone.js +0 -5
- package/locations/components/ReserveForm/ReserveFormPhone.types.js +0 -0
- package/locations/components/ReserveForm/index.js +0 -1
- package/locations/components/StockInfo/StockInfo.defaultSettings.js +0 -1
- package/locations/components/StockInfo/StockInfo.js +0 -8
- package/locations/components/StockInfo/StockInfoInventory.js +0 -9
- package/locations/components/StockInfo/index.js +0 -1
- package/locations/components/StockInfoLists/index.js +0 -9
- package/locations/components/StoreDetails/components/FindMoreStores.js +0 -4
- package/locations/components/StoreDetails/components/GetDirectionsButton.js +0 -7
- package/locations/components/StoreDetails/components/StoreDetails.js +0 -5
- package/locations/components/StoreDetails/components/StoreFinderMap.js +0 -20
- package/locations/components/StoreDetails/components/StoreFinderMap.style.js +0 -1
- package/locations/components/StoreDetails/components/StoreLocationMap.js +0 -4
- package/locations/components/StoreDetails/components/StoresNearby.js +0 -4
- package/locations/components/StoreDetails/components/StoresNearbyListItem.js +0 -9
- package/locations/components/StoreDetails/index.js +0 -4
- package/locations/components/StoreFinder/Store.context.js +0 -1
- package/locations/components/StoreFinder/StoreFinder.js +0 -3
- package/locations/components/StoreFinder/StoreFinder.style.js +0 -1
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +0 -4
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +0 -4
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.style.js +0 -1
- package/locations/components/StoreFinder/StoreFinderLocation.js +0 -3
- package/locations/components/StoreFinder/StoreFinderLocation.style.js +0 -1
- package/locations/components/StoreFinder/StoreFinderLocationDetails.js +0 -3
- package/locations/components/StoreFinder/StoreFinderLocationDetails.style.js +0 -1
- package/locations/components/StoreFinder/StoreFinderLocationHeader.js +0 -3
- package/locations/components/StoreFinder/StoreFinderLocationHeader.style.js +0 -1
- package/locations/components/StoreFinder/StoreFinderLocationHeaderPhoneNumber.js +0 -4
- package/locations/components/StoreFinder/StoreFinderLocations.js +0 -5
- package/locations/components/StoreFinder/StoreFinderLocations.style.js +0 -1
- package/locations/components/StoreFinder/StoreFinderSearch.js +0 -3
- package/locations/components/StoreFinder/StoreFinderSearch.style.js +0 -1
- package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +0 -5
- package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +0 -8
- package/locations/components/StoreFinder/index.js +0 -1
- package/locations/components/StoreList/Store.context.js +0 -1
- package/locations/components/StoreList/Store.style.js +0 -1
- package/locations/components/StoreList/StoreAddress.js +0 -7
- package/locations/components/StoreList/StoreAddressShort.js +0 -7
- package/locations/components/StoreList/StoreCard.js +0 -4
- package/locations/components/StoreList/StoreDetails.js +0 -4
- package/locations/components/StoreList/StoreDetailsLine.js +0 -8
- package/locations/components/StoreList/StoreDistance.js +0 -7
- package/locations/components/StoreList/StoreHeader.js +0 -4
- package/locations/components/StoreList/StoreHoursToday.js +0 -7
- package/locations/components/StoreList/StoreList.js +0 -4
- package/locations/components/StoreList/StoreListLocations.js +0 -4
- package/locations/components/StoreList/StoreListProduct.js +0 -4
- package/locations/components/StoreList/StoreListProduct.style.js +0 -1
- package/locations/components/StoreList/StoreListProductInfo.js +0 -4
- package/locations/components/StoreList/StoreListProductName.js +0 -4
- package/locations/components/StoreList/StoreListSearch.connector.js +0 -7
- package/locations/components/StoreList/StoreListSearch.js +0 -23
- package/locations/components/StoreList/StoreListSearch.style.js +0 -1
- package/locations/components/StoreList/StoreListSearchRadius.connector.js +0 -7
- package/locations/components/StoreList/StoreListSearchRadius.js +0 -4
- package/locations/components/StoreList/StoreListSearchRadius.style.js +0 -1
- package/locations/components/StoreList/StoreOpeningHours.js +0 -7
- package/locations/components/StoreList/StoreOpeningHoursLine.js +0 -7
- package/locations/components/StoreList/StorePhoneNumber.js +0 -6
- package/locations/components/StoreList/StoreSelectLocationButton.js +0 -4
- package/locations/components/StoreList/index.js +0 -1
- package/locations/components/index.js +0 -1
- package/locations/constants/ActionTypes.js +0 -10
- package/locations/constants/Pipelines.js +0 -1
- package/locations/constants/Portals.js +0 -2
- package/locations/constants/Stages.js +0 -1
- package/locations/constants/index.js +0 -7
- package/locations/constants/routes.js +0 -1
- package/locations/helpers/createOrder.js +0 -28
- package/locations/helpers/formatDistance.js +0 -9
- package/locations/helpers/getAvailabilitySettings.js +0 -12
- package/locations/helpers/index.js +0 -1
- package/locations/helpers/productInventory.js +0 -7
- package/locations/helpers/showInventoryInLists.js +0 -7
- package/locations/index.js +0 -9
- package/locations/locations.context.js +0 -1
- package/locations/locations.hooks.js +0 -4
- package/locations/locations.streams.js +0 -1
- package/locations/locations.types.js +0 -1
- package/locations/providers/FulfillmentProvider.connector.js +0 -10
- package/locations/providers/FulfillmentProvider.js +0 -49
- package/locations/providers/FulfillmentProvider.types.js +0 -1
- package/locations/providers/StoreDetailsContext.js +0 -1
- package/locations/providers/StoreDetailsProvider.js +0 -4
- package/locations/providers/StoreFinder.connector.js +0 -3
- package/locations/providers/StoreFinderProvider.js +0 -7
- package/locations/providers/index.js +0 -1
- package/locations/reducers/index.js +0 -1
- package/locations/reducers/storage.js +0 -24
- package/locations/reducers/storeFinderSearch.js +0 -6
- package/locations/reducers/user.js +0 -5
- package/locations/reducers/userFormInput.js +0 -8
- package/locations/reducers/userSearch.js +0 -6
- package/locations/selectors/index.js +0 -145
- package/locations/subscriptions.js +0 -27
- package/login/action-creators/index.js +0 -1
- package/login/action-creators/resetPassword.js +0 -14
- package/login/actions/index.js +0 -1
- package/login/actions/resetPassword.js +0 -5
- package/login/components/ForgotPassword/ForgotPassword.connector.js +0 -5
- package/login/components/ForgotPassword/ForgotPassword.js +0 -5
- package/login/components/ForgotPassword/ForgotPassword.style.js +0 -1
- package/login/components/ForgotPassword/index.js +0 -1
- package/login/constants/actions.js +0 -1
- package/login/constants/index.js +0 -1
- package/login/constants/pipelines.js +0 -1
- package/login/constants/routes.js +0 -1
- package/login/index.js +0 -1
- package/orders/action-creators/index.js +0 -1
- package/orders/action-creators/orderDetails.js +0 -22
- package/orders/action-creators/orders.js +0 -21
- package/orders/actions/cancelOrder.js +0 -8
- package/orders/actions/fetchOrderDetails.js +0 -10
- package/orders/actions/fetchOrderHistory.js +0 -7
- package/orders/actions/index.js +0 -1
- package/orders/components/OrderDetails/OrderDetails.js +0 -4
- package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +0 -3
- package/orders/components/OrderDetails/OrderDetailsAuthenticate.style.js +0 -1
- package/orders/components/OrderDetails/OrderDetailsAuthenticateForm.config.js +0 -8
- package/orders/components/OrderDetails/OrderDetailsContent.js +0 -3
- package/orders/components/OrderDetails/OrderDetailsContent.style.js +0 -1
- package/orders/components/OrderDetails/OrderDetailsOrder.js +0 -4
- package/orders/components/OrderDetails/OrderDetailsOrder.style.js +0 -1
- package/orders/components/OrderDetails/OrderDetailsOrderHeader.js +0 -4
- package/orders/components/OrderDetails/OrderDetailsOrderHeader.style.js +0 -1
- package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.connector.js +0 -3
- package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.js +0 -4
- package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.style.js +0 -1
- package/orders/components/OrderDetails/index.js +0 -1
- package/orders/components/OrderHistory/OrderHistory.js +0 -4
- package/orders/components/OrderHistory/OrderHistory.style.js +0 -1
- package/orders/components/OrderHistory/OrderHistoryList.js +0 -9
- package/orders/components/OrderHistory/OrderHistoryList.style.js +0 -1
- package/orders/components/OrderHistory/OrderHistoryLoader.js +0 -4
- package/orders/components/OrderHistory/OrderHistoryTable.js +0 -9
- package/orders/components/OrderHistory/OrderHistoryTable.style.js +0 -1
- package/orders/components/OrderHistory/index.js +0 -1
- package/orders/components/index.js +0 -1
- package/orders/constants/actionTypes.js +0 -1
- package/orders/constants/index.js +0 -1
- package/orders/constants/pipelines.js +0 -1
- package/orders/constants/routes.js +0 -1
- package/orders/constants/status.js +0 -12
- package/orders/helpers/index.js +0 -1
- package/orders/helpers/orderDetails.js +0 -5
- package/orders/helpers/orderStatus.js +0 -15
- package/orders/hooks/index.js +0 -7
- package/orders/providers/OrderDetailsPrivateProvider.connector.js +0 -11
- package/orders/providers/OrderDetailsPrivateProvider.js +0 -5
- package/orders/providers/OrderDetailsProvider.connector.js +0 -11
- package/orders/providers/OrderDetailsProvider.constraints.js +0 -1
- package/orders/providers/OrderDetailsProvider.context.js +0 -1
- package/orders/providers/OrderDetailsProvider.js +0 -11
- package/orders/providers/OrderHistoryProvider.connector.js +0 -9
- package/orders/providers/OrderHistoryProvider.context.js +0 -1
- package/orders/providers/OrderHistoryProvider.js +0 -4
- package/orders/reducers/index.js +0 -1
- package/orders/reducers/orders.js +0 -7
- package/orders/reducers/ordersById.js +0 -7
- package/orders/reducers/ordersByNumber.js +0 -7
- package/orders/selectors/index.js +0 -27
- package/orders/subscriptions/index.js +0 -4
- package/page/actions/index.js +0 -1
- package/page/components/NotFound.js +0 -3
- package/page/components/index.js +0 -1
- package/page/selectors/index.js +0 -7
- package/product/collections/index.js +0 -1
- package/product/components/Availability/Availability.connector.js +0 -5
- package/product/components/Availability/Availability.js +0 -6
- package/product/components/Availability/Availability.style.js +0 -1
- package/product/components/Availability/index.js +0 -1
- package/product/components/Header/index.js +0 -1
- package/product/components/PriceInfo/PriceInfo.connector.js +0 -4
- package/product/components/PriceInfo/PriceInfo.js +0 -4
- package/product/components/PriceInfo/index.js +0 -1
- package/product/components/ProductImage/ProductImagePlaceholder.js +0 -5
- package/product/components/ProductImage/connector.js +0 -5
- package/product/components/ProductName/ProductName.js +0 -4
- package/product/components/ProductName/ProductNameContent.js +0 -4
- package/product/components/ProductName/index.js +0 -1
- package/product/components/ProductProperties/ListsHTML.js +0 -5
- package/product/components/ProductProperties/RowHTML.js +0 -5
- package/product/components/ProductVariants/VariantAvailability.connector.js +0 -5
- package/product/components/ProductVariants/VariantAvailability.js +0 -5
- package/product/components/ProductVariants/index.js +0 -1
- package/product/components/QuantityPicker/hooks.js +0 -5
- package/product/components/UnitQuantityPicker/CartUnitQuantityPicker.js +0 -4
- package/product/components/UnitQuantityPicker/styles.js +0 -1
- package/product/components/index.js +0 -1
- package/product/contexts/index.js +0 -1
- package/product/hocs/index.js +0 -1
- package/product/hocs/withProduct.js +0 -6
- package/product/hocs/withProductListEntryProduct.js +0 -12
- package/product/hooks/index.js +0 -1
- package/product/product.types.js +0 -0
- package/product/providers/index.js +0 -1
- package/product/streams/index.js +0 -1
- package/push-opt-in/subscriptions/optInTracking.js +0 -4
- package/registration/action-creators/index.js +0 -18
- package/registration/actions/index.js +0 -1
- package/registration/actions/submitRegistration.js +0 -4
- package/registration/components/GuestRegistration/GuestRegistration.js +0 -4
- package/registration/components/GuestRegistration/GuestRegistrationContent.js +0 -4
- package/registration/components/GuestRegistration/GuestRegistrationFormPickup.config.js +0 -8
- package/registration/components/GuestRegistration/GuestRegistrationFormPickup.js +0 -4
- package/registration/components/Registration/Registration.js +0 -4
- package/registration/components/Registration/RegistrationContent.js +0 -4
- package/registration/components/Registration/RegistrationContent.style.js +0 -2
- package/registration/components/Registration/RegistrationFormActions.js +0 -5
- package/registration/components/Registration/RegistrationFormBase.config.js +0 -4
- package/registration/components/Registration/RegistrationFormBase.js +0 -4
- package/registration/components/Registration/RegistrationFormBilling.config.js +0 -5
- package/registration/components/Registration/RegistrationFormBilling.js +0 -5
- package/registration/components/Registration/RegistrationFormExtra.config.js +0 -5
- package/registration/components/Registration/RegistrationFormExtra.js +0 -5
- package/registration/components/Registration/RegistrationFormShipping.config.js +0 -5
- package/registration/components/Registration/RegistrationFormShipping.js +0 -5
- package/registration/components/Registration/RegistrationFormToggle.js +0 -4
- package/registration/components/index.js +0 -1
- package/registration/constants/actionTypes.js +0 -1
- package/registration/constants/index.js +0 -1
- package/registration/constants/pipelines.js +0 -1
- package/registration/hooks/index.js +0 -5
- package/registration/index.js +0 -2
- package/registration/providers/GuestRegistrationProvider.actions.js +0 -4
- package/registration/providers/GuestRegistrationProvider.connector.js +0 -7
- package/registration/providers/GuestRegistrationProvider.constraints.js +0 -18
- package/registration/providers/GuestRegistrationProvider.context.js +0 -1
- package/registration/providers/GuestRegistrationProvider.js +0 -22
- package/registration/providers/RegistrationProvider.actions.js +0 -8
- package/registration/providers/RegistrationProvider.connector.js +0 -6
- package/registration/providers/RegistrationProvider.constraints.js +0 -27
- package/registration/providers/RegistrationProvider.context.js +0 -1
- package/registration/providers/RegistrationProvider.js +0 -17
- package/registration/streams/index.js +0 -4
- package/registration/subscriptions/index.js +0 -5
- package/reviews/actions/index.js +0 -1
- package/reviews/components/index.js +0 -1
- package/reviews/constants/index.js +0 -1
- package/reviews/selectors/index.js +0 -1
- package/reviews/streams/index.js +0 -1
- package/scanner/action-creators/index.js +0 -1
- package/scanner/actions/index.js +0 -1
- package/scanner/classes/index.js +0 -1
- package/scanner/constants/index.js +0 -1
- package/scanner/helpers/index.js +0 -1
- package/scanner/streams/index.js +0 -1
- package/search/actions/index.js +0 -1
- package/search/constants/index.js +0 -1
- package/search/helpers/index.js +0 -1
- package/search/selectors/index.js +0 -1
- package/search/streams/index.js +0 -1
- package/styles/helpers/cssCustomProperties.js +0 -16
- package/styles/helpers/index.js +0 -1
- package/styles/helpers/initCSSCustomProperties.js +0 -10
- package/styles/helpers/loadCustomStyles.js +0 -6
- package/styles/helpers/setPageBackgroundColor.js +0 -5
- package/styles/helpers/setPageContentWidth.js +0 -5
- package/styles/helpers/setViewportHeight.js +0 -3
- package/styles/helpers/toggleBodyScroll.js +0 -5
- package/styles/helpers/updatePageInsets.js +0 -15
- package/styles/index.js +0 -1
- package/styles/reset/form.js +0 -8
- package/styles/reset/index.js +0 -1
- package/styles/reset/media.js +0 -1
- package/styles/reset/root.js +0 -3
- package/styles/reset/table.js +0 -1
- package/styles/reset/typography.js +0 -1
- package/tracking/helpers/index.js +0 -1
- package/types.js +0 -0
- package/user/selectors/data.js +0 -10
- /package/product/components/{ProductVariants/VariantAvailability.style.js → Characteristics/Characteristic/components/VariantAvailability/style.js} +0 -0
- /package/product/{providers/Product → components/ProductProvider}/connector.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from'react';import{shallow}from'enzyme';import Tier from"./index";describe('<Tier />',function(){describe('Rendering with data',function(){it('should render tier prices when tier prices are available',function(){var price={tiers:[{from:1,to:2,unitPrice:92.5},{from:3,to:5,unitPrice:77.5},{from:6,to:null,unitPrice:68.5}],currency:'USD'};var tier={from:3,to:5,unitPrice:77.5};var wrapper=shallow(React.createElement(Tier,{price:price,tier:tier}));expect(wrapper).toMatchSnapshot();});});describe('Rendering without data',function(){it('should render nothing when tier from is less then 1',function(){var tier={from:1};var wrapper=shallow(React.createElement(Tier,{tier:tier,price:{}}));expect(wrapper).toBeEmptyRender();});});});
|
|
1
|
+
import React from'react';import{shallow}from'enzyme';import Tier from"./index";describe('<Tier />',function(){describe('Rendering with data',function(){it('should render tier prices when tier prices are available',function(){var price={tiers:[{from:1,to:2,unitPrice:92.5},{from:3,to:5,unitPrice:77.5},{from:6,to:null,unitPrice:68.5}],currency:'USD'};var tier={from:3,to:5,unitPrice:77.5};var wrapper=shallow(/*#__PURE__*/React.createElement(Tier,{price:price,tier:tier}));expect(wrapper).toMatchSnapshot();});});describe('Rendering without data',function(){it('should render nothing when tier from is less then 1',function(){var tier={from:1};var wrapper=shallow(/*#__PURE__*/React.createElement(Tier,{tier:tier,price:{}}));expect(wrapper).toBeEmptyRender();});});});
|
|
@@ -2,4 +2,4 @@ import React,{Fragment,memo}from'react';import PropTypes from'prop-types';import
|
|
|
2
2
|
* The Tiers component.
|
|
3
3
|
* @param {Object} props The component props.
|
|
4
4
|
* @return {JSX}
|
|
5
|
-
*/var Tiers=function Tiers(_ref){var price=_ref.price;if(!(price&&price.tiers&&price.tiers.length>0)){return null;}return
|
|
5
|
+
*/var Tiers=function Tiers(_ref){var price=_ref.price;if(!(price&&price.tiers&&price.tiers.length>0)){return null;}return/*#__PURE__*/React.createElement(Fragment,null,/*#__PURE__*/React.createElement(Portal,{name:PRODUCT_TIERS_BEFORE}),/*#__PURE__*/React.createElement(Portal,{name:PRODUCT_TIERS},/*#__PURE__*/React.createElement("div",{className:"".concat(styles.wrapper," engage__product__header__tiers")},price.tiers.map(function(tier){return/*#__PURE__*/React.createElement(Tier,{tier:tier,price:price,key:"".concat(Object.values(tier).join('_'))});}))),/*#__PURE__*/React.createElement(Portal,{name:PRODUCT_TIERS_AFTER}));};Tiers.defaultProps={price:null};export default connect(/*#__PURE__*/memo(Tiers));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from'react';import{shallow}from'enzyme';import Tiers from"./index";jest.mock("./connector",function(){return function(cmp){return cmp;};});describe('<Tiers />',function(){describe('Rendering with data',function(){it('should render tier prices when tier prices are available',function(){var price={tiers:[{from:1,to:2,unitPrice:92.5},{from:3,to:5,unitPrice:77.5},{from:6,to:null,unitPrice:68.5}],currency:'USD'};var wrapper=shallow(React.createElement(Tiers,{price:price}));expect(wrapper).toMatchSnapshot();});});describe('Rendering without data',function(){it('should render nothing when price data are not available ({})',function(){var wrapper=shallow(React.createElement(Tiers,{price:{}}));expect(wrapper).toBeEmptyRender();});it('should render nothing when price data are not available (null)',function(){var wrapper=shallow(React.createElement(Tiers,{price:null}));expect(wrapper).toBeEmptyRender();});it('should render nothing when tier prices are empty ([])',function(){var price={tiers:[],currency:'USD'};var wrapper=shallow(React.createElement(Tiers,{price:price}));expect(wrapper).toBeEmptyRender();});it('should render nothing when tier prices are not available (field missing)',function(){var price={currency:'USD'};var wrapper=shallow(React.createElement(Tiers,{price:price}));expect(wrapper).toBeEmptyRender();});});});
|
|
1
|
+
import React from'react';import{shallow}from'enzyme';import Tiers from"./index";jest.mock("./connector",function(){return function(cmp){return cmp;};});describe('<Tiers />',function(){describe('Rendering with data',function(){it('should render tier prices when tier prices are available',function(){var price={tiers:[{from:1,to:2,unitPrice:92.5},{from:3,to:5,unitPrice:77.5},{from:6,to:null,unitPrice:68.5}],currency:'USD'};var wrapper=shallow(/*#__PURE__*/React.createElement(Tiers,{price:price}));expect(wrapper).toMatchSnapshot();});});describe('Rendering without data',function(){it('should render nothing when price data are not available ({})',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(Tiers,{price:{}}));expect(wrapper).toBeEmptyRender();});it('should render nothing when price data are not available (null)',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(Tiers,{price:null}));expect(wrapper).toBeEmptyRender();});it('should render nothing when tier prices are empty ([])',function(){var price={tiers:[],currency:'USD'};var wrapper=shallow(/*#__PURE__*/React.createElement(Tiers,{price:price}));expect(wrapper).toBeEmptyRender();});it('should render nothing when tier prices are not available (field missing)',function(){var price={currency:'USD'};var wrapper=shallow(/*#__PURE__*/React.createElement(Tiers,{price:price}));expect(wrapper).toBeEmptyRender();});});});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from'react';import PropTypes from'prop-types';import{css}from'glamor';import classNames from'classnames';import{SurroundPortals,I18n,TimeBoundary}from'@shopgate/engage/components';import{isBeta,useWidgetSettings,useWidgetStyles}from'@shopgate/engage/core';import{PRODUCT_MAP_PRICE}from'@shopgate/engage/product';import{showHint}from"./helpers";import connect from"./connector";var defaultStyle=css({fontSize:'0.75rem'}).toString();/**
|
|
2
2
|
* The Product Map Price Hint component.
|
|
3
3
|
* @return {JSX}
|
|
4
|
-
*/var MapPriceHint=function MapPriceHint(_ref){var price=_ref.price,mapPrice=_ref.mapPrice;if(!isBeta()){return null;}var settings=useWidgetSettings('@shopgate/engage/product/MapPrice');if(!settings.showHint||!settings.hint){return null;}var styles=useWidgetStyles('@shopgate/engage/product/MapPrice');return
|
|
4
|
+
*/var MapPriceHint=function MapPriceHint(_ref){var price=_ref.price,mapPrice=_ref.mapPrice;if(!isBeta()){return null;}var settings=useWidgetSettings('@shopgate/engage/product/MapPrice');if(!settings.showHint||!settings.hint){return null;}var styles=useWidgetStyles('@shopgate/engage/product/MapPrice');return/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PRODUCT_MAP_PRICE},showHint(price,mapPrice)&&/*#__PURE__*/React.createElement(TimeBoundary,{start:new Date(mapPrice.startDate),end:new Date(mapPrice.endDate)},function(_ref2){var between=_ref2.between;return between&&/*#__PURE__*/React.createElement(I18n.Text,{string:settings.hint,className:classNames('engage__product__map-price-hint',defaultStyle,css(styles.hint).toString())});}));};MapPriceHint.defaultProps={mapPrice:null,price:null};export default connect(MapPriceHint);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React from'react';import{SurroundPortals}from'@shopgate/engage/components';import{MEDIA_TYPE_IMAGE,MEDIA_TYPE_VIDEO}from'@shopgate/engage/product';import{PORTAL_PRODUCT_MEDIA}from"../../../components/constants";import MediaImage from"./MediaImage";import FeaturedVideo from"./FeaturedVideo";import{defaultProps,propTypes}from"./props";var types=
|
|
1
|
+
var _types;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React from'react';import{SurroundPortals}from'@shopgate/engage/components';import{MEDIA_TYPE_IMAGE,MEDIA_TYPE_VIDEO}from'@shopgate/engage/product';import{PORTAL_PRODUCT_MEDIA}from"../../../components/constants";import MediaImage from"./MediaImage";import FeaturedVideo from"./FeaturedVideo";import{defaultProps,propTypes}from"./props";var types=(_types={},_defineProperty(_types,MEDIA_TYPE_IMAGE,MediaImage),_defineProperty(_types,MEDIA_TYPE_VIDEO,FeaturedVideo),_types);/**
|
|
2
2
|
* The featured media component.
|
|
3
3
|
* @returns {JSX}
|
|
4
|
-
*/var FeaturedMedia=function FeaturedMedia(_ref){var type=_ref.type,url=_ref.url,altText=_ref.altText;var TypeRenderer=types[type]||MediaImage;return
|
|
4
|
+
*/var FeaturedMedia=function FeaturedMedia(_ref){var type=_ref.type,url=_ref.url,altText=_ref.altText;var TypeRenderer=types[type]||MediaImage;return/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PORTAL_PRODUCT_MEDIA},/*#__PURE__*/React.createElement(TypeRenderer,{url:url,altText:altText}));};FeaturedMedia.defaultProps=defaultProps;export default FeaturedMedia;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e
|
|
1
|
+
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useState,useEffect}from'react';import PropTypes from'prop-types';import classnames from'classnames';import Image from'@shopgate/pwa-common/components/Image';import appConfig from'@shopgate/pwa-common/helpers/config';import{SurroundPortals}from"../../../components";import{PORTAL_PRODUCT_IMAGE}from"../../../components/constants";import{buildMediaImageUrl}from"./helpers";import{useWidgetSettings}from"../../../core";import{defaultProps,propTypes}from"./props";import MediaPlaceholder from"./MediaPlaceholder";import{innerShadow}from"./style";/**
|
|
2
2
|
* The featured image component.
|
|
3
|
-
* @returns {JSX
|
|
4
|
-
*/var MediaImage=function MediaImage(_ref){var url=_ref.url,altText=_ref.altText,className=_ref.className,
|
|
3
|
+
* @returns {JSX}
|
|
4
|
+
*/var MediaImage=function MediaImage(_ref){var url=_ref.url,altText=_ref.altText,className=_ref.className,params=_ref.params;var _useState=useState(!url),_useState2=_slicedToArray(_useState,2),placeholder=_useState2[0],setPlaceholderEnabled=_useState2[1];var _useWidgetSettings=useWidgetSettings('@shopgate/engage/product/MediaImage'),_useWidgetSettings$sh=_useWidgetSettings.showInnerShadow,showInnerShadow=_useWidgetSettings$sh===void 0?!appConfig.hideProductImageShadow:_useWidgetSettings$sh;useEffect(function(){return setPlaceholderEnabled(!url);},[url]);var classes=classnames(className,_defineProperty({},innerShadow,showInnerShadow));if(placeholder){return/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PORTAL_PRODUCT_IMAGE},/*#__PURE__*/React.createElement(MediaPlaceholder,{className:classes}));}return/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PORTAL_PRODUCT_IMAGE},/*#__PURE__*/React.createElement(Image,{src:buildMediaImageUrl(url,params),alt:altText,className:classes,backgroundColor:"transparent",onError:function onError(){return setPlaceholderEnabled(true);}}));};MediaImage.defaultProps={url:defaultProps.url,altText:defaultProps.altText,className:defaultProps.className,params:null};export default MediaImage;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from'react';import classnames from'classnames';import PlaceholderIcon from'@shopgate/pwa-ui-shared/icons/PlaceholderIcon';import{defaultProps,propTypes}from"./props";import{placeholderContainer,placeholderContent,placeholderIcon}from"./style";/**
|
|
2
2
|
* The media placeholder component.
|
|
3
3
|
* @returns {JSX}
|
|
4
|
-
*/var MediaPlaceholder=function MediaPlaceholder(_ref){var className=_ref.className;return
|
|
4
|
+
*/var MediaPlaceholder=function MediaPlaceholder(_ref){var className=_ref.className;return/*#__PURE__*/React.createElement("div",{className:classnames(placeholderContainer,className)},/*#__PURE__*/React.createElement("div",{className:placeholderContent,"data-test-id":"placeHolder"},/*#__PURE__*/React.createElement(PlaceholderIcon,{className:placeholderIcon})));};MediaPlaceholder.defaultProps={className:defaultProps.className};export default MediaPlaceholder;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from'react';import PropTypes from'prop-types';import{MediaImage as Image}from"../../../Media";import{full}from"../../style";import{PRODUCT_SLIDER_IMAGE_FORMATS}from"../../constants";/**
|
|
2
2
|
* The product media video slide component.
|
|
3
3
|
* @returns {JSX}
|
|
4
|
-
*/var MediaImage=function MediaImage(_ref){var media=_ref.media,onClick=_ref.onClick;return
|
|
4
|
+
*/var MediaImage=function MediaImage(_ref){var media=_ref.media,onClick=_ref.onClick;return/*#__PURE__*/React.createElement("div",{onClick:onClick,onKeyDown:onClick,role:"button",tabIndex:"0",className:full},/*#__PURE__*/React.createElement(Image,{url:media.url,altText:media.altText,params:PRODUCT_SLIDER_IMAGE_FORMATS[1]}));};MediaImage.displayName='MediaSliderImage';export default MediaImage;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from'react';import PropTypes from'prop-types';import{IntersectionVisibility,VideoPlayer}from"../../../../../components";import{useWidgetSettings}from"../../../../../core";import connect from"./connector";import{videoWrapper,videoResponsive,video}from"../../style";/**
|
|
2
2
|
* The media video component.
|
|
3
3
|
* @returns {JSX}
|
|
4
|
-
*/var MediaVideo=function MediaVideo(_ref){var connectivityType=_ref.connectivityType,media=_ref.media;var settings=useWidgetSettings('@shopgate/engage/product/MediaSlider');var autoPlay=settings.videos.autoPlay[connectivityType]||false;return
|
|
4
|
+
*/var MediaVideo=function MediaVideo(_ref){var connectivityType=_ref.connectivityType,media=_ref.media;var settings=useWidgetSettings('@shopgate/engage/product/MediaSlider');var autoPlay=settings.videos.autoPlay[connectivityType]||false;return/*#__PURE__*/React.createElement(IntersectionVisibility,null,function(_ref2){var visible=_ref2.visible,ratio=_ref2.ratio,setRef=_ref2.setRef;return/*#__PURE__*/React.createElement("div",{ref:setRef,className:videoWrapper},/*#__PURE__*/React.createElement("div",{className:videoResponsive},/*#__PURE__*/React.createElement(VideoPlayer,{url:media.url,playing:autoPlay&&visible&&ratio>0.8,width:"100%",height:"100%",controls:settings.videos.controls,muted:settings.videos.muted,loop:settings.videos.loop,className:video})));});};export default connect(MediaVideo);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React from'react';import PropTypes from'prop-types';import{SurroundPortals,Swiper}from'@shopgate/engage/components';import{PRODUCT_MEDIA}from'@shopgate/pwa-common-commerce/product';import{MEDIA_TYPE_IMAGE,MEDIA_TYPE_VIDEO}from"../../constants";import MediaImage from"./components/MediaImage";import MediaVideo from"./components/MediaVideo";import connect from"./connector";import{container}from"./style";var typeRenders=
|
|
1
|
+
var _typeRenders;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React from'react';import PropTypes from'prop-types';import{SurroundPortals,Swiper}from'@shopgate/engage/components';import{PRODUCT_MEDIA}from'@shopgate/pwa-common-commerce/product';import{MEDIA_TYPE_IMAGE,MEDIA_TYPE_VIDEO}from"../../constants";import MediaImage from"./components/MediaImage";import MediaVideo from"./components/MediaVideo";import connect from"./connector";import{container}from"./style";var typeRenders=(_typeRenders={},_defineProperty(_typeRenders,MEDIA_TYPE_IMAGE,MediaImage),_defineProperty(_typeRenders,MEDIA_TYPE_VIDEO,MediaVideo),_typeRenders);/**
|
|
2
2
|
* The product media slider component.
|
|
3
|
-
* @returns {JSX
|
|
4
|
-
*/var MediaSlider=function MediaSlider(_ref){var navigate=_ref.navigate,featuredMedia=_ref.featuredMedia,media=_ref.media,ariaHidden=_ref['aria-hidden'],renderPlaceholder=_ref.renderPlaceholder,className=_ref.className
|
|
3
|
+
* @returns {JSX}
|
|
4
|
+
*/var MediaSlider=function MediaSlider(_ref){var navigate=_ref.navigate,featuredMedia=_ref.featuredMedia,media=_ref.media,ariaHidden=_ref['aria-hidden'],renderPlaceholder=_ref.renderPlaceholder,className=_ref.className;var currentSlide=0;/**
|
|
5
5
|
* @param {number} slide slide
|
|
6
|
-
*/var setCurrentSlide=function setCurrentSlide(slide){currentSlide=slide;};/** Handle click */var handleSlideClick=function handleSlideClick(){if(!media.length){return;}navigate(currentSlide);};if(!Array.isArray(media)||media.length===0){return renderPlaceholder(featuredMedia);}return
|
|
6
|
+
*/var setCurrentSlide=function setCurrentSlide(slide){currentSlide=slide;};/** Handle click */var handleSlideClick=function handleSlideClick(){if(!media.length){return;}navigate(currentSlide);};if(!Array.isArray(media)||media.length===0){return renderPlaceholder(featuredMedia);}return/*#__PURE__*/React.createElement("div",{className:container},/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PRODUCT_MEDIA},media&&/*#__PURE__*/React.createElement(Swiper,{loop:media.length>1,indicators:true,onSlideChange:setCurrentSlide,disabled:media.length===1,controls:media.some(function(m){return m.type===MEDIA_TYPE_VIDEO;}),className:className,"aria-hidden":ariaHidden},media.map(function(singleMedia){var Type=typeRenders[singleMedia.type];return/*#__PURE__*/React.createElement(Swiper.Item,{key:Object.values(singleMedia).join('_')},/*#__PURE__*/React.createElement(Type,{media:singleMedia,onClick:handleSlideClick}));}))));};MediaSlider.defaultProps={'aria-hidden':null,className:null,featuredMedia:null,media:null,renderPlaceholder:function renderPlaceholder(featuredMedia){return/*#__PURE__*/React.createElement(MediaImage,featuredMedia);}};export default connect(MediaSlider);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
function _typeof(obj){
|
|
1
|
+
function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{PureComponent}from'react';import PropTypes from'prop-types';import Option from"../Option";import TextOption from"../TextOption";import{ProductContext}from"../../../context";import connect from"./connector";/**
|
|
2
2
|
* The Product Options component.
|
|
3
|
-
*/var Options=/*#__PURE__*/function(_PureComponent){function Options(){var
|
|
4
|
-
|
|
5
|
-
*/_defineProperty(_this2,"handleStoreSelection",function(props){props.options.forEach(function(option){// Only options of type 'select' have a default value. Type 'text' has no default.
|
|
6
|
-
if(option.type!=='select'){return;}_this2.context.setOption(option.id,option.items[0].value,option.items[0].price);});});return _this2;}_inherits(Options,_PureComponent);return _createClass(Options,[{key:"componentDidMount",value:/**
|
|
3
|
+
*/var Options=/*#__PURE__*/function(_PureComponent){_inherits(Options,_PureComponent);var _super=_createSuper(Options);function Options(){var _this;_classCallCheck(this,Options);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=_super.call.apply(_super,[this].concat(args));_defineProperty(_assertThisInitialized(_this),"handleStoreSelection",function(props){props.options.forEach(function(option){// Only options of type 'select' have a default value. Type 'text' has no default.
|
|
4
|
+
if(option.type!=='select'){return;}_this.context.setOption(option.id,option.items[0].value,option.items[0].price);});});return _this;}_createClass(Options,[{key:"componentDidMount",value:/**
|
|
7
5
|
* Triggers storeSelections when the component is mounted and has options set.
|
|
8
6
|
*/function componentDidMount(){if(!this.context||!this.context.setOption||!this.props.options){return;}this.handleStoreSelection(this.props);}/**
|
|
9
7
|
* When the component receives the product options
|
|
10
8
|
* it will set the first value of each option as active
|
|
11
9
|
* @param {Object} nextProps The incoming props.
|
|
12
|
-
*/},{key:"UNSAFE_componentWillReceiveProps",value:function UNSAFE_componentWillReceiveProps(nextProps){if(!this.props.options&&nextProps.options){this.handleStoreSelection(nextProps);}}
|
|
10
|
+
*/},{key:"UNSAFE_componentWillReceiveProps",value:function UNSAFE_componentWillReceiveProps(nextProps){if(!this.props.options&&nextProps.options){this.handleStoreSelection(nextProps);}}/**
|
|
11
|
+
* @param {Object} props The component props.
|
|
12
|
+
*/},{key:"render",value:/**
|
|
13
13
|
* Renders the component
|
|
14
14
|
* @returns {JSX}
|
|
15
|
-
*/function render(){var _this$props=this.props,options=_this$props.options,currentOptions=_this$props.currentOptions;if(!options){return null;}return
|
|
16
|
-
return null;}}));});}}]);}(PureComponent);_defineProperty(Options,"contextType",ProductContext);_defineProperty(Options,"defaultProps",{currentOptions:{},options:null});export default connect(Options);
|
|
15
|
+
*/function render(){var _this$props=this.props,options=_this$props.options,currentOptions=_this$props.currentOptions;if(!options){return null;}return/*#__PURE__*/React.createElement(ProductContext.Consumer,null,function(_ref){var setOption=_ref.setOption;return/*#__PURE__*/React.createElement("div",{"data-test-id":"optionsPicker",className:"engage__product__options"},options.map(function(option){switch(option.type){case'text':return/*#__PURE__*/React.createElement(TextOption,{key:option.id,id:option.id,label:option.label,value:currentOptions[option.id],info:option.info,onChange:setOption,required:option.required,price:option.price});case'select':return/*#__PURE__*/React.createElement(Option,{key:option.id,label:option.label,id:option.id,items:option.items,value:currentOptions[option.id],onChange:setOption});default:// unknown type
|
|
16
|
+
return null;}}));});}}]);return Options;}(PureComponent);_defineProperty(Options,"contextType",ProductContext);_defineProperty(Options,"defaultProps",{currentOptions:{},options:null});export default connect(Options);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React from'react';import{mount,shallow}from'enzyme';import{PickerUtilize as Picker}from'@shopgate/engage/components';import Options from"./index";jest.mock(
|
|
2
|
-
jest.mock("./connector",function(){return function(obj){var newObj=obj;var mockOptions=[{id:'test-id',type:'select',label:'label',items:[{currency:'USD',price:10,priceDifference:0},{currency:'USD',price:10,priceDifference:0}]}];newObj.defaultProps={options:mockOptions,currentOptions:{}};return newObj;};});describe('<Options />',function(){var mockOptions=[{id:'test-id',type:'select',label:'label',items:[{currency:'USD',price:10,priceDifference:0},{currency:'USD',price:10,priceDifference:0}]}];describe('Given the component was mounted to the DOM',function(){it('should match snapshot',function(){var wrapper=shallow(React.createElement(Options,{currentOptions:{}})).dive();expect(wrapper).toMatchSnapshot();});it('should render correct number of options',function(){var wrapper=mount(React.createElement(Options,{options:mockOptions}));var picker=wrapper.find(Picker);expect(picker.length).toBe(mockOptions.length);});});});
|
|
1
|
+
import React from'react';import{mount,shallow}from'enzyme';import{PickerUtilize as Picker}from'@shopgate/engage/components';import Options from"./index";jest.mock("../../../context",function(){return{ProductContext:{Consumer:jest.fn(function(_ref){var children=_ref.children;return children({setOption:jest.fn(),currency:'EUR'});})}};});jest.mock('@shopgate/engage/components/View');// Mock the redux connect() method instead of providing a fake store.
|
|
2
|
+
jest.mock("./connector",function(){return function(obj){var newObj=obj;var mockOptions=[{id:'test-id',type:'select',label:'label',items:[{currency:'USD',price:10,priceDifference:0},{currency:'USD',price:10,priceDifference:0}]}];newObj.defaultProps={options:mockOptions,currentOptions:{}};return newObj;};});describe('<Options />',function(){var mockOptions=[{id:'test-id',type:'select',label:'label',items:[{currency:'USD',price:10,priceDifference:0},{currency:'USD',price:10,priceDifference:0}]}];describe('Given the component was mounted to the DOM',function(){it('should match snapshot',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(Options,{currentOptions:{}})).dive();expect(wrapper).toMatchSnapshot();});it('should render correct number of options',function(){var wrapper=mount(/*#__PURE__*/React.createElement(Options,{options:mockOptions}));var picker=wrapper.find(Picker);expect(picker.length).toBe(mockOptions.length);});});});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React from'react';import PropTypes from'prop-types';import{I18n,PickerUtilize as Picker}from'@shopgate/engage/components';import{PriceDifference}from'@shopgate/engage/product
|
|
1
|
+
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React from'react';import PropTypes from'prop-types';import{I18n,PickerUtilize as Picker}from'@shopgate/engage/components';import{PriceDifference}from'@shopgate/engage/product';import{ProductContext}from"../../../context";/**
|
|
2
2
|
* @param {Object} props The component props.
|
|
3
3
|
* @returns {JSX}
|
|
4
|
-
*/var Option=function Option(_ref){var id=_ref.id,label=_ref.label,items=_ref.items,value=_ref.value,_onChange=_ref.onChange;return
|
|
4
|
+
*/var Option=function Option(_ref){var id=_ref.id,label=_ref.label,items=_ref.items,value=_ref.value,_onChange=_ref.onChange;return/*#__PURE__*/React.createElement(ProductContext.Consumer,null,function(_ref2){var currency=_ref2.currency;return/*#__PURE__*/React.createElement("div",{key:id,"data-test-id":label},/*#__PURE__*/React.createElement(Picker,{label:label,items:items.map(function(item){return _extends({},item,{rightComponent:/*#__PURE__*/React.createElement(PriceDifference,{currency:currency,difference:item.priceDifference})});}),placeholder:/*#__PURE__*/React.createElement(I18n.Text,{string:"product.pick_an_attribute",params:[label]}),value:value,onChange:function onChange(val){return _onChange(id,val,items.find(function(item){return item.value===val;}).price);}}));});};Option.defaultProps={value:null};export default Option;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React,{memo}from'react';import PropTypes from'prop-types';import
|
|
1
|
+
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React,{memo}from'react';import PropTypes from'prop-types';import Grid from'@shopgate/pwa-common/components/Grid';import I18n from'@shopgate/pwa-common/components/I18n';import{ProductContext}from"../../../../../context";import styles from"./style";/**
|
|
2
2
|
* The text option info component
|
|
3
3
|
* @param {Object} props The component props
|
|
4
4
|
* @param {Object} context The component context
|
|
5
5
|
* @return {JSX}
|
|
6
|
-
*/var OptionInfo=function OptionInfo(_ref,context){var required=_ref.required,label=_ref.label,price=_ref.price,currency=_ref.currency,info=_ref.info,optionInfoId=_ref.optionInfoId;if(!required&&!price){return null;}var _context$i18n=context.i18n(),__=_context$i18n.__,_p=_context$i18n._p;var ariaPrice='';var ariaRequired='';if(price){ariaPrice=__('price.label',{price:_p(price,currency,2).replace('-',"\u2212")});}if(required){ariaRequired=__('common.required');}return
|
|
6
|
+
*/var OptionInfo=function OptionInfo(_ref,context){var required=_ref.required,label=_ref.label,price=_ref.price,currency=_ref.currency,info=_ref.info,optionInfoId=_ref.optionInfoId;if(!required&&!price){return null;}var _context$i18n=context.i18n(),__=_context$i18n.__,_p=_context$i18n._p;var ariaPrice='';var ariaRequired='';if(price){ariaPrice=__('price.label',{price:_p(price,currency,2).replace('-',"\u2212")});}if(required){ariaRequired=__('common.required');}return/*#__PURE__*/React.createElement(Grid,{className:styles.info},required&&/*#__PURE__*/React.createElement(Grid.Item,{className:styles.required,"aria-hidden":true},/*#__PURE__*/React.createElement(I18n.Text,{string:"common.required"})),!!price&&/*#__PURE__*/React.createElement(Grid.Item,{grow:1,className:styles.price,"aria-hidden":true},"".concat(label,": "),/*#__PURE__*/React.createElement(I18n.Price,{currency:currency,price:price})),/*#__PURE__*/React.createElement("div",{hidden:true,id:optionInfoId},ariaRequired,ariaPrice,info));};OptionInfo.contextTypes={i18n:PropTypes.func};/**
|
|
7
7
|
* @param {Object} props The component props.
|
|
8
8
|
* @returns {JSX}
|
|
9
|
-
*/var OptionInfoWithProductContext=function OptionInfoWithProductContext(props){return
|
|
9
|
+
*/var OptionInfoWithProductContext=function OptionInfoWithProductContext(props){return/*#__PURE__*/React.createElement(ProductContext.Consumer,null,function(_ref2){var currency=_ref2.currency;return/*#__PURE__*/React.createElement(OptionInfo,_extends({currency:currency},props));});};export default/*#__PURE__*/memo(OptionInfoWithProductContext);export{OptionInfo};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from'react';import{shallow}from'enzyme';import mockRenderOptions from'@shopgate/pwa-common/helpers/mocks/mockRenderOptions';import{OptionInfo}from"./index";var optionInfoText='Some Text';var optionInfoId='some-id';
|
|
1
|
+
import React from'react';import{shallow}from'enzyme';import mockRenderOptions from'@shopgate/pwa-common/helpers/mocks/mockRenderOptions';import{OptionInfo}from"./index";var optionInfoText='Some Text';var optionInfoId='some-id';describe('<OptionInfo />',function(){it('should not render when not required and no price',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(OptionInfo,{required:false,label:"",price:0,currency:"EUR",info:optionInfoText,optionInfoId:optionInfoId}),mockRenderOptions);expect(wrapper).toBeEmptyRender();});it('should render required element',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(OptionInfo,{required:true,label:"",price:0,currency:"EUR",info:optionInfoText,optionInfoId:optionInfoId}),mockRenderOptions).dive();expect(wrapper).toMatchSnapshot();});it('should render price element',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(OptionInfo,{required:false,label:"Label",price:10,currency:"EUR",info:optionInfoText,optionInfoId:optionInfoId}),mockRenderOptions).dive();expect(wrapper).toMatchSnapshot();});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var colors=themeConfig.colors,variables=themeConfig.variables;var info=css({marginTop:variables.gap.xsmall,padding:"0 ".concat(variables.gap.big,"px")}).toString();var required=css({color:
|
|
1
|
+
import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var colors=themeConfig.colors,variables=themeConfig.variables;var info=css({marginTop:variables.gap.xsmall,padding:"0 ".concat(variables.gap.big,"px")}).toString();var required=css({color:colors.shade9,fontSize:'0.825rem'}).toString();var price=css({textAlign:'right',fontSize:'0.825rem'}).toString();export default{info:info,required:required,price:price};
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function
|
|
1
|
+
function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{Fragment,PureComponent}from'react';import PropTypes from'prop-types';import Transition from'react-transition-group/Transition';import debounce from'lodash/debounce';import TextField from'@shopgate/pwa-ui-shared/Form/TextField';import InfoIcon from'@shopgate/pwa-ui-shared/icons/InfoIcon';import withShowModal from'@shopgate/pwa-common/helpers/modal/withShowModal';import{broadcastLiveMessage}from'@shopgate/engage/a11y';import transition from"../../../Characteristics/transition";import{ProductContext}from"../../../context";import OptionInformation from"./components/OptionInfo";import styles from"./style";/**
|
|
2
2
|
* The TextOption component
|
|
3
|
-
*/var TextOption=/*#__PURE__*/function(_PureComponent){
|
|
3
|
+
*/var TextOption=/*#__PURE__*/function(_PureComponent){_inherits(TextOption,_PureComponent);var _super=_createSuper(TextOption);/**
|
|
4
|
+
* @param {Object} props The component props.
|
|
5
|
+
*/function TextOption(props){var _this;_classCallCheck(this,TextOption);_this=_super.call(this,props);_defineProperty(_assertThisInitialized(_this),"setRef",function(ref){_this.ref=ref;});_defineProperty(_assertThisInitialized(_this),"removeHighlight",function(){_this.setState({highlight:false});});_defineProperty(_assertThisInitialized(_this),"checkInput",function(){if(!_this.props.required){return true;}if(_this.props.value){return true;}broadcastLiveMessage('product.fill_out_required_input_first');_this.ref.scrollIntoView({behavior:'smooth'});_this.setState({highlight:true});return false;});_defineProperty(_assertThisInitialized(_this),"infoIcon",function(){if(!_this.props.info){return null;}var _this$props=_this.props,label=_this$props.label,info=_this$props.info,showModal=_this$props.showModal;return/*#__PURE__*/React.createElement("div",{onClick:function onClick(){return showModal({title:label,message:info});},"aria-hidden":true},/*#__PURE__*/React.createElement(InfoIcon,{size:24,className:styles.infoIcon}));});_defineProperty(_assertThisInitialized(_this),"handleKeyPress",function(event){// Enter key and on iOS also the "Done" button.
|
|
6
|
+
if(event.which===13){_this.ref.blur();}});_defineProperty(_assertThisInitialized(_this),"handleChange",function(val){_this.props.onChange(_this.props.id,val,_this.props.price);});_defineProperty(_assertThisInitialized(_this),"handleDebounced",debounce(_this.handleChange,300));_this.state={highlight:false};_this.ref=null;props.conditioner.addConditioner("text-option-".concat(props.id),_this.checkInput);return _this;}/**
|
|
4
7
|
* @param {Object} ref ref
|
|
5
|
-
*/
|
|
6
|
-
* Remove highlight state
|
|
7
|
-
*/_defineProperty(_this2,"removeHighlight",function(){_this2.setState({highlight:false});});/**
|
|
8
|
-
* Checks if required input is done.
|
|
9
|
-
* @return {boolean}
|
|
10
|
-
*/_defineProperty(_this2,"checkInput",function(){if(!_this2.props.required){return true;}if(_this2.props.value){return true;}broadcastLiveMessage('product.fill_out_required_input_first');_this2.ref.scrollIntoView({behavior:'smooth'});_this2.setState({highlight:true});return false;});/**
|
|
11
|
-
* @returns {JSX}
|
|
12
|
-
*/_defineProperty(_this2,"infoIcon",function(){if(!_this2.props.info){return null;}var _this2$props=_this2.props,label=_this2$props.label,info=_this2$props.info,showModal=_this2$props.showModal;return React.createElement("div",{onClick:function onClick(){return showModal({title:label,message:info});},"aria-hidden":true},React.createElement(InfoIcon,{size:24,className:styles.infoIcon}));});/**
|
|
13
|
-
* Handles form submits by key.
|
|
14
|
-
* @param {Object} event The event that caused the keypress.
|
|
15
|
-
*/_defineProperty(_this2,"handleKeyPress",function(event){// Enter key and on iOS also the "Done" button.
|
|
16
|
-
if(event.which===13){_this2.ref.blur();}});/**
|
|
17
|
-
* @param {string} val value.
|
|
18
|
-
*/_defineProperty(_this2,"handleChange",function(val){_this2.props.onChange(_this2.props.id,val,_this2.props.price);});_defineProperty(_this2,"handleDebounced",debounce(_this2.handleChange,300));_this2.state={highlight:false};_this2.ref=null;props.conditioner.addConditioner("text-option-".concat(props.id),_this2.checkInput);return _this2;}_inherits(TextOption,_PureComponent);return _createClass(TextOption,[{key:"render",value:/**
|
|
8
|
+
*/_createClass(TextOption,[{key:"render",value:/**
|
|
19
9
|
* @return {JSX}
|
|
20
|
-
*/function render(){var
|
|
21
|
-
* @param {Object} props The component props.
|
|
22
|
-
*/});export default withShowModal(function(props){return React.createElement(ProductContext.Consumer,null,function(_ref){var conditioner=_ref.conditioner;return React.createElement(TextOption,_extends({conditioner:conditioner},props));});});
|
|
10
|
+
*/function render(){var _this2=this;var _this$props2=this.props,id=_this$props2.id,label=_this$props2.label,value=_this$props2.value,required=_this$props2.required,price=_this$props2.price,info=_this$props2.info;var optionInfoId=id;return/*#__PURE__*/React.createElement("div",{className:styles.row},/*#__PURE__*/React.createElement(Transition,{"in":this.state.highlight,timeout:700,onEntered:this.removeHighlight},function(state){return/*#__PURE__*/React.createElement(Fragment,null,/*#__PURE__*/React.createElement("div",{className:styles.wrapper,style:transition[state]},/*#__PURE__*/React.createElement(TextField,{setRef:_this2.setRef,name:"text_".concat(id),value:value,onChange:_this2.handleDebounced,onKeyPress:_this2.handleKeyPress,placeholder:label,label:label,rightElement:_this2.infoIcon(),"data-test-id":label,hasUnderline:false,className:styles.element,attributes:{'aria-describedby':optionInfoId}})),/*#__PURE__*/React.createElement(OptionInformation,{label:label,required:required,price:price,info:info,optionInfoId:optionInfoId}));}));}}]);return TextOption;}(PureComponent);_defineProperty(TextOption,"defaultProps",{info:null,value:null});export default withShowModal(function(props){return/*#__PURE__*/React.createElement(ProductContext.Consumer,null,function(_ref){var conditioner=_ref.conditioner;return/*#__PURE__*/React.createElement(TextOption,_extends({conditioner:conditioner},props));});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var colors=themeConfig.colors,variables=themeConfig.variables;var row=css({marginBottom:variables.gap.small}).toString();var wrapper=css({backgroundColor:
|
|
1
|
+
import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var colors=themeConfig.colors,variables=themeConfig.variables;var row=css({marginBottom:variables.gap.small}).toString();var wrapper=css({backgroundColor:colors.shade8,padding:"".concat(variables.gap.small,"px ").concat(variables.gap.big,"px"),minHeight:56}).toString();var element=css({paddingBottom:0,'& label':{fontWeight:400,color:'inherit'},'& input':{fontWeight:500}}).toString();var infoIcon=css({color:colors.shade9}).toString();export default{row:row,wrapper:wrapper,element:element,infoIcon:infoIcon};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from'react';import{PRODUCT_OPTIONS}from'@shopgate/
|
|
1
|
+
import React from'react';import{PRODUCT_OPTIONS}from'@shopgate/pwa-common-commerce/product/constants/Portals';import SurroundPortals from'@shopgate/pwa-common/components/SurroundPortals';import{ProductContext}from"../context";import Content from"./components/Content";import Option from"./components/Option";import TextOption from"./components/TextOption";// Export for theme api
|
|
2
2
|
export{TextOption,Option as SelectOption};/**
|
|
3
3
|
* The Product Options component.
|
|
4
4
|
* @returns {JSX}
|
|
5
|
-
*/var Options=function Options(){return
|
|
5
|
+
*/var Options=function Options(){return/*#__PURE__*/React.createElement(ProductContext.Consumer,null,function(_ref){var productId=_ref.productId,variantId=_ref.variantId,options=_ref.options;return/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PRODUCT_OPTIONS,portalProps:{productId:variantId||productId}},/*#__PURE__*/React.createElement(Content/* props needed in connector */,{productId:variantId||productId,currentOptions:options}));});};export default Options;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from'react';import PropTypes from'prop-types';import{I18n,SurroundPortals}from'@shopgate/engage/components';import{isBeta,useWidgetSettings}from'@shopgate/engage/core';import{PRODUCT_ORDER_QUANTITY}from'@shopgate/engage/product';import withProductStock from"../../hocs/withProductStock";import{hint}from"./style";/**
|
|
2
2
|
* The Product Order Quantity Hint component.
|
|
3
3
|
* @return {JSX}
|
|
4
|
-
*/var OrderQuantityHint=function OrderQuantityHint(_ref){var stock=_ref.stock
|
|
5
|
-
return true;}return isBeta()&&settings.show===true;},[settings.show]);var unit=useMemo(function(){if(hasCatchWeight){var key="formats.unitOfMeasurement.".concat(productUnit);var text=i18n.text(key);return text!==key?text:productUnit||'';}return'';},[hasCatchWeight,productUnit]);var maxDecimals=useMemo(function(){return hasCatchWeight&&productUnit?2:0;},[hasCatchWeight,productUnit]);return React.createElement("div",{className:className},React.createElement(SurroundPortals,{portalName:PRODUCT_ORDER_QUANTITY,portalProps:{stock:stock}},showContent&&stock&&!!stock.minOrderQuantity&&React.createElement("div",{className:hint},React.createElement(I18n.Text,{string:"product.minOrderQuantity",params:{quantity:formatFloat(stock.minOrderQuantity,maxDecimals),unit:unit}})),showContent&&stock&&!!stock.maxOrderQuantity&&React.createElement("div",{className:hint},React.createElement(I18n.Text,{string:"product.maxOrderQuantity",params:{quantity:formatFloat(stock.maxOrderQuantity,maxDecimals),unit:unit}}))));};OrderQuantityHint.defaultProps={className:null,stock:null,product:null};export default withProduct(withProductStock(OrderQuantityHint));
|
|
4
|
+
*/var OrderQuantityHint=function OrderQuantityHint(_ref){var stock=_ref.stock;if(!isBeta()){return null;}var settings=useWidgetSettings('@shopgate/engage/product/OrderQuantityHint');return/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PRODUCT_ORDER_QUANTITY,portalProps:{stock:stock}},settings.show&&stock&&!!stock.minOrderQuantity&&/*#__PURE__*/React.createElement("div",{className:hint},/*#__PURE__*/React.createElement(I18n.Text,{string:"product.minOrderQuantity",params:{quantity:stock.minOrderQuantity}})),settings.show&&stock&&!!stock.maxOrderQuantity&&/*#__PURE__*/React.createElement("div",{className:hint},/*#__PURE__*/React.createElement(I18n.Text,{string:"product.maxOrderQuantity",params:{quantity:stock.maxOrderQuantity}})));};OrderQuantityHint.defaultProps={stock:null};export default withProductStock(OrderQuantityHint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';export var hint=css({fontSize:'0.75rem',color:
|
|
1
|
+
import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';export var hint=css({fontSize:'0.75rem',color:themeConfig.colors.shade3});
|
|
@@ -5,4 +5,4 @@ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj
|
|
|
5
5
|
* @param {string} props.currency The currency of the price.
|
|
6
6
|
* @param {number} props.difference The price difference.
|
|
7
7
|
* @return {JSX}
|
|
8
|
-
*/var PriceDifference=function PriceDifference(_ref){var className=_ref.className,currency=_ref.currency,difference=_ref.difference;if(difference===0){return null;}var priceClassName=classNames(className,
|
|
8
|
+
*/var PriceDifference=function PriceDifference(_ref){var _classNames;var className=_ref.className,currency=_ref.currency,difference=_ref.difference;if(difference===0){return null;}var priceClassName=classNames(className,(_classNames={},_defineProperty(_classNames,styles.positive,difference>0),_defineProperty(_classNames,styles.negative,difference<0),_classNames));return/*#__PURE__*/React.createElement(Price,{className:priceClassName,currency:currency,unitPrice:difference});};PriceDifference.defaultProps={className:''};export default PriceDifference;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var colors=themeConfig.colors;var positive=css({color:colors.shade4,':before':{content:'"+"'}}).toString();var negative=css({color:
|
|
1
|
+
import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var colors=themeConfig.colors;var positive=css({color:colors.shade4,':before':{content:'"+"'}}).toString();var negative=css({color:colors.primary}).toString();export default{positive:positive,negative:negative};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React,{useMemo}from'react';import PropTypes from'prop-types';import{css}from'glamor';import classNames from'classnames';import kebabCase from'lodash/kebabCase';import{SurroundPortals}from"../../../components";import{PORTAL_PRODUCT_BADGES}from"../../../components/constants";var styles={root:css({position:'absolute',paddingLeft:10,left:0,top:10,zIndex:5,transform:'translate3d(0, 0, 0)',display:'flex',pointerEvents:'none',width:'100%',' > *:empty':{display:'none'}}).toString()};/**
|
|
2
2
|
* The ProductBadges component
|
|
3
3
|
* @param {Object} props The component props
|
|
4
|
-
* @returns {JSX
|
|
5
|
-
*/var ProductBadges=function ProductBadges(_ref){var children=_ref.children,location=_ref.location,productId=_ref.productId,portalProps=_ref.portalProps,className=_ref.className;var props=useMemo(function(){return _extends({},portalProps,{location:location,productId:productId});},[location,portalProps,productId]);var locationClass=useMemo(function(){if(!location){return'';}return"product_badges__".concat(kebabCase(location));},[location]);return
|
|
4
|
+
* @returns {JSX}
|
|
5
|
+
*/var ProductBadges=function ProductBadges(_ref){var children=_ref.children,location=_ref.location,productId=_ref.productId,portalProps=_ref.portalProps,className=_ref.className;var props=useMemo(function(){return _extends({},portalProps,{location:location,productId:productId});},[location,portalProps,productId]);var locationClass=useMemo(function(){if(!location){return'';}return"product_badges__".concat(kebabCase(location));},[location]);return/*#__PURE__*/React.createElement("div",{className:classNames(styles.root,className,'product_badges',locationClass)},/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PORTAL_PRODUCT_BADGES,portalProps:props},children));};ProductBadges.defaultProps={portalProps:null,children:PropTypes.node,className:''};export default ProductBadges;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React,{Fragment}from'react';import PropTypes from'prop-types';import{isBeta,useWidgetSettings}from'@shopgate/engage/core';import{Link,Ellipsis,Portal,RatingStars,DiscountBadge}from'@shopgate/engage/components';import{getProductRoute,MapPriceHint,ProductImage,OrderQuantityHint,FeaturedMedia,Swatches,ProductBadges}from'@shopgate/engage/product';import*as portals from'@shopgate/pwa-common-commerce/category';import ProductGridPrice from"../ProductGridPrice";import{getProductImageSettings}from"../../helpers";import styles from"./style";var location='productCard';/**
|
|
2
2
|
* The ProductCard component.
|
|
3
3
|
* @param {Object} props The component props.
|
|
4
4
|
* @param {Object} props.product The product data.
|
|
@@ -6,14 +6,5 @@ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<argum
|
|
|
6
6
|
* @param {boolean} props.hideRating Whether the rating should be hidden.
|
|
7
7
|
* @param {boolean} props.hideName Whether the name should be hidden.
|
|
8
8
|
* @param {number} props.titleRows The max number of rows for the product title.
|
|
9
|
-
* @
|
|
10
|
-
|
|
11
|
-
*/function ProductCard(props){var product=props.product,hidePrice=props.hidePrice,hideRating=props.hideRating,hideName=props.hideName,titleRows=props.titleRows,url=props.url;var _useProductListType=useProductListType(),meta=_useProductListType.meta;var _getProductImageSetti=getProductImageSettings(),gridResolutions=_getProductImageSetti.ListImage;var _useWidgetSettings=useWidgetSettings('@shopgate/engage/rating'),_useWidgetSettings$sh=_useWidgetSettings.showEmptyRatingStars,showEmptyRatingStars=_useWidgetSettings$sh===void 0?false:_useWidgetSettings$sh;var showRatings=useMemo(function(){var _product$rating;if(!hideRating&&(product===null||product===void 0?void 0:(_product$rating=product.rating)===null||_product$rating===void 0?void 0:_product$rating.average)>0){return true;}if(!hideRating&&showEmptyRatingStars&&(product===null||product===void 0?void 0:product.rating)){return true;}return false;},[hideRating,product,showEmptyRatingStars]);return React.createElement(Link,{className:"engage__product-card",href:url||getProductRoute(product.id),itemProp:"item",itemScope:true,itemType:"http://schema.org/Product",tabIndex:0,state:_extends({},meta)},isBeta()&&product.featuredMedia?React.createElement(FeaturedMedia,{type:product.featuredMedia.type,url:product.featuredMedia.url,altText:product.featuredMedia.altText}):React.createElement(ProductImage,{src:product.featuredImageBaseUrl,resolutions:gridResolutions,alt:product.name,itemProp:"image"}),React.createElement(ProductBadges,{location:location,productId:product.id},!!(!hidePrice&&product.price.discount)&&React.createElement("div",{className:styles.badgeWrapper},React.createElement(SurroundPortals,{portalName:PRODUCT_ITEM_DISCOUNT,portalProps:{productId:product.id}},React.createElement(DiscountBadge,{text:"-".concat(product.price.discount,"%")})))),!(hidePrice&&hideRating)&&React.createElement("div",{className:"".concat(styles.details," engage__product-card__information")},showRatings&&React.createElement(RatingStars,{value:product.rating.average}),React.createElement(Swatches,{productId:product.id}),!hideName&&React.createElement(ProductName,{name:product.name,className:styles.title,testId:"Productname: ".concat(product.name),itemProp:"name",rows:titleRows||3}),React.createElement(MapPriceHint,{productId:product.id}),React.createElement(OrderQuantityHint,{productId:product.id}),!hidePrice&&React.createElement(SurroundPortals,{portalName:PRODUCT_ITEM_PRICE,portalProps:{productId:product.id,location:location}},React.createElement(ProductGridPrice,{product:product}))));}/**
|
|
12
|
-
* After a refactoring of the Theme API ProductCard component, this component replaced a
|
|
13
|
-
* sub-component of the ProductCard.
|
|
14
|
-
* The original implementation exposed a couple of sub-components that don't exist in the new
|
|
15
|
-
* implementation. Since we expect that they are not used anywhere, we replace them with mocks.
|
|
16
|
-
*
|
|
17
|
-
* Link to a GitHub tag that contains the original implementation:
|
|
18
|
-
* @link https://github.com/shopgate/pwa/blob/v7.27.1/themes/theme-ios11/themeApi/ProductCard/components/Render/index.jsx#L115
|
|
19
|
-
*/ProductCard.Badge=function(){return null;};ProductCard.Price=function(){return null;};ProductCard.Title=function(){return null;};ProductCard.defaultProps={hideName:false,hidePrice:false,hideRating:false,titleRows:3,url:null};export default ProductCard;
|
|
9
|
+
* @return {JSX}
|
|
10
|
+
*/function ProductCard(props){var product=props.product,hidePrice=props.hidePrice,hideRating=props.hideRating,hideName=props.hideName,titleRows=props.titleRows,linkState=props.linkState,linkReplace=props.linkReplace,linkHref=props.linkHref;var _getProductImageSetti=getProductImageSettings(),gridResolutions=_getProductImageSetti.ListImage;var _useWidgetSettings=useWidgetSettings('@shopgate/engage/rating'),_useWidgetSettings$sh=_useWidgetSettings.showEmptyRatingStars,showEmptyRatingStars=_useWidgetSettings$sh===void 0?false:_useWidgetSettings$sh;var showRatings=false;if(!hideRating&&product.rating&&product.rating.average>0){showRatings=true;}else if(!hideRating&&showEmptyRatingStars&&product.rating){showRatings=true;}return/*#__PURE__*/React.createElement(Link,{className:"engage__product-card",tagName:"a",href:linkHref||getProductRoute(product.id),itemProp:"item",itemScope:true,itemType:"http://schema.org/Product",state:linkState,replace:linkReplace},isBeta()&&product.featuredMedia?/*#__PURE__*/React.createElement(FeaturedMedia,{type:product.featuredMedia.type,url:product.featuredMedia.url,altText:product.featuredMedia.altText}):/*#__PURE__*/React.createElement(ProductImage,{src:product.featuredImageBaseUrl,resolutions:gridResolutions,alt:product.name,itemProp:"image"}),/*#__PURE__*/React.createElement(ProductBadges,{location:location,productId:product.id},!!(!hidePrice&&product.price.discount)&&/*#__PURE__*/React.createElement("div",{className:styles.badgeWrapper},/*#__PURE__*/React.createElement(Portal,{name:portals.PRODUCT_ITEM_DISCOUNT_BEFORE,props:{productId:product.id}}),/*#__PURE__*/React.createElement(Portal,{name:portals.PRODUCT_ITEM_DISCOUNT,props:{productId:product.id}},/*#__PURE__*/React.createElement(DiscountBadge,{text:"-".concat(product.price.discount,"%")})),/*#__PURE__*/React.createElement(Portal,{name:portals.PRODUCT_ITEM_DISCOUNT_AFTER,props:{productId:product.id}}))),!(hidePrice&&hideRating)&&/*#__PURE__*/React.createElement("div",{className:styles.details},showRatings&&/*#__PURE__*/React.createElement(RatingStars,{value:product.rating.average}),/*#__PURE__*/React.createElement(Swatches,{productId:product.id}),!hideName&&/*#__PURE__*/React.createElement("div",{itemProp:"name",className:styles.title,"data-test-id":"Productname: ".concat(product.name)},/*#__PURE__*/React.createElement(Ellipsis,{rows:titleRows||3},product.name)),/*#__PURE__*/React.createElement(MapPriceHint,{productId:product.id}),/*#__PURE__*/React.createElement(OrderQuantityHint,{productId:product.id}),!hidePrice&&/*#__PURE__*/React.createElement(Fragment,null,/*#__PURE__*/React.createElement(Portal,{name:portals.PRODUCT_ITEM_PRICE_BEFORE,props:{productId:product.id,location:location}}),/*#__PURE__*/React.createElement(Portal,{name:portals.PRODUCT_ITEM_PRICE,props:{productId:product.id,location:location}},/*#__PURE__*/React.createElement(ProductGridPrice,{price:product.price})),/*#__PURE__*/React.createElement(Portal,{name:portals.PRODUCT_ITEM_PRICE_AFTER,props:{productId:product.id,location:location}}))));}ProductCard.defaultProps={linkState:{},linkReplace:false,linkHref:''};export default ProductCard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from'glamor';var details=css({padding:'12px 16px',lineHeight:1.35}).toString();var title=css({fontWeight:'500',lineHeight:1.15,marginTop:1}).toString();var badgeWrapper=css({minWidth:40}).toString();export default{badgeWrapper:badgeWrapper,details:details,title:title};
|
|
1
|
+
import{css}from'glamor';import{themeConfig,themeName}from'@shopgate/pwa-common/helpers/config';var isIOS=themeName.includes('ios');var colors=themeConfig.colors;var container=css(isIOS?{fontSize:14}:{position:'relative',display:'block',background:colors.light,fontSize:14,height:'100%'}).toString();var details=css({padding:'12px 16px',lineHeight:1.35}).toString();var title=css({fontWeight:'500',lineHeight:1.15,marginTop:1}).toString();var badgeWrapper=css({minWidth:40}).toString();var wishlist=css({display:'none',position:'absolute',right:16,left:'auto',transform:'translate3d(0, -50%, 0)'}).toString();export default{badgeWrapper:badgeWrapper,container:container,details:details,title:title,wishlist:wishlist};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from'react';export default
|
|
1
|
+
import React from'react';export default/*#__PURE__*/React.createContext();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import isMatch from'lodash/isMatch';import appConfig from'@shopgate/pwa-common/helpers/config';var variantSelectionMode=appConfig.variantSelectionMode,_appConfig$product=appConfig.product
|
|
1
|
+
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import isMatch from'lodash/isMatch';import appConfig from'@shopgate/pwa-common/helpers/config';var variantSelectionMode=appConfig.variantSelectionMode,_appConfig$product=appConfig.product;_appConfig$product=_appConfig$product===void 0?{}:_appConfig$product;var variantPreselect=_appConfig$product.variantPreselect;var preselectVariant=variantPreselect||parseInt(variantSelectionMode,10)===1;/**
|
|
2
2
|
* Returns the index of a particular characteristic from a set of characteristics.
|
|
3
3
|
* @param {Array} characteristics The characteristics of a product.
|
|
4
4
|
* @param {number} characteristicId The id of the characteristic to find.
|
|
@@ -1,39 +1,25 @@
|
|
|
1
|
-
function _typeof(obj){
|
|
1
|
+
function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{Component}from'react';import PropTypes from'prop-types';import isMatch from'lodash/isMatch';import isEqual from'lodash/isEqual';import{broadcastLiveMessage}from'@shopgate/engage/a11y';import connect from"./connector";import VariantsContext from"./context";import{isCharacteristicEnabled,getSelectedValue,prepareState,selectCharacteristics}from"./helpers";/**
|
|
2
2
|
* The ProductCharacteristics component.
|
|
3
|
-
*/var ProductCharacteristics=/*#__PURE__*/function(_Component){
|
|
4
|
-
*
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* @return {boolean}
|
|
9
|
-
*/_defineProperty(_this2,"checkSelection",function(){var characteristics=_this2.state.characteristics;var _this2$props=_this2.props,variants=_this2$props.variants,variantId=_this2$props.variantId;if(!variants){return true;}var filteredValues=Object.keys(characteristics).filter(function(key){return!!characteristics[key];});var selected=!!(filteredValues.length===variants.characteristics.length&&variantId);if(!selected){var firstUnselected=_this2.findUnselectedCharacteristic();if(firstUnselected){var ref=_this2.refsStore[firstUnselected.id];// Focus the item for screen readers and broadcast a related live message.
|
|
10
|
-
ref.current.focus();var option=ref.current.innerText;broadcastLiveMessage('product.pick_option_first',{params:{option:option}});if(responsiveCondition('>xs',{webOnly:true})){ref.current.scrollIntoView({behavior:'smooth',block:'center'});}else{ref.current.scrollIntoView({behavior:'smooth'});}_this2.setState({highlight:firstUnselected.id});}}return selected;});_defineProperty(_this2,"checkSelectedCharacteristics",function(){var characteristics=_this2.state.characteristics;var _this2$props2=_this2.props,variantId=_this2$props2.variantId,variants=_this2$props2.variants,finishTimeout=_this2$props2.finishTimeout;if(!variants){return;}var filteredValues=Object.keys(characteristics).filter(function(key){return!!characteristics[key];});if(filteredValues.length!==variants.characteristics.length){return;}var products=variants.products.filter(function(product){return isMatch(product.characteristics,characteristics);});if(!products.length){return;}if(products[0].id===variantId){return;}setTimeout(function(){_this2.props.navigate(products[0].id);},finishTimeout);});/**
|
|
11
|
-
* Stores a selected characteristic into the local state.
|
|
12
|
-
* @param {Object} selection The selected item.
|
|
13
|
-
*/_defineProperty(_this2,"handleSelection",function(selection){var _this2$props3=_this2.props,variants=_this2$props3.variants,setCharacteristics=_this2$props3.setCharacteristics;var id=selection.id,value=selection.value;_this2.setState(function(_ref){var characteristics=_ref.characteristics;var state=prepareState(id,value,characteristics,variants.characteristics,variants.products);setCharacteristics(state);return{characteristics:_extends({},state),highlight:null};},_this2.checkSelectedCharacteristics);});/**
|
|
14
|
-
* @param {Object} selections The selections stored in the state.
|
|
15
|
-
* @param {string} charId The current characteristic ID.
|
|
16
|
-
* @param {Array} values The characteristic values.
|
|
17
|
-
* @param {number} charIndex The characteristic index.
|
|
18
|
-
* @param {string|null} selectedValue selectedValue
|
|
19
|
-
* @param {boolean} charDisabled Whether the characteristic for the values is disabled
|
|
20
|
-
* @return {Array}
|
|
21
|
-
*/_defineProperty(_this2,"buildValues",function(selections,charId,values,charIndex,selectedValue,charDisabled){// If this is the first characteristic then all values are selectable.
|
|
22
|
-
if(charIndex===0){return values.map(function(value){return _extends({},value,{selectable:!charDisabled,selected:selectedValue===value.id});});}var variants=_this2.props.variants;var subset={};Object.keys(selections).forEach(function(item,index){if(index<charIndex){subset[item]=selections[item];}});// Filter products that match or partially match the current characteristic selection.
|
|
3
|
+
*/var ProductCharacteristics=/*#__PURE__*/function(_Component){_inherits(ProductCharacteristics,_Component);var _super=_createSuper(ProductCharacteristics);/**
|
|
4
|
+
* @param {Object} props The component props.
|
|
5
|
+
*/function ProductCharacteristics(_props){var _this;_classCallCheck(this,ProductCharacteristics);_this=_super.call(this,_props);_defineProperty(_assertThisInitialized(_this),"setRefs",function(props){var variants=props.variants;if(variants){variants.characteristics.forEach(function(_char){_this.refsStore[_char.id]=/*#__PURE__*/React.createRef();});}});_defineProperty(_assertThisInitialized(_this),"checkSelection",function(){var characteristics=_this.state.characteristics;var _this$props=_this.props,variants=_this$props.variants,variantId=_this$props.variantId;if(!variants){return true;}var filteredValues=Object.keys(characteristics).filter(function(key){return!!characteristics[key];});var selected=!!(filteredValues.length===variants.characteristics.length&&variantId);if(!selected){var firstUnselected=_this.findUnselectedCharacteristic();if(firstUnselected){var ref=_this.refsStore[firstUnselected.id];// Focus the item for screen readers and broadcast a related live message.
|
|
6
|
+
ref.current.focus();var option=ref.current.innerText;broadcastLiveMessage('product.pick_option_first',{params:{option:option}});ref.current.scrollIntoView({behavior:'smooth'});_this.setState({highlight:firstUnselected.id});}}return selected;});_defineProperty(_assertThisInitialized(_this),"checkSelectedCharacteristics",function(){var characteristics=_this.state.characteristics;var _this$props2=_this.props,variantId=_this$props2.variantId,variants=_this$props2.variants,finishTimeout=_this$props2.finishTimeout;if(!variants){return;}var filteredValues=Object.keys(characteristics).filter(function(key){return!!characteristics[key];});if(filteredValues.length!==variants.characteristics.length){return;}var products=variants.products.filter(function(product){return isMatch(product.characteristics,characteristics);});if(!products.length){return;}if(products[0].id===variantId){return;}setTimeout(function(){_this.props.navigate(products[0].id);},finishTimeout);});_defineProperty(_assertThisInitialized(_this),"handleSelection",function(selection){var _this$props3=_this.props,variants=_this$props3.variants,setCharacteristics=_this$props3.setCharacteristics;var id=selection.id,value=selection.value;_this.setState(function(_ref){var characteristics=_ref.characteristics;var state=prepareState(id,value,characteristics,variants.characteristics,variants.products);setCharacteristics(state);return{characteristics:_extends({},state),highlight:null};},_this.checkSelectedCharacteristics);});_defineProperty(_assertThisInitialized(_this),"buildValues",function(selections,charId,values,charIndex,selectedValue,charDisabled){// If this is the first characteristic then all values are selectable.
|
|
7
|
+
if(charIndex===0){return values.map(function(value){return _extends({},value,{selectable:!charDisabled,selected:selectedValue===value.id});});}var variants=_this.props.variants;var subset={};Object.keys(selections).forEach(function(item,index){if(index<charIndex){subset[item]=selections[item];}});// Filter products that match or partially match the current characteristic selection.
|
|
23
8
|
var products=variants.products.filter(function(_ref2){var characteristics=_ref2.characteristics;return isMatch(characteristics,subset);});// Check if any of the values are present inside any of the matching products.
|
|
24
|
-
return values.map(function(value){var selectable=products.some(function(_ref3){var characteristics=_ref3.characteristics;return isMatch(characteristics,_defineProperty({},charId,value.id));});return _extends({},value,{selectable:charDisabled?false:selectable,selected:selectedValue===value.id});});})
|
|
25
|
-
* Resets the highlight state
|
|
26
|
-
*/_defineProperty(_this2,"resetHighlight",function(){_this2.setState({highlight:null});});_this2.refsStore={};var _characteristics=selectCharacteristics(_props);_this2.state={highlight:null,characteristics:_characteristics};_props.setCharacteristics(_characteristics);_this2.setRefs(_props);_props.conditioner.addConditioner('product-variants',_this2.checkSelection);return _this2;}/** @inheritDoc */_inherits(ProductCharacteristics,_Component);return _createClass(ProductCharacteristics,[{key:"componentDidMount",value:function componentDidMount(){this.checkSelectedCharacteristics();}/**
|
|
9
|
+
return values.map(function(value){var selectable=products.some(function(_ref3){var characteristics=_ref3.characteristics;return isMatch(characteristics,_defineProperty({},charId,value.id));});return _extends({},value,{selectable:charDisabled?false:selectable,selected:selectedValue===value.id});});});_defineProperty(_assertThisInitialized(_this),"resetHighlight",function(){_this.setState({highlight:null});});_this.refsStore={};var _characteristics=selectCharacteristics(_props);_this.state={highlight:null,characteristics:_characteristics};_props.setCharacteristics(_characteristics);_this.setRefs(_props);_props.conditioner.addConditioner('product-variants',_this.checkSelection);return _this;}/** @inheritDoc */_createClass(ProductCharacteristics,[{key:"componentDidMount",value:function componentDidMount(){this.checkSelectedCharacteristics();}/**
|
|
27
10
|
* @param {Object} nextProps The next component props.
|
|
28
11
|
*/},{key:"UNSAFE_componentWillReceiveProps",value:function UNSAFE_componentWillReceiveProps(nextProps){if(!this.props.variants&&nextProps.variants){// Initialize refs and characteristics when the variants prop was updated with a valid value.
|
|
29
12
|
this.setRefs(nextProps);var characteristics=selectCharacteristics(nextProps);this.setState({characteristics:characteristics},this.checkSelectedCharacteristics);// Inform parent component about potential updates e.g. preselected characteristic values
|
|
30
13
|
nextProps.setCharacteristics(characteristics);}else if(nextProps.characteristics&&!isEqual(this.state.characteristics,nextProps.characteristics)){// Sync back characteristics from parent if set
|
|
31
|
-
this.setState({characteristics:nextProps.characteristics});}}
|
|
14
|
+
this.setState({characteristics:nextProps.characteristics});}}/**
|
|
15
|
+
* Sets the refs to the characteristics selects.
|
|
16
|
+
* @param {Object} props The props to check against.
|
|
17
|
+
*/},{key:"findUnselectedCharacteristic",value:/**
|
|
32
18
|
* Finds the first unselected characteristic.
|
|
33
19
|
* @return {Object|null}
|
|
34
|
-
*/function findUnselectedCharacteristic(){var characteristics=this.state.characteristics;var unselected=this.props.variants.characteristics.filter(function(_char2){return!characteristics.hasOwnProperty(_char2.id);});if(unselected.length){return unselected[0];}return null;}
|
|
20
|
+
*/function findUnselectedCharacteristic(){var characteristics=this.state.characteristics;var unselected=this.props.variants.characteristics.filter(function(_char2){return!characteristics.hasOwnProperty(_char2.id);});if(unselected.length){return unselected[0];}return null;}/**
|
|
21
|
+
* Resets the highlight state
|
|
22
|
+
*/},{key:"render",value:/**
|
|
35
23
|
* @return {JSX}
|
|
36
|
-
*/function render(){var
|
|
37
|
-
select:
|
|
38
|
-
* @param {Object} props The component props.
|
|
39
|
-
*/});export default connect(ProductCharacteristics);
|
|
24
|
+
*/function render(){var _this2=this;var characteristics=this.state.characteristics;var variants=this.props.variants;if(!variants){return null;}return/*#__PURE__*/React.createElement(VariantsContext.Provider,{value:this.state},variants.characteristics.map(function(_char3,index){var disabled=!isCharacteristicEnabled(characteristics,index);var selected=getSelectedValue(_char3.id,characteristics);var values=_this2.buildValues(characteristics,_char3.id,_char3.values,index,selected,disabled);return _this2.props.render({charRef:_this2.refsStore[_char3.id],disabled:disabled,highlight:_this2.state.highlight===_char3.id,id:_char3.id,key:_char3.id,label:_char3.label,swatch:!!_char3.swatch,// BETA
|
|
25
|
+
select:_this2.handleSelection,selected:selected,values:values,resetHighlight:_this2.resetHighlight});}));}}]);return ProductCharacteristics;}(Component);_defineProperty(ProductCharacteristics,"defaultProps",{finishTimeout:0,variantId:null,variants:null,characteristics:null});export default connect(ProductCharacteristics);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React from'react';import PropTypes from'prop-types';import{css}from'glamor';import{SurroundPortals}from'@shopgate/engage/components';import DiscountBadge from'@shopgate/pwa-ui-shared/DiscountBadge';import{PRODUCT_DISCOUNT}from'@shopgate/pwa-common-commerce/product/constants/Portals';import{useWidgetSettings}from'@shopgate/engage/core';import ProductBadges from"../ProductBadges";import styles from"./style";import connect from"./connector";/**
|
|
2
2
|
* ProductDiscountBadge
|
|
3
|
-
* @return {JSX
|
|
4
|
-
*/var ProductDiscountBadge=function ProductDiscountBadge(_ref){var productId=_ref.productId,discount=_ref.discount;var _ref2=useWidgetSettings('@shopgate/engage/product/components/ProductDiscountBadge')||{},_ref2$pdp=_ref2.pdp,pdp=_ref2$pdp===void 0?{show:false,style:{}}:_ref2$pdp;return
|
|
3
|
+
* @return {JSX}
|
|
4
|
+
*/var ProductDiscountBadge=function ProductDiscountBadge(_ref){var productId=_ref.productId,discount=_ref.discount;var _ref2=useWidgetSettings('@shopgate/engage/product/components/ProductDiscountBadge')||{},_ref2$pdp=_ref2.pdp,pdp=_ref2$pdp===void 0?{show:false,style:{}}:_ref2$pdp;return/*#__PURE__*/React.createElement(ProductBadges,{className:styles.portal,location:"productDiscountBadge",productId:productId,portalProps:_extends({},pdp)},pdp.show&&discount?/*#__PURE__*/React.createElement("div",{className:"".concat(styles.container," ").concat(css(pdp.style)," theme__product__product-discount"),"aria-hidden":true},/*#__PURE__*/React.createElement(SurroundPortals,{portalName:PRODUCT_DISCOUNT,portalProps:{productId:productId,discount:discount}},/*#__PURE__*/React.createElement(DiscountBadge,{className:styles.badge,text:"-".concat(discount,"%")}))):null);};ProductDiscountBadge.defaultProps={discount:null};export default connect(ProductDiscountBadge);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from'react';import{mount}from'enzyme';import configureStore from'redux-mock-store';import{Provider}from'react-redux';import{useWidgetSettings}from'@shopgate/engage/core/hooks/useWidgetSettings';import{mockedProduct1,mockedStateWithDiscount,mockedStateWithoutDiscount}from"./mock";import ProductDiscountBadge from"./index";jest.mock('@shopgate/engage/
|
|
1
|
+
import React from'react';import{mount}from'enzyme';import configureStore from'redux-mock-store';import{Provider}from'react-redux';import{useWidgetSettings}from'@shopgate/engage/core/hooks/useWidgetSettings';import{mockedProduct1,mockedStateWithDiscount,mockedStateWithoutDiscount}from"./mock";import ProductDiscountBadge from"./index";jest.mock('@shopgate/engage/core/hooks/useWidgetSettings',function(){return{useWidgetSettings:jest.fn()};});describe('<ProductDiscountBadge />',function(){var mockedStore=configureStore();beforeEach(function(){useWidgetSettings.mockReturnValue({pdp:{show:true,style:{color:'blue'}}});});/**
|
|
2
2
|
* createComponent
|
|
3
3
|
* @param {Object} mockedState mockedState
|
|
4
4
|
* @return {*}
|
|
5
|
-
*/var createComponent=function createComponent(mockedState){var store=mockedStore(mockedState);return mount(React.createElement(Provider,{store:store}
|
|
5
|
+
*/var createComponent=function createComponent(mockedState){var store=mockedStore(mockedState);return mount(/*#__PURE__*/React.createElement(Provider,{store:store},/*#__PURE__*/React.createElement(ProductDiscountBadge,{productId:mockedProduct1.productId})));};it('should render without discount',function(){var wrapper=createComponent(mockedStateWithoutDiscount);expect(wrapper).toMatchSnapshot();});it('should render with discount',function(){var wrapper=createComponent(mockedStateWithDiscount);expect(wrapper).toMatchSnapshot();});it('should not render with discount if widgetSetting is false',function(){useWidgetSettings.mockReturnValue({pdp:{show:false,style:{}}});var wrapper=createComponent(mockedStateWithDiscount);expect(wrapper).toMatchSnapshot();});});
|