@commercelayer/react-components 2.46.4 → 2.47.1
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/{dist → lib/cjs}/components/AddToCartButton.d.ts +20 -17
- package/lib/cjs/components/AddToCartButton.js +1 -0
- package/{dist → lib/cjs}/components/Address.d.ts +13 -13
- package/lib/cjs/components/Address.js +1 -0
- package/{dist → lib/cjs}/components/AddressCountrySelector.d.ts +9 -9
- package/lib/cjs/components/AddressCountrySelector.js +1 -0
- package/{dist → lib/cjs}/components/AddressField.d.ts +15 -15
- package/lib/cjs/components/AddressField.js +1 -0
- package/{dist → lib/cjs}/components/AddressInput.d.ts +7 -7
- package/lib/cjs/components/AddressInput.js +1 -0
- package/{dist → lib/cjs}/components/AddressStateSelector.d.ts +11 -11
- package/lib/cjs/components/AddressStateSelector.js +1 -0
- package/{dist → lib/cjs}/components/AddressesContainer.d.ts +7 -7
- package/lib/cjs/components/AddressesContainer.js +1 -0
- package/{dist → lib/cjs}/components/AdyenPayment.d.ts +25 -25
- package/lib/cjs/components/AdyenPayment.js +1 -0
- package/{dist → lib/cjs}/components/AvailabilityContainer.d.ts +7 -7
- package/lib/cjs/components/AvailabilityContainer.js +1 -0
- package/{dist → lib/cjs}/components/AvailabilityTemplate.d.ts +11 -16
- package/lib/cjs/components/AvailabilityTemplate.js +1 -0
- package/{dist → lib/cjs}/components/BillingAddressContainer.d.ts +6 -6
- package/lib/cjs/components/BillingAddressContainer.js +1 -0
- package/{dist → lib/cjs}/components/BillingAddressForm.d.ts +8 -8
- package/lib/cjs/components/BillingAddressForm.js +1 -0
- package/{dist → lib/cjs}/components/BraintreePayment.d.ts +30 -30
- package/lib/cjs/components/BraintreePayment.js +1 -0
- package/{dist → lib/cjs}/components/CheckoutLink.d.ts +11 -11
- package/lib/cjs/components/CheckoutLink.js +1 -0
- package/{dist → lib/cjs}/components/CommerceLayer.d.ts +8 -9
- package/lib/cjs/components/CommerceLayer.js +1 -0
- package/{dist → lib/cjs}/components/CustomerContainer.d.ts +7 -7
- package/lib/cjs/components/CustomerContainer.js +1 -0
- package/{dist → lib/cjs}/components/CustomerInput.d.ts +11 -11
- package/lib/cjs/components/CustomerInput.js +1 -0
- package/{dist → lib/cjs}/components/DeliveryLeadTime.d.ts +10 -10
- package/lib/cjs/components/DeliveryLeadTime.js +1 -0
- package/{dist → lib/cjs}/components/DiscountAmount.d.ts +4 -4
- package/lib/cjs/components/DiscountAmount.js +1 -0
- package/{dist → lib/cjs}/components/Errors.d.ts +5 -5
- package/lib/cjs/components/Errors.js +1 -0
- package/{dist → lib/cjs}/components/ExternalFunction.d.ts +7 -7
- package/lib/cjs/components/ExternalFunction.js +1 -0
- package/{dist → lib/cjs}/components/GiftCard.d.ts +8 -8
- package/lib/cjs/components/GiftCard.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardAmount.d.ts +4 -4
- package/lib/cjs/components/GiftCardAmount.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardContainer.d.ts +6 -6
- package/lib/cjs/components/GiftCardContainer.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardCurrencySelector.d.ts +7 -7
- package/lib/cjs/components/GiftCardCurrencySelector.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardInput.d.ts +7 -7
- package/lib/cjs/components/GiftCardInput.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardOrCouponCode.d.ts +13 -13
- package/lib/cjs/components/GiftCardOrCouponCode.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardOrCouponForm.d.ts +10 -10
- package/lib/cjs/components/GiftCardOrCouponForm.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardOrCouponInput.d.ts +8 -8
- package/lib/cjs/components/GiftCardOrCouponInput.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardOrCouponRemoveButton.d.ts +16 -16
- package/lib/cjs/components/GiftCardOrCouponRemoveButton.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardOrCouponSubmit.d.ts +9 -9
- package/lib/cjs/components/GiftCardOrCouponSubmit.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardRecipient.d.ts +0 -0
- package/lib/cjs/components/GiftCardRecipient.js +1 -0
- package/{dist → lib/cjs}/components/GiftCardRecipientInput.d.ts +0 -0
- package/lib/cjs/components/GiftCardRecipientInput.js +1 -0
- package/{dist → lib/cjs}/components/ItemContainer.d.ts +11 -11
- package/lib/cjs/components/ItemContainer.js +1 -0
- package/{dist → lib/cjs}/components/LineItem.d.ts +8 -8
- package/lib/cjs/components/LineItem.js +1 -0
- package/{dist → lib/cjs}/components/LineItemAmount.d.ts +7 -7
- package/lib/cjs/components/LineItemAmount.js +1 -0
- package/{dist/components/LineItemSkuCode.d.ts → lib/cjs/components/LineItemCode.d.ts} +8 -7
- package/lib/cjs/components/LineItemCode.js +1 -0
- package/{dist → lib/cjs}/components/LineItemImage.d.ts +10 -10
- package/lib/cjs/components/LineItemImage.js +1 -0
- package/{dist → lib/cjs}/components/LineItemName.d.ts +9 -7
- package/lib/cjs/components/LineItemName.js +1 -0
- package/{dist → lib/cjs}/components/LineItemOption.d.ts +19 -19
- package/lib/cjs/components/LineItemOption.js +1 -0
- package/{dist → lib/cjs}/components/LineItemOptions.d.ts +14 -14
- package/lib/cjs/components/LineItemOptions.js +1 -0
- package/{dist → lib/cjs}/components/LineItemQuantity.d.ts +14 -14
- package/lib/cjs/components/LineItemQuantity.js +1 -0
- package/{dist → lib/cjs}/components/LineItemRemoveLink.d.ts +12 -12
- package/lib/cjs/components/LineItemRemoveLink.js +1 -0
- package/{dist → lib/cjs}/components/LineItemsContainer.d.ts +8 -8
- package/lib/cjs/components/LineItemsContainer.js +1 -0
- package/{dist → lib/cjs}/components/LineItemsCount.d.ts +10 -10
- package/lib/cjs/components/LineItemsCount.js +1 -0
- package/{dist → lib/cjs}/components/MetadataInput.d.ts +5 -5
- package/lib/cjs/components/MetadataInput.js +1 -0
- package/{dist → lib/cjs}/components/OrderContainer.d.ts +11 -10
- package/lib/cjs/components/OrderContainer.js +1 -0
- package/{dist → lib/cjs}/components/OrderNumber.d.ts +5 -5
- package/lib/cjs/components/OrderNumber.js +1 -0
- package/{dist → lib/cjs}/components/OrderStorage.d.ts +8 -8
- package/lib/cjs/components/OrderStorage.js +1 -0
- package/{dist → lib/cjs}/components/PaymentGateway.d.ts +16 -16
- package/lib/cjs/components/PaymentGateway.js +1 -0
- package/{dist → lib/cjs}/components/PaymentMethod.d.ts +16 -16
- package/lib/cjs/components/PaymentMethod.js +1 -0
- package/{dist → lib/cjs}/components/PaymentMethodAmount.d.ts +4 -4
- package/lib/cjs/components/PaymentMethodAmount.js +1 -0
- package/{dist → lib/cjs}/components/PaymentMethodName.d.ts +9 -9
- package/lib/cjs/components/PaymentMethodName.js +1 -0
- package/{dist → lib/cjs}/components/PaymentMethodPrice.d.ts +9 -9
- package/lib/cjs/components/PaymentMethodPrice.js +1 -0
- package/{dist → lib/cjs}/components/PaymentMethodRadioButton.d.ts +11 -11
- package/lib/cjs/components/PaymentMethodRadioButton.js +1 -0
- package/{dist → lib/cjs}/components/PaymentMethodsContainer.d.ts +8 -8
- package/lib/cjs/components/PaymentMethodsContainer.js +1 -0
- package/{dist → lib/cjs}/components/PaymentSource.d.ts +19 -19
- package/lib/cjs/components/PaymentSource.js +1 -0
- package/{dist → lib/cjs}/components/PaymentSourceBrandIcon.d.ts +15 -15
- package/lib/cjs/components/PaymentSourceBrandIcon.js +1 -0
- package/{dist → lib/cjs}/components/PaymentSourceBrandName.d.ts +12 -12
- package/lib/cjs/components/PaymentSourceBrandName.js +1 -0
- package/{dist → lib/cjs}/components/PaymentSourceDetail.d.ts +12 -12
- package/lib/cjs/components/PaymentSourceDetail.js +1 -0
- package/{dist → lib/cjs}/components/PaymentSourceEditButton.d.ts +9 -9
- package/lib/cjs/components/PaymentSourceEditButton.js +1 -0
- package/{dist → lib/cjs}/components/PaypalPayment.d.ts +12 -12
- package/lib/cjs/components/PaypalPayment.js +1 -0
- package/{dist → lib/cjs}/components/PlaceOrderButton.d.ts +12 -12
- package/lib/cjs/components/PlaceOrderButton.js +1 -0
- package/{dist → lib/cjs}/components/PlaceOrderContainer.d.ts +8 -8
- package/lib/cjs/components/PlaceOrderContainer.js +1 -0
- package/{dist → lib/cjs}/components/Price.d.ts +14 -14
- package/lib/cjs/components/Price.js +1 -0
- package/{dist → lib/cjs}/components/PricesContainer.d.ts +11 -11
- package/lib/cjs/components/PricesContainer.js +1 -0
- package/{dist → lib/cjs}/components/PrivacyAndTermsCheckbox.d.ts +4 -4
- package/lib/cjs/components/PrivacyAndTermsCheckbox.js +1 -0
- package/{dist → lib/cjs}/components/QuantitySelector.d.ts +17 -17
- package/lib/cjs/components/QuantitySelector.js +1 -0
- package/{dist → lib/cjs}/components/SaveAddressesButton.d.ts +10 -10
- package/lib/cjs/components/SaveAddressesButton.js +1 -0
- package/{dist → lib/cjs}/components/SaveCustomerButton.d.ts +13 -13
- package/lib/cjs/components/SaveCustomerButton.js +1 -0
- package/{dist → lib/cjs}/components/Shipment.d.ts +8 -8
- package/lib/cjs/components/Shipment.js +1 -0
- package/{dist → lib/cjs}/components/ShipmentField.d.ts +12 -12
- package/lib/cjs/components/ShipmentField.js +1 -0
- package/{dist → lib/cjs}/components/ShipmentsContainer.d.ts +6 -6
- package/lib/cjs/components/ShipmentsContainer.js +1 -0
- package/{dist → lib/cjs}/components/ShippingAddressContainer.d.ts +6 -6
- package/lib/cjs/components/ShippingAddressContainer.js +1 -0
- package/{dist → lib/cjs}/components/ShippingAddressForm.d.ts +8 -8
- package/lib/cjs/components/ShippingAddressForm.js +1 -0
- package/{dist → lib/cjs}/components/ShippingAmount.d.ts +4 -4
- package/lib/cjs/components/ShippingAmount.js +1 -0
- package/{dist → lib/cjs}/components/ShippingMethod.d.ts +8 -8
- package/lib/cjs/components/ShippingMethod.js +1 -0
- package/{dist → lib/cjs}/components/ShippingMethodName.d.ts +11 -11
- package/lib/cjs/components/ShippingMethodName.js +1 -0
- package/{dist → lib/cjs}/components/ShippingMethodPrice.d.ts +13 -13
- package/lib/cjs/components/ShippingMethodPrice.js +1 -0
- package/{dist → lib/cjs}/components/ShippingMethodRadioButton.d.ts +9 -9
- package/lib/cjs/components/ShippingMethodRadioButton.js +1 -0
- package/{dist → lib/cjs}/components/SkuList.d.ts +7 -7
- package/lib/cjs/components/SkuList.js +1 -0
- package/{dist → lib/cjs}/components/SkuListsContainer.d.ts +6 -6
- package/lib/cjs/components/SkuListsContainer.js +1 -0
- package/{dist → lib/cjs}/components/SkuOption.d.ts +7 -7
- package/lib/cjs/components/SkuOption.js +1 -0
- package/{dist → lib/cjs}/components/SkuOptionInput.d.ts +5 -5
- package/lib/cjs/components/SkuOptionInput.js +1 -0
- package/{dist → lib/cjs}/components/SkuOptionsContainer.d.ts +7 -7
- package/lib/cjs/components/SkuOptionsContainer.js +1 -0
- package/{dist → lib/cjs}/components/StockTransfer.d.ts +6 -6
- package/lib/cjs/components/StockTransfer.js +1 -0
- package/{dist → lib/cjs}/components/StockTransferField.d.ts +9 -9
- package/lib/cjs/components/StockTransferField.js +1 -0
- package/{dist → lib/cjs}/components/StripePayment.d.ts +18 -18
- package/lib/cjs/components/StripePayment.js +1 -0
- package/{dist → lib/cjs}/components/SubTotalAmount.d.ts +4 -4
- package/lib/cjs/components/SubTotalAmount.js +1 -0
- package/{dist → lib/cjs}/components/SubmitButton.d.ts +9 -9
- package/lib/cjs/components/SubmitButton.js +1 -0
- package/{dist → lib/cjs}/components/TaxesAmount.d.ts +4 -4
- package/lib/cjs/components/TaxesAmount.js +1 -0
- package/{dist → lib/cjs}/components/TotalAmount.d.ts +4 -4
- package/lib/cjs/components/TotalAmount.js +1 -0
- package/{dist → lib/cjs}/components/VariantSelector.d.ts +27 -27
- package/lib/cjs/components/VariantSelector.js +1 -0
- package/{dist → lib/cjs}/components/VariantsContainer.d.ts +8 -8
- package/lib/cjs/components/VariantsContainer.js +1 -0
- package/{dist → lib/cjs}/components/WireTransferPayment.d.ts +10 -10
- package/lib/cjs/components/WireTransferPayment.js +1 -0
- package/{dist → lib/cjs}/components/gateways/AdyenGateway.d.ts +5 -5
- package/lib/cjs/components/gateways/AdyenGateway.js +1 -0
- package/{dist → lib/cjs}/components/gateways/BraintreeGateway.d.ts +5 -5
- package/lib/cjs/components/gateways/BraintreeGateway.js +1 -0
- package/{dist → lib/cjs}/components/gateways/PaypalGateway.d.ts +5 -5
- package/lib/cjs/components/gateways/PaypalGateway.js +1 -0
- package/{dist → lib/cjs}/components/gateways/StripeGateway.d.ts +5 -5
- package/lib/cjs/components/gateways/StripeGateway.js +1 -0
- package/{dist → lib/cjs}/components/gateways/WireTransferGateway.d.ts +5 -5
- package/lib/cjs/components/gateways/WireTransferGateway.js +1 -0
- package/{dist → lib/cjs}/components/utils/AddressCardsTemplate.d.ts +27 -27
- package/lib/cjs/components/utils/AddressCardsTemplate.js +1 -0
- package/{dist → lib/cjs}/components/utils/BaseField.d.ts +8 -8
- package/lib/cjs/components/utils/BaseField.js +1 -0
- package/lib/cjs/components/utils/BaseInput.d.ts +5 -0
- package/lib/cjs/components/utils/BaseInput.js +1 -0
- package/{dist → lib/cjs}/components/utils/BaseOrderPrice.d.ts +6 -6
- package/lib/cjs/components/utils/BaseOrderPrice.js +1 -0
- package/{dist → lib/cjs}/components/utils/BaseSelect.d.ts +5 -5
- package/lib/cjs/components/utils/BaseSelect.js +1 -0
- package/{dist → lib/cjs}/components/utils/Parent.d.ts +8 -8
- package/lib/cjs/components/utils/Parent.js +1 -0
- package/{dist → lib/cjs}/components/utils/PaymentCardsTemplate.d.ts +23 -24
- package/lib/cjs/components/utils/PaymentCardsTemplate.js +1 -0
- package/{dist → lib/cjs}/components/utils/PriceTemplate.d.ts +8 -8
- package/lib/cjs/components/utils/PriceTemplate.js +1 -0
- package/{dist → lib/cjs}/components/utils/VariantTemplate.d.ts +34 -34
- package/lib/cjs/components/utils/VariantTemplate.js +1 -0
- package/{dist → lib/cjs}/components/utils/getAllErrors.d.ts +17 -17
- package/lib/cjs/components/utils/getAllErrors.js +1 -0
- package/{dist → lib/cjs}/config/components.d.ts +867 -867
- package/lib/cjs/config/components.js +1 -0
- package/lib/cjs/config/currency.d.ts +5 -0
- package/lib/cjs/config/currency.js +1 -0
- package/{dist → lib/cjs}/context/AddressChildrenContext.d.ts +7 -7
- package/lib/cjs/context/AddressChildrenContext.js +1 -0
- package/{dist → lib/cjs}/context/AddressContext.d.ts +17 -17
- package/lib/cjs/context/AddressContext.js +1 -0
- package/{dist → lib/cjs}/context/AvailabilityContext.d.ts +3 -3
- package/lib/cjs/context/AvailabilityContext.js +1 -0
- package/{dist → lib/cjs}/context/BillingAddressContext.d.ts +12 -12
- package/lib/cjs/context/BillingAddressContext.js +1 -0
- package/{dist → lib/cjs}/context/BillingAddressFormContext.d.ts +18 -18
- package/lib/cjs/context/BillingAddressFormContext.js +1 -0
- package/{dist → lib/cjs}/context/CommerceLayerContext.d.ts +7 -8
- package/lib/cjs/context/CommerceLayerContext.js +1 -0
- package/{dist → lib/cjs}/context/CouponAndGiftCardFormContext.d.ts +7 -7
- package/lib/cjs/context/CouponAndGiftCardFormContext.js +1 -0
- package/{dist → lib/cjs}/context/CustomerContext.d.ts +16 -16
- package/lib/cjs/context/CustomerContext.js +1 -0
- package/{dist → lib/cjs}/context/ExternalFunctionContext.d.ts +12 -12
- package/lib/cjs/context/ExternalFunctionContext.js +1 -0
- package/{dist → lib/cjs}/context/GiftCardContext.d.ts +11 -11
- package/lib/cjs/context/GiftCardContext.js +1 -0
- package/{dist → lib/cjs}/context/ItemContext.d.ts +13 -13
- package/lib/cjs/context/ItemContext.js +1 -0
- package/lib/cjs/context/LineItemChildrenContext.d.ts +9 -0
- package/lib/cjs/context/LineItemChildrenContext.js +1 -0
- package/{dist → lib/cjs}/context/LineItemContext.d.ts +8 -8
- package/lib/cjs/context/LineItemContext.js +1 -0
- package/{dist → lib/cjs}/context/LineItemOptionChildrenContext.d.ts +8 -8
- package/lib/cjs/context/LineItemOptionChildrenContext.js +1 -0
- package/lib/cjs/context/OrderContext.d.ts +26 -0
- package/lib/cjs/context/OrderContext.js +1 -0
- package/{dist → lib/cjs}/context/OrderStorageContext.d.ts +11 -11
- package/lib/cjs/context/OrderStorageContext.js +1 -0
- package/{dist → lib/cjs}/context/PaymentMethodChildrenContext.d.ts +10 -10
- package/lib/cjs/context/PaymentMethodChildrenContext.js +1 -0
- package/{dist → lib/cjs}/context/PaymentMethodContext.d.ts +23 -23
- package/lib/cjs/context/PaymentMethodContext.js +1 -0
- package/{dist → lib/cjs}/context/PaymentSourceContext.d.ts +14 -14
- package/lib/cjs/context/PaymentSourceContext.js +1 -0
- package/{dist → lib/cjs}/context/PlaceOrderContext.d.ts +16 -16
- package/lib/cjs/context/PlaceOrderContext.js +1 -0
- package/{dist → lib/cjs}/context/PricesContext.d.ts +7 -7
- package/lib/cjs/context/PricesContext.js +1 -0
- package/lib/cjs/context/ShipmentChildrenContext.d.ts +13 -0
- package/lib/cjs/context/ShipmentChildrenContext.js +1 -0
- package/{dist → lib/cjs}/context/ShipmentContext.d.ts +12 -12
- package/lib/cjs/context/ShipmentContext.js +1 -0
- package/{dist → lib/cjs}/context/ShippingAddressContext.d.ts +10 -10
- package/lib/cjs/context/ShippingAddressContext.js +1 -0
- package/{dist → lib/cjs}/context/ShippingAddressFormContext.d.ts +4 -4
- package/lib/cjs/context/ShippingAddressFormContext.js +1 -0
- package/lib/cjs/context/ShippingMethodChildrenContext.d.ts +10 -0
- package/lib/cjs/context/ShippingMethodChildrenContext.js +1 -0
- package/lib/cjs/context/SkuListsContext.d.ts +6 -0
- package/lib/cjs/context/SkuListsContext.js +1 -0
- package/{dist → lib/cjs}/context/SkuOptionChildrenContext.d.ts +8 -8
- package/lib/cjs/context/SkuOptionChildrenContext.js +1 -0
- package/{dist → lib/cjs}/context/SkuOptionsContext.d.ts +3 -3
- package/lib/cjs/context/SkuOptionsContext.js +1 -0
- package/{dist → lib/cjs}/context/StockTransferChildrenContext.d.ts +7 -7
- package/lib/cjs/context/StockTransferChildrenContext.js +1 -0
- package/{dist → lib/cjs}/context/VariantsContext.d.ts +3 -3
- package/lib/cjs/context/VariantsContext.js +1 -0
- package/lib/cjs/index.d.ts +90 -0
- package/lib/cjs/index.js +1 -0
- package/{dist → lib/cjs}/reducers/AddressReducer.d.ts +58 -57
- package/lib/cjs/reducers/AddressReducer.js +1 -0
- package/lib/cjs/reducers/AvailabilityReducer.d.ts +53 -0
- package/lib/cjs/reducers/AvailabilityReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/BillingAddressReducer.d.ts +31 -32
- package/lib/cjs/reducers/BillingAddressReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/CustomerReducer.d.ts +50 -51
- package/lib/cjs/reducers/CustomerReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/GiftCardReducer.d.ts +76 -75
- package/lib/cjs/reducers/GiftCardReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/ItemReducer.d.ts +69 -68
- package/lib/cjs/reducers/ItemReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/LineItemReducer.d.ts +52 -52
- package/lib/cjs/reducers/LineItemReducer.js +1 -0
- package/lib/cjs/reducers/OrderReducer.d.ts +127 -0
- package/lib/cjs/reducers/OrderReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/PaymentMethodReducer.d.ts +105 -106
- package/lib/cjs/reducers/PaymentMethodReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/PlaceOrderReducer.d.ts +48 -50
- package/lib/cjs/reducers/PlaceOrderReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/PriceReducer.d.ts +44 -45
- package/lib/cjs/reducers/PriceReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/ShipmentReducer.d.ts +40 -37
- package/lib/cjs/reducers/ShipmentReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/ShippingAddressReducer.d.ts +32 -31
- package/lib/cjs/reducers/ShippingAddressReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/SkuListsReducer.d.ts +21 -22
- package/lib/cjs/reducers/SkuListsReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/SkuOptionsReducer.d.ts +26 -26
- package/lib/cjs/reducers/SkuOptionsReducer.js +1 -0
- package/{dist → lib/cjs}/reducers/VariantReducer.d.ts +71 -71
- package/lib/cjs/reducers/VariantReducer.js +1 -0
- package/{dist → lib/cjs}/typings/errors.d.ts +42 -40
- package/lib/cjs/typings/errors.js +1 -0
- package/{dist → lib/cjs}/typings/index.d.ts +126 -126
- package/lib/cjs/typings/index.js +1 -0
- package/lib/cjs/utils/PropsType.d.ts +33 -0
- package/lib/cjs/utils/PropsType.js +1 -0
- package/{dist → lib/cjs}/utils/addressesManager.d.ts +28 -27
- package/lib/cjs/utils/addressesManager.js +1 -0
- package/{dist → lib/cjs}/utils/baseReducer.d.ts +3 -3
- package/lib/cjs/utils/baseReducer.js +1 -0
- package/{dist → lib/cjs}/utils/browserInfo.d.ts +9 -9
- package/lib/cjs/utils/browserInfo.js +1 -0
- package/{dist → lib/cjs}/utils/childrenTypes.d.ts +9 -9
- package/lib/cjs/utils/childrenTypes.js +1 -0
- package/{dist → lib/cjs}/utils/countryStateCity.d.ts +9 -9
- package/lib/cjs/utils/countryStateCity.js +1 -0
- package/{dist → lib/cjs}/utils/customMessages.d.ts +8 -8
- package/lib/cjs/utils/customMessages.js +1 -0
- package/lib/cjs/utils/customerOrderOptions.d.ts +3 -0
- package/lib/cjs/utils/customerOrderOptions.js +1 -0
- package/{dist → lib/cjs}/utils/getAmount.d.ts +9 -9
- package/lib/cjs/utils/getAmount.js +1 -0
- package/{dist → lib/cjs}/utils/getCurrentItemKey.d.ts +6 -6
- package/lib/cjs/utils/getCurrentItemKey.js +1 -0
- package/lib/cjs/utils/getErrors.d.ts +11 -0
- package/lib/cjs/utils/getErrors.js +1 -0
- package/{dist → lib/cjs}/utils/getLineItemsCount.d.ts +6 -6
- package/lib/cjs/utils/getLineItemsCount.js +1 -0
- package/{dist → lib/cjs}/utils/getLoaderComponent.d.ts +3 -3
- package/lib/cjs/utils/getLoaderComponent.js +1 -0
- package/lib/cjs/utils/getPrices.d.ts +17 -0
- package/lib/cjs/utils/getPrices.js +1 -0
- package/lib/cjs/utils/getSdk.d.ts +3 -0
- package/lib/cjs/utils/getSdk.js +1 -0
- package/lib/cjs/utils/getSkus.d.ts +3 -0
- package/lib/cjs/utils/getSkus.js +1 -0
- package/{dist → lib/cjs}/utils/isEmptyStates.d.ts +1 -1
- package/lib/cjs/utils/isEmptyStates.js +1 -0
- package/{dist → lib/cjs}/utils/isJSON.d.ts +1 -1
- package/lib/cjs/utils/isJSON.js +1 -0
- package/lib/cjs/utils/jwt.d.ts +27 -0
- package/lib/cjs/utils/jwt.js +1 -0
- package/{dist → lib/cjs}/utils/localStorage.d.ts +18 -18
- package/lib/cjs/utils/localStorage.js +1 -0
- package/lib/cjs/utils/organization.d.ts +6 -0
- package/lib/cjs/utils/organization.js +1 -0
- package/lib/cjs/utils/paypalPayment.d.ts +3 -0
- package/lib/cjs/utils/paypalPayment.js +1 -0
- package/{dist → lib/cjs}/utils/promisify.d.ts +1 -1
- package/lib/cjs/utils/promisify.js +1 -0
- package/lib/cjs/utils/shipments.d.ts +2 -0
- package/lib/cjs/utils/shipments.js +1 -0
- package/{dist → lib/cjs}/utils/validateFormFields.d.ts +20 -19
- package/lib/cjs/utils/validateFormFields.js +1 -0
- package/lib/esm/components/AddToCartButton.d.ts +20 -0
- package/lib/esm/components/AddToCartButton.js +1 -0
- package/lib/esm/components/Address.d.ts +13 -0
- package/lib/esm/components/Address.js +1 -0
- package/lib/esm/components/AddressCountrySelector.d.ts +9 -0
- package/lib/esm/components/AddressCountrySelector.js +1 -0
- package/lib/esm/components/AddressField.d.ts +15 -0
- package/lib/esm/components/AddressField.js +1 -0
- package/lib/esm/components/AddressInput.d.ts +7 -0
- package/lib/esm/components/AddressInput.js +1 -0
- package/lib/esm/components/AddressStateSelector.d.ts +11 -0
- package/lib/esm/components/AddressStateSelector.js +1 -0
- package/lib/esm/components/AddressesContainer.d.ts +7 -0
- package/lib/esm/components/AddressesContainer.js +1 -0
- package/lib/esm/components/AdyenPayment.d.ts +25 -0
- package/lib/esm/components/AdyenPayment.js +1 -0
- package/lib/esm/components/AvailabilityContainer.d.ts +7 -0
- package/lib/esm/components/AvailabilityContainer.js +1 -0
- package/lib/esm/components/AvailabilityTemplate.d.ts +11 -0
- package/lib/esm/components/AvailabilityTemplate.js +1 -0
- package/lib/esm/components/BillingAddressContainer.d.ts +6 -0
- package/lib/esm/components/BillingAddressContainer.js +1 -0
- package/lib/esm/components/BillingAddressForm.d.ts +8 -0
- package/lib/esm/components/BillingAddressForm.js +1 -0
- package/lib/esm/components/BraintreePayment.d.ts +30 -0
- package/lib/esm/components/BraintreePayment.js +1 -0
- package/lib/esm/components/CheckoutLink.d.ts +11 -0
- package/lib/esm/components/CheckoutLink.js +1 -0
- package/lib/esm/components/CommerceLayer.d.ts +8 -0
- package/lib/esm/components/CommerceLayer.js +1 -0
- package/lib/esm/components/CustomerContainer.d.ts +7 -0
- package/lib/esm/components/CustomerContainer.js +1 -0
- package/lib/esm/components/CustomerInput.d.ts +11 -0
- package/lib/esm/components/CustomerInput.js +1 -0
- package/lib/esm/components/DeliveryLeadTime.d.ts +10 -0
- package/lib/esm/components/DeliveryLeadTime.js +1 -0
- package/lib/esm/components/DiscountAmount.d.ts +4 -0
- package/lib/esm/components/DiscountAmount.js +1 -0
- package/lib/esm/components/Errors.d.ts +5 -0
- package/lib/esm/components/Errors.js +1 -0
- package/lib/esm/components/ExternalFunction.d.ts +7 -0
- package/lib/esm/components/ExternalFunction.js +1 -0
- package/lib/esm/components/GiftCard.d.ts +8 -0
- package/lib/esm/components/GiftCard.js +1 -0
- package/lib/esm/components/GiftCardAmount.d.ts +4 -0
- package/lib/esm/components/GiftCardAmount.js +1 -0
- package/lib/esm/components/GiftCardContainer.d.ts +6 -0
- package/lib/esm/components/GiftCardContainer.js +1 -0
- package/lib/esm/components/GiftCardCurrencySelector.d.ts +7 -0
- package/lib/esm/components/GiftCardCurrencySelector.js +1 -0
- package/lib/esm/components/GiftCardInput.d.ts +7 -0
- package/lib/esm/components/GiftCardInput.js +1 -0
- package/lib/esm/components/GiftCardOrCouponCode.d.ts +13 -0
- package/lib/esm/components/GiftCardOrCouponCode.js +1 -0
- package/lib/esm/components/GiftCardOrCouponForm.d.ts +10 -0
- package/lib/esm/components/GiftCardOrCouponForm.js +1 -0
- package/lib/esm/components/GiftCardOrCouponInput.d.ts +8 -0
- package/lib/esm/components/GiftCardOrCouponInput.js +1 -0
- package/lib/esm/components/GiftCardOrCouponRemoveButton.d.ts +16 -0
- package/lib/esm/components/GiftCardOrCouponRemoveButton.js +1 -0
- package/lib/esm/components/GiftCardOrCouponSubmit.d.ts +9 -0
- package/lib/esm/components/GiftCardOrCouponSubmit.js +1 -0
- package/lib/esm/components/GiftCardRecipient.d.ts +0 -0
- package/lib/esm/components/GiftCardRecipient.js +1 -0
- package/lib/esm/components/GiftCardRecipientInput.d.ts +0 -0
- package/lib/esm/components/GiftCardRecipientInput.js +1 -0
- package/lib/esm/components/ItemContainer.d.ts +11 -0
- package/lib/esm/components/ItemContainer.js +1 -0
- package/lib/esm/components/LineItem.d.ts +8 -0
- package/lib/esm/components/LineItem.js +1 -0
- package/lib/esm/components/LineItemAmount.d.ts +7 -0
- package/lib/esm/components/LineItemAmount.js +1 -0
- package/lib/esm/components/LineItemCode.d.ts +8 -0
- package/lib/esm/components/LineItemCode.js +1 -0
- package/lib/esm/components/LineItemImage.d.ts +10 -0
- package/lib/esm/components/LineItemImage.js +1 -0
- package/lib/esm/components/LineItemName.d.ts +9 -0
- package/lib/esm/components/LineItemName.js +1 -0
- package/lib/esm/components/LineItemOption.d.ts +19 -0
- package/lib/esm/components/LineItemOption.js +1 -0
- package/lib/esm/components/LineItemOptions.d.ts +14 -0
- package/lib/esm/components/LineItemOptions.js +1 -0
- package/lib/esm/components/LineItemQuantity.d.ts +14 -0
- package/lib/esm/components/LineItemQuantity.js +1 -0
- package/lib/esm/components/LineItemRemoveLink.d.ts +12 -0
- package/lib/esm/components/LineItemRemoveLink.js +1 -0
- package/lib/esm/components/LineItemsContainer.d.ts +8 -0
- package/lib/esm/components/LineItemsContainer.js +1 -0
- package/lib/esm/components/LineItemsCount.d.ts +10 -0
- package/lib/esm/components/LineItemsCount.js +1 -0
- package/lib/esm/components/MetadataInput.d.ts +5 -0
- package/lib/esm/components/MetadataInput.js +1 -0
- package/lib/esm/components/OrderContainer.d.ts +11 -0
- package/lib/esm/components/OrderContainer.js +1 -0
- package/lib/esm/components/OrderNumber.d.ts +5 -0
- package/lib/esm/components/OrderNumber.js +1 -0
- package/lib/esm/components/OrderStorage.d.ts +8 -0
- package/lib/esm/components/OrderStorage.js +1 -0
- package/lib/esm/components/PaymentGateway.d.ts +16 -0
- package/lib/esm/components/PaymentGateway.js +1 -0
- package/lib/esm/components/PaymentMethod.d.ts +16 -0
- package/lib/esm/components/PaymentMethod.js +1 -0
- package/lib/esm/components/PaymentMethodAmount.d.ts +4 -0
- package/lib/esm/components/PaymentMethodAmount.js +1 -0
- package/lib/esm/components/PaymentMethodName.d.ts +9 -0
- package/lib/esm/components/PaymentMethodName.js +1 -0
- package/lib/esm/components/PaymentMethodPrice.d.ts +9 -0
- package/lib/esm/components/PaymentMethodPrice.js +1 -0
- package/lib/esm/components/PaymentMethodRadioButton.d.ts +11 -0
- package/lib/esm/components/PaymentMethodRadioButton.js +1 -0
- package/lib/esm/components/PaymentMethodsContainer.d.ts +8 -0
- package/lib/esm/components/PaymentMethodsContainer.js +1 -0
- package/lib/esm/components/PaymentSource.d.ts +19 -0
- package/lib/esm/components/PaymentSource.js +1 -0
- package/lib/esm/components/PaymentSourceBrandIcon.d.ts +15 -0
- package/lib/esm/components/PaymentSourceBrandIcon.js +1 -0
- package/lib/esm/components/PaymentSourceBrandName.d.ts +12 -0
- package/lib/esm/components/PaymentSourceBrandName.js +1 -0
- package/lib/esm/components/PaymentSourceDetail.d.ts +12 -0
- package/lib/esm/components/PaymentSourceDetail.js +1 -0
- package/lib/esm/components/PaymentSourceEditButton.d.ts +9 -0
- package/lib/esm/components/PaymentSourceEditButton.js +1 -0
- package/lib/esm/components/PaypalPayment.d.ts +12 -0
- package/lib/esm/components/PaypalPayment.js +1 -0
- package/lib/esm/components/PlaceOrderButton.d.ts +12 -0
- package/lib/esm/components/PlaceOrderButton.js +1 -0
- package/lib/esm/components/PlaceOrderContainer.d.ts +8 -0
- package/lib/esm/components/PlaceOrderContainer.js +1 -0
- package/lib/esm/components/Price.d.ts +14 -0
- package/lib/esm/components/Price.js +1 -0
- package/lib/esm/components/PricesContainer.d.ts +11 -0
- package/lib/esm/components/PricesContainer.js +1 -0
- package/lib/esm/components/PrivacyAndTermsCheckbox.d.ts +4 -0
- package/lib/esm/components/PrivacyAndTermsCheckbox.js +1 -0
- package/lib/esm/components/QuantitySelector.d.ts +17 -0
- package/lib/esm/components/QuantitySelector.js +1 -0
- package/lib/esm/components/SaveAddressesButton.d.ts +10 -0
- package/lib/esm/components/SaveAddressesButton.js +1 -0
- package/lib/esm/components/SaveCustomerButton.d.ts +13 -0
- package/lib/esm/components/SaveCustomerButton.js +1 -0
- package/lib/esm/components/Shipment.d.ts +8 -0
- package/lib/esm/components/Shipment.js +1 -0
- package/lib/esm/components/ShipmentField.d.ts +12 -0
- package/lib/esm/components/ShipmentField.js +1 -0
- package/lib/esm/components/ShipmentsContainer.d.ts +6 -0
- package/lib/esm/components/ShipmentsContainer.js +1 -0
- package/lib/esm/components/ShippingAddressContainer.d.ts +6 -0
- package/lib/esm/components/ShippingAddressContainer.js +1 -0
- package/lib/esm/components/ShippingAddressForm.d.ts +8 -0
- package/lib/esm/components/ShippingAddressForm.js +1 -0
- package/lib/esm/components/ShippingAmount.d.ts +4 -0
- package/lib/esm/components/ShippingAmount.js +1 -0
- package/lib/esm/components/ShippingMethod.d.ts +8 -0
- package/lib/esm/components/ShippingMethod.js +1 -0
- package/lib/esm/components/ShippingMethodName.d.ts +11 -0
- package/lib/esm/components/ShippingMethodName.js +1 -0
- package/lib/esm/components/ShippingMethodPrice.d.ts +13 -0
- package/lib/esm/components/ShippingMethodPrice.js +1 -0
- package/lib/esm/components/ShippingMethodRadioButton.d.ts +9 -0
- package/lib/esm/components/ShippingMethodRadioButton.js +1 -0
- package/lib/esm/components/SkuList.d.ts +7 -0
- package/lib/esm/components/SkuList.js +1 -0
- package/lib/esm/components/SkuListsContainer.d.ts +6 -0
- package/lib/esm/components/SkuListsContainer.js +1 -0
- package/lib/esm/components/SkuOption.d.ts +7 -0
- package/lib/esm/components/SkuOption.js +1 -0
- package/lib/esm/components/SkuOptionInput.d.ts +5 -0
- package/lib/esm/components/SkuOptionInput.js +1 -0
- package/lib/esm/components/SkuOptionsContainer.d.ts +7 -0
- package/lib/esm/components/SkuOptionsContainer.js +1 -0
- package/lib/esm/components/StockTransfer.d.ts +6 -0
- package/lib/esm/components/StockTransfer.js +1 -0
- package/lib/esm/components/StockTransferField.d.ts +9 -0
- package/lib/esm/components/StockTransferField.js +1 -0
- package/lib/esm/components/StripePayment.d.ts +18 -0
- package/lib/esm/components/StripePayment.js +1 -0
- package/lib/esm/components/SubTotalAmount.d.ts +4 -0
- package/lib/esm/components/SubTotalAmount.js +1 -0
- package/lib/esm/components/SubmitButton.d.ts +9 -0
- package/lib/esm/components/SubmitButton.js +1 -0
- package/lib/esm/components/TaxesAmount.d.ts +4 -0
- package/lib/esm/components/TaxesAmount.js +1 -0
- package/lib/esm/components/TotalAmount.d.ts +4 -0
- package/lib/esm/components/TotalAmount.js +1 -0
- package/lib/esm/components/VariantSelector.d.ts +27 -0
- package/lib/esm/components/VariantSelector.js +1 -0
- package/lib/esm/components/VariantsContainer.d.ts +8 -0
- package/lib/esm/components/VariantsContainer.js +1 -0
- package/lib/esm/components/WireTransferPayment.d.ts +10 -0
- package/lib/esm/components/WireTransferPayment.js +1 -0
- package/lib/esm/components/gateways/AdyenGateway.d.ts +5 -0
- package/lib/esm/components/gateways/AdyenGateway.js +1 -0
- package/lib/esm/components/gateways/BraintreeGateway.d.ts +5 -0
- package/lib/esm/components/gateways/BraintreeGateway.js +1 -0
- package/lib/esm/components/gateways/PaypalGateway.d.ts +5 -0
- package/lib/esm/components/gateways/PaypalGateway.js +1 -0
- package/lib/esm/components/gateways/StripeGateway.d.ts +5 -0
- package/lib/esm/components/gateways/StripeGateway.js +1 -0
- package/lib/esm/components/gateways/WireTransferGateway.d.ts +5 -0
- package/lib/esm/components/gateways/WireTransferGateway.js +1 -0
- package/lib/esm/components/utils/AddressCardsTemplate.d.ts +27 -0
- package/lib/esm/components/utils/AddressCardsTemplate.js +1 -0
- package/lib/esm/components/utils/BaseField.d.ts +8 -0
- package/lib/esm/components/utils/BaseField.js +1 -0
- package/lib/esm/components/utils/BaseInput.d.ts +5 -0
- package/lib/esm/components/utils/BaseInput.js +1 -0
- package/lib/esm/components/utils/BaseOrderPrice.d.ts +6 -0
- package/lib/esm/components/utils/BaseOrderPrice.js +1 -0
- package/lib/esm/components/utils/BaseSelect.d.ts +5 -0
- package/lib/esm/components/utils/BaseSelect.js +1 -0
- package/lib/esm/components/utils/Parent.d.ts +8 -0
- package/lib/esm/components/utils/Parent.js +1 -0
- package/lib/esm/components/utils/PaymentCardsTemplate.d.ts +23 -0
- package/lib/esm/components/utils/PaymentCardsTemplate.js +1 -0
- package/lib/esm/components/utils/PriceTemplate.d.ts +8 -0
- package/lib/esm/components/utils/PriceTemplate.js +1 -0
- package/lib/esm/components/utils/VariantTemplate.d.ts +34 -0
- package/lib/esm/components/utils/VariantTemplate.js +1 -0
- package/lib/esm/components/utils/getAllErrors.d.ts +17 -0
- package/lib/esm/components/utils/getAllErrors.js +1 -0
- package/lib/esm/config/components.d.ts +867 -0
- package/lib/esm/config/components.js +1 -0
- package/lib/esm/config/currency.d.ts +5 -0
- package/lib/esm/config/currency.js +1 -0
- package/lib/esm/context/AddressChildrenContext.d.ts +7 -0
- package/lib/esm/context/AddressChildrenContext.js +1 -0
- package/lib/esm/context/AddressContext.d.ts +17 -0
- package/lib/esm/context/AddressContext.js +1 -0
- package/lib/esm/context/AvailabilityContext.d.ts +3 -0
- package/lib/esm/context/AvailabilityContext.js +1 -0
- package/lib/esm/context/BillingAddressContext.d.ts +12 -0
- package/lib/esm/context/BillingAddressContext.js +1 -0
- package/lib/esm/context/BillingAddressFormContext.d.ts +18 -0
- package/lib/esm/context/BillingAddressFormContext.js +1 -0
- package/lib/esm/context/CommerceLayerContext.d.ts +7 -0
- package/lib/esm/context/CommerceLayerContext.js +1 -0
- package/lib/esm/context/CouponAndGiftCardFormContext.d.ts +7 -0
- package/lib/esm/context/CouponAndGiftCardFormContext.js +1 -0
- package/lib/esm/context/CustomerContext.d.ts +16 -0
- package/lib/esm/context/CustomerContext.js +1 -0
- package/lib/esm/context/ExternalFunctionContext.d.ts +12 -0
- package/lib/esm/context/ExternalFunctionContext.js +1 -0
- package/lib/esm/context/GiftCardContext.d.ts +11 -0
- package/lib/esm/context/GiftCardContext.js +1 -0
- package/lib/esm/context/ItemContext.d.ts +13 -0
- package/lib/esm/context/ItemContext.js +1 -0
- package/lib/esm/context/LineItemChildrenContext.d.ts +9 -0
- package/lib/esm/context/LineItemChildrenContext.js +1 -0
- package/lib/esm/context/LineItemContext.d.ts +8 -0
- package/lib/esm/context/LineItemContext.js +1 -0
- package/lib/esm/context/LineItemOptionChildrenContext.d.ts +8 -0
- package/lib/esm/context/LineItemOptionChildrenContext.js +1 -0
- package/lib/esm/context/OrderContext.d.ts +26 -0
- package/lib/esm/context/OrderContext.js +1 -0
- package/lib/esm/context/OrderStorageContext.d.ts +11 -0
- package/lib/esm/context/OrderStorageContext.js +1 -0
- package/lib/esm/context/PaymentMethodChildrenContext.d.ts +10 -0
- package/lib/esm/context/PaymentMethodChildrenContext.js +1 -0
- package/lib/esm/context/PaymentMethodContext.d.ts +23 -0
- package/lib/esm/context/PaymentMethodContext.js +1 -0
- package/lib/esm/context/PaymentSourceContext.d.ts +14 -0
- package/lib/esm/context/PaymentSourceContext.js +1 -0
- package/lib/esm/context/PlaceOrderContext.d.ts +16 -0
- package/lib/esm/context/PlaceOrderContext.js +1 -0
- package/lib/esm/context/PricesContext.d.ts +7 -0
- package/lib/esm/context/PricesContext.js +1 -0
- package/lib/esm/context/ShipmentChildrenContext.d.ts +13 -0
- package/lib/esm/context/ShipmentChildrenContext.js +1 -0
- package/lib/esm/context/ShipmentContext.d.ts +12 -0
- package/lib/esm/context/ShipmentContext.js +1 -0
- package/lib/esm/context/ShippingAddressContext.d.ts +10 -0
- package/lib/esm/context/ShippingAddressContext.js +1 -0
- package/lib/esm/context/ShippingAddressFormContext.d.ts +4 -0
- package/lib/esm/context/ShippingAddressFormContext.js +1 -0
- package/lib/esm/context/ShippingMethodChildrenContext.d.ts +10 -0
- package/lib/esm/context/ShippingMethodChildrenContext.js +1 -0
- package/lib/esm/context/SkuListsContext.d.ts +6 -0
- package/lib/esm/context/SkuListsContext.js +1 -0
- package/lib/esm/context/SkuOptionChildrenContext.d.ts +8 -0
- package/lib/esm/context/SkuOptionChildrenContext.js +1 -0
- package/lib/esm/context/SkuOptionsContext.d.ts +3 -0
- package/lib/esm/context/SkuOptionsContext.js +1 -0
- package/lib/esm/context/StockTransferChildrenContext.d.ts +7 -0
- package/lib/esm/context/StockTransferChildrenContext.js +1 -0
- package/lib/esm/context/VariantsContext.d.ts +3 -0
- package/lib/esm/context/VariantsContext.js +1 -0
- package/lib/esm/index.d.ts +90 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/reducers/AddressReducer.d.ts +58 -0
- package/lib/esm/reducers/AddressReducer.js +1 -0
- package/lib/esm/reducers/AvailabilityReducer.d.ts +53 -0
- package/lib/esm/reducers/AvailabilityReducer.js +1 -0
- package/lib/esm/reducers/BillingAddressReducer.d.ts +31 -0
- package/lib/esm/reducers/BillingAddressReducer.js +1 -0
- package/lib/esm/reducers/CustomerReducer.d.ts +50 -0
- package/lib/esm/reducers/CustomerReducer.js +1 -0
- package/lib/esm/reducers/GiftCardReducer.d.ts +76 -0
- package/lib/esm/reducers/GiftCardReducer.js +1 -0
- package/lib/esm/reducers/ItemReducer.d.ts +69 -0
- package/lib/esm/reducers/ItemReducer.js +1 -0
- package/lib/esm/reducers/LineItemReducer.d.ts +52 -0
- package/lib/esm/reducers/LineItemReducer.js +1 -0
- package/lib/esm/reducers/OrderReducer.d.ts +127 -0
- package/lib/esm/reducers/OrderReducer.js +1 -0
- package/lib/esm/reducers/PaymentMethodReducer.d.ts +105 -0
- package/lib/esm/reducers/PaymentMethodReducer.js +1 -0
- package/lib/esm/reducers/PlaceOrderReducer.d.ts +48 -0
- package/lib/esm/reducers/PlaceOrderReducer.js +1 -0
- package/lib/esm/reducers/PriceReducer.d.ts +44 -0
- package/lib/esm/reducers/PriceReducer.js +1 -0
- package/lib/esm/reducers/ShipmentReducer.d.ts +40 -0
- package/lib/esm/reducers/ShipmentReducer.js +1 -0
- package/lib/esm/reducers/ShippingAddressReducer.d.ts +32 -0
- package/lib/esm/reducers/ShippingAddressReducer.js +1 -0
- package/lib/esm/reducers/SkuListsReducer.d.ts +21 -0
- package/lib/esm/reducers/SkuListsReducer.js +1 -0
- package/lib/esm/reducers/SkuOptionsReducer.d.ts +26 -0
- package/lib/esm/reducers/SkuOptionsReducer.js +1 -0
- package/lib/esm/reducers/VariantReducer.d.ts +71 -0
- package/lib/esm/reducers/VariantReducer.js +1 -0
- package/lib/esm/typings/errors.d.ts +42 -0
- package/lib/esm/typings/errors.js +1 -0
- package/lib/esm/typings/index.d.ts +126 -0
- package/lib/esm/typings/index.js +1 -0
- package/lib/esm/utils/PropsType.d.ts +33 -0
- package/lib/esm/utils/PropsType.js +1 -0
- package/lib/esm/utils/addressesManager.d.ts +28 -0
- package/lib/esm/utils/addressesManager.js +1 -0
- package/lib/esm/utils/baseReducer.d.ts +3 -0
- package/lib/esm/utils/baseReducer.js +1 -0
- package/lib/esm/utils/browserInfo.d.ts +9 -0
- package/lib/esm/utils/browserInfo.js +1 -0
- package/lib/esm/utils/childrenTypes.d.ts +9 -0
- package/lib/esm/utils/childrenTypes.js +1 -0
- package/lib/esm/utils/countryStateCity.d.ts +9 -0
- package/lib/esm/utils/countryStateCity.js +1 -0
- package/lib/esm/utils/customMessages.d.ts +8 -0
- package/lib/esm/utils/customMessages.js +1 -0
- package/lib/esm/utils/customerOrderOptions.d.ts +3 -0
- package/lib/esm/utils/customerOrderOptions.js +1 -0
- package/lib/esm/utils/getAmount.d.ts +9 -0
- package/lib/esm/utils/getAmount.js +1 -0
- package/lib/esm/utils/getCurrentItemKey.d.ts +6 -0
- package/lib/esm/utils/getCurrentItemKey.js +1 -0
- package/lib/esm/utils/getErrors.d.ts +11 -0
- package/lib/esm/utils/getErrors.js +1 -0
- package/lib/esm/utils/getLineItemsCount.d.ts +6 -0
- package/lib/esm/utils/getLineItemsCount.js +1 -0
- package/lib/esm/utils/getLoaderComponent.d.ts +3 -0
- package/lib/esm/utils/getLoaderComponent.js +1 -0
- package/lib/esm/utils/getPrices.d.ts +17 -0
- package/lib/esm/utils/getPrices.js +1 -0
- package/lib/esm/utils/getSdk.d.ts +3 -0
- package/lib/esm/utils/getSdk.js +1 -0
- package/lib/esm/utils/getSkus.d.ts +3 -0
- package/lib/esm/utils/getSkus.js +1 -0
- package/lib/esm/utils/isEmptyStates.d.ts +1 -0
- package/lib/esm/utils/isEmptyStates.js +1 -0
- package/lib/esm/utils/isJSON.d.ts +1 -0
- package/lib/esm/utils/isJSON.js +1 -0
- package/lib/esm/utils/jwt.d.ts +27 -0
- package/lib/esm/utils/jwt.js +1 -0
- package/lib/esm/utils/localStorage.d.ts +18 -0
- package/lib/esm/utils/localStorage.js +1 -0
- package/lib/esm/utils/organization.d.ts +6 -0
- package/lib/esm/utils/organization.js +1 -0
- package/lib/esm/utils/paypalPayment.d.ts +3 -0
- package/lib/esm/utils/paypalPayment.js +1 -0
- package/lib/esm/utils/promisify.d.ts +1 -0
- package/lib/esm/utils/promisify.js +1 -0
- package/lib/esm/utils/shipments.d.ts +2 -0
- package/lib/esm/utils/shipments.js +1 -0
- package/lib/esm/utils/validateFormFields.d.ts +20 -0
- package/lib/esm/utils/validateFormFields.js +1 -0
- package/lib/tsconfig.prod.esm.tsbuildinfo +1 -0
- package/lib/tsconfig.prod.tsbuildinfo +1 -0
- package/package.json +71 -52
- package/dist/components/utils/BaseInput.d.ts +0 -5
- package/dist/context/LineItemChildrenContext.d.ts +0 -7
- package/dist/context/OrderContext.d.ts +0 -4
- package/dist/context/ShipmentChildrenContext.d.ts +0 -13
- package/dist/context/ShippingMethodChildrenContext.d.ts +0 -9
- package/dist/context/SkuListsContext.d.ts +0 -3
- package/dist/index.d.ts +0 -89
- package/dist/index.js +0 -8
- package/dist/react-components.cjs.development.js +0 -12872
- package/dist/react-components.cjs.development.js.map +0 -1
- package/dist/react-components.cjs.production.min.js +0 -2
- package/dist/react-components.cjs.production.min.js.map +0 -1
- package/dist/react-components.esm.js +0 -12778
- package/dist/react-components.esm.js.map +0 -1
- package/dist/reducers/AvailabilityReducer.d.ts +0 -40
- package/dist/reducers/OrderReducer.d.ts +0 -131
- package/dist/utils/PropsType.d.ts +0 -8
- package/dist/utils/customerOrderOptions.d.ts +0 -4
- package/dist/utils/dynamicNaming.d.ts +0 -5
- package/dist/utils/getErrorsByCollection.d.ts +0 -11
- package/dist/utils/getPrices.d.ts +0 -18
- package/dist/utils/getSkus.d.ts +0 -3
- package/dist/utils/paypalPayment.d.ts +0 -3
- package/dist/utils/shipments.d.ts +0 -5
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-components.esm.js","sources":["../src/components/utils/Parent.tsx","../node_modules/regenerator-runtime/runtime.js","../src/utils/baseReducer.ts","../src/utils/getErrorsByCollection.ts","../src/reducers/OrderReducer.ts","../src/context/OrderContext.ts","../src/context/ItemContext.ts","../src/utils/getCurrentItemKey.ts","../src/utils/childrenTypes.ts","../src/typings/index.ts","../src/typings/errors.ts","../src/config/components.ts","../src/reducers/SkuListsReducer.ts","../src/context/SkuListsContext.ts","../src/context/ExternalFunctionContext.ts","../src/components/AddToCartButton.tsx","../src/context/AddressChildrenContext.ts","../src/reducers/CustomerReducer.ts","../src/context/CustomerContext.ts","../src/context/BillingAddressContext.ts","../src/context/ShippingAddressContext.ts","../src/reducers/AddressReducer.ts","../src/context/AddressContext.ts","../src/components/utils/AddressCardsTemplate.tsx","../src/components/Address.tsx","../src/components/utils/BaseSelect.tsx","../src/context/BillingAddressFormContext.ts","../src/context/ShippingAddressFormContext.ts","../src/utils/countryStateCity.ts","../src/components/AddressCountrySelector.tsx","../src/components/AddressField.tsx","../src/components/utils/BaseInput.tsx","../src/components/AddressInput.tsx","../src/utils/isEmptyStates.ts","../src/components/AddressStateSelector.tsx","../src/context/CommerceLayerContext.ts","../src/components/AddressesContainer.tsx","../src/reducers/AvailabilityReducer.ts","../src/context/AvailabilityContext.ts","../src/context/LineItemChildrenContext.ts","../src/components/AvailabilityContainer.tsx","../src/components/AvailabilityTemplate.tsx","../src/reducers/BillingAddressReducer.ts","../src/components/BillingAddressContainer.tsx","../src/utils/localStorage.ts","../src/context/OrderStorageContext.ts","../src/components/BillingAddressForm.tsx","../src/components/CheckoutLink.tsx","../src/components/CommerceLayer.tsx","../src/components/CustomerContainer.tsx","../src/components/CustomerInput.tsx","../src/context/ShippingMethodChildrenContext.ts","../src/components/DeliveryLeadTime.tsx","../src/utils/getAmount.ts","../src/components/utils/BaseOrderPrice.tsx","../src/components/DiscountAmount.tsx","../src/reducers/GiftCardReducer.ts","../src/context/GiftCardContext.ts","../src/utils/customMessages.ts","../src/components/utils/getAllErrors.tsx","../src/context/LineItemContext.ts","../src/utils/dynamicNaming.ts","../src/reducers/PaymentMethodReducer.ts","../src/context/PaymentMethodContext.ts","../src/context/PaymentMethodChildrenContext.ts","../src/components/Errors.tsx","../src/components/ExternalFunction.tsx","../src/utils/validateFormFields.ts","../src/components/GiftCard.tsx","../src/components/GiftCardAmount.tsx","../src/components/GiftCardContainer.tsx","../src/components/GiftCardCurrencySelector.tsx","../src/components/GiftCardInput.tsx","../src/components/GiftCardOrCouponCode.tsx","../src/context/CouponAndGiftCardFormContext.ts","../src/components/GiftCardOrCouponForm.tsx","../src/components/GiftCardOrCouponInput.tsx","../src/components/GiftCardOrCouponRemoveButton.tsx","../src/components/GiftCardOrCouponSubmit.tsx","../src/reducers/ItemReducer.ts","../src/components/ItemContainer.tsx","../src/context/ShipmentChildrenContext.ts","../src/components/LineItem.tsx","../src/components/LineItemAmount.tsx","../src/components/LineItemImage.tsx","../src/components/LineItemName.tsx","../src/context/LineItemOptionChildrenContext.ts","../src/utils/isJSON.ts","../src/components/LineItemOption.tsx","../src/components/LineItemOptions.tsx","../src/components/LineItemQuantity.tsx","../src/components/LineItemRemoveLink.tsx","../src/components/LineItemSkuCode.tsx","../src/reducers/LineItemReducer.ts","../src/components/LineItemsContainer.tsx","../src/utils/getLineItemsCount.ts","../src/components/LineItemsCount.tsx","../src/components/MetadataInput.tsx","../src/components/OrderContainer.tsx","../src/components/utils/BaseField.tsx","../src/components/OrderNumber.tsx","../src/components/OrderStorage.tsx","../src/utils/getLoaderComponent.tsx","../src/components/PaymentMethod.tsx","../src/components/PaymentMethodAmount.tsx","../src/components/PaymentMethodName.tsx","../src/components/PaymentMethodPrice.tsx","../src/components/PaymentMethodRadioButton.tsx","../src/components/PaymentMethodsContainer.tsx","../src/utils/paypalPayment.ts","../src/context/PaymentSourceContext.ts","../src/utils/browserInfo.ts","../src/utils/shipments.ts","../src/utils/customerOrderOptions.ts","../src/reducers/PlaceOrderReducer.ts","../src/context/PlaceOrderContext.ts","../src/components/AdyenPayment.tsx","../src/components/utils/PaymentCardsTemplate.tsx","../src/components/gateways/AdyenGateway.tsx","../src/components/StripePayment.tsx","../src/components/gateways/StripeGateway.tsx","../src/utils/promisify.ts","../src/components/BraintreePayment.tsx","../src/components/gateways/BraintreeGateway.tsx","../src/components/PaypalPayment.tsx","../src/components/gateways/PaypalGateway.tsx","../src/components/WireTransferPayment.tsx","../src/components/gateways/WireTransferGateway.tsx","../src/components/PaymentGateway.tsx","../src/components/PaymentSource.tsx","../src/components/PaymentSourceBrandIcon.tsx","../src/components/PaymentSourceBrandName.tsx","../src/components/PaymentSourceDetail.tsx","../src/components/PaymentSourceEditButton.tsx","../src/components/PlaceOrderButton.tsx","../src/components/PlaceOrderContainer.tsx","../src/components/utils/PriceTemplate.tsx","../src/utils/getPrices.tsx","../src/reducers/PriceReducer.ts","../src/context/PricesContext.ts","../src/components/Price.tsx","../src/components/PricesContainer.tsx","../src/components/PrivacyAndTermsCheckbox.tsx","../src/components/QuantitySelector.tsx","../src/utils/addressesManager.ts","../src/components/SaveAddressesButton.tsx","../src/components/SaveCustomerButton.tsx","../src/reducers/ShipmentReducer.ts","../src/context/ShipmentContext.ts","../src/components/Shipment.tsx","../src/components/ShipmentField.tsx","../src/components/ShipmentsContainer.tsx","../src/reducers/ShippingAddressReducer.ts","../src/components/ShippingAddressContainer.tsx","../src/components/ShippingAddressForm.tsx","../src/components/ShippingAmount.tsx","../src/components/ShippingMethod.tsx","../src/components/ShippingMethodName.tsx","../src/components/ShippingMethodPrice.tsx","../src/components/ShippingMethodRadioButton.tsx","../src/components/SkuList.tsx","../src/components/SkuListsContainer.tsx","../src/context/SkuOptionChildrenContext.ts","../src/reducers/SkuOptionsReducer.ts","../src/context/SkuOptionsContext.ts","../src/components/SkuOption.tsx","../src/components/SkuOptionInput.tsx","../src/components/SkuOptionsContainer.tsx","../src/context/StockTransferChildrenContext.ts","../src/components/StockTransfer.tsx","../src/components/StockTransferField.tsx","../src/components/SubTotalAmount.tsx","../src/components/SubmitButton.tsx","../src/components/TaxesAmount.tsx","../src/components/TotalAmount.tsx","../src/components/utils/VariantTemplate.tsx","../src/utils/getSkus.ts","../src/reducers/VariantReducer.ts","../src/context/VariantsContext.ts","../src/components/VariantSelector.tsx","../src/components/VariantsContainer.tsx"],"sourcesContent":["import PropTypes, { InferProps } from 'prop-types'\nimport React, { FunctionComponent } from 'react'\n\nconst PProps = {\n children: PropTypes.func,\n}\n\nexport type ParentProps = InferProps<typeof PProps>\n\nconst Parent: FunctionComponent<ParentProps> = (props) => {\n const Child = props.children\n return Child ? <Child {...props} /> : null\n}\n\nParent.propTypes = PProps\n\nexport default Parent\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","import { BaseReducer } from '#typings'\n\nconst baseReducer: BaseReducer = (state, action, actionTypes) => {\n const actions = actionTypes\n if (actions.indexOf(action.type) !== -1) {\n const data = action.payload\n state = { ...state, ...data }\n }\n return state\n}\n\nexport default baseReducer\n","import { CodeErrorType, ResourceErrorType, BaseError } from '#typings/errors'\nimport BaseClass from '@commercelayer/js-sdk/dist/utils/BaseClass'\nimport isFunction from 'lodash/isFunction'\nimport get from 'lodash/get'\nimport isArray from 'lodash/isArray'\n\nconst ERROR_CODES: CodeErrorType[] = [\n 'FILTER_NOT_ALLOWED',\n 'FORBIDDEN',\n 'INTERNAL_SERVER_ERROR',\n 'INVALID_DATA_FORMAT',\n 'INVALID_FIELD',\n 'INVALID_FIELD_FORMAT',\n 'INVALID_FIELD_VALUE',\n 'INVALID_FILTERS_SYNTAX',\n 'INVALID_FILTER_VALUE',\n 'INVALID_INCLUDE',\n 'INVALID_LINKS_OBJECT',\n 'INVALID_PAGE_OBJECT',\n 'INVALID_PAGE_VALUE',\n 'INVALID_RESOURCE',\n 'INVALID_RESOURCE_ID',\n 'INVALID_SORT_CRITERIA',\n 'INVALID_TOKEN',\n 'KEY_NOT_INCLUDED_IN_URL',\n 'KEY_ORDER_MISMATCH',\n 'LOCKED',\n 'NOT_ACCEPTABLE',\n 'PARAM_MISSING',\n 'PARAM_NOT_ALLOWED',\n 'PAYMENT_NOT_APPROVED_FOR_EXECUTION',\n 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n 'RECORD_NOT_FOUND',\n 'RECORD_NOT_FOUND',\n 'RELATION_EXISTS',\n 'SAVE_FAILED',\n 'TYPE_MISMATCH',\n 'UNAUTHORIZED',\n 'UNSUPPORTED_MEDIA_TYPE',\n 'VALIDATION_ERROR',\n]\n\nexport type GetErrorsByCollection = <C extends BaseClass>(\n collection: C,\n resourceType: ResourceErrorType,\n options?: {\n field?: string\n id?: string\n }\n) => BaseError[]\n\nexport interface TransformCode {\n (code: string): CodeErrorType\n}\n\nconst transformCode: TransformCode = (code) => {\n let newCode = '' as CodeErrorType\n ERROR_CODES.map((c) => {\n const checkCode: string[] = []\n const words = c.split('_')\n words.map((w) => {\n const rgx = new RegExp(`(?:s|${w})`, 'g')\n const m = code.match(rgx)\n if (m && m?.length > 0) {\n checkCode.push(m[0])\n }\n })\n if (checkCode.length === words.length) {\n newCode = c\n }\n })\n return newCode\n}\n\nfunction getErrorCodeByString<C extends string>(\n text: string,\n codes: C[]\n): C | undefined {\n let code: C | undefined\n codes?.map((c) => {\n if (text.search(c) !== -1) {\n code = c\n }\n })\n return code\n}\n\nconst getErrorsByCollection: GetErrorsByCollection = (\n collection,\n resourceType,\n options\n) => {\n const errors: BaseError[] = []\n if (isFunction(collection?.errors) && !collection?.errors().empty()) {\n collection\n .errors()\n .toArray()\n .map((error) => {\n // TODO Add function to correct different field\n if (error['field'] === 'recipientEmail') error['field'] = 'email'\n const e = {\n id: options?.id || get(collection, 'id'),\n code:\n getErrorCodeByString(error['message'], ERROR_CODES) ||\n transformCode(error['code']),\n field:\n error['field'] === 'recipientEmail'\n ? 'email'\n : options?.field || error['field'],\n resource: resourceType,\n message: error['message'],\n }\n errors.push(e)\n })\n } else if (isArray(collection)) {\n collection.map((error) => {\n errors.push({\n // id: collection['id'],\n code:\n getErrorCodeByString(error['message'], ERROR_CODES) ||\n transformCode(error['code']),\n field: error['field'] === 'recipientEmail' ? 'email' : error['field'],\n resource: resourceType,\n message: error['message'],\n })\n })\n }\n return errors\n}\n\nexport default getErrorsByCollection\n","import CLayer, { Order, OrderCollection } from '@commercelayer/js-sdk'\nimport { Dispatch } from 'react'\nimport { SetLocalOrder, DeleteLocalOrder } from '#utils/localStorage'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport baseReducer from '#utils/baseReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { ItemOption, CustomLineItem } from './ItemReducer'\nimport { isEmpty, size, map } from 'lodash'\nimport { BaseMetadataObject } from '#typings/index'\nimport { BaseError } from '#typings/errors'\n\nexport interface GetOrderParams {\n clearWhenPlaced?: boolean\n config: CommerceLayerConfig\n deleteLocalOrder?: DeleteLocalOrder\n dispatch: Dispatch<OrderActions>\n id: string\n persistKey?: string\n}\n\nexport interface GetOrder {\n (params: GetOrderParams): Promise<void | OrderCollection>\n}\n\nexport interface SetOrderErrors {\n (params: { dispatch: Dispatch<OrderActions>; collection: any }): {\n success: boolean\n }\n}\n\ntype CreateOrderParams = Pick<\n AddToCartParams,\n | 'config'\n | 'dispatch'\n | 'persistKey'\n | 'state'\n | 'orderMetadata'\n | 'orderAttributes'\n | 'setLocalOrder'\n>\n\nexport interface CreateOrder {\n (params: CreateOrderParams): Promise<string>\n}\n\nexport interface AddToCartParams {\n skuCode: string\n persistKey: string\n config: CommerceLayerConfig\n dispatch: Dispatch<OrderActions>\n state: Partial<OrderState>\n skuId?: string\n quantity?: number\n option?: ItemOption\n lineItem?: CustomLineItem\n orderMetadata?: BaseMetadataObject\n orderAttributes?: Record<string, any>\n errors?: BaseError[]\n setLocalOrder?: SetLocalOrder\n}\n\nexport interface AddToCartImportParams\n extends Omit<\n AddToCartParams,\n 'skuCode' | 'skuId' | 'quantity' | 'option' | 'lineItem'\n > {\n lineItems: CustomLineItem[]\n}\n\nexport type AddToCartReturn = Promise<{\n success: boolean\n}>\n\nexport interface AddToCart {\n (params: AddToCartParams): AddToCartReturn\n}\n\nexport interface AddToCartImport {\n (params: AddToCartImportParams): AddToCartReturn\n}\n\nexport interface UnsetOrderState {\n (dispatch: Dispatch<OrderActions>): void\n}\n\nexport interface OrderPayload {\n loading?: boolean\n orderId?: string\n order?: OrderCollection\n errors?: BaseError[]\n}\n\nexport type AddToCartValues = {\n skuCode: string\n skuId?: string\n quantity?: number\n option?: ItemOption\n lineItem?: CustomLineItem\n}\n\nexport type AddToCartImportValues = Pick<AddToCartImportParams, 'lineItems'>\n\nexport type getOrderContext = (\n id: string\n) => Promise<undefined | OrderCollection>\n\nexport interface OrderState extends OrderPayload {\n loading: boolean\n orderId: string\n order?: OrderCollection\n saveBillingAddressToCustomerAddressBook: boolean\n saveShippingAddressToCustomerAddressBook: boolean\n getOrder?: getOrderContext\n createOrder?: () => Promise<string>\n addToCart: (values: AddToCartValues) => AddToCartReturn\n setOrderErrors: (collection: any) => { success: boolean }\n setGiftCardOrCouponCode: SetGiftCardOrCouponCode\n removeGiftCardOrCouponCode: RemoveGiftCardOrCouponCode\n saveAddressToCustomerAddressBook: (\n type: 'BillingAddress' | 'ShippingAddress',\n value: boolean\n ) => void\n}\n\nexport interface OrderActions {\n type: OrderActionType\n payload: OrderPayload\n}\n\nexport type OrderActionType =\n | 'setLoading'\n | 'setOrderId'\n | 'setOrder'\n | 'setSingleQuantity'\n | 'setCurrentSkuCodes'\n | 'setCurrentSkuPrices'\n | 'setCurrentItem'\n | 'setErrors'\n | 'setSaveAddressToCustomerAddressBook'\n | 'setGiftCardOrCouponCode'\n\nconst actionType: OrderActionType[] = [\n 'setLoading',\n 'setOrderId',\n 'setOrder',\n 'setSingleQuantity',\n 'setCurrentSkuCodes',\n 'setCurrentSkuPrices',\n 'setErrors',\n 'setCurrentItem',\n 'setSaveAddressToCustomerAddressBook',\n]\n\nexport const createOrder: CreateOrder = async (params) => {\n const {\n persistKey,\n state,\n dispatch,\n config,\n orderMetadata: metadata,\n orderAttributes = {},\n setLocalOrder,\n } = params\n if (state.orderId) return state.orderId\n const o = await CLayer.Order.withCredentials(config).create({\n metadata,\n ...orderAttributes,\n })\n if (!o.id) return ''\n dispatch({\n type: 'setOrderId',\n payload: {\n orderId: o.id,\n },\n })\n dispatch({\n type: 'setOrder',\n payload: {\n order: o,\n },\n })\n persistKey && setLocalOrder && setLocalOrder(persistKey, o.id)\n return o.id\n}\n\nexport const getApiOrder: GetOrder = async (params) => {\n const {\n id,\n dispatch,\n config,\n clearWhenPlaced,\n persistKey,\n deleteLocalOrder,\n } = params\n try {\n const o = await Order.withCredentials(config).find(id)\n if (o)\n if (\n (clearWhenPlaced && o.status === 'placed') ||\n o.status === 'approved' ||\n o.status === 'cancelled'\n ) {\n persistKey && deleteLocalOrder && deleteLocalOrder(persistKey)\n dispatch({\n type: 'setOrder',\n payload: {\n order: undefined,\n orderId: '',\n },\n })\n } else {\n dispatch({\n type: 'setOrder',\n payload: {\n order: o,\n },\n })\n }\n return o\n } catch (col) {\n persistKey && deleteLocalOrder && deleteLocalOrder(persistKey)\n dispatch({\n type: 'setOrder',\n payload: {\n order: undefined,\n orderId: '',\n },\n })\n return\n }\n}\n\nexport const setOrder = (\n order: OrderCollection,\n dispatch: Dispatch<OrderActions>\n): void => {\n dispatch({\n type: 'setOrder',\n payload: {\n order,\n },\n })\n}\n\nexport const addToCart: AddToCart = async (params) => {\n const {\n skuCode,\n skuId,\n quantity,\n option,\n config,\n dispatch,\n lineItem,\n errors,\n } = params\n try {\n const id = await createOrder(params)\n const order = CLayer.Order.build({ id })\n const name = lineItem?.name\n const imageUrl = lineItem?.imageUrl\n const attrs: Record<string, any> = {\n order,\n skuCode,\n name,\n imageUrl,\n quantity: quantity || 1,\n _updateQuantity: 1,\n }\n if (skuId) {\n attrs['item'] = CLayer.Sku.build({ id: skuId })\n }\n const lineItemResource = await CLayer.LineItem.withCredentials(\n config\n ).create(attrs)\n if (!isEmpty(option)) {\n let c = 0\n map(option, async (opt) => {\n const { options, skuOptionId } = opt\n const skuOption = CLayer.SkuOption.build({ id: skuOptionId })\n await CLayer.LineItemOption.withCredentials(config).create({\n quantity: 1,\n options,\n lineItem: lineItemResource,\n skuOption,\n })\n c += 1\n if (c === size(option)) {\n await getApiOrder({ id, ...params })\n }\n })\n } else {\n await getApiOrder({ id, ...params })\n }\n if (!isEmpty(errors)) {\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n }\n return { success: true }\n } catch (col: any) {\n const errors = getErrorsByCollection(col, 'order')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n return { success: false }\n }\n}\n\nexport const unsetOrderState: UnsetOrderState = (dispatch) => {\n dispatch({\n type: 'setOrderId',\n payload: {\n orderId: '',\n },\n })\n dispatch({\n type: 'setOrder',\n payload: {\n order: undefined,\n },\n })\n}\n\nexport const setOrderErrors: SetOrderErrors = ({ dispatch, collection }) => {\n const errors = getErrorsByCollection(collection, 'order')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n return { success: false }\n}\n\ntype SaveAddressToCustomerAddressBook = (params: {\n dispatch: Dispatch<OrderActions>\n type: 'BillingAddress' | 'ShippingAddress'\n value: boolean\n}) => void\n\nexport const saveAddressToCustomerAddressBook: SaveAddressToCustomerAddressBook =\n ({ type, value, dispatch }) => {\n const k = `save${type}ToCustomerBook`\n const v = `${value}`\n localStorage.setItem(k, v)\n dispatch({\n type: 'setSaveAddressToCustomerAddressBook',\n payload: {\n [k]: v,\n },\n })\n }\n\ntype SetGiftCardOrCouponCode = (args: {\n code: string\n dispatch?: Dispatch<OrderActions>\n config?: CommerceLayerConfig\n order?: OrderCollection\n}) => Promise<{ success: boolean }>\n\nexport const setGiftCardOrCouponCode: SetGiftCardOrCouponCode = async ({\n code,\n dispatch,\n config,\n order,\n}) => {\n try {\n if (config && order && code && dispatch) {\n const o = await Order.build({ id: order.id })\n .withCredentials(config)\n .update({\n giftCardOrCouponCode: code,\n })\n if (!o.errors().empty()) throw o\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n getApiOrder({ id: order.id, config, dispatch })\n return { success: true }\n }\n return { success: false }\n } catch (e) {\n dispatch && setOrderErrors({ collection: e, dispatch })\n return { success: false }\n }\n}\n\nexport type CodeType = 'coupon' | 'giftCard'\nexport type OrderCodeType = `${CodeType}Code`\n\ntype RemoveGiftCardOrCouponCode = (args: {\n codeType: OrderCodeType\n dispatch?: Dispatch<OrderActions>\n config?: CommerceLayerConfig\n order?: OrderCollection\n}) => Promise<{ success: boolean }>\n\nexport const removeGiftCardOrCouponCode: RemoveGiftCardOrCouponCode = async ({\n codeType,\n dispatch,\n config,\n order,\n}) => {\n try {\n if (config && order && dispatch) {\n const o = await Order.build({ id: order.id })\n .withCredentials(config)\n .update({\n [codeType]: '',\n })\n if (!o.errors().empty()) throw o\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n getApiOrder({ id: order.id, config, dispatch })\n return { success: true }\n }\n return { success: false }\n } catch (e) {\n dispatch && setOrderErrors({ collection: e, dispatch })\n return { success: false }\n }\n}\n\nexport const orderInitialState: Partial<OrderState> = {\n loading: false,\n orderId: '',\n order: undefined,\n errors: [],\n}\n\nconst orderReducer = (\n state: Partial<OrderState>,\n reducer: OrderActions\n): Partial<OrderState> =>\n baseReducer<Partial<OrderState>, OrderActions, OrderActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default orderReducer\n","import { createContext } from 'react'\nimport { orderInitialState, OrderState } from '#reducers/OrderReducer'\n\nconst OrderContext = createContext<OrderState>(orderInitialState as OrderState)\n\nexport default OrderContext\n","import { createContext } from 'react'\nimport {\n ItemState,\n Items,\n ItemQuantity,\n ItemOptions,\n ItemPrices,\n CustomLineItems,\n} from '#reducers/ItemReducer'\n\nexport interface InitItemContext extends Partial<ItemState> {\n item: Items\n items: Items\n quantity: ItemQuantity\n option: ItemOptions\n prices: ItemPrices\n lineItems: CustomLineItems\n}\n\nexport const initialItemContext: InitItemContext = {\n item: {},\n items: {},\n quantity: {},\n option: {},\n prices: {},\n lineItems: {},\n}\n\nconst ItemContext = createContext<InitItemContext>(initialItemContext)\n\nexport default ItemContext\n","import { first, keys } from 'lodash'\nimport { Items } from '#reducers/ItemReducer'\n\nexport interface GetCurrentItemKey {\n (item: Items): string\n}\n\nconst getCurrentItemKey: GetCurrentItemKey = (item) => {\n return first(keys(item)) || ''\n}\n\nexport default getCurrentItemKey\n","import { isValidElement, Children, ReactNode } from 'react'\nimport { isEmpty, isFunction, has, get } from 'lodash'\nimport { Requireable } from 'prop-types'\nimport components from '#config/components'\n\nexport interface CheckChildrenTypes {\n (\n props: { [key: string]: any },\n propName: string,\n componentName: string,\n location: string,\n propFullName: string\n ): Error | null\n}\n\nconst checkChildrenTypes: CheckChildrenTypes = (\n props,\n propName,\n componentName\n) => {\n let error: Error | null = null\n const children = props[propName]\n const cpName = componentName.replace('CL', '')\n if (\n ((isEmpty(children) && typeof children !== 'function') ||\n (typeof children === 'function' && !children)) &&\n props['isRequired']\n ) {\n error = new Error(\n `The prop '${propName}' is marked as required in '${cpName}', but its value is '${children}'.`\n )\n }\n Children.map(children, (c): any => {\n if (error) return error\n const type = c.type\n const itemTypes = get(components, `${cpName}.permittedChildren`)\n const errorMsg = `Invalid prop '${propName}' supplied to ${cpName}. Only components ${itemTypes.join(\n ', '\n )} are allowed.`\n if (isFunction(type) && has(type, 'displayName')) {\n const displayName: string = get(type, 'displayName')\n const childComponentName = type.name\n if (displayName && displayName === `${childComponentName}`) {\n if (!itemTypes.includes(childComponentName)) {\n error = new Error(errorMsg)\n }\n }\n }\n if (!isValidElement(c)) {\n error = new Error(errorMsg)\n }\n })\n return error\n}\n\nconst childrenTypes: any = checkChildrenTypes\nchildrenTypes['isRequired'] = (\n props: { [key: string]: any },\n propName: string,\n componentName: string,\n location: string,\n propFullName: string\n): Error | null | Element[] =>\n checkChildrenTypes(\n { ...props, isRequired: true },\n propName,\n componentName,\n location,\n propFullName\n )\n\n// NOTE change in the future (now is general for typescript)\nexport default childrenTypes as Requireable<ReactNode>\n","import { Dispatch, ReactNode, RefObject } from 'react'\nimport PropTypes, { InferProps } from 'prop-types'\nimport { BaseError } from './errors'\n\nexport const BC = {\n id: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n name: PropTypes.string,\n}\n\nexport const PTLoader = PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n])\n\nexport const BaseSelectComponentPropTypes = {\n children: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n selected: PropTypes.bool,\n }).isRequired\n ).isRequired,\n placeholder: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n }),\n value: PropTypes.string,\n name: PropTypes.string.isRequired,\n}\n\nexport type SelectPlaceholder = Option\n\ntype BaseSelectChildrenComponentProps = Omit<\n BaseSelectComponentProps,\n 'children'\n>\n\ntype Option = {\n label: string\n value: string | number\n disabled?: boolean\n}\n\nexport interface BaseSelectComponentProps {\n children?: (props: BaseSelectChildrenComponentProps) => ReactNode\n options: Option[]\n placeholder?: Option\n value?: string\n className?: string\n required?: boolean\n name: string\n}\n\nexport const BaseInputComponentPropTypes = {\n children: PropTypes.func,\n name: PropTypes.string.isRequired,\n type: PropTypes.oneOf<BaseInputType>([\n 'text',\n 'email',\n 'number',\n 'date',\n 'checkbox',\n 'textarea',\n ]).isRequired,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n}\n\ntype BaseInputChildrenComponentProps = Omit<\n BaseInputComponentProps,\n 'children'\n> & {\n handleChange: (\n event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => void\n}\n\nexport interface BaseInputComponentProps {\n ref?: () => RefObject<any>\n children?: (props: BaseInputChildrenComponentProps) => ReactNode\n name: string\n onChange?: (\n event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => void\n placeholder?: string\n}\n\nexport type LineItemType =\n | 'gift_cards'\n | 'paymentMethods'\n | 'promotions'\n | 'shipments'\n | 'skus'\n\nexport type GiftCardInputName =\n | 'balanceCents'\n | 'balanceMaxCents'\n | 'singleUse'\n | 'rechargeable'\n | 'imageUrl'\n | 'expiresAt'\n | 'referenceOrigin'\n | 'email'\n | 'firstName'\n | 'lastName'\n | 'reference'\n\nexport type AddressInputName =\n | 'billing_address_city'\n | 'billing_address_company'\n | 'billing_address_first_name'\n | 'billing_address_email'\n | 'billing_address_last_name'\n | 'billing_address_line_1'\n | 'billing_address_line_2'\n | 'billing_address_phone'\n | 'billing_address_state_code'\n | 'billing_address_zip_code'\n | 'billing_address_billing_info'\n | 'billing_address_save_to_customer_book'\n | 'shipping_address_city'\n | 'shipping_address_company'\n | 'shipping_address_email'\n | 'shipping_address_first_name'\n | 'shipping_address_last_name'\n | 'shipping_address_line_1'\n | 'shipping_address_line_2'\n | 'shipping_address_phone'\n | 'shipping_address_state_code'\n | 'shipping_address_zip_code'\n | 'shipping_address_save_to_customer_book'\n\nexport type AddressCountrySelectName =\n | 'billing_address_country_code'\n | 'shipping_address_country_code'\n\nexport type AddressStateSelectName =\n | 'billing_address_state_code'\n | 'shipping_address_state_code'\n\nexport type BaseInputType =\n | 'checkbox'\n | 'date'\n | 'email'\n | 'number'\n | 'tel'\n | 'text'\n | 'textarea'\n\nexport type LoaderType = string | ReactNode\n\nexport const BMObject = PropTypes.objectOf(PropTypes.string)\nexport type BaseMetadataObject = {\n [key: string]: string | undefined | null\n}\n\nexport type TimeFormat = 'days' | 'hours'\n\nexport type BaseComponent = InferProps<typeof BC>\n\nexport interface BaseAction<A = string> {\n type: A\n payload: Record<string, any>\n}\n\nexport interface BaseState {\n [key: string]: any\n errors?: BaseError[]\n}\n\nexport type BaseActionType<T = string> = T[]\n\nexport interface BFSetStateContainer<T> {\n <P extends T>(param: P): void\n}\n\nexport interface BaseReducer {\n <S extends BaseState, A extends BaseAction, T extends BaseActionType>(\n state: S,\n action: A,\n type: T\n ): S\n}\n\nexport interface BaseUnsetState<A> {\n (dispatch: Dispatch<A>): void\n}\n\nexport interface BaseMetadata {\n [key: string]: string | undefined | null\n}\n\nexport type BaseFormatPrice = 'formatted' | 'cents' | 'float'\n\nexport const baseOrderPricePropTypes = {\n base: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n children: PropTypes.func,\n format: PropTypes.oneOf<BaseFormatPrice>(['formatted', 'cents', 'float']),\n ...BC,\n}\n\nexport const baseOrderComponentPricePropTypes = {\n children: baseOrderPricePropTypes['children'],\n format: baseOrderPricePropTypes['format'],\n ...BC,\n}\n\nexport type BasePriceType = 'total' | 'option' | 'unit'\nexport type BaseSelectorType = 'select' | 'radio'\n\nexport type BaseAmountComponentChildren = Omit<BaseAmountComponent, 'children'>\n\nexport type BaseAmountComponent = {\n children?: (props: BaseAmountComponentChildren) => ReactNode\n format?: BaseFormatPrice\n price?: string\n priceCents?: number\n labelFree?: string\n} & JSX.IntrinsicElements['span']\n\nexport interface FunctionChildren<P = Record<string, any>> {\n (props: P): ReactNode\n}\n","import PropTypes from 'prop-types'\nimport { FunctionChildren } from './index'\n\nexport type CodeErrorType =\n | 'EMPTY_ERROR'\n | 'FILTER_NOT_ALLOWED'\n | 'FORBIDDEN'\n | 'INTERNAL_SERVER_ERROR'\n | 'INVALID_DATA_FORMAT'\n | 'INVALID_FIELD'\n | 'INVALID_FIELD_FORMAT'\n | 'INVALID_FIELD_VALUE'\n | 'INVALID_FILTERS_SYNTAX'\n | 'INVALID_FILTER_VALUE'\n | 'INVALID_INCLUDE'\n | 'INVALID_LINKS_OBJECT'\n | 'INVALID_PAGE_OBJECT'\n | 'INVALID_PAGE_VALUE'\n | 'INVALID_RESOURCE'\n | 'INVALID_RESOURCE_ID'\n | 'INVALID_SORT_CRITERIA'\n | 'INVALID_TOKEN'\n | 'KEY_NOT_INCLUDED_IN_URL'\n | 'KEY_ORDER_MISMATCH'\n | 'LOCKED'\n | 'NOT_ACCEPTABLE'\n | 'PARAM_MISSING'\n | 'PARAM_NOT_ALLOWED'\n | 'PAYMENT_NOT_APPROVED_FOR_EXECUTION'\n | 'PAYMENT_INTENT_AUTHENTICATION_FAILURE'\n | 'RECORD_NOT_FOUND'\n | 'RECORD_NOT_FOUND'\n | 'RELATION_EXISTS'\n | 'SAVE_FAILED'\n | 'TYPE_MISMATCH'\n | 'UNAUTHORIZED'\n | 'UNSUPPORTED_MEDIA_TYPE'\n | 'VALIDATION_ERROR'\n\nexport type ResourceErrorType =\n | 'address'\n | 'billingAddress'\n | 'giftCard'\n | 'giftCardOrCouponCode'\n | 'lineItem'\n | 'order'\n | 'paymentMethod'\n | 'price'\n | 'shippingAddress'\n | 'skuOption'\n | 'variant'\n\nconst CEType: CodeErrorType[] = [\n 'EMPTY_ERROR',\n 'FILTER_NOT_ALLOWED',\n 'FORBIDDEN',\n 'INTERNAL_SERVER_ERROR',\n 'INVALID_DATA_FORMAT',\n 'INVALID_FIELD',\n 'INVALID_FIELD_FORMAT',\n 'INVALID_FIELD_VALUE',\n 'INVALID_FILTERS_SYNTAX',\n 'INVALID_FILTER_VALUE',\n 'INVALID_INCLUDE',\n 'INVALID_LINKS_OBJECT',\n 'INVALID_PAGE_OBJECT',\n 'INVALID_PAGE_VALUE',\n 'INVALID_RESOURCE',\n 'INVALID_RESOURCE_ID',\n 'INVALID_SORT_CRITERIA',\n 'INVALID_TOKEN',\n 'KEY_NOT_INCLUDED_IN_URL',\n 'KEY_ORDER_MISMATCH',\n 'LOCKED',\n 'NOT_ACCEPTABLE',\n 'PARAM_MISSING',\n 'PARAM_NOT_ALLOWED',\n 'RECORD_NOT_FOUND',\n 'RECORD_NOT_FOUND',\n 'RELATION_EXISTS',\n 'SAVE_FAILED',\n 'TYPE_MISMATCH',\n 'UNAUTHORIZED',\n 'UNSUPPORTED_MEDIA_TYPE',\n 'VALIDATION_ERROR',\n]\n\nexport interface BaseError {\n code: CodeErrorType\n message: string\n resource?: ResourceErrorType | null\n field?: string\n id?: string\n}\n\nexport const REType: ResourceErrorType[] = [\n 'giftCard',\n 'lineItem',\n 'order',\n 'price',\n 'skuOption',\n 'variant',\n]\n\nexport const BaseErrorObject = PropTypes.shape({\n code: PropTypes.oneOf(CEType).isRequired,\n message: PropTypes.string.isRequired,\n resource: PropTypes.oneOf(REType),\n field: PropTypes.string,\n id: PropTypes.string,\n})\n\nexport const ErrorPropTypes = {\n resource: PropTypes.oneOf<ResourceErrorType>([\n 'billingAddress',\n 'giftCard',\n 'lineItem',\n 'order',\n 'paymentMethod',\n 'price',\n 'shippingAddress',\n 'skuOption',\n 'variant',\n ]).isRequired,\n children: PropTypes.func,\n field: PropTypes.string,\n // messages: PropTypes.arrayOf(BaseErrorObject.isRequired),\n}\n\ntype ErrorChildrenComponentProps = FunctionChildren<\n Omit<ErrorComponentProps, 'children'> & { errors: string[] }\n>\n\nexport interface ErrorComponentProps {\n resource: ResourceErrorType\n children?: ErrorChildrenComponentProps\n field?: string\n messages?: {\n code: CodeErrorType\n message: string\n resource?: ResourceErrorType\n field?: string\n id?: string\n }[]\n}\n","import PropTypes from 'prop-types'\nimport childrenTypes from '#utils/childrenTypes'\nimport {\n TimeFormat,\n BaseInputType,\n GiftCardInputName,\n baseOrderComponentPricePropTypes,\n LineItemType,\n BasePriceType,\n BaseFormatPrice,\n PTLoader,\n BMObject,\n BaseSelectorType,\n AddressInputName,\n AddressCountrySelectName,\n AddressStateSelectName,\n} from '#typings'\nimport { ErrorPropTypes } from '#typings/errors'\nimport { BaseInputComponentPropTypes } from '#typings/index'\nimport { DeliveryLeadTimeField } from '../components/DeliveryLeadTime'\nimport { StockTransferFieldType } from '#components/StockTransferField'\nimport { PaymentSourceDetailType } from '#components/PaymentSourceDetail'\nimport { CodeType } from '#reducers/OrderReducer'\nimport { ShipmentAttribute } from '#components/ShipmentField'\n\nconst components = {\n Address: {\n permittedChildren: ['AddressField', 'ReactNode'],\n displayName: 'Address',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n AddressCountrySelector: {\n displayName: 'AddressCountrySelector',\n propTypes: {\n children: PropTypes.func,\n placeholder: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n }),\n value: PropTypes.string,\n name: PropTypes.oneOf<AddressCountrySelectName>([\n 'billing_address_country_code',\n 'shipping_address_country_code',\n ]).isRequired,\n required: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n AddressStateSelector: {\n displayName: 'AddressStateSelector',\n propTypes: {\n children: PropTypes.func,\n placeholder: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n }),\n value: PropTypes.string,\n name: PropTypes.oneOf<AddressStateSelectName>([\n 'billing_address_state_code',\n 'shipping_address_state_code',\n ]).isRequired,\n required: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n AddressField: {\n displayName: 'AddressField',\n propTypes: {\n children: PropTypes.func,\n },\n },\n AddressInput: {\n displayName: 'AddressInput',\n propTypes: {\n children: PropTypes.func,\n name: PropTypes.oneOf<AddressInputName>([\n 'billing_address_city',\n 'billing_address_company',\n 'billing_address_email',\n 'billing_address_first_name',\n 'billing_address_last_name',\n 'billing_address_line_1',\n 'billing_address_line_2',\n 'billing_address_phone',\n 'billing_address_state_code',\n 'billing_address_zip_code',\n 'billing_address_billing_info',\n 'billing_address_save_to_customer_book',\n 'shipping_address_city',\n 'shipping_address_company',\n 'shipping_address_email',\n 'shipping_address_first_name',\n 'shipping_address_last_name',\n 'shipping_address_line_1',\n 'shipping_address_line_2',\n 'shipping_address_phone',\n 'shipping_address_state_code',\n 'shipping_address_zip_code',\n 'shipping_address_save_to_customer_book',\n ]).isRequired,\n type: PropTypes.oneOf<BaseInputType>([\n 'checkbox',\n 'date',\n 'email',\n 'number',\n 'tel',\n 'text',\n 'textarea',\n ]).isRequired,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n AddToCartButton: {\n displayName: 'AddToCartButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n skuCode: PropTypes.string,\n disabled: PropTypes.bool,\n lineItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n }),\n },\n defaultProps: {\n label: 'Add to cart',\n },\n },\n AddressesContainer: {\n displayName: 'AddressesContainer',\n permittedChildren: [\n 'BillingAddressForm',\n 'BillingAddressContainer',\n 'ShippingAddressForm',\n 'ShippingAddressContainer',\n 'SaveAddressesButton',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n shipToDifferentAddress: PropTypes.bool,\n },\n },\n AvailabilityContainer: {\n displayName: 'AvailabilityContainer',\n permittedChildren: ['AvailabilityTemplate', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n },\n },\n AvailabilityTemplate: {\n displayName: 'AvailabilityTemplate',\n propTypes: {\n timeFormat: PropTypes.oneOf<TimeFormat>(['days', 'hours']),\n showShippingMethodName: PropTypes.bool,\n children: PropTypes.func,\n },\n defaultProps: {\n timeFormat: 'days',\n showShippingMethodName: false,\n },\n },\n BillingAddressContainer: {\n permittedChildren: ['Address', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n BillingAddressForm: {\n permittedChildren: ['AddressInput', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n CheckoutLink: {\n displayName: 'CheckoutLink',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.string,\n },\n defaultProps: {\n label: 'Checkout',\n },\n },\n CommerceLayer: {\n permittedChildren: [\n 'OrderContainer',\n 'OrderStorage',\n 'PricesContainer',\n 'GiftCardContainer',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n accessToken: PropTypes.string.isRequired,\n endpoint: PropTypes.string.isRequired,\n },\n },\n CustomerContainer: {\n displayName: 'CustomerContainer',\n permittedChildren: [\n 'CustomerInput',\n 'SaveCustomerButton',\n 'AddressesContainer',\n 'PaymentMethodsContainer',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n isGuest: PropTypes.bool,\n },\n },\n CustomerInput: {\n displayName: 'CustomerInput',\n propTypes: {\n children: PropTypes.func,\n name: PropTypes.oneOf(['customerEmail']),\n type: PropTypes.oneOf(['email']),\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n saveOnBlur: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n DeliveryLeadTime: {\n displayName: 'DeliveryLeadTime',\n propTypes: {\n type: PropTypes.oneOf<DeliveryLeadTimeField>([\n 'maxDays',\n 'maxHours',\n 'minDays',\n 'minHours',\n ]).isRequired,\n children: PropTypes.func,\n },\n },\n DiscountAmount: {\n displayName: 'DiscountAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n Errors: {\n displayName: 'Errors',\n propTypes: ErrorPropTypes,\n defaultProps: {\n messages: [],\n field: 'base',\n },\n },\n ExternalFunction: {\n displayName: 'ExternalFunction',\n permittedChildren: ['AddToCartButton', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n url: PropTypes.string.isRequired,\n },\n },\n GiftCard: {\n permittedChildren: [\n 'GiftCardCurrencySelector',\n 'GiftCardInput',\n 'Errors',\n 'MetadataInput',\n 'SubmitButton',\n 'ReactNode',\n ],\n displayName: 'GiftCard',\n propTypes: {\n children: childrenTypes.isRequired,\n onSubmit: PropTypes.func,\n },\n defaultProps: {\n onSubmit: undefined,\n },\n },\n GiftCardAmount: {\n displayName: 'GiftCardAmount',\n propTypes: baseOrderComponentPricePropTypes,\n },\n GiftCardContainer: {\n permittedChildren: ['GiftCard', 'Errors', 'ReactNode'],\n displayName: 'GiftCardContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n GiftCardCurrencySelector: {\n displayName: 'GiftCardCurrencySelector',\n propTypes: {\n children: PropTypes.func,\n placeholder: PropTypes.shape({\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n label: PropTypes.string.isRequired,\n }),\n value: PropTypes.string,\n required: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n GiftCardInput: {\n displayName: 'GiftCardInput',\n propTypes: {\n type: PropTypes.oneOf<BaseInputType>([\n 'text',\n 'email',\n 'number',\n 'date',\n 'checkbox',\n ]).isRequired,\n name: PropTypes.oneOf<GiftCardInputName>([\n 'balanceCents',\n 'balanceMaxCents',\n 'singleUse',\n 'rechargeable',\n 'imageUrl',\n 'expiresAt',\n 'referenceOrigin',\n 'email',\n 'firstName',\n 'lastName',\n 'reference',\n ]).isRequired,\n children: PropTypes.func,\n placeholder: PropTypes.string,\n },\n },\n GiftCardOrCouponForm: {\n permittedChildren: [\n 'GiftCardOrCouponInput',\n 'GiftCardOrCouponSubmit',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n GiftCardOrCouponInput: {\n displayName: 'GiftCardOrCouponInput',\n propTypes: {\n children: PropTypes.func,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n },\n },\n GiftCardOrCouponSubmit: {\n displayName: 'GiftCardOrCouponSubmit',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n },\n },\n GiftCardOrCouponCode: {\n displayName: 'GiftCardOrCouponCode',\n propTypes: {\n children: PropTypes.func,\n type: PropTypes.oneOf<CodeType>(['coupon', 'giftCard']),\n },\n },\n GiftCardOrCouponRemoveButton: {\n displayName: 'GiftCardOrCouponRemoveButton',\n propTypes: {\n children: PropTypes.func,\n type: PropTypes.oneOf<CodeType>(['coupon', 'giftCard']),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n },\n },\n ItemContainer: {\n permittedChildren: [\n 'PricesContainer',\n 'VariantsContainer',\n 'SkuOptionContainer',\n 'QuantitySelector',\n 'AddToCartButton',\n 'AvailabilityContainer',\n 'SkuListsContainer',\n 'ReactNode',\n ],\n displayName: 'ItemContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n lineItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n }),\n },\n },\n LineItem: {\n permittedChildren: [\n 'AvailabilityContainer',\n 'LineItemImage',\n 'LineItemName',\n 'LineItemOptions',\n 'LineItemQuantity',\n 'LineItemAmount',\n 'LineItemRemoveLink',\n 'StockTransfer',\n 'Errors',\n 'ReactNode',\n ],\n displayName: 'LineItem',\n propTypes: {\n children: childrenTypes.isRequired,\n type: PropTypes.oneOf<LineItemType>([\n 'skus',\n 'gift_cards',\n 'shipments',\n 'paymentMethods',\n 'promotions',\n ]),\n },\n defaultProps: {\n type: 'skus',\n },\n },\n LineItemAmount: {\n displayName: 'LineItemAmount',\n propTypes: {\n ...baseOrderComponentPricePropTypes,\n type: PropTypes.oneOf<BasePriceType>(['total', 'unit', 'option']),\n },\n defaultProps: {\n format: 'formatted',\n type: 'total',\n },\n },\n LineItemImage: {\n displayName: 'LineItemImage',\n propTypes: {\n width: PropTypes.number,\n children: PropTypes.func,\n },\n },\n LineItemName: {\n displayName: 'LineItemName',\n propTypes: {\n children: PropTypes.func,\n },\n },\n LineItemSkuCode: {\n displayName: 'LineItemSkuCode',\n propTypes: {\n children: PropTypes.func,\n },\n },\n LineItemOption: {\n displayName: 'LineItemOption',\n propTypes: {\n name: PropTypes.string,\n children: PropTypes.func,\n valueClassName: PropTypes.string,\n className: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.object,\n },\n },\n LineItemOptions: {\n permittedChildren: ['LineItemOption', 'ReactNode'],\n displayName: 'LineItemOptions',\n propTypes: {\n children: childrenTypes.isRequired,\n title: PropTypes.string,\n showName: PropTypes.bool,\n skuOptionId: PropTypes.string,\n },\n },\n LineItemQuantity: {\n displayName: 'LineItemQuantity',\n propTypes: {\n children: PropTypes.func,\n max: PropTypes.number,\n disabled: PropTypes.bool,\n readonly: PropTypes.bool,\n },\n defaultProps: {\n max: 50,\n },\n },\n LineItemRemoveLink: {\n displayName: 'LineItemRemoveLink',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.string,\n },\n defaultProps: {\n label: 'Remove',\n },\n },\n LineItemsContainer: {\n permittedChildren: ['LineItemsCount', 'LineItem', 'ReactNode'],\n displayName: 'LineItemsContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n filters: PropTypes.object,\n loader: PTLoader,\n },\n defaultProps: {\n filters: {},\n loader: 'Loading...',\n },\n },\n LineItemsCount: {\n displayName: 'LineItemsCount',\n propTypes: {\n children: PropTypes.func,\n id: PropTypes.string,\n className: PropTypes.string,\n name: PropTypes.string,\n style: PropTypes.object,\n },\n },\n MetadataInput: {\n displayName: 'MetadataInput',\n propTypes: BaseInputComponentPropTypes,\n },\n OrderContainer: {\n permittedChildren: [\n 'AddressesContainer',\n 'CustomerContainer',\n 'ItemContainer',\n 'LineItemsContainer',\n 'SubTotalAmount',\n 'DiscountAmount',\n 'ShippingAmount',\n 'TaxesAmount',\n 'GiftCardAmount',\n 'TotalAmount',\n 'CheckoutLink',\n 'GiftCardContainer',\n 'ShipmentsContainer',\n 'PaymentMethodsContainer',\n 'PaymentMethodAmount',\n 'GiftCardOrCouponForm',\n 'GiftCardOrCouponCode',\n 'GiftCardOrCouponRemoveButton',\n 'Errors',\n 'OrderNumber',\n 'ReactNode',\n ],\n displayName: 'OrderContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n orderId: PropTypes.string,\n metadata: BMObject,\n attributes: PropTypes.object,\n },\n defaultProps: {\n metadata: {},\n },\n },\n OrderNumber: {\n displayName: 'OrderNumber',\n propTypes: {\n className: PropTypes.string,\n },\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n OrderStorage: {\n permittedChildren: ['OrderContainer', 'ReactNode'],\n displayName: 'OrderStorage',\n propTypes: {\n children: childrenTypes.isRequired,\n clearWhenPlaced: PropTypes.bool,\n persistKey: PropTypes.string.isRequired,\n },\n },\n PaymentMethod: {\n permittedChildren: [\n 'PaymentMethodName',\n 'PaymentMethodRadioButton',\n 'PaymentMethodPrice',\n 'PaymentSource',\n 'ReactNode',\n 'Errors',\n ],\n displayName: 'PaymentMethod',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n PaymentMethodAmount: {\n displayName: 'PaymentMethodAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n PaymentMethodName: {\n displayName: 'PaymentMethodName',\n propTypes: {\n children: PropTypes.func,\n },\n },\n PaymentMethodPrice: {\n displayName: 'PaymentMethodPrice',\n propTypes: {\n ...baseOrderComponentPricePropTypes,\n type: PropTypes.oneOf<'amount'>(['amount']),\n },\n },\n PaymentMethodRadioButton: {\n displayName: 'PaymentMethodRadioButton',\n propTypes: {\n children: PropTypes.func,\n },\n },\n PaymentMethodsContainer: {\n displayName: 'PaymentMethodsContainer',\n permittedChildren: ['PaymentSource', 'ReactNode', 'PlaceOrderContainer'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n PaymentSource: {\n displayName: 'PaymentSource',\n permittedChildren: [\n 'PaymentSourceBrandIcon',\n 'PaymentSourceBrandName',\n 'PaymentSourceEditButton',\n 'PaymentSourceDetail',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes,\n readonly: PropTypes.bool,\n },\n },\n PaymentSourceBrandIcon: {\n displayName: 'PaymentSourceBrandIcon',\n propTypes: {\n children: PropTypes.func,\n width: PropTypes.number,\n height: PropTypes.number,\n src: PropTypes.string,\n className: PropTypes.string,\n },\n },\n PaymentSourceBrandName: {\n displayName: 'PaymentSourceBrandName',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.string,\n },\n },\n PaymentSourceEditButton: {\n displayName: 'PaymentSourceEditButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n },\n },\n PaymentSourceDetail: {\n displayName: 'PaymentSourceDetail',\n propTypes: {\n type: PropTypes.oneOf<PaymentSourceDetailType>([\n 'last4',\n 'expYear',\n 'expMonth',\n ]).isRequired,\n },\n },\n PlaceOrderButton: {\n displayName: 'PlaceOrderButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n },\n defaultProps: {\n label: 'Place order',\n },\n },\n PlaceOrderContainer: {\n displayName: 'PlaceOrderContainer',\n permittedChildren: [\n 'PaymentMethod',\n 'PlaceOrderButton',\n 'PrivacyAndTermsCheckbox',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n Price: {\n displayName: 'Price',\n propTypes: {\n children: PropTypes.func,\n compareClassName: PropTypes.string,\n skuCode: PropTypes.string,\n showCompare: PropTypes.bool,\n },\n defaultProps: {\n skuCode: '',\n },\n },\n PricesContainer: {\n permittedChildren: ['Price', 'ReactNode'],\n displayName: 'PricesContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n loader: PTLoader,\n perPage: PropTypes.number,\n filters: PropTypes.object,\n },\n defaultProps: {\n perPage: 10,\n filters: {},\n loader: 'Loading...',\n skuCode: '',\n },\n },\n PrivacyAndTermsCheckbox: {\n displayName: 'PrivacyAndTermsCheckbox',\n propTypes: {\n children: PropTypes.func,\n },\n },\n QuantitySelector: {\n displayName: 'QuantitySelector',\n propTypes: {\n children: PropTypes.func,\n min: PropTypes.number,\n max: PropTypes.number,\n value: PropTypes.string,\n skuCode: PropTypes.string,\n disabled: PropTypes.bool,\n },\n defaultProps: {\n min: 1,\n },\n },\n SaveAddressesButton: {\n displayName: 'SaveAddressesButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n onClick: PropTypes.func,\n disabled: PropTypes.bool,\n },\n defaultProps: {\n label: 'Continue to delivery',\n },\n },\n Shipment: {\n permittedChildren: [\n 'LineItemsContainer',\n 'LineItem',\n 'ShippingMethod',\n 'ReactNode',\n ],\n displayName: 'Shipment',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n ShipmentField: {\n displayName: 'ShipmentField',\n propTypes: {\n children: PropTypes.func,\n name: PropTypes.oneOf<ShipmentAttribute>([\n 'costAmountCents',\n 'costAmountFloat',\n 'currencyCode',\n 'formattedCostAmount',\n 'number',\n 'status',\n 'keyNumber',\n ]).isRequired,\n },\n },\n ShipmentsContainer: {\n displayName: 'ShipmentsContainer',\n permittedChildren: ['Shipment', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n ShippingAddressContainer: {\n permittedChildren: ['Address', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n SaveCustomerButton: {\n displayName: 'SaveCustomerButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n onClick: PropTypes.func,\n },\n defaultProps: {\n label: 'Save',\n },\n },\n ShippingAddressForm: {\n permittedChildren: ['AddressInput', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n ShippingAmount: {\n displayName: 'ShippingAmount',\n propTypes: baseOrderComponentPricePropTypes,\n },\n ShippingMethod: {\n permittedChildren: [\n 'ShippingMethodName',\n 'ShippingMethodPrice',\n 'ShippingMethodRadioButton',\n 'DeliveryLeadTime',\n 'ReactNode',\n ],\n displayName: 'ShippingMethod',\n propTypes: {\n children: childrenTypes.isRequired,\n readonly: PropTypes.bool,\n },\n },\n ShippingMethodName: {\n displayName: 'ShippingMethodName',\n propTypes: {\n children: PropTypes.func,\n },\n },\n ShippingMethodRadioButton: {\n displayName: 'ShippingMethodRadioButton',\n propTypes: {\n children: PropTypes.func,\n },\n },\n ShippingMethodPrice: {\n displayName: 'ShippingMethodPrice',\n propTypes: {\n ...baseOrderComponentPricePropTypes,\n type: PropTypes.oneOf<'amount'>(['amount']),\n },\n defaultProps: {\n format: 'formatted',\n type: 'amount',\n },\n },\n SkuList: {\n permittedChildren: ['AddToCartButton', 'QuantitySelector', 'ReactNode'],\n displayName: 'SkuList',\n propTypes: {\n children: childrenTypes.isRequired,\n id: PropTypes.string.isRequired,\n },\n },\n SkuListsContainer: {\n permittedChildren: ['SkuList', 'ReactNode'],\n displayName: 'SkuListsContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n SkuOption: {\n permittedChildren: ['SkuOptionInput', 'ReactNode'],\n displayName: 'SkuOption',\n propTypes: {\n children: childrenTypes.isRequired,\n id: PropTypes.string.isRequired,\n },\n },\n SkuOptionInput: {\n displayName: 'SkuOptionInput',\n propTypes: BaseInputComponentPropTypes,\n },\n SkuOptionsContainer: {\n permittedChildren: ['SkuOption', 'ReactNode'],\n displayName: 'SkuOptionsContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n },\n },\n StockTransfer: {\n permittedChildren: ['StockTransferField', 'ReactNode'],\n displayName: 'StockTransfer',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n StockTransferField: {\n displayName: 'StockTransferField',\n propTypes: {\n children: PropTypes.func,\n type: PropTypes.oneOf<StockTransferFieldType>(['quantity', 'skuCode'])\n .isRequired,\n },\n },\n SubmitButton: {\n displayName: 'SubmitButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n },\n defaultProps: {\n label: 'Submit',\n },\n },\n SubTotalAmount: {\n displayName: 'SubTotalAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n TaxesAmount: {\n displayName: 'TaxesAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n TotalAmount: {\n displayName: 'TotalAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n VariantsContainer: {\n permittedChildren: ['VariantSelector', 'ReactNode'],\n displayName: 'VariantsContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n filters: PropTypes.object,\n },\n defaultProps: {\n skuCode: '',\n filters: {},\n },\n },\n VariantSelector: {\n displayName: 'VariantSelector',\n propTypes: {\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n code: PropTypes.string.isRequired,\n lineItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n }),\n }).isRequired\n ).isRequired,\n name: PropTypes.string,\n children: PropTypes.func,\n type: PropTypes.oneOf<BaseSelectorType>(['select', 'radio']),\n loader: PropTypes.element,\n placeholder: PropTypes.string,\n skuCode: PropTypes.string,\n },\n defaultProps: {\n placeholder: 'Select a variant',\n type: 'select' as BaseSelectorType,\n },\n },\n}\n\nexport default components\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { SkuList } from '@commercelayer/js-sdk'\n\ntype SkuListsActionType = 'getSkuList' | 'setSkuList'\n\nconst actionType: SkuListsActionType[] = ['getSkuList', 'setSkuList']\n\nexport interface SkuListsState {\n listIds: string[]\n skuLists: SkuList\n}\n\nexport const skuListsInitialState: SkuListsState = {\n listIds: [],\n skuLists: {},\n}\n\nexport interface SkuListsAction {\n payload: Partial<SkuListsState>\n type: SkuListsActionType\n}\n\nexport type GetSkuList = (params: {\n config: CommerceLayerConfig\n dispatch: Dispatch<SkuListsAction>\n listIds: string[]\n state: SkuListsState\n}) => Promise<void>\n\nexport type SkuList = Record<string, string[]>\n\nexport const getSkuList: GetSkuList = async ({\n listIds,\n config,\n dispatch,\n // state,\n}) => {\n const skuLists: Record<string, any> = {}\n try {\n listIds.map(async (id) => {\n const skuList = await SkuList.withCredentials(config)\n .includes('skus')\n .select({ skus: ['code'] })\n .find(id)\n const skuCodes = skuList\n .skus()\n ?.toArray()\n .map((sku) => sku.code)\n skuLists[id] = skuCodes\n })\n dispatch({\n payload: {\n skuLists,\n },\n type: 'getSkuList',\n })\n } catch (error) {\n console.error(error)\n }\n}\n\nconst skuListsReducer = (\n state: SkuListsState,\n reducer: SkuListsAction\n): SkuListsState =>\n baseReducer<SkuListsState, SkuListsAction, SkuListsActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default skuListsReducer\n","import { createContext } from 'react'\nimport { skuListsInitialState } from '#reducers/SkuListsReducer'\n\nexport const SkuListsContext = createContext(skuListsInitialState)\n\nexport default SkuListsContext\n","import { createContext } from 'react'\nimport axios from 'axios'\n\ntype Context = {\n url: string | null\n callExternalFunction: CallExternalFunction\n}\n\ntype CallExternalFunction = (params: {\n url: string\n data: Record<string, any>\n}) => Promise<Record<string, any>>\n\nexport const callExternalFunction: CallExternalFunction = async ({\n url,\n data,\n}) => axios.post(url, data)\n\nconst ExternalFunctionContext = createContext<Context>({\n url: null,\n callExternalFunction,\n})\n\nexport default ExternalFunctionContext\n","import React, {\n FunctionComponent,\n useContext,\n PropsWithoutRef,\n ReactNode,\n} from 'react'\nimport Parent from './utils/Parent'\nimport OrderContext from '#context/OrderContext'\nimport { isEmpty, has } from 'lodash'\nimport ItemContext from '#context/ItemContext'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport { AddToCartReturn } from '#reducers/OrderReducer'\nimport SkuListsContext from '#context/SkuListsContext'\nimport ExternalFunctionContext from '#context/ExternalFunctionContext'\nimport { VariantOptions } from '#components/VariantSelector'\nimport isFunction from 'lodash/isFunction'\n\nconst propTypes = components.AddToCartButton.propTypes\nconst defaultProps = components.AddToCartButton.defaultProps\nconst displayName = components.AddToCartButton.displayName\n\ntype AddToCartButtonChildrenProps = FunctionChildren<\n {\n handleClick: () => AddToCartReturn\n } & Omit<AddToCartButtonProps, 'children'> &\n PropsWithoutRef<JSX.IntrinsicElements['button']>\n>\n\ntype AddToCartButtonProps = {\n children?: AddToCartButtonChildrenProps\n label?: string | ReactNode\n skuCode?: string\n disabled?: boolean\n skuListId?: string\n lineItem?: VariantOptions['lineItem']\n} & PropsWithoutRef<JSX.IntrinsicElements['button']>\n\nconst AddToCartButton: FunctionComponent<AddToCartButtonProps> = (props) => {\n const {\n label = 'Add to cart',\n children,\n skuCode,\n disabled,\n skuListId,\n lineItem,\n ...p\n } = props\n const { addToCart, orderId, getOrder, setOrderErrors } = useContext(\n OrderContext\n )\n const { url, callExternalFunction } = useContext(ExternalFunctionContext)\n const {\n item,\n items,\n quantity,\n option,\n prices,\n lineItems,\n lineItem: lineItemContext,\n skuCode: itemSkuCode,\n } = useContext(ItemContext)\n const { skuLists } = useContext(SkuListsContext)\n const sCode =\n !isEmpty(items) && skuCode\n ? items[skuCode]?.code\n : skuCode || getCurrentItemKey(item) || (itemSkuCode as string)\n const handleClick = () => {\n const qty = quantity[sCode]\n const opt = option[sCode]\n const customLineItem = !isEmpty(lineItem || lineItemContext)\n ? lineItem || lineItemContext\n : lineItems[sCode]\n if (!isEmpty(skuLists) && skuListId && url) {\n const slQty = quantity[skuListId] || 1\n if (has(skuLists, skuListId)) {\n const lineItems = skuLists[skuListId].map((skuCode) => {\n return {\n skuCode,\n quantity: slQty,\n _update_quantity: 1,\n }\n })\n return callExternalFunction({\n url,\n data: {\n resourceType: 'orders',\n inputs: [\n {\n id: orderId,\n lineItems,\n },\n ],\n },\n })\n .then((res) => {\n getOrder && orderId && getOrder(orderId)\n return res\n })\n .catch(({ response }) => {\n setOrderErrors && setOrderErrors(response['data'])\n return response\n })\n }\n }\n return !url\n ? addToCart &&\n addToCart({\n skuCode: sCode,\n skuId: item[sCode]?.id,\n quantity: qty,\n option: opt,\n lineItem: customLineItem,\n })\n : callExternalFunction({\n url,\n data: {\n skuCode: sCode,\n skuId: item[sCode]?.id,\n quantity: qty,\n option: opt,\n lineItem: customLineItem,\n },\n })\n .then((res) => {\n getOrder && orderId && getOrder(orderId)\n return res\n })\n .catch(({ response }) => {\n setOrderErrors && setOrderErrors(response['data'])\n return response\n })\n }\n const autoDisabled =\n !isEmpty(skuLists) || skuListId\n ? false\n : disabled || !prices[sCode] || !sCode\n const parentProps = {\n handleClick,\n disabled: disabled || autoDisabled,\n label,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button disabled={autoDisabled} onClick={handleClick} {...p}>\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nAddToCartButton.propTypes = propTypes\nAddToCartButton.defaultProps = defaultProps\nAddToCartButton.displayName = displayName\n\nexport default AddToCartButton\n","import { createContext } from 'react'\nimport { AddressCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialAddressContext {\n address: AddressCollection | Record<string, any>\n}\n\nconst initial: InitialAddressContext = {\n address: {},\n}\n\nconst AddressChildrenContext = createContext<InitialAddressContext>(initial)\n\nexport default AddressChildrenContext\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { BaseError } from '#typings/errors'\nimport {\n AddressCollection,\n CustomerAddress,\n CustomerPaymentSourceCollection,\n Order,\n OrderCollection,\n} from '@commercelayer/js-sdk'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { getOrderContext } from './OrderReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { isEmpty } from 'lodash'\n\nexport type CustomerActionType =\n | 'setErrors'\n | 'setCustomerEmail'\n | 'setAddresses'\n | 'setPayments'\n\nexport interface CustomerActionPayload {\n addresses: AddressCollection[]\n payments: CustomerPaymentSourceCollection[]\n customerEmail: string\n errors: BaseError[]\n isGuest: boolean\n getCustomerPaymentSources: () => Promise<void>\n}\n\nexport type CustomerState = Partial<CustomerActionPayload>\n\nexport interface CustomerAction {\n type: CustomerActionType\n payload: Partial<CustomerActionPayload>\n}\n\nexport type SetSaveOnBlur = (args: {\n saveOnBlur: boolean\n dispatch: Dispatch<CustomerAction>\n}) => void\n\nexport type SaveCustomerUser = (args: {\n config: CommerceLayerConfig\n customerEmail: string\n dispatch: Dispatch<CustomerAction>\n order?: OrderCollection\n getOrder: getOrderContext\n}) => Promise<void>\n\nexport const saveCustomerUser: SaveCustomerUser = async ({\n config,\n customerEmail,\n dispatch,\n order,\n getOrder,\n}) => {\n try {\n if (order) {\n const o = await Order.build({ id: order.id })\n await o.withCredentials(config).update({ customerEmail })\n getOrder(order.id)\n dispatch({\n type: 'setCustomerEmail',\n payload: { customerEmail },\n })\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nexport interface SetCustomerErrors {\n <V extends BaseError[]>(errors: V, dispatch?: Dispatch<CustomerAction>): void\n}\n\nexport const setCustomerErrors: SetCustomerErrors = (errors, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\nexport type SetCustomerEmail = (\n customerEmail: string,\n dispatch?: Dispatch<CustomerAction>\n) => void\n\nexport const setCustomerEmail: SetCustomerEmail = (customerEmail, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setCustomerEmail',\n payload: {\n customerEmail,\n },\n })\n}\n\nexport type GetCustomerAddresses = (params: {\n config: CommerceLayerConfig\n dispatch: Dispatch<CustomerAction>\n}) => Promise<void>\n\nexport const getCustomerAddresses: GetCustomerAddresses = async ({\n config,\n dispatch,\n}) => {\n try {\n const customerAddresses = await CustomerAddress.withCredentials(config)\n .includes('address')\n .all()\n const addresses: any = customerAddresses\n .toArray()\n .map((customerAddress) => customerAddress.address())\n dispatch({\n type: 'setAddresses',\n payload: { addresses },\n })\n } catch (col: any) {\n const errors = getErrorsByCollection(col, 'address')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n }\n}\n\nexport type GetCustomerPaymentSources = (params: {\n config: CommerceLayerConfig\n dispatch: Dispatch<CustomerAction>\n order?: OrderCollection\n}) => Promise<void>\n\nexport const getCustomerPaymentSources: GetCustomerPaymentSources = async ({\n config,\n dispatch,\n order,\n}) => {\n try {\n if (config && order) {\n const payments: CustomerPaymentSourceCollection[] | undefined = (\n await order\n .availableCustomerPaymentSources()\n ?.includes('paymentSource')\n ?.load()\n )?.toArray()\n if (!isEmpty(payments) && payments) {\n dispatch({\n type: 'setPayments',\n payload: { payments },\n })\n }\n }\n } catch (col: any) {\n const errors = getErrorsByCollection(col, 'address')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n }\n}\n\nexport const customerInitialState: CustomerState = {\n errors: [],\n addresses: [],\n payments: [],\n}\n\nconst type: CustomerActionType[] = [\n 'setErrors',\n 'setCustomerEmail',\n 'setAddresses',\n 'setPayments',\n]\n\nconst customerReducer = (\n state: CustomerState,\n reducer: CustomerAction\n): CustomerState =>\n baseReducer<CustomerState, CustomerAction, CustomerActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default customerReducer\n","import {\n SetCustomerEmail,\n setCustomerErrors,\n SetCustomerErrors,\n setCustomerEmail,\n CustomerState,\n} from '#reducers/CustomerReducer'\nimport { createContext } from 'react'\n\ntype DefaultContext = {\n saveCustomerUser: (customerEmail: string) => Promise<void>\n setCustomerErrors: SetCustomerErrors\n setCustomerEmail: SetCustomerEmail\n getCustomerPaymentSources: () => Promise<void>\n} & Partial<CustomerState>\n\nexport const defaultCustomerContext = {\n saveCustomerUser: async (): Promise<void> => {\n return\n },\n getCustomerPaymentSources: async (): Promise<void> => {},\n setCustomerErrors,\n setCustomerEmail,\n}\n\nconst CustomerContext = createContext<DefaultContext>(defaultCustomerContext)\n\nexport default CustomerContext\n","import { createContext } from 'react'\nimport { BillingAddressState } from '#reducers/BillingAddressReducer'\n\ntype DefaultContext = {\n setBillingAddress?: (\n id: string,\n options?: {\n customerAddressId: string\n }\n ) => void\n} & BillingAddressState\n\nexport const defaultBillingAddressContext = {\n setBillingAddress: (): void => {\n return\n },\n}\n\nconst BillingAddressContext = createContext<DefaultContext>(\n defaultBillingAddressContext\n)\n\nexport default BillingAddressContext\n","import { createContext } from 'react'\nimport { ShippingAddressState } from '#reducers/ShippingAddressReducer'\n\ntype DefaultContext = {\n setShippingAddress?: (\n id: string,\n options?: {\n customerAddressId: string\n }\n ) => void\n} & ShippingAddressState\n\nexport const defaultShippingAddressContext = {}\n\nconst ShippingAddressContext = createContext<DefaultContext>(\n defaultShippingAddressContext\n)\n\nexport default ShippingAddressContext\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { BaseError } from '#typings/errors'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Address, Order, OrderCollection } from '@commercelayer/js-sdk'\nimport isEmpty from 'lodash/isEmpty'\n\nexport type AddressActionType =\n | 'setErrors'\n | 'setAddress'\n | 'setShipToDifferentAddress'\n | 'setCloneAddress'\n | 'cleanup'\n\nexport type AddressField =\n | 'city'\n | 'company'\n | 'country_code'\n | 'first_name'\n | 'last_name'\n | 'line_1'\n | 'line_2'\n | 'phone'\n | 'state_code'\n | 'zip_code'\n | 'billing_info'\n\nexport type AddressFieldView = AddressField | 'full_address' | 'full_name'\n\nexport const addressFields: AddressField[] = [\n 'city',\n 'company',\n 'country_code',\n 'first_name',\n 'last_name',\n 'line_1',\n 'line_2',\n 'phone',\n 'state_code',\n 'zip_code',\n]\n\nexport type AddressResource = 'billingAddress' | 'shippingAddress'\n\nexport type AddressSchema = Record<AddressField | string, string>\n\nexport interface AddressActionPayload {\n errors: BaseError[]\n billingAddress: AddressSchema\n shippingAddress: AddressSchema\n shipToDifferentAddress: boolean\n billingAddressId: string\n shippingAddressId: string\n}\n\nexport type AddressState = Partial<AddressActionPayload>\n\nexport interface AddressAction {\n type: AddressActionType\n payload: Partial<AddressActionPayload>\n}\n\nexport const addressInitialState: AddressState = {\n errors: [],\n}\n\nexport interface SetAddressErrors {\n <V extends BaseError[]>(args: {\n errors: V\n resource: 'billingAddress' | 'shippingAddress'\n dispatch?: Dispatch<AddressAction>\n currentErrors?: V\n }): void\n}\n\nexport type SetAddressParams<V extends AddressSchema> = {\n values: V\n resource: AddressResource\n dispatch?: Dispatch<AddressAction>\n}\n\nexport interface SetAddress {\n <V extends AddressSchema>(params: SetAddressParams<V>): void\n}\n\nexport interface SaveAddresses {\n (params: {\n orderId?: string\n order?: OrderCollection | null\n getOrder?: (orderId: string) => void\n config: CommerceLayerConfig\n state: AddressState\n dispatch: Dispatch<AddressAction>\n }): Promise<void>\n}\n\nexport const setAddressErrors: SetAddressErrors = ({\n errors,\n dispatch,\n currentErrors = [],\n resource,\n}) => {\n const billingErrors =\n resource === 'billingAddress'\n ? errors.filter((e) => e.resource === 'billingAddress')\n : currentErrors.filter((e) => e.resource === 'billingAddress')\n const shippingErrors =\n resource === 'shippingAddress'\n ? errors.filter((e) => e.resource === 'shippingAddress')\n : currentErrors.filter((e) => e.resource === 'shippingAddress')\n const finalErrors = [...billingErrors, ...shippingErrors]\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors: finalErrors,\n },\n })\n}\n\nexport const setAddress: SetAddress = ({ values, resource, dispatch }) => {\n dispatch &&\n dispatch({\n type: 'setAddress',\n payload: {\n [`${resource}`]: values,\n },\n })\n}\n\ntype SetCloneAddress = (\n id: string,\n resource: 'billingAddress' | 'shippingAddress',\n dispatch: Dispatch<AddressAction>\n) => void\n\nexport const setCloneAddress: SetCloneAddress = (id, resource, dispatch) => {\n dispatch({\n type: 'setCloneAddress',\n payload: {\n [`${resource}Id`]: id,\n },\n })\n}\n\nexport const saveAddresses: SaveAddresses = async ({\n config,\n getOrder,\n order,\n state,\n}) => {\n const {\n shipToDifferentAddress,\n billingAddress,\n shippingAddress,\n billingAddressId,\n shippingAddressId,\n } = state\n try {\n const currentBillingAddressRef = order?.billingAddress()?.reference\n const orderAttributes: Partial<Record<string, any>> = {\n _billingAddressCloneId: billingAddressId,\n _shippingAddressCloneId: billingAddressId,\n }\n if (currentBillingAddressRef === billingAddressId) {\n orderAttributes._billingAddressCloneId = order?.billingAddress()?.id\n orderAttributes._shippingAddressCloneId = order?.billingAddress()?.id\n }\n if (!isEmpty(billingAddress) && billingAddress) {\n delete orderAttributes._billingAddressCloneId\n delete orderAttributes._shippingAddressCloneId\n orderAttributes._shippingAddressSameAsBilling = true\n orderAttributes.billingAddress = await Address.withCredentials(\n config\n ).create(billingAddress)\n }\n if (shipToDifferentAddress) {\n delete orderAttributes._shippingAddressSameAsBilling\n if (shippingAddressId)\n orderAttributes._shippingAddressCloneId = shippingAddressId\n if (!isEmpty(shippingAddress) && shippingAddress) {\n delete orderAttributes._shippingAddressCloneId\n orderAttributes.shippingAddress = await Address.withCredentials(\n config\n ).create(shippingAddress)\n }\n }\n if (order && getOrder && !isEmpty(orderAttributes)) {\n const o = await Order.build({ id: order.id })\n await o.withCredentials(config).update(orderAttributes)\n await getOrder(order.id)\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nconst type: AddressActionType[] = [\n 'setErrors',\n 'setAddress',\n 'setShipToDifferentAddress',\n 'setCloneAddress',\n 'cleanup',\n]\n\nconst addressReducer = (\n state: AddressState,\n reducer: AddressAction\n): AddressState =>\n baseReducer<AddressState, AddressAction, AddressActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default addressReducer\n","import { createContext } from 'react'\nimport { AddressState, SetAddress, setAddress } from '#reducers/AddressReducer'\nimport { BaseError } from '#typings/errors'\n\ntype DefaultContext = {\n saveAddresses: () => void\n setCloneAddress: (\n id: string,\n resource: 'billingAddress' | 'shippingAddress'\n ) => void\n setAddress: SetAddress\n setAddressErrors: (\n errors: BaseError[],\n resource: 'billingAddress' | 'shippingAddress'\n ) => void\n} & AddressState\n\nexport const defaultAddressContext = {\n saveAddresses: (): void => {\n return\n },\n setCloneAddress: (): void => {\n return\n },\n setAddress,\n setAddressErrors: () => {\n return\n },\n}\n\nconst AddressesContext = createContext<DefaultContext>(defaultAddressContext)\n\nexport default AddressesContext\n","import Parent from '#components/utils/Parent'\nimport React, { useContext } from 'react'\nimport { AddressCollection } from '@commercelayer/js-sdk'\nimport AddressChildrenContext from '#context/AddressChildrenContext'\nimport ShippingAddressContext from '#context/ShippingAddressContext'\nimport { FunctionChildren } from '#typings'\n\ntype ChildrenProps = Pick<Props, 'customerAddresses' | 'className'> & {\n AddressProvider: typeof AddressChildrenContext.Provider\n}\n\nexport type CustomerAddress = AddressCollection & {\n onClick: () => void\n handleSelect?: () => void\n}\n\nexport type AddressCardsTemplateChildren = FunctionChildren<ChildrenProps>\n\nexport type AddressCardsTemplate = ChildrenProps\n\ntype HandleSelect = (\n k: number,\n addressId: string,\n customerAddressId: string,\n disabled: boolean\n) => void\n\ntype Props = {\n customerAddresses: CustomerAddress[]\n countryLock?: string\n children: AddressCardsTemplateChildren\n selectedClassName?: string\n disabledClassName?: string\n deselect?: boolean\n selected?: number | null\n className?: string\n handleSelect: HandleSelect\n}\n\nexport default function AddressCardsTemplate({\n customerAddresses,\n children,\n deselect,\n countryLock,\n selected,\n selectedClassName,\n className,\n disabledClassName,\n handleSelect,\n}: Props) {\n const { setShippingAddress } = useContext(ShippingAddressContext)\n const addresses = customerAddresses.map((address, k) => {\n const attributes = address.attributes() as any\n const disabled =\n (setShippingAddress &&\n countryLock &&\n countryLock !== address.countryCode) ||\n false\n const selectedClass = deselect ? '' : selectedClassName\n const addressSelectedClass =\n selected === k ? `${className} ${selectedClass}` : className\n const finalClassName = disabled\n ? `${className} ${disabledClassName}`\n : addressSelectedClass\n const customerAddressId: string = address?.customerAddressId || ''\n const onClick = () =>\n handleSelect(k, address.id, customerAddressId, disabled)\n return {\n ...attributes,\n className: finalClassName,\n onClick,\n }\n })\n const value = {\n customerAddresses: addresses,\n AddressProvider: AddressChildrenContext.Provider,\n }\n return <Parent {...value}>{children}</Parent>\n}\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport AddressChildrenContext from '#context/AddressChildrenContext'\nimport components from '#config/components'\nimport CustomerContext from '#context/CustomerContext'\nimport BillingAddressContext from '#context/BillingAddressContext'\nimport ShippingAddressContext from '#context/ShippingAddressContext'\nimport { AddressCollection } from '@commercelayer/js-sdk'\nimport isEmpty from 'lodash/isEmpty'\nimport AddressContext from '#context/AddressContext'\nimport OrderContext from '#context/OrderContext'\nimport AddressCardsTemplate, {\n AddressCardsTemplateChildren,\n CustomerAddress,\n} from './utils/AddressCardsTemplate'\n\nconst propTypes = components.Address.propTypes\n\ntype Props = {\n children: ReactNode | AddressCardsTemplateChildren\n selectedClassName?: string\n disabledClassName?: string\n onSelect?: () => void\n addresses?: AddressCollection[]\n deselect?: boolean\n} & JSX.IntrinsicElements['div']\n\nconst Address: FunctionComponent<Props> = (props) => {\n const {\n children,\n className,\n selectedClassName = '',\n disabledClassName = '',\n onSelect,\n addresses = [],\n deselect = false,\n ...p\n } = props\n const { addresses: addressesContext } = useContext(CustomerContext)\n const { setBillingAddress, billingCustomerAddressId } = useContext(\n BillingAddressContext\n )\n const { setShippingAddress, shippingCustomerAddressId } = useContext(\n ShippingAddressContext\n )\n const { shipToDifferentAddress, billingAddressId, shippingAddressId } =\n useContext(AddressContext)\n const { order } = useContext(OrderContext)\n const [selected, setSelected] = useState<null | number | undefined>(null)\n const items = !isEmpty(addresses)\n ? addresses\n : (addressesContext && addressesContext) || []\n useEffect(() => {\n if (items && !deselect) {\n items.map((address, k) => {\n if (billingCustomerAddressId) {\n const preselected = address.reference === billingCustomerAddressId\n if (preselected && selected === null) {\n setSelected(k)\n }\n }\n if (!billingAddressId && k === selected) {\n setBillingAddress &&\n setBillingAddress(address.id, {\n customerAddressId: address.customerAddressId as string,\n })\n }\n if (shippingCustomerAddressId) {\n const preselected = address.reference === shippingCustomerAddressId\n preselected && selected === null && setSelected(k)\n }\n if (!shippingAddressId && k === selected) {\n setShippingAddress &&\n setShippingAddress(address.id, {\n customerAddressId: address.customerAddressId as string,\n })\n }\n })\n }\n if (deselect) {\n const disabledSaveButton = async () => {\n setBillingAddress && (await setBillingAddress(''))\n setShippingAddress && (await setShippingAddress(''))\n }\n disabledSaveButton()\n }\n }, [\n deselect,\n billingCustomerAddressId,\n shippingCustomerAddressId,\n addressesContext,\n shipToDifferentAddress,\n ])\n const handleSelect = async (\n k: number,\n addressId: string,\n customerAddressId: string,\n disabled: boolean\n ) => {\n !disabled && setSelected(k)\n setBillingAddress &&\n (await setBillingAddress(addressId, { customerAddressId }))\n !disabled &&\n setShippingAddress &&\n (await setShippingAddress(addressId, { customerAddressId }))\n onSelect && onSelect()\n }\n const countryLock = order?.shippingCountryCodeLock\n const components =\n typeof children === 'function'\n ? []\n : items.map((address, k) => {\n const addressProps = {\n address,\n }\n const disabled =\n (setShippingAddress &&\n countryLock &&\n countryLock !== address.countryCode) ||\n false\n const selectedClass = deselect ? '' : selectedClassName\n const addressSelectedClass =\n selected === k ? `${className} ${selectedClass}` : className\n const customerAddressId: string = address?.customerAddressId || ''\n const finalClassName = disabled\n ? `${className} ${disabledClassName}`\n : addressSelectedClass\n return (\n <AddressChildrenContext.Provider key={k} value={addressProps}>\n <div\n className={finalClassName}\n onClick={() =>\n handleSelect(k, address.id, customerAddressId, disabled)\n }\n data-disabled={disabled}\n {...p}\n >\n {children}\n </div>\n </AddressChildrenContext.Provider>\n )\n })\n const parentProps = {\n customerAddresses: items as CustomerAddress[],\n selected,\n handleSelect,\n countryLock,\n ...props,\n }\n return typeof children === 'function' ? (\n <AddressCardsTemplate {...parentProps}>\n {children as AddressCardsTemplateChildren}\n </AddressCardsTemplate>\n ) : (\n <Fragment>{components}</Fragment>\n )\n}\n\nAddress.propTypes = propTypes\n\nexport default Address\n","import React, { ForwardRefRenderFunction } from 'react'\nimport Parent from './Parent'\nimport { BaseSelectComponentProps } from '#typings'\nimport { findIndex } from 'lodash'\n\nexport type BaseSelectProps = BaseSelectComponentProps\n\nconst BaseSelect: ForwardRefRenderFunction<any, BaseSelectProps> = (\n props,\n ref\n) => {\n const {\n options = [],\n children,\n placeholder = { label: 'Select an option', value: '' },\n value = '',\n ...p\n } = props\n if (findIndex(options, placeholder) === -1) {\n options.unshift(placeholder)\n } else {\n options[0] = placeholder\n }\n const Options = options.map((o, k) => {\n const { label, ...option } = o\n return (\n <option key={k} {...option}>\n {label}\n </option>\n )\n })\n const parentProps = {\n options,\n ref,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <select ref={ref} defaultValue={value} {...p}>\n {Options}\n </select>\n )\n}\n\nexport default React.forwardRef(BaseSelect)\n","import { createContext, RefObject } from 'react'\nimport { AddressCountrySelectName, AddressInputName } from '#typings'\nimport { AddressField } from '#reducers/AddressReducer'\n\nexport type DefaultContextAddress = {\n validation?: () => RefObject<any>\n setValue?: (\n name: AddressField | AddressInputName | AddressCountrySelectName,\n value: any\n ) => void\n errors?: Record<string, { code: string; message: string; error: boolean }>[]\n errorClassName?: string\n requiresBillingInfo?: boolean\n resetField?: (name: string) => void\n values?: Record<string, any>\n}\n\nconst BillingAddressFormContext = createContext<DefaultContextAddress>({})\n\nexport default BillingAddressFormContext\n","import { createContext } from 'react'\nimport { DefaultContextAddress } from './BillingAddressFormContext'\n\nconst ShippingAddressFormContext = createContext<DefaultContextAddress>({})\n\nexport default ShippingAddressFormContext\n","import { Countries, States } from 'countries-states-cities-service'\n\nexport function getCountries() {\n return Countries.getCountries({\n sort: {\n mode: 'alphabetical',\n key: 'name',\n },\n }).map(({ name, iso2 }) => ({\n label: name,\n value: iso2,\n }))\n}\n\nexport function getStateOfCountry(country_code: string) {\n const filters: { country_code: string; is_region?: boolean } = {\n country_code,\n }\n if (country_code === 'IT') filters.is_region = false\n return States.getStates({\n filters,\n sort: { mode: 'alphabetical', key: 'name' },\n }).map(({ name, state_code }) => ({\n label: name.replace('Province of', ''),\n value: state_code,\n }))\n}\n\nexport function isValidState(\n state_code: string,\n country_code: string\n): boolean {\n return States.getStates({ filters: { state_code, country_code } }).length > 0\n}\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseSelect from './utils/BaseSelect'\nimport components from '#config/components'\nimport { AddressCountrySelectName, BaseSelectComponentProps } from '#typings'\nimport BillingAddressFormContext from '#context/BillingAddressFormContext'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport isEmpty from 'lodash/isEmpty'\nimport { getCountries } from '#utils/countryStateCity'\n\nconst propTypes = components.AddressCountrySelector.propTypes\nconst defaultProps = components.AddressCountrySelector.defaultProps\nconst displayName = components.AddressCountrySelector.displayName\n\ntype AddressCountrySelectorProps = Omit<\n BaseSelectComponentProps,\n 'options' | 'name'\n> & {\n name: AddressCountrySelectName\n required?: boolean\n disabled?: boolean\n} & Pick<JSX.IntrinsicElements['select'], 'className' | 'id' | 'style'>\n\nconst AddressCountrySelector: FunctionComponent<AddressCountrySelectorProps> = (\n props\n) => {\n const { required = true, value, name, className, ...p } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n const [hasError, setHasError] = useState(false)\n useEffect(() => {\n if (value && billingAddress?.setValue) {\n billingAddress.setValue(name, value)\n }\n if (value && shippingAddress?.setValue) {\n shippingAddress.setValue(name, value)\n }\n if (\n !isEmpty(billingAddress.errors) &&\n billingAddress?.errors?.[name as any]?.error\n ) {\n setHasError(true)\n }\n if (isEmpty(billingAddress?.errors?.[name as any]) && hasError)\n setHasError(false)\n\n if (\n !isEmpty(shippingAddress.errors) &&\n shippingAddress?.errors?.[name as any]?.error\n ) {\n setHasError(true)\n }\n if (isEmpty(shippingAddress?.errors?.[name as any]) && hasError)\n setHasError(false)\n\n return () => {\n setHasError(false)\n }\n }, [value, billingAddress?.errors, shippingAddress?.errors])\n const errorClassName =\n billingAddress?.errorClassName || shippingAddress?.errorClassName\n const classNameComputed = `${className} ${hasError ? errorClassName : ''}`\n return (\n <BaseSelect\n className={classNameComputed}\n ref={billingAddress?.validation || shippingAddress?.validation}\n required={required}\n options={getCountries()}\n name={name}\n value={value}\n {...p}\n />\n )\n}\n\nAddressCountrySelector.propTypes = propTypes\nAddressCountrySelector.defaultProps = defaultProps\nAddressCountrySelector.displayName = displayName\n\nexport default AddressCountrySelector\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport AddressChildrenContext from '#context/AddressChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { AddressFieldView } from '#reducers/AddressReducer'\nimport { camelCase, get } from 'lodash'\nimport { AddressCollection } from '@commercelayer/js-sdk'\n\nconst propTypes = components.AddressField.propTypes\nconst displayName = components.AddressField.displayName\n\ntype AddressFieldChildrenProps = Omit<\n AddressFieldProps,\n 'children' | 'name'\n> & {\n address: AddressCollection\n}\n\ntype AddressFieldProps = (\n | {\n children?: (props: AddressFieldChildrenProps) => ReactNode\n name: AddressFieldView\n }\n | {\n children: (props: AddressFieldChildrenProps) => ReactNode\n name?: AddressFieldView\n }\n) &\n JSX.IntrinsicElements['p']\n\nconst AddressField: FunctionComponent<AddressFieldProps> = (props) => {\n const { name } = props\n const { address } = useContext(AddressChildrenContext)\n const key = camelCase(name)\n const text = get(address, key)\n const parentProps = {\n address,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p {...props}>{text}</p>\n )\n}\n\nAddressField.propTypes = propTypes\nAddressField.displayName = displayName\n\nexport default AddressField\n","import React, { ForwardRefRenderFunction } from 'react'\nimport { BaseInputComponentProps } from '#typings/index'\nimport Parent from './Parent'\n\nexport type BaseInputProps = BaseInputComponentProps &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst BaseInput: ForwardRefRenderFunction<any, BaseInputProps> = (\n props,\n ref\n) => {\n const { children, ...p } = props\n const input =\n props.type === 'textarea' ? (\n <textarea ref={ref} {...p} />\n ) : (\n <input ref={ref} {...p} />\n )\n return children ? <Parent {...p}>{children}</Parent> : input\n}\n\nexport default React.forwardRef(BaseInput)\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseInput from './utils/BaseInput'\nimport components from '#config/components'\nimport { BaseInputComponentProps, AddressInputName } from '#typings'\nimport BillingAddressFormContext from '#context/BillingAddressFormContext'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport isEmpty from 'lodash/isEmpty'\n\nconst propTypes = components.AddressInput.propTypes\nconst displayName = components.AddressInput.displayName\n\nexport type AddressInputProps = {\n name: AddressInputName\n} & Omit<BaseInputComponentProps, 'name'> &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst AddressInput: FunctionComponent<AddressInputProps> = (props) => {\n const { placeholder = '', required, value, className, ...p } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n const [hasError, setHasError] = useState(false)\n useEffect(() => {\n if (value && billingAddress?.setValue) {\n billingAddress.setValue(p.name, value)\n }\n if (value && shippingAddress?.setValue) {\n shippingAddress.setValue(p.name, value)\n }\n if (\n !isEmpty(billingAddress.errors) &&\n billingAddress?.errors?.[p.name as any]?.error\n ) {\n setHasError(true)\n }\n if (\n !isEmpty(billingAddress) &&\n isEmpty(billingAddress?.errors?.[p.name as any]) &&\n hasError\n )\n setHasError(false)\n\n if (\n !isEmpty(shippingAddress.errors) &&\n shippingAddress?.errors?.[p.name as any]?.error\n ) {\n setHasError(true)\n }\n if (\n !isEmpty(shippingAddress) &&\n isEmpty(shippingAddress?.errors?.[p.name as any]) &&\n hasError\n )\n setHasError(false)\n\n return () => {\n setHasError(false)\n }\n }, [value, billingAddress?.errors, shippingAddress?.errors])\n const errorClassName =\n billingAddress?.errorClassName || shippingAddress?.errorClassName\n const classNameComputed = `${className} ${hasError ? errorClassName : ''}`\n if (\n p.name === 'billing_address_billing_info' &&\n !billingAddress.requiresBillingInfo\n )\n return null\n return (\n <BaseInput\n ref={billingAddress?.validation || shippingAddress?.validation}\n className={classNameComputed}\n required={required !== undefined ? required : true}\n placeholder={placeholder}\n defaultValue={value}\n {...p}\n />\n )\n}\n\nAddressInput.propTypes = propTypes\nAddressInput.displayName = displayName\n\nexport default AddressInput\n","const countryLock = ['IT', 'US']\n\nexport default function isEmptyStates(countryCode: string): boolean {\n return !countryLock.includes(countryCode)\n}\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseSelect from './utils/BaseSelect'\nimport components from '#config/components'\nimport { AddressStateSelectName, BaseSelectComponentProps } from '#typings'\nimport BillingAddressFormContext from '#context/BillingAddressFormContext'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport isEmpty from 'lodash/isEmpty'\nimport { getStateOfCountry, isValidState } from '#utils/countryStateCity'\nimport isEmptyStates from '#utils/isEmptyStates'\nimport AddressesContext from '#context/AddressContext'\nimport BaseInput from './utils/BaseInput'\n\nconst propTypes = components.AddressStateSelector.propTypes\nconst defaultProps = components.AddressStateSelector.defaultProps\nconst displayName = components.AddressStateSelector.displayName\n\ntype AddressStateSelectorProps = Omit<\n BaseSelectComponentProps,\n 'options' | 'name'\n> & {\n name: AddressStateSelectName\n required?: boolean\n disabled?: boolean\n inputClassName?: string\n selectClassName?: string\n} & Pick<JSX.IntrinsicElements['select'], 'className' | 'id' | 'style'>\n\nconst AddressStateSelector: FunctionComponent<AddressStateSelectorProps> = (\n props\n) => {\n const {\n required = true,\n value,\n name,\n className,\n inputClassName,\n selectClassName,\n ...p\n } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n const { errors: addressErrors } = useContext(AddressesContext)\n const [hasError, setHasError] = useState(false)\n const [countryCode, setCountryCode] = useState('')\n const [val, setVal] = useState(value || '')\n useEffect(() => {\n const billingCountryCode =\n billingAddress?.values?.['billing_address_country_code']?.value ||\n billingAddress?.values?.['country_code']\n if (!isEmpty(billingCountryCode) && billingCountryCode !== countryCode)\n setCountryCode(billingCountryCode)\n const shippingCountryCode =\n shippingAddress?.values?.['shipping_address_country_code']?.value\n if (!isEmpty(shippingCountryCode) && shippingCountryCode !== countryCode)\n setCountryCode(shippingCountryCode)\n const changeBillingCountry = [\n !isEmpty(billingAddress),\n billingCountryCode,\n countryCode !== billingCountryCode,\n ].every(Boolean)\n if (changeBillingCountry && !isValidState(val, billingCountryCode)) {\n billingAddress.resetField && billingAddress.resetField(name)\n setVal('')\n }\n const changeShippingCountry = [\n !isEmpty(shippingAddress),\n shippingCountryCode,\n countryCode !== shippingCountryCode,\n ].every(Boolean)\n if (changeShippingCountry && !isValidState(val, shippingCountryCode)) {\n shippingAddress.resetField && shippingAddress.resetField(name)\n setVal('')\n }\n if (!isEmpty(billingAddress)) {\n const fieldError = billingAddress?.errors?.[name as any]?.error\n if (!fieldError) setHasError(false)\n else setHasError(true)\n }\n if (!isEmpty(shippingAddress)) {\n const fieldError = shippingAddress?.errors?.[name as any]?.error\n if (!fieldError) setHasError(false)\n else setHasError(true)\n }\n return () => {\n setHasError(false)\n }\n }, [value, billingAddress, shippingAddress, addressErrors])\n const errorClassName =\n billingAddress?.errorClassName || shippingAddress?.errorClassName\n const classNameComputed = !isEmptyStates(countryCode)\n ? `${className} ${selectClassName} ${hasError ? errorClassName : ''}`\n : `${className} ${inputClassName} ${hasError ? errorClassName : ''}`\n return !isEmptyStates(countryCode) ? (\n <BaseSelect\n {...p}\n className={classNameComputed}\n ref={billingAddress?.validation || shippingAddress?.validation}\n required={required}\n options={getStateOfCountry(countryCode)}\n name={name}\n value={val}\n />\n ) : (\n <BaseInput\n {...(p as any)}\n name={name}\n ref={billingAddress?.validation || shippingAddress?.validation}\n className={classNameComputed}\n required={required}\n placeholder={p.placeholder?.label || ''}\n defaultValue={val}\n type=\"text\"\n />\n )\n}\n\nAddressStateSelector.propTypes = propTypes\nAddressStateSelector.defaultProps = defaultProps\nAddressStateSelector.displayName = displayName\n\nexport default AddressStateSelector\n","import { createContext } from 'react'\n\nexport interface CommerceLayerConfig {\n accessToken: string\n endpoint: string\n cache: boolean\n}\n\nconst initial: CommerceLayerConfig = {\n accessToken: '',\n endpoint: '',\n cache: false,\n}\n\nconst CommerceLayerContext = createContext(initial)\n\nexport default CommerceLayerContext\n","import AddressesContext, {\n defaultAddressContext,\n} from '#context/AddressContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport addressReducer, {\n addressInitialState,\n AddressSchema,\n setAddressErrors,\n SetAddressParams,\n setCloneAddress,\n} from '#reducers/AddressReducer'\nimport { BaseError } from '#typings/errors'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { saveAddresses } from '#reducers/AddressReducer'\nimport components from '#config/components'\n\nconst propTypes = components.AddressesContainer.propTypes\nconst displayName = components.AddressesContainer.displayName\n\nexport type AddressesContainerProps = {\n children: ReactNode\n shipToDifferentAddress?: boolean\n}\nconst AddressesContainer: FunctionComponent<AddressesContainerProps> = (\n props\n) => {\n const { children, shipToDifferentAddress = false } = props\n const [state, dispatch] = useReducer(addressReducer, addressInitialState)\n const { order, orderId, getOrder } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n dispatch({\n type: 'setShipToDifferentAddress',\n payload: {\n shipToDifferentAddress,\n },\n })\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {},\n })\n }\n }, [shipToDifferentAddress])\n const contextValue = {\n ...state,\n setAddressErrors: (\n errors: BaseError[],\n resource: 'billingAddress' | 'shippingAddress'\n ) =>\n setAddressErrors({\n errors,\n resource,\n dispatch,\n currentErrors: state.errors,\n }),\n setAddress: (params: SetAddressParams<AddressSchema>) =>\n defaultAddressContext['setAddress']({ ...params, dispatch }),\n saveAddresses: async (): Promise<void> =>\n await saveAddresses({\n config,\n dispatch,\n getOrder,\n order,\n orderId,\n state,\n }),\n setCloneAddress: (\n id: string,\n resource: 'billingAddress' | 'shippingAddress'\n ): void => setCloneAddress(id, resource, dispatch),\n }\n return (\n <AddressesContext.Provider value={contextValue}>\n {children}\n </AddressesContext.Provider>\n )\n}\n\nAddressesContainer.propTypes = propTypes\nAddressesContainer.displayName = displayName\n\nexport default AddressesContainer\n","import baseReducer from '#utils/baseReducer'\nimport { BaseError } from '#typings/errors'\nimport { Sku } from '@commercelayer/js-sdk'\nimport { first } from 'lodash'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Dispatch } from 'react'\n\nexport interface LeadTimes {\n hours: number\n days: number\n}\n\nexport interface ShippingMethod {\n name: string\n reference: null | string\n priceAmountCents: number\n freeOverAmountCents: null | number\n formattedPriceAmount: string\n formattedFreeOverAmount: null | string\n}\n\nexport interface AvailabilityPayload {\n quantity?: number | null\n shippingMethod?: ShippingMethod\n errors?: BaseError[]\n}\n\nexport interface AvailabilityState extends AvailabilityPayload {\n min: LeadTimes\n max: LeadTimes\n}\n\nexport interface AvailabilityAction {\n type: AvailabilityActionType\n payload: AvailabilityPayload\n}\n\nexport const availabilityInitialState: AvailabilityState = {\n quantity: null,\n min: {\n days: 0,\n hours: 0,\n },\n max: {\n days: 0,\n hours: 0,\n },\n errors: [],\n}\n\ninterface GetAvailability {\n (args: {\n skuCode: string\n dispatch: Dispatch<AvailabilityAction>\n config: CommerceLayerConfig\n }): void\n}\n\nexport const getAvailability: GetAvailability = async ({\n skuCode,\n dispatch,\n config,\n}) => {\n const sku = await Sku.withCredentials(config)\n .select('id')\n .where({ codeIn: skuCode })\n .first()\n const inventorySku = await Sku.withCredentials(config)\n .select('inventory')\n .find(sku.id as string)\n const firstLevel = first(inventorySku?.inventory?.levels)\n const firstDelivery = first(firstLevel?.deliveryLeadTimes)\n dispatch({\n type: 'setAvailability',\n payload: { ...firstDelivery, quantity: firstLevel?.quantity },\n })\n}\n\nexport type AvailabilityActionType = 'setAvailability' | 'setErrors'\n\nconst typeAction: AvailabilityActionType[] = ['setAvailability', 'setErrors']\n\nconst availabilityReducer = (\n state: AvailabilityState,\n reducer: AvailabilityAction\n): AvailabilityState =>\n baseReducer<AvailabilityState, AvailabilityAction, AvailabilityActionType[]>(\n state,\n reducer,\n typeAction\n )\n\nexport default availabilityReducer\n","import { createContext } from 'react'\nimport { availabilityInitialState } from '#reducers/AvailabilityReducer'\n\nconst AvailabilityContext = createContext(availabilityInitialState)\n\nexport default AvailabilityContext\n","import { createContext } from 'react'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialLineItemContext {\n lineItem: LineItemCollection | Record<string, any>\n}\n\nconst initial: InitialLineItemContext = {\n lineItem: {},\n}\n\nconst LineItemChildrenContext = createContext<InitialLineItemContext>(initial)\n\nexport default LineItemChildrenContext\n","import React, {\n useContext,\n useReducer,\n FunctionComponent,\n useEffect,\n ReactNode,\n} from 'react'\nimport availabilityReducer, {\n availabilityInitialState,\n getAvailability,\n} from '#reducers/AvailabilityReducer'\nimport AvailabilityContext from '#context/AvailabilityContext'\nimport { isEmpty, first } from 'lodash'\nimport ItemContext from '#context/ItemContext'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport components from '#config/components'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\n\nconst propTypes = components.AvailabilityContainer.propTypes\nconst displayName = components.AvailabilityContainer.displayName\n\ntype AvailabilityContainerProps = {\n children: ReactNode\n skuCode?: string\n}\n\nconst AvailabilityContainer: FunctionComponent<AvailabilityContainerProps> = (\n props\n) => {\n const { children, skuCode } = props\n const { item, skuCode: itemSkuCode } = useContext(ItemContext)\n const { lineItem } = useContext(LineItemChildrenContext)\n const config = useContext(CommerceLayerContext)\n const [state, dispatch] = useReducer(\n availabilityReducer,\n availabilityInitialState\n )\n useEffect(() => {\n const sCode =\n skuCode || getCurrentItemKey(item) || itemSkuCode || lineItem?.skuCode\n if (sCode) {\n const firstLevel = first(item[sCode]?.inventory?.levels) || {\n quantity: null,\n deliveryLeadTimes: [],\n }\n if (!isEmpty(firstLevel) && firstLevel.deliveryLeadTimes.length > 0) {\n const firstDelivery = first(firstLevel.deliveryLeadTimes)\n dispatch({\n type: 'setAvailability',\n payload: { ...firstDelivery, quantity: firstLevel?.quantity },\n })\n } else if (config.accessToken) {\n getAvailability({ skuCode: sCode, config, dispatch })\n }\n }\n return (): void => {\n dispatch({\n type: 'setAvailability',\n payload: {},\n })\n }\n }, [config.accessToken, item, itemSkuCode])\n return (\n <AvailabilityContext.Provider value={{ ...state }}>\n {children}\n </AvailabilityContext.Provider>\n )\n}\n\nAvailabilityContainer.propTypes = propTypes\nAvailabilityContainer.displayName = displayName\n\nexport default AvailabilityContainer\n","import React, { useContext, FunctionComponent } from 'react'\nimport AvailabilityContext from '#context/AvailabilityContext'\nimport Parent from './utils/Parent'\nimport { isEmpty } from 'lodash'\nimport components from '#config/components'\nimport { TimeFormat, FunctionChildren } from '#typings/index'\nimport { LeadTimes, ShippingMethod } from '#reducers/AvailabilityReducer'\n\nconst propTypes = components.AvailabilityTemplate.propTypes\nconst defaultProps = components.AvailabilityTemplate\n .defaultProps as AvailabilityTemplateProps\nconst displayName = components.AvailabilityTemplate.displayName\n\ntype AvailabilityTemplateChildrenProps = FunctionChildren<\n Omit<AvailabilityTemplateProps, 'children'> & {\n min: LeadTimes\n max: LeadTimes\n shippingMethod: ShippingMethod\n quanity: number\n }\n>\n\ntype AvailabilityTemplateProps = {\n children?: AvailabilityTemplateChildrenProps\n timeFormat?: TimeFormat\n showShippingMethodName?: boolean\n} & JSX.IntrinsicElements['p']\n\nconst AvailabilityTemplate: FunctionComponent<AvailabilityTemplateProps> = (\n props\n) => {\n const { timeFormat, showShippingMethodName, children, ...p } = props\n const { min, max, shippingMethod, quantity } = useContext(AvailabilityContext)\n const mn = !isEmpty(min) && timeFormat ? min[timeFormat] : ''\n const mx = !isEmpty(max) && timeFormat ? max[timeFormat] : ''\n const text: string[] = []\n const name =\n showShippingMethodName && shippingMethod\n ? `with ${shippingMethod.name}`\n : ''\n if (quantity && quantity > 0) {\n text.push('Available')\n if (mn && mx) {\n text.push(`in ${mn} - ${mx} ${timeFormat} ${name}`)\n }\n } else if (quantity === 0) {\n text.push('Out of stock')\n }\n const parentProps = {\n min,\n max,\n shippingMethod,\n quantity,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <p {...p}>{text.join(' ')}</p>\n )\n}\n\nAvailabilityTemplate.propTypes = propTypes\nAvailabilityTemplate.defaultProps = defaultProps\nAvailabilityTemplate.displayName = displayName\n\nexport default AvailabilityTemplate\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Address, OrderCollection } from '@commercelayer/js-sdk'\nimport { getOrderContext } from '#reducers/OrderReducer'\n\nexport type BillingAddressActionType =\n | 'setBillingAddress'\n | 'setBillingCustomerAddressId'\n | 'cleanup'\n\nexport interface BillingAddressActionPayload {\n _billingAddressCloneId: string\n billingCustomerAddressId: string\n}\n\nexport type BillingAddressState = Partial<BillingAddressActionPayload>\n\nexport interface BillingAddressAction {\n type: BillingAddressActionType\n payload: Partial<BillingAddressActionPayload>\n}\n\nexport const billingAddressInitialState: BillingAddressState = {\n _billingAddressCloneId: '',\n}\n\nexport type SetBillingAddress = (\n id: string,\n options?: {\n config: CommerceLayerConfig\n dispatch: Dispatch<BillingAddressAction>\n order?: OrderCollection\n getOrder?: getOrderContext\n shipToDifferentAddress?: boolean\n customerAddressId?: string\n }\n) => Promise<void>\n\nexport const setBillingAddress: SetBillingAddress = async (id, options) => {\n try {\n if (options?.order) {\n if (options.customerAddressId) {\n const address = await Address.withCredentials(options.config).find(id)\n if (address.reference !== options.customerAddressId) {\n await address.withCredentials(options.config).update({\n reference: options.customerAddressId,\n })\n }\n }\n options.dispatch({\n type: 'setBillingAddress',\n payload: {\n _billingAddressCloneId: id,\n },\n })\n }\n } catch (error) {\n console.error(error)\n }\n}\n\ntype SetBillingCustomerAddressId = (args: {\n dispatch: Dispatch<BillingAddressAction>\n order: OrderCollection\n setCloneAddress: (\n id: string,\n resource: 'billingAddress' | 'shippingAddress'\n ) => void\n}) => void\n\nexport const setBillingCustomerAddressId: SetBillingCustomerAddressId = async ({\n dispatch,\n order,\n setCloneAddress,\n}) => {\n let customerAddressId = order?.billingAddress()?.customerAddressId\n try {\n if (!customerAddressId) {\n // @ts-ignore\n const address = await order.loadBillingAddress()\n customerAddressId = address?.reference\n }\n if (customerAddressId) {\n dispatch({\n type: 'setBillingCustomerAddressId',\n payload: { billingCustomerAddressId: customerAddressId },\n })\n setCloneAddress(customerAddressId, 'billingAddress')\n }\n } catch (error) {\n console.error('error', error)\n }\n}\n\nconst type: BillingAddressActionType[] = [\n 'setBillingAddress',\n 'setBillingCustomerAddressId',\n 'cleanup',\n]\n\nconst billingAddressReducer = (\n state: BillingAddressState,\n reducer: BillingAddressAction\n): BillingAddressState =>\n baseReducer<\n BillingAddressState,\n BillingAddressAction,\n BillingAddressActionType[]\n >(state, reducer, type)\n\nexport default billingAddressReducer\n","import BillingAddressContext from '#context/BillingAddressContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport billingAddressReducer, {\n billingAddressInitialState,\n setBillingAddress,\n setBillingCustomerAddressId,\n} from '#reducers/BillingAddressReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\n\nconst propTypes = components.BillingAddressContainer.propTypes\n\ntype Props = {\n children: ReactNode\n}\nconst BillingAddressContainer: FunctionComponent<Props> = (props) => {\n const { children } = props\n const [state, dispatch] = useReducer(\n billingAddressReducer,\n billingAddressInitialState\n )\n const config = useContext(CommerceLayerContext)\n const { order, getOrder } = useContext(OrderContext)\n const { shipToDifferentAddress, setCloneAddress } = useContext(AddressContext)\n useEffect(() => {\n if (order && config) {\n setBillingCustomerAddressId({\n dispatch,\n order,\n setCloneAddress,\n })\n }\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {},\n })\n }\n }, [order])\n const contextValue = {\n ...state,\n setBillingAddress: async (\n id: string,\n options?: { customerAddressId: string }\n ) => {\n await setBillingAddress(id, {\n config,\n dispatch,\n order,\n getOrder,\n shipToDifferentAddress,\n customerAddressId: options?.customerAddressId,\n })\n setCloneAddress(id, 'billingAddress')\n },\n }\n return (\n <BillingAddressContext.Provider value={contextValue}>\n {children}\n </BillingAddressContext.Provider>\n )\n}\n\nBillingAddressContainer.propTypes = propTypes\n\nexport default BillingAddressContainer\n","export interface GetLocalOrder {\n (key: string): string | null\n}\n\nexport const getLocalOrder: GetLocalOrder = (key) => {\n return localStorage.getItem(key)\n}\n\nexport interface SetLocalOrder {\n (key: string, value: string): void\n}\n\nexport const setLocalOrder: SetLocalOrder = (key, value) => {\n return localStorage.setItem(key, value)\n}\n\nexport interface DeleteLocalOrder {\n (key: string): void\n}\n\nexport const deleteLocalOrder: DeleteLocalOrder = (key) => {\n localStorage.removeItem(key)\n}\n\nexport const getSavePaymentSourceToCustomerWallet = (): boolean => {\n return localStorage.getItem('savePaymentSourceToCustomerWallet') === 'true'\n}\n\nexport const getSaveBillingAddressToAddressBook = (): boolean => {\n return (\n localStorage.getItem('saveBillingAddressToCustomerAddressBook') === 'true'\n )\n}\n\nexport const getSaveShippingAddressToAddressBook = (): boolean => {\n return (\n localStorage.getItem('saveShippingAddressToCustomerAddressBook') === 'true'\n )\n}\n\ntype CustomerOrderParams =\n | 'savePaymentSourceToCustomerWallet'\n | 'saveBillingAddressToCustomerAddressBook'\n | 'saveShippingAddressToCustomerAddressBook'\n\nexport function setCustomerOrderParam<T extends CustomerOrderParams>(\n key: T,\n value: string\n): void {\n return setLocalOrder(key, value)\n}\n","import { createContext } from 'react'\nimport {\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n} from '#utils/localStorage'\n\nexport interface OrderStorageConfig {\n persistKey: string\n clearWhenPlaced: boolean\n getLocalOrder: typeof getLocalOrder\n setLocalOrder: typeof setLocalOrder\n deleteLocalOrder: typeof deleteLocalOrder\n}\n\nconst initial: OrderStorageConfig = {\n persistKey: '',\n clearWhenPlaced: true,\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n}\n\nconst OrderStorageContext = createContext<OrderStorageConfig>(initial)\n\nexport default OrderStorageContext\n","import AddressesContext from '#context/AddressContext'\nimport useRapidForm from 'rapid-form'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\nimport BillingAddressFormContext from '#context/BillingAddressFormContext'\nimport { isEmpty } from 'lodash'\nimport { BaseError, CodeErrorType } from '#typings/errors'\nimport { AddressField } from '#reducers/AddressReducer'\nimport { AddressCountrySelectName, AddressInputName } from '#typings'\nimport components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport OrderStorageContext from '#context/OrderStorageContext'\n\nconst propTypes = components.BillingAddressForm.propTypes\n\ntype BillingAddressFormProps = {\n children: ReactNode\n reset?: boolean\n errorClassName?: string\n} & Omit<JSX.IntrinsicElements['form'], 'onSubmit'>\n\nconst BillingAddressForm: FunctionComponent<BillingAddressFormProps> = (\n props\n) => {\n const {\n children,\n errorClassName,\n autoComplete = 'on',\n reset = false,\n ...p\n } = props\n const { validation, values, errors, reset: resetForm } = useRapidForm()\n const { setAddressErrors, setAddress } = useContext(AddressesContext)\n const { saveAddressToCustomerAddressBook, order } = useContext(OrderContext)\n const { setLocalOrder } = useContext(OrderStorageContext)\n const ref = useRef<HTMLFormElement>(null)\n useEffect(() => {\n if (!isEmpty(errors)) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const { code, message } = errors[fieldName]\n if (['billing_address_state_code'].includes(fieldName)) {\n if (isEmpty(values['state_code'])) {\n // const k = formErrors.findIndex(({ field }) => field === fieldName)\n // k !== -1 && formErrors.splice(k, 0)\n delete errors[fieldName]\n } else {\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'billingAddress',\n field: fieldName,\n })\n }\n } else {\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'billingAddress',\n field: fieldName,\n })\n }\n }\n setAddressErrors(formErrors, 'billingAddress')\n } else if (!isEmpty(values)) {\n setAddressErrors([], 'billingAddress')\n for (const name in values) {\n const field = values[name]\n if (field?.value) {\n values[name.replace('billing_address_', '')] = field.value\n delete values[name]\n }\n if (field?.type === 'checkbox') {\n delete values[name]\n saveAddressToCustomerAddressBook('BillingAddress', field.checked)\n setLocalOrder(\n 'saveBillingAddressToCustomerAddressBook',\n field.checked\n )\n }\n }\n setAddress({ values, resource: 'billingAddress' })\n }\n if (reset && (!isEmpty(values) || !isEmpty(errors))) {\n saveAddressToCustomerAddressBook &&\n saveAddressToCustomerAddressBook('BillingAddress', false)\n if (ref) {\n ref.current?.reset()\n resetForm({ target: ref.current } as any)\n setAddressErrors([], 'billingAddress')\n setAddress({ values: {}, resource: 'billingAddress' })\n }\n }\n }, [errors, values, reset])\n const setValue = (\n name: AddressField | AddressInputName | AddressCountrySelectName,\n value: any\n ) => {\n const field: any = {\n [name.replace('billing_address_', '')]: value,\n }\n setAddress({ values: { ...values, ...field }, resource: 'billingAddress' })\n }\n const providerValues = {\n values,\n validation,\n setValue,\n errorClassName,\n // @ts-ignore\n requiresBillingInfo: order?.requiresBillingInfo || false,\n errors: errors as any,\n resetField: (name: string) =>\n resetForm({ currentTarget: ref.current } as any, name),\n }\n return (\n <BillingAddressFormContext.Provider value={providerValues}>\n <form ref={ref} autoComplete={autoComplete} {...p}>\n {children}\n </form>\n </BillingAddressFormContext.Provider>\n )\n}\n\nBillingAddressForm.propTypes = propTypes\n\nexport default BillingAddressForm\n","import React, { FunctionComponent, useContext } from 'react'\nimport OrderContext from '#context/OrderContext'\nimport components from '#config/components'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings/index'\n\nconst propTypes = components.CheckoutLink.propTypes\nconst defaultProps = components.CheckoutLink.defaultProps\nconst displayName = components.CheckoutLink.displayName\n\ntype CheckoutLinkChildrenProps = FunctionChildren<\n Omit<CheckoutLinkProps, 'children'> & {\n checkoutUrl: string\n }\n>\n\ntype CheckoutLinkProps = {\n children?: CheckoutLinkChildrenProps\n label?: string\n} & JSX.IntrinsicElements['a']\n\nconst CheckoutLink: FunctionComponent<CheckoutLinkProps> = (props) => {\n const { label, children, ...p } = props\n const { order } = useContext(OrderContext)\n const parentProps = {\n checkoutUrl: order?.checkoutUrl,\n label,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <a href={order?.checkoutUrl} {...p}>\n {label}\n </a>\n )\n}\n\nCheckoutLink.propTypes = propTypes\nCheckoutLink.defaultProps = defaultProps\nCheckoutLink.displayName = displayName\n\nexport default CheckoutLink\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\n\nconst propTypes = components.CommerceLayer.propTypes\n\ntype CommerceLayerProps = {\n children: ReactNode\n accessToken: string\n endpoint: string\n cache?: boolean\n}\n\nconst CommerceLayer: FunctionComponent<CommerceLayerProps> = (props) => {\n const { children, cache = false, ...p } = props\n return (\n <CommerceLayerContext.Provider value={{ ...p, cache }}>\n {children}\n </CommerceLayerContext.Provider>\n )\n}\n\nCommerceLayer.propTypes = propTypes\nCommerceLayer.defaultProps = {\n cache: false,\n}\n\nexport default CommerceLayer\n","import React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport customerReducer, {\n customerInitialState,\n getCustomerAddresses,\n getCustomerPaymentSources,\n} from '#reducers/CustomerReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport { saveCustomerUser } from '#reducers/CustomerReducer'\nimport { getOrderContext } from '#reducers/OrderReducer'\nimport CustomerContext from '#context/CustomerContext'\nimport { defaultCustomerContext } from '#context/CustomerContext'\nimport { BaseError } from '#typings/errors'\nimport { isEmpty } from 'lodash'\n\nconst propTypes = components.CustomerContainer.propTypes\nconst displayName = components.CustomerContainer.displayName\n\nexport type CustomerContainer = {\n children: ReactNode\n isGuest?: boolean\n}\nconst CustomerContainer: FunctionComponent<CustomerContainer> = (props) => {\n const { children, isGuest = false } = props\n const [state, dispatch] = useReducer(customerReducer, customerInitialState)\n const { order, getOrder } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (config.accessToken && isEmpty(state.addresses) && !isGuest) {\n getCustomerAddresses({ config, dispatch })\n }\n if (config.accessToken && order && isEmpty(state.payments) && !isGuest) {\n getCustomerPaymentSources({ config, dispatch, order })\n }\n return () => {\n dispatch({ type: 'setCustomerEmail', payload: {} })\n }\n }, [config.accessToken, order, isGuest])\n const contextValue = {\n isGuest,\n ...state,\n saveCustomerUser: async (customerEmail: string) => {\n await saveCustomerUser({\n config,\n customerEmail,\n dispatch,\n getOrder: getOrder as getOrderContext,\n order,\n })\n },\n setCustomerErrors: (errors: BaseError[]) =>\n defaultCustomerContext['setCustomerErrors'](errors, dispatch),\n setCustomerEmail: (customerEmail: string) =>\n defaultCustomerContext['setCustomerEmail'](customerEmail, dispatch),\n getCustomerPaymentSources: () =>\n getCustomerPaymentSources({ config, dispatch, order }),\n }\n return (\n <CustomerContext.Provider value={contextValue}>\n {children}\n </CustomerContext.Provider>\n )\n}\n\nCustomerContainer.propTypes = propTypes\nCustomerContainer.displayName = displayName\n\nexport default CustomerContainer\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseInput from './utils/BaseInput'\nimport components from '#config/components'\nimport { BaseInputComponentProps } from '#typings'\nimport useRapidForm from 'rapid-form'\nimport CustomerContext from '#context/CustomerContext'\nimport isEmpty from 'lodash/isEmpty'\nimport { BaseError, CodeErrorType } from '#typings/errors'\n\nconst propTypes = components.CustomerInput.propTypes\nconst displayName = components.CustomerInput.displayName\n\ntype CustomerInputProps = {\n name?: 'customer_email' | string\n type?: 'email' | string\n saveOnBlur?: boolean\n onBlur?: () => void\n errorClassName?: string\n} & Omit<BaseInputComponentProps, 'name' | 'type' | 'onBlur'> &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst CustomerInput: FunctionComponent<CustomerInputProps> = (props) => {\n const {\n name = 'customer_email',\n placeholder = '',\n required = true,\n saveOnBlur = false,\n type = 'email',\n value,\n onBlur,\n className,\n errorClassName,\n ...p\n } = props\n const { validation, values, errors } = useRapidForm({ fieldEvent: 'blur' })\n const { saveCustomerUser, setCustomerErrors, setCustomerEmail } =\n useContext(CustomerContext)\n const [hasError, setHasError] = useState(false)\n const handleOnBlur = async () => {\n if (saveOnBlur && isEmpty(errors) && !isEmpty(values)) {\n await saveCustomerUser(values[name].value)\n onBlur && onBlur()\n }\n }\n useEffect(() => {\n if (!isEmpty(errors)) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const { code, message } = errors[fieldName]\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'order',\n field: fieldName,\n })\n }\n if (!isEmpty(formErrors)) {\n setHasError(true)\n setCustomerErrors(formErrors)\n }\n } else if (!isEmpty(values)) {\n setCustomerErrors([])\n setCustomerEmail(values[name].value)\n setHasError(false)\n }\n return () => {\n setHasError(false)\n }\n }, [errors])\n const classNameComputed = `${className} ${hasError ? errorClassName : ''}`\n return (\n <BaseInput\n name={name}\n type={type}\n ref={validation}\n required={required}\n placeholder={placeholder}\n defaultValue={value}\n onBlur={handleOnBlur}\n className={classNameComputed}\n {...p}\n />\n )\n}\n\nCustomerInput.propTypes = propTypes\nCustomerInput.displayName = displayName\n\nexport default CustomerInput\n","import { createContext } from 'react'\nimport {\n DeliveryLeadTimeCollection,\n ShippingMethodCollection,\n} from '@commercelayer/js-sdk'\n\nexport interface InitialShippingMethodContext {\n shippingMethod: ShippingMethodCollection | Record<string, string>\n deliveryLeadTimeForShipment?:\n | DeliveryLeadTimeCollection\n | Record<string, string>\n | null\n currentShippingMethodId?: string\n}\n\nconst initial: InitialShippingMethodContext = {\n shippingMethod: {},\n deliveryLeadTimeForShipment: {},\n}\n\nconst ShippingMethodChildrenContext = createContext<InitialShippingMethodContext>(\n initial\n)\n\nexport default ShippingMethodChildrenContext\n","import React, {\n FunctionComponent,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.DeliveryLeadTime.propTypes\nconst displayName = components.DeliveryLeadTime.displayName\n\nexport type DeliveryLeadTimeField =\n | 'minHours'\n | 'maxHours'\n | 'minDays'\n | 'maxDays'\n\nexport type DeliveryLeadTimeComponentChildren = Omit<\n ShippingMethodPriceProps,\n 'children'\n>\n\nexport interface ShippingMethodPriceProps\n extends Partial<JSX.IntrinsicElements['span']> {\n children?: (props: DeliveryLeadTimeComponentChildren) => ReactNode\n type: DeliveryLeadTimeField\n text?: string\n}\n\nconst DeliveryLeadTime: FunctionComponent<ShippingMethodPriceProps> = (\n props\n) => {\n const { type, ...p } = props\n const [text, setText] = useState<string | number>()\n const { deliveryLeadTimeForShipment } = useContext(\n ShippingMethodChildrenContext\n )\n useEffect(() => {\n if (deliveryLeadTimeForShipment && deliveryLeadTimeForShipment[type])\n setText(deliveryLeadTimeForShipment[type])\n return () => {\n setText('')\n }\n }, [deliveryLeadTimeForShipment])\n const parentProps = {\n text,\n ...p,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{text}</span>\n )\n}\n\nDeliveryLeadTime.propTypes = propTypes\nDeliveryLeadTime.displayName = displayName\n\nexport default DeliveryLeadTime\n","import { keys } from 'lodash'\n\nexport interface GetAmountInterface<T = any> {\n (\n base: string,\n type: string,\n format: string,\n obj: Record<string, any>\n ): T extends number ? number : string\n}\n\nexport default function getAmount<T = string>(args: {\n base: string\n type: string\n format: string\n obj: Record<string, any>\n}): T extends number ? number : string {\n const { format, type, obj, base } = args\n let v: any\n keys(obj).map((k) => {\n const key = k.toLowerCase()\n const typeOne = `${format}${type}${base}`.toLowerCase()\n const typeTwo = `${type}${base}${format}`.toLowerCase()\n const typeThree = `${format}${base}${type}`.toLowerCase()\n const typeFourth = `${base}${type}${format}`.toLowerCase()\n if (key === typeOne) {\n v = obj[k]\n }\n if (key === typeTwo) {\n v = obj[k]\n }\n if (key === typeThree) {\n v = obj[k]\n }\n if (key === typeFourth) {\n v = obj[k]\n }\n })\n return v\n}\n","import OrderContext from '#context/OrderContext'\nimport getAmount from '#utils/getAmount'\nimport Parent from './Parent'\nimport React, {\n FunctionComponent,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport { PropsType } from '#utils/PropsType'\nimport { baseOrderPricePropTypes } from '#typings'\nimport { isEmpty } from 'lodash'\n\nexport type BaseOrderPriceProps = PropsType<typeof baseOrderPricePropTypes> &\n JSX.IntrinsicElements['span']\n\nconst BaseOrderPrice: FunctionComponent<BaseOrderPriceProps> = (props) => {\n const { format = 'formatted', base, type, children, ...p } = props\n const { order } = useContext(OrderContext)\n const [price, setPrice] = useState('')\n const [cents, setCents] = useState(0)\n useEffect(() => {\n const p = getAmount({\n base,\n type,\n format: format as string,\n obj: order || {},\n })\n const c = getAmount<number>({\n base,\n type,\n format: 'cents',\n obj: order || {},\n })\n setPrice(p)\n setCents(c)\n return (): void => {\n if (isEmpty(order)) {\n setPrice('')\n }\n }\n }, [order])\n const parentProps = {\n priceCents: cents,\n price,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{price}</span>\n )\n}\n\nBaseOrderPrice.propTypes = baseOrderPricePropTypes\n\nexport default BaseOrderPrice\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.DiscountAmount.propTypes\nconst defaultProps = components.DiscountAmount.defaultProps\nconst displayName = components.DiscountAmount.displayName\n\nconst DiscountAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"discount\" {...props} />\n}\n\nDiscountAmount.propTypes = propTypes\nDiscountAmount.defaultProps = defaultProps\nDiscountAmount.displayName = displayName\n\nexport default DiscountAmount\n","import baseReducer from '#utils/baseReducer'\nimport { CustomerCollection } from '@commercelayer/js-sdk'\nimport { BaseMetadata } from '#typings'\nimport CLayer, {\n MarketCollection,\n GiftCardRecipientCollection,\n} from '@commercelayer/js-sdk'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { isEmpty } from 'lodash'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { BaseError } from '#typings/errors'\n\nexport type GiftCardActionType =\n | 'setAvailability'\n | 'setGiftCardRecipient'\n | 'setGiftCardErrors'\n | 'setGiftCardLoading'\n\nexport interface GiftCardRecipientI {\n email: string\n firstName?: string\n lastName?: string\n referenceOrigin?: string\n reference?: string\n metadata?: BaseMetadata\n customer?: CustomerCollection\n}\n\nexport interface GiftCardI {\n currencyCode?: string\n balanceCent?: number\n balanceMaxCents?: number\n singleUse?: boolean\n rechargeable?: boolean\n imageUrl?: string\n expiresAt?: null | Date\n firstName?: string\n lastName?: string\n email?: string\n referenceOrigin?: string\n recipientEmail?: string\n reference?: string\n metadata?: BaseMetadata\n orderId?: string\n}\n\nexport interface GiftCardActionPayload extends GiftCardI {\n market?: MarketCollection\n giftCardRecipient?: GiftCardRecipientCollection\n errors?: BaseError[]\n loading?: boolean\n}\n\nexport interface GiftCardState extends GiftCardActionPayload {\n currencyCode: string\n balanceCent: number\n addGiftCardRecipient?: (\n values: GiftCardRecipientI & Record<string, any>\n ) => void\n addGiftCard?: (values: GiftCardI & Record<string, any>) => void\n addGiftCardError?: (errors: BaseError[]) => void\n addGiftCardLoading?: (loading: boolean) => void\n}\n\nexport interface GiftCardAction {\n type: GiftCardActionType\n payload: GiftCardActionPayload\n}\n\nexport const giftCardInitialState: GiftCardState = {\n currencyCode: '',\n balanceCent: 0,\n singleUse: false,\n rechargeable: true,\n loading: false,\n expiresAt: null,\n errors: [],\n}\n\nexport interface AddGiftCardRecipient {\n <V extends GiftCardRecipientI>(\n values: V,\n config: CommerceLayerConfig,\n dispatch: Dispatch<GiftCardAction>\n ): void\n}\n\nexport interface AddGiftCard {\n <V extends GiftCardI>(\n values: V,\n configParameters: {\n getOrder?: (id: string) => void\n createOrder?: () => Promise<string>\n config: CommerceLayerConfig\n dispatch: Dispatch<GiftCardAction>\n }\n ): void\n}\n\nexport interface AddGiftCardError {\n <V extends BaseError[]>(errors: V, dispatch: Dispatch<GiftCardAction>): void\n}\n\nexport interface AddGiftCardLoading {\n <V extends boolean>(loading: V, dispatch: Dispatch<GiftCardAction>): void\n}\n\nexport const addGiftCardRecipient: AddGiftCardRecipient = async (\n values,\n config,\n dispatch\n) => {\n try {\n const recipient = await CLayer.GiftCardRecipient.withCredentials(\n config\n ).create(values)\n dispatch({\n type: 'setGiftCardRecipient',\n payload: {\n giftCardRecipient: recipient,\n },\n })\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const addGiftCardLoading: AddGiftCardLoading = (loading, dispatch) => {\n dispatch({\n type: 'setGiftCardLoading',\n payload: {\n loading,\n },\n })\n}\n\nexport const addGiftCard: AddGiftCard = async (\n values,\n { config, dispatch, getOrder, createOrder }\n) => {\n try {\n addGiftCardLoading(true, dispatch)\n const { firstName, lastName, email, orderId, ...val } = values\n const giftCardValue = {\n recipientEmail: email,\n ...val,\n } as GiftCardI\n const recipientValues: any = {}\n const giftCard = await CLayer.GiftCard.withCredentials(config).create(\n giftCardValue\n )\n if (firstName) recipientValues['firstName'] = firstName\n if (lastName) recipientValues['lastName'] = lastName\n if (!isEmpty(recipientValues)) {\n await (\n await giftCard.withCredentials(config).giftCardRecipient()\n )?.update(recipientValues)\n }\n if (createOrder && getOrder) {\n const id = orderId || (await createOrder())\n if (id) {\n const order = CLayer.Order.build({ id })\n const item = CLayer.GiftCard.build({ id: giftCard.id })\n await CLayer.LineItem.withCredentials(config).create({\n quantity: 1,\n order,\n item,\n })\n getOrder && getOrder(id)\n }\n }\n dispatch({\n type: 'setGiftCardRecipient',\n payload: {\n ...giftCardValue,\n },\n })\n addGiftCardLoading(false, dispatch)\n } catch (r: any) {\n const errors = getErrorsByCollection(r, 'giftCard')\n dispatch({\n type: 'setGiftCardErrors',\n payload: {\n errors,\n },\n })\n addGiftCardLoading(false, dispatch)\n }\n}\n\nexport const addGiftCardError: AddGiftCardError = (errors, dispatch) => {\n dispatch({\n type: 'setGiftCardErrors',\n payload: {\n errors,\n },\n })\n}\n\nconst type: GiftCardActionType[] = [\n 'setAvailability',\n 'setGiftCardRecipient',\n 'setGiftCardErrors',\n 'setGiftCardLoading',\n]\n\nconst giftCardReducer = (\n state: GiftCardState,\n reducer: GiftCardAction\n): GiftCardState =>\n baseReducer<GiftCardState, GiftCardAction, GiftCardActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default giftCardReducer\n","import { createContext } from 'react'\nimport {\n giftCardInitialState,\n GiftCardState,\n GiftCardRecipientI,\n GiftCardI,\n} from '#reducers/GiftCardReducer'\nimport { BaseError } from '#typings/errors'\n\nexport interface GCContext extends GiftCardState {\n addGiftCardRecipient: (values: GiftCardRecipientI & object) => void\n addGiftCard: (values: GiftCardI & object) => void\n addGiftCardError: (errors: BaseError[]) => void\n addGiftCardLoading: (loading: boolean) => void\n}\n\nconst GiftCardContext = createContext(giftCardInitialState as GCContext)\n\nexport default GiftCardContext\n","import findIndex from 'lodash/findIndex'\nimport pick from 'lodash/pick'\nimport { BaseError } from '#typings/errors'\n\nexport interface CustomMessages {\n (messages: BaseError[], v: BaseError): { message?: string } | null\n}\n\nconst customMessages: CustomMessages = (messages = [], v) => {\n const i = findIndex(messages, pick(v, ['field', 'code', 'resource']))\n return i !== -1 ? messages[i] : null\n}\n\nexport default customMessages\n","import React, { ReactNode } from 'react'\nimport customMessages from '#utils/customMessages'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\nimport { BaseError, ResourceErrorType } from '#typings/errors'\n\nexport type AllErrorsParams = {\n allErrors: BaseError[]\n messages: BaseError[]\n field?: string\n props: JSX.IntrinsicElements['span']\n lineItem?: LineItemCollection | Record<string, any>\n resource?: ResourceErrorType\n returnHtml?: boolean\n}\n\nexport interface GetAllErrors {\n <P extends AllErrorsParams>(params: P): ReactNode\n}\n\nconst getAllErrors: GetAllErrors = (params) => {\n const {\n allErrors,\n messages,\n field,\n props,\n lineItem,\n resource,\n returnHtml = true,\n } = params\n return allErrors.map((v, k): ReactNode | void => {\n const objMsg = customMessages(messages, v)\n const text = objMsg?.message || v.message\n if (field) {\n if (v.resource === 'lineItem') {\n if (lineItem && v.id === lineItem['id']) {\n return returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n }\n if (field === v.field && resource === v.resource) {\n return returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n }\n if (resource === v.resource && !field) {\n return returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n })\n}\n\nexport default getAllErrors\n","import { createContext } from 'react'\nimport { LineItemState } from '#reducers/LineItemReducer'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\n\nexport interface LineItemContextValue extends LineItemState {\n lineItems: LineItemCollection[] | undefined\n}\n\nconst initial: LineItemContextValue = {\n lineItems: [],\n}\n\nconst LineItemContext = createContext<LineItemContextValue>(initial)\n\nexport default LineItemContext\n","import {\n PaymentResource,\n SDKPaymentResource,\n} from '#reducers/PaymentMethodReducer'\nimport CLayer from '@commercelayer/js-sdk'\nimport last from 'lodash/last'\nimport startCase from 'lodash/startCase'\n\ntype DynamicNaming = (\n resource: PaymentResource,\n _type?: 'payments'\n) => typeof CLayer[SDKPaymentResource]\n\nconst dynamicNaming: DynamicNaming = (resource, _type = 'payments') => {\n let resourceKey = startCase(resource).split(' ')\n const lastIndex = resourceKey.length - 1\n const lastItem = last(resourceKey)\n if (lastItem?.toLowerCase() === 'payments')\n resourceKey[lastIndex] = lastItem.replace('Payments', 'Payment')\n if (lastItem?.toLowerCase() === 'transfers')\n resourceKey[lastIndex] = lastItem.replace('Transfers', 'Transfer')\n return CLayer[resourceKey.join('') as SDKPaymentResource]\n}\n\nexport default dynamicNaming\n","import { AdyenPaymentConfig } from '#components/AdyenPayment'\nimport { BraintreeConfig } from '#components/BraintreePayment'\nimport { PaypalConfig } from '#components/PaypalPayment'\nimport { StripeConfig } from '#components/StripePayment'\nimport { WireTransferConfig } from '#components/WireTransferPayment'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { getOrderContext } from '#reducers/OrderReducer'\nimport { BaseError } from '#typings/errors'\nimport baseReducer from '#utils/baseReducer'\nimport dynamicNaming from '#utils/dynamicNaming'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport {\n Order,\n OrderCollection,\n PaymentMethod,\n PaymentMethodCollection,\n StripePaymentCollection,\n WireTransferCollection,\n} from '@commercelayer/js-sdk'\nimport camelCase from 'lodash/camelCase'\nimport has from 'lodash/has'\nimport isEmpty from 'lodash/isEmpty'\nimport { Dispatch, MutableRefObject } from 'react'\n\nexport type PaymentMethodActionType =\n | 'setErrors'\n | 'setPaymentMethods'\n | 'setPaymentMethodConfig'\n | 'setPaymentSource'\n | 'setPaymentRef'\n | 'setLoading'\n\nexport type PaymentRef = MutableRefObject<null | HTMLFormElement>\n\nexport interface PaymentMethodActionPayload {\n errors: BaseError[]\n paymentMethods: PaymentMethodCollection[]\n currentPaymentMethodType: PaymentResource\n currentPaymentMethodId: string\n currentPaymentMethodRef: PaymentRef\n config: PaymentMethodConfig\n paymentSource: PaymentSourceTypes\n loading: boolean\n}\n\nexport function setLoading({\n loading,\n dispatch,\n}: {\n loading: boolean\n dispatch?: Dispatch<PaymentMethodAction>\n}) {\n dispatch &&\n dispatch({\n type: 'setLoading',\n payload: { loading },\n })\n}\n\nexport type SetPaymentRef = (args: {\n ref: PaymentRef\n dispatch?: Dispatch<PaymentMethodAction>\n}) => void\n\nexport const setPaymentRef: SetPaymentRef = ({ ref, dispatch }) => {\n if (ref && dispatch) {\n dispatch({\n type: 'setPaymentRef',\n payload: {\n currentPaymentMethodRef: ref,\n },\n })\n }\n}\n\nexport type PaymentMethodState = Partial<PaymentMethodActionPayload>\n\nexport interface PaymentMethodAction {\n type: PaymentMethodActionType\n payload: Partial<PaymentMethodActionPayload>\n}\n\nexport const paymentMethodInitialState: PaymentMethodState = {\n errors: [],\n}\n\nexport interface SetPaymentMethodErrors {\n <V extends BaseError[]>(\n errors: V,\n dispatch?: Dispatch<PaymentMethodAction>\n ): void\n}\n\nexport const setPaymentMethodErrors: SetPaymentMethodErrors = (\n errors,\n dispatch\n) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\ntype GetPaymentMethods = (args: {\n order: OrderCollection\n dispatch: Dispatch<PaymentMethodAction>\n config: CommerceLayerConfig\n state: PaymentMethodState\n}) => Promise<void>\n\nexport const getPaymentMethods: GetPaymentMethods = async ({\n order,\n dispatch,\n config,\n state,\n}) => {\n try {\n const payload: PaymentMethodState = {}\n if (isEmpty(state.paymentMethods)) {\n const paymentMethods = await order\n .withCredentials(config)\n .loadAvailablePaymentMethods()\n payload.paymentMethods = paymentMethods?.toArray()\n }\n const paymentMethod = await order\n ?.withCredentials(config)\n .loadPaymentMethod()\n const paymentSource: any = (\n await Order.withCredentials(config)\n .includes('paymentSource')\n .find(order.id)\n ).paymentSource()\n dispatch({\n type: 'setPaymentMethods',\n payload: {\n ...payload,\n currentPaymentMethodId: paymentMethod?.id,\n currentPaymentMethodType:\n paymentMethod?.paymentSourceType as PaymentResource,\n paymentSource,\n },\n })\n } catch (error: any) {\n console.error(error)\n const errors = getErrorsByCollection(error, 'paymentMethod')\n setPaymentMethodErrors(errors, dispatch)\n }\n}\n\nexport type PaymentResource =\n | 'adyen_payments'\n | 'braintree_payments'\n | 'external_payments'\n | 'paypal_payments'\n | 'stripe_payments'\n | 'wire_transfers'\n\nexport type PaymentResourceKey =\n | 'braintreePayment'\n | 'stripePayment'\n | 'wireTransfer'\n | 'paypalPayment'\n | 'adyenPayment'\n// | 'externalPayment'\n// | 'checkoutPayment'\n\nexport type SDKPaymentResource =\n | 'AdyenPayment'\n | 'BraintreePayment'\n | 'ExternalPayment'\n | 'PaypalPayment'\n | 'StripePayment'\n | 'WireTransfer'\n\nexport type SetPaymentMethod = (args: {\n config?: CommerceLayerConfig\n dispatch?: Dispatch<PaymentMethodAction>\n getOrder?: getOrderContext\n setOrderErrors?: (collection: any) => { success: boolean }\n order?: OrderCollection\n paymentMethodId: string\n paymentResource?: PaymentResource\n}) => Promise<void>\n\nexport const setPaymentMethod: SetPaymentMethod = async ({\n config,\n dispatch,\n order,\n paymentMethodId,\n getOrder,\n setOrderErrors,\n paymentResource,\n}) => {\n try {\n if (config && order && dispatch) {\n localStorage.removeItem('savePaymentSourceToCustomerWallet')\n const paymentMethod = PaymentMethod.build({ id: paymentMethodId })\n const patchOrder = Order.build({\n id: order.id,\n paymentMethod,\n })\n // @ts-ignore\n await patchOrder.withCredentials(config).save()\n getOrder && (await getOrder(order.id))\n dispatch({\n type: 'setPaymentMethods',\n payload: {\n currentPaymentMethodId: paymentMethodId,\n currentPaymentMethodType: paymentResource,\n errors: [],\n },\n })\n setOrderErrors && setOrderErrors([])\n }\n } catch (error: any) {\n const errors = getErrorsByCollection(error, 'paymentMethod')\n console.error('Set payment method', errors)\n setPaymentMethodErrors(errors, dispatch)\n }\n}\n\ntype PaymentSourceTypes =\n | (StripePaymentCollection & WireTransferCollection)\n | (StripePaymentCollection | WireTransferCollection)\n\nexport type SetPaymentSourceResponse = {\n order: OrderCollection\n paymentSource: PaymentSourceTypes\n} | null\n\nexport type SetPaymentSource = (\n args: {\n config?: CommerceLayerConfig\n dispatch?: Dispatch<PaymentMethodAction>\n getOrder?: getOrderContext\n attributes?: Record<\n string,\n | string\n | Record<string, string | number | undefined | Record<string, string>>\n >\n order?: OrderCollection\n paymentResource: PaymentResource\n paymentSourceId?: string\n customerPaymentSourceId?: string\n rawResponse?: boolean\n } & PaymentMethodState\n) => Promise<SetPaymentSourceResponse>\n\nexport const setPaymentSource: SetPaymentSource = async ({\n config,\n dispatch,\n getOrder,\n attributes = {},\n order,\n paymentResource,\n customerPaymentSourceId,\n paymentSourceId,\n currentPaymentMethodId,\n currentPaymentMethodType,\n rawResponse,\n}) => {\n try {\n if (config && order) {\n let paymentSource: any\n const resourceSdk = dynamicNaming(paymentResource)\n const o = Order.build({ id: order.id })\n if (!customerPaymentSourceId) {\n if (!paymentSourceId) {\n paymentSource = await resourceSdk.withCredentials(config).create({\n ...attributes,\n order: o,\n })\n } else {\n paymentSource = !rawResponse\n ? await resourceSdk\n .build({ id: paymentSourceId })\n .withCredentials(config)\n .update({ ...attributes })\n : await resourceSdk\n .build({ id: paymentSourceId })\n .withCredentials(config)\n // @ts-ignore\n .update({ ...attributes }, null, { rawResponse })\n if (rawResponse)\n paymentSource = await resourceSdk\n .withCredentials(config)\n .find(paymentSource.data.id)\n }\n } else {\n paymentSource = (\n await Order.includes('paymentSource')\n .build({ id: order.id })\n .withCredentials(config)\n .update({\n _customerPaymentSourceId: customerPaymentSourceId,\n })\n ).paymentSource()\n }\n if (order?.billingAddress() === null)\n await order.withCredentials(config).loadBillingAddress()\n if (order?.paymentSource() === null)\n await order.withCredentials(config).loadPaymentSource()\n dispatch &&\n dispatch({\n type: 'setPaymentSource',\n payload: { paymentSource, errors: [] },\n })\n if (getOrder) order = (await getOrder(order?.id)) as OrderCollection\n return {\n order,\n paymentSource,\n }\n }\n } catch (error: any) {\n const errors = getErrorsByCollection(error, 'paymentMethod', {\n id: currentPaymentMethodId,\n field: currentPaymentMethodType,\n })\n console.error('Set payment source:', errors)\n setPaymentMethodErrors(errors, dispatch)\n }\n return null\n}\n\nexport type UpdatePaymentSource = (args: {\n id: string\n attributes: Record<string, any>\n paymentResource: PaymentResource\n config?: CommerceLayerConfig\n dispatch?: Dispatch<PaymentMethodAction>\n}) => Promise<void>\n\nexport const updatePaymentSource: UpdatePaymentSource = async ({\n id,\n attributes,\n config,\n dispatch,\n paymentResource,\n}) => {\n if (config) {\n try {\n const resourceSdk = dynamicNaming(paymentResource)\n const paymentSource = await resourceSdk\n .build({ id })\n .withCredentials(config)\n .update(attributes)\n dispatch &&\n dispatch({\n type: 'setPaymentSource',\n payload: { paymentSource },\n })\n } catch (err) {\n console.error('Update payment source:', err)\n }\n }\n}\n\nexport type DestroyPaymentSource = (args: {\n paymentSourceId: string\n paymentResource: PaymentResource\n dispatch?: Dispatch<PaymentMethodAction>\n}) => Promise<void>\n\nexport const destroyPaymentSource: DestroyPaymentSource = async ({\n paymentSourceId,\n paymentResource,\n dispatch,\n}) => {\n if (paymentSourceId && paymentResource) {\n try {\n dispatch &&\n dispatch({\n type: 'setPaymentSource',\n payload: { paymentSource: undefined },\n })\n } catch (error: any) {\n const errors = getErrorsByCollection(error, 'paymentMethod')\n setPaymentMethodErrors(errors, dispatch)\n }\n }\n}\n\nexport type PaymentMethodConfig = {\n stripePayment?: StripeConfig\n braintreePayment?: BraintreeConfig\n wireTransfer?: Partial<WireTransferConfig>\n paypalPayment?: PaypalConfig\n adyenPayment?: AdyenPaymentConfig\n}\n\ntype SetPaymentMethodConfig = (\n config: PaymentMethodConfig,\n dispatch: Dispatch<PaymentMethodAction>\n) => void\n\nexport const setPaymentMethodConfig: SetPaymentMethodConfig = (\n config,\n dispatch\n) => {\n dispatch({\n type: 'setPaymentMethodConfig',\n payload: { config },\n })\n}\n\nexport function getPaymentConfig<K extends PaymentResourceKey>(\n paymentResource: PaymentResource,\n config: PaymentMethodConfig\n): PaymentMethodConfig[K] {\n const resource = camelCase(paymentResource)\n .replace('Payments', 'Payment')\n .replace('Transfers', 'Transfer') as K\n return !isEmpty(config) && has(config, resource)\n ? config[resource]\n : undefined\n}\n\nconst type: PaymentMethodActionType[] = [\n 'setErrors',\n 'setPaymentMethodConfig',\n 'setPaymentMethods',\n 'setPaymentSource',\n 'setPaymentRef',\n 'setLoading',\n]\n\nconst paymentMethodReducer = (\n state: PaymentMethodState,\n reducer: PaymentMethodAction\n): PaymentMethodState =>\n baseReducer<\n PaymentMethodState,\n PaymentMethodAction,\n PaymentMethodActionType[]\n >(state, reducer, type)\n\nexport default paymentMethodReducer\n","import { createContext } from 'react'\nimport {\n UpdatePaymentSource,\n updatePaymentSource,\n} from '../reducers/PaymentMethodReducer'\nimport {\n PaymentMethodState,\n SetPaymentMethodErrors,\n setPaymentMethodErrors,\n SetPaymentSource,\n setPaymentSource,\n SetPaymentMethod,\n setPaymentMethod,\n destroyPaymentSource,\n DestroyPaymentSource,\n SetPaymentRef,\n setPaymentRef,\n setLoading,\n} from '#reducers/PaymentMethodReducer'\n\ntype DefaultContext = {\n setPaymentMethodErrors: SetPaymentMethodErrors\n setPaymentMethod: SetPaymentMethod\n setPaymentSource: SetPaymentSource\n setPaymentRef: SetPaymentRef\n destroyPaymentSource: DestroyPaymentSource\n updatePaymentSource: UpdatePaymentSource\n setLoading: typeof setLoading\n} & PaymentMethodState\n\nexport const defaultPaymentMethodContext = {\n setPaymentMethodErrors,\n setPaymentMethod,\n setPaymentSource,\n setPaymentRef,\n destroyPaymentSource,\n updatePaymentSource,\n setLoading,\n}\n\nconst PaymentMethodContext = createContext<DefaultContext>(\n defaultPaymentMethodContext\n)\n\nexport default PaymentMethodContext\n","import { createContext } from 'react'\nimport { PaymentMethodCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialPaymentMethodChildrenContext {\n payment?: PaymentMethodCollection\n clickableContainer?: boolean\n paymentSelected?: string\n setPaymentSelected?: (paymentId: string) => void\n}\n\nconst initial: InitialPaymentMethodChildrenContext = {}\n\nconst PaymentMethodChildrenContext =\n createContext<InitialPaymentMethodChildrenContext>(initial)\n\nexport default PaymentMethodChildrenContext\n","import React, { FunctionComponent, useContext, Fragment, useMemo } from 'react'\nimport Parent from './utils/Parent'\nimport GiftCardContext from '#context/GiftCardContext'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\nimport getAllErrors from './utils/getAllErrors'\nimport LineItemContext from '#context/LineItemContext'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport { ErrorComponentProps } from '#typings/errors'\nimport components from '#config/components'\nimport CustomerContext from '#context/CustomerContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\n\nconst propTypes = components.Errors.propTypes\nconst displayName = components.Errors.displayName\n\nexport type ErrorsProps = ErrorComponentProps & JSX.IntrinsicElements['span']\n\nconst Errors: FunctionComponent<ErrorsProps> = (props) => {\n const { children, messages = [], resource, field, ...p } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { errors: orderErrors } = useContext(OrderContext)\n const { errors: giftCardErrors } = useContext(GiftCardContext)\n const { errors: lineItemErrors } = useContext(LineItemContext)\n const { errors: addressErrors } = useContext(AddressContext)\n const { errors: customerErrors } = useContext(CustomerContext)\n const {\n errors: paymentMethodErrors,\n currentPaymentMethodType,\n currentPaymentMethodId,\n } = useContext(PaymentMethodContext)\n const { lineItem } = useContext(LineItemChildrenContext)\n const allErrors = useMemo(\n () => [\n ...(giftCardErrors || []),\n ...(orderErrors || []),\n ...(lineItemErrors || []),\n ...(addressErrors || []),\n ...(customerErrors || []),\n ...(paymentMethodErrors?.filter(\n (v) =>\n v.field === currentPaymentMethodType &&\n payment?.id === currentPaymentMethodId\n ) || []),\n ],\n [\n giftCardErrors,\n orderErrors,\n lineItemErrors,\n addressErrors,\n customerErrors,\n paymentMethodErrors,\n ]\n )\n const msgErrors = getAllErrors({\n allErrors,\n field,\n messages,\n props: p,\n lineItem,\n resource,\n returnHtml: !children,\n })\n const parentProps = { messages, resource, field, errors: msgErrors, ...p }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <Fragment>{msgErrors}</Fragment>\n )\n}\n\nErrors.propTypes = propTypes\nErrors.displayName = displayName\n\nexport default Errors\n","import ExternalFunctionContext, {\n callExternalFunction,\n} from '#context/ExternalFunctionContext'\nimport React, { FunctionComponent, ReactNode } from 'react'\nimport components from '#config/components'\n\nconst propTypes = components.ExternalFunction.propTypes\nconst displayName = components.ExternalFunction.displayName\n\ntype Props = {\n children: ReactNode\n url: string\n}\n\nconst ExternalFunction: FunctionComponent<Props> = ({ children, url }) => {\n return (\n <ExternalFunctionContext.Provider value={{ url, callExternalFunction }}>\n {children}\n </ExternalFunctionContext.Provider>\n )\n}\n\nExternalFunction.propTypes = propTypes\nExternalFunction.displayName = displayName\n\nexport default ExternalFunction\n","import isEmpty from 'lodash/isEmpty'\nimport isString from 'lodash/isString'\nimport without from 'lodash/without'\nimport keys from 'lodash/keys'\nimport map from 'lodash/map'\nimport get from 'lodash/get'\nimport { BaseState } from '#typings/index'\nimport { ResourceErrorType, BaseError } from '#typings/errors'\nimport {\n AddressField,\n addressFields,\n AddressSchema,\n} from '#reducers/AddressReducer'\n\nconst EMAIL_PATTERN = /[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,3}$/\n\ntype FormField = HTMLInputElement | HTMLSelectElement\n\nexport interface ValidateFormFields {\n <R extends string[]>(\n fields: HTMLFormControlsCollection,\n required: R,\n resourceType: ResourceErrorType\n ): {\n errors: BaseError[]\n values: BaseState\n }\n}\n\nexport interface ValidateValue {\n <\n V extends string | boolean,\n N extends string,\n T extends string,\n B extends ResourceErrorType\n >(\n val: V,\n name: N,\n type: T,\n resourceType: B\n ): BaseError | Record<string, any>\n}\n\nexport const validateValue: ValidateValue = (val, name, type, resourceType) => {\n if (!val) {\n return {\n field: name,\n code: 'VALIDATION_ERROR',\n message: `${name} - is required`,\n resourceType,\n }\n }\n if (type === 'email' && isString(val) && !val.match(EMAIL_PATTERN)) {\n return {\n field: name,\n code: 'VALIDATION_ERROR',\n message: `${name} - is not valid`,\n resourceType,\n }\n }\n return {}\n}\n\nconst validateFormFields: ValidateFormFields = (\n fields,\n required,\n resourceType\n) => {\n const errors: BaseError[] = []\n let values = { metadata: {} }\n map(fields, (v: FormField) => {\n const isTick = !!get(v, 'checked')\n const val = isTick ? isTick : v.value === 'on' ? false : v.value\n const attrName = v.getAttribute('name')\n if ((attrName && required.indexOf(attrName) !== -1) || v.required) {\n const error = validateValue(val, v.name, v.type, resourceType)\n if (!isEmpty(error)) {\n errors.push(error as BaseError)\n }\n values = { ...values, [`${v.name}`]: val }\n }\n if (v.getAttribute('name')) {\n const isMetadata = !!v.getAttribute('data-metadata')\n values = isMetadata\n ? {\n ...values,\n metadata: { ...values.metadata, [`${v.name}`]: val },\n }\n : { ...values, [`${v.name}`]: val }\n }\n })\n return { errors, values }\n}\n\nexport interface FieldsExist {\n (address: AddressSchema, schema?: AddressField[]): boolean\n}\n\nexport const fieldsExist: FieldsExist = (address, schema = addressFields) => {\n if (!address['business']) {\n const required = without(schema, 'line_2', 'company')\n const validAddress = keys(address).filter((k) =>\n required.includes(k as any)\n )\n return required.length > validAddress.length\n } else {\n const required = without(schema, 'first_name', 'last_name')\n const validAddress = keys(address).filter((k) =>\n required.includes(k as any)\n )\n return required.length > validAddress.length\n }\n}\n\nexport default validateFormFields\n","import React, {\n FunctionComponent,\n Fragment,\n useRef,\n useContext,\n RefObject,\n ReactNode,\n} from 'react'\nimport validateFormFields from '#utils/validateFormFields'\nimport { isEmpty } from 'lodash'\nimport GiftCardContext from '#context/GiftCardContext'\nimport { GiftCardI } from '#reducers/GiftCardReducer'\nimport components from '#config/components'\nimport { BaseState } from '#typings/index'\n\ntype RequiredFields = 'currencyCode' | 'balanceCents'\n\nconst propTypes = components.GiftCard.propTypes\nconst defaultProps = components.GiftCard.defaultProps\nconst displayName = components.GiftCard.displayName\n\ntype GiftCardProps = {\n children: ReactNode\n onSubmit?: (values: BaseState) => void\n} & JSX.IntrinsicElements['form']\n\nconst GiftCard: FunctionComponent<GiftCardProps> = (props) => {\n const { children, onSubmit } = props\n const name = 'giftCardForm'\n const ref: RefObject<HTMLFormElement> = useRef<HTMLFormElement>(null)\n const { addGiftCard, addGiftCardError } = useContext(GiftCardContext)\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>): void => {\n e.preventDefault()\n const currentForm = ref.current\n const elements = currentForm?.elements as HTMLFormControlsCollection\n const { errors, values } = validateFormFields<RequiredFields[]>(\n elements,\n ['currencyCode', 'balanceCents'],\n 'giftCard'\n )\n if (isEmpty(errors)) {\n addGiftCard(values as GiftCardI)\n currentForm?.reset()\n if (onSubmit) {\n onSubmit(values)\n }\n } else {\n addGiftCardError(errors)\n }\n }\n return (\n <Fragment>\n <form key={name} name={name} ref={ref} onSubmit={handleSubmit}>\n {children}\n </form>\n </Fragment>\n )\n}\n\nGiftCard.propTypes = propTypes\nGiftCard.defaultProps = defaultProps\nGiftCard.displayName = displayName\n\nexport default GiftCard\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.GiftCardAmount.propTypes\nconst displayName = components.GiftCardAmount.displayName\n\nconst GiftCardAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"giftcard\" {...props} />\n}\n\nGiftCardAmount.propTypes = propTypes\nGiftCardAmount.displayName = displayName\n\nexport default GiftCardAmount\n","import React, {\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n} from 'react'\nimport GiftCardContext from '#context/GiftCardContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport giftCardReducer, {\n giftCardInitialState,\n addGiftCardRecipient,\n addGiftCard,\n addGiftCardError,\n addGiftCardLoading,\n} from '#reducers/GiftCardReducer'\nimport OrderContext from '#context/OrderContext'\nimport components from '#config/components'\n\nconst propTypes = components.GiftCardContainer.propTypes\nconst displayName = components.GiftCardContainer.displayName\n\nexport type GiftCardContainer = {\n children: ReactNode\n}\n\nconst GiftCardContainer: FunctionComponent<GiftCardContainer> = (props) => {\n const { children } = props\n const [state, dispatch] = useReducer(giftCardReducer, giftCardInitialState)\n const config = useContext(CommerceLayerContext)\n const { orderId, getOrder, createOrder } = useContext(OrderContext)\n const giftCardValue = {\n ...state,\n addGiftCardRecipient: (values: any): void =>\n addGiftCardRecipient(values, config, dispatch),\n addGiftCard: (values: any): void =>\n addGiftCard(\n { ...values, orderId },\n { config, dispatch, getOrder, createOrder }\n ),\n addGiftCardError: (errors: any): void => addGiftCardError(errors, dispatch),\n addGiftCardLoading: (loading: boolean): void =>\n addGiftCardLoading(loading, dispatch),\n }\n return (\n <GiftCardContext.Provider value={giftCardValue}>\n {children}\n </GiftCardContext.Provider>\n )\n}\n\nGiftCardContainer.propTypes = propTypes\nGiftCardContainer.displayName = displayName\n\nexport default GiftCardContainer\n","import React, { FunctionComponent } from 'react'\nimport BaseSelect from './utils/BaseSelect'\nimport currencyOptions from '#config/currency.json'\nimport components from '#config/components'\nimport { BaseSelectComponentProps } from '#typings'\n\nconst propTypes = components.GiftCardCurrencySelector.propTypes\nconst defaultProps = components.GiftCardCurrencySelector.defaultProps\nconst displayName = components.GiftCardCurrencySelector.displayName\n\ntype GiftCardCurrencySelectorProps = Omit<\n BaseSelectComponentProps,\n 'options' | 'name'\n> & {\n required?: boolean\n} & Pick<JSX.IntrinsicElements['select'], 'className' | 'id' | 'style'>\n\nconst GiftCardCurrencySelector: FunctionComponent<GiftCardCurrencySelectorProps> = (\n props\n) => {\n return <BaseSelect options={currencyOptions} name=\"currencyCode\" {...props} />\n}\n\nGiftCardCurrencySelector.propTypes = propTypes\nGiftCardCurrencySelector.defaultProps = defaultProps\nGiftCardCurrencySelector.displayName = displayName\n\nexport default GiftCardCurrencySelector\n","import React, { FunctionComponent } from 'react'\nimport BaseInput from './utils/BaseInput'\nimport components from '#config/components'\nimport { BaseInputComponentProps, GiftCardInputName } from '#typings'\n\nconst propTypes = components.GiftCardInput.propTypes\nconst displayName = components.GiftCardInput.displayName\n\nexport type GiftCardInputProps = {\n name: GiftCardInputName\n} & Omit<BaseInputComponentProps, 'name'> &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst GiftCardInput: FunctionComponent<GiftCardInputProps> = (props) => {\n const { placeholder = '', ...p } = props\n return <BaseInput placeholder={placeholder} {...p} />\n}\n\nGiftCardInput.propTypes = propTypes\nGiftCardInput.displayName = displayName\n\nexport default GiftCardInput\n","import React, { FunctionComponent, useContext } from 'react'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings'\nimport Parent from './utils/Parent'\nimport OrderContext from '#context/OrderContext'\nimport { CodeType, OrderCodeType } from '#reducers/OrderReducer'\nimport { has, isEmpty } from 'lodash'\n\nconst propTypes = components.GiftCardOrCouponCode.propTypes\nconst displayName = components.GiftCardOrCouponCode.displayName\n\ntype GiftCardOrCouponCodeChildrenProps = FunctionChildren<\n Omit<GiftCardOrCouponCodeProps, 'children'> & {\n code?: string\n hide?: boolean\n }\n>\n\ntype GiftCardOrCouponCodeProps = {\n type?: CodeType\n children?: GiftCardOrCouponCodeChildrenProps\n} & JSX.IntrinsicElements['span']\n\nconst GiftCardOrCouponCode: FunctionComponent<GiftCardOrCouponCodeProps> = ({\n children,\n type,\n ...props\n}) => {\n const { order } = useContext(OrderContext)\n let codeType = type && (`${type}Code` as OrderCodeType)\n if (!type && order && has(order, 'couponCode') && !isEmpty(order.couponCode))\n codeType = 'couponCode'\n else if (!type) codeType = 'giftCardCode'\n const code = order && codeType ? order[codeType] : ''\n const hide = order && code ? false : true\n const parentProps = {\n ...props,\n code,\n hide,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : hide ? null : (\n <span {...props}>{code}</span>\n )\n}\n\nGiftCardOrCouponCode.propTypes = propTypes\nGiftCardOrCouponCode.displayName = displayName\n\nexport default GiftCardOrCouponCode\n","import { createContext, RefObject } from 'react'\n\ntype DefaultContext = {\n validation?: () => RefObject<any>\n setValue?: (name: string, value: string) => void\n}\n\nconst CouponAndGiftCardFormContext = createContext<DefaultContext>({})\n\nexport default CouponAndGiftCardFormContext\n","import useRapidForm from 'rapid-form'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\nimport CouponAndGiftCardFormContext from '#context/CouponAndGiftCardFormContext'\nimport OrderContext from '#context/OrderContext'\nimport isEmpty from 'lodash/isEmpty'\nimport components from '#config/components'\nimport camelCase from 'lodash/camelCase'\nimport dropWhile from 'lodash/dropWhile'\nimport has from 'lodash/has'\nimport { findIndex } from 'lodash'\n\nconst propTypes = components.GiftCardOrCouponForm.propTypes\n\ntype GiftCardOrCouponFormProps = {\n children: ReactNode\n reset?: boolean\n onSubmit?: (response: { success: boolean }) => void\n} & Omit<JSX.IntrinsicElements['form'], 'onSubmit'>\n\nconst GiftCardOrCouponForm: FunctionComponent<GiftCardOrCouponFormProps> = (\n props\n) => {\n const { children, autoComplete = 'on', reset = false, onSubmit, ...p } = props\n const { validation, values } = useRapidForm()\n const { setGiftCardOrCouponCode, order, errors, setOrderErrors } = useContext(\n OrderContext\n )\n const ref = useRef<HTMLFormElement>(null)\n const inputName = 'gift_card_or_coupon_code'\n useEffect(() => {\n if (\n values[inputName]?.value === '' &&\n findIndex(errors, { field: camelCase(inputName) }) !== -1\n ) {\n const err = dropWhile(errors, (i) => i.field === camelCase(inputName))\n setOrderErrors(err)\n onSubmit && onSubmit({ success: true })\n }\n }, [values])\n const handleSubmit = async (e: React.ChangeEvent<HTMLFormElement>) => {\n e.preventDefault()\n const code = has(values, inputName) ? values[inputName].value : undefined\n if (code) {\n const { success } = await setGiftCardOrCouponCode({ code })\n onSubmit && onSubmit({ success })\n success && e.target.reset()\n }\n }\n return order?.giftCardOrCouponCode || isEmpty(order) ? null : (\n <CouponAndGiftCardFormContext.Provider value={{ validation }}>\n <form\n ref={ref}\n autoComplete={autoComplete}\n onSubmit={handleSubmit}\n {...p}\n >\n {children}\n </form>\n </CouponAndGiftCardFormContext.Provider>\n )\n}\n\nGiftCardOrCouponForm.propTypes = propTypes\n\nexport default GiftCardOrCouponForm\n","import React, { FunctionComponent, useContext } from 'react'\nimport components from '#config/components'\nimport BaseInput from './utils/BaseInput'\nimport CouponAndGiftCardFormContext from '#context/CouponAndGiftCardFormContext'\nimport { BaseInputComponentProps } from '#typings'\n\nconst propTypes = components.GiftCardOrCouponInput.propTypes\nconst displayName = components.GiftCardOrCouponInput.displayName\n\nexport type GiftCardOrCouponInputProps = {\n name?: 'gift_card_or_coupon_code'\n type?: 'text'\n} & Omit<BaseInputComponentProps, 'name' | 'type'> &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst GiftCardOrCouponInput: FunctionComponent<GiftCardOrCouponInputProps> = (\n props\n) => {\n const { placeholder = '', required, value, ...p } = props\n const { validation } = useContext(CouponAndGiftCardFormContext)\n return (\n <BaseInput\n type=\"text\"\n name=\"gift_card_or_coupon_code\"\n ref={validation}\n required={required !== undefined ? required : true}\n placeholder={placeholder}\n defaultValue={value}\n {...p}\n />\n )\n}\n\nGiftCardOrCouponInput.propTypes = propTypes\nGiftCardOrCouponInput.displayName = displayName\n\nexport default GiftCardOrCouponInput\n","import React, { FunctionComponent, ReactNode, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport OrderContext from '#context/OrderContext'\nimport { CodeType, OrderCodeType } from '#reducers/OrderReducer'\nimport { has, isEmpty } from 'lodash'\n\nconst propTypes = components.GiftCardOrCouponRemoveButton.propTypes\nconst displayName = components.GiftCardOrCouponRemoveButton.displayName\n\ntype GiftCardOrCouponRemoveButtonChildrenProps = FunctionChildren<\n Omit<GiftCardOrCouponRemoveButtonProps, 'children'> & {\n codeType?: OrderCodeType\n hide?: boolean\n handleClick?: () => void\n }\n>\n\ntype GiftCardOrCouponRemoveButtonProps = {\n type?: CodeType\n children?: GiftCardOrCouponRemoveButtonChildrenProps\n label?: string | ReactNode\n onClick?: () => void\n} & Omit<JSX.IntrinsicElements['button'], 'type'>\n\nconst GiftCardOrCouponRemoveButton: FunctionComponent<GiftCardOrCouponRemoveButtonProps> = (\n props\n) => {\n const { children, label = 'Remove', onClick, type, ...p } = props\n const { order, removeGiftCardOrCouponCode } = useContext(OrderContext)\n let codeType = `${type}Code` as OrderCodeType\n if (!type && order && has(order, 'couponCode') && !isEmpty(order.couponCode))\n codeType = 'couponCode'\n else if (!type) codeType = 'giftCardCode'\n const code = order && codeType ? order[codeType] : ''\n const hide = order && code ? false : true\n const handleClick = () => {\n removeGiftCardOrCouponCode && removeGiftCardOrCouponCode({ codeType })\n onClick && onClick()\n }\n const parentProps = {\n ...p,\n label,\n handleClick,\n codeType,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : hide ? null : (\n <button type=\"button\" onClick={handleClick} {...p}>\n {label}\n </button>\n )\n}\n\nGiftCardOrCouponRemoveButton.propTypes = propTypes\nGiftCardOrCouponRemoveButton.displayName = displayName\n\nexport default GiftCardOrCouponRemoveButton\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\n\nconst propTypes = components.GiftCardOrCouponSubmit.propTypes\nconst displayName = components.GiftCardOrCouponSubmit.displayName\n\ntype GiftCardOrCouponSubmitChildrenProps = FunctionChildren<\n Omit<GiftCardOrCouponSubmitProps, 'children'>\n>\n\ntype GiftCardOrCouponSubmitProps = {\n children?: GiftCardOrCouponSubmitChildrenProps\n label?: string | ReactNode\n} & JSX.IntrinsicElements['button']\n\nconst GiftCardOrCouponSubmit: FunctionComponent<GiftCardOrCouponSubmitProps> = (\n props\n) => {\n const { children, label = 'Submit', ...p } = props\n const parentProps = {\n ...p,\n label,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button type=\"submit\" {...p}>\n {label}\n </button>\n )\n}\n\nGiftCardOrCouponSubmit.propTypes = propTypes\nGiftCardOrCouponSubmit.displayName = displayName\n\nexport default GiftCardOrCouponSubmit\n","import { BaseUnsetState } from '#typings/index'\nimport { SkuCollection, PriceCollection } from '@commercelayer/js-sdk'\nimport { Dispatch } from 'react'\nimport baseReducer from '#utils/baseReducer'\n\nexport interface Items {\n [skuCode: string]: SkuCollection\n}\n\nexport interface ItemPrices {\n [skuCode: string]: PriceCollection\n}\n\nexport interface ItemQuantity {\n [skuCode: string]: number\n}\n\nexport interface ItemOption {\n [key: string]: {\n skuOptionId: string\n options: {\n [key: string]: string\n }\n }\n}\n\nexport interface ItemOptions {\n [skuCode: string]: ItemOption\n}\n\nexport type CustomLineItem = {\n name?: string\n imageUrl?: string | null\n}\n\nexport interface CustomLineItems {\n [skuCode: string]: CustomLineItem\n}\n\ntype ItemParams = {\n type: ItemActionType\n key:\n | 'items'\n | 'item'\n | 'quantity'\n | 'option'\n | 'prices'\n | 'lineItem'\n | 'lineItems'\n | 'skuCode'\n}\n\ntype DataType =\n | Items\n | ItemQuantity\n | ItemOptions\n | ItemPrices\n | CustomLineItems\n | CustomLineItem\n | string\n\nexport interface SetItemState {\n (data: DataType, params: ItemParams, dispatch: Dispatch<ItemAction>): void\n}\n\n// TODO: Set to other reducer files\nexport const setItemState: SetItemState = (data, params, dispatch) => {\n dispatch({\n type: params.type,\n payload: {\n [`${params.key}`]: data,\n },\n })\n}\n\nexport const unsetItemState: BaseUnsetState<ItemAction> = (dispatch) => {\n dispatch({\n type: 'setItem',\n payload: {\n item: {},\n },\n })\n dispatch({\n type: 'setItems',\n payload: {\n items: {},\n },\n })\n dispatch({\n type: 'setQuantity',\n payload: {\n quantity: {},\n },\n })\n dispatch({\n type: 'setOption',\n payload: {\n option: {},\n },\n })\n dispatch({\n type: 'setCustomLineItems',\n payload: {\n lineItems: {},\n },\n })\n dispatch({\n type: 'setCustomLineItem',\n payload: {\n lineItem: {},\n },\n })\n}\n\nexport type SetCustomLineItems = (lineItems: CustomLineItems) => void\nexport type SetCustomLineItem = (lineItem: CustomLineItem) => void\n\nexport interface ItemState {\n skuCode?: string\n items?: Items\n item?: Items\n lineItems?: CustomLineItems\n lineItem?: CustomLineItem\n quantity?: ItemQuantity\n option?: ItemOptions\n prices?: ItemPrices\n setItems?: (items: Items) => void\n setItem?: (item: Items) => void\n setQuantity?: (quantity: ItemQuantity) => void\n setOption?: (option: ItemOptions) => void\n setPrices?: (prices: ItemPrices) => void\n setSkuCode?: (skuCode: string) => void\n setCustomLineItems: SetCustomLineItems\n setCustomLineItem?: SetCustomLineItem\n}\n\ntype ItemActionType =\n | 'setItem'\n | 'setItems'\n | 'setQuantity'\n | 'setOption'\n | 'setPrices'\n | 'setCustomLineItems'\n | 'setCustomLineItem'\n | 'setSkuCode'\n\nconst actionType: ItemActionType[] = [\n 'setItem',\n 'setItems',\n 'setQuantity',\n 'setOption',\n 'setPrices',\n 'setCustomLineItems',\n 'setCustomLineItem',\n 'setSkuCode',\n]\n\nexport interface ItemAction {\n type: ItemActionType\n payload: Partial<ItemState>\n}\n\nexport const itemInitialState: Partial<ItemState> = {\n items: {},\n item: {},\n quantity: {},\n option: {},\n prices: {},\n lineItems: {},\n lineItem: {},\n skuCode: '',\n}\n\nconst itemReducer = (\n state: Partial<ItemState>,\n reducer: ItemAction\n): Partial<ItemState> =>\n baseReducer<Partial<ItemState>, ItemAction, ItemActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default itemReducer\n","import React, {\n FunctionComponent,\n useReducer,\n useEffect,\n ReactNode,\n} from 'react'\nimport ItemContext, {\n initialItemContext,\n InitItemContext,\n} from '#context/ItemContext'\nimport itemReducer, {\n itemInitialState,\n setItemState,\n Items,\n ItemQuantity,\n ItemOptions,\n CustomLineItems,\n CustomLineItem,\n} from '#reducers/ItemReducer'\nimport { ItemPrices } from '#reducers/ItemReducer'\nimport components from '#config/components'\nimport { BFSetStateContainer } from '#typings'\n\nconst propTypes = components.ItemContainer.propTypes\nconst displayName = components.ItemContainer.displayName\n\ntype ItemContainerProps = {\n children: ReactNode\n skuCode?: string | null\n lineItem?: {\n name: string\n imageUrl?: string | null\n } | null\n}\n\nconst ItemContainer: FunctionComponent<ItemContainerProps> = (props) => {\n const { children, skuCode, lineItem } = props\n const [state, dispatch] = useReducer(itemReducer, itemInitialState)\n useEffect(() => {\n if (skuCode) {\n setItemState(skuCode, { type: 'setSkuCode', key: 'skuCode' }, dispatch)\n }\n if (lineItem) {\n setItemState(\n lineItem as CustomLineItem,\n { type: 'setCustomLineItem', key: 'lineItem' },\n dispatch\n )\n }\n }, [])\n const setItems: BFSetStateContainer<Items> = (items) =>\n setItemState(items, { type: 'setItems', key: 'items' }, dispatch)\n const setItem: BFSetStateContainer<Items> = (item) =>\n setItemState(item, { type: 'setItem', key: 'item' }, dispatch)\n const setQuantity: BFSetStateContainer<ItemQuantity> = (item) =>\n setItemState(item, { type: 'setQuantity', key: 'quantity' }, dispatch)\n const setOption: BFSetStateContainer<ItemOptions> = (item) =>\n setItemState(item, { type: 'setOption', key: 'option' }, dispatch)\n const setPrices: BFSetStateContainer<ItemPrices> = (item) =>\n setItemState(item, { type: 'setPrices', key: 'prices' }, dispatch)\n const setCustomLineItems: BFSetStateContainer<CustomLineItems> = (item) =>\n setItemState(\n item,\n { type: 'setCustomLineItems', key: 'lineItems' },\n dispatch\n )\n const itemValue = {\n ...initialItemContext,\n ...state,\n setItems,\n setItem,\n setQuantity,\n setOption,\n setPrices,\n setCustomLineItems,\n } as InitItemContext\n return (\n <ItemContext.Provider value={itemValue}>{children}</ItemContext.Provider>\n )\n}\n\nItemContainer.propTypes = propTypes\nItemContainer.displayName = displayName\n\nexport default ItemContainer\n","import { createContext } from 'react'\nimport {\n DeliveryLeadTimeCollection,\n LineItemCollection,\n ShipmentCollection,\n ShippingMethodCollection,\n StockTransferCollection,\n} from '@commercelayer/js-sdk'\n\nexport interface InitialShipmentContext {\n lineItems?: LineItemCollection[]\n shippingMethods?: ShippingMethodCollection[]\n currentShippingMethodId?: string\n stockTransfers?: StockTransferCollection[]\n deliveryLeadTimes?: DeliveryLeadTimeCollection[] | null\n shipment?: ShipmentCollection\n keyNumber: number\n}\n\nconst initial: InitialShipmentContext = {\n lineItems: [],\n shippingMethods: [],\n stockTransfers: [],\n keyNumber: 0,\n}\n\nconst ShipmentChildrenContext = createContext<InitialShipmentContext>(initial)\n\nexport default ShipmentChildrenContext\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n} from 'react'\nimport LineItemContext from '#context/LineItemContext'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport components from '#config/components'\nimport { LineItemType } from '#typings'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport { isEmpty } from 'lodash'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\n\nconst propTypes = components.LineItem.propTypes\nconst displayName = components.LineItem.displayName\n\ntype LineItemProps = {\n children: ReactNode\n type?: LineItemType\n}\n\nconst LineItem: FunctionComponent<LineItemProps> = (props) => {\n const { type = 'skus', children } = props\n const { lineItems } = useContext(LineItemContext)\n const { lineItems: shipmentLineItems } = useContext(ShipmentChildrenContext)\n const items = isEmpty(shipmentLineItems)\n ? (lineItems as LineItemCollection[])\n : (shipmentLineItems as LineItemCollection[])\n const components =\n items &&\n items\n .filter((l) => l.itemType === type)\n .map((lineItem, k) => {\n const lineProps = {\n lineItem,\n }\n return (\n <LineItemChildrenContext.Provider key={k} value={lineProps}>\n {children}\n </LineItemChildrenContext.Provider>\n )\n })\n return <Fragment>{components}</Fragment>\n}\n\nLineItem.propTypes = propTypes\nLineItem.displayName = displayName\nLineItem.defaultProps = {\n type: 'skus',\n}\n\nexport default LineItem\n","import React, {\n FunctionComponent,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport getAmount from '#utils/getAmount'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { BaseAmountComponent, BasePriceType } from '#typings/index'\n\nconst propTypes = components.LineItemAmount.propTypes\nconst defaultProps = components.LineItemAmount\n .defaultProps as LineItemAmountProps\nconst displayName = components.LineItemAmount.displayName\n\nexport type LineItemAmountProps = BaseAmountComponent & {\n type?: BasePriceType\n}\n\nconst LineItemAmount: FunctionComponent<LineItemAmountProps> = (props) => {\n const { format = 'formatted', type = 'total', ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const [price, setPrice] = useState('')\n useEffect(() => {\n const p = getAmount({\n base: 'amount',\n type,\n format,\n obj: lineItem as Record<string, string>,\n })\n setPrice(p)\n return (): void => {\n setPrice('')\n }\n }, [lineItem])\n const parentProps = {\n price,\n ...p,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{price}</span>\n )\n}\n\nLineItemAmount.propTypes = propTypes\nLineItemAmount.defaultProps = defaultProps\nLineItemAmount.displayName = displayName\n\nexport default LineItemAmount\n","import React, { FunctionComponent, useContext, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport components from '#config/components'\n\nconst propTypes = components.LineItemImage.propTypes\nconst displayName = components.LineItemImage.displayName\n\ntype LineItemChildrenProps = Omit<LineItemImageProps, 'children'> & {\n src: string\n}\n\ntype LineItemImageProps = {\n children?: (props: LineItemChildrenProps) => ReactNode\n width?: number\n} & Omit<JSX.IntrinsicElements['img'], 'src' | 'srcSet'>\n\nconst LineItemImage: FunctionComponent<LineItemImageProps> = (props) => {\n const { lineItem } = useContext(LineItemChildrenContext)\n const src = lineItem['imageUrl']\n const parenProps = {\n src,\n ...props,\n }\n return props.children ? (\n <Parent {...parenProps}>{props.children}</Parent>\n ) : (\n <img src={src} {...props} />\n )\n}\n\nLineItemImage.propTypes = propTypes\nLineItemImage.displayName = displayName\n\nexport default LineItemImage\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.LineItemName.propTypes\nconst displayName = components.LineItemName.displayName\n\ntype LineItemNameChildrenProps = Omit<LineItemNameProps, 'children'>\n\ntype LineItemNameProps = {\n children?: (props: LineItemNameChildrenProps) => ReactNode\n} & JSX.IntrinsicElements['p']\n\nconst LineItemName: FunctionComponent<LineItemNameProps> = (props) => {\n const { lineItem } = useContext(LineItemChildrenContext)\n const labelName = lineItem['name']\n const parentProps = {\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p {...props}>{labelName}</p>\n )\n}\n\nLineItemName.propTypes = propTypes\nLineItemName.displayName = displayName\n\nexport default LineItemName\n","import { createContext } from 'react'\nimport { LineItemOptionCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialLineItemContext {\n lineItemOption: Partial<LineItemOptionCollection>\n showAll?: boolean\n}\n\nconst initial: InitialLineItemContext = {\n lineItemOption: {},\n}\n\nconst LineItemOptionChildrenContext =\n createContext<InitialLineItemContext>(initial)\n\nexport default LineItemOptionChildrenContext\n","export default function isJSON(str: string): boolean {\n try {\n JSON.parse(str)\n return true\n } catch (e) {\n return false\n }\n}\n","import React, { FunctionComponent, useContext, CSSProperties } from 'react'\nimport LineItemOptionChildrenContext from '#context/LineItemOptionChildrenContext'\nimport get from 'lodash/get'\nimport has from 'lodash/has'\nimport map from 'lodash/map'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { LineItemOptionCollection } from '@commercelayer/js-sdk'\nimport { FunctionChildren } from '#typings/index'\nimport isJSON from '#utils/isJSON'\n\nconst propTypes = components.LineItemOption.propTypes\nconst displayName = components.LineItemOption.displayName\n\ntype LineItemOptionChildrenProps = FunctionChildren<\n Omit<LineItemOptionProps, 'children'> & {\n lineItemOption: LineItemOptionCollection\n }\n>\n\ntype LineItemOptionProps = {\n id?: string\n className?: string\n key?: string\n style?: CSSProperties\n children?: LineItemOptionChildrenProps\n name?: string\n valueClassName?: string\n tagElement?: keyof JSX.IntrinsicElements\n tagContainer?: keyof JSX.IntrinsicElements\n}\n\nconst LineItemOption: FunctionComponent<LineItemOptionProps> = (props) => {\n const {\n name,\n children,\n valueClassName,\n id,\n key,\n tagElement = 'li',\n tagContainer = 'ul',\n ...p\n } = props\n const { lineItemOption, showAll } = useContext(LineItemOptionChildrenContext)\n const parentProps = {\n ...props,\n lineItemOption,\n }\n const TagElement = tagElement as any\n const TagContainer = tagContainer\n const components =\n showAll && isJSON(JSON.stringify(lineItemOption?.options)) ? (\n map(lineItemOption?.options, (value, key) => {\n return (\n <TagElement id={key} {...p}>\n {`${key}:`}\n <span id={id} className={valueClassName}>\n {`${value}`}\n </span>\n </TagElement>\n )\n })\n ) : has(lineItemOption, `options.${name}`) ? (\n <TagElement id={key} {...p}>\n {`${name}:`}\n <span id={id} className={valueClassName} {...p}>\n {`${get(lineItemOption, `options.${name}`)}`}\n </span>\n </TagElement>\n ) : null\n return children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <TagContainer>{components}</TagContainer>\n )\n}\n\nLineItemOption.propTypes = propTypes\nLineItemOption.displayName = displayName\n\nexport default LineItemOption\n","import React, {\n useContext,\n FunctionComponent,\n Fragment,\n ReactNode,\n} from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemOptionChildrenContext from '#context/LineItemOptionChildrenContext'\nimport { isEmpty } from 'lodash'\nimport components from '#config/components'\nimport { LineItemOptionCollection } from '@commercelayer/js-sdk'\n\nconst displayName = components.LineItemOptions.displayName\n\nexport type LineItemOptionsProps = JSX.IntrinsicElements['span'] & {\n children: ReactNode\n title?: string\n showName?: boolean\n} & (\n | {\n skuOptionId: string\n showAll?: never\n }\n | {\n skuOptionId?: never\n showAll: true\n }\n )\n\nconst LineItemOptions: FunctionComponent<LineItemOptionsProps> = (props) => {\n const { skuOptionId, title, children, showName = true, showAll, ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const lineItemOptions: LineItemOptionCollection[] = !isEmpty(lineItem)\n ? lineItem['lineItemOptions']().toArray()\n : []\n const options = lineItemOptions\n .filter((o) => {\n if (showAll) return true\n // @ts-ignore\n return o.skuOption().id === skuOptionId\n })\n .map((o, k) => {\n const showTitle = showName ? <span {...p}>{title || o.name}</span> : null\n const valueProps = {\n lineItemOption: o,\n showAll,\n }\n return (\n <Fragment key={k}>\n {showTitle}\n <LineItemOptionChildrenContext.Provider value={valueProps}>\n {children}\n </LineItemOptionChildrenContext.Provider>\n </Fragment>\n )\n })\n return <Fragment>{options}</Fragment>\n}\n\nLineItemOptions.displayName = displayName\n\nexport default LineItemOptions\n","import React, { FunctionComponent, useContext, ReactNode } from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemContext from '#context/LineItemContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings'\n\nconst propTypes = components.LineItemQuantity.propTypes\nconst defaultProps = components.LineItemQuantity.defaultProps\nconst displayName = components.LineItemQuantity.displayName\n\ntype LineItemQuantityChildrenProps = FunctionChildren<\n Omit<LineItemQuantityProps, 'children'> & {\n quantity: number\n handleChange: (event: React.MouseEvent<HTMLSelectElement>) => void\n }\n>\n\ntype LineItemQuantityProps = {\n children?: LineItemQuantityChildrenProps\n max?: number\n disabled?: boolean\n readonly?: boolean\n} & (JSX.IntrinsicElements['select'] & JSX.IntrinsicElements['span'])\n\nconst LineItemQuantity: FunctionComponent<LineItemQuantityProps> = (props) => {\n const { max = 50, readonly = false, ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const { updateLineItem } = useContext(LineItemContext)\n const options: ReactNode[] = []\n for (let i = 1; i <= max; i++) {\n options.push(\n <option key={i} value={`${i}`}>\n {i}\n </option>\n )\n }\n const handleChange = (e: React.ChangeEvent<HTMLSelectElement>): void => {\n const quantity = Number(e.target.value)\n updateLineItem && updateLineItem(lineItem['id'], quantity)\n }\n const quantity = lineItem['quantity']\n const parentProps = {\n handleChange,\n quantity,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : readonly ? (\n <span {...p}>{quantity}</span>\n ) : (\n <select value={quantity} onChange={handleChange} {...p}>\n {options}\n </select>\n )\n}\n\nLineItemQuantity.propTypes = propTypes\nLineItemQuantity.defaultProps = defaultProps\nLineItemQuantity.displayName = displayName\n\nexport default LineItemQuantity\n","import React, { FunctionComponent, useContext, PropsWithoutRef } from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemContext from '#context/LineItemContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\n\nconst propTypes = components.LineItemRemoveLink.propTypes\nconst defaultProps = components.LineItemRemoveLink.defaultProps\nconst displayName = components.LineItemRemoveLink.displayName\n\ntype ChildrenLineItemRemoveLinkProps = FunctionChildren<{\n handleRemove: (event: React.MouseEvent<HTMLAnchorElement>) => void\n label?: string\n}>\n\ntype LineItemRemoveLinkProps = {\n children?: ChildrenLineItemRemoveLinkProps\n label?: string\n} & PropsWithoutRef<JSX.IntrinsicElements['a']>\n\nconst LineItemRemoveLink: FunctionComponent<LineItemRemoveLinkProps> = (\n props\n) => {\n const { label = 'Remove' } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const { deleteLineItem } = useContext(LineItemContext)\n const handleRemove = (e: React.MouseEvent<HTMLAnchorElement>): void => {\n e.preventDefault()\n deleteLineItem && deleteLineItem(lineItem['id'])\n }\n const parentProps = {\n handleRemove,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <a {...props} href=\"#\" onClick={handleRemove}>\n {label}\n </a>\n )\n}\n\nLineItemRemoveLink.propTypes = propTypes\nLineItemRemoveLink.defaultProps = defaultProps\nLineItemRemoveLink.displayName = displayName\n\nexport default LineItemRemoveLink\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.LineItemSkuCode.propTypes\nconst displayName = components.LineItemSkuCode.displayName\n\ntype LineItemNameChildrenProps = Omit<LineItemNameProps, 'children'>\n\ntype LineItemNameProps = {\n children?: (props: LineItemNameChildrenProps) => ReactNode\n} & JSX.IntrinsicElements['p']\n\nconst LineItemSkuCode: FunctionComponent<LineItemNameProps> = (props) => {\n const { lineItem } = useContext(LineItemChildrenContext)\n const labelName = lineItem['skuCode']\n const parentProps = {\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p {...props}>{labelName}</p>\n )\n}\n\nLineItemSkuCode.propTypes = propTypes\nLineItemSkuCode.displayName = displayName\n\nexport default LineItemSkuCode\n","import CLayer, {\n LineItemCollection,\n OrderCollection,\n} from '@commercelayer/js-sdk'\nimport baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { getOrderContext } from './OrderReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { isEmpty } from 'lodash'\nimport { LoaderType } from '#typings'\nimport { BaseError } from '#typings/errors'\n\nexport type UpdateLineItemParams = {\n lineItemId: string\n quantity?: number\n dispatch: Dispatch<LineItemAction>\n config: CommerceLayerConfig\n getOrder: getOrderContext | undefined\n orderId: string\n errors: BaseError[] | undefined\n}\n\nexport interface UpdateLineItem {\n (params: UpdateLineItemParams): void\n}\n\nexport type DeleteLineItemParam = Record<string, any> & UpdateLineItemParams\n\nexport interface DeleteLineItem {\n (params: DeleteLineItemParam): void\n}\n\nexport type GetLineItemsParams = {\n dispatch: Dispatch<LineItemAction>\n config: CommerceLayerConfig\n order: OrderCollection | null\n filters: Record<string, any>\n}\n\nexport interface GetLineItems {\n (params: GetLineItemsParams): void\n}\n\nexport interface LineItemPayload {\n loading?: boolean\n loader?: LoaderType\n lineItems?: LineItemCollection[]\n errors?: BaseError[]\n}\n\nexport interface LineItemState extends LineItemPayload {\n updateLineItem?: (lineItemId: string, quantity?: number) => void\n deleteLineItem?: (lineItemId: string) => void\n}\n\nexport interface LineItemAction {\n type: LineItemActionType\n payload: LineItemPayload\n}\n\nexport const getLineItems: GetLineItems = (params) => {\n const { order, dispatch, config, filters } = params\n let allLineItems: LineItemCollection[] = []\n order &&\n // @ts-ignore\n order\n .withCredentials(config)\n .lineItems()\n .where(filters)\n .includes('lineItemOptions.skuOption')\n .all()\n .then(async (res) => {\n dispatch({\n type: 'setLoading',\n payload: {\n loading: false,\n },\n })\n const items = res.toArray()\n allLineItems = [...allLineItems, ...items]\n dispatch({\n type: 'setLineItems',\n payload: {\n lineItems: allLineItems,\n },\n })\n let colResp: any = res\n const pageCount = res.pageCount()\n if (colResp.hasNextPage() && pageCount) {\n for (let index = 1; index < pageCount; index++) {\n colResp = await colResp.withCredentials(config).nextPage()\n const nextItems = colResp.toArray()\n allLineItems = [...allLineItems, ...nextItems]\n dispatch({\n type: 'setLineItems',\n payload: {\n lineItems: allLineItems,\n },\n })\n }\n }\n })\n .catch((c: any) => {\n const errors = getErrorsByCollection(c, 'lineItem')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n })\n}\n\nexport const updateLineItem: UpdateLineItem = async (params) => {\n const { config, lineItemId, quantity, getOrder, orderId, dispatch, errors } =\n params\n try {\n const lineItem = await CLayer.LineItem.build({\n id: lineItemId,\n })\n const update = await lineItem.withCredentials(config).update({ quantity })\n if (!update.errors().empty()) {\n throw update\n }\n getOrder && (await getOrder(orderId))\n if (!isEmpty(errors)) {\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n }\n } catch (c: any) {\n const errors = getErrorsByCollection<LineItemCollection>(c, 'lineItem')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n }\n}\n\nexport const deleteLineItem: DeleteLineItem = async (params) => {\n const { config, lineItemId, getOrder, orderId, dispatch, errors } = params\n try {\n const lineItem = await CLayer.LineItem.withCredentials(config).find(\n lineItemId\n )\n const destroyLineItem = await lineItem.withCredentials(config).destroy()\n if (!destroyLineItem.errors().empty()) {\n throw destroyLineItem\n }\n getOrder && (await getOrder(orderId))\n if (!isEmpty(errors)) {\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n }\n } catch (c: any) {\n const errors = getErrorsByCollection(c, 'lineItem')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n }\n}\n\nexport const lineItemInitialState: LineItemState = {\n loading: false,\n lineItems: [],\n errors: [],\n}\n\nexport type LineItemActionType = 'setLineItems' | 'setErrors' | 'setLoading'\n\nconst actionType: LineItemActionType[] = [\n 'setLineItems',\n 'setErrors',\n 'setLoading',\n]\n\nconst lineItemReducer = (\n state: LineItemState,\n reducer: LineItemAction\n): LineItemState =>\n baseReducer<LineItemState, LineItemAction, LineItemActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default lineItemReducer\n","import React, {\n useEffect,\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n} from 'react'\nimport lineItemReducer, {\n lineItemInitialState,\n updateLineItem,\n deleteLineItem,\n getLineItems,\n} from '#reducers/LineItemReducer'\nimport OrderContext from '#context/OrderContext'\nimport LineItemContext, { LineItemContextValue } from '#context/LineItemContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { isEmpty } from 'lodash'\nimport components from '#config/components'\n\nconst propTypes = components.LineItemsContainer.propTypes\nconst defaultProps = components.LineItemsContainer.defaultProps\nconst displayName = components.LineItemsContainer.displayName\n\ntype LineItemsContainer = {\n children: ReactNode\n filters?: Record<string, any>\n loader?: ReactNode\n}\n\nconst LineItemsContainer: FunctionComponent<LineItemsContainer> = (props) => {\n const { children, filters = {}, loader = 'Loading...' } = props\n const { order, getOrder, orderId } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n const [state, dispatch] = useReducer(lineItemReducer, lineItemInitialState)\n useEffect(() => {\n if (!isEmpty(order)) {\n order &&\n getLineItems({\n order,\n dispatch,\n config,\n filters,\n })\n }\n return (): void => {\n if (isEmpty(order)) {\n dispatch({\n type: 'setLineItems',\n payload: { lineItems: [] },\n })\n }\n }\n }, [order])\n const lineItemValue = {\n ...state,\n loader,\n updateLineItem: (lineItemId, quantity = 1) =>\n updateLineItem({\n lineItemId,\n quantity,\n dispatch,\n config,\n getOrder,\n orderId,\n errors: state.errors,\n }),\n deleteLineItem: (lineItemId) =>\n deleteLineItem({\n lineItemId,\n dispatch,\n config,\n getOrder,\n orderId,\n errors: state.errors,\n }),\n } as LineItemContextValue\n return (\n <LineItemContext.Provider value={lineItemValue}>\n {state.loading ? loader : children}\n </LineItemContext.Provider>\n )\n}\n\nLineItemsContainer.propTypes = propTypes\nLineItemsContainer.defaultProps = defaultProps\nLineItemsContainer.displayName = displayName\n\nexport default LineItemsContainer\n","import { LineItemCollection } from '@commercelayer/js-sdk'\n\nexport interface GetLineItemsCountInterface {\n (lineItems: LineItemCollection[], quantity?: number): number\n}\n\nconst getLineItemsCount: GetLineItemsCountInterface = (\n lineItems,\n quantity = 0\n) => {\n const typeAccept = ['skus', 'gift_cards']\n lineItems\n .filter((l) => typeAccept.includes(l.itemType))\n .map((l) => {\n quantity += l.quantity\n })\n return quantity\n}\n\nexport default getLineItemsCount\n","import React, {\n FunctionComponent,\n useContext,\n useState,\n useEffect,\n} from 'react'\nimport Parent from './utils/Parent'\nimport getLineItemsCount from '#utils/getLineItemsCount'\nimport { isEmpty } from 'lodash'\nimport LineItemContext from '#context/LineItemContext'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\n\nconst propTypes = components.LineItemsCount.propTypes\nconst displayName = components.LineItemsCount.displayName\n\ntype LineItemsCountChildrenProps = FunctionChildren<\n Omit<LineItemsCountProps, 'children'> & {\n quantity: number\n }\n>\n\ntype LineItemsCountProps = {\n children?: LineItemsCountChildrenProps\n} & JSX.IntrinsicElements['span']\n\nconst LineItemsCount: FunctionComponent<LineItemsCountProps> = (props) => {\n const { children, ...p } = props\n const { lineItems } = useContext(LineItemContext)\n const [quantity, setQuantity] = useState(0)\n useEffect(() => {\n if (!isEmpty(lineItems)) {\n const qty = getLineItemsCount(lineItems || [])\n setQuantity(qty)\n }\n return (): void => {\n setQuantity(0)\n }\n }, [lineItems])\n const parentProps = {\n quantity,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{quantity}</span>\n )\n}\n\nLineItemsCount.propTypes = propTypes\nLineItemsCount.displayName = displayName\n\nexport default LineItemsCount\n","import React, { FunctionComponent } from 'react'\nimport BaseInput from './utils/BaseInput'\nimport components from '#config/components'\nimport { BaseInputComponentProps } from '#typings'\n\nconst propTypes = components.MetadataInput.propTypes\nconst displayName = components.MetadataInput.displayName\n\nexport type MetadataInputProps = BaseInputComponentProps &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst MetadataInput: FunctionComponent<MetadataInputProps> = (props) => {\n return <BaseInput data-metadata {...props} />\n}\n\nMetadataInput.propTypes = propTypes\nMetadataInput.displayName = displayName\n\nexport default MetadataInput\n","import React, {\n useEffect,\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n} from 'react'\nimport orderReducer, {\n orderInitialState,\n AddToCartValues,\n createOrder,\n removeGiftCardOrCouponCode,\n} from '#reducers/OrderReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport OrderContext from '#context/OrderContext'\nimport {\n getApiOrder,\n addToCart,\n OrderState,\n setOrderErrors,\n saveAddressToCustomerAddressBook,\n setOrder,\n} from '#reducers/OrderReducer'\nimport { unsetOrderState } from '#reducers/OrderReducer'\nimport components from '#config/components'\nimport { BaseMetadataObject } from '#typings'\nimport OrderStorageContext from '#context/OrderStorageContext'\nimport { OrderCollection } from '@commercelayer/js-sdk'\nimport {\n setGiftCardOrCouponCode,\n OrderCodeType,\n} from '../reducers/OrderReducer'\n\nconst propTypes = components.OrderContainer.propTypes\nconst defaultProps = components.OrderContainer.defaultProps\nconst displayName = components.OrderContainer.displayName\n\ntype OrderContainerProps = {\n children: ReactNode\n metadata?: BaseMetadataObject\n attributes?: Record<string, any>\n orderId?: string\n}\n\nconst OrderContainer: FunctionComponent<OrderContainerProps> = (props) => {\n const { orderId, children, metadata, attributes } = props\n const [state, dispatch] = useReducer(orderReducer, orderInitialState)\n const config = useContext(CommerceLayerContext)\n const {\n persistKey,\n clearWhenPlaced,\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n } = useContext(OrderStorageContext)\n useEffect(() => {\n if (config.accessToken) {\n const localOrder = persistKey ? getLocalOrder(persistKey) : orderId\n if (localOrder) {\n dispatch({\n type: 'setOrderId',\n payload: {\n orderId: localOrder,\n },\n })\n if (!state.order) {\n getApiOrder({\n id: localOrder,\n dispatch,\n config,\n persistKey,\n clearWhenPlaced,\n deleteLocalOrder,\n })\n }\n }\n }\n return (): void => unsetOrderState(dispatch)\n }, [config.accessToken])\n const orderValue = {\n ...state,\n setOrder: (order: OrderCollection) => setOrder(order, dispatch),\n getOrder: (id: string): Promise<void | OrderCollection> =>\n getApiOrder({ id, dispatch, config }),\n setOrderErrors: (collection: any) =>\n setOrderErrors({ dispatch, collection }),\n createOrder: async (): Promise<string> =>\n await createOrder({\n persistKey,\n dispatch,\n config,\n state,\n orderMetadata: metadata,\n orderAttributes: attributes,\n }),\n addToCart: (values: AddToCartValues): Promise<{ success: boolean }> =>\n addToCart({\n ...values,\n persistKey,\n dispatch,\n state,\n config,\n errors: state.errors,\n orderMetadata: metadata || {},\n orderAttributes: attributes,\n setLocalOrder,\n }),\n saveAddressToCustomerAddressBook: (\n type: 'BillingAddress' | 'ShippingAddress',\n value: boolean\n ) => saveAddressToCustomerAddressBook({ type, value, dispatch }),\n setGiftCardOrCouponCode: ({ code }: { code: string }) =>\n setGiftCardOrCouponCode({ code, dispatch, order: state.order, config }),\n removeGiftCardOrCouponCode: ({ codeType }: { codeType: OrderCodeType }) =>\n removeGiftCardOrCouponCode({\n codeType,\n dispatch,\n order: state.order,\n config,\n }),\n }\n return (\n <OrderContext.Provider value={orderValue as OrderState}>\n {children}\n </OrderContext.Provider>\n )\n}\n\nOrderContainer.propTypes = propTypes\nOrderContainer.defaultProps = defaultProps\nOrderContainer.displayName = displayName\n\nexport default OrderContainer\n","import OrderContext from '#context/OrderContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport Parent from './Parent'\n\ntype BaseFieldChildren = Omit<BaseFieldProps, 'children'>\n\nexport type BaseFieldProps = {\n attribute: 'number' | 'id'\n children?: (props: BaseFieldChildren) => ReactNode\n} & JSX.IntrinsicElements['span']\n\nconst BaseField: FunctionComponent<BaseFieldProps> = ({\n children,\n attribute,\n ...p\n}) => {\n const { order } = useContext(OrderContext)\n const [field, setField] = useState('')\n useEffect(() => {\n if (order && attribute in order) setField(order[attribute] as string)\n return () => {\n setField('')\n }\n }, [order])\n const parentProps = { attribute: field, ...p }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{field}</span>\n )\n}\n\nexport default BaseField\n","import React, { FunctionComponent } from 'react'\nimport components from '#config/components'\nimport BaseField, { BaseFieldProps } from './utils/BaseField'\n\nconst propTypes = components.OrderNumber.propTypes\nconst displayName = components.OrderNumber.displayName\n\nexport type OrderNumberProps = Omit<BaseFieldProps, 'attribute'>\n\nconst OrderNumber: FunctionComponent<OrderNumberProps> = (props) => {\n return <BaseField attribute=\"number\" {...props} />\n}\n\nOrderNumber.propTypes = propTypes\nOrderNumber.displayName = displayName\n\nexport default OrderNumber\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport OrderStorageContext from '#context/OrderStorageContext'\nimport components from '#config/components'\nimport {\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n} from '#utils/localStorage'\n\nconst propTypes = components.OrderStorage.propTypes\nconst displayName = components.OrderStorage.displayName\n\ntype OrderStorageProps = {\n children: ReactNode\n persistKey: string\n clearWhenPlaced?: boolean\n}\n\nconst OrderStorage: FunctionComponent<OrderStorageProps> = (props) => {\n const { children, clearWhenPlaced = true, ...p } = props\n return (\n <OrderStorageContext.Provider\n value={{\n ...p,\n setLocalOrder,\n getLocalOrder,\n deleteLocalOrder,\n clearWhenPlaced,\n }}\n >\n {children}\n </OrderStorageContext.Provider>\n )\n}\n\nOrderStorage.propTypes = propTypes\nOrderStorage.displayName = displayName\n\nexport default OrderStorage\n","import { LoaderType } from '#typings'\nimport React from 'react'\n\nexport default function getLoaderComponent(Loader: LoaderType) {\n return typeof Loader === 'function' ? <Loader /> : <>{Loader}</>\n}\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport components from '#config/components'\nimport { LoaderType } from '#typings'\nimport getLoaderComponent from '../utils/getLoaderComponent'\nimport { PaymentMethodCollection } from '@commercelayer/js-sdk'\nimport { PaymentResource } from '#reducers/PaymentMethodReducer'\n\nconst propTypes = components.PaymentMethod.propTypes\nconst displayName = components.PaymentMethod.displayName\n\ntype PaymentMethodProps = {\n children: ReactNode\n activeClass?: string\n loader?: LoaderType\n} & Omit<JSX.IntrinsicElements['div'], 'onClick'> &\n (\n | {\n clickableContainer: true\n onClick?: (\n payment?: PaymentMethodCollection | Record<string, any>\n ) => void\n }\n | {\n clickableContainer?: never\n onClick?: never\n }\n )\n\nconst PaymentMethod: FunctionComponent<PaymentMethodProps> = ({\n children,\n className,\n activeClass,\n loader = 'Loading...',\n clickableContainer,\n onClick,\n ...p\n}) => {\n const [loading, setLoading] = useState(true)\n const [paymentSelected, setPaymentSelected] = useState('')\n const {\n paymentMethods,\n currentPaymentMethodId,\n setPaymentMethod,\n setLoading: setLoadingPlaceOrder,\n } = useContext(PaymentMethodContext)\n useEffect(() => {\n if (paymentMethods) setLoading(false)\n if (currentPaymentMethodId) setPaymentSelected(currentPaymentMethodId)\n return () => {\n setLoading(true)\n }\n }, [paymentMethods, currentPaymentMethodId])\n const components =\n paymentMethods &&\n paymentMethods.map((payment, k) => {\n const isActive = currentPaymentMethodId === payment?.id\n const paymentMethodProps = {\n payment,\n clickableContainer,\n paymentSelected,\n setPaymentSelected,\n }\n const onClickable = !clickableContainer\n ? undefined\n : async () => {\n setLoadingPlaceOrder({ loading: true })\n setPaymentSelected(payment.id)\n const paymentResource =\n payment?.paymentSourceType as PaymentResource\n const paymentMethodId = payment?.id as string\n await setPaymentMethod({ paymentResource, paymentMethodId })\n onClick && onClick(payment)\n setLoadingPlaceOrder({ loading: false })\n }\n return (\n <div\n key={k}\n className={`${className} ${isActive ? activeClass : ''}`}\n onClick={onClickable}\n {...p}\n >\n <PaymentMethodChildrenContext.Provider value={paymentMethodProps}>\n {children}\n </PaymentMethodChildrenContext.Provider>\n </div>\n )\n })\n return !loading ? (\n <Fragment>{components}</Fragment>\n ) : (\n getLoaderComponent(loader)\n )\n}\n\nPaymentMethod.propTypes = propTypes\nPaymentMethod.displayName = displayName\n\nexport default PaymentMethod\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.PaymentMethodAmount.propTypes\nconst defaultProps = components.PaymentMethodAmount.defaultProps\nconst displayName = components.PaymentMethodAmount.displayName\n\nconst PaymentMethodAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"paymentMethod\" {...props} />\n}\n\nPaymentMethodAmount.propTypes = propTypes\nPaymentMethodAmount.defaultProps = defaultProps\nPaymentMethodAmount.displayName = displayName\n\nexport default PaymentMethodAmount\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.PaymentMethodName.propTypes\nconst displayName = components.PaymentMethodName.displayName\n\ntype PaymentMethodNameChildrenProps = Omit<\n PaymentMethodNameProps,\n 'children'\n> & { labelName: string }\n\ntype PaymentMethodNameProps = {\n children?: (props: PaymentMethodNameChildrenProps) => ReactNode\n} & JSX.IntrinsicElements['label']\n\nconst PaymentMethodName: FunctionComponent<PaymentMethodNameProps> = (\n props\n) => {\n const { payment } = useContext(PaymentMethodChildrenContext)\n const labelName = payment?.['name']\n const htmlFor = payment?.paymentSourceType\n const parentProps = {\n htmlFor,\n labelName,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <label htmlFor={htmlFor} {...props}>\n {labelName}\n </label>\n )\n}\n\nPaymentMethodName.propTypes = propTypes\nPaymentMethodName.displayName = displayName\n\nexport default PaymentMethodName\n","import React, {\n FunctionComponent,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport getAmount from '#utils/getAmount'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings/index'\n\nconst propTypes = components.PaymentMethodPrice.propTypes\nconst displayName = components.PaymentMethodPrice.displayName\n\ntype Props = {\n type?: 'amount'\n labelFree?: string\n}\n\nexport type PaymentMethodPriceProps = BaseAmountComponent & Props\n\nconst PaymentMethodPrice: FunctionComponent<PaymentMethodPriceProps> = (\n props\n) => {\n const {\n format = 'formatted',\n type = 'amount',\n labelFree = 'Free',\n ...p\n } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const [price, setPrice] = useState('')\n const [priceCents, setPriceCents] = useState(0)\n useEffect(() => {\n if (payment) {\n const p = getAmount({ base: 'price', type, format, obj: payment })\n setPrice(p)\n const c = getAmount<number>({\n base: 'price',\n type,\n format: 'cents',\n obj: payment,\n })\n setPriceCents(c)\n }\n return (): void => {\n setPrice('')\n setPriceCents(0)\n }\n }, [payment])\n const parentProps = {\n labelFree,\n price,\n priceCents,\n ...p,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{priceCents === 0 ? labelFree : price}</span>\n )\n}\n\nPaymentMethodPrice.propTypes = propTypes\nPaymentMethodPrice.displayName = displayName\n\nexport default PaymentMethodPrice\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport { PaymentMethodCollection } from '@commercelayer/js-sdk'\nimport { PaymentResource } from '../reducers/PaymentMethodReducer'\nimport OrderContext from '#context/OrderContext'\n\nconst propTypes = components.PaymentMethodRadioButton.propTypes\nconst displayName = components.PaymentMethodRadioButton.displayName\n\ntype ShippingMethodRadioButtonChildrenProps = Omit<\n ShippingMethodRadioButtonProps,\n 'children'\n> & { checked: boolean }\n\ntype ShippingMethodRadioButtonProps = {\n children?: (props: ShippingMethodRadioButtonChildrenProps) => ReactNode\n onChange?: (payment?: PaymentMethodCollection | Record<string, any>) => void\n} & JSX.IntrinsicElements['input']\n\nconst PaymentMethodRadioButton: FunctionComponent<ShippingMethodRadioButtonProps> =\n (props) => {\n const { onChange, ...p } = props\n const { payment, paymentSelected, setPaymentSelected } = useContext(\n PaymentMethodChildrenContext\n )\n const { order } = useContext(OrderContext)\n const { setPaymentMethod, setLoading } = useContext(PaymentMethodContext)\n const orderId = order?.id || ''\n const paymentResource = payment?.paymentSourceType as PaymentResource\n const paymentMethodId = payment?.id as string\n const name = `payment-${orderId}`\n const checked = paymentSelected === payment?.id\n const handleOnChange = async () => {\n setPaymentSelected && setPaymentSelected(paymentMethodId)\n setLoading({ loading: true })\n await setPaymentMethod({ paymentResource, paymentMethodId })\n onChange && onChange(payment)\n setLoading({ loading: false })\n }\n const id = payment?.paymentSourceType\n const parentProps = {\n handleOnChange,\n checked,\n id,\n name,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <input\n type=\"radio\"\n id={id}\n onChange={handleOnChange}\n checked={checked}\n {...p}\n />\n )\n }\n\nPaymentMethodRadioButton.propTypes = propTypes\nPaymentMethodRadioButton.displayName = displayName\n\nexport default PaymentMethodRadioButton\n","import PaymentMethodContext, {\n defaultPaymentMethodContext,\n} from '#context/PaymentMethodContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport paymentMethodReducer, {\n paymentMethodInitialState,\n getPaymentMethods,\n PaymentMethodConfig,\n setPaymentMethodConfig,\n PaymentRef,\n} from '#reducers/PaymentMethodReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport { BaseError } from '#typings/errors'\nimport { isEmpty } from 'lodash'\nimport { setPaymentRef } from '../reducers/PaymentMethodReducer'\n\nconst propTypes = components.PaymentMethodsContainer.propTypes\nconst displayName = components.PaymentMethodsContainer.displayName\n\ntype PaymentMethodsContainerProps = {\n children: ReactNode\n config?: PaymentMethodConfig\n}\nconst PaymentMethodsContainer: FunctionComponent<PaymentMethodsContainerProps> =\n (props) => {\n const { children, config } = props\n const [state, dispatch] = useReducer(\n paymentMethodReducer,\n paymentMethodInitialState\n )\n const { order, getOrder, setOrderErrors } = useContext(OrderContext)\n const credentials = useContext(CommerceLayerContext)\n useEffect(() => {\n if (config && isEmpty(state.config))\n setPaymentMethodConfig(config, dispatch)\n if (credentials && order) {\n getPaymentMethods({ order, dispatch, config: credentials, state })\n }\n }, [order, credentials])\n const contextValue = {\n ...state,\n setLoading: ({ loading }: { loading: boolean }) =>\n defaultPaymentMethodContext['setLoading']({ loading, dispatch }),\n setPaymentRef: ({ ref }: { ref: PaymentRef }) =>\n setPaymentRef({ ref, dispatch }),\n setPaymentMethodErrors: (errors: BaseError[]) =>\n defaultPaymentMethodContext['setPaymentMethodErrors'](errors, dispatch),\n setPaymentMethod: async (args: any) =>\n await defaultPaymentMethodContext['setPaymentMethod']({\n ...args,\n config: credentials,\n getOrder,\n order,\n dispatch,\n setOrderErrors,\n }),\n setPaymentSource: async (args: any) =>\n defaultPaymentMethodContext['setPaymentSource']({\n ...state,\n ...args,\n config: credentials,\n dispatch,\n getOrder,\n order,\n }),\n updatePaymentSource: async (args: any) =>\n defaultPaymentMethodContext['updatePaymentSource']({\n ...args,\n config: credentials,\n dispatch,\n }),\n destroyPaymentSource: async (args: any) =>\n defaultPaymentMethodContext['destroyPaymentSource']({\n ...args,\n dispatch,\n config: credentials,\n }),\n }\n return (\n <PaymentMethodContext.Provider value={contextValue}>\n {children}\n </PaymentMethodContext.Provider>\n )\n }\n\nPaymentMethodsContainer.propTypes = propTypes\nPaymentMethodsContainer.displayName = displayName\n\nexport default PaymentMethodsContainer\n","import { PaypalConfig } from '#components/PaypalPayment'\nimport {\n PaymentResource,\n PaymentMethodConfig,\n getPaymentConfig,\n} from '#reducers/PaymentMethodReducer'\nimport pick from 'lodash/pick'\n\nexport default function getPaypalConfig(\n paymentResource: PaymentResource,\n config: PaymentMethodConfig\n): Pick<PaypalConfig, 'returnUrl' | 'cancelUrl'> | undefined {\n const attributes = getPaymentConfig<'paypalPayment'>(paymentResource, config)\n return attributes && pick(attributes, ['returnUrl', 'cancelUrl'])\n}\n","import { createContext } from 'react'\n\nexport type iconBrand =\n | 'visa'\n | 'credit-card'\n | 'amex'\n | 'mastercard'\n | 'jcb'\n | 'wire-transfer'\n | 'maestro'\n | 'cirrus'\n | 'paypal'\n\ntype DefaultContext = {\n brand?: iconBrand\n expMonth?: number\n expYear?: number\n last4?: string\n showCard?: boolean\n readonly?: boolean\n handleEditClick?: (e: MouseEvent) => void\n}\n\nexport const defaultPaymentSourceContext = {}\n\nconst PaymentSourceContext = createContext<DefaultContext>(\n defaultPaymentSourceContext\n)\n\nexport default PaymentSourceContext\n","export default function getBrowserInfo() {\n const screenWidth = window && window.screen ? window.screen.width : ''\n const screenHeight = window && window.screen ? window.screen.height : ''\n const colorDepth = window && window.screen ? window.screen.colorDepth : ''\n const userAgent = window && window.navigator ? window.navigator.userAgent : ''\n const javaEnabled =\n window && window.navigator ? navigator.javaEnabled() : false\n\n let language = ''\n if (window && window.navigator) language = window.navigator.language\n\n const d = new Date()\n const timeZoneOffset = d.getTimezoneOffset()\n\n const browserInfo = {\n screenWidth,\n screenHeight,\n colorDepth,\n userAgent,\n timeZoneOffset,\n language,\n javaEnabled,\n }\n\n return browserInfo\n}\n","import { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Shipment, ShipmentCollection } from '@commercelayer/js-sdk'\nimport { compact, isEmpty } from 'lodash'\n\ntype ShipmentsFilled = (\n shipments: ShipmentCollection[],\n credentials: CommerceLayerConfig\n) => Promise<boolean>\n\nexport const shipmentsFilled: ShipmentsFilled = async (\n shipments,\n credentials\n) => {\n const checking = await Promise.all(\n shipments.map(async (shipment) => {\n return await Shipment.withCredentials(credentials)\n .select('id')\n .includes('shippingMethod')\n .find(shipment.id)\n })\n )\n const filled = compact(\n checking.filter((shipment) => {\n return shipment && !!shipment.shippingMethod()\n })\n )\n return !isEmpty(filled)\n}\n","import { PlaceOrderOptions } from '#reducers/PlaceOrderReducer'\nimport {\n getSaveBillingAddressToAddressBook,\n getSavePaymentSourceToCustomerWallet,\n getSaveShippingAddressToAddressBook,\n} from './localStorage'\n\nexport function saveToWallet(options?: PlaceOrderOptions): boolean {\n return (\n getSavePaymentSourceToCustomerWallet() ||\n !!options?.savePaymentSourceToCustomerWallet\n )\n}\nexport function saveBillingAddress(options?: PlaceOrderOptions): boolean {\n return (\n getSaveBillingAddressToAddressBook() ||\n !!options?.saveBillingAddressToCustomerAddressBook\n )\n}\nexport function saveShippingAddress(options?: PlaceOrderOptions): boolean {\n return (\n getSaveShippingAddressToAddressBook() ||\n !!options?.saveShippingAddressToCustomerAddressBook\n )\n}\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { BaseError } from '#typings/errors'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Order, OrderCollection, PaypalPayment } from '@commercelayer/js-sdk'\nimport { isEmpty, isFunction } from 'lodash'\nimport { shipmentsFilled } from '#utils/shipments'\nimport { PaymentResource } from './PaymentMethodReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport {\n saveBillingAddress,\n saveShippingAddress,\n saveToWallet,\n} from '#utils/customerOrderOptions'\n\nexport type PlaceOrderActionType = 'setErrors' | 'setPlaceOrderPermitted'\n\nexport type PlaceOrderOptions = {\n saveBillingAddressToCustomerAddressBook?: boolean\n saveShippingAddressToCustomerAddressBook?: boolean\n savePaymentSourceToCustomerWallet?: boolean\n paypalPayerId?: string\n}\n\nexport interface PlaceOrderActionPayload {\n errors: BaseError[]\n isPermitted: boolean\n paymentType: PaymentResource\n paymentSecret: string\n paymentId: string\n paymentSource: Record<string, string>\n options?: PlaceOrderOptions\n}\n\nexport type PlaceOrderState = Partial<PlaceOrderActionPayload>\n\nexport interface PlaceOrderAction {\n type: PlaceOrderActionType\n payload: Partial<PlaceOrderActionPayload>\n}\n\nexport const placeOrderInitialState: PlaceOrderState = {\n errors: [],\n isPermitted: false,\n}\n\nexport interface SetPlaceOrderErrors {\n <V extends BaseError[]>(\n errors: V,\n dispatch?: Dispatch<PlaceOrderAction>\n ): void\n}\n\nexport const setPlaceOrderErrors: SetPlaceOrderErrors = (errors, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\ntype PlaceOrderPermitted = (args: {\n config?: CommerceLayerConfig\n dispatch: Dispatch<PlaceOrderAction>\n order?: OrderCollection\n // TODO: Remove it soon\n options?: PlaceOrderOptions\n}) => void\n\nexport const placeOrderPermitted: PlaceOrderPermitted = async ({\n config,\n order,\n dispatch,\n options,\n}) => {\n if (order && config) {\n let isPermitted = true\n if (order.privacyUrl && order.termsUrl) {\n isPermitted = localStorage.getItem('privacy-terms') === 'true'\n }\n const billingAddress =\n order.billingAddress() ||\n (await order.withCredentials(config).loadBillingAddress())\n if (isEmpty(billingAddress)) isPermitted = false\n const shippingAddress =\n order.shippingAddress() ||\n (await order.withCredentials(config).loadShippingAddress())\n if (isEmpty(shippingAddress)) isPermitted = false\n const shipments = (\n await order.withCredentials(config).loadShipments()\n )?.toArray()\n const shipment = shipments && (await shipmentsFilled(shipments, config))\n if (!isEmpty(shipments) && !shipment) isPermitted = false\n const paymentMethod =\n order.paymentMethod() ||\n (await order.withCredentials(config).paymentMethod())\n const paymentSource: any = (\n await Order.withCredentials(config)\n .select('id')\n .includes('paymentSource')\n .find(order.id)\n ).paymentSource()\n if (order.totalAmountWithTaxesCents !== 0 && isEmpty(paymentMethod?.id))\n isPermitted = false\n dispatch({\n type: 'setPlaceOrderPermitted',\n payload: {\n isPermitted,\n paymentType: paymentMethod?.paymentSourceType as PaymentResource,\n paymentSecret: paymentSource?.clientSecret,\n paymentId: paymentSource?.options?.id,\n paymentSource: paymentSource?.attributes(),\n options,\n },\n })\n }\n}\n\nexport type SetPlaceOrder = (args: {\n config?: CommerceLayerConfig\n order?: OrderCollection\n state?: PlaceOrderState\n setOrderErrors?: (collection: any) => void\n paymentSource?: Record<string, string>\n}) => Promise<{\n placed: boolean\n}>\n\nexport const setPlaceOrder: SetPlaceOrder = async ({\n state,\n order,\n config,\n setOrderErrors,\n paymentSource,\n}) => {\n const response = {\n placed: false,\n }\n try {\n if (state && order && config) {\n const { options, paymentType } = state\n if (paymentType === 'paypal_payments') {\n if (!options?.paypalPayerId && paymentSource?.approvalUrl) {\n window.location.href = paymentSource?.approvalUrl as string\n return response\n }\n const paypalPayment = PaypalPayment.build({ id: paymentSource?.id })\n await paypalPayment\n .withCredentials(config)\n .update({ paypalPayerId: options?.paypalPayerId })\n }\n const updateAttributes: Record<string, any> = {\n _place: true,\n }\n if (saveBillingAddress(options)) {\n await Order.build({\n id: order.id,\n })\n .withCredentials(config)\n .update({ _saveBillingAddressToCustomerAddressBook: true })\n }\n if (saveShippingAddress(options)) {\n await Order.build({\n id: order.id,\n })\n .withCredentials(config)\n .update({ _saveShippingAddressToCustomerAddressBook: true })\n }\n switch (paymentType) {\n case 'braintree_payments':\n if (saveToWallet(options)) {\n await Order.build({\n id: order.id,\n })\n .withCredentials(config)\n .update({ _savePaymentSourceToCustomerWallet: true })\n }\n const brOrder = await Order.build({\n id: order.id,\n })\n .withCredentials(config)\n .update(updateAttributes)\n if (isFunction(brOrder?.errors) && !brOrder?.errors()?.empty())\n throw brOrder\n setOrderErrors && setOrderErrors([])\n return {\n placed: true,\n }\n default:\n const defaultOrder = await Order.build({\n id: order.id,\n })\n .withCredentials(config)\n .update(updateAttributes)\n if (\n isFunction(defaultOrder?.errors) &&\n !defaultOrder?.errors()?.empty()\n )\n throw defaultOrder\n if (saveToWallet(options)) {\n await Order.build({\n id: order.id,\n })\n .withCredentials(config)\n .update({ _savePaymentSourceToCustomerWallet: true })\n }\n setOrderErrors && setOrderErrors([])\n return {\n placed: true,\n }\n }\n }\n return response\n } catch (error: any) {\n setOrderErrors && setOrderErrors(error)\n const errors = getErrorsByCollection(error, 'order')\n return {\n ...response,\n errors,\n }\n }\n}\n\nconst type: PlaceOrderActionType[] = ['setErrors', 'setPlaceOrderPermitted']\n\nconst placeOrderReducer = (\n state: PlaceOrderState,\n reducer: PlaceOrderAction\n): PlaceOrderState =>\n baseReducer<PlaceOrderState, PlaceOrderAction, PlaceOrderActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default placeOrderReducer\n","import { createContext } from 'react'\nimport {\n PlaceOrderState,\n SetPlaceOrderErrors,\n setPlaceOrderErrors,\n} from '#reducers/PlaceOrderReducer'\n\ntype DefaultContext = {\n setPlaceOrderErrors?: SetPlaceOrderErrors\n setPlaceOrder?: ({\n paymentSource,\n }: {\n paymentSource: Record<string, string>\n }) => Promise<{ placed: boolean }>\n placeOrderPermitted?: () => void\n} & PlaceOrderState\n\nexport const defaultPlaceOrderContext = {\n setPlaceOrderErrors,\n}\n\nconst PlaceOrderContext = createContext<DefaultContext>(\n defaultPlaceOrderContext\n)\n\nexport default PlaceOrderContext\n","import React, {\n CSSProperties,\n FunctionComponent,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport isEmpty from 'lodash/isEmpty'\nimport { PaymentSourceProps } from './PaymentSource'\nimport { setLocalOrder } from '#utils/localStorage'\nimport { CoreOptions } from '@adyen/adyen-web/dist/types/core/types'\nimport Parent from '#components/utils/Parent'\nimport getBrowserInfo from '../utils/browserInfo'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\n\nconst threeDSConfiguration = {\n challengeWindowSize: '05',\n // Set to any of the following:\n // '02': ['390px', '400px'] - The default window size\n // '01': ['250px', '400px']\n // '03': ['500px', '600px']\n // '04': ['600px', '400px']\n // '05': ['100%', '100%']\n}\n\ntype Styles = Partial<{\n base: CSSProperties\n error: CSSProperties\n placeholder: CSSProperties\n validated: CSSProperties\n}>\n\nexport type AdyenPaymentConfig = {\n cardContainerClassName?: string\n threeDSecureContainerClassName?: string\n placeOrderCallback?: (response: { placed: boolean }) => void\n styles?: Styles\n}\n\ntype AdyenPaymentProps = {\n clientKey?: string\n config?: AdyenPaymentConfig\n templateCustomerSaveToWallet?: PaymentSourceProps['templateCustomerSaveToWallet']\n locale?: string\n environment?: string\n}\n\nconst defaultConfig: AdyenPaymentConfig = {}\n\nconst AdyenPayment: FunctionComponent<AdyenPaymentProps> = ({\n clientKey,\n config,\n templateCustomerSaveToWallet,\n environment = 'test',\n locale = 'en_US',\n}) => {\n const {\n cardContainerClassName,\n threeDSecureContainerClassName,\n placeOrderCallback,\n styles,\n } = {\n ...defaultConfig,\n ...config,\n }\n const [loadAdyen, setLoadAdyen] = useState(false)\n const [checkout, setCheckout] = useState({})\n const {\n setPaymentSource,\n paymentSource,\n setPaymentMethodErrors,\n currentPaymentMethodType,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n const { setPlaceOrder } = useContext(PlaceOrderContext)\n const ref = useRef<null | HTMLFormElement>(null)\n const handleSubmit = async (e: any, checkout: any): Promise<boolean> => {\n const savePaymentSourceToCustomerWallet =\n // @ts-ignore\n e?.elements?.['save_payment_source_to_customer_wallet']?.checked\n if (savePaymentSourceToCustomerWallet)\n setLocalOrder(\n 'savePaymentSourceToCustomerWallet',\n savePaymentSourceToCustomerWallet\n )\n const attributes: any = {\n _authorize: 1,\n }\n try {\n const pSource =\n paymentSource &&\n (await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: 'adyen_payments',\n attributes,\n }))\n // @ts-ignore\n const adyenAction = pSource?.paymentSource?.paymentResponse?.action\n // @ts-ignore\n const resultCode = pSource?.paymentSource?.paymentResponse?.resultCode\n // @ts-ignore\n if (adyenAction && resultCode === 'IdentifyShopper') {\n checkout\n .createFromAction(adyenAction, threeDSConfiguration)\n .mount('#adyen-action')\n } else if (['Authorised', 'Pending', 'Received'].includes(resultCode)) {\n const brand =\n // @ts-ignore\n pSource?.paymentSource?.paymentRequestData?.paymentMethod?.brand\n if (brand) {\n const attributes = { metadata: { card: { brand } } }\n await setPaymentSource({\n paymentSourceId: pSource?.paymentSource.id,\n paymentResource: 'adyen_payments',\n attributes,\n })\n }\n return true\n }\n // @ts-ignore\n const message = pSource?.paymentSource?.paymentResponse?.refusalReason\n setPaymentMethodErrors([\n {\n code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n resource: 'paymentMethod',\n field: currentPaymentMethodType,\n message,\n },\n ])\n return false\n } catch (error: any) {\n setPaymentMethodErrors([\n {\n code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n resource: 'paymentMethod',\n field: currentPaymentMethodType,\n message: error.message as string,\n },\n ])\n return false\n }\n }\n const handleChange = async (\n state: any,\n _component: any,\n config: any,\n paySource: any\n ) => {\n if (state.isValid) {\n if (ref.current) {\n const AdyenCheckout = require('@adyen/adyen-web')\n const adyenCheckout = await AdyenCheckout(config)\n ref.current.onsubmit = () =>\n handleSubmit(ref.current as any, adyenCheckout)\n setPaymentRef({ ref })\n }\n let browserInfo = getBrowserInfo()\n const attributes: any = {\n payment_request_data: {\n payment_method: state.data.paymentMethod,\n shopperInteraction: 'Ecommerce',\n recurringProcessingModel: 'CardOnFile',\n origin: window.location.origin,\n return_url: window.location.href,\n browser_info: {\n acceptHeader:\n 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',\n ...browserInfo,\n },\n },\n }\n paySource &&\n (await setPaymentSource({\n paymentSourceId: paySource.id,\n paymentResource: 'adyen_payments',\n attributes,\n rawResponse: true,\n }))\n }\n }\n const handleOnAdditionalDetails = async (\n state: any,\n _component: any,\n config: any\n ) => {\n const attributes: any = {\n payment_request_details: state.data,\n _details: 1,\n }\n try {\n const pSource =\n paymentSource &&\n (await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: 'adyen_payments',\n attributes,\n rawResponse: true,\n }))\n // @ts-ignore\n const adyenAction = pSource?.paymentSource?.paymentResponse?.action\n // @ts-ignore\n const resultCode = pSource?.paymentSource?.paymentResponse?.resultCode\n const AdyenCheckout = require('@adyen/adyen-web')\n if (adyenAction) {\n const adyenCheckout = await AdyenCheckout(config)\n adyenCheckout\n .createFromAction(adyenAction, threeDSConfiguration)\n .mount('#adyen-action')\n }\n if (['Authorised', 'Pending', 'Received'].includes(resultCode)) {\n const { placed } = (setPlaceOrder &&\n (await setPlaceOrder({\n // @ts-ignore\n paymentSource: pSource?.paymentSource as any,\n }))) || { placed: false }\n placed && placeOrderCallback && placeOrderCallback({ placed })\n }\n } catch (error) {\n console.error('Adyen additional details error:', error)\n }\n }\n useEffect(() => {\n // @ts-ignore\n const paymentMethodsResponse = !isEmpty(paymentSource?.paymentMethods)\n ? // @ts-ignore\n paymentSource?.paymentMethods\n : {}\n if (isEmpty(paymentMethodsResponse))\n console.error(\n 'Payment methods are not available. Please, check your Adyen configuration.'\n )\n const options: CoreOptions = {\n locale,\n environment,\n clientKey,\n paymentMethodsResponse,\n }\n options.onChange = (s: any, c: any) =>\n handleChange(s, c, options, paymentSource)\n options.onAdditionalDetails = (s: any, c: any) =>\n handleOnAdditionalDetails(s, c, options)\n if (!ref && clientKey)\n setLocalOrder('savePaymentSourceToCustomerWallet', 'false')\n if (clientKey && !loadAdyen && !isEmpty(window)) {\n const AdyenCheckout = require('@adyen/adyen-web')\n AdyenCheckout(options).then((adyenCheckout: any) => {\n const card = adyenCheckout\n .create('card', { styles })\n .mount('#adyen-card')\n if (card) {\n setCheckout(adyenCheckout)\n setLoadAdyen(true)\n }\n })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n setLoadAdyen(false)\n }\n }, [clientKey, ref])\n return !clientKey && !loadAdyen && !checkout ? null : (\n <form ref={ref} onSubmit={(e) => handleSubmit(e, checkout)}>\n <div className={cardContainerClassName} id=\"adyen-card\"></div>\n {templateCustomerSaveToWallet && (\n <Parent {...{ name: 'save_payment_source_to_customer_wallet' }}>\n {templateCustomerSaveToWallet}\n </Parent>\n )}\n <div className={threeDSecureContainerClassName} id=\"adyen-action\"></div>\n </form>\n )\n}\n\nexport default AdyenPayment\n","import Parent from '#components/utils/Parent'\nimport React, { useContext } from 'react'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport { CustomerPaymentSourceCollection } from '@commercelayer/js-sdk'\nimport PaymentSourceContext, { iconBrand } from '#context/PaymentSourceContext'\nimport { FunctionChildren } from '#typings'\n\ntype ChildrenProps = Pick<Props, 'customerPayments'> & {\n PaymentSourceProvider: typeof PaymentSourceContext.Provider\n}\n\ntype CustomerPayment = CustomerPaymentSourceCollection & {\n card?: {\n brand?: iconBrand\n last4?: string\n }\n handleClick?: () => void\n}\n\nexport type CustomerCardsTemplateChildren = FunctionChildren<ChildrenProps>\n\nexport type CustomerCardsTemplate = ChildrenProps\n\ntype Props = {\n customerPayments: CustomerPayment[]\n children: CustomerCardsTemplateChildren\n paymentResource: PaymentResource\n}\n\nexport default function PaymentCardsTemplate({\n customerPayments,\n children,\n paymentResource,\n}: Props) {\n const { setPaymentSource } = useContext(PaymentMethodContext)\n const payments = customerPayments.map((customerPayment) => {\n const attributes = customerPayment.attributes() as any\n const card =\n // @ts-ignore\n (customerPayment?.paymentSource()?.options?.card as Record<\n string,\n any\n >) ||\n // @ts-ignore\n customerPayment?.paymentSource()?.paymentRequestData?.paymentMethod ||\n // @ts-ignore\n (customerPayment?.paymentSource()?.metadata?.card as Record<string, any>)\n const handleClick = async (e: MouseEvent) => {\n e.stopPropagation()\n await setPaymentSource({\n paymentResource,\n customerPaymentSourceId: customerPayment.id,\n })\n }\n return { ...attributes, card, handleClick }\n })\n const value = {\n customerPayments: payments,\n PaymentSourceProvider: PaymentSourceContext.Provider,\n }\n return <Parent {...value}>{children}</Parent>\n}\n","import { GatewayBaseType } from '#components/PaymentGateway'\nimport CustomerContext from '#context/CustomerContext'\nimport OrderContext from '#context/OrderContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentSourceContext from '#context/PaymentSourceContext'\nimport {\n getPaymentConfig,\n PaymentResource,\n} from '#reducers/PaymentMethodReducer'\nimport { StripeElementLocale } from '@stripe/stripe-js'\nimport isEmpty from 'lodash/isEmpty'\nimport React, { Fragment, useContext } from 'react'\nimport AdyenPayment from '../AdyenPayment'\nimport PaymentCardsTemplate from '../utils/PaymentCardsTemplate'\n\ntype AdyenGateway = GatewayBaseType\n\nexport default function AdyenGateway(props: AdyenGateway) {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n onClickCustomerCards,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { order } = useContext(OrderContext)\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = 'adyen_payments'\n const locale = order?.languageCode as StripeElementLocale\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n\n const clientKey =\n // @ts-ignore\n paymentSource?.publicKey\n // TODO: Check\n const environment = paymentSource?.mode()\n const adyenConfig = config\n ? getPaymentConfig<'adyenPayment'>(paymentResource, config)\n : {}\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.paymentSourceType === 'AdyenPayment'\n })\n : []\n\n if (readonly || showCard) {\n // @ts-ignore\n const card = paymentSource?.paymentRequestData?.paymentMethod as Record<\n string,\n any\n >\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n\n if (!isGuest && templateCustomerCards) {\n // @ts-ignore\n return clientKey && !loading && paymentSource?.paymentMethods ? (\n <Fragment>\n {isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <AdyenPayment\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n clientKey={clientKey}\n locale={locale}\n environment={environment}\n config={adyenConfig}\n />\n </Fragment>\n ) : (\n loaderComponent\n )\n }\n // @ts-ignore\n return clientKey && !loading && paymentSource?.paymentMethods ? (\n <AdyenPayment clientKey={clientKey} locale={locale} config={adyenConfig} />\n ) : (\n loaderComponent\n )\n}\n","import React, {\n FunctionComponent,\n SyntheticEvent,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport {\n CardElement,\n Elements,\n useElements,\n useStripe,\n} from '@stripe/react-stripe-js'\nimport {\n StripeCardElementOptions,\n StripeElementLocale,\n} from '@stripe/stripe-js'\nimport { PaymentMethodConfig } from '#reducers/PaymentMethodReducer'\nimport { PaymentSourceProps } from './PaymentSource'\nimport Parent from './utils/Parent'\nimport OrderContext from '#context/OrderContext'\nimport { setCustomerOrderParam } from '#utils/localStorage'\n\nexport type StripeConfig = {\n containerClassName?: string\n hintLabel?: string\n name?: string\n options?: StripeCardElementOptions\n [key: string]: any\n}\n\ntype StripePaymentFormProps = {\n options?: StripeCardElementOptions\n templateCustomerSaveToWallet?: PaymentSourceProps['templateCustomerSaveToWallet']\n}\n\nconst defaultOptions = {\n style: {\n base: {\n fontSize: '16px',\n color: '#424770',\n '::placeholder': {\n color: '#aab7c4',\n },\n },\n invalid: {\n color: '#9e2146',\n },\n },\n hidePostalCode: true,\n}\n\nconst StripePaymentForm: FunctionComponent<StripePaymentFormProps> = ({\n options = defaultOptions,\n templateCustomerSaveToWallet,\n}) => {\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n setPaymentSource,\n paymentSource,\n currentPaymentMethodType,\n setPaymentMethodErrors,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n const stripe = useStripe()\n const elements = useElements()\n useEffect(() => {\n if (ref.current && stripe && elements) {\n ref.current.onsubmit = () =>\n onSubmit(ref.current as any, stripe, elements)\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, stripe, elements])\n const onSubmit = async (\n event: SyntheticEvent<HTMLFormElement>,\n stripe: any,\n elements: any\n ): Promise<boolean> => {\n if (!stripe) return false\n\n const savePaymentSourceToCustomerWallet =\n // @ts-ignore\n event?.elements?.['save_payment_source_to_customer_wallet']?.checked\n if (savePaymentSourceToCustomerWallet)\n setCustomerOrderParam(\n 'savePaymentSourceToCustomerWallet',\n savePaymentSourceToCustomerWallet\n )\n\n const cardElement = elements && elements.getElement(CardElement)\n if (cardElement) {\n const billingInfo = order?.billingAddress()\n const email = order?.customerEmail\n const billing_details = {\n name: billingInfo?.fullName,\n email,\n phone: billingInfo?.phone,\n address: {\n city: billingInfo?.city,\n country: billingInfo?.countryCode,\n line1: billingInfo?.line1,\n postal_code: billingInfo?.zipCode,\n state: billingInfo?.stateCode,\n },\n }\n const { paymentMethod } = await stripe.createPaymentMethod({\n type: 'card',\n card: cardElement,\n billing_details,\n })\n // @ts-ignore\n if (paymentSource?.clientSecret) {\n const { error, paymentIntent } = await stripe.confirmCardPayment(\n // @ts-ignore\n paymentSource.clientSecret,\n {\n payment_method: {\n card: cardElement,\n billing_details,\n },\n }\n )\n if (error) {\n console.error(error)\n setPaymentMethodErrors([\n {\n code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n resource: 'paymentMethod',\n field: currentPaymentMethodType,\n message: error.message as string,\n },\n ])\n } else {\n if (\n paymentIntent &&\n paymentMethod &&\n paymentSource &&\n currentPaymentMethodType\n ) {\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n options: {\n ...(paymentMethod as Record<string, any>),\n setup_future_usage: 'off_session',\n },\n },\n })\n return true\n } catch (e) {\n return false\n }\n }\n }\n }\n }\n return false\n }\n\n return (\n <form ref={ref} onSubmit={(e) => onSubmit(e, stripe, elements)}>\n <CardElement options={{ ...defaultOptions, ...options }} />\n {templateCustomerSaveToWallet && (\n <Parent {...{ name: 'save_payment_source_to_customer_wallet' }}>\n {templateCustomerSaveToWallet}\n </Parent>\n )}\n </form>\n )\n}\n\ntype StripePaymentProps = PaymentMethodConfig['stripePayment'] &\n JSX.IntrinsicElements['div'] &\n Partial<PaymentSourceProps['templateCustomerSaveToWallet']> & {\n show?: boolean\n publishableKey: string\n locale?: StripeElementLocale\n }\n\nconst StripePayment: FunctionComponent<StripePaymentProps> = ({\n publishableKey,\n show,\n options,\n locale = 'auto',\n ...p\n}) => {\n const [isLoaded, setIsLoaded] = useState(false)\n const [stripe, setStripe] = useState(null)\n const {\n containerClassName,\n templateCustomerSaveToWallet,\n fonts = [],\n ...divProps\n } = p\n useEffect(() => {\n if (show && publishableKey) {\n const { loadStripe } = require('@stripe/stripe-js')\n const getStripe = async () => {\n const res = await loadStripe(publishableKey, {\n locale,\n })\n setStripe(res)\n setIsLoaded(true)\n }\n getStripe()\n }\n return () => {\n setIsLoaded(false)\n }\n }, [show, publishableKey])\n return isLoaded && stripe ? (\n <div className={containerClassName} {...divProps}>\n <Elements stripe={stripe} options={{ fonts }}>\n <StripePaymentForm\n options={options}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n />\n </Elements>\n </div>\n ) : null\n}\n\nexport default StripePayment\n","import { GatewayBaseType } from '#components/PaymentGateway'\nimport StripePayment from '#components/StripePayment'\nimport CustomerContext from '#context/CustomerContext'\nimport OrderContext from '#context/OrderContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentSourceContext from '#context/PaymentSourceContext'\nimport {\n getPaymentConfig,\n PaymentResource,\n} from '#reducers/PaymentMethodReducer'\nimport { StripeElementLocale } from '@stripe/stripe-js'\nimport isEmpty from 'lodash/isEmpty'\nimport React, { Fragment, useContext } from 'react'\nimport PaymentCardsTemplate from '../utils/PaymentCardsTemplate'\n\ntype StripeGateway = GatewayBaseType\n\nexport default function StripeGateway(props: StripeGateway) {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n onClickCustomerCards,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { order } = useContext(OrderContext)\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = 'stripe_payments'\n const locale = order?.languageCode as StripeElementLocale\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n\n // @ts-ignore\n const publishableKey = paymentSource?.publishableKey\n const stripeConfig = config\n ? getPaymentConfig<'stripePayment'>(paymentResource, config)\n : {}\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.paymentSourceType === 'StripePayment'\n })\n : []\n\n if (readonly || showCard) {\n // @ts-ignore\n const card = paymentSource?.options?.card as Record<string, any>\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n if (!isGuest && templateCustomerCards) {\n return (\n <Fragment>\n {isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <StripePayment\n show={show}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n publishableKey={publishableKey}\n locale={locale}\n {...stripeConfig}\n />\n </Fragment>\n )\n }\n\n return publishableKey && !loading ? (\n <StripePayment\n show={show}\n publishableKey={publishableKey}\n locale={locale}\n {...stripeConfig}\n />\n ) : (\n loaderComponent\n )\n}\n","import isFunction from 'lodash/isFunction'\n\nexport default function promisify(cb: any, params?: any) {\n return new Promise<any>((resolve, reject) => {\n if (params)\n cb(params, (err: any, res: any) => {\n if (err) reject(err)\n resolve(res)\n })\n else if (isFunction(cb?.tokenize)) {\n cb?.tokenize((err: any, payload: any) => {\n if (err) reject(err)\n resolve(payload)\n })\n } else\n cb((err: any, res: any) => {\n if (err) reject(err)\n resolve(res)\n })\n })\n}\n","import React, {\n FormEvent,\n FunctionComponent,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { HostedFieldFieldOptions } from 'braintree-web/modules/hosted-fields'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport isEmpty from 'lodash/isEmpty'\nimport OrderContext from '#context/OrderContext'\nimport Parent from './utils/Parent'\nimport { PaymentSourceProps } from './PaymentSource'\nimport { setLocalOrder } from '#utils/localStorage'\nimport promisify from '#utils/promisify'\ntype BraintreeHostedFields<Type> = {\n [Property in keyof Type]: {\n label?: string\n } & Type[Property]\n}\n\nexport type BraintreeConfig = {\n containerClassName?: string\n cardContainerClassName?: string\n expDateContainerClassName?: string\n fieldsContainerClassName?: string\n cvvContainerClassName?: string\n cardDetailsContainerClassName?: string\n fieldLabelClassName?: string\n inputWrapperClassName?: string\n fields?: BraintreeHostedFields<HostedFieldFieldOptions>\n styles?: {\n [key: string]: Record<string, string>\n }\n}\n\ntype BraintreePaymentProps = {\n authorization: string\n config?: BraintreeConfig\n templateCustomerSaveToWallet?: PaymentSourceProps['templateCustomerSaveToWallet']\n locale?: string\n}\n\nconst defaultConfig: BraintreeConfig = {\n styles: {\n // Style all elements\n input: {\n 'font-size': '16px',\n color: '#3A3A3A',\n },\n\n // Styling a specific field\n // Custom web fonts are not supported. Only use system installed fonts.\n '.number': {\n 'font-family': 'monospace',\n },\n\n // Styling element state\n ':focus': {\n color: 'blue',\n },\n '.valid': {\n color: 'green',\n },\n '.invalid': {\n color: 'red',\n },\n\n // Media queries\n // Note that these apply to the iframe, not the root window.\n '@media screen and (max-width: 700px)': {\n // @ts-ignore\n input: {\n 'font-size': '14px',\n },\n },\n },\n fields: {\n number: {\n label: 'Card Number',\n selector: '#card-number',\n placeholder: '4111 1111 1111 1111',\n },\n cvv: {\n label: 'CVV',\n selector: '#cvv',\n placeholder: '123',\n },\n expirationDate: {\n label: 'Expiration Date',\n selector: '#expiration-date',\n placeholder: '10/2022',\n },\n },\n submitLabel: 'Set payment method',\n}\n\nconst BraintreePayment: FunctionComponent<BraintreePaymentProps> = ({\n authorization,\n config,\n templateCustomerSaveToWallet,\n}) => {\n const {\n fields,\n styles,\n containerClassName,\n cardContainerClassName,\n fieldsContainerClassName,\n expDateContainerClassName,\n fieldLabelClassName,\n cvvContainerClassName,\n inputWrapperClassName,\n cardDetailsContainerClassName,\n } = { ...defaultConfig, ...config }\n const [loadBraintree, setLoadBraintree] = useState(false)\n const {\n setPaymentSource,\n paymentSource,\n setPaymentMethodErrors,\n currentPaymentMethodType,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n const ref = useRef<null | HTMLFormElement>(null)\n const handleSubmitForm = async (\n event?: FormEvent<HTMLFormElement>,\n hostedFieldsInstance?: any,\n threeDSInstance?: any\n ) => {\n const savePaymentSourceToCustomerWallet =\n // @ts-ignore\n event?.elements?.['save_payment_source_to_customer_wallet']?.checked\n if (savePaymentSourceToCustomerWallet)\n setLocalOrder(\n 'savePaymentSourceToCustomerWallet',\n savePaymentSourceToCustomerWallet\n )\n if (hostedFieldsInstance) {\n try {\n const payload = await promisify(hostedFieldsInstance).then(\n (payload) => payload\n )\n const billingAddress = order?.billingAddress()\n const verifyCardOptions = {\n nonce: payload.nonce,\n bin: payload.details.bin,\n amount: order?.totalAmountWithTaxesFloat as number,\n email: order?.customerEmail,\n billingAddress: {\n givenName: billingAddress?.firstName,\n surname: billingAddress?.lastName,\n phoneNumber: billingAddress?.phone,\n streetAddress: billingAddress?.line1,\n countryCodeAlpha2: billingAddress?.countryCode,\n postalCode: billingAddress?.zipCode,\n region: billingAddress?.stateCode,\n locality: billingAddress?.city,\n },\n onLookupComplete: (_data: any, next: any) => {\n next()\n },\n }\n const response = await threeDSInstance.verifyCard(verifyCardOptions)\n if (\n response.rawCardinalSDKVerificationData.Validated &&\n paymentSource\n ) {\n paymentSource &&\n (await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: 'braintree_payments',\n attributes: {\n paymentMethodNonce: response.nonce,\n options: {\n id: response.nonce,\n card: {\n last4: response.details.lastFour,\n expYear: response.details.expirationYear,\n expMonth: response.details.expirationMonth,\n brand: response.details.cardType.toLowerCase(),\n },\n },\n },\n }))\n return true\n }\n return false\n } catch (error: any) {\n console.error(error)\n setPaymentMethodErrors([\n {\n code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n resource: 'paymentMethod',\n field: currentPaymentMethodType,\n message: error.message as string,\n },\n ])\n return false\n }\n }\n return false\n }\n useEffect(() => {\n if (!ref && authorization)\n setLocalOrder('savePaymentSourceToCustomerWallet', 'false')\n if (authorization && !loadBraintree && !isEmpty(window)) {\n const braintreeClient = require('braintree-web/client')\n const hostedFields = require('braintree-web/hosted-fields')\n const threeDSecure = require('braintree-web/three-d-secure')\n braintreeClient.create(\n { authorization },\n (clientErr: any, clientInstance: any) => {\n if (clientErr) {\n console.error(clientErr)\n return\n }\n hostedFields.create(\n {\n client: clientInstance,\n fields: fields as HostedFieldFieldOptions,\n styles: styles,\n },\n (hostedFieldsErr: any, hostedFieldsInstance: any) => {\n if (hostedFieldsErr) {\n console.error(hostedFieldsErr)\n return\n }\n setLoadBraintree(true)\n threeDSecure.create(\n {\n authorization,\n version: 2,\n },\n (threeDSecureErr: any, threeDSecureInstance: any) => {\n if (threeDSecureErr) {\n // Handle error in 3D Secure component creation\n console.error('3DSecure error', threeDSecureErr)\n setPaymentMethodErrors([\n {\n code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n resource: 'paymentMethod',\n field: currentPaymentMethodType,\n message: threeDSecureErr.message as string,\n },\n ])\n }\n if (ref.current) {\n ref.current.onsubmit = () =>\n handleSubmitForm(\n ref.current as any,\n hostedFieldsInstance,\n threeDSecureInstance\n )\n setPaymentRef({ ref })\n }\n }\n )\n }\n )\n }\n )\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n setLoadBraintree(false)\n }\n }, [authorization, ref])\n return !authorization && !loadBraintree ? null : (\n <div className={containerClassName}>\n <form\n ref={ref}\n id=\"braintree-form\"\n onSubmit={handleSubmitForm}\n className={containerClassName}\n >\n <div className={fieldsContainerClassName}>\n <div className={cardContainerClassName}>\n <label className={fieldLabelClassName} htmlFor=\"card-number\">\n {fields?.number?.label}\n </label>\n <div className={inputWrapperClassName} id=\"card-number\"></div>\n </div>\n <div className={cardDetailsContainerClassName}>\n <div className={expDateContainerClassName}>\n <label className={fieldLabelClassName} htmlFor=\"expiration-date\">\n {fields?.expirationDate?.label}\n </label>\n <div className={inputWrapperClassName} id=\"expiration-date\"></div>\n </div>\n <div className={cvvContainerClassName}>\n <label className={fieldLabelClassName} htmlFor=\"cvv\">\n {fields?.cvv?.label}\n </label>\n <div className={inputWrapperClassName} id=\"cvv\"></div>\n </div>\n </div>\n </div>\n <div className={fieldsContainerClassName}>\n {templateCustomerSaveToWallet && (\n <Parent {...{ name: 'save_payment_source_to_customer_wallet' }}>\n {templateCustomerSaveToWallet}\n </Parent>\n )}\n </div>\n </form>\n </div>\n )\n}\n\nexport default BraintreePayment\n","import BraintreePayment from '#components/BraintreePayment'\nimport { GatewayBaseType } from '#components/PaymentGateway'\nimport CustomerContext from '#context/CustomerContext'\nimport OrderContext from '#context/OrderContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentSourceContext from '#context/PaymentSourceContext'\nimport {\n getPaymentConfig,\n PaymentResource,\n} from '#reducers/PaymentMethodReducer'\nimport { StripeElementLocale } from '@stripe/stripe-js'\nimport isEmpty from 'lodash/isEmpty'\nimport React, { Fragment, useContext } from 'react'\nimport PaymentCardsTemplate from '../utils/PaymentCardsTemplate'\n\ntype BraintreeGateway = GatewayBaseType\n\nexport default function BraintreeGateway(props: BraintreeGateway) {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n onClickCustomerCards,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { order } = useContext(OrderContext)\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = 'braintree_payments'\n const locale = order?.languageCode as StripeElementLocale\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n // @ts-ignore\n const authorization = paymentSource?.clientToken\n const braintreeConfig = config\n ? getPaymentConfig<'braintreePayment'>(paymentResource, config)\n : {}\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.paymentSourceType === 'BraintreePayment'\n })\n : []\n if (readonly || showCard) {\n // @ts-ignore\n const card = paymentSource?.options?.card as Record<string, any>\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n if (!isGuest && templateCustomerCards) {\n return authorization && !loading ? (\n <Fragment>\n {isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <BraintreePayment\n // show={show}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n authorization={authorization}\n locale={locale}\n config={braintreeConfig}\n />\n </Fragment>\n ) : (\n loaderComponent\n )\n }\n return authorization && !loading ? (\n <BraintreePayment authorization={authorization} />\n ) : (\n loaderComponent\n )\n}\n","import PaymentMethodContext from '#context/PaymentMethodContext'\nimport isFunction from 'lodash/isFunction'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nexport type PaypalConfig = {\n returnUrl: string\n cancelUrl: string\n infoMessage?: {\n text?: string | ReactNode\n className?: string\n }\n}\n\nconst defaultMessage =\n 'by placing the order, you will be redirected to the PayPal website to sign in and authorize the payment'\n\ntype Props = Omit<PaypalConfig, 'returnUrl' | 'cancelUrl'> &\n JSX.IntrinsicElements['div']\nconst PaypalPayment: FunctionComponent<Props> = ({ infoMessage, ...p }) => {\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n setPaymentSource,\n paymentSource,\n currentPaymentMethodType,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n useEffect(() => {\n if (\n ref.current &&\n paymentSource &&\n currentPaymentMethodType &&\n // @ts-ignore\n paymentSource?.approvalUrl\n ) {\n ref.current.onsubmit = () => handleClick()\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, paymentSource, currentPaymentMethodType])\n const handleClick = async () => {\n if (paymentSource && currentPaymentMethodType) {\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n metadata: {\n card: {\n id: paymentSource.id,\n brand: 'paypal',\n last4: '',\n },\n },\n },\n })\n return true\n } catch (e) {\n return false\n }\n }\n return false\n }\n return (\n <form ref={ref}>\n <div {...p}>\n <span className={infoMessage?.className}>\n {isFunction(infoMessage?.text)\n ? infoMessage?.text()\n : infoMessage?.text || defaultMessage}\n </span>\n </div>\n </form>\n )\n}\n\nexport default PaypalPayment\n","import { GatewayBaseType } from '#components/PaymentGateway'\nimport PaypalPayment from '#components/PaypalPayment'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentSourceContext from '#context/PaymentSourceContext'\nimport {\n getPaymentConfig,\n PaymentResource,\n} from '#reducers/PaymentMethodReducer'\nimport isEmpty from 'lodash/isEmpty'\nimport React, { useContext } from 'react'\n\ntype PaypalGateway = GatewayBaseType\n\nexport default function PaypalGateway(props: PaypalGateway) {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n onClickCustomerCards,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = 'paypal_payments'\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n if (readonly || showCard) {\n const card =\n // @ts-ignore\n paymentSource?.options?.card ||\n // @ts-ignore\n (paymentSource?.metadata?.card as Record<string, any>)\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n const paypalConfig =\n config && getPaymentConfig<'paypalPayment'>(paymentResource, config)\n return <PaypalPayment {...p} infoMessage={paypalConfig?.infoMessage} />\n}\n","import PaymentMethodContext from '#context/PaymentMethodContext'\nimport isFunction from 'lodash/isFunction'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nexport type WireTransferConfig = {\n infoMessage?: {\n text?: string | ReactNode\n className?: string\n }\n}\n\nconst defaultMessage =\n 'after placing the order, you will need to manually complete the payment with your bank'\n\ntype Props = WireTransferConfig & JSX.IntrinsicElements['div']\nconst WireTransferPayment: FunctionComponent<Props> = ({\n infoMessage,\n ...p\n}) => {\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n setPaymentSource,\n paymentSource,\n currentPaymentMethodType,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n useEffect(() => {\n if (ref.current && paymentSource && currentPaymentMethodType) {\n ref.current.onsubmit = () => handleClick()\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, paymentSource, currentPaymentMethodType])\n const handleClick = async () => {\n if (paymentSource && currentPaymentMethodType) {\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n metadata: {\n card: {\n id: paymentSource.id,\n brand: 'wire-transfer',\n last4: '',\n },\n },\n },\n })\n return true\n } catch (error) {\n return false\n }\n }\n return false\n }\n return (\n <form ref={ref}>\n <div {...p}>\n <span className={infoMessage?.className}>\n {isFunction(infoMessage?.text)\n ? infoMessage?.text()\n : infoMessage?.text || defaultMessage}\n </span>\n </div>\n </form>\n )\n}\n\nexport default WireTransferPayment\n","import { GatewayBaseType } from '#components/PaymentGateway'\nimport WireTransferPayment from '#components/WireTransferPayment'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentSourceContext from '#context/PaymentSourceContext'\nimport {\n getPaymentConfig,\n PaymentResource,\n} from '#reducers/PaymentMethodReducer'\nimport isEmpty from 'lodash/isEmpty'\nimport React, { useContext } from 'react'\n\ntype WireTransferGateway = GatewayBaseType\n\nexport default function WireTransferGateway(props: WireTransferGateway) {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n onClickCustomerCards,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = 'wire_transfers'\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n if (readonly || showCard) {\n const card =\n // @ts-ignore\n paymentSource?.options?.card ||\n // @ts-ignore\n (paymentSource?.metadata?.card as Record<string, any>)\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n const wireTransferConfig =\n config && paymentResource\n ? getPaymentConfig<'wireTransfer'>(paymentResource, config)\n : {}\n return <WireTransferPayment {...p} {...wireTransferConfig} />\n}\n","import OrderContext from '#context/OrderContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport { LoaderType } from '#typings'\nimport getPaypalConfig from '#utils/paypalPayment'\nimport React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { PaymentSourceProps } from './PaymentSource'\nimport getLoaderComponent from '#utils/getLoaderComponent'\nimport AdyenGateway from './gateways/AdyenGateway'\nimport StripeGateway from './gateways/StripeGateway'\nimport BraintreeGateway from './gateways/BraintreeGateway'\nimport PaypalGateway from './gateways/PaypalGateway'\nimport WireTransferGateway from './gateways/WireTransferGateway'\nimport CustomerContext from '#context/CustomerContext'\n\nexport type GatewayBaseType = PaymentGatewayProps & {\n show: boolean\n loading: boolean\n loaderComponent: JSX.Element\n}\n\nexport type PaymentGatewayProps = PaymentSourceProps & {\n showCard: boolean\n handleEditClick: (e: MouseEvent) => void\n show: boolean\n loader?: LoaderType\n}\n\nconst PaymentGateway: FunctionComponent<PaymentGatewayProps> = ({\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n templateCustomerSaveToWallet,\n onClickCustomerCards,\n show,\n loader = 'Loading...',\n ...p\n}) => {\n const loaderComponent = getLoaderComponent(loader)\n const [loading, setLoading] = useState(true)\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { order } = useContext(OrderContext)\n const { getCustomerPaymentSources } = useContext(CustomerContext)\n const {\n currentPaymentMethodId,\n config,\n paymentSource,\n currentPaymentMethodType,\n setPaymentSource,\n } = useContext(PaymentMethodContext)\n const paymentResource = readonly\n ? currentPaymentMethodType\n : (payment?.paymentSourceType as PaymentResource)\n useEffect(() => {\n if (\n paymentResource &&\n !paymentSource &&\n payment?.id === currentPaymentMethodId &&\n order\n ) {\n const attributes =\n config && paymentResource === 'paypal_payments'\n ? getPaypalConfig(paymentResource, config)\n : {}\n setPaymentSource({\n paymentResource,\n order,\n attributes,\n })\n getCustomerPaymentSources && getCustomerPaymentSources()\n }\n if (paymentSource) setLoading(false)\n return () => {\n setLoading(true)\n }\n }, [paymentSource, payment, show])\n const gatewayConfig = {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n onClickCustomerCards,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p,\n }\n switch (paymentResource) {\n case 'stripe_payments':\n return <StripeGateway {...gatewayConfig}>{children}</StripeGateway>\n case 'adyen_payments':\n return <AdyenGateway {...gatewayConfig}>{children}</AdyenGateway>\n case 'braintree_payments':\n return <BraintreeGateway {...gatewayConfig}>{children}</BraintreeGateway>\n case 'wire_transfers':\n return (\n <WireTransferGateway {...gatewayConfig}>{children}</WireTransferGateway>\n )\n case 'paypal_payments':\n return <PaypalGateway {...gatewayConfig}>{children}</PaypalGateway>\n default:\n return null\n }\n}\n\nexport default PaymentGateway\n","import React, {\n useContext,\n FunctionComponent,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport components from '#config/components'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport { isEmpty } from 'lodash'\nimport CustomerContext from '#context/CustomerContext'\nimport PaymentGateway from './PaymentGateway'\nimport { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport { LoaderType } from '#typings/index'\nimport { CustomerCardsTemplateChildren } from './utils/PaymentCardsTemplate'\n\nconst propTypes = components.PaymentSource.propTypes\nconst displayName = components.PaymentSource.displayName\n\nexport type CustomerCardsProps = {\n handleClick: () => void\n}\n\nexport type CustomerSaveToWalletProps = {\n name: 'save_payment_source_to_customer_wallet'\n}\n\nexport type PaymentSourceProps = {\n children?: ReactNode\n readonly?: boolean\n templateCustomerCards?: CustomerCardsTemplateChildren\n onClickCustomerCards?: () => void\n templateCustomerSaveToWallet?: (props: CustomerSaveToWalletProps) => ReactNode\n loader?: LoaderType\n} & JSX.IntrinsicElements['div']\n\nconst PaymentSource: FunctionComponent<PaymentSourceProps> = (props) => {\n const { readonly } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { payments } = useContext(CustomerContext)\n const { currentPaymentMethodId, paymentSource, destroyPaymentSource } =\n useContext(PaymentMethodContext)\n const [show, setShow] = useState(false)\n const [showCard, setShowCard] = useState(false)\n\n useEffect(() => {\n if (readonly) {\n setShow(true)\n setShowCard(true)\n } else if (payment?.id === currentPaymentMethodId) {\n setShow(true)\n // NOTE: Remove metadata in the future\n const card =\n // @ts-ignore\n paymentSource?.options?.card ||\n // @ts-ignore\n paymentSource?.metadata?.card ||\n // NOTE: Adyen payment\n // @ts-ignore\n (paymentSource?.paymentRequestData?.paymentMethod?.brand &&\n // @ts-ignore\n paymentSource?.paymentResponse?.resultCode === 'Authorised' && {\n // @ts-ignore\n brand: paymentSource?.paymentRequestData?.paymentMethod?.brand,\n })\n if (!isEmpty(card)) setShowCard(true)\n } else setShow(false)\n return () => {\n setShow(false)\n setShowCard(false)\n }\n }, [currentPaymentMethodId, paymentSource, payments, payment, readonly])\n const handleEditClick = (e: MouseEvent) => {\n e.stopPropagation()\n paymentSource &&\n destroyPaymentSource({\n paymentSourceId: paymentSource?.id,\n paymentResource: payment?.paymentSourceType as PaymentResource,\n })\n setShowCard(!showCard)\n setShow(true)\n }\n const gatewayProps = { ...props, show, showCard, handleEditClick, readonly }\n return <PaymentGateway {...gatewayProps} />\n}\n\nPaymentSource.propTypes = propTypes\nPaymentSource.displayName = displayName\n\nexport default PaymentSource\n","import PaymentSourceContext, { iconBrand } from '#context/PaymentSourceContext'\nimport React, { FunctionComponent, useContext, useRef } from 'react'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings'\nimport components from '#config/components'\n\nconst propTypes = components.PaymentSourceBrandIcon.propTypes\nconst displayName = components.PaymentSourceBrandIcon.displayName\n\ntype CustomComponent = FunctionChildren<\n Omit<\n Props & { brand: iconBrand; defaultSrc: string; url: string },\n 'children'\n >\n>\n\ntype Props = {\n children?: CustomComponent\n width?: number\n height?: number\n} & JSX.IntrinsicElements['img']\nconst PaymentSourceBrandIcon: FunctionComponent<Props> = ({\n src,\n width = 32,\n children,\n ...p\n}) => {\n const { brand } = useContext(PaymentSourceContext)\n const ref = useRef<HTMLImageElement>(null)\n const defaultSrc =\n '//data.commercelayer.app/assets/images/icons/credit-cards/color/credit-card.svg'\n const url = src\n ? src\n : `//data.commercelayer.app/assets/images/icons/credit-cards/color/${brand}.svg`\n const handleError = () => {\n if (ref.current) ref.current.src = defaultSrc\n }\n const parentProps = {\n brand,\n defaultSrc,\n url,\n width,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <img ref={ref} src={url} onError={handleError} width={width} {...p} />\n )\n}\n\nPaymentSourceBrandIcon.propTypes = propTypes\nPaymentSourceBrandIcon.displayName = displayName\n\nexport default PaymentSourceBrandIcon\n","import PaymentSourceContext, { iconBrand } from '#context/PaymentSourceContext'\nimport { capitalize } from 'lodash'\nimport React, { FunctionComponent, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings'\nimport components from '#config/components'\n\nconst propTypes = components.PaymentSourceBrandName.propTypes\nconst displayName = components.PaymentSourceBrandName.displayName\n\ntype CustomComponent = FunctionChildren<\n Omit<Props & { brand: iconBrand }, 'children'>\n>\n\ntype Props = {\n children?: CustomComponent\n label?: string\n} & JSX.IntrinsicElements['span']\nconst PaymentSourceBrandName: FunctionComponent<Props> = ({\n children,\n label,\n ...props\n}) => {\n const { brand } = useContext(PaymentSourceContext)\n const brandName = brand && capitalize(brand.replace('-', ' '))\n const parentProps = {\n brand: brandName,\n label,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...props}>{label || capitalize(brandName)}</span>\n )\n}\n\nPaymentSourceBrandName.propTypes = propTypes\nPaymentSourceBrandName.displayName = displayName\n\nexport default PaymentSourceBrandName\n","import components from '#config/components'\nimport PaymentSourceContext from '#context/PaymentSourceContext'\nimport { has } from 'lodash'\nimport React, { FunctionComponent, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings'\nconst propTypes = components.PaymentSourceDetail.propTypes\nconst displayName = components.PaymentSourceDetail.displayName\n\nexport type PaymentSourceDetailType = 'last4' | 'expYear' | 'expMonth'\n\ntype CustomComponent = FunctionChildren<\n Omit<Props & { text: string }, 'children'>\n>\n\ntype Props = {\n children?: CustomComponent\n type: PaymentSourceDetailType\n} & JSX.IntrinsicElements['span']\nconst PaymentSourceDetail: FunctionComponent<Props> = ({\n type,\n children,\n ...p\n}) => {\n const card = useContext(PaymentSourceContext)\n const text = has(card, type) ? card[type] : type === 'last4' ? '****' : '**'\n const parentProps = {\n type,\n text,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{text}</span>\n )\n}\n\nPaymentSourceDetail.propTypes = propTypes\nPaymentSourceDetail.displayName = displayName\n\nexport default PaymentSourceDetail\n","import PaymentSourceContext from '#context/PaymentSourceContext'\nimport React, { FunctionComponent, ReactNode, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings'\nimport components from '#config/components'\n\nconst displayName = components.PaymentSourceEditButton.displayName\nconst propTypes = components.PaymentSourceEditButton.propTypes\n\ntype CustomComponent = FunctionChildren<Omit<Props, 'children'>>\n\ntype Props = {\n children?: CustomComponent\n label?: string | ReactNode\n} & Omit<JSX.IntrinsicElements['button'], 'onClick'>\nconst PaymentSourceEditButton: FunctionComponent<Props> = ({\n children,\n label = 'Edit',\n ...props\n}) => {\n const { showCard, handleEditClick, readonly } =\n useContext(PaymentSourceContext)\n const parentProps = {\n showCard,\n label,\n handleEditClick,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : !readonly ? (\n <button {...props} onClick={handleEditClick as any}>\n {label}\n </button>\n ) : null\n}\n\nPaymentSourceEditButton.propTypes = propTypes\nPaymentSourceEditButton.displayName = displayName\n\nexport default PaymentSourceEditButton\n","import React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\nimport isFunction from 'lodash/isFunction'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport OrderContext from '#context/OrderContext'\n\nconst propTypes = components.PlaceOrderButton.propTypes\nconst defaultProps = components.PlaceOrderButton.defaultProps\nconst displayName = components.PlaceOrderButton.displayName\n\ntype PlaceOrderButtonChildrenProps = FunctionChildren<\n Omit<PlaceOrderButtonProps, 'children'>\n>\n\ntype PlaceOrderButtonProps = {\n children?: PlaceOrderButtonChildrenProps\n label?: string | ReactNode\n onClick?: (response: { placed: boolean }) => void\n} & JSX.IntrinsicElements['button']\n\nconst PlaceOrderButton: FunctionComponent<PlaceOrderButtonProps> = (props) => {\n const { children, label = 'Place order', disabled, onClick, ...p } = props\n const { isPermitted, setPlaceOrder, options, paymentType } =\n useContext(PlaceOrderContext)\n const [notPermitted, setNotPermitted] = useState(true)\n const [forceDisable, setForceDisable] = useState(disabled)\n const {\n currentPaymentMethodRef,\n paymentSource,\n loading,\n currentPaymentMethodType,\n } = useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n useEffect(() => {\n if (loading) setNotPermitted(loading)\n else {\n if (paymentType === currentPaymentMethodType) {\n if (\n (order?.totalAmountWithTaxesCents === 0 ||\n currentPaymentMethodRef?.current?.onsubmit ||\n // @ts-ignore\n paymentSource?.metadata?.card?.id ||\n // @ts-ignore\n paymentSource?.options?.id ||\n // @ts-ignore\n paymentSource?.paymentResponse?.resultCode === 'Authorised') &&\n isPermitted\n ) {\n setNotPermitted(false)\n }\n } else {\n setNotPermitted(true)\n }\n }\n if (paymentType === 'paypal_payments' && options?.paypalPayerId) {\n handleClick()\n }\n return () => {\n setNotPermitted(true)\n }\n }, [\n isPermitted,\n options?.paypalPayerId,\n paymentType,\n currentPaymentMethodRef?.current?.onsubmit,\n paymentSource,\n loading,\n currentPaymentMethodType,\n order,\n ])\n const handleClick = async () => {\n let isValid = true\n setForceDisable(true)\n if (currentPaymentMethodRef?.current?.onsubmit && !options?.paypalPayerId) {\n // @ts-ignore\n isValid = (await currentPaymentMethodRef.current?.onsubmit()) as any\n // @ts-ignore\n } else if (paymentSource?.options?.id) {\n isValid = true\n }\n const placed =\n isValid &&\n setPlaceOrder &&\n (await setPlaceOrder({ paymentSource: paymentSource as any }))\n setForceDisable(false)\n onClick && placed && onClick(placed)\n }\n const disabledButton = disabled !== undefined ? disabled : notPermitted\n const parentProps = {\n ...p,\n label,\n disabled: disabledButton,\n handleClick,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button\n type=\"button\"\n disabled={disabledButton || forceDisable}\n onClick={handleClick}\n {...p}\n >\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nPlaceOrderButton.propTypes = propTypes\nPlaceOrderButton.defaultProps = defaultProps\nPlaceOrderButton.displayName = displayName\n\nexport default PlaceOrderButton\n","import PlaceOrderContext from '#context/PlaceOrderContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport placeOrderReducer, {\n placeOrderInitialState,\n PlaceOrderOptions,\n placeOrderPermitted,\n} from '#reducers/PlaceOrderReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport { setPlaceOrder } from '../reducers/PlaceOrderReducer'\n\nconst propTypes = components.PlaceOrderContainer.propTypes\nconst displayName = components.PlaceOrderContainer.displayName\n\ntype PlaceOrderContainerProps = {\n children: ReactNode\n options?: PlaceOrderOptions\n}\nconst PlaceOrderContainer: FunctionComponent<PlaceOrderContainerProps> = (\n props\n) => {\n const { children, options } = props\n const [state, dispatch] = useReducer(\n placeOrderReducer,\n placeOrderInitialState\n )\n const {\n order,\n saveBillingAddressToCustomerAddressBook,\n saveShippingAddressToCustomerAddressBook,\n setOrderErrors,\n } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (order) {\n placeOrderPermitted({\n config,\n dispatch,\n order,\n options: {\n saveBillingAddressToCustomerAddressBook,\n saveShippingAddressToCustomerAddressBook,\n ...options,\n },\n })\n }\n }, [order])\n const contextValue = {\n ...state,\n setPlaceOrder: ({\n paymentSource,\n }: {\n paymentSource: Record<string, string>\n }) =>\n setPlaceOrder({ config, order, state, setOrderErrors, paymentSource }),\n placeOrderPermitted: () =>\n placeOrderPermitted({\n config,\n dispatch,\n order,\n options: {\n saveBillingAddressToCustomerAddressBook,\n saveShippingAddressToCustomerAddressBook,\n ...options,\n },\n }),\n }\n return (\n <PlaceOrderContext.Provider value={contextValue}>\n {children}\n </PlaceOrderContext.Provider>\n )\n}\n\nPlaceOrderContainer.propTypes = propTypes\nPlaceOrderContainer.displayName = displayName\n\nexport default PlaceOrderContainer\n","import React, { Fragment, FunctionComponent } from 'react'\nimport { PriceProps } from '#components/Price'\nimport PropTypes from 'prop-types'\n\nconst propTypes = {\n formattedAmount: PropTypes.string,\n formattedCompare: PropTypes.string,\n}\nconst defaultProps = {\n formattedAmount: '',\n formattedCompare: '',\n}\n\nexport type PTemplateProps = {\n formattedAmount?: string\n formattedCompare?: string\n} & Omit<PriceProps, 'children'>\n\nconst PriceTemplate: FunctionComponent<PTemplateProps> = (props) => {\n return (\n <Fragment>\n <span className={props.className}>{props.formattedAmount}</span>\n {props.showCompare && (\n <span className={props.compareClassName || ''}>\n {props.formattedCompare}\n </span>\n )}\n </Fragment>\n )\n}\n\nPriceTemplate.propTypes = propTypes\nPriceTemplate.defaultProps = defaultProps\n\nexport default PriceTemplate\n","import { isEmpty, first, isArray, has, forEach } from 'lodash'\nimport { PriceCollection } from '@commercelayer/js-sdk'\nimport { Prices, SkuPrices } from '#reducers/PriceReducer'\nimport { Items } from '#reducers/ItemReducer'\nimport React, { ReactNode } from 'react'\nimport PriceTemplate, { PTemplateProps } from '#components/utils/PriceTemplate'\n\nexport interface GetPriceByCode {\n (skuPrices: SkuPrices, code: string): PriceCollection | undefined\n}\n\nexport const getPriceByCode: GetPriceByCode = (skuPrices, code = '') => {\n return code\n ? first(skuPrices.filter((p) => p.currencyCode === code))\n : first(skuPrices)\n}\n\nexport interface GetPricesComponent {\n (skuPrices: PriceCollection[], props: PTemplateProps): ReactNode\n}\n\nexport const getPricesComponent: GetPricesComponent = (skuPrices, props) => {\n if (isEmpty(skuPrices)) {\n return <PriceTemplate {...props} />\n }\n return skuPrices.map((p, k) => {\n const showCompare =\n (typeof props.showCompare === 'undefined' &&\n p.compareAtAmountCents > p.amountCents) ||\n props.showCompare\n return (\n <PriceTemplate\n key={k}\n {...props}\n showCompare={showCompare}\n formattedAmount={p.formattedAmount}\n formattedCompare={p.formattedCompareAtAmount}\n />\n )\n })\n}\n\nexport interface GetPrices {\n (prices: PriceCollection[] | Items): Prices\n}\n\nconst getPrices: GetPrices = (prices) => {\n const obj: Record<string, any> = {}\n if (isArray(prices)) {\n prices.map((p) => {\n if (has(obj, p.skuCode)) {\n obj[p.skuCode].push(p)\n } else {\n obj[p.skuCode] = [p]\n }\n })\n } else {\n forEach(prices, (item) => {\n const prices = item.prices()?.toArray()\n obj[item.code] = prices\n })\n }\n return obj\n}\n\nexport default getPrices\n","import { BaseAction, LoaderType } from '#typings'\nimport CLayer, { PriceCollection } from '@commercelayer/js-sdk'\nimport getPrices from '#utils/getPrices'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Dispatch } from 'react'\nimport { ItemPrices } from './ItemReducer'\nimport baseReducer from '#utils/baseReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { BaseError } from '#typings/errors'\n\nexport type SkuPrices = PriceCollection[]\n\nexport interface Prices {\n [key: string]: SkuPrices\n}\n\ntype SkuCodesPrice = string[]\n\nexport interface SetSkuCodesPrice {\n (skuCodes: SkuCodesPrice): void\n}\n\nexport interface PriceState {\n loading: boolean\n prices: Prices\n skuCodes: SkuCodesPrice\n errors?: BaseError[]\n skuCode?: string\n setSkuCodes?: SetSkuCodesPrice\n loader?: LoaderType\n}\n\nexport interface PriceAction extends BaseAction {\n type: PriceActionType\n}\n\nexport const priceInitialState: PriceState = {\n loading: true,\n prices: {},\n skuCodes: [],\n errors: [],\n}\n\nexport interface GetSkusPrice {\n (\n skuCodes: SkuCodesPrice,\n options: {\n config: CommerceLayerConfig\n dispatch: Dispatch<PriceAction>\n setPrices: ((item: ItemPrices) => void) | undefined\n prices: ItemPrices\n perPage: number\n filters: Record<string, any>\n }\n ): void\n}\n\nexport const getSkusPrice: GetSkusPrice = (\n skuCodes,\n { config, dispatch, setPrices, prices, perPage, filters }\n) => {\n let allPrices = {}\n CLayer.Price.withCredentials(config)\n .where({ skuCodeIn: skuCodes.join(','), ...filters })\n .perPage(perPage)\n .all()\n .then(async (r) => {\n const pricesObj = getPrices(r.toArray())\n allPrices = { ...allPrices, ...prices, ...pricesObj }\n if (setPrices) {\n setPrices(allPrices)\n }\n dispatch({\n type: 'setPrices',\n payload: { prices: allPrices },\n })\n dispatch({\n type: 'setLoading',\n payload: { loading: false },\n })\n const meta = r.getMetaInfo()\n let col: any = r\n if (col.hasNextPage() && meta.pageCount) {\n for (let key = 1; key < meta.pageCount; key++) {\n col = await col.withCredentials(config).nextPage()\n const pricesObj = getPrices(col.toArray())\n allPrices = { ...allPrices, ...pricesObj }\n if (setPrices) {\n setPrices(allPrices)\n }\n dispatch({\n type: 'setPrices',\n payload: { prices: allPrices },\n })\n }\n }\n })\n .catch((c) => {\n const errors = getErrorsByCollection(c, 'price')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n })\n}\n\nexport interface UnsetPriceState {\n (dispatch: Dispatch<PriceAction>): void\n}\n\nexport const unsetPriceState: UnsetPriceState = (dispatch) => {\n dispatch({\n type: 'setPrices',\n payload: {\n prices: {},\n },\n })\n dispatch({\n type: 'setLoading',\n payload: { loading: false },\n })\n}\n\nexport type PriceActionType =\n | 'setLoading'\n | 'setPrices'\n | 'setSkuCodes'\n | 'setErrors'\n\nconst typeAction: PriceActionType[] = [\n 'setLoading',\n 'setPrices',\n 'setSkuCodes',\n 'setErrors',\n]\n\nconst priceReducer = (state: PriceState, reducer: PriceAction): PriceState =>\n baseReducer<PriceState, PriceAction, PriceActionType[]>(\n state,\n reducer,\n typeAction\n )\n\nexport default priceReducer\n","import { createContext } from 'react'\nimport { priceInitialState, PriceState } from '#reducers/PriceReducer'\n\nexport interface PricesContextValue extends PriceState {\n skuCode: PriceState['skuCode']\n}\n\nconst PricesContext = createContext(priceInitialState)\n\nexport default PricesContext\n","import React, {\n Fragment,\n useState,\n useEffect,\n useContext,\n FunctionComponent,\n} from 'react'\nimport { isEmpty, has, indexOf } from 'lodash'\nimport Parent from './utils/Parent'\nimport PricesContext from '#context/PricesContext'\nimport { getPricesComponent } from '#utils/getPrices'\nimport { PriceCollection } from '@commercelayer/js-sdk'\nimport components from '#config/components'\nimport { FunctionChildren, LoaderType } from '#typings/index'\n\nconst propTypes = components.Price.propTypes\nconst defaultProps = components.Price.defaultProps\nconst displayName = components.Price.displayName\n\ntype PriceChildrenProps = FunctionChildren<\n {\n loading: boolean\n loader: LoaderType\n } & Omit<PriceProps, 'children'>\n>\n\nexport interface PriceProps extends Partial<JSX.IntrinsicElements['span']> {\n children?: PriceChildrenProps\n compareClassName?: string\n showCompare?: boolean\n skuCode?: string\n}\n\nconst Price: FunctionComponent<PriceProps> = (props) => {\n const { children, skuCode = '' } = props\n const {\n prices,\n skuCode: pricesSkuCode,\n loading,\n skuCodes,\n setSkuCodes,\n loader,\n } = useContext(PricesContext)\n const [skuPrices, setSkuPrices] = useState<PriceCollection[]>([])\n const sCode = pricesSkuCode || skuCode\n useEffect(() => {\n if (!isEmpty(prices) && has(prices, `${sCode}`)) {\n setSkuPrices(prices[sCode])\n } else {\n if (sCode && indexOf(skuCodes, sCode) === -1) {\n skuCodes.push(sCode)\n setSkuCodes && setSkuCodes(skuCodes)\n }\n }\n return (): void => {\n setSkuPrices([])\n }\n }, [prices, sCode])\n const parentProps = {\n loading,\n loader,\n ...props,\n }\n const pricesComponent =\n isEmpty(prices) || isEmpty(skuPrices)\n ? null\n : getPricesComponent(skuPrices, props)\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <Fragment>\n {loading || isEmpty(pricesComponent) ? loader : pricesComponent}\n </Fragment>\n )\n}\n\nPrice.propTypes = propTypes\nPrice.defaultProps = defaultProps\nPrice.displayName = displayName\n\nexport default Price\n","import React, {\n useEffect,\n FunctionComponent,\n useContext,\n useReducer,\n ReactNode,\n} from 'react'\nimport getPrices from '#utils/getPrices'\nimport { isEmpty, indexOf, has } from 'lodash'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport priceReducer, {\n SetSkuCodesPrice,\n unsetPriceState,\n} from '#reducers/PriceReducer'\nimport { priceInitialState, getSkusPrice } from '#reducers/PriceReducer'\nimport PricesContext, { PricesContextValue } from '#context/PricesContext'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport ItemContext from '#context/ItemContext'\nimport components from '#config/components'\nimport { LoaderType } from '#typings'\n\nconst propTypes = components.PricesContainer.propTypes\nconst defaultProps = components.PricesContainer.defaultProps\nconst displayName = components.PricesContainer.displayName\n\ntype PricesContainerProps = {\n children: ReactNode\n filters?: object\n loader?: LoaderType\n perPage?: number\n skuCode?: string\n}\n\nconst PricesContainer: FunctionComponent<PricesContainerProps> = (props) => {\n const {\n children,\n skuCode = '',\n loader = 'Loading...',\n perPage = 10,\n filters = {},\n } = props\n const [state, dispatch] = useReducer(priceReducer, priceInitialState)\n const config = useContext(CommerceLayerContext)\n const {\n setPrices,\n prices,\n items,\n item: currentItem,\n skuCode: itemSkuCode,\n } = useContext(ItemContext)\n if (indexOf(state.skuCodes, skuCode) === -1 && skuCode)\n state.skuCodes.push(skuCode)\n const sCode = getCurrentItemKey(currentItem) || skuCode || itemSkuCode || ''\n const setSkuCodes: SetSkuCodesPrice = (skuCodes) => {\n dispatch({\n type: 'setSkuCodes',\n payload: { skuCodes },\n })\n }\n useEffect(() => {\n if (currentItem && has(prices, sCode)) {\n dispatch({\n type: 'setPrices',\n payload: { prices: prices },\n })\n }\n if (!isEmpty(items) && isEmpty(currentItem)) {\n const p = getPrices(items)\n dispatch({\n type: 'setPrices',\n payload: { prices: p },\n })\n }\n if (\n (config.accessToken && isEmpty(currentItem)) ||\n (config.accessToken && !has(prices, sCode))\n ) {\n if (state.skuCodes.length > 0 || skuCode) {\n getSkusPrice((sCode && [sCode]) || state.skuCodes, {\n config,\n dispatch,\n setPrices,\n prices,\n perPage,\n filters,\n })\n }\n }\n return (): void => {\n if (isEmpty(currentItem)) {\n unsetPriceState(dispatch)\n }\n }\n }, [config.accessToken, currentItem, sCode])\n const priceValue: PricesContextValue = {\n ...state,\n skuCode: sCode,\n loader,\n setSkuCodes,\n }\n return (\n <PricesContext.Provider value={priceValue}>\n {children}\n </PricesContext.Provider>\n )\n}\n\nPricesContainer.propTypes = propTypes\nPricesContainer.defaultProps = defaultProps\nPricesContainer.displayName = displayName\n\nexport default PricesContainer\n","import components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\nimport React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseInput, { BaseInputProps } from './utils/BaseInput'\n\nconst propTypes = components.PrivacyAndTermsCheckbox.propTypes\nconst displayName = components.PrivacyAndTermsCheckbox.displayName\n\nconst PrivacyAndTermsCheckbox: FunctionComponent<Partial<BaseInputProps>> = (\n props\n) => {\n const { order } = useContext(OrderContext)\n const { placeOrderPermitted } = useContext(PlaceOrderContext)\n const [forceDisabled, setForceDisabled] = useState(true)\n const [checked, setChecked] = useState(false)\n const fieldName = 'privacy-terms'\n const handleChange: any = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const v = e.target?.checked\n setChecked(v)\n localStorage.setItem(fieldName, `${v}`)\n placeOrderPermitted && placeOrderPermitted()\n }\n useEffect(() => {\n if (order?.privacyUrl && order?.termsUrl) setForceDisabled(false)\n if (!checked) localStorage.setItem(fieldName, `${checked}`)\n return () => {\n setForceDisabled(true)\n localStorage.removeItem(fieldName)\n }\n }, [order?.privacyUrl, order?.termsUrl])\n return (\n <BaseInput\n type=\"checkbox\"\n name={fieldName}\n disabled={forceDisabled}\n onChange={handleChange}\n checked={checked}\n {...props}\n />\n )\n}\n\nPrivacyAndTermsCheckbox.propTypes = propTypes\nPrivacyAndTermsCheckbox.displayName = displayName\n\nexport default PrivacyAndTermsCheckbox\n","import React, {\n FunctionComponent,\n useContext,\n useState,\n useEffect,\n} from 'react'\nimport Parent from './utils/Parent'\nimport { isEmpty, has } from 'lodash'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport ItemContext from '#context/ItemContext'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport SkuListsContext from '#context/SkuListsContext'\n\nconst propTypes = components.QuantitySelector.propTypes\nconst defaultProps = components.QuantitySelector.defaultProps\nconst displayName = components.QuantitySelector.displayName\n\ntype QuantitySelectorChildrenProps = FunctionChildren<\n Omit<QuantitySelectorProps, 'children'> & {\n handleChange: (event: React.MouseEvent<HTMLInputElement>) => void\n handleBlur: (event: React.MouseEvent<HTMLInputElement>) => void\n }\n>\n\ntype QuantitySelectorProps = {\n children?: QuantitySelectorChildrenProps\n disabled?: boolean\n min?: number\n max?: number\n value?: string\n skuCode?: string\n skuListId?: string\n} & JSX.IntrinsicElements['input']\n\nconst QuantitySelector: FunctionComponent<QuantitySelectorProps> = (props) => {\n const { skuCode, skuListId, children, min = 1, max, ...p } = props\n const {\n item,\n setQuantity,\n items,\n quantity,\n prices,\n skuCode: itemSkuCode,\n } = useContext(ItemContext)\n const { skuLists, listIds } = useContext(SkuListsContext)\n const [value, setValue] = useState(min)\n const [disabled, setDisabled] = useState(!!p.disabled)\n const sCode =\n !isEmpty(items) && skuCode\n ? items[skuCode]?.code\n : skuCode || getCurrentItemKey(item) || (itemSkuCode as string)\n\n const inventory = isEmpty(item) ? 50 : item[sCode]?.inventory?.quantity\n const maxInv = max || inventory\n useEffect(() => {\n setValue(min)\n if (!prices[sCode] || !sCode) {\n setDisabled(true)\n }\n skuListId && setDisabled(false)\n if (sCode) {\n const qty = Number(min)\n setQuantity && setQuantity({ ...quantity, [`${sCode}`]: qty })\n if (!isEmpty(prices) && has(prices, sCode)) setDisabled(false)\n }\n return (): void => {\n setValue(min)\n }\n }, [item, listIds, prices])\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const qty = Number(e.target.value)\n const valid = Number(qty) >= Number(min) && Number(qty) <= Number(maxInv)\n setValue(qty)\n if (!isEmpty(skuLists) && skuListId && valid) {\n setQuantity && setQuantity({ ...quantity, [`${skuListId}`]: Number(qty) })\n } else if (sCode && valid) {\n setQuantity && setQuantity({ ...quantity, [`${sCode}`]: Number(qty) })\n }\n }\n const handleBlur = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const qty = e.target.value\n const valid = Number(qty) >= Number(min) && Number(qty) <= Number(maxInv)\n if (!valid) {\n const resetVal = Number(qty) < Number(min) ? min : maxInv\n setValue(resetVal)\n if (!isEmpty(skuLists) && skuListId) {\n setQuantity &&\n setQuantity({ ...quantity, [`${skuListId}`]: Number(resetVal) })\n } else {\n setQuantity &&\n setQuantity({ ...quantity, [`${sCode}`]: Number(resetVal) })\n }\n }\n }\n const parentProps = {\n min,\n max: maxInv,\n disabled,\n handleChange,\n handleBlur,\n value,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <input\n type=\"number\"\n max={maxInv}\n min={min}\n value={value || ''}\n disabled={disabled}\n onChange={handleChange}\n onBlur={handleBlur}\n {...p}\n />\n )\n}\n\nQuantitySelector.propTypes = propTypes\nQuantitySelector.defaultProps = defaultProps\nQuantitySelector.displayName = displayName\n\nexport default QuantitySelector\n","import { isEmpty } from 'lodash'\nimport { fieldsExist } from '#utils/validateFormFields'\nimport { BaseError } from '#typings/errors'\nimport { addressFields } from '#reducers/AddressReducer'\n\ntype BillingAddressController = (params: {\n billingAddress?: Record<string, any>\n billingAddressId?: string\n errors?: BaseError[]\n requiresBillingInfo?: boolean\n}) => boolean\n\nexport const billingAddressController: BillingAddressController = ({\n billingAddress,\n billingAddressId,\n errors,\n requiresBillingInfo,\n}) => {\n let billingDisable = !isEmpty(errors) || isEmpty(billingAddress)\n if (isEmpty(errors) && !isEmpty(billingAddress)) {\n let billingInfo = [...addressFields]\n if (requiresBillingInfo) billingInfo = [...billingInfo, 'billing_info']\n billingDisable = !!(\n billingAddress && fieldsExist(billingAddress, billingInfo)\n )\n }\n if (billingDisable && !isEmpty(billingAddressId) && isEmpty(billingAddress)) {\n billingDisable = false\n }\n return billingDisable\n}\n\ntype ShippingAddressController = (params: {\n billingDisable: boolean\n errors?: BaseError[]\n shipToDifferentAddress?: boolean\n shippingAddress?: Record<string, any>\n shippingAddressId?: string\n}) => boolean\n\nexport const shippingAddressController: ShippingAddressController = ({\n billingDisable,\n errors,\n shipToDifferentAddress,\n shippingAddress,\n shippingAddressId,\n}) => {\n let shippingDisable = !!(!billingDisable && shipToDifferentAddress)\n if (shippingDisable && isEmpty(errors) && !isEmpty(shippingAddress)) {\n shippingDisable = !!(shippingAddress && fieldsExist(shippingAddress))\n }\n if (\n shippingDisable &&\n !isEmpty(shippingAddressId) &&\n isEmpty(shippingAddress)\n ) {\n shippingDisable = false\n }\n return shippingDisable\n}\n\ntype CountryLockController = (params: {\n addresses?: Record<string, any>[]\n billingAddress?: Record<string, any>\n billingAddressId?: string\n countryCodeLock?: string\n shipToDifferentAddress?: boolean\n shippingAddress?: Record<string, any>\n shippingAddressId?: string\n}) => boolean\n\nexport const countryLockController: CountryLockController = ({\n addresses,\n billingAddress,\n billingAddressId,\n countryCodeLock,\n shipToDifferentAddress,\n shippingAddress,\n shippingAddressId,\n}) => {\n if (\n countryCodeLock &&\n !isEmpty(addresses) &&\n billingAddressId &&\n !shipToDifferentAddress\n ) {\n const addressLocked = addresses?.find(\n (a) =>\n (a.id === billingAddressId || a.reference === billingAddressId) &&\n a.countryCode !== countryCodeLock\n )\n if (!isEmpty(addressLocked)) return true\n }\n if (countryCodeLock && !isEmpty(billingAddress) && !shipToDifferentAddress) {\n return billingAddress?.['country_code'] !== countryCodeLock\n }\n if (countryCodeLock && !isEmpty(shippingAddress) && shipToDifferentAddress) {\n return shippingAddress?.['country_code'] !== countryCodeLock\n }\n if (\n countryCodeLock &&\n !isEmpty(addresses) &&\n shippingAddressId &&\n shipToDifferentAddress\n ) {\n const addressLocked = addresses?.find(\n (a) =>\n (a.id === shippingAddressId || a.reference === shippingAddressId) &&\n a.countryCode !== countryCodeLock\n )\n if (!isEmpty(addressLocked)) return true\n }\n return false\n}\n","import React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useState,\n} from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport AddressContext from '#context/AddressContext'\nimport { isEmpty } from 'lodash'\nimport {\n billingAddressController,\n shippingAddressController,\n countryLockController,\n} from '#utils/addressesManager'\nimport OrderContext from '#context/OrderContext'\nimport CustomerContext from '#context/CustomerContext'\nimport isFunction from 'lodash/isFunction'\n\nconst propTypes = components.SaveAddressesButton.propTypes\nconst defaultProps = components.SaveAddressesButton.defaultProps\nconst displayName = components.SaveAddressesButton.displayName\n\ntype SaveAddressesButtonChildrenProps = FunctionChildren<\n Omit<SaveAddressesButtonProps, 'children'>\n>\n\ntype SaveAddressesButtonProps = {\n children?: SaveAddressesButtonChildrenProps\n label?: string | ReactNode\n onClick?: () => void\n} & JSX.IntrinsicElements['button']\n\nconst SaveAddressesButton: FunctionComponent<SaveAddressesButtonProps> = (\n props\n) => {\n const {\n children,\n label = 'Continue to delivery',\n resource,\n disabled = false,\n onClick,\n ...p\n } = props\n const {\n errors,\n billingAddress,\n shipToDifferentAddress,\n shippingAddress,\n saveAddresses,\n billingAddressId,\n shippingAddressId,\n } = useContext(AddressContext)\n const { order } = useContext(OrderContext)\n const { addresses, isGuest } = useContext(CustomerContext)\n const [forceDisable, setForceDisable] = useState(disabled)\n const customerEmail = !!(\n !!(isGuest === true || typeof isGuest === 'undefined') &&\n !order?.customerEmail\n )\n const billingDisable = billingAddressController({\n billingAddress,\n errors,\n billingAddressId,\n // @ts-ignore\n requiresBillingInfo: order?.requiresBillingInfo,\n })\n const shippingDisable = shippingAddressController({\n billingDisable,\n errors,\n shipToDifferentAddress,\n shippingAddress,\n shippingAddressId,\n })\n const countryLockDisable = countryLockController({\n countryCodeLock: order?.shippingCountryCodeLock,\n addresses,\n shipToDifferentAddress,\n billingAddressId,\n billingAddress,\n shippingAddress,\n shippingAddressId,\n })\n const disable =\n disabled ||\n customerEmail ||\n billingDisable ||\n shippingDisable ||\n countryLockDisable\n const handleClick = async () => {\n if (isEmpty(errors) && !disable) {\n setForceDisable(true)\n await saveAddresses()\n setForceDisable(false)\n onClick && onClick()\n }\n }\n const parentProps = {\n ...p,\n label,\n resource,\n handleClick,\n disabled: disable,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button\n type=\"button\"\n disabled={disable || forceDisable}\n onClick={handleClick}\n {...p}\n >\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nSaveAddressesButton.propTypes = propTypes\nSaveAddressesButton.defaultProps = defaultProps\nSaveAddressesButton.displayName = displayName\n\nexport default SaveAddressesButton\n","import React, { FunctionComponent, ReactNode, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport { isEmpty } from 'lodash'\nimport CustomerContext from '#context/CustomerContext'\n\nconst propTypes = components.SaveCustomerButton.propTypes\nconst defaultProps = components.SaveCustomerButton.defaultProps\nconst displayName = components.SaveCustomerButton.displayName\n\ntype ParentProps = {\n handleClick: () => any\n}\n\ntype SaveAddressesButtonChildrenProps = FunctionChildren<\n Omit<SaveCustomerButtonProps & ParentProps, 'children'>\n>\n\ntype SaveCustomerButtonProps = {\n children?: SaveAddressesButtonChildrenProps\n label?: string | ReactNode\n onClick?: () => void\n} & JSX.IntrinsicElements['button']\n\nconst SaveCustomerButton: FunctionComponent<SaveCustomerButtonProps> = (\n props\n) => {\n const { children, label = 'Save', resource, disabled, onClick, ...p } = props\n const { errors, saveCustomerUser, customerEmail } = useContext(\n CustomerContext\n )\n const disable = disabled || !isEmpty(errors) || isEmpty(customerEmail)\n const handleClick = async () => {\n if (isEmpty(errors) && !disable) {\n await saveCustomerUser(customerEmail as string)\n onClick && onClick()\n }\n }\n const parentProps = {\n ...p,\n label,\n resource,\n handleClick,\n disabled: disable,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button type=\"button\" disabled={disable} onClick={handleClick} {...p}>\n {label}\n </button>\n )\n}\n\nSaveCustomerButton.propTypes = propTypes\nSaveCustomerButton.defaultProps = defaultProps\nSaveCustomerButton.displayName = displayName\n\nexport default SaveCustomerButton\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { BaseError } from '#typings/errors'\nimport {\n DeliveryLeadTime,\n DeliveryLeadTimeCollection,\n OrderCollection,\n Shipment,\n ShipmentCollection,\n ShippingMethod,\n} from '@commercelayer/js-sdk'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { getOrderContext } from './OrderReducer'\n\nexport type ShipmentActionType =\n | 'setErrors'\n | 'setShipments'\n | 'setShippingMethod'\n\nexport interface ShipmentActionPayload {\n errors: BaseError[]\n shipments: ShipmentCollection[]\n deliveryLeadTimes: DeliveryLeadTimeCollection[]\n}\n\nexport type ShipmentState = Partial<ShipmentActionPayload>\n\nexport interface ShipmentAction {\n type: ShipmentActionType\n payload: Partial<ShipmentActionPayload>\n}\n\nexport const shipmentInitialState: ShipmentState = {\n errors: [],\n}\n\nexport interface SetShipmentErrors {\n <V extends BaseError[]>(errors: V, dispatch?: Dispatch<ShipmentAction>): void\n}\n\nexport const setShipmentErrors: SetShipmentErrors = (errors, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\ntype GetShipments = (args: {\n order: OrderCollection\n dispatch: Dispatch<ShipmentAction>\n config: CommerceLayerConfig\n}) => Promise<void>\n\nexport const getShipments: GetShipments = async ({\n order,\n dispatch,\n config,\n}) => {\n try {\n const shipments = (\n await order\n .withCredentials(config)\n .shipments()\n ?.includes(\n 'availableShippingMethods',\n 'shipmentLineItems',\n 'shipmentLineItems.lineItem',\n 'stockTransfers',\n 'shippingMethod',\n 'stockLocation'\n )\n .load()\n )?.toArray()\n const deliveryLeadTimes = (\n await DeliveryLeadTime.withCredentials(config)\n .includes('shippingMethod', 'stockLocation')\n .all()\n ).toArray()\n dispatch({\n type: 'setShipments',\n payload: { shipments, deliveryLeadTimes },\n })\n } catch (error) {\n console.error(error)\n }\n}\n\ntype SetShippingMethod = (args: {\n config: CommerceLayerConfig\n shipmentId: string\n shippingMethodId: string\n order?: OrderCollection\n getOrder?: getOrderContext\n}) => Promise<void>\n\nexport const setShippingMethod: SetShippingMethod = async ({\n config,\n shipmentId,\n shippingMethodId,\n getOrder,\n order,\n}) => {\n try {\n if (shippingMethodId) {\n const shipment = await Shipment.withCredentials(config)\n .includes(\n 'availableShippingMethods',\n 'availableShippingMethods',\n 'shipmentLineItems',\n 'shipmentLineItems.lineItem',\n 'stockTransfers',\n 'shippingMethod',\n 'deliveryLeadTime'\n )\n .find(shipmentId)\n const shippingMethod = ShippingMethod.build({ id: shippingMethodId })\n await shipment.withCredentials(config).update({ shippingMethod })\n getOrder && order && getOrder(order.id)\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nconst type: ShipmentActionType[] = [\n 'setErrors',\n 'setShipments',\n 'setShippingMethod',\n]\n\nconst shipmentReducer = (\n state: ShipmentState,\n reducer: ShipmentAction\n): ShipmentState =>\n baseReducer<ShipmentState, ShipmentAction, ShipmentActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default shipmentReducer\n","import { createContext } from 'react'\nimport {\n ShipmentState,\n SetShipmentErrors,\n setShipmentErrors,\n} from '#reducers/ShipmentReducer'\n\ntype DefaultContext = {\n setShipmentErrors: SetShipmentErrors\n setShippingMethod: (\n shipmentId: string,\n shippingMethodId: string\n ) => Promise<void>\n} & ShipmentState\n\nexport const defaultShipmentContext = {\n setShipmentErrors,\n setShippingMethod: async (): Promise<void> => {\n return\n },\n}\n\nconst ShipmentContext = createContext<DefaultContext>(defaultShipmentContext)\n\nexport default ShipmentContext\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport ShipmentContext from '#context/ShipmentContext'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport components from '#config/components'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\nimport { LoaderType } from '#typings'\nimport getLoaderComponent from '#utils/getLoaderComponent'\n\nconst propTypes = components.Shipment.propTypes\nconst displayName = components.Shipment.displayName\n\ntype ShipmentProps = {\n children: ReactNode\n loader?: LoaderType\n}\n\nconst Shipment: FunctionComponent<ShipmentProps> = ({\n children,\n loader = 'Loading...',\n}) => {\n const [loading, setLoading] = useState(true)\n const { shipments, deliveryLeadTimes } = useContext(ShipmentContext)\n useEffect(() => {\n if (shipments) setLoading(false)\n return () => {\n setLoading(true)\n }\n }, [shipments])\n const components =\n shipments &&\n shipments.map((shipment, k) => {\n const shipmentLineItems = shipment.shipmentLineItems()?.toArray()\n const lineItems = shipmentLineItems?.map((shipmentLineItem) => {\n const l = shipmentLineItem.lineItem() as LineItemCollection\n if (l) l.quantity = shipmentLineItem.quantity\n return l\n })\n const shippingMethods = shipment.availableShippingMethods()?.toArray()\n const currentShippingMethodId = shipment.shippingMethod()?.id\n const stockTransfers = shipment.stockTransfers()?.toArray()\n const times = deliveryLeadTimes?.filter(\n (time) => time.stockLocation()?.id === shipment.stockLocation()?.id\n )\n const shipmentProps = {\n lineItems,\n shippingMethods,\n currentShippingMethodId,\n stockTransfers,\n deliveryLeadTimes: times,\n shipment,\n keyNumber: k + 1,\n }\n return (\n <ShipmentChildrenContext.Provider key={k} value={shipmentProps}>\n {children}\n </ShipmentChildrenContext.Provider>\n )\n })\n return !loading ? (\n <Fragment>{components}</Fragment>\n ) : (\n getLoaderComponent(loader)\n )\n}\n\nShipment.propTypes = propTypes\nShipment.displayName = displayName\n\nexport default Shipment\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { camelCase, get } from 'lodash'\nimport { ShipmentCollection } from '@commercelayer/js-sdk'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\n\nconst propTypes = components.ShipmentField.propTypes\nconst displayName = components.ShipmentField.displayName\n\ntype ShipmentFieldChildrenProps = Omit<ShipmentFieldProps, 'children'> & {\n shipment: ShipmentCollection\n}\n\nexport type ShipmentAttribute =\n | 'number'\n | 'currencyCode'\n | 'status'\n | 'costAmountCents'\n | 'costAmountFloat'\n | 'formattedCostAmount'\n | 'keyNumber'\n\ntype ShipmentFieldProps = {\n children?: (props: ShipmentFieldChildrenProps) => ReactNode\n name: ShipmentAttribute\n} & JSX.IntrinsicElements['span']\n\nconst ShipmentField: FunctionComponent<ShipmentFieldProps> = (props) => {\n const { name } = props\n const { shipment, keyNumber } = useContext(ShipmentChildrenContext)\n const key = camelCase(name)\n const text = key !== 'keyNumber' ? get(shipment, key) : keyNumber\n const parentProps = {\n shipment,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...props}>{text}</span>\n )\n}\n\nShipmentField.propTypes = propTypes\nShipmentField.displayName = displayName\n\nexport default ShipmentField\n","import ShipmentContext, {\n defaultShipmentContext,\n} from '#context/ShipmentContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport shipmentReducer, {\n shipmentInitialState,\n getShipments,\n setShippingMethod,\n} from '#reducers/ShipmentReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport { BaseError } from '#typings/errors'\nimport { isEmpty } from 'lodash'\n\nconst propTypes = components.ShipmentsContainer.propTypes\nconst displayName = components.ShipmentsContainer.displayName\n\ntype ShipmentsContainerProps = {\n children: ReactNode\n}\nconst ShipmentsContainer: FunctionComponent<ShipmentsContainerProps> = (\n props\n) => {\n const { children } = props\n const [state, dispatch] = useReducer(shipmentReducer, shipmentInitialState)\n const { order, getOrder } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n // TODO: Get shipments\n if (order && !isEmpty(config)) {\n getShipments({ order, dispatch, config })\n }\n }, [order])\n const contextValue = {\n ...state,\n setShipmentErrors: (errors: BaseError[]) =>\n defaultShipmentContext['setShipmentErrors'](errors, dispatch),\n setShippingMethod: async (shipmentId: string, shippingMethodId: string) =>\n await setShippingMethod({\n shippingMethodId,\n shipmentId,\n config,\n getOrder,\n order,\n }),\n }\n return (\n <ShipmentContext.Provider value={contextValue}>\n {children}\n </ShipmentContext.Provider>\n )\n}\n\nShipmentsContainer.propTypes = propTypes\nShipmentsContainer.displayName = displayName\n\nexport default ShipmentsContainer\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Address, OrderCollection } from '@commercelayer/js-sdk'\nimport { getOrderContext } from '#reducers/OrderReducer'\n\nexport type ShippingAddressActionType =\n | 'setShippingAddress'\n | 'setShippingCustomerAddressId'\n | 'cleanup'\n\nexport interface ShippingAddressActionPayload {\n _shippingAddressCloneId: string\n shippingCustomerAddressId: string\n}\n\nexport type ShippingAddressState = Partial<ShippingAddressActionPayload>\n\nexport interface ShippingAddressAction {\n type: ShippingAddressActionType\n payload: Partial<ShippingAddressActionPayload>\n}\n\nexport const shippingAddressInitialState: ShippingAddressState = {\n _shippingAddressCloneId: '',\n}\n\nexport type SetShippingAddress = (\n id: string,\n options?: {\n config: CommerceLayerConfig\n dispatch: Dispatch<ShippingAddressAction>\n order?: OrderCollection | null\n getOrder?: getOrderContext\n customerAddressId?: string\n }\n) => Promise<void>\n\nexport const setShippingAddress: SetShippingAddress = async (id, options) => {\n try {\n if (options?.order) {\n if (options.customerAddressId) {\n const address = await Address.withCredentials(options.config).find(id)\n if (address.reference !== options.customerAddressId) {\n await address.withCredentials(options.config).update({\n reference: options.customerAddressId,\n })\n }\n }\n options.dispatch({\n type: 'setShippingAddress',\n payload: {\n _shippingAddressCloneId: id,\n },\n })\n }\n } catch (error) {\n console.error(error)\n }\n}\n\ntype SetShippingCustomerAddressId = (args: {\n dispatch: Dispatch<ShippingAddressAction>\n order: OrderCollection\n setCloneAddress: (\n id: string,\n resource: 'billingAddress' | 'shippingAddress'\n ) => void\n}) => void\n\nexport const setShippingCustomerAddressId: SetShippingCustomerAddressId = async ({\n dispatch,\n order,\n setCloneAddress,\n}) => {\n let customerAddressId = order?.shippingAddress()?.customerAddressId\n try {\n if (!customerAddressId) {\n const address = await order.loadShippingAddress()\n customerAddressId = address?.reference\n }\n if (customerAddressId) {\n dispatch({\n type: 'setShippingCustomerAddressId',\n payload: { shippingCustomerAddressId: customerAddressId },\n })\n setCloneAddress(customerAddressId, 'shippingAddress')\n }\n } catch (error) {\n console.error('error', error)\n }\n}\n\nconst type: ShippingAddressActionType[] = [\n 'setShippingAddress',\n 'setShippingCustomerAddressId',\n 'cleanup',\n]\n\nconst shippingAddressReducer = (\n state: ShippingAddressState,\n reducer: ShippingAddressAction\n): ShippingAddressState =>\n baseReducer<\n ShippingAddressState,\n ShippingAddressAction,\n ShippingAddressActionType[]\n >(state, reducer, type)\n\nexport default shippingAddressReducer\n","import ShippingAddressContext from '#context/ShippingAddressContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport shippingAddressReducer, {\n setShippingAddress,\n shippingAddressInitialState,\n setShippingCustomerAddressId,\n} from '#reducers/ShippingAddressReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\n\nconst propTypes = components.ShippingAddressContainer.propTypes\n\ntype Props = {\n children: ReactNode\n}\nconst ShippingAddressContainer: FunctionComponent<Props> = (props) => {\n const { children } = props\n const [state, dispatch] = useReducer(\n shippingAddressReducer,\n shippingAddressInitialState\n )\n const config = useContext(CommerceLayerContext)\n const { order, getOrder } = useContext(OrderContext)\n const { setCloneAddress } = useContext(AddressContext)\n useEffect(() => {\n if (order && config) {\n setShippingCustomerAddressId({\n dispatch,\n order,\n setCloneAddress,\n })\n }\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {},\n })\n }\n }, [config, order])\n const contextValue = {\n ...state,\n setShippingAddress: async (\n id: string,\n options?: { customerAddressId: string }\n ) => {\n await setShippingAddress(id, {\n config,\n dispatch,\n order,\n getOrder,\n customerAddressId: options?.customerAddressId,\n })\n setCloneAddress(id, 'shippingAddress')\n },\n }\n return (\n <ShippingAddressContext.Provider value={contextValue}>\n {children}\n </ShippingAddressContext.Provider>\n )\n}\n\nShippingAddressContainer.propTypes = propTypes\n\nexport default ShippingAddressContainer\n","import AddressesContext from '#context/AddressContext'\nimport useRapidForm from 'rapid-form'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport { isEmpty } from 'lodash'\nimport { BaseError, CodeErrorType } from '#typings/errors'\nimport { AddressField } from '#reducers/AddressReducer'\nimport { AddressCountrySelectName, AddressInputName } from '#typings'\nimport components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport OrderStorageContext from '#context/OrderStorageContext'\n\nconst propTypes = components.ShippingAddressForm.propTypes\n\ntype ShippingAddressFormProps = {\n children: ReactNode\n reset?: boolean\n errorClassName?: string\n} & Omit<JSX.IntrinsicElements['form'], 'onSubmit'>\n\nconst ShippingAddressForm: FunctionComponent<ShippingAddressFormProps> = (\n props\n) => {\n const {\n children,\n errorClassName,\n autoComplete = 'on',\n reset = false,\n ...p\n } = props\n const { validation, values, errors, reset: resetForm } = useRapidForm()\n const { setAddressErrors, setAddress, shipToDifferentAddress } =\n useContext(AddressesContext)\n const { saveAddressToCustomerAddressBook } = useContext(OrderContext)\n const { setLocalOrder } = useContext(OrderStorageContext)\n const ref = useRef<HTMLFormElement>(null)\n useEffect(() => {\n if (!isEmpty(errors)) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const { code, message } = errors[fieldName]\n if (['shipping_address_state_code'].includes(fieldName)) {\n if (isEmpty(values['state_code'])) {\n // const k = formErrors.findIndex(({ field }) => field === fieldName)\n // k !== -1 && formErrors.splice(k, 0)\n delete errors[fieldName]\n } else {\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'shippingAddress',\n field: fieldName,\n })\n }\n } else {\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'shippingAddress',\n field: fieldName,\n })\n }\n }\n shipToDifferentAddress && setAddressErrors(formErrors, 'shippingAddress')\n } else if (!isEmpty(values) && shipToDifferentAddress) {\n setAddressErrors([], 'shippingAddress')\n for (const name in values) {\n const field = values[name]\n if (field?.value) {\n values[name.replace('shipping_address_', '')] = field.value\n delete values[name]\n }\n if (field?.type === 'checkbox') {\n delete values[name]\n saveAddressToCustomerAddressBook('ShippingAddress', field.checked)\n setLocalOrder(\n 'saveShippingAddressToCustomerAddressBook',\n field.checked\n )\n }\n }\n setAddress({ values, resource: 'shippingAddress' })\n }\n if (reset && (!isEmpty(values) || !isEmpty(errors))) {\n saveAddressToCustomerAddressBook &&\n saveAddressToCustomerAddressBook('ShippingAddress', false)\n if (ref) {\n ref.current?.reset()\n resetForm({ target: ref.current } as any)\n setAddressErrors([], 'shippingAddress')\n setAddress({ values: {}, resource: 'shippingAddress' })\n }\n }\n }, [values, errors, shipToDifferentAddress, reset])\n const setValue = (\n name: AddressField | AddressInputName | AddressCountrySelectName,\n value: any\n ) => {\n const field: any = {\n [name.replace('shipping_address_', '')]: value,\n }\n setAddress({ values: { ...values, ...field }, resource: 'shippingAddress' })\n }\n const providerValues = {\n values,\n validation,\n setValue,\n errorClassName,\n errors: errors as any,\n resetField: (name: string) =>\n resetForm({ currentTarget: ref.current } as any, name),\n }\n return (\n <ShippingAddressFormContext.Provider value={providerValues}>\n <form ref={ref} autoComplete={autoComplete} {...p}>\n {children}\n </form>\n </ShippingAddressFormContext.Provider>\n )\n}\n\nShippingAddressForm.propTypes = propTypes\n\nexport default ShippingAddressForm\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.ShippingAmount.propTypes\nconst displayName = components.ShippingAmount.displayName\n\nconst ShippingAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"shipping\" {...props} />\n}\n\nShippingAmount.propTypes = propTypes\nShippingAmount.displayName = displayName\n\nexport default ShippingAmount\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n useEffect,\n useState,\n} from 'react'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport components from '#config/components'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport { first, isEmpty } from 'lodash'\n\nconst propTypes = components.ShippingMethod.propTypes\nconst displayName = components.ShippingMethod.displayName\n\ntype ShippingMethodProps = {\n children: ReactNode\n readonly?: boolean\n emptyText?: string\n}\n\nconst ShippingMethod: FunctionComponent<ShippingMethodProps> = (props) => {\n const {\n children,\n readonly,\n emptyText = `There are not any shipping method available`,\n } = props\n const {\n shippingMethods,\n currentShippingMethodId,\n deliveryLeadTimes,\n } = useContext(ShipmentChildrenContext)\n const [items, setItems] = useState<JSX.Element[]>([])\n useEffect(() => {\n const methods =\n shippingMethods &&\n shippingMethods\n .filter((s) => {\n if (readonly) return s.id === currentShippingMethodId\n return true\n })\n .map((shippingMethod, k) => {\n const deliveryLeadTimeForShipment =\n deliveryLeadTimes &&\n first(\n deliveryLeadTimes.filter((delivery) => {\n const deliveryShippingMethodId = delivery.shippingMethod()?.id\n return shippingMethod.id === deliveryShippingMethodId\n })\n )\n const shippingProps = {\n shippingMethod,\n currentShippingMethodId,\n deliveryLeadTimeForShipment,\n }\n return (\n <ShippingMethodChildrenContext.Provider\n key={k}\n value={shippingProps}\n >\n {children}\n </ShippingMethodChildrenContext.Provider>\n )\n })\n if (methods) setItems(methods)\n }, [currentShippingMethodId, deliveryLeadTimes, shippingMethods])\n const components = (!isEmpty(items) && items) || emptyText\n return <Fragment>{components}</Fragment>\n}\n\nShippingMethod.propTypes = propTypes\nShippingMethod.displayName = displayName\n\nexport default ShippingMethod\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { ShippingMethodCollection } from '@commercelayer/js-sdk'\n\nconst propTypes = components.ShippingMethodName.propTypes\nconst displayName = components.ShippingMethodName.displayName\n\ntype LineItemNameChildrenProps = Omit<LineItemNameProps, 'children'> & {\n label: string\n shippingMethod: ShippingMethodCollection\n}\n\ntype LineItemNameProps = {\n children?: (props: LineItemNameChildrenProps) => ReactNode\n} & JSX.IntrinsicElements['label']\n\nconst ShippingMethodName: FunctionComponent<LineItemNameProps> = (props) => {\n const { shippingMethod } = useContext(ShippingMethodChildrenContext)\n const htmlFor =\n `shipment-${shippingMethod.shipmentId}-${shippingMethod.id}` || ''\n const labelName = shippingMethod['name']\n const parentProps = {\n shippingMethod,\n label: labelName,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <label htmlFor={htmlFor} {...props}>\n {labelName}\n </label>\n )\n}\n\nShippingMethodName.propTypes = propTypes\nShippingMethodName.displayName = displayName\n\nexport default ShippingMethodName\n","import React, {\n FunctionComponent,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport getAmount from '#utils/getAmount'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings/index'\nimport OrderContext from '#context/OrderContext'\nimport { isNumber } from 'lodash'\n\nconst propTypes = components.ShippingMethodPrice.propTypes\nconst displayName = components.ShippingMethodPrice.displayName\n\nexport type ShippingMethodPriceProps = BaseAmountComponent & {\n labelFreeOver?: string\n} & (\n | {\n type?: 'amount'\n base?: 'freeOver'\n }\n | {\n type?: 'amount' | 'amountForShipment'\n base?: 'price'\n }\n )\n\nconst ShippingMethodPrice: FunctionComponent<ShippingMethodPriceProps> = (\n props\n) => {\n const {\n format = 'formatted',\n type = 'amount',\n base = 'price',\n labelFreeOver = 'Free',\n ...p\n } = props\n const { shippingMethod } = useContext(ShippingMethodChildrenContext)\n const { order } = useContext(OrderContext)\n const [price, setPrice] = useState('')\n const [freeOverAmountCents, setFreeOverAmountCents] = useState(0)\n useEffect(() => {\n if (shippingMethod) {\n const p = getAmount({\n base,\n type,\n format,\n obj: shippingMethod as Record<string, string>,\n })\n setPrice(p)\n const c = getAmount<number>({\n base: 'freeOver',\n type,\n format: 'cents',\n obj: shippingMethod as Record<string, string>,\n })\n setFreeOverAmountCents(c)\n }\n return (): void => {\n setPrice('')\n setFreeOverAmountCents(0)\n }\n }, [shippingMethod])\n const parentProps = {\n price,\n ...p,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>\n {order &&\n isNumber(freeOverAmountCents) &&\n freeOverAmountCents < order?.totalAmountCents\n ? labelFreeOver\n : price}\n </span>\n )\n}\n\nShippingMethodPrice.propTypes = propTypes\nShippingMethodPrice.displayName = displayName\n\nexport default ShippingMethodPrice\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport ShipmentContext from '#context/ShipmentContext'\nimport { ShippingMethodCollection } from '@commercelayer/js-sdk'\n\nconst propTypes = components.ShippingMethodRadioButton.propTypes\nconst displayName = components.ShippingMethodRadioButton.displayName\n\ntype ShippingMethodRadioButtonChildrenProps = Omit<\n ShippingMethodRadioButtonProps,\n 'children'\n>\n\ntype ShippingMethodRadioButtonProps = {\n children?: (props: ShippingMethodRadioButtonChildrenProps) => ReactNode\n onChange?: (\n shippingMethod: ShippingMethodCollection | Record<string, any>\n ) => void\n} & JSX.IntrinsicElements['input']\n\nconst ShippingMethodRadioButton: FunctionComponent<ShippingMethodRadioButtonProps> = (\n props\n) => {\n const { onChange, ...p } = props\n const { shippingMethod, currentShippingMethodId } = useContext(\n ShippingMethodChildrenContext\n )\n const { setShippingMethod } = useContext(ShipmentContext)\n const shipmentId = shippingMethod.shipmentId || ''\n const shippingMethodId = shippingMethod.id\n const name = `shipment-${shipmentId}`\n const id = `${name}-${shippingMethodId}`\n const checked = shippingMethod.id === currentShippingMethodId\n const handleOnChange = async () => {\n await setShippingMethod(shipmentId, shippingMethodId)\n onChange && onChange(shippingMethod)\n }\n const parentProps = {\n handleOnChange,\n name,\n id,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <input\n type=\"radio\"\n name={name}\n id={id}\n onChange={handleOnChange}\n defaultChecked={checked}\n {...p}\n />\n )\n}\n\nShippingMethodRadioButton.propTypes = propTypes\nShippingMethodRadioButton.displayName = displayName\n\nexport default ShippingMethodRadioButton\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n Fragment,\n ReactNode,\n} from 'react'\nimport SkuListsContext from '#context/SkuListsContext'\nimport components from '#config/components'\n\nconst propTypes = components.SkuList.propTypes\nconst displayName = components.SkuList.displayName\n\ntype SkuListProp = {\n children: ReactNode\n id: string\n}\n\nconst SkuList: FunctionComponent<SkuListProp> = (props) => {\n const { id, children } = props\n const { listIds } = useContext(SkuListsContext)\n useEffect(() => {\n if (!listIds.includes(id)) {\n listIds.push(id)\n }\n }, [])\n return <Fragment>{children}</Fragment>\n}\n\nSkuList.propTypes = propTypes\nSkuList.displayName = displayName\n\nexport default SkuList\n","import React, {\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n useEffect,\n} from 'react'\nimport SkuListsContext from '#context/SkuListsContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport skuListsReducer, {\n skuListsInitialState,\n getSkuList,\n} from '#reducers/SkuListsReducer'\n\nimport components from '#config/components'\n\nconst propTypes = components.SkuListsContainer.propTypes\nconst displayName = components.SkuListsContainer.displayName\n\ntype SkuListsContainerProp = {\n children: ReactNode\n}\n\nconst SkuListsContainer: FunctionComponent<SkuListsContainerProp> = (props) => {\n const { children } = props\n const [state, dispatch] = useReducer(skuListsReducer, skuListsInitialState)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (state.listIds.length > 0 && config.accessToken) {\n getSkuList({ listIds: state.listIds, dispatch, config, state })\n }\n }, [config.accessToken])\n return (\n <SkuListsContext.Provider value={state}>\n {children}\n </SkuListsContext.Provider>\n )\n}\n\nSkuListsContainer.propTypes = propTypes\nSkuListsContainer.displayName = displayName\n\nexport default SkuListsContainer\n","import { createContext } from 'react'\nimport { SkuOptionCollection } from '@commercelayer/js-sdk'\n\nexport interface SkuOptionChildrenInitalState {\n skuOption?: SkuOptionCollection | null\n skuCode: string\n}\n\nconst initial: SkuOptionChildrenInitalState = {\n skuCode: '',\n}\n\nconst SkuOptionChildrenContext = createContext<SkuOptionChildrenInitalState>(\n initial\n)\n\nexport default SkuOptionChildrenContext\n","import { Dispatch } from 'react'\nimport baseReducer from '#utils/baseReducer'\nimport { SkuOptionCollection } from '@commercelayer/js-sdk'\nimport { BaseUnsetState } from '#typings/index'\nimport { BaseError } from '#typings/errors'\n\nexport interface SkuOptionsState {\n skuCode?: string\n skuOptions?: SkuOptionCollection[]\n errors?: BaseError[]\n}\n\ninterface GetSkuOptionsParams {\n dispatch: Dispatch<SkuOptionsAction>\n skuOptions?: SkuOptionCollection[]\n}\n\nexport interface GetSkuOptions {\n (params: GetSkuOptionsParams): void\n}\n\nexport const getSkuOptions: GetSkuOptions = async (params) => {\n const { skuOptions, dispatch } = params\n dispatch({\n type: 'setSkuOptions',\n payload: {\n skuOptions,\n },\n })\n}\n\nexport const unsetSkuOptionsState: BaseUnsetState<SkuOptionsAction> = (\n dispatch\n) => {\n dispatch({\n type: 'setSkuOptions',\n payload: {\n skuOptions: [],\n },\n })\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n}\n\nexport type SkuOptionsActionType = 'setSkuOptions' | 'setErrors'\n\nconst actionType: SkuOptionsActionType[] = ['setSkuOptions', 'setErrors']\n\nexport interface SkuOptionsAction {\n type: SkuOptionsActionType\n payload: SkuOptionsState\n}\n\nexport const skuOptionsInitialState: SkuOptionsState = {\n skuCode: '',\n skuOptions: [],\n}\n\nconst skuOptionsReducer = (\n state: SkuOptionsState,\n reducer: SkuOptionsAction\n): SkuOptionsState =>\n baseReducer<SkuOptionsState, SkuOptionsAction, SkuOptionsActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default skuOptionsReducer\n","import { createContext } from 'react'\nimport { skuOptionsInitialState } from '#reducers/SkuOptionsReducer'\n\nconst SkuOptionsContext = createContext(skuOptionsInitialState)\n\nexport default SkuOptionsContext\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n} from 'react'\nimport SkuOptionChildrenContext from '#context/SkuOptionChildrenContext'\nimport SkuOptionsContext from '#context/SkuOptionsContext'\nimport components from '#config/components'\n\nconst propTypes = components.SkuOption.propTypes\nconst displayName = components.SkuOption.displayName\n\nexport type SkuOptionProps = {\n children: ReactNode\n id: string\n}\n\nconst SkuOption: FunctionComponent<SkuOptionProps> = (props) => {\n const { id } = props\n const { skuOptions, skuCode } = useContext(SkuOptionsContext)\n const items =\n skuOptions &&\n skuOptions\n .filter((l) => l.id === id)\n .map((skuOption, k) => {\n return (\n <SkuOptionChildrenContext.Provider\n key={k}\n value={{ skuOption, skuCode: skuCode as string }}\n >\n {props.children}\n </SkuOptionChildrenContext.Provider>\n )\n })\n return <Fragment>{items}</Fragment>\n}\n\nSkuOption.propTypes = propTypes\nSkuOption.displayName = displayName\n\nexport default SkuOption\n","import React, { FunctionComponent, useContext } from 'react'\nimport BaseInput from './utils/BaseInput'\nimport ItemContext from '#context/ItemContext'\nimport SkuOptionChildrenContext from '#context/SkuOptionChildrenContext'\nimport { has } from 'lodash'\nimport { ItemOptions } from '#reducers/ItemReducer'\nimport components from '#config/components'\nimport { BaseInputComponentProps } from '#typings'\n\nconst propTypes = components.SkuOptionInput.propTypes\nconst displayName = components.SkuOptionInput.displayName\n\ntype SkuOptionInputProps = BaseInputComponentProps &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst SkuOptionInput: FunctionComponent<SkuOptionInputProps> = (props) => {\n const { name } = props\n const { option, setOption } = useContext(ItemContext)\n const { skuOption, skuCode } = useContext(SkuOptionChildrenContext)\n const handleChange: BaseInputComponentProps['onChange'] = (event) => {\n const val = event.target.value\n const options = has(option, `${skuCode}.${skuOption?.id}`)\n ? option[skuCode][`${skuOption?.id}`]['options']\n : {}\n const o = {\n [skuCode]: {\n ...option[skuCode],\n [`${skuOption?.id}`]: {\n skuOptionId: skuOption?.id,\n options: {\n ...options,\n [name]: val,\n },\n },\n },\n } as ItemOptions\n setOption && setOption(o)\n }\n return <BaseInput onChange={handleChange} {...props} />\n}\n\nSkuOptionInput.propTypes = propTypes\nSkuOptionInput.displayName = displayName\n\nexport default SkuOptionInput\n","import React, {\n FunctionComponent,\n useReducer,\n useContext,\n useEffect,\n ReactNode,\n} from 'react'\nimport SkuOptionsContext from '#context/SkuOptionsContext'\nimport skuOptionsReducer, {\n skuOptionsInitialState,\n} from '#reducers/SkuOptionsReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { isEmpty } from 'lodash'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport ItemContext from '#context/ItemContext'\nimport { getSkuOptions } from '#reducers/SkuOptionsReducer'\nimport components from '#config/components'\n\nconst propTypes = components.SkuOptionsContainer.propTypes\nconst displayName = components.SkuOptionsContainer.displayName\n\ntype SkuOptionsContainerProp = {\n children: ReactNode\n skuCode?: string\n}\n\nconst SkuOptionsContainer: FunctionComponent<SkuOptionsContainerProp> = (\n props\n) => {\n const { skuCode, children } = props\n const [state, dispatch] = useReducer(\n skuOptionsReducer,\n skuOptionsInitialState\n )\n const config = useContext(CommerceLayerContext)\n const { item, items } = useContext(ItemContext)\n const sCode =\n !isEmpty(items) && skuCode\n ? items[skuCode]?.code\n : skuCode || getCurrentItemKey(item)\n const skuOptionsValue = { ...state, skuCode: sCode }\n useEffect(() => {\n if (sCode && item[sCode].skuOptions) {\n getSkuOptions({\n skuOptions: item[sCode].skuOptions()?.toArray(),\n dispatch,\n })\n }\n return (): void => {\n if (isEmpty(sCode)) {\n dispatch({\n type: 'setSkuOptions',\n payload: {\n skuOptions: [],\n },\n })\n }\n }\n }, [config, sCode])\n return (\n <SkuOptionsContext.Provider value={skuOptionsValue}>\n {children}\n </SkuOptionsContext.Provider>\n )\n}\n\nSkuOptionsContainer.propTypes = propTypes\nSkuOptionsContainer.displayName = displayName\n\nexport default SkuOptionsContainer\n","import { createContext } from 'react'\nimport { StockTransferCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialStockTransferContext {\n stockTransfer: StockTransferCollection | Record<string, string>\n}\n\nconst initial: InitialStockTransferContext = {\n stockTransfer: {},\n}\n\nconst StockTransferChildrenContext = createContext<InitialStockTransferContext>(\n initial\n)\n\nexport default StockTransferChildrenContext\n","import React, {\n useContext,\n FunctionComponent,\n ReactNode,\n Fragment,\n} from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport components from '#config/components'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport StockTransferChildrenContext from '#context/StockTransferChildrenContext'\n\nconst propTypes = components.StockTransfer.propTypes\nconst displayName = components.StockTransfer.displayName\n\ntype StockTransferProps = {\n children: ReactNode\n} & JSX.IntrinsicElements['p']\n\nconst StockTransfer: FunctionComponent<StockTransferProps> = (props) => {\n const { children } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const { stockTransfers } = useContext(ShipmentChildrenContext)\n const components = stockTransfers\n ?.filter((stock) => stock.skuCode === lineItem.skuCode)\n .map((stockTransfer, k) => {\n const stockTransferProps = {\n stockTransfer,\n }\n return (\n <StockTransferChildrenContext.Provider\n key={k}\n value={stockTransferProps}\n >\n {children}\n </StockTransferChildrenContext.Provider>\n )\n })\n return <Fragment>{components}</Fragment>\n}\n\nStockTransfer.propTypes = propTypes\nStockTransfer.displayName = displayName\n\nexport default StockTransfer\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport StockTransferChildrenContext from '#context/StockTransferChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.StockTransferField.propTypes\nconst displayName = components.StockTransferField.displayName\n\ntype StockTransferFieldChildrenProps = Omit<StockTransferFieldProps, 'children'>\n\nexport type StockTransferFieldType = 'quantity' | 'skuCode'\n\ntype StockTransferFieldProps = {\n children?: (props: StockTransferFieldChildrenProps) => ReactNode\n type: StockTransferFieldType\n} & JSX.IntrinsicElements['p']\n\nconst StockTransferField: FunctionComponent<StockTransferFieldProps> = (\n props\n) => {\n const { type } = props\n const { stockTransfer } = useContext(StockTransferChildrenContext)\n const text = stockTransfer ? stockTransfer[type] : ''\n const parentProps = {\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p {...props}>{text}</p>\n )\n}\n\nStockTransferField.propTypes = propTypes\nStockTransferField.displayName = displayName\n\nexport default StockTransferField\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.SubTotalAmount.propTypes\nconst defaultProps = components.SubTotalAmount.defaultProps\nconst displayName = components.SubTotalAmount.displayName\n\nconst SubTotalAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"subtotal\" {...props} />\n}\n\nSubTotalAmount.propTypes = propTypes\nSubTotalAmount.defaultProps = defaultProps\nSubTotalAmount.displayName = displayName\n\nexport default SubTotalAmount\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport isFunction from 'lodash/isFunction'\n\nconst propTypes = components.SubmitButton.propTypes\nconst defaultProps = components.SubmitButton.defaultProps\nconst displayName = components.SubmitButton.displayName\n\ntype SubmitButtonChildrenProps = FunctionChildren<\n Omit<SubmitButtonProps, 'children'>\n>\n\ntype SubmitButtonProps = {\n children?: SubmitButtonChildrenProps\n label?: string | ReactNode\n} & JSX.IntrinsicElements['button']\n\nconst SubmitButton: FunctionComponent<SubmitButtonProps> = (props) => {\n const { children, label = 'Submit', ...p } = props\n const parentProps = {\n ...p,\n label,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button type=\"submit\" {...p}>\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nSubmitButton.propTypes = propTypes\nSubmitButton.defaultProps = defaultProps\nSubmitButton.displayName = displayName\n\nexport default SubmitButton\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.TaxesAmount.propTypes\nconst defaultProps = components.TaxesAmount.defaultProps\nconst displayName = components.TaxesAmount.displayName\n\nconst TaxesAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"totalTax\" {...props} />\n}\n\nTaxesAmount.propTypes = propTypes\nTaxesAmount.defaultProps = defaultProps\nTaxesAmount.displayName = displayName\n\nexport default TaxesAmount\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.TotalAmount.propTypes\nconst defaultProps = components.TotalAmount.defaultProps\nconst displayName = components.TotalAmount.displayName\n\nconst TotalAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"totalAmount\" type=\"withTaxes\" {...props} />\n}\n\nTotalAmount.propTypes = propTypes\nTotalAmount.defaultProps = defaultProps\nTotalAmount.displayName = displayName\n\nexport default TotalAmount\n","import React, { Fragment, FunctionComponent, ReactNode } from 'react'\nimport { keys } from 'lodash'\n\nimport PropTypes from 'prop-types'\nimport { BaseSelectorType } from '#typings'\nimport { VariantsObject, SetSkuCode } from '#reducers/VariantReducer'\nimport { VariantOptions } from '#components/VariantSelector'\n\nexport const propTypes = {\n variants: PropTypes.any.isRequired,\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n code: PropTypes.string.isRequired,\n lineItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n }),\n }).isRequired\n ).isRequired,\n name: PropTypes.string,\n children: PropTypes.func,\n type: PropTypes.oneOf<BaseSelectorType>(['select', 'radio']),\n loader: PropTypes.element,\n placeholder: PropTypes.string,\n skuCode: PropTypes.string,\n}\n\nexport type VariantTemplateProps = {\n variants: VariantsObject | Record<string, any>\n handleChange?: SetSkuCode\n options: VariantOptions[]\n type?: BaseSelectorType\n loader?: ReactNode\n placeholder?: string\n skuCode?: string\n} & JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['select']\n\nconst VariantTemplate: FunctionComponent<VariantTemplateProps> = (props) => {\n const {\n id,\n variants,\n type,\n placeholder,\n options,\n skuCode,\n handleChange,\n ...prs\n } = props\n const vars = keys(variants).map((v, k) => {\n const checked = skuCode === v\n return type === 'select' ? (\n <option\n key={variants[v].id}\n data-sku-id={variants[v].id}\n value={variants[v].code}\n >\n {options.length > 0 ? options[k].label : variants[v].name}\n </option>\n ) : (\n <Fragment key={variants[v].id}>\n <input\n id={id && `${id}-${k}`}\n defaultChecked={checked}\n type=\"radio\"\n value={variants[v].code}\n onChange={(e): void =>\n handleChange && handleChange(e.target.value, variants[v].id)\n }\n {...prs}\n />\n {options.length > 0 ? options[k].label : variants[v].name}\n </Fragment>\n )\n })\n if (type === 'select') {\n return (\n <select\n id={id}\n onChange={(e): void => {\n const v = e.target.value\n const i = e.target.selectedIndex\n const id = e.target[i].dataset.skuId as string\n handleChange && handleChange(v, id)\n }}\n value={skuCode || ''}\n {...prs}\n >\n <option disabled={!!skuCode}>{placeholder}</option>\n {vars}\n </select>\n )\n }\n return <Fragment>{vars}</Fragment>\n}\n\nVariantTemplate.propTypes = propTypes\n\nexport default VariantTemplate\n","import { SkuCollection } from '@commercelayer/js-sdk'\n\nconst getSkus = (prices: SkuCollection[]): Record<string, any> => {\n const obj: Record<string, any> = {}\n prices.map((sku) => {\n obj[sku.code] = sku\n })\n return obj\n}\n\nexport default getSkus\n","import CLayer, { SkuCollection } from '@commercelayer/js-sdk'\nimport { VariantOptions } from '#components/VariantSelector'\nimport { Dispatch } from 'react'\nimport baseReducer from '#utils/baseReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport getSkus from '#utils/getSkus'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Items, CustomLineItem, SetCustomLineItems } from './ItemReducer'\nimport { BaseError } from '#typings/errors'\nimport { isEmpty, has } from 'lodash'\n\ntype SetSkuCodeVariantParams = {\n code: string\n id: string\n config: CommerceLayerConfig\n dispatch: Dispatch<VariantAction>\n setItem: ((item: Items) => void) | undefined\n}\n\nexport interface SetSkuCodeVariant {\n (params: SetSkuCodeVariantParams): void\n}\n\ntype SetVariantSkuCodesParams = {\n skuCodes: VariantOptions[]\n dispatch: Dispatch<VariantAction>\n setCustomLineItems?: SetCustomLineItems\n}\n\nexport interface SetVariantSkuCodes {\n (params: SetVariantSkuCodesParams): void\n}\n\nexport interface VariantsObject {\n [key: string]: SkuCollection\n}\n\nexport type SetSkuCode = (\n code: string,\n id: string,\n lineItem?: CustomLineItem\n) => void\n\nexport interface VariantPayload {\n loading?: boolean\n variants?: VariantsObject | Record<string, any>\n skuCodes?: string[]\n skuCode?: string\n errors?: BaseError[]\n currentSkuId?: string\n currentSkuInventory?: any\n currentQuantity?: number\n currentPrices?: SkuCollection[]\n setSkuCode?: SetSkuCode\n setSkuCodes?: (skuCodes: VariantOptions[]) => void\n}\n\nexport interface VariantState extends VariantPayload {\n skuCodes: string[]\n variants: VariantsObject | Record<string, any>\n}\n\nexport interface VariantAction {\n type: VariantActionType\n payload: VariantPayload\n}\n\nexport const setVariantSkuCodes: SetVariantSkuCodes = ({\n skuCodes,\n dispatch,\n setCustomLineItems,\n}) => {\n const lineItems: any = {}\n const sCodes = skuCodes.map((s) => {\n if (has(s, 'lineItem')) {\n lineItems[s.code] = s.lineItem\n }\n return s.code\n })\n if (!isEmpty(lineItems)) {\n setCustomLineItems && setCustomLineItems(lineItems)\n }\n dispatch({\n type: 'setSkuCodes',\n payload: { skuCodes: sCodes },\n })\n}\n\nexport interface UnsetVariantState {\n (dispatch: Dispatch<VariantAction>): void\n}\n\nexport const setSkuCode: SetSkuCodeVariant = (params) => {\n const { id, code, config, setItem, dispatch } = params\n if (id) {\n CLayer.Sku.withCredentials(config)\n .includes('skuOptions')\n .find(id)\n .then((s) => {\n setItem &&\n setItem({\n [`${code}`]: s,\n })\n })\n .catch((c) => {\n const errors = getErrorsByCollection(c, 'variant')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n })\n }\n}\n\ntype GetVariantsParams = {\n config: CommerceLayerConfig\n state: VariantState\n skuCode: string\n dispatch: Dispatch<VariantAction>\n filters: Record<string, any>\n setItem: ((item: Items) => void) | undefined\n}\n\nexport interface GetVariants {\n (params: GetVariantsParams): void\n}\n\nexport const getVariants: GetVariants = (params) => {\n const { config, state, skuCode, dispatch, setItem, filters } = params\n CLayer.Sku.withCredentials(config)\n .where({ codeIn: state.skuCodes.join(','), ...filters })\n .all()\n .then((r) => {\n const skusObj = getSkus(r.toArray())\n if (skuCode) {\n setSkuCode({\n code: skusObj[skuCode].code,\n id: skusObj[skuCode].id,\n config,\n dispatch,\n setItem,\n })\n }\n dispatch({\n type: 'setVariants',\n payload: {\n variants: skusObj,\n },\n })\n dispatch({\n type: 'setLoading',\n payload: {\n loading: false,\n },\n })\n })\n .catch((c) => {\n const errors = getErrorsByCollection(c, 'variant')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n })\n}\n\nexport const unsetVariantState: UnsetVariantState = (dispatch) => {\n dispatch({\n type: 'setSkuCode',\n payload: { skuCode: '' },\n })\n dispatch({\n type: 'setVariants',\n payload: { variants: {} },\n })\n dispatch({\n type: 'setLoading',\n payload: { loading: false },\n })\n}\n\nexport const variantInitialState: VariantState = {\n loading: false,\n variants: {},\n skuCodes: [],\n skuCode: '',\n errors: [],\n currentSkuId: '',\n currentSkuInventory: {\n available: false,\n quantity: 0,\n levels: [],\n },\n currentQuantity: 1,\n currentPrices: [],\n}\n\nexport type VariantActionType =\n | 'setLoading'\n | 'setVariants'\n | 'setSkuCodes'\n | 'setSkuCode'\n | 'setCurrentSkuId'\n | 'setCurrentSkuInventory'\n | 'setCurrentPrices'\n | 'setErrors'\n\nconst actionType: VariantActionType[] = [\n 'setLoading',\n 'setVariants',\n 'setSkuCodes',\n 'setSkuCode',\n 'setCurrentSkuId',\n 'setCurrentSkuInventory',\n 'setCurrentPrices',\n 'setErrors',\n]\n\nconst variantReducer = (\n state: VariantState,\n reducer: VariantAction\n): VariantState =>\n baseReducer<VariantState, VariantAction, VariantActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default variantReducer\n","import { createContext } from 'react'\nimport { variantInitialState } from '#reducers/VariantReducer'\n\nconst VariantsContext = createContext(variantInitialState)\n\nexport default VariantsContext\n","import React, {\n Fragment,\n FunctionComponent,\n useContext,\n useEffect,\n ReactElement,\n ReactNode,\n} from 'react'\nimport VariantTemplate from './utils/VariantTemplate'\nimport Parent from './utils/Parent'\nimport VariantsContext from '#context/VariantsContext'\nimport components from '#config/components'\nimport { BaseSelectorType } from '#typings'\nimport { FunctionChildren } from '#typings/index'\nimport { VariantsObject, SetSkuCode } from '#reducers/VariantReducer'\n\nconst propTypes = components.VariantSelector.propTypes\nconst defaultProps = components.VariantSelector.defaultProps\nconst displayName = components.VariantSelector.displayName\n\nexport interface VariantOptions {\n label: string\n code: string\n lineItem?: {\n name: string\n imageUrl?: string | null\n } | null\n}\n\ntype VariantSelectorChildrenProps = FunctionChildren<\n Omit<VariantSelectorProps, 'children'> & {\n variants: VariantsObject\n handleSelect: SetSkuCode\n loading: boolean\n }\n>\n\ntype VariantSelectorProps = {\n children?: VariantSelectorChildrenProps\n options: VariantOptions[]\n type?: BaseSelectorType\n loader?: ReactNode\n placeholder?: string\n skuCode?: string\n} & JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['select']\n\nconst VariantSelector: FunctionComponent<VariantSelectorProps> = (props) => {\n const { children, type, placeholder, skuCode, name, options, ...prs } = props\n const {\n setSkuCode,\n skuCode: variantSkuCode,\n loading,\n variants,\n setSkuCodes,\n } = useContext(VariantsContext)\n useEffect(() => {\n setSkuCodes && setSkuCodes(options)\n return (): void => {\n setSkuCodes && setSkuCodes([])\n }\n }, [options])\n const sCode = variantSkuCode || skuCode || ''\n const DefaultTemplate = (): ReactElement =>\n loading ? (\n <Fragment>{props.loader || 'Loading...'}</Fragment>\n ) : (\n <VariantTemplate\n variants={variants}\n type={type}\n placeholder={placeholder as string}\n skuCode={sCode}\n options={options}\n handleChange={setSkuCode}\n name={name as string}\n {...prs}\n />\n )\n const parentProps = {\n variants,\n loading: !!loading,\n handleSelect: setSkuCode,\n skuCode: sCode,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <Fragment>\n <DefaultTemplate />\n </Fragment>\n )\n}\n\nVariantSelector.propTypes = propTypes\nVariantSelector.defaultProps = defaultProps\nVariantSelector.displayName = displayName\n\nexport default VariantSelector\n","import React, {\n useEffect,\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n} from 'react'\nimport variantReducer, {\n variantInitialState,\n unsetVariantState,\n setSkuCode,\n getVariants,\n} from '#reducers/VariantReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport VariantsContext from '#context/VariantsContext'\nimport { VariantState } from '#reducers/VariantReducer'\nimport { setVariantSkuCodes } from '#reducers/VariantReducer'\nimport { isEmpty, isEqual } from 'lodash'\n\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport ItemContext from '#context/ItemContext'\nimport components from '#config/components'\n\nconst propTypes = components.VariantsContainer.propTypes\nconst defaultProps = components.VariantsContainer.defaultProps\nconst displayName = components.VariantsContainer.displayName\n\ntype VariantsContainerProps = {\n children: ReactNode\n filters?: Record<string, any>\n skuCode?: string\n}\n\nconst VariantsContainer: FunctionComponent<VariantsContainerProps> = (\n props\n) => {\n const { children, skuCode = '', filters = {} } = props\n const config = useContext(CommerceLayerContext)\n const {\n setItem,\n setItems,\n items,\n item: currentItem,\n setCustomLineItems,\n skuCode: itemSkuCode,\n } = useContext(ItemContext)\n const [state, dispatch] = useReducer(variantReducer, variantInitialState)\n const sCode =\n getCurrentItemKey(currentItem) ||\n skuCode ||\n state.skuCode ||\n itemSkuCode ||\n ''\n useEffect(() => {\n if (!isEmpty(items) && !isEmpty(state.variants)) {\n if (!isEqual(items, state.variants)) {\n const mergeItems = { ...items, ...state.variants }\n setItems && setItems(mergeItems)\n }\n }\n if (state.skuCodes.length >= 1 && config.accessToken) {\n dispatch({\n type: 'setLoading',\n payload: { loading: true },\n })\n getVariants({\n config,\n state,\n dispatch,\n setItem,\n skuCode: sCode,\n filters,\n })\n }\n return (): void => unsetVariantState(dispatch)\n }, [config])\n const variantValue: VariantState = {\n ...state,\n skuCode: sCode,\n setSkuCode: (code, id, lineItem = {}) => {\n if (!isEmpty(lineItem)) {\n setCustomLineItems && setCustomLineItems({ [code]: lineItem })\n }\n setSkuCode({\n code,\n id,\n config,\n setItem,\n dispatch,\n })\n },\n setSkuCodes: (skuCodes) =>\n setVariantSkuCodes({ skuCodes, dispatch, setCustomLineItems }),\n }\n return (\n <VariantsContext.Provider value={variantValue}>\n {children}\n </VariantsContext.Provider>\n )\n}\n\nVariantsContainer.propTypes = propTypes\nVariantsContainer.defaultProps = defaultProps\nVariantsContainer.displayName = displayName\n\nexport default VariantsContainer\n"],"names":["PProps","children","PropTypes","func","Parent","props","Child","propTypes","undefined","baseReducer","state","action","actionTypes","actions","indexOf","type","data","payload","ERROR_CODES","transformCode","code","newCode","map","c","checkCode","words","split","w","rgx","RegExp","m","match","length","push","getErrorCodeByString","text","codes","search","getErrorsByCollection","collection","resourceType","options","errors","isFunction","empty","toArray","error","e","id","get","field","resource","message","isArray","actionType","createOrder","params","persistKey","dispatch","config","metadata","orderMetadata","orderAttributes","setLocalOrder","orderId","CLayer","Order","withCredentials","create","o","order","getApiOrder","clearWhenPlaced","deleteLocalOrder","find","status","setOrder","addToCart","skuCode","skuId","quantity","option","lineItem","build","name","imageUrl","attrs","_updateQuantity","Sku","LineItem","lineItemResource","isEmpty","opt","skuOptionId","skuOption","SkuOption","LineItemOption","size","success","unsetOrderState","setOrderErrors","saveAddressToCustomerAddressBook","value","k","v","localStorage","setItem","setGiftCardOrCouponCode","update","giftCardOrCouponCode","removeGiftCardOrCouponCode","codeType","orderInitialState","loading","orderReducer","reducer","OrderContext","createContext","initialItemContext","item","items","prices","lineItems","ItemContext","getCurrentItemKey","first","keys","checkChildrenTypes","propName","componentName","cpName","replace","Error","Children","itemTypes","components","errorMsg","join","has","displayName","childComponentName","includes","isValidElement","childrenTypes","location","propFullName","isRequired","BC","string","className","style","object","PTLoader","oneOfType","element","BaseSelectComponentPropTypes","arrayOf","shape","label","number","selected","bool","placeholder","BaseInputComponentPropTypes","oneOf","onChange","BMObject","objectOf","baseOrderPricePropTypes","base","format","baseOrderComponentPricePropTypes","CEType","REType","BaseErrorObject","ErrorPropTypes","Address","permittedChildren","AddressCountrySelector","required","defaultProps","AddressStateSelector","AddressField","AddressInput","disabled","AddToCartButton","AddressesContainer","shipToDifferentAddress","AvailabilityContainer","AvailabilityTemplate","timeFormat","showShippingMethodName","BillingAddressContainer","BillingAddressForm","CheckoutLink","CommerceLayer","accessToken","endpoint","CustomerContainer","isGuest","CustomerInput","saveOnBlur","DeliveryLeadTime","DiscountAmount","Errors","messages","ExternalFunction","url","GiftCard","onSubmit","GiftCardAmount","GiftCardContainer","GiftCardCurrencySelector","GiftCardInput","GiftCardOrCouponForm","GiftCardOrCouponInput","GiftCardOrCouponSubmit","GiftCardOrCouponCode","GiftCardOrCouponRemoveButton","ItemContainer","LineItemAmount","LineItemImage","width","LineItemName","LineItemSkuCode","valueClassName","LineItemOptions","title","showName","LineItemQuantity","max","readonly","LineItemRemoveLink","LineItemsContainer","filters","loader","LineItemsCount","MetadataInput","OrderContainer","attributes","OrderNumber","OrderStorage","PaymentMethod","PaymentMethodAmount","PaymentMethodName","PaymentMethodPrice","PaymentMethodRadioButton","PaymentMethodsContainer","PaymentSource","PaymentSourceBrandIcon","height","src","PaymentSourceBrandName","PaymentSourceEditButton","PaymentSourceDetail","PlaceOrderButton","PlaceOrderContainer","Price","compareClassName","showCompare","PricesContainer","perPage","PrivacyAndTermsCheckbox","QuantitySelector","min","SaveAddressesButton","onClick","Shipment","ShipmentField","ShipmentsContainer","ShippingAddressContainer","SaveCustomerButton","ShippingAddressForm","ShippingAmount","ShippingMethod","ShippingMethodName","ShippingMethodRadioButton","ShippingMethodPrice","SkuList","SkuListsContainer","SkuOptionInput","SkuOptionsContainer","StockTransfer","StockTransferField","SubmitButton","SubTotalAmount","TaxesAmount","TotalAmount","VariantsContainer","VariantSelector","skuListsInitialState","listIds","skuLists","getSkuList","select","skus","skuList","skuCodes","sku","console","skuListsReducer","SkuListsContext","callExternalFunction","axios","post","ExternalFunctionContext","skuListId","p","useContext","getOrder","lineItemContext","itemSkuCode","sCode","handleClick","qty","customLineItem","slQty","_update_quantity","inputs","then","res","response","autoDisabled","parentProps","initial","address","AddressChildrenContext","saveCustomerUser","customerEmail","setCustomerErrors","setCustomerEmail","getCustomerAddresses","CustomerAddress","all","customerAddresses","addresses","customerAddress","getCustomerPaymentSources","availableCustomerPaymentSources","load","payments","customerInitialState","customerReducer","defaultCustomerContext","CustomerContext","defaultBillingAddressContext","setBillingAddress","BillingAddressContext","defaultShippingAddressContext","ShippingAddressContext","addressFields","addressInitialState","setAddressErrors","currentErrors","billingErrors","filter","shippingErrors","finalErrors","setAddress","values","setCloneAddress","saveAddresses","billingAddress","shippingAddress","billingAddressId","shippingAddressId","currentBillingAddressRef","reference","_billingAddressCloneId","_shippingAddressCloneId","_shippingAddressSameAsBilling","addressReducer","defaultAddressContext","AddressesContext","AddressCardsTemplate","deselect","countryLock","selectedClassName","disabledClassName","handleSelect","setShippingAddress","countryCode","selectedClass","addressSelectedClass","finalClassName","customerAddressId","AddressProvider","Provider","onSelect","addressesContext","billingCustomerAddressId","shippingCustomerAddressId","AddressContext","useState","setSelected","useEffect","preselected","disabledSaveButton","addressId","shippingCountryCodeLock","addressProps","BaseSelect","ref","findIndex","unshift","Options","React","forwardRef","BillingAddressFormContext","ShippingAddressFormContext","getCountries","Countries","sort","mode","key","iso2","getStateOfCountry","country_code","is_region","States","getStates","state_code","isValidState","hasError","setHasError","setValue","errorClassName","classNameComputed","validation","camelCase","BaseInput","input","requiresBillingInfo","isEmptyStates","inputClassName","selectClassName","addressErrors","setCountryCode","val","setVal","billingCountryCode","shippingCountryCode","changeBillingCountry","every","Boolean","resetField","changeShippingCountry","fieldError","cache","CommerceLayerContext","useReducer","contextValue","availabilityInitialState","days","hours","getAvailability","where","codeIn","inventorySku","firstLevel","inventory","levels","firstDelivery","deliveryLeadTimes","typeAction","availabilityReducer","AvailabilityContext","LineItemChildrenContext","shippingMethod","mn","mx","billingAddressInitialState","setBillingCustomerAddressId","loadBillingAddress","billingAddressReducer","getLocalOrder","getItem","removeItem","getSavePaymentSourceToCustomerWallet","getSaveBillingAddressToAddressBook","getSaveShippingAddressToAddressBook","setCustomerOrderParam","OrderStorageContext","autoComplete","reset","useRapidForm","resetForm","useRef","formErrors","fieldName","checked","current","target","providerValues","currentTarget","checkoutUrl","onBlur","fieldEvent","handleOnBlur","deliveryLeadTimeForShipment","ShippingMethodChildrenContext","setText","getAmount","args","obj","toLowerCase","typeOne","typeTwo","typeThree","typeFourth","BaseOrderPrice","price","setPrice","cents","setCents","priceCents","giftCardInitialState","currencyCode","balanceCent","singleUse","rechargeable","expiresAt","addGiftCardRecipient","GiftCardRecipient","recipient","giftCardRecipient","addGiftCardLoading","addGiftCard","firstName","lastName","email","giftCardValue","recipientEmail","recipientValues","giftCard","addGiftCardError","giftCardReducer","GiftCardContext","customMessages","i","pick","getAllErrors","allErrors","returnHtml","objMsg","LineItemContext","dynamicNaming","_type","resourceKey","startCase","lastIndex","lastItem","last","setLoading","setPaymentRef","currentPaymentMethodRef","paymentMethodInitialState","setPaymentMethodErrors","getPaymentMethods","paymentMethods","loadAvailablePaymentMethods","loadPaymentMethod","paymentMethod","paymentSource","currentPaymentMethodId","currentPaymentMethodType","paymentSourceType","setPaymentMethod","paymentMethodId","paymentResource","patchOrder","save","setPaymentSource","customerPaymentSourceId","paymentSourceId","rawResponse","resourceSdk","_customerPaymentSourceId","loadPaymentSource","updatePaymentSource","destroyPaymentSource","setPaymentMethodConfig","getPaymentConfig","paymentMethodReducer","defaultPaymentMethodContext","PaymentMethodContext","PaymentMethodChildrenContext","payment","orderErrors","giftCardErrors","lineItemErrors","customerErrors","paymentMethodErrors","useMemo","msgErrors","EMAIL_PATTERN","validateValue","isString","validateFormFields","fields","isTick","attrName","getAttribute","isMetadata","fieldsExist","schema","without","validAddress","handleSubmit","preventDefault","currentForm","elements","currencyOptions","couponCode","hide","CouponAndGiftCardFormContext","inputName","err","dropWhile","setItemState","itemInitialState","itemReducer","setItems","setQuantity","setOption","setPrices","setCustomLineItems","itemValue","shippingMethods","stockTransfers","keyNumber","ShipmentChildrenContext","shipmentLineItems","l","itemType","lineProps","parenProps","labelName","lineItemOption","LineItemOptionChildrenContext","isJSON","str","JSON","parse","tagElement","tagContainer","showAll","TagElement","TagContainer","stringify","lineItemOptions","showTitle","valueProps","updateLineItem","handleChange","Number","deleteLineItem","handleRemove","getLineItems","allLineItems","colResp","pageCount","hasNextPage","index","nextPage","nextItems","lineItemId","destroy","destroyLineItem","lineItemInitialState","lineItemReducer","lineItemValue","getLineItemsCount","typeAccept","localOrder","orderValue","BaseField","attribute","setField","getLoaderComponent","Loader","activeClass","clickableContainer","paymentSelected","setPaymentSelected","setLoadingPlaceOrder","isActive","paymentMethodProps","onClickable","htmlFor","labelFree","setPriceCents","handleOnChange","credentials","getPaypalConfig","defaultPaymentSourceContext","PaymentSourceContext","getBrowserInfo","screenWidth","window","screen","screenHeight","colorDepth","userAgent","navigator","javaEnabled","language","d","Date","timeZoneOffset","getTimezoneOffset","browserInfo","shipmentsFilled","shipments","Promise","shipment","checking","filled","compact","saveToWallet","savePaymentSourceToCustomerWallet","saveBillingAddress","saveBillingAddressToCustomerAddressBook","saveShippingAddress","saveShippingAddressToCustomerAddressBook","placeOrderInitialState","isPermitted","setPlaceOrderErrors","placeOrderPermitted","privacyUrl","termsUrl","loadShippingAddress","loadShipments","totalAmountWithTaxesCents","paymentType","paymentSecret","clientSecret","paymentId","setPlaceOrder","placed","paypalPayerId","approvalUrl","href","paypalPayment","PaypalPayment","updateAttributes","_place","_saveBillingAddressToCustomerAddressBook","_saveShippingAddressToCustomerAddressBook","_savePaymentSourceToCustomerWallet","brOrder","defaultOrder","placeOrderReducer","defaultPlaceOrderContext","PlaceOrderContext","threeDSConfiguration","challengeWindowSize","defaultConfig","AdyenPayment","clientKey","templateCustomerSaveToWallet","environment","locale","cardContainerClassName","threeDSecureContainerClassName","placeOrderCallback","styles","loadAdyen","setLoadAdyen","checkout","setCheckout","_authorize","pSource","adyenAction","paymentResponse","resultCode","createFromAction","mount","brand","paymentRequestData","card","refusalReason","_component","paySource","isValid","AdyenCheckout","require","adyenCheckout","onsubmit","payment_request_data","payment_method","shopperInteraction","recurringProcessingModel","origin","return_url","browser_info","acceptHeader","handleOnAdditionalDetails","payment_request_details","_details","paymentMethodsResponse","s","onAdditionalDetails","PaymentCardsTemplate","customerPayments","customerPayment","stopPropagation","PaymentSourceProvider","AdyenGateway","showCard","handleEditClick","templateCustomerCards","show","onClickCustomerCards","loaderComponent","languageCode","publicKey","adyenConfig","defaultOptions","fontSize","color","invalid","hidePostalCode","StripePaymentForm","stripe","useStripe","useElements","event","cardElement","getElement","CardElement","billingInfo","billing_details","fullName","phone","city","country","line1","postal_code","zipCode","stateCode","createPaymentMethod","confirmCardPayment","paymentIntent","setup_future_usage","StripePayment","publishableKey","isLoaded","setIsLoaded","setStripe","containerClassName","fonts","divProps","loadStripe","getStripe","StripeGateway","stripeConfig","promisify","cb","resolve","reject","tokenize","selector","cvv","expirationDate","submitLabel","BraintreePayment","authorization","fieldsContainerClassName","expDateContainerClassName","fieldLabelClassName","cvvContainerClassName","inputWrapperClassName","cardDetailsContainerClassName","loadBraintree","setLoadBraintree","handleSubmitForm","hostedFieldsInstance","threeDSInstance","verifyCardOptions","nonce","bin","details","amount","totalAmountWithTaxesFloat","givenName","surname","phoneNumber","streetAddress","countryCodeAlpha2","postalCode","region","locality","onLookupComplete","_data","next","verifyCard","rawCardinalSDKVerificationData","Validated","paymentMethodNonce","last4","lastFour","expYear","expirationYear","expMonth","expirationMonth","cardType","braintreeClient","hostedFields","threeDSecure","clientErr","clientInstance","client","hostedFieldsErr","version","threeDSecureErr","threeDSecureInstance","BraintreeGateway","clientToken","braintreeConfig","defaultMessage","infoMessage","PaypalGateway","paypalConfig","WireTransferPayment","WireTransferGateway","wireTransferConfig","PaymentGateway","gatewayConfig","setShow","setShowCard","gatewayProps","defaultSrc","handleError","brandName","capitalize","notPermitted","setNotPermitted","forceDisable","setForceDisable","disabledButton","formattedAmount","formattedCompare","PriceTemplate","getPricesComponent","skuPrices","compareAtAmountCents","amountCents","formattedCompareAtAmount","getPrices","forEach","priceInitialState","getSkusPrice","allPrices","skuCodeIn","r","pricesObj","meta","getMetaInfo","col","unsetPriceState","priceReducer","PricesContext","pricesSkuCode","setSkuCodes","setSkuPrices","pricesComponent","currentItem","priceValue","forceDisabled","setForceDisabled","setChecked","setDisabled","maxInv","valid","handleBlur","resetVal","billingAddressController","billingDisable","shippingAddressController","shippingDisable","countryLockController","countryCodeLock","addressLocked","a","countryLockDisable","disable","shipmentInitialState","setShipmentErrors","getShipments","setShippingMethod","shipmentId","shippingMethodId","shipmentReducer","defaultShipmentContext","ShipmentContext","shipmentLineItem","availableShippingMethods","currentShippingMethodId","times","time","stockLocation","shipmentProps","shippingAddressInitialState","setShippingCustomerAddressId","shippingAddressReducer","emptyText","methods","delivery","deliveryShippingMethodId","shippingProps","labelFreeOver","freeOverAmountCents","setFreeOverAmountCents","isNumber","totalAmountCents","SkuOptionChildrenContext","getSkuOptions","skuOptions","skuOptionsInitialState","skuOptionsReducer","SkuOptionsContext","skuOptionsValue","stockTransfer","StockTransferChildrenContext","stock","stockTransferProps","variants","any","VariantTemplate","prs","vars","selectedIndex","dataset","getSkus","setVariantSkuCodes","sCodes","setSkuCode","getVariants","skusObj","unsetVariantState","variantInitialState","currentSkuId","currentSkuInventory","available","currentQuantity","currentPrices","variantReducer","VariantsContext","variantSkuCode","DefaultTemplate","isEqual","mergeItems","variantValue"],"mappings":"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"}
|