@merchi/cart 1.4.4
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/LICENSE +21 -0
- package/README.md +134 -0
- package/esm/Cart.js +62 -0
- package/esm/CartAlert.js +47 -0
- package/esm/CartHeader.js +29 -0
- package/esm/CartProvider.js +1101 -0
- package/esm/CartTotals.js +89 -0
- package/esm/assets/merchi-monster-loader.gif +0 -0
- package/esm/assets/merchi-swipe-outline.png +0 -0
- package/esm/assets/product-not-found.png +0 -0
- package/esm/assets/stripe-payment-secure.png +0 -0
- package/esm/buttons/Button.js +23 -0
- package/esm/buttons/ButtonBack.js +35 -0
- package/esm/buttons/ButtonClearCart.js +17 -0
- package/esm/buttons/ButtonInvoiceDownload.js +88 -0
- package/esm/buttons/ButtonNext.js +39 -0
- package/esm/buttons/ButtonNextDynamic.js +19 -0
- package/esm/buttons/ButtonOpenCartMerchiCartModal.js +47 -0
- package/esm/buttons/ButtonPay.js +26 -0
- package/esm/buttons/ButtonShipmentTabNext.js +28 -0
- package/esm/buttons/index.js +7 -0
- package/esm/components/Alert.js +26 -0
- package/esm/components/CartBody.js +14 -0
- package/esm/components/CartClient.js +62 -0
- package/esm/components/CartFooter.js +12 -0
- package/esm/components/CartItemRow.js +230 -0
- package/esm/components/CartPaymentSettingsInvalid.js +13 -0
- package/esm/components/CartShipment.js +52 -0
- package/esm/components/CartTabContent.js +12 -0
- package/esm/components/CartTabPanel.js +25 -0
- package/esm/components/CartTableContainer.js +12 -0
- package/esm/components/CartTitle.js +26 -0
- package/esm/components/CartTotalsListGroup.js +71 -0
- package/esm/components/Collapse.js +32 -0
- package/esm/components/CustomCartProductForm.js +128 -0
- package/esm/components/CustomerCheckoutMethodTabs.js +94 -0
- package/esm/components/DiscountInputGroup.js +293 -0
- package/esm/components/LoadingTemplate.js +23 -0
- package/esm/components/NoCartItems.js +20 -0
- package/esm/components/ShipmentGroupCard.js +207 -0
- package/esm/components/Table.js +13 -0
- package/esm/components/containers.js +31 -0
- package/esm/components/index.js +18 -0
- package/esm/components/product-form-sdk-externals.js +36 -0
- package/esm/forms/FormNewCustomer.js +243 -0
- package/esm/forms/FormReturningCustomer.js +165 -0
- package/esm/forms/FormShipmentAddressAndNotes.js +195 -0
- package/esm/forms/FormSquarePayment.js +19 -0
- package/esm/forms/FormStripePayment.js +19 -0
- package/esm/forms/FormWhatsappCustomer.js +253 -0
- package/esm/forms/InputAcceptUserTermsAndConditions.js +35 -0
- package/esm/forms/InputError.js +16 -0
- package/esm/forms/InputSelect.js +48 -0
- package/esm/forms/InputText.js +56 -0
- package/esm/forms/InputsAddress.js +476 -0
- package/esm/forms/index.js +8 -0
- package/esm/index.js +13 -0
- package/esm/modals.js +51 -0
- package/esm/panels/PanelCartItems.js +49 -0
- package/esm/panels/PanelCartShipment.js +66 -0
- package/esm/panels/PanelClearCart.js +56 -0
- package/esm/panels/PanelClientCheckout.js +81 -0
- package/esm/panels/PanelEditCartItem.js +199 -0
- package/esm/panels/PanelPaymentSuccess.js +63 -0
- package/esm/panels/index.js +7 -0
- package/esm/square/SquareCard.js +106 -0
- package/esm/stripe/LegacyStripeCardForm.js +157 -0
- package/esm/stripe/StripeCardFields.js +126 -0
- package/esm/stripe/StripeCardForm.js +33 -0
- package/esm/stripe/StripePaymentButtons.js +98 -0
- package/esm/stripe/actions.js +192 -0
- package/esm/stripe/utils.js +20 -0
- package/esm/styles/globals.css +463 -0
- package/esm/styles/globals.css.map +1 -0
- package/esm/tabs/CartNav.js +28 -0
- package/esm/tabs/NavTab.js +31 -0
- package/esm/types/assets.d.js +0 -0
- package/esm/types/index.js +1 -0
- package/esm/types/merchi_product_form/index.d.js +0 -0
- package/esm/types/merchi_sdk_ts/index.d.js +0 -0
- package/esm/types/react-redux/index.d.js +0 -0
- package/esm/utilities/address.js +457 -0
- package/esm/utilities/area.js +297 -0
- package/esm/utilities/cart.js +95 -0
- package/esm/utilities/company.js +6 -0
- package/esm/utilities/cookie.js +156 -0
- package/esm/utilities/currency.js +219 -0
- package/esm/utilities/customForm.js +57 -0
- package/esm/utilities/helpers.js +229 -0
- package/esm/utilities/index.js +14 -0
- package/esm/utilities/invoice.js +112 -0
- package/esm/utilities/job.js +9 -0
- package/esm/utilities/local_storage.js +85 -0
- package/esm/utilities/product.js +13 -0
- package/esm/utilities/shipment.js +11 -0
- package/esm/utilities/tabs.js +51 -0
- package/esm/utilities/user.js +65 -0
- package/esm/utilities/variations.js +58 -0
- package/lib/Cart.d.ts +9 -0
- package/lib/Cart.js +69 -0
- package/lib/CartAlert.d.ts +3 -0
- package/lib/CartAlert.js +53 -0
- package/lib/CartHeader.d.ts +3 -0
- package/lib/CartHeader.js +37 -0
- package/lib/CartProvider.d.ts +236 -0
- package/lib/CartProvider.js +1107 -0
- package/lib/CartTotals.d.ts +7 -0
- package/lib/CartTotals.js +96 -0
- package/lib/assets/merchi-monster-loader.gif +0 -0
- package/lib/assets/merchi-swipe-outline.png +0 -0
- package/lib/assets/product-not-found.png +0 -0
- package/lib/assets/stripe-payment-secure.png +0 -0
- package/lib/buttons/Button.d.ts +11 -0
- package/lib/buttons/Button.js +31 -0
- package/lib/buttons/ButtonBack.d.ts +6 -0
- package/lib/buttons/ButtonBack.js +44 -0
- package/lib/buttons/ButtonClearCart.d.ts +3 -0
- package/lib/buttons/ButtonClearCart.js +24 -0
- package/lib/buttons/ButtonInvoiceDownload.d.ts +3 -0
- package/lib/buttons/ButtonInvoiceDownload.js +96 -0
- package/lib/buttons/ButtonNext.d.ts +3 -0
- package/lib/buttons/ButtonNext.js +48 -0
- package/lib/buttons/ButtonNextDynamic.d.ts +3 -0
- package/lib/buttons/ButtonNextDynamic.js +28 -0
- package/lib/buttons/ButtonOpenCartMerchiCartModal.d.ts +9 -0
- package/lib/buttons/ButtonOpenCartMerchiCartModal.js +57 -0
- package/lib/buttons/ButtonPay.d.ts +7 -0
- package/lib/buttons/ButtonPay.js +35 -0
- package/lib/buttons/ButtonShipmentTabNext.d.ts +2 -0
- package/lib/buttons/ButtonShipmentTabNext.js +37 -0
- package/lib/buttons/index.d.ts +7 -0
- package/lib/buttons/index.js +48 -0
- package/lib/components/Alert.d.ts +7 -0
- package/lib/components/Alert.js +34 -0
- package/lib/components/CartBody.d.ts +7 -0
- package/lib/components/CartBody.js +22 -0
- package/lib/components/CartClient.d.ts +4 -0
- package/lib/components/CartClient.js +71 -0
- package/lib/components/CartFooter.d.ts +6 -0
- package/lib/components/CartFooter.js +20 -0
- package/lib/components/CartItemRow.d.ts +7 -0
- package/lib/components/CartItemRow.js +236 -0
- package/lib/components/CartPaymentSettingsInvalid.d.ts +2 -0
- package/lib/components/CartPaymentSettingsInvalid.js +21 -0
- package/lib/components/CartShipment.d.ts +6 -0
- package/lib/components/CartShipment.js +59 -0
- package/lib/components/CartTabContent.d.ts +6 -0
- package/lib/components/CartTabContent.js +20 -0
- package/lib/components/CartTabPanel.d.ts +7 -0
- package/lib/components/CartTabPanel.js +31 -0
- package/lib/components/CartTableContainer.d.ts +6 -0
- package/lib/components/CartTableContainer.js +20 -0
- package/lib/components/CartTitle.d.ts +2 -0
- package/lib/components/CartTitle.js +34 -0
- package/lib/components/CartTotalsListGroup.d.ts +3 -0
- package/lib/components/CartTotalsListGroup.js +78 -0
- package/lib/components/Collapse.d.ts +3 -0
- package/lib/components/Collapse.js +40 -0
- package/lib/components/CustomCartProductForm.d.ts +18 -0
- package/lib/components/CustomCartProductForm.js +136 -0
- package/lib/components/CustomerCheckoutMethodTabs.d.ts +6 -0
- package/lib/components/CustomerCheckoutMethodTabs.js +103 -0
- package/lib/components/DiscountInputGroup.d.ts +2 -0
- package/lib/components/DiscountInputGroup.js +301 -0
- package/lib/components/LoadingTemplate.d.ts +7 -0
- package/lib/components/LoadingTemplate.js +30 -0
- package/lib/components/NoCartItems.d.ts +3 -0
- package/lib/components/NoCartItems.js +27 -0
- package/lib/components/ShipmentGroupCard.d.ts +7 -0
- package/lib/components/ShipmentGroupCard.js +215 -0
- package/lib/components/Table.d.ts +7 -0
- package/lib/components/Table.js +19 -0
- package/lib/components/containers.d.ts +14 -0
- package/lib/components/containers.js +40 -0
- package/lib/components/index.d.ts +18 -0
- package/lib/components/index.js +133 -0
- package/lib/components/product-form-sdk-externals.d.ts +46 -0
- package/lib/components/product-form-sdk-externals.js +43 -0
- package/lib/forms/FormNewCustomer.d.ts +4 -0
- package/lib/forms/FormNewCustomer.js +252 -0
- package/lib/forms/FormReturningCustomer.d.ts +3 -0
- package/lib/forms/FormReturningCustomer.js +173 -0
- package/lib/forms/FormShipmentAddressAndNotes.d.ts +15 -0
- package/lib/forms/FormShipmentAddressAndNotes.js +203 -0
- package/lib/forms/FormSquarePayment.d.ts +3 -0
- package/lib/forms/FormSquarePayment.js +27 -0
- package/lib/forms/FormStripePayment.d.ts +3 -0
- package/lib/forms/FormStripePayment.js +27 -0
- package/lib/forms/FormWhatsappCustomer.d.ts +3 -0
- package/lib/forms/FormWhatsappCustomer.js +261 -0
- package/lib/forms/InputAcceptUserTermsAndConditions.d.ts +7 -0
- package/lib/forms/InputAcceptUserTermsAndConditions.js +41 -0
- package/lib/forms/InputError.d.ts +8 -0
- package/lib/forms/InputError.js +24 -0
- package/lib/forms/InputSelect.d.ts +14 -0
- package/lib/forms/InputSelect.js +55 -0
- package/lib/forms/InputText.d.ts +12 -0
- package/lib/forms/InputText.js +63 -0
- package/lib/forms/InputsAddress.d.ts +11 -0
- package/lib/forms/InputsAddress.js +485 -0
- package/lib/forms/index.d.ts +8 -0
- package/lib/forms/index.js +63 -0
- package/lib/index.d.ts +13 -0
- package/lib/index.js +93 -0
- package/lib/modals.d.ts +17 -0
- package/lib/modals.js +59 -0
- package/lib/panels/PanelCartItems.d.ts +3 -0
- package/lib/panels/PanelCartItems.js +56 -0
- package/lib/panels/PanelCartShipment.d.ts +3 -0
- package/lib/panels/PanelCartShipment.js +72 -0
- package/lib/panels/PanelClearCart.d.ts +3 -0
- package/lib/panels/PanelClearCart.js +62 -0
- package/lib/panels/PanelClientCheckout.d.ts +3 -0
- package/lib/panels/PanelClientCheckout.js +88 -0
- package/lib/panels/PanelEditCartItem.d.ts +6 -0
- package/lib/panels/PanelEditCartItem.js +206 -0
- package/lib/panels/PanelPaymentSuccess.d.ts +3 -0
- package/lib/panels/PanelPaymentSuccess.js +69 -0
- package/lib/panels/index.d.ts +7 -0
- package/lib/panels/index.js +48 -0
- package/lib/square/SquareCard.d.ts +3 -0
- package/lib/square/SquareCard.js +114 -0
- package/lib/stripe/LegacyStripeCardForm.d.ts +3 -0
- package/lib/stripe/LegacyStripeCardForm.js +166 -0
- package/lib/stripe/StripeCardFields.d.ts +15 -0
- package/lib/stripe/StripeCardFields.js +135 -0
- package/lib/stripe/StripeCardForm.d.ts +2 -0
- package/lib/stripe/StripeCardForm.js +42 -0
- package/lib/stripe/StripePaymentButtons.d.ts +8 -0
- package/lib/stripe/StripePaymentButtons.js +106 -0
- package/lib/stripe/actions.d.ts +4 -0
- package/lib/stripe/actions.js +200 -0
- package/lib/stripe/utils.d.ts +18 -0
- package/lib/stripe/utils.js +27 -0
- package/lib/styles/globals.css +463 -0
- package/lib/styles/globals.css.map +1 -0
- package/lib/tabs/CartNav.d.ts +3 -0
- package/lib/tabs/CartNav.js +36 -0
- package/lib/tabs/NavTab.d.ts +9 -0
- package/lib/tabs/NavTab.js +39 -0
- package/lib/types/index.d.ts +13 -0
- package/lib/types/index.js +1 -0
- package/lib/utilities/address.d.ts +30 -0
- package/lib/utilities/address.js +468 -0
- package/lib/utilities/area.d.ts +77 -0
- package/lib/utilities/area.js +328 -0
- package/lib/utilities/cart.d.ts +9 -0
- package/lib/utilities/cart.js +108 -0
- package/lib/utilities/company.d.ts +2 -0
- package/lib/utilities/company.js +13 -0
- package/lib/utilities/cookie.d.ts +4 -0
- package/lib/utilities/cookie.js +165 -0
- package/lib/utilities/currency.d.ts +5 -0
- package/lib/utilities/currency.js +229 -0
- package/lib/utilities/customForm.d.ts +17 -0
- package/lib/utilities/customForm.js +64 -0
- package/lib/utilities/helpers.d.ts +24 -0
- package/lib/utilities/helpers.js +240 -0
- package/lib/utilities/index.d.ts +14 -0
- package/lib/utilities/index.js +159 -0
- package/lib/utilities/invoice.d.ts +3 -0
- package/lib/utilities/invoice.js +118 -0
- package/lib/utilities/job.d.ts +1 -0
- package/lib/utilities/job.js +15 -0
- package/lib/utilities/local_storage.d.ts +31 -0
- package/lib/utilities/local_storage.js +96 -0
- package/lib/utilities/product.d.ts +2 -0
- package/lib/utilities/product.js +21 -0
- package/lib/utilities/shipment.d.ts +2 -0
- package/lib/utilities/shipment.js +18 -0
- package/lib/utilities/tabs.d.ts +14 -0
- package/lib/utilities/tabs.js +60 -0
- package/lib/utilities/user.d.ts +5 -0
- package/lib/utilities/user.js +75 -0
- package/lib/utilities/variations.d.ts +18 -0
- package/lib/utilities/variations.js +66 -0
- package/package.json +109 -0
- package/src/Cart.tsx +96 -0
- package/src/CartAlert.tsx +35 -0
- package/src/CartHeader.tsx +28 -0
- package/src/CartProvider.tsx +992 -0
- package/src/CartTotals.tsx +102 -0
- package/src/assets/merchi-monster-loader.gif +0 -0
- package/src/assets/merchi-swipe-outline.png +0 -0
- package/src/assets/product-not-found.png +0 -0
- package/src/assets/stripe-payment-secure.png +0 -0
- package/src/buttons/Button.tsx +35 -0
- package/src/buttons/ButtonBack.tsx +42 -0
- package/src/buttons/ButtonClearCart.tsx +17 -0
- package/src/buttons/ButtonInvoiceDownload.tsx +60 -0
- package/src/buttons/ButtonNext.tsx +35 -0
- package/src/buttons/ButtonNextDynamic.tsx +31 -0
- package/src/buttons/ButtonOpenCartMerchiCartModal.tsx +61 -0
- package/src/buttons/ButtonPay.tsx +32 -0
- package/src/buttons/ButtonShipmentTabNext.tsx +24 -0
- package/src/buttons/index.ts +15 -0
- package/src/components/Alert.tsx +31 -0
- package/src/components/CartBody.tsx +16 -0
- package/src/components/CartClient.tsx +52 -0
- package/src/components/CartFooter.tsx +15 -0
- package/src/components/CartItemRow.tsx +212 -0
- package/src/components/CartPaymentSettingsInvalid.tsx +12 -0
- package/src/components/CartShipment.tsx +56 -0
- package/src/components/CartTabContent.tsx +15 -0
- package/src/components/CartTabPanel.tsx +25 -0
- package/src/components/CartTableContainer.tsx +15 -0
- package/src/components/CartTitle.tsx +22 -0
- package/src/components/CartTotalsListGroup.tsx +58 -0
- package/src/components/Collapse.tsx +23 -0
- package/src/components/CustomCartProductForm.tsx +123 -0
- package/src/components/CustomerCheckoutMethodTabs.tsx +106 -0
- package/src/components/DiscountInputGroup.tsx +160 -0
- package/src/components/LoadingTemplate.tsx +22 -0
- package/src/components/NoCartItems.tsx +20 -0
- package/src/components/ShipmentGroupCard.tsx +170 -0
- package/src/components/Table.tsx +15 -0
- package/src/components/containers.tsx +40 -0
- package/src/components/index.ts +38 -0
- package/src/components/product-form-sdk-externals.ts +67 -0
- package/src/forms/FormNewCustomer.tsx +170 -0
- package/src/forms/FormReturningCustomer.tsx +117 -0
- package/src/forms/FormShipmentAddressAndNotes.tsx +165 -0
- package/src/forms/FormSquarePayment.tsx +19 -0
- package/src/forms/FormStripePayment.tsx +19 -0
- package/src/forms/FormWhatsappCustomer.tsx +179 -0
- package/src/forms/InputAcceptUserTermsAndConditions.tsx +43 -0
- package/src/forms/InputError.tsx +23 -0
- package/src/forms/InputSelect.tsx +58 -0
- package/src/forms/InputText.tsx +56 -0
- package/src/forms/InputsAddress.tsx +438 -0
- package/src/forms/index.ts +18 -0
- package/src/index.ts +31 -0
- package/src/modals.tsx +65 -0
- package/src/panels/PanelCartItems.tsx +56 -0
- package/src/panels/PanelCartShipment.tsx +86 -0
- package/src/panels/PanelClearCart.tsx +50 -0
- package/src/panels/PanelClientCheckout.tsx +102 -0
- package/src/panels/PanelEditCartItem.tsx +172 -0
- package/src/panels/PanelPaymentSuccess.tsx +66 -0
- package/src/panels/index.ts +15 -0
- package/src/square/SquareCard.tsx +84 -0
- package/src/stripe/LegacyStripeCardForm.tsx +91 -0
- package/src/stripe/StripeCardFields.tsx +173 -0
- package/src/stripe/StripeCardForm.tsx +18 -0
- package/src/stripe/StripePaymentButtons.tsx +117 -0
- package/src/stripe/actions.ts +94 -0
- package/src/stripe/utils.ts +22 -0
- package/src/styles/globals.scss +475 -0
- package/src/tabs/CartNav.tsx +18 -0
- package/src/tabs/NavTab.tsx +36 -0
- package/src/types/assets.d.ts +4 -0
- package/src/types/index.ts +15 -0
- package/src/types/merchi_product_form/index.d.ts +1 -0
- package/src/types/merchi_sdk_ts/index.d.ts +1 -0
- package/src/types/react-redux/index.d.ts +0 -0
- package/src/utilities/address.ts +463 -0
- package/src/utilities/area.ts +359 -0
- package/src/utilities/cart.ts +80 -0
- package/src/utilities/company.ts +8 -0
- package/src/utilities/cookie.ts +58 -0
- package/src/utilities/currency.ts +216 -0
- package/src/utilities/customForm.ts +71 -0
- package/src/utilities/helpers.ts +213 -0
- package/src/utilities/index.ts +14 -0
- package/src/utilities/invoice.ts +60 -0
- package/src/utilities/job.ts +13 -0
- package/src/utilities/local_storage.ts +130 -0
- package/src/utilities/product.ts +14 -0
- package/src/utilities/shipment.ts +11 -0
- package/src/utilities/tabs.ts +38 -0
- package/src/utilities/user.ts +33 -0
- package/src/utilities/variations.ts +80 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useCartContext } from "../CartProvider";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
export default function Table(_ref) {
|
|
4
|
+
var children = _ref.children,
|
|
5
|
+
_ref$className = _ref.className,
|
|
6
|
+
className = _ref$className === void 0 ? '' : _ref$className;
|
|
7
|
+
var _useCartContext = useCartContext(),
|
|
8
|
+
classNameTable = _useCartContext.classNameTable;
|
|
9
|
+
return /*#__PURE__*/_jsx("table", {
|
|
10
|
+
className: "".concat(classNameTable, " ").concat(className),
|
|
11
|
+
children: children
|
|
12
|
+
});
|
|
13
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
export function CheckoutContainer(_ref) {
|
|
4
|
+
var children = _ref.children,
|
|
5
|
+
_ref$textAlign = _ref.textAlign,
|
|
6
|
+
textAlign = _ref$textAlign === void 0 ? 'center' : _ref$textAlign;
|
|
7
|
+
return /*#__PURE__*/_jsx("div", {
|
|
8
|
+
style: {
|
|
9
|
+
display: 'flex',
|
|
10
|
+
justifyContent: 'center',
|
|
11
|
+
textAlign: textAlign
|
|
12
|
+
},
|
|
13
|
+
children: children
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export function InnerContainer(_ref2) {
|
|
17
|
+
var children = _ref2.children,
|
|
18
|
+
paddingBottom = _ref2.paddingBottom,
|
|
19
|
+
paddingTop = _ref2.paddingTop,
|
|
20
|
+
_ref2$width = _ref2.width,
|
|
21
|
+
width = _ref2$width === void 0 ? 400 : _ref2$width;
|
|
22
|
+
return /*#__PURE__*/_jsx("div", {
|
|
23
|
+
style: {
|
|
24
|
+
padding: '3rem',
|
|
25
|
+
paddingBottom: paddingBottom,
|
|
26
|
+
paddingTop: paddingTop,
|
|
27
|
+
width: width
|
|
28
|
+
},
|
|
29
|
+
children: children
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Alert from './Alert';
|
|
2
|
+
import CartBody from './CartBody';
|
|
3
|
+
import CartClient from './CartClient';
|
|
4
|
+
import CartFooter from './CartFooter';
|
|
5
|
+
import CartPaymentSettingsInvalid from './CartPaymentSettingsInvalid';
|
|
6
|
+
import CartShipment from './CartShipment';
|
|
7
|
+
import CartTabContent from './CartTabContent';
|
|
8
|
+
import CartTableContainer from './CartTableContainer';
|
|
9
|
+
import CartTabPanel from './CartTabPanel';
|
|
10
|
+
import Collapse from './Collapse';
|
|
11
|
+
import CustomerCheckoutMethodTabs from './CustomerCheckoutMethodTabs';
|
|
12
|
+
import DiscountInputGroup from './DiscountInputGroup';
|
|
13
|
+
import LoadingTemplate, { LoadingTemplateSm } from './LoadingTemplate';
|
|
14
|
+
import NoCartItems from './NoCartItems';
|
|
15
|
+
import ShipmentGroupCard from './ShipmentGroupCard';
|
|
16
|
+
import Table from './Table';
|
|
17
|
+
import Title from './CartTitle';
|
|
18
|
+
export { Alert, CartBody, CartClient, CartFooter, CartPaymentSettingsInvalid, CartShipment, CartTabContent, CartTableContainer, CartTabPanel, Collapse, CustomerCheckoutMethodTabs, DiscountInputGroup, LoadingTemplate, LoadingTemplateSm, NoCartItems, ShipmentGroupCard, Table, Title };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full @merchi/product-form-sdk runtime for window.MerchiProductFormSdk.
|
|
3
|
+
* Keep in sync with merchi_api/common/js/product_form_gate.cjs SDK_EXPORTS.
|
|
4
|
+
*/
|
|
5
|
+
import { SDK_VERSION, serializeJob, nonEmptyGroups, formatCurrency, urlFor, createPricing, createProductFormRuntime, productHasGroups, groupFieldsOf, independentFieldsOf, isOptionQuantityGridProduct, buildProductFormJob, jobToFormState, selectionsToVariations, Section, Stack, Card, Heading, Text, Divider, Field, GroupRows, OptionQuantityGrid, ProductFormProvider, ProductFormShell, ProductFormActions, useProductForm, OPTION_FIELD_TYPES, theme } from '@merchi/product-form-sdk';
|
|
6
|
+
export var MerchiProductFormSdkExternals = {
|
|
7
|
+
SDK_VERSION: SDK_VERSION,
|
|
8
|
+
serializeJob: serializeJob,
|
|
9
|
+
nonEmptyGroups: nonEmptyGroups,
|
|
10
|
+
formatCurrency: formatCurrency,
|
|
11
|
+
urlFor: urlFor,
|
|
12
|
+
createPricing: createPricing,
|
|
13
|
+
createProductFormRuntime: createProductFormRuntime,
|
|
14
|
+
productHasGroups: productHasGroups,
|
|
15
|
+
groupFieldsOf: groupFieldsOf,
|
|
16
|
+
independentFieldsOf: independentFieldsOf,
|
|
17
|
+
isOptionQuantityGridProduct: isOptionQuantityGridProduct,
|
|
18
|
+
buildProductFormJob: buildProductFormJob,
|
|
19
|
+
jobToFormState: jobToFormState,
|
|
20
|
+
selectionsToVariations: selectionsToVariations,
|
|
21
|
+
Section: Section,
|
|
22
|
+
Stack: Stack,
|
|
23
|
+
Card: Card,
|
|
24
|
+
Heading: Heading,
|
|
25
|
+
Text: Text,
|
|
26
|
+
Divider: Divider,
|
|
27
|
+
Field: Field,
|
|
28
|
+
GroupRows: GroupRows,
|
|
29
|
+
OptionQuantityGrid: OptionQuantityGrid,
|
|
30
|
+
ProductFormProvider: ProductFormProvider,
|
|
31
|
+
ProductFormShell: ProductFormShell,
|
|
32
|
+
ProductFormActions: ProductFormActions,
|
|
33
|
+
useProductForm: useProductForm,
|
|
34
|
+
OPTION_FIELD_TYPES: OPTION_FIELD_TYPES,
|
|
35
|
+
theme: theme
|
|
36
|
+
};
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
3
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
7
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
8
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
10
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
16
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
17
|
+
import * as React from 'react';
|
|
18
|
+
import { useForm } from 'react-hook-form';
|
|
19
|
+
import InputAcceptUserTermsAndConditions from './InputAcceptUserTermsAndConditions';
|
|
20
|
+
import { Button } from '../buttons';
|
|
21
|
+
import InputSelect from './InputSelect';
|
|
22
|
+
import InputText from './InputText';
|
|
23
|
+
import { useCartContext } from '../CartProvider';
|
|
24
|
+
import { cartEmbed, phoneOptions } from '../utilities/helpers';
|
|
25
|
+
import InputError from './InputError';
|
|
26
|
+
import { createNewCustomer, makeUser } from '../utilities/user';
|
|
27
|
+
import { makeCart } from '../utilities/cart';
|
|
28
|
+
import { getCartCookieToken } from '../utilities/cookie';
|
|
29
|
+
import { getSavedCheckoutCustomer, saveCheckoutCustomer } from '../utilities/local_storage';
|
|
30
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
31
|
+
export var emailValidation = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]/i;
|
|
32
|
+
export function FormCustomerNew() {
|
|
33
|
+
var _savedCustomer$phoneN, _savedCustomer$phoneN2;
|
|
34
|
+
var _useCartContext = useCartContext(),
|
|
35
|
+
cart = _useCartContext.cart,
|
|
36
|
+
classNameBtnPrimary = _useCartContext.classNameBtnPrimary,
|
|
37
|
+
classNameCartFormGroup = _useCartContext.classNameCartFormGroup,
|
|
38
|
+
classNameCartFormGroupButton = _useCartContext.classNameCartFormGroupButton,
|
|
39
|
+
domainId = _useCartContext.domainId,
|
|
40
|
+
setCart = _useCartContext.setCart,
|
|
41
|
+
setCartClient = _useCartContext.setCartClient,
|
|
42
|
+
showUserTermsAndConditions = _useCartContext.showUserTermsAndConditions;
|
|
43
|
+
var _React$useState = React.useState(false),
|
|
44
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
45
|
+
loading = _React$useState2[0],
|
|
46
|
+
setLoading = _React$useState2[1];
|
|
47
|
+
var _React$useState3 = React.useState({}),
|
|
48
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
49
|
+
error = _React$useState4[0],
|
|
50
|
+
setError = _React$useState4[1];
|
|
51
|
+
var _React$useState5 = React.useState(true),
|
|
52
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
53
|
+
acceptConditions = _React$useState6[0],
|
|
54
|
+
setAcceptConditions = _React$useState6[1];
|
|
55
|
+
var savedCustomer = getSavedCheckoutCustomer(domainId);
|
|
56
|
+
function actionCreateNewCustomer(_x) {
|
|
57
|
+
return _actionCreateNewCustomer.apply(this, arguments);
|
|
58
|
+
}
|
|
59
|
+
function _actionCreateNewCustomer() {
|
|
60
|
+
_actionCreateNewCustomer = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(customerJson) {
|
|
61
|
+
var _cartJson$client, _customerJson$emailAd, r, user, cartToken, clientEnt, cartEnt, _cart, cartJson, _t;
|
|
62
|
+
return _regenerator().w(function (_context) {
|
|
63
|
+
while (1) switch (_context.p = _context.n) {
|
|
64
|
+
case 0:
|
|
65
|
+
setError({});
|
|
66
|
+
setLoading(true);
|
|
67
|
+
_context.p = 1;
|
|
68
|
+
_context.n = 2;
|
|
69
|
+
return createNewCustomer(_objectSpread(_objectSpread({}, customerJson), {}, {
|
|
70
|
+
registeredUnderDomains: [{
|
|
71
|
+
id: domainId
|
|
72
|
+
}]
|
|
73
|
+
}));
|
|
74
|
+
case 2:
|
|
75
|
+
r = _context.v;
|
|
76
|
+
user = r.user;
|
|
77
|
+
if (user !== null && user !== void 0 && user.id) {
|
|
78
|
+
_context.n = 3;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
throw new Error('Unable to create customer.');
|
|
82
|
+
case 3:
|
|
83
|
+
_context.n = 4;
|
|
84
|
+
return getCartCookieToken(domainId);
|
|
85
|
+
case 4:
|
|
86
|
+
cartToken = _context.v;
|
|
87
|
+
clientEnt = makeUser({
|
|
88
|
+
id: user.id
|
|
89
|
+
}, true);
|
|
90
|
+
cartEnt = makeCart(_objectSpread({}, cart), false, cartToken);
|
|
91
|
+
cartEnt.sendWhatsapp = false;
|
|
92
|
+
cartEnt.client = clientEnt;
|
|
93
|
+
_context.n = 5;
|
|
94
|
+
return cartEnt.save({
|
|
95
|
+
embed: cartEmbed
|
|
96
|
+
});
|
|
97
|
+
case 5:
|
|
98
|
+
_cart = _context.v;
|
|
99
|
+
cartJson = _cart.toJson();
|
|
100
|
+
if (cartJson !== null && cartJson !== void 0 && (_cartJson$client = cartJson.client) !== null && _cartJson$client !== void 0 && _cartJson$client.id) {
|
|
101
|
+
_context.n = 6;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
throw new Error('Unable to attach client to cart.');
|
|
105
|
+
case 6:
|
|
106
|
+
saveCheckoutCustomer(domainId, {
|
|
107
|
+
id: user.id,
|
|
108
|
+
name: customerJson.name,
|
|
109
|
+
emailAddress: (_customerJson$emailAd = customerJson.emailAddresses) === null || _customerJson$emailAd === void 0 || (_customerJson$emailAd = _customerJson$emailAd[0]) === null || _customerJson$emailAd === void 0 ? void 0 : _customerJson$emailAd.emailAddress,
|
|
110
|
+
phoneNumbers: customerJson.phoneNumbers
|
|
111
|
+
});
|
|
112
|
+
setCartClient(cartJson.client);
|
|
113
|
+
setCart(cartJson);
|
|
114
|
+
_context.n = 8;
|
|
115
|
+
break;
|
|
116
|
+
case 7:
|
|
117
|
+
_context.p = 7;
|
|
118
|
+
_t = _context.v;
|
|
119
|
+
setError({
|
|
120
|
+
message: _t.errorMessage || _t.message || 'Unable to attach client to cart.'
|
|
121
|
+
});
|
|
122
|
+
case 8:
|
|
123
|
+
_context.p = 8;
|
|
124
|
+
setLoading(false);
|
|
125
|
+
return _context.f(8);
|
|
126
|
+
case 9:
|
|
127
|
+
return _context.a(2);
|
|
128
|
+
}
|
|
129
|
+
}, _callee, null, [[1, 7, 8, 9]]);
|
|
130
|
+
}));
|
|
131
|
+
return _actionCreateNewCustomer.apply(this, arguments);
|
|
132
|
+
}
|
|
133
|
+
var _useForm = useForm({
|
|
134
|
+
defaultValues: {
|
|
135
|
+
emailAddresses: [{
|
|
136
|
+
emailAddress: (savedCustomer === null || savedCustomer === void 0 ? void 0 : savedCustomer.emailAddress) || ''
|
|
137
|
+
}],
|
|
138
|
+
name: (savedCustomer === null || savedCustomer === void 0 ? void 0 : savedCustomer.name) || '',
|
|
139
|
+
phoneNumbers: [{
|
|
140
|
+
code: (savedCustomer === null || savedCustomer === void 0 || (_savedCustomer$phoneN = savedCustomer.phoneNumbers) === null || _savedCustomer$phoneN === void 0 || (_savedCustomer$phoneN = _savedCustomer$phoneN[0]) === null || _savedCustomer$phoneN === void 0 ? void 0 : _savedCustomer$phoneN.code) || 'AU',
|
|
141
|
+
number: (savedCustomer === null || savedCustomer === void 0 || (_savedCustomer$phoneN2 = savedCustomer.phoneNumbers) === null || _savedCustomer$phoneN2 === void 0 || (_savedCustomer$phoneN2 = _savedCustomer$phoneN2[0]) === null || _savedCustomer$phoneN2 === void 0 ? void 0 : _savedCustomer$phoneN2.number) || ''
|
|
142
|
+
}],
|
|
143
|
+
registeredAsGuest: false
|
|
144
|
+
}
|
|
145
|
+
}),
|
|
146
|
+
control = _useForm.control,
|
|
147
|
+
handleSubmit = _useForm.handleSubmit,
|
|
148
|
+
watch = _useForm.watch;
|
|
149
|
+
function onSubmit(_x2) {
|
|
150
|
+
return _onSubmit.apply(this, arguments);
|
|
151
|
+
} // Basic validation for phone. Checking that phone is a number. Can make more complex if we want.
|
|
152
|
+
function _onSubmit() {
|
|
153
|
+
_onSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(values) {
|
|
154
|
+
return _regenerator().w(function (_context2) {
|
|
155
|
+
while (1) switch (_context2.n) {
|
|
156
|
+
case 0:
|
|
157
|
+
_context2.n = 1;
|
|
158
|
+
return actionCreateNewCustomer(_objectSpread({}, values));
|
|
159
|
+
case 1:
|
|
160
|
+
return _context2.a(2);
|
|
161
|
+
}
|
|
162
|
+
}, _callee2);
|
|
163
|
+
}));
|
|
164
|
+
return _onSubmit.apply(this, arguments);
|
|
165
|
+
}
|
|
166
|
+
function validatePhone() {
|
|
167
|
+
var phone = watch('phoneNumbers.0.number');
|
|
168
|
+
if (isNaN(phone)) return 'Phone number must be a number';else return true;
|
|
169
|
+
}
|
|
170
|
+
return /*#__PURE__*/_jsxs("form", {
|
|
171
|
+
onSubmit: handleSubmit(onSubmit),
|
|
172
|
+
children: [/*#__PURE__*/_jsx(InputText, {
|
|
173
|
+
control: control,
|
|
174
|
+
label: "Full Name",
|
|
175
|
+
name: "name",
|
|
176
|
+
placeholder: "John Smith",
|
|
177
|
+
rules: {
|
|
178
|
+
required: 'Full name is required.'
|
|
179
|
+
}
|
|
180
|
+
}), /*#__PURE__*/_jsx(InputText, {
|
|
181
|
+
control: control,
|
|
182
|
+
label: "Email",
|
|
183
|
+
name: "emailAddresses[0].emailAddress",
|
|
184
|
+
placeholder: "john@example.com",
|
|
185
|
+
rules: {
|
|
186
|
+
required: 'Email is required.',
|
|
187
|
+
validate: emailValidation
|
|
188
|
+
}
|
|
189
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
190
|
+
style: {
|
|
191
|
+
display: 'flex',
|
|
192
|
+
gap: '1rem'
|
|
193
|
+
},
|
|
194
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
195
|
+
style: {
|
|
196
|
+
flexGrow: 1
|
|
197
|
+
},
|
|
198
|
+
children: /*#__PURE__*/_jsx(InputSelect, {
|
|
199
|
+
control: control,
|
|
200
|
+
label: "Country Code",
|
|
201
|
+
name: "phoneNumbers[0].code",
|
|
202
|
+
options: phoneOptions
|
|
203
|
+
})
|
|
204
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
205
|
+
style: {
|
|
206
|
+
flexGrow: 1
|
|
207
|
+
},
|
|
208
|
+
children: /*#__PURE__*/_jsx(InputText, {
|
|
209
|
+
control: control,
|
|
210
|
+
label: "Phone Number",
|
|
211
|
+
name: "phoneNumbers[0].number",
|
|
212
|
+
placeholder: "0400 000 000",
|
|
213
|
+
rules: {
|
|
214
|
+
required: 'Phone number is required',
|
|
215
|
+
validate: validatePhone
|
|
216
|
+
},
|
|
217
|
+
type: "phone"
|
|
218
|
+
})
|
|
219
|
+
})]
|
|
220
|
+
}), showUserTermsAndConditions && /*#__PURE__*/_jsxs("div", {
|
|
221
|
+
className: classNameCartFormGroup,
|
|
222
|
+
children: [/*#__PURE__*/_jsx(InputAcceptUserTermsAndConditions, {
|
|
223
|
+
isChecked: acceptConditions,
|
|
224
|
+
setIsChecked: setAcceptConditions
|
|
225
|
+
}), !acceptConditions && /*#__PURE__*/_jsx(InputError, {
|
|
226
|
+
error: {
|
|
227
|
+
message: 'You must agree to the user profile terms and conditions to proceed.'
|
|
228
|
+
}
|
|
229
|
+
})]
|
|
230
|
+
}), /*#__PURE__*/_jsx(InputError, {
|
|
231
|
+
error: error || {}
|
|
232
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
233
|
+
className: classNameCartFormGroupButton,
|
|
234
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
235
|
+
className: classNameBtnPrimary,
|
|
236
|
+
disabled: loading,
|
|
237
|
+
type: "submit",
|
|
238
|
+
children: loading ? 'Loading...' : 'Submit'
|
|
239
|
+
})
|
|
240
|
+
})]
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
export default FormCustomerNew;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
3
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
7
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
8
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
10
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
16
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
17
|
+
import * as React from 'react';
|
|
18
|
+
import { useForm } from 'react-hook-form';
|
|
19
|
+
import { Button } from '../buttons';
|
|
20
|
+
import InputError from './InputError';
|
|
21
|
+
import { useCartContext } from '../CartProvider';
|
|
22
|
+
import { makeUser, tryReturningCustomerEmail } from '../utilities/user';
|
|
23
|
+
import { makeCart } from '../utilities/cart';
|
|
24
|
+
import { getCartCookieToken } from '../utilities/cookie';
|
|
25
|
+
import { cartEmbed } from '../utilities/helpers';
|
|
26
|
+
import { getSavedCheckoutCustomer, saveCheckoutCustomer } from '../utilities/local_storage';
|
|
27
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
|
+
var emailValidation = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]/i;
|
|
29
|
+
function FormReturningCustomer() {
|
|
30
|
+
var _useCartContext = useCartContext(),
|
|
31
|
+
alertError = _useCartContext.alertError,
|
|
32
|
+
cart = _useCartContext.cart,
|
|
33
|
+
classNameBtnPrimary = _useCartContext.classNameBtnPrimary,
|
|
34
|
+
classNameCartFormGroup = _useCartContext.classNameCartFormGroup,
|
|
35
|
+
classNameCartFormInput = _useCartContext.classNameCartFormInput,
|
|
36
|
+
classNameCartFormGroupButton = _useCartContext.classNameCartFormGroupButton,
|
|
37
|
+
domainId = _useCartContext.domainId,
|
|
38
|
+
setCart = _useCartContext.setCart,
|
|
39
|
+
setCartClient = _useCartContext.setCartClient;
|
|
40
|
+
var _React$useState = React.useState(false),
|
|
41
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
42
|
+
loading = _React$useState2[0],
|
|
43
|
+
setLoading = _React$useState2[1];
|
|
44
|
+
var _React$useState3 = React.useState({}),
|
|
45
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
46
|
+
error = _React$useState4[0],
|
|
47
|
+
setError = _React$useState4[1];
|
|
48
|
+
var savedCustomer = getSavedCheckoutCustomer(domainId);
|
|
49
|
+
var hookForm = useForm({
|
|
50
|
+
defaultValues: {
|
|
51
|
+
emailAddress: (savedCustomer === null || savedCustomer === void 0 ? void 0 : savedCustomer.emailAddress) || ''
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
var handleSubmit = hookForm.handleSubmit,
|
|
55
|
+
errors = hookForm.formState.errors,
|
|
56
|
+
getValues = hookForm.getValues,
|
|
57
|
+
register = hookForm.register;
|
|
58
|
+
function submit() {
|
|
59
|
+
return _submit.apply(this, arguments);
|
|
60
|
+
}
|
|
61
|
+
function _submit() {
|
|
62
|
+
_submit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
63
|
+
var _getValues, emailAddress, _user$user_id, _cartJson$client, user, userId, cartToken, clientEnt, cartEnt, _cart, cartJson, _t;
|
|
64
|
+
return _regenerator().w(function (_context) {
|
|
65
|
+
while (1) switch (_context.p = _context.n) {
|
|
66
|
+
case 0:
|
|
67
|
+
setError({});
|
|
68
|
+
_getValues = getValues(), emailAddress = _getValues.emailAddress;
|
|
69
|
+
setLoading(true);
|
|
70
|
+
_context.p = 1;
|
|
71
|
+
_context.n = 2;
|
|
72
|
+
return tryReturningCustomerEmail(emailAddress);
|
|
73
|
+
case 2:
|
|
74
|
+
user = _context.v;
|
|
75
|
+
// /user-check-email/ returns user_id (not id)
|
|
76
|
+
userId = (_user$user_id = user.user_id) !== null && _user$user_id !== void 0 ? _user$user_id : user.id;
|
|
77
|
+
if (userId) {
|
|
78
|
+
_context.n = 3;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
throw new Error('Unable to find returning customer.');
|
|
82
|
+
case 3:
|
|
83
|
+
_context.n = 4;
|
|
84
|
+
return getCartCookieToken(domainId);
|
|
85
|
+
case 4:
|
|
86
|
+
cartToken = _context.v;
|
|
87
|
+
clientEnt = makeUser({
|
|
88
|
+
id: userId
|
|
89
|
+
}, true);
|
|
90
|
+
cartEnt = makeCart(_objectSpread({}, cart), false, cartToken);
|
|
91
|
+
cartEnt.sendWhatsapp = false;
|
|
92
|
+
cartEnt.client = clientEnt;
|
|
93
|
+
_context.n = 5;
|
|
94
|
+
return cartEnt.save({
|
|
95
|
+
embed: cartEmbed
|
|
96
|
+
});
|
|
97
|
+
case 5:
|
|
98
|
+
_cart = _context.v;
|
|
99
|
+
cartJson = _cart.toJson();
|
|
100
|
+
if (cartJson !== null && cartJson !== void 0 && (_cartJson$client = cartJson.client) !== null && _cartJson$client !== void 0 && _cartJson$client.id) {
|
|
101
|
+
_context.n = 6;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
throw new Error('Unable to attach client to cart.');
|
|
105
|
+
case 6:
|
|
106
|
+
saveCheckoutCustomer(domainId, {
|
|
107
|
+
id: userId,
|
|
108
|
+
name: user.name || (savedCustomer === null || savedCustomer === void 0 ? void 0 : savedCustomer.name),
|
|
109
|
+
emailAddress: emailAddress
|
|
110
|
+
});
|
|
111
|
+
setCartClient(cartJson.client);
|
|
112
|
+
setCart(cartJson);
|
|
113
|
+
_context.n = 8;
|
|
114
|
+
break;
|
|
115
|
+
case 7:
|
|
116
|
+
_context.p = 7;
|
|
117
|
+
_t = _context.v;
|
|
118
|
+
alertError(_t.errorMessage || _t.message);
|
|
119
|
+
setError({
|
|
120
|
+
message: _t.errorMessage || _t.message || 'Server error.'
|
|
121
|
+
});
|
|
122
|
+
case 8:
|
|
123
|
+
_context.p = 8;
|
|
124
|
+
setLoading(false);
|
|
125
|
+
return _context.f(8);
|
|
126
|
+
case 9:
|
|
127
|
+
return _context.a(2);
|
|
128
|
+
}
|
|
129
|
+
}, _callee, null, [[1, 7, 8, 9]]);
|
|
130
|
+
}));
|
|
131
|
+
return _submit.apply(this, arguments);
|
|
132
|
+
}
|
|
133
|
+
return /*#__PURE__*/_jsxs("form", {
|
|
134
|
+
onSubmit: handleSubmit(submit),
|
|
135
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
136
|
+
className: classNameCartFormGroup,
|
|
137
|
+
children: [/*#__PURE__*/_jsx("input", _objectSpread({
|
|
138
|
+
className: classNameCartFormInput,
|
|
139
|
+
placeholder: "info@example.com",
|
|
140
|
+
type: "email"
|
|
141
|
+
}, register('emailAddress', {
|
|
142
|
+
required: 'Email address required',
|
|
143
|
+
pattern: {
|
|
144
|
+
value: emailValidation,
|
|
145
|
+
message: 'Invalid email address'
|
|
146
|
+
}
|
|
147
|
+
}))), /*#__PURE__*/_jsx("small", {
|
|
148
|
+
children: "If you are a returning customer please use the same email which you used previously."
|
|
149
|
+
}), /*#__PURE__*/_jsx(InputError, {
|
|
150
|
+
error: errors.emailAddress
|
|
151
|
+
}), error && /*#__PURE__*/_jsx(InputError, {
|
|
152
|
+
error: error
|
|
153
|
+
})]
|
|
154
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
155
|
+
className: classNameCartFormGroupButton,
|
|
156
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
157
|
+
className: classNameBtnPrimary,
|
|
158
|
+
disabled: loading,
|
|
159
|
+
type: "submit",
|
|
160
|
+
children: loading ? 'Loading...' : 'Submit'
|
|
161
|
+
})
|
|
162
|
+
})]
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
export default FormReturningCustomer;
|