setDropdownOpen(false)}\n onKeyDown={(e) => handleKeyDown(e.key)}\n tabIndex={1}\n >\n
setDropdownOpen(!dropdownOpen)}\n onKeyDown={(e) => handleKeyDown(e.key)}\n className={selectClasses}\n >\n
\n {shouldCapitalizeFirstLetter\n ? capitalizeFirstLetter(\n selectedOption?.selectedlabel\n ? selectedOption.selectedlabel\n : selectedOption?.label ?? selectedOption?.value\n )\n : selectedOption?.selectedlabel\n ? selectedOption?.selectedlabel\n : selectedOption?.label ??\n selectedOption?.value ??\n newPlaceholder}\n
\n
\n
\n
\n {dropdownOpen && (\n
\n {filteredOptions.map((option, index) => {\n const optionText = shouldCapitalizeFirstLetter\n ? capitalizeFirstLetter(option.label ?? option.value)\n : option.label ?? option.value;\n\n const renderedText = optionText.replace(\n new RegExp(`(${searchTerm})`, 'ig'),\n (match, p1) => `${p1}`\n );\n\n return (\n - {\n onOptionSelected(option.value);\n setDropdownOpen(false);\n }}\n key={option.value + index + 'desktop'}\n >\n \n
\n );\n })}\n
\n )}\n
\n >\n );\n};\n\nexport default Dropdown;\n","import { useDispatch } from 'react-redux';\nimport { AppDispatch } from '../store';\n\nexport const useTypedDispatch: () => AppDispatch = useDispatch;\n","import React, { useCallback, useMemo } from 'react';\nimport { InputProps } from '../../Inputs/types/Input.types';\nimport { useTypedDispatch } from '../../../Hooks/useTypedDispatch';\nimport { useTypedSelector } from '../../../Hooks/useTypedSelector';\nimport { setValidationErrors } from '../../../Actions/Checkout.action';\nimport Input from '../../Inputs/Input';\nimport clsx from 'clsx';\nimport { translate } from '../../../Services/translation';\nimport { CHECKOUT_DROPSHIP_PRIVATE } from '../../../constants';\n\ninterface CustomerInfoInputProps {\n validationSchema: any;\n stateKey: string;\n id: string;\n onCustomerDetailsChange?: (\n stateKey: string,\n id: string,\n value: string\n ) => void;\n}\n\nconst CheckoutCustomerInfoInput: React.FC<\n CustomerInfoInputProps &\n InputProps &\n React.InputHTMLAttributes\n> = ({\n validationSchema,\n stateKey,\n onCustomerDetailsChange,\n id,\n wrapperClassName,\n ...props\n}) => {\n const dispatch = useTypedDispatch();\n const { validationErrors = {}, payload } = useTypedSelector(\n (state) => state.checkout\n );\n const {\n isLoadingCustomerDetails,\n selectedDropshipAddressType = CHECKOUT_DROPSHIP_PRIVATE,\n useDropshipping,\n } = payload;\n\n const errorMessage = useMemo(\n () =>\n validationErrors[`${stateKey}-${id}`]\n ? validationErrors[`${stateKey}-${id}`][0]\n : null,\n [id, stateKey, validationErrors]\n );\n\n const validateOnBlur = useCallback(\n async (schema, stateKey, id, value) => {\n const errorKey = `${stateKey}-${id}`;\n try {\n await schema.validateAt(id, {\n ...payload[stateKey],\n country: payload.customerDetails.country,\n [id]: value,\n selectedDropshipAddressType,\n useDropshipping,\n });\n const validationErrorsCopy = { ...validationErrors };\n delete validationErrorsCopy[errorKey];\n dispatch(setValidationErrors(validationErrorsCopy));\n } catch (err) {\n dispatch(\n setValidationErrors({\n ...validationErrors,\n [errorKey]: err.errors,\n })\n );\n }\n },\n [dispatch, validationErrors]\n );\n\n return (\n \n \n onCustomerDetailsChange &&\n onCustomerDetailsChange(stateKey, id, event.target.value)\n }\n onBlur={(e) =>\n validateOnBlur(validationSchema, stateKey, id, e.target.value)\n }\n inputSize=\"large\"\n value={(payload[stateKey] && payload[stateKey][id]) ?? ''}\n showAnimatedLabel={true}\n disabled={isLoadingCustomerDetails}\n />\n
\n );\n};\n\nexport default CheckoutCustomerInfoInput;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { translate } from '../../Services/translation';\nimport {\n setCustomerDetails,\n setDropshipCustomerDetails,\n setAlternativeAddress,\n setShowAlternativeAddress,\n setSignUp,\n setCountry,\n} from '../../Actions/Checkout.action';\nimport {\n dropshipValidationSchema,\n privateCustomerAddressSchema,\n} from './utils/Checkout.ValidationSchema';\nimport { useTypedSelector } from '../../Hooks/useTypedSelector';\nimport Dropdown from '../Dropdown';\nimport Checkbox from '../Inputs/Checkbox';\nimport CheckoutCustomerInfoInput from './utils/Checkout.CustomerInfoInput';\nimport {\n CHECKOUT_DROPSHIP_COMPANY,\n CHECKOUT_DROPSHIP_PRIVATE,\n} from '../../constants';\nimport { StateProps } from '../../Utils/states';\n\nconst CheckoutCustomerInfoForm = ({\n showSignUp,\n allowAlternativeAddress = true,\n}: {\n showSignUp: boolean;\n allowAlternativeAddress?: boolean;\n}) => {\n const dispatch = useDispatch();\n const { payload } = useTypedSelector((state) => state.checkout);\n const {\n customerDetails = {},\n signUp,\n showAlternativeAddress,\n useDropshipping,\n selectedDropshipAddressType = CHECKOUT_DROPSHIP_PRIVATE,\n dropshipCustomerDetails,\n } = payload;\n const [availableStates, setAvailableStates] = useState<\n StateProps[] | undefined\n >();\n\n const onCustomerDetailsChange = useCallback(\n (stateKey, id, value) => {\n switch (stateKey) {\n case 'customerDetails':\n dispatch(setCustomerDetails(id, value));\n break;\n case 'dropshipCustomerDetails':\n dispatch(setDropshipCustomerDetails(id, value));\n break;\n case 'alternativeAddress':\n dispatch(setAlternativeAddress(id, value));\n break;\n }\n },\n [dispatch]\n );\n\n const stateRequired = useMemo(\n () =>\n customerDetails?.country == 'US' ||\n customerDetails?.country == 'CA' ||\n dropshipCustomerDetails?.country == 'US' ||\n dropshipCustomerDetails?.country == 'CA',\n [customerDetails?.country, dropshipCustomerDetails?.country]\n );\n\n useEffect(() => {\n const importStates = async () => {\n if (\n !stateRequired ||\n (!customerDetails?.country && !dropshipCustomerDetails?.country)\n ) {\n setAvailableStates(undefined);\n return;\n }\n // Async import to not increase bundle size\n const { getCountryByIso2 } = await import('../../Utils/states');\n const states =\n dropshipCustomerDetails?.country == 'US' ||\n dropshipCustomerDetails?.country == 'CA'\n ? getCountryByIso2(dropshipCustomerDetails.country)?.states\n : getCountryByIso2(customerDetails.country)?.states;\n setAvailableStates(states as StateProps[] | undefined);\n };\n importStates();\n }, [\n stateRequired,\n customerDetails?.country,\n dropshipCustomerDetails?.country,\n ]);\n\n return (\n <>\n \n \n {showSignUp && (\n dispatch(setSignUp(e.target.checked))}\n />\n )}\n {allowAlternativeAddress && (\n \n dispatch(setShowAlternativeAddress(e.target.checked))\n }\n />\n )}\n
\n {allowAlternativeAddress && showAlternativeAddress && (\n \n )}\n >\n );\n};\n\nexport default CheckoutCustomerInfoForm;\n","import React, { useMemo, useState } from 'react';\nimport { translate } from '../../Services/translation';\nimport Icon from '../Icon';\nimport Dropdown from '../Dropdown';\nimport { useTypedSelector } from '../../Hooks/useTypedSelector';\nimport { useDispatch } from 'react-redux';\nimport {\n setSelectedDeliveryAddress,\n setUseDropshipping,\n setSelectedDropshipAddressType,\n setCustomerDetails,\n} from '../../Actions/Checkout.action';\nimport RadioButton from '../Inputs/Radiobutton';\nimport CheckoutCustomerInfoForm from './Checkout.CustomerInfoForm';\nimport {\n CHECKOUT_DROPSHIP_COMPANY,\n CHECKOUT_DROPSHIP_PRIVATE,\n} from '../../constants';\n\nconst BusinessCustomerInfo = () => {\n const dispatch = useDispatch();\n const { payload } = useTypedSelector((state) => state.checkout);\n const {\n deliveryAddresses,\n allowDropshipping,\n useDropshipping,\n selectedDropshipAddressType = CHECKOUT_DROPSHIP_PRIVATE,\n } = payload;\n\n const selectedDeliveryAddress = useMemo(\n () =>\n deliveryAddresses.find(\n (a) => a.systemId == payload.selectedDeliveryAddressId\n ),\n [deliveryAddresses, payload.selectedDeliveryAddressId]\n );\n\n return (\n \n {allowDropshipping && (\n
\n \n useDropshipping && dispatch(setUseDropshipping(false))\n }\n />\n \n !useDropshipping && dispatch(setUseDropshipping(true))\n }\n />\n
\n )}\n {!useDropshipping && (\n <>\n
\n {translate('checkout.selectdelivery')}\n
\n
({\n value: address.systemId,\n label: `${\n !!address.houseExtension\n ? address.houseExtension\n : payload.companyName\n }, ${address.address}, ${address.city}, ${\n address.zipCode\n }, ${address.country}`,\n }))}\n onChange={({ value }) => {\n dispatch(setSelectedDeliveryAddress(value));\n }}\n disabled={deliveryAddresses.length <= 1}\n />\n \n {translate('checkout.order.delivery')}\n
\n {selectedDeliveryAddress && (\n \n
\n
\n \n {!!selectedDeliveryAddress.houseExtension\n ? selectedDeliveryAddress.houseExtension\n : payload.companyName}\n \n {selectedDeliveryAddress?.address}\n {selectedDeliveryAddress?.address2 && (\n {selectedDeliveryAddress?.address2}\n )}\n \n {selectedDeliveryAddress?.zipCode}{' '}\n {selectedDeliveryAddress?.city}\n \n {selectedDeliveryAddress?.country}\n
\n
\n )}\n >\n )}\n {useDropshipping && (\n <>\n {\n dispatch(setSelectedDropshipAddressType(value));\n\n if (value != CHECKOUT_DROPSHIP_COMPANY) {\n dispatch(setCustomerDetails('companyName', undefined));\n } else {\n dispatch(setCustomerDetails('firstName', undefined));\n dispatch(setCustomerDetails('lastName', undefined));\n }\n }}\n label={translate('checkout.dropship.address-type')}\n />\n \n >\n )}\n \n );\n};\n\nexport default BusinessCustomerInfo;\n","import Icon from '../Icon';\nimport React from 'react';\nimport { translate } from '../../Services/translation';\nimport { useTypedSelector } from '../../Hooks/useTypedSelector';\nimport clsx from 'clsx';\n\nconst EmptyCart = () => {\n const checkout = useTypedSelector((state) => state.checkout);\n const { emptyCartMessage, emptyCartLink } = checkout.payload;\n\n return (\n \n );\n};\n\nexport default EmptyCart;\n","import React, { lazy, Suspense } from 'react';\n\nconst DynamicComponent = ({ loader, loading = }) => {\n const Component = lazy(loader);\n return (props) => (\n \n \n \n );\n};\n\nexport default DynamicComponent;\n","import React from 'react';\nimport DynamicComponent from '../DynamicComponent';\n\nconst scriptPattern = /