@shopgate/engage 7.12.7-beta.1 → 7.20.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/a11y/components/Section/index.js +2 -2
- package/a11y/components/VisuallyHidden/index.js +8 -0
- package/a11y/components/index.js +1 -0
- package/a11y/constants/index.js +1 -0
- package/a11y/helpers/index.js +1 -0
- package/a11y/index.js +1 -4
- package/account/actions/addContacts.js +2 -2
- package/account/actions/deleteContact.js +2 -2
- package/account/actions/deleteCustomer.js +2 -2
- package/account/actions/fetchContacts.js +2 -2
- package/account/actions/fetchCustomer.js +2 -2
- package/account/actions/updateContact.js +2 -2
- package/account/actions/updateCustomer.js +2 -2
- package/account/components/Account/Account.js +1 -1
- package/account/components/Account/Account.style.js +1 -1
- package/account/components/Profile/Profile.provider.js +3 -3
- package/account/components/ProfileContact/ProfileContact.js +1 -1
- package/account/reducers/index.js +1 -1
- package/app-rating/action-creators/appStart.js +3 -3
- package/app-rating/action-creators/ordersPlaced.js +3 -3
- package/app-rating/action-creators/popup.js +4 -4
- package/app-rating/action-creators/timer.js +3 -3
- package/app-rating/actions/showModal.js +6 -6
- package/app-rating/constants/index.js +2 -2
- package/app-rating/reducers/index.js +2 -2
- package/app-rating/subscriptions/index.js +4 -4
- package/back-in-stock/actions/index.js +14 -0
- package/back-in-stock/components/BackInStockButton/connector.js +1 -0
- package/back-in-stock/components/BackInStockButton/index.js +14 -0
- package/back-in-stock/components/BackInStockButton/style.js +1 -0
- package/back-in-stock/components/CharacteristicsButton/connector.js +3 -0
- package/back-in-stock/components/CharacteristicsButton/index.js +8 -0
- package/back-in-stock/components/ProductInfoBackInStockButton/connector.js +3 -0
- package/back-in-stock/components/ProductInfoBackInStockButton/index.js +10 -0
- package/back-in-stock/components/Subscriptions/components/List/index.js +4 -0
- package/back-in-stock/components/Subscriptions/components/Subscription/index.js +7 -0
- package/back-in-stock/components/Subscriptions/index.js +4 -0
- package/back-in-stock/components/index.js +1 -0
- package/back-in-stock/constants/Actions.js +1 -0
- package/back-in-stock/constants/Common.js +1 -0
- package/back-in-stock/constants/Pipelines.js +1 -0
- package/back-in-stock/constants/Portals.js +9 -0
- package/back-in-stock/constants/index.js +1 -0
- package/back-in-stock/hooks/index.js +4 -0
- package/back-in-stock/providers/BackInStockSubscriptionsProvider.connector.js +7 -0
- package/back-in-stock/providers/BackInStockSubscriptionsProvider.js +5 -0
- package/back-in-stock/providers/index.js +1 -0
- package/back-in-stock/reducers/index.js +5 -0
- package/back-in-stock/selectors/index.js +43 -0
- package/back-in-stock/streams/index.js +1 -0
- package/back-in-stock/subscriptions/index.js +11 -0
- package/cart/cart.helpers.js +9 -2
- package/cart/components/CartItem/CartItemCoupon.js +10 -6
- package/cart/components/CartItem/CartItemCouponCode.js +2 -2
- package/cart/components/CartItem/CartItemCouponDelete.js +1 -1
- package/cart/components/CartItem/CartItemCouponFreeShipping.js +1 -1
- package/cart/components/CartItem/CartItemCouponIcon.js +2 -2
- package/cart/components/CartItem/CartItemCouponLayout.style.js +5 -1
- package/cart/components/CartItem/CartItemCouponTitle.js +2 -2
- package/cart/components/CartItem/CartItemProductLayout.js +4 -2
- package/cart/components/CartItem/CartItemProductLayoutWide.style.js +1 -1
- package/cart/components/CartItem/CartItemProductTitle.js +2 -2
- package/cart/components/CartItem/CartItemQuantityPicker.js +26 -14
- package/cart/components/CartItem/CartItemSubstitution.js +1 -1
- package/cart/components/CartItems/CartItemCardReservation.js +1 -1
- package/cart/components/CartItems/CartItemGroupReservation.js +1 -1
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.style.js +1 -1
- package/cart/components/PaymentBar/PaymentBar.js +1 -1
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.style.js +1 -1
- package/cart/components/PaymentBar/PaymentBarPromotionCouponMessages.js +1 -1
- package/cart/index.js +3 -2
- package/cart/streams/index.js +1 -0
- package/category/actions/index.js +1 -0
- package/category/components/CategoryList/index.js +7 -0
- package/category/components/CategoryList/style.js +1 -0
- package/category/components/index.js +1 -1
- package/category/constants/index.js +1 -0
- package/category/helpers/index.js +1 -0
- package/category/index.js +1 -6
- package/category/selectors/index.js +2 -0
- package/category/streams/index.js +1 -1
- package/checkout/actions/errorCheckout.js +1 -1
- package/checkout/actions/fetchCheckoutOrder.js +1 -1
- package/checkout/actions/fetchPaymentMethods.js +1 -1
- package/checkout/actions/initializeCheckout.js +1 -1
- package/checkout/actions/prepareCheckout.js +2 -2
- package/checkout/actions/submitCheckoutOrder.js +1 -1
- package/checkout/actions/updateCheckoutOrder.js +1 -1
- package/checkout/components/Checkout/CheckoutPickupContactForm.config.js +1 -1
- package/checkout/components/Checkout/CheckoutSectionMessages.js +1 -1
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +1 -1
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationBilledTo.js +1 -1
- package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.config.js +1 -1
- package/checkout/components/PaymentMethodButton/PaymentMethodButton.js +1 -1
- package/checkout/components/ShippingMethods/ShippingMethods.js +4 -4
- package/checkout/components/index.js +1 -1
- package/checkout/constants/index.js +1 -1
- package/checkout/index.js +3 -4
- package/checkout/paymentMethods/index.js +2 -2
- package/checkout/paymentMethods/paypal/PaypalButtonApp.js +1 -1
- package/checkout/paymentMethods/paypal/PaypalButtonWeb.js +1 -1
- package/checkout/paymentMethods/paypal/PaypalPayButton.js +1 -1
- package/checkout/paymentMethods/paypal/PaypalProvider.js +1 -1
- package/checkout/paymentMethods/stripe/StripeButton.js +2 -2
- package/checkout/paymentMethods/stripe/StripeCreditCard.js +3 -3
- package/checkout/paymentMethods/stripe/StripeProvider.js +8 -8
- package/checkout/paymentMethods/stripe/sdk.js +3 -2
- package/checkout/providers/AddressBookProvider.js +1 -1
- package/checkout/providers/CheckoutProvider.js +8 -8
- package/components/ChipLayout/index.js +38 -0
- package/components/ChipLayout/spec.js +5 -0
- package/components/ChipLayout/style.js +5 -0
- package/components/ConditionalWrapper/ConditionalWrapper.js +7 -2
- package/components/Footer/Footer.js +7 -7
- package/components/Form/Builder/Builder.js +50 -29
- package/components/Form/Builder/ElementCheckbox.js +1 -1
- package/components/Form/Builder/ElementMultiSelect.js +1 -1
- package/components/Form/Builder/ElementPhoneNumber.js +3 -3
- package/components/Form/Builder/ElementRadio.js +1 -1
- package/components/Form/Builder/ElementSelect.js +1 -1
- package/components/Form/Builder/ElementText.js +3 -3
- package/components/Form/Builder/classes/ActionListener.constants.js +2 -2
- package/components/Form/Builder/classes/ActionListener.js +73 -16
- package/components/Form/Builder/helpers/buildFormElements.js +2 -2
- package/components/Form/Form.js +8 -5
- package/components/IntersectionVisibility/index.js +14 -7
- package/components/Logo/connector.js +4 -0
- package/components/Logo/index.js +4 -0
- package/components/Logo/spec.js +1 -0
- package/components/Logo/style.js +1 -0
- package/components/Menu/components/Position/index.js +5 -5
- package/components/Menu/index.js +9 -9
- package/components/MessageBar/MessageBar.js +1 -1
- package/components/MessageBar/index.js +1 -1
- package/components/NavigationHandler/index.js +4 -4
- 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 +18 -9
- package/components/PickerUtilize/components/Button/index.js +5 -0
- package/components/PickerUtilize/components/Button/style.js +1 -0
- package/components/PickerUtilize/index.js +17 -0
- package/components/PickerUtilize/spec.js +1 -0
- package/components/PickerUtilize/style.js +1 -0
- package/components/QuantityInput/QuantityInput.js +5 -4
- package/components/Radio/Radio.js +1 -1
- package/components/RadioCard/RadioCard.js +1 -1
- package/components/RangeSlider/components/Handle/index.js +1 -1
- package/components/RangeSlider/index.js +36 -24
- package/components/ResponsiveContainer/ResponsiveContainer.js +2 -6
- package/components/ResponsiveContainer/breakpoints.js +2 -1
- package/components/ResponsiveContainer/hooks.js +20 -0
- package/components/ScrollHeader/index.js +2 -2
- package/components/ScrollHeader/style.js +1 -1
- package/components/SheetList/components/Item/index.js +5 -5
- package/components/SheetList/index.js +4 -4
- package/components/SideNavigation/SideNavigationCategories.connector.js +2 -2
- package/components/SnackBarContainer/index.js +5 -0
- package/components/Switch/index.js +12 -0
- package/components/Switch/style.js +1 -0
- package/components/Tabs/components/TabIndicator.js +2 -2
- package/components/Tabs/components/Tabs.js +1 -1
- package/components/TimeBoundary/index.js +8 -6
- package/components/VideoPlayer/index.js +9 -6
- 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 +18 -11
- package/components/View/index.js +1 -1
- package/components/View/provider.js +22 -5
- package/components/index.js +2 -2
- package/core/action-creators/app.js +5 -0
- package/core/action-creators/appPermissions.js +9 -0
- package/core/action-creators/index.js +1 -1
- package/core/actions/getGeolocation.js +2 -2
- package/core/actions/grantAppTrackingTransparencyPermission.js +6 -0
- package/core/actions/grantCameraPermissions.js +1 -1
- package/core/actions/grantGeolocationPermissions.js +1 -1
- package/core/actions/grantPermissions.js +13 -6
- package/core/actions/grantPushPermissions.js +22 -0
- package/core/actions/index.js +7 -0
- package/core/actions/requestAppPermission.js +12 -0
- package/core/actions/requestAppPermissionStatus.js +12 -0
- package/core/classes/GeolocationRequest.js +2 -3
- package/core/classes/GeolocationRequestApp.js +6 -6
- package/core/classes/GeolocationRequestBrowser.js +2 -2
- package/core/classes/index.js +1 -0
- package/core/collections/AppInitialization.js +49 -0
- package/core/collections/index.js +1 -0
- package/core/commands/analyticsSetConsent.js +11 -0
- package/core/commands/index.js +1 -0
- package/core/config/ThemeConfigResolver.js +2 -2
- package/core/config/config.action-creators.js +1 -1
- package/core/config/config.actions.js +1 -1
- package/core/config/config.reducers.js +1 -1
- package/core/config/config.subscriptions.js +2 -2
- package/core/config/index.js +1 -1
- package/core/constants/actionTypes.js +1 -0
- package/core/constants/appFeatures.js +1 -0
- package/core/constants/index.js +6 -1
- package/core/contexts/index.js +1 -0
- package/core/helpers/appFeatures.js +15 -0
- package/core/helpers/appPermissions.js +43 -6
- package/core/helpers/baseUrl.js +14 -0
- package/core/helpers/environment.js +4 -0
- package/core/helpers/getFullImageSource.js +1 -1
- package/core/helpers/i18n.js +5 -3
- package/core/helpers/index.js +7 -0
- package/core/hocs/index.js +1 -0
- package/core/hocs/withCurrentProduct.js +6 -6
- package/core/hocs/withTheme.js +2 -2
- package/core/hooks/index.js +1 -0
- package/core/hooks/useAsyncMemo.js +1 -1
- package/core/hooks/useFormState.js +1 -1
- package/core/hooks/useScrollTo.js +1 -1
- package/core/hooks/useTheme.js +2 -2
- package/core/index.js +5 -52
- package/core/initialization/index.js +4 -2
- package/core/providers/AppProvider.js +10 -8
- package/core/providers/index.js +1 -0
- package/core/reducers/app.js +6 -0
- package/core/reducers/index.js +1 -1
- package/core/reducers/merchantSettings.js +1 -1
- package/core/reducers/shopSettings.js +1 -1
- package/core/selectors/app.js +9 -0
- package/core/selectors/index.js +6 -1
- package/core/streams/app.js +8 -0
- package/core/streams/appPermissions.js +19 -0
- package/core/streams/index.js +4 -0
- package/core/subscriptions/app.js +7 -0
- package/favorites/components/Item/Item.js +7 -7
- package/favorites/components/List/List.js +18 -7
- package/favorites/components/List/ListAccordionLabel.js +4 -0
- package/favorites/components/List/ListContent.js +8 -0
- package/favorites/components/List/ListItemWrapper.js +6 -0
- package/favorites/components/List/styles.js +1 -0
- package/favorites/components/Lists/Lists.js +5 -5
- package/favorites/components/Lists/ListsModal.js +3 -2
- package/favorites/constants/index.js +1 -0
- package/filter/actions/index.js +1 -0
- package/filter/components/PriceSlider/index.js +9 -9
- package/filter/components/PriceSlider/style.js +1 -3
- package/filter/components/index.js +1 -0
- package/filter/constants/index.js +1 -1
- package/filter/helpers/buildFilterParamsForFetchFiltersRequest.js +9 -0
- package/filter/helpers/buildInitialFilters.js +1 -1
- package/filter/helpers/buildUpdatedFilters.js +1 -1
- package/filter/helpers/index.js +1 -0
- package/filter/helpers/translateFilterLabel.js +6 -0
- package/filter/index.js +2 -7
- package/filter/providers/SortProvider.helpers.js +1 -1
- package/filter/selectors/index.js +1 -1
- package/filter/streams/index.js +1 -0
- package/i18n/locale/cs-cz/countries.json +255 -0
- package/i18n/locale/de-de/countries.json +26 -28
- package/i18n/locale/el-gr/countries.json +255 -0
- package/i18n/locale/en-us/countries.json +12 -14
- package/i18n/locale/es-es/countries.json +65 -67
- package/i18n/locale/fi-fi/countries.json +255 -0
- package/i18n/locale/fr-fr/countries.json +85 -87
- package/i18n/locale/hu-hu/countries.json +255 -0
- package/i18n/locale/it-it/countries.json +11 -13
- package/i18n/locale/nl-nl/countries.json +42 -44
- package/i18n/locale/pl-pl/countries.json +255 -0
- package/i18n/locale/pt-pt/countries.json +128 -130
- package/i18n/locale/ro-ro/countries.json +255 -0
- package/i18n/locale/sv-se/countries.json +255 -0
- package/locations/action-creators/receiveInventories.js +3 -5
- package/locations/actions/fetchFulfillmentSlots.js +1 -1
- package/locations/actions/fetchProductLocations.js +2 -2
- package/locations/actions/setUserGeolocation.js +1 -1
- package/locations/actions/setUserSearchGeolocation.js +1 -1
- package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +1 -1
- package/locations/components/FulfillmentPath/FulfillmentPath.js +1 -1
- package/locations/components/FulfillmentPath/FulfillmentPathItem.js +2 -2
- package/locations/components/FulfillmentSelector/FulfillmentSelectorAddToCart.js +2 -2
- package/locations/components/FulfillmentSelector/FulfillmentSelectorAlternativeLocation.js +1 -1
- package/locations/components/FulfillmentSheet/FulfillmentSheet.js +2 -2
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +1 -1
- package/locations/components/ReserveForm/ReserveForm.js +1 -1
- package/locations/components/ReserveForm/ReserveFormPhone.js +1 -1
- package/locations/components/StockInfo/StockInfo.defaultSettings.js +1 -1
- package/locations/components/StoreFinder/StoreFinderMap.style.js +2 -2
- package/locations/components/StoreList/StoreListSearch.js +5 -3
- package/locations/locations.streams.js +1 -1
- package/locations/providers/FulfillmentProvider.js +4 -4
- package/locations/providers/StoreFinderProvider.js +1 -1
- package/locations/reducers/storage.js +3 -3
- package/locations/selectors/index.js +2 -2
- package/locations/subscriptions.js +13 -13
- package/login/components/ForgotPassword/ForgotPassword.js +1 -1
- package/orders/actions/cancelOrder.js +1 -1
- package/orders/actions/fetchOrderDetails.js +1 -1
- package/orders/constants/status.js +2 -2
- package/orders/index.js +1 -1
- package/orders/providers/OrderDetailsPrivateProvider.js +1 -1
- package/orders/providers/OrderDetailsProvider.js +3 -3
- package/package.json +8 -8
- package/page/actions/index.js +1 -0
- package/page/components/index.js +1 -0
- package/page/constants/index.js +1 -0
- package/page/index.js +2 -4
- package/page/selectors/index.js +7 -0
- package/product/collections/index.js +1 -0
- package/product/components/Availability/Availability.connector.js +4 -5
- package/product/components/Availability/Availability.js +3 -3
- package/product/components/Characteristics/Characteristic/components/Sheet/index.js +20 -0
- package/product/components/Characteristics/Characteristic/components/SheetItem/index.js +10 -0
- package/product/components/Characteristics/Characteristic/components/SheetItem/style.js +1 -0
- package/product/components/Characteristics/Characteristic/index.js +18 -0
- package/product/components/Characteristics/Characteristic/style.js +1 -0
- package/product/components/Characteristics/Swatch/index.js +12 -0
- package/product/components/Characteristics/Swatch/style.js +1 -0
- package/product/components/Characteristics/index.js +12 -0
- package/product/components/Characteristics/transition.js +1 -0
- package/product/components/Description/index.js +2 -2
- package/product/components/EffectivityDates/helpers.js +3 -3
- package/product/components/EffectivityDates/index.js +1 -1
- package/product/components/Header/PriceStriked/connector.js +9 -0
- package/product/components/Header/PriceStriked/index.js +5 -0
- package/product/components/Header/PriceStriked/style.js +1 -0
- package/product/components/Header/Shipping/components/Label/index.js +6 -0
- package/product/components/Header/Shipping/components/Label/style.js +1 -0
- package/product/components/Header/Shipping/connector.js +9 -0
- package/product/components/Header/Shipping/index.js +5 -0
- package/product/components/Header/Shipping/mock.js +1 -0
- package/product/components/Header/Shipping/spec.js +5 -0
- package/product/components/Header/Shipping/style.js +1 -0
- package/product/components/Header/Tiers/components/Tier/index.js +6 -0
- package/product/components/Header/Tiers/components/Tier/spec.js +1 -0
- package/product/components/Header/Tiers/connector.js +10 -0
- package/product/components/Header/Tiers/index.js +5 -0
- package/product/components/Header/Tiers/spec.js +1 -0
- package/product/components/Header/Tiers/style.js +1 -0
- package/product/components/Header/index.js +1 -0
- package/product/components/MapPriceHint/index.js +1 -1
- package/product/components/Media/FeaturedMedia.js +1 -1
- package/product/components/MediaSlider/index.js +1 -1
- package/product/components/Options/components/Content/connector.js +10 -0
- package/product/components/Options/components/Content/index.js +16 -0
- package/product/components/Options/components/Content/spec.js +2 -0
- package/product/components/Options/components/Option/index.js +4 -0
- package/product/components/Options/components/TextOption/components/OptionInfo/index.js +9 -0
- package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +1 -0
- package/product/components/Options/components/TextOption/components/OptionInfo/style.js +1 -0
- package/product/components/Options/components/TextOption/index.js +22 -0
- package/product/components/Options/components/TextOption/style.js +1 -0
- package/product/components/Options/index.js +5 -0
- package/product/components/OrderQuantityHint/index.js +3 -2
- package/product/components/OrderQuantityHint/style.js +1 -1
- package/product/components/PriceDifference/index.js +1 -1
- package/product/components/ProductCard/index.js +2 -2
- package/product/components/ProductCharacteristics/helpers/index.js +1 -1
- package/product/components/ProductCharacteristics/index.js +28 -12
- package/product/components/ProductDiscountBadge/spec.js +1 -1
- package/product/components/ProductGridPrice/index.js +2 -2
- package/product/components/ProductImage/index.js +15 -12
- package/product/components/ProductList/components/Item/index.js +5 -0
- package/product/components/ProductList/components/Item/style.js +2 -0
- package/product/components/ProductList/components/Iterator/index.js +5 -0
- package/product/components/ProductList/components/Iterator/style.js +1 -0
- package/product/components/ProductList/components/Layout/index.js +5 -0
- package/product/components/ProductList/components/Layout/style.js +1 -0
- package/product/components/ProductList/index.js +5 -0
- package/product/components/ProductProperties/Content.js +1 -1
- package/product/components/ProductProperties/GroupedProperties.js +1 -1
- package/product/components/ProductProperties/ListsHTML.js +1 -1
- package/product/components/ProductProperties/ProductProperties.js +1 -1
- package/product/components/ProductProperties/RowHTML.js +1 -1
- package/product/components/ProductProperties/Wrapper.js +1 -1
- package/product/components/ProductProperties/style.js +1 -1
- package/product/components/ProductSlider/index.js +4 -0
- package/product/components/ProductSlider/spec.js +1 -0
- package/product/components/ProductSlider/style.js +1 -0
- package/product/components/QuantityPicker/hooks.js +5 -0
- package/product/components/QuantityPicker/index.js +2 -2
- package/product/components/Rating/connector.js +9 -0
- package/product/components/Rating/index.js +7 -0
- package/product/components/Rating/mock.js +5 -0
- package/product/components/Rating/spec.js +5 -0
- package/product/components/Rating/style.js +1 -0
- package/product/components/Swatch/SwatchContent.js +1 -1
- package/product/components/UnitQuantityPicker/CartUnitQuantityPicker.js +2 -2
- package/product/components/UnitQuantityPicker/ProductUnitQuantityPicker.js +3 -2
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +6 -3
- package/product/components/UnitQuantityPicker/UnitQuantityPickerWithSection.js +7 -0
- package/product/components/UnitQuantityPicker/index.js +1 -1
- package/product/components/index.js +1 -0
- package/product/constants/index.js +1 -1
- package/product/contexts/index.js +1 -0
- package/product/helpers/index.js +2 -2
- package/product/helpers/redirects.js +1 -1
- package/product/hocs/index.js +1 -0
- package/product/hooks/index.js +1 -0
- package/product/index.js +4 -11
- package/product/providers/Product/connector.js +5 -0
- package/product/providers/Product/index.js +4 -0
- package/product/providers/index.js +1 -0
- package/product/selectors/product.js +24 -3
- package/product/selectors/variants.js +2 -2
- package/product/streams/index.js +1 -0
- package/push-opt-in/action-creators/index.js +1 -0
- package/push-opt-in/action-creators/optInTrigger.js +23 -0
- package/push-opt-in/action-creators/pushOptIn.js +7 -0
- package/push-opt-in/actions/index.js +1 -0
- package/push-opt-in/actions/pushOptInModal.js +8 -0
- package/push-opt-in/components/PushOptInModal/connector.js +9 -0
- package/push-opt-in/components/PushOptInModal/index.js +9 -0
- package/push-opt-in/components/PushOptInModal/push-opt-in.svg +62 -0
- package/push-opt-in/components/PushOptInModal/style.js +1 -0
- package/push-opt-in/components/index.js +1 -0
- package/push-opt-in/constants/index.js +1 -0
- package/push-opt-in/constants/optInModal.js +1 -0
- package/push-opt-in/constants/optInTrigger.js +1 -0
- package/push-opt-in/reducers/index.js +1 -0
- package/push-opt-in/reducers/optInModal.js +6 -0
- package/push-opt-in/reducers/optInTrigger.js +6 -0
- package/push-opt-in/selectors/index.js +1 -0
- package/push-opt-in/selectors/optInModal.js +8 -0
- package/push-opt-in/selectors/optInTrigger.js +5 -0
- package/push-opt-in/subscriptions/index.js +1 -0
- package/push-opt-in/subscriptions/optInTrigger.js +12 -0
- package/registration/components/index.js +1 -0
- package/registration/index.js +1 -1
- package/registration/providers/GuestRegistrationProvider.actions.js +2 -2
- package/registration/providers/GuestRegistrationProvider.js +3 -3
- package/registration/providers/RegistrationProvider.actions.js +3 -3
- package/registration/providers/RegistrationProvider.js +2 -2
- package/registration/subscriptions/index.js +1 -1
- package/reviews/actions/index.js +1 -0
- package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/index.js +1 -1
- package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/style.js +1 -2
- 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/style.js +1 -2
- package/reviews/components/Reviews/components/ReviewsInfo/index.js +1 -2
- package/reviews/components/Reviews/spec.js +1 -1
- package/reviews/components/index.js +1 -0
- package/reviews/constants/index.js +1 -0
- package/reviews/index.js +3 -7
- package/reviews/selectors/index.js +1 -0
- package/reviews/streams/index.js +1 -0
- package/scanner/action-creators/index.js +1 -0
- package/scanner/actions/index.js +1 -0
- package/scanner/classes/index.js +1 -0
- package/scanner/constants/index.js +1 -0
- package/scanner/helpers/index.js +1 -0
- package/scanner/index.js +1 -6
- package/scanner/streams/index.js +1 -0
- package/search/actions/index.js +1 -0
- package/search/constants/index.js +1 -0
- package/search/helpers/index.js +1 -0
- package/search/index.js +1 -6
- package/search/selectors/index.js +1 -0
- package/search/streams/index.js +1 -0
- package/styles/helpers/index.js +1 -0
- package/styles/helpers/initCSSCustomProperties.js +3 -3
- package/styles/helpers/loadCustomStyles.js +2 -2
- package/styles/helpers/setPageBackgroundColor.js +2 -1
- package/styles/helpers/setPageContentWidth.js +2 -1
- package/styles/index.js +1 -1
- package/tracking/action-creators/cookieConsent.js +24 -0
- package/tracking/action-creators/index.js +1 -4
- package/tracking/actions/cookieConsent.js +21 -0
- package/tracking/actions/index.js +1 -0
- package/tracking/components/CookieConsentModal/connector.js +6 -0
- package/tracking/components/CookieConsentModal/index.js +9 -0
- package/tracking/components/CookieConsentModal/style.js +1 -0
- package/tracking/components/CookieConsentModal/tracking-opt-in.svg +18 -0
- package/tracking/components/PrivacySettings/connector.js +6 -0
- package/tracking/components/PrivacySettings/index.js +4 -0
- package/tracking/components/PrivacySettings/style.js +1 -0
- package/tracking/components/index.js +1 -1
- package/tracking/constants/index.js +1 -1
- package/tracking/reducers/cookieConsentModal.js +6 -0
- package/tracking/reducers/cookieSettings.js +6 -0
- package/tracking/reducers/index.js +1 -0
- package/tracking/selectors/cookieConsent.js +35 -0
- package/tracking/selectors/index.js +1 -4
- package/tracking/streams/cookieConsent.js +46 -0
- package/tracking/streams/index.js +1 -1
- package/tracking/subscriptions/analytics.js +11 -0
- package/tracking/subscriptions/cookieConsent.js +13 -0
- package/tracking/subscriptions/index.js +1 -4
- package/components/MessageBar/MessageBar.types.js +0 -0
- package/components/MessageBar/style.js +0 -1
- package/i18n/locale/ru-ru/countries.json +0 -251
- package/product/components/Availability/Availability.types.js +0 -1
- package/product/components/QuantityPicker/helpers.js +0 -5
- package/tracking/components/CookieConsent/CookieConsent.connector.js +0 -4
- package/tracking/components/CookieConsent/CookieConsent.js +0 -4
- package/tracking/components/CookieConsent/CookieConsentButtons.js +0 -3
- package/tracking/components/CookieConsent/CookieConsentCheckboxes.js +0 -3
- package/tracking/components/CookieConsent/CookieConsentContent.js +0 -4
- package/tracking/components/CookieConsent/CookieConsentMessage.js +0 -4
- package/tracking/components/CookieConsent/index.js +0 -1
- package/tracking/helpers/index.js +0 -7
- package/tracking/hooks/index.js +0 -4
- package/tracking/index.js +0 -1
- package/tracking/providers/CookieConsentProvider.connector.js +0 -4
- package/tracking/providers/CookieConsentProvider.js +0 -8
- /package/{tracking/providers/CookieConsentProvider.context.js → back-in-stock/providers/BackInStockSubscriptionsProvider.context.js} +0 -0
- /package/page/{NotFound.js → components/NotFound.js} +0 -0
|
@@ -12,6 +12,6 @@ dispatch(historyResetTo(CART_PATH));}};/**
|
|
|
12
12
|
* @param {boolean} redirect Whether it should redirect.
|
|
13
13
|
* @param {Array} gotoCartErrorCodes A list of error codes which should redirect to the cart
|
|
14
14
|
* @return {Object}
|
|
15
|
-
*/export var errorCheckout=function errorCheckout(message,pipeline,error,redirect){var gotoCartErrorCodes=arguments.length>4&&arguments[4]!==undefined?arguments[4]:[];return function(dispatch,getState){var subCode;if(error===null||error===void 0?void 0:error.errors){var _error$
|
|
15
|
+
*/export var errorCheckout=function errorCheckout(message,pipeline,error,redirect){var gotoCartErrorCodes=arguments.length>4&&arguments[4]!==undefined?arguments[4]:[];return function(dispatch,getState){var subCode;if(error===null||error===void 0?void 0:error.errors){var _error$errors2=_slicedToArray(error.errors,1),first=_error$errors2[0];subCode=first.code;}var errorObject={code:error.code||'NOT SET',message:JSON.stringify(error,null,2)};// Go back to homepage and inform shopper.
|
|
16
16
|
if(redirect){dispatch(historyResetTo(INDEX_PATH));}else if(['shopgate.checkout.initialize'].includes(pipeline)||gotoCartErrorCodes.includes(subCode)){gotoCart(dispatch,getState);}dispatch(showModal({type:MODAL_PIPELINE_ERROR,title:null,confirm:null,dismiss:'modal.ok',message:message,params:{pipeline:pipeline,message:JSON.stringify(errorObject,null,2)}}));// Log to sentry.
|
|
17
17
|
Sentry.withScope(function(scope){scope.setLevel(Sentry.Severity.Critical);scope.setExtra('origin','checkout');Sentry.captureException(errorObject);});return{needsPayment:false,success:false};};};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import{PipelineRequest}from'@shopgate/engage/core';import{FETCH_CHECKOUT_ORDER,FETCH_CHECKOUT_ORDER_SUCCESS,FETCH_CHECKOUT_ORDER_ERROR}from"../constants/actionTypes";import{ERROR_CODE_CHECKOUT_GENERIC}from"../constants/errorCodes";/**
|
|
2
2
|
* Starts entering the checkout process for the customer.
|
|
3
3
|
* @returns {Function}
|
|
4
|
-
*/export var fetchCheckoutOrder=function fetchCheckoutOrder(){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineRequest,
|
|
4
|
+
*/export var fetchCheckoutOrder=function fetchCheckoutOrder(){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineRequest,_ref3,order;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:dispatch({type:FETCH_CHECKOUT_ORDER});pipelineRequest=new PipelineRequest('shopgate.checkout.getOrder');_context.prev=2;_context.next=5;return pipelineRequest.setErrorBlacklist([ERROR_CODE_CHECKOUT_GENERIC]).dispatch();case 5:_ref3=_context.sent;order=_ref3.order;dispatch({type:FETCH_CHECKOUT_ORDER_SUCCESS,order:order});return _context.abrupt("return",order);case 11:_context.prev=11;_context.t0=_context["catch"](2);dispatch({type:FETCH_CHECKOUT_ORDER_ERROR,error:_context.t0});return _context.abrupt("return",null);case 15:case"end":return _context.stop();}},_callee,null,[[2,11]]);}));return function(_x){return _ref.apply(this,arguments);};}());};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import{PipelineRequest}from'@shopgate/engage/core';import{FETCH_PAYMENT_METHODS,FETCH_PAYMENT_METHODS_SUCCESS,FETCH_PAYMENT_METHODS_ERROR}from"../constants/actionTypes";/**
|
|
2
2
|
* Starts entering the checkout process for the customer.
|
|
3
3
|
* @returns {Function}
|
|
4
|
-
*/export var fetchPaymentMethods=function fetchPaymentMethods(){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineRequest,
|
|
4
|
+
*/export var fetchPaymentMethods=function fetchPaymentMethods(){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineRequest,_ref3,paymentMethods;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:dispatch({type:FETCH_PAYMENT_METHODS});pipelineRequest=new PipelineRequest('shopgate.checkout.getPaymentMethods');_context.prev=2;_context.next=5;return pipelineRequest.dispatch();case 5:_ref3=_context.sent;paymentMethods=_ref3.paymentMethods;dispatch({type:FETCH_PAYMENT_METHODS_SUCCESS,paymentMethods:paymentMethods});_context.next=13;break;case 10:_context.prev=10;_context.t0=_context["catch"](2);dispatch({type:FETCH_PAYMENT_METHODS_ERROR,error:_context.t0});case 13:case"end":return _context.stop();}},_callee,null,[[2,10]]);}));return function(_x){return _ref.apply(this,arguments);};}());};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import{PipelineRequest,EUNKNOWN}from'@shopgate/engage/core';import{INITIALIZE_CHECKOUT,INITIALIZE_CHECKOUT_SUCCESS,INITIALIZE_CHECKOUT_ERROR}from"../constants/actionTypes";/**
|
|
2
2
|
* Starts entering the checkout process for the customer.
|
|
3
3
|
* @returns {Function}
|
|
4
|
-
*/export var initializeCheckout=function initializeCheckout(){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineError;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
4
|
+
*/export var initializeCheckout=function initializeCheckout(){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineError;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:dispatch({type:INITIALIZE_CHECKOUT});_context.prev=1;_context.next=4;return new PipelineRequest('shopgate.checkout.initialize').setErrorBlacklist([EUNKNOWN]).dispatch();case 4:dispatch({type:INITIALIZE_CHECKOUT_SUCCESS});_context.next=11;break;case 7:_context.prev=7;_context.t0=_context["catch"](1);pipelineError=_context.t0;dispatch({type:INITIALIZE_CHECKOUT_ERROR,error:_context.t0});case 11:if(!pipelineError){_context.next=13;break;}throw pipelineError;case 13:case"end":return _context.stop();}},_callee,null,[[1,7]]);}));return function(_x){return _ref.apply(this,arguments);};}());};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import*as Sentry from'@sentry/browser';import{getNeedsPaymentForOrder,getDefaultPaymentMethod,getPaymentMethods}from"../selectors/payment";import{getCheckoutOrder}from"../selectors/order";import{initializeCheckout}from"./initializeCheckout";import{fetchCheckoutOrder}from"./fetchCheckoutOrder";import{updateCheckoutOrder}from"./updateCheckoutOrder";import{fetchPaymentMethods}from"./fetchPaymentMethods";import{errorCheckout}from"./errorCheckout";/**
|
|
2
2
|
* Starts entering the checkout process for the customer.
|
|
3
3
|
* @returns {Function}
|
|
4
|
-
*/export var prepareCheckout=function prepareCheckout(_ref){var _ref$initializeOrder=_ref.initializeOrder,initializeOrder=_ref$initializeOrder===void 0?true:_ref$initializeOrder,_ref$initializePaymen=_ref.initializePayment,initializePayment=_ref$initializePaymen===void 0?true:_ref$initializePaymen;return(/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch,getState){var _order$paymentTransac,_order$paymentTransac2;var defaultPaymentMethod,needsPayment,order,paymentMethods,paymentAlreadyInitialized;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
4
|
+
*/export var prepareCheckout=function prepareCheckout(_ref){var _ref$initializeOrder=_ref.initializeOrder,initializeOrder=_ref$initializeOrder===void 0?true:_ref$initializeOrder,_ref$initializePaymen=_ref.initializePayment,initializePayment=_ref$initializePaymen===void 0?true:_ref$initializePaymen;return(/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch,getState){var _order$paymentTransac,_order$paymentTransac2;var defaultPaymentMethod,needsPayment,order,paymentMethods,paymentAlreadyInitialized;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(!initializeOrder){_context.next=9;break;}_context.prev=1;_context.next=4;return dispatch(initializeCheckout());case 4:_context.next=9;break;case 6:_context.prev=6;_context.t0=_context["catch"](1);return _context.abrupt("return",dispatch(errorCheckout('checkout.errors.checkCart','shopgate.checkout.initialize',_context.t0)));case 9:_context.next=11;return Promise.all([dispatch(fetchCheckoutOrder()),dispatch(fetchPaymentMethods())]);case 11:// If payment is needed we create a new payment transaction.
|
|
5
5
|
needsPayment=getNeedsPaymentForOrder(getState());if(!needsPayment){_context.next=16;break;}// Pick payment method.
|
|
6
6
|
defaultPaymentMethod=getDefaultPaymentMethod(getState());if(defaultPaymentMethod){_context.next=16;break;}return _context.abrupt("return",dispatch(errorCheckout('checkout.errors.missingPaymentMethod','shopgate.checkout.getPaymentMethods',{message:'No payment method found.'})));case 16:// Test if order is available in store.
|
|
7
7
|
order=getCheckoutOrder(getState());if(order){_context.next=19;break;}return _context.abrupt("return",dispatch(errorCheckout('checkout.errors.genericInitialize','shopgate.checkout.initialize',{message:'No order received from API'})));case 19:// Put logging info to sentry.
|
|
8
|
-
Sentry.configureScope(function(scope){scope.setTag('checkout_order_id',order.id);scope.addBreadcrumb({category:'checkout',message:"Initialize checkout with order id ".concat(order.id),level:'info'});});paymentMethods=getPaymentMethods(getState());paymentAlreadyInitialized=!!(order===null||order===void 0?void 0:(_order$paymentTransac=order.paymentTransactions)===null||_order$paymentTransac===void 0?void 0:(_order$paymentTransac2=_order$paymentTransac[0])===null||_order$paymentTransac2===void 0?void 0:_order$paymentTransac2.paymentMethod);if(!(needsPayment&&initializePayment&&!paymentAlreadyInitialized&&paymentMethods.length===1)){_context.next=33;break;}_context.prev=23;_context.next=26;return dispatch(updateCheckoutOrder({paymentTransactions:[{paymentMethod:{code:defaultPaymentMethod.code}}]}));case 26:_context.next=28;return dispatch(fetchCheckoutOrder());case 28:_context.next=33;break;case 30:_context.prev=30;_context.t1=_context["catch"](23);return _context.abrupt("return",{success:false,needsPayment:false});case 33:return _context.abrupt("return",{needsPayment:needsPayment,success:true});case 34:case"end":return _context.stop();}}
|
|
8
|
+
Sentry.configureScope(function(scope){scope.setTag('checkout_order_id',order.id);scope.addBreadcrumb({category:'checkout',message:"Initialize checkout with order id ".concat(order.id),level:'info'});});paymentMethods=getPaymentMethods(getState());paymentAlreadyInitialized=!!(order===null||order===void 0?void 0:(_order$paymentTransac=order.paymentTransactions)===null||_order$paymentTransac===void 0?void 0:(_order$paymentTransac2=_order$paymentTransac[0])===null||_order$paymentTransac2===void 0?void 0:_order$paymentTransac2.paymentMethod);if(!(needsPayment&&initializePayment&&!paymentAlreadyInitialized&&paymentMethods.length===1)){_context.next=33;break;}_context.prev=23;_context.next=26;return dispatch(updateCheckoutOrder({paymentTransactions:[{paymentMethod:{code:defaultPaymentMethod.code}}]}));case 26:_context.next=28;return dispatch(fetchCheckoutOrder());case 28:_context.next=33;break;case 30:_context.prev=30;_context.t1=_context["catch"](23);return _context.abrupt("return",{success:false,needsPayment:false});case 33:return _context.abrupt("return",{needsPayment:needsPayment,success:true});case 34:case"end":return _context.stop();}},_callee,null,[[1,6],[23,30]]);}));return function(_x,_x2){return _ref2.apply(this,arguments);};}());};
|
|
@@ -2,4 +2,4 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGenera
|
|
|
2
2
|
* Completes the checkout order by fulfilling with checkout params for each transaction.
|
|
3
3
|
* @param {Object} payload The action input.
|
|
4
4
|
* @returns {Function}
|
|
5
|
-
*/export var submitCheckoutOrder=function submitCheckoutOrder(payload){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineError,pipelineOutput;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
5
|
+
*/export var submitCheckoutOrder=function submitCheckoutOrder(payload){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineError,pipelineOutput;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:LoadingProvider.setLoading(CHECKOUT_PATTERN);dispatch({type:SUBMIT_CHECKOUT_ORDER,payload:payload});_context.prev=2;_context.next=5;return new PipelineRequest('shopgate.checkout.submit').setInput(payload).setErrorBlacklist([ERROR_CODE_CHECKOUT_GENERIC]).dispatch();case 5:pipelineOutput=_context.sent;dispatch({type:SUBMIT_CHECKOUT_ORDER_SUCCESS});_context.next=14;break;case 9:_context.prev=9;_context.t0=_context["catch"](2);pipelineError=_context.t0;dispatch(errorCheckout('checkout.errors.genericSubmit','shopgate.checkout.submit',_context.t0,false,[1001,1003]));dispatch({type:SUBMIT_CHECKOUT_ORDER_ERROR});case 14:LoadingProvider.unsetLoading(CHECKOUT_PATTERN);if(!pipelineError){_context.next=17;break;}throw pipelineError;case 17:return _context.abrupt("return",pipelineOutput);case 18:case"end":return _context.stop();}},_callee,null,[[2,9]]);}));return function(_x){return _ref.apply(this,arguments);};}());};
|
|
@@ -2,4 +2,4 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGenera
|
|
|
2
2
|
* Starts entering the checkout process for the customer.
|
|
3
3
|
* @param {Object} payload Order payload.
|
|
4
4
|
* @returns {Function}
|
|
5
|
-
*/export var updateCheckoutOrder=function updateCheckoutOrder(payload){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineError;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
5
|
+
*/export var updateCheckoutOrder=function updateCheckoutOrder(payload){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){var pipelineError;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:dispatch({type:UPDATE_CHECKOUT_ORDER});_context.prev=1;_context.next=4;return new PipelineRequest('shopgate.checkout.updateOrder').setInput(payload).setErrorBlacklist([ERROR_CODE_CHECKOUT_GENERIC,EVALIDATION]).dispatch();case 4:dispatch({type:UPDATE_CHECKOUT_ORDER_SUCCESS});_context.next=11;break;case 7:_context.prev=7;_context.t0=_context["catch"](1);pipelineError=_context.t0;if(_context.t0.code===EVALIDATION){dispatch(validationErrorsCheckout(_context.t0.errors));}else{dispatch(errorCheckout('checkout.errors.genericUpdate','shopgate.checkout.updateOrder',_context.t0,false));dispatch({type:UPDATE_CHECKOUT_ORDER_ERROR});}case 11:if(!pipelineError){_context.next=13;break;}throw pipelineError;case 13:case"end":return _context.stop();}},_callee,null,[[1,7]]);}));return function(_x){return _ref.apply(this,arguments);};}());};
|
|
@@ -5,4 +5,4 @@ import{i18n}from'@shopgate/engage/core';var pickupFieldActions=[{type:'setVisibi
|
|
|
5
5
|
* @param {Array} options.countrySortOrder Sort order for supported countries.
|
|
6
6
|
* @param {Object} options.userLocation User location for better phone picker defaults.
|
|
7
7
|
* @returns {Object}
|
|
8
|
-
*/var generateFormConfig=function generateFormConfig(_ref){var supportedCountries=_ref.supportedCountries,countrySortOrder=_ref.countrySortOrder,userLocation=_ref.userLocation;return{fields:{instructions:{type:'text',label:i18n.text('checkout.pickup_contact.form.instructions')
|
|
8
|
+
*/var generateFormConfig=function generateFormConfig(_ref){var supportedCountries=_ref.supportedCountries,countrySortOrder=_ref.countrySortOrder,userLocation=_ref.userLocation;return{fields:{instructions:{type:'text',label:i18n.text('checkout.pickup_contact.form.instructions')},pickupPerson:{type:'radio',label:i18n.text('checkout.pickup_contact.form.who_will_pickup'),options:{me:i18n.text('checkout.pickup_contact.form.me'),someoneElse:i18n.text('checkout.pickup_contact.form.someone_else')}},firstName:{type:'text',actions:pickupFieldActions,label:"".concat(i18n.text('checkout.pickup_contact.form.firstName')," *")},lastName:{type:'text',actions:pickupFieldActions,label:"".concat(i18n.text('checkout.pickup_contact.form.lastName')," *")},emailAddress:{type:'email',actions:pickupFieldActions,label:"".concat(i18n.text('checkout.pickup_contact.form.emailAddress')," *")},mobile:{type:'phone_picker',label:"".concat(i18n.text('checkout.pickup_contact.form.mobile')," *"),actions:pickupFieldActions,config:{supportedCountries:supportedCountries,countrySortOrder:countrySortOrder,userLocation:userLocation}}}};};export default generateFormConfig;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
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 classNames from'classnames';import{css}from'glamor';import{errorBehavior}from'@shopgate/engage/core';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var variables=themeConfig.variables;var styles={wrapper:css({paddingTop:variables.gap.xsmall}).toString(),message:css({fontSize:' 0.75rem'}).toString(),error:css({color:'var(--color-state-alert)'}).toString(),warning:css({color:'var(--color-state-warning)'}).toString(),info:css({color:'var(--color-state-ok)'}).toString()};/**
|
|
2
2
|
* @param {Object} props The component props
|
|
3
3
|
* @returns {JSX}
|
|
4
|
-
*/var CheckoutSectionMessages=function CheckoutSectionMessages(_ref){var messages=_ref.messages;if(!Array.isArray(messages)||messages.length===0){return null;}return React.createElement("ul",{className:styles.wrapper},messages.map(function(_ref2){var
|
|
4
|
+
*/var CheckoutSectionMessages=function CheckoutSectionMessages(_ref){var messages=_ref.messages;if(!Array.isArray(messages)||messages.length===0){return null;}return React.createElement("ul",{className:styles.wrapper},messages.map(function(_ref2){var message=_ref2.message,additionalParams=_ref2.additionalParams,type=_ref2.type;return React.createElement("li",{key:message,className:classNames(styles.message,_defineProperty(_defineProperty(_defineProperty({},styles.error,type==='error'),styles.warning,type==='warning'),styles.info,type==='info'))},errorBehavior.getErrorMessage(message,additionalParams));}));};CheckoutSectionMessages.defaultProps={messages:null};export default CheckoutSectionMessages;
|
|
@@ -3,5 +3,5 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGenera
|
|
|
3
3
|
* @returns {JSX}
|
|
4
4
|
*/var CheckoutConfirmation=function CheckoutConfirmation(_ref){var onContinueShopping=_ref.onContinueShopping,isUserLoggedIn=_ref.isUserLoggedIn,fetchCheckoutOrder=_ref.fetchCheckoutOrder;var _useRoute=useRoute(),order=_useRoute.state.order,query=_useRoute.query;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),orderData=_useState2[0],setOrderData=_useState2[1];// Finding the source of order data.
|
|
5
5
|
// Either from the route state or from a pipeline request.
|
|
6
|
-
useEffect(function(){/** */var handleFetch=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var data;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
6
|
+
useEffect(function(){/** */var handleFetch=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var data;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return fetchCheckoutOrder();case 2:data=_context.sent;setOrderData(data);case 4:case"end":return _context.stop();}},_callee);}));return function handleFetch(){return _ref2.apply(this,arguments);};}();if(!order){handleFetch();return;}setOrderData(order);},[fetchCheckoutOrder,order,query]);// Map order data to more UI friendly format.
|
|
7
7
|
var _useMemo=useMemo(function(){if(!orderData){return{};}return{orderNumber:orderData.orderNumber,date:orderData.date,cartItems:convertLineItemsToCartItems(orderData.lineItems),isReserveOnly:isReserveOnlyOrder(orderData),isDirectShipOnly:isDirectShipOnlyOrder(orderData),currencyOverride:orderData.currencyCode};},[orderData]),orderNumber=_useMemo.orderNumber,date=_useMemo.date,cartItems=_useMemo.cartItems,isReserveOnly=_useMemo.isReserveOnly,isDirectShipOnly=_useMemo.isDirectShipOnly,currencyOverride=_useMemo.currencyOverride;if(!orderData||!cartItems){return null;}return React.createElement("div",{className:style.root},React.createElement("div",{className:style.main},React.createElement("div",{className:style.backButtonContainer},React.createElement(ResponsiveBackButton,{label:"checkout.success.continue",onClick:onContinueShopping})),React.createElement("div",{className:style.container},React.createElement("h2",{className:style.heading},i18n.text('checkout.success.title')),React.createElement("p",{className:style.orderNum},i18n.text('checkout.success.order_date',{date:i18n.date(new Date(date).getTime(),'short')}),' | ',i18n.text('checkout.success.order_number',{orderNumber:orderNumber})),React.createElement("div",{className:style.instructions},React.createElement("p",{className:style.body},i18n.text('checkout.success.instructions_1')),React.createElement("p",{className:style.body},i18n.text('checkout.success.instructions_2')))),React.createElement("div",{className:style.cartItems},React.createElement(CartItems,{cartItems:cartItems,onFocus:function onFocus(){},multiLineReservation:true,editable:false,isCheckoutConfirmation:true,isDirectShipOnly:isDirectShipOnly,currencyOverride:currencyOverride})),React.createElement(ResponsiveContainer,{breakpoint:"<md",appAlways:true},React.createElement(CheckoutConfirmationPickUpContact,{order:orderData}),React.createElement(CheckoutConfirmationPickupNotes,{order:orderData}),React.createElement(CheckoutConfirmationShippedTo,{order:orderData}),!isUserLoggedIn&&isReserveOnly?React.createElement(CheckoutConfirmationOrderContact,{order:orderData}):React.createElement(CheckoutConfirmationBilledTo,{order:orderData}),React.createElement(CheckoutConfirmationOrderSummary,{order:orderData}),React.createElement(SupplementalContent,{className:style.supplementalWrapper})),React.createElement("div",{className:style.buttonWrapper},React.createElement(RippleButton,{type:"secondary",disabled:false,className:style.button.toString(),onClick:onContinueShopping},i18n.text('checkout.success.continue')))),React.createElement("div",{className:style.side},React.createElement(ResponsiveContainer,{breakpoint:">=md",webOnly:true},React.createElement(CheckoutConfirmationPickUpContact,{order:orderData}),React.createElement(CheckoutConfirmationPickupNotes,{order:orderData}),React.createElement(CheckoutConfirmationShippedTo,{order:orderData}),!isUserLoggedIn&&isReserveOnly?React.createElement(CheckoutConfirmationOrderContact,{order:orderData}):React.createElement(CheckoutConfirmationBilledTo,{order:orderData}),React.createElement(CheckoutConfirmationOrderSummary,{order:orderData}),React.createElement(SupplementalContent,{className:style.supplementalWrapper}))));};export default hot(connect(CheckoutConfirmation));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
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=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_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,{useMemo}from'react';import PropTypes from'prop-types';import startCase from'lodash/startCase';import{i18n}from"../../../core/helpers/i18n";import CheckoutConfirmationSection from"./CheckoutConfirmationSection";/**
|
|
2
2
|
* CheckoutConfirmationBilledTo component
|
|
3
3
|
* @returns {JSX}
|
|
4
|
-
*/var CheckoutConfirmationBilledTo=function CheckoutConfirmationBilledTo(_ref){var order=_ref.order,className=_ref.className;var content=useMemo(function(){var billing=order.addressSequences.find(function(address){return address.type==='billing';});var firstName=billing.firstName,lastName=billing.lastName,address1=billing.address1,city=billing.city,region=billing.region,postalCode=billing.postalCode;var _ref2=order.paymentTransactions||[{}],_ref3=_slicedToArray(_ref2,1),_ref3$=_ref3[0],payment=_ref3$===void 0?{}:_ref3$;var _payment$paymentInfo=payment.paymentInfo
|
|
4
|
+
*/var CheckoutConfirmationBilledTo=function CheckoutConfirmationBilledTo(_ref){var order=_ref.order,className=_ref.className;var content=useMemo(function(){var billing=order.addressSequences.find(function(address){return address.type==='billing';});var firstName=billing.firstName,lastName=billing.lastName,address1=billing.address1,city=billing.city,region=billing.region,postalCode=billing.postalCode;var _ref2=order.paymentTransactions||[{}],_ref3=_slicedToArray(_ref2,1),_ref3$=_ref3[0],payment=_ref3$===void 0?{}:_ref3$;var _payment$paymentInfo=payment.paymentInfo,_payment$paymentInfo2=_payment$paymentInfo===void 0?{}:_payment$paymentInfo,_payment$paymentInfo3=_payment$paymentInfo2.card,_payment$paymentInfo4=_payment$paymentInfo3===void 0?{}:_payment$paymentInfo3,type=_payment$paymentInfo4.type,last4=_payment$paymentInfo4.last4,paymentType=_payment$paymentInfo2.type;var hasPayment=order.paymentTransactions&&order.paymentTransactions[0];var address=["".concat(firstName," ").concat(lastName),"".concat(address1||''),"".concat(city?"".concat(city,","):''," ").concat(city&®ion?region:''," ").concat(postalCode||'')].filter(Boolean).join('\n');return[].concat(hasPayment&&paymentType==='cc'?[{label:i18n.text('checkout.success.card_holder'),text:address}]:[{label:i18n.text('checkout.success.address'),text:address}],hasPayment&&paymentType==='cc'?[{label:i18n.text('checkout.success.payment_method'),text:"".concat(startCase(type)," **** **** ").concat(last4)}]:[],hasPayment&&paymentType==='paypal'?[{label:i18n.text('checkout.success.payment_method'),text:'PayPal'}]:[]);},[order]);return React.createElement(CheckoutConfirmationSection,{title:"checkout.success.billed_to",content:content,className:className});};CheckoutConfirmationBilledTo.defaultProps={className:null};export default CheckoutConfirmationBilledTo;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import{i18n}from'@shopgate/engage/core';/**
|
|
2
2
|
* Generates form configuration.
|
|
3
3
|
* @returns {Object}
|
|
4
|
-
*/var generateFormConfig=function generateFormConfig(){return{fields:{instructions:{type:'text',label:i18n.text('checkout.pickup_contact.form.instructions')
|
|
4
|
+
*/var generateFormConfig=function generateFormConfig(){return{fields:{instructions:{type:'text',label:i18n.text('checkout.pickup_contact.form.instructions')}}};};export default generateFormConfig;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
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{responsiveMediaQuery}from'@shopgate/engage/styles';import{css}from'glamor';import{useCheckoutContext}from"../../hooks/common";var styles={root:css(_defineProperty(_defineProperty(_defineProperty(_defineProperty({outline:'none',border:'1px solid rgba(0, 0, 0, 0.12)',borderRadius:4,background:'#fff',height:52,width:160,display:'flex',flexDirection:'row',justifyContent:'center',alignItems:'center'},responsiveMediaQuery('xs'),{width:'50%'}),'&:not(:last-child)',{borderTopRightRadius:0,borderBottomRightRadius:0}),'&:not(:first-child)',{borderLeft:'none',borderTopLeftRadius:0,borderBottomLeftRadius:0}),'&:hover',{background:'rgba(0, 0, 0, 0.05)'})).toString(),active:css({background:'rgba(0, 0, 0, 0.12)','&:hover':{background:'rgba(0, 0, 0, 0.12)'}}).toString()};/**
|
|
2
2
|
* Payment Button
|
|
3
3
|
* @param {Object} props Props
|
|
4
4
|
* @returns {JSX}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}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 _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}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=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_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{hot}from'react-hot-loader/root';import React,{useCallback,useEffect,useMemo,useState}from'react';import PropTypes from'prop-types';import{css}from'glamor';import classNames from'classnames';import CryptoJs from'crypto-js';import sortBy from'lodash/sortBy';import uniqBy from'lodash/uniqBy';import{themeConfig}from'@shopgate/pwa-common/helpers/config';import{i18n}from'@shopgate/engage/core';import{RadioGroupV2 as RadioGroup,RadioCard,MessageBar}from'@shopgate/engage/components';import{useCheckoutContext}from'@shopgate/engage/checkout/hooks/common';import ShippingMethod from"./ShippingMethod";import connect from"./connector";var variables=themeConfig.variables;var styles={root:css({padding:"0 ".concat(variables.gap.big,"px ").concat(variables.gap.xbig,"px")}).toString(),headline:css({fontSize:'1.25rem',fontWeight:'normal',padding:"0 ".concat(variables.gap.small,"px 0 0"),margin:"0 0 ".concat(variables.gap.small,"px 0"),color:'var(--color-text-high-emphasis)',textTransform:'none'}).toString(),container:css({border:'1px solid #eaeaea',' li:nth-child(2n)':{background:'var(--color-background-accent)'}}).toString(),containerSingle:css({padding:variables.gap.small}).toString(),card:css({display:'flex',alignItems:'center'}).toString(),errorMessage:css({margin:0}).toString(),iOSCard:css({width:'100%',overflow:'hidden',marginBottom:variables.gap.big}).toString()};/**
|
|
1
|
+
import _regeneratorRuntime from"@babel/runtime/regenerator";var _excluded=["serviceLevels"];function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}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 _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}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=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_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{hot}from'react-hot-loader/root';import React,{useCallback,useEffect,useMemo,useState}from'react';import PropTypes from'prop-types';import{css}from'glamor';import classNames from'classnames';import CryptoJs from'crypto-js';import sortBy from'lodash/sortBy';import uniqBy from'lodash/uniqBy';import{themeConfig}from'@shopgate/pwa-common/helpers/config';import{i18n}from'@shopgate/engage/core';import{RadioGroupV2 as RadioGroup,RadioCard,MessageBar}from'@shopgate/engage/components';import{useCheckoutContext}from'@shopgate/engage/checkout/hooks/common';import ShippingMethod from"./ShippingMethod";import connect from"./connector";var variables=themeConfig.variables;var styles={root:css({padding:"0 ".concat(variables.gap.big,"px ").concat(variables.gap.xbig,"px")}).toString(),headline:css({fontSize:'1.25rem',fontWeight:'normal',padding:"0 ".concat(variables.gap.small,"px 0 0"),margin:"0 0 ".concat(variables.gap.small,"px 0"),color:'var(--color-text-high-emphasis)',textTransform:'none'}).toString(),container:css({border:'1px solid #eaeaea',' li:nth-child(2n)':{background:'var(--color-background-accent)'}}).toString(),containerSingle:css({padding:variables.gap.small}).toString(),card:css({display:'flex',alignItems:'center'}).toString(),errorMessage:css({margin:0}).toString(),iOSCard:css({width:'100%',overflow:'hidden',marginBottom:variables.gap.big}).toString()};/**
|
|
2
2
|
* Hashes a shipping method
|
|
3
3
|
* @param {Object} method A shipping method
|
|
4
4
|
* @returns {string}
|
|
@@ -15,9 +15,9 @@ setSelectedHash(hashShippingMethod(selectedShippingMethod));},[selectedShippingM
|
|
|
15
15
|
* data handling, we transform the original data structure to the shape which is required for
|
|
16
16
|
* the update request.
|
|
17
17
|
*/var shippingMethods=useMemo(function(){// Flat map all service levels of all shipping methods and aggregate with parent (method) data.
|
|
18
|
-
var unsortedLevels=availableShippingMethods.flatMap(function(method){var serviceLevels=method.serviceLevels,methodData=_objectWithoutProperties(method,
|
|
18
|
+
var unsortedLevels=availableShippingMethods.flatMap(function(method){var serviceLevels=method.serviceLevels,methodData=_objectWithoutProperties(method,_excluded);return serviceLevels.map(function(serviceLevel){var entry=_extends({},methodData,{serviceLevel:serviceLevel});var hash=hashShippingMethod(entry);return _extends({},entry,{hash:hash});});});// Remove duplicated shipping levels that originated from different shipping methods.
|
|
19
19
|
var dedupedLevels=uniqBy(unsortedLevels,function(_ref4){var _serviceLevel$carrier;var serviceLevel=_ref4.serviceLevel;return"".concat(serviceLevel.code,"#").concat((_serviceLevel$carrier=serviceLevel.carrier)===null||_serviceLevel$carrier===void 0?void 0:_serviceLevel$carrier.code);});// Show cheapest service level first followed by alphabetic name.
|
|
20
|
-
return sortBy(dedupedLevels,['serviceLevel.cost','serviceLevel.name']);},[availableShippingMethods]);var onChange=useCallback(/*#__PURE__*/function(){var _ref5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(event,value){var _shippingMethod$servi,_shippingMethod$servi2,_shippingMethod$servi3;var shippingMethod;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
20
|
+
return sortBy(dedupedLevels,['serviceLevel.cost','serviceLevel.name']);},[availableShippingMethods]);var onChange=useCallback(/*#__PURE__*/function(){var _ref5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(event,value){var _shippingMethod$servi,_shippingMethod$servi2,_shippingMethod$servi3;var shippingMethod;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:// Determine the selected shipping method by its hash
|
|
21
21
|
shippingMethod=shippingMethods.find(function(_ref6){var hash=_ref6.hash;return value===hash;});if(shippingMethod){_context.next=3;break;}return _context.abrupt("return");case 3:// Update the local state
|
|
22
22
|
setSelectedHash(shippingMethod===null||shippingMethod===void 0?void 0:shippingMethod.hash);// Perform the update request
|
|
23
|
-
_context.next=6;return updateShippingMethod({code:shippingMethod===null||shippingMethod===void 0?void 0:shippingMethod.code,serviceLevel:{code:shippingMethod===null||shippingMethod===void 0?void 0:(_shippingMethod$servi=shippingMethod.serviceLevel)===null||_shippingMethod$servi===void 0?void 0:_shippingMethod$servi.code,carrier:{code:shippingMethod===null||shippingMethod===void 0?void 0:(_shippingMethod$servi2=shippingMethod.serviceLevel)===null||_shippingMethod$servi2===void 0?void 0:(_shippingMethod$servi3=_shippingMethod$servi2.carrier)===null||_shippingMethod$servi3===void 0?void 0:_shippingMethod$servi3.code}}});case 6:case"end":return _context.stop();}}
|
|
23
|
+
_context.next=6;return updateShippingMethod({code:shippingMethod===null||shippingMethod===void 0?void 0:shippingMethod.code,serviceLevel:{code:shippingMethod===null||shippingMethod===void 0?void 0:(_shippingMethod$servi=shippingMethod.serviceLevel)===null||_shippingMethod$servi===void 0?void 0:_shippingMethod$servi.code,carrier:{code:shippingMethod===null||shippingMethod===void 0?void 0:(_shippingMethod$servi2=shippingMethod.serviceLevel)===null||_shippingMethod$servi2===void 0?void 0:(_shippingMethod$servi3=_shippingMethod$servi2.carrier)===null||_shippingMethod$servi3===void 0?void 0:_shippingMethod$servi3.code}}});case 6:case"end":return _context.stop();}},_callee);}));return function(_x,_x2){return _ref5.apply(this,arguments);};}(),[shippingMethods,updateShippingMethod]);if((order===null||order===void 0?void 0:order.status)!=='new'||!orderHasDirectShipItems){return null;}if(shippingMethods.length===0){return React.createElement("div",{className:styles.root},React.createElement("h3",{className:styles.headline},i18n.text('checkout.shippingMethod.title')),React.createElement(MessageBar,{messages:[{type:'error',message:i18n.text("checkout.shippingMethod.errors.".concat(!shippingAddress?'noShippingAddress':'invalidShippingAddress'))}],classNames:{container:styles.errorMessage},showIcons:true}));}return React.createElement("div",{className:styles.root},React.createElement("h3",{className:styles.headline},i18n.text('checkout.shippingMethod.title')),shippingMethods.length===1?React.createElement("div",{className:classNames(styles.container,styles.containerSingle)},React.createElement(ShippingMethod,{shippingMethod:shippingMethods[0]})):React.createElement(RadioGroup,{name:"shipping-methods",value:selectedHash,onChange:onChange,component:"ul",classes:{root:styles.container},disabled:isLoading},shippingMethods.map(function(shippingMethod){return React.createElement(RadioCard,{renderCard:CardComponent,value:shippingMethod.hash,key:shippingMethod.hash},React.createElement(ShippingMethod,{shippingMethod:shippingMethod}));})));};ShippingMethods.defaultProps={orderHasDirectShipItems:false};export default hot(connect(ShippingMethods));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{CheckoutConfirmationPickUpContact,CheckoutConfirmationOrderContact,CheckoutConfirmationBilledTo,CheckoutConfirmationShippedTo,CheckoutConfirmationOrderSummary,CheckoutConfirmationSection}from"./CheckoutConfirmation";export{SupplementalContent}from"./SupplementalContent";
|
|
1
|
+
export{CheckoutConfirmationPickUpContact,CheckoutConfirmationOrderContact,CheckoutConfirmationBilledTo,CheckoutConfirmationShippedTo,CheckoutConfirmationOrderSummary,CheckoutConfirmationSection}from"./CheckoutConfirmation";export{SupplementalContent}from"./SupplementalContent";export{default as Checkout}from"./Checkout/Checkout";export{default as GuestCheckoutPayment}from"./GuestCheckout/GuestCheckout";export{default as CheckoutConfirmation}from"./CheckoutConfirmation/CheckoutConfirmation";export{default as AddressBook}from"./AddressBook";export{default as AddressBookContact}from"./AddressBookContact";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{CHECKOUT_PATTERN,GUEST_CHECKOUT_PATTERN,CHECKOUT_CONFIRMATION_PATTERN,GUEST_CHECKOUT_PAYMENT_PATTERN,CHECKOUT_ADDRESS_BOOK_PATTERN,CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN,checkoutRoutes}from"./routes";export var CHECKOUT_ACTIONS='checkout.actions';export var CHECKOUT_PICKUP_CONTACT_FORM='checkout.pickup-contact';export var CHECKOUT_MARKETING_OPTIN='checkout.marketing-optin';export var ADDRESS_TYPE_BILLING='billing';export var ADDRESS_TYPE_SHIPPING='shipping';export var ADDRESS_TYPE_PICKUP='pickup';
|
|
1
|
+
import{CHECKOUT_PATH}from'@shopgate/pwa-common/constants/RoutePaths';export*from'@shopgate/pwa-common-commerce/checkout/constants/index';export*from'@shopgate/pwa-common-commerce/checkout/constants/Pipelines';export{CHECKOUT_PATH};export{CHECKOUT_PATTERN,GUEST_CHECKOUT_PATTERN,CHECKOUT_CONFIRMATION_PATTERN,GUEST_CHECKOUT_PAYMENT_PATTERN,CHECKOUT_ADDRESS_BOOK_PATTERN,CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN,checkoutRoutes}from"./routes";export var CHECKOUT_ACTIONS='checkout.actions';export var CHECKOUT_PICKUP_CONTACT_FORM='checkout.pickup-contact';export var CHECKOUT_MARKETING_OPTIN='checkout.marketing-optin';export var ADDRESS_TYPE_BILLING='billing';export var ADDRESS_TYPE_SHIPPING='shipping';export var ADDRESS_TYPE_PICKUP='pickup';
|
package/checkout/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/** @module checkout */
|
|
1
|
+
/** @module checkout */ // ACTIONS
|
|
2
2
|
export{default as fetchCheckoutUrl}from'@shopgate/pwa-common-commerce/checkout/actions/fetchCheckoutUrl';export{fetchCheckoutOrder}from'@shopgate/engage/checkout/actions/fetchCheckoutOrder';export{updateCheckoutOrder}from'@shopgate/engage/checkout/actions/updateCheckoutOrder';export{submitCheckoutOrder}from'@shopgate/engage/checkout/actions/submitCheckoutOrder';export{initializeCheckout}from'@shopgate/engage/checkout/actions/initializeCheckout';export{fetchPaymentMethods}from'@shopgate/engage/checkout/actions/fetchPaymentMethods';export{prepareCheckout}from'@shopgate/engage/checkout/actions/prepareCheckout';export{clearCheckoutOrder,clearCheckoutCampaign}from'@shopgate/engage/checkout/action-creators';// CONSTANTS
|
|
3
|
-
export*from
|
|
3
|
+
export*from"./constants";// SELECTORS
|
|
4
4
|
export*from'@shopgate/pwa-common-commerce/checkout/selectors';export*from"./selectors/guestCheckout";export*from"./selectors/order";export*from"./selectors/route";// STREAMS
|
|
5
5
|
export*from'@shopgate/pwa-common-commerce/checkout/streams';// HOOKS
|
|
6
|
-
export*from"./hooks/common"
|
|
7
|
-
export{default as Checkout}from"./components/Checkout/Checkout";export{default as GuestCheckoutPayment}from"./components/GuestCheckout/GuestCheckout";export{default as CheckoutConfirmation}from"./components/CheckoutConfirmation/CheckoutConfirmation";export{default as AddressBook}from"./components/AddressBook";export{default as AddressBookContact}from"./components/AddressBookContact";
|
|
6
|
+
export*from"./hooks/common";
|
|
@@ -13,9 +13,9 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function _extends(){
|
|
|
13
13
|
*/var PaymentMethodProvider=function PaymentMethodProvider(_ref){var order=_ref.order,paymentMethods=_ref.paymentMethods,fetchOrder=_ref.fetchOrder,updateOrder=_ref.updateOrder;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),activePaymentMeta=_useState2[0],setActivePaymentMeta=_useState2[1];var _useContext=useContext(CheckoutContext),setPaymentHandler=_useContext.setPaymentHandler,setPaymentData=_useContext.setPaymentData,needsPayment=_useContext.needsPayment,setButtonLocked=_useContext.setButtonLocked,setLocked=_useContext.setLocked;var paymentMethodRef=useRef();// Set active payment method to the orders first transaction.
|
|
14
14
|
var paymentMethodCode=useMemo(function(){var _order$paymentTransac;var transaction=(_order$paymentTransac=order.paymentTransactions)===null||_order$paymentTransac===void 0?void 0:_order$paymentTransac[0];if(!transaction)return null;return transaction.paymentMethod.code;},[order]);var paymentData=useMemo(function(){return paymentMethods===null||paymentMethods===void 0?void 0:paymentMethods.find(function(p){return p.code===paymentMethodCode;});},[paymentMethodCode,paymentMethods]);var paymentImpl=useMemo(function(){return AVAILABLE_PAYMENT_METHOD.find(function(method){var _paymentData$paymentP;return method.code===(paymentData===null||paymentData===void 0?void 0:(_paymentData$paymentP=paymentData.paymentProvider)===null||_paymentData$paymentP===void 0?void 0:_paymentData$paymentP.code);});},[paymentData]);// Global transaction handler
|
|
15
15
|
// Currently simply redirect fulfill request to the active payment method.
|
|
16
|
-
useEffect(function(){setPaymentHandler({getSupportsRedirect:(paymentImpl===null||paymentImpl===void 0?void 0:paymentImpl.getSupportsRedirect)||function(){return true;},getCustomPayButton:function getCustomPayButton(){return paymentImpl===null||paymentImpl===void 0?void 0:paymentImpl.payButton;},fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2){var paymentTransactions,resolved;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
16
|
+
useEffect(function(){setPaymentHandler({getSupportsRedirect:(paymentImpl===null||paymentImpl===void 0?void 0:paymentImpl.getSupportsRedirect)||function(){return true;},getCustomPayButton:function getCustomPayButton(){return paymentImpl===null||paymentImpl===void 0?void 0:paymentImpl.payButton;},fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2){var paymentTransactions,resolved;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:paymentTransactions=_ref2.paymentTransactions;_context.next=3;return paymentMethodRef.current.fulfillTransaction({paymentTransactions:paymentTransactions});case 3:resolved=_context.sent;return _context.abrupt("return",resolved);case 5:case"end":return _context.stop();}},_callee);}));function fulfillTransaction(_x){return _fulfillTransaction.apply(this,arguments);}return fulfillTransaction;}()});},[paymentImpl,setButtonLocked,setPaymentHandler]);// Map configured payment methods
|
|
17
17
|
var availablePaymentMethods=useMemo(function(){return paymentMethods.map(function(method){return _extends({},AVAILABLE_PAYMENT_METHOD.find(function(m){return m.code===method.paymentProvider.code;}),{internalCode:method.code,settings:method.settings});});},[paymentMethods]);// Change payment method.
|
|
18
|
-
var handleChangePayment=useCallback(/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(code){var meta,_args2=arguments;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)
|
|
18
|
+
var handleChangePayment=useCallback(/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(code){var meta,_args2=arguments;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:meta=_args2.length>1&&_args2[1]!==undefined?_args2[1]:null;if(!(paymentMethodCode===code)){_context2.next=5;break;}setActivePaymentMeta(meta);setPaymentData({meta:meta});return _context2.abrupt("return");case 5:setLocked(true);_context2.next=8;return updateOrder({paymentTransactions:[{paymentMethod:{code:code}}]});case 8:_context2.next=10;return fetchOrder();case 10:setActivePaymentMeta(meta);setPaymentData({meta:meta});setLocked(false);case 13:case"end":return _context2.stop();}},_callee2);}));return function(_x2){return _ref3.apply(this,arguments);};}(),[setPaymentData,paymentMethodCode,setLocked,updateOrder,fetchOrder]);// API for the underlying payment methods.
|
|
19
19
|
var paymentMethodApi=useMemo(function(){return{registerPaymentMethod:function registerPaymentMethod(api){setButtonLocked(false);paymentMethodRef.current=api;}};},[setButtonLocked]);// Ignore for ROPIS.
|
|
20
20
|
if(!needsPayment){return null;}// Render the respective payment method provider.
|
|
21
21
|
var _ref4=paymentImpl||{},Provider=_ref4.provider,Content=_ref4.content;return React.createElement(Context.Provider,{value:paymentMethodApi},React.createElement("div",{className:styles.section},React.createElement("h3",{className:styles.headline},i18n.text('checkout.payment.title')),React.createElement("div",{className:styles.buttons},availablePaymentMethods.map(function(method){return React.createElement(method.button,{key:method.internalCode,settings:method.settings,onChange:function onChange(meta){return handleChangePayment(method.internalCode,meta);},active:method.internalCode===paymentMethodCode,activePaymentMeta:activePaymentMeta});})),paymentImpl?React.createElement(Provider,{context:Context,data:paymentData,activePaymentMeta:activePaymentMeta},React.createElement(Content,null)):null));};PaymentMethodProvider.defaultProps={order:null,paymentMethods:null};export default connect(mapStateToProps,mapDispatchToProps)(PaymentMethodProvider);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import React,{useEffect}from'react';import{css}from'glamor';import PropTypes from'prop-types';import{PayPalRiskCheck}from'@shopgate/native-modules';import{useCheckoutContext}from"../../hooks/common";import Button from"../../components/PaymentMethodButton";import paypalLogoUrl from"./paypal_logo.png";var styles={logo:css({width:'60%'}).toString()};/**
|
|
2
2
|
* @param {Object} props The component props
|
|
3
3
|
* @returns {JSX}
|
|
4
|
-
*/var PaypalButtonApp=function PaypalButtonApp(props){var settings=props.settings;var _useCheckoutContext=useCheckoutContext(),setLocked=_useCheckoutContext.setLocked;useEffect(function(){if(!settings)return;/** Async handler */var handler=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
4
|
+
*/var PaypalButtonApp=function PaypalButtonApp(props){var settings=props.settings;var _useCheckoutContext=useCheckoutContext(),setLocked=_useCheckoutContext.setLocked;useEffect(function(){if(!settings)return;/** Async handler */var handler=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(!(PayPalRiskCheck===null||PayPalRiskCheck===void 0?void 0:PayPalRiskCheck.setup)){_context.next=10;break;}setLocked(true);_context.prev=2;_context.next=5;return PayPalRiskCheck.setup(settings.env==='sandbox');case 5:_context.next=9;break;case 7:_context.prev=7;_context.t0=_context["catch"](2);case 9:setLocked(false);case 10:case"end":return _context.stop();}},_callee,null,[[2,7]]);}));return function handler(){return _ref.apply(this,arguments);};}();handler();},[setLocked,settings]);return React.createElement(Button,props,React.createElement("img",{className:styles.logo,src:paypalLogoUrl,alt:"PayPal"}));};PaypalButtonApp.defaultProps={settings:null};export default PaypalButtonApp;
|
|
@@ -3,6 +3,6 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function _slicedToAr
|
|
|
3
3
|
* @param {Object} props Props
|
|
4
4
|
* @returns {JSX}
|
|
5
5
|
*/var PaypalButton=function PaypalButton(_ref){var settings=_ref.settings,_onChange=_ref.onChange,activeFundingSource=_ref.activePaymentMeta,active=_ref.active;var _useCheckoutContext=useCheckoutContext(),setLocked=_useCheckoutContext.setLocked,order=_useCheckoutContext.order;var paypal=usePaypal();// Initialize paypal sdk.
|
|
6
|
-
useEffect(function(){if(!settings||!order)return;/** Async handler */var handler=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
6
|
+
useEffect(function(){if(!settings||!order)return;/** Async handler */var handler=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLocked(true);_context.prev=1;_context.next=4;return loadWebSdk(settings,order);case 4:_context.next=8;break;case 6:_context.prev=6;_context.t0=_context["catch"](1);case 8:setLocked(false);case 9:case"end":return _context.stop();}},_callee,null,[[1,6]]);}));return function handler(){return _ref2.apply(this,arguments);};}();handler();},[order,setLocked,settings]);// Create paypal markers (just logic-less logos for each payment method).
|
|
7
7
|
var marks=useMemo(function(){if(!paypal)return[];return paypal.getFundingSources().map(function(fundingSource){var mark=window.paypal.Marks({fundingSource:fundingSource});if(!mark.isEligible())return null;return[mark,fundingSource];}).filter(function(m){return!!m;});},[paypal]);// Render marks to dom once ready.
|
|
8
8
|
useLayoutEffect(function(){requestAnimationFrame(function(){marks.forEach(function(_ref3,index){var _ref4=_slicedToArray(_ref3,1),mark=_ref4[0];mark.render("#sg-paypal-button-".concat(index));});},[]);},[marks]);return React.createElement(Fragment,null,marks.map(function(_ref5,index){var _ref6=_slicedToArray(_ref5,2),fundingSource=_ref6[1];var isButtonActive=fundingSource===paypal.FUNDING.PAYPAL&&!activeFundingSource?active:active&&fundingSource===activeFundingSource;return React.createElement(Button,{key:fundingSource,onChange:function onChange(){return _onChange(fundingSource);},active:isButtonActive},React.createElement("div",{id:"sg-paypal-button-".concat(index),className:styles.button}));}));};PaypalButton.defaultProps={settings:null,activePaymentMeta:null};export default PaypalButton;
|
|
@@ -8,5 +8,5 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function _extends(){
|
|
|
8
8
|
var formActions=useRef({});useEffect(function(){formActions.current={onSubmit:onSubmit,onValidate:onValidate};},[onSubmit,onValidate]);// Trigger rendering the paypal button whenever a property changes.
|
|
9
9
|
useLayoutEffect(function(){if(!paypal)return;if(_typeof(fundingSource)==='object')return;if(paypalButton.current){paypalButton.current.close();}var customSettings=getThemeSettings('PayPal')||{};paypalButton.current=paypal.Buttons({fundingSource:fundingSource||paypal.FUNDING.PAYPAL,createOrder:function createOrder(){var _paymentTransactions$;var externalCode=(_paymentTransactions$=paymentTransactions[0])===null||_paymentTransactions$===void 0?void 0:_paymentTransactions$.externalCode;return externalCode;},onInit:function onInit(_,actions){// Here again thanks paypal, there is no way access the actions outside these handlers.
|
|
10
10
|
setPaypalActions(actions);},onClick:function onClick(_,actions){// Trigger manual form validation to comply to paypal standards.
|
|
11
|
-
var isValid=formActions.current.onValidate();if(isValid&&!disabled){return actions.resolve();}return actions.reject();},onApprove:function(){var _onApprove=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_,actions){var redirect;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
11
|
+
var isValid=formActions.current.onValidate();if(isValid&&!disabled){return actions.resolve();}return actions.reject();},onApprove:function(){var _onApprove=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_,actions){var redirect;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return formActions.current.onSubmit();case 2:redirect=_context.sent;if(redirect){showModal({type:MODAL_PIPELINE_ERROR,title:null,confirm:null,dismiss:'modal.ok',message:'checkout.errors.paypalFunding'});actions.restart();}case 4:case"end":return _context.stop();}},_callee);}));function onApprove(_x,_x2){return _onApprove.apply(this,arguments);}return onApprove;}(),style:_extends({label:'pay',color:'white'},customSettings)});paypalButton.current.render(button.current);},[disabled,fundingSource,paymentTransactions,paypal,showModal]);// Sync our internal disabled state with paypals disabled state.
|
|
12
12
|
useEffect(function(){if(!paypalActions)return;if(disabled){paypalActions.disable();return;}paypalActions.enable();},[disabled,paypalActions]);if(_typeof(fundingSource)==='object')return null;if(!paypal){return null;}return React.createElement(Fragment,null,React.createElement("h3",{className:styles.headline},i18n.text('checkout.finalizePayment')),React.createElement("div",{ref:button}));};var mapDispatchToProps={showModal:showModal};export default connect(null,mapDispatchToProps)(PaypalPayButton);
|
|
@@ -3,4 +3,4 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGenera
|
|
|
3
3
|
* @return {JSX}
|
|
4
4
|
*/var PaypalProvider=function PaypalProvider(_ref){var activeFundingSource=_ref.activePaymentMeta;var _useContext=useContext(PaymentContext),registerPaymentMethod=_useContext.registerPaymentMethod;useEffect(function(){// Register payment method.
|
|
5
5
|
registerPaymentMethod({// Paypal doesn't need to fulfill any transactions.
|
|
6
|
-
fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2){var paymentTransactions,_paymentTransactions$,id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
6
|
+
fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2){var paymentTransactions,_paymentTransactions$,id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:paymentTransactions=_ref2.paymentTransactions;if(!isAvailable()){_context.next=10;break;}id=paymentTransactions===null||paymentTransactions===void 0?void 0:(_paymentTransactions$=paymentTransactions[0])===null||_paymentTransactions$===void 0?void 0:_paymentTransactions$.id;_context.prev=3;_context.next=6;return PayPalRiskCheck.submit(id);case 6:_context.next=10;break;case 8:_context.prev=8;_context.t0=_context["catch"](3);case 10:return _context.abrupt("return",[]);case 11:case"end":return _context.stop();}},_callee,null,[[3,8]]);}));function fulfillTransaction(_x){return _fulfillTransaction.apply(this,arguments);}return fulfillTransaction;}()});},[activeFundingSource,registerPaymentMethod]);return null;};PaypalProvider.propTypes={activePaymentMeta:PropTypes.string};PaypalProvider.defaultProps={activePaymentMeta:null};export default PaypalProvider;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _regeneratorRuntime from"@babel/runtime/regenerator";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 asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}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=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_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;}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}import React,{useEffect,useState,Fragment}from'react';import PropTypes from'prop-types';import{css}from'glamor';import Button from"../../components/PaymentMethodButton";import{i18n}from"../../../core/helpers/i18n";import{loadSdk}from"./sdk";import{useCheckoutContext}from"../../hooks/common";import connect from"./StripeButton.connector";import googlePayLogo from"./googlepay.png";import applePayLogo from"./applepay.svg";var styles={mark:css({height:32}).toString()};/**
|
|
1
|
+
import _regeneratorRuntime from"@babel/runtime/regenerator";var _excluded=["publishableKey","onChange","active","activePaymentMeta"];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 asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}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=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_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;}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}import React,{useEffect,useState,Fragment}from'react';import PropTypes from'prop-types';import{css}from'glamor';import Button from"../../components/PaymentMethodButton";import{i18n}from"../../../core/helpers/i18n";import{loadSdk}from"./sdk";import{useCheckoutContext}from"../../hooks/common";import connect from"./StripeButton.connector";import googlePayLogo from"./googlepay.png";import applePayLogo from"./applepay.svg";var styles={mark:css({height:32}).toString()};/**
|
|
2
2
|
* Stripe
|
|
3
3
|
* @param {Object} props Props
|
|
4
4
|
* @returns {JSX}
|
|
5
|
-
*/var StripeButton=function StripeButton(_ref){var publishableKey=_ref.publishableKey,_onChange=_ref.onChange,active=_ref.active,subMethod=_ref.activePaymentMeta,props=_objectWithoutProperties(_ref,
|
|
5
|
+
*/var StripeButton=function StripeButton(_ref){var publishableKey=_ref.publishableKey,_onChange=_ref.onChange,active=_ref.active,subMethod=_ref.activePaymentMeta,props=_objectWithoutProperties(_ref,_excluded);var _useState=useState(null),_useState2=_slicedToArray(_useState,2),stripeRequest=_useState2[0],setStripeRequest=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),stripeRequestType=_useState4[0],setStripeRequestType=_useState4[1];var _useCheckoutContext=useCheckoutContext(),order=_useCheckoutContext.order;useEffect(function(){if(!publishableKey){return;}/** */var fn=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var _order$addressSequenc,_order$addressSequenc2;var stripe,req,availability;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(order){_context.next=2;break;}return _context.abrupt("return");case 2:_context.next=4;return loadSdk(publishableKey);case 4:stripe=_context.sent;req=stripe.paymentRequest({country:(_order$addressSequenc=order.addressSequences)===null||_order$addressSequenc===void 0?void 0:(_order$addressSequenc2=_order$addressSequenc[0])===null||_order$addressSequenc2===void 0?void 0:_order$addressSequenc2.country,currency:order.currencyCode.toLowerCase(),total:{label:'Checkout',amount:Math.round(order.total*100)}});_context.next=8;return req.canMakePayment();case 8:availability=_context.sent;if(availability){_context.next=11;break;}return _context.abrupt("return");case 11:setStripeRequest(req);setStripeRequestType(availability);case 13:case"end":return _context.stop();}},_callee);}));return function fn(){return _ref2.apply(this,arguments);};}();fn();},[order,publishableKey]);return React.createElement(Fragment,null,React.createElement(Button,_extends({},props,{onChange:function onChange(){return _onChange(null);},active:active&&!subMethod}),i18n.text('checkout.payment.buttons.stripe')),stripeRequest&&(stripeRequestType===null||stripeRequestType===void 0?void 0:stripeRequestType.applePay)?React.createElement(Button,_extends({},props,{active:!!(active&&subMethod),onChange:function onChange(){return _onChange({stripeRequest:stripeRequest,stripeRequestType:stripeRequestType});}}),React.createElement("img",{className:styles.mark,alt:"ApplePay",src:applePayLogo})):null,stripeRequest&&!(stripeRequestType===null||stripeRequestType===void 0?void 0:stripeRequestType.applePay)?React.createElement(Button,_extends({},props,{active:!!(active&&subMethod),onChange:function onChange(){return _onChange({stripeRequest:stripeRequest,stripeRequestType:stripeRequestType});}}),React.createElement("img",{className:styles.mark,alt:"GooglePay",src:googlePayLogo})):null);};StripeButton.defaultProps={publishableKey:null,activePaymentMeta:null};export default connect(StripeButton);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _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);return Constructor;}function
|
|
1
|
+
function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _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);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}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 _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}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}});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 _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,{useContext}from'react';import{css}from'glamor';import{themeConfig}from'@shopgate/engage';import{i18n}from'@shopgate/engage/core';import{TextField}from'@shopgate/engage/components';import{getCSSCustomProp}from'@shopgate/engage/styles';import{CardNumberElement,CardCvcElement,CardExpiryElement}from'@stripe/react-stripe-js';import Section from"../../components/Checkout/CheckoutSection";import{useCheckoutContext}from"../../hooks/common";import StripeContext from"./StripeProvider.context";var colors=themeConfig.colors;var styles={root:css({padding:'0 16px',display:'flex',flexDirection:'column',flex:'0 0 auto',' .formElement':{background:"var(--color-background-accent, ".concat(colors.shade8,")"),padding:0,marginBottom:38,borderTopLeftRadius:4,borderTopRightRadius:4,borderBottom:"1px solid ".concat(colors.shade12)},' .formElement label':{color:'var(--color-text-low-emphasis)',paddingLeft:24},' .underline':{marginBottom:0,borderBottom:'none'},' .errorText':{bottom:-20,left:18},' .StripeElement':{paddingLeft:16}}).toString(),secondRow:css({display:'flex',flexDirection:'row'}).toString(),cvc:css({flex:1.5,marginRight:16}).toString(),expiry:css({flex:1}).toString()};/* eslint-disable react/prop-types */ /**
|
|
2
2
|
* Wrapper
|
|
3
3
|
* @param {Object} Element element
|
|
4
4
|
* @returns {Object}
|
|
5
|
-
*/var wrapStripeElement=function wrapStripeElement(Element){
|
|
6
|
-
* @returns {JSX} */
|
|
5
|
+
*/var wrapStripeElement=function wrapStripeElement(Element){return(/*#__PURE__*/function(_React$Component){function _class(){var _this2;_classCallCheck(this,_class);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this2=_callSuper(this,_class,[].concat(args));_defineProperty(_this2,"onChange",function(){_this2.props.onChange({target:{value:' '}});});return _this2;}_inherits(_class,_React$Component);return _createClass(_class,[{key:"render",value:/** Render
|
|
6
|
+
* @returns {JSX} */function render(){return React.createElement(Element,_extends({},this.props,{onChange:this.onChange}));}}]);}(React.Component));};/* eslint-enable react/prop-types */var StripeCardNumberElement=wrapStripeElement(CardNumberElement);var StripeCardCvcElement=wrapStripeElement(CardCvcElement);var StripeCardExpiryElement=wrapStripeElement(CardExpiryElement);/**
|
|
7
7
|
* PickupContactForm
|
|
8
8
|
* @returns {JSX}
|
|
9
9
|
*/var StripeCreditCard=function StripeCreditCard(){var _paymentData$meta;var cardRef=React.useRef();var _useContext=useContext(StripeContext),error=_useContext.error,setError=_useContext.setError;var _useCheckoutContext=useCheckoutContext(),needsPayment=_useCheckoutContext.needsPayment,paymentData=_useCheckoutContext.paymentData;// Scrolls to stripe config when error is set.
|
|
@@ -4,30 +4,30 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function _slicedToAr
|
|
|
4
4
|
* @param {Object} req Stripe request.
|
|
5
5
|
* @param {Order} order Order
|
|
6
6
|
* @return {Promise}
|
|
7
|
-
*/export var prepareStripeRequestCheckout=function prepareStripeRequestCheckout(stripe,req,order){return new Promise(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve,reject){var availability;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)
|
|
7
|
+
*/export var prepareStripeRequestCheckout=function prepareStripeRequestCheckout(stripe,req,order){return new Promise(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve,reject){var availability;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:// Update totals if they updated due to promotions etc.
|
|
8
8
|
req.update({total:{amount:Math.round(order.total*100),label:'Checkout'}});// Recheck availability again.
|
|
9
9
|
_context2.next=3;return req.canMakePayment();case 3:availability=_context2.sent;if(availability){_context2.next=7;break;}reject(availability);return _context2.abrupt("return");case 7:// Handle success
|
|
10
|
-
req.on('paymentmethod',/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(event){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
10
|
+
req.on('paymentmethod',/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(event){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:resolve(event);case 1:case"end":return _context.stop();}},_callee);}));return function(_x3){return _ref2.apply(this,arguments);};}());// Handle cancellation
|
|
11
11
|
req.on('cancel',function(err){reject(err);});// Show to user
|
|
12
|
-
req.show();case 10:case"end":return _context2.stop();}}
|
|
12
|
+
req.show();case 10:case"end":return _context2.stop();}},_callee2);}));return function(_x,_x2){return _ref.apply(this,arguments);};}());};/**
|
|
13
13
|
* Triggers the payment using stripe payment request api.
|
|
14
14
|
* @param {Object} stripe Stripe
|
|
15
15
|
* @param {Object} req Stripe Request
|
|
16
16
|
* @param {Object} order Order
|
|
17
17
|
* @param {Object} activeTransaction Active request
|
|
18
18
|
* @returns {Promise}
|
|
19
|
-
*/var triggerStripeRequest=/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(stripe,req,order,activeTransaction){var _activeTransaction$ch;var event,intent,result,step;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)
|
|
19
|
+
*/var triggerStripeRequest=/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(stripe,req,order,activeTransaction){var _activeTransaction$ch;var event,intent,result,step;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:// Create checkout event on stripe.
|
|
20
20
|
// For apple pay the event is already created beforehands
|
|
21
21
|
// This is due to safaris limitation that the `show` needs
|
|
22
22
|
// to happen directly inside a gesture handler (click, ..)
|
|
23
23
|
event=req.preparedEvent;if(event){_context3.next=5;break;}_context3.next=4;return prepareStripeRequestCheckout(stripe,req,order);case 4:event=_context3.sent;case 5:// Send over to stripe and let it validate.
|
|
24
|
-
intent=activeTransaction===null||activeTransaction===void 0?void 0:(_activeTransaction$ch=activeTransaction.checkoutParams)===null||_activeTransaction$ch===void 0?void 0:_activeTransaction$ch.paymentIntent;/* eslint-disable camelcase */_context3.next=8;return stripe.confirmCardPayment(intent,{payment_method:event.paymentMethod.id},{handleActions:false});case 8:result=_context3.sent;if(!result.error){_context3.next=12;break;}event.complete('fail');throw result.error;case 12:event.complete('success');if(!(result.paymentIntent.status==='requires_action')){_context3.next=20;break;}_context3.next=16;return stripe.confirmCardPayment(intent);case 16:step=_context3.sent;if(!step.error){_context3.next=19;break;}throw step.error;case 19:return _context3.abrupt("return",step);case 20:return _context3.abrupt("return",result);case 21:case"end":return _context3.stop();}}
|
|
24
|
+
intent=activeTransaction===null||activeTransaction===void 0?void 0:(_activeTransaction$ch=activeTransaction.checkoutParams)===null||_activeTransaction$ch===void 0?void 0:_activeTransaction$ch.paymentIntent;/* eslint-disable camelcase */_context3.next=8;return stripe.confirmCardPayment(intent,{payment_method:event.paymentMethod.id},{handleActions:false});case 8:result=_context3.sent;if(!result.error){_context3.next=12;break;}event.complete('fail');throw result.error;case 12:event.complete('success');if(!(result.paymentIntent.status==='requires_action')){_context3.next=20;break;}_context3.next=16;return stripe.confirmCardPayment(intent);case 16:step=_context3.sent;if(!step.error){_context3.next=19;break;}throw step.error;case 19:return _context3.abrupt("return",step);case 20:return _context3.abrupt("return",result);case 21:case"end":return _context3.stop();}},_callee3);}));return function triggerStripeRequest(_x4,_x5,_x6,_x7){return _ref3.apply(this,arguments);};}();/**
|
|
25
25
|
* A Provider that is needed for all stripe based
|
|
26
26
|
* @param {Object} props The components props.
|
|
27
27
|
* @returns {JSX}
|
|
28
|
-
*/var StripeProvider=function StripeProvider(_ref4){var children=_ref4.children;var _React$useState=React.useState(null),_React$useState2=_slicedToArray(_React$useState,2),error=_React$useState2[0],setError=_React$useState2[1];var _useCheckoutContext=useCheckoutContext(),order=_useCheckoutContext.order,paymentData=_useCheckoutContext.paymentData;var stripe=useStripe();var elements=useElements();var contextApi=React.useMemo(function(){return{error:error,setError:setError,fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref5){var _activeTransaction$ch2;var paymentTransactions,activeTransaction,
|
|
29
|
-
activeTransaction=paymentTransactions[0];if(activeTransaction===null||activeTransaction===void 0?void 0:(_activeTransaction$ch2=activeTransaction.checkoutParams)===null||_activeTransaction$ch2===void 0?void 0:_activeTransaction$ch2.paymentIntent){_context4.next=5;break;}setError(i18n.text('checkout.errors.noPaymentTransaction'));return _context4.abrupt("return",false);case 5:if(!((paymentData===null||paymentData===void 0?void 0:paymentData.meta)&&(paymentData===null||paymentData===void 0?void 0:paymentData.meta.stripeRequest))){_context4.next=17;break;}_context4.prev=6;_context4.next=9;return triggerStripeRequest(stripe,paymentData.meta.stripeRequest,order,activeTransaction);case 9:
|
|
28
|
+
*/var StripeProvider=function StripeProvider(_ref4){var children=_ref4.children;var _React$useState=React.useState(null),_React$useState2=_slicedToArray(_React$useState,2),error=_React$useState2[0],setError=_React$useState2[1];var _useCheckoutContext=useCheckoutContext(),order=_useCheckoutContext.order,paymentData=_useCheckoutContext.paymentData;var stripe=useStripe();var elements=useElements();var contextApi=React.useMemo(function(){return{error:error,setError:setError,fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref5){var _activeTransaction$ch2;var paymentTransactions,activeTransaction,_ref7,_paymentIntent,_ref8,incomingError,paymentIntent;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:paymentTransactions=_ref5.paymentTransactions;// Make sure api responded with a new payment transaction.
|
|
29
|
+
activeTransaction=paymentTransactions[0];if(activeTransaction===null||activeTransaction===void 0?void 0:(_activeTransaction$ch2=activeTransaction.checkoutParams)===null||_activeTransaction$ch2===void 0?void 0:_activeTransaction$ch2.paymentIntent){_context4.next=5;break;}setError(i18n.text('checkout.errors.noPaymentTransaction'));return _context4.abrupt("return",false);case 5:if(!((paymentData===null||paymentData===void 0?void 0:paymentData.meta)&&(paymentData===null||paymentData===void 0?void 0:paymentData.meta.stripeRequest))){_context4.next=17;break;}_context4.prev=6;_context4.next=9;return triggerStripeRequest(stripe,paymentData.meta.stripeRequest,order,activeTransaction);case 9:_ref7=_context4.sent;_paymentIntent=_ref7.paymentIntent;return _context4.abrupt("return",[{id:activeTransaction.id,checkoutParams:{paymentIntentId:_paymentIntent.id}}]);case 14:_context4.prev=14;_context4.t0=_context4["catch"](6);return _context4.abrupt("return",false);case 17:_context4.next=19;return stripe.confirmCardPayment(activeTransaction.checkoutParams.paymentIntent,{/* eslint-disable-next-line camelcase */payment_method:{card:elements.getElement(CardNumberElement)}});case 19:_ref8=_context4.sent;incomingError=_ref8.error;paymentIntent=_ref8.paymentIntent;if(!incomingError){_context4.next=26;break;}console.error(incomingError,activeTransaction.checkoutParams.paymentIntent);setError(incomingError.message);return _context4.abrupt("return",false);case 26:return _context4.abrupt("return",[{id:activeTransaction.id,checkoutParams:{paymentIntentId:paymentIntent.id}}]);case 27:case"end":return _context4.stop();}},_callee4,null,[[6,14]]);}));function fulfillTransaction(_x8){return _fulfillTransaction.apply(this,arguments);}return fulfillTransaction;}()};},[elements,error,order,paymentData,stripe]);var _useContext=useContext(PaymentContext),registerPaymentMethod=_useContext.registerPaymentMethod;useEffect(function(){registerPaymentMethod(contextApi);},[contextApi,registerPaymentMethod]);return React.createElement(Context.Provider,{value:contextApi},children);};/**
|
|
30
30
|
* A Provider that is needed for all stripe based
|
|
31
31
|
* @param {Object} props The components props.
|
|
32
32
|
* @returns {JSX}
|
|
33
|
-
*/var StripeProviderWrapper=function StripeProviderWrapper(
|
|
33
|
+
*/var StripeProviderWrapper=function StripeProviderWrapper(_ref9){var publishableKey=_ref9.publishableKey,children=_ref9.children;React.useEffect(function(){if(!publishableKey){return;}loadSdk(publishableKey);},[publishableKey]);return React.createElement(Elements,{stripe:stripePromise},React.createElement(StripeProvider,null,children));};StripeProviderWrapper.defaultProps={publishableKey:null};export default connect(StripeProviderWrapper);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import{loadStripe}from'@stripe/stripe-js';
|
|
1
|
+
import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import{loadStripe}from'@stripe/stripe-js';import{logger}from'@shopgate/engage/core/helpers';// Write a log when sdk module loads - should not happen before entering native checkout
|
|
2
|
+
logger.warn('Stripe SDK loaded');var resolve;var reject;var stripe;export var promise=new Promise(function(res,rej){resolve=res;reject=rej;});var loaded=false;/**
|
|
2
3
|
* Loads the stripe sdk
|
|
3
4
|
* @param {string} publishableKey The publishable stripe key.
|
|
4
5
|
* @returns {Stripe}
|
|
5
|
-
*/export var loadSdk=function loadSdk(publishableKey){if(loaded){return promise;}loaded=true;/** */var fn=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var stripeObject;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
6
|
+
*/export var loadSdk=function loadSdk(publishableKey){if(loaded||!publishableKey){return promise;}loaded=true;/** */var fn=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var stripeObject;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return loadStripe(publishableKey);case 3:stripeObject=_context.sent;stripe=stripeObject;resolve(stripeObject);return _context.abrupt("return",stripeObject);case 9:_context.prev=9;_context.t0=_context["catch"](0);reject(_context.t0);throw _context.t0;case 13:case"end":return _context.stop();}},_callee,null,[[0,9]]);}));return function fn(){return _ref.apply(this,arguments);};}();return fn();};/**
|
|
6
7
|
* Returns the sdk
|
|
7
8
|
* @returns {Object}
|
|
8
9
|
* */export var getSdk=function getSdk(){return stripe;};
|
|
@@ -8,4 +8,4 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function _extends(){
|
|
|
8
8
|
*/var AddressBookProvider=function AddressBookProvider(_ref){var children=_ref.children,order=_ref.order,billingAddress=_ref.billingAddress,shippingAddress=_ref.shippingAddress,updateCheckoutOrder=_ref.updateCheckoutOrder,fetchCheckoutOrder=_ref.fetchCheckoutOrder,historyPopToRoute=_ref.historyPopToRoute,isPickupContactEnabled=_ref.isPickupContactEnabled;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isLoading=_useState2[0],setLoading=_useState2[1];var _useRoute=useRoute(),pathname=_useRoute.pathname,routeId=_useRoute.id,_useRoute$params$type=_useRoute.params.type,type=_useRoute$params$type===void 0?ADDRESS_TYPE_BILLING:_useRoute$params$type;var popToCheckout=useCallback(function(){historyPopToRoute({pattern:CHECKOUT_PATTERN,routeId:routeId});},[historyPopToRoute,routeId]);/**
|
|
9
9
|
* @param {Array} addressSequences Address sequences
|
|
10
10
|
* @returns {Array}
|
|
11
|
-
*/var createAddressSequenceIndexes=function createAddressSequenceIndexes(addressSequences){var primaryBillToAddressSequenceIndex=addressSequences.findIndex(function(address){return address.type==='billing';});var primaryShipToAddressSequenceIndex=addressSequences.findIndex(function(address){return address.type==='shipping'||address.type==='pickup';});primaryBillToAddressSequenceIndex=primaryBillToAddressSequenceIndex!==-1?primaryBillToAddressSequenceIndex:undefined;primaryShipToAddressSequenceIndex=primaryShipToAddressSequenceIndex!==-1?primaryShipToAddressSequenceIndex:undefined;return{primaryBillToAddressSequenceIndex:primaryBillToAddressSequenceIndex,primaryShipToAddressSequenceIndex:primaryShipToAddressSequenceIndex};};var updateOrderWithContact=useCallback(/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(contactId){var gotoCheckout,addressSequences,billingFromSequence,_args=arguments;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
11
|
+
*/var createAddressSequenceIndexes=function createAddressSequenceIndexes(addressSequences){var primaryBillToAddressSequenceIndex=addressSequences.findIndex(function(address){return address.type==='billing';});var primaryShipToAddressSequenceIndex=addressSequences.findIndex(function(address){return address.type==='shipping'||address.type==='pickup';});primaryBillToAddressSequenceIndex=primaryBillToAddressSequenceIndex!==-1?primaryBillToAddressSequenceIndex:undefined;primaryShipToAddressSequenceIndex=primaryShipToAddressSequenceIndex!==-1?primaryShipToAddressSequenceIndex:undefined;return{primaryBillToAddressSequenceIndex:primaryBillToAddressSequenceIndex,primaryShipToAddressSequenceIndex:primaryShipToAddressSequenceIndex};};var updateOrderWithContact=useCallback(/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(contactId){var gotoCheckout,addressSequences,billingFromSequence,_args=arguments;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:gotoCheckout=_args.length>1&&_args[1]!==undefined?_args[1]:true;setLoading(true);_context.prev=2;addressSequences=[];if(type===ADDRESS_TYPE_BILLING){addressSequences.push({customerContactId:contactId,type:'billing'});}else if(billingAddress){addressSequences.push({customerContactId:billingAddress.customerContactId,type:'billing'});}if(type===ADDRESS_TYPE_SHIPPING){addressSequences.push({customerContactId:contactId,type:'shipping'});}else if(shippingAddress){addressSequences.push({customerContactId:shippingAddress.customerContactId,type:'shipping'});}billingFromSequence=addressSequences.find(function(address){return address.type==='billing';});if(billingFromSequence&&isPickupContactEnabled){addressSequences.push({customerContactId:billingFromSequence.customerContactId,type:'pickup'});}_context.next=10;return updateCheckoutOrder(_extends({addressSequences:addressSequences},createAddressSequenceIndexes(addressSequences)));case 10:if(gotoCheckout){popToCheckout();}_context.next=15;break;case 13:_context.prev=13;_context.t0=_context["catch"](2);case 15:setLoading(false);case 16:case"end":return _context.stop();}},_callee,null,[[2,13]]);}));return function(_x){return _ref2.apply(this,arguments);};}(),[billingAddress,isPickupContactEnabled,popToCheckout,shippingAddress,type,updateCheckoutOrder]);var deleteContactFromOrder=useCallback(/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(contactId){var addressSequences;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(Array.isArray(order===null||order===void 0?void 0:order.addressSequences)){_context2.next=2;break;}return _context2.abrupt("return");case 2:addressSequences=order.addressSequences.reduce(function(acc,_ref4){var customerContactId=_ref4.customerContactId,addressType=_ref4.type;if(customerContactId!==contactId){acc.push({type:addressType,customerContactId:customerContactId});}return acc;},[]);_context2.prev=3;_context2.next=6;return updateCheckoutOrder(_extends({addressSequences:addressSequences},createAddressSequenceIndexes(addressSequences)));case 6:_context2.next=10;break;case 8:_context2.prev=8;_context2.t0=_context2["catch"](3);case 10:case"end":return _context2.stop();}},_callee2,null,[[3,8]]);}));return function(_x2){return _ref3.apply(this,arguments);};}(),[order,updateCheckoutOrder]);useEffect(function(){if(isLoading){LoadingProvider.setLoading(pathname);}else{LoadingProvider.resetLoading(pathname);}return function(){LoadingProvider.resetLoading(pathname);};},[isLoading,pathname]);useEffect(function(){if(!order){fetchCheckoutOrder();}},[fetchCheckoutOrder,order]);var value=useMemo(function(){return{isCheckout:true,updateOrderWithContact:updateOrderWithContact,deleteContactFromOrder:deleteContactFromOrder,popToCheckout:popToCheckout,type:type};},[updateOrderWithContact,deleteContactFromOrder,popToCheckout,type]);return React.createElement(Context.Provider,{value:value},children);};AddressBookProvider.defaultProps={children:null,order:null,billingAddress:null,shippingAddress:null};export default connect(makeMapStateToProp,mapDispatchToProps)(AddressBookProvider);
|